Submitted by Steve Fewell
Description:
Call routine &96B9 to Set BASIC Text Pointer B to BASIC Text Pointer A value, check that the next non-space character
is an "=", and issue 'Mistake' error if it isn't. Get Result of the expression at BASIC Text Pointer B. Check that the
statement terminates correctly (with a '<cr>', ':' or 'ELSE'), (issue 'Syntax error if not terminated correctly), and convert
the numeric result value to Integer (or issue 'Type mismatch' error if the value is a String).
Set HIMEM (&06-&07) to the Integer results 2 LSB bytes (&2A-&2B).
Set the Stack Pointer to the HIMEM value.
Note: this will destroy any information currently on the stack.
Lastly, jump to &9005 to start processing the next program statement.
960F | 032 185 150 | 20 B9 96 | JSR &96B9 | |
9612 | * | 165 042 | A5 2A | LDA &2A |
9614 | 133 006 | 85 06 | STA &06 | |
9616 | 133 004 | 85 04 | STA &04 | |
9618 | + | 165 043 | A5 2B | LDA &2B |
961A | 133 007 | 85 07 | STA &07 | |
961C | 133 005 | 85 05 | STA &05 | |
961E | 128 027 | 80 1B | BRA 27 --> &963B [JMP &9005] Process the next statement |
96B9 | F | 032 070 155 | 20 46 9B | JSR &9B46 Ptr B = Ptr A; Check for '=' & get result of expression; check end of statement |
96BC | ' | 165 039 | A5 27 | LDA &27 |
96BE | ... Check if Float value & convert to Integer |