| 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 |