Submitted by Steve Fewell
Description:
Get the result of the expression at BASIC Text Pointer A, convert the result to Integer (Type mismatch error if String),
and Set BASIC Text Pointer A to BASIC Text Pointer B value.
Push &2A (the LSB of the Integer value - i.e. the first GCOL parameter) to the stack.
Call &96AC to check for a comma ('Missing ,' error if not found) and get the integer result at the BASIC text Pointer B
location (issuing 'Type mismatch' error if a String value was found).
Call &9B96 to check that the Statement (at BASIC Text Pointer B location) terminates correctly ('Syntax' error is issued
if end of statement marker is not found).
Output character 18 (to start a VDU 18 - GCOL command).
Pop the first Integer from the stack and [&979B] output the character (this is the first parameter to the GCOL command).
Next, output the contents of location &2A (The IWA LSB, which contains the second GCOL parameter), this completes the
GCOL parameters, and the Operating system now executes the GCOL command.
Lastly, jump to &9005 to start processing the next program statement.
9741 | o | 032 111 146 | 20 6F 92 | JSR &926F Evaluate Expression at BASIC Text pointer A convert result to integer |
9744 | * | 165 042 | A5 2A | LDA &2A |
9746 | H | 072 | 48 | PHA |
9747 | 032 172 150 | 20 AC 96 | JSR &96AC Check for ',', get result of expression and convert result to Integer | |
974A | 032 150 155 | 20 96 9B | JSR &9B96 Check end of Statement (PTR B) | |
974D | 169 018 | A9 12 | LDA#&12 | |
974F | 032 238 255 | 20 EE FF | JSR &FFEE OSBYTE | |
9752 | h | 104 | 68 | PLA |
9753 | F | 128 070 | 80 46 | BRA 70 --> &979B |