![]() |
Routines |
| Prev: 7B78 | Up: Map | Next: 7C23 |
|
Used by the routine at PARSE_ACTION.
Four words are gathered from the frame at IY into a probe at PROBE_VERB -- the verb with its ALL bit set aside at ALL_BIT, then a particle and a preposition from the two noun phrases (PICK_WORD) -- and ACTION_PATTERNS is searched with NAME_MATCHES for one that fits, so word order within the probe does not matter. A match goes on to ASSIGN_PHRASES. With none the verb does nothing: "you ... . time passes..." -- except in an order, which goes back to the parser at TURN_OVER instead.
|
||||||||||||||
| MATCH_PATTERN | 7B9E | PUSH IY | ||||||||||||
| 7BA0 | LD L,(IY+$00) | |||||||||||||
| 7BA3 | LD H,(IY+$01) | |||||||||||||
| 7BA6 | LD A,H | |||||||||||||
| 7BA7 | AND $80 | |||||||||||||
| 7BA9 | LD (ALL_BIT),A | |||||||||||||
| 7BAC | RES 7,H | |||||||||||||
| 7BAE | LD (PROBE_VERB),HL | |||||||||||||
| 7BB1 | LD HL,PROBE_WORD1 | |||||||||||||
| 7BB4 | PUSH HL | |||||||||||||
| 7BB5 | LD B,$04 | |||||||||||||
| 7BB7 | CALL CLEAR_BYTES | |||||||||||||
| 7BBA | POP HL | |||||||||||||
| 7BBB | LD B,$02 | |||||||||||||
| 7BBD | LD E,$04 | |||||||||||||
| 7BBF | CALL PICK_WORD | |||||||||||||
| 7BC2 | LD E,$0E | |||||||||||||
| 7BC4 | CALL PICK_WORD | |||||||||||||
| 7BC7 | LD E,$06 | |||||||||||||
| 7BC9 | CALL PICK_WORD | |||||||||||||
| 7BCC | LD E,$10 | |||||||||||||
| 7BCE | CALL PICK_WORD | |||||||||||||
| 7BD1 | XOR A | |||||||||||||
| 7BD2 | LD (NAME_FAILED),A | |||||||||||||
| 7BD5 | LD HL,PROBE_VERB | |||||||||||||
| 7BD8 | LD DE,$0008 | |||||||||||||
| 7BDB | LD IX,ACTION_PATTERNS | |||||||||||||
| MATCH_PATTERN_0 | 7BDF | PUSH IX | ||||||||||||
| 7BE1 | POP IY | |||||||||||||
| 7BE3 | CALL NAME_MATCHES | |||||||||||||
| 7BE6 | JR Z,MATCH_PATTERN_1 | |||||||||||||
| 7BE8 | ADD IX,DE | |||||||||||||
| 7BEA | LD A,(IX+$01) | |||||||||||||
| 7BED | OR (IX+$00) | |||||||||||||
| 7BF0 | JR NZ,MATCH_PATTERN_0 | |||||||||||||
| 7BF2 | POP IY | |||||||||||||
| 7BF4 | LD A,(NAME_FAILED) | |||||||||||||
| 7BF7 | AND A | |||||||||||||
| 7BF8 | JP NZ,UNKNOWN_VERB | |||||||||||||
| 7BFB | LD HL,(PROBE_VERB) | |||||||||||||
| 7BFE | PUSH HL | |||||||||||||
| 7BFF | LD HL,MSG_YOU_TIME_PASSES | |||||||||||||
| 7C02 | XOR A | |||||||||||||
| 7C03 | LD (INPUT_STYLE),A | |||||||||||||
| 7C06 | LD (ALL_ACTION),A | |||||||||||||
| 7C09 | LD A,$01 | |||||||||||||
| 7C0B | LD (DOING_IT),A | |||||||||||||
| 7C0E | CALL RUN_MESSAGE | |||||||||||||
| 7C11 | LD A,(IS_ORDER) | |||||||||||||
| 7C14 | DEC A | |||||||||||||
| 7C15 | RET Z | |||||||||||||
| 7C16 | POP HL | |||||||||||||
| 7C17 | POP HL | |||||||||||||
| 7C18 | JP TURN_OVER | |||||||||||||
| MATCH_PATTERN_1 | 7C1B | POP IY | ||||||||||||
| 7C1D | CALL ASSIGN_PHRASES | |||||||||||||
| 7C20 | OR $01 | |||||||||||||
| 7C22 | RET | |||||||||||||
| Prev: 7B78 | Up: Map | Next: 7C23 |