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