|
|
@ -94,16 +94,28 @@ KBD_INIT: |
|
|
CP KBDMODE_VRC ; VRC? |
|
|
CP KBDMODE_VRC ; VRC? |
|
|
JR Z,KBD_INIT1 ; IF SO, MUST ASSUME PRESENT |
|
|
JR Z,KBD_INIT1 ; IF SO, MUST ASSUME PRESENT |
|
|
; |
|
|
; |
|
|
|
|
|
#IF ((INTMODE == 2) & INTPS2KBD) |
|
|
|
|
|
HB_DI ; DISABLE INTERRUPTS WHILE WE PROBE |
|
|
|
|
|
#ENDIF |
|
|
LD A,$AA ; CONTROLLER SELF TEST |
|
|
LD A,$AA ; CONTROLLER SELF TEST |
|
|
CALL KBD_PUTCMD ; SEND IT |
|
|
CALL KBD_PUTCMD ; SEND IT |
|
|
CALL KBD_GETDATA_P ; CONTROLLER SHOULD RESPOND WITH $55 (ACK) |
|
|
CALL KBD_GETDATA_P ; CONTROLLER SHOULD RESPOND WITH $55 (ACK) |
|
|
; |
|
|
; |
|
|
CP $55 ; IS IT THERE? |
|
|
CP $55 ; IS IT THERE? |
|
|
JR Z,KBD_INIT1 ; IF SO, CONTINUE |
|
|
JR Z,KBD_INIT1 ; IF SO, CONTINUE |
|
|
|
|
|
#IF ((INTMODE == 2) & INTPS2KBD) |
|
|
|
|
|
HB_EI ; RESTORE INTERRUPTS |
|
|
|
|
|
#ENDIF |
|
|
PRTS(" NOT PRESENT$") ; DIAGNOSE PROBLEM |
|
|
PRTS(" NOT PRESENT$") ; DIAGNOSE PROBLEM |
|
|
RET ; BAIL OUT |
|
|
RET ; BAIL OUT |
|
|
; |
|
|
; |
|
|
KBD_INIT1: |
|
|
KBD_INIT1: |
|
|
|
|
|
#IF ((INTMODE == 2) & INTPS2KBD) |
|
|
|
|
|
; CALL KBDQINIT ; INITIALIZE QUEUE |
|
|
|
|
|
LD HL,KBD_INT ; INSTALL VECTOR |
|
|
|
|
|
LD (IVT(INT_PS2KB)),HL ; IVT INDEX |
|
|
|
|
|
HB_EI ; ENABLE INTERUPTS |
|
|
|
|
|
#ENDIF |
|
|
PRTS(" MODE=$") ; TAG |
|
|
PRTS(" MODE=$") ; TAG |
|
|
LD A,(IY+KBD_MODE) ; GET MODE VALUE |
|
|
LD A,(IY+KBD_MODE) ; GET MODE VALUE |
|
|
LD DE,KBD_STR_MODEPS2 |
|
|
LD DE,KBD_STR_MODEPS2 |
|
|
@ -115,12 +127,6 @@ KBD_INIT1: |
|
|
LD DE,KBD_STR_MODEUNK |
|
|
LD DE,KBD_STR_MODEUNK |
|
|
KBD_INIT2: |
|
|
KBD_INIT2: |
|
|
CALL WRITESTR |
|
|
CALL WRITESTR |
|
|
; |
|
|
|
|
|
#IF ((INTMODE == 2) & INTPS2KBD) |
|
|
|
|
|
; CALL KBDQINIT ; INITIALIZE QUEUE |
|
|
|
|
|
LD HL,KBD_INT ; INSTALL VECTOR |
|
|
|
|
|
LD (IVT(INT_PS2KB)),HL ; IVT INDEX |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
; |
|
|
LD A,$60 ; SET COMMAND REGISTER |
|
|
LD A,$60 ; SET COMMAND REGISTER |
|
|
CALL KBD_PUTCMD ; SEND IT |
|
|
CALL KBD_PUTCMD ; SEND IT |
|
|
|