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 ; 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 ; 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 ; AT STARTUP. NOT USING IT FOR NOW BECAUSE IT IS NOT A PROBLEM IF
; YOU DON'T USE THE KEYBOARD DURING BOOT. ; YOU DON'T USE THE KEYBOARD DURING BOOT.
@ -156,11 +156,11 @@ 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
; ;
HB_DI ; DISABLE INTERRUPTS WHILE WE PROBE
; HB_DI ; DISABLE INTERRUPTS WHILE WE PROBE
LD A,KBD_CON_CST ; CONTROLLER SELF TEST LD A,KBD_CON_CST ; 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)
HB_EI ; RESTORE INTERRUPTS
; HB_EI ; RESTORE INTERRUPTS
; ;
CP $55 ; IS IT THERE? CP $55 ; IS IT THERE?
JR Z,KBD_INIT1 ; IF SO, CONTINUE JR Z,KBD_INIT1 ; IF SO, CONTINUE
@ -386,7 +386,7 @@ KBD_RESET:
LD A,$FF ; RESET COMMAND LD A,$FF ; RESET COMMAND
CALL KBD_PUTDATA ; SEND IT CALL KBD_PUTDATA ; SEND IT
CALL KBD_GETDATA ; GET THE ACK CALL KBD_GETDATA ; GET THE ACK
LD B,0 ; SETUP LOOP COUNTER
LD KBD_WAITTO ; SETUP LOOP COUNTER
KBD_RESET0: KBD_RESET0:
PUSH BC ; PRESERVE COUNTER PUSH BC ; PRESERVE COUNTER
CALL KBD_GETDATA ; TRY TO GET THE RESPONSE 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 RET Z ; NO KEY READY, RETURN WITH A=0, Z SET
LD (KBD_SCANCODE),A ; SAVE SCANCODE 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? CP $AA ; KEYBOARD INSERTION?
JR NZ,KBD_DEC3 ; NOPE, BYPASS JR NZ,KBD_DEC3 ; NOPE, BYPASS
CALL LDELAY ; WAIT A BIT CALL LDELAY ; WAIT A BIT

Loading…
Cancel
Save