C64 ROM | Routines |
Prev: E394 | Up: Map | Next: E3BA |
the target address for the LDA $EA60 becomes the BASIC execute pointer once the block is copied to its destination, any non zero page address will do at assembly time, to assemble a three byte instruction. $EA60 is RTS, NOP.
page 0 initialisation table from $0073. increment and scan memory
|
||||
E3A2 | E6 7A | INC $7A | increment BASIC execute pointer low byte | |
E3A4 | D0 02 | BNE $E3A8 | branch if no carry | |
E3A6 | E6 7B | INC $7B | else increment BASIC execute pointer high byte | |
page 0 initialisation table from $0079. scan memory
|
||||
E3A8 | AD 60 EA | LDA $EA60 | get byte to scan, address set by call routine | |
E3AB | C9 3A | CMP #":" | compare with ":" | |
E3AD | B0 0A | BCS $E3B9 | exit if>= | |
page 0 initialisation table from $0080. clear Cb if numeric
|
||||
E3AF | C9 20 | CMP #" " | compare with " " | |
E3B1 | F0 EF | BEQ $E3A2 | if " " go do next | |
E3B3 | 38 | SEC | set carry for SBC | |
E3B4 | E9 30 | SBC #"0" | subtract "0" | |
E3B6 | 38 | SEC | set carry for SBC | |
E3B7 | E9 D0 | SBC #$D0 | subtract -"0" | |
clear carry if byte = "0"-"9"
|
||||
E3B9 | 60 | RTS |
Prev: E394 | Up: Map | Next: E3BA |