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