mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Finalize UART Interrupt Receive
This commit is contained in:
@@ -773,8 +773,8 @@ HBX_INTSTK .EQU $
|
||||
; 1 CTC0B INT2 |
|
||||
; 2 CTC0C TIM0 |
|
||||
; 3 CTC0D TIM1 |
|
||||
; 4 DMA0 +- Z180 INTERNAL
|
||||
; 5 DMA1 |
|
||||
; 4 UART0 DMA0 +- Z180 INTERNAL
|
||||
; 5 UART1 DMA1 |
|
||||
; 6 CSIO |
|
||||
; 7 SIO0 SER0 |
|
||||
; 8 SIO1 SER1 -+
|
||||
|
||||
@@ -637,6 +637,8 @@ INT_CTC0A .EQU 0 ; ZILOG CTC 0, CHANNEL A
|
||||
INT_CTC0B .EQU 1 ; ZILOG CTC 0, CHANNEL B
|
||||
INT_CTC0C .EQU 2 ; ZILOG CTC 0, CHANNEL C
|
||||
INT_CTC0D .EQU 3 ; ZILOG CTC 0, CHANNEL D
|
||||
INT_UART0 .EQU 4 ; MBC UART 0
|
||||
INT_UART1 .EQU 5 ; MBC UART 1
|
||||
INT_SIO0 .EQU 7 ; ZILOG SIO 0, CHANNEL A & B
|
||||
INT_SIO1 .EQU 8 ; ZILOG SIO 1, CHANNEL A & B
|
||||
INT_PIO0A .EQU 9 ; ZILOG PIO 0, CHANNEL A
|
||||
|
||||
@@ -58,6 +58,18 @@ UARTCBASE .EQU $80
|
||||
UARTMBASE .EQU $48
|
||||
UART4BASE .EQU $C0
|
||||
UARTRBASE .EQU $A0
|
||||
;
|
||||
#IF (UARTINTS)
|
||||
;
|
||||
#IF ((INTMODE == 2) | (INTMODE == 3))
|
||||
;
|
||||
UART0_IVT .EQU IVT(INT_UART0)
|
||||
UART1_IVT .EQU IVT(INT_UART1)
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
#DEFINE UART_INP(RID) CALL UART_INP_IMP \ .DB RID
|
||||
#DEFINE UART_OUTP(RID) CALL UART_OUTP_IMP \ .DB RID
|
||||
@@ -121,7 +133,17 @@ UART_PREINIT2:
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((INTMODE == 2) | (INTMODE == 3))
|
||||
; *** FIXME *** IMPLEMENT THIS!!!
|
||||
; SETUP IM2/3 VECTORS
|
||||
#IF (UARTSBC)
|
||||
LD HL,UART_INTSBC
|
||||
LD (UART0_IVT),HL ; IVT INDEX
|
||||
#ENDIF
|
||||
;
|
||||
#IF (UARTCAS)
|
||||
LD HL,UART_INTCAS
|
||||
LD (UART1_IVT),HL ; IVT INDEX
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
@@ -192,22 +214,46 @@ UART_INIT1:
|
||||
; POLLING CHAIN WHEN DEVICES ARE INITIALIZED SUCH THAT
|
||||
; ONLY DEVICES ACTUALLY USING INTS ARE POLLED HERE.
|
||||
;
|
||||
#IF (INTMODE == 1)
|
||||
|
||||
UART_INT:
|
||||
;
|
||||
#IF (UARTSBC)
|
||||
#IF (UARTSBC)
|
||||
LD IY,UART_CFG_SBC
|
||||
CALL UART_INTRCV
|
||||
RET NZ
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
#IF (UARTCAS)
|
||||
#IF (UARTCAS)
|
||||
LD IY,UART_CFG_CAS
|
||||
CALL UART_INTRCV
|
||||
RET NZ
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((INTMODE == 2) | (INTMODE == 3))
|
||||
;
|
||||
#IF (UARTSBC)
|
||||
UART_INTSBC:
|
||||
LD IY,UART_CFG_SBC
|
||||
JR UART_INTRCV
|
||||
#ENDIF
|
||||
;
|
||||
#IF (UARTCAS)
|
||||
UART_INTCAS:
|
||||
LD IY,UART_CFG_CAS
|
||||
JR UART_INTRCV
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
XOR A ; CLEAR ACCUM (INT NOT HANDLED)
|
||||
RET ; DONE
|
||||
;
|
||||
; IM2 ENTRY POINTS
|
||||
;
|
||||
|
||||
;
|
||||
; HANDLE INT FOR A SPECIFIC CHANNEL
|
||||
; BASED ON UNIT CFG POINTED TO BY IY
|
||||
@@ -648,12 +694,7 @@ UART_DETECT:
|
||||
RET Z ; DONE IF NO CHIP
|
||||
LD C,A ; PUT CHIP VARIANT IN C
|
||||
;
|
||||
; *** FIXME *** THIS NEEDS TO CHANGE WHEN INTMODE 2/3 IS IMPLEMENTED. AT THIS
|
||||
; POINT, WE ONLY SET THE INT RCV FEATURE BIT FOR IM1 BECAUSE THAT IS ALL
|
||||
; THAT IS IMPLEMENTED.
|
||||
;
|
||||
;#IF ((UARTINTS) & (INTMODE > 0))
|
||||
#IF ((UARTINTS) & (INTMODE == 1))
|
||||
#IF ((UARTINTS) & (INTMODE > 0))
|
||||
;
|
||||
; CHECK TO SEE IF INT RCV WANTED ON THIS DEVICE
|
||||
PUSH AF ; SAVE CHIP ID
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.1.1-pre.115"
|
||||
#DEFINE BIOSVER "3.1.1-pre.116"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.115"
|
||||
db "3.1.1-pre.116"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user