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 |