| Routines

1C56: THE 'FETCH A VALUE' SUBROUTINE

Used by the routines at CLASS_02 and READ_3. This subroutine is used by LET, READ and INPUT statements to first evaluate and then assign values to the previously designated variable. The main entry point is used by LET and READ and considers FLAGS, whereas the entry point VAL_FET_2 is used by INPUT and considers FLAGX.
VAL_FET_1 | 1C56 | LD A,($5C3B) | Use FLAGS.
This entry point is used by the routine at IN_ASSIGN with A holding the contents of FLAGX.
VAL_FET_2 | 1C59 | PUSH AF | Save FLAGS or FLAGX.
| 1C5A | CALL SCANNING | Evaluate the next expression.
| 1C5D | POP AF | Fetch the old FLAGS or FLAGX.
| 1C5E | LD D,(IY+$01) | Fetch the new FLAGS.
| 1C61 | XOR D | The nature - numeric or string - of the variable and the expression must match.
| 1C62 | AND $40
| 1C64 | JR NZ,REPORT_C | Give report C if they do not.
| 1C66 | BIT 7,D | Jump forward to make the actual assignment unless checking syntax (in which case simply return).
| 1C68 | JP NZ,LET
| 1C6B | RET