C64 ROM | Routines |
Prev: B63D | Up: Map | Next: B6A3 |
B67A | A0 00 | LDY #$00 | clear index | |
B67C | B1 6F | LDA ($6F),Y | get string length | |
B67E | 48 | PHA | save it | |
B67F | C8 | INY | increment index | |
B680 | B1 6F | LDA ($6F),Y | get string pointer low byte | |
B682 | AA | TAX | copy to X | |
B683 | C8 | INY | increment index | |
B684 | B1 6F | LDA ($6F),Y | get string pointer high byte | |
B686 | A8 | TAY | copy to Y | |
B687 | 68 | PLA | get length back | |
This entry point is used by the routine at B487.
|
||||
B688 | 86 22 | STX $22 | save string pointer low byte | |
B68A | 84 23 | STY $23 | save string pointer high byte | |
B68C | A8 | TAY | copy length as index | |
B68D | F0 0A | BEQ $B699 | branch if null string | |
B68F | 48 | PHA | save length | |
B690 | 88 | DEY | decrement length/index | |
B691 | B1 22 | LDA ($22),Y | get byte from string | |
B693 | 91 35 | STA ($35),Y | save byte to destination | |
B695 | 98 | TYA | copy length/index | |
B696 | D0 F8 | BNE $B690 | loop if not all done yet | |
B698 | 68 | PLA | restore length | |
B699 | 18 | CLC | clear carry for add | |
B69A | 65 35 | ADC $35 | add string utility ptr low byte | |
B69C | 85 35 | STA $35 | save string utility ptr low byte | |
B69E | 90 02 | BCC $B6A2 | branch if no rollover | |
B6A0 | E6 36 | INC $36 | increment string utility ptr high byte | |
B6A2 | 60 | RTS |
Prev: B63D | Up: Map | Next: B6A3 |