| C64 ROM | Routines |
| Prev: AB1E | Up: Map | Next: AB3B |
| AB21 | 20 A6 B6 | JSR $B6A6 | pop string off descriptor stack, or from top of string space; returns with A = length, X = pointer low byte, Y = pointer high byte | |
| AB24 | AA | TAX | copy length | |
| AB25 | A0 00 | LDY #$00 | clear index | |
| AB27 | E8 | INX | increment length, for pre decrement loop | |
| AB28 | CA | DEX | decrement length | |
| AB29 | F0 BC | BEQ $AAE7 | exit if done | |
| AB2B | B1 22 | LDA ($22),Y | get byte from string | |
| AB2D | 20 47 AB | JSR $AB47 | print the character | |
| AB30 | C8 | INY | increment index | |
| AB31 | C9 0D | CMP #$0D | compare byte with [CR] | |
| AB33 | D0 F3 | BNE $AB28 | loop if not [CR] | |
| AB35 | 20 E5 AA | JSR $AAE5 | toggle A, EOR #$FF. what is the point of this ?? | |
| AB38 | 4C 28 AB | JMP $AB28 | loop | |
| Prev: AB1E | Up: Map | Next: AB3B |