Browse Source

kbd optimizations

pull/475/head
b1ackmai1er 1 year ago
parent
commit
c0b48a007c
  1. 14
      Source/HBIOS/kbd.asm

14
Source/HBIOS/kbd.asm

@ -101,9 +101,9 @@ KBD_CON_IOF .EQU $20 ; XLAT DISABLED, MOUSE DISABLED, NO INTS
; KEYBOARD PRE-INITIALIZATION
;__________________________________________________________________________________________________
;
; TO BE CALLED PRIOR TO INITERRUPTS BEING ENABLED
; TO BE CALLED PRIOR TO INTERRUPTS BEING ENABLED
; MUST BE CALLED FROM VIDEO DRIVER PREINIT WITH IY SET
; THIS PREVENTS INTRERRUPT ISSUES IF 8242 HAS INTERRUPTS ENABLED
; THIS PREVENTS INTERRUPT ISSUES IF 8242 HAS INTERRUPTS ENABLED
;
; AT STARTUP. NOT USING IT FOR NOW BECAUSE IT IS NOT A PROBLEM IF
; YOU DON'T USE THE KEYBOARD DURING BOOT.
@ -156,11 +156,11 @@ KBD_INIT:
CP KBDMODE_VRC ; VRC?
JR Z,KBD_INIT1 ; IF SO, MUST ASSUME PRESENT
;
HB_DI ; DISABLE INTERRUPTS WHILE WE PROBE
; HB_DI ; DISABLE INTERRUPTS WHILE WE PROBE
LD A,KBD_CON_CST ; CONTROLLER SELF TEST
CALL KBD_PUTCMD ; SEND IT
CALL KBD_GETDATA_P ; CONTROLLER SHOULD RESPOND WITH $55 (ACK)
HB_EI ; RESTORE INTERRUPTS
; HB_EI ; RESTORE INTERRUPTS
;
CP $55 ; IS IT THERE?
JR Z,KBD_INIT1 ; IF SO, CONTINUE
@ -386,7 +386,7 @@ KBD_RESET:
LD A,$FF ; RESET COMMAND
CALL KBD_PUTDATA ; SEND IT
CALL KBD_GETDATA ; GET THE ACK
LD B,0 ; SETUP LOOP COUNTER
LD KBD_WAITTO ; SETUP LOOP COUNTER
KBD_RESET0:
PUSH BC ; PRESERVE COUNTER
CALL KBD_GETDATA ; TRY TO GET THE RESPONSE
@ -549,8 +549,8 @@ KBD_DEC1: ; PROCESS NEXT SCANCODE
RET Z ; NO KEY READY, RETURN WITH A=0, Z SET
LD (KBD_SCANCODE),A ; SAVE SCANCODE
KBD_DEC2: ; DETECT AND HANDLE SPECIAL KEYCODES
LD A,(KBD_SCANCODE) ; GET THE CURRENT SCANCODE
;KBD_DEC2: ; DETECT AND HANDLE SPECIAL KEYCODES
; LD A,(KBD_SCANCODE) ; GET THE CURRENT SCANCODE
CP $AA ; KEYBOARD INSERTION?
JR NZ,KBD_DEC3 ; NOPE, BYPASS
CALL LDELAY ; WAIT A BIT

Loading…
Cancel
Save