| C64 ROM | Routines |
| Prev: ABB5 | Up: Map | Next: ABF9 |
|
|
||||
| ABBF | C9 22 | CMP #$22 | compare next byte with open quote | |
| ABC1 | D0 0B | BNE $ABCE | if no prompt string just do INPUT | |
| ABC3 | 20 BD AE | JSR $AEBD | print "..." string | |
| ABC6 | A9 3B | LDA #";" | load A with ";" | |
| ABC8 | 20 FF AE | JSR $AEFF | scan for CHR$(A), else do syntax error then warm start | |
| ABCB | 20 21 AB | JSR $AB21 | print string from utility pointer | |
|
This entry point is used by the routine at ABA5.
done with prompt, now get data
|
||||
| ABCE | 20 A6 B3 | JSR $B3A6 | check not Direct, back here if ok | |
| ABD1 | A9 2C | LDA #"," | set "," | |
| ABD3 | 8D FF 01 | STA $01FF | save to start of buffer - 1 | |
| ABD6 | 20 F9 AB | JSR $ABF9 | print "? " and get BASIC input | |
| ABD9 | A5 13 | LDA $13 | get current I/O channel | |
| ABDB | F0 0D | BEQ $ABEA | branch if default I/O channel | |
| ABDD | 20 B7 FF | JSR $FFB7 | read I/O status word | |
| ABE0 | 29 02 | AND #%00000010 | mask no DSR/timeout | |
| ABE2 | F0 06 | BEQ $ABEA | branch if not error | |
| ABE4 | 20 B5 AB | JSR $ABB5 | close input and output channels | |
| ABE7 | 4C F8 A8 | JMP $A8F8 | perform DATA | |
| ABEA | AD 00 02 | LDA $0200 | get first byte in input buffer | |
| ABED | D0 1E | BNE $AC0D | branch if not null | |
|
else ..
|
||||
| ABEF | A5 13 | LDA $13 | get current I/O channel | |
| ABF1 | D0 E3 | BNE $ABD6 | if not default channel go get BASIC input | |
| ABF3 | 20 06 A9 | JSR $A906 | scan for next BASIC statement ([:] or [EOL]) | |
| ABF6 | 4C FB A8 | JMP $A8FB | add Y to the BASIC execute pointer and return | |
| Prev: ABB5 | Up: Map | Next: ABF9 |