Prev: 9010 Up: Map Next: 9198
9014: Handler: Pick Up Object
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