| C64 ROM | Routines |
| Prev: B7A1 | Up: Map | Next: B7E2 |
|
|
||||
| B7AD | 20 82 B7 | JSR $B782 | evaluate string, get length in A (and Y) | |
| B7B0 | D0 03 | BNE $B7B5 | branch if not null string | |
|
string was null so set result = $00
|
||||
| B7B2 | 4C F7 B8 | JMP $B8F7 | clear FAC1 exponent and sign and return | |
| B7B5 | A6 7A | LDX $7A | get BASIC execute pointer low byte | |
| B7B7 | A4 7B | LDY $7B | get BASIC execute pointer high byte | |
| B7B9 | 86 71 | STX $71 | save BASIC execute pointer low byte | |
| B7BB | 84 72 | STY $72 | save BASIC execute pointer high byte | |
| B7BD | A6 22 | LDX $22 | get string pointer low byte | |
| B7BF | 86 7A | STX $7A | save BASIC execute pointer low byte | |
| B7C1 | 18 | CLC | clear carry for add | |
| B7C2 | 65 22 | ADC $22 | add string length | |
| B7C4 | 85 24 | STA $24 | save string end low byte | |
| B7C6 | A6 23 | LDX $23 | get string pointer high byte | |
| B7C8 | 86 7B | STX $7B | save BASIC execute pointer high byte | |
| B7CA | 90 01 | BCC $B7CD | branch if no high byte increment | |
| B7CC | E8 | INX | increment string end high byte | |
| B7CD | 86 25 | STX $25 | save string end high byte | |
| B7CF | A0 00 | LDY #$00 | set index to $00 | |
| B7D1 | B1 24 | LDA ($24),Y | get string end byte | |
| B7D3 | 48 | PHA | push it | |
| B7D4 | 98 | TYA | clear A | |
| B7D5 | 91 24 | STA ($24),Y | terminate string with $00 | |
| B7D7 | 20 79 00 | JSR $0079 | scan memory | |
| B7DA | 20 F3 BC | JSR $BCF3 | get FAC1 from string | |
| B7DD | 68 | PLA | restore string end byte | |
| B7DE | A0 00 | LDY #$00 | clear index | |
| B7E0 | 91 24 | STA ($24),Y | put string end byte back | |
| Prev: B7A1 | Up: Map | Next: B7E2 |