![]() |
Routines |
| Prev: 9010 | Up: Map | Next: 9198 |
|
Mark the given object as carried and print the result.
|
||||
| HandlerPickUpObject | 9014 | LD C,$01 | Call UpdateObjectLocation to mark the object as carried. | |
| 9016 | CALL UpdateObjectLocation | |||
| 9019 | LD HL,$622C | The player is carrying one more object. | ||
| 901C | INC (HL) | |||
| 901D | LD HL,$6466 | Print "O.K." and start a new line. | ||
| 9020 | JR HandlerPickUpObject_Loop2 | |||
| HandlerPickUpObject_Loop1 | 9022 | LD HL,$645B | Print "You can't." and start a new line. | |
|
This entry point is used by the routine at ActionTake.
|
||||
| HandlerPickUpObject_Loop2 | 9025 | CALL PrintStringAndANewline | } | |
| 9028 | RET | Return. | ||
|
This entry point is used by the routine at ActionTake.
|
||||
| HandlerPickUpObject_Step1 | 9029 | LD HL,$8959 | Point at the phrase at 8959 and call Parser_AdvanceToSeparator to match it against the command. | |
| 902C | CALL Parser_AdvanceToSeparator | |||
| 902F | JR NZ,HandlerPickUpObject_Step2 | Jump to HandlerPickUpObject_Step2 if it doesn't match. | ||
| 9031 | LD A,$00 | Take A knife. (00). | ||
| 9033 | CALL ActionTake_Step1 | |||
| 9036 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step2 | 9039 | LD HL,$8969 | Point at the phrase at 8969 and call Parser_AdvanceToSeparator to match it against the command. | |
| 903C | CALL Parser_AdvanceToSeparator | |||
| 903F | JR NZ,HandlerPickUpObject_Step3 | Jump to HandlerPickUpObject_Step3 if it doesn't match. | ||
| 9041 | LD A,$01 | Take A laser pistol. (01). | ||
| 9043 | CALL ActionTake_Step1 | |||
| 9046 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step3 | 9049 | LD HL,$8960 | Point at the phrase at 8960 and call Parser_AdvanceToSeparator to match it against the command. | |
| 904C | CALL Parser_AdvanceToSeparator | |||
| 904F | JR NZ,HandlerPickUpObject_Step4 | Jump to HandlerPickUpObject_Step4 if it doesn't match. | ||
| 9051 | LD A,$02 | Take A coin. (02). | ||
| 9053 | CALL ActionTake_Step1 | |||
| 9056 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step4 | 9059 | LD HL,$896E | Point at the phrase at 896E and call Parser_AdvanceToSeparator to match it against the command. | |
| 905C | CALL Parser_AdvanceToSeparator | |||
| 905F | JR NZ,HandlerPickUpObject_Step5 | Jump to HandlerPickUpObject_Step5 if it doesn't match. | ||
| 9061 | LD A,$03 | Take A crystal rod. (03). | ||
| 9063 | CALL ActionTake_Step1 | |||
| 9066 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step5 | 9069 | LD HL,$8940 | Point at the phrase at Table_PhraseLists and call Parser_AdvanceToSeparator to match it against the command. | |
| 906C | CALL Parser_AdvanceToSeparator | |||
| 906F | JR NZ,HandlerPickUpObject_Step6 | Jump to HandlerPickUpObject_Step6 if it doesn't match. | ||
| 9071 | LD A,$04 | Take A detonator. (04). | ||
| 9073 | CALL ActionTake_Step1 | |||
| 9076 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step6 | 9079 | LD HL,$8964 | Point at the phrase at 8964 and call Parser_AdvanceToSeparator to match it against the command. | |
| 907C | CALL Parser_AdvanceToSeparator | |||
| 907F | JR NZ,HandlerPickUpObject_Step7 | Jump to HandlerPickUpObject_Step7 if it doesn't match. | ||
| 9081 | LD A,$05 | Take A metal bar. (05). | ||
| 9083 | CALL ActionTake_Step1 | |||
| 9086 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step7 | 9089 | LD HL,$8973 | Jump to HandlerPickUpObject_Step10 unless the command matches the phrase at 8973 (A glowing sphere. (06)). | |
| 908C | CALL Parser_AdvanceToSeparator | |||
| 908F | JR NZ,HandlerPickUpObject_Step10 | |||
| 9091 | LD A,$06 | |||
| 9093 | CALL ActionTake_Step1 | |||
| 9096 | LD A,$06 | Jump to HandlerPickUpObject_Step9 when A glowing sphere. (06) is here or being carried. | ||
| 9098 | CALL IsObjectInCurrentRoom | |||
| 909B | JR Z,HandlerPickUpObject_Step9 | |||
| 909D | LD A,$3C | Jump back to HandlerPickUpObject_Loop1 when A glowing sphere sitting on a raised dish on a glass pedestal. (3C) is not here or being carried. | ||
| 909F | CALL IsObjectInCurrentRoom | |||
| 90A2 | JP NZ,HandlerPickUpObject_Loop1 | |||
| 90A5 | EXX | Keep the command pointer safe while the sphere is moved. | ||
| 90A6 | LD BC,$3C00 | Move A glowing sphere sitting on a raised dish on a glass pedestal. (3C) to nowhere (00). | ||
| 90A9 | CALL UpdateObjectLocation | |||
| 90AC | LD A,($6223) | Fetch the current room. | ||
| 90AF | CP $1C | The sphere was not picked up in The Crystal Chamber.. | ||
| 90B1 | JR NZ,HandlerPickUpObject_Step8 | |||
| 90B3 | LD BC,$151C | Move A glass pedestal with a raised dish on top. (15) to The Crystal Chamber. (1C). | ||
| 90B6 | CALL UpdateObjectLocation | |||
| 90B9 | EXX | Bring the command pointer back. | ||
| 90BA | JR HandlerPickUpObject_Step9 | Continue at HandlerPickUpObject_Step9 to pick the object up. | ||
| HandlerPickUpObject_Step8 | 90BC | LD BC,$1613 | Move A glass pedestal with a raised dish on top. (16) to The Blue Room. (13). | |
| 90BF | CALL UpdateObjectLocation | |||
| 90C2 | EXX | Bring the command pointer back. | ||
| HandlerPickUpObject_Step9 | 90C3 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | |
| HandlerPickUpObject_Step10 | 90C6 | LD HL,$8942 | Jump to HandlerPickUpObject_Step12 unless the command matches the phrase at 8942 (Some poison fungus. (07)). | |
| 90C9 | CALL Parser_AdvanceToSeparator | |||
| 90CC | JR NZ,HandlerPickUpObject_Step12 | |||
| 90CE | LD A,$07 | |||
| 90D0 | CALL ActionTake_Step1 | |||
| 90D3 | LD A,$39 | Jump back to HandlerPickUpObject when A pair of gloves,which you are wearing. (39) is here or being carried. | ||
| 90D5 | CALL IsObjectInCurrentRoom | |||
| 90D8 | JP Z,HandlerPickUpObject | |||
| HandlerPickUpObject_Step11 | 90DB | LD HL,$8DB3 | Return to Game Over (GameOver) after the message. | |
| 90DE | EX (SP),HL | |||
| 90DF | LD HL,$7AA8 | Print "As soon as you touch the fungus, a terrible pain racks your body. You collapse to the floor." and start a new line. | ||
| 90E2 | JP HandlerPickUpObject_Loop2 | |||
| HandlerPickUpObject_Step12 | 90E5 | LD HL,$8978 | Jump to HandlerPickUpObject_Step14 unless the command matches the phrase at 8978 (Some round stones. (08)). | |
| 90E8 | CALL Parser_AdvanceToSeparator | |||
| 90EB | JR NZ,HandlerPickUpObject_Step14 | |||
| 90ED | LD A,$08 | |||
| 90EF | CALL ActionTake_Step1 | |||
| 90F2 | LD A,$22 | Jump to HandlerPickUpObject_Step13 when An alcove containing some round stones. (22) is not here or being carried. | ||
| 90F4 | CALL IsObjectInCurrentRoom | |||
| 90F7 | JR NZ,HandlerPickUpObject_Step13 | |||
| 90F9 | EXX | Keep the command pointer safe while the stones are moved. | ||
| 90FA | LD BC,$2200 | Move An alcove containing some round stones. (22) to nowhere (00). | ||
| 90FD | CALL UpdateObjectLocation | |||
| 9100 | LD BC,$232E | Move An empty alcove. (23) to The Torture Chamber. (2E). | ||
| 9103 | CALL UpdateObjectLocation | |||
| 9106 | EXX | Bring the command pointer back. | ||
| HandlerPickUpObject_Step13 | 9107 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | |
| HandlerPickUpObject_Step14 | 910A | LD HL,$8962 | Jump to HandlerPickUpObject_Step16 unless the command matches the phrase at 8962 (A key. (09)). | |
| 910D | CALL Parser_AdvanceToSeparator | |||
| 9110 | JR NZ,HandlerPickUpObject_Step16 | |||
| 9112 | LD A,$09 | |||
| 9114 | CALL ActionTake_Step1 | |||
| 9117 | LD A,$3B | Jump back to HandlerPickUpObject_Loop1 when A key in the control panel. The key is set to 'ON'. (3B) is here or being carried. | ||
| 9119 | CALL IsObjectInCurrentRoom | |||
| 911C | JP Z,HandlerPickUpObject_Loop1 | |||
| 911F | LD A,$3A | Jump to HandlerPickUpObject_Step15 when A key in the control panel. The key is set to 'OFF'. (3A) is not here or being carried. | ||
| 9121 | CALL IsObjectInCurrentRoom | |||
| 9124 | JR NZ,HandlerPickUpObject_Step15 | |||
| 9126 | EXX | Keep the command pointer safe while the key is moved. | ||
| 9127 | LD BC,$3A00 | Move A key in the control panel. The key is set to 'OFF'. (3A) to nowhere (00). | ||
| 912A | CALL UpdateObjectLocation | |||
| 912D | LD BC,$2A36 | Move A keyhole in the control panel. (2A) to The Reactor Room. (36). | ||
| 9130 | CALL UpdateObjectLocation | |||
| 9133 | EXX | Bring the command pointer back. | ||
| HandlerPickUpObject_Step15 | 9134 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | |
| HandlerPickUpObject_Step16 | 9137 | LD HL,$895B | Point at the phrase at 895B and call Parser_AdvanceToSeparator to match it against the command. | |
| 913A | CALL Parser_AdvanceToSeparator | |||
| 913D | JR NZ,HandlerPickUpObject_Step17 | Jump to HandlerPickUpObject_Step17 if it doesn't match. | ||
| 913F | LD A,$0A | Take A space axe. (0A). | ||
| 9141 | CALL ActionTake_Step1 | |||
| 9144 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step17 | 9147 | LD HL,$8947 | Point at the phrase at 8947 and call Parser_AdvanceToSeparator to match it against the command. | |
| 914A | CALL Parser_AdvanceToSeparator | |||
| 914D | JR NZ,HandlerPickUpObject_Step18 | Jump to HandlerPickUpObject_Step18 if it doesn't match. | ||
| 914F | LD A,$0B | Take Some explosives. (0B). | ||
| 9151 | CALL ActionTake_Step1 | |||
| 9154 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step18 | 9157 | LD HL,$897D | Jump to HandlerPickUpObject_Step19 unless the command matches the phrase at 897D (A pair of gloves,which you are wearing. (39)). | |
| 915A | CALL Parser_AdvanceToSeparator | |||
| 915D | JR NZ,HandlerPickUpObject_Step19 | |||
| 915F | LD A,$39 | |||
| 9161 | CALL ActionTake_Step1 | |||
| 9164 | LD A,$0C | A pair of gloves. is the object this phrase really takes. | ||
| 9166 | CALL ActionTake_Step1 | Call ActionTake_Step1 to take that object. | ||
| 9169 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | ||
| HandlerPickUpObject_Step19 | 916C | LD HL,$8B58 | Jump to HandlerPickUpObject_Step21 unless the command matches the phrase at 8B58. | |
| 916F | CALL Parser_AdvanceToSeparator | |||
| 9172 | JR NZ,HandlerPickUpObject_Step21 | |||
| 9174 | LD A,($6223) | Fetch the current room. | ||
| 9177 | CP $04 | The ship can be claimed only from In the Galaxy at rest,on a landing pad.. | ||
| 9179 | JP NZ,HandlerPickUpObject_Loop1 | |||
| 917C | LD A,$40 | Jump back to HandlerPickUpObject_Loop1 when The ship is ready to take off. (40) is not here or being carried. | ||
| 917E | CALL IsObjectInCurrentRoom | |||
| 9181 | JP NZ,HandlerPickUpObject_Loop1 | |||
| 9184 | LD A,$0E | Jump to HandlerPickUpObject_Step20 when The airlock is closed. (0E) is here or being carried. | ||
| 9186 | CALL IsObjectInCurrentRoom | |||
| 9189 | JR Z,HandlerPickUpObject_Step20 | |||
| 918B | LD HL,$84CC | Print "Not with an open airlock!" and start a new line. | ||
| 918E | JP HandlerPickUpObject_Loop2 | |||
| HandlerPickUpObject_Step20 | 9191 | POP HL | The ship is ready, so the game can end. | |
| 9192 | JP GameComplete | Jump to GameComplete to game complete. | ||
| HandlerPickUpObject_Step21 | 9195 | JP HandlerPickUpObject_Loop1 | Continue at HandlerPickUpObject_Loop1 to say the player can't. | |
| Prev: 9010 | Up: Map | Next: 9198 |