C64 ROM | Routines |
Prev: AF28 | Up: Map | Next: AFE6 |
Used by the routine at AE86.
only functions left so .. set up function references
|
||||
AFA7 | 0A | ASL A | *2 (2 bytes per function address) | |
AFA8 | 48 | PHA | save function offset | |
AFA9 | AA | TAX | copy function offset | |
AFAA | 20 73 00 | JSR $0073 | increment and scan memory | |
AFAD | E0 8F | CPX #$8F | compare function offset to CHR$ token offset+1 | |
AFAF | 90 20 | BCC $AFD1 | branch if < LEFT$ (can not be =) | |
get value from line .. continued
was LEFT$, RIGHT$ or MID$ so..
|
||||
AFB1 | 20 FA AE | JSR $AEFA | scan for "(", else do syntax error then warm start | |
AFB4 | 20 9E AD | JSR $AD9E | evaluate, should be string, expression | |
AFB7 | 20 FD AE | JSR $AEFD | scan for ",", else do syntax error then warm start | |
AFBA | 20 8F AD | JSR $AD8F | check if source is string, else do type mismatch | |
AFBD | 68 | PLA | restore function offset | |
AFBE | AA | TAX | copy it | |
AFBF | A5 65 | LDA $65 | get descriptor pointer high byte | |
AFC1 | 48 | PHA | push string pointer high byte | |
AFC2 | A5 64 | LDA $64 | get descriptor pointer low byte | |
AFC4 | 48 | PHA | push string pointer low byte | |
AFC5 | 8A | TXA | restore function offset | |
AFC6 | 48 | PHA | save function offset | |
AFC7 | 20 9E B7 | JSR $B79E | get byte parameter | |
AFCA | 68 | PLA | restore function offset | |
AFCB | A8 | TAY | copy function offset | |
AFCC | 8A | TXA | copy byte parameter to A | |
AFCD | 48 | PHA | push byte parameter | |
AFCE | 4C D6 AF | JMP $AFD6 | go call function | |
get value from line .. continued
was SGN() to CHR$() so..
|
||||
AFD1 | 20 F1 AE | JSR $AEF1 | evaluate expression within parentheses | |
AFD4 | 68 | PLA | restore function offset | |
AFD5 | A8 | TAY | copy to index | |
AFD6 | B9 EA 9F | LDA $9FEA,Y | get function jump vector low byte | |
AFD9 | 85 55 | STA $55 | save functions jump vector low byte | |
AFDB | B9 EB 9F | LDA $9FEB,Y | get function jump vector high byte | |
AFDE | 85 56 | STA $56 | save functions jump vector high byte | |
AFE0 | 20 54 00 | JSR $0054 | do function call | |
AFE3 | 4C 8D AD | JMP $AD8D | check if source is numeric and RTS, else do type mismatch; string functions avoid this by dumping the return address |
Prev: AF28 | Up: Map | Next: AFE6 |