|
|
@ -19,7 +19,7 @@ FIFO_SEND_IMM .EQU (FIFO_BASE+2) |
|
|
; |
|
|
; |
|
|
; DEVICE DESCRIPTION TABLE |
|
|
; DEVICE DESCRIPTION TABLE |
|
|
; |
|
|
; |
|
|
UF_CFG: .DW DEFSIOACFG ; DUMMY CONFIGURATION |
|
|
|
|
|
|
|
|
UF_CFG: .DW SER_9600_8N1 ; DUMMY CONFIGURATION |
|
|
; |
|
|
; |
|
|
; SETUP THE DISPATCH TABLE ENTRY AND INITIALIZE HARDWARE |
|
|
; SETUP THE DISPATCH TABLE ENTRY AND INITIALIZE HARDWARE |
|
|
; |
|
|
; |
|
|
@ -33,6 +33,7 @@ UF_PREINIT: |
|
|
LD BC,UF_FNTBL ; BC := FUNCTION TABLE ADDRESS |
|
|
LD BC,UF_FNTBL ; BC := FUNCTION TABLE ADDRESS |
|
|
CALL CIO_ADDENT ; ADD ENTRY IF FOUND, BC:DE |
|
|
CALL CIO_ADDENT ; ADD ENTRY IF FOUND, BC:DE |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
|
|
UF_FAIL: |
|
|
RET ; AND RETURN |
|
|
RET ; AND RETURN |
|
|
; |
|
|
; |
|
|
; INITIALIZATION ROUTINE |
|
|
; INITIALIZATION ROUTINE |
|
|
@ -72,7 +73,8 @@ UF_OUT: |
|
|
CALL UF_OST ; READY FOR CHAR? |
|
|
CALL UF_OST ; READY FOR CHAR? |
|
|
JR Z,UF_OUT ; LOOP IF NOT |
|
|
JR Z,UF_OUT ; LOOP IF NOT |
|
|
LD C,FIFO_DATA |
|
|
LD C,FIFO_DATA |
|
|
OUT (C),E |
|
|
|
|
|
|
|
|
OUT (C),E ; WRITE TO FIFO |
|
|
|
|
|
OUT (FIFO_SEND_IMM),A ; SEND IMMEDIATE |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
@ -95,7 +97,7 @@ UF_OST: |
|
|
; |
|
|
; |
|
|
; INITIALIZATION THE SETUP PARAMETER WORD AND INITIALIZE DEVICE |
|
|
; INITIALIZATION THE SETUP PARAMETER WORD AND INITIALIZE DEVICE |
|
|
; SAVE NEW SPW IF NOT A RE-INIT. ALWAYS INITIALIZE DEVICE. |
|
|
; SAVE NEW SPW IF NOT A RE-INIT. ALWAYS INITIALIZE DEVICE. |
|
|
; SPW IS NOT VAIDATED BUT IT IS NOT USED FOR ANYTHING. |
|
|
|
|
|
|
|
|
; SPW IS NOT VALIDATED BUT IT IS NOT USED FOR ANYTHING. |
|
|
; |
|
|
; |
|
|
UF_INITDEV: |
|
|
UF_INITDEV: |
|
|
; |
|
|
; |
|
|
@ -121,8 +123,8 @@ UF_FLUSH: |
|
|
IN A,(FIFO_DATA) ; CLEAR BUFFER BY READING |
|
|
IN A,(FIFO_DATA) ; CLEAR BUFFER BY READING |
|
|
JR UF_FLUSH ; ALL THE DATA |
|
|
JR UF_FLUSH ; ALL THE DATA |
|
|
UFBUFEMPTY: |
|
|
UFBUFEMPTY: |
|
|
LD (IY + 0),E ; SAVE LOW WORD |
|
|
|
|
|
LD (IY + 1),D ; SAVE HI WORD |
|
|
|
|
|
|
|
|
LD (IY+0),E ; SAVE LOW WORD |
|
|
|
|
|
LD (IY+1),D ; SAVE HI WORD |
|
|
RET ; NZ STATUS HERE INDICATES FAIL. |
|
|
RET ; NZ STATUS HERE INDICATES FAIL. |
|
|
; |
|
|
; |
|
|
; USB-FIFO WILL APPEAR AS A SERIAL DEVICE AT DEFAULT SERIAL MODE |
|
|
; USB-FIFO WILL APPEAR AS A SERIAL DEVICE AT DEFAULT SERIAL MODE |
|
|
@ -138,14 +140,18 @@ UF_QUERY: |
|
|
UF_DEVICE: |
|
|
UF_DEVICE: |
|
|
LD D,CIODEV_SIO ; D := DEVICE TYPE |
|
|
LD D,CIODEV_SIO ; D := DEVICE TYPE |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
LD E,A ; E := PHYSICAL UNIT |
|
|
|
|
|
|
|
|
LD E,A ; E := PHYSICAL UNIT, ALWAYS 0 |
|
|
LD C,A ; C := DEVICE TYPE, 0x00 IS RS-232 |
|
|
LD C,A ; C := DEVICE TYPE, 0x00 IS RS-232 |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
; USB-FIFO DETECTION ROUTINE |
|
|
; USB-FIFO DETECTION ROUTINE |
|
|
; |
|
|
; |
|
|
UF_DETECT: |
|
|
UF_DETECT: |
|
|
LD A,1 ; 0 = NONE |
|
|
|
|
|
|
|
|
; IN A,(FIFO_STATUS) ; DON'T LOAD DRIVER IF |
|
|
|
|
|
; AND 10000001B ; CABLE DISCONNECTED |
|
|
|
|
|
; SUB 10000001B ; A=0 |
|
|
|
|
|
; RET Z |
|
|
|
|
|
LD A,1 ; A=1 |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
; DRIVER FUNCTION TABLE |
|
|
; DRIVER FUNCTION TABLE |
|
|
@ -159,6 +165,6 @@ UF_FNTBL: |
|
|
.DW UF_QUERY |
|
|
.DW UF_QUERY |
|
|
.DW UF_DEVICE |
|
|
.DW UF_DEVICE |
|
|
#IF (($ - UF_FNTBL) != (CIO_FNCNT * 2)) |
|
|
#IF (($ - UF_FNTBL) != (CIO_FNCNT * 2)) |
|
|
.ECHO "*** INVALID SIO FUNCTION TABLE ***\n" |
|
|
|
|
|
|
|
|
.ECHO "*** INVALID USB-FIFO FUNCTION TABLE ***\n" |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
|