Prev: E566 Up: Map Next: E591
E56C: set screen pointers for cursor row, column
Used by the routines at E50A, E701, E716 and E87C.
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