|
|
|
@ -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,6 +214,8 @@ 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) |
|
|
|
@ -205,9 +229,31 @@ UART_INT: |
|
|
|
CALL UART_INTRCV |
|
|
|
RET NZ |
|
|
|
#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 |
|
|
|
|