Prev: EA87 Up: Map Next: EB79
EB48: evaluate the SHIFT/CTRL/C= keys
EB48 AD 8D 02 LDA $028D get the keyboard shift/control/c= flag
EB4B C9 03 CMP #$03 compare with [SHIFT][C=]
EB4D D0 15 BNE $EB64 if not [SHIFT][C=] go ??
EB4F CD 8E 02 CMP $028E compare with last
EB52 F0 EE BEQ $EB42 exit if still the same
EB54 AD 91 02 LDA $0291 get the shift mode switch $00 = enabled, $80 = locked
EB57 30 1D BMI $EB76 if locked continue keyboard decode
toggle text mode
EB59 AD 18 D0 LDA $D018 get the start of character memory address
EB5C 49 02 EOR #%00000010 toggle address b1
EB5E 8D 18 D0 STA $D018 save the start of character memory address
EB61 4C 76 EB JMP $EB76 continue the keyboard decode
select keyboard table
EB64 0A ASL A << 1
EB65 C9 08 CMP #$08 compare with [CTRL]
EB67 90 02 BCC $EB6B if [CTRL] is not pressed skip the index change
EB69 A9 06 LDA #$06 else [CTRL] was pressed so make the index = $06
EB6B AA TAX copy the index to X
EB6C BD 79 EB LDA $EB79,X get the decode table pointer low byte
EB6F 85 F5 STA $F5 save the decode table pointer low byte
EB71 BD 7A EB LDA $EB7A,X get the decode table pointer high byte
EB74 85 F6 STA $F6 save the decode table pointer high byte
EB76 4C E0 EA JMP $EAE0 continue the keyboard decode
Prev: EA87 Up: Map Next: EB79