| C64 ROM | Routines |
| Prev: B72C | Up: Map | Next: B761 |
|
|
||||
| B737 | A9 FF | LDA #$FF | set default length = 255 | |
| B739 | 85 65 | STA $65 | save default length | |
| B73B | 20 79 00 | JSR $0079 | scan memory | |
| B73E | C9 29 | CMP #")" | compare with ")" | |
| B740 | F0 06 | BEQ $B748 | branch if = ")" (skip second byte get) | |
| B742 | 20 FD AE | JSR $AEFD | scan for ",", else do syntax error then warm start | |
| B745 | 20 9E B7 | JSR $B79E | get byte parameter | |
| B748 | 20 61 B7 | JSR $B761 | pull string data and byte parameter from stack. return pointer in descriptor, byte in A (and X), Y=0 | |
| B74B | F0 4B | BEQ $B798 | if null do illegal quantity error then warm start | |
| B74D | CA | DEX | decrement start index | |
| B74E | 8A | TXA | copy to A | |
| B74F | 48 | PHA | save string start offset | |
| B750 | 18 | CLC | clear carry for sub-1 | |
| B751 | A2 00 | LDX #$00 | clear output string length | |
| B753 | F1 50 | SBC ($50),Y | subtract string length | |
| B755 | B0 B6 | BCS $B70D | if start>string length go do null string | |
| B757 | 49 FF | EOR #$FF | complement -length | |
| B759 | C5 65 | CMP $65 | compare byte parameter | |
| B75B | 90 B1 | BCC $B70E | if length>remaining string go do RIGHT$ | |
| B75D | A5 65 | LDA $65 | get length byte | |
| B75F | B0 AD | BCS $B70E | go do string copy, branch always | |
| Prev: B72C | Up: Map | Next: B761 |