Browse Source

Change mky.asm to use KBD_* STATE constants.

pull/639/head
Rob Gowin 2 months ago
parent
commit
b8439c29e6
  1. 27
      Source/HBIOS/mky.asm

27
Source/HBIOS/mky.asm

@ -75,19 +75,8 @@ MKY_EXT .EQU 01H ; BIT 0, EXTENDED SCANCODE ACTIVE
MKY_BREAK .EQU 02H ; BIT 1, THIS IS A KEY UP (BREAK) EVENT MKY_BREAK .EQU 02H ; BIT 1, THIS IS A KEY UP (BREAK) EVENT
MKY_KEYRDY .EQU 80H ; BIT 7, INDICATES A DECODED KEYCODE IS READY MKY_KEYRDY .EQU 80H ; BIT 7, INDICATES A DECODED KEYCODE IS READY
; ;
; STATE BITS (FOR MKY_STATE, MKY_LSTATE, MKY_RSTATE)
;
MKY_SHIFT .EQU 01H ; BIT 0, SHIFT ACTIVE (PRESSED)
MKY_CTRL .EQU 02H ; BIT 1, CONTROL ACTIVE (PRESSED)
MKY_ALT .EQU 04H ; BIT 2, ALT ACTIVE (PRESSED)
MKY_WIN .EQU 08H ; BIT 3, WIN ACTIVE (PRESSED)
MKY_SCRLCK .EQU 10H ; BIT 4, CAPS LOCK ACTIVE (TOGGLED ON)
MKY_NUMLCK .EQU 20H ; BIT 5, NUM LOCK ACTIVE (TOGGLED ON)
MKY_CAPSLCK .EQU 40H ; BIT 6, SCROLL LOCK ACTIVE (TOGGLED ON)
MKY_NUMPAD .EQU 80H ; BIT 7, NUM PAD KEY (KEY PRESSED IS ON NUM PAD)
;
MKY_DEFRPT .EQU $40 ; DEFAULT REPEAT RATE (.5 SEC DELAY, 30CPS) MKY_DEFRPT .EQU $40 ; DEFAULT REPEAT RATE (.5 SEC DELAY, 30CPS)
MKY_DEFSTATE .EQU MKY_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
MKY_DEFSTATE .EQU KBD_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
; --------------.----------------------- ; --------------.-----------------------
; SCAN CODE TABL.ES ; SCAN CODE TABL.ES
@ -374,7 +363,7 @@ MKY_GETDATAX:
; ;
MKY_SETLEDS: MKY_SETLEDS:
LD A,(MKY_STATE) ; LOAD THE STATE FLAGS LD A,(MKY_STATE) ; LOAD THE STATE FLAGS
AND MKY_CAPSLCK ; CHECK CAPS LOCK
AND KBD_CAPSLCK ; CHECK CAPS LOCK
JR Z, MKY_LEDCAPSOFF JR Z, MKY_LEDCAPSOFF
; ;
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
@ -579,7 +568,7 @@ MKY_DEC5C: ; PERFORM REGULAR KEY (NOT EXTENDED) KEY MAPPING
; SETUP POINTER TO MAPPING TABLE BASED ON SHIFTED OR UNSHIFTED STATE ; SETUP POINTER TO MAPPING TABLE BASED ON SHIFTED OR UNSHIFTED STATE
LD A,(MKY_STATE) ; GET STATE LD A,(MKY_STATE) ; GET STATE
AND MKY_SHIFT ; SHIFT ACTIVE?
AND KBD_SHIFT ; SHIFT ACTIVE?
LD HL,MKY_MAPSTD ; LOAD ADDRESS OF NON-SHIFTED MAPPING TABLE LD HL,MKY_MAPSTD ; LOAD ADDRESS OF NON-SHIFTED MAPPING TABLE
JR Z,MKY_DEC5D ; NON-SHIFTED, MOVE ON JR Z,MKY_DEC5D ; NON-SHIFTED, MOVE ON
LD HL,MKY_MAPSHIFT ; LOAD ADDRESS OF SHIFTED MAPPING TABLE LD HL,MKY_MAPSHIFT ; LOAD ADDRESS OF SHIFTED MAPPING TABLE
@ -654,13 +643,13 @@ MKY_DEC7: ; COMPLETE PROCESSING OF EXTENDED AND KEY BREAK EVENTS
MKY_DEC8: ; HANDLE TOGGLE KEYS MKY_DEC8: ; HANDLE TOGGLE KEYS
LD A,(MKY_KEYCODE) ; GET THE CURRENT KEYCODE INTO A LD A,(MKY_KEYCODE) ; GET THE CURRENT KEYCODE INTO A
LD E,MKY_CAPSLCK ; SETUP E WITH CAPS LOCK STATE BIT
LD E,KBD_CAPSLCK ; SETUP E WITH CAPS LOCK STATE BIT
CP $BC ; IS THIS THE CAPS LOCK KEY? CP $BC ; IS THIS THE CAPS LOCK KEY?
JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE
LD E,MKY_NUMLCK ; SETUP E WITH NUM LOCK STATE BIT
LD E,KBD_NUMLCK ; SETUP E WITH NUM LOCK STATE BIT
CP $BD ; IS THIS THE NUM LOCK KEY? CP $BD ; IS THIS THE NUM LOCK KEY?
JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE
LD E,MKY_SCRLCK ; SETUP E WITH SCROLL LOCK STATE BIT
LD E,KBD_SCRLCK ; SETUP E WITH SCROLL LOCK STATE BIT
CP $BE ; IS THIS THE SCROLL LOCK KEY? CP $BE ; IS THIS THE SCROLL LOCK KEY?
JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE
JR MKY_DEC9 ; NOT A TOGGLE KEY, CONTINUE JR MKY_DEC9 ; NOT A TOGGLE KEY, CONTINUE
@ -674,7 +663,7 @@ MKY_DEC8A: ; RECORD THE TOGGLE
MKY_DEC9: ; ADJUST KEYCODE FOR CONTROL MODIFIER MKY_DEC9: ; ADJUST KEYCODE FOR CONTROL MODIFIER
LD A,(MKY_STATE) ; GET THE CURRENT STATE BITS LD A,(MKY_STATE) ; GET THE CURRENT STATE BITS
AND MKY_CTRL ; CHECK THE CONTROL BIT
AND KBD_CTRL ; CHECK THE CONTROL BIT
JR Z,MKY_DEC10 ; CONTROL KEY NOT PRESSED, MOVE ON JR Z,MKY_DEC10 ; CONTROL KEY NOT PRESSED, MOVE ON
LD A,(MKY_KEYCODE) ; GET CURRENT KEYCODE IN A LD A,(MKY_KEYCODE) ; GET CURRENT KEYCODE IN A
CP 'a' ; COMPARE TO LOWERCASE A CP 'a' ; COMPARE TO LOWERCASE A
@ -692,7 +681,7 @@ MKY_DEC9A:
MKY_DEC10: ; ADJUST KEYCODE FOR CAPS LOCK MKY_DEC10: ; ADJUST KEYCODE FOR CAPS LOCK
LD A,(MKY_STATE) ; LOAD THE STATE FLAGS LD A,(MKY_STATE) ; LOAD THE STATE FLAGS
AND MKY_CAPSLCK ; CHECK CAPS LOCK
AND KBD_CAPSLCK ; CHECK CAPS LOCK
JR Z,MKY_DEC12 ; CAPS LOCK NOT ACTIVE, MOVE ON JR Z,MKY_DEC12 ; CAPS LOCK NOT ACTIVE, MOVE ON
LD A,(MKY_KEYCODE) ; GET THE CURRENT KEYCODE VALUE LD A,(MKY_KEYCODE) ; GET THE CURRENT KEYCODE VALUE
CP 'a' ; COMPARE TO LOWERCASE A CP 'a' ; COMPARE TO LOWERCASE A

Loading…
Cancel
Save