Prev: 7EE6 Up: Map Next: 7F22
7EF5: Parser: store a noun phrase in the frame
Copies the 10-byte noun phrase from $7C45 into the command frame: to offset 4 if bit 6 of E says the first phrase is still empty (7F1A), otherwise to offset 14 if bit 7 says the second is empty (7F02). The corresponding bit of E is cleared. If both phrases are already full, it is a syntax error (7FEE).
7EF5 BIT 6,E Is the first noun phrase free?
7EF7 JR NZ,$7F1A Yes: store it there
7EF9 BIT 7,E Is the second free?
7EFB JR NZ,$7F02 Yes: store it there
7EFD CALL $7FEE Neither: syntax error
7F00 XOR A
7F01 RET
This entry point is used by the routine at 80AF.
7F02 RES 7,E The second phrase is now taken
7F04 PUSH DE
7F05 LD DE,$000E Offset 14 in the frame
7F08 PUSH BC
7F09 PUSH IY
7F0B POP HL
7F0C ADD HL,DE DE = the place in the frame
7F0D EX DE,HL
7F0E LD HL,$7C45 Copy the 10-byte noun phrase there
7F11 LD BC,$000A
7F14 LDIR
7F16 POP BC
7F17 POP DE
7F18 XOR A Return with Z set
7F19 RET
This entry point is used by the routines at 7E6C and 80AF.
7F1A RES 6,E The first phrase is now taken
7F1C PUSH DE
7F1D LD DE,$0004 Offset 4 in the frame
7F20 JR $7F08
Prev: 7EE6 Up: Map Next: 7F22