|
|
|
@ -151,9 +151,9 @@ KBD_INIT2: |
|
|
|
CALL KBD_PUTCMD ; SEND IT |
|
|
|
|
|
|
|
#IF ((INTMODE == 2) & KBDINTS) |
|
|
|
LD A,KBD_CON_ION ; XLAT DISABLED, MOUSE DISABLED, WITH INTS |
|
|
|
LD A,KBD_CON_ION ; XLAT DISABLED, MOUSE DISABLED, INTS ON |
|
|
|
#ELSE |
|
|
|
LD A,KBD_CON_IOF ; XLAT DISABLED, MOUSE DISABLED, NO INTS |
|
|
|
LD A,KBD_CON_IOF ; XLAT DISABLED, MOUSE DISABLED, INTS OFF |
|
|
|
#ENDIF |
|
|
|
CALL KBD_PUTDATA ; SEND IT |
|
|
|
CALL KBD_GETDATA ; GOBBLE UP $AA FROM POWER UP, AS NEEDED |
|
|
|
@ -217,14 +217,8 @@ KBD_PUTCMD: |
|
|
|
LD E,A ; SAVE INCOMING VALUE IN E |
|
|
|
LD A,(IY+KBD_MODE) ; GET MODE BYTE |
|
|
|
CP KBDMODE_VRC ; VGARC KEYBOARD? |
|
|
|
JR Z,KBD_PUTCMD2 ; BAIL OUT |
|
|
|
LD B,KBD_WAITTO ; SETUP TO LOOP |
|
|
|
KBD_PUTCMD0: |
|
|
|
CALL KBD_OST ; GET OUTPUT REGISTER STATUS |
|
|
|
JR NZ,KBD_PUTCMD1 ; EMPTY, GO TO WRITE |
|
|
|
CALL DELAY ; WAIT A BIT |
|
|
|
DJNZ KBD_PUTCMD0 ; LOOP UNTIL COUNTER EXHAUSTED |
|
|
|
RET |
|
|
|
RET Z ; BAIL OUT |
|
|
|
CALL KBD_CHK_OST |
|
|
|
KBD_PUTCMD1: |
|
|
|
LD A,E ; RECOVER VALUE TO WRITE |
|
|
|
#IF (KBDTRACE >= 2) |
|
|
|
@ -233,10 +227,7 @@ KBD_PUTCMD1: |
|
|
|
CALL PC_GT |
|
|
|
CALL PRTHEXBYTE |
|
|
|
#ENDIF |
|
|
|
CALL KBD_CMDOUT ; OUTPUT CMD TO PORT |
|
|
|
KBD_PUTCMD2: |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET |
|
|
|
JP KBD_CMDOUT ; OUTPUT CMD TO PORT |
|
|
|
; |
|
|
|
;__________________________________________________________________________________________________ |
|
|
|
KBD_PUTDATA: |
|
|
|
@ -246,14 +237,8 @@ KBD_PUTDATA: |
|
|
|
LD E,A ; SAVE INCOMING VALUE IN E |
|
|
|
LD A,(IY+KBD_MODE) ; GET MODE BYTE |
|
|
|
CP KBDMODE_VRC ; VGARC KEYBOARD? |
|
|
|
JR Z,KBD_PUTDATA2 ; BAIL OUT |
|
|
|
LD B,KBD_WAITTO ; SETUP TO LOOP |
|
|
|
KBD_PUTDATA0: |
|
|
|
CALL KBD_OST ; GET OUTPUT REGISTER STATUS |
|
|
|
JR NZ,KBD_PUTDATA1 ; EMPTY, GO TO WRITE |
|
|
|
CALL DELAY ; WAIT A BIT |
|
|
|
DJNZ KBD_PUTDATA0 ; LOOP UNTIL COUNTER EXHAUSTED |
|
|
|
RET |
|
|
|
RET Z ; BAIL OUT |
|
|
|
CALL KBD_CHK_OST |
|
|
|
KBD_PUTDATA1: |
|
|
|
LD A,E ; RECOVER VALUE TO WRITE |
|
|
|
#IF (KBDTRACE >= 2) |
|
|
|
@ -261,9 +246,19 @@ KBD_PUTDATA1: |
|
|
|
CALL PC_GT |
|
|
|
CALL PRTHEXBYTE |
|
|
|
#ENDIF |
|
|
|
CALL KBD_DTAOUT ; WRITE IT |
|
|
|
KBD_PUTDATA2: |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
JP KBD_DTAOUT ; WRITE IT |
|
|
|
; |
|
|
|
;__________________________________________________________________________________________________ |
|
|
|
; |
|
|
|
; CHECK OUTPUT BUFFER IS READY TO ACCEPT. TIMEOUT IF BUFFER DOES NOT BECOME READY |
|
|
|
; |
|
|
|
KBD_CHK_OST: |
|
|
|
LD B,KBD_WAITTO ; SETUP TO LOOP |
|
|
|
KBD_OST_LP: |
|
|
|
CALL KBD_OST ; GET OUTPUT REGISTER STATUS |
|
|
|
RET NZ ; EMPTY, GO TO WRITE |
|
|
|
CALL DELAY ; WAIT A BIT |
|
|
|
DJNZ KBD_OST_LP ; LOOP UNTIL COUNTER EXHAUSTED |
|
|
|
RET |
|
|
|
; |
|
|
|
;__________________________________________________________________________________________________ |
|
|
|
|