| C64 ROM | Routines | 
| Prev: A49C | Up: Map | Next: A560 | 
| A533 | A5 2B | LDA $2B | get start of memory low byte | |
| A535 | A4 2C | LDY $2C | get start of memory high byte | |
| A537 | 85 22 | STA $22 | set line start pointer low byte | |
| A539 | 84 23 | STY $23 | set line start pointer high byte | |
| A53B | 18 | CLC | clear carry for add | |
| A53C | A0 01 | LDY #$01 | set index to pointer to next line high byte | |
| A53E | B1 22 | LDA ($22),Y | get pointer to next line high byte | |
| A540 | F0 1D | BEQ $A55F | exit if null, [EOT] | |
| A542 | A0 04 | LDY #$04 | point to first code byte of line | |
| 
 
there is always 1 byte + [EOL] as null entries are deleted
 
 | 
||||
| A544 | C8 | INY | next code byte | |
| A545 | B1 22 | LDA ($22),Y | get byte | |
| A547 | D0 FB | BNE $A544 | loop if not [EOL] | |
| A549 | C8 | INY | point to byte past [EOL], start of next line | |
| A54A | 98 | TYA | copy it | |
| A54B | 65 22 | ADC $22 | add line start pointer low byte | |
| A54D | AA | TAX | copy to X | |
| A54E | A0 00 | LDY #$00 | clear index, point to this line's next line pointer | |
| A550 | 91 22 | STA ($22),Y | set next line pointer low byte | |
| A552 | A5 23 | LDA $23 | get line start pointer high byte | |
| A554 | 69 00 | ADC #$00 | add any overflow | |
| A556 | C8 | INY | increment index to high byte | |
| A557 | 91 22 | STA ($22),Y | set next line pointer high byte | |
| A559 | 86 22 | STX $22 | set line start pointer low byte | |
| A55B | 85 23 | STA $23 | set line start pointer high byte | |
| A55D | 90 DD | BCC $A53C | go do next line, branch always | |
| A55F | 60 | RTS | ||
| Prev: A49C | Up: Map | Next: A560 |