mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Merge pull request #639 from codesmythe/kbd_state_constants_move
Consolidate KBD_STATE constants.
This commit is contained in:
@@ -502,6 +502,17 @@ KY_F3 .EQU $19 ; F3
|
||||
KY_F2 .EQU $1A ; F2
|
||||
KY_F1 .EQU $1B ; F1
|
||||
;
|
||||
; KEYBOARD STATE BITS (FOR KBD_STATE, KBD_LSTATE, KBD_RSTATE)
|
||||
;
|
||||
KBD_SHIFT .EQU 01H ; BIT 0, SHIFT ACTIVE (PRESSED)
|
||||
KBD_CTRL .EQU 02H ; BIT 1, CONTROL ACTIVE (PRESSED)
|
||||
KBD_ALT .EQU 04H ; BIT 2, ALT ACTIVE (PRESSED)
|
||||
KBD_WIN .EQU 08H ; BIT 3, WIN ACTIVE (PRESSED)
|
||||
KBD_SCRLCK .EQU 10H ; BIT 4, CAPS LOCK ACTIVE (TOGGLED ON)
|
||||
KBD_NUMLCK .EQU 20H ; BIT 5, NUM LOCK ACTIVE (TOGGLED ON)
|
||||
KBD_CAPSLCK .EQU 40H ; BIT 6, SCROLL LOCK ACTIVE (TOGGLED ON)
|
||||
KBD_NUMPAD .EQU 80H ; BIT 7, NUM PAD KEY (KEY PRESSED IS ON NUM PAD)
|
||||
;
|
||||
; HBIOS CONTROL BLOCK OFFSETS
|
||||
; WARNING: THESE OFFSETS WILL CHANGE SIGNIFICANTLY BETWEEN RELEASES
|
||||
; IT IS STRONGLY RECOMMENDED THAT YOU DO NOT USE THEM!
|
||||
|
||||
@@ -46,17 +46,6 @@ KBD_EXT .EQU 01H ; BIT 0, EXTENDED SCANCODE ACTIVE
|
||||
KBD_BREAK .EQU 02H ; BIT 1, THIS IS A KEY UP (BREAK) EVENT
|
||||
KBD_KEYRDY .EQU 80H ; BIT 7, INDICATES A DECODED KEYCODE IS READY
|
||||
;
|
||||
; STATE BITS (FOR KBD_STATE, KBD_LSTATE, KBD_RSTATE)
|
||||
;
|
||||
KBD_SHIFT .EQU 01H ; BIT 0, SHIFT ACTIVE (PRESSED)
|
||||
KBD_CTRL .EQU 02H ; BIT 1, CONTROL ACTIVE (PRESSED)
|
||||
KBD_ALT .EQU 04H ; BIT 2, ALT ACTIVE (PRESSED)
|
||||
KBD_WIN .EQU 08H ; BIT 3, WIN ACTIVE (PRESSED)
|
||||
KBD_SCRLCK .EQU 10H ; BIT 4, CAPS LOCK ACTIVE (TOGGLED ON)
|
||||
KBD_NUMLCK .EQU 20H ; BIT 5, NUM LOCK ACTIVE (TOGGLED ON)
|
||||
KBD_CAPSLCK .EQU 40H ; BIT 6, SCROLL LOCK ACTIVE (TOGGLED ON)
|
||||
KBD_NUMPAD .EQU 80H ; BIT 7, NUM PAD KEY (KEY PRESSED IS ON NUM PAD)
|
||||
;
|
||||
KBD_DEFRPT .EQU $40 ; DEFAULT REPEAT RATE (.5 SEC DELAY, 30CPS)
|
||||
KBD_DEFSTATE .EQU KBD_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
|
||||
KBD_ACK .EQU $FA ; CMD ACKNOWLEDGE
|
||||
|
||||
@@ -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_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_DEFSTATE .EQU MKY_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
|
||||
MKY_DEFSTATE .EQU KBD_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
|
||||
|
||||
; --------------.-----------------------
|
||||
; SCAN CODE TABL.ES
|
||||
@@ -374,7 +363,7 @@ MKY_GETDATAX:
|
||||
;
|
||||
MKY_SETLEDS:
|
||||
LD A,(MKY_STATE) ; LOAD THE STATE FLAGS
|
||||
AND MKY_CAPSLCK ; CHECK CAPS LOCK
|
||||
AND KBD_CAPSLCK ; CHECK CAPS LOCK
|
||||
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
|
||||
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
|
||||
JR Z,MKY_DEC5D ; NON-SHIFTED, MOVE ON
|
||||
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
|
||||
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?
|
||||
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?
|
||||
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?
|
||||
JR Z,MKY_DEC8A ; YES, GO TO BIT SET ROUTINE
|
||||
JR MKY_DEC9 ; NOT A TOGGLE KEY, CONTINUE
|
||||
@@ -674,7 +663,7 @@ MKY_DEC8A: ; RECORD THE TOGGLE
|
||||
|
||||
MKY_DEC9: ; ADJUST KEYCODE FOR CONTROL MODIFIER
|
||||
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
|
||||
LD A,(MKY_KEYCODE) ; GET CURRENT KEYCODE IN A
|
||||
CP 'a' ; COMPARE TO LOWERCASE A
|
||||
@@ -692,7 +681,7 @@ MKY_DEC9A:
|
||||
|
||||
MKY_DEC10: ; ADJUST KEYCODE FOR CAPS LOCK
|
||||
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
|
||||
LD A,(MKY_KEYCODE) ; GET THE CURRENT KEYCODE VALUE
|
||||
CP 'a' ; COMPARE TO LOWERCASE A
|
||||
|
||||
@@ -32,19 +32,8 @@ PPK_EXT .EQU 01H ; BIT 0, EXTENDED SCANCODE ACTIVE
|
||||
PPK_BREAK .EQU 02H ; BIT 1, THIS IS A KEY UP (BREAK) EVENT
|
||||
PPK_KEYRDY .EQU 80H ; BIT 7, INDICATES A DECODED KEYCODE IS READY
|
||||
;
|
||||
; STATE BITS (FOR PPK_STATE, PPK_LSTATE, PPK_RSTATE)
|
||||
;
|
||||
PPK_SHIFT .EQU 01H ; BIT 0, SHIFT ACTIVE (PRESSED)
|
||||
PPK_CTRL .EQU 02H ; BIT 1, CONTROL ACTIVE (PRESSED)
|
||||
PPK_ALT .EQU 04H ; BIT 2, ALT ACTIVE (PRESSED)
|
||||
PPK_WIN .EQU 08H ; BIT 3, WIN ACTIVE (PRESSED)
|
||||
PPK_SCRLCK .EQU 10H ; BIT 4, CAPS LOCK ACTIVE (TOGGLED ON)
|
||||
PPK_NUMLCK .EQU 20H ; BIT 5, NUM LOCK ACTIVE (TOGGLED ON)
|
||||
PPK_CAPSLCK .EQU 40H ; BIT 6, SCROLL LOCK ACTIVE (TOGGLED ON)
|
||||
PPK_NUMPAD .EQU 80H ; BIT 7, NUM PAD KEY (KEY PRESSED IS ON NUM PAD)
|
||||
;
|
||||
PPK_DEFRPT .EQU $40 ; DEFAULT REPEAT RATE (.5 SEC DELAY, 30CPS)
|
||||
PPK_DEFSTATE .EQU PPK_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
|
||||
PPK_DEFSTATE .EQU KBD_NUMLCK ; DEFAULT STATE (NUM LOCK ON)
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
; DATA
|
||||
@@ -608,7 +597,7 @@ PPK_DEC5C: ; PERFORM REGULAR KEY (NOT EXTENDED) KEY MAPPING
|
||||
|
||||
; SETUP POINTER TO MAPPING TABLE BASED ON SHIFTED OR UNSHIFTED STATE
|
||||
LD A,(PPK_STATE) ; GET STATE
|
||||
AND PPK_SHIFT ; SHIFT ACTIVE?
|
||||
AND KBD_SHIFT ; SHIFT ACTIVE?
|
||||
LD HL,PPK_MAPSTD ; LOAD ADDRESS OF NON-SHIFTED MAPPING TABLE
|
||||
JR Z,PPK_DEC5D ; NON-SHIFTED, MOVE ON
|
||||
LD HL,PPK_MAPSHIFT ; LOAD ADDRESS OF SHIFTED MAPPING TABLE
|
||||
@@ -683,13 +672,13 @@ PPK_DEC7: ; COMPLETE PROCESSING OF EXTENDED AND KEY BREAK EVENTS
|
||||
|
||||
PPK_DEC8: ; HANDLE TOGGLE KEYS
|
||||
LD A,(PPK_KEYCODE) ; GET THE CURRENT KEYCODE INTO A
|
||||
LD E,PPK_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?
|
||||
JR Z,PPK_DEC8A ; YES, GO TO BIT SET ROUTINE
|
||||
LD E,PPK_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?
|
||||
JR Z,PPK_DEC8A ; YES, GO TO BIT SET ROUTINE
|
||||
LD E,PPK_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?
|
||||
JR Z,PPK_DEC8A ; YES, GO TO BIT SET ROUTINE
|
||||
JR PPK_DEC9 ; NOT A TOGGLE KEY, CONTINUE
|
||||
@@ -703,7 +692,7 @@ PPK_DEC8A: ; RECORD THE TOGGLE
|
||||
|
||||
PPK_DEC9: ; ADJUST KEYCODE FOR CONTROL MODIFIER
|
||||
LD A,(PPK_STATE) ; GET THE CURRENT STATE BITS
|
||||
AND PPK_CTRL ; CHECK THE CONTROL BIT
|
||||
AND KBD_CTRL ; CHECK THE CONTROL BIT
|
||||
JR Z,PPK_DEC10 ; CONTROL KEY NOT PRESSED, MOVE ON
|
||||
LD A,(PPK_KEYCODE) ; GET CURRENT KEYCODE IN A
|
||||
CP 'a' ; COMPARE TO LOWERCASE A
|
||||
@@ -721,7 +710,7 @@ PPK_DEC9A:
|
||||
|
||||
PPK_DEC10: ; ADJUST KEYCODE FOR CAPS LOCK
|
||||
LD A,(PPK_STATE) ; LOAD THE STATE FLAGS
|
||||
AND PPK_CAPSLCK ; CHECK CAPS LOCK
|
||||
AND KBD_CAPSLCK ; CHECK CAPS LOCK
|
||||
JR Z,PPK_DEC11 ; CAPS LOCK NOT ACTIVE, MOVE ON
|
||||
LD A,(PPK_KEYCODE) ; GET THE CURRENT KEYCODE VALUE
|
||||
CP 'a' ; COMPARE TO LOWERCASE A
|
||||
@@ -742,7 +731,7 @@ PPK_DEC10B:
|
||||
|
||||
PPK_DEC11: ; HANDLE NUM PAD KEYS
|
||||
LD A,(PPK_STATE) ; GET THE CURRENT STATE FLAGS
|
||||
AND ~PPK_NUMPAD ; ASSUME NOT A NUMPAD KEY, CLEAR THE NUMPAD BIT
|
||||
AND ~KBD_NUMPAD ; ASSUME NOT A NUMPAD KEY, CLEAR THE NUMPAD BIT
|
||||
LD (PPK_STATE),A ; SAVE IT
|
||||
|
||||
LD A,(PPK_KEYCODE) ; GET THE CURRENT KEYCODE
|
||||
@@ -751,10 +740,10 @@ PPK_DEC11: ; HANDLE NUM PAD KEYS
|
||||
JR NZ,PPK_DEC12 ; NOPE, GET OUT
|
||||
|
||||
LD A,(PPK_STATE) ; LOAD THE CURRENT STATE FLAGS
|
||||
OR PPK_NUMPAD ; TURN ON THE NUMPAD BIT
|
||||
OR KBD_NUMPAD ; TURN ON THE NUMPAD BIT
|
||||
LD (PPK_STATE),A ; SAVE IT
|
||||
|
||||
AND PPK_NUMLCK ; IS NUM LOCK BIT SET?
|
||||
AND KBD_NUMLCK ; IS NUM LOCK BIT SET?
|
||||
JR Z,PPK_DEC11A ; NO, SKIP NUMLOCK PROCESSING
|
||||
LD A,(PPK_KEYCODE) ; GET THE KEYCODE
|
||||
XOR $10 ; FLIP VALUES FOR NUMLOCK
|
||||
|
||||
Reference in New Issue
Block a user