![]() |
Routines |
| Prev: 793D | Up: Map | Next: 79A9 |
|
Used by the routine at START.
|
||||
| OBEY | 7960 | XOR A | From the first frame | |
| 7961 | LD (ALL_ACTION),A | |||
| 7964 | LD IY,COMMAND_FRAME | |||
| 7968 | LD HL,QUESTION_WAITING | A reply was just fitted into an unfinished command: clear that, and go on from the next frame | ||
| 796B | CP (HL) | |||
| 796C | LD (HL),A | |||
| 796D | JP NZ,FRAME_DONE | |||
| OBEY_0 | 7970 | CALL PARSE_ACTION | Work out this frame's command; nothing left, and the line is done | |
| 7973 | JR NZ,OBEY_1 | |||
| 7975 | XOR A | No more commands on this line | ||
| 7976 | LD (MORE_COMMANDS),A | |||
| 7979 | RET | |||
| OBEY_1 | 797A | CALL TRY_IT | Check it; SAY_WHY_NOT when it will not do | |
| 797D | JP Z,SAY_WHY_NOT | |||
| 7980 | LD A,$01 | Really do it | ||
| 7982 | LD (DOING_IT),A | |||
| 7985 | CALL NARRATE_ACTION | Tell the player what was done (NARRATE_ACTION) | ||
| 7988 | CALL DO_ACTION | Carry it out -- the player's MOVE was reached from here | ||
|
This entry point is used by the routine at MATCH_PATTERN.
|
||||
| TURN_OVER | 798B | CALL END_OF_TURN | The world's turn (END_OF_TURN) | |
|
This entry point is used by the routine at TARGET_TROUBLE.
|
||||
| OBEY_NEXT | 798E | LD A,(ALL_ACTION) | Asked to go round the same frame again? | |
| 7991 | AND A | |||
| 7992 | JR NZ,OBEY_0 | |||
|
This entry point is used by the routine at TARGET_TROUBLE.
|
||||
| FRAME_DONE | 7994 | LD A,(COMMAND_FRAMES) | Count the frame off; none left, done | |
| 7997 | DEC A | |||
| 7998 | LD (COMMAND_FRAMES),A | |||
| 799B | RET Z | |||
| 799C | LD BC,$FFE8 | On to the next frame down, passing over ALL EXCEPT's exception frames | ||
| OBEY_2 | 799F | ADD IY,BC | ||
| 79A1 | BIT 6,(IY+$01) | |||
| 79A5 | JR NZ,OBEY_2 | |||
| 79A7 | JR OBEY_0 | |||
| Prev: 793D | Up: Map | Next: 79A9 |