|
|
|
@ -48,16 +48,13 @@ |
|
|
|
; | +-------------- IE: RECEIVER INT ENBABLE |
|
|
|
; +---------------- EN: RECEIVER ENABLE |
|
|
|
; |
|
|
|
; THE Z280 UART USES MODE 3 INTERRUPT PROCESSING REGARDLESS OF THE INT |
|
|
|
; MODE SETTING. SINCE MODE 3 REQUIRES A LARGE INTERRUPT VECTOR TABLE |
|
|
|
; AND THAT TABLE MUST BE ACCESSIBLE WITHOUT USING EXTERNAL BANK |
|
|
|
; SWITCHING, IT IS IMPRACTICAL TO SUPPORT THIS UART UNLESS NATIVE |
|
|
|
; Z280 MEMORY MANAGEMENT IS IN USE. |
|
|
|
; |
|
|
|
#IF (MEMMGR != MM_Z280) |
|
|
|
.ECHO "*** ERROR: Z280 UART REQUIRES NATIVE MEMORY MANAGER!!!\n" |
|
|
|
!!! ; FORCE AN ASSEMBLY ERROR |
|
|
|
#ENDIF |
|
|
|
; INTERRUPT DRIVEN PROCESSING IS ONLY USED WHEN THE SYSTEM IS IN |
|
|
|
; INTERRUPT MODE 3. THIS IS BECAUSE THE BUILT-IN UART *ALWAYS* USES |
|
|
|
; MODE 3 PROCESSING. SINCE MODE 3 PROCESSING REQUIRES THE MODE 3 |
|
|
|
; INTERRUPT VECTOR TABLE WHICH IS LARGE AND WON'T FIT WELL IN HIGH |
|
|
|
; RAM, IT IS IMPRACTICAL TO IMPLEMENT ANY INTERRUPT DRIVEN PROCESSING |
|
|
|
; UNLESS FULL BLOWN INTERRUPT MODE 3 W/ NATIVE MEMORY MANAGEMENT |
|
|
|
; IS BEING USED. |
|
|
|
; |
|
|
|
Z2U_BUFSZ .EQU 32 ; RECEIVE RING BUFFER SIZE |
|
|
|
; |
|
|
|
@ -97,7 +94,7 @@ Z2U_PREINIT2: |
|
|
|
ADD IY,DE ; BUMP IY TO NEXT ENTRY |
|
|
|
DJNZ Z2U_PREINIT0 ; LOOP UNTIL DONE |
|
|
|
; |
|
|
|
#IF (INTMODE > 0) |
|
|
|
#IF (INTMODE == 3) |
|
|
|
; SETUP INT VECTORS AS APPROPRIATE |
|
|
|
LD A,(Z2U_DEV) ; GET DEVICE COUNT |
|
|
|
OR A ; SET FLAGS |
|
|
|
@ -158,7 +155,7 @@ Z2U_INIT1: |
|
|
|
; |
|
|
|
; RECEIVE INTERRUPT HANDLER |
|
|
|
; |
|
|
|
#IF (INTMODE > 0) |
|
|
|
#IF (INTMODE == 3) |
|
|
|
; |
|
|
|
; INT ENTRY POINT |
|
|
|
; |
|
|
|
@ -256,7 +253,7 @@ Z2U_FNTBL: |
|
|
|
.ECHO "*** INVALID Z2U FUNCTION TABLE ***\n" |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (INTMODE == 0) |
|
|
|
#IF (INTMODE < 3) |
|
|
|
; |
|
|
|
Z2U_IN: |
|
|
|
CALL Z2U_IST ; CHECK FOR CHAR READY |
|
|
|
@ -348,7 +345,7 @@ Z2U_OUT: |
|
|
|
; |
|
|
|
; |
|
|
|
; |
|
|
|
#IF (INTMODE == 0) |
|
|
|
#IF (INTMODE < 3) |
|
|
|
; |
|
|
|
Z2U_IST: |
|
|
|
; |
|
|
|
@ -431,7 +428,7 @@ Z2U_INITDEVX: |
|
|
|
OUT (Z280_UARTCFG),A ; SET CONFIG REGISTER |
|
|
|
LD A,%10000000 ; ENABLE, NO INTS, 1 STOP BITS |
|
|
|
OUT (Z280_UARTXCTL),A ; SET CONFIG REGISTER |
|
|
|
#IF (INTMODE > 0) |
|
|
|
#IF (INTMODE == 3) |
|
|
|
LD A,%11000000 ; ENABLE W/ INTS |
|
|
|
#ELSE |
|
|
|
LD A,%10000000 ; ENABLE, NO INTS |
|
|
|
@ -443,7 +440,7 @@ Z2U_INITDEVX: |
|
|
|
LD C,Z280_IOPR ; REG C POINTS TO I/O PAGE REGISTER |
|
|
|
.DB $ED,$6E ; LDCTL (C),HL |
|
|
|
; |
|
|
|
#IF (INTMODE > 0) |
|
|
|
#IF (INTMODE == 3) |
|
|
|
; |
|
|
|
; RESET THE RECEIVE BUFFER |
|
|
|
LD E,(IY+6) |
|
|
|
@ -525,7 +522,7 @@ Z2U_PRTCFG: |
|
|
|
; |
|
|
|
Z2U_DEV .DB 0 ; DEVICE NUM USED DURING INIT |
|
|
|
; |
|
|
|
#IF (INTMODE == 0) |
|
|
|
#IF (INTMODE < 3) |
|
|
|
; |
|
|
|
Z2U0_RCVBUF .EQU 0 |
|
|
|
; |
|
|
|
|