| C64 ROM | Routines |
| Prev: EC03 | Up: Map | Next: EC78 |
|
Used by the routine at E716.
|
||||
| EC44 | C9 0E | CMP #$0E | compare with [SWITCH TO LOWER CASE] | |
| EC46 | D0 07 | BNE $EC4F | if not [SWITCH TO LOWER CASE] skip the switch | |
| EC48 | AD 18 D0 | LDA $D018 | get the start of character memory address | |
| EC4B | 09 02 | ORA #%00000010 | mask xxxx xx1x, set lower case characters | |
| EC4D | D0 09 | BNE $EC58 | go save the new value, branch always | |
|
This entry point is used by the routine at E716.
check for special character codes except for switch to lower case
|
||||
| EC4F | C9 8E | CMP #$8E | compare with [SWITCH TO UPPER CASE] | |
| EC51 | D0 0B | BNE $EC5E | if not [SWITCH TO UPPER CASE] go do the [SHIFT]+[C=] key check | |
| EC53 | AD 18 D0 | LDA $D018 | get the start of character memory address | |
| EC56 | 29 FD | AND #%11111101 | mask xxxx xx0x, set upper case characters | |
| EC58 | 8D 18 D0 | STA $D018 | save the start of character memory address | |
| EC5B | 4C A8 E6 | JMP $E6A8 | restore the registers, set the quote flag and exit | |
|
do the [SHIFT]+[C=] key check
|
||||
| EC5E | C9 08 | CMP #$08 | compare with disable [SHIFT][C=] | |
| EC60 | D0 07 | BNE $EC69 | if not disable [SHIFT][C=] skip the set | |
| EC62 | A9 80 | LDA #$80 | set to lock shift mode switch | |
| EC64 | 0D 91 02 | ORA $0291 | OR it with the shift mode switch | |
| EC67 | 30 09 | BMI $EC72 | go save the value, branch always | |
| EC69 | C9 09 | CMP #$09 | compare with enable [SHIFT][C=] | |
| EC6B | D0 EE | BNE $EC5B | exit if not enable [SHIFT][C=] | |
| EC6D | A9 7F | LDA #$7F | set to unlock shift mode switch | |
| EC6F | 2D 91 02 | AND $0291 | AND it with the shift mode switch | |
| EC72 | 8D 91 02 | STA $0291 | save the shift mode switch $00 = enabled, $80 = locked | |
| EC75 | 4C A8 E6 | JMP $E6A8 | restore the registers, set the quote flag and exit | |
| Prev: EC03 | Up: Map | Next: EC78 |