| The Hobbit (v1.0) | Routines |
| Prev: 7EE6 | Up: Map | Next: 7F22 |
|
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 | |||
| 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 |