| C64 ROM | Routines |
| Prev: E566 | Up: Map | Next: E591 |
| E56C | A6 D6 | LDX $D6 | get the cursor row | |
| E56E | A5 D3 | LDA $D3 | get the cursor column | |
| E570 | B4 D9 | LDY $D9,X | get start of line X pointer high byte | |
| E572 | 30 08 | BMI $E57C | if it is the logical line start continue | |
| E574 | 18 | CLC | else clear carry for add | |
| E575 | 69 28 | ADC #$28 | add one line length | |
| E577 | 85 D3 | STA $D3 | save the cursor column | |
| E579 | CA | DEX | decrement the cursor row | |
| E57A | 10 F4 | BPL $E570 | loop, branch always | |
| E57C | 20 F0 E9 | JSR $E9F0 | fetch a screen address | |
| E57F | A9 27 | LDA #$27 | set the line length | |
| E581 | E8 | INX | increment the cursor row | |
| E582 | B4 D9 | LDY $D9,X | get the start of line X pointer high byte | |
| E584 | 30 06 | BMI $E58C | if logical line start exit | |
| E586 | 18 | CLC | else clear carry for add | |
| E587 | 69 28 | ADC #$28 | add one line length to the current line length | |
| E589 | E8 | INX | increment the cursor row | |
| E58A | 10 F6 | BPL $E582 | loop, branch always | |
| E58C | 85 D5 | STA $D5 | save current screen line length | |
| E58E | 4C 24 EA | JMP $EA24 | calculate the pointer to colour RAM and return | |
| Prev: E566 | Up: Map | Next: E591 |