C64 ROM | Routines |
Prev: A3FB | Up: Map | Next: A435 |
A408 | C4 34 | CPY $34 | compare with bottom of string space high byte | |
A40A | 90 28 | BCC $A434 | if less then exit (is ok) | |
A40C | D0 04 | BNE $A412 | skip next test if greater (tested <) | |
high byte was =, now do low byte
|
||||
A40E | C5 33 | CMP $33 | compare with bottom of string space low byte | |
A410 | 90 22 | BCC $A434 | if less then exit (is ok) | |
address is > string storage ptr (oops!)
|
||||
A412 | 48 | PHA | push address low byte | |
A413 | A2 09 | LDX #$09 | set index to save $57 to $60 inclusive | |
A415 | 98 | TYA | copy address high byte (to push on stack) | |
save misc numeric work area
|
||||
A416 | 48 | PHA | push byte | |
A417 | B5 57 | LDA $57,X | get byte from $57 to $60 | |
A419 | CA | DEX | decrement index | |
A41A | 10 FA | BPL $A416 | loop until all done | |
A41C | 20 26 B5 | JSR $B526 | do garbage collection routine | |
restore misc numeric work area
|
||||
A41F | A2 F7 | LDX #$F7 | set index to restore bytes | |
A421 | 68 | PLA | pop byte | |
A422 | 95 61 | STA $61,X | save byte to $57 to $60 | |
A424 | E8 | INX | increment index | |
A425 | 30 FA | BMI $A421 | loop while -ve | |
A427 | 68 | PLA | pop address high byte | |
A428 | A8 | TAY | copy back to Y | |
A429 | 68 | PLA | pop address low byte | |
A42A | C4 34 | CPY $34 | compare with bottom of string space high byte | |
A42C | 90 06 | BCC $A434 | if less then exit (is ok) | |
A42E | D0 05 | BNE $A435 | if greater do out of memory error then warm start | |
high byte was =, now do low byte
|
||||
A430 | C5 33 | CMP $33 | compare with bottom of string space low byte | |
A432 | B0 01 | BCS $A435 | if >= do out of memory error then warm start | |
ok exit, carry clear
|
||||
A434 | 60 | RTS |
Prev: A3FB | Up: Map | Next: A435 |