C64 ROM | Routines |
Prev: EA87 | Up: Map | Next: EB79 |
|
||||
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 |