Xenos
Start: 5D00: 31 9A BF LD SP,$BF9A ; Set the stack pointer 5D03: 21 C0 3F LD HL,$3FC0 ; Set cursor to ... 5D06: 22 20 40 LD (CursorPointer),HL ; ... start of last row on screen 5D09: 3E 01 LD A,$01 ; Current section is ... 5D0B: 32 FA 71 LD (currentLoadedSection),A; ... SECTION1.DAT 5D0E: 3E 01 LD A,$01 ; The player is ... 5D10: 32 1E 72 LD (activeObject),A ; ... the active object 5D13: 47 LD B,A ; Look up ... 5D14: CD 57 70 CALL GetObjectScriptByIndex; ... the player object 5D17: CD C8 61 CALL SkipIDCalcEnd ; Find start and end 5D1A: 3A 21 72 LD A,(currentRoom) ; The current room number 5D1D: 77 LD (HL),A ; Set the player's location 5D1E: 23 INC HL ; Object's disk section 5D1F: 3A FA 71 LD A,(currentLoadedSection); This is the currently loaded section 5D22: 77 LD (HL),A ; Note the user is in this section ; 5D23: 21 67 72 LD HL,$7267 ; Splash message 5D26: CD 57 63 CALL ExecuteCommand ; Welcome the player ; 5D29: 3E 0D LD A,$0D ; Print a ... 5D2B: CD EB 70 CALL PrintCharCullSpaces ; ... linefeed ; 5D2E: CD 99 62 CALL GetKey ; Wait for a key to start the game 5D31: 97 SUB A 5D32: 21 66 72 LD HL,$7266 ; Initialize ... 5D35: CD 57 63 CALL ExecuteCommand ; ... the game (this loads SECTION1.DAT) GameLoop: 5D38: 31 9A BF LD SP,$BF9A ; Reset the stack 5D3B: CD 52 62 CALL GetInputLine ; Get the user input 5D3E: 97 SUB A ; A zero to initialize the decoded pieces: 5D3F: 32 03 72 LD (adjWord),A ; 5D42: 32 06 72 LD (lsbAdj1),A ; 5D45: 32 08 72 LD (lsbVerb),A ; 5D48: 32 FE 71 LD (tmp1),A ; 5D4B: 32 FF 71 LD (verbWord),A ; 5D4E: 32 05 72 LD ($7205),A ; 5D51: 32 04 72 LD (commandTarg),A ; 5D54: 32 00 72 LD (prepWord),A ; 5D57: 32 01 72 LD (prepGiven),A ; 5D5A: 32 0B 72 LD (varObject),A ; 5D5D: 32 0F 72 LD (firstNoun),A ; 5D60: 32 15 72 LD (secondNoun),A ; ; 5D63: 3E 01 LD A,$01 ; Set active object ... 5D65: 32 1E 72 LD (activeObject),A ; ... to the player 5D68: 47 LD B,A ; Get the player ... 5D69: CD 57 70 CALL GetObjectScriptByIndex; ... object pointer 5D6C: 22 1F 72 LD (activeObjectPtr),HL; Hold this for others 5D6F: CD C8 61 CALL SkipIDCalcEnd ; Get to the data 5D72: 7E LD A,(HL) ; Get the player's room number 5D73: A7 AND A ; Is the player in a room (as opposed to an object)? 5D74: FA 83 5D JP M,$5D83 ; Yes ... use it 5D77: 47 LD B,A ; Must be an object ... 5D78: CD 57 70 CALL GetObjectScriptByIndex; ... find object ... 5D7B: CD C8 61 CALL SkipIDCalcEnd ; ... that has the player 5D7E: 7E LD A,(HL) ; Is this object contained ... 5D7F: A7 AND A ; ... by yet another object? 5D80: F2 77 5D JP P,$5D77 ; Yes ... recurse up the container tree to a room ; 5D83: 32 21 72 LD (currentRoom),A ; Room that has the player 5D86: 47 LD B,A ; Look up ... 5D87: 21 00 52 LD HL,sectionData ; ... the room ... 5D8A: CD A5 61 CALL FindCollectionItemByID; ... object 5D8D: 22 22 72 LD (currentRoomPtr),HL ; Hold onto the current room ptr 5D90: A7 AND A ; Did we find the room number in the section? 5D91: C3 9A 5D JP $5D9A ; Skip over the DIE sequence (this should be a "JP NZ,$5D9A") ; ; !! These two instructions are never reached from other parts of the code. I believe the original idea was to ; kill the player if the room number is 0, which it should never be. This might be a kind of safeguard in case ; something goes wrong with the rest of the code or disk file. The "AND A" should be followed by a "JP NZ" ; instead of an "always jump". ; 5D94: 21 2B 76 LD HL,DieEnergyBeamCommand; This is the DIE ENERGY BEAM from nowhere function 5D97: CD 57 63 CALL ExecuteCommand ; Kill the player and end the program ; 5D9A: 21 47 72 LD HL,$7247 ; ?? input token buffer 5D9D: 22 24 72 LD ($7224),HL ; ?? next token 5DA0: 36 00 LD (HL),$00 5DA2: 21 C0 3F LD HL,$3FC0 5DA5: CD A5 62 CALL $62A5 ; 5DA8: CA BB 5D JP Z,$5DBB ; 5DAB: 7E LD A,(HL) 5DAC: FE 20 CP $20 5DAE: CA A5 5D JP Z,$5DA5 ; 5DB1: 7D LD A,L 5DB2: FE FF CP $FF 5DB4: CA BB 5D JP Z,$5DBB ; 5DB7: 23 INC HL 5DB8: C3 AB 5D JP $5DAB ; 5DBB: 7D LD A,L 5DBC: FE FF CP $FF 5DBE: C2 A5 5D JP NZ,$5DA5 ; 5DC1: 2A 24 72 LD HL,($7224) ; 5DC4: 36 00 LD (HL),$00 5DC6: 21 47 72 LD HL,$7247 5DC9: 7E LD A,(HL) 5DCA: A7 AND A 5DCB: CA 6B 5E JP Z,$5E6B ; 5DCE: FE 02 CP $02 5DD0: C2 E1 5D JP NZ,$5DE1 ; 5DD3: 23 INC HL 5DD4: 7E LD A,(HL) 5DD5: 2B DEC HL 5DD6: FE 09 CP $09 5DD8: D2 E1 5D JP NC,$5DE1 ; 5DDB: 32 04 72 LD (commandTarg),A ; 5DDE: 23 INC HL 5DDF: 23 INC HL 5DE0: 23 INC HL 5DE1: 7E LD A,(HL) 5DE2: 23 INC HL 5DE3: A7 AND A 5DE4: CA 6B 5E JP Z,$5E6B ; 5DE7: 46 LD B,(HL) 5DE8: 23 INC HL 5DE9: 4E LD C,(HL) 5DEA: 23 INC HL 5DEB: E5 PUSH HL 5DEC: 3D DEC A 5DED: C2 14 5E JP NZ,$5E14 ; 5DF0: 21 DF 72 LD HL,$72DF 5DF3: CD A5 61 CALL FindCollectionItemByID; 5DF6: D2 0D 5E JP NC,$5E0D ; 5DF9: CD C8 61 CALL SkipIDCalcEnd ; 5DFC: CD DC 61 CALL CompareHLandDE ; 5DFF: D2 0D 5E JP NC,$5E0D ; 5E02: 3A FF 71 LD A,(verbWord) ; 5E05: BE CP (HL) 5E06: 23 INC HL 5E07: 7E LD A,(HL) 5E08: 23 INC HL 5E09: C2 FC 5D JP NZ,$5DFC ; 5E0C: 47 LD B,A 5E0D: 78 LD A,B 5E0E: 32 FF 71 LD (verbWord),A ; 5E11: C3 67 5E JP $5E67 ; 5E14: 3D DEC A 5E15: C2 51 5E JP NZ,$5E51 ; 5E18: 3A 01 72 LD A,(prepGiven) ; 5E1B: A7 AND A 5E1C: CA 3F 5E JP Z,$5E3F ; 5E1F: 21 15 72 LD HL,$7215 5E22: 70 LD (HL),B 5E23: 23 INC HL 5E24: 3A 03 72 LD A,(adjWord) ; 5E27: 77 LD (HL),A 5E28: 23 INC HL 5E29: 3A 06 72 LD A,(lsbAdj1) ; 5E2C: 77 LD (HL),A 5E2D: A7 AND A 5E2E: C2 32 5E JP NZ,$5E32 ; 5E31: 71 LD (HL),C 5E32: 97 SUB A 5E33: 32 03 72 LD (adjWord),A ; 5E36: 32 01 72 LD (prepGiven),A ; 5E39: 32 06 72 LD (lsbAdj1),A ; 5E3C: C3 67 5E JP $5E67 ; 5E3F: 2A 0F 72 LD HL,(firstNoun) ; 5E42: 22 15 72 LD (secondNoun),HL ; 5E45: 3A 11 72 LD A,($7211) ; 5E48: 32 17 72 LD ($7217),A ; 5E4B: 21 0F 72 LD HL,$720F 5E4E: C3 22 5E JP $5E22 ; 5E51: 3D DEC A 5E52: C2 60 5E JP NZ,$5E60 ; 5E55: 78 LD A,B 5E56: 32 03 72 LD (adjWord),A ; 5E59: 79 LD A,C 5E5A: 32 06 72 LD (lsbAdj1),A ; 5E5D: C3 67 5E JP $5E67 ; 5E60: 78 LD A,B 5E61: 32 00 72 LD (prepWord),A ; 5E64: 32 01 72 LD (prepGiven),A ; 5E67: E1 POP HL 5E68: C3 E1 5D JP $5DE1 ; 5E6B: 3A FF 71 LD A,(verbWord) ; 5E6E: A7 AND A 5E6F: CA 3D 61 JP Z,$613D ; 5E72: 21 15 72 LD HL,$7215 5E75: CD 99 5F CALL $5F99 ; 5E78: 32 15 72 LD (secondNoun),A ; 5E7B: 22 18 72 LD (secondNounPtr),HL ; 5E7E: 21 0F 72 LD HL,$720F 5E81: CD 99 5F CALL $5F99 ; 5E84: 32 0F 72 LD (firstNoun),A ; 5E87: 22 12 72 LD (firstNounPtr),HL ; 5E8A: 97 SUB A 5E8B: 32 01 72 LD (prepGiven),A ; 5E8E: 2A 12 72 LD HL,(firstNounPtr) ; 5E91: 3A 0F 72 LD A,(firstNoun) ; 5E94: A7 AND A 5E95: CA 9E 5E JP Z,$5E9E ; 5E98: CD C8 61 CALL SkipIDCalcEnd ; 5E9B: 23 INC HL 5E9C: 23 INC HL 5E9D: 7E LD A,(HL) 5E9E: 32 14 72 LD ($7214),A ; 5EA1: 2A 18 72 LD HL,(secondNounPtr) ; 5EA4: 3A 15 72 LD A,(secondNoun) ; 5EA7: A7 AND A 5EA8: CA B1 5E JP Z,$5EB1 ; 5EAB: CD C8 61 CALL SkipIDCalcEnd ; 5EAE: 23 INC HL 5EAF: 23 INC HL 5EB0: 7E LD A,(HL) 5EB1: 32 1A 72 LD ($721A),A ; 5EB4: 21 E1 72 LD HL,$72E1 5EB7: 7E LD A,(HL) 5EB8: A7 AND A 5EB9: CA F3 60 JP Z,$60F3 ; 5EBC: 3A FF 71 LD A,(verbWord) ; 5EBF: BE CP (HL) 5EC0: 23 INC HL 5EC1: C2 23 5F JP NZ,$5F23 ; 5EC4: 7E LD A,(HL) 5EC5: 32 02 72 LD ($7202),A ; 5EC8: 3A 00 72 LD A,(prepWord) ; 5ECB: A7 AND A 5ECC: CA D3 5E JP Z,$5ED3 ; 5ECF: BE CP (HL) 5ED0: C2 23 5F JP NZ,$5F23 ; 5ED3: 23 INC HL 5ED4: 7E LD A,(HL) 5ED5: A7 AND A 5ED6: CA EF 5E JP Z,$5EEF ; 5ED9: 3A 0F 72 LD A,(firstNoun) ; 5EDC: A7 AND A 5EDD: C2 F6 5E JP NZ,$5EF6 ; 5EE0: 3A 08 72 LD A,(lsbVerb) ; 5EE3: 32 09 72 LD ($7209),A ; 5EE6: 11 0F 72 LD DE,$720F 5EE9: CD 70 60 CALL $6070 ; 5EEC: C3 F6 5E JP $5EF6 ; 5EEF: 3A 0F 72 LD A,(firstNoun) ; 5EF2: A7 AND A 5EF3: C2 24 5F JP NZ,$5F24 ; 5EF6: 23 INC HL 5EF7: 7E LD A,(HL) 5EF8: A7 AND A 5EF9: CA 17 5F JP Z,$5F17 ; 5EFC: 3A 15 72 LD A,(secondNoun) ; 5EFF: A7 AND A 5F00: C2 1E 5F JP NZ,$5F1E ; 5F03: 3A 07 72 LD A,($7207) ; 5F06: 32 09 72 LD ($7209),A ; 5F09: 3E 01 LD A,$01 5F0B: 32 01 72 LD (prepGiven),A ; 5F0E: 11 15 72 LD DE,$7215 5F11: CD 70 60 CALL $6070 ; 5F14: C3 1E 5F JP $5F1E ; 5F17: 3A 15 72 LD A,(secondNoun) ; 5F1A: A7 AND A 5F1B: C2 25 5F JP NZ,$5F25 ; 5F1E: 23 INC HL 5F1F: 7E LD A,(HL) 5F20: C3 2A 5F JP $5F2A ; 5F23: 23 INC HL 5F24: 23 INC HL 5F25: 23 INC HL 5F26: 23 INC HL 5F27: C3 B7 5E JP $5EB7 ; 5F2A: 32 1D 72 LD (inputPhrase),A ; 5F2D: 21 FF 3F LD HL,$3FFF 5F30: 22 20 40 LD (CursorPointer),HL ; 5F33: 3A 0F 72 LD A,(firstNoun) ; 5F36: A7 AND A 5F37: C2 46 5F JP NZ,$5F46 ; 5F3A: 2A 18 72 LD HL,(secondNounPtr) ; 5F3D: 22 12 72 LD (firstNounPtr),HL ; 5F40: 3A 15 72 LD A,(secondNoun) ; 5F43: 32 0F 72 LD (firstNoun),A ; 5F46: 3A 04 72 LD A,(commandTarg) ; 5F49: A7 AND A 5F4A: CA 7D 5F JP Z,$5F7D ; 5F4D: 21 48 72 LD HL,$7248 5F50: 7E LD A,(HL) 5F51: 36 00 LD (HL),$00 5F53: 2B DEC HL 5F54: 77 LD (HL),A 5F55: CD 99 5F CALL $5F99 ; 5F58: 32 1E 72 LD (activeObject),A ; 5F5B: 22 1F 72 LD (activeObjectPtr),HL; 5F5E: 3E 0D LD A,$0D 5F60: CD EB 70 CALL PrintCharCullSpaces ; 5F63: CD C8 61 CALL SkipIDCalcEnd ; 5F66: 23 INC HL 5F67: 23 INC HL 5F68: 23 INC HL 5F69: 06 0B LD B,$0B ; IF_GIVEN_COMMAND section (no object has this) 5F6B: CD AD 61 CALL FindObjectField ; 5F6E: DA 74 5F JP C,$5F74 ; 5F71: C3 8B 5F JP $5F8B ; ; 5F74: CD C8 61 CALL SkipIDCalcEnd ; 5F77: CD 57 63 CALL ExecuteCommand ; 5F7A: C3 8B 5F JP $5F8B ; ; 5F7D: 3E 0D LD A,$0D ; Print a ... 5F7F: CD EB 70 CALL PrintCharCullSpaces ; ... line feed 5F82: 21 4E 7D LD HL,GeneralScript ; Run the ... 5F85: CD C8 61 CALL SkipIDCalcEnd ; ... general script ... 5F88: CD 57 63 CALL ExecuteCommand ; ... to handle input 5F8B: CD B2 6C CALL $6CB2 ; Execute TURN scripts for all objects 5F8E: 3E 0D LD A,$0D ; Print a ... 5F90: CD EB 70 CALL PrintCharCullSpaces ; line feed 5F93: 3A 1D 72 LD A,(inputPhrase) ; !! Why? the game loop clobbers the accumulator 5F96: C3 38 5D JP GameLoop ; Back for next command 5F99: 97 SUB A 5F9A: 32 0B 72 LD (varObject),A ; 5F9D: 7E LD A,(HL) 5F9E: 32 FE 71 LD (tmp1),A ; 5FA1: 47 LD B,A 5FA2: A7 AND A 5FA3: C8 RET Z 5FA4: 23 INC HL 5FA5: 7E LD A,(HL) 5FA6: 32 03 72 LD (adjWord),A ; 5FA9: 23 INC HL 5FAA: 7E LD A,(HL) 5FAB: 32 1B 72 LD ($721B),A ; 5FAE: 21 7A 88 LD HL,$887A 5FB1: CD A5 61 CALL FindCollectionItemByID; 5FB4: D2 14 60 JP NC,$6014 ; 5FB7: D5 PUSH DE 5FB8: E5 PUSH HL 5FB9: 3A F1 71 LD A,($71F1) ; 5FBC: 32 F2 71 LD ($71F2),A ; 5FBF: CD 23 60 CALL InInRoomOrPack ; 5FC2: C2 1F 60 JP NZ,$601F ; 5FC5: 3A 03 72 LD A,(adjWord) ; 5FC8: A7 AND A 5FC9: CA EE 5F JP Z,$5FEE ; 5FCC: E1 POP HL 5FCD: E5 PUSH HL 5FCE: CD C8 61 CALL SkipIDCalcEnd ; 5FD1: 01 03 00 LD BC,$0003 5FD4: 09 ADD HL,BC 5FD5: 06 01 LD B,$01 ; ADJECTIVES section 5FD7: CD AD 61 CALL FindObjectField ; 5FDA: D2 EE 5F JP NC,$5FEE ; 5FDD: CD C8 61 CALL SkipIDCalcEnd ; 5FE0: CD DC 61 CALL CompareHLandDE ; 5FE3: D2 1F 60 JP NC,$601F ; 5FE6: 3A 03 72 LD A,(adjWord) ; 5FE9: BE CP (HL) 5FEA: 23 INC HL 5FEB: C2 E0 5F JP NZ,$5FE0 ; 5FEE: E1 POP HL 5FEF: 3A 0B 72 LD A,(varObject) ; 5FF2: A7 AND A 5FF3: C2 34 61 JP NZ,$6134 ; 5FF6: 3A F2 71 LD A,($71F2) ; 5FF9: 32 0B 72 LD (varObject),A ; 5FFC: 22 0C 72 LD (varObjectPtr),HL ; 5FFF: CD C8 61 CALL SkipIDCalcEnd ; 6002: EB EX DE,HL 6003: D1 POP DE 6004: 3A FE 71 LD A,(tmp1) ; 6007: 47 LD B,A 6008: 3A F2 71 LD A,($71F2) ; 600B: 32 F1 71 LD ($71F1),A ; 600E: CD AD 61 CALL FindObjectField ; 6011: DA B7 5F JP C,$5FB7 ; 6014: 3A 0B 72 LD A,(varObject) ; 6017: 2A 0C 72 LD HL,(varObjectPtr) ; 601A: A7 AND A 601B: C0 RET NZ 601C: C3 EA 60 JP $60EA ; 601F: E1 POP HL 6020: C3 FF 5F JP $5FFF ; InInRoomOrPack: 6023: CD C8 61 CALL SkipIDCalcEnd ; Skip to object data 6026: 3A 21 72 LD A,(currentRoom) ; Is object ... 6029: BE CP (HL) ; ... in current room? 602A: C2 41 60 JP NZ,$6041 ; No ... look in pack 602D: 7E LD A,(HL) ; Object location 602E: E6 80 AND $80 ; Is this object being held? 6030: CA 41 60 JP Z,$6041 ; 6033: 23 INC HL 6034: 3A FA 71 LD A,(currentLoadedSection); 6037: 47 LD B,A 6038: 7E LD A,(HL) 6039: E6 0F AND $0F 603B: B8 CP B ; And the room's loaded section 603C: 2B DEC HL 603D: C8 RET Z 603E: C3 6D 60 JP $606D ; ; 6041: 7E LD A,(HL) 6042: A7 AND A 6043: CA 6D 60 JP Z,$606D ; 6046: 3C INC A 6047: C8 RET Z 6048: 7E LD A,(HL) 6049: E6 80 AND $80 604B: C2 6D 60 JP NZ,$606D ; 604E: 46 LD B,(HL) 604F: 3A 1E 72 LD A,(activeObject) ; 6052: B8 CP B 6053: C8 RET Z 6054: CD 57 70 CALL GetObjectScriptByIndex; 6057: CD C8 61 CALL SkipIDCalcEnd ; 605A: 23 INC HL 605B: 7E LD A,(HL) 605C: 2B DEC HL 605D: E6 80 AND $80 605F: C2 26 60 JP NZ,$6026 ; 6062: 23 INC HL 6063: 7E LD A,(HL) 6064: 2B DEC HL 6065: E6 20 AND $20 6067: C2 6D 60 JP NZ,$606D ; 606A: C3 26 60 JP $6026 ; ; 606D: F6 01 OR $01 ; Z=0 FAIL 606F: C9 RET 6070: E5 PUSH HL 6071: 97 SUB A 6072: 32 FE 71 LD (tmp1),A ; 6075: 32 F1 71 LD ($71F1),A ; 6078: D5 PUSH DE 6079: 4E LD C,(HL) 607A: 21 7A 88 LD HL,$887A 607D: CD C8 61 CALL SkipIDCalcEnd ; 6080: CD DC 61 CALL CompareHLandDE ; 6083: D2 CB 60 JP NC,$60CB ; 6086: 3A F1 71 LD A,($71F1) ; 6089: 3C INC A 608A: 32 F1 71 LD ($71F1),A ; 608D: D5 PUSH DE 608E: E5 PUSH HL 608F: CD 23 60 CALL InInRoomOrPack ; 6092: E1 POP HL 6093: C2 C5 60 JP NZ,$60C5 ; 6096: 46 LD B,(HL) 6097: 22 24 72 LD ($7224),HL ; 609A: CD C8 61 CALL SkipIDCalcEnd ; 609D: 23 INC HL 609E: 23 INC HL 609F: 7E LD A,(HL) 60A0: A1 AND C 60A1: B9 CP C 60A2: C2 C0 60 JP NZ,$60C0 ; 60A5: 3A FE 71 LD A,(tmp1) ; 60A8: A7 AND A 60A9: C2 FC 60 JP NZ,$60FC ; 60AC: 78 LD A,B 60AD: 32 FE 71 LD (tmp1),A ; 60B0: 3A F1 71 LD A,($71F1) ; 60B3: 32 F2 71 LD ($71F2),A ; 60B6: 7E LD A,(HL) 60B7: 32 03 72 LD (adjWord),A ; 60BA: 2A 24 72 LD HL,($7224) ; 60BD: 22 26 72 LD ($7226),HL ; 60C0: EB EX DE,HL 60C1: D1 POP DE 60C2: C3 80 60 JP $6080 ; 60C5: CD C8 61 CALL SkipIDCalcEnd ; 60C8: C3 C0 60 JP $60C0 ; 60CB: 3A FE 71 LD A,(tmp1) ; 60CE: A7 AND A 60CF: CA FC 60 JP Z,$60FC ; 60D2: D1 POP DE 60D3: 2A 26 72 LD HL,($7226) ; 60D6: 3A F2 71 LD A,($71F2) ; 60D9: 12 LD (DE),A 60DA: 13 INC DE 60DB: 13 INC DE 60DC: 13 INC DE 60DD: 7D LD A,L 60DE: 12 LD (DE),A 60DF: 13 INC DE 60E0: 7C LD A,H 60E1: 12 LD (DE),A 60E2: 13 INC DE 60E3: 3A 03 72 LD A,(adjWord) ; 60E6: 12 LD (DE),A 60E7: E1 POP HL 60E8: 97 SUB A 60E9: C9 RET 60EA: 11 2F 72 LD DE,$722F 60ED: 3A 1B 72 LD A,($721B) ; 60F0: C3 42 61 JP FlashError ; 60F3: 11 3E 72 LD DE,$723E 60F6: 3A 07 72 LD A,($7207) ; 60F9: C3 42 61 JP FlashError ; 60FC: 3A 01 72 LD A,(prepGiven) ; 60FF: A7 AND A 6100: CA 2B 61 JP Z,$612B ; 6103: 3A 00 72 LD A,(prepWord) ; 6106: A7 AND A 6107: C2 2B 61 JP NZ,$612B ; 610A: 16 00 LD D,$00 610C: 21 DB 7C LD HL,$7CDB 610F: 7E LD A,(HL) 6110: A7 AND A 6111: CA 2B 61 JP Z,$612B ; 6114: E5 PUSH HL 6115: 5E LD E,(HL) 6116: 23 INC HL 6117: 19 ADD HL,DE 6118: 3A 02 72 LD A,($7202) ; 611B: BE CP (HL) 611C: CA 24 61 JP Z,$6124 ; 611F: 23 INC HL 6120: C1 POP BC 6121: C3 0F 61 JP $610F ; 6124: D1 POP DE 6125: 3A 09 72 LD A,($7209) ; 6128: CD 7E 61 CALL $617E ; 612B: 11 2F 72 LD DE,$722F 612E: 3A 09 72 LD A,($7209) ; 6131: C3 42 61 JP FlashError ; 6134: 11 36 72 LD DE,$7236 6137: 3A 1B 72 LD A,($721B) ; 613A: C3 42 61 JP FlashError ; 613D: 11 28 72 LD DE,$7228 6140: 3E C0 LD A,$C0 FlashError: 6142: 31 9A BF LD SP,$BF9A 6145: 21 C0 3F LD HL,$3FC0 6148: CD 7E 61 CALL $617E ; 614B: 1A LD A,(DE) 614C: 4F LD C,A 614D: E5 PUSH HL 614E: 36 20 LD (HL),$20 6150: 23 INC HL 6151: 0D DEC C 6152: C2 4E 61 JP NZ,$614E ; 6155: CD 73 61 CALL $6173 ; 6158: E1 POP HL 6159: 05 DEC B 615A: C2 6D 61 JP NZ,$616D ; 615D: 1A LD A,(DE) 615E: 3C INC A 615F: 4F LD C,A 6160: CD 61 62 CALL $6261 ; 6163: 0D DEC C 6164: C2 60 61 JP NZ,$6160 ; 6167: CD E5 61 CALL $61E5 ; 616A: C3 3E 5D JP $5D3E ; 616D: CD 8D 61 CALL $618D ; 6170: C3 4B 61 JP $614B ; 6173: 3E 32 LD A,$32 6175: 0D DEC C 6176: C2 75 61 JP NZ,$6175 ; 6179: 3D DEC A 617A: C2 75 61 JP NZ,$6175 ; 617D: C9 RET 617E: 6F LD L,A 617F: 1A LD A,(DE) 6180: 3C INC A 6181: 4F LD C,A 6182: D5 PUSH DE 6183: CD 78 62 CALL $6278 ; 6186: 0D DEC C 6187: C2 83 61 JP NZ,$6183 ; 618A: D1 POP DE 618B: 06 08 LD B,$08 618D: 1A LD A,(DE) 618E: 4F LD C,A 618F: D5 PUSH DE 6190: E5 PUSH HL 6191: 13 INC DE 6192: 1A LD A,(DE) 6193: 77 LD (HL),A 6194: 23 INC HL 6195: 13 INC DE 6196: 0D DEC C 6197: C2 92 61 JP NZ,$6192 ; 619A: 2C INC L 619B: 7D LD A,L 619C: 32 09 72 LD ($7209),A ; 619F: CD 73 61 CALL $6173 ; 61A2: E1 POP HL 61A3: D1 POP DE 61A4: C9 RET ; Collections of the form: ; aa mm mm : collection id and multi-byte length ; i1 mm mm : item id and multi-byte length ; ..... : data for the item ; i2 mm mm : item id and multi-byte length ; ..... : data for the item ; .. FindCollectionItemByID: ; B is the desired item ID ; 71F1 is the index of the item in the list of items 61A5: 23 INC HL ; Skip collection ID 61A6: CD C9 61 CALL GetMultiByteLength ; 61A9: 97 SUB A ; Keep up with ... 61AA: 32 F1 71 LD ($71F1),A ; ... index of the object we are checking FindObjectField: ; B is the field number 61AD: CD DC 61 CALL CompareHLandDE ; Are we at the end of the list? 61B0: D0 RET NC ; Yes ... done with CF=0 61B1: 3A F1 71 LD A,($71F1) ; Bump ... 61B4: 3C INC A ; ... the ... 61B5: 32 F1 71 LD ($71F1),A ; ... index count 61B8: 78 LD A,B ; Is this the ... 61B9: BE CP (HL) ; ... item we are looking for? 61BA: CA C6 61 JP Z,$61C6 ; Yes ... set CF and done (found) 61BD: D5 PUSH DE ; Hold 61BE: CD C8 61 CALL SkipIDCalcEnd ; No ... get the length of this field 61C1: EB EX DE,HL ; Move to the start of the next item 61C2: D1 POP DE ; Restore 61C3: C3 AD 61 JP FindObjectField ; Keep going ; 61C6: 37 SCF ; CF=1 if we found 61C7: C9 RET SkipIDCalcEnd: ; Returns pointer to first entry in HL ; Returns one past last byte in DE 61C8: 23 INC HL ; Skip list ID ; GetMultiByteLength: 61C9: 16 00 LD D,$00 ; MSB of 0 for 1 byte length 61CB: 7E LD A,(HL) ; First byte of length 61CC: E6 80 AND $80 ; Two byte length? 61CE: CA D6 61 JP Z,$61D6 ; No, we have the one byte length 61D1: 7E LD A,(HL) ; MSB again 61D2: E6 7F AND $7F ; Drop flag bit 61D4: 57 LD D,A ; MSB to D (for DE) 61D5: 23 INC HL ; Point to LSB 61D6: 5E LD E,(HL) ; Get the LSB to E (length now in DE) 61D7: 23 INC HL ; Point to first entry 61D8: EB EX DE,HL ; DE ... 61D9: 19 ADD HL,DE ; ... points to ... 61DA: EB EX DE,HL ; ... one past end 61DB: C9 RET CompareHLandDE: ; Return Z set if HL and DE are the same 61DC: 7C LD A,H ; Compare ... 61DD: BA CP D ; ... MSBs 61DE: C0 RET NZ ; Not the same, DE != HL 61DF: 7D LD A,L ; Compare ... 61E0: BB CP E ; ... LSBs 61E1: C9 RET GetUserInput: 61E2: 21 C0 3F LD HL,$3FC0 ; Start of bottom row of screen 61E5: CD 93 62 CALL $6293 ; Slide bottom row to right after cursor and draw cursor 61E8: CD 99 62 CALL GetKey ; Get a key from the keyboard 61EB: FE 18 CP $18 ; Left arrow 61ED: CA 19 62 JP Z,$6219 ; Swap cursor and character to left 61F0: FE 19 CP $19 ; Right arrow 61F2: CA 29 62 JP Z,$6229 ; Swap cursor and character to right 61F5: FE 09 CP $09 ; Backspace? 61F7: CA 39 62 JP Z,$6239 ; Yes, go handle it 61FA: FE 0D CP $0D ; Is the key a CR? 61FC: CA 4E 62 JP Z,$624E ; Yes, handle it and done 61FF: FE 1F CP $1F ; Clear? 6201: CA 52 62 JP Z,GetInputLine ; Yes, handle clear 6204: FE 08 CP $08 ; Is the key a backspace? 6206: CA 41 62 JP Z,$6241 ; Yes, handle and get another 6209: 47 LD B,A ; Hold the key 620A: 7D LD A,L ; Are we at the ... 620B: FE FF CP $FF ; ... end of the line? 620D: CA E8 61 JP Z,$61E8 ; Yes, ignore and get another character 6210: 78 LD A,B ; Restore the key 6211: CD 78 62 CALL $6278 ; Slide the bottom row beyond insertion 6214: 77 LD (HL),A ; Store the character on the screen 6215: 23 INC HL ; Next on screen 6216: C3 E8 61 JP $61E8 ; Go back for another character ; 6219: 7D LD A,L ; Already at the ... 621A: FE C0 CP $C0 ; ... beginning of the line? 621C: CA E8 61 JP Z,$61E8 ; Yes, ignore and get another character 621F: 2B DEC HL ; Swap ... 6220: 7E LD A,(HL) ; ... cursor ... 6221: 23 INC HL ; ... and ... 6222: 77 LD (HL),A ; ... character ... 6223: 2B DEC HL ; ... to the ... 6224: 36 8F LD (HL),$8F ; ... left (Cursor character 0x8F is a 2x2 square) 6226: C3 E8 61 JP $61E8 ; Go back for another character ; 6229: 7D LD A,L ; Already at the ... 622A: FE FF CP $FF ; ... end of the line? 622C: CA E8 61 JP Z,$61E8 ; Yes, ignore and get another character 622F: 23 INC HL ; Swap ... 6230: 7E LD A,(HL) ; ... cursor ... 6231: 2B DEC HL ; ... and ... 6232: 77 LD (HL),A ; ... character ... 6233: 23 INC HL ; ... to the ... 6234: 36 8F LD (HL),$8F ; ... right 6236: C3 E8 61 JP $61E8 ; Go get another key ; 6239: CD 61 62 CALL $6261 ; Back off trailing cursor block 623C: 36 8F LD (HL),$8F ; Store ... 623E: C3 E8 61 JP $61E8 ; ... cursor block 6241: 7D LD A,L ; Already at the ... 6242: FE C0 CP $C0 ; ... beginning of the line 6244: CA E8 61 JP Z,$61E8 ; Yes, go get another key 6247: 2B DEC HL ; Back up one character 6248: CD 61 62 CALL $6261 ; Erase the end 624B: C3 E8 61 JP $61E8 ; Go get another key ; 624E: CD 61 62 CALL $6261 ; Back off cursor character 6251: C9 RET GetInputLine: 6252: 21 C0 3F LD HL,$3FC0 ; Start of bottom row 6255: 06 40 LD B,$40 ; 64 characters on a line 6257: 36 20 LD (HL),$20 ; SPACE character 6259: 23 INC HL ; Clear ... 625A: 05 DEC B ; ... the ... 625B: C2 57 62 JP NZ,$6257 ; ... bottom row 625E: C3 E2 61 JP GetUserInput ; Go get another key ; 6261: 54 LD D,H ; Insertion point ... ?? TODO revisit all this shuffling 6262: 5D LD E,L ; ... copy to DE 6263: 45 LD B,L ; Insertion point to B (LSB) 6264: 36 20 LD (HL),$20 ; Clear the trailing cursor 6266: 13 INC DE ; DE is one past HL 6267: 7B LD A,E ; Return ... 6268: A7 AND A ; ... when ... 6269: C8 RET Z ; ... all of row ... 626A: FE 01 CP $01 ; ... has been ... 626C: C8 RET Z ; ... moved 626D: 1A LD A,(DE) ; Slide ... 626E: 77 LD (HL),A ; ... bottom row ... 626F: 2C INC L ; ... to the ... 6270: 1C INC E ; ... left 6271: C2 6D 62 JP NZ,$626D ; 6274: 36 20 LD (HL),$20 ; Clear last ... 6276: 68 LD L,B ; ... character 6277: C9 RET ; 6278: F5 PUSH AF ; Hold character 6279: 7D LD A,L ; At the end ... 627A: FE FF CP $FF ; ... of the screen? 627C: CA 91 62 JP Z,$6291 ; Yes, done 627F: 45 LD B,L ; Hold insertion point (LSB) 6280: 21 FF 3F LD HL,$3FFF ; End of screen 6283: 11 FE 3F LD DE,$3FFE ; One before end 6286: 1A LD A,(DE) ; Slide ... 6287: 77 LD (HL),A ; ... bottom row ... 6288: 2B DEC HL ; ... to the ... 6289: 1B DEC DE ; ... right 628A: 7D LD A,L ; At the ... 628B: B8 CP B ; ... insertion point? 628C: C2 86 62 JP NZ,$6286 ; No, slide all 628F: 36 20 LD (HL),$20 ; Clear first character 6291: F1 POP AF ; Restore character 6292: C9 RET ; 6293: CD 78 62 CALL $6278 ; Slide row over from cursor 6296: 36 8F LD (HL),$8F ; Cursor character to the screen 6298: C9 RET GetKey: 6299: CD C6 71 CALL COM_2B_random ; Get random number (entropy while we wait) 629C: CD 2B 00 CALL GetKey ; Get keyboard input 629F: A7 AND A ; Did the user press a key? 62A0: CA 99 62 JP Z,GetKey ; No ... keep waiting 62A3: C9 RET DecodeBuffer: ; HL = input buffer on screen (1 before) ; ?? pointer to result token list ; 62A4: 23 INC HL ; Next in buffer ; 62A5: 7D LD A,L ; Hold ... 62A6: 32 1B 72 LD ($721B),A ; ... LSB of first word (could be ignored) 62A9: FE FF CP $FF ; End of buffer? 62AB: C8 RET Z ; Yes, out 62AC: 7E LD A,(HL) ; Next in input buffer 62AD: FE 20 CP $20 ; Is it a space? 62AF: CA A4 62 JP Z,DecodeBuffer ; 62B2: FE 41 CP $41 62B4: DA A4 62 JP C,DecodeBuffer ; 62B7: 11 2C 76 LD DE,$762C 62BA: CD F1 62 CALL DecodeWord ; 62BD: CA A5 62 JP Z,$62A5 ; 62C0: 06 01 LD B,$01 62C2: 13 INC DE 62C3: CD F1 62 CALL DecodeWord ; 62C6: CA D2 62 JP Z,$62D2 ; 62C9: 04 INC B 62CA: 78 LD A,B 62CB: FE 05 CP $05 62CD: C2 C2 62 JP NZ,$62C2 ; 62D0: A7 AND A 62D1: C9 RET 62D2: EB EX DE,HL 62D3: 2A 24 72 LD HL,($7224) ; 62D6: 70 LD (HL),B 62D7: 23 INC HL 62D8: 77 LD (HL),A 62D9: 23 INC HL 62DA: 3A 1B 72 LD A,($721B) ; 62DD: 77 LD (HL),A 62DE: 23 INC HL 62DF: 22 24 72 LD ($7224),HL ; 62E2: EB EX DE,HL 62E3: 78 LD A,B 62E4: FE 01 CP $01 62E6: C2 EF 62 JP NZ,$62EF ; 62E9: 3A 07 72 LD A,($7207) ; 62EC: 32 08 72 LD (lsbVerb),A ; 62EF: 97 SUB A ; Set Z=1 for OK 62F0: C9 RET DecodeWord: 62F1: 1A LD A,(DE) 62F2: A7 AND A 62F3: C2 F9 62 JP NZ,$62F9 ; 62F6: F6 01 OR $01 ; Z=0 FAIL 62F8: C9 RET ; 62F9: 4F LD C,A 62FA: 32 1C 72 LD ($721C),A ; 62FD: E5 PUSH HL 62FE: 13 INC DE 62FF: 7E LD A,(HL) 6300: FE 20 CP $20 6302: CA 4D 63 JP Z,$634D ; 6305: 7D LD A,L 6306: A7 AND A 6307: CA 4D 63 JP Z,$634D ; 630A: 7E LD A,(HL) 630B: FE 41 CP $41 630D: D2 14 63 JP NC,$6314 ; 6310: 23 INC HL 6311: C3 FF 62 JP $62FF ; 6314: 1A LD A,(DE) 6315: BE CP (HL) 6316: C2 4D 63 JP NZ,$634D ; 6319: 13 INC DE 631A: 23 INC HL 631B: 0D DEC C 631C: C2 FF 62 JP NZ,$62FF ; 631F: 3A 1C 72 LD A,($721C) ; 6322: FE 06 CP $06 6324: CA 32 63 JP Z,$6332 ; 6327: 7E LD A,(HL) 6328: FE 41 CP $41 632A: DA 32 63 JP C,$6332 ; 632D: FE 20 CP $20 632F: C2 52 63 JP NZ,$6352 ; 6332: 1A LD A,(DE) 6333: D1 POP DE 6334: 4F LD C,A 6335: 7E LD A,(HL) 6336: FE 20 CP $20 6338: CA 45 63 JP Z,$6345 ; 633B: 7D LD A,L 633C: FE FF CP $FF 633E: CA 47 63 JP Z,$6347 ; 6341: 23 INC HL 6342: C3 35 63 JP $6335 ; 6345: 7D LD A,L 6346: 3C INC A 6347: 32 07 72 LD ($7207),A ; 634A: 97 SUB A 634B: 79 LD A,C 634C: C9 RET ; 634D: 13 INC DE ; Skip next in word data 634E: 0D DEC C ; All skipped? 634F: C2 4D 63 JP NZ,$634D ; No, skip them all 6352: E1 POP HL ; Restore pointer to word 6353: 13 INC DE ; Skip word data 6354: C3 F1 62 JP DecodeWord ; Keep trying ExecuteCommand: ; Either a direct command or a routine 6357: 7E LD A,(HL) ; Get command number 6358: 47 LD B,A ; To B for find collection 6359: 23 INC HL ; Next byte in script 635A: E6 80 AND $80 ; Is this a custom command? 635C: CA 73 63 JP Z,$6373 ; No, execute a regular command ; 635F: E5 PUSH HL ; Hold script pointer 6360: D5 PUSH DE ; Hold end pointer 6361: 21 AF B3 LD HL,SubroutineCommands; Subroutine commands 6364: CD A5 61 CALL FindCollectionItemByID; Look up the routine 6367: D2 70 63 JP NC,$6370 ; Not found, out 636A: CD C8 61 CALL SkipIDCalcEnd ; Get beginning and end of routine 636D: CD 57 63 CALL ExecuteCommand ; Execute the routine 6370: D1 POP DE ; Restore end pointer 6371: E1 POP HL ; Restore script pointer 6372: C9 RET 6373: 78 LD A,B ; Command number 6374: 11 68 72 LD DE,CommandJumpTable ; command jump table 6377: 07 RLCA ; Two bytes per command pointer 6378: 83 ADD A,E ; Add ... 6379: 5F LD E,A ; ... the ... 637A: 7A LD A,D ; ... offset ... 637B: CE 00 ADC $00 ; ... to ... 637D: 57 LD D,A ; ... the command 637E: 1A LD A,(DE) ; LSB of the command 637F: 32 88 63 LD ($6388),A ; Write it into JP instruction below 6382: 13 INC DE ; MSB ... 6383: 1A LD A,(DE) ; ... of the command 6384: 32 89 63 LD ($6389),A ; Write it into JP instruction below ; 6387: C3 87 63 JP $6387 ; This jump destination is modified by code above COM_0D_while_pass: ; Execute commands while they are passing. If they all pass then we return a PASS. ; If any fail, we stop and return a FAIL. 638A: CD C9 61 CALL GetMultiByteLength ; Get the length of the list 638D: CD DC 61 CALL CompareHLandDE ; Have we reached the end of the list? 6390: D2 9D 63 JP NC,$639D ; Yes, this list was all PASS and we pass 6393: D5 PUSH DE ; Hold the end pointer 6394: CD 57 63 CALL ExecuteCommand ; Execute the command 6397: D1 POP DE ; Restore the end pointer 6398: CA 8D 63 JP Z,$638D ; The command was a PASS, keep going in this list 639B: EB EX DE,HL ; Jump past the command list 639C: C9 RET ; Z=0, return a FAIL ; 639D: EB EX DE,HL ; Jump past the command list 639E: 97 SUB A ; Z=1 PASS 639F: C9 RET COM_0E_while_fail: ; Execute commands while they are failing. If they all fail then we return a FAIL. ; If any pass, we stop and return a PASS. 63A0: CD C9 61 CALL GetMultiByteLength ; Get the length of the list 63A3: CD DC 61 CALL CompareHLandDE ; Have we reached the end of the list? 63A6: D2 B3 63 JP NC,$63B3 ; Yes, this list was all FAIL and we fail 63A9: D5 PUSH DE ; Hold the end pointer 63AA: CD 57 63 CALL ExecuteCommand ; Execute the command 63AD: D1 POP DE ; Restore the end pointer 63AE: C2 A3 63 JP NZ,$63A3 ; The command was a FAIL, keep going in this list 63B1: EB EX DE,HL ; Jump past the command list 63B2: C9 RET ; Z=1, return a PASS ; 63B3: EB EX DE,HL ; Point script to next construct 63B4: F6 01 OR $01 ; Z=0 FAIL 63B6: C9 RET COM_0B_switch: ; Repeatedly call a target function with different input parameters. If a test call PASSes then we ; execute the associated script. Otherwise, we move to the next test call. If all the tests fail, ; we return a FAIL. 63B7: CD C9 61 CALL GetMultiByteLength ; Get the length and pointer to end 63BA: 46 LD B,(HL) ; Get the command number ... 63BB: 23 INC HL ; ... to call for each entry 63BC: CD DC 61 CALL CompareHLandDE ; Have we reached the end of the list? 63BF: D2 B3 63 JP NC,$63B3 ; At or beyond ... all attempts have FAIL 63C2: D5 PUSH DE ; Hold end 63C3: C5 PUSH BC ; Hold command number 63C4: 78 LD A,B ; Execute the ... 63C5: CD 74 63 CALL $6374 ; ... switch test command 63C8: C1 POP BC ; Restore the end 63C9: CA D4 63 JP Z,$63D4 ; Test passed ... this is our list 63CC: CD C9 61 CALL GetMultiByteLength ; Jump to the end ... 63CF: EB EX DE,HL ; ... of this case 63D0: D1 POP DE ; End of the switch list 63D1: C3 BC 63 JP $63BC ; Keep trying tests ; 63D4: CD C9 61 CALL GetMultiByteLength ; Length of block to execute 63D7: CD 57 63 CALL ExecuteCommand ; Execute the matching script 63DA: E1 POP HL ; Restore script pointer 63DB: C9 RET COM_00_move_ACTIVE_and_look: 63DC: CD F5 63 CALL COM_19_move_ACTIVE ; Move the active object 63DF: E5 PUSH HL ; Hold script pointer 63E0: 2A 22 72 LD HL,(currentRoomPtr) ; Point to the room's ... 63E3: CD C8 61 CALL SkipIDCalcEnd ; ... data byte 63E6: 7E LD A,(HL) ; If we have been here before ... 63E7: 32 F0 71 LD (stopAtPeriod),A ; ... stop at first period 63EA: 36 01 LD (HL),$01 ; Set the flag now that we have been here 63EC: CD C1 64 CALL PrintRoomDescription; Print room description 63EF: E1 POP HL ; Restore script pointer 63F0: 97 SUB A ; Clear stop printing after ... 63F1: 32 F0 71 LD (stopAtPeriod),A ; ... period flag 63F4: C9 RET COM_19_move_ACTIVE: ; move_ACTIVE(room) 63F5: 7E LD A,(HL) ; New room number from the script 63F6: 23 INC HL ; Next in script 63F7: E5 PUSH HL ; Hold script pointer 63F8: 32 21 72 LD (currentRoom),A ; Set new room number 63FB: 47 LD B,A ; Room to B for the function 63FC: 21 00 52 LD HL,sectionData ; Room descriptions 63FF: CD A5 61 CALL FindCollectionItemByID; Find the room data 6402: 22 22 72 LD (currentRoomPtr),HL ; Store pointer to current room 6405: 2A 1F 72 LD HL,(activeObjectPtr); Point to ... 6408: CD C8 61 CALL SkipIDCalcEnd ; ... the active object 640B: 3A 21 72 LD A,(currentRoom) ; Set the var ... 640E: 77 LD (HL),A ; ... object's location 640F: E1 POP HL ; Restore script 6410: 97 SUB A ; Z=1 PASS 6411: C9 RET COM_37_assert_player_is_in_an_object: 6412: 06 01 LD B,$01 ; Player object number 6414: E5 PUSH HL ; Hold script pointer 6415: CD 57 70 CALL GetObjectScriptByIndex; Get the player object 6418: CD C8 61 CALL SkipIDCalcEnd ; Start of the data 641B: 7E LD A,(HL) ; Get the player's room number 641C: E1 POP HL ; Restore script pointer 641D: A7 AND A ; Is the player in a room? 641E: F8 RET M ; Yes, return Z=0 FAIL (player isn't in a container) 641F: 47 LD B,A ; The player must be in an object 6420: E5 PUSH HL ; Hold script pointer 6421: 32 0B 72 LD (varObject),A ; Set the var object to the container object 6424: CD 57 70 CALL GetObjectScriptByIndex; Look up the container object 6427: 22 0C 72 LD (varObjectPtr),HL ; Set var pointer to player's containing object 642A: E1 POP HL ; Restore script 642B: 97 SUB A ; Z=1 PASS ; ; !! The return is missing. We set the Z flag as usual, but without the RET, we fall into next ; command and change the VAR to something else. The game scripts use this function to check if the ; player is contained in any object. Thus the particular container is never used. COM_1A_set_VAR_to_first_noun: 642C: E5 PUSH HL ; Hold script pointer 642D: 2A 12 72 LD HL,(firstNounPtr) ; Copy first noun ... 6430: 22 0C 72 LD (varObjectPtr),HL ; ... pointer to var object 6433: 3A 0F 72 LD A,(firstNoun) ; Copy first noun number ... 6436: 32 0B 72 LD (varObject),A ; ... to var object 6439: E1 POP HL ; Restore script pointer 643A: 97 SUB A ; Z=1 PASS 643B: C9 RET COM_1B_set_VAR_to_second_noun: ; set_VAR_to_second_noun() 643C: E5 PUSH HL ; Hold script pointer 643D: 2A 18 72 LD HL,(secondNounPtr) ; Copy second noun ... 6440: 22 0C 72 LD (varObjectPtr),HL ; ... pointer to var object 6443: 3A 15 72 LD A,(secondNoun) ; Copy second noun ... 6446: 32 0B 72 LD (varObject),A ; ... to var object 6449: E1 POP HL 644A: 97 SUB A ; Z=1 PASS 644B: C9 RET COM_1C_set_VAR_object: 644C: 46 LD B,(HL) ; Get the object from the script 644D: 23 INC HL ; Next in script 644E: E5 PUSH HL ; Hold script pointer 644F: 78 LD A,B ; Set the ... 6450: 32 0B 72 LD (varObject),A ; ... var object number 6453: A7 AND A ; Are we nulling the var object? 6454: CA 5D 64 JP Z,$645D ; Yes, skip setting the pointer 6457: CD 57 70 CALL GetObjectScriptByIndex; Look up the object 645A: 22 0C 72 LD (varObjectPtr),HL ; Set the var object pointer 645D: E1 POP HL ; Restore script pointer 645E: 97 SUB A ; Z=1 PASS 645F: C9 RET COM_21_execute_phrase: ; execute_phrase(phrase,first_noun,second_noun) 6460: EB EX DE,HL 6461: 2A 12 72 LD HL,(firstNounPtr) ; 6464: E5 PUSH HL 6465: 2A 18 72 LD HL,(secondNounPtr) ; 6468: E5 PUSH HL 6469: 3A 0F 72 LD A,(firstNoun) ; 646C: 47 LD B,A 646D: 3A 15 72 LD A,(secondNoun) ; 6470: 4F LD C,A 6471: C5 PUSH BC 6472: 3A 1D 72 LD A,(inputPhrase) ; 6475: 47 LD B,A 6476: C5 PUSH BC 6477: EB EX DE,HL 6478: 7E LD A,(HL) 6479: 32 1D 72 LD (inputPhrase),A ; 647C: 23 INC HL 647D: 46 LD B,(HL) 647E: 23 INC HL 647F: 4E LD C,(HL) 6480: 23 INC HL 6481: E5 PUSH HL 6482: 78 LD A,B 6483: 32 0F 72 LD (firstNoun),A ; 6486: A7 AND A 6487: CA 90 64 JP Z,$6490 ; 648A: CD 57 70 CALL GetObjectScriptByIndex; 648D: 22 12 72 LD (firstNounPtr),HL ; 6490: 79 LD A,C 6491: 32 15 72 LD (secondNoun),A ; 6494: A7 AND A 6495: CA 9F 64 JP Z,$649F ; 6498: 47 LD B,A 6499: CD 57 70 CALL GetObjectScriptByIndex; 649C: 22 18 72 LD (secondNounPtr),HL ; 649F: 21 4E 7D LD HL,GeneralScript ; 64A2: CD C8 61 CALL SkipIDCalcEnd ; 64A5: CD 57 63 CALL ExecuteCommand ; 64A8: D1 POP DE 64A9: C1 POP BC 64AA: 78 LD A,B 64AB: 32 1D 72 LD (inputPhrase),A ; 64AE: C1 POP BC 64AF: 78 LD A,B 64B0: 32 0F 72 LD (firstNoun),A ; 64B3: 79 LD A,C 64B4: 32 15 72 LD (secondNoun),A ; 64B7: E1 POP HL 64B8: 22 18 72 LD (secondNounPtr),HL ; 64BB: E1 POP HL 64BC: 22 12 72 LD (firstNounPtr),HL ; 64BF: EB EX DE,HL 64C0: C9 RET PrintRoomDescription: 64C1: 3A 1E 72 LD A,(activeObject) ; Active object number ; !! This comes from Bedlam where there is a SYSTEM object 0x38. There is no such ; feature in Xenos. This check made the copy/paste but does no harm. 64C4: FE 38 CP $38 ; Is this the system object number? 64C6: CA CC 64 JP Z,$64CC ; Yes ... keep going 64C9: FE 01 CP $01 ; Is this the player object? 64CB: C0 RET NZ ; No ... print nothing ; 64CC: 06 01 LD B,$01 ; Find the ... 64CE: CD 57 70 CALL GetObjectScriptByIndex; ... player ... 64D1: CD C8 61 CALL SkipIDCalcEnd ; ... object 64D4: 7E LD A,(HL) ; Location of player 64D5: E6 80 AND $80 ; Is the contained by another object? 64D7: C2 F6 64 JP NZ,$64F6 ; No, there is no object to print ; ; If the player is contained by an object, print the container's short name first. 64DA: 46 LD B,(HL) ; Find the ... 64DB: CD 57 70 CALL GetObjectScriptByIndex; ... player's container 64DE: CD C8 61 CALL SkipIDCalcEnd ; Skip the length 64E1: 23 INC HL ; Skip ... 64E2: 23 INC HL ; ... object ... 64E3: 23 INC HL ; ... data 64E4: 06 02 LD B,$02 ; SHORT_NAME ... 64E6: CD AD 61 CALL FindObjectField ; ... section 64E9: D2 F6 64 JP NC,$64F6 ; Skip this object if it has no short name 64EC: 23 INC HL ; Skip to the length 64ED: CD 6F 70 CALL PrintPackedAutoWrap ; Print the object's short name 64F0: 21 7B 65 LD HL,printPeriodScript; Print a period ... 64F3: CD 57 63 CALL ExecuteCommand ; ... after the short name ; ; Now the room description 64F6: 2A 22 72 LD HL,(currentRoomPtr) ; Point to ... 64F9: CD C8 61 CALL SkipIDCalcEnd ; ... the current room struct 64FC: 23 INC HL ; Skip over the "been here" flag 64FD: 06 03 LD B,$03 ; DESCRIPTION ... 64FF: CD AD 61 CALL FindObjectField ; ... section 6502: D2 10 65 JP NC,$6510 ; If this room has no dscription, ignore it 6505: CD C8 61 CALL SkipIDCalcEnd ; 6508: EB EX DE,HL ; End of description to HL 6509: 22 7E 65 LD ($657E),HL ; ?? end of current room description script 650C: EB EX DE,HL ; Restore script pointer 650D: CD 57 63 CALL ExecuteCommand ; Execute the description script ; 6510: 21 7A 88 LD HL,ObjectData ; 6513: 97 SUB A 6514: 32 F8 71 LD ($71F8),A ; 6517: 32 F0 71 LD (stopAtPeriod),A ; 651A: CD C8 61 CALL SkipIDCalcEnd ; 651D: D5 PUSH DE 651E: 3A F8 71 LD A,($71F8) ; 6521: 3C INC A 6522: 32 F8 71 LD ($71F8),A ; 6525: 32 0B 72 LD (varObject),A ; 6528: 22 0C 72 LD (varObjectPtr),HL ; 652B: CD C8 61 CALL SkipIDCalcEnd ; 652E: 3A 21 72 LD A,(currentRoom) ; 6531: BE CP (HL) 6532: C2 71 65 JP NZ,$6571 ; 6535: 23 INC HL 6536: 3A FA 71 LD A,(currentLoadedSection); 6539: 47 LD B,A 653A: 7E LD A,(HL) 653B: 32 F5 71 LD ($71F5),A ; 653E: E6 0F AND $0F 6540: B8 CP B 6541: C2 71 65 JP NZ,$6571 ; 6544: 23 INC HL 6545: 7E LD A,(HL) 6546: 32 F6 71 LD ($71F6),A ; 6549: 23 INC HL 654A: 22 F3 71 LD ($71F3),HL ; 654D: 06 03 LD B,$03 ; DESCRIPTION section 654F: CD AD 61 CALL FindObjectField ; 6552: D2 5D 65 JP NC,$655D ; 6555: D5 PUSH DE 6556: CD C8 61 CALL SkipIDCalcEnd ; 6559: CD 57 63 CALL ExecuteCommand ; 655C: D1 POP DE 655D: 2A F3 71 LD HL,($71F3) ; 6560: 06 02 LD B,$02 ; SHORT_NAME section 6562: D5 PUSH DE 6563: CD AD 61 CALL FindObjectField ; 6566: D1 POP DE 6567: D2 71 65 JP NC,$6571 ; 656A: 23 INC HL 656B: 22 F3 71 LD ($71F3),HL ; 656E: CD B2 65 CALL $65B2 ; 6571: EB EX DE,HL 6572: D1 POP DE 6573: CD DC 61 CALL CompareHLandDE ; 6576: DA 1D 65 JP C,$651D ; 6579: C9 RET printSpaceScript: 657A: B1 ; Routine B1 PRINT_SPACE printPeriodScript: 657B: 8B ; Routine 8B PRINT_PERIOD printAndScript: 657C: B4 ; Routine B4 PRINT_AND printOnVarSeenScript: 657D: B2 ; Routine B2: ?? " ON <THE VAR> CAN BE SEEN" 657E: 00 00 COM_33_print_objects_on_var_object: ; FAILs if there is nothing 6580: E5 PUSH HL ; Hold the script pointer 6581: 97 SUB A ; Clear the ... 6582: 32 FB 66 LD (printedSomethingOn??),A; ... something-was-printed flag ... 6585: 32 FA 66 LD ($66FA),A ; ... and the ?? 6588: 3C INC A 6589: 32 FC 66 LD ($66FC),A ; ; 658C: 2A 0C 72 LD HL,(varObjectPtr) ; Look up the VAR object 658F: CD C8 61 CALL SkipIDCalcEnd ; Skip to the data 6592: 23 INC HL ; Skip to the ?? 6593: 7E LD A,(HL) 6594: 32 F5 71 LD ($71F5),A ; 6597: 23 INC HL ; Skip to the attributes 6598: 7E LD A,(HL) ; Hold ... 6599: 32 F6 71 LD ($71F6),A ; ... the attributes 659C: 3A 0B 72 LD A,(varObject) ; 659F: 32 F8 71 LD ($71F8),A ; 65A2: CD BC 65 CALL $65BC ; 65A5: E1 POP HL ; Restore script pointer 65A6: 3A FB 66 LD A,(printedSomethingOn??); Did we print ... 65A9: A7 AND A ; ... at least one thing? 65AA: CA AF 65 JP Z,$65AF ; No, this command fails 65AD: 97 SUB A ; Z=1 PASS 65AE: C9 RET ; 65AF: F6 01 OR $01 ; Z=0 FAIL 65B1: C9 RET 65B2: 97 SUB A 65B3: 32 FA 66 LD ($66FA),A ; 65B6: 32 FC 66 LD ($66FC),A ; 65B9: 32 FD 66 LD ($66FD),A ; ; 65BC: D5 PUSH DE 65BD: 3A F9 66 LD A,($66F9) ; 65C0: 3C INC A 65C1: 32 F9 66 LD ($66F9),A ; 65C4: 3A F6 71 LD A,($71F6) ; 65C7: E6 02 AND $02 65C9: CA 45 66 JP Z,$6645 ; 65CC: 3A F5 71 LD A,($71F5) ; 65CF: E6 20 AND $20 65D1: CA DC 65 JP Z,$65DC ; 65D4: 3A F5 71 LD A,($71F5) ; 65D7: E6 80 AND $80 65D9: CA 45 66 JP Z,$6645 ; 65DC: 97 SUB A 65DD: 32 F7 71 LD ($71F7),A ; 65E0: 32 F9 71 LD ($71F9),A ; 65E3: 21 7A 88 LD HL,$887A 65E6: CD C8 61 CALL SkipIDCalcEnd ; 65E9: CD DC 61 CALL CompareHLandDE ; 65EC: D2 45 66 JP NC,$6645 ; 65EF: 3A F9 71 LD A,($71F9) ; 65F2: 3C INC A 65F3: 32 F9 71 LD ($71F9),A ; 65F6: D5 PUSH DE 65F7: CD C8 61 CALL SkipIDCalcEnd ; 65FA: 3A F8 71 LD A,($71F8) ; 65FD: BE CP (HL) 65FE: C2 40 66 JP NZ,$6640 ; 6601: D5 PUSH DE 6602: 3A F7 71 LD A,($71F7) ; 6605: A7 AND A 6606: C2 34 66 JP NZ,$6634 ; 6609: 3E 01 LD A,$01 660B: 32 F7 71 LD ($71F7),A ; 660E: 32 FB 66 LD (printedSomethingOn??),A; 6611: E5 PUSH HL 6612: 3A F9 66 LD A,($66F9) ; 6615: FE 01 CP $01 6617: CA 25 66 JP Z,$6625 ; 661A: 21 7B 65 LD HL,printPeriodScript; "." 661D: CD 57 63 CALL ExecuteCommand ; 6620: 3E 01 LD A,$01 6622: 32 FD 66 LD ($66FD),A ; 6625: 21 7A 65 LD HL,printSpaceScript ; SPACE 6628: CD 57 63 CALL ExecuteCommand ; 662B: 3E 01 LD A,$01 662D: 32 FA 66 LD ($66FA),A ; 6630: E1 POP HL 6631: C3 3C 66 JP $663C ; ; 6634: E5 PUSH HL 6635: 21 7C 65 LD HL,printAndScript ; " AND " 6638: CD 57 63 CALL ExecuteCommand ; 663B: E1 POP HL 663C: CD FE 66 CALL $66FE ; 663F: D1 POP DE 6640: EB EX DE,HL 6641: D1 POP DE 6642: C3 E9 65 JP $65E9 ; 6645: 3A F7 71 LD A,($71F7) ; 6648: A7 AND A 6649: CA 62 66 JP Z,$6662 ; 664C: 3A FA 66 LD A,($66FA) ; 664F: A7 AND A 6650: CA 62 66 JP Z,$6662 ; 6653: 97 SUB A 6654: 32 FA 66 LD ($66FA),A ; 6657: 21 7B 65 LD HL,printPeriodScript; "." 665A: CD 57 63 CALL ExecuteCommand ; 665D: 3E 01 LD A,$01 665F: 32 FD 66 LD ($66FD),A ; 6662: 3A F6 71 LD A,($71F6) ; 6665: E6 01 AND $01 6667: CA D3 66 JP Z,$66D3 ; 666A: 97 SUB A 666B: 32 F7 71 LD ($71F7),A ; 666E: 32 F9 71 LD ($71F9),A ; 6671: 21 7A 88 LD HL,$887A 6674: CD C8 61 CALL SkipIDCalcEnd ; 6677: CD DC 61 CALL CompareHLandDE ; 667A: D2 D3 66 JP NC,$66D3 ; 667D: 3A F9 71 LD A,($71F9) ; 6680: 3C INC A 6681: 32 F9 71 LD ($71F9),A ; 6684: D5 PUSH DE 6685: CD C8 61 CALL SkipIDCalcEnd ; 6688: 3A F8 71 LD A,($71F8) ; 668B: BE CP (HL) 668C: C2 CE 66 JP NZ,$66CE ; 668F: D5 PUSH DE 6690: 3A F7 71 LD A,($71F7) ; 6693: A7 AND A 6694: C2 C2 66 JP NZ,$66C2 ; 6697: 3E 01 LD A,$01 6699: 32 F7 71 LD ($71F7),A ; 669C: 32 FB 66 LD (printedSomethingOn??),A; 669F: E5 PUSH HL 66A0: 3A F9 66 LD A,($66F9) ; 66A3: FE 01 CP $01 66A5: CA B3 66 JP Z,$66B3 ; 66A8: 21 7B 65 LD HL,printPeriodScript; "." 66AB: CD 57 63 CALL ExecuteCommand ; 66AE: 3E 01 LD A,$01 66B0: 32 FD 66 LD ($66FD),A ; 66B3: 21 7D 65 LD HL,printOnVarSeenScript; " ON <the var> CAN BE SEEN 66B6: CD 57 63 CALL ExecuteCommand ; 66B9: E1 POP HL 66BA: 3E 01 LD A,$01 66BC: 32 FA 66 LD ($66FA),A ; 66BF: C3 CA 66 JP $66CA ; 66C2: E5 PUSH HL 66C3: 21 7C 65 LD HL,printAndScript ; " AND " 66C6: CD 57 63 CALL ExecuteCommand ; 66C9: E1 POP HL 66CA: CD FE 66 CALL $66FE ; 66CD: D1 POP DE 66CE: EB EX DE,HL 66CF: D1 POP DE 66D0: C3 77 66 JP $6677 ; 66D3: 3A F7 71 LD A,($71F7) ; 66D6: A7 AND A 66D7: CA F0 66 JP Z,$66F0 ; 66DA: 3A FA 66 LD A,($66FA) ; 66DD: A7 AND A 66DE: CA F0 66 JP Z,$66F0 ; 66E1: 97 SUB A 66E2: 32 FA 66 LD ($66FA),A ; 66E5: 21 7B 65 LD HL,printPeriodScript; "." 66E8: CD 57 63 CALL ExecuteCommand ; 66EB: 3E 01 LD A,$01 66ED: 32 FD 66 LD ($66FD),A ; 66F0: D1 POP DE 66F1: 3A F9 66 LD A,($66F9) ; 66F4: 3D DEC A 66F5: 32 F9 66 LD ($66F9),A ; 66F8: C9 RET 66F9: 00 66FA: 00 printedSomethingOn??: 66FB: 00 ; 1 if something was printed (and this passes) 0 if nothing printed (failed) 66FC: 00 66FD: 00 66FE: E5 PUSH HL ; Save object pointer 66FF: 23 INC HL ; Skip ... 6700: 23 INC HL ; ... over ... 6701: 23 INC HL ; ... attributes 6702: 06 02 LD B,$02 ; SHORT_NAME section 6704: CD AD 61 CALL FindObjectField ; Look up the short name 6707: D2 7C 67 JP NC,$677C ; No short name, done here 670A: 23 INC HL ; Skip section number (0x02) 670B: 3E 41 LD A,$41 ; Print ... 670D: CD EB 70 CALL PrintCharCullSpaces ; ... "A" 6710: 3E 20 LD A,$20 ; Print ... 6712: CD EB 70 CALL PrintCharCullSpaces ; ... SPACE 6715: CD 6F 70 CALL PrintPackedAutoWrap ; Print the object short name 6718: D1 POP DE 6719: 3A FB 66 LD A,(printedSomethingOn??); 671C: F5 PUSH AF 671D: 2A F5 71 LD HL,($71F5) ; 6720: E5 PUSH HL 6721: 2A F7 71 LD HL,($71F7) ; 6724: E5 PUSH HL 6725: 3A F9 71 LD A,($71F9) ; 6728: F5 PUSH AF 6729: 32 F8 71 LD ($71F8),A ; 672C: 3A 0B 72 LD A,(varObject) ; 672F: F5 PUSH AF 6730: 2A 0C 72 LD HL,(varObjectPtr) ; 6733: E5 PUSH HL 6734: 3A F8 71 LD A,($71F8) ; 6737: 47 LD B,A 6738: 32 0B 72 LD (varObject),A ; 673B: D5 PUSH DE 673C: CD 57 70 CALL GetObjectScriptByIndex; 673F: 22 0C 72 LD (varObjectPtr),HL ; 6742: D1 POP DE 6743: EB EX DE,HL 6744: 23 INC HL 6745: 7E LD A,(HL) 6746: 32 F5 71 LD ($71F5),A ; 6749: 23 INC HL 674A: 7E LD A,(HL) 674B: 32 F6 71 LD ($71F6),A ; 674E: 97 SUB A 674F: 32 FB 66 LD (printedSomethingOn??),A; 6752: 32 F7 71 LD ($71F7),A ; 6755: CD BC 65 CALL $65BC ; 6758: E1 POP HL 6759: 22 0C 72 LD (varObjectPtr),HL ; 675C: F1 POP AF 675D: 32 0B 72 LD (varObject),A ; 6760: F1 POP AF 6761: 32 F9 71 LD ($71F9),A ; 6764: E1 POP HL 6765: 22 F7 71 LD ($71F7),HL ; 6768: E1 POP HL 6769: 22 F5 71 LD ($71F5),HL ; 676C: 3A FB 66 LD A,(printedSomethingOn??); 676F: A7 AND A 6770: CA 77 67 JP Z,$6777 ; 6773: 97 SUB A 6774: 32 F7 71 LD ($71F7),A ; 6777: F1 POP AF 6778: 32 FB 66 LD (printedSomethingOn??),A; 677B: C9 RET ; 677C: E1 POP HL ; Restore object script 677D: C9 RET COM_01_is_in_pack_or_current_room: 677E: 46 LD B,(HL) ; Get the object number 677F: 23 INC HL ; Bump script pointer 6780: E5 PUSH HL ; Hold script pointer 6781: CD 57 70 CALL GetObjectScriptByIndex; Find the requested object 6784: CD 23 60 CALL InInRoomOrPack ; Check if object is in room or pack 6787: E1 POP HL ; Restore script pointer 6788: C9 RET COM_20_is_active_this: 6789: 3A 1E 72 LD A,(activeObject) ; Get the active object number 678C: BE CP (HL) ; Does it match target in script? 678D: 23 INC HL ; Bump script pointer 678E: C9 RET COM_2C_set_active: 678F: 46 LD B,(HL) ; Get object number from script 6790: 23 INC HL ; Bump script 6791: E5 PUSH HL ; Hold 6792: 78 LD A,B ; Set the ... 6793: 32 1E 72 LD (activeObject),A ; ... active object number 6796: CD 57 70 CALL GetObjectScriptByIndex; Find the object structure 6799: 22 1F 72 LD (activeObjectPtr),HL; Hold the active object structure 679C: CD C8 61 CALL SkipIDCalcEnd ; 679F: 7E LD A,(HL) 67A0: E6 80 AND $80 67A2: 7E LD A,(HL) 67A3: C2 AE 67 JP NZ,$67AE ; 67A6: 47 LD B,A 67A7: CD 57 70 CALL GetObjectScriptByIndex; 67AA: CD C8 61 CALL SkipIDCalcEnd ; 67AD: 7E LD A,(HL) 67AE: 32 21 72 LD (currentRoom),A ; 67B1: 47 LD B,A 67B2: 21 00 52 LD HL,sectionData ; 67B5: CD A5 61 CALL FindCollectionItemByID; 67B8: 22 22 72 LD (currentRoomPtr),HL ; 67BB: E1 POP HL 67BC: 97 SUB A ; Z=1 PASS 67BD: C9 RET COM_30_set_current_room: 67BE: 7E LD A,(HL) ; Value from the script 67BF: 23 INC HL ; Advance the script pointer 67C0: 32 21 72 LD (currentRoom),A ; Set the current room 67C3: 97 SUB A ; Z=1 PASS 67C4: C9 RET COM_02_is_owned: 67C5: 46 LD B,(HL) 67C6: 23 INC HL 67C7: C3 AB 6C JP $6CAB ; COM_03_is_located: 67CA: 4E LD C,(HL) 67CB: 23 INC HL 67CC: 46 LD B,(HL) 67CD: 23 INC HL 67CE: E5 PUSH HL 67CF: CD 57 70 CALL GetObjectScriptByIndex; 67D2: CD C8 61 CALL SkipIDCalcEnd ; 67D5: 5E LD E,(HL) 67D6: 23 INC HL 67D7: 7E LD A,(HL) 67D8: E1 POP HL 67D9: 7B LD A,E 67DA: B9 CP C 67DB: C9 RET COM_0C_fail: 67DC: F6 01 OR $01 ; Z=0 FAIL 67DE: C9 RET COM_04_print_message: 67DF: 3A 1E 72 LD A,(activeObject) ; Get the active object number 67E2: FE 38 CP $38 ; Is this the system object? !! From the BEDLAM code. Not used here. 67E4: CA 00 68 JP Z,$6800 ; Yes ... print the message 67E7: FE 01 CP $01 ; Is this the player object? 67E9: C2 F9 67 JP NZ,$67F9 ; No ... COM_1F_print2: 67EC: 06 01 LD B,$01 ; Find player object 67EE: E5 PUSH HL ; Hold 67EF: CD 57 70 CALL GetObjectScriptByIndex; 67F2: CD 23 60 CALL InInRoomOrPack ; 67F5: E1 POP HL 67F6: CA 00 68 JP Z,$6800 ; 67F9: CD C9 61 CALL GetMultiByteLength ; 67FC: EB EX DE,HL 67FD: C3 03 68 JP $6803 ; ; 6800: CD 6F 70 CALL PrintPackedAutoWrap ; 6803: 97 SUB A ; Z=1 PASS 6804: C9 RET COM_07_print_room_description: 6805: CD C1 64 CALL PrintRoomDescription; 6808: 97 SUB A 6809: 32 F0 71 LD (stopAtPeriod),A ; 680C: C9 RET COM_06_print_inventory: 680D: E5 PUSH HL ; Hold 680E: 3E 0D LD A,$0D ; Print a ... 6810: CD EB 70 CALL PrintCharCullSpaces ; ... line feed 6813: 97 SUB A 6814: 32 F8 71 LD ($71F8),A ; 6817: 21 7A 88 LD HL,ObjectData ; Pointer to objects 681A: CD C8 61 CALL SkipIDCalcEnd ; Get the list of objects ; 681D: CD DC 61 CALL CompareHLandDE ; End of object list? 6820: D2 7D 68 JP NC,$687D ; Yes ... return PASS 6823: 3A F8 71 LD A,($71F8) ; 6826: 3C INC A 6827: 32 F8 71 LD ($71F8),A ; 682A: 32 0B 72 LD (varObject),A ; 682D: 22 0C 72 LD (varObjectPtr),HL ; 6830: D5 PUSH DE 6831: CD C8 61 CALL SkipIDCalcEnd ; 6834: 46 LD B,(HL) 6835: 3A 1E 72 LD A,(activeObject) ; 6838: B8 CP B 6839: C2 78 68 JP NZ,$6878 ; 683C: 23 INC HL 683D: 7E LD A,(HL) 683E: 32 F5 71 LD ($71F5),A ; 6841: 23 INC HL 6842: 7E LD A,(HL) 6843: 32 F6 71 LD ($71F6),A ; 6846: E6 20 AND $20 6848: CA 78 68 JP Z,$6878 ; 684B: 23 INC HL 684C: 06 02 LD B,$02 ; SHORT_NAME 684E: CD AD 61 CALL FindObjectField ; ... section 6851: D2 78 68 JP NC,$6878 ; Skip object if it has no short name 6854: 23 INC HL ; Bump to length 6855: 22 F3 71 LD ($71F3),HL ; 6858: D5 PUSH DE ; Hold 6859: 3E 41 LD A,$41 ; Print ... 685B: CD EB 70 CALL PrintCharCullSpaces ; ... "A" 685E: 3E 20 LD A,$20 ; Print ... 6860: CD EB 70 CALL PrintCharCullSpaces ; ... space 6863: CD 66 70 CALL PrintPackedAndLF ; Print the object short name 6866: D1 POP DE ; Restore 6867: CD B2 65 CALL $65B2 ; 686A: 3A FD 66 LD A,($66FD) ; 686D: A7 AND A 686E: CA 78 68 JP Z,$6878 ; 6871: 3E 0D LD A,$0D ; Print ... 6873: D5 PUSH DE ; ... 6874: CD EB 70 CALL PrintCharCullSpaces ; ... line feed 6877: D1 POP DE ; Restore 6878: EB EX DE,HL 6879: D1 POP DE 687A: C3 1D 68 JP $681D ; ; 687D: 97 SUB A ; Z=1 PASS 687E: E1 POP HL ; Restore script pointer 687F: C9 RET COM_08_is_first_noun: 6880: E5 PUSH HL ; Hold script pointer 6881: 2A 12 72 LD HL,(firstNounPtr) ; 6884: 3A 0F 72 LD A,(firstNoun) ; ; 6887: 22 24 72 LD ($7224),HL ; 688A: E1 POP HL 688B: A7 AND A 688C: 46 LD B,(HL) 688D: 23 INC HL 688E: CA A8 68 JP Z,$68A8 ; 6891: 4F LD C,A 6892: 78 LD A,B 6893: A7 AND A 6894: 79 LD A,C 6895: CA A8 68 JP Z,$68A8 ; 6898: E5 PUSH HL 6899: CD 57 70 CALL GetObjectScriptByIndex; 689C: EB EX DE,HL 689D: E1 POP HL 689E: 3A 24 72 LD A,($7224) ; 68A1: BB CP E 68A2: C0 RET NZ 68A3: 3A 25 72 LD A,($7225) ; 68A6: BA CP D 68A7: C9 RET 68A8: B8 CP B 68A9: C9 RET COM_09_compare_to_second_noun: 68AA: E5 PUSH HL ; Hold script pointer 68AB: 2A 18 72 LD HL,(secondNounPtr) ; Get the ... 68AE: 3A 15 72 LD A,(secondNoun) ; ... second noun 68B1: C3 87 68 JP $6887 ; ?? to second noun instead COM_2D_compare_to_var_object: 68B4: E5 PUSH HL ; Hold script pointer 68B5: 2A 0C 72 LD HL,(varObjectPtr) ; Get the ... 68B8: 3A 0B 72 LD A,(varObject) ; ... var object 68BB: C3 87 68 JP $6887 ; ?? to var object instead COM_0A_is_input_phrase: 68BE: 46 LD B,(HL) ; Get the target phrase number 68BF: 23 INC HL ; Skip over in script 68C0: 3A 1D 72 LD A,(inputPhrase) ; Current input phrase 68C3: B8 CP B ; Does it match? Z=1 PASS if the same 68C4: C9 RET COM_0F_pick_up_var_object: 68C5: E5 PUSH HL ; Hold the script pointer 68C6: 06 01 LD B,$01 ; Look up ... 68C8: CD 57 70 CALL GetObjectScriptByIndex; ... the player object 68CB: CD C8 61 CALL SkipIDCalcEnd ; Find end of player object 68CE: 4E LD C,(HL) ; Player's room number 68CF: 2A 0C 72 LD HL,(varObjectPtr) ; Get the var object 68D2: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 68D5: 79 LD A,C ; Is the player ... 68D6: A7 AND A ; ... in a room? 68D7: FA E3 68 JP M,$68E3 ; Yes ... we can do this 68DA: 7E LD A,(HL) ; Is the target object ... 68DB: A7 AND A ; ... in a room? 68DC: F2 E3 68 JP P,$68E3 ; Yes ... we can do this ; 68DF: E1 POP HL ; Restore script 68E0: F6 01 OR $01 ; Z=0 FAIL 68E2: C9 RET ; 68E3: 3A 1E 72 LD A,(activeObject) ; Get active object's number 68E6: 77 LD (HL),A ; The var is now owned by the active object 68E7: 23 INC HL ; Point to var object's disk section data 68E8: 7E LD A,(HL) ; Clear out ... 68E9: E6 F0 AND $F0 ; ... the object's ... 68EB: 77 LD (HL),A ; ... disk section 68EC: 97 SUB A ; Z=1 PASS 68ED: E1 POP HL 68EE: C9 RET COM_10_drop_var: 68EF: E5 PUSH HL ; Hold script pointer 68F0: 2A 0C 72 LD HL,(varObjectPtr) ; The current VAR object ptr 68F3: CD C8 61 CALL SkipIDCalcEnd ; Skip to the data 68F6: 3A 21 72 LD A,(currentRoom) ; Store the ... 68F9: 77 LD (HL),A ; ... current room number 68FA: 23 INC HL ; 2nd data is section number 68FB: 7E LD A,(HL) ; Get the section number 68FC: E6 F0 AND $F0 ; We are replacing the lower nibble 68FE: 47 LD B,A ; Hold upper nibble ?? Must be other data in the upper nibble ... what ?? 68FF: 3A FA 71 LD A,(currentLoadedSection); Currently loaded sector 6902: B0 OR B ; To the lower nibble (keeping object's upper nibble) 6903: 77 LD (HL),A ; Remember which section (room numbers aren't unique) 6904: 97 SUB A ; Z=1 PASS 6905: E1 POP HL ; Restore script pointer 6906: C9 RET COM_13_process_phrase_by_room_first_second: 6907: E5 PUSH HL 6908: 2A 22 72 LD HL,(currentRoomPtr) ; 690B: CD C8 61 CALL SkipIDCalcEnd ; 690E: 23 INC HL 690F: 06 04 LD B,$04 ; COMMANDS section 6911: CD AD 61 CALL FindObjectField ; 6914: D2 20 69 JP NC,$6920 ; 6917: CD C8 61 CALL SkipIDCalcEnd ; 691A: CD 57 63 CALL ExecuteCommand ; 691D: CA 63 69 JP Z,$6963 ; 6920: 3A 15 72 LD A,(secondNoun) ; 6923: A7 AND A 6924: CA 41 69 JP Z,$6941 ; 6927: 2A 18 72 LD HL,(secondNounPtr) ; 692A: CD C8 61 CALL SkipIDCalcEnd ; 692D: 23 INC HL 692E: 23 INC HL 692F: 23 INC HL 6930: 06 06 LD B,$06 ; IF_SECOND_NOUN section 6932: CD AD 61 CALL FindObjectField ; 6935: D2 41 69 JP NC,$6941 ; 6938: CD C8 61 CALL SkipIDCalcEnd ; 693B: CD 57 63 CALL ExecuteCommand ; 693E: CA 63 69 JP Z,$6963 ; 6941: 3A 0F 72 LD A,(firstNoun) ; 6944: A7 AND A 6945: C2 4C 69 JP NZ,$694C ; ; 6948: E1 POP HL ; Restore script 6949: F6 01 OR $01 ; Z=0 FAIL 694B: C9 RET 694C: 2A 12 72 LD HL,(firstNounPtr) ; 694F: CD C8 61 CALL SkipIDCalcEnd ; 6952: 23 INC HL 6953: 23 INC HL 6954: 23 INC HL 6955: 06 07 LD B,$07 ; IF_FIRST_NOUN section 6957: CD AD 61 CALL FindObjectField ; 695A: D2 48 69 JP NC,$6948 ; 695D: CD C8 61 CALL SkipIDCalcEnd ; 6960: CD 57 63 CALL ExecuteCommand ; 6963: E1 POP HL 6964: C9 RET COM_16_print_var: 6965: E5 PUSH HL 6966: 2A 0C 72 LD HL,(varObjectPtr) ; 6969: 3A 0B 72 LD A,(varObject) ; 696C: C3 76 69 JP $6976 ; COM_11_print_first_noun: 696F: E5 PUSH HL 6970: 2A 12 72 LD HL,(firstNounPtr) ; 6973: 3A 0F 72 LD A,(firstNoun) ; 6976: A7 AND A 6977: CA 63 69 JP Z,$6963 ; 697A: 06 01 LD B,$01 697C: E5 PUSH HL 697D: CD 57 70 CALL GetObjectScriptByIndex; 6980: CD 23 60 CALL InInRoomOrPack ; 6983: E1 POP HL 6984: C2 99 69 JP NZ,$6999 ; 6987: CD C8 61 CALL SkipIDCalcEnd ; 698A: 23 INC HL 698B: 23 INC HL 698C: 23 INC HL 698D: 06 02 LD B,$02 ; SHORT_NAME section 698F: CD AD 61 CALL FindObjectField ; 6992: D2 99 69 JP NC,$6999 ; 6995: 23 INC HL 6996: CD 6F 70 CALL PrintPackedAutoWrap ; 6999: E1 POP HL 699A: 97 SUB A ; Z=1 PASS 699B: C9 RET COM_12_print_second_noun: 699C: E5 PUSH HL 699D: 3A 15 72 LD A,(secondNoun) ; 69A0: 2A 18 72 LD HL,(secondNounPtr) ; 69A3: C3 76 69 JP $6976 ; ; ?? The general script added a check on the object for "GET HANDS". Revisit that. COM_15_check_var: ; ?? 2nd byte is abilities? ; Bits from the next byte in the script 69A6: E5 PUSH HL ; Hold script pointer 69A7: 2A 0C 72 LD HL,(varObjectPtr) ; Pointer to the var object 69AA: 3A 0B 72 LD A,(varObject) ; Var object number 69AD: A7 AND A ; If the "nowhere" ... 69AE: CA BC 69 JP Z,$69BC ; ... object, Fail 69B1: CD C8 61 CALL SkipIDCalcEnd ; Point to data 69B4: 23 INC HL ; Point to ... ; 69B5: 23 INC HL ; ... attributes (or extended attributes if coming from COM_2E) 69B6: 7E LD A,(HL) ; Attributes from object 69B7: E1 POP HL ; Restore script pointer 69B8: A6 AND (HL) ; Mask off all but target bits 69B9: AE XOR (HL) ; Check the target bits (Z=1 PASS if all bits were set) 69BA: 23 INC HL ; Skip over check bits 69BB: C9 RET ; 69BC: E1 POP HL ; Restore script pointer 69BD: 23 INC HL ; Skip over check bits 69BE: F6 01 OR $01 ; Z=0 FAIL 69C0: C9 RET COM_2E_check_extended_attributes: 69C1: E5 PUSH HL ; Hold script pointer 69C2: 2A 0C 72 LD HL,(varObjectPtr) ; Pointer to the VAR object 69C5: 3A 0B 72 LD A,(varObject) ; Number of the VAR object 69C8: A7 AND A ; If there is no VAR ... 69C9: CA 48 69 JP Z,$6948 ; ... object, FAIL 69CC: CD C8 61 CALL SkipIDCalcEnd ; Point to data 69CF: C3 B5 69 JP $69B5 ; Read the 2nd byte -- the extended attributes COM_29_toggle_open_var: 69D2: E5 PUSH HL ; Save script pointer 69D3: 2A 0C 72 LD HL,(varObjectPtr) ; Get the var object pointer 69D6: 3A 0B 72 LD A,(varObject) ; Get the var object 69D9: A7 AND A ; Is there a var object set? 69DA: CA 48 69 JP Z,$6948 ; No, error out 69DD: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 69E0: 23 INC HL ; Point to the object ext state 69E1: 7E LD A,(HL) ; Get the state bits 69E2: EE 20 XOR $20 ; Flip the OPEN bit 69E4: 77 LD (HL),A ; Set the state bits 69E5: E1 POP HL ; Restore script pointer 69E6: 97 SUB A ; Z=1 PASS 69E7: C9 RET COM_2A_toggle_lock_var: 69E8: E5 PUSH HL ; Hold script pointer 69E9: 2A 0C 72 LD HL,(varObjectPtr) ; Get the var object pointer 69EC: 3A 0B 72 LD A,(varObject) ; Get the var object 69EF: A7 AND A ; Is there a var object set? 69F0: CA 48 69 JP Z,$6948 ; No, error out 69F3: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 69F6: 23 INC HL ; Point to the object state 69F7: 7E LD A,(HL) ; Get the state bits 69F8: EE 40 XOR $40 ; Flip the LOCKED bit 69FA: 77 LD (HL),A ; Set the state bits 69FB: E1 POP HL ; Restore script pointer 69FC: 97 SUB A ; Z=1 PASS 69FD: C9 RET ; https://oldcomputers-ddns.org/public/pub/rechner/tandy/manuals/newdos-80%20manual.pdf ; File Control Block: https://www.trs-80.com/sub-reference-dos-trsdos-13-internals.htm#FCB COM_2F_load_disk_section: ; Loads the section from the disk. This command aborts the current script and returns to the ; top of the game loop for the next user input. This makes since as the new script is ; overwriting the old. 69FE: 7E LD A,(HL) ; Get the section number (1-9) 69FF: C6 30 ADD $30 ; Now an ASCII digit for filename 6A01: 32 EC 6A LD (sectionLetter),A ; Build the filename 6A04: 7E LD A,(HL) ; Section number again 6A05: 32 FA 71 LD (currentLoadedSection),A; Remember what's loaded ; 6A08: 21 06 6B LD HL,diskFileControlBlock; The FCB we are building 6A0B: 11 E5 6A LD DE,$6AE5 ; The filename 6A0E: 06 21 LD B,$21 ; Copy ... 6A10: 1A LD A,(DE) ; ... 6A11: 77 LD (HL),A ; ... 6A12: 23 INC HL ; ... 17 bytes of filename 6A13: 13 INC DE ; ... 6A14: 05 DEC B ; ... 6A15: C2 10 6A JP NZ,$6A10 ; ... 6A18: 06 1F LD B,$1F ; Clear rest of ... 6A1A: 36 20 LD (HL),$20 ; ... FCB ... 6A1C: 23 INC HL ; ... with ... 6A1D: 05 DEC B ; ... blank ... 6A1E: C2 1A 6A JP NZ,$6A1A ; ... spaces 6A21: 21 49 6B LD HL,sectorBuffer ; Start of 256 byte sector buffer 6A24: 11 06 6B LD DE,$6B06 ; File control block 6A27: 06 00 LD B,$00 ; Logical record length LRECL=0 means 256 bytes ; 6A29: CD 24 44 CALL OPEN_EXISTING ; Open an existing file 6A2C: C2 D0 6A JP NZ,$6AD0 ; If there is an error, retry 6A2F: 11 06 6B LD DE,$6B06 ; The FCB for the file 6A32: CD 36 44 CALL READ_RECORD ; B=0 -- 4 byte block header + 256 bytes data 6A35: 21 00 52 LD HL,sectionData ; Destination for the loaded data 6A38: 11 49 6B LD DE,$6B49 ; The buffer we just read into ; 6A3B: CD AA 6A CALL $6AAA ; Get the first byte of 4-byte block header 6A3E: FE 01 CP $01 ; File type 1 - object code or load block 6A40: C2 66 6A JP NZ,$6A66 ; Incorrect block type ... finish up 6A43: CD AA 6A CALL $6AAA ; Skip length byte in header 6A46: CD AA 6A CALL $6AAA ; Skip suggested ... 6A49: CD AA 6A CALL $6AAA ; ... load address (7200 for some reason) 6A4C: 01 00 01 LD BC,$0100 ; 256 bytes to move. Note we never use B in the loop 6A4F: 7D LD A,L ; Has our pointer maxed at ... 6A50: A7 AND A ; ... location 5D00 (LSB)? 6A51: C2 5A 6A JP NZ,$6A5A ; No, copy next byte 6A54: 7C LD A,H ; Has our pointer maxed at ... 6A55: FE 5D CP $5D ; ... location 5D00 (MSB)? 6A57: CA 66 6A JP Z,$6A66 ; Yes, done 6A5A: CD AA 6A CALL $6AAA ; Get the next byte from the file 6A5D: 77 LD (HL),A ; Store the byte 6A5E: 23 INC HL ; Bump the destination pointer 6A5F: 0D DEC C ; All 256 bytes moved? 6A60: C2 4F 6A JP NZ,$6A4F ; No, go move them all 6A63: C3 3B 6A JP $6A3B ; Check/ignore the next block header ; 6A66: 11 06 6B LD DE,$6B06 ; FCB for the file we are reading 6A69: CD 28 44 CALL CLOSE_FILE ; Close the file 6A6C: C2 D0 6A JP NZ,$6AD0 ; Error closing. We will retry. ; DescribeCurrentRoom: 6A6F: 3A 21 72 LD A,(currentRoom) ; Current room number 6A72: 47 LD B,A ; Look up ... 6A73: 21 00 52 LD HL,sectionData ; ... current room ... 6A76: CD A5 61 CALL FindCollectionItemByID; ... structure 6A79: 22 22 72 LD (currentRoomPtr),HL ; Hold current room ptr 6A7C: CD C8 61 CALL SkipIDCalcEnd ; Start of data (and end) 6A7F: 7E LD A,(HL) ; If this room has been visited ... 6A80: 32 F0 71 LD (stopAtPeriod),A ; ... stop printing description after first period 6A83: 36 01 LD (HL),$01 ; Now this room has been visited for sure 6A85: 06 01 LD B,$01 ; Get the player ... 6A87: CD 57 70 CALL GetObjectScriptByIndex; ... object 6A8A: CD C8 61 CALL SkipIDCalcEnd ; Start of data (and end) 6A8D: 3A 21 72 LD A,(currentRoom) ; Current room 6A90: 77 LD (HL),A ; Make sure the player is in this room 6A91: 23 INC HL ; Next data 6A92: 7E LD A,(HL) ; ?? and disk section 6A93: E6 F0 AND $F0 ; Leave the upper nibble alone 6A95: 47 LD B,A ; To B 6A96: 3A FA 71 LD A,(currentLoadedSection); Add the current disk section ... 6A99: B0 OR B ; ... to the player's object data 6A9A: 77 LD (HL),A ; Set the player to the currently loaded disk section 6A9B: CD C1 64 CALL PrintRoomDescription; Print the description 6A9E: 97 SUB A ; Reset the "stop ... 6A9F: 32 F0 71 LD (stopAtPeriod),A ; ... at period" print flag 6AA2: 3E 0D LD A,$0D ; Line feed before ... 6AA4: CD EB 70 CALL PrintCharCullSpaces ; ... user input 6AA7: C3 38 5D JP GameLoop ; Back to the user input loop (any script we were running is gone) 6AAA: 7B LD A,E 6AAB: FE 49 CP $49 6AAD: C2 E2 6A JP NZ,$6AE2 ; 6AB0: 7A LD A,D 6AB1: FE 6C CP $6C 6AB3: C2 E2 6A JP NZ,$6AE2 ; 6AB6: 11 06 6B LD DE,diskFileControlBlock; 6AB9: E5 PUSH HL 6ABA: C5 PUSH BC 6ABB: CD 36 44 CALL READ_RECORD ; Seek to record 6ABE: C1 POP BC 6ABF: E1 POP HL 6AC0: 11 49 6B LD DE,$6B49 6AC3: CA AA 6A JP Z,$6AAA ; 6AC6: FE 1C CP $1C 6AC8: CA 66 6A JP Z,$6A66 ; 6ACB: FE 1D CP $1D 6ACD: CA 66 6A JP Z,$6A66 ; ; 6AD0: 21 48 6B LD HL,$6B48 6AD3: CD 57 63 CALL ExecuteCommand ; 6AD6: 11 06 6B LD DE,diskFileControlBlock; 6AD9: CD 28 44 CALL CLOSE_FILE ; Close a file overlay 6ADC: CA 08 6A JP Z,$6A08 ; 6ADF: C3 D0 6A JP $6AD0 ; 6AE2: 1A LD A,(DE) 6AE3: 13 INC DE 6AE4: C9 RET ; name1[/ext1][.password1][:dn1] ; ; SECTION0/DAT 6AE5: 53 45 43 54 49 4F 4E sectionLetter: 6AEC: 30 6AED: 2F 44 41 54 20 20 20 20 20 20 24 6AF8: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 diskFileControlBlock: ; 64 byte FCB (also called DCB) 6B06: 53 45 43 54 49 4F 4E 30 2F 44 41 54 20 20 20 20 ; SECTION0/DAT 6B16: 20 20 24 20 20 20 20 20 20 20 20 20 20 20 20 20 6B26: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6B36: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6B46: 20 20 B3 sectorBuffer: ; 256 bytes for disk I/O 6B49: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6B59: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6B69: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6B79: 00 FF 00 FF 00 FF 00 F9 00 FF 00 FF 00 FF 00 FF 6B89: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6B99: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6BA9: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6BB9: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6BC9: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6BD9: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6BE9: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6BF9: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6C09: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6C19: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6C29: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 6C39: 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF COM_14_execute_and_reverse_status: 6C49: CD 57 63 CALL ExecuteCommand ; Execute the requested command 6C4C: C2 52 6C JP NZ,$6C52 ; Command failed ... reverse it to passed 6C4F: F6 01 OR $01 ; Z=0 FAIL 6C51: C9 RET ; 6C52: 97 SUB A ; Z=1 PASS 6C53: C9 RET COM_31_move_second_noun_to_var_object: ; Never used 6C54: E5 PUSH HL ; Hold script pointer 6C55: 2A 18 72 LD HL,(secondNounPtr) ; Look up the ... 6C58: CD C8 61 CALL SkipIDCalcEnd ; ... second noun object 6C5B: 3A 0B 72 LD A,(varObject) ; Now owned ... 6C5E: 77 LD (HL),A ; ... by var 6C5F: 23 INC HL ; Point to disk sector data 6C60: 7E LD A,(HL) ; Clear the ... 6C61: E6 F0 AND $F0 ; ... disk sector 6C63: 77 LD (HL),A ; Store the data value with disk sector = 0 6C64: E1 POP HL ; Restore script pointer 6C65: 97 SUB A ; Z=1 PASS 6C66: C9 RET COM_32_move_first_noun_to_var_object: 6C67: E5 PUSH HL ; Hold script pointer 6C68: 2A 12 72 LD HL,(firstNounPtr) ; Continue with ... 6C6B: C3 58 6C JP $6C58 ; ... first noun pointer instead of second COM_17_move_object_to_destination: 6C6E: 46 LD B,(HL) ; Target object from script 6C6F: 23 INC HL ; Bump script 6C70: E5 PUSH HL ; Hold script pointer 6C71: CD 57 70 CALL GetObjectScriptByIndex; Look up the target object 6C74: CD C8 61 CALL SkipIDCalcEnd ; Start of data (and end) 6C77: D1 POP DE ; Script pinter to DE now 6C78: 1A LD A,(DE) ; Get the target destination 6C79: 77 LD (HL),A ; Set the object's location to the destination 6C7A: 23 INC HL ; Object's 6C7B: E6 80 AND $80 ; Is this destination a room? 6C7D: CA 8C 6C JP Z,$6C8C ; No, it is an object so clear the loaded disk section ; 6C80: 7E LD A,(HL) ; Copy ... 6C81: E6 F0 AND $F0 ; ... loaded ... 6C83: 47 LD B,A ; ... disk ... 6C84: 3A FA 71 LD A,(currentLoadedSection); ... section ... 6C87: B0 OR B ; ... to ... 6C88: 77 LD (HL),A ; ... target object 6C89: C3 90 6C JP $6C90 ; PASS and out ; 6C8C: 7E LD A,(HL) ; Clear the ... 6C8D: E6 F0 AND $F0 ; ... loaded disk ... 6C8F: 77 LD (HL),A ; ... section in object ; 6C90: EB EX DE,HL ; Restore end and script pointer 6C91: 23 INC HL ; Skip over the destination we loaded above 6C92: 97 SUB A ; Z=1 PASS 6C93: C9 RET COM_18_is_var_owned_by_active: 6C94: E5 PUSH HL ; Hold script pointer 6C95: 2A 0C 72 LD HL,(varObjectPtr) ; Get the var object ptr 6C98: CD C8 61 CALL SkipIDCalcEnd ; Skip to object data 6C9B: 46 LD B,(HL) ; Location of the var object 6C9C: 78 LD A,B ; Is the var object location ... 6C9D: A7 AND A ; ... set to the "nowhere"? 6C9E: E1 POP HL ; Restore script 6C9F: CA 6D 60 JP Z,$606D ; Yes, FAIL 6CA2: 3A 1E 72 LD A,(activeObject) ; Get the active object 6CA5: B8 CP B ; The var object's location is the active object? 6CA6: C8 RET Z ; Yes, Z=1 PASS 6CA7: 78 LD A,B ; Is the object's location ... 6CA8: E6 80 AND $80 ; ... a room number? 6CAA: C0 RET NZ ; Yes, Z=0 FAIL (can't be owned by var) ; Not a room ... muat be owned by an object. Recurse up the tree to see if THAT object is owned by var. 6CAB: E5 PUSH HL ; Hold script pointer 6CAC: CD 57 70 CALL GetObjectScriptByIndex; Recurse into the owning object 6CAF: C3 98 6C JP $6C98 ; Check this outer object 6CB2: 21 7A 88 LD HL,ObjectData ; 6CB5: 97 SUB A ; Clear ... 6CB6: 32 1C 72 LD ($721C),A ; ... ?? count 6CB9: CD C8 61 CALL SkipIDCalcEnd ; Skip the list header 6CBC: CD DC 61 CALL CompareHLandDE ; Have we checked all objects? 6CBF: D0 RET NC ; Yes, done 6CC0: 3A 1C 72 LD A,($721C) ; Bump ... 6CC3: 3C INC A ; ... ?? ... 6CC4: 32 1C 72 LD ($721C),A ; ... count 6CC7: D5 PUSH DE ; Hold end of all objects 6CC8: CD C8 61 CALL SkipIDCalcEnd ; Get start and end of this object 6CCB: 4E LD C,(HL) 6CCC: D5 PUSH DE 6CCD: 7E LD A,(HL) ; Object's location 6CCE: A7 AND A ; Is this object at "nowhere"? 6CCF: CA 46 6D JP Z,$6D46 ; Yes, skip to next object 6CD2: E6 80 AND $80 ; Is this object in a room? 6CD4: C2 F6 6C JP NZ,$6CF6 ; Yes 6CD7: E5 PUSH HL 6CD8: 46 LD B,(HL) 6CD9: CD 57 70 CALL GetObjectScriptByIndex; 6CDC: CD C8 61 CALL SkipIDCalcEnd ; 6CDF: 7E LD A,(HL) 6CE0: A7 AND A 6CE1: CA F2 6C JP Z,$6CF2 ; 6CE4: E6 80 AND $80 6CE6: CA D8 6C JP Z,$6CD8 ; 6CE9: 23 INC HL 6CEA: 7E LD A,(HL) 6CEB: E1 POP HL 6CEC: D1 POP DE 6CED: D5 PUSH DE 6CEE: 23 INC HL 6CEF: C3 F8 6C JP $6CF8 ; 6CF2: E1 POP HL 6CF3: C3 46 6D JP $6D46 ; ; 6CF6: 23 INC HL ; 2nd byte ... 6CF7: 7E LD A,(HL) ; ... of object data 6CF8: E6 0F AND $0F ; Keep just the disk section nibble 6CFA: 47 LD B,A ; To B 6CFB: 3A FA 71 LD A,(currentLoadedSection); The current disk section 6CFE: B8 CP B ; Is this object in the loaded section? 6CFF: C2 46 6D JP NZ,$6D46 ; No, skip this object 6D02: 23 INC HL ; Skip to ... 6D03: 23 INC HL ; ... object data 6D04: 06 08 LD B,$08 ; EVERY_TURN section 6D06: CD AD 61 CALL FindObjectField ; Find the object's turn script 6D09: D2 46 6D JP NC,$6D46 ; No EVERY_TURN script, then skip this object 6D0C: CD C8 61 CALL SkipIDCalcEnd ; Get start/length of section 6D0F: E5 PUSH HL ; Hold pointer to section script 6D10: CD C6 71 CALL COM_2B_random ; Get a fresh random number 6D13: 3A 1C 72 LD A,($721C) ; Our current object ... 6D16: 32 1E 72 LD (activeObject),A ; ... is now the active object 6D19: 47 LD B,A ; To B for lookup 6D1A: CD 57 70 CALL GetObjectScriptByIndex; Find the object 6D1D: 22 1F 72 LD (activeObjectPtr),HL; 6D20: 79 LD A,C 6D21: A7 AND A 6D22: FA 35 6D JP M,$6D35 ; This object is in a room, we can run its script 6D25: 47 LD B,A 6D26: CD 57 70 CALL GetObjectScriptByIndex; 6D29: CD C8 61 CALL SkipIDCalcEnd ; 6D2C: 7E LD A,(HL) 6D2D: A7 AND A 6D2E: C2 21 6D JP NZ,$6D21 ; 6D31: E1 POP HL 6D32: C3 46 6D JP $6D46 ; Do next object ; 6D35: 32 21 72 LD (currentRoom),A ; 6D38: 21 00 52 LD HL,sectionData ; 6D3B: 47 LD B,A 6D3C: CD A5 61 CALL FindCollectionItemByID; 6D3F: 22 22 72 LD (currentRoomPtr),HL ; 6D42: E1 POP HL 6D43: CD 57 63 CALL ExecuteCommand ; Run the EVERY_TURN script ; 6D46: E1 POP HL ; Restore object pointer 6D47: D1 POP DE ; Restore end of objects 6D48: C3 BC 6C JP $6CBC ; Back for next object COM_05_is_less_equal_last_random: 6D4B: 3A EC 71 LD A,(RandomSeed2) ; 6D4E: BE CP (HL) ; Compare to target value 6D4F: 23 INC HL ; Bump the script pointer 6D50: DA 59 6D JP C,$6D59 ; If less, return 0 6D53: CA 59 6D JP Z,$6D59 ; If same, return 0 ; 6D56: F6 01 OR $01 ; Z=0 FAIL 6D58: C9 RET ; 6D59: 97 SUB A ; Z=1 PASS 6D5A: C9 RET COM_1D_attack_VAR: 6D5B: 4E LD C,(HL) 6D5C: 23 INC HL 6D5D: E5 PUSH HL 6D5E: 2A 0C 72 LD HL,(varObjectPtr) ; 6D61: CD C8 61 CALL SkipIDCalcEnd ; 6D64: 23 INC HL 6D65: 23 INC HL 6D66: 23 INC HL 6D67: E5 PUSH HL 6D68: D5 PUSH DE 6D69: 06 09 LD B,$09 ; HIT_POINTS section 6D6B: CD AD 61 CALL FindObjectField ; 6D6E: D2 96 6D JP NC,$6D96 ; 6D71: CD C8 61 CALL SkipIDCalcEnd ; 6D74: 23 INC HL 6D75: 7E LD A,(HL) 6D76: 91 SUB C 6D77: D2 7B 6D JP NC,$6D7B ; 6D7A: 97 SUB A 6D7B: 77 LD (HL),A 6D7C: D1 POP DE 6D7D: E1 POP HL 6D7E: A7 AND A 6D7F: CA 85 6D JP Z,$6D85 ; 6D82: 97 SUB A ; Z=1 PASS 6D83: E1 POP HL 6D84: C9 RET 6D85: 06 0A LD B,$0A ; UPON_DEATH section 6D87: CD AD 61 CALL FindObjectField ; 6D8A: D2 82 6D JP NC,$6D82 ; 6D8D: CD C8 61 CALL SkipIDCalcEnd ; 6D90: CD 57 63 CALL ExecuteCommand ; 6D93: C3 82 6D JP $6D82 ; 6D96: D1 POP DE 6D97: E1 POP HL 6D98: C3 82 6D JP $6D82 ; COM_1E_swap: 6D9B: 46 LD B,(HL) 6D9C: 23 INC HL 6D9D: 4E LD C,(HL) 6D9E: 23 INC HL 6D9F: E5 PUSH HL 6DA0: CD 57 70 CALL GetObjectScriptByIndex; 6DA3: CD C8 61 CALL SkipIDCalcEnd ; 6DA6: 5E LD E,(HL) 6DA7: 41 LD B,C 6DA8: E5 PUSH HL 6DA9: D5 PUSH DE 6DAA: CD 57 70 CALL GetObjectScriptByIndex; 6DAD: CD C8 61 CALL SkipIDCalcEnd ; 6DB0: D1 POP DE 6DB1: 7E LD A,(HL) 6DB2: 73 LD (HL),E 6DB3: E1 POP HL 6DB4: 77 LD (HL),A 6DB5: E1 POP HL 6DB6: 97 SUB A ; Z=1 PASS 6DB7: C9 RET COM_22__: 6DB8: 4E LD C,(HL) 6DB9: 23 INC HL 6DBA: E5 PUSH HL 6DBB: 2A 0C 72 LD HL,(varObjectPtr) ; 6DBE: CD C8 61 CALL SkipIDCalcEnd ; 6DC1: 23 INC HL 6DC2: 23 INC HL 6DC3: 23 INC HL 6DC4: 06 09 LD B,$09 ; HIT_POINTS section 6DC6: CD AD 61 CALL FindObjectField ; 6DC9: D2 D8 6D JP NC,$6DD8 ; 6DCC: CD C8 61 CALL SkipIDCalcEnd ; 6DCF: 23 INC HL 6DD0: 7E LD A,(HL) 6DD1: B9 CP C 6DD2: DA DC 6D JP C,$6DDC ; 6DD5: CA DC 6D JP Z,$6DDC ; 6DD8: E1 POP HL 6DD9: F6 01 OR $01 ; Z=0 FAIL 6DDB: C9 RET ; 6DDC: 97 SUB A ; Z=1 PASS 6DDD: E1 POP HL 6DDE: C9 RET COM_23_heal_var: ; First value of HP section is max points ; Second is current hit points ; This command adds a value to the current, but clamps the value at the max 6DDF: 4E LD C,(HL) ; Heal points 6DE0: 23 INC HL ; Advance ... 6DE1: E5 PUSH HL ; ... script 6DE2: 2A 0C 72 LD HL,(varObjectPtr) ; Get active object structure 6DE5: CD C8 61 CALL SkipIDCalcEnd ; Get data and end 6DE8: 23 INC HL ; Skip ... 6DE9: 23 INC HL ; ... object ... 6DEA: 23 INC HL ; ... data 6DEB: 06 09 LD B,$09 ; HIT_POINTS section 6DED: CD AD 61 CALL FindObjectField ; Point to object's hit points 6DF0: D2 DC 6D JP NC,$6DDC ; There are no hit points, just ignore 6DF3: CD C8 61 CALL SkipIDCalcEnd ; Skip to the data 6DF6: 56 LD D,(HL) ; D=max hit points 6DF7: 23 INC HL ; Skip to current 6DF8: 7E LD A,(HL) ; A=current hit points 6DF9: 81 ADD A,C ; Add health to current 6DFA: BA CP D ; More than allowed? 6DFB: DA FF 6D JP C,$6DFF ; No, use this new value 6DFE: 7A LD A,D ; Use the max allowed 6DFF: 77 LD (HL),A ; New health 6E00: C3 DC 6D JP $6DDC ; PASS COM_25_print_linefeed: 6E03: 3A 1E 72 LD A,(activeObject) ; Is the player ... 6E06: FE 01 CP $01 ; ... the active object? 6E08: C2 10 6E JP NZ,$6E10 ; No, ignore line feed 6E0B: 3E 0D LD A,$0D ; Print ... 6E0D: CD EB 70 CALL PrintCharCullSpaces ; ... line feed 6E10: 97 SUB A ; Z=1 PASS 6E11: C9 RET COM_36__: ; ?? ; If var object is in a room, PASS ; If var's container is open, PASS ; Else set the var to the var's container and FAIL 6E12: E5 PUSH HL ; Hold script pointer 6E13: 2A 0C 72 LD HL,(varObjectPtr) ; Var object structure 6E16: CD C8 61 CALL SkipIDCalcEnd ; Skip to the data 6E19: 7E LD A,(HL) ; Location of the var object 6E1A: E6 80 AND $80 ; Is this object in a room? 6E1C: C2 3E 6E JP NZ,$6E3E ; Yes, this command PASSes 6E1F: 46 LD B,(HL) ; Not a room, get the owner object 6E20: 48 LD C,B ; Hold 6E21: CD 57 70 CALL GetObjectScriptByIndex; Look up the owning object 6E24: 54 LD D,H ; Owning object ... 6E25: 5D LD E,L ; ... to DE 6E26: D5 PUSH DE ; Hold ptr to owning object 6E27: CD C8 61 CALL SkipIDCalcEnd ; Skip to the data (in HL) 6E2A: D1 POP DE ; DE is the owning object 6E2B: 23 INC HL ; Get the ... 6E2C: 7E LD A,(HL) ; ... extended attributes 6E2D: E6 20 AND $20 ; Is the containing object OPEN? 6E2F: CA 3E 6E JP Z,$6E3E ; Yes, this PASSes 6E32: 79 LD A,C ; Set var object to the ... 6E33: 32 0B 72 LD (varObject),A ; ... owner of the var 6E36: EB EX DE,HL ; And set the varObject ... 6E37: 22 0C 72 LD (varObjectPtr),HL ; ... pointer ; 6E3A: E1 POP HL ; Restore the script pointer 6E3B: F6 01 OR $01 ; Z=0 FAIL 6E3D: C9 RET 6E3E: E1 POP HL ; Restore the script pointer 6E3F: 97 SUB A ; Z=1 PASS 6E40: C9 RET COM_24_exit_program: 6E41: C3 2D 40 JP EndProgram ; Exit program normally COM_28_save_game: 6E44: 3E 55 LD A,$55 ; "U" prefix 6E46: 32 4F 6F LD (objectSaveName),A ; This goes to the USER save file USVDOBJS/DAT 6E49: 3E 39 LD A,$39 ; 4439 - WRITE RECORD 6E4B: 32 1E 6F LD ($6F1E),A ; Set LSB of CALL later in code 6E4E: 3E 20 LD A,$20 ; 4420 - OPEN NEW OR EXISTING 6E50: 32 03 6F LD ($6F03),A ; LSB of 4420 in CALL bellow 6E53: E5 PUSH HL ; Hold script pointer 6E54: 06 92 LD B,$92 ; Look up ... 6E56: CD 57 70 CALL GetObjectScriptByIndex; ... score object 6E59: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 6E5C: 23 INC HL ; Second byte of data 6E5D: 3A FA 71 LD A,(currentLoadedSection); Write section number ... 6E60: 77 LD (HL),A ; ... to the score object's loaded-disk-sector data 6E61: 06 9B LD B,$9B ; ?? Object 9B ?? 6E63: CD 57 70 CALL GetObjectScriptByIndex; 6E66: CD C8 61 CALL SkipIDCalcEnd ; 6E69: 77 LD (HL),A ; ?? loaded section number to the room number ?? 6E6A: C3 DA 6E JP $6EDA ; Common access routine COM_27_load_game: 6E6D: 3E 55 LD A,$55 ; "U" prefix to filename 6E6F: 32 4F 6F LD (objectSaveName),A ; This goes to the USER save file USVDOBJS/DAT 6E72: 3E 36 LD A,$36 ; 4436 - READ RECORD 6E74: 32 1E 6F LD ($6F1E),A ; Set LSB of CALL later in code 6E77: 3E 24 LD A,$24 ; 4424 - OPEN EXISTING 6E79: 32 03 6F LD ($6F03),A ; Set LSB of CALL later in code 6E7C: E5 PUSH HL ; Hold script pointer 6E7D: 21 85 6E LD HL,$6E85 ; We need to return here after the common access function 6E80: E3 EX (SP),HL ; Insert a new function ... 6E81: E5 PUSH HL ; ... into the call stack. Clever 6E82: C3 DA 6E JP $6EDA ; Common access then come back below ; 6E85: 06 9B LD B,$9B ; ?? Mystery object 9B 6E87: CD 57 70 CALL GetObjectScriptByIndex; Look up ... 6E8A: CD C8 61 CALL SkipIDCalcEnd ; ... object 9B 6E8D: 7E LD A,(HL) ; Object 9B's location 6E8E: 06 01 LD B,$01 ; Look up ... 6E90: CD 57 70 CALL GetObjectScriptByIndex; ... the player object 6E93: CD C8 61 CALL SkipIDCalcEnd ; Find start and end ; ; !! Why did we look up object 9B's room number? We clobber it next instruction. ; 6E96: 7E LD A,(HL) ; Player's current room 6E97: E6 80 AND $80 ; Check upper bit 6E99: 7E LD A,(HL) ; Player's current room 6E9A: C2 A5 6E JP NZ,$6EA5 ; Player is in a room, use this room 6E9D: 46 LD B,(HL) ; Not a room but an object number 6E9E: CD 57 70 CALL GetObjectScriptByIndex; Find the object the ... 6EA1: CD C8 61 CALL SkipIDCalcEnd ; ... player is inside 6EA4: 7E LD A,(HL) ; The room the player's owner is in 6EA5: 32 21 72 LD (currentRoom),A ; Reset the current room number after the load 6EA8: 06 92 LD B,$92 ; Look up ... 6EAA: CD 57 70 CALL GetObjectScriptByIndex; ... the score object 6EAD: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 6EB0: 23 INC HL ; Skip to disk section data 6EB1: 3A FA 71 LD A,(currentLoadedSection); Is the needed disk ... 6EB4: BE CP (HL) ; ... section already loaded? 6EB5: CA 6F 6A JP Z,DescribeCurrentRoom; Yes ... go print the room description 6EB8: C3 FE 69 JP COM_2F_load_disk_section; No ... load the section and print description COM_34_save_system_objects_to_disk: 6EBB: 3E 20 LD A,$20 ; 4420 - OPEN NEW OR EXISTING EXISTING (for writing/overwriting) 6EBD: 32 03 6F LD ($6F03),A ; Set LSB of CALL later in code 6EC0: 3E 39 LD A,$39 ; 4439 - WRITE RECORD (for writing) 6EC2: C3 CC 6E JP $6ECC ; Do the common read/write function COM_35_load_system_objects_from_disk: 6EC5: 3E 24 LD A,$24 ; 4424 - OPEN EXISTING (for reading) 6EC7: 32 03 6F LD ($6F03),A ; Set LSB of CALL later in code 6ECA: 3E 36 LD A,$36 ; 4436 - READ RECORD (for reading) ; 6ECC: 32 1E 6F LD ($6F1E),A ; Set LSB of CALL later in code 6ECF: 3E 53 LD A,$53 ; "S" prefix for ... 6ED1: 32 4F 6F LD (objectSaveName),A ; ... the "SSVDOBJS/DAT" file 6ED4: E5 PUSH HL ; Hold script pointer 6ED5: 3E 30 LD A,$30 ; Drive number "0" for the end ... 6ED7: 32 A2 6F LD (selectedDiskDrive),A; ... of the filespec. SSVDOBJS always goes to "0". ; 6EDA: 21 4F 6F LD HL,$6F4F ; Pointer to filename 6EDD: 11 62 6F LD DE,$6F62 ; Pointer to FCB structure 6EE0: 06 13 LD B,$13 ; Copy ... 6EE2: 7E LD A,(HL) ; ... file ... 6EE3: 12 LD (DE),A ; ... name ... 6EE4: 23 INC HL ; ... to ... 6EE5: 13 INC DE ; ... ... 6EE6: 05 DEC B ; ... the ... 6EE7: C2 E2 6E JP NZ,$6EE2 ; ... FCB 6EEA: 3E 20 LD A,$20 ; SPACE caracter 6EEC: 06 2D LD B,$2D ; 45 bytes (19+45=64) ... 6EEE: 12 LD (DE),A ; ... to ... 6EEF: 13 INC DE ; ... blank ... 6EF0: 05 DEC B ; ... the ... 6EF1: C2 EE 6E JP NZ,$6EEE ; ... FCB 6EF4: 3A A2 6F LD A,(selectedDiskDrive); Copy drive spec ... 6EF7: 32 73 6F LD ($6F73),A ; ... to filename 6EFA: 21 6E BD LD HL,diskAccessBuffer ; 256 byte buffer needed by DOS 6EFD: 11 62 6F LD DE,objectSaveFCB ; The FCB 6F00: 06 03 LD B,$03 ; LREC record length of 3 bytes per access (read or write by 3s) ; ; Various spots in the code change the LSB of this call. The algorithm is the same for READ and ; WRITE with HL pointing to the data (in or out). The code above configures the OPEN and ACCESS ; addresses for read or write. ; 6F02: CD 20 44 CALL OPEN_NEW_EXISTING ; LSB CHANGED BY CODE ABOVE 6F05: C2 47 6F JP NZ,$6F47 ; Error opening file ... print it and restart game loop 6F08: 21 7A 88 LD HL,$887A ; Object data 6F0B: CD C8 61 CALL SkipIDCalcEnd ; Pointer to player object ; 6F0E: D5 PUSH DE ; Hold the end of all objects 6F0F: CD C8 61 CALL SkipIDCalcEnd ; Pointer to object's 3 data bytes 6F12: D5 PUSH DE ; Hold the end of THIS object 6F13: 23 INC HL ; Pointer ... 6F14: 23 INC HL ; ... past ... 6F15: 23 INC HL ; ... data (where we'll start looking for the HIT POINTS section) 6F16: E5 PUSH HL ; Hold it 6F17: 2B DEC HL ; Back ... 6F18: 2B DEC HL ; ... to ... 6F19: 2B DEC HL ; ... object's 3 byte data ; 6F1A: 11 62 6F LD DE,objectSaveFCB ; The FCB 6F1D: CD 39 44 CALL WRITE_RECORD ; LSB CHANGED BY CODE ABOVE read/write the 3 bytes 6F20: C2 47 6F JP NZ,$6F47 ; Disk error, print the error and restart game loop 6F23: E1 POP HL ; Pointer past 3 byte data (start of object sections) 6F24: D1 POP DE ; End of this object 6F25: D5 PUSH DE ; Save it back on the stack 6F26: 06 09 LD B,$09 ; HIT_POINTS section (there should be 0 or 1 of these) 6F28: CD AD 61 CALL FindObjectField ; Look for any hit points 6F2B: D2 33 6F JP NC,$6F33 ; This object has no hit points, start next object 6F2E: D5 PUSH DE ; Hold end of section 6F2F: 23 INC HL ; Point to the length (always a "2", so we get a 3-byte record) 6F30: C3 1A 6F JP $6F1A ; Write the hit points ; 6F33: E1 POP HL ; End of object now the start of next 6F34: D1 POP DE ; End of all objects 6F35: CD DC 61 CALL CompareHLandDE ; All objects done? 6F38: DA 0E 6F JP C,$6F0E ; No, continue with next object ; 6F3B: 11 62 6F LD DE,objectSaveFCB ; FCB for save file 6F3E: CD 28 44 CALL CLOSE_FILE ; Close the disk file 6F41: C2 47 6F JP NZ,$6F47 ; If there was an error, print it and restart game loop 6F44: E1 POP HL ; Restore script pointer 6F45: 97 SUB A ; Z=1 PASS 6F46: C9 RET ; 6F47: F6 80 OR $80 ; DOS prints the error and returns here 6F49: CD 09 44 CALL ERROR_SYS4 ; Print the disk error 6F4C: C3 38 5D JP GameLoop ; Restart the game loop objectSaveName: 6F4F: 53 53 56 44 4F 42 4A 53 2F 44 41 54 20 20 20 20 ; "SSVDOBJS/DAT______$" 6F5F: 20 20 24 objectSaveFCB: ; 64 byte buffer for FCB 6F62: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6F72: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6F82: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6F92: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 selectedDiskDrive: 6FA2: 30 ; When the player selects a drive to save/load (default for SSOBJ is "0") 6FA3: 00 PrintAsciiString: ; Doesn't seem to be called ; DE points to null-terminated string 6FA4: 1A LD A,(DE) ; Get the next character 6FA5: A7 AND A ; End of list? 6FA6: C8 RET Z ; Yes ... done 6FA7: D5 PUSH DE ; Hold the pointer 6FA8: CD EB 70 CALL PrintCharCullSpaces ; Print the character 6FAB: D1 POP DE ; Restore 6FAC: 13 INC DE ; Point to next character 6FAD: C3 A4 6F JP PrintAsciiString ; Do all characters COM_26_print_score: ; Score is kept in a BCD nibble printed as "X0" with a trailing 0. ; Thus score is "00", "10", "20", "30", etc 6FB0: E5 PUSH HL ; Hold 6FB1: 06 92 LD B,$92 ; Look up the ... 6FB3: CD 57 70 CALL GetObjectScriptByIndex; ... score object 6FB6: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 6FB9: 7E LD A,(HL) ; Get the score value 6FBA: 32 FB 71 LD ($71FB),A ; Hold on to score value ?? why 6FBD: 3A FB 71 LD A,($71FB) ; Get score value 6FC0: E6 0F AND $0F ; Kepp lower nibble 6FC2: C6 30 ADD $30 ; Convert to number 6FC4: 47 LD B,A ; Print ... 6FC5: CD EB 70 CALL PrintCharCullSpaces ; ... digit 6FC8: 3E 00 LD A,$00 ; Number 0 6FCA: E6 0F AND $0F ; Maybe there was a 2nd digit at one time? 6FCC: C6 30 ADD $30 ; Convert to number 6FCE: 47 LD B,A ; Print ... 6FCF: CD EB 70 CALL PrintCharCullSpaces ; ... trailing zero 6FD2: 3E 20 LD A,$20 ; Print ... 6FD4: 47 LD B,A ; ... trailing ... 6FD5: CD EB 70 CALL PrintCharCullSpaces ; ... space on end 6FD8: E1 POP HL ; Restore 6FD9: 97 SUB A ; Z=1 PASS 6FDA: C9 RET COM_38_bump_score: 6FDB: E5 PUSH HL ; Hold 6FDC: 06 92 LD B,$92 ; Look up ... 6FDE: CD 57 70 CALL GetObjectScriptByIndex; ... the score object 6FE1: CD C8 61 CALL SkipIDCalcEnd ; Skip to data 6FE4: 7E LD A,(HL) ; Current score nibble 6FE5: C6 01 ADD $01 ; Bump the score 6FE7: 27 DAA ; Adjust for BCD 6FE8: 77 LD (HL),A ; Store new score 6FE9: E1 POP HL ; Restore 6FEA: 97 SUB A ; Z=1 PASS 6FEB: C9 RET COM_39_check_weight_70_or_less: ; PASS if weight is 70 or less ; FAIL if too heavy 6FEC: E5 PUSH HL ; Hold script 6FED: 21 7A 88 LD HL,ObjectData ; Run the list of objects 6FF0: 97 SUB A ; Total weight ... 6FF1: 32 1C 72 LD ($721C),A ; ... in backpack 6FF4: CD C8 61 CALL SkipIDCalcEnd ; Skip to ... 6FF7: CD DC 61 CALL CompareHLandDE ; ... first object 6FFA: D2 E9 6F JP NC,$6FE9 ; All objects added, PASS 6FFD: D5 PUSH DE ; Hold end of script 6FFE: CD C8 61 CALL SkipIDCalcEnd ; Skip to object's data 7001: 7E LD A,(HL) ; Object's location 7002: FE 01 CP $01 ; Is object in player's backpack? 7004: C2 23 70 JP NZ,$7023 ; No, ignore this object 7007: 23 INC HL ; Skip ... 7008: 23 INC HL ; ... over ... 7009: 23 INC HL ; ... object base data 700A: 06 0C LD B,$0C ; WEIGHT section 700C: CD AD 61 CALL FindObjectField ; Find the weight 700F: D2 23 70 JP NC,$7023 ; This object has no weight, ignore it 7012: D5 PUSH DE ; Hold end of object 7013: CD C8 61 CALL SkipIDCalcEnd ; 7016: 3A 1C 72 LD A,($721C) ; Add ... 7019: 86 ADD A,(HL) ; ... this weight ... 701A: 32 1C 72 LD ($721C),A ; ... to running total 701D: D1 POP DE ; Restore end of object 701E: FE 47 CP $47 ; 70 or less? 7020: D2 28 70 JP NC,$7028 ; No, FAIL weight check ; 7023: EB EX DE,HL ; Point to next object 7024: D1 POP DE ; Restore end of script 7025: C3 F7 6F JP $6FF7 ; Next object ; 7028: D1 POP DE ; Restore end of script 7029: E1 POP HL ; Restore script pointer 702A: F6 01 OR $01 ; Z=0 FAIL 702C: C9 RET COM_3A_clear_screen: 702D: E5 PUSH HL ; Hold script pointer 702E: 21 00 3C LD HL,$3C00 ; Start of screen 7031: 11 00 04 LD DE,$0400 ; Number of bytes on the screen 7034: 36 20 LD (HL),$20 ; Set character ... 7036: 23 INC HL ; ... to space 7037: 1B DEC DE ; Dec the count 7038: 7A LD A,D ; Counter ... 7039: B3 OR E ; ... reached zero? 703A: C2 34 70 JP NZ,$7034 ; No ... clear the whole screen 703D: E1 POP HL ; Restore script pointer 703E: 97 SUB A ; Z=1 PASS 703F: C9 RET COM_3B_wait_for_key_123: 7040: E5 PUSH HL ; Hold script pointer 7041: CD 99 62 CALL GetKey ; Wait for a key 7044: FE 30 CP $30 ; Less than "0"? 7046: DA 41 70 JP C,$7041 ; Yes ... ignore 7049: FE 34 CP $34 ; Less than "4" 704B: D2 41 70 JP NC,$7041 ; No ... ignore 704E: 32 A2 6F LD (selectedDiskDrive),A; Hold the player's choice 7051: CD EB 70 CALL PrintCharCullSpaces ; Print the player's choice 7054: E1 POP HL ; Restore script pointer 7055: 97 SUB A ; Z=1 PASS 7056: C9 RET GetObjectScriptByIndex: ; B is object index ; Return pointer to object in HL 7057: 21 7A 88 LD HL,$887A ; Object scripts 705A: CD C8 61 CALL SkipIDCalcEnd ; Start to HL, End to DE 705D: 05 DEC B ; Is this the index we want? 705E: C8 RET Z ; Yes ... done 705F: CD C8 61 CALL SkipIDCalcEnd ; Find end of this object 7062: EB EX DE,HL ; Move to the end 7063: C3 5D 70 JP $705D ; Keep looking PrintPackedAndLF: 7066: CD 6F 70 CALL PrintPackedAutoWrap ; Print the packed message 7069: 3E 0D LD A,$0D ; Print ... 706B: CD EB 70 CALL PrintCharCullSpaces ; ... line feed 706E: C9 RET PrintPackedAutoWrap: 706F: 01 00 00 LD BC,$0000 ; Building length 7072: 7E LD A,(HL) ; First byte of length 7073: E6 80 AND $80 ; Is this a 2 byte length? 7075: CA 7D 70 JP Z,$707D ; No, just use the LSB 7078: 7E LD A,(HL) ; MSB again 7079: E6 7F AND $7F ; Drop the upper bit flag 707B: 47 LD B,A ; MSB of BC 707C: 23 INC HL ; Point to LSB ; 707D: 4E LD C,(HL) ; Get the LSB of length 707E: 23 INC HL ; Skip the LSB 707F: 78 LD A,B ; Are ... 7080: A7 AND A ; ... there ... 7081: C2 8A 70 JP NZ,$708A ; ... at least ... 7084: 79 LD A,C ; ... two ... 7085: FE 02 CP $02 ; ... bytes left? 7087: DA D4 70 JP C,$70D4 ; No, print these last chars as-is 708A: 3A F0 71 LD A,(stopAtPeriod) ; 708D: A7 AND A 708E: FA E2 70 JP M,$70E2 ; 7091: CD 1B 71 CALL PrintPackedString ; 7094: 0B DEC BC 7095: 0B DEC BC 7096: 3A 20 40 LD A,(CursorPointer) ; 7099: FE FB CP $FB 709B: DA 7F 70 JP C,$707F ; 709E: E5 PUSH HL 709F: 2A 20 40 LD HL,(CursorPointer) ; 70A2: 11 BF FF LD DE,$FFBF 70A5: 19 ADD HL,DE 70A6: 3E 0D LD A,$0D 70A8: CD EB 70 CALL PrintCharCullSpaces ; 70AB: 3E 20 LD A,$20 70AD: 32 0A 72 LD (lastChar),A ; 70B0: 7E LD A,(HL) 70B1: FE 20 CP $20 70B3: CA BA 70 JP Z,$70BA ; 70B6: 2B DEC HL 70B7: C3 B0 70 JP $70B0 ; 70BA: 23 INC HL 70BB: 7E LD A,(HL) 70BC: FE 20 CP $20 70BE: CA D0 70 JP Z,$70D0 ; 70C1: 36 20 LD (HL),$20 70C3: FE 1B CP $1B 70C5: D2 CA 70 JP NC,$70CA ; 70C8: C6 40 ADD $40 70CA: CD EB 70 CALL PrintCharCullSpaces ; 70CD: C3 BA 70 JP $70BA ; 70D0: E1 POP HL 70D1: C3 7F 70 JP $707F ; ; 70D4: 79 LD A,C ; Any remaining ... 70D5: A7 AND A ; ... characters? 70D6: CA E5 70 JP Z,$70E5 ; No, done 70D9: 7E LD A,(HL) ; Get the extra character 70DA: CD EB 70 CALL PrintCharCullSpaces ; Print it 70DD: 23 INC HL ; Point to next extra 70DE: 0D DEC C ; Count of extra chars 70DF: C3 D4 70 JP $70D4 ; Do all extra chars ; 70E2: 21 9A BF LD HL,$BF9A ; This is past all calculated string ends. ; 70E5: 3E 20 LD A,$20 ; Print a space ... 70E7: CD EB 70 CALL PrintCharCullSpaces ; ... on the end 70EA: C9 RET PrintCharCullSpaces: ; Print a character and remember the last character printed. Ignore double spaces ; and spaces before punctuation ".", "?", and "!". 70EB: F5 PUSH AF ; Hold the output character 70EC: 3A 0A 72 LD A,(lastChar) ; Last printed ... 70EF: FE 20 CP $20 ; ... was a space? 70F1: C2 13 71 JP NZ,$7113 ; No ... print it and out 70F4: F1 POP AF ; Restore the output character 70F5: FE 20 CP $20 ; Printing a space? 70F7: C8 RET Z ; Yes ... just skip it (done) 70F8: FE 2E CP $2E ; A period? 70FA: CA 07 71 JP Z,$7107 ; Yes ... remove leading space 70FD: FE 3F CP $3F ; A question mark? 70FF: CA 07 71 JP Z,$7107 ; Yes ... remove leading space 7102: FE 21 CP $21 ; An exclamation mark? 7104: C2 14 71 JP NZ,$7114 ; No ... print and out ; 7107: E5 PUSH HL ; Hold HL 7108: 2A 20 40 LD HL,(CursorPointer) ; Back screen ... 710B: 2B DEC HL ; ... pointer up ... 710C: 22 20 40 LD (CursorPointer),HL ; ... over ignored space 710F: E1 POP HL ; Restore HL 7110: C3 14 71 JP $7114 ; Print character and out ; 7113: F1 POP AF ; Restore character to print ; 7114: 32 0A 72 LD (lastChar),A ; Remember this last printed char 7117: CD 33 00 CALL PrintChar ; Print the character 711A: C9 RET PrintPackedString: ; If the "stopAfterPeriod" flag is 0, then we print the entire string. Otherwise, we ; print up till the first period (used for short room descriptions). 711B: 11 C2 71 LD DE,unpackBuffer ; Pointer to 3-byte unpack buffer 711E: C5 PUSH BC ; Preserve BC 711F: 06 03 LD B,$03 ; Three characters to extract from word 7121: 7E LD A,(HL) ; Get the MSB of the word 7122: 23 INC HL ; Get the ... 7123: 4E LD C,(HL) ; ... LSB of the word 7124: 23 INC HL ; Update the pointer ... 7125: E5 PUSH HL ; ... to data 7126: 61 LD H,C ; Data word ... 7127: 6F LD L,A ; ... to HL 7128: 13 INC DE ; Skip to end ... 7129: 13 INC DE ; ... we are storing in reverse 712A: EB EX DE,HL ; Now HL=buffer and DE=data 712B: E5 PUSH HL ; Hold pointer to the buffer 712C: C5 PUSH BC ; Hold our count to 3 ; 712D: 21 28 00 LD HL,$0028 ; The value ... 7130: 22 C0 71 LD (valueOfForty),HL ; ... 40 for division (repeated subtraction) 7133: 21 63 71 LD HL,$7163 ; Pointer to shift count 7136: 36 11 LD (HL),$11 ; Initialize shift count to 11 (end + 1 = 17) 7138: 01 00 00 LD BC,$0000 ; Value we are extracting 713B: C5 PUSH BC ; 713C: 7B LD A,E ; 713D: 17 RLA ; 713E: 5F LD E,A ; 713F: 7A LD A,D ; 7140: 17 RLA ; TODO decode this like in Pyramid ... 7141: 57 LD D,A ; ... exactly the same code 7142: 35 DEC (HL) ; 7143: E1 POP HL ; 7144: CA 64 71 JP Z,$7164 ; 7147: 3E 00 LD A,$00 ; 7149: CE 00 ADC $00 ; 714B: 29 ADD HL,HL ; 714C: 44 LD B,H ; 714D: 85 ADD A,L ; 714E: 2A C0 71 LD HL,(valueOfForty) ; 7151: 95 SUB L ; 7152: 4F LD C,A ; 7153: 78 LD A,B ; 7154: 9C SBC H ; 7155: 47 LD B,A ; 7156: C5 PUSH BC ; 7157: D2 5C 71 JP NC,$715C ; 715A: 09 ADD HL,BC ; 715B: E3 EX (SP),HL ; 715C: 21 63 71 LD HL,$7163 ; 715F: 3F CCF ; 7160: C3 3C 71 JP $713C ; Do all bits shiftCount: 7163: 00 ; Count of shifts during the unpack algorithm 7164: 01 97 71 LD BC,CharTable ; Offset to character table 7167: 09 ADD HL,BC ; Offset to the character in the table 7168: 7E LD A,(HL) ; Get the character 7169: C1 POP BC ; Restore the count in B 716A: E1 POP HL ; Restore the pointer to buffer 716B: 77 LD (HL),A ; Store the character in the buffer 716C: 2B DEC HL ; Working backwards in sets of 3 716D: 05 DEC B ; All 3 values extracted? 716E: C2 2B 71 JP NZ,$712B ; No, go extract them all ; 7171: 21 C2 71 LD HL,$71C2 ; Pointer to three byte buffer we just filled 7174: 06 03 LD B,$03 ; Three unpacked characters to print 7176: 7E LD A,(HL) ; Get unpacked character 7177: CD EB 70 CALL PrintCharCullSpaces ; Print it on the screen 717A: 3A F0 71 LD A,(stopAtPeriod) ; Stopping after ... 717D: A7 AND A ; ... short description? 717E: CA 8F 71 JP Z,$718F ; No ... print all characters 7181: 7E LD A,(HL) ; Character again 7182: FE 2E CP $2E ; Did we print a period? 7184: C2 8F 71 JP NZ,$718F ; No ... keep printing 7187: 3E 80 LD A,$80 ; ?? flag for stopping short 7189: 32 F0 71 LD (stopAtPeriod),A ; ?? 718C: C3 94 71 JP $7194 ; Abort printing after the short description 718F: 23 INC HL ; Next unpacked 7190: 05 DEC B ; All 3 done? 7191: C2 76 71 JP NZ,$7176 ; Do all 3 characters 7194: E1 POP HL ; Restore ... 7195: C1 POP BC ; ... things we mangled 7196: C9 RET CharTable: 7197: 3F 21 32 20 22 27 3C 3E 2F 30 33 ; ?!2_"'<>/03 71A2: 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 ; ABCDEFGHIJKLMNOP 71B2: 51 52 53 54 55 56 57 58 59 5A 2D 2C 2E ; QRSTUVWXYZ-,. 71BF: 00 ; count of number of words to unpack in TRS80 pyramid engine valueOfForty: 71C0: 00 00 ; For division by 40 in the unpack unpackBuffer: 71C2: 00 00 00 71C5: 00 COM_2B_random: 71C6: C5 PUSH BC ; Algorithm for random number from seed 71C7: E5 PUSH HL ; 71C8: 2A EC 71 LD HL,(RandomSeed2) ; 71CB: 06 17 LD B,$17 ; 71CD: 7D LD A,L ; 71CE: E6 06 AND $06 ; 71D0: 37 SCF ; 71D1: EA D5 71 JP PE,$71D5 ; 71D4: 3F CCF ; 71D5: 7C LD A,H ; 71D6: 1F RRA ; 71D7: 67 LD H,A ; 71D8: 7D LD A,L ; 71D9: 1F RRA ; 71DA: E6 FE AND $FE ; 71DC: 6F LD L,A ; 71DD: 05 DEC B ; 71DE: C2 CE 71 JP NZ,$71CE ; 71E1: 22 EC 71 LD (RandomSeed2),HL ; 71E4: 97 SUB A ; Z=1 PASS 71E5: E1 POP HL ; 71E6: C1 POP BC ; 71E7: C9 RET RandomSeed1: 71E8: 12 23 44 1D ; Exact same seed from Bedlam RandomSeed2: 71EC: 27 4D 2D 13 stopAtPeriod: 71F0: 00 ; 0 means print all. non-zero means stop printing after first period (short description of room) 71F1: 00 71F2: 00 71F3: 00 71F4: 00 71F5: 00 71F6: 00 71F7: 00 71F8: 00 71F9: 00 currentLoadedSection: 71FA: 00 ; the currently loaded sction number (1-9) 71FB: 00 ; Score is written here during print 71FC: 00 71FD: 00 tmp1: 71FE: 00 verbWord: 71FF: 00 prepWord: 7200: 00 prepGiven: 7201: 00 7202: 00 adjWord: 7203: 00 commandTarg: 7204: 00 7205: 00 lsbAdj1: 7206: 00 7207: 00 lsbVerb: 7208: 00 7209: 00 lastChar: 720A: 00 ; last character printed varObject: 720B: 00 varObjectPtr: 720C: 00 00 720E: 00 firstNoun: 720F: 00 7210: 00 ; ?? firstNounAdj 7211: 00 ; ?? firstNounLSB firstNounPtr: 7212: 00 00 7214: 00 secondNoun: 7215: 00 7216: 00 7217: 00 secondNounPtr: 7218: 00 00 721A: 00 721B: 00 721C: 00 inputPhrase: 721D: 00 activeObject: 721E: 01 ; 1=player, 38=system activeObjectPtr: 721F: 00 00 currentRoom: 7221: 81 ; we start in room 81 currentRoomPtr: 7222: 03 52 ; 5203 is first room loaded from SECTION1.DAT 7224: 48 LD C,B 7225: 72 LD (HL),D 7226: 00 7227: 00 7228: 06 3F LD B,$3F 722A: 56 LD D,(HL) 722B: 45 LD B,L 722C: 52 LD D,D 722D: 42 LD B,D 722E: 3F CCF 722F: 06 3F LD B,$3F 7231: 57 LD D,A 7232: 48 LD C,B 7233: 41 LD B,C 7234: 54 LD D,H 7235: 3F CCF 7236: 07 RLCA 7237: 3F CCF 7238: 57 LD D,A 7239: 48 LD C,B 723A: 49 LD C,C 723B: 43 LD B,E 723C: 48 LD C,B 723D: 3F CCF 723E: 08 EX AF,AF' 723F: 3F CCF 7240: 50 LD D,B 7241: 48 LD C,B 7242: 52 LD D,D 7243: 41 LD B,C 7244: 53 LD D,E 7245: 45 LD B,L 7246: 3F CCF ;?? input tokens input buffer 7247: D4 00 7249: 00 724A: 00 724B: 00 724C: 00 724D: 00 724E: 00 724F: 00 7250: 00 7251: 00 7252: 00 7253: 00 7254: 00 7255: 00 7256: 00 7257: 00 7258: 00 7259: 00 725A: 00 725B: 00 725C: 00 725D: 00 725E: 00 725F: 00 7260: 00 7261: 00 7262: 00 7263: 00 7264: 00 7265: 00 InitScript: 7266: 94 ; Initialization script (Load SECTION1.DAT) SplashMessage: 7267: A3 ; Print ">>>> XENOS <<<<" and "STRANGER, BEWARE!" CommandJumpTable: 7268: DC 63 ; COM_00_move_ACTIVE_and_look(room_num) 726A: 7E 67 ; COM_01_is_in_pack_or_current_room(obj_num) 726C: C5 67 ; COM_02_is_owned(obj_num) 726E: CA 67 ; COM_03_is_located(room_num, obj_num) 7270: DF 67 ; COM_04_print_message(mlength) 7272: 4B 6D ; COM_05_is_less_equal_last_random(value) 7274: 0D 68 ; COM_06_print_inventory() 7276: 05 68 ; COM_07_print_room_description() 7278: 80 68 ; COM_08_is_first_noun(word_num) 727A: AA 68 ; COM_09_compare_to_second_noun(word_num) 727C: BE 68 ; COM_0A_is_input_phrase(phrase_num) 727E: B7 63 ; COM_0B_switch(mlength, com_num) 7280: DC 67 ; COM_0C_fail() 7282: 8A 63 ; COM_0D_while_pass(mlength) 7284: A0 63 ; COM_0E_while_fail(mlength) 7286: C5 68 ; COM_0F_pick_up_var_object() 7288: EF 68 ; COM_10_drop_var() 728A: 6F 69 ; COM_11_print_first_noun() 728C: 9C 69 ; COM_12_print_second_noun() 728E: 07 69 ; COM_13_process_phrase_by_room_first_second() 7290: 49 6C ; COM_14_execute_and_reverse_status() 7292: A6 69 ; COM_15_check_var(bits) 7294: 65 69 ; COM_16_print_var() 7296: 6E 6C ; COM_17_move_object_to_destination(obj_num, destination) 7298: 94 6C ; COM_18_is_var_owned_by_active() 729A: F5 63 ; COM_19_move_active_object(room_num) Called only from "move_ACTIVE_and_look" 729C: 2C 64 ; COM_1A_set_var_to_first_noun() 729E: 3C 64 ; COM_1B_set_var_to_second_noun() 72A0: 4C 64 ; COM_1C_set_var_object(obj_num) 72A2: 5B 6D ; COM_1D_attack_VAR(points) 72A4: 9B 6D ; COM_1E_swap(obj_num1, obj_num2) 72A6: EC 67 ; COM_1F_print2(mlength) 72A8: 89 67 ; COM_20_is_active_this(obj_num) 72AA: 60 64 ; COM_21_execute_phrase(phrase_num, first_noun_num, second_noun_num) 72AC: B8 6D ; COM_22_is_less_equal_health(points) 72AE: DF 6D ; COM_23_heal_var(points) 72B0: 41 6E ; COM_24_exit_program() 72B2: 03 6E ; COM_25_print_linefeed() 72B4: B0 6F ; COM_26_print_score() 72B6: 6D 6E ; COM_27_load_game() 72B8: 44 6E ; COM_28_save_game() 72BA: D2 69 ; COM_29_toggle_open_VAR() 72BC: E8 69 ; COM_2A_toggle_lock_VAR() 72BE: C6 71 ; COM_2B_random() 72C0: 8F 67 ; COM_2C_set_active(obj_num) 72C2: B4 68 ; COM_2D_compare_to_var_object(object) ; 72C4: C1 69 ; COM_2E_check_extended_attributes(bits) 72C6: FE 69 ; COM_2F_load_disk_section(section_num) 72C8: BE 67 ; COM_30_set_current_room(room_num) 72CA: 54 6C ; COM_31_move_second_noun_to_var_object() 72CC: 67 6C ; COM_32_move_first_noun_to_var_object() 72CE: 80 65 ; COM_33_print_objects_on_var_object() 72D0: BB 6E ; COM_34_save_system_objects_to_disk() 72D2: C5 6E ; COM_35_load_system_objects_from_disk() 72D4: 12 6E ; COM_36__ ?? 72D6: 12 64 ; COM_37_assert_player_is_in_an_object() 72D8: DB 6F ; COM_38_bump_score() 72DA: EC 6F ; COM_39_check_weight_70() 72DC: 2D 70 ; COM_3A_clear_screen() 72DE: 40 70 ; COM_3B_wait_for_key_123() 72E0: 00
Phrase List
Very similar to Bedlam.
Many words map to the same word number. For instance GET, HOLD, TAKE, SQUEEZ, REMOVE, and CARRY all map to verb number 09. The words HANDGR and HANDLE both map to noun number 67.
The phrase list below shows only the first word from the list of possible words for verbs and prepositions. These possible words can be used interchangably. For instance, user inputs "CARRY HANDLE", "GET HANDLE" and "SQUEEZe HANDGRip" would all map to phrase 05 below with the same target object (noun 67). These three user inputs all do the same thing.
PhraseList: 72E1: 05 00 00 00 01 ; 01: NORTH * * * 72E6: 06 00 00 00 02 ; 02: SOUTH * * * 72EB: 07 00 00 00 03 ; 03: EAST * * * 72F0: 08 00 00 00 04 ; 04: WEST * * * 72F5: 09 00 20 00 05 ; 05: GET ..C..... * * 72FA: 09 02 20 20 43 ; 43: GET ..C..... WITH ..C..... 72FF: 34 07 00 80 05 ; 05: PICK * UP u....... 7304: 34 07 80 00 05 ; 05: PICK u....... UP * 7309: 0A 00 20 00 06 ; 06: DROP ..C..... * * 730E: 0A 05 20 02 0F ; 0F: DROP ..C..... IN ......O. 7313: 0A 0C 20 01 4B ; 4B: DROP ..C..... ON .......L 7318: 25 00 80 00 4F ; 4F: DRINK u....... * * 731D: 29 00 80 00 4E ; 4E: POUR u....... * * 7322: 29 05 80 02 4E ; 4E: POUR u....... IN ......O. 7327: 29 0C 80 01 4E ; 4E: POUR u....... ON .......L 732C: 2A 02 02 80 4D ; 4D: FILL ......O. WITH u....... 7331: 0A 06 00 08 16 ; 16: DROP * OUT ....A... 7336: 0B 00 00 00 07 ; 07: INVENT * * * 733B: 01 00 04 00 08 ; 08: READ .....?.. * * 7340: 04 02 10 40 09 ; 09: ATTACK ...P.... WITH .v...... 7345: 0C 00 00 00 0A ; 0A: LOOK * * * 734A: 0C 03 00 80 0B ; 0B: LOOK * AT u....... 734F: 0C 04 00 80 0C ; 0C: LOOK * UNDER u....... 7354: 0C 05 00 02 10 ; 10: LOOK * IN ......O. 7359: 0C 0C 00 01 4C ; 4C: LOOK * ON .......L 735E: 03 03 60 10 0D ; 0D: THROW .vC..... AT ...P.... 7363: 03 05 20 80 39 ; 39: THROW ..C..... IN u....... 7368: 03 08 00 20 06 ; 06: THROW * DOWN ..C..... 736D: 03 01 80 10 0E ; 0E: THROW u....... TO ...P.... 7372: 0D 01 80 10 0E ; 0E: GIVE u....... TO ...P.... 7377: 0E 00 00 00 0A ; 0A: EXAMIN * * * 737C: 0E 00 80 00 0B ; 0B: EXAMIN u....... * * 7381: 0E 05 00 80 0B ; 0B: EXAMIN * IN u....... 7386: 0F 00 80 00 11 ; 11: OPEN u....... * * 738B: 0F 02 80 80 3A ; 3A: OPEN u....... WITH u....... 7390: 38 00 08 00 40 ; 40: CLOSE ....A... * * 7395: 39 02 08 80 41 ; 41: LOCK ....A... WITH u....... 739A: 3A 02 80 80 42 ; 42: UNLOCK u....... WITH u....... 739F: 10 00 80 00 12 ; 12: PULL u....... * * 73A4: 10 08 00 80 12 ; 12: PULL * DOWN u....... 73A9: 10 08 80 00 12 ; 12: PULL u....... DOWN * 73AE: 10 06 00 80 05 ; 05: PULL * OUT u....... 73B3: 10 06 80 00 05 ; 05: PULL u....... OUT * 73B8: 10 07 00 80 2D ; 2D: PULL * UP u....... 73BD: 10 07 80 00 2D ; 2D: PULL u....... UP * 73C2: 10 02 80 80 12 ; 12: PULL u....... WITH u....... 73C7: 11 02 08 08 14 ; 14: LIGHT ....A... WITH ....A... 73CC: 12 00 80 00 15 ; 15: EAT u....... * * 73D1: 13 06 00 08 16 ; 16: BLOW * OUT ....A... 73D6: 14 00 08 00 16 ; 16: EXTING ....A... * * 73DB: 15 00 80 00 17 ; 17: CLIMB u....... * * 73E0: 15 07 00 00 54 ; 54: CLIMB * UP * 73E5: 15 08 00 00 55 ; 55: CLIMB * DOWN * 73EA: 15 07 00 80 54 ; 54: CLIMB * UP u....... 73EF: 15 08 00 80 55 ; 55: CLIMB * DOWN u....... 73F4: 15 09 00 80 17 ; 17: CLIMB * OVER u....... 73F9: 15 0C 00 80 17 ; 17: CLIMB * ON u....... 73FE: 41 00 00 00 36 ; 36: ENTER * * * 7403: 41 00 80 00 36 ; 36: ENTER u....... * * 7408: 41 05 00 00 36 ; 36: ENTER * IN * 740D: 41 05 00 80 36 ; 36: ENTER * IN u....... 7412: 15 05 00 00 36 ; 36: CLIMB * IN * 7417: 15 05 00 80 36 ; 36: CLIMB * IN u....... 741C: 15 06 00 00 37 ; 37: CLIMB * OUT * 7421: 15 06 00 80 37 ; 37: CLIMB * OUT u....... 7426: 15 04 00 80 38 ; 38: CLIMB * UNDER u....... 742B: 16 00 80 00 18 ; 18: RUB u....... * * 7430: 17 00 00 00 19 ; 19: DIAGNO * * * 7435: 18 00 00 00 1A ; 1A: ?? * * * 743A: 05 01 00 00 01 ; 01: NORTH * TO * 743F: 06 01 00 00 02 ; 02: SOUTH * TO * 7444: 07 01 00 00 03 ; 03: EAST * TO * 7449: 08 01 00 00 04 ; 04: WEST * TO * 744E: 0A 08 00 20 06 ; 06: DROP * DOWN ..C..... 7453: 0A 08 20 00 06 ; 06: DROP ..C..... DOWN * 7458: 0A 0A 20 80 06 ; 06: DROP ..C..... BEHIND u....... 745D: 0A 04 20 80 06 ; 06: DROP ..C..... UNDER u....... 7462: 0C 07 00 00 0A ; 0A: LOOK * UP * 7467: 0C 08 00 00 0A ; 0A: LOOK * DOWN * 746C: 0C 09 80 00 0B ; 0B: LOOK u....... OVER * 7471: 0C 09 00 80 0A ; 0A: LOOK * OVER u....... 7476: 0C 0B 00 00 0A ; 0A: LOOK * AROUND * 747B: 0C 0A 00 00 0A ; 0A: LOOK * BEHIND * 7480: 0C 0B 00 80 1B ; 1B: LOOK * AROUND u....... 7485: 0C 0A 00 80 1C ; 1C: LOOK * BEHIND u....... 748A: 0C 06 00 00 1D ; 1D: LOOK * OUT * 748F: 2F 00 00 00 1E ; 1E: YES * * * 7494: 30 00 00 00 1F ; 1F: NO * * * 7499: 32 00 00 00 21 ; 21: PLUGH * * * 749E: 2B 00 00 00 22 ; 22: SCREAM * * * 74A3: 2D 00 00 00 23 ; 23: QUIT * * * 74A8: 2C 00 00 00 25 ; 25: LEAVE * * * 74AD: 2C 00 20 00 06 ; 06: LEAVE ..C..... * * 74B2: 3B 00 00 00 44 ; 44: HELLO * * * 74B7: 3B 00 10 00 45 ; 45: HELLO ...P.... * * 74BC: 3B 01 00 00 44 ; 44: HELLO * TO * 74C1: 3B 01 00 10 45 ; 45: HELLO * TO ...P.... 74C6: 3B 01 10 00 45 ; 45: HELLO ...P.... TO * 74CB: 3C 00 00 00 46 ; 46: WHAT * * * 74D0: 3C 00 80 00 47 ; 47: WHAT u....... * * 74D5: 21 00 00 00 25 ; 25: GO * * * 74DA: 21 01 00 80 3D ; 3D: GO * TO u....... 74DF: 21 05 00 00 36 ; 36: GO * IN * 74E4: 21 05 00 80 36 ; 36: GO * IN u....... 74E9: 21 0C 00 80 36 ; 36: GO * ON u....... 74EE: 21 06 00 00 37 ; 37: GO * OUT * 74F3: 21 06 00 80 37 ; 37: GO * OUT u....... 74F8: 21 0D 00 80 37 ; 37: GO * OFF u....... 74FD: 21 04 00 80 38 ; 38: GO * UNDER u....... 7502: 21 07 00 00 54 ; 54: GO * UP * 7507: 21 08 00 00 55 ; 55: GO * DOWN * 750C: 21 07 00 80 54 ; 54: GO * UP u....... 7511: 21 08 00 80 55 ; 55: GO * DOWN u....... 7516: 21 0B 00 80 26 ; 26: GO * AROUND u....... 751B: 23 00 80 00 27 ; 27: KICK u....... * * 7520: 23 08 00 80 27 ; 27: KICK * DOWN u....... 7525: 23 05 00 80 27 ; 27: KICK * IN u....... 752A: 24 02 10 80 28 ; 28: FEED ...P.... WITH u....... 752F: 24 01 80 10 29 ; 29: FEED u....... TO ...P.... 7534: 26 00 80 00 2A ; 2A: ?? u....... * * 7539: 28 00 00 00 2C ; 2C: SCORE * * * 753E: 1C 00 80 00 2D ; 2D: LIFT u....... * * 7543: 1F 00 00 00 2F ; 2F: WAIT * * * 7548: 1F 0B 00 00 2F ; 2F: WAIT * AROUND * 754D: 09 07 00 00 54 ; 54: GET * UP * 7552: 09 08 00 00 55 ; 55: GET * DOWN * 7557: 09 05 00 00 36 ; 36: GET * IN * 755C: 09 05 00 80 36 ; 36: GET * IN u....... 7561: 09 06 00 00 37 ; 37: GET * OUT * 7566: 09 06 00 80 37 ; 37: GET * OUT u....... 756B: 09 0C 00 80 36 ; 36: GET * ON u....... 7570: 09 0D 00 80 37 ; 37: GET * OFF u....... 7575: 1A 00 80 00 31 ; 31: FIND u....... * * 757A: 20 09 00 80 34 ; 34: JUMP * OVER u....... 757F: 20 05 00 00 36 ; 36: JUMP * IN * 7584: 20 05 00 80 36 ; 36: JUMP * IN u....... 7589: 20 06 00 80 37 ; 37: JUMP * OUT u....... 758E: 20 0C 00 80 35 ; 35: JUMP * ON u....... 7593: 1D 09 00 80 34 ; 34: STEP * OVER u....... 7598: 1D 05 00 00 36 ; 36: STEP * IN * 759D: 1D 05 00 80 36 ; 36: STEP * IN u....... 75A2: 1D 06 00 80 37 ; 37: STEP * OUT u....... 75A7: 1D 0C 00 80 35 ; 35: STEP * ON u....... 75AC: 36 00 00 00 3E ; 3E: LOAD * * * 75B1: 37 00 00 00 3F ; 3F: SAVE * * * 75B6: 3D 00 80 00 48 ; 48: LOWER u....... * * 75BB: 3E 08 80 00 48 ; 48: LET u....... DOWN * 75C0: 3E 08 00 80 48 ; 48: LET * DOWN u....... 75C5: 09 08 00 80 48 ; 48: GET * DOWN u....... 75CA: 09 08 80 00 48 ; 48: GET u....... DOWN * 75CF: 3F 00 00 00 4A ; 4A: COME * * * 75D4: 3F 02 00 00 4A ; 4A: COME * WITH * 75D9: 40 00 80 00 49 ; 49: MEET u....... * * 75DE: 40 01 80 80 49 ; 49: MEET u....... TO u....... 75E3: 42 00 80 00 52 ; 52: START u....... * * 75E8: 43 00 80 00 53 ; 53: STRIKE u....... * * 75ED: 44 0C 00 80 50 ; 50: TURN * ON u....... 75F2: 44 0C 80 00 50 ; 50: TURN u....... ON * 75F7: 44 0D 00 80 51 ; 51: TURN * OFF u....... 75FC: 44 0D 80 00 51 ; 51: TURN u....... OFF * 7601: 45 02 80 80 56 ; 56: DIG u....... WITH u....... 7606: 46 02 80 80 57 ; 57: SHOOT u....... WITH u....... 760B: 47 00 80 00 58 ; 58: POINT u....... * * 7610: 47 01 00 80 58 ; 58: POINT * TO u....... 7615: 47 03 00 80 58 ; 58: POINT * AT u....... 761A: 48 00 80 00 59 ; 59: TASTE u....... * * 761F: 49 00 00 00 5A ; 5A: THUM * * * 7624: 49 00 80 00 5A ; 5A: THUM u....... * * 7629: 00 762A: 00 DieEnergyBeamCommand: 762B: CA ; DIE_ENERGY_BEAM routine KnownWords: 762C: 00 ; ; --- VERBS --- 762D: 04 52 45 41 44 01 ; READ 7633: 03 47 45 54 09 ; GET 7638: 04 48 4F 4C 44 09 ; HOLD 763E: 05 54 48 52 4F 57 03 ; THROW 7645: 04 54 4F 53 53 03 ; TOSS 764B: 06 41 54 54 41 43 4B 04 ; ATTACK 7653: 04 4B 49 4C 4C 04 ; KILL 7659: 03 48 49 54 04 ; HIT 765E: 06 44 45 53 54 52 4F 04 ; DESTRO 7666: 05 4E 4F 52 54 48 05 ; NORTH 766D: 01 4E 05 ; N 7670: 06 4E 55 52 47 4C 45 05 ; NURGLE 7678: 05 53 4F 55 54 48 06 ; SOUTH 767F: 01 53 06 ; S 7682: 06 53 4F 52 57 49 54 06 ; SORWIT 768A: 04 45 41 53 54 07 ; EAST 7690: 01 45 07 ; E 7693: 06 45 4E 55 52 47 4C 07 ; ENURGL 769B: 04 57 45 53 54 08 ; WEST 76A1: 01 57 08 ; W 76A4: 06 57 49 54 53 4F 52 08 ; WITSOR 76AC: 04 54 41 4B 45 09 ; TAKE 76B2: 04 47 52 41 42 09 ; GRAB 76B8: 06 53 51 55 45 45 5A 09 ; SQUEEZ 76C0: 06 52 45 4D 4F 56 45 09 ; REMOVE 76C8: 05 43 41 52 52 59 09 ; CARRY 76CF: 04 44 52 4F 50 0A ; DROP 76D5: 06 52 45 4C 45 41 53 0A ; RELEAS 76DD: 03 50 55 54 0A ; PUT 76E2: 06 49 4E 56 45 4E 54 0B ; INVENT 76EA: 01 49 0B ; I 76ED: 04 4C 4F 4F 4B 0C ; LOOK 76F3: 01 4C 0C ; L 76F6: 04 47 49 56 45 0D ; GIVE 76FC: 05 4F 46 46 45 52 0D ; OFFER 7703: 06 45 58 41 4D 49 4E 0E ; EXAMIN 770B: 06 44 45 53 43 52 49 0E ; DESCRI 7713: 06 53 45 41 52 43 48 0E ; SEARCH 771B: 04 4F 50 45 4E 0F ; OPEN 7721: 05 42 52 45 41 4B 0F ; BREAK 7728: 04 50 55 4C 4C 10 ; PULL 772E: 05 4C 49 47 48 54 11 ; LIGHT 7735: 04 42 55 52 4E 11 ; BURN 773B: 06 49 47 4E 49 54 45 11 ; IGNITE 7743: 03 45 41 54 12 ; EAT 7748: 04 42 4C 4F 57 13 ; BLOW 774E: 06 45 58 54 49 4E 47 14 ; EXTING 7756: 05 43 4C 49 4D 42 15 ; CLIMB 775D: 06 41 53 43 45 4E 44 15 ; ASCEND 7765: 06 44 45 53 43 45 4E 15 ; DESCEN 776D: 03 52 55 42 16 ; RUB 7772: 04 57 49 50 45 16 ; WIPE 7778: 06 50 4F 4C 49 53 48 16 ; POLISH 7780: 06 44 49 41 47 4E 4F 17 ; DIAGNO 7788: 04 46 49 4E 44 1A ; FIND 778E: 04 4C 49 46 54 1C ; LIFT 7794: 04 53 54 45 50 1D ; STEP 779A: 04 57 41 49 54 1F ; WAIT 77A0: 05 50 41 55 53 45 1F ; PAUSE 77A7: 04 53 54 41 59 1F ; STAY 77AD: 04 4A 55 4D 50 20 ; JUMP 77B3: 02 47 4F 21 ; GO 77B7: 03 53 49 54 21 ; SIT 77BC: 03 52 55 4E 21 ; RUN 77C1: 04 4C 45 46 54 21 ; LEFT 77C7: 05 52 49 47 48 54 21 ; RIGHT 77CE: 04 50 55 53 48 10 ; PUSH 77D4: 05 50 52 45 53 53 10 ; PRESS 77DB: 04 4D 4F 56 45 10 ; MOVE 77E1: 04 4B 49 43 4B 23 ; KICK 77E7: 04 46 45 45 44 24 ; FEED 77ED: 05 44 52 49 4E 4B 25 ; DRINK 77F4: 03 53 41 59 27 ; SAY 77F9: 05 53 43 4F 52 45 28 ; SCORE 7800: 04 50 4F 55 52 29 ; POUR 7806: 04 44 55 4D 50 29 ; DUMP 780C: 04 46 49 4C 4C 2A ; FILL 7812: 06 53 43 52 45 41 4D 2B ; SCREAM 781A: 04 59 45 4C 4C 2B ; YELL 7820: 04 51 55 49 54 2D ; QUIT 7826: 04 53 54 4F 50 2D ; STOP 782C: 03 59 45 53 2F ; YES 7831: 02 4E 4F 30 ; NO 7835: 05 50 4C 55 47 48 32 ; PLUGH 783C: 05 4C 45 41 56 45 2C ; LEAVE 7843: 04 50 49 43 4B 34 ; PICK 7849: 04 4C 4F 41 44 36 ; LOAD 784F: 04 53 41 56 45 37 ; SAVE 7855: 05 43 4C 4F 53 45 38 ; CLOSE 785C: 04 4C 4F 43 4B 39 ; LOCK 7862: 06 55 4E 4C 4F 43 4B 3A ; UNLOCK 786A: 05 48 45 4C 4C 4F 3B ; HELLO 7871: 02 48 49 3B ; HI 7875: 04 57 48 41 54 3C ; WHAT 787B: 03 57 48 59 3C ; WHY 7880: 03 48 4F 57 3C ; HOW 7885: 05 57 48 45 52 45 3C ; WHERE 788C: 03 57 48 4F 3C ; WHO 7891: 04 57 48 45 4E 3C ; WHEN 7897: 05 4C 4F 57 45 52 3D ; LOWER 789E: 05 55 4E 54 49 45 3D ; UNTIE 78A5: 03 4C 45 54 3E ; LET 78AA: 04 43 4F 4D 45 3F ; COME 78B0: 06 46 4F 4C 4C 4F 57 3F ; FOLLOW 78B8: 04 4D 45 45 54 40 ; MEET 78BE: 06 49 4E 54 52 4F 44 40 ; INTROD 78C6: 05 45 4E 54 45 52 41 ; ENTER 78CD: 05 53 54 41 52 54 42 ; START 78D4: 05 44 52 49 56 45 42 ; DRIVE 78DB: 06 53 54 52 49 4B 45 43 ; STRIKE 78E3: 04 54 55 52 4E 44 ; TURN 78E9: 03 44 49 47 45 ; DIG 78EE: 05 53 48 4F 4F 54 46 ; SHOOT 78F5: 05 50 4F 49 4E 54 47 ; POINT 78FC: 05 54 41 53 54 45 48 ; TASTE 7903: 04 54 48 55 4D 49 ; THUM 7909: 00 ; ; --- NOUNS --- 790A: 03 4B 45 59 16 ; KEY 790F: 05 55 4B 4F 52 4B 16 ; UKORK 7916: 04 44 45 53 4B 1A ; DESK 791C: 05 54 41 42 4C 45 1A ; TABLE 7923: 06 53 50 48 4F 52 58 1A ; SPHORX 792B: 06 44 52 41 57 45 52 1B ; DRAWER 7933: 04 44 4F 4F 52 10 ; DOOR 7939: 05 44 4F 4F 52 53 10 ; DOORS 7940: 05 45 53 4E 45 4C 10 ; ESNEL 7947: 06 43 41 42 49 4E 45 19 ; CABINE 794F: 06 43 52 4F 57 42 41 37 ; CROWBA 7957: 06 50 4F 53 54 45 52 38 ; POSTER 795F: 06 53 48 4F 54 47 55 39 ; SHOTGU 7967: 03 47 55 4E 39 ; GUN 796C: 04 50 55 4D 50 3A ; PUMP 7972: 06 50 41 44 4C 4F 43 29 ; PADLOC 797A: 04 48 41 4E 44 1F ; HAND 7980: 05 48 41 4E 44 53 1F ; HANDS 7987: 04 4A 41 43 4B 31 ; JACK 798D: 04 4A 45 45 50 32 ; JEEP 7993: 04 54 49 52 45 21 ; TIRE 7999: 04 50 49 43 4B 3B ; PICK 799F: 06 53 48 4F 56 45 4C 26 ; SHOVEL 79A7: 05 53 4E 41 4B 45 0C ; SNAKE 79AE: 05 4D 4F 4E 45 59 27 ; MONEY 79B5: 04 46 4F 4F 44 1C ; FOOD 79BB: 04 57 41 4C 4C 25 ; WALL 79C1: 05 57 41 4C 4C 53 25 ; WALLS 79C8: 05 46 4C 41 53 4D 25 ; FLASM 79CF: 04 53 41 46 45 1D ; SAFE 79D5: 06 44 59 4E 41 4D 49 1E ; DYNAMI 79DD: 05 53 54 49 43 4B 1E ; STICK 79E4: 04 52 4F 4F 4D 2A ; ROOM 79EA: 05 46 4C 4F 4F 52 2B ; FLOOR 79F1: 06 47 52 4F 55 4E 44 2B ; GROUND 79F9: 04 45 58 49 54 2C ; EXIT 79FF: 04 5A 49 54 45 2C ; ZITE 7A05: 06 50 41 53 53 41 47 2D ; PASSAG 7A0D: 06 50 4C 4F 4F 4E 41 2D ; PLOONA 7A15: 04 48 4F 4C 45 2E ; HOLE 7A1B: 06 43 4F 52 52 49 44 2F ; CORRID 7A23: 06 48 41 4C 4C 57 41 33 ; HALLWA 7A2B: 06 43 48 41 4D 42 45 34 ; CHAMBE 7A33: 06 45 4E 54 52 41 4E 36 ; ENTRAN 7A3B: 06 43 45 49 4C 49 4E 3B ; CEILIN 7A43: 04 52 4F 4F 46 3B ; ROOF 7A49: 06 42 4F 54 54 4C 45 11 ; BOTTLE 7A51: 06 57 48 49 53 4B 45 4C ; WHISKE 7A59: 06 53 4F 4C 55 54 49 4C ; SOLUTI 7A61: 03 42 41 52 4D ; BAR 7A66: 05 52 41 44 49 4F 12 ; RADIO 7A6D: 06 42 4C 55 52 4E 55 12 ; BLURNU 7A75: 06 42 55 54 54 4F 4E 4A ; BUTTON 7A7D: 05 57 41 54 45 52 4F ; WATER 7A84: 04 53 49 4E 4B 4E ; SINK 7A8A: 06 43 4F 55 4E 54 45 50 ; COUNTE 7A92: 06 44 52 45 53 53 45 51 ; DRESSE 7A9A: 04 48 4F 4F 44 52 ; HOOD 7AA0: 04 46 55 53 45 1E ; FUSE 7AA6: 03 42 45 44 55 ; BED 7AAB: 05 43 48 41 49 52 53 ; CHAIR 7AB2: 06 42 4F 55 4C 44 45 54 ; BOULDE 7ABA: 04 52 4F 43 4B 54 ; ROCK 7AC0: 05 52 4F 43 4B 53 54 ; ROCKS 7AC7: 05 53 54 4F 4E 45 54 ; STONE 7ACE: 06 53 54 4F 4E 45 53 54 ; STONES 7AD6: 04 53 41 4E 44 57 ; SAND 7ADC: 04 44 49 52 54 57 ; DIRT 7AE2: 06 41 51 55 41 52 49 58 ; AQUARI 7AEA: 04 53 49 47 4E 56 ; SIGN 7AF0: 05 53 49 47 4E 53 56 ; SIGNS 7AF7: 06 4D 45 53 53 41 47 56 ; MESSAG 7AFF: 06 57 49 4E 44 4F 57 59 ; WINDOW 7B07: 06 53 48 45 4C 54 45 5A ; SHELTE 7B0F: 05 41 4C 49 45 4E 5B ; ALIEN 7B16: 06 43 52 45 41 54 55 5B ; CREATU 7B1E: 04 41 4E 54 53 5B ; ANTS 7B24: 03 41 4E 54 5B ; ANT 7B29: 04 43 55 42 45 5C ; CUBE 7B2F: 06 50 49 43 54 55 52 5D ; PICTUR 7B37: 06 43 59 4C 49 4E 44 5E ; CYLIND 7B3F: 05 47 4C 4F 42 45 5E ; GLOBE 7B46: 06 47 4C 4F 42 45 53 5E ; GLOBES 7B4E: 06 4C 49 47 48 54 53 5F ; LIGHTS 7B56: 06 43 4F 4E 53 4F 4C 62 ; CONSOL 7B5E: 05 50 41 4E 45 4C 62 ; PANEL 7B65: 06 53 43 52 45 45 4E 63 ; SCREEN 7B6D: 05 45 41 52 54 48 64 ; EARTH 7B74: 04 4D 4F 4F 4E 65 ; MOON 7B7A: 04 53 48 49 50 66 ; SHIP 7B80: 06 48 41 4E 44 47 52 67 ; HANDGR 7B88: 06 48 41 4E 44 4C 45 67 ; HANDLE 7B90: 04 56 49 41 4C 68 ; VIAL 7B96: 06 50 45 44 45 53 54 69 ; PEDEST 7B9E: 03 52 4F 44 6E ; ROD 7BA3: 06 4D 41 43 48 49 4E 6F ; MACHIN 7BAB: 06 50 52 4F 53 50 45 70 ; PROSPE 7BB3: 06 47 4F 4F 4C 55 42 71 ; GOOLUB 7BBB: 00 ; ; --- ADJECTIVES --- 7BBC: 04 47 52 45 59 6C ; GREY 7BC2: 04 47 52 41 59 6C ; GRAY 7BC8: 04 49 4E 43 48 6D ; INCH 7BCE: 06 4D 41 52 4F 4F 4E 61 ; MAROON 7BD6: 05 57 48 49 54 45 60 ; WHITE 7BDD: 05 47 52 45 45 4E 6A ; GREEN 7BE4: 06 59 45 4C 4C 4F 57 48 ; YELLOW 7BEC: 06 4F 52 41 4E 47 45 49 ; ORANGE 7BF4: 03 52 45 44 13 ; RED 7BF9: 06 4D 41 53 54 45 52 14 ; MASTER 7C01: 05 42 52 41 53 53 15 ; BRASS 7C08: 06 53 45 43 52 45 54 3D ; SECRET 7C10: 06 53 4B 45 4C 45 54 17 ; SKELET 7C18: 05 53 54 45 45 4C 18 ; STEEL 7C1F: 03 43 41 42 4B ; CAB 7C24: 03 42 49 47 0E ; BIG 7C29: 05 4C 41 52 47 45 0E ; LARGE 7C30: 05 53 4D 41 4C 4C 0F ; SMALL 7C37: 06 4C 49 54 54 4C 45 0F ; LITTLE 7C3F: 03 54 4F 50 28 ; TOP 7C44: 06 4D 49 44 44 4C 45 3C ; MIDDLE 7C4C: 06 42 4F 54 54 4F 4D 3E ; BOTTOM 7C54: 04 46 4C 41 54 22 ; FLAT 7C5A: 05 53 50 41 52 45 23 ; SPARE 7C61: 04 42 4C 55 45 0D ; BLUE 7C67: 06 4D 41 53 53 49 56 3F ; MASSIV 7C6F: 04 42 41 4E 4B 40 ; BANK 7C75: 06 53 41 4C 4F 4F 4E 41 ; SALOON 7C7D: 06 53 48 45 52 49 46 42 ; SHERIF 7C85: 06 4F 46 46 49 43 45 42 ; OFFICE 7C8D: 06 53 4C 49 4D 27 53 43 ; SLIM'S 7C95: 05 53 4C 49 4D 53 43 ; SLIMS 7C9C: 05 42 4F 42 27 53 44 ; BOB'S 7CA3: 04 42 4F 42 53 44 ; BOBS 7CA9: 06 44 4F 55 42 4C 45 45 ; DOUBLE 7CB1: 05 48 4F 54 45 4C 47 ; HOTEL 7CB8: 06 53 57 49 4E 47 49 46 ; SWINGI 7CC0: 04 54 53 4F 4D 6B ; TSOM 7CC6: 04 43 4F 4F 4C 72 ; COOL 7CCC: 05 43 4C 45 41 52 74 ; CLEAR 7CD3: 05 42 52 4F 57 4E 73 ; BROWN 7CDA: 00 ; ; --- PREPOSITIONS --- 7CDB: 02 54 4F 01 ; TO 7CDF: 04 57 49 54 48 02 ; WITH 7CE5: 05 55 53 49 4E 47 02 ; USING 7CEC: 02 41 54 03 ; AT 7CF0: 05 55 4E 44 45 52 04 ; UNDER 7CF7: 02 49 4E 05 ; IN 7CFB: 04 49 4E 54 4F 05 ; INTO 7D01: 06 49 4E 53 49 44 45 05 ; INSIDE 7D09: 04 54 48 52 55 05 ; THRU 7D0F: 06 54 48 52 4F 55 47 05 ; THROUG 7D17: 03 4F 55 54 06 ; OUT 7D1C: 06 4F 55 54 53 49 44 06 ; OUTSID 7D24: 02 55 50 07 ; UP 7D28: 04 44 4F 57 4E 08 ; DOWN 7D2E: 04 4F 56 45 52 09 ; OVER 7D34: 06 42 45 48 49 4E 44 0A ; BEHIND 7D3C: 06 41 52 4F 55 4E 44 0B ; AROUND 7D44: 02 4F 4E 0C ; ON 7D48: 03 4F 46 46 0D ; OFF 7D4D: 00 GeneralScript: 7D4E: 00 8B 29 ; End+1 = 887A ;; ;; ------------------------------------------------------------------------------------------------ ;; General movement commands. ;; If the player is in an object, error with "YOU ARE STILL IN THE <object>." ;; If the room doesn't handle it, error with "YOU WALK AIMLESSLY INTO A WALL." ;; 7D51: 0E 8B 26 ; COM_0E_group_OR length=0x0B26 (to 0x887A) 7D54: 0D 3F ; COM_0D_group_AND length=0x003F (to 0x7D95) 7D56: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0x7D60) 7D58: 0A 01 ; COM_0A_is_input_phrase(phrase=NORTH * * *) 7D5A: 0A 02 ; COM_0A_is_input_phrase(phrase=SOUTH * * *) 7D5C: 0A 03 ; COM_0A_is_input_phrase(phrase=EAST * * *) 7D5E: 0A 04 ; COM_0A_is_input_phrase(phrase=WEST * * *) ; ; end group_OR at 0x7D56 7D60: 0E 33 ; COM_0E_group_OR length=0x0033 (to 0x7D95) 7D62: 0D 20 ; COM_0D_group_AND length=0x0020 (to 0x7D84) 7D64: 14 ; COM_14_reverse_status next command 7D65: 37 ; COM_37_is_player_in_an_object() 7D66: 0E 1C ; COM_0E_group_OR length=0x001C (to 0x7D84) 7D68: 13 ; COM_13_process_phrase_by_room() 7D69: 0D 19 ; COM_0D_group_AND length=0x0019 (to 0x7D84) 7D6B: 20 01 ; COM_20_is_active_object(obj=OBJ_01_PLAYER) 7D6D: 04 15 ; COM_04_print_message length=0x0015 (to 0x7D84) 7D6F: C7 DE F3 17 CB 8C CF 47 F5 8B D3 B8 D0 15 6B BF 7D7F: 59 45 46 48 2E ; ; YOU WALK AIMLESSLY INTO A WALL. ; ; ; end group_AND at 0x7D69 ; ; end group_OR at 0x7D66 ; ; end group_AND at 0x7D62 7D84: 0D 0F ; COM_0D_group_AND length=0x000F (to 0x7D95) 7D86: 04 0B ; COM_04_print_message length=0x000B (to 0x7D93) 7D88: C7 DE 94 14 55 5E 8E BE 0B 8A 4E ; ; YOU ARE STILL IN ; 7D93: AA ; FN_AA_PRINT_THE_var 7D94: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7D84 ; ; end group_OR at 0x7D60 ; ; end group_AND at 0x7D54 ;; ;; ------------------------------------------------------------------------------------------------ ;; General GET ;; 7D95: 0B 8A E2 0A ; COM_0B_switch length=0x0AE2 (to 0x887B), function=COM_0A_is_input_phrase(phrase_num) 7D99: 05 0A ; case COM_0A_is_input_phrase("GET ..C..... * *"), length=0x000A 7D9B: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0x7DA5) 7D9D: A2 ; FN_A2_PRINT_ALREADY_HAVE_THE_var 7D9E: 13 ; COM_13_process_phrase_by_room() 7D9F: 0D 02 ; COM_0D_group_AND length=0x0002 (to 0x7DA3) 7DA1: 1A ; COM_1A_set_var_to_noun1() 7DA2: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x7D9F 7DA3: 14 ; COM_14_reverse_status next command 7DA4: 0C ; COM_0C_fail() ; ; end group_OR at 0x7D9B ; ; end case 7DA5: 43 0D ; case COM_0A_is_input_phrase("GET ..C..... WITH ..C....."), length=0x000D 7DA7: 0E 0B ; COM_0E_group_OR length=0x000B (to 0x7DB4) 7DA9: A2 ; FN_A2_PRINT_ALREADY_HAVE_THE_var 7DAA: 13 ; COM_13_process_phrase_by_room() 7DAB: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x7DB0) 7DAD: 1B ; COM_1B_set_var_to_noun2() 7DAE: 14 ; COM_14_reverse_status next command 7DAF: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x7DAB 7DB0: 0D 02 ; COM_0D_group_AND length=0x0002 (to 0x7DB4) 7DB2: 1A ; COM_1A_set_var_to_noun1() 7DB3: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x7DB0 ; ; end group_OR at 0x7DA7 ; ; end case 7DB4: 06 23 ; case COM_0A_is_input_phrase("DROP ..C..... * *"), length=0x0023 7DB6: 0E 21 ; COM_0E_group_OR length=0x0021 (to 0x7DD9) 7DB8: 13 ; COM_13_process_phrase_by_room() 7DB9: 0D 13 ; COM_0D_group_AND length=0x0013 (to 0x7DCE) 7DBB: 1A ; COM_1A_set_var_to_noun1() 7DBC: 14 ; COM_14_reverse_status next command 7DBD: 15 20 ; COM_15_is_var_attributes(value=..P.....(Portable)) 7DBF: 04 0B ; COM_04_print_message length=0x000B (to 0x7DCC) 7DC1: 89 74 D3 14 9B 96 1B A1 F9 5B 50 ; ; HOW CAN YOU DROP ; 7DCC: A8 ; FN_A8_PRINT_noun1 7DCD: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7DB9 7DCE: 0D 09 ; COM_0D_group_AND length=0x0009 (to 0x7DD9) 7DD0: 10 ; COM_10_drop_var() 7DD1: 04 06 ; COM_04_print_message length=0x0006 (to 0x7DD9) 7DD3: F9 5B 9F A6 9B 5D ; ; DROPPED. ; ; ; end group_AND at 0x7DCE ; ; end group_OR at 0x7DB6 ; ; end case 7DD9: 08 17 ; case COM_0A_is_input_phrase("READ .....?.. * *"), length=0x0017 7DDB: 0E 15 ; COM_0E_group_OR length=0x0015 (to 0x7DF2) 7DDD: 13 ; COM_13_process_phrase_by_room() 7DDE: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x7DF2) 7DE0: 04 0E ; COM_04_print_message length=0x000E (to 0x7DF0) 7DE2: 5F BE 5D B1 D0 B5 D9 9C 16 B2 91 7A C0 16 ; ; THERE'S NO WRITING ON ; 7DF0: A8 ; FN_A8_PRINT_noun1 7DF1: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7DDE ; ; end group_OR at 0x7DDB ; ; end case 7DF2: 11 15 ; case COM_0A_is_input_phrase("OPEN u....... * *"), length=0x0015 7DF4: 0E 13 ; COM_0E_group_OR length=0x0013 (to 0x7E09) 7DF6: 13 ; COM_13_process_phrase_by_room() 7DF7: 92 ; FN_92_PRINT_TRIED_BUT_COULDNT 7DF8: 0D 0D ; COM_0D_group_AND length=0x000D (to 0x7E07) 7DFA: 1A ; COM_1A_set_var_to_noun1() 7DFB: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 7DFD: A8 ; FN_A8_PRINT_noun1 7DFE: 04 07 ; COM_04_print_message length=0x0007 (to 0x7E07) 7E00: 4B 7B 75 8D A6 85 2E ; ; IS LOCKED. ; ; ; end group_AND at 0x7DF8 7E07: A5 ; FN_A5_IS_OPEN 7E08: A6 ; FN_A6_OPEN ; ; end group_OR at 0x7DF4 ; ; end case 7E09: 3A 11 ; case COM_0A_is_input_phrase("OPEN u....... WITH u......."), length=0x0011 7E0B: 0E 0F ; COM_0E_group_OR length=0x000F (to 0x7E1C) 7E0D: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x7E12) 7E0F: 1B ; COM_1B_set_var_to_noun2() 7E10: 14 ; COM_14_reverse_status next command 7E11: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x7E0D 7E12: 13 ; COM_13_process_phrase_by_room() 7E13: 92 ; FN_92_PRINT_TRIED_BUT_COULDNT 7E14: A5 ; FN_A5_IS_OPEN 7E15: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0x7E1B) 7E17: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 7E19: 2A ; COM_2A_toggle_lock_VAR() 7E1A: 0C ; COM_0C_fail() ; ; end group_AND at 0x7E15 7E1B: A6 ; FN_A6_OPEN ; ; end group_OR at 0x7E0B ; ; end case 7E1C: 40 24 ; case COM_0A_is_input_phrase("CLOSE ....A... * *"), length=0x0024 7E1E: 0E 22 ; COM_0E_group_OR length=0x0022 (to 0x7E42) 7E20: 13 ; COM_13_process_phrase_by_room() 7E21: 92 ; FN_92_PRINT_TRIED_BUT_COULDNT 7E22: 0D 0E ; COM_0D_group_AND length=0x000E (to 0x7E32) 7E24: 1A ; COM_1A_set_var_to_noun1() 7E25: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) 7E27: A8 ; FN_A8_PRINT_noun1 7E28: 04 08 ; COM_04_print_message length=0x0008 (to 0x7E32) 7E2A: 4B 7B 06 9A C2 16 A7 61 ; ; IS NOT OPEN. ; ; ; end group_AND at 0x7E22 7E32: 0D 0E ; COM_0D_group_AND length=0x000E (to 0x7E42) 7E34: 29 ; COM_29_toggle_open_VAR() 7E35: A8 ; FN_A8_PRINT_noun1 7E36: 04 0A ; COM_04_print_message length=0x000A (to 0x7E42) 7E38: 4B 7B 09 9A DE 14 D7 A0 9B 5D ; ; IS NOW CLOSED. ; ; ; end group_AND at 0x7E32 ; ; end group_OR at 0x7E1E ; ; end case 7E42: 42 2D ; case COM_0A_is_input_phrase("UNLOCK u....... WITH u......."), length=0x002D 7E44: 0E 2B ; COM_0E_group_OR length=0x002B (to 0x7E71) 7E46: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x7E4B) 7E48: 1B ; COM_1B_set_var_to_noun2() 7E49: 14 ; COM_14_reverse_status next command 7E4A: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x7E46 7E4B: 13 ; COM_13_process_phrase_by_room() 7E4C: 92 ; FN_92_PRINT_TRIED_BUT_COULDNT 7E4D: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0x7E60) 7E4F: 1A ; COM_1A_set_var_to_noun1() 7E50: 14 ; COM_14_reverse_status next command 7E51: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 7E53: A8 ; FN_A8_PRINT_noun1 7E54: 04 0A ; COM_04_print_message length=0x000A (to 0x7E60) 7E56: 4B 7B 06 9A 49 16 97 54 9B 5D ; ; IS NOT LOCKED. ; ; ; end group_AND at 0x7E4D 7E60: 0D 0F ; COM_0D_group_AND length=0x000F (to 0x7E71) 7E62: 2A ; COM_2A_toggle_lock_VAR() 7E63: A8 ; FN_A8_PRINT_noun1 7E64: 04 0B ; COM_04_print_message length=0x000B (to 0x7E71) 7E66: 4B 7B 09 9A B0 17 75 8D A6 85 2E ; ; IS NOW UNLOCKED. ; ; ; end group_AND at 0x7E60 ; ; end group_OR at 0x7E44 ; ; end case 7E71: 41 45 ; case COM_0A_is_input_phrase("LOCK ....A... WITH u......."), length=0x0045 7E73: 0E 43 ; COM_0E_group_OR length=0x0043 (to 0x7EB8) 7E75: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x7E7A) 7E77: 1B ; COM_1B_set_var_to_noun2() 7E78: 14 ; COM_14_reverse_status next command 7E79: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x7E75 7E7A: 13 ; COM_13_process_phrase_by_room() 7E7B: 92 ; FN_92_PRINT_TRIED_BUT_COULDNT 7E7C: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x7E95) 7E7E: 14 ; COM_14_reverse_status next command 7E7F: 09 14 ; COM_09_is_noun2(obj=OBJ_14_DOOR_COVERED_SHELTER) 7E81: 04 0A ; COM_04_print_message length=0x000A (to 0x7E8D) 7E83: C7 DE D3 14 E6 96 49 16 8B 54 ; ; YOU CAN'T LOCK ; 7E8D: A8 ; FN_A8_PRINT_noun1 7E8E: 04 03 ; COM_04_print_message length=0x0003 (to 0x7E93) 7E90: 56 D1 48 ; ; WITH ; 7E93: A9 ; FN_A9_PRINT_noun2 7E94: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7E7C 7E95: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0x7EA8) 7E97: 1A ; COM_1A_set_var_to_noun1() 7E98: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 7E9A: A8 ; FN_A8_PRINT_noun1 7E9B: 04 0B ; COM_04_print_message length=0x000B (to 0x7EA8) 7E9D: 4B 7B 06 9A B0 17 75 8D A6 85 2E ; ; IS NOT UNLOCKED. ; ; ; end group_AND at 0x7E95 7EA8: 0D 0E ; COM_0D_group_AND length=0x000E (to 0x7EB8) 7EAA: 2A ; COM_2A_toggle_lock_VAR() 7EAB: A8 ; FN_A8_PRINT_noun1 7EAC: 04 0A ; COM_04_print_message length=0x000A (to 0x7EB8) 7EAE: 4B 7B 09 9A 49 16 97 54 9B 5D ; ; IS NOW LOCKED. ; ; ; end group_AND at 0x7EA8 ; ; end group_OR at 0x7E73 ; ; end case 7EB8: 12 28 ; case COM_0A_is_input_phrase("PULL u....... * *"), length=0x0028 7EBA: 0E 26 ; COM_0E_group_OR length=0x0026 (to 0x7EE2) 7EBC: 13 ; COM_13_process_phrase_by_room() 7EBD: 0D 05 ; COM_0D_group_AND length=0x0005 (to 0x7EC4) 7EBF: 1A ; COM_1A_set_var_to_noun1() 7EC0: 14 ; COM_14_reverse_status next command 7EC1: 15 20 ; COM_15_is_var_attributes(value=..P.....(Portable)) 7EC3: C2 ; FN_C2_PRINT_CANT_BUDGE_noun1 ; ; end group_AND at 0x7EBD 7EC4: 0D 1C ; COM_0D_group_AND length=0x001C (to 0x7EE2) 7EC6: 04 13 ; COM_04_print_message length=0x0013 (to 0x7EDB) 7EC8: 33 D1 09 15 E6 96 51 18 4E C2 98 5F 56 5E DB 72 7ED8: 81 A6 52 ; ; WHY DON'T YOU LEAVE THE POOR ; 7EDB: 11 ; COM_11_print_noun1() 7EDC: 04 04 ; COM_04_print_message length=0x0004 (to 0x7EE2) 7EDE: 49 48 7F 98 ; ; ALONE. ; ; ; end group_AND at 0x7EC4 ; ; end group_OR at 0x7EBA ; ; end case 7EE2: 09 57 ; case COM_0A_is_input_phrase("ATTACK ...P.... WITH .v......"), length=0x0057 7EE4: 0E 55 ; COM_0E_group_OR length=0x0055 (to 0x7F3B) 7EE6: 14 ; COM_14_reverse_status next command 7EE7: 1B ; COM_1B_set_var_to_noun2() 7EE8: 14 ; COM_14_reverse_status next command 7EE9: 0E 03 ; COM_0E_group_OR length=0x0003 (to 0x7EEE) 7EEB: 09 37 ; COM_09_is_noun2(obj=OBJ_37_STEEL_SAFE) 7EED: 8F ; FN_8F_GET_OBJECT ; ; end group_OR at 0x7EE9 7EEE: 0E 3E ; COM_0E_group_OR length=0x003E (to 0x7F2E) 7EF0: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x7F09) 7EF2: 14 ; COM_14_reverse_status next command 7EF3: 15 40 ; COM_15_is_var_attributes(value=.W......(Weapon)) 7EF5: 04 0A ; COM_04_print_message length=0x000A (to 0x7F01) 7EF7: C7 DE D3 14 E6 96 AF 15 B3 B3 ; ; YOU CAN'T HURT ; 7F01: A8 ; FN_A8_PRINT_noun1 7F02: 04 03 ; COM_04_print_message length=0x0003 (to 0x7F07) 7F04: 56 D1 48 ; ; WITH ; 7F07: A9 ; FN_A9_PRINT_noun2 7F08: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7EF0 7F09: 13 ; COM_13_process_phrase_by_room() 7F0A: 0D 22 ; COM_0D_group_AND length=0x0022 (to 0x7F2E) 7F0C: 1A ; COM_1A_set_var_to_noun1() 7F0D: 14 ; COM_14_reverse_status next command 7F0E: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 7F10: 04 13 ; COM_04_print_message length=0x0013 (to 0x7F25) 7F12: 73 7B 77 5B D0 B5 C9 9C 36 A0 89 17 AF 14 73 49 7F22: 03 A0 41 ; ; IT DOES NO GOOD TO BEAT ON A ; 7F25: 11 ; COM_11_print_noun1() 7F26: 04 04 ; COM_04_print_message length=0x0004 (to 0x7F2C) 7F28: 56 D1 03 71 ; ; WITH A ; 7F2C: 12 ; COM_12_print_noun2() 7F2D: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7F0A ; ; end group_OR at 0x7EEE 7F2E: 0D 0B ; COM_0D_group_AND length=0x000B (to 0x7F3B) 7F30: A8 ; FN_A8_PRINT_noun1 7F31: 04 08 ; COM_04_print_message length=0x0008 (to 0x7F3B) 7F33: 4B 7B 92 C5 37 49 17 60 ; ; IS UNHARMED. ; ; ; end group_AND at 0x7F2E ; ; end group_OR at 0x7EE4 ; ; end case 7F3B: 0A 01 ; case COM_0A_is_input_phrase("LOOK * * *"), length=0x0001 7F3D: 07 ; COM_07_print_room_description() ; ; end case 7F3E: 15 26 ; case COM_0A_is_input_phrase("EAT u....... * *"), length=0x0026 7F40: 0E 24 ; COM_0E_group_OR length=0x0024 (to 0x7F66) 7F42: 13 ; COM_13_process_phrase_by_room() 7F43: 0D 21 ; COM_0D_group_AND length=0x0021 (to 0x7F66) 7F45: 04 0A ; COM_04_print_message length=0x000A (to 0x7F51) 7F47: 80 5B F3 23 5B 4D 4E B8 F9 8E ; ; DON'T BE SILLY! ; 7F51: A8 ; FN_A8_PRINT_noun1 7F52: 04 12 ; COM_04_print_message length=0x0012 (to 0x7F66) 7F54: 47 D2 C8 8B F3 23 55 BD DB BD 41 6E 03 58 99 9B 7F64: 5F 4A ; ; WOULDN'T TASTE GOOD ANYWAY. ; ; ; end group_AND at 0x7F43 ; ; end group_OR at 0x7F40 ; ; end case 7F66: 59 13 ; case COM_0A_is_input_phrase("TASTE u....... * *"), length=0x0013 7F68: 0E 11 ; COM_0E_group_OR length=0x0011 (to 0x7F7B) 7F6A: 13 ; COM_13_process_phrase_by_room() 7F6B: 0D 0E ; COM_0D_group_AND length=0x000E (to 0x7F7B) 7F6D: 04 0B ; COM_04_print_message length=0x000B (to 0x7F7A) 7F6F: 73 7B 55 BD F5 BD 43 16 9B 85 41 ; ; IT TASTES LIKE A ; 7F7A: 11 ; COM_11_print_noun1() ; ; end group_AND at 0x7F6B ; ; end group_OR at 0x7F68 ; ; end case 7F7B: 17 4C ; case COM_0A_is_input_phrase("CLIMB u....... * *"), length=0x004C 7F7D: 0E 4A ; COM_0E_group_OR length=0x004A (to 0x7FC9) 7F7F: 13 ; COM_13_process_phrase_by_room() 7F80: 0D 22 ; COM_0D_group_AND length=0x0022 (to 0x7FA4) 7F82: 1A ; COM_1A_set_var_to_noun1() 7F83: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 7F85: 04 09 ; COM_04_print_message length=0x0009 (to 0x7F90) 7F87: 46 77 05 A0 16 BC 90 73 4B ; ; I DON'T THINK ; 7F90: A8 ; FN_A8_PRINT_noun1 7F91: 04 11 ; COM_04_print_message length=0x0011 (to 0x7FA4) 7F93: 4E D1 15 8A 50 BD 15 58 8E BE 08 8A BE A0 56 72 7FA3: 2E ; ; WILL STAND STILL FORTHAT. ; ; ; end group_AND at 0x7F80 7FA4: 0D 23 ; COM_0D_group_AND length=0x0023 (to 0x7FC9) 7FA6: 04 10 ; COM_04_print_message length=0x0010 (to 0x7FB8) 7FA8: CF 62 8B 96 9B 64 1B A1 47 55 B3 8B C3 54 A3 91 ; ; EVEN IF YOU COULD CLIMB ; 7FB8: A8 ; FN_A8_PRINT_noun1 7FB9: 04 0E ; COM_04_print_message length=0x000E (to 0x7FC9) 7FBB: 73 7B 47 D2 C8 8B F3 23 EE 72 1B A3 3F A1 ; ; IT WOULDN'T HELP YOU. ; ; ; end group_AND at 0x7FA4 ; ; end group_OR at 0x7F7D ; ; end case 7FC9: 16 12 ; case COM_0A_is_input_phrase("DROP * OUT ....A..."), length=0x0012 7FCB: 0E 10 ; COM_0E_group_OR length=0x0010 (to 0x7FDD) 7FCD: 13 ; COM_13_process_phrase_by_room() 7FCE: 0D 0D ; COM_0D_group_AND length=0x000D (to 0x7FDD) 7FD0: A8 ; FN_A8_PRINT_noun1 7FD1: 04 0A ; COM_04_print_message length=0x000A (to 0x7FDD) 7FD3: 4B 7B 06 9A BF 14 D3 B2 CF 98 ; ; IS NOT BURNING. ; ; ; end group_AND at 0x7FCE ; ; end group_OR at 0x7FCB ; ; end case 7FDD: 18 2E ; case COM_0A_is_input_phrase("RUB u....... * *"), length=0x002E 7FDF: 0E 2C ; COM_0E_group_OR length=0x002C (to 0x800D) 7FE1: 13 ; COM_13_process_phrase_by_room() 7FE2: 0D 15 ; COM_0D_group_AND length=0x0015 (to 0x7FF9) 7FE4: 1A ; COM_1A_set_var_to_noun1() 7FE5: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 7FE7: 04 0E ; COM_04_print_message length=0x000E (to 0x7FF7) 7FE9: 5B BE 65 BC 99 16 F3 17 56 DB CA 9C 3E C6 ; ; THAT'S NO WAY TO HURT ; 7FF7: AA ; FN_AA_PRINT_THE_var 7FF8: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x7FE2 7FF9: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x800D) 7FFB: A8 ; FN_A8_PRINT_noun1 7FFC: 04 0F ; COM_04_print_message length=0x000F (to 0x800D) 7FFE: 81 8D CB 87 A5 94 04 71 8E 62 23 62 09 9A 2E ; ; LOOKS MUCH BETTER NOW. ; ; ; end group_AND at 0x7FF9 ; ; end group_OR at 0x7FDF ; ; end case 800D: 0B 65 ; case COM_0A_is_input_phrase("LOOK * AT u......."), length=0x0065 800F: 0E 63 ; COM_0E_group_OR length=0x0063 (to 0x8074) 8011: 13 ; COM_13_process_phrase_by_room() 8012: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x802B) 8014: 1A ; COM_1A_set_var_to_noun1() 8015: 15 04 ; COM_15_is_var_attributes(value=.....R..(Readable)) 8017: 04 10 ; COM_04_print_message length=0x0010 (to 0x8029) 8019: 3F B9 82 62 91 7A D5 15 04 18 8E 7B 83 61 03 A0 ; ; SOMETHING IS WRITTEN ON ; 8029: AA ; FN_AA_PRINT_THE_var 802A: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8012 802B: 0D 0D ; COM_0D_group_AND length=0x000D (to 0x803A) 802D: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) 802F: 04 09 ; COM_04_print_message length=0x0009 (to 0x803A) 8031: 73 7B 4B 7B C9 54 A6 B7 2E ; ; IT IS CLOSED. ; ; ; end group_AND at 0x802B 803A: 0D 0D ; COM_0D_group_AND length=0x000D (to 0x8049) 803C: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 803E: 04 09 ; COM_04_print_message length=0x0009 (to 0x8049) 8040: 73 7B 4B 7B 75 8D A6 85 2E ; ; IT IS LOCKED. ; ; ; end group_AND at 0x803A 8049: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8055) 804B: 15 02 ; COM_15_is_var_attributes(value=......H.(Holder)) 804D: 0E 05 ; COM_0E_group_OR length=0x0005 (to 0x8054) 804F: 2E 80 ; COM_2E_is_var_ext_attributes(value=G...----(Glass)) 8051: 14 ; COM_14_reverse_status next command 8052: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) ; ; end group_OR at 0x804D 8054: 33 ; COM_33_print_objects_on_var_object() ; ; end group_AND at 0x8049 8055: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x805A) 8057: 15 01 ; COM_15_is_var_attributes(value=.......S(Surface)) 8059: 33 ; COM_33_print_objects_on_var_object() ; ; end group_AND at 0x8055 805A: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0x8074) 805C: 04 14 ; COM_04_print_message length=0x0014 (to 0x8072) 805E: 5F BE 5D B1 D0 B5 02 A1 91 7A 62 17 DB 5F 33 48 806E: B9 46 73 C6 ; ; THERE'S NOTHING SPECIAL ABOUT ; 8072: A8 ; FN_A8_PRINT_noun1 8073: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x805A ; ; end group_OR at 0x800F ; ; end case 8074: 0C 17 ; case COM_0A_is_input_phrase("LOOK * UNDER u......."), length=0x0017 8076: 0E 15 ; COM_0E_group_OR length=0x0015 (to 0x808D) 8078: 13 ; COM_13_process_phrase_by_room() 8079: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x808D) 807B: 04 0E ; COM_04_print_message length=0x000E (to 0x808B) 807D: 5F BE 5D B1 D0 B5 02 A1 91 7A B0 17 F4 59 ; ; THERE'S NOTHING UNDER ; 808B: A8 ; FN_A8_PRINT_noun1 808C: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8079 ; ; end group_OR at 0x8076 ; ; end case 808D: 10 4C ; case COM_0A_is_input_phrase("LOOK * IN ......O."), length=0x004C 808F: 0E 4A ; COM_0E_group_OR length=0x004A (to 0x80DB) 8091: 13 ; COM_13_process_phrase_by_room() 8092: 0D 2A ; COM_0D_group_AND length=0x002A (to 0x80BE) 8094: 1B ; COM_1B_set_var_to_noun2() 8095: 14 ; COM_14_reverse_status next command 8096: 15 02 ; COM_15_is_var_attributes(value=......H.(Holder)) 8098: 04 22 ; COM_04_print_message length=0x0022 (to 0x80BC) 809A: 40 55 B0 53 EB BF DB BD 4B 49 C7 DE 63 16 B3 E0 80AA: C7 DE D3 14 90 96 F3 A0 A7 B7 90 14 82 DF 91 7A 80BA: D0 15 ; ; CONCENTRATE AS YOU MAY, YOU CAN NOT SEE ANYTHING IN ; 80BC: A9 ; FN_A9_PRINT_noun2 80BD: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8092 80BE: 0D 0F ; COM_0D_group_AND length=0x000F (to 0x80CF) 80C0: 14 ; COM_14_reverse_status next command 80C1: 2E 80 ; COM_2E_is_var_ext_attributes(value=G...----(Glass)) 80C3: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) 80C5: A9 ; FN_A9_PRINT_noun2 80C6: 04 07 ; COM_04_print_message length=0x0007 (to 0x80CF) 80C8: 4B 7B C9 54 A6 B7 2E ; ; IS CLOSED. ; ; ; end group_AND at 0x80BE 80CF: 33 ; COM_33_print_objects_on_var_object() 80D0: 0D 09 ; COM_0D_group_AND length=0x0009 (to 0x80DB) 80D2: A9 ; FN_A9_PRINT_noun2 80D3: 04 06 ; COM_04_print_message length=0x0006 (to 0x80DB) 80D5: 4B 7B 72 61 1F C1 ; ; IS EMPTY. ; ; ; end group_AND at 0x80D0 ; ; end group_OR at 0x808F ; ; end case 80DB: 4C 51 ; case COM_0A_is_input_phrase("LOOK * ON .......L"), length=0x0051 80DD: 0E 4F ; COM_0E_group_OR length=0x004F (to 0x812E) 80DF: 13 ; COM_13_process_phrase_by_room() 80E0: 0D 1A ; COM_0D_group_AND length=0x001A (to 0x80FC) 80E2: 1B ; COM_1B_set_var_to_noun2() 80E3: 15 04 ; COM_15_is_var_attributes(value=.....R..(Readable)) 80E5: 04 13 ; COM_04_print_message length=0x0013 (to 0x80FA) 80E7: 5F BE 5D B1 D5 B5 E7 9F 63 BE AB 98 B3 D2 3F C0 80F7: 91 96 4E ; ; THERE'S SOMETHING WRITTEN ON ; 80FA: A9 ; FN_A9_PRINT_noun2 80FB: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x80E0 80FC: 0D 1D ; COM_0D_group_AND length=0x001D (to 0x811B) 80FE: 14 ; COM_14_reverse_status next command 80FF: 15 01 ; COM_15_is_var_attributes(value=.......S(Surface)) 8101: 04 16 ; COM_04_print_message length=0x0016 (to 0x8119) 8103: 5F BE 5D B1 D0 B5 02 A1 91 7A 99 16 F9 BD BE A0 8113: FB 75 B9 46 73 C6 ; ; THERE'S NOTHING NOTEWORTHY ABOUT ; 8119: A9 ; FN_A9_PRINT_noun2 811A: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x80FC 811B: 33 ; COM_33_print_objects_on_var_object() 811C: 0D 10 ; COM_0D_group_AND length=0x0010 (to 0x812E) 811E: 04 0C ; COM_04_print_message length=0x000C (to 0x812C) 8120: 5F BE 5D B1 D0 B5 02 A1 91 7A C0 16 ; ; THERE'S NOTHING ON ; 812C: A9 ; FN_A9_PRINT_noun2 812D: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x811C ; ; end group_OR at 0x80DD ; ; end case 812E: 1B 1E ; case COM_0A_is_input_phrase("LOOK * AROUND u......."), length=0x001E 8130: 0E 1C ; COM_0E_group_OR length=0x001C (to 0x814E) 8132: 13 ; COM_13_process_phrase_by_room() 8133: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x8138) 8135: 08 00 ; COM_08_is_noun1(obj=nothing) 8137: 07 ; COM_07_print_room_description() ; ; end group_AND at 0x8133 8138: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0x814E) 813A: 04 10 ; COM_04_print_message length=0x0010 (to 0x814C) 813C: 5F BE 5B B1 4B 7B 06 9A 90 73 C3 6A 07 B3 33 98 ; ; THERE IS NOTHING AROUND ; 814C: A8 ; FN_A8_PRINT_noun1 814D: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8138 ; ; end group_OR at 0x8130 ; ; end case 814E: 1C 32 ; case COM_0A_is_input_phrase("LOOK * BEHIND u......."), length=0x0032 8150: 0E 30 ; COM_0E_group_OR length=0x0030 (to 0x8182) 8152: 13 ; COM_13_process_phrase_by_room() 8153: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x816C) 8155: 08 00 ; COM_08_is_noun1(obj=nothing) 8157: 04 13 ; COM_04_print_message length=0x0013 (to 0x816C) 8159: 5F BE 5B B1 4B 7B 06 9A 90 73 C4 6A A3 60 33 98 8169: C7 DE 2E ; ; THERE IS NOTHING BEHIND YOU. ; ; ; end group_AND at 0x8153 816C: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0x8182) 816E: 04 10 ; COM_04_print_message length=0x0010 (to 0x8180) 8170: 5F BE 5B B1 4B 7B 06 9A 90 73 C4 6A A3 60 33 98 ; ; THERE IS NOTHING BEHIND ; 8180: A8 ; FN_A8_PRINT_noun1 8181: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x816C ; ; end group_OR at 0x8150 ; ; end case 8182: 1D 16 ; case COM_0A_is_input_phrase("LOOK * OUT *"), length=0x0016 8184: 04 14 ; COM_04_print_message length=0x0014 (to 0x819A) 8186: 9F 77 AF 14 91 7A 95 14 D3 14 68 B1 33 C5 4B 49 8196: 45 77 81 48 ; ; I'M BEING AS CAREFUL AS I CAN! ; ; ; end case 819A: 1E 04 ; case COM_0A_is_input_phrase("YES * * *"), length=0x0004 819C: 04 02 ; COM_04_print_message length=0x0002 (to 0x81A0) 819E: E9 99 ; ; NO! ; ; ; end case 81A0: 1F 05 ; case COM_0A_is_input_phrase("NO * * *"), length=0x0005 81A2: 04 03 ; COM_04_print_message length=0x0003 (to 0x81A7) 81A4: 35 DD 21 ; ; YES! ; ; ; end case 81A7: 21 1C ; case COM_0A_is_input_phrase("PLUGH * * *"), length=0x001C 81A9: 04 1A ; COM_04_print_message length=0x001A (to 0x81C5) 81AB: 44 B9 9E B4 BB 15 80 5B F3 23 6E 4D 38 79 4B 5E 81BB: 8F 96 7B 47 D9 51 AE A0 5B BB ; ; SORRY, I DON'T BELIEVE IN MAGIC WORDS. ; ; ; end case 81C5: 5A 1B ; case COM_0A_is_input_phrase("THUM * * *"), length=0x001B 81C7: 04 19 ; COM_04_print_message length=0x0019 (to 0x81E2) 81C9: 25 A1 AB 70 56 77 BE 9F 51 18 B3 C7 5B BE 0B C0 81D9: 06 9A E9 16 DB B9 7F 4E 21 ; ; OUCH! I TOLD YOU, THATS NOT POSSIBLE! ; ; ; end case 81E2: 22 12 ; case COM_0A_is_input_phrase("SCREAM * * *"), length=0x0012 81E4: 04 10 ; COM_04_print_message length=0x0010 (to 0x81F6) 81E6: 5B E0 27 60 31 60 41 A0 49 A0 89 D3 89 D3 69 CE ; ; YYYEEEEEOOOOOOWWWWWWWW!! ; ; ; end case 81F6: 23 01 ; case COM_0A_is_input_phrase("QUIT * * *"), length=0x0001 81F8: 24 ; COM_24_exit_program() ; ; end case 81F9: 2C 01 ; case COM_0A_is_input_phrase("SCORE * * *"), length=0x0001 81FB: C9 ; FN_C9_PRINT_COMPLETED_PERCENT ; ; end case 81FC: 3E 04 ; case COM_0A_is_input_phrase("LOAD * * *"), length=0x0004 81FE: 0D 02 ; COM_0D_group_AND length=0x0002 (to 0x8202) 8200: C6 ; FN_C6_PROMPT_FOR_DRIVE_NUMBER 8201: 27 ; COM_27_load_game() ; ; end group_AND at 0x81FE ; ; end case 8202: 3F 04 ; case COM_0A_is_input_phrase("SAVE * * *"), length=0x0004 8204: 0D 02 ; COM_0D_group_AND length=0x0002 (to 0x8208) 8206: C6 ; FN_C6_PROMPT_FOR_DRIVE_NUMBER 8207: 28 ; COM_28_save_game() ; ; end group_AND at 0x8204 ; ; end case 8208: 25 20 ; case COM_0A_is_input_phrase("LEAVE * * *"), length=0x0020 820A: 04 1E ; COM_04_print_message length=0x001E (to 0x822A) 820C: C7 DE AF 23 99 16 09 BC 8E 62 91 7A 90 14 FA DF 821C: 2F 62 16 EE 7B B4 46 45 2F 7B 03 56 27 A0 ; ; YOU'RE NOT GETTING ANYWHERE, TRY A DIRECTION. ; ; ; end case 822A: 26 20 ; case COM_0A_is_input_phrase("GO * AROUND u......."), length=0x0020 822C: 0E 1E ; COM_0E_group_OR length=0x001E (to 0x824C) 822E: 13 ; COM_13_process_phrase_by_room() 822F: 0D 13 ; COM_0D_group_AND length=0x0013 (to 0x8244) 8231: 1A ; COM_1A_set_var_to_noun1() 8232: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 8234: A8 ; FN_A8_PRINT_noun1 8235: 04 0D ; COM_04_print_message length=0x000D (to 0x8244) 8237: 40 D2 F3 23 F6 8B 51 18 52 C2 65 49 21 ; ; WON'T LET YOU PASS! ; ; ; end group_AND at 0x822F 8244: 04 06 ; COM_04_print_message length=0x0006 (to 0x824C) 8246: 09 9A FA 17 70 49 ; ; NOW WHAT? ; ; ; end group_OR at 0x822C ; ; end case 824C: 3D 01 ; case COM_0A_is_input_phrase("GO * TO u......."), length=0x0001 824E: 91 ; FN_91_PRINT_USE_DIRECTIONS ; ; end case 824F: 27 0E ; case COM_0A_is_input_phrase("KICK u....... * *"), length=0x000E 8251: 0E 0C ; COM_0E_group_OR length=0x000C (to 0x825F) 8253: 13 ; COM_13_process_phrase_by_room() 8254: 04 09 ; COM_04_print_message length=0x0009 (to 0x825F) 8256: 25 A1 AB 70 3B 95 77 BF 21 ; ; OUCH! MY TOE! ; ; ; end group_OR at 0x8251 ; ; end case 825F: 44 09 ; case COM_0A_is_input_phrase("HELLO * * *"), length=0x0009 8261: 04 07 ; COM_04_print_message length=0x0007 (to 0x826A) 8263: AF 6E 83 62 C5 98 21 ; ; GREETINGS! ; ; ; end case ;; ;; !! Any living creature will reply with "hello". Try saying hello to the snake! ;; This routine is mostly copy/pasted from BEDLAM. "Greetings!" and "Ouch! My Toe!" -- all the same. In ;; BEDLAM, the "creatures" were all people that had names. You'd see NAPOLEAN REPLIES, "HELLO", which made ;; sense. In Xenos we get talking snakes: NINE FOOT DIAMOND BACK RATTLE SNAKE REPLIES, "HELLO". 826A: 45 30 ; case COM_0A_is_input_phrase("HELLO ...P.... * *"), length=0x0030 826C: 0E 2E ; COM_0E_group_OR length=0x002E (to 0x829C) 826E: 13 ; COM_13_process_phrase_by_room() 826F: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x8283) 8271: 1A ; COM_1A_set_var_to_noun1() 8272: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 8274: A8 ; FN_A8_PRINT_noun1 8275: 04 0C ; COM_04_print_message length=0x000C (to 0x8283) 8277: 72 B1 87 8C 33 BB DF 1B 09 8D 63 F4 ; ; REPLIES, "HELLO." ; ; ; end group_AND at 0x826F 8283: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x829C) 8285: 04 13 ; COM_04_print_message length=0x0013 (to 0x829A) 8287: 16 A0 43 DB E4 14 83 4A 01 18 3E C5 7B 17 CB 8C 8297: 6B BF 41 ; ; ONLY A CRAZY WOULD TALK TO A ; ;; !! The word "CRAZY" fits better in BEDLAM where this was copy/pasted from. 829A: 11 ; COM_11_print_noun1() 829B: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8283 ; ; end group_OR at 0x826C ; ; end case 829C: 46 08 ; case COM_0A_is_input_phrase("WHAT * * *"), length=0x0008 829E: 04 06 ; COM_04_print_message length=0x0006 (to 0x82A6) 82A0: 46 77 98 C5 5B A2 ; ; I DUNNO. ; ; ; end case 82A6: 47 09 ; case COM_0A_is_input_phrase("WHAT u....... * *"), length=0x0009 82A8: 04 07 ; COM_04_print_message length=0x0007 (to 0x82B1) 82AA: 29 D1 20 16 85 A1 3F ; ; WHO KNOWS? ; ; ; end case 82B1: 4A 18 ; case COM_0A_is_input_phrase("COME * * *"), length=0x0018 82B3: 0E 16 ; COM_0E_group_OR length=0x0016 (to 0x82CB) 82B5: 13 ; COM_13_process_phrase_by_room() 82B6: 0D 13 ; COM_0D_group_AND length=0x0013 (to 0x82CB) 82B8: 04 11 ; COM_04_print_message length=0x0011 (to 0x82CB) 82BA: 9E 77 08 8A C6 9F 6B A1 C7 DE 90 14 FA DF 2F 62 82CA: 21 ; ; I'LL FOLLOW YOU ANYWHERE! ; ; ; end group_AND at 0x82B6 ; ; end group_OR at 0x82B3 ; ; end case 82CB: 49 26 ; case COM_0A_is_input_phrase("MEET u....... * *"), length=0x0026 82CD: 0E 24 ; COM_0E_group_OR length=0x0024 (to 0x82F3) 82CF: 13 ; COM_13_process_phrase_by_room() 82D0: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0x82E3) 82D2: 09 00 ; COM_09_is_noun2(obj=nothing) 82D4: A8 ; FN_A8_PRINT_noun1 82D5: 04 0C ; COM_04_print_message length=0x000C (to 0x82E3) 82D7: 09 4F CB B5 89 96 67 B1 90 BE 5B 70 ; ; BOWS IN GREETING. ; ; ; end group_AND at 0x82D0 82E3: 04 0E ; COM_04_print_message length=0x000E (to 0x82F3) 82E5: 5F BE 44 DB 6B A1 83 7A AF 6E 83 62 CF 98 ; ; THEY BOW IN GREETING. ; ; ; end group_OR at 0x82CD ; ; end case 82F3: 28 36 ; case COM_0A_is_input_phrase("FEED ...P.... WITH u......."), length=0x0036 82F5: 0E 34 ; COM_0E_group_OR length=0x0034 (to 0x832B) 82F7: 13 ; COM_13_process_phrase_by_room() 82F8: 0D 16 ; COM_0D_group_AND length=0x0016 (to 0x8310) 82FA: 1A ; COM_1A_set_var_to_noun1() 82FB: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 82FD: A8 ; FN_A8_PRINT_noun1 82FE: 04 10 ; COM_04_print_message length=0x0010 (to 0x8310) 8300: 60 7B F3 23 70 75 C3 6E 33 17 2E 6D 99 16 5B D4 ; ; ISN'T HUNGRY RIGHT NOW. ; ; ; end group_AND at 0x82F8 8310: 0D 19 ; COM_0D_group_AND length=0x0019 (to 0x832B) 8312: 04 0D ; COM_04_print_message length=0x000D (to 0x8321) 8314: 80 5B F3 23 C7 DE 20 16 6B A1 5B BE 54 ; ; DON'T YOU KNOW THAT ; 8321: A8 ; FN_A8_PRINT_noun1 8322: 04 07 ; COM_04_print_message length=0x0007 (to 0x832B) 8324: 10 53 F3 23 96 5F 21 ; ; CAN'T EAT! ; ; ; end group_AND at 0x8310 ; ; end group_OR at 0x82F5 ; ; end case 832B: 29 34 ; case COM_0A_is_input_phrase("FEED u....... TO ...P...."), length=0x0034 832D: 0E 32 ; COM_0E_group_OR length=0x0032 (to 0x8361) 832F: 13 ; COM_13_process_phrase_by_room() 8330: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0x8346) 8332: 1B ; COM_1B_set_var_to_noun2() 8333: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 8335: A9 ; FN_A9_PRINT_noun2 8336: 04 0E ; COM_04_print_message length=0x000E (to 0x8346) 8338: 47 D2 B3 8B D6 B0 F4 72 23 15 1B BC 19 A1 ;; ;; !! There is no HANDS object in BEDLAM where all this came from. TODO check this same FEEDING in BEDLAM. Maybe it goes ;; back to RaakaTu. ;; FEED HANDS TO PROSPECTOR ;; PROSPECTOR WOULD RATHER EAT YOU! ;; ; ; WOULD RATHER EAT YOU! ; ; ; end group_AND at 0x8330 8346: 0D 19 ; COM_0D_group_AND length=0x0019 (to 0x8361) 8348: 04 17 ; COM_04_print_message length=0x0017 (to 0x8361) 834A: 43 79 C7 DE D3 14 88 96 8E 7A 7B 14 C7 93 76 BE 835A: BD 15 49 90 67 48 21 ; ; IF YOU CAN FIND A MOUTH, I'M GAME! ; ; ; end group_AND at 0x8346 ; ; end group_OR at 0x832D ; ; end case 8361: 2F 07 ; case COM_0A_is_input_phrase("WAIT * * *"), length=0x0007 8363: 04 05 ; COM_04_print_message length=0x0005 (to 0x836A) 8365: 9B 29 57 C6 3E ; ; <PAUSE> ; ; ; end case 836A: 31 17 ; case COM_0A_is_input_phrase("FIND u....... * *"), length=0x0017 836C: 04 15 ; COM_04_print_message length=0x0015 (to 0x8383) 836E: 36 9F D6 15 CB 23 39 49 8E C5 9F 15 5B B1 3F B9 837E: FA 62 2F 62 2E ; ; OH, IT'S AROUND HERE SOMEWHERE. ; ; ; end case 8383: 2D 09 ; case COM_0A_is_input_phrase("PULL * UP u......."), length=0x0009 8385: 0E 07 ; COM_0E_group_OR length=0x0007 (to 0x838E) 8387: 13 ; COM_13_process_phrase_by_room() 8388: 0D 02 ; COM_0D_group_AND length=0x0002 (to 0x838C) 838A: 1A ; COM_1A_set_var_to_noun1() 838B: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x8388 838C: 14 ; COM_14_reverse_status next command 838D: 0C ; COM_0C_fail() ; ; end group_OR at 0x8385 ; ; end case 838E: 48 11 ; case COM_0A_is_input_phrase("LOWER u....... * *"), length=0x0011 8390: 0E 0F ; COM_0E_group_OR length=0x000F (to 0x83A1) 8392: 13 ; COM_13_process_phrase_by_room() 8393: 04 0C ; COM_04_print_message length=0x000C (to 0x83A1) 8395: C7 DE D3 14 E6 96 09 15 82 17 97 49 ; ; YOU CAN'T DO THAT. ; ; ; end group_OR at 0x8390 ; ; end case 83A1: 33 27 ; case COM_0A_is_input_phrase("??33??"), length=0x0027 83A3: 0E 25 ; COM_0E_group_OR length=0x0025 (to 0x83CA) 83A5: 13 ; COM_13_process_phrase_by_room() 83A6: 04 22 ; COM_04_print_message length=0x0022 (to 0x83CA) 83A8: 0F A0 5F 17 46 48 66 17 D3 61 04 68 63 16 5B 99 83B8: 56 98 C0 16 49 5E 90 78 0E BC 92 5F 59 15 9B AF 83C8: 19 A1 ; ; ONE SMALL STEP FOR MANKIND, ONE GIANT LEAP FOR YOU! ; ; ; end group_OR at 0x83A3 ; ; end case 83CA: 34 23 ; case COM_0A_is_input_phrase("JUMP * OVER u......."), length=0x0023 83CC: 0E 21 ; COM_0E_group_OR length=0x0021 (to 0x83EF) 83CE: 13 ; COM_13_process_phrase_by_room() 83CF: 04 1E ; COM_04_print_message length=0x001E (to 0x83EF) 83D1: C7 DE 95 AF D5 C3 65 62 D5 15 67 16 67 49 66 B1 83E1: D0 15 3F 16 ED 48 90 14 04 58 30 A1 09 5C ; ; YOUR SUCCESS IS MEASURED IN LEAPS AND BOUNDS! ; ; ; end group_OR at 0x83CC ; ; end case 83EF: 35 1C ; case COM_0A_is_input_phrase("JUMP * ON u......."), length=0x001C 83F1: 0E 1A ; COM_0E_group_OR length=0x001A (to 0x840D) 83F3: 13 ; COM_13_process_phrase_by_room() 83F4: 04 17 ; COM_04_print_message length=0x0017 (to 0x840D) 83F6: C7 DE 73 21 76 4D F4 BD F3 17 9A BD FA 17 2F 62 8406: 51 18 55 C2 F2 BD 21 ; ; YOU'D BETTER WATCH WHERE YOU STEP! ; ; ; end group_OR at 0x83F1 ; ; end case 840D: 36 04 ; case COM_0A_is_input_phrase("ENTER * * *"), length=0x0004 840F: 0E 02 ; COM_0E_group_OR length=0x0002 (to 0x8413) 8411: 13 ; COM_13_process_phrase_by_room() 8412: 91 ; FN_91_PRINT_USE_DIRECTIONS ; ; end group_OR at 0x840F ; ; end case 8413: 37 04 ; case COM_0A_is_input_phrase("CLIMB * OUT *"), length=0x0004 8415: 0E 02 ; COM_0E_group_OR length=0x0002 (to 0x8419) 8417: 13 ; COM_13_process_phrase_by_room() 8418: 91 ; FN_91_PRINT_USE_DIRECTIONS ; ; end group_OR at 0x8415 ; ; end case 8419: 54 17 ; case COM_0A_is_input_phrase("CLIMB * UP *"), length=0x0017 841B: 0E 15 ; COM_0E_group_OR length=0x0015 (to 0x8432) 841D: 13 ; COM_13_process_phrase_by_room() 841E: 04 12 ; COM_04_print_message length=0x0012 (to 0x8432) 8420: 5F BE 5B B1 4B 7B EB 99 FB A5 9B 53 6B BF 2B 6E 8430: F7 C5 ; ; THERE IS NO PLACE TO GO UP. ; ; ; end group_OR at 0x841B ; ; end case 8432: 55 19 ; case COM_0A_is_input_phrase("CLIMB * DOWN *"), length=0x0019 8434: 0E 17 ; COM_0E_group_OR length=0x0017 (to 0x844D) 8436: 13 ; COM_13_process_phrase_by_room() 8437: 04 14 ; COM_04_print_message length=0x0014 (to 0x844D) 8439: 5F BE 5B B1 4B 7B EB 99 FB A5 9B 53 6B BF 2B 6E 8449: 89 5B 1B 9C ; ; THERE IS NO PLACE TO GO DOWN. ; ; ; end group_OR at 0x8434 ; ; end case 844D: 38 1D ; case COM_0A_is_input_phrase("CLIMB * UNDER u......."), length=0x001D 844F: 0E 1B ; COM_0E_group_OR length=0x001B (to 0x846C) 8451: 13 ; COM_13_process_phrase_by_room() 8452: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0x846C) 8454: 04 14 ; COM_04_print_message length=0x0014 (to 0x846A) 8456: 5F BE 5B B1 4B 7B 06 9A 30 15 29 A1 14 71 3F A0 8466: B0 17 F4 59 ; ; THERE IS NOT ENOUGH ROOM UNDER ; 846A: A8 ; FN_A8_PRINT_noun1 846B: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8452 ; ; end group_OR at 0x844F ; ; end case 846C: 39 1D ; case COM_0A_is_input_phrase("THROW ..C..... IN u......."), length=0x001D 846E: 0E 1B ; COM_0E_group_OR length=0x001B (to 0x848B) 8470: 13 ; COM_13_process_phrase_by_room() 8471: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0x848B) 8473: 04 16 ; COM_04_print_message length=0x0016 (to 0x848B) 8475: C7 DE FB 17 F3 8C 58 72 56 5E D2 9C 73 C6 73 7B 8485: 83 7A 5F BE 7F B1 ; ; YOU WILL HAVE TO PUT IT IN THERE. ; ; ; end group_AND at 0x8471 ; ; end group_OR at 0x846E ; ; end case 848B: 0D 2B ; case COM_0A_is_input_phrase("THROW .vC..... AT ...P...."), length=0x002B 848D: 0E 29 ; COM_0E_group_OR length=0x0029 (to 0x84B8) 848F: 0D 25 ; COM_0D_group_AND length=0x0025 (to 0x84B6) 8491: 1A ; COM_1A_set_var_to_noun1() 8492: 8F ; FN_8F_GET_OBJECT 8493: 0E 21 ; COM_0E_group_OR length=0x0021 (to 0x84B6) 8495: 13 ; COM_13_process_phrase_by_room() 8496: 0D 1E ; COM_0D_group_AND length=0x001E (to 0x84B6) 8498: 0E 07 ; COM_0E_group_OR length=0x0007 (to 0x84A1) 849A: 14 ; COM_14_reverse_status next command 849B: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) 849D: 1B ; COM_1B_set_var_to_noun2() 849E: 14 ; COM_14_reverse_status next command 849F: 15 40 ; COM_15_is_var_attributes(value=.W......(Weapon)) ; ; end group_OR at 0x8498 84A1: A8 ; FN_A8_PRINT_noun1 84A2: 04 0F ; COM_04_print_message length=0x000F (to 0x84B3) 84A4: 07 4F 17 98 CA B5 37 49 F5 8B D3 B8 B8 16 46 ; ; BOUNCES HARMLESSLY OFF ; 84B3: A9 ; FN_A9_PRINT_noun2 84B4: 8B ; FN_8B_PRINT_PERIOD 84B5: 10 ; COM_10_drop_var() ; ; end group_AND at 0x8496 ; ; end group_OR at 0x8493 ; ; end group_AND at 0x848F 84B6: 14 ; COM_14_reverse_status next command 84B7: 0C ; COM_0C_fail() ; ; end group_OR at 0x848D ; ; end case 84B8: 57 81 09 ; case COM_0A_is_input_phrase("SHOOT u....... WITH u......."), length=0x0109 84BB: 0E 81 06 ; COM_0E_group_OR length=0x0106 (to 0x85C4) 84BE: 13 ; COM_13_process_phrase_by_room() 84BF: 0D 0F ; COM_0D_group_AND length=0x000F (to 0x84D0) 84C1: 14 ; COM_14_reverse_status next command 84C2: 09 28 ; COM_09_is_noun2(obj=OBJ_28_SHOTGUN) 84C4: A9 ; FN_A9_PRINT_noun2 84C5: 04 09 ; COM_04_print_message length=0x0009 (to 0x84D0) 84C7: 60 7B F3 23 73 8D E6 59 2E ; ; ISN'T LOADED. ; ; ; end group_AND at 0x84BF 84D0: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x84DC) 84D2: 14 ; COM_14_reverse_status next command 84D3: 03 28 29 ; COM_03_is_located(owner=OBJ_28_SHOTGUN, obj=OBJ_29_SHOTGUN_SHELL1) 84D6: 04 04 ; COM_04_print_message length=0x0004 (to 0x84DC) 84D8: C3 54 AF 54 ; ; CLICK. ; ; ; end group_AND at 0x84D0 84DC: 0D 80 CB ; COM_0D_group_AND length=0x00CB (to 0x85AA) 84DF: 04 04 ; COM_04_print_message length=0x0004 (to 0x84E5) 84E1: 7B 4E EB 8F ; ; BLAM! ; 84E5: 0B 80 C2 08 ; COM_0B_switch length=0x00C2 (to 0x85AB), function=COM_08_is_first_noun(word_num) 84E9: 33 0E ; case COM_08_is_first_noun(object_num=OBJ_33_RATTLE_SNAKE), length=0x000E 84EB: 0D 0C ; COM_0D_group_AND length=0x000C (to 0x84F9) 84ED: 04 07 ; COM_04_print_message length=0x0007 (to 0x84F6) 84EF: 41 6E 15 58 86 74 21 ; ; GOOD SHOT! ; 84F6: 1A ; COM_1A_set_var_to_noun1() 84F7: 1D 64 ; COM_1D_attack_var(points=100) ; ; end group_AND at 0x84EB ; ; end case 84F9: 62 4D ; case COM_08_is_first_noun(object_num=OBJ_62_SHAGGY_CREATURE), length=0x004D 84FB: 0D 4B ; COM_0D_group_AND length=0x004B (to 0x8548) 84FD: 04 45 ; COM_04_print_message length=0x0045 (to 0x8544) 84FF: 5F BE 8E 14 30 79 D5 15 43 16 BF 68 03 58 33 98 850F: 6C BE 80 A1 AB 14 A9 54 2E 49 C4 B5 56 DB DB 72 851F: 72 7A E6 46 B8 16 82 17 44 5E 55 8B 9B C1 8D 7B 852F: 43 16 D3 93 F6 4E 48 DB 46 48 D6 B5 D6 9C DB 72 853F: B9 6E 8E C5 2E ; ; THE ALIEN IS LIFTED AND THROWN BACKWARDS BY THE IMPACT OF ; THE BLAST. ITS LIMP BODY FALLS TO THE GROUND. ; 8544: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 8546: 1D 15 ; COM_1D_attack_var(points=21) ; ; end group_AND at 0x84FB ; ; end case 8548: 89 60 ; case COM_08_is_first_noun(object_num=OBJ_89_ALIEN_ANTS), length=0x0060 854A: 0D 5E ; COM_0D_group_AND length=0x005E (to 0x85AA) 854C: 04 58 ; COM_04_print_message length=0x0058 (to 0x85A6) 854E: 5F BE 5A 17 01 A1 83 C5 F3 B2 8B B3 E3 59 70 66 855E: 91 7A 1E 8F BF 14 0A BC 4B 49 96 8C FF BE 28 15 856E: 65 66 11 BC 96 96 DB 72 18 D0 51 5E 95 64 8E 91 857E: 04 8A 45 8B C5 83 63 B1 74 C0 4B 62 5B BE 19 BC 858E: 5A 49 C8 16 23 62 C7 DE 15 EE 90 BE 50 6D DB 6A 859E: 1B A1 6B BF E3 59 77 BE ; ; THE SHOTGUN ROARS DEAFENINGLY, BUT HAS LITTLE EFFECT ON THE ; WAVE OF SMALL BLACK CREATURES THAT WASH OVER YOU, STINGING ; YOU TO DEATH. ; 85A6: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 85A8: 1D 4B ; COM_1D_attack_var(points=75) ; ; end group_AND at 0x854A ; ; end case ; ; end decode_switch at 0x84E5 ; ; end group_AND at 0x84DC 85AA: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0x85C4) 85AC: 04 14 ; COM_04_print_message length=0x0014 (to 0x85C2) 85AE: 5F BE 5B B1 2F 49 57 17 74 CA 33 48 79 98 A9 15 85BE: F5 8B D0 15 ; ; THERE ARE SEVERAL NEW HOLES IN ; 85C2: A8 ; FN_A8_PRINT_noun1 85C3: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x85AA ; ; end group_OR at 0x84BB ; ; end case 85C4: 0E 13 ; case COM_0A_is_input_phrase("THROW u....... TO ...P...."), length=0x0013 85C6: 0E 11 ; COM_0E_group_OR length=0x0011 (to 0x85D9) 85C8: 13 ; COM_13_process_phrase_by_room() 85C9: 0D 0E ; COM_0D_group_AND length=0x000E (to 0x85D9) 85CB: A9 ; FN_A9_PRINT_noun2 85CC: 04 0B ; COM_04_print_message length=0x000B (to 0x85D9) 85CE: 77 5B 05 B9 19 BC 9E 48 D6 15 2E ; ; DOESN'T WANT IT. ; ; ; end group_AND at 0x85C9 ; ; end group_OR at 0x85C6 ; ; end case 85D9: 0F 1D ; case COM_0A_is_input_phrase("DROP ..C..... IN ......O."), length=0x001D 85DB: 0E 1B ; COM_0E_group_OR length=0x001B (to 0x85F8) 85DD: 0D 06 ; COM_0D_group_AND length=0x0006 (to 0x85E5) 85DF: 1A ; COM_1A_set_var_to_noun1() 85E0: 14 ; COM_14_reverse_status next command 85E1: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) 85E3: 14 ; COM_14_reverse_status next command 85E4: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x85DD 85E5: 14 ; COM_14_reverse_status next command 85E6: BF ; FN_BF_IS_LIQUID_REACHABLE 85E7: 0D 05 ; COM_0D_group_AND length=0x0005 (to 0x85EE) 85E9: 1B ; COM_1B_set_var_to_noun2() 85EA: 14 ; COM_14_reverse_status next command 85EB: 15 02 ; COM_15_is_var_attributes(value=......H.(Holder)) 85ED: B6 ; FN_B6_PRINT_TWO_SAME_SPACE ; ; end group_AND at 0x85E7 85EE: B7 ; FN_B7_PRINT_HAVE_TO_OPEN_var 85EF: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0x85F5) 85F1: 1B ; COM_1B_set_var_to_noun2() 85F2: 32 ; COM_32_move_noun1_to_var_object() 85F3: B5 ; FN_B5_PRINT_BY_YOUR_COMMAND 85F4: 0C ; COM_0C_fail() ; ; end group_AND at 0x85EF 85F5: 13 ; COM_13_process_phrase_by_room() 85F6: 14 ; COM_14_reverse_status next command 85F7: 0C ; COM_0C_fail() ; ; end group_OR at 0x85DB ; ; end case 85F8: 4D 23 ; case COM_0A_is_input_phrase("FILL ......O. WITH u......."), length=0x0023 85FA: 0E 21 ; COM_0E_group_OR length=0x0021 (to 0x861D) 85FC: 0D 05 ; COM_0D_group_AND length=0x0005 (to 0x8603) 85FE: 1B ; COM_1B_set_var_to_noun2() 85FF: 14 ; COM_14_reverse_status next command 8600: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) 8602: B8 ; FN_B8_PRINT_GARBAGE_GAMES ; ; end group_AND at 0x85FC 8603: 14 ; COM_14_reverse_status next command 8604: BF ; FN_BF_IS_LIQUID_REACHABLE 8605: 0D 05 ; COM_0D_group_AND length=0x0005 (to 0x860C) 8607: 1A ; COM_1A_set_var_to_noun1() 8608: 14 ; COM_14_reverse_status next command 8609: 15 02 ; COM_15_is_var_attributes(value=......H.(Holder)) 860B: B6 ; FN_B6_PRINT_TWO_SAME_SPACE ; ; end group_AND at 0x8605 860C: B7 ; FN_B7_PRINT_HAVE_TO_OPEN_var 860D: 0D 05 ; COM_0D_group_AND length=0x0005 (to 0x8614) 860F: 1B ; COM_1B_set_var_to_noun2() 8610: 14 ; COM_14_reverse_status next command 8611: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) 8613: B8 ; FN_B8_PRINT_GARBAGE_GAMES ; ; end group_AND at 0x860D 8614: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0x861A) 8616: 1A ; COM_1A_set_var_to_noun1() 8617: 31 ; COM_31_move_noun2_to_var_object() 8618: B5 ; FN_B5_PRINT_BY_YOUR_COMMAND 8619: 0C ; COM_0C_fail() ; ; end group_AND at 0x8614 861A: 13 ; COM_13_process_phrase_by_room() 861B: 14 ; COM_14_reverse_status next command 861C: 0C ; COM_0C_fail() ; ; end group_OR at 0x85FA ; ; end case 861D: 4E 3F ; case COM_0A_is_input_phrase("POUR u....... * *"), length=0x003F 861F: 0E 3D ; COM_0E_group_OR length=0x003D (to 0x865E) 8621: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x862D) 8623: 1A ; COM_1A_set_var_to_noun1() 8624: 14 ; COM_14_reverse_status next command 8625: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) 8627: 04 03 ; COM_04_print_message length=0x0003 (to 0x862C) 8629: 81 A6 52 ; ; POOR ; 862C: 11 ; COM_11_print_noun1() ; ; end group_AND at 0x8621 862D: 14 ; COM_14_reverse_status next command 862E: BF ; FN_BF_IS_LIQUID_REACHABLE 862F: 0D 10 ; COM_0D_group_AND length=0x0010 (to 0x8641) 8631: 09 00 ; COM_09_is_noun2(obj=nothing) 8633: 1C 00 ; COM_1C_set_var_object(obj=nothing) 8635: 32 ; COM_32_move_noun1_to_var_object() 8636: A8 ; FN_A8_PRINT_noun1 8637: 04 08 ; COM_04_print_message length=0x0008 (to 0x8641) 8639: 4B 7B 09 9A 81 15 7F 98 ; ; IS NOW GONE. ; ; ; end group_AND at 0x862F 8641: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x8655) 8643: 1B ; COM_1B_set_var_to_noun2() 8644: 14 ; COM_14_reverse_status next command 8645: 15 02 ; COM_15_is_var_attributes(value=......H.(Holder)) 8647: A9 ; FN_A9_PRINT_noun2 8648: 04 08 ; COM_04_print_message length=0x0008 (to 0x8652) 864A: 4B 7B 09 9A FB 14 F7 93 ; ; IS NOW DAMP. ; 8652: 1C 00 ; COM_1C_set_var_object(obj=nothing) 8654: 32 ; COM_32_move_noun1_to_var_object() ; ; end group_AND at 0x8641 8655: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0x865B) 8657: 1B ; COM_1B_set_var_to_noun2() 8658: 32 ; COM_32_move_noun1_to_var_object() 8659: B5 ; FN_B5_PRINT_BY_YOUR_COMMAND 865A: 0C ; COM_0C_fail() ; ; end group_AND at 0x8655 865B: 13 ; COM_13_process_phrase_by_room() 865C: 14 ; COM_14_reverse_status next command 865D: 0C ; COM_0C_fail() ; ; end group_OR at 0x861F ; ; end case ;; ;; Drinking things 865E: 4F 52 ; case COM_0A_is_input_phrase("DRINK u....... * *"), length=0x0052 8660: 0E 50 ; COM_0E_group_OR length=0x0050 (to 0x86B2) 8662: 0D 32 ; COM_0D_group_AND length=0x0032 (to 0x8696) 8664: 1A ; COM_1A_set_var_to_noun1() 8665: 14 ; COM_14_reverse_status next command 8666: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid));; ??Drinkable?? 8668: 04 2A ; COM_04_print_message length=0x002A (to 0x8694) 866A: C7 DE AF 23 5B 17 AE 54 BF 14 10 BC F3 A0 4E 72 867A: 83 64 D5 B5 DD 78 95 14 51 18 59 C2 2E A1 04 58 868A: 4B 5E 9B 64 1B A1 EB 5B 4B 99 ; ; YOU'RE SICK, BUT NOT HALF AS SICK AS YOU WOULD BE IF YOU ; DRANK ; 8694: A8 ; FN_A8_PRINT_noun1 8695: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8662 8696: 14 ; COM_14_reverse_status next command 8697: BF ; FN_BF_IS_LIQUID_REACHABLE 8698: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0x869E) 869A: 13 ; COM_13_process_phrase_by_room() 869B: 1C 00 ; COM_1C_set_var_object(obj=nothing) 869D: 32 ; COM_32_move_noun1_to_var_object() ; ; end group_AND at 0x8698 869E: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x86B2) 86A0: 1C 00 ; COM_1C_set_var_object(obj=nothing) 86A2: 32 ; COM_32_move_noun1_to_var_object() 86A3: 04 0D ; COM_04_print_message length=0x000D (to 0x86B2) 86A5: C7 DE 4F 15 33 61 68 B1 75 B1 E6 72 2E ; ; YOU FEEL REFRESHED. ; ; ; end group_AND at 0x869E ; ; end group_OR at 0x8660 ; ; end case 86B2: 4B 43 ; case COM_0A_is_input_phrase("DROP ..C..... ON .......L"), length=0x0043 86B4: 0E 41 ; COM_0E_group_OR length=0x0041 (to 0x86F7) 86B6: 13 ; COM_13_process_phrase_by_room() 86B7: 0D 06 ; COM_0D_group_AND length=0x0006 (to 0x86BF) 86B9: 1A ; COM_1A_set_var_to_noun1() 86BA: 14 ; COM_14_reverse_status next command 86BB: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) 86BD: 14 ; COM_14_reverse_status next command 86BE: 8F ; FN_8F_GET_OBJECT ; ; end group_AND at 0x86B7 86BF: 0D 16 ; COM_0D_group_AND length=0x0016 (to 0x86D7) 86C1: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) 86C3: 0E 12 ; COM_0E_group_OR length=0x0012 (to 0x86D7) 86C5: 14 ; COM_14_reverse_status next command 86C6: BF ; FN_BF_IS_LIQUID_REACHABLE 86C7: 0D 0E ; COM_0D_group_AND length=0x000E (to 0x86D7) 86C9: A9 ; FN_A9_PRINT_noun2 86CA: 04 08 ; COM_04_print_message length=0x0008 (to 0x86D4) 86CC: 4B 7B 09 9A F7 17 9B C1 ; ; IS NOW WET. ; 86D4: 1C 00 ; COM_1C_set_var_object(obj=nothing) 86D6: 32 ; COM_32_move_noun1_to_var_object() ; ; end group_AND at 0x86C7 ; ; end group_OR at 0x86C3 ; ; end group_AND at 0x86BF 86D7: 0D 16 ; COM_0D_group_AND length=0x0016 (to 0x86EF) 86D9: 1B ; COM_1B_set_var_to_noun2() 86DA: 14 ; COM_14_reverse_status next command 86DB: 15 01 ; COM_15_is_var_attributes(value=.......S(Surface)) 86DD: 04 10 ; COM_04_print_message length=0x0010 (to 0x86EF) 86DF: 5F BE 5D B1 D0 B5 F3 A0 99 61 7A C4 39 17 FF 9F ; ; THERE'S NOT ENOUGH ROOM. ; ; ; end group_AND at 0x86D7 86EF: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0x86F5) 86F1: 1B ; COM_1B_set_var_to_noun2() 86F2: 32 ; COM_32_move_noun1_to_var_object() 86F3: B5 ; FN_B5_PRINT_BY_YOUR_COMMAND 86F4: 0C ; COM_0C_fail() ; ; end group_AND at 0x86EF 86F5: 14 ; COM_14_reverse_status next command 86F6: 0C ; COM_0C_fail() ; ; end group_OR at 0x86B4 ; ; end case 86F7: 19 80 EB ; case COM_0A_is_input_phrase("DIAGNO * * *"), length=0x00EB 86FA: 0D 80 E8 ; COM_0D_group_AND length=0x00E8 (to 0x87E5) 86FD: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 86FF: 0B 80 E3 22 ; COM_0B_switch length=0x00E3 (to 0x87E6), function=COM_22_is_less_equal_health(points) 8703: 05 24 ; case COM_22_is_less_equal_health(points=5), length=0x0024 8705: 04 22 ; COM_04_print_message length=0x0022 (to 0x8729) 8707: C7 DE 94 14 51 5E 9B 96 34 A1 3B 16 F3 B9 E9 8B 8717: 5B BB A3 48 63 BE AB 98 47 55 B3 8B 4E 86 1B 8A 8727: 19 A1 ; ; YOU ARE ON YOUR LAST LEGS. ANYTHING COULD KILL YOU! ; ; ; end case 8729: 14 1C ; case COM_22_is_less_equal_health(points=20), length=0x001C 872B: 04 1A ; COM_04_print_message length=0x001A (to 0x8747) 872D: 0F A0 71 16 5B B1 41 6E 0B 58 3F 99 7B B4 8E 48 873D: 51 18 A8 C2 4A 5E F3 46 71 7B ; ; ONE MORE GOOD INJURY AND YOU'VE HAD IT! ; ; ; end case 8747: 23 22 ; case COM_22_is_less_equal_health(points=35), length=0x0022 8749: 04 20 ; COM_04_print_message length=0x0020 (to 0x876B) 874B: C7 DE 94 14 48 5E 2E 60 91 7A 17 17 7F 7B CE 15 875B: 9B 8F 52 77 75 B1 B3 55 5B 4D 17 53 91 BE 2B 96 ; ; YOU ARE FEELING QUITE ILL. I PRESCRIBE CAUTION! ; ; ; end case 876B: 33 32 ; case COM_22_is_less_equal_health(points=51), length=0x0032 876D: 04 30 ; COM_04_print_message length=0x0030 (to 0x879F) 876F: C7 DE 94 14 50 5E F3 A0 67 66 90 8C D7 6A 16 A3 877F: D2 9C 47 49 51 18 55 C2 87 74 B3 8B 4D BD 44 5E 878F: 8E 62 23 62 14 53 51 5E 9B 64 34 A1 AE B7 1B 6A ; ; YOU ARE NOT FEELING UP TO PAR. YOU SHOULD TAKE BETTER CARE ; OF YOURSELF. ; ; ; end case 879F: 44 24 ; case COM_22_is_less_equal_health(points=68), length=0x0024 87A1: 04 22 ; COM_04_print_message length=0x0022 (to 0x87C5) 87A3: C7 DE AF 23 4F 15 43 61 AB 98 EF A6 53 C0 81 15 87B3: 73 9E 8E C5 23 62 5F BE DB 14 27 B1 66 94 8D 48 87C3: 6F 62 ; ; YOU'RE FEELING PRETTY GOOD UNDER THE CIRCUMSTANCES. ; ; ; end case 87C5: FF 1E ; case COM_22_is_less_equal_health(points=255), length=0x001E 87C7: 04 1C ; COM_04_print_message length=0x001C (to 0x87E5) 87C9: C7 DE 4F 15 33 61 4B 49 41 6E 03 58 D6 B5 DB 72 87D9: 5B 59 51 18 59 C2 2F 62 B9 14 E7 B2 ; ; YOU FEEL AS GOOD AS THE DAY YOU WERE BORN. ; ; ; end case ; ; end decode_switch at 0x86FF ; ; end group_AND at 0x86FA ; ; end case 87E5: 52 04 ; case COM_0A_is_input_phrase("START u....... * *"), length=0x0004 87E7: 0E 02 ; COM_0E_group_OR length=0x0002 (to 0x87EB) 87E9: 13 ; COM_13_process_phrase_by_room() 87EA: B8 ; FN_B8_PRINT_GARBAGE_GAMES ; ; end group_OR at 0x87E7 ; ; end case 87EB: 56 11 ; case COM_0A_is_input_phrase("DIG u....... WITH u......."), length=0x0011 87ED: 0E 0F ; COM_0E_group_OR length=0x000F (to 0x87FE) 87EF: 13 ; COM_13_process_phrase_by_room() 87F0: 04 0C ; COM_04_print_message length=0x000C (to 0x87FE) 87F2: 46 77 6B 79 73 7B 81 BF 0F EE 81 48 ; ; I DIG IT TOO, MAN! ; ; ; end group_OR at 0x87ED ; ; end case 87FE: 50 11 ; case COM_0A_is_input_phrase("TURN * ON u......."), length=0x0011 8800: 0E 0F ; COM_0E_group_OR length=0x000F (to 0x8811) 8802: 13 ; COM_13_process_phrase_by_room() 8803: 04 0C ; COM_04_print_message length=0x000C (to 0x8811) 8805: C7 DE D3 14 E6 96 09 15 82 17 71 49 ; ; YOU CAN'T DO THAT! ; ; ; end group_OR at 0x8800 ; ; end case 8811: 51 2B ; case COM_0A_is_input_phrase("TURN * OFF u......."), length=0x002B 8813: 0E 29 ; COM_0E_group_OR length=0x0029 (to 0x883E) 8815: 13 ; COM_13_process_phrase_by_room() 8816: 04 26 ; COM_04_print_message length=0x0026 (to 0x883E) 8818: 68 4D AF A0 51 18 45 C2 83 48 74 C0 95 96 E7 9F 8828: 63 BE AB 98 D0 9E 0B EE 0F BC 66 C6 AF 14 8F 17 8838: CF B2 11 58 1B 9C ; ; BEFORE YOU CAN TURN SOMETHING OFF, IT MUST BE TURNED ON. ; ; ; end group_OR at 0x8813 ; ; end case 883E: 53 0F ; case COM_0A_is_input_phrase("STRIKE u....... * *"), length=0x000F 8840: 0E 0D ; COM_0E_group_OR length=0x000D (to 0x884F) 8842: 13 ; COM_13_process_phrase_by_room() 8843: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x884F) 8845: 04 08 ; COM_04_print_message length=0x0008 (to 0x884F) 8847: 57 C6 93 13 3B C0 8D 54 ; ; USE 'ATTACK' ; ; ; end group_AND at 0x8843 ; ; end group_OR at 0x8840 ; ; end case 884F: 58 0D ; case COM_0A_is_input_phrase("POINT u....... * *"), length=0x000D 8851: 0E 0B ; COM_0E_group_OR length=0x000B (to 0x885E) 8853: 13 ; COM_13_process_phrase_by_room() 8854: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0x885E) 8856: 04 06 ; COM_04_print_message length=0x0006 (to 0x885E) 8858: 55 77 1B 60 97 7B ; ; I SEE IT. ; ; ; end group_AND at 0x8854 ; ; end group_OR at 0x8851 ; ; end case 885E: 07 1A ; case COM_0A_is_input_phrase("INVENT * * *"), length=0x001A 8860: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0x887A) 8862: 04 15 ; COM_04_print_message length=0x0015 (to 0x8879) 8864: C7 DE 94 14 45 5E 3C 49 D0 DD D6 6A DB 72 FE 67 8874: 89 8D 91 7A 3A ; ; YOU ARE CARRYING THE FOLLOWING: ; 8879: 06 ; COM_06_print_inventory() ; ; end group_AND at 0x8860 ; ; end case ; ; end decode_switch at 0x7D95 ; ; end group_OR at 0x7D51
Object Data
Some of the object scripts reference room numbers. Room numbers are unique to the disk section but NOT the game in general. There are multiple room 85, for instance.
If an object has no formal description, it won't be shown in a room. But the player could still interact with it even if it doesn't show up. The player just needs to know where to look! Check and document these ghosts.
Objects have a room number and a section number.
# Room 85 could be 1, 6, 7, 9 # Room 8E could be 2, 6, or 8 # Room 90 could be 3, 6, or 8 # Room 91 could be 3, 6, or 8 # Room 92 could be 3, 6, or 8 # Room 99 could be 4, 5, or 7 # Room 9A could be 4, 5, or 8 # Room 9C could be 4, 5, or 8 # Room 9D could be 4, 5, or 8 # Room C3 only 5 # Room DB could be 2 or 5 # Room E8 only 5
; The Arnstein object structure has three bytes in PYRAMID, RAAKATU, BEDLAM, and XENOS. The first ; byte is the object's location. Room numbers start at 128, and if the location has the upper bit ; set, then the object is in a room. Otherwise, the location is an owning object number. ; ; In all the games, the 3rd byte is a bitfield of attributes for things like: can the object be ; carried, is the object open, is the object a living creature, and so on. These bits have the ; same meaning in all games. ; ; In PYRAMID and RAAKATU, the 2nd byte is the score value for the object. In BEDLAM, the 2nd ; byte is not used (always 00). ; ; In XENOS, the 2nd byte is two nibbles of information. The upper nibble is four more bits of ; attributes. The lower nibble is which disk section (1-9) the object is in or 0 if being ; held. The room number is not unique, and the "where am I" tuple must include the disk number. ; Why isn't the room number unique? Because there are more than 128 rooms. Some numbers have to ; be reused. ; ; !! Talk about using dynamite in the wrong room etc but do that in the "is_located" function comments ; ; The upper nibble (extended attributes) is checked by COM_2E. The regular attributes are ; checked by COM_15. Here is what they mean: ; ; GLCQ---- ?WPAORHS ; ; G=1 GLASS if transparent (vial, bottle, gun cabinet) ; L=1 LOCKED if object is locked ; C=1 CLOSED if object is closed ; Q=1 LIQUID if object is a liquid (can be poured/drunk) ; ; Upper bit ?? ; W=1 WEAPON if object is considered a weapon (gun, crowbar, shovel) ; P=1 PORTABLE if object is portable (gettable). Gettable objects have defined weight. ; A=1 ALIVE if object is a living creature (prospector, snake, alien) ; O=1 OPENABLE if can be opened (doors, drawers, etc) ; R=1 READABLE if object is readable (signs and such) ; H=1 HOLDER if object can hold things (drawers, dressers, safe, etc) ; S=1 SURFACE if object is a surface you can place other objects on (desk, table, etc) ObjectData: 887A: 00 AB 32 ; List_ID=0x00, length=0x2B32 (to 0xB3AF) ; -------------- Object OBJ_01_PLAYER -------------- 887D: 01 80 87 ; Word_num=0x01 -player-, length=0x0087 (to 0x8907) 8880: 80 01 80 ; Location=0x80, disk_section=1, ext_attr=....----(), attributes=?.......(??) ; ;; When the player dies, print the percent completed. Print a note if the ;; player has the snake venom. 8883: 0A 35 ; Section=0A:SECTION_0A_UPON_DEATH, length=0x0035 (to 0x88BA) 8885: 0D 33 ; COM_0D_group_AND length=0x0033 (to 0x88BA) 8887: 0E 24 ; COM_0E_group_OR length=0x0024 (to 0x88AD) 8889: 0D 20 ; COM_0D_group_AND length=0x0020 (to 0x88AB) 888B: 03 01 35 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_35_SNAKE_VENOM) 888E: 1F 1B ; COM_1F_print2 length=0x001B (to 0x88AB) 8890: 5F BE 60 17 17 48 CF 17 FF 99 F3 17 C7 B5 4C D9 88A0: 67 61 FB 8E 7B A6 40 B9 35 A1 21 ; ; THE SNAKE VENOM WAS EXTREMELY POISONOUS! ; ; ; end group_AND at 0x8889 88AB: 14 ; COM_14_reverse_status next command 88AC: 0C ; COM_0C_fail() ; ; end group_OR at 0x8887 88AD: 1F 09 ; COM_1F_print2 length=0x0009 (to 0x88B8) 88AF: C7 DE 94 14 46 5E 86 5F 2E ; ; YOU ARE DEAD. ; 88B8: C9 ; FN_C9_PRINT_COMPLETED_PERCENT 88B9: 24 ; COM_24_exit_program() ; ; end group_AND at 0x8885 ; 88BA: 08 43 ; Section=08:SECTION_08_EVERY_TURN, length=0x0043 (to 0x88FF) 88BC: 0E 41 ; COM_0E_group_OR length=0x0041 (to 0x88FF) 88BE: 0D 1E ; COM_0D_group_AND length=0x001E (to 0x88DE) 88C0: 03 39 4B ; COM_03_is_located(owner=OBJ_39_DYNAMITE, obj=OBJ_4B_LIT_DYNAMITE_FUSE) 88C3: 14 ; COM_14_reverse_status next command 88C4: 01 39 ; COM_01_is_in_pack_or_room(obj=OBJ_39_DYNAMITE) 88C6: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x88CE) 88C8: 03 9C 01 ; COM_03_is_located(owner=RM_1_9C_??, obj=OBJ_01_PLAYER) 88CB: 03 99 01 ; COM_03_is_located(owner=RM_1_99_??, obj=OBJ_01_PLAYER) ; ; end group_OR at 0x88C6 88CE: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x88D6) 88D0: 03 9A 39 ; COM_03_is_located(owner=RM_1_9A_??, obj=OBJ_39_DYNAMITE) 88D3: 03 9D 39 ; COM_03_is_located(owner=RM_1_9D_??, obj=OBJ_39_DYNAMITE) ; ; end group_OR at 0x88CE 88D6: 1F 06 ; COM_1F_print2 length=0x0006 (to 0x88DE) 88D8: 01 4F 41 A0 D9 9F ; ; BOOOOOOM! ; ; ; end group_AND at 0x88BE 88DE: 0D 1F ; COM_0D_group_AND length=0x001F (to 0x88FF) 88E0: 03 39 4B ; COM_03_is_located(owner=OBJ_39_DYNAMITE, obj=OBJ_4B_LIT_DYNAMITE_FUSE) 88E3: 14 ; COM_14_reverse_status next command 88E4: 01 39 ; COM_01_is_in_pack_or_room(obj=OBJ_39_DYNAMITE) 88E6: 1F 17 ; COM_1F_print2 length=0x0017 (to 0x88FF) 88E8: 5F BE 13 15 CF 97 7F 7B 77 16 F3 B9 58 72 44 5E 88F8: 30 60 7B 14 66 5C 21 ; ; THE DYNAMITE MUST HAVE BEEN A DUD! ; ; ; end group_AND at 0x88DE ; ; end group_OR at 0x88BC ; 88FF: 02 02 ; Section=02:SECTION_02_SHORT_NAME, length=0x0002 (to 0x8903) ; YOU 8901: C7 DE ; 8903: 09 02 ; Section=09:SECTION_09_HIT_POINTS, length=0x0002 (to 0x8907) 8905: 46 46 ; max_hit_points=70 current_hit_points=70 ; -------------- Object OBJ_02_DOOR_GAS_STATION -------------- 8907: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8911) 8909: 83 01 88 ; Location=0x83, disk_section=1, ext_attr=....----(), attributes=?...O...(??,Openable) ; 890C: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8911) ; DOOR 890E: 81 5B 52 ; -------------- Object OBJ_03_DOOR_FRONT_OF_STATION -------------- 8911: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x891B) 8913: 82 21 88 ; Location=0x82, disk_section=1, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 8916: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x891B) ; DOOR 8918: 81 5B 52 ; -------------- Object OBJ_04_DOOR_EAST_OF_STATION -------------- 891B: 10 2E ; Word_num=0x10 DOOR, length=0x002E (to 0x894B) 891D: 88 61 8C ; Location=0x88, disk_section=1, ext_attr=.LC.----(Locked,Closed), attributes=?...OR..(??,Openable,Readable) ; 8920: 07 24 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0024 (to 0x8946) 8922: 0E 22 ; COM_0E_group_OR length=0x0022 (to 0x8946) 8924: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8930) 8926: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x892C) 8928: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 892A: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8926 892C: 14 ; COM_14_reverse_status next command 892D: 09 1C ; COM_09_is_noun2(obj=OBJ_1C_SKELETON_KEY) 892F: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x8924 8930: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0x8946) 8932: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8934: 04 10 ; COM_04_print_message length=0x0010 (to 0x8946) 8936: 73 7B 4B 7B EB 99 80 8D B4 6C 3F 16 44 6D FF 8B ; ; IT IS NO LONGER LEGIBLE. ; ; ; end group_AND at 0x8930 ; ; end group_OR at 0x8922 ; 8946: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x894B) ; DOOR 8948: 81 5B 52 ; -------------- Object OBJ_05_DOOR_RESTROOM -------------- 894B: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8955) 894D: DA 01 88 ; Location=0xDA, disk_section=1, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8950: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8955) ; DOOR 8952: 81 5B 52 ; -------------- Object OBJ_06_DOOR_MAIN_STREET_WEST -------------- 8955: 10 2C ; Word_num=0x10 DOOR, length=0x002C (to 0x8983) 8957: 8D 22 88 ; Location=0x8D, disk_section=2, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 895A: 03 19 ; Section=03:SECTION_03_DESCRIPTION, length=0x0019 (to 0x8975) 895C: 04 17 ; COM_04_print_message length=0x0017 (to 0x8975) 895E: 7B BA BB 98 AB 98 81 5B 8B B3 E3 8B 16 58 D6 9C 896E: DB 72 0E B7 40 A0 2E ; ; SWINGING DOORS LEAD TO THE SALOON. ; ; 8975: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x8979) 8977: 41 ; SALOON 8978: 46 ; SWINGI ; 8979: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0x8983) ; SALOON DOOR 897B: 0E B7 40 A0 09 15 A3 A0 ; -------------- Object OBJ_07_DOOR_SALOON -------------- 8983: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x898D) 8985: A2 02 88 ; Location=0xA2, disk_section=2, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8988: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x898D) ; DOOR 898A: 81 5B 52 ; -------------- Object OBJ_08_DOOR_MAIN_STREET_WEST -------------- 898D: 10 41 ; Word_num=0x10 DOOR, length=0x0041 (to 0x89D0) 898F: 8D 62 88 ; Location=0x8D, disk_section=2, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; 8992: 03 1B ; Section=03:SECTION_03_DESCRIPTION, length=0x001B (to 0x89AF) 8994: 04 19 ; COM_04_print_message length=0x0019 (to 0x89AF) 8996: 46 45 44 A0 3F 16 0D 47 89 17 82 17 55 5E F4 72 89A6: 50 79 CB 23 D0 9E D7 78 2E ; ; A DOOR LEADS TO THE SHERIFF'S OFFICE. ; ; 89AF: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x89BD) 89B1: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x89BD) 89B3: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x89B9) 89B5: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 89B7: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x89B3 89B9: 14 ; COM_14_reverse_status next command 89BA: 09 1B ; COM_09_is_noun2(obj=OBJ_1B_BRASS_KEY_SHERIFF) 89BC: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x89B1 ; 89BD: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x89C0) 89BF: 42 ; SHERIF ; 89C0: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0x89D0) ; SHERIFF'S OFFICE DOOR 89C2: 1F B8 08 B2 E5 64 B8 16 05 67 46 5E 44 A0 ; -------------- Object OBJ_09_DOOR_SHERIFFS_OFFICE -------------- 89D0: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x89DA) 89D2: 8E 02 88 ; Location=0x8E, disk_section=2, ext_attr=....----(), attributes=?...O...(??,Openable) ; 89D5: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x89DA) ; DOOR 89D7: 81 5B 52 ; -------------- Object OBJ_0A_DOOR_HARDWARE_SOUTH -------------- 89DA: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x89E4) 89DC: A6 03 88 ; Location=0xA6, disk_section=3, ext_attr=....----(), attributes=?...O...(??,Openable) ; 89DF: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x89E4) ; DOOR 89E1: 81 5B 52 ; -------------- Object OBJ_0B_DOOR_TOWN_CENTER_SLIMS -------------- 89E4: 10 34 ; Word_num=0x10 DOOR, length=0x0034 (to 0x8A1A) 89E6: 93 23 88 ; Location=0x93, disk_section=3, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 89E9: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x89FD) 89EB: 04 10 ; COM_04_print_message length=0x0010 (to 0x89FD) 89ED: 46 45 44 A0 3F 16 0D 47 89 17 5E 17 5D 7A 5B BB ; ; A DOOR LEADS TO SLIM'S. ; ; 89FD: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x8A0B) 89FF: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8A0B) 8A01: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8A07) 8A03: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8A05: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8A01 8A07: 14 ; COM_14_reverse_status next command 8A08: 09 1E ; COM_09_is_noun2(obj=OBJ_1E_RED_KEY_SLIMS) 8A0A: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x89FF ; 8A0B: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8A0E) 8A0D: 43 ; SLIM'S ; 8A0E: 02 0A ; Section=02:SECTION_02_SHORT_NAME, length=0x000A (to 0x8A1A) ; DOOR TO SLIM'S 8A10: 81 5B 96 AF D5 9C 8F 8C CB 23 ; -------------- Object OBJ_0C_DOOR_TOWN_CENTER_BOBS -------------- 8A1A: 10 24 ; Word_num=0x10 DOOR, length=0x0024 (to 0x8A40) 8A1C: 93 23 88 ; Location=0x93, disk_section=3, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 8A1F: 03 11 ; Section=03:SECTION_03_DESCRIPTION, length=0x0011 (to 0x8A32) 8A21: 04 0F ; COM_04_print_message length=0x000F (to 0x8A32) 8A23: 46 45 44 A0 3F 16 0D 47 89 17 B9 14 E5 4B 2E ; ; A DOOR LEADS TO BOB'S. ; ; 8A32: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8A35) 8A34: 44 ; BOB'S ; 8A35: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x8A40) ; DOOR TO BOB'S 8A37: 81 5B 96 AF C4 9C 25 9E 53 ; -------------- Object OBJ_0D_DOOR_SLIMS_GROCERY -------------- 8A40: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8A4A) 8A42: 94 03 88 ; Location=0x94, disk_section=3, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8A45: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8A4A) ; DOOR 8A47: 81 5B 52 ; -------------- Object OBJ_0E_DOOR_MAIN_STREET_EAST_HOTEL -------------- 8A4A: 10 32 ; Word_num=0x10 DOOR, length=0x0032 (to 0x8A7E) 8A4C: 99 24 88 ; Location=0x99, disk_section=4, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 8A4F: 03 20 ; Section=03:SECTION_03_DESCRIPTION, length=0x0020 (to 0x8A71) 8A51: 04 1E ; COM_04_print_message length=0x001E (to 0x8A71) 8A53: 5F BE 5B B1 2F 49 09 15 B6 C3 46 5E 44 A0 CE B5 8A63: 86 5F 91 7A 89 17 82 17 4A 5E FF A0 9B 8F ; ; THERE ARE DOUBLE DOORS LEADING TO THE HOTEL. ; ; 8A71: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x8A75) 8A73: 45 ; DOUBLE 8A74: 47 ; HOTEL ; 8A75: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x8A7E) ; HOTEL DOOR 8A77: 86 74 33 61 81 5B 52 ; -------------- Object OBJ_0F_DOOR_HOTEL_LOBBY -------------- 8A7E: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8A88) 8A80: AA 04 88 ; Location=0xAA, disk_section=4, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8A83: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8A88) ; DOOR 8A85: 81 5B 52 ; -------------- Object OBJ_10_DOOR_MAIN_STREET_EAST_BANK -------------- 8A88: 10 39 ; Word_num=0x10 DOOR, length=0x0039 (to 0x8AC3) 8A8A: 99 64 88 ; Location=0x99, disk_section=4, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; 8A8D: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0x8A97) ; MASSIVE DOOR 8A8F: 95 91 58 B8 46 5E 44 A0 ; 8A97: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x8AA5) 8A99: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8AA5) 8A9B: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8AA1) 8A9D: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8A9F: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8A9B 8AA1: 14 ; COM_14_reverse_status next command 8AA2: 09 1D ; COM_09_is_noun2(obj=OBJ_1D_STEEL_KEY_BANK) 8AA4: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x8A99 ; 8AA5: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x8AA9) 8AA7: 3F ; MASSIV 8AA8: 40 ; BANK ; 8AA9: 03 18 ; Section=03:SECTION_03_DESCRIPTION, length=0x0018 (to 0x8AC3) 8AAB: 04 16 ; COM_04_print_message length=0x0016 (to 0x8AC3) 8AAD: 4F 45 65 49 CF 7B 09 15 A3 A0 E3 8B 0B 5C 6B BF 8ABD: 5F BE AB 14 6F 99 ; ; A MASSIVE DOOR LEADS TO THE BANK. ; ; -------------- Object OBJ_11_DOOR_BANK -------------- 8AC3: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8ACD) 8AC5: 9A 04 88 ; Location=0x9A, disk_section=4, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8AC8: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8ACD) ; DOOR 8ACA: 81 5B 52 ; -------------- Object OBJ_12_DOOR -------------- 8ACD: 10 03 ; Word_num=0x10 DOOR, length=0x0003 (to 0x8AD2) 8ACF: 00 00 00 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=........() ; -------------- Object OBJ_13_DOOR -------------- 8AD2: 10 03 ; Word_num=0x10 DOOR, length=0x0003 (to 0x8AD7) 8AD4: 00 00 00 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=........() ; -------------- Object OBJ_14_DOOR_COVERED_SHELTER -------------- 8AD7: 10 1D ; Word_num=0x10 DOOR, length=0x001D (to 0x8AF6) 8AD9: 00 22 88 ; Location=0x00, disk_section=2, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 8ADC: 03 13 ; Section=03:SECTION_03_DESCRIPTION, length=0x0013 (to 0x8AF1) 8ADE: 04 11 ; COM_04_print_message length=0x0011 (to 0x8AF1) 8AE0: 46 45 44 A0 3F 16 0D 47 B0 17 F4 59 B9 6E 8E C5 8AF0: 2E ; ; A DOOR LEADS UNDERGROUND. ; ; 8AF1: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8AF6) ; DOOR 8AF3: 81 5B 52 ; -------------- Object OBJ_15_DOOR_SHELTER -------------- 8AF6: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8B00) 8AF8: DB 02 88 ; Location=0xDB, disk_section=2, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8AFB: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8B00) ; DOOR 8AFD: 81 5B 52 ; -------------- Object OBJ_16_RED_DOOR_HALLWAY -------------- 8B00: 10 30 ; Word_num=0x10 DOOR, length=0x0030 (to 0x8B32) 8B02: DD 64 88 ; Location=0xDD, disk_section=4, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; 8B05: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x8B19) 8B07: 04 10 ; COM_04_print_message length=0x0010 (to 0x8B19) 8B09: 54 45 F3 5F 81 5B 8E AF 86 5F D0 B5 BE A0 9B 76 ; ; A RED DOOR LEADS NORTH. ; ; 8B19: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x8B27) 8B1B: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8B27) 8B1D: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8B23) 8B1F: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8B21: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8B1D 8B23: 14 ; COM_14_reverse_status next command 8B24: 09 1A ; COM_09_is_noun2(obj=OBJ_1A_MASTER_KEY) 8B26: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x8B1B ; 8B27: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8B2A) 8B29: 13 ; RED ; 8B2A: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x8B32) ; RED DOOR 8B2C: 66 B1 09 15 A3 A0 ; -------------- Object OBJ_17_DOOR_NORTH_ROOM -------------- 8B32: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8B3C) 8B34: DE 04 88 ; Location=0xDE, disk_section=4, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8B37: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8B3C) ; DOOR 8B39: 81 5B 52 ; -------------- Object OBJ_18_BLUE_DOOR_HALLWAY -------------- 8B3C: 10 30 ; Word_num=0x10 DOOR, length=0x0030 (to 0x8B6E) 8B3E: DD 64 88 ; Location=0xDD, disk_section=4, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; 8B41: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x8B55) 8B43: 04 10 ; COM_04_print_message length=0x0010 (to 0x8B55) 8B45: 44 45 67 8E 09 15 A3 A0 E3 8B 0B 5C 47 B9 77 BE ; ; A BLUE DOOR LEADS SOUTH. ; ; 8B55: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8B58) 8B57: 0D ; BLUE ; 8B58: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x8B66) 8B5A: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8B66) 8B5C: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8B62) 8B5E: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8B60: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8B5C 8B62: 14 ; COM_14_reverse_status next command 8B63: 09 1A ; COM_09_is_noun2(obj=OBJ_1A_MASTER_KEY) 8B65: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x8B5A ; 8B66: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x8B6E) ; BLUE DOOR 8B68: 8F 4E 46 5E 44 A0 ; -------------- Object OBJ_19_DOOR_SOUTH_ROOM -------------- 8B6E: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x8B78) 8B70: DF 04 88 ; Location=0xDF, disk_section=4, ext_attr=....----(), attributes=?...O...(??,Openable) ; 8B73: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8B78) ; DOOR 8B75: 81 5B 52 ; -------------- Object OBJ_1A_MASTER_KEY -------------- 8B78: 16 3E ; Word_num=0x16 KEY, length=0x003E (to 0x8BB8) 8B7A: 47 00 A4 ; Location=0x47, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8B7D: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x8B93) 8B7F: 04 12 ; COM_04_print_message length=0x0012 (to 0x8B93) 8B81: 5F BE 5B B1 4B 7B 4F 45 66 49 23 62 BB 85 9F 15 8B91: 7F B1 ; ; THERE IS A MASTER KEY HERE. ; ; 8B93: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8B96) 8B95: 14 ; MASTER ; 8B96: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8B99) 8B98: 02 ; weight=2 ; 8B99: 07 14 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0014 (to 0x8BAF) 8B9B: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x8BAF) 8B9D: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8B9F: 04 0E ; COM_04_print_message length=0x000E (to 0x8BAF) 8BA1: C5 1A 1B 92 95 91 F4 BD 17 16 45 DB 5C A2 ; ; "ACME MASTER KEY CO." ; ; ; end group_AND at 0x8B9B ; 8BAF: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x8BB8) ; MASTER KEY 8BB1: 95 91 F4 BD 17 16 59 ; -------------- Object OBJ_1B_BRASS_KEY_SHERIFF -------------- 8BB8: 16 36 ; Word_num=0x16 KEY, length=0x0036 (to 0x8BF0) 8BBA: 48 00 A4 ; Location=0x48, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8BBD: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x8BD3) 8BBF: 04 12 ; COM_04_print_message length=0x0012 (to 0x8BD3) 8BC1: 5F BE 5B B1 4B 7B 44 45 D5 B0 CD B5 3B 63 F4 72 8BD1: DB 63 ; ; THERE IS A BRASS KEY HERE. ; ; 8BD3: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8BD6) 8BD5: 02 ; weight=2 ; 8BD6: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x8BDA) 8BD8: 15 ; BRASS 8BD9: 42 ; SHERIF ; 8BDA: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x8BE8) 8BDC: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8BE8) 8BDE: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8BE0: 04 06 ; COM_04_print_message length=0x0006 (to 0x8BE8) 8BE2: 9A 1D 33 62 84 66 ; ; "SHERIFF" ; ; ; end group_AND at 0x8BDC ; 8BE8: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x8BF0) ; BRASS KEY 8BEA: 6B 4F CB B9 BB 85 ; -------------- Object OBJ_1C_SKELETON_KEY -------------- 8BF0: 16 2B ; Word_num=0x16 KEY, length=0x002B (to 0x8C1D) 8BF2: 49 00 A0 ; Location=0x49, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 8BF5: 03 16 ; Section=03:SECTION_03_DESCRIPTION, length=0x0016 (to 0x8C0D) 8BF7: 04 14 ; COM_04_print_message length=0x0014 (to 0x8C0D) 8BF9: 5F BE 5B B1 4B 7B 55 45 AE 85 89 62 8D 96 3B 63 8C09: F4 72 DB 63 ; ; THERE IS A SKELETON KEY HERE. ; ; 8C0D: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8C10) 8C0F: 02 ; weight=2 ; 8C10: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8C13) 8C12: 17 ; SKELET ; 8C13: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0x8C1D) ; SKELETON KEY 8C15: 97 B8 F6 8B 03 A0 BB 85 ; -------------- Object OBJ_1D_STEEL_KEY_BANK -------------- 8C1D: 16 3A ; Word_num=0x16 KEY, length=0x003A (to 0x8C59) 8C1F: 21 00 A4 ; Location=0x21, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8C22: 03 16 ; Section=03:SECTION_03_DESCRIPTION, length=0x0016 (to 0x8C3A) 8C24: 04 14 ; COM_04_print_message length=0x0014 (to 0x8C3A) 8C26: 5F BE 5B B1 4B 7B 44 45 6B 79 FF B9 33 61 BB 85 8C36: 9F 15 7F B1 ; ; THERE IS A BIG STEEL KEY HERE. ; ; 8C3A: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8C3D) 8C3C: 02 ; weight=2 ; 8C3D: 01 03 ; Section=01:SECTION_01_ADJECTIVES, length=0x0003 (to 0x8C42) 8C3F: 40 ; BANK 8C40: 18 ; STEEL 8C41: 0E ; BIG ; 8C42: 07 0A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000A (to 0x8C4E) 8C44: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0x8C4E) 8C46: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8C48: 04 04 ; COM_04_print_message length=0x0004 (to 0x8C4E) 8C4A: EB 1A 4C 99 ; ; "BANK" ; ; ; end group_AND at 0x8C44 ; 8C4E: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x8C59) ; BIG STEEL KEY 8C50: 09 4E 66 17 2E 60 17 16 59 ; -------------- Object OBJ_1E_RED_KEY_SLIMS -------------- 8C59: 16 33 ; Word_num=0x16 KEY, length=0x0033 (to 0x8C8E) 8C5B: 21 00 A4 ; Location=0x21, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8C5E: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x8C72) 8C60: 04 10 ; COM_04_print_message length=0x0010 (to 0x8C72) 8C62: 5F BE 5B B1 4B 7B 54 45 F3 5F BB 85 9F 15 7F B1 ; ; THERE IS A RED KEY HERE. ; ; 8C72: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8C75) 8C74: 02 ; weight=2 ; 8C75: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x8C79) 8C77: 43 ; SLIM'S 8C78: 13 ; RED ; 8C79: 07 0C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000C (to 0x8C87) 8C7B: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8C87) 8C7D: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8C7F: 04 06 ; COM_04_print_message length=0x0006 (to 0x8C87) 8C81: 9E 1D 5D 7A E3 B5 ; ; "SLIM'S" ; ; ; end group_AND at 0x8C7B ; 8C87: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x8C8E) ; RED KEY 8C89: 66 B1 17 16 59 ; -------------- Object OBJ_1F_SMALL_KEY_CAB -------------- 8C8E: 16 34 ; Word_num=0x16 KEY, length=0x0034 (to 0x8CC4) 8C90: 21 00 A4 ; Location=0x21, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8C93: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x8CA9) 8C95: 04 12 ; COM_04_print_message length=0x0012 (to 0x8CA9) 8C97: 5F BE 5B B1 4B 7B 55 45 8E 91 0D 8A 3B 63 F4 72 8CA7: DB 63 ; ; THERE IS A SMALL KEY HERE. ; ; 8CA9: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8CAC) 8CAB: 02 ; weight=2 ; 8CAC: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x8CB0) 8CAE: 4B ; CAB 8CAF: 0F ; SMALL ; 8CB0: 07 0A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000A (to 0x8CBC) 8CB2: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0x8CBC) 8CB4: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8CB6: 04 04 ; COM_04_print_message length=0x0004 (to 0x8CBC) 8CB8: 13 1B A3 4B ; ; "CAB" ; ; ; end group_AND at 0x8CB2 ; 8CBC: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x8CC4) ; SMALL KEY 8CBE: E3 B8 F3 8C BB 85 ; -------------- Object OBJ_20_DESK -------------- 8CC4: 1A 32 ; Word_num=0x1A DESK, length=0x0032 (to 0x8CF8) 8CC6: 8E 02 81 ; Location=0x8E, disk_section=2, ext_attr=....----(), attributes=?......S(??,Surface) ; 8CC9: 07 28 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0028 (to 0x8CF3) 8CCB: 0D 26 ; COM_0D_group_AND length=0x0026 (to 0x8CF3) 8CCD: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0x8CD7) 8CCF: 0A 11 ; COM_0A_is_input_phrase(phrase=OPEN u....... * *) 8CD1: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) 8CD3: 0A 40 ; COM_0A_is_input_phrase(phrase=CLOSE ....A... * *) 8CD5: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) ; ; end group_OR at 0x8CCD 8CD7: 04 1A ; COM_04_print_message length=0x001A (to 0x8CF3) 8CD9: 03 C0 7B 14 EB 5B B4 D0 CE 13 76 A0 6B 16 C6 59 8CE9: B3 63 A3 A0 06 4F 7F BF DB 31 ; ; TRY A DRAWER <TOP, MIDDLE, OR BOTTOM>. ; ; ; end group_AND at 0x8CCB ; 8CF3: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x8CF8) ; DESK 8CF5: F5 59 4B ; -------------- Object OBJ_21_TOP_DRAWER -------------- 8CF8: 1B 54 ; Word_num=0x1B DRAWER, length=0x0054 (to 0x8D4E) 8CFA: 8E 62 8A ; Location=0x8E, disk_section=2, ext_attr=.LC.----(Locked,Closed), attributes=?...O.H.(??,Openable,Holder) ; 8CFD: 07 43 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0043 (to 0x8D42) 8CFF: 0E 41 ; COM_0E_group_OR length=0x0041 (to 0x8D42) 8D01: 0D 3E ; COM_0D_group_AND length=0x003E (to 0x8D41) 8D03: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8D09) 8D05: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8D07: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8D03 8D09: 1A ; COM_1A_set_var_to_noun1() 8D0A: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 8D0C: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) 8D0E: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) 8D10: 04 2B ; COM_04_print_message length=0x002B (to 0x8D3D) 8D12: 5F BE 5B B1 4B 7B 55 45 AF 55 DA 5F B8 16 89 17 8D22: CF B3 66 B1 67 16 4E BD 90 14 16 58 DB 72 EB 5B 8D32: B4 D0 BF 14 A6 B3 D1 B5 F0 A4 21 ; ; THERE IS A SCREECH OF TORTURED METAL AND THE DRAWER BURSTS ; OPEN! ; 8D3D: 1A ; COM_1A_set_var_to_noun1() 8D3E: 2A ; COM_2A_toggle_lock_VAR() 8D3F: A6 ; FN_A6_OPEN 8D40: 38 ; COM_38_bump_score() ; ; end group_AND at 0x8D01 8D41: BA ; FN_BA_OPEN_UNLOCK ; ; end group_OR at 0x8CFF ; 8D42: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8D45) 8D44: 28 ; TOP ; 8D45: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x8D4E) ; TOP DRAWER 8D47: 82 BF 0C 15 F7 49 52 ; -------------- Object OBJ_22_MIDDLE_DRAWER -------------- 8D4E: 1B 43 ; Word_num=0x1B DRAWER, length=0x0043 (to 0x8D93) 8D50: 8E 62 8A ; Location=0x8E, disk_section=2, ext_attr=.LC.----(Locked,Closed), attributes=?...O.H.(??,Openable,Holder) ; 8D53: 07 30 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0030 (to 0x8D85) 8D55: 0E 2E ; COM_0E_group_OR length=0x002E (to 0x8D85) 8D57: 0D 2B ; COM_0D_group_AND length=0x002B (to 0x8D84) 8D59: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8D5F) 8D5B: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8D5D: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8D59 8D5F: 1A ; COM_1A_set_var_to_noun1() 8D60: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) 8D62: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) 8D64: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) 8D66: 04 19 ; COM_04_print_message length=0x0019 (to 0x8D81) 8D68: 56 D1 03 71 E4 14 8D C5 73 76 5F BE 0C 15 F7 49 8D78: 88 AF 87 8C D1 B5 F0 A4 21 ; ; WITH A CRUNCH, THE DRAWER FLIES OPEN! ; 8D81: 1A ; COM_1A_set_var_to_noun1() 8D82: 2A ; COM_2A_toggle_lock_VAR() 8D83: A6 ; FN_A6_OPEN ; ; end group_AND at 0x8D57 8D84: BA ; FN_BA_OPEN_UNLOCK ; ; end group_OR at 0x8D55 ; 8D85: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8D88) 8D87: 3C ; MIDDLE ; 8D88: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x8D93) ; MIDDLE DRAWER 8D8A: C6 92 FF 5A 0C 15 F7 49 52 ; -------------- Object OBJ_23_BOTTOM_DRAWER -------------- 8D93: 1B 1C ; Word_num=0x1B DRAWER, length=0x001C (to 0x8DB1) 8D95: 8E 22 8A ; Location=0x8E, disk_section=2, ext_attr=..C.----(Closed), attributes=?...O.H.(??,Openable,Holder) ; 8D98: 07 09 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0009 (to 0x8DA3) 8D9A: 0D 07 ; COM_0D_group_AND length=0x0007 (to 0x8DA3) 8D9C: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8DA2) 8D9E: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8DA0: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8D9C 8DA2: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x8D9A ; 8DA3: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x8DA6) 8DA5: 3E ; BOTTOM ; 8DA6: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x8DB1) ; BOTTOM DRAWER 8DA8: 06 4F 7F BF 0C 15 F7 49 52 ; -------------- Object OBJ_24_CROWBAR -------------- 8DB1: 37 29 ; Word_num=0x37 CROWBA, length=0x0029 (to 0x8DDC) 8DB3: 49 00 E0 ; Location=0x49, disk_section=0, ext_attr=....----(), attributes=?WP.....(??,Weapon,Portable) ; 8DB6: 03 16 ; Section=03:SECTION_03_DESCRIPTION, length=0x0016 (to 0x8DCE) 8DB8: 04 14 ; COM_04_print_message length=0x0014 (to 0x8DCE) 8DBA: 5F BE 5B B1 4B 7B 55 45 8E 91 05 8A 09 B3 D4 4C 8DCA: 9F 15 7F B1 ; ; THERE IS A SMALL CROWBAR HERE. ; ; 8DCE: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8DD1) 8DD0: 10 ; weight=16 ; 8DD1: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x8DDC) ; SMALL CROWBAR 8DD3: E3 B8 F3 8C B9 55 2B D0 52 ; -------------- Object OBJ_25_WANTED_POSTER -------------- 8DDC: 38 68 ; Word_num=0x38 POSTER, length=0x0068 (to 0x8E46) 8DDE: 22 00 A4 ; Location=0x22, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8DE1: 03 16 ; Section=03:SECTION_03_DESCRIPTION, length=0x0016 (to 0x8DF9) 8DE3: 04 14 ; COM_04_print_message length=0x0014 (to 0x8DF9) 8DE5: 5F BE 5B B1 4B 7B 59 45 9E 48 F3 5F 85 A6 F4 BD 8DF5: 9F 15 7F B1 ; ; THERE IS A WANTED POSTER HERE. ; ; 8DF9: 07 40 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0040 (to 0x8E3B) 8DFB: 0D 3E ; COM_0D_group_AND length=0x003E (to 0x8E3B) 8DFD: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8DFF: 04 3A ; COM_04_print_message length=0x003A (to 0x8E3B) 8E01: 33 1E BF 9A AB 57 86 91 09 15 D6 6A 74 75 90 91 8E11: 03 EE 83 8C CC B5 59 F4 56 F4 74 75 90 91 08 EE 8E21: A3 A0 87 5B 7F 4E DB 16 5B B2 AB 98 83 7A 4A 45 8E31: E2 A0 7B 7B 1C 8A 0F A0 63 F4 ; ; "WANTED! MAD DOG THURMAN, ALIAS J. W. THURMAN, FOR DOUBLE ; PARKING IN A HOSPITAL ZONE." ; ; ; end group_AND at 0x8DFB ; 8E3B: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x8E46) ; WANTED POSTER 8E3D: 10 D0 E6 BD E9 16 FF B9 52 ; -------------- Object OBJ_26_GUN_CABINET -------------- 8E46: 19 80 8A ; Word_num=0x19 CABINE, length=0x008A (to 0x8ED3) 8E49: 8E E2 8A ; Location=0x8E, disk_section=2, ext_attr=GLC.----(Glass,Locked,Closed), attributes=?...O.H.(??,Openable,Holder) ; 8E4C: 07 7B ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x007B (to 0x8EC9) 8E4E: 0E 79 ; COM_0E_group_OR length=0x0079 (to 0x8EC9) 8E50: 0D 41 ; COM_0D_group_AND length=0x0041 (to 0x8E93) 8E52: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8E58) 8E54: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8E56: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8E52 8E58: 03 8E 27 ; COM_03_is_located(owner=RM_1_8E_??, obj=OBJ_27_SHOTGUN_IN_CABINET) 8E5B: 09 1F ; COM_09_is_noun2(obj=OBJ_1F_SMALL_KEY_CAB) 8E5D: 04 29 ; COM_04_print_message length=0x0029 (to 0x8E88) 8E5F: 5F BE 17 16 56 DB 38 C6 33 BB 5F BE 49 16 8B 54 8E6F: C3 54 A5 54 03 EE 33 98 5F BE D3 14 10 4E 73 62 8E7F: 6C B9 91 7A D1 B5 F0 A4 21 ; ; THE KEY TURNS, THE LOCK CLICKS, AND THE CABINET SPRINGS ; OPEN! ; 8E88: 17 27 00 ; COM_17_move_object_to(obj=OBJ_27_SHOTGUN_IN_CABINET, destination=nowhere) 8E8B: 17 28 26 ; COM_17_move_object_to(obj=OBJ_28_SHOTGUN, destination=OBJ_26_GUN_CABINET) 8E8E: 1C 26 ; COM_1C_set_var_object(obj=OBJ_26_GUN_CABINET) 8E90: 29 ; COM_29_toggle_open_VAR() 8E91: 2A ; COM_2A_toggle_lock_VAR() 8E92: 38 ; COM_38_bump_score() ; ; end group_AND at 0x8E50 8E93: 0D 28 ; COM_0D_group_AND length=0x0028 (to 0x8EBD) 8E95: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8E9B) 8E97: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8E99: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8E95 8E9B: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) 8E9D: 04 1C ; COM_04_print_message length=0x001C (to 0x8EBB) 8E9F: 5F BE 49 16 8B 54 03 A0 5F BE D3 14 10 4E 73 62 8EAF: 4B 7B 81 BF 66 17 00 B3 C8 6A A3 A0 ; ; THE LOCK ON THE CABINET IS TOO STRONG FOR ; 8EBB: A9 ; FN_A9_PRINT_noun2 8EBC: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0x8E93 8EBD: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x8EC9) 8EBF: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8EC5) 8EC1: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) 8EC3: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0x8EBF 8EC5: 14 ; COM_14_reverse_status next command 8EC6: 09 1F ; COM_09_is_noun2(obj=OBJ_1F_SMALL_KEY_CAB) 8EC8: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0x8EBD ; ; end group_OR at 0x8E4E ; 8EC9: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0x8ED3) ; GUN CABINET 8ECB: 30 6F D3 14 10 4E 73 62 ; -------------- Object OBJ_27_SHOTGUN_IN_CABINET -------------- 8ED3: 39 53 ; Word_num=0x39 SHOTGU, length=0x0053 (to 0x8F28) 8ED5: 8E 02 C0 ; Location=0x8E, disk_section=2, ext_attr=....----(), attributes=?W......(??,Weapon) ; 8ED8: 03 2C ; Section=03:SECTION_03_DESCRIPTION, length=0x002C (to 0x8F06) 8EDA: 04 2A ; COM_04_print_message length=0x002A (to 0x8F06) 8EDC: 5F BE 5B B1 4B 7B 4E 45 06 9E F3 5F 87 5B 7F 4E 8EEC: AB 14 6F B3 15 8A 86 74 30 6F 49 16 97 54 0B 58 8EFC: 96 96 DB 72 04 53 8F 7A 9B C1 ; ; THERE IS A LOADED DOUBLE BARREL SHOTGUN LOCKED IN THE ; CABINET. ; ; 8F06: 07 19 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0019 (to 0x8F21) 8F08: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x8F21) 8F0A: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8F10) 8F0C: 0A 05 ; COM_0A_is_input_phrase(phrase=GET ..C..... * *) 8F0E: 0A 43 ; COM_0A_is_input_phrase(phrase=GET ..C..... WITH ..C.....) ; ; end group_OR at 0x8F0A 8F10: 04 0F ; COM_04_print_message length=0x000F (to 0x8F21) 8F12: 5F BE D3 14 10 4E 73 62 4B 7B 75 8D A6 85 2E ; ; THE CABINET IS LOCKED. ; ; ; end group_AND at 0x8F08 ; 8F21: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x8F28) ; SHOTGUN 8F23: 29 B8 47 BE 4E ; -------------- Object OBJ_28_SHOTGUN -------------- 8F28: 39 2E ; Word_num=0x39 SHOTGU, length=0x002E (to 0x8F58) 8F2A: 00 00 E0 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?WP.....(??,Weapon,Portable) ; 8F2D: 03 01 ; Section=03:SECTION_03_DESCRIPTION, length=0x0001 (to 0x8F30) 8F2F: 80 ; FN_80_PRINT_SHOTGUN_HERE ; 8F30: 07 1C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001C (to 0x8F4E) 8F32: 0D 1A ; COM_0D_group_AND length=0x001A (to 0x8F4E) 8F34: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x8F3C) 8F36: 0A 0B ; COM_0A_is_input_phrase(phrase=LOOK * AT u.......) 8F38: 0A 10 ; COM_0A_is_input_phrase(phrase=LOOK * IN ......O.) 8F3A: 0A 4C ; COM_0A_is_input_phrase(phrase=LOOK * ON .......L) ; ; end group_OR at 0x8F34 8F3C: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x8F44) 8F3E: 03 28 29 ; COM_03_is_located(owner=OBJ_28_SHOTGUN, obj=OBJ_29_SHOTGUN_SHELL1) 8F41: 03 28 2A ; COM_03_is_located(owner=OBJ_28_SHOTGUN, obj=OBJ_2A_SHOTGUN_SHELL2) ; ; end group_OR at 0x8F3C 8F44: A8 ; FN_A8_PRINT_noun1 8F45: 04 07 ; COM_04_print_message length=0x0007 (to 0x8F4E) 8F47: 4B 7B 73 8D E6 59 21 ; ; IS LOADED! ; ; ; end group_AND at 0x8F32 ; 8F4E: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x8F51) 8F50: 15 ; weight=21 ; 8F51: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x8F58) ; SHOTGUN 8F53: 29 B8 47 BE 4E ; -------------- Object OBJ_29_SHOTGUN_SHELL1 -------------- 8F58: 00 0E ; Word_num=0x00 -none-, length=0x000E (to 0x8F68) 8F5A: 28 00 A0 ; Location=0x28, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 8F5D: 08 09 ; Section=08:SECTION_08_EVERY_TURN, length=0x0009 (to 0x8F68) 8F5F: 0D 07 ; COM_0D_group_AND length=0x0007 (to 0x8F68) 8F61: 14 ; COM_14_reverse_status next command 8F62: 03 28 2A ; COM_03_is_located(owner=OBJ_28_SHOTGUN, obj=OBJ_2A_SHOTGUN_SHELL2) 8F65: 1C 29 ; COM_1C_set_var_object(obj=OBJ_29_SHOTGUN_SHELL1) 8F67: BC ; FN_BC_SHOOT_DROP_SHELL ; ; end group_AND at 0x8F5F ; -------------- Object OBJ_2A_SHOTGUN_SHELL2 -------------- 8F68: 00 0A ; Word_num=0x00 -none-, length=0x000A (to 0x8F74) 8F6A: 28 00 A0 ; Location=0x28, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 8F6D: 08 05 ; Section=08:SECTION_08_EVERY_TURN, length=0x0005 (to 0x8F74) 8F6F: 0D 03 ; COM_0D_group_AND length=0x0003 (to 0x8F74) 8F71: 1C 2A ; COM_1C_set_var_object(obj=OBJ_2A_SHOTGUN_SHELL2) 8F73: BC ; FN_BC_SHOOT_DROP_SHELL ; ; end group_AND at 0x8F6F ; -------------- Object OBJ_2B_GAS_PUMP -------------- 8F74: 3A 6C ; Word_num=0x3A PUMP, length=0x006C (to 0x8FE2) 8F76: 82 01 81 ; Location=0x82, disk_section=1, ext_attr=....----(), attributes=?......S(??,Surface) ; 8F79: 03 22 ; Section=03:SECTION_03_DESCRIPTION, length=0x0022 (to 0x8F9D) 8F7B: 04 20 ; COM_04_print_message length=0x0020 (to 0x8F9D) 8F7D: 83 48 BE 9F 4B 15 23 B8 0F A0 09 58 55 8B D6 B5 8F8D: 53 A0 15 6C EF 16 D3 93 FB B9 4D 98 9F 15 7F B1 ; ; AN OLD FASHIONED GLASS TOP GAS PUMP STANDS HERE. ; ; 8F9D: 07 3B ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x003B (to 0x8FDA) 8F9F: 0D 39 ; COM_0D_group_AND length=0x0039 (to 0x8FDA) 8FA1: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x8FA7) 8FA3: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 8FA5: 0A 0B ; COM_0A_is_input_phrase(phrase=LOOK * AT u.......) ; ; end group_OR at 0x8FA1 8FA7: 04 31 ; COM_04_print_message length=0x0031 (to 0x8FDA) 8FA9: 3B 95 41 6E 4F 5B C9 B9 D6 15 53 17 6E DF 6A 13 8FB9: 05 3F 9E 61 D2 B5 23 62 0E 6C 80 8D 63 F4 96 77 8FC9: AF 14 16 BC F4 72 A5 5E 99 16 73 15 CE B5 5E 60 8FD9: 2E ; ; MY GOODNESS! IT SAYS, "33 CENTS PER GALLON." I'D BET ; THERE'S NO GAS LEFT. ; ; ; end group_AND at 0x8F9F ; 8FDA: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x8FE2) ; GAS PUMP 8FDC: 15 6C EF 16 D3 93 ; -------------- Object OBJ_2C_PADLOCK -------------- 8FE2: 29 0D ; Word_num=0x29 PADLOC, length=0x000D (to 0x8FF1) 8FE4: 2B 60 88 ; Location=0x2B, disk_section=0, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; 8FE7: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x8FEA) 8FE9: BA ; FN_BA_OPEN_UNLOCK ; 8FEA: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x8FF1) ; PADLOCK 8FEC: 46 A4 75 8D 4B ; -------------- Object OBJ_2D_JACK-O-MATIC -------------- 8FF1: 31 5D ; Word_num=0x31 JACK, length=0x005D (to 0x9050) 8FF3: 83 01 A4 ; Location=0x83, disk_section=1, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 8FF6: 03 10 ; Section=03:SECTION_03_DESCRIPTION, length=0x0010 (to 0x9008) 8FF8: 04 0E ; COM_04_print_message length=0x000E (to 0x9008) 8FFA: 5F BE 5B B1 4B 7B 4C 45 DD 46 9F 15 7F B1 ; ; THERE IS A JACK HERE. ; ; 9008: 07 3E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x003E (to 0x9048) 900A: 0D 3C ; COM_0D_group_AND length=0x003C (to 0x9048) 900C: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 900E: 04 15 ; COM_04_print_message length=0x0015 (to 0x9025) 9010: 2B 1C AD 54 1F A2 83 49 C6 51 4F 61 DB D6 B6 93 9020: 33 61 1A 40 22 ; ; "JACK-O-MATIC DELUXE MODEL 333" ; 9025: 25 ; COM_25_print_linefeed() 9026: 04 20 ; COM_04_print_message length=0x0020 (to 0x9048) 9028: 2B 1C 8B 54 57 C6 D0 15 0C BA E6 C3 C0 7A 33 BB 9038: 76 A7 EB 15 8B 54 03 A0 8F 2A 85 73 DF 8B 63 F4 ; ; "JACK USE INSTRUCTIONS, PUT JACK ON <VEHICLE>." ; ; ; end group_AND at 0x900A ; 9048: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x904B) 904A: 29 ; COM_29_toggle_open_VAR() ; 904B: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x9050) ; JACK 904D: C5 7E 4B ; -------------- Object OBJ_2E_RUSTY_JEEP -------------- 9050: 32 77 ; Word_num=0x32 JEEP, length=0x0077 (to 0x90C9) 9052: 86 01 81 ; Location=0x86, disk_section=1, ext_attr=....----(), attributes=?......S(??,Surface) ; 9055: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x906B) 9057: 04 12 ; COM_04_print_message length=0x0012 (to 0x906B) 9059: 5F BE 5B B1 4B 7B 54 45 66 C6 4C DB 32 60 9F 15 9069: 7F B1 ; ; THERE IS A RUSTY JEEP HERE. ; ; 906B: 07 53 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0053 (to 0x90C0) 906D: 0B 51 0A ; COM_0B_switch length=0x0051 (to 0x90C1), function=COM_0A_is_input_phrase(phrase_num) 9070: 36 17 ; case COM_0A_is_input_phrase("ENTER * * *"), length=0x0017 9072: 0D 15 ; COM_0D_group_AND length=0x0015 (to 0x9089) 9074: 17 01 2E ; COM_17_move_object_to(obj=OBJ_01_PLAYER, destination=OBJ_2E_RUSTY_JEEP) 9077: 04 10 ; COM_04_print_message length=0x0010 (to 0x9089) 9079: C7 DE 94 14 50 5E 6B A1 83 7A 5F BE EF 15 F7 61 ; ; YOU ARE NOW IN THE JEEP. ; ; ; end group_AND at 0x9072 ; ; end case 9089: 37 1A ; case COM_0A_is_input_phrase("CLIMB * OUT *"), length=0x001A 908B: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0x90A5) 908D: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 908F: 10 ; COM_10_drop_var() 9090: 04 13 ; COM_04_print_message length=0x0013 (to 0x90A5) 9092: C7 DE 94 14 50 5E 6B A1 36 A1 B8 16 82 17 4C 5E 90A2: 32 60 2E ; ; YOU ARE NOW OUT OF THE JEEP. ; ; ; end group_AND at 0x908B ; ; end case 90A5: 52 19 ; case COM_0A_is_input_phrase("START u....... * *"), length=0x0019 90A7: 04 17 ; COM_04_print_message length=0x0017 (to 0x90C0) 90A9: 06 9A 90 73 5B 70 5F BE AB 14 3F C0 7B B4 B5 94 90B9: 04 BC 46 5E 86 5F 21 ; ; NOTHING. THE BATTERY MUST BE DEAD! ; ; ; end case ; ; end decode_switch at 0x906D ; 90C0: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x90C9) ; RUSTY JEEP 90C2: F5 B3 FB C0 67 7F 50 ; -------------- Object OBJ_2F_FLAT_TIRE -------------- 90C9: 21 45 ; Word_num=0x21 TIRE, length=0x0045 (to 0x9110) 90CB: 2E 00 A0 ; Location=0x2E, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 90CE: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x90E4) 90D0: 04 12 ; COM_04_print_message length=0x0012 (to 0x90E4) 90D2: 5F BE 5B B1 4B 7B 48 45 56 8B 83 17 5B B1 F4 72 90E2: DB 63 ; ; THERE IS A FLAT TIRE HERE. ; ; 90E4: 07 1C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001C (to 0x9102) 90E6: 0D 1A ; COM_0D_group_AND length=0x001A (to 0x9102) 90E8: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x90EE) 90EA: 0A 05 ; COM_0A_is_input_phrase(phrase=GET ..C..... * *) 90EC: 0A 43 ; COM_0A_is_input_phrase(phrase=GET ..C..... WITH ..C.....) ; ; end group_OR at 0x90E8 90EE: 14 ; COM_14_reverse_status next command 90EF: 03 2E 2D ; COM_03_is_located(owner=OBJ_2E_RUSTY_JEEP, obj=OBJ_2D_JACK-O-MATIC) 90F2: 04 0E ; COM_04_print_message length=0x000E (to 0x9102) 90F4: C7 DE 77 16 F3 B9 57 C6 7B 14 C5 7E 5B 89 ; ; YOU MUST USE A JACK. ; ; ; end group_AND at 0x90E6 ; 9102: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x9105) 9104: 22 ; FLAT ; 9105: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x9108) 9107: 29 ; weight=41 ; 9108: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x9110) ; FLAT TIRE 910A: 7B 67 16 BC 2F 7B ; -------------- Object OBJ_30_SPARE_TIRE -------------- 9110: 21 42 ; Word_num=0x21 TIRE, length=0x0042 (to 0x9154) 9112: 86 01 A0 ; Location=0x86, disk_section=1, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 9115: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x912B) 9117: 04 12 ; COM_04_print_message length=0x0012 (to 0x912B) 9119: 5F BE 5B B1 4B 7B 55 45 54 A4 56 5E 2F 7B 9F 15 9129: 7F B1 ; ; THERE IS A SPARE TIRE HERE. ; ; 912B: 07 18 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0018 (to 0x9145) 912D: 0D 16 ; COM_0D_group_AND length=0x0016 (to 0x9145) 912F: 0A 4B ; COM_0A_is_input_phrase(phrase=DROP ..C..... ON .......L) 9131: 14 ; COM_14_reverse_status next command 9132: 03 2E 2D ; COM_03_is_located(owner=OBJ_2E_RUSTY_JEEP, obj=OBJ_2D_JACK-O-MATIC) 9135: 04 0E ; COM_04_print_message length=0x000E (to 0x9145) 9137: C7 DE 77 16 F3 B9 57 C6 7B 14 C5 7E 5B 89 ; ; YOU MUST USE A JACK. ; ; ; end group_AND at 0x912D ; 9145: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x9148) 9147: 23 ; SPARE ; 9148: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x914B) 914A: 29 ; weight=41 ; 914B: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x9154) ; SPARE TIRE 914D: 5B B9 5B B1 94 BE 45 ; -------------- Object OBJ_31_SPHORX -------------- 9154: 1A 09 ; Word_num=0x1A DESK, length=0x0009 (to 0x915F) 9156: 85 09 81 ; Location=0x85, disk_section=9, ext_attr=....----(), attributes=?......S(??,Surface) ; 9159: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x915F) ; SPHORX 915B: 62 B9 C2 A0 ; -------------- Object OBJ_32_SHOVEL -------------- 915F: 26 20 ; Word_num=0x26 SHOVEL, length=0x0020 (to 0x9181) 9161: DC 03 E0 ; Location=0xDC, disk_section=3, ext_attr=....----(), attributes=?WP.....(??,Weapon,Portable) ; 9164: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x9178) 9166: 04 10 ; COM_04_print_message length=0x0010 (to 0x9178) 9168: 5F BE 5B B1 4B 7B 55 45 88 74 33 61 F4 72 DB 63 ; ; THERE IS A SHOVEL HERE. ; ; 9178: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x917B) 917A: 15 ; weight=21 ; 917B: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x9181) ; SHOVEL 917D: 29 B8 6E CA ; -------------- Object OBJ_33_RATTLE_SNAKE -------------- 9181: 0C 81 B2 ; Word_num=0x0C SNAKE, length=0x01B2 (to 0x9336) 9184: DC 03 90 ; Location=0xDC, disk_section=3, ext_attr=....----(), attributes=?..A....(??,Alive) ; 9187: 03 2F ; Section=03:SECTION_03_DESCRIPTION, length=0x002F (to 0x91B8) 9189: 04 2D ; COM_04_print_message length=0x002D (to 0x91B8) 918B: 5F BE 5B B1 4B 7B 50 45 8F 7A 59 15 F3 A0 83 5A 919B: C0 93 04 58 DD 46 2B 17 46 C0 55 5E CD 97 45 5E 91AB: 4E 9F F3 5F 03 A0 5F BE 56 15 44 A0 2E ; ; THERE IS A NINE FOOT DIAMOND BACK RATTLE SNAKE COILED ON ; THE FLOOR. ; ; 91B8: 09 02 ; Section=09:SECTION_09_HIT_POINTS, length=0x0002 (to 0x91BC) 91BA: 46 46 ; max_hit_points=70 current_hit_points=70 ; 91BC: 07 6E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x006E (to 0x922C) 91BE: 0E 6C ; COM_0E_group_OR length=0x006C (to 0x922C) 91C0: 0D 3A ; COM_0D_group_AND length=0x003A (to 0x91FC) 91C2: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) 91C4: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x91CC) 91C6: 09 28 ; COM_09_is_noun2(obj=OBJ_28_SHOTGUN) 91C8: 09 32 ; COM_09_is_noun2(obj=OBJ_32_SHOVEL) 91CA: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) ; ; end group_OR at 0x91C4 91CC: 04 06 ; COM_04_print_message length=0x0006 (to 0x91D4) 91CE: C7 DE 2B 17 57 7B ; ; YOU RAISE ; 91D4: A9 ; FN_A9_PRINT_noun2 91D5: 04 22 ; COM_04_print_message length=0x0022 (to 0x91F9) 91D7: 4F A1 9B AF 34 A1 9F 15 F3 46 8E 48 81 13 4F 72 91E7: E3 06 E3 59 0A 8A 5B 7A 48 45 34 79 9B 53 89 4E 91F7: 6B CE ; ; OVER YOUR HEAD AND "WHAM!" DEAL HIM A FIERCE BLOW! ; 91F9: 1A ; COM_1A_set_var_to_noun1() 91FA: 1D 28 ; COM_1D_attack_var(points=40) ; ; end group_AND at 0x91C0 91FC: 0D 2E ; COM_0D_group_AND length=0x002E (to 0x922C) 91FE: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x9206) 9200: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) 9202: 0A 05 ; COM_0A_is_input_phrase(phrase=GET ..C..... * *) 9204: 0A 43 ; COM_0A_is_input_phrase(phrase=GET ..C..... WITH ..C.....) ; ; end group_OR at 0x91FE 9206: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x920C) 9208: 09 5C ; COM_09_is_noun2(obj=OBJ_5C_PAIR_HANDS) 920A: 09 00 ; COM_09_is_noun2(obj=nothing) ; ; end group_OR at 0x9206 920C: 04 1E ; COM_04_print_message length=0x001E (to 0x922C) 920E: C7 DE 81 15 0B BC AB BB C7 DE 81 15 0B BC AB BB 921E: 42 A0 6B B5 C7 DE 0C 15 6A A0 F3 5F 97 7B ; ; YOU GOT IT! YOU GOT IT! OOPS! YOU DROPPED IT. ; ; ; end group_AND at 0x91FC ; ; end group_OR at 0x91BE ; 922C: 08 80 D7 ; Section=08:SECTION_08_EVERY_TURN, length=0x00D7 (to 0x9306) 922F: 0D 80 D4 ; COM_0D_group_AND length=0x00D4 (to 0x9306) 9232: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9234: 14 ; COM_14_reverse_status next command 9235: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x923B) 9237: 0A 01 ; COM_0A_is_input_phrase(phrase=NORTH * * *) 9239: 0A 03 ; COM_0A_is_input_phrase(phrase=EAST * * *) ; ; end group_OR at 0x9235 923B: 0B 80 C5 05 ; COM_0B_switch length=0x00C5 (to 0x9304), function=COM_05_is_less_equal_last_random(value) 923F: 55 46 ; case COM_05_is_less_equal_last_random(value=85), length=0x0046 9241: 1F 44 ; COM_1F_print2 length=0x0044 (to 0x9287) 9243: 5F BE 57 17 1F B3 B3 9A 83 67 C5 98 D6 15 AE B7 9253: 96 64 73 A1 4D B1 51 18 EB C1 68 4D AF A0 51 18 9263: 45 C2 83 48 63 B1 16 56 A3 15 D0 B5 26 60 DB 8B 9273: 1B B8 13 B3 D0 65 CB 6E 87 A5 17 B1 51 18 23 C6 9283: 9B B8 1B 9C ; ; THE SERPENT FLINGS ITSELF TOWARDS YOU! BEFORE YOU CAN ; REACT, HIS NEEDLE SHARP FANGS PIERCE YOUR SKIN. ; ; ; end case 9287: AA 3C ; case COM_05_is_less_equal_last_random(value=170), length=0x003C 9289: 1F 3A ; COM_1F_print2 length=0x003A (to 0x92C5) 928B: C7 DE 87 AF 3D 49 33 17 AB 98 56 D1 16 71 DB 72 929B: 47 B9 33 98 C3 9E C7 DE 95 AF AF 55 5B 48 4B 49 92AB: 5F BE 60 17 17 48 CB 23 E7 BD 53 BE F0 A4 8C 62 92BB: 7F 49 51 18 23 C6 7F 67 11 B8 ; ; YOUR EARS RING WITH THE SOUND OF YOUR SCREAM AS THE SNAKE'S ; TEETH PENETRATE YOUR FLESH! ; ; ; end case 92C5: FF 3C ; case COM_05_is_less_equal_last_random(value=255), length=0x003C 92C7: 1F 3A ; COM_1F_print2 length=0x003A (to 0x9303) 92C9: 5F BE 60 17 17 48 66 17 0D B2 49 62 51 18 48 C2 92D9: 2E 60 7B 14 29 B8 03 A1 AB 98 4B A4 8B 96 9B 96 92E9: 34 A1 3F 16 C3 6A CA B5 4B 7B D0 65 CB 6E 87 A5 92F9: 17 B1 90 14 94 14 F4 BD DB E0 ; ; THE SNAKE STRIKES! YOU FEEL A SHOOTING PAIN IN YOUR LEG AS ; HIS FANGS PIERCE AN ARTERY. ; ; ; end case ; ; end decode_switch at 0x923B 9303: 17 35 01 ; COM_17_move_object_to(obj=OBJ_35_SNAKE_VENOM, destination=OBJ_01_PLAYER) ; ; end group_AND at 0x922F ; 9306: 0A 14 ; Section=0A:SECTION_0A_UPON_DEATH, length=0x0014 (to 0x931C) 9308: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x931C) 930A: 04 0C ; COM_04_print_message length=0x000C (to 0x9318) 930C: 5F BE 60 17 17 48 D5 15 FF 14 17 47 ; ; THE SNAKE IS DEAD. ; 9318: 38 ; COM_38_bump_score() 9319: 1E 33 34 ; COM_1E_swap_object_locations(obj1=OBJ_33_RATTLE_SNAKE, obj2=OBJ_34_DEAD_SNAKE) ; ; end group_AND at 0x9308 ; 931C: 02 18 ; Section=02:SECTION_02_SHORT_NAME, length=0x0018 (to 0x9336) ; NINE FOOT DIAMOND BACK RATTLE SNAKE 931E: 10 99 48 5E 46 A0 03 15 71 48 33 98 C5 4C D4 83 932E: 8E 49 DB 8B 0B B9 9B 85 ; -------------- Object OBJ_34_DEAD_SNAKE -------------- 9336: 0C 25 ; Word_num=0x0C SNAKE, length=0x0025 (to 0x935D) 9338: 00 03 A0 ; Location=0x00, disk_section=3, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 933B: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0x9351) 933D: 04 12 ; COM_04_print_message length=0x0012 (to 0x9351) 933F: 5F BE 5B B1 4B 7B 46 45 86 5F 60 17 17 48 9F 15 934F: 7F B1 ; ; THERE IS A DEAD SNAKE HERE. ; ; 9351: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x9354) 9353: 09 ; weight=9 ; 9354: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x935D) ; DEAD SNAKE 9356: E3 59 15 58 CD 97 45 ; -------------- Object OBJ_35_SNAKE_VENOM -------------- ;; The user gets this object when the snake attacks successfully. The object does 17 points of damage ;; every turn. There is no way to cure the snake bite. The user's UPON_DEATH section includes a note ;; about the user being poisoned. 935D: 20 0D ; Word_num=0x20 ??20??, length=0x000D (to 0x936C) 935F: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; 9362: 08 08 ; Section=08:SECTION_08_EVERY_TURN, length=0x0008 (to 0x936C) 9364: 0D 06 ; COM_0D_group_AND length=0x0006 (to 0x936C) 9366: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9368: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 936A: 1D 11 ; COM_1D_attack_var(points=17) ; ; end group_AND at 0x9364 ; -------------- Object OBJ_36_FOOD -------------- ;; The food heals 35 hit points (that iss half the player's max) 936C: 1C 58 ; Word_num=0x1C FOOD, length=0x0058 (to 0x93C6) 936E: 94 03 A0 ; Location=0x94, disk_section=3, ext_attr=....----(), attributes=?.P.....(??,Portable) ; 9371: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x9385) 9373: 04 10 ; COM_04_print_message length=0x0010 (to 0x9385) 9375: 5F BE 5B B1 4B 7B 3F B9 48 5E 36 A0 9F 15 7F B1 ; ; THERE IS SOME FOOD HERE. ; ; 9385: 07 2C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x002C (to 0x93B3) 9387: 0D 2A ; COM_0D_group_AND length=0x002A (to 0x93B3) 9389: 0A 15 ; COM_0A_is_input_phrase(phrase=EAT u....... * *) 938B: A8 ; FN_A8_PRINT_noun1 938C: 04 21 ; COM_04_print_message length=0x0021 (to 0x93AF) 938E: 15 D0 66 17 3F 48 04 EE 73 C6 03 BA F3 8C C3 9E 939E: 89 73 10 71 8C C6 83 7B 0B A0 05 8A 1E A0 9E 61 93AE: 2E ; ; WAS STALE, BUT STILL OF HIGH NUTRITIONAL CONTENT. ; 93AF: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 93B1: 23 23 ; COM_23_heal_var(points=35) ; ; end group_AND at 0x9387 ; 93B3: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x93B6) 93B5: 06 ; weight=6 ; 93B6: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0x93C6) ; SMALL AMOUNT OF FOOD 93B8: E3 B8 F3 8C 71 48 9E C5 B8 16 59 15 73 9E ; -------------- Object OBJ_37_STEEL_SAFE -------------- 93C6: 1D 31 ; Word_num=0x1D SAFE, length=0x0031 (to 0x93F9) 93C8: 9A 64 8A ; Location=0x9A, disk_section=4, ext_attr=.LC.----(Locked,Closed), attributes=?...O.H.(??,Openable,Holder) ; 93CB: 03 24 ; Section=03:SECTION_03_DESCRIPTION, length=0x0024 (to 0x93F1) 93CD: 04 22 ; COM_04_print_message length=0x0022 (to 0x93F1) 93CF: 83 7A 5F BE 61 17 82 C6 F3 17 16 8D 51 18 45 C2 93DF: 83 48 A7 B7 7B 14 54 8B 9B 6C FF B9 33 61 08 B7 93EF: DB 63 ; ; IN THE SOUTH WALL, YOU CAN SEE A LARGE STEEL SAFE. ; ; 93F1: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x93F4) 93F3: BA ; FN_BA_OPEN_UNLOCK ; 93F4: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x93F9) ; SAFE 93F6: 08 B7 45 ; -------------- Object OBJ_38_MONEY -------------- 93F9: 27 49 ; Word_num=0x27 MONEY, length=0x0049 (to 0x9444) 93FB: 4C 00 A4 ; Location=0x4C, disk_section=0, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 93FE: 03 13 ; Section=03:SECTION_03_DESCRIPTION, length=0x0013 (to 0x9413) 9400: 04 11 ; COM_04_print_message length=0x0011 (to 0x9413) 9402: 5F BE 5B B1 4B 7B 3F B9 4F 5E 0F A0 4A DB 2F 62 9412: 2E ; ; THERE IS SOME MONEY HERE. ; ; 9413: 07 1C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001C (to 0x9431) 9415: 0D 1A ; COM_0D_group_AND length=0x001A (to 0x9431) 9417: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 9419: 04 16 ; COM_04_print_message length=0x0016 (to 0x9431) 941B: 10 1C 81 15 19 58 56 5E F5 B3 9B C1 B7 C0 D3 9A 942B: 09 15 FB 8C 8C B3 ; ; "IN GOD WE TRUST. TWENTY DOLLARS" ; ; ; end group_AND at 0x9415 ; 9431: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x9434) 9433: 06 ; weight=6 ; 9434: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0x9444) ; LARGE AMOUNT OF MONEY 9436: 54 8B 9B 6C 71 48 9E C5 B8 16 71 16 7B 98 ; -------------- Object OBJ_39_DYNAMITE -------------- 9444: 1E 81 21 ; Word_num=0x1E DYNAMI, length=0x0121 (to 0x9568) 9447: DB 02 A4 ; Location=0xDB, disk_section=2, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; 944A: 03 19 ; Section=03:SECTION_03_DESCRIPTION, length=0x0019 (to 0x9465) 944C: 04 17 ; COM_04_print_message length=0x0017 (to 0x9465) 944E: 5F BE 5B B1 4B 7B 55 45 85 BE D1 83 86 64 8B DE 945E: D6 92 4A 5E 2F 62 2E ; ; THERE IS A STICK OF DYNAMITE HERE. ; ; 9465: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x9468) 9467: 08 ; weight=8 ; 9468: 07 80 8A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x008A (to 0x94F5) 946B: 0B 80 87 0A ; COM_0B_switch length=0x0087 (to 0x94F6), function=COM_0A_is_input_phrase(phrase_num) 946F: 08 5C ; case COM_0A_is_input_phrase("READ .....?.. * *"), length=0x005C 9471: 0D 5A ; COM_0D_group_AND length=0x005A (to 0x94CD) 9473: 04 12 ; COM_04_print_message length=0x0012 (to 0x9487) 9475: 09 1C F4 99 DB 8B 9E 61 3A 62 15 B2 6E 62 D0 15 9485: 5C 57 ; ; "IGNOBLE ENTERPRISES, INC." ; 9487: 25 ; COM_25_print_linefeed() 9488: 25 ; COM_25_print_linefeed() 9489: 04 15 ; COM_04_print_message length=0x0015 (to 0x94A0) 948B: 7E 19 15 26 40 61 C9 15 16 99 91 7A 13 15 CF 97 949B: 7F 7B DF 13 22 ; ; " << SELF IGNITING DYNAMITE >>" ; 94A0: 25 ; COM_25_print_linefeed() 94A1: 04 0D ; COM_04_print_message length=0x000D (to 0x94B0) 94A3: DB 1B 46 98 59 5E 82 7B D3 14 59 B1 22 ; ; "HANDLE WITH CARE!" ; 94B0: 25 ; COM_25_print_linefeed() 94B1: 04 1A ; COM_04_print_message length=0x001A (to 0x94CD) 94B3: C9 1D B5 17 B3 63 E6 23 0D B2 48 5E 57 C6 C7 1F 94C3: C5 C9 96 C3 43 5E 63 B1 E3 06 ; ; "TO USE, 'STRIKE FUSE' EVACUATE AREA!" ; ; ; end group_AND at 0x9471 ; ; end case 94CD: 53 26 ; case COM_0A_is_input_phrase("STRIKE u....... * *"), length=0x0026 94CF: 0D 24 ; COM_0D_group_AND length=0x0024 (to 0x94F5) 94D1: 1A ; COM_1A_set_var_to_noun1() 94D2: 8F ; FN_8F_GET_OBJECT 94D3: 04 1D ; COM_04_print_message length=0x001D (to 0x94F2) 94D5: 5F BE 13 15 CF 97 7F 7B AF 14 50 6D CA B5 65 7B 94E5: 91 7A 90 14 15 58 76 A7 F4 BD 91 7A 21 ; ; THE DYNAMITE BEGINS HISSING AND SPUTTERING! ; 94F2: 17 4B 39 ; COM_17_move_object_to(obj=OBJ_4B_LIT_DYNAMITE_FUSE, destination=OBJ_39_DYNAMITE) ; ; end group_AND at 0x94CF ; ; end case ; ; end decode_switch at 0x946B ; 94F5: 08 63 ; Section=08:SECTION_08_EVERY_TURN, length=0x0063 (to 0x955A) 94F7: 0E 61 ; COM_0E_group_OR length=0x0061 (to 0x955A) 94F9: 14 ; COM_14_reverse_status next command 94FA: 03 39 4B ; COM_03_is_located(owner=OBJ_39_DYNAMITE, obj=OBJ_4B_LIT_DYNAMITE_FUSE) 94FD: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0x9513) 94FF: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x9505) 9501: 0A 53 ; COM_0A_is_input_phrase(phrase=STRIKE u....... * *) 9503: 0A 06 ; COM_0A_is_input_phrase(phrase=DROP ..C..... * *) ; ; end group_OR at 0x94FF 9505: 1F 0C ; COM_1F_print2 length=0x000C (to 0x9513) 9507: E3 1B E5 B9 15 EE 76 A7 F4 BD E3 06 ; ; "HISSS, SPUTTER!" ; ; ; end group_AND at 0x94FD 9513: 0D 27 ; COM_0D_group_AND length=0x0027 (to 0x953C) 9515: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9517: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 9519: 1F 19 ; COM_1F_print2 length=0x0019 (to 0x9534) 951B: 01 4F 41 A0 EB 8F C7 DE 9B 15 5B CA 67 4D 84 96 952B: 89 8D 96 96 C4 9C 8D 7B 21 ; ; BOOOOOM! YOU HAVE BEEN BLOWN TO BITS! ; 9534: 1D 69 ; COM_1D_attack_var(points=105) 9536: 17 39 00 ; COM_17_move_object_to(obj=OBJ_39_DYNAMITE, destination=nowhere) 9539: 17 4B 00 ; COM_17_move_object_to(obj=OBJ_4B_LIT_DYNAMITE_FUSE, destination=nowhere) ; ; end group_AND at 0x9513 953C: 0D 0B ; COM_0D_group_AND length=0x000B (to 0x9549) 953E: 01 37 ; COM_01_is_in_pack_or_room(obj=OBJ_37_STEEL_SAFE) 9540: 1E 37 4C ; COM_1E_swap_object_locations(obj1=OBJ_37_STEEL_SAFE, obj2=OBJ_4C_BLASTED_SAFE) 9543: 17 39 00 ; COM_17_move_object_to(obj=OBJ_39_DYNAMITE, destination=nowhere) 9546: 17 4B 00 ; COM_17_move_object_to(obj=OBJ_4B_LIT_DYNAMITE_FUSE, destination=nowhere) ; ; end group_AND at 0x953C 9549: 0D 0C ; COM_0D_group_AND length=0x000C (to 0x9557) 954B: 01 4E ; COM_01_is_in_pack_or_room(obj=OBJ_4E_BOULDER) 954D: 1E 4E 5A ; COM_1E_swap_object_locations(obj1=OBJ_4E_BOULDER, obj2=OBJ_5A_ENTRANCE_CLEAR) 9550: 17 39 00 ; COM_17_move_object_to(obj=OBJ_39_DYNAMITE, destination=nowhere) 9553: 38 ; COM_38_bump_score() 9554: 17 4B 00 ; COM_17_move_object_to(obj=OBJ_4B_LIT_DYNAMITE_FUSE, destination=nowhere) ; ; end group_AND at 0x9549 9557: 17 4B 00 ; COM_17_move_object_to(obj=OBJ_4B_LIT_DYNAMITE_FUSE, destination=nowhere) ; ; end group_OR at 0x94F7 ; 955A: 02 0C ; Section=02:SECTION_02_SHORT_NAME, length=0x000C (to 0x9568) ; STICK OF DYNAMITE 955C: 03 BA 8B 54 C3 9E 10 5D 6B 48 DB BD ; -------------- Object OBJ_3A_CONTROL_PANEL -------------- 9568: 62 0E ; Word_num=0x62 CONSOL, length=0x000E (to 0x9578) 956A: 89 07 81 ; Location=0x89, disk_section=7, ext_attr=....----(), attributes=?......S(??,Surface) ; 956D: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x9578) ; CONTROL PANEL 956F: 40 55 F9 BF 12 8A 8F 48 4C ; -------------- Object OBJ_3B_RADIO -------------- 9578: 12 80 BB ; Word_num=0x12 RADIO, length=0x00BB (to 0x9636) 957B: A2 02 80 ; Location=0xA2, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 957E: 03 01 ; Section=03:SECTION_03_DESCRIPTION, length=0x0001 (to 0x9581) 9580: B9 ; FN_B9_PRINT_JUKEBOX ; 9581: 07 80 AC ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x00AC (to 0x9630) 9584: 0D 80 A9 ; COM_0D_group_AND length=0x00A9 (to 0x9630) 9587: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) 9589: 04 80 A0 ; COM_04_print_message length=0x00A0 (to 0x962C) 958C: 24 1B 83 46 D5 83 AF 55 3F 60 DB F9 8E 48 82 17 959C: 48 5E 71 48 4B C6 75 5B 84 BF FF 18 DC F8 27 60 95AC: 4F 15 34 60 7C B3 3F B5 55 F4 8E BE 0B 8A 0F 9B 95BC: 03 BA 16 6C 91 7A 82 17 55 5E EB BF B7 98 A8 17 95CC: CE 9C 8E 48 91 7A D0 15 82 17 46 5E 57 62 D7 B3 95DC: DF 16 66 A0 43 5E 5B B1 CB 62 23 56 90 BE D6 6A 95EC: DB 72 2F 49 48 45 A3 A0 CE 92 4B 62 39 49 8E C5 95FC: 59 F4 50 5E 6B A1 76 B1 38 C6 89 17 C7 16 94 AF 960C: 87 60 54 8B EC 16 04 9F 7F 48 96 19 DB 72 C6 B0 961C: AB 7A 69 4D 9D 7A E6 16 4B 4A AB 98 B5 94 EF 78 ; ; "CRAAAK SCREEE... AND THE FAMOUS DOCTOR ...VREEE ; FEEERRRRR... STILL INVESTIGATING THE STRANGE UFO LANDING IN ; THE DESERT. PEOPLE ARE EVACUATING THE AREA FOR MILES ; AROUND. WE NOW RETURN TO OUR REGULAR PROGRAM." THE RADIO ; BEGINS PLAYING MUSIC. ; 962C: 1E 3B 3C ; COM_1E_swap_object_locations(obj1=OBJ_3B_RADIO, obj2=OBJ_3C_RADIO) 962F: 38 ; COM_38_bump_score() ; ; end group_AND at 0x9584 ; 9630: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x9636) ; RADIO 9632: C6 B0 AB 7A ; -------------- Object OBJ_3C_RADIO -------------- 9636: 12 64 ; Word_num=0x12 RADIO, length=0x0064 (to 0x969C) 9638: 00 02 80 ; Location=0x00, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 963B: 03 1E ; Section=03:SECTION_03_DESCRIPTION, length=0x001E (to 0x965B) 963D: 04 1C ; COM_04_print_message length=0x001C (to 0x965B) 963F: 5F BE 2B 17 91 5A D0 15 82 17 45 5E B8 A0 23 62 964F: 4B 7B FB A5 D0 DD CF 6A 5B C6 5B 57 ; ; THE RADIO IN THE CORNER IS PLAYING MUSIC. ; ; 965B: 07 39 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0039 (to 0x9696) 965D: 0E 37 ; COM_0E_group_OR length=0x0037 (to 0x9696) 965F: 0D 17 ; COM_0D_group_AND length=0x0017 (to 0x9678) 9661: 0A 51 ; COM_0A_is_input_phrase(phrase=TURN * OFF u.......) 9663: 04 10 ; COM_04_print_message length=0x0010 (to 0x9675) 9665: 5F BE 2B 17 91 5A AF 14 3F 55 4B 62 AB AD 97 62 ; ; THE RADIO BECOMES QUIET. ; 9675: 1E 3C 4F ; COM_1E_swap_object_locations(obj1=OBJ_3C_RADIO, obj2=OBJ_4F_RADIO) ; ; end group_AND at 0x965F 9678: 0D 1C ; COM_0D_group_AND length=0x001C (to 0x9696) 967A: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) 967C: 04 18 ; COM_04_print_message length=0x0018 (to 0x9696) 967E: 43 77 EF 8D 13 47 9F 15 23 49 5F BE 77 16 45 B8 968E: 05 EE 85 48 1B BC 18 A1 ; ; I ALREADY HEAR THE MUSIC, CAN'T YOU? ; ; ; end group_AND at 0x9678 ; ; end group_OR at 0x965D ; 9696: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x969C) ; RADIO 9698: C6 B0 AB 7A ; -------------- Object OBJ_3D_BOTTLE -------------- 969C: 11 38 ; Word_num=0x11 BOTTLE, length=0x0038 (to 0x96D6) 969E: 44 A0 AE ; Location=0x44, disk_section=0, ext_attr=G.C.----(Glass,Closed), attributes=?.P.ORH.(??,Portable,Openable,Readable,Holder) ; 96A1: 03 12 ; Section=03:SECTION_03_DESCRIPTION, length=0x0012 (to 0x96B5) 96A3: 04 10 ; COM_04_print_message length=0x0010 (to 0x96B5) 96A5: 5F BE 5B B1 4B 7B 44 45 0E A1 DB 8B F4 72 DB 63 ; ; THERE IS A BOTTLE HERE. ; ; 96B5: 07 16 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0016 (to 0x96CD) 96B7: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0x96CD) 96B9: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 96BB: 04 10 ; COM_04_print_message length=0x0010 (to 0x96CD) 96BD: C1 1B 73 9E 04 68 FA 17 73 49 CE 47 DB B5 DC 4A ; ; "GOOD FOR WHAT AILS YA." ; ; ; end group_AND at 0x96B7 ; 96CD: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0x96D0) 96CF: 06 ; weight=6 ; 96D0: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x96D6) ; BOTTLE 96D2: 06 4F FF BE ; -------------- Object OBJ_3E_OVAL -------------- 96D6: 4A 06 ; Word_num=0x4A BUTTON, length=0x0006 (to 0x96DE) 96D8: 00 07 00 ; Location=0x00, disk_section=7, ext_attr=....----(), attributes=........() ; 96DB: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x96DE) 96DD: 15 ; BRASS ; -------------- Object OBJ_3F_YELLOW_BUTTON -------------- 96DE: 4A 14 ; Word_num=0x4A BUTTON, length=0x0014 (to 0x96F4) 96E0: FF 07 80 ; Location=0xFF, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; 96E3: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x96E6) 96E5: AF ; FN_AF_PRINT_I_SEE_NO_noun1_HERE ; 96E6: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x96E9) 96E8: 48 ; YELLOW ; 96E9: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x96F4) ; YELLOW BUTTON 96EB: 2E DD 89 8D BF 14 49 C0 4E ; -------------- Object OBJ_40_RED_BUTTON -------------- 96F4: 4A 12 ; Word_num=0x4A BUTTON, length=0x0012 (to 0x9708) 96F6: FF 07 80 ; Location=0xFF, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; 96F9: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x96FC) 96FB: AF ; FN_AF_PRINT_I_SEE_NO_noun1_HERE ; 96FC: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x96FF) 96FE: 13 ; RED ; 96FF: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0x9708) ; RED BUTTON 9701: 66 B1 BF 14 49 C0 4E ; -------------- Object OBJ_41_BLUE_BUTTON -------------- 9708: 4A 13 ; Word_num=0x4A BUTTON, length=0x0013 (to 0x971D) 970A: FF 07 80 ; Location=0xFF, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; 970D: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x9710) 970F: AF ; FN_AF_PRINT_I_SEE_NO_noun1_HERE ; 9710: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x9713) 9712: 0D ; BLUE ; 9713: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0x971D) ; BLUE BUTTON 9715: 8F 4E 44 5E 8E C6 03 A0 ; -------------- Object OBJ_42_ORANGE_BUTTON -------------- 971D: 4A 14 ; Word_num=0x4A BUTTON, length=0x0014 (to 0x9733) 971F: FF 07 80 ; Location=0xFF, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; 9722: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x9725) 9724: AF ; FN_AF_PRINT_I_SEE_NO_noun1_HERE ; 9725: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0x9728) 9727: 49 ; ORANGE ; 9728: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x9733) ; ORANGE BUTTON 972A: AB A0 B7 98 BF 14 49 C0 4E ; -------------- Object OBJ_43_BROWN_LIQUID -------------- 9733: 4C 3B ; Word_num=0x4C WHISKE, length=0x003B (to 0x9770) 9735: 3D 10 A0 ; Location=0x3D, disk_section=0, ext_attr=...Q----(liQuid), attributes=?.P.....(??,Portable) ; 9738: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x973C) 973A: 74 ; CLEAR 973B: 73 ; BROWN ; 973C: 07 22 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0022 (to 0x9760) 973E: 0E 20 ; COM_0E_group_OR length=0x0020 (to 0x9760) 9740: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x9754) 9742: 0A 4F ; COM_0A_is_input_phrase(phrase=DRINK u....... * *) 9744: 04 0A ; COM_04_print_message length=0x000A (to 0x9750) 9746: 13 9F E9 99 E9 16 61 7B 2B 96 ; ; OH NO! POISON! ; 9750: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 9752: 1D 6E ; COM_1D_attack_var(points=110) ; ; end group_AND at 0x9740 9754: 0D 0A ; COM_0D_group_AND length=0x000A (to 0x9760) 9756: 0A 59 ; COM_0A_is_input_phrase(phrase=TASTE u....... * *) 9758: 04 06 ; COM_04_print_message length=0x0006 (to 0x9760) 975A: 23 D1 97 B8 EB DA ; ; WHISKEY! ; ; ; end group_AND at 0x9754 ; ; end group_OR at 0x973E ; 9760: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0x9770) ; CLEAR BROWN SOLUTION 9762: BF 54 23 49 79 4F 03 D2 3E B9 83 C6 03 A0 ; -------------- Object OBJ_44_BAR -------------- 9770: 4D 07 ; Word_num=0x4D BAR, length=0x0007 (to 0x9779) 9772: A2 02 81 ; Location=0xA2, disk_section=2, ext_attr=....----(), attributes=?......S(??,Surface) ; 9775: 02 02 ; Section=02:SECTION_02_SHORT_NAME, length=0x0002 (to 0x9779) ; BAR 9777: D4 4C ; -------------- Object OBJ_45_SINK -------------- 9779: 4E 25 ; Word_num=0x4E SINK, length=0x0025 (to 0x97A0) 977B: A2 02 82 ; Location=0xA2, disk_section=2, ext_attr=....----(), attributes=?.....H.(??,Holder) ; 977E: 03 1B ; Section=03:SECTION_03_DESCRIPTION, length=0x001B (to 0x979B) 9780: 04 19 ; COM_04_print_message length=0x0019 (to 0x979B) 9782: 6A 4D 8E 7A 82 17 44 5E 23 49 5F BE 5B B1 4B 7B 9792: 55 45 8E 91 15 8A 95 7A 2E ; ; BEHIND THE BAR THERE IS A SMALL SINK. ; ; 979B: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x97A0) ; SINK 979D: 50 B8 4B ; -------------- Object OBJ_46_WATER -------------- 97A0: 4F 4E ; Word_num=0x4F WATER, length=0x004E (to 0x97F0) 97A2: 45 10 A0 ; Location=0x45, disk_section=0, ext_attr=...Q----(liQuid), attributes=?.P.....(??,Portable) ; 97A5: 01 02 ; Section=01:SECTION_01_ADJECTIVES, length=0x0002 (to 0x97A9) 97A7: 72 ; COOL 97A8: 74 ; CLEAR ; 97A9: 07 2D ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x002D (to 0x97D8) 97AB: 0E 2B ; COM_0E_group_OR length=0x002B (to 0x97D8) 97AD: 0D 12 ; COM_0D_group_AND length=0x0012 (to 0x97C1) 97AF: 0A 59 ; COM_0A_is_input_phrase(phrase=TASTE u....... * *) 97B1: 04 0E ; COM_04_print_message length=0x000E (to 0x97C1) 97B3: 2F 74 56 F4 66 49 4B 62 8B 9F 6B BF 3F 92 ; ; HMM. TASTES OK TO ME. ; ; ; end group_AND at 0x97AD 97C1: 0D 15 ; COM_0D_group_AND length=0x0015 (to 0x97D8) 97C3: 0A 4F ; COM_0A_is_input_phrase(phrase=DRINK u....... * *) 97C5: 04 0D ; COM_04_print_message length=0x000D (to 0x97D4) 97C7: C7 DE 4F 15 33 61 68 B1 75 B1 E6 72 2E ; ; YOU FEEL REFRESHED. ; 97D4: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 97D6: 23 19 ; COM_23_heal_var(points=25) ; ; end group_AND at 0x97C1 ; ; end group_OR at 0x97AB ; 97D8: 02 16 ; Section=02:SECTION_02_SHORT_NAME, length=0x0016 (to 0x97F0) ; SMALL AMOUNT OF COOL CLEAR WATER 97DA: E3 B8 F3 8C 71 48 9E C5 B8 16 E1 14 B3 9F BF 54 97EA: 23 49 16 D0 23 62 ; -------------- Object OBJ_47_COUNTER -------------- 97F0: 50 0A ; Word_num=0x50 COUNTE, length=0x000A (to 0x97FC) 97F2: AA 04 81 ; Location=0xAA, disk_section=4, ext_attr=....----(), attributes=?......S(??,Surface) ; 97F5: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x97FC) ; COUNTER 97F7: 47 55 BF 9A 52 ; -------------- Object OBJ_48_DRESSER -------------- 97FC: 51 0A ; Word_num=0x51 DRESSE, length=0x000A (to 0x9808) 97FE: DE 24 8A ; Location=0xDE, disk_section=4, ext_attr=..C.----(Closed), attributes=?...O.H.(??,Openable,Holder) ; 9801: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x9808) ; DRESSER 9803: EF 5B D7 B9 52 ; -------------- Object OBJ_49_TABLE -------------- 9808: 1A 09 ; Word_num=0x1A DESK, length=0x0009 (to 0x9813) 980A: 83 01 81 ; Location=0x83, disk_section=1, ext_attr=....----(), attributes=?......S(??,Surface) ; 980D: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x9813) ; TABLE 980F: 44 BD DB 8B ; -------------- Object OBJ_4A_HOOD -------------- 9813: 52 3E ; Word_num=0x52 HOOD, length=0x003E (to 0x9853) 9815: 86 21 88 ; Location=0x86, disk_section=1, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; 9818: 07 34 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0034 (to 0x984E) 981A: 0D 32 ; COM_0D_group_AND length=0x0032 (to 0x984E) 981C: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x9822) 981E: 0A 11 ; COM_0A_is_input_phrase(phrase=OPEN u....... * *) 9820: 0A 2D ; COM_0A_is_input_phrase(phrase=PULL * UP u.......) ; ; end group_OR at 0x981C 9822: 04 2A ; COM_04_print_message length=0x002A (to 0x984E) 9824: E9 C5 91 96 F0 A4 91 7A 82 17 4A 5E 36 A0 51 18 9834: 46 C2 55 7B 4F A1 96 AF 56 72 82 17 47 5E BB 98 9844: 5B 98 4B 7B D5 92 50 B8 6B 6A ; ; UPON OPENING THE HOOD YOU DISCOVER THAT THE ENGINE IS ; MISSING! ; ; ; end group_AND at 0x981A ; 984E: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x9853) ; HOOD 9850: 81 74 44 ; -------------- Object OBJ_4B_LIT_DYNAMITE_FUSE -------------- 9853: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0x9858) 9855: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; -------------- Object OBJ_4C_BLASTED_SAFE -------------- 9858: 1D 3A ; Word_num=0x1D SAFE, length=0x003A (to 0x9894) 985A: 00 04 82 ; Location=0x00, disk_section=4, ext_attr=....----(), attributes=?.....H.(??,Holder) ; 985D: 03 2B ; Section=03:SECTION_03_DESCRIPTION, length=0x002B (to 0x988A) 985F: 04 29 ; COM_04_print_message length=0x0029 (to 0x988A) 9861: 5F BE 53 17 5B 66 03 A0 5F BE 61 17 82 C6 5B 17 9871: DB 59 C3 9E 5F BE 39 17 DB 9F 55 72 AF 14 83 61 9881: 7B 4E FF B9 11 58 F0 A4 2E ; ; THE SAFE ON THE SOUTH SIDE OF THE ROOM HAS BEEN BLASTED ; OPEN. ; ; 988A: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0x9894) ; BLASTED SAFE 988C: 7B 4E FF B9 15 58 4F 47 ; -------------- Object OBJ_4D_DOOR -------------- 9894: 10 08 ; Word_num=0x10 DOOR, length=0x0008 (to 0x989E) 9896: 9D 05 88 ; Location=0x9D, disk_section=5, ext_attr=....----(), attributes=?...O...(??,Openable) ; 9899: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x989E) ; DOOR 989B: 81 5B 52 ; -------------- Object OBJ_4E_BOULDER -------------- 989E: 54 5F ; Word_num=0x54 BOULDE, length=0x005F (to 0x98FF) 98A0: 9D 05 80 ; Location=0x9D, disk_section=5, ext_attr=....----(), attributes=?.......(??) ; 98A3: 03 25 ; Section=03:SECTION_03_DESCRIPTION, length=0x0025 (to 0x98CA) 98A5: 04 23 ; COM_04_print_message length=0x0023 (to 0x98CA) 98A7: 4F 45 65 49 CF 7B B9 14 3E C5 23 62 89 4E A5 54 98B7: 82 17 47 5E CC 9A 8D 48 4B 5E C9 9A 82 17 55 5E 98C7: 92 73 2E ; ; A MASSIVE BOULDER BLOCKS THE ENTRANCE INTO THE SHIP. ; ; 98CA: 07 2C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x002C (to 0x98F8) 98CC: 0D 2A ; COM_0D_group_AND length=0x002A (to 0x98F8) 98CE: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x98D4) 98D0: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) 98D2: 0A 56 ; COM_0A_is_input_phrase(phrase=DIG u....... WITH u.......) ; ; end group_OR at 0x98CE 98D4: 09 32 ; COM_09_is_noun2(obj=OBJ_32_SHOVEL) 98D6: 04 20 ; COM_04_print_message length=0x0020 (to 0x98F8) 98D8: 55 45 8E 91 12 8A 25 79 51 5E 96 64 DB 72 07 4F 98E8: BF 8B 85 AF EF B3 7F 4E CB B5 C9 9A 0F 15 17 BA ; ; A SMALL PIECE OF THE BOULDER CRUMBLES INTO DUST. ; ; ; end group_AND at 0x98CC ; 98F8: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x98FF) ; BOULDER 98FA: 07 4F BF 8B 52 ; -------------- Object OBJ_4F_RADIO -------------- 98FF: 12 2C ; Word_num=0x12 RADIO, length=0x002C (to 0x992D) 9901: 00 02 80 ; Location=0x00, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 9904: 03 01 ; Section=03:SECTION_03_DESCRIPTION, length=0x0001 (to 0x9907) 9906: B9 ; FN_B9_PRINT_JUKEBOX ; 9907: 07 1E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001E (to 0x9927) 9909: 0D 1C ; COM_0D_group_AND length=0x001C (to 0x9927) 990B: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) 990D: 04 15 ; COM_04_print_message length=0x0015 (to 0x9924) 990F: 5F BE 2B 17 91 5A AF 14 50 6D D2 B5 5B 8B 91 7A 991F: 77 16 45 B8 2E ; ; THE RADIO BEGINS PLAYING MUSIC. ; 9924: 1E 3C 4F ; COM_1E_swap_object_locations(obj1=OBJ_3C_RADIO, obj2=OBJ_4F_RADIO) ; ; end group_AND at 0x9909 ; 9927: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x992D) ; RADIO 9929: C6 B0 AB 7A ; -------------- Object OBJ_50_DRESSER -------------- 992D: 51 0A ; Word_num=0x51 DRESSE, length=0x000A (to 0x9939) 992F: DF 24 8A ; Location=0xDF, disk_section=4, ext_attr=..C.----(Closed), attributes=?...O.H.(??,Openable,Holder) ; 9932: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x9939) ; DRESSER 9934: EF 5B D7 B9 52 ; -------------- Object OBJ_51_CHAIR -------------- 9939: 53 0C ; Word_num=0x53 CHAIR, length=0x000C (to 0x9947) 993B: DE 04 80 ; Location=0xDE, disk_section=4, ext_attr=....----(), attributes=?.......(??) ; 993E: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x9941) 9940: C5 ; FN_C5_ENTER_CLIMB_OUT ; 9941: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x9947) ; CHAIR 9943: 1B 54 23 7B ; -------------- Object OBJ_52_CHAIR -------------- 9947: 53 0C ; Word_num=0x53 CHAIR, length=0x000C (to 0x9955) 9949: DF 04 80 ; Location=0xDF, disk_section=4, ext_attr=....----(), attributes=?.......(??) ; 994C: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x994F) 994E: C5 ; FN_C5_ENTER_CLIMB_OUT ; 994F: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x9955) ; CHAIR 9951: 1B 54 23 7B ; -------------- Object OBJ_53_BED -------------- 9955: 55 0A ; Word_num=0x55 BED, length=0x000A (to 0x9961) 9957: DE 04 80 ; Location=0xDE, disk_section=4, ext_attr=....----(), attributes=?.......(??) ; 995A: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x995D) 995C: C5 ; FN_C5_ENTER_CLIMB_OUT ; 995D: 02 02 ; Section=02:SECTION_02_SHORT_NAME, length=0x0002 (to 0x9961) ; BED 995F: 66 4D ; -------------- Object OBJ_54_BED -------------- 9961: 55 0A ; Word_num=0x55 BED, length=0x000A (to 0x996D) 9963: DF 04 80 ; Location=0xDF, disk_section=4, ext_attr=....----(), attributes=?.......(??) ; 9966: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x9969) 9968: C5 ; FN_C5_ENTER_CLIMB_OUT ; 9969: 02 02 ; Section=02:SECTION_02_SHORT_NAME, length=0x0002 (to 0x996D) ; BED 996B: 66 4D ; -------------- Object OBJ_55_MOUND_SAND -------------- 996D: 57 80 98 ; Word_num=0x57 SAND, length=0x0098 (to 0x9A08) 9970: A0 02 80 ; Location=0xA0, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 9973: 03 34 ; Section=03:SECTION_03_DESCRIPTION, length=0x0034 (to 0x99A9) 9975: 04 32 ; COM_04_print_message length=0x0032 (to 0x99A9) 9977: 5F BE 5B B1 2F 49 99 16 D3 17 44 B8 DB 8B 9E 61 9987: D0 B0 B5 53 56 F4 DB 72 F5 59 3E 62 53 17 33 98 9997: 4B 7B D0 4C A6 85 89 14 D0 47 F3 B9 5F BE F3 17 99A7: 17 8D ; ; THERE ARE NO VISIBLE ENTRANCES. THE DESERT SAND IS BANKED ; AGAINST THE WALL. ; ; 99A9: 07 52 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0052 (to 0x99FD) 99AB: 0E 50 ; COM_0E_group_OR length=0x0050 (to 0x99FD) 99AD: 0D 2A ; COM_0D_group_AND length=0x002A (to 0x99D9) 99AF: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x99B5) 99B1: 0A 56 ; COM_0A_is_input_phrase(phrase=DIG u....... WITH u.......) 99B3: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) ; ; end group_OR at 0x99AF 99B5: 09 32 ; COM_09_is_noun2(obj=OBJ_32_SHOVEL) 99B7: 04 19 ; COM_04_print_message length=0x0019 (to 0x99D2) 99B9: 70 4D 96 5F 16 71 DB 72 10 B7 1B 58 1B A1 95 5A 99C9: 48 55 23 62 46 45 44 A0 21 ; ; BENEATH THE SAND YOU DISCOVER A DOOR! ; 99D2: 17 14 A0 ; COM_17_move_object_to(obj=OBJ_14_DOOR_COVERED_SHELTER, destination=RM_1_A0_??) 99D5: 17 55 00 ; COM_17_move_object_to(obj=OBJ_55_MOUND_SAND, destination=nowhere) 99D8: 38 ; COM_38_bump_score() ; ; end group_AND at 0x99AD 99D9: 0D 22 ; COM_0D_group_AND length=0x0022 (to 0x99FD) 99DB: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x99E1) 99DD: 0A 56 ; COM_0A_is_input_phrase(phrase=DIG u....... WITH u.......) 99DF: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) ; ; end group_OR at 0x99DB 99E1: 09 00 ; COM_09_is_noun2(obj=nothing) 99E3: 04 18 ; COM_04_print_message length=0x0018 (to 0x99FD) 99E5: 5F BE 53 17 33 98 48 B8 0B C0 6C BE 29 A1 1B 71 99F5: 34 A1 53 15 B7 98 AF B3 ; ; THE SAND SIFTS THROUGH YOUR FINGERS. ; ; ; end group_AND at 0x99D9 ; ; end group_OR at 0x99AB ; 99FD: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x9A08) ; MOUND OF SAND 99FF: C7 93 33 98 C3 9E 10 B7 44 ; -------------- Object OBJ_56_SIGN -------------- 9A08: 56 5F ; Word_num=0x56 SIGN, length=0x005F (to 0x9A69) 9A0A: AA 04 84 ; Location=0xAA, disk_section=4, ext_attr=....----(), attributes=?....R..(??,Readable) ; 9A0D: 07 55 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0055 (to 0x9A64) 9A0F: 0D 53 ; COM_0D_group_AND length=0x0053 (to 0x9A64) 9A11: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 9A13: 04 4F ; COM_04_print_message length=0x004F (to 0x9A64) 9A15: 33 1E D3 B2 CE 98 D0 15 D3 14 9B B7 C3 9E 84 BF 9A25: C6 97 C3 9C F3 8C 86 74 33 61 27 6F 0D BA 5A 17 9A35: 2E A1 0F 58 36 60 96 14 82 17 59 5E 66 62 5B 17 9A45: DB 59 C3 9E 5F BE 53 17 81 8D 83 96 33 98 9E 61 9A55: 23 62 5F BE 66 17 B7 A0 5A 17 4E 61 47 62 22 ; ; "WARNING, IN CASE OF TORNADO ALL HOTEL GUESTS SHOULD MEET ; AT THE WEST SIDE OF THE SALOON AND ENTER THE STORM SHELTER." ; ; ; end group_AND at 0x9A0F ; 9A64: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x9A69) ; SIGN 9A66: 49 B8 4E ; -------------- Object OBJ_57_MESSAGE -------------- 9A69: 56 2A ; Word_num=0x56 SIGN, length=0x002A (to 0x9A95) 9A6B: 81 01 84 ; Location=0x81, disk_section=1, ext_attr=....----(), attributes=?....R..(??,Readable) ; 9A6E: 07 1E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001E (to 0x9A8E) 9A70: 0D 1C ; COM_0D_group_AND length=0x001C (to 0x9A8E) 9A72: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 9A74: 04 18 ; COM_04_print_message length=0x0018 (to 0x9A8E) 9A76: 7B 1C F3 B9 1B 54 17 98 10 EE 2E 63 73 15 D5 B5 9A86: 2E 7C 4F DB 3F 7A 5C BB ; ; "LAST CHANCE, NEXT GAS SIXTY MILES." ; ; ; end group_AND at 0x9A70 ; 9A8E: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x9A95) ; MESSAGE 9A90: 35 92 09 B7 45 ; -------------- Object OBJ_58_NEON_SIGN -------------- 9A95: 56 17 ; Word_num=0x56 SIGN, length=0x0017 (to 0x9AAE) 9A97: 96 03 84 ; Location=0x96, disk_section=3, ext_attr=....----(), attributes=?....R..(??,Readable) ; 9A9A: 07 0A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000A (to 0x9AA6) 9A9C: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0x9AA6) 9A9E: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 9AA0: 04 04 ; COM_04_print_message length=0x0004 (to 0x9AA6) 9AA2: EB 1A A3 AF ; ; "BAR" ; ; ; end group_AND at 0x9A9C ; 9AA6: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x9AAE) ; NEON SIGN 9AA8: 71 98 95 96 80 79 ; -------------- Object OBJ_59_AQUARIUM -------------- 9AAE: 58 0B ; Word_num=0x58 AQUARI, length=0x000B (to 0x9ABB) 9AB0: A6 03 8A ; Location=0xA6, disk_section=3, ext_attr=....----(), attributes=?...O.H.(??,Openable,Holder) ; 9AB3: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0x9ABB) ; AQUARIUM 9AB5: 17 49 33 49 5B C5 ; -------------- Object OBJ_5A_ENTRANCE_CLEAR -------------- 9ABB: 54 26 ; Word_num=0x54 BOULDE, length=0x0026 (to 0x9AE3) 9ABD: 00 05 80 ; Location=0x00, disk_section=5, ext_attr=....----(), attributes=?.......(??) ; 9AC0: 03 21 ; Section=03:SECTION_03_DESCRIPTION, length=0x0021 (to 0x9AE3) 9AC2: 04 1F ; COM_04_print_message length=0x001F (to 0x9AE3) 9AC4: 5F BE 30 15 EB BF 17 98 89 17 82 17 55 5E 92 73 9AD4: 9B 15 C4 B5 30 60 B6 14 80 A1 DE 14 94 5F 2E ; ; THE ENTRANCE TO THE SHIP HAS BEEN BLOWN CLEAR. ; ; -------------- Object OBJ_5B_LIMIT_SIGN -------------- 9AE3: 56 18 ; Word_num=0x56 SIGN, length=0x0018 (to 0x9AFD) 9AE5: 89 01 84 ; Location=0x89, disk_section=1, ext_attr=....----(), attributes=?....R..(??,Readable) ; 9AE8: 07 0E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x000E (to 0x9AF8) 9AEA: 0D 0C ; COM_0D_group_AND length=0x000C (to 0x9AF8) 9AEC: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) 9AEE: 04 08 ; COM_04_print_message length=0x0008 (to 0x9AF8) 9AF0: 1B 1B FB C0 8F 8C 74 7B ; ; "CITY LIMIT" ; ; ; end group_AND at 0x9AEA ; 9AF8: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0x9AFD) ; SIGN 9AFA: 49 B8 4E ; -------------- Object OBJ_5C_PAIR_HANDS -------------- 9AFD: 1F 2C ; Word_num=0x1F HAND, length=0x002C (to 0x9B2B) 9AFF: 01 00 C0 ; Location=0x01, disk_section=0, ext_attr=....----(), attributes=?W......(??,Weapon) ; 9B02: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x9B0D) ;; !! All other objects are singular. A plural object wouldn't fit the general error messages. So we need ;; a singluar object -- thus the PAIR. Tada! ; PAIR OF HANDS 9B04: 4B A4 91 AF 8A 64 8E 48 53 ; 9B0D: 07 1C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001C (to 0x9B2B) 9B0F: 0D 1A ; COM_0D_group_AND length=0x001A (to 0x9B2B) 9B11: 0A 06 ; COM_0A_is_input_phrase(phrase=DROP ..C..... * *) 9B13: 04 16 ; COM_04_print_message length=0x0016 (to 0x9B2B) 9B15: C7 DE 49 16 B4 D0 51 18 23 C6 50 72 0B 5C 83 7A 9B25: 95 5A 35 6F 9B C1 ; ; YOU LOWER YOUR HANDS IN DISGUST. ; ; ; end group_AND at 0x9B0F ; -------------- Object OBJ_5D_BARRED_WINDOW_OUTSIDE -------------- 9B2B: 59 47 ; Word_num=0x59 WINDOW, length=0x0047 (to 0x9B74) 9B2D: 8F 02 80 ; Location=0x8F, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 9B30: 07 37 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0037 (to 0x9B69) 9B32: 0D 35 ; COM_0D_group_AND length=0x0035 (to 0x9B69) 9B34: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x9B3A) 9B36: 0A 10 ; COM_0A_is_input_phrase(phrase=LOOK * IN ......O.) 9B38: 0A 0B ; COM_0A_is_input_phrase(phrase=LOOK * AT u.......) ; ; end group_OR at 0x9B34 9B3A: 04 2D ; COM_04_print_message length=0x002D (to 0x9B69) 9B3C: 81 8D 50 86 CB 6A 96 96 DB 72 50 D1 89 5B 1B EE 9B4C: 1B A1 10 53 AB 14 6E B1 55 DB 1B 60 46 45 5D 62 9B5C: 90 14 03 58 87 15 85 96 B3 46 76 98 2E ; ; LOOKING IN THE WINDOW, YOU CAN BARELY SEE A DESK AND A GUN ; CABINET. ; ; ; end group_AND at 0x9B32 ; 9B69: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x9B74) ; BARRED WINDOW 9B6B: D4 4C 66 B1 FB 17 49 98 57 ; -------------- Object OBJ_5E_BARRED_WINDOW_INSIDE -------------- 9B74: 59 3A ; Word_num=0x59 WINDOW, length=0x003A (to 0x9BB0) 9B76: 8E 02 80 ; Location=0x8E, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 9B79: 07 2A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x002A (to 0x9BA5) 9B7B: 0D 28 ; COM_0D_group_AND length=0x0028 (to 0x9BA5) 9B7D: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0x9B83) 9B7F: 0A 10 ; COM_0A_is_input_phrase(phrase=LOOK * IN ......O.) 9B81: 0A 0B ; COM_0A_is_input_phrase(phrase=LOOK * AT u.......) ; ; end group_OR at 0x9B7D 9B83: 04 20 ; COM_04_print_message length=0x0020 (to 0x9BA5) 9B85: C7 DE 57 17 47 5E EE 93 46 DB 57 62 B3 B3 0C BA 9B95: 7D 62 90 73 D6 6A D6 9C DB 72 84 74 79 7C 1B 9C ; ; YOU SEE EMPTY DESERT STRETCHING TO THE HORIZON. ; ; ; end group_AND at 0x9B7B ; 9BA5: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0x9BB0) ; BARRED WINDOW 9BA7: D4 4C 66 B1 FB 17 49 98 57 ; -------------- Object OBJ_5F_SHELTER -------------- 9BB0: 5A 0D ; Word_num=0x5A SHELTE, length=0x000D (to 0x9BBF) 9BB2: A0 02 80 ; Location=0xA0, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 9BB5: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x9BB8) 9BB7: BB ; FN_BB_PRINT_LOOK_IN_AT ; 9BB8: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x9BBF) ; SHELTER 9BBA: 1F B8 3F 8E 52 ; -------------- Object OBJ_60_SHELTER -------------- 9BBF: 5A 0D ; Word_num=0x5A SHELTE, length=0x000D (to 0x9BCE) 9BC1: DB 02 80 ; Location=0xDB, disk_section=2, ext_attr=....----(), attributes=?.......(??) ; 9BC4: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0x9BC7) 9BC6: BB ; FN_BB_PRINT_LOOK_IN_AT ; 9BC7: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0x9BCE) ; SHELTER 9BC9: 1F B8 3F 8E 52 ; -------------- Object OBJ_61_GROUND -------------- 9BCE: 2B 09 ; Word_num=0x2B FLOOR, length=0x0009 (to 0x9BD9) 9BD0: 01 00 80 ; Location=0x01, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; 9BD3: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0x9BD9) ; GROUND 9BD5: B9 6E 8E C5 ; -------------- Object OBJ_62_SHAGGY_CREATURE -------------- 9BD9: 5B 85 24 ; Word_num=0x5B ALIEN, length=0x0524 (to 0xA100) 9BDC: C3 05 90 ; Location=0xC3, disk_section=5, ext_attr=....----(), attributes=?..A....(??,Alive) ; 9BDF: 03 01 ; Section=03:SECTION_03_DESCRIPTION, length=0x0001 (to 0x9BE2) 9BE1: BD ; FN_BD_PRINT_SHAGGY_CREATURE ; ;; 9BE2: 09 02 ; Section=09:SECTION_09_HIT_POINTS, length=0x0002 (to 0x9BE6) 9BE4: 14 14 ; max_hit_points=20 current_hit_points=20 ; ;; 9BE6: 0A 33 ; Section=0A:SECTION_0A_UPON_DEATH, length=0x0033 (to 0x9C1B) 9BE8: 0D 31 ; COM_0D_group_AND length=0x0031 (to 0x9C1B) 9BEA: 1F 28 ; COM_1F_print2 length=0x0028 (to 0x9C14) 9BEC: 5F BE 8E 14 30 79 03 15 4B 62 8E 48 2B 17 86 A5 9BFC: FB 8E E5 59 55 4A 89 17 0F 15 F3 B9 68 4D AF A0 9C0C: 51 18 23 C6 47 63 5B BB ; ; THE ALIEN DIES AND RAPIDLY DECAYS TO DUST BEFORE YOUR EYES. ; 9C14: 17 62 C3 ; COM_17_move_object_to(obj=OBJ_62_SHAGGY_CREATURE, destination=RM_1_C3_??) 9C17: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9C19: 23 4B ; COM_23_heal_var(points=75) ; ; end group_AND at 0x9BE8 ; ;; ;; The various ways the alien can be attacked with colorful descriptions of the action: ;; - with HANDS ;; - 0-38: 15% "fists pound" for 9 points of damage ;; - 39-90: 20% "bones crunch" for 6 ;; - 91-141: 20% "against the ground" for 4 ;; - 142-179: 15% "swing misses" no damage ;; - 180-217: 15% "blocks your blow" no damage ;; - 218-255: 15% "alien ducks" no damage ;; - with a weapon ;; - SHOVEL, SHOTGUN, or CROWBAR (shooting the shotgun is handled by the general script: 21 damage "limp body falls") ;; - 0-25: 10% "smashes down upon the head" for 21 points of damage ;; - 24-63: 15% "alien in its side" for 11 ;; - 64-114: 20% "bursting flesh open" for 6 ;; - 115-165: 20% "glances harmlessly" no damage ;; - 166-203: 15% "misses the alien" no damage ;; - 204-255: 20% "entangles your arms" no damage 9C1B: 07 82 DE ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x02DE (to 0x9EFC) 9C1E: 0D 82 DB ; COM_0D_group_AND length=0x02DB (to 0x9EFC) 9C21: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) 9C23: 0E 82 D6 ; COM_0E_group_OR length=0x02D6 (to 0x9EFC) 9C26: 0D 81 65 ; COM_0D_group_AND length=0x0165 (to 0x9D8E) 9C29: 09 5C ; COM_09_is_noun2(obj=OBJ_5C_PAIR_HANDS) 9C2B: 0B 81 60 05 ; COM_0B_switch length=0x0160 (to 0x9D8F), function=COM_05_is_less_equal_last_random(value) 9C2F: 26 44 ; case COM_05_is_less_equal_last_random(value=38), length=0x0044 9C31: 0D 42 ; COM_0D_group_AND length=0x0042 (to 0x9C75) 9C33: 04 3C ; COM_04_print_message length=0x003C (to 0x9C71) 9C35: 5F BE 8E 14 30 79 66 17 79 47 3D 62 AB 14 8B 54 9C45: 4B 49 C7 DE 88 AF 66 7B D2 B5 30 A1 0B 58 C9 9A 9C55: D6 15 C8 B5 D7 46 09 EE 67 B1 8B 96 29 54 85 AF 9C65: 4F A1 8B B3 C7 DE 8A AF 8E 48 6B B5 ; ; THE ALIEN STAGGERS BACK AS YOUR FISTS POUND INTO ITS FACE, ; GREEN ICHOR COVERS YOUR HANDS! ; 9C71: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9C73: 1D 09 ; COM_1D_attack_var(points=9) ; ; end group_AND at 0x9C31 ; ; end case 9C75: 5A 3E ; case COM_05_is_less_equal_last_random(value=90), length=0x003E 9C77: 0D 3C ; COM_0D_group_AND length=0x003C (to 0x9CB5) 9C79: 04 36 ; COM_04_print_message length=0x0036 (to 0x9CB1) 9C7B: 5F BE 8E 14 30 79 D5 15 57 17 B3 9A 67 B1 90 8C 9C8B: C4 6A 43 DB F7 17 F3 8C FB A5 A6 53 1B 16 AF 54 9C9B: 51 18 48 C2 2E 60 B9 14 75 98 E4 14 8D C5 19 71 9CAB: 82 7B 83 7A 71 7B ; ; THE ALIEN IS SENT REELING BY A WELL PLACED KICK. YOU FEEL ; BONES CRUNCH WITHIN IT! ; 9CB1: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9CB3: 1D 06 ; COM_1D_attack_var(points=6) ; ; end group_AND at 0x9C77 ; ; end case 9CB5: 8D 54 ; case COM_05_is_less_equal_last_random(value=141), length=0x0054 9CB7: 0D 52 ; COM_0D_group_AND length=0x0052 (to 0x9D0B) 9CB9: 04 4C ; COM_04_print_message length=0x004C (to 0x9D07) 9CBB: 5F BE 5A 17 79 47 44 DB 09 B3 88 96 23 C6 58 6D 9CCB: 4B 62 C7 DE 7B 14 14 67 49 90 12 B2 95 14 51 18 9CDB: 4A C2 55 9F 16 BC DB 72 43 48 83 61 4F A1 9B AF 9CEB: 34 A1 9F 15 F3 46 8E 48 5F 17 5A 49 A3 15 43 90 9CFB: 0B 6C A6 9A 82 17 49 5E 07 B3 31 98 ; ; THE SHAGGY BROWN FUR GIVES YOU A FIRM GRIP AS YOU HOIST THE ; ALIEN OVER YOUR HEAD AND SMASH HIM AGAINST THE GROUND! ; 9D07: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9D09: 1D 04 ; COM_1D_attack_var(points=4) ; ; end group_AND at 0x9CB7 ; ; end case 9D0B: B3 2B ; case COM_05_is_less_equal_last_random(value=179), length=0x002B 9D0D: 04 29 ; COM_04_print_message length=0x0029 (to 0x9D38) 9D0F: C7 DE 95 AF 50 D1 CF 6A 65 7B 4B 62 5F BE 8E 14 9D1F: 30 79 90 14 1B 58 1B A1 47 48 E6 A0 49 16 9B B7 9D2F: C7 DE 84 AF 3B 48 17 98 2E ; ; YOUR SWING MISSES THE ALIEN AND YOU ALMOST LOSE YOUR ; BALANCE. ; ; ; end case 9D38: D9 2B ; case COM_05_is_less_equal_last_random(value=217), length=0x002B 9D3A: 04 29 ; COM_04_print_message length=0x0029 (to 0x9D65) 9D3C: 5F BE 8E 14 30 79 B6 14 5D 9E DB B5 34 A1 B6 14 9D4C: 85 A1 FB 17 53 BE 95 73 94 14 4B 94 8E 48 3F 17 9D5C: 1F B8 C8 B5 C1 A0 2E 49 2E ; ; THE ALIEN BLOCKS YOUR BLOWS WITH HIS ARMS AND RUSHES ; FORWARD. ; ; ; end case 9D65: FF 27 ; case COM_05_is_less_equal_last_random(value=255), length=0x0027 9D67: 04 25 ; COM_04_print_message length=0x0025 (to 0x9D8E) 9D69: 5F BE 8E 14 30 79 0F 15 A5 54 B0 17 F4 59 7B 14 9D79: 4E D1 0D 58 DD 78 5B F4 1B A1 65 B1 4F A1 93 AF 9D89: C5 C4 D3 86 2E ; ; THE ALIEN DUCKS UNDER A WILD KICK. YOU RECOVER QUICKLY. ; ; ; end case ; ; end decode_switch at 0x9C2B ; ; end group_AND at 0x9C26 ;; ;; Attacks with a weapon ;; 9D8E: 0D 81 6B ; COM_0D_group_AND length=0x016B (to 0x9EFC) 9D91: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x9D99) 9D93: 09 32 ; COM_09_is_noun2(obj=OBJ_32_SHOVEL) 9D95: 09 28 ; COM_09_is_noun2(obj=OBJ_28_SHOTGUN) 9D97: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) ; ; end group_OR at 0x9D91 9D99: 0B 81 60 05 ; COM_0B_switch length=0x0160 (to 0x9EFD), function=COM_05_is_less_equal_last_random(value) 9D9D: 19 3F ; case COM_05_is_less_equal_last_random(value=25), length=0x003F 9D9F: 0D 3D ; COM_0D_group_AND length=0x003D (to 0x9DDE) 9DA1: 04 03 ; COM_04_print_message length=0x0003 (to 0x9DA6) 9DA3: C7 DE 52 ; ; YOUR ; 9DA6: 12 ; COM_12_print_noun2() 9DA7: 04 31 ; COM_04_print_message length=0x0031 (to 0x9DDA) 9DA9: E3 B8 1F B8 C6 B5 80 A1 B2 17 03 A0 5F BE 9F 15 9DB9: F3 46 C3 9E 5F BE 8E 14 30 79 09 EE 67 B1 8B 96 9DC9: 29 54 95 AF EB A6 4B DF C7 DE 85 AF 86 8D F5 72 9DD9: 21 ; ; SMASHES DOWN UPON THE HEAD OF THE ALIEN, GREEN ICHOR SPRAYS ; YOUR CLOTHES! ; 9DDA: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9DDC: 1D 15 ; COM_1D_attack_var(points=21) ; ; end group_AND at 0x9D9F ; ; end case 9DDE: 3F 53 ; case COM_05_is_less_equal_last_random(value=63), length=0x0053 9DE0: 0D 51 ; COM_0D_group_AND length=0x0051 (to 0x9E33) 9DE2: 04 03 ; COM_04_print_message length=0x0003 (to 0x9DE7) 9DE4: C7 DE 52 ; ; YOUR ; 9DE7: 12 ; COM_12_print_noun2() 9DE8: 04 45 ; COM_04_print_message length=0x0045 (to 0x9E2F) 9DEA: 0C BA 17 7A D6 B5 DB 72 43 48 83 61 83 7A 8D 7B 9DFA: 5B 17 FE 59 51 18 48 C2 2E 60 B9 14 75 98 E4 14 9E0A: 8D C5 19 71 82 7B 83 7A 97 7B 82 17 43 5E 87 8C 9E1A: 95 96 04 9A 0B C0 4F 45 66 7B B8 16 84 15 30 60 9E2A: B6 14 36 A0 2E ; ; STRIKES THE ALIEN IN ITS SIDE, YOU FEEL BONES CRUNCH WITHIN ; IT. THE ALIEN SNORTS A MIST OF GREEN BLOOD. ; 9E2F: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9E31: 1D 0B ; COM_1D_attack_var(points=11) ; ; end group_AND at 0x9DE0 ; ; end case 9E33: 72 48 ; case COM_05_is_less_equal_last_random(value=114), length=0x0048 9E35: 0D 46 ; COM_0D_group_AND length=0x0046 (to 0x9E7D) 9E37: 04 03 ; COM_04_print_message length=0x0003 (to 0x9E3C) 9E39: C7 DE 52 ; ; YOUR ; 9E3C: 12 ; COM_12_print_noun2() 9E3D: 04 3A ; COM_04_print_message length=0x003A (to 0x9E79) 9E3F: 96 73 D6 B5 DB 72 43 48 85 61 C3 B5 9B B2 F4 4F 9E4F: 03 BA AB 98 5F BE 56 15 5A 62 C2 16 A7 61 84 15 9E5F: 30 60 C5 15 84 74 56 15 85 A1 5C 15 2E 60 48 DB 9E6F: FF B2 82 17 59 5E 30 A1 AB 57 ; ; HITS THE ALIEN'S ARM BURSTING THE FLESH OPEN. GREEN ICHOR ; FLOWS FREELY FROM THE WOUND! ; 9E79: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9E7B: 1D 06 ; COM_1D_attack_var(points=6) ; ; end group_AND at 0x9E35 ; ; end case 9E7D: A5 25 ; case COM_05_is_less_equal_last_random(value=165), length=0x0025 9E7F: 0D 23 ; COM_0D_group_AND length=0x0023 (to 0x9EA4) 9E81: 04 03 ; COM_04_print_message length=0x0003 (to 0x9E86) 9E83: C7 DE 52 ; ; YOUR ; 9E86: 12 ; COM_12_print_noun2() 9E87: 04 1B ; COM_04_print_message length=0x001B (to 0x9EA4) 9E89: BB 6D 17 98 CA B5 37 49 F5 8B D3 B8 B8 16 96 64 9E99: DB 72 43 48 85 61 C4 B5 93 9E 2E ; ; GLANCES HARMLESSLY OFF THE ALIEN'S BODY. ; ; ; end group_AND at 0x9E7F ; ; end case 9EA4: CB 26 ; case COM_05_is_less_equal_last_random(value=203), length=0x0026 9EA6: 0D 24 ; COM_0D_group_AND length=0x0024 (to 0x9ECC) 9EA8: 04 03 ; COM_04_print_message length=0x0003 (to 0x9EAD) 9EAA: C7 DE 52 ; ; YOUR ; 9EAD: 12 ; COM_12_print_noun2() 9EAE: 04 1C ; COM_04_print_message length=0x001C (to 0x9ECC) 9EB0: D5 92 B5 B7 82 17 43 5E 87 8C 83 96 CB B5 16 BC 9EC0: 55 D1 0B C0 6B BF 0F A0 5B 17 FF 59 ; ; MISSES THE ALIEN AS IT TWISTS TO ONE SIDE. ; ; ; end group_AND at 0x9EA6 ; ; end case 9ECC: FF 2E ; case COM_05_is_less_equal_last_random(value=255), length=0x002E 9ECE: 0D 2C ; COM_0D_group_AND length=0x002C (to 0x9EFC) 9ED0: 04 23 ; COM_04_print_message length=0x0023 (to 0x9EF5) 9ED2: 5F BE 8E 14 30 79 30 15 50 BD BF 6D DB B5 34 A1 9EE2: 94 14 6E 94 EC 16 CF 62 C3 9A AB 98 5F BE B5 17 9EF2: 51 5E 46 ; ; THE ALIEN ENTANGLES YOUR ARMS, PREVENTING THE USE OF ; 9EF5: A9 ; FN_A9_PRINT_noun2 9EF6: 04 04 ; COM_04_print_message length=0x0004 (to 0x9EFC) 9EF8: 03 A0 97 7B ; ; ON IT. ; ; ; end group_AND at 0x9ECE ; ; end case ; ; end decode_switch at 0x9D99 ; ; end group_AND at 0x9D8E ; ; end group_OR at 0x9C23 ; ; end group_AND at 0x9C1E ; 9EFC: 08 81 F1 ; Section=08:SECTION_08_EVERY_TURN, length=0x01F1 (to 0xA0F0) ;; ;; Remember, this EVERY_TURN script only runs if the player is in the same disk section (Section5). The SHAGGY_CREATURE is ;; thus confined to Section5. If the player moves out (like to town or the right half of the desert) then SHAGGY stops ;; moving until the player comes back to Section5. ;; ;; The SHAGGY_CREATURE will not follow the player or teleport to RM_5_DB (dead alien) or RM_5_E8 (prospector). ;; ;; Here is the SHAGGY_CREATURE's logic: ;; ;; IF the player is NOT in the same room as shaggy AND shaggy is NOT in its starting room: ;; IF the player is NOT in RM_5_DB and the player is NOT in RM_5_E8: ;; IF the player just made a movement command: ;; make the same movement command ;; print "something is following you" ;; ELIF the player is NOT in the same room as shaggy ;; IF the player just made a movement command: ;; IF the player is NOT in RM_5_DB and the player is NOT in RM_5_E8: ;; 15% chance of teleporting to the player ;; ELIF the player is in the same room as shaggy: ;; random chance to make one of the following attacks: ;; - 10% "teeth pierce your flesh" for 9 points of damage ;; - 10% "claw's rend your flesh" for 6 ;; - 15% "arms try to crush" for 3 ;; - 20% "kick it back" no damage ;; - 20% "jumping backwards" no damage ;; - 25% "rushes past" no damage ;; ;; Not in same room -- attempt to follow the player 9EFF: 0E 81 EE ; COM_0E_group_OR length=0x01EE (to 0xA0F0) 9F02: 0D 47 ; COM_0D_group_AND length=0x0047 (to 0x9F4B) 9F04: 14 ; COM_14_reverse_status next command 9F05: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9F07: 14 ; COM_14_reverse_status next command 9F08: 03 C3 62 ; COM_03_is_located(owner=RM_1_C3_??, obj=OBJ_62_SHAGGY_CREATURE) ;; Start room RM_5_DESERT11 9F0B: 14 ; COM_14_reverse_status next command 9F0C: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x9F14) 9F0E: 03 DB 01 ; COM_03_is_located(owner=RM_1_DB_??, obj=OBJ_01_PLAYER) ;; RM_5_DB (where the rod and sphere are) 9F11: 03 E8 01 ; COM_03_is_located(owner=RM_1_E8_??, obj=OBJ_01_PLAYER) ;; RM_5_E8 (where the prospector is) ; ; end group_OR at 0x9F0C 9F14: 0B 19 0A ; COM_0B_switch length=0x0019 (to 0x9F30), function=COM_0A_is_input_phrase(phrase_num) 9F17: 04 04 ; case COM_0A_is_input_phrase("WEST * * *"), length=0x0004 9F19: 21 04 00 00 ; COM_21_execute_phrase(phrase=WEST * * *, obj1=nothing, obj2=nothing) ; ; end case 9F1D: 03 04 ; case COM_0A_is_input_phrase("EAST * * *"), length=0x0004 9F1F: 21 03 00 00 ; COM_21_execute_phrase(phrase=EAST * * *, obj1=nothing, obj2=nothing) ; ; end case 9F23: 01 04 ; case COM_0A_is_input_phrase("NORTH * * *"), length=0x0004 9F25: 21 01 00 00 ; COM_21_execute_phrase(phrase=NORTH * * *, obj1=nothing, obj2=nothing) ; ; end case 9F29: 02 04 ; case COM_0A_is_input_phrase("SOUTH * * *"), length=0x0004 9F2B: 21 02 00 00 ; COM_21_execute_phrase(phrase=SOUTH * * *, obj1=nothing, obj2=nothing) ; ; end case ; ; end decode_switch at 0x9F14 9F2F: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9F31: 1F 18 ; COM_1F_print2 length=0x0018 (to 0x9F4B) 9F33: 3F B9 82 62 91 7A 57 17 75 61 89 17 AF 14 59 15 9F43: 09 8D 50 D1 DB 6A 3F A1 ; ; SOMETHING SEEMS TO BE FOLLOWING YOU. ; ; ; end group_AND at 0x9F02 ;; Not in same room -- try teleporting to the player 9F4B: 0D 1E ; COM_0D_group_AND length=0x001E (to 0x9F6B) 9F4D: 14 ; COM_14_reverse_status next command 9F4E: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9F50: 05 26 ; COM_05_is_leq_last_random(value=38) ;; 15% chance to move the alien here 9F52: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0x9F5C) 9F54: 0A 01 ; COM_0A_is_input_phrase(phrase=NORTH * * *) 9F56: 0A 02 ; COM_0A_is_input_phrase(phrase=SOUTH * * *) 9F58: 0A 03 ; COM_0A_is_input_phrase(phrase=EAST * * *) 9F5A: 0A 04 ; COM_0A_is_input_phrase(phrase=WEST * * *) ; ; end group_OR at 0x9F52 9F5C: 14 ; COM_14_reverse_status next command 9F5D: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0x9F65) 9F5F: 03 DB 01 ; COM_03_is_located(owner=RM_1_DB_??, obj=OBJ_01_PLAYER) 9F62: 03 E8 01 ; COM_03_is_located(owner=RM_1_E8_??, obj=OBJ_01_PLAYER) ; ; end group_OR at 0x9F5D 9F65: 2C 01 ; COM_2C_set_active(obj=OBJ_01_PLAYER) 9F67: 1C 62 ; COM_1C_set_var_object(obj=OBJ_62_SHAGGY_CREATURE) 9F69: 10 ; COM_10_drop_var() 9F6A: BD ; FN_BD_PRINT_SHAGGY_CREATURE ; ; end group_AND at 0x9F4B ;; ;; Same room -- make a random attack ;; 0-25 10% "teeth pierce your flesh" for 9 points of damage ;; 26-52 10% "claw's rend your flesh" for 6 ;; 53-90 15% "arms try to crush" for 3 ;; 91-141 20% "kick it back" no damage ;; 142-192 20% "jumping backwards" no damage ;; 193-255 25% "rushes past" no damage 9F6B: 14 ; COM_14_reverse_status next command 9F6C: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) 9F6E: 0B 81 7F 05 ; COM_0B_switch length=0x017F (to 0xA0F1), function=COM_05_is_less_equal_last_random(value) 9F72: 19 46 ; case COM_05_is_less_equal_last_random(value=25), length=0x0046 9F74: 0D 44 ; COM_0D_group_AND length=0x0044 (to 0x9FBA) 9F76: 1F 3B ; COM_1F_print2 length=0x003B (to 0x9FB3) 9F78: 59 45 CF 49 B8 16 B6 14 8E 7A 91 7A DB 16 83 7A 9F88: 89 67 8D 9E 82 17 07 B3 13 6D C7 DE 84 AF 93 9E 9F98: 95 14 2B 17 04 E5 5A 17 3A 49 7F 17 82 62 E3 16 9FA8: 2D 62 5B 5E 34 A1 56 15 5A 62 21 ; ; A WAVE OF BLINDING PAIN FLOODS THROUGH YOUR BODY AS RAZOR ; SHARP TEETH PIERCE YOUR FLESH! ; 9FB3: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 9FB5: 1D 09 ; COM_1D_attack_var(points=9) 9FB7: 17 91 01 ; COM_17_move_object_to(obj=OBJ_91_ALIEN_POISON, destination=OBJ_01_PLAYER) ; ; end group_AND at 0x9F74 ; ; end case 9FBA: 34 34 ; case COM_05_is_less_equal_last_random(value=52), length=0x0034 9FBC: 0D 32 ; COM_0D_group_AND length=0x0032 (to 0x9FF0) 9FBE: 1F 29 ; COM_1F_print2 length=0x0029 (to 0x9FE9) 9FC0: C7 DE 4F 15 33 61 55 45 94 5F 91 7A DB 16 83 7A 9FD0: 4B 49 5F BE 8E 14 30 79 CB 23 BB 54 CB D2 70 B1 9FE0: 1B 58 34 A1 56 15 5A 62 21 ; ; YOU FEEL A SEARING PAIN AS THE ALIEN'S CLAWS REND YOUR ; FLESH! ; 9FE9: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) 9FEB: 1D 06 ; COM_1D_attack_var(points=6) 9FED: 17 91 01 ; COM_17_move_object_to(obj=OBJ_91_ALIEN_POISON, destination=OBJ_01_PLAYER) ; ; end group_AND at 0x9FBC ; ; end case 9FF0: 5A 4C ; case COM_05_is_less_equal_last_random(value=90), length=0x004C 9FF2: 0D 4A ; COM_0D_group_AND length=0x004A (to 0xA03E) 9FF4: 1F 44 ; COM_1F_print2 length=0x0044 (to 0xA03A) 9FF6: 5F BE 8E 14 30 79 84 15 EA 48 F5 8B 51 18 EB C1 A006: 4B 49 8D 7B 5E 17 7B 7A 94 14 4B 94 03 C0 89 17 A016: E4 14 5A C6 82 17 4E 5E 4F 79 C7 16 11 BC 9B 64 A026: 3E A1 51 18 23 C6 04 B2 C4 B5 7B 60 96 96 C4 9C A036: 8E 61 FF F9 ; ; THE ALIEN GRAPPLES YOU! AS ITS SLIMY ARMS TRY TO CRUSH THE ; LIFE OUT OF YOU, YOUR RIBS BEGIN TO BEND... ; A03A: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A03C: 1D 03 ; COM_1D_attack_var(points=3) ; ; end group_AND at 0x9FF2 ; ; end case A03E: 8D 43 ; case COM_05_is_less_equal_last_random(value=141), length=0x0043 A040: 1F 41 ; COM_1F_print2 length=0x0041 (to 0xA083) A042: 5F BE 8E 14 30 79 CB 23 BB B8 74 CA 91 7A 7F 17 A052: 82 62 EF 16 13 B8 04 68 14 D0 16 58 73 A1 4D B1 A062: 51 18 B3 C7 F6 4F 51 18 56 C2 55 D1 16 BC D6 9C A072: DB 72 46 B8 43 5E 33 98 45 86 CB 83 04 BC DD 46 A082: 2E ; ; THE ALIEN'S SLAVERING TEETH PUSH FORWARD TOWARDS YOU, BUT ; YOU TWIST TO THE SIDE AND KICK IT BACK. ; ; ; end case A083: C0 3C ; case COM_05_is_less_equal_last_random(value=192), length=0x003C A085: 1F 3A ; COM_1F_print2 length=0x003A (to 0xA0C1) A087: 5F BE 8E 14 30 79 CB 23 BB 54 CB D2 12 B2 82 17 A097: 07 B3 13 6D C7 DE 85 AF 86 8D F5 72 44 F4 73 C6 A0A7: 7B 50 EF 81 90 A5 C4 6A DD 46 14 D0 0B 5C C7 DE A0B7: 98 14 46 9F D0 15 F4 81 DB E0 ; ; THE ALIEN'S CLAWS RIP THROUGH YOUR CLOTHES. BUT BY JUMPING ; BACKWARDS YOU AVOID INJURY. ; ; ; end case A0C1: FF 2D ; case COM_05_is_less_equal_last_random(value=255), length=0x002D A0C3: 1F 2B ; COM_1F_print2 length=0x002B (to 0xA0F0) A0C5: 5F BE 8E 14 30 79 3F 17 1F B8 D2 B5 66 49 51 18 A0D5: 4B C2 8B 96 0B C0 6F 68 B3 9B F3 5F 8E 49 72 61 A0E5: 16 BC C3 9C 3B C0 8B 54 C7 DE 2E ; ; THE ALIEN RUSHES PAST YOU IN ITS FRENZIED ATTEMPT TO ATTACK ; YOU. ; ; ; end case ; ; end decode_switch at 0x9F6E ; ; end group_OR at 0x9EFF ; A0F0: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0xA100) ; SHORT SHAGGY CREATURE A0F2: 29 B8 B3 B3 1B B8 0B 6D E4 14 96 5F 2F C6 ; -------------- Object OBJ_63_GREY_CUBE -------------- A100: 5C 42 ; Word_num=0x5C CUBE, length=0x0042 (to 0xA144) A102: 65 00 A0 ; Location=0x65, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; A105: 03 27 ; Section=03:SECTION_03_DESCRIPTION, length=0x0027 (to 0xA12E) A107: 04 25 ; COM_04_print_message length=0x0025 (to 0xA12E) A109: 5F BE 5B B1 4B 7B 46 45 35 49 84 15 3B 63 C1 C0 A119: D0 15 13 54 97 B9 2F 49 67 16 4E BD CB 78 24 56 A129: 4A 5E 2F 62 2E ; ; THERE IS A DARK GREY TWO INCH SQUARE METALIC CUBE HERE. ; ; A12E: 01 03 ; Section=01:SECTION_01_ADJECTIVES, length=0x0003 (to 0xA133) A130: 6C ; GREY A131: 0F ; SMALL A132: 6D ; INCH ; A133: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0xA136) A135: 04 ; weight=4 ; A136: 02 0C ; Section=02:SECTION_02_SHORT_NAME, length=0x000C (to 0xA144) ; TWO INCH GREY CUBE A138: C1 C0 D0 15 13 54 AF 6E 45 DB AF C3 ; -------------- Object OBJ_64_WHITE_CUBE -------------- A144: 5C 3B ; Word_num=0x5C CUBE, length=0x003B (to 0xA181) A146: 00 00 A0 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; A149: 03 1F ; Section=03:SECTION_03_DESCRIPTION, length=0x001F (to 0xA16A) A14B: 04 1D ; COM_04_print_message length=0x001D (to 0xA16A) A14D: 5F BE 5B B1 4B 7B 59 45 96 73 56 5E 2B D2 8D 7A A15D: 15 71 A3 AD 5B B1 24 56 4A 5E 2F 62 2E ; ; THERE IS A WHITE TWO INCH SQUARE CUBE HERE. ; ; A16A: 01 03 ; Section=01:SECTION_01_ADJECTIVES, length=0x0003 (to 0xA16F) A16C: 60 ; WHITE A16D: 0F ; SMALL A16E: 6D ; INCH ; A16F: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0xA172) A171: 06 ; weight=6 ; A172: 02 0D ; Section=02:SECTION_02_SHORT_NAME, length=0x000D (to 0xA181) ; TWO INCH WHITE CUBE A174: C1 C0 D0 15 13 54 23 D1 DB BD 24 56 45 ; -------------- Object OBJ_65_TABLE -------------- A181: 1A 09 ; Word_num=0x1A DESK, length=0x0009 (to 0xA18C) A183: 86 08 81 ; Location=0x86, disk_section=8, ext_attr=....----(), attributes=?......S(??,Surface) ; A186: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA18C) ; TABLE A188: 44 BD DB 8B ; -------------- Object OBJ_66_RECESS -------------- A18C: 2E 09 ; Word_num=0x2E HOLE, length=0x0009 (to 0xA197) A18E: 86 08 82 ; Location=0x86, disk_section=8, ext_attr=....----(), attributes=?.....H.(??,Holder) ; A191: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA197) ; RECESS A193: 65 B1 65 62 ; -------------- Object OBJ_67_HOLE -------------- A197: 2E 08 ; Word_num=0x2E HOLE, length=0x0008 (to 0xA1A1) A199: 80 07 82 ; Location=0x80, disk_section=7, ext_attr=....----(), attributes=?.....H.(??,Holder) ; A19C: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0xA1A1) ; HOLE A19E: 7E 74 45 ; -------------- Object OBJ_68_HOLE_BOULDERS -------------- A1A1: 2E 62 ; Word_num=0x2E HOLE, length=0x0062 (to 0xA205) A1A3: 9E 08 82 ; Location=0x9E, disk_section=8, ext_attr=....----(), attributes=?.....H.(??,Holder) ; A1A6: 06 58 ; Section=06:SECTION_06_IF_SECOND_NOUN, length=0x0058 (to 0xA200) A1A8: 0D 56 ; COM_0D_group_AND length=0x0056 (to 0xA200) A1AA: 0A 0F ; COM_0A_is_input_phrase(phrase=DROP ..C..... IN ......O.) A1AC: 08 64 ; COM_08_is_noun1(obj=OBJ_64_WHITE_CUBE) A1AE: 04 4C ; COM_04_print_message length=0x004C (to 0xA1FC) A1B0: 5F BE E7 14 5B 4D 69 4D 9D 7A 89 17 7E 15 6B A1 A1C0: 73 4F 2E 6D 1F 8F 84 14 4F A1 51 18 23 C6 E3 72 A1D0: 03 58 87 96 53 B7 DB A4 56 72 13 54 5F A0 8B 9A A1E0: 8E 48 90 14 98 14 3B 48 1A 98 51 5E 84 64 2E A1 A1F0: F4 59 C5 B5 F5 B3 F5 72 51 18 EB C1 ; ; THE CUBE BEGINS TO GLOW BRIGHTLY. ABOVE YOUR HEAD AN ESCAPE ; HATCH OPENS AND AN AVALANCHE OF BOULDERS CRUSHES YOU! ; A1FC: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A1FE: 1D 6E ; COM_1D_attack_var(points=110) ; ; end group_AND at 0xA1A8 ; A200: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0xA205) ; HOLE A202: 7E 74 45 ; -------------- Object OBJ_69_PICTURE -------------- A205: 5D 0A ; Word_num=0x5D PICTUR, length=0x000A (to 0xA211) A207: 82 07 80 ; Location=0x82, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; A20A: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0xA211) ; PICTURE A20C: 85 A5 74 C0 45 ; -------------- Object OBJ_6A_GLASS_CYLINDER -------------- A211: 5E 80 82 ; Word_num=0x5E CYLIND, length=0x0082 (to 0xA296) A214: 85 87 8A ; Location=0x85, disk_section=7, ext_attr=G...----(Glass), attributes=?...O.H.(??,Openable,Holder) ; A217: 07 71 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0071 (to 0xA28A) A219: 0B 6F 0A ; COM_0B_switch length=0x006F (to 0xA28B), function=COM_0A_is_input_phrase(phrase_num) A21C: 11 01 ; case COM_0A_is_input_phrase("OPEN u....... * *"), length=0x0001 A21E: C2 ; FN_C2_PRINT_CANT_BUDGE_noun1 ; ; end case A21F: 40 01 ; case COM_0A_is_input_phrase("CLOSE ....A... * *"), length=0x0001 A221: C2 ; FN_C2_PRINT_CANT_BUDGE_noun1 ; ; end case A222: 36 35 ; case COM_0A_is_input_phrase("ENTER * * *"), length=0x0035 A224: 0E 33 ; COM_0E_group_OR length=0x0033 (to 0xA259) A226: 0D 21 ; COM_0D_group_AND length=0x0021 (to 0xA249) A228: 1B ; COM_1B_set_var_to_noun2() A229: 14 ; COM_14_reverse_status next command A22A: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) A22C: 17 01 6A ; COM_17_move_object_to(obj=OBJ_01_PLAYER, destination=OBJ_6A_GLASS_CYLINDER) A22F: 04 18 ; COM_04_print_message length=0x0018 (to 0xA249) A231: C7 DE 5E 17 7E A1 45 DB 8F 8C 8B 4B C9 9A 82 17 A241: 45 5E 43 DE 3F 98 1B B5 ; ; YOU SLOWLY CLIMB INTO THE CYLINDER. ; ; ; end group_AND at 0xA226 A249: 0D 0E ; COM_0D_group_AND length=0x000E (to 0xA259) A24B: 1B ; COM_1B_set_var_to_noun2() A24C: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) A24E: 04 09 ; COM_04_print_message length=0x0009 (to 0xA259) A250: 73 7B 4B 7B C9 54 A6 B7 2E ; ; IT IS CLOSED. ; ; ; end group_AND at 0xA249 ; ; end group_OR at 0xA224 ; ; end case A259: 37 2F ; case COM_0A_is_input_phrase("CLIMB * OUT *"), length=0x002F A25B: 0E 2D ; COM_0E_group_OR length=0x002D (to 0xA28A) A25D: 0D 1B ; COM_0D_group_AND length=0x001B (to 0xA27A) A25F: 1B ; COM_1B_set_var_to_noun2() A260: 14 ; COM_14_reverse_status next command A261: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) A263: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A265: 10 ; COM_10_drop_var() A266: 04 12 ; COM_04_print_message length=0x0012 (to 0xA27A) A268: C7 DE 99 16 D5 CE 50 BD 11 58 96 96 DB 72 89 67 A278: C7 A0 ; ; YOU NOW STAND ON THE FLOOR. ; ; ; end group_AND at 0xA25D A27A: 0D 0E ; COM_0D_group_AND length=0x000E (to 0xA28A) A27C: 1B ; COM_1B_set_var_to_noun2() A27D: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) A27F: 04 09 ; COM_04_print_message length=0x0009 (to 0xA28A) A281: 73 7B 4B 7B C9 54 A6 B7 2E ; ; IT IS CLOSED. ; ; ; end group_AND at 0xA27A ; ; end group_OR at 0xA25B ; ; end case ; ; end decode_switch at 0xA219 ; A28A: 02 0A ; Section=02:SECTION_02_SHORT_NAME, length=0x000A (to 0xA296) ; GLASS CYLINDER A28C: BB 6D CB B9 CE 56 8E 7A 23 62 ; -------------- Object OBJ_6B_WHITE_BUTTON_LIGHTS -------------- A296: 4A 53 ; Word_num=0x4A BUTTON, length=0x0053 (to 0xA2EB) A298: 6A 00 80 ; Location=0x6A, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A29B: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA29E) A29D: 60 ; WHITE ; A29E: 07 41 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0041 (to 0xA2E1) A2A0: 0D 3F ; COM_0D_group_AND length=0x003F (to 0xA2E1) A2A2: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) A2A4: 0E 3B ; COM_0E_group_OR length=0x003B (to 0xA2E1) A2A6: 0D 1E ; COM_0D_group_AND length=0x001E (to 0xA2C6) A2A8: 03 85 6D ; COM_03_is_located(owner=RM_1_SOUTHWEST_OF_STATION, obj=OBJ_6D_LIGHTS) A2AB: 17 6D 00 ; COM_17_move_object_to(obj=OBJ_6D_LIGHTS, destination=nowhere) A2AE: 04 16 ; COM_04_print_message length=0x0016 (to 0xA2C6) A2B0: C3 54 AF 54 82 17 4E 5E 7A 79 0B C0 58 72 49 5E A2C0: 0F A0 C7 16 9B C1 ; ; CLICK. THE LIGHTS HAVE GONE OUT. ; ; ; end group_AND at 0xA2A6 A2C6: 0D 19 ; COM_0D_group_AND length=0x0019 (to 0xA2E1) A2C8: 03 00 6D ; COM_03_is_located(owner=nowhere, obj=OBJ_6D_LIGHTS) A2CB: 17 6D 85 ; COM_17_move_object_to(obj=OBJ_6D_LIGHTS, destination=RM_1_SOUTHWEST_OF_STATION) A2CE: 04 11 ; COM_04_print_message length=0x0011 (to 0xA2E1) A2D0: C3 54 AF 54 82 17 4E 5E 7A 79 14 BC 8F 62 DD B2 A2E0: 2E ; ; CLICK. THE LIGHT RETURNS. ; ; ; end group_AND at 0xA2C6 ; ; end group_OR at 0xA2A4 ; ; end group_AND at 0xA2A0 ; A2E1: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0xA2EB) ; WHITE BUTTON A2E3: 23 D1 DB BD F6 4F 80 BF ; -------------- Object OBJ_6C_MAROON_BUTTON -------------- A2EB: 4A 80 F2 ; Word_num=0x4A BUTTON, length=0x00F2 (to 0xA3E0) A2EE: 6A 00 80 ; Location=0x6A, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A2F1: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA2F4) A2F3: 61 ; MAROON ; A2F4: 07 80 DE ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x00DE (to 0xA3D5) A2F7: 0D 80 DB ; COM_0D_group_AND length=0x00DB (to 0xA3D5) A2FA: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) A2FC: 0E 80 D6 ; COM_0E_group_OR length=0x00D6 (to 0xA3D5) A2FF: 0D 80 95 ; COM_0D_group_AND length=0x0095 (to 0xA397) A302: 03 85 01 ; COM_03_is_located(owner=RM_1_SOUTHWEST_OF_STATION, obj=OBJ_01_PLAYER) A305: 04 80 8B ; COM_04_print_message length=0x008B (to 0xA393) A308: C3 54 AF 54 5A 17 40 D2 6B 83 C7 DE 99 16 85 BE A318: 56 5E 56 72 82 17 45 5E E3 8B 8E AF F3 78 C3 9E A328: 5F BE EB 14 90 8C F4 59 9B 15 C5 B5 85 8D 17 60 A338: FA 17 3F 7A 09 15 91 7A 61 17 0B EE 15 BC CF 62 A348: 66 B1 51 18 23 C6 37 49 59 F4 8E 73 55 5E 54 BD A358: 10 B2 C3 6A 16 BC DB 72 95 5A 2F 92 74 4D F3 5F A368: 37 49 D0 15 82 17 45 5E 43 DE 3F 98 F3 B4 C7 DE A378: DB 16 CB B9 36 A1 90 14 07 58 70 CA 63 C0 13 8D A388: B6 14 26 60 89 17 FF 14 82 49 2E ; ; CLICK. SHWONK! YOU NOTICE THAT THE CLEAR LID OF THE ; CYLINDER HAS CLOSED. WHILE DOING SO, IT SEVERED YOUR ARM. ; WHILE STARRING AT THE DISMEMBERED ARM IN THE CYLINDER, YOU ; PASS OUT AND EVENTUALLY BLEED TO DEATH. ; A393: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A395: 1D 64 ; COM_1D_attack_var(points=100) ; ; end group_AND at 0xA2FF A397: 0D 1E ; COM_0D_group_AND length=0x001E (to 0xA3B7) A399: 1C 6A ; COM_1C_set_var_object(obj=OBJ_6A_GLASS_CYLINDER) A39B: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) A39D: 29 ; COM_29_toggle_open_VAR() A39E: 04 17 ; COM_04_print_message length=0x0017 (to 0xA3B7) A3A0: C3 54 AF 54 5A 17 52 D1 AB A2 5F BE EB 14 90 8C A3B0: F4 59 C2 16 9D 61 2E ; ; CLICK. SHWIPP! THE CYLINDER OPENS. ; ; ; end group_AND at 0xA397 A3B7: 0D 1C ; COM_0D_group_AND length=0x001C (to 0xA3D5) A3B9: 04 17 ; COM_04_print_message length=0x0017 (to 0xA3D2) A3BB: C3 54 AF 54 5A 17 4D D1 D6 06 DB 72 CE 56 8E 7A A3CB: 23 62 C9 54 B5 B7 2E ; ; CLICK. SHWIK! THE CYLINDER CLOSES. ; A3D2: 1C 6A ; COM_1C_set_var_object(obj=OBJ_6A_GLASS_CYLINDER) A3D4: 29 ; COM_29_toggle_open_VAR() ; ; end group_AND at 0xA3B7 ; ; end group_OR at 0xA2FC ; ; end group_AND at 0xA2F7 ; A3D5: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0xA3E0) ; MAROON BUTTON A3D7: 94 91 40 A0 BF 14 49 C0 4E ; -------------- Object OBJ_6D_LIGHTS -------------- A3E0: 5F 09 ; Word_num=0x5F LIGHTS, length=0x0009 (to 0xA3EB) A3E2: 85 07 80 ; Location=0x85, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; A3E5: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA3EB) ; LIGHTS A3E7: 89 8C 4D 75 ; -------------- Object OBJ_6E_CONSOLE -------------- A3EB: 62 0A ; Word_num=0x62 CONSOL, length=0x000A (to 0xA3F7) A3ED: 9C 08 81 ; Location=0x9C, disk_section=8, ext_attr=....----(), attributes=?......S(??,Surface) ; A3F0: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0xA3F7) ; CONSOLE A3F2: 40 55 3E B9 45 ; -------------- Object OBJ_6F_CHAIR -------------- A3F7: 53 0C ; Word_num=0x53 CHAIR, length=0x000C (to 0xA405) A3F9: 9C 08 80 ; Location=0x9C, disk_section=8, ext_attr=....----(), attributes=?.......(??) ; A3FC: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0xA3FF) A3FE: C5 ; FN_C5_ENTER_CLIMB_OUT ; A3FF: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA405) ; CHAIR A401: 1B 54 23 7B ; -------------- Object OBJ_70_WHITE_BUTTON_SCREEN -------------- A405: 4A 5D ; Word_num=0x4A BUTTON, length=0x005D (to 0xA464) A407: 6E 00 80 ; Location=0x6E, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A40A: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA40D) A40C: 60 ; WHITE ; A40D: 07 4B ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x004B (to 0xA45A) A40F: 0D 49 ; COM_0D_group_AND length=0x0049 (to 0xA45A) A411: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) A413: 0E 45 ; COM_0E_group_OR length=0x0045 (to 0xA45A) A415: 0D 1D ; COM_0D_group_AND length=0x001D (to 0xA434) A417: 03 72 73 ; COM_03_is_located(owner=OBJ_72_VIEWING_SCREEN, obj=OBJ_73_DISPLAY_EARTH) A41A: 04 0F ; COM_04_print_message length=0x000F (to 0xA42B) A41C: 5F BE 55 17 67 B1 89 96 B5 9E B6 14 95 48 2E ; ; THE SCREEN GOES BLANK. ; A42B: 17 73 00 ; COM_17_move_object_to(obj=OBJ_73_DISPLAY_EARTH, destination=nowhere) A42E: 17 74 00 ; COM_17_move_object_to(obj=OBJ_74_DISPLAY_MOON, destination=nowhere) A431: 17 75 00 ; COM_17_move_object_to(obj=OBJ_75_DISPLAY_MOTHER_SHIP, destination=nowhere) ; ; end group_AND at 0xA415 A434: 0D 24 ; COM_0D_group_AND length=0x0024 (to 0xA45A) A436: 04 16 ; COM_04_print_message length=0x0016 (to 0xA44E) A438: 5F BE D3 17 FB 62 AB 98 64 B7 30 60 D5 15 85 14 A448: 98 BE 7F 49 9B 5D ; ; THE VIEWING SCREEN IS ACTIVATED. ; A44E: 17 73 72 ; COM_17_move_object_to(obj=OBJ_73_DISPLAY_EARTH, destination=OBJ_72_VIEWING_SCREEN) A451: 17 74 72 ; COM_17_move_object_to(obj=OBJ_74_DISPLAY_MOON, destination=OBJ_72_VIEWING_SCREEN) A454: 17 75 72 ; COM_17_move_object_to(obj=OBJ_75_DISPLAY_MOTHER_SHIP, destination=OBJ_72_VIEWING_SCREEN) A457: 1C 72 ; COM_1C_set_var_object(obj=OBJ_72_VIEWING_SCREEN) A459: 33 ; COM_33_print_objects_on_var_object() ; ; end group_AND at 0xA434 ; ; end group_OR at 0xA413 ; ; end group_AND at 0xA40F ; A45A: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0xA464) ; WHITE BUTTON A45C: 23 D1 DB BD F6 4F 80 BF ; -------------- Object OBJ_71_GREEN_BUTTON_WEAPON -------------- A464: 4A 80 80 ; Word_num=0x4A BUTTON, length=0x0080 (to 0xA4E7) A467: 6E 00 80 ; Location=0x6E, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A46A: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA46D) A46C: 6A ; GREEN ; A46D: 07 6E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x006E (to 0xA4DD) A46F: 0D 6C ; COM_0D_group_AND length=0x006C (to 0xA4DD) A471: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) A473: 0E 68 ; COM_0E_group_OR length=0x0068 (to 0xA4DD) A475: 0D 10 ; COM_0D_group_AND length=0x0010 (to 0xA487) A477: 03 73 00 ; COM_03_is_located(owner=OBJ_73_DISPLAY_EARTH, obj=nothing) A47A: 04 0B ; COM_04_print_message length=0x000B (to 0xA487) A47C: 06 9A 90 73 CA 6A EA 48 9D 61 2E ; ; NOTHING HAPPENS. ; ; ; end group_AND at 0xA475 A487: 0D 52 ; COM_0D_group_AND length=0x0052 (to 0xA4DB) A489: 04 14 ; COM_04_print_message length=0x0014 (to 0xA49F) A48B: A2 1D 74 8E D4 6A 53 79 CC 51 BE A0 00 B3 D4 9C A49B: 91 C5 DC 63 ; ; "SPLURG RIFIC JORTRONO RUNGE." ; A49F: 03 01 80 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_80_WISDOM) A4A2: 04 37 ; COM_04_print_message length=0x0037 (to 0xA4DB) A4A4: 3F B9 A9 60 DB CE 1B A1 8E C5 3D 62 50 BD 16 58 A4B4: 95 73 89 17 67 16 A6 48 81 13 92 5F 03 A0 E6 46 A4C4: CB 7B E6 BD 8B 18 7B A6 B3 9A 6B BF F5 59 2F 7B A4D4: 16 58 31 49 97 62 22 ; ; SOMEHOW YOU UNDERSTAND THIS TO MEAN, "WEAPON ACTIVATED - ; POINT TO DESIRED TARGET." ; ; ; end group_AND at 0xA487 A4DB: 14 ; COM_14_reverse_status next command A4DC: 0C ; COM_0C_fail() ; ; end group_OR at 0xA473 ; ; end group_AND at 0xA46F ; A4DD: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0xA4E7) ; GREEN BUTTON A4DF: AF 6E 83 61 F6 4F 80 BF ; -------------- Object OBJ_72_VIEWING_SCREEN -------------- A4E7: 63 0F ; Word_num=0x63 SCREEN, length=0x000F (to 0xA4F8) A4E9: 9C 08 81 ; Location=0x9C, disk_section=8, ext_attr=....----(), attributes=?......S(??,Surface) ; A4EC: 02 0A ; Section=02:SECTION_02_SHORT_NAME, length=0x000A (to 0xA4F8) ; VIEWING SCREEN A4EE: 07 CB 50 D1 D5 6A AF 55 83 61 ; -------------- Object OBJ_73_DISPLAY_EARTH -------------- A4F8: 64 57 ; Word_num=0x64 EARTH, length=0x0057 (to 0xA551) A4FA: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A4FD: 07 42 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0042 (to 0xA541) A4FF: 0D 40 ; COM_0D_group_AND length=0x0040 (to 0xA541) A501: 0A 58 ; COM_0A_is_input_phrase(phrase=POINT u....... * *) A503: 04 38 ; COM_04_print_message length=0x0038 (to 0xA53D) A505: 59 45 92 5F 03 A0 83 7A 5F BE 5A 17 D3 7A 4B 7B A515: 14 67 F3 5F 8E 48 82 17 52 5E 50 8B 73 62 94 5F A525: 53 BE 4B 7B F5 59 F9 BF 26 DD 10 EE F3 A0 6B BF A535: 30 92 91 BE 9B 96 3F A1 ; ; A WEAPON IN THE SHIP IS FIRED AND THE PLANET EARTH IS ; DESTROYED, NOT TO MENTION YOU. ; A53D: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A53F: 1D 6E ; COM_1D_attack_var(points=110) ; ; end group_AND at 0xA4FF ; A541: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0xA551) ; DISPLAY OF THE EARTH A543: 95 5A FB A5 51 DB 96 64 DB 72 94 5F 53 BE ; -------------- Object OBJ_74_DISPLAY_MOON -------------- A551: 65 80 92 ; Word_num=0x65 MOON, length=0x0092 (to 0xA5E6) A554: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A557: 07 7E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x007E (to 0xA5D7) A559: 0D 7C ; COM_0D_group_AND length=0x007C (to 0xA5D7) A55B: 0A 58 ; COM_0A_is_input_phrase(phrase=POINT u....... * *) A55D: 04 74 ; COM_04_print_message length=0x0074 (to 0xA5D3) A55F: 5F BE 5A 17 D5 7A D9 B5 92 5F 03 A0 14 67 4B 62 A56F: 8E 48 51 18 50 C2 03 A1 9B 53 03 A0 5F BE 55 17 A57F: 67 B1 96 96 56 72 82 17 4F 5E 40 A0 D5 15 FF 14 A58F: 0C BA C7 A1 9B 5D 83 48 9D 7A 50 BD 0E BC 7F 49 A59F: F3 B4 54 8B 9B 6C 6B 68 E7 6D CD 9A B8 16 71 16 A5AF: 03 A0 3E 55 86 8C 59 5E 82 7B 82 17 47 5E 3E 49 A5BF: 73 76 F5 59 F9 BF D0 DD CB 6A 03 BC 33 98 C7 DE A5CF: 16 EE 4F A0 ; ; THE SHIP'S WEAPON FIRES AND YOU NOTICE ON THE SCREEN THAT ; THE MOON IS DESTROYED. AN INSTANT LATER, LARGE FRAGMENTS OF ; MOON COLLIDE WITH THE EARTH, DESTROYING IT AND YOU, TOO. ; A5D3: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A5D5: 1D 6E ; COM_1D_attack_var(points=110) ; ; end group_AND at 0xA559 ; A5D7: 02 0D ; Section=02:SECTION_02_SHORT_NAME, length=0x000D (to 0xA5E6) ; DISPLAY OF THE MOON A5D9: 95 5A FB A5 51 DB 96 64 DB 72 C1 93 4E ; -------------- Object OBJ_75_DISPLAY_MOTHER_SHIP -------------- A5E6: 66 80 91 ; Word_num=0x66 SHIP, length=0x0091 (to 0xA67A) A5E9: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; A5EC: 07 78 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0078 (to 0xA666) A5EE: 0D 76 ; COM_0D_group_AND length=0x0076 (to 0xA666) A5F0: 0A 58 ; COM_0A_is_input_phrase(phrase=POINT u....... * *) A5F2: 04 62 ; COM_04_print_message length=0x0062 (to 0xA656) A5F4: 83 48 8F 61 CB B1 AF 14 5B 48 EA 48 94 5F D1 B5 A604: 96 96 DB 72 64 B7 30 60 90 14 1B 58 1B A1 16 D0 A614: 13 54 4B 49 73 7B F5 59 F9 BF 4B DF 5F BE 71 16 A624: 5F BE 95 AF 92 73 D6 06 DB 72 F6 4F 80 BF D4 B5 A634: D7 5F DB 59 9E 7A D6 9C DB 72 40 55 3E B9 43 5E A644: 33 98 5F BE 55 17 67 B1 86 96 85 5F 98 BE 7F 49 A654: 5B BB ; ; AN ENERGY BEAM APPEARS ON THE SCREEN AND YOU WATCH AS IT ; DESTROYS THE MOTHER SHIP! THE BUTTONS RECEDE INTO THE ; CONSOLE AND THE SCREEN DEACTIVATES. ; A656: 17 73 00 ; COM_17_move_object_to(obj=OBJ_73_DISPLAY_EARTH, destination=nowhere) A659: 17 74 00 ; COM_17_move_object_to(obj=OBJ_74_DISPLAY_MOON, destination=nowhere) A65C: 17 75 00 ; COM_17_move_object_to(obj=OBJ_75_DISPLAY_MOTHER_SHIP, destination=nowhere) A65F: 17 70 00 ; COM_17_move_object_to(obj=OBJ_70_WHITE_BUTTON_SCREEN, destination=nowhere) A662: 17 71 00 ; COM_17_move_object_to(obj=OBJ_71_GREEN_BUTTON_WEAPON, destination=nowhere) A665: 38 ; COM_38_bump_score() ; ; end group_AND at 0xA5EE ; A666: 02 12 ; Section=02:SECTION_02_SHORT_NAME, length=0x0012 (to 0xA67A) ; DISPLAY OF THE MOTHER SHIP A668: 95 5A FB A5 51 DB 96 64 DB 72 C6 93 F4 72 5A 17 A678: D3 7A ; -------------- Object OBJ_76_CHAIR -------------- A67A: 53 0C ; Word_num=0x53 CHAIR, length=0x000C (to 0xA688) A67C: 8A 08 82 ; Location=0x8A, disk_section=8, ext_attr=....----(), attributes=?.....H.(??,Holder) ; A67F: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0xA682) A681: C5 ; FN_C5_ENTER_CLIMB_OUT ; A682: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA688) ; CHAIR A684: 1B 54 23 7B ; -------------- Object OBJ_77_HANDGRIP -------------- A688: 67 77 ; Word_num=0x67 HANDGR, length=0x0077 (to 0xA701) A68A: 8A 08 A0 ; Location=0x8A, disk_section=8, ext_attr=....----(), attributes=?.P.....(??,Portable) ; A68D: 07 6A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x006A (to 0xA6F9) A68F: 0E 68 ; COM_0E_group_OR length=0x0068 (to 0xA6F9) A691: 0D 4E ; COM_0D_group_AND length=0x004E (to 0xA6E1) A693: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0xA69D) A695: 0A 05 ; COM_0A_is_input_phrase(phrase=GET ..C..... * *) A697: 0A 43 ; COM_0A_is_input_phrase(phrase=GET ..C..... WITH ..C.....) A699: 0A 2D ; COM_0A_is_input_phrase(phrase=PULL * UP u.......) A69B: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) ; ; end group_OR at 0xA693 A69D: 14 ; COM_14_reverse_status next command A69E: A2 ; FN_A2_PRINT_ALREADY_HAVE_THE_var A69F: 04 02 ; COM_04_print_message length=0x0002 (to 0xA6A3) A6A1: 11 9F ; ; OH! ; A6A3: 34 ; COM_34_save_system_objects_to_disk() A6A4: 1A ; COM_1A_set_var_to_noun1() A6A5: 8F ; FN_8F_GET_OBJECT A6A6: 25 ; COM_25_print_linefeed() A6A7: 04 33 ; COM_04_print_message length=0x0033 (to 0xA6DC) A6A9: 26 BA F0 59 1E 8F 51 18 23 C6 34 BA 07 B3 43 98 A6B9: C5 98 AF 14 50 6D 89 17 03 15 E1 B9 8F 8E 90 14 A6C9: 10 58 EB 62 0F A0 D6 B5 17 48 82 17 D4 60 E6 16 A6D9: D7 46 21 ; ; SUDDENLY, YOUR SURROUNDINGS BEGIN TO DISSOLVE AND NEW ONES ; TAKE THEIR PLACE! ; A6DC: 25 ; COM_25_print_linefeed() A6DD: 30 81 ; COM_30_set_current_room(room=RM_9_SURFACE) A6DF: 2F 09 ; COM_2F_load_section_from_disk(section=9) ; ; end group_AND at 0xA691 A6E1: 0D 16 ; COM_0D_group_AND length=0x0016 (to 0xA6F9) A6E3: 0E 0C ; COM_0E_group_OR length=0x000C (to 0xA6F1) A6E5: 0A 06 ; COM_0A_is_input_phrase(phrase=DROP ..C..... * *) A6E7: 0A 0D ; COM_0A_is_input_phrase(phrase=THROW .vC..... AT ...P....) A6E9: 0A 0F ; COM_0A_is_input_phrase(phrase=DROP ..C..... IN ......O.) A6EB: 0A 4B ; COM_0A_is_input_phrase(phrase=DROP ..C..... ON .......L) A6ED: 0A 0E ; COM_0A_is_input_phrase(phrase=THROW u....... TO ...P....) A6EF: 0A 39 ; COM_0A_is_input_phrase(phrase=THROW ..C..... IN u.......) ; ; end group_OR at 0xA6E3 A6F1: 03 01 77 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_77_HANDGRIP) A6F4: 35 ; COM_35_load_system_objects_from_disk() A6F5: 30 8A ; COM_30_set_current_room(room=RM_8_RECREATION) A6F7: 2F 08 ; COM_2F_load_section_from_disk(section=8) ; ; end group_AND at 0xA6E1 ; ; end group_OR at 0xA68F ; A6F9: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0xA701) ; HANDGRIP A6FB: 50 72 44 5A D3 7A ; -------------- Object OBJ_78_CHAIR -------------- A701: 53 0C ; Word_num=0x53 CHAIR, length=0x000C (to 0xA70F) A703: 8D 07 80 ; Location=0x8D, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; A706: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0xA709) A708: C5 ; FN_C5_ENTER_CLIMB_OUT ; A709: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA70F) ; CHAIR A70B: 1B 54 23 7B ; -------------- Object OBJ_79_LARGE_CUBE -------------- A70F: 5C 0F ; Word_num=0x5C CUBE, length=0x000F (to 0xA720) A711: 8D 07 81 ; Location=0x8D, disk_section=7, ext_attr=....----(), attributes=?......S(??,Surface) ; A714: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA717) A716: 0E ; BIG ; A717: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0xA720) ; LARGE CUBE A719: 54 8B 9B 6C 24 56 45 ; -------------- Object OBJ_7A_HOLE_WISER -------------- A720: 2E 80 B2 ; Word_num=0x2E HOLE, length=0x00B2 (to 0xA7D5) A723: 8D 07 82 ; Location=0x8D, disk_section=7, ext_attr=....----(), attributes=?.....H.(??,Holder) ; A726: 06 80 A1 ; Section=06:SECTION_06_IF_SECOND_NOUN, length=0x00A1 (to 0xA7CA) A729: 0E 80 9E ; COM_0E_group_OR length=0x009E (to 0xA7CA) A72C: 0D 60 ; COM_0D_group_AND length=0x0060 (to 0xA78E) A72E: 14 ; COM_14_reverse_status next command A72F: 03 01 80 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_80_WISDOM) A732: 0A 0F ; COM_0A_is_input_phrase(phrase=DROP ..C..... IN ......O.) A734: 08 64 ; COM_08_is_noun1(obj=OBJ_64_WHITE_CUBE) A736: 17 64 00 ; COM_17_move_object_to(obj=OBJ_64_WHITE_CUBE, destination=nowhere) A739: 04 4C ; COM_04_print_message length=0x004C (to 0xA787) A73B: 44 45 0E B2 83 8C B3 9A 7B 67 13 B8 C3 9E 89 8C A74B: 33 75 63 98 93 B2 B6 14 8E 7A DB B5 1B A1 8E 48 A75B: 51 18 48 C2 2E 60 61 17 39 92 56 72 FB 17 B4 B7 A76B: 82 17 83 48 68 4D AF A0 D6 06 DB 72 96 8C FF BE A77B: E7 14 5B 4D 74 C0 8B 9A AF 6E DB E0 ; ; A BRILLIANT FLASH OF LIGHT NEARLY BLINDS YOU AND YOU FEEL ; SOMEWHAT WISER THAN BEFORE! THE LITTLE CUBE TURNS GREY. ; A787: 17 80 01 ; COM_17_move_object_to(obj=OBJ_80_WISDOM, destination=OBJ_01_PLAYER) A78A: 17 63 7A ; COM_17_move_object_to(obj=OBJ_63_GREY_CUBE, destination=OBJ_7A_HOLE_WISER) A78D: 38 ; COM_38_bump_score() ; ; end group_AND at 0xA72C A78E: 0D 3A ; COM_0D_group_AND length=0x003A (to 0xA7CA) A790: 0A 0F ; COM_0A_is_input_phrase(phrase=DROP ..C..... IN ......O.) A792: 08 64 ; COM_08_is_noun1(obj=OBJ_64_WHITE_CUBE) A794: 04 30 ; COM_04_print_message length=0x0030 (to 0xA7C6) A796: C7 DE 3A 15 F4 A4 30 79 9B 53 99 48 5F BE 84 AF A7A6: 0E B2 83 8C B3 9A 7B 67 13 B8 C3 9E 89 8C 33 75 A7B6: 4B 49 C7 DE 84 AF CB B0 87 96 A6 D8 7F 9E 6B B5 ; ; YOU EXPERIENCE ANOTHER BRILLIANT FLASH OF LIGHT AS YOUR ; BRAIN EXPLODES! ; A7C6: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A7C8: 1D 64 ; COM_1D_attack_var(points=100) ; ; end group_AND at 0xA78E ; ; end group_OR at 0xA729 ; A7CA: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0xA7D5) ; TWO INCH HOLE A7CC: C1 C0 D0 15 13 54 7E 74 45 ; -------------- Object OBJ_7B_TABLE -------------- A7D5: 1A 09 ; Word_num=0x1A DESK, length=0x0009 (to 0xA7E0) A7D7: 8E 08 81 ; Location=0x8E, disk_section=8, ext_attr=....----(), attributes=?......S(??,Surface) ; A7DA: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xA7E0) ; TABLE A7DC: 44 BD DB 8B ; -------------- Object OBJ_7C_TRANSPARENT_VIAL -------------- A7E0: 68 31 ; Word_num=0x68 VIAL, length=0x0031 (to 0xA813) A7E2: 7B A0 AA ; Location=0x7B, disk_section=0, ext_attr=G.C.----(Glass,Closed), attributes=?.P.O.H.(??,Portable,Openable,Holder) ; A7E5: 03 1C ; Section=03:SECTION_03_DESCRIPTION, length=0x001C (to 0xA803) A7E7: 04 1A ; COM_04_print_message length=0x001A (to 0xA803) A7E9: 5F BE 5B B1 4B 7B 55 45 8E 91 16 8A D0 B0 5B B9 A7F9: 70 B1 18 BC 8E 78 9F 15 7F B1 ; ; THERE IS A SMALL TRANSPARENT VIAL HERE. ; ; A803: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0xA806) A805: 06 ; weight=6 ; A806: 02 0B ; Section=02:SECTION_02_SHORT_NAME, length=0x000B (to 0xA813) ; TRANSPARENT VIAL A808: EB BF A2 9A 2F 49 B3 9A 03 CB 4C ; -------------- Object OBJ_7D_TSOM_SOLUTION -------------- A813: 4C 6C ; Word_num=0x4C WHISKE, length=0x006C (to 0xA881) A815: 7C 10 A0 ; Location=0x7C, disk_section=0, ext_attr=...Q----(liQuid), attributes=?.P.....(??,Portable) ; A818: 07 59 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0059 (to 0xA873) A81A: 0E 57 ; COM_0E_group_OR length=0x0057 (to 0xA873) A81C: 0D 30 ; COM_0D_group_AND length=0x0030 (to 0xA84E) A81E: 0A 59 ; COM_0A_is_input_phrase(phrase=TASTE u....... * *) A820: 0E 2C ; COM_0E_group_OR length=0x002C (to 0xA84E) A822: 14 ; COM_14_reverse_status next command A823: BF ; FN_BF_IS_LIQUID_REACHABLE A824: 0D 28 ; COM_0D_group_AND length=0x0028 (to 0xA84E) A826: 04 22 ; COM_04_print_message length=0x0022 (to 0xA84A) A828: 33 D1 16 EE DB 72 34 92 56 5E 66 49 51 5E 96 64 A838: 95 73 66 17 50 C4 D0 15 09 CB AB A0 F5 BD 51 18 A848: EB C1 ; ; WHY, THE MERE TASTE OF THIS STUFF INVIGORATES YOU! ; A84A: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A84C: 23 05 ; COM_23_heal_var(points=5) ; ; end group_AND at 0xA824 ; ; end group_OR at 0xA820 ; ; end group_AND at 0xA81C ;; A84E: 0D 23 ; COM_0D_group_AND length=0x0023 (to 0xA873) A850: 0A 4F ; COM_0A_is_input_phrase(phrase=DRINK u....... * *) A852: 0E 1F ; COM_0E_group_OR length=0x001F (to 0xA873) A854: 14 ; COM_14_reverse_status next command A855: BF ; FN_BF_IS_LIQUID_REACHABLE A856: 0D 1B ; COM_0D_group_AND length=0x001B (to 0xA873) A858: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) A85A: 23 64 ; COM_23_heal_var(points=100) A85C: 04 12 ; COM_04_print_message length=0x0012 (to 0xA870) A85E: 49 D2 D6 06 56 72 F3 17 D4 B5 8E 5F FB 8E 41 6E A86E: AB 57 ; ; WOW! THAT WAS REALLY GOOD! ; A870: 17 91 00 ; COM_17_move_object_to(obj=OBJ_91_ALIEN_POISON, destination=nowhere) ; ; end group_AND at 0xA856 ; ; end group_OR at 0xA852 ; ; end group_AND at 0xA84E ; ; end group_OR at 0xA81A ; ;; A873: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA876) A875: 6B ; TSOM ; ;; A876: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0xA881) ; TSOM SOLUTION A878: 21 C0 55 90 CF 9F 91 BE 4E ; -------------- Object OBJ_7E_PEDESTAL -------------- A881: 69 0B ; Word_num=0x69 PEDEST, length=0x000B (to 0xA88E) A883: 90 08 81 ; Location=0x90, disk_section=8, ext_attr=....----(), attributes=?......S(??,Surface) ; A886: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0xA88E) ; PEDESTAL A888: E6 A4 66 62 33 48 ; -------------- Object OBJ_7F_TWO_INCH_HOLE -------------- A88E: 2E 5A ; Word_num=0x2E HOLE, length=0x005A (to 0xA8EA) A890: 90 08 82 ; Location=0x90, disk_section=8, ext_attr=....----(), attributes=?.....H.(??,Holder) ; A893: 06 4A ; Section=06:SECTION_06_IF_SECOND_NOUN, length=0x004A (to 0xA8DF) A895: 0D 48 ; COM_0D_group_AND length=0x0048 (to 0xA8DF) A897: 0A 0F ; COM_0A_is_input_phrase(phrase=DROP ..C..... IN ......O.) A899: 08 63 ; COM_08_is_noun1(obj=OBJ_63_GREY_CUBE) A89B: 17 63 00 ; COM_17_move_object_to(obj=OBJ_63_GREY_CUBE, destination=nowhere) A89E: 04 3C ; COM_04_print_message length=0x003C (to 0xA8DC) A8A0: 1A B9 A4 EA D5 86 91 A6 82 17 4E 5E 8E 7B DB 8B A8B0: 24 56 44 5E 7B 60 8B 9A 6B BF C9 6D C4 CE 09 B2 A8C0: 46 75 B3 E0 5F BE 95 96 8E 62 F5 8B D0 15 6B BF A8D0: 55 45 46 72 51 5E 99 64 96 73 DB 63 ; ; SNP-KRKL-PP! THE LITTLE CUBE BEGINS TO GLOW BRIGHTLY, THEN ; SETTLES INTO A SHADE OF WHITE. ; A8DC: 17 64 7F ; COM_17_move_object_to(obj=OBJ_64_WHITE_CUBE, destination=OBJ_7F_TWO_INCH_HOLE) ; ; end group_AND at 0xA895 ; A8DF: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0xA8EA) ; TWO INCH HOLE A8E1: C1 C0 D0 15 13 54 7E 74 45 ; -------------- Object OBJ_80_WISDOM -------------- A8EA: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0xA8EF) A8EC: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; -------------- Object OBJ_81_GREEN_CUBE -------------- A8EF: 5C 55 ; Word_num=0x5C CUBE, length=0x0055 (to 0xA946) A8F1: DB 05 A0 ; Location=0xDB, disk_section=5, ext_attr=....----(), attributes=?.P.....(??,Portable) ; A8F4: 03 1A ; Section=03:SECTION_03_DESCRIPTION, length=0x001A (to 0xA910) A8F6: 04 18 ; COM_04_print_message length=0x0018 (to 0xA910) A8F8: 5F BE 5B B1 4B 7B 56 45 2B D2 8D 7A 09 71 67 B1 A908: 85 96 AF C3 9F 15 7F B1 ; ; THERE IS A TWO INCH GREEN CUBE HERE. ; ; A910: 07 1F ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001F (to 0xA931) A912: 0D 1D ; COM_0D_group_AND length=0x001D (to 0xA931) A914: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0xA91A) A916: 0A 05 ; COM_0A_is_input_phrase(phrase=GET ..C..... * *) A918: 0A 43 ; COM_0A_is_input_phrase(phrase=GET ..C..... WITH ..C.....) ; ; end group_OR at 0xA914 A91A: 03 67 81 ; COM_03_is_located(owner=OBJ_67_HOLE, obj=OBJ_81_GREEN_CUBE) A91D: 03 3F 3E ; COM_03_is_located(owner=OBJ_3F_YELLOW_BUTTON, obj=OBJ_3E_OVAL) A920: 04 0D ; COM_04_print_message length=0x000D (to 0xA92F) A922: 5F BE C8 16 33 48 C9 54 B5 B7 B2 17 2E ; ; THE OVAL CLOSES UP. ; A92F: 9E ; FN_9E_REMOVE_OVAL_FROM_ROOM A930: 0C ; COM_0C_fail() ; ; end group_AND at 0xA912 ; A931: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0xA934) A933: 06 ; weight=6 ; A934: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xA937) A936: 6A ; GREEN ; A937: 02 0D ; Section=02:SECTION_02_SHORT_NAME, length=0x000D (to 0xA946) ; TWO INCH GREEN CUBE A939: C1 C0 D0 15 13 54 AF 6E 83 61 24 56 45 ; -------------- Object OBJ_82_ROD_WITH_SPHERE -------------- ;; ;; This is a radiation detector. It flashes faster and faster as you approach the ENGINES on the UFO. ;; The ENGINES are at the end of a long hallway in room 0x92. The sphere flashes slowly in 0x90, faster in 0x91, ;; and wildly in 0x92, where the player begins taking damage. ;; ;; !! See the discussion of command "COM_03_is_located()" and the subtle bug in game logic. The radiation ;; detector is designed to warn about radiation on the UFO, but there are other rooms with the same ;; numbers (0x90, 0x91, and 0x92). The shere will inadvertantly flash in these rooms too: ;; 0x90 (slow): RM_8_POWER, RM_3_WEST_ALLEY_INTERSECTION, RM_6_DESERT46 ;; 0x91 (medium): RM_8_AIRLOCK11, RM_3_WEST_ALLEY_SOUTH, RM_6_DESERT47 ;; 0x92 (fast): RM_8_ENGINES, RM_2_SOUTH_OF_WEST_ALLEY, RM_6_DESERT48 ;; A946: 6E 80 AE ; Word_num=0x6E ROD, length=0x00AE (to 0xA9F7) A949: DB 05 A0 ; Location=0xDB, disk_section=5, ext_attr=....----(), attributes=?.P.....(??,Portable) ; A94C: 03 1D ; Section=03:SECTION_03_DESCRIPTION, length=0x001D (to 0xA96B) A94E: 04 1B ; COM_04_print_message length=0x001B (to 0xA96B) A950: 5F BE 5B B1 4B 7B 54 45 73 9E 56 D1 03 71 84 15 A960: 30 60 62 17 F4 72 4A 5E 2F 62 2E ; ; THERE IS A ROD WITH A GREEN SPHERE HERE. ; ; A96B: 0C 01 ; Section=0C:SECTION_0C_WEIGHT, length=0x0001 (to 0xA96E) A96D: 10 ; weight=16 ; A96E: 08 77 ; Section=08:SECTION_08_EVERY_TURN, length=0x0077 (to 0xA9E7) A970: 0E 75 ; COM_0E_group_OR length=0x0075 (to 0xA9E7) A972: 0D 25 ; COM_0D_group_AND length=0x0025 (to 0xA999) A974: 03 90 01 ; COM_03_is_located(owner=RM_1_90_??, obj=OBJ_01_PLAYER) A977: 1F 20 ; COM_1F_print2 length=0x0020 (to 0xA999) A979: 5F BE 84 15 30 60 62 17 F4 72 4B 5E D5 B5 89 8D A989: FB 8E 7B 67 23 B8 AB 98 8E 48 AF 14 E3 61 CF 98 ; ; THE GREEN SPHERE IS SLOWLY FLASHING AND BEEPING. ; ; ; end group_AND at 0xA972 A999: 0D 25 ; COM_0D_group_AND length=0x0025 (to 0xA9C0) A99B: 03 91 01 ; COM_03_is_located(owner=RM_1_91_??, obj=OBJ_01_PLAYER) A99E: 1F 20 ; COM_1F_print2 length=0x0020 (to 0xA9C0) A9A0: 5F BE 84 15 30 60 62 17 F4 72 4B 5E C8 B5 55 8B A9B0: 90 73 C3 6A 33 98 67 4D 90 A5 CE 6A 26 A1 47 62 ; ; THE GREEN SPHERE IS FLASHING AND BEEPING LOUDER. ; ; ; end group_AND at 0xA999 A9C0: 0D 25 ; COM_0D_group_AND length=0x0025 (to 0xA9E7) A9C2: 03 92 01 ; COM_03_is_located(owner=RM_1_92_??, obj=OBJ_01_PLAYER) A9C5: 1F 20 ; COM_1F_print2 length=0x0020 (to 0xA9E7) A9C7: 5F BE 84 15 30 60 62 17 F4 72 4B 5E C8 B5 55 8B A9D7: 90 73 C3 6A 33 98 67 4D 90 A5 D9 6A 3E 7A F9 8E ; ; THE GREEN SPHERE IS FLASHING AND BEEPING WILDLY! ; ; ; end group_AND at 0xA9C0 ; ; end group_OR at 0xA970 ; A9E7: 02 0E ; Section=02:SECTION_02_SHORT_NAME, length=0x000E (to 0xA9F7) ; ROD WITH GREEN SPHERE A9E9: F6 B2 FB 17 53 BE AF 6E 83 61 62 B9 2F 62 ; -------------- Object OBJ_83_RADIATION_DOSE1 -------------- A9F7: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0xA9FC) A9F9: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; -------------- Object OBJ_84_RADIATION_DOSE2 -------------- A9FC: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0xAA01) A9FE: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; -------------- Object OBJ_85_CYLINDER_BOMB -------------- AA01: 5E 2B ; Word_num=0x5E CYLIND, length=0x002B (to 0xAA2E) AA03: 94 07 80 ; Location=0x94, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; AA06: 07 1E ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x001E (to 0xAA26) AA08: 0D 1C ; COM_0D_group_AND length=0x001C (to 0xAA26) AA0A: C4 ; FN_C4_IS_PHRASE_AN_AFFECT AA0B: 04 15 ; COM_04_print_message length=0x0015 (to 0xAA22) AA0D: 1D 85 01 4F 41 A0 EB 8F C7 DE 57 17 11 BC 83 66 AA1D: 44 45 E4 9F 21 ; ; KA-BOOOOOM! YOU SET OFF A BOMB! ; AA22: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) AA24: 1D 4B ; COM_1D_attack_var(points=75) ; ; end group_AND at 0xAA08 ; AA26: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0xAA2E) ; CYLINDER AA28: CE 56 8E 7A 23 62 ; -------------- Object OBJ_86_CYLINDER_POISON -------------- AA2E: 5E 5C ; Word_num=0x5E CYLIND, length=0x005C (to 0xAA8C) AA30: 95 07 80 ; Location=0x95, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; AA33: 07 4F ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x004F (to 0xAA84) AA35: 0D 4D ; COM_0D_group_AND length=0x004D (to 0xAA84) AA37: C4 ; FN_C4_IS_PHRASE_AN_AFFECT AA38: 04 46 ; COM_04_print_message length=0x0046 (to 0xAA80) AA3A: 13 9F E9 99 C0 16 51 5E 96 64 DB 72 CE 56 8E 7A AA4A: 3D 62 4F 15 F3 8C 6B BF 5F BE 56 15 44 A0 90 14 AA5A: 04 58 FD B2 EB 5D 73 7B 4B 7B 6E B1 95 5F 91 7A AA6A: 73 15 6B B5 47 55 36 6D E1 14 7A C4 09 EE 62 49 AA7A: D2 06 55 9F 01 A0 ; ; OH NO! ONE OF THE CYLINDERS FELL TO THE FLOOR AND BROKE! IT ; IS RELEASING GAS! COUGH, COUGH, GASP! POISON! ; AA80: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) AA82: 1D 4B ; COM_1D_attack_var(points=75) ; ; end group_AND at 0xAA35 ; AA84: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0xAA8C) ; CYLINDER AA86: CE 56 8E 7A 23 62 ; -------------- Object OBJ_87_CYLINDER_ANTS -------------- AA8C: 5E 69 ; Word_num=0x5E CYLIND, length=0x0069 (to 0xAAF7) AA8E: 97 07 80 ; Location=0x97, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; AA91: 07 5C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x005C (to 0xAAEF) AA93: 0D 5A ; COM_0D_group_AND length=0x005A (to 0xAAEF) AA95: C4 ; FN_C4_IS_PHRASE_AN_AFFECT AA96: 04 54 ; COM_04_print_message length=0x0054 (to 0xAAEC) AA98: E9 C5 84 96 D0 60 C6 6A 66 7B 2C C6 16 60 82 17 AAA8: 49 5E 74 8D 51 5E F0 A4 C3 B5 33 98 4A 45 14 9E AAB8: 11 58 96 64 EF 74 4B 5E 1A 98 49 16 AB 98 9E 48 AAC8: CB B5 D4 B5 3F 61 57 49 AB 57 5F BE 44 DB 7B 60 AAD8: 85 96 D9 B0 90 8C C3 6A F3 8C 4F A1 96 AF DB 72 AAE8: FB A5 99 53 ; ; UPON BEING DISTURBED, THE GLOBE OPENS AND A HOARD OF THREE ; INCH LONG ANTS IS RELEASED! THEY BEGIN CRAWLING ALL OVER ; THE PLACE! ; AAEC: 17 89 97 ; COM_17_move_object_to(obj=OBJ_89_ALIEN_ANTS, destination=RM_1_97_??) ; ; end group_AND at 0xAA93 ; AAEF: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0xAAF7) ; CYLINDER AAF1: CE 56 8E 7A 23 62 ; -------------- Object OBJ_88_CYLINDERS_UNABLE -------------- AAF7: 5E 2E ; Word_num=0x5E CYLIND, length=0x002E (to 0xAB27) AAF9: 99 07 80 ; Location=0x99, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; AAFC: 07 21 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0021 (to 0xAB1F) AAFE: 0D 1F ; COM_0D_group_AND length=0x001F (to 0xAB1F) AB00: C4 ; FN_C4_IS_PHRASE_AN_AFFECT AB01: 04 1C ; COM_04_print_message length=0x001C (to 0xAB1F) AB03: C7 DE 94 14 57 5E C4 97 DB 8B 6B BF 50 47 E6 5F AB13: 82 17 57 62 EB 14 90 8C F4 59 5B BB ; ; YOU ARE UNABLE TO AFFECT THESE CYLINDERS. ; ; ; end group_AND at 0xAAFE ; AB1F: 02 06 ; Section=02:SECTION_02_SHORT_NAME, length=0x0006 (to 0xAB27) ; CYLINDER AB21: CE 56 8E 7A 23 62 ; -------------- Object OBJ_89_ALIEN_ANTS -------------- AB27: 5B 81 6B ; Word_num=0x5B ALIEN, length=0x016B (to 0xAC95) AB2A: 00 00 90 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?..A....(??,Alive) ; AB2D: 03 22 ; Section=03:SECTION_03_DESCRIPTION, length=0x0022 (to 0xAB51) AB2F: 04 20 ; COM_04_print_message length=0x0020 (to 0xAB51) AB31: 6C BE 1B 60 8D 7A 03 71 CD 9A 94 14 45 5E D9 B0 AB41: 90 8C C3 6A F3 8C 4F A1 96 AF DB 72 FB A5 99 53 ; ; THREE INCH ANTS ARE CRAWLING ALL OVER THE PLACE! ; ; AB51: 07 81 1C ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x011C (to 0xAC70) AB54: 0D 81 19 ; COM_0D_group_AND length=0x0119 (to 0xAC70) AB57: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) AB59: 0E 81 14 ; COM_0E_group_OR length=0x0114 (to 0xAC70) AB5C: 0D 80 81 ; COM_0D_group_AND length=0x0081 (to 0xABE0) AB5F: 09 5C ; COM_09_is_noun2(obj=OBJ_5C_PAIR_HANDS) AB61: 04 79 ; COM_04_print_message length=0x0079 (to 0xABDC) AB63: 09 BA E3 93 AB 98 8E 48 5E 17 EA 48 91 7A 96 14 AB73: 82 17 56 5E 87 74 10 B7 0B 5C C3 9E AF 55 8F 49 AB83: 75 B1 51 18 4D C2 46 7A 63 16 9F 9B BF 14 03 BC AB93: DB B5 1B A1 67 66 16 8A DB 72 70 CA DB 9F C3 9E ABA3: 5F BE 23 7B 03 BA CE 98 51 18 54 C2 8E 5F 6F 7C ABB3: 51 18 23 C6 FE 67 1F 8F A9 15 B8 D0 46 62 D6 15 ABC3: D5 15 89 17 CE 9C 7F 49 89 17 09 15 90 14 82 DF ABD3: 91 7A 84 14 36 A1 D6 15 2E ; ; STOMPING AND SLAPPING AT THE THOUSANDS OF CREATURES YOU ; KILL MANY. BUT AS YOU FEEL THE VENOM OF THEIR STING, YOU ; REALIZE YOUR FOLLY. HOWEVER, IT IS TOO LATE TO DO ANYTHING ; ABOUT IT. ; ABDC: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) ABDE: 1D 4B ; COM_1D_attack_var(points=75) ; ; end group_AND at 0xAB5C ABE0: 0D 80 8D ; COM_0D_group_AND length=0x008D (to 0xAC70) ABE3: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xABEB) ABE5: 09 32 ; COM_09_is_noun2(obj=OBJ_32_SHOVEL) ABE7: 09 28 ; COM_09_is_noun2(obj=OBJ_28_SHOTGUN) ABE9: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) ; ; end group_OR at 0xABE3 ABEB: 04 7F ; COM_04_print_message length=0x007F (to 0xAC6C) ABED: C7 DE 2B 17 83 7A 89 4E CB D2 89 5B 91 96 96 96 ABFD: DB 72 90 91 45 DB 63 B1 74 C0 4B 62 AB 55 C3 D1 AC0D: AB 98 03 A0 5F BE 56 15 44 A0 55 F4 FE C3 96 61 AC1D: 5B DB 1B A1 67 66 03 8A BF 14 D3 B2 AB 98 4B A4 AC2D: 91 96 9B 96 34 A1 3F 16 C3 6A D1 B5 5B 98 C3 9E AC3D: 5F BE E4 14 96 5F 2F C6 D5 B5 90 BE CB 6E C7 DE AC4D: 5B F4 1B A1 55 A4 D1 B5 73 C6 A5 B7 0E A0 CE B5 AC5D: 7F 49 F3 B4 78 98 23 62 6B BF F3 49 B0 85 2E ; ; YOU RAIN BLOWS DOWN ON THE MANY CREATURES CRAWLING ON THE ; FLOOR. SUDDENLY YOU FEEL A BURNING PAIN ON YOUR LEG AS ONE ; OF THE CREATURES STINGS YOU. YOU PASS OUT SECONDS LATER, ; NEVER TO AWAKEN. ; AC6C: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) AC6E: 1D 4B ; COM_1D_attack_var(points=75) ; ; end group_AND at 0xABE0 ; ; end group_OR at 0xAB59 ; ; end group_AND at 0xAB54 ; AC70: 08 18 ; Section=08:SECTION_08_EVERY_TURN, length=0x0018 (to 0xAC8A) AC72: 1F 16 ; COM_1F_print2 length=0x0016 (to 0xAC8A) AC74: 5F BE 90 14 0B C0 2F 49 E4 14 FE 49 91 7A 38 15 AC84: 43 62 1F D1 59 B1 ; ; THE ANTS ARE CRAWLING EVERYWHERE! ; ; AC8A: 02 09 ; Section=02:SECTION_02_SHORT_NAME, length=0x0009 (to 0xAC95) ; HOARD OF ANTS AC8C: 73 74 33 B1 C3 9E 9E 48 53 ; -------------- Object OBJ_8A_DEAD_ALIEN -------------- AC95: 5B 22 ; Word_num=0x5B ALIEN, length=0x0022 (to 0xACB9) AC97: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; AC9A: 03 14 ; Section=03:SECTION_03_DESCRIPTION, length=0x0014 (to 0xACB0) AC9C: 04 12 ; COM_04_print_message length=0x0012 (to 0xACB0) AC9E: 5F BE 5B B1 4B 7B 46 45 86 5F 8E 14 30 79 9F 15 ACAE: 7F B1 ; ; THERE IS A DEAD ALIEN HERE. ; ; ACB0: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0xACB9) ; DEAD ALIEN ACB2: E3 59 03 58 87 8C 4E ; -------------- Object OBJ_8B_SQUIRMING_ALIEN -------------- ACB9: 5B 7C ; Word_num=0x5B ALIEN, length=0x007C (to 0xAD37) ACBB: DB 05 90 ; Location=0xDB, disk_section=5, ext_attr=....----(), attributes=?..A....(??,Alive) ; ACBE: 03 77 ; Section=03:SECTION_03_DESCRIPTION, length=0x0077 (to 0xAD37) ACC0: 0D 75 ; COM_0D_group_AND length=0x0075 (to 0xAD37) ACC2: 17 8B 00 ; COM_17_move_object_to(obj=OBJ_8B_SQUIRMING_ALIEN, destination=nowhere) ACC5: 17 8A DB ; COM_17_move_object_to(obj=OBJ_8A_DEAD_ALIEN, destination=RM_1_DB_??) ACC8: 38 ; COM_38_bump_score() ACC9: 04 6C ; COM_04_print_message length=0x006C (to 0xAD37) ACCB: 63 98 03 B1 03 EE 83 96 87 8C 84 96 D0 60 CB 6A ACDB: D5 B5 AB AD AB B2 AB 98 03 A0 5F BE 84 15 30 A1 ACEB: AB 57 73 7B 81 8D CB 87 D3 C5 73 49 C7 DE 90 14 ACFB: 15 58 55 4A 71 13 E7 8B 81 A6 AC A2 9F 15 E9 16 AD0B: 9E 7A C3 B5 16 BC DB 72 24 56 43 5E 33 98 5F BE AD1B: 92 96 50 9F 0B C0 B5 D0 9B C1 DB 72 5F BE 84 96 AD2B: E1 5F 35 92 CF 17 7B B4 03 BA 17 8D ; ; NEARBY, AN ALIEN BEING IS SQUIRMING ON THE GROUND! IT LOOKS ; UP AT YOU AND SAYS "GLEEPOOP!" HE POINTS AT THE CUBE AND ; THEN POINTS WEST. HE THEN BECOMES VERY STILL. ; ; ; end group_AND at 0xACC0 ; -------------- Object OBJ_8C_PROSPECTOR -------------- AD37: 70 81 BD ; Word_num=0x70 PROSPE, length=0x01BD (to 0xAEF7) AD3A: E8 05 90 ; Location=0xE8, disk_section=5, ext_attr=....----(), attributes=?..A....(??,Alive) ; AD3D: 03 2C ; Section=03:SECTION_03_DESCRIPTION, length=0x002C (to 0xAD6B) AD3F: 04 2A ; COM_04_print_message length=0x002A (to 0xAD6B) AD41: 83 48 BE 9F EC 16 E2 A0 E6 5F A3 A0 FB B9 4D 98 AD51: 9F 15 7F B1 9F 15 57 17 75 61 89 17 AF 14 DE 14 AD61: 90 5F 91 7A A3 15 C9 B5 A7 C5 ; ; AN OLD PROSPECTOR STANDS HERE. HE SEEMS TO BE CLEANING HIS ; GUN. ; ; AD6B: 07 62 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0062 (to 0xADCF) AD6D: 0D 60 ; COM_0D_group_AND length=0x0060 (to 0xADCF) AD6F: 0E 05 ; COM_0E_group_OR length=0x0005 (to 0xAD76) AD71: C4 ; FN_C4_IS_PHRASE_AN_AFFECT AD72: 0A 0E ; COM_0A_is_input_phrase(phrase=THROW u....... TO ...P....) AD74: 0A 57 ; COM_0A_is_input_phrase(phrase=SHOOT u....... WITH u.......) ; ; end group_OR at 0xAD6F AD76: 04 53 ; COM_04_print_message length=0x0053 (to 0xADCB) AD78: 4B 49 C7 DE AF 14 50 6D 89 17 71 16 7E CA 9F 15 AD88: 2B 17 57 7B CA B5 4B 7B 30 6F 90 14 12 58 50 9F AD98: 0B C0 73 7B 73 49 C7 DE BF 06 44 2C 4F 8B BE 06 ADA8: FC 25 46 6E 43 18 C6 06 64 C5 DB 14 FB C0 FE 67 ADB8: 33 89 59 77 60 49 F3 23 04 4F 9B 96 66 62 2E 62 ADC8: 19 60 22 ; ; AS YOU BEGIN TO MOVE, HE RAISES HIS GUN AND POINTS IT AT ; YOU! >> BLAM! << "GOT YA! DUMB CITY FOLK, I WASN'T BORN ; YESTERDEE!" ; ADCB: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) ADCD: 1D 4B ; COM_1D_attack_var(points=75) ; ; end group_AND at 0xAD6D ; ADCF: 08 81 1C ; Section=08:SECTION_08_EVERY_TURN, length=0x011C (to 0xAEEE) ADD2: 0E 81 19 ; COM_0E_group_OR length=0x0119 (to 0xAEEE) ADD5: 0D 1F ; COM_0D_group_AND length=0x001F (to 0xADF6) ADD7: 03 01 8D ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_8D_PROSPECTOR_HAS_SPOKEN) ADDA: 1F 1A ; COM_1F_print2 length=0x001A (to 0xADF6) ADDC: 91 1E 55 C2 8E BE 0A 8A 2F 62 A3 00 1B B7 D6 B5 ADEC: DB 72 F9 A6 5F B9 09 56 1B B5 ; ; "YOU STILL HERE?" SAYS THE PROSPECTOR. ; ; ; end group_AND at 0xADD5 ADF6: 0D 80 F5 ; COM_0D_group_AND length=0x00F5 (to 0xAEEE) ADF9: 14 ; COM_14_reverse_status next command ADFA: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0xAE04) ADFC: 0A 03 ; COM_0A_is_input_phrase(phrase=EAST * * *) ADFE: 0A 04 ; COM_0A_is_input_phrase(phrase=WEST * * *) AE00: 0A 01 ; COM_0A_is_input_phrase(phrase=NORTH * * *) AE02: 0A 02 ; COM_0A_is_input_phrase(phrase=SOUTH * * *) ; ; end group_OR at 0xADFA AE04: 01 01 ; COM_01_is_in_pack_or_room(obj=OBJ_01_PLAYER) AE06: 1F 80 E2 ; COM_1F_print2 length=0x00E2 (to 0xAEEB) AE09: 5F BE EC 16 E2 A0 E6 5F A3 A0 81 8D CB 87 C7 DE AE19: 03 15 65 B1 13 BF D0 15 82 17 47 5E 35 DD 90 14 AE29: 15 58 55 4A FC ED 55 77 30 60 7B 14 0C BA 91 48 AE39: 56 5E 90 73 D1 6A 73 C6 B5 D0 AB BB 3F B9 4D 5E AE49: 8E 7A B8 16 E4 14 96 5F 2F C6 CB 06 5A 17 F3 A0 AE59: 8F 73 FA 17 83 61 55 77 30 60 A3 15 DB 95 43 79 AE69: C7 DE 94 14 46 5E 64 C5 30 15 29 A1 16 71 CA 9C AE79: 86 5F 82 17 73 49 1B D0 0E EE 3D A0 C7 16 08 BC AE89: A3 A0 5F BE 63 16 0F 6E 85 BE A0 13 E3 9F 13 8D AE99: 5B F4 1B A1 47 55 B3 8B 5F B9 33 98 5F BE 2F 17 AEA9: F3 B9 C3 9E C7 DE 8E AF 4F 79 D0 15 82 17 4B 7B AEB9: F5 59 3E 62 D0 06 8E A1 71 16 5B CA 49 48 AB 98 AEC9: 98 45 AF A0 BB 15 29 B8 F3 A0 C7 DE E3 06 DB 72 AED9: 77 5B 05 B9 15 BC 2F 60 CF 17 7B B4 73 68 8E 61 AEE9: 1F 8F ; ; THE PROSPECTOR LOOKS YOU DIRECTLY IN THE EYES AND SAYS, "I ; SEEN A STRANGE THING OUT WEST! SOME KIND OF CREATURE! I ; SHOT HIM WHEN I SEEN HIM. IF YOU ARE DUMB ENOUGH TO HEAD ; THAT WAY, LOOK OUT FOR THE MAGNETIC 'NOMALLY. YOU COULD ; SPEND THE REST OF YOUR LIFE IN THIS DESERT! NOW, MOVE ALONG ; A'FORE I SHOOT YOU!" HE DOESN'T SEEM VERY FRIENDLY. ; AEEB: 17 8D 01 ; COM_17_move_object_to(obj=OBJ_8D_PROSPECTOR_HAS_SPOKEN, destination=OBJ_01_PLAYER) ; ; end group_AND at 0xADF6 ; ; end group_OR at 0xADD2 ; AEEE: 02 07 ; Section=02:SECTION_02_SHORT_NAME, length=0x0007 (to 0xAEF7) ; PROSPECTOR AEF0: F9 A6 5F B9 09 56 52 ; -------------- Object OBJ_8D_PROSPECTOR_HAS_SPOKEN -------------- AEF7: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0xAEFC) AEF9: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; -------------- Object OBJ_8E_MACHINE -------------- AEFC: 6F 0A ; Word_num=0x6F MACHIN, length=0x000A (to 0xAF08) AEFE: 9B 08 80 ; Location=0x9B, disk_section=8, ext_attr=....----(), attributes=?.......(??) ; AF01: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0xAF08) ; MACHINE AF03: 85 91 90 73 45 ; -------------- Object OBJ_8F_WHITE_BUTTON_ENGINES -------------- AF08: 4A 80 87 ; Word_num=0x4A BUTTON, length=0x0087 (to 0xAF92) AF0B: 3A 00 80 ; Location=0x3A, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; AF0E: 01 01 ; Section=01:SECTION_01_ADJECTIVES, length=0x0001 (to 0xAF11) AF10: 60 ; WHITE ; AF11: 07 75 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0075 (to 0xAF88) AF13: 0D 73 ; COM_0D_group_AND length=0x0073 (to 0xAF88) AF15: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) AF17: 0E 6F ; COM_0E_group_OR length=0x006F (to 0xAF88) AF19: 0D 6B ; COM_0D_group_AND length=0x006B (to 0xAF86) AF1B: 04 42 ; COM_04_print_message length=0x0042 (to 0xAF5F) AF1D: C3 54 AF 54 51 18 4A C2 94 5F 7B 14 87 8D 14 58 AF2D: 64 C5 DB 8B 4B 49 5F BE 5A 17 D3 7A 74 8E 1F 54 AF3D: C8 B5 A3 A0 4F 45 E7 9F D7 9A 82 17 83 61 58 45 AF4D: 45 9F 55 5E 55 4A FC ED 6F CC 44 5E 03 A0 56 B8 AF5D: 2C E1 ; ; CLICK. YOU HEAR A LOUD RUMBLE AS THE SHIP LURCHES FOR A ; MOMENT. THEN A VOICE SAYS, "VREE BON SITZ!" ; AF5F: 03 01 80 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_80_WISDOM) AF62: 04 22 ; COM_04_print_message length=0x0022 (to 0xAF86) AF64: C7 DE B0 17 F4 59 FB B9 33 98 63 BE D6 B5 CF 9C AF74: 90 5F FC ED 91 61 8F 7A C3 B5 5B B1 4F 59 77 47 AF84: 9C 5D ; ; YOU UNDERSTAND THIS TO MEAN, "ENGINES ARE DAMAGED." ; ; ; end group_AND at 0xAF19 AF86: 14 ; COM_14_reverse_status next command AF87: 0C ; COM_0C_fail() ; ; end group_OR at 0xAF17 ; ; end group_AND at 0xAF13 ; AF88: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0xAF92) ; WHITE BUTTON AF8A: 23 D1 DB BD F6 4F 80 BF ; -------------- Object OBJ_90_CHAIR -------------- AF92: 53 0C ; Word_num=0x53 CHAIR, length=0x000C (to 0xAFA0) AF94: 89 07 80 ; Location=0x89, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; AF97: 07 01 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0001 (to 0xAF9A) AF99: C5 ; FN_C5_ENTER_CLIMB_OUT ; AF9A: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xAFA0) ; CHAIR AF9C: 1B 54 23 7B ; -------------- Object OBJ_91_ALIEN_POISON -------------- AFA0: 00 09 ; Word_num=0x00 -none-, length=0x0009 (to 0xAFAB) AFA2: 00 00 A0 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.P.....(??,Portable) ; AFA5: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xAFAB) ; POISON AFA7: 7B A6 40 B9 ; -------------- Object OBJ_92_SCORE -------------- AFAB: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0xAFB0) AFAD: 00 00 00 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=........() ; -------------- Object OBJ_93_DOOR_ESNEL -------------- AFB0: 10 09 ; Word_num=0x10 DOOR, length=0x0009 (to 0xAFBB) AFB2: 83 29 88 ; Location=0x83, disk_section=9, ext_attr=..C.----(Closed), attributes=?...O...(??,Openable) ; AFB5: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xAFBB) ; ESNEL AFB7: 60 62 33 61 ; -------------- Object OBJ_94_GOOLUB -------------- AFBB: 71 32 ; Word_num=0x71 GOOLUB, length=0x0032 (to 0xAFEF) AFBD: 31 00 90 ; Location=0x31, disk_section=0, ext_attr=....----(), attributes=?..A....(??,Alive) ; AFC0: 07 27 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0027 (to 0xAFE9) AFC2: 0D 25 ; COM_0D_group_AND length=0x0025 (to 0xAFE9) AFC4: 0E 05 ; COM_0E_group_OR length=0x0005 (to 0xAFCB) AFC6: C4 ; FN_C4_IS_PHRASE_AN_AFFECT AFC7: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) AFC9: 0A 57 ; COM_0A_is_input_phrase(phrase=SHOOT u....... WITH u.......) ; ; end group_OR at 0xAFC4 AFCB: 04 0E ; COM_04_print_message length=0x000E (to 0xAFDB) AFCD: E9 C5 84 96 D0 60 C6 6A 66 7B 2C C6 16 60 ; ; UPON BEING DISTURBED, ; AFDB: A8 ; FN_A8_PRINT_noun1 AFDC: 04 08 ; COM_04_print_message length=0x0008 (to 0xAFE6) AFDE: 83 67 4B 62 F3 49 DB E0 ; ; FLIES AWAY. ; AFE6: 17 94 00 ; COM_17_move_object_to(obj=OBJ_94_GOOLUB, destination=nowhere) ; ; end group_AND at 0xAFC2 ; AFE9: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xAFEF) ; GOOLUB AFEB: 41 6E 64 8E ; -------------- Object OBJ_95_DOOR_ESNEL -------------- AFEF: 10 2C ; Word_num=0x10 DOOR, length=0x002C (to 0xB01D) AFF1: 87 69 88 ; Location=0x87, disk_section=9, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; AFF4: 07 21 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0021 (to 0xB017) AFF6: 0E 1F ; COM_0E_group_OR length=0x001F (to 0xB017) AFF8: 0D 0C ; COM_0D_group_AND length=0x000C (to 0xB006) AFFA: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xB002) AFFC: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) AFFE: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) B000: 0A 41 ; COM_0A_is_input_phrase(phrase=LOCK ....A... WITH u.......) ; ; end group_OR at 0xAFFA B002: 14 ; COM_14_reverse_status next command B003: 09 97 ; COM_09_is_noun2(obj=OBJ_97_SMALL_UKORK_KEY) B005: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0xAFF8 B006: 0D 0F ; COM_0D_group_AND length=0x000F (to 0xB017) B008: 0A 11 ; COM_0A_is_input_phrase(phrase=OPEN u....... * *) B00A: 1A ; COM_1A_set_var_to_noun1() B00B: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) B00D: A8 ; FN_A8_PRINT_noun1 B00E: 04 07 ; COM_04_print_message length=0x0007 (to 0xB017) B010: 4B 7B 44 87 B0 85 2E ; ; IS KORKEN. ; ; ; end group_AND at 0xB006 ; ; end group_OR at 0xAFF6 ; B017: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xB01D) ; ESNEL B019: 60 62 33 61 ; -------------- Object OBJ_96_DOOR_ESNEL -------------- B01D: 10 2C ; Word_num=0x10 DOOR, length=0x002C (to 0xB04B) B01F: 89 69 88 ; Location=0x89, disk_section=9, ext_attr=.LC.----(Locked,Closed), attributes=?...O...(??,Openable) ; B022: 07 21 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0021 (to 0xB045) B024: 0E 1F ; COM_0E_group_OR length=0x001F (to 0xB045) B026: 0D 0C ; COM_0D_group_AND length=0x000C (to 0xB034) B028: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xB030) B02A: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) B02C: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) B02E: 0A 41 ; COM_0A_is_input_phrase(phrase=LOCK ....A... WITH u.......) ; ; end group_OR at 0xB028 B030: 14 ; COM_14_reverse_status next command B031: 09 97 ; COM_09_is_noun2(obj=OBJ_97_SMALL_UKORK_KEY) B033: BA ; FN_BA_OPEN_UNLOCK ; ; end group_AND at 0xB026 B034: 0D 0F ; COM_0D_group_AND length=0x000F (to 0xB045) B036: 0A 11 ; COM_0A_is_input_phrase(phrase=OPEN u....... * *) B038: 1A ; COM_1A_set_var_to_noun1() B039: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) B03B: A8 ; FN_A8_PRINT_noun1 B03C: 04 07 ; COM_04_print_message length=0x0007 (to 0xB045) B03E: 4B 7B 44 87 B0 85 2E ; ; IS KORKEN. ; ; ; end group_AND at 0xB034 ; ; end group_OR at 0xB024 ; B045: 02 04 ; Section=02:SECTION_02_SHORT_NAME, length=0x0004 (to 0xB04B) ; ESNEL B047: 60 62 33 61 ; -------------- Object OBJ_97_SMALL_UKORK_KEY -------------- B04B: 16 77 ; Word_num=0x16 KEY, length=0x0077 (to 0xB0C4) B04D: 86 09 A4 ; Location=0x86, disk_section=9, ext_attr=....----(), attributes=?.P..R..(??,Portable,Readable) ; B050: 03 15 ; Section=03:SECTION_03_DESCRIPTION, length=0x0015 (to 0xB067) B052: 04 13 ; COM_04_print_message length=0x0013 (to 0xB067) B054: 5F BE 5B B1 4B 7B 55 45 8E 91 17 8A 44 87 CA 83 B064: 2F 62 2E ; ; THERE IS A SMALL UKORK HERE. ; ; B067: 07 51 ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x0051 (to 0xB0BA) B069: 0D 4F ; COM_0D_group_AND length=0x004F (to 0xB0BA) B06B: 0A 08 ; COM_0A_is_input_phrase(phrase=READ .....?.. * *) B06D: 04 0F ; COM_04_print_message length=0x000F (to 0xB07E) B06F: 04 1D AE 85 EB B8 18 BC 67 B1 05 4F 4E BD 22 ; ; "ORKELSMIT VREEBOSTAL" ; B07E: 0E 3A ; COM_0E_group_OR length=0x003A (to 0xB0BA) B080: 0D 36 ; COM_0D_group_AND length=0x0036 (to 0xB0B8) B082: 03 01 80 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_80_WISDOM) B085: 04 31 ; COM_04_print_message length=0x0031 (to 0xB0B8) B087: FA 17 DA 78 67 16 9D 48 FC ED 43 79 07 68 56 98 B097: 0C 15 53 A0 83 7A A3 48 63 16 3C 7A B7 A1 2F 17 B0A7: 74 C0 92 96 E6 A0 77 47 87 15 3F 49 BF 9A 17 60 B0B7: 22 ; ; WHICH MEANS, "IF FOUND, DROP IN ANY MAILBOX. RETURN ; POSTAGE GUARUNTEED." ; ; ; end group_AND at 0xB080 B0B8: 14 ; COM_14_reverse_status next command B0B9: 0C ; COM_0C_fail() ; ; end group_OR at 0xB07E ; ; end group_AND at 0xB069 ; B0BA: 02 08 ; Section=02:SECTION_02_SHORT_NAME, length=0x0008 (to 0xB0C4) ; SMALL UKORK B0BC: E3 B8 F3 8C 21 C5 4B B2 ; -------------- Object OBJ_98_BLURNUM_RADIO -------------- B0C4: 12 81 87 ; Word_num=0x12 RADIO, length=0x0187 (to 0xB24E) B0C7: 8B 09 80 ; Location=0x8B, disk_section=9, ext_attr=....----(), attributes=?.......(??) ; B0CA: 07 81 7A ; Section=07:SECTION_07_IF_FIRST_NOUN, length=0x017A (to 0xB247) B0CD: 0E 81 77 ; COM_0E_group_OR length=0x0177 (to 0xB247) B0D0: 0D 73 ; COM_0D_group_AND length=0x0073 (to 0xB145) B0D2: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) B0D4: 03 00 71 ; COM_03_is_located(owner=nowhere, obj=OBJ_71_GREEN_BUTTON_WEAPON) B0D7: 04 6C ; COM_04_print_message length=0x006C (to 0xB145) B0D9: C2 1D 4B 5E 0B 9B 51 B8 91 96 96 64 DB 72 FB A5 B0E9: 76 98 55 17 0F B2 00 81 D5 15 81 15 91 7A F7 17 B0F9: 17 8D D6 15 9B 15 C4 B5 30 60 FF 14 F4 BD D0 92 B109: F3 5F 5B BE 15 BC B3 55 F9 92 8B 96 CF B5 DA C3 B119: 71 16 5B B1 2B BA 44 BD DB 8B 6B BF 34 A1 8F 16 B129: 0D 60 AF 14 17 53 BE B7 AA 17 07 EE 3E 49 0B 71 B139: D6 B5 4E A0 AA 17 15 EE 8E 91 9C 8F ; ; "THE INVASION OF THE PLANET SCRIMJON IS GOING WELL. IT HAS ; BEEN DETERMINED THAT SCRIMJON IS MUCH MORE SUITABLE TO OUR ; NEEDS BECAUSE, UH, EARTH IS TOO, UH, SMALL." ; ; ; end group_AND at 0xB0D0 B145: 0D 80 9B ; COM_0D_group_AND length=0x009B (to 0xB1E3) B148: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) B14A: 03 01 80 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_80_WISDOM) B14D: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) B14F: 04 80 91 ; COM_04_print_message length=0x0091 (to 0xB1E3) B152: 7A 1B B2 53 08 BC A3 A0 5F BE E4 14 5A 49 B8 16 B162: 82 17 55 5E 47 55 15 BC 92 73 16 EE DB 72 A0 7A B172: 5B 49 03 A0 C3 9E 5F BE E6 16 8F 48 07 BC 3E 49 B182: 0B 71 C9 B5 50 9F D9 6A 46 61 56 F4 DB 72 C6 93 B192: F4 72 5A 17 D3 7A 4B 7B 09 9A D0 15 C4 16 16 4E B1A2: 03 EE 33 98 4E D1 15 8A 40 A0 AF 14 50 6D 82 17 B1B2: 52 5E 31 C6 51 5E 8E 64 4F 79 59 15 B5 B2 54 F4 B1C2: E9 61 B3 B3 6B BF C7 DE 95 AF 09 A6 0F A0 F6 B0 B1D2: A3 46 83 7A 6C BE 1B 60 7F 67 30 60 69 B9 2F C0 B1E2: 22 ; ; "EXCEPT FOR THE CRASH OF THE SCOUT SHIP, THE INVASION OF ; THE PLANET EARTH IS GOING WELL. THE MOTHER SHIP IS NOW IN ; ORBIT, AND WILL SOON BEGIN THE PURGE OF LIFE FORMS. REPORT ; TO YOUR SPLOONERBLAB IN THREE FLEEENSPOTS." ; ; ; end group_AND at 0xB145 B1E3: 0D 56 ; COM_0D_group_AND length=0x0056 (to 0xB23B) B1E5: 0A 50 ; COM_0A_is_input_phrase(phrase=TURN * ON u.......) B1E7: 04 52 ; COM_04_print_message length=0x0052 (to 0xB23B) B1E9: 5D 1E 33 A7 BD 55 15 71 F3 55 2A B8 10 EE A0 CC B1F9: E6 16 B3 9A C2 B3 80 15 D9 6A 17 8D 76 16 E3 74 B209: 2A B8 83 16 FE B0 8E 16 FE 17 15 8A 95 96 FE BF B219: EC 16 C8 6A 40 16 5C 15 6F 94 3A 17 B3 B3 1B BC B229: 95 AF 08 A6 F6 B0 90 4B 82 17 88 AF 5D 8D 4D A7 B239: 63 F4 ; ; "XCPT CRSH SCT SHP, NVSN PLNT RTH GNG WLL. MTHR SHP N RBT ; ND WLL SN STRT PRG F LF FRMS. RPRT T YR SPLNRBLB N THR ; FLNSPTS." ; ; ; end group_AND at 0xB1E3 B23B: 0D 0A ; COM_0D_group_AND length=0x000A (to 0xB247) B23D: 0A 0B ; COM_0A_is_input_phrase(phrase=LOOK * AT u.......) B23F: A8 ; FN_A8_PRINT_noun1 B240: 04 05 ; COM_04_print_message length=0x0005 (to 0xB247) B242: 4B 7B D0 9E 2E ; ; IS OFF. ; ; ; end group_AND at 0xB23B ; ; end group_OR at 0xB0CD ; B247: 02 05 ; Section=02:SECTION_02_SHORT_NAME, length=0x0005 (to 0xB24E) ; BLURNUM B249: 8F 4E DF B2 4D ; -------------- Object OBJ_99_SHIP -------------- B24E: 66 08 ; Word_num=0x66 SHIP, length=0x0008 (to 0xB258) B250: 9D 05 80 ; Location=0x9D, disk_section=5, ext_attr=....----(), attributes=?.......(??) ; B253: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0xB258) ; SHIP B255: 23 B8 50 ; -------------- Object OBJ_9A_WALL -------------- B258: 25 08 ; Word_num=0x25 WALL, length=0x0008 (to 0xB262) B25A: 01 00 80 ; Location=0x01, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; B25D: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0xB262) ; WALL B25F: 0E D0 4C ; -------------- Object OBJ_9B_?? -------------- B262: 00 03 ; Word_num=0x00 -none-, length=0x0003 (to 0xB267) B264: 00 00 00 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=........() ; -------------- Object OBJ_9C_SHIP -------------- B267: 66 08 ; Word_num=0x66 SHIP, length=0x0008 (to 0xB271) B269: 80 07 80 ; Location=0x80, disk_section=7, ext_attr=....----(), attributes=?.......(??) ; B26C: 02 03 ; Section=02:SECTION_02_SHORT_NAME, length=0x0003 (to 0xB271) ; SHIP B26E: 23 B8 50 ; -------------- Object OBJ_9D_THIRST_TRACKER -------------- B271: 00 81 3B ; Word_num=0x00 -none-, length=0x013B (to 0xB3AF) B274: 00 00 80 ; Location=0x00, disk_section=0, ext_attr=....----(), attributes=?.......(??) ; B277: 08 81 35 ; Section=08:SECTION_08_EVERY_TURN, length=0x0135 (to 0xB3AF) B27A: 0D 81 32 ; COM_0D_group_AND length=0x0132 (to 0xB3AF) B27D: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) B27F: 1D 02 ; COM_1D_attack_var(points=2) B281: 0B 81 2B 22 ; COM_0B_switch length=0x012B (to 0xB3B0), function=COM_22_is_less_equal_health(points) B285: 01 01 ; case COM_22_is_less_equal_health(points=1), length=0x0001 B287: 1A ; COM_1A_set_var_to_noun1() ; ; end case B288: 03 33 ; case COM_22_is_less_equal_health(points=3), length=0x0033 B28A: 1F 31 ; COM_1F_print2 length=0x0031 (to 0xB2BD) B28C: C7 DE E1 14 FB 8C 17 A7 FB 17 53 BE 22 63 B5 49 B29C: 91 BE 1B 9C 43 79 C7 DE 9B 15 5B CA A3 48 F3 17 B2AC: F4 BD 04 EE 8E 62 23 62 F3 5B 4B 99 73 7B 09 9A B2BC: 21 ; ; YOU COLLAPSE WITH EXHAUSTION. IF YOU HAVE ANY WATER, BETTER ; DRINK IT NOW! ; ; ; end case B2BD: 08 01 ; case COM_22_is_less_equal_health(points=8), length=0x0001 B2BF: 1A ; COM_1A_set_var_to_noun1() ; ; end case B2C0: 0A 22 ; case COM_22_is_less_equal_health(points=10), length=0x0022 B2C2: 1F 20 ; COM_1F_print2 length=0x0020 (to 0xB2E4) B2C4: C7 DE D3 14 90 96 F3 A0 A7 85 09 A3 50 9F D9 6A B2D4: 82 7B 36 A1 61 17 1B 92 6E B1 28 79 61 17 01 A0 ; ; YOU CAN NOT KEEP GOING WITHOUT SOME RELIEF SOON! ; ; ; end case B2E4: 12 01 ; case COM_22_is_less_equal_health(points=18), length=0x0001 B2E6: 1A ; COM_1A_set_var_to_noun1() ; ; end case B2E7: 14 0C ; case COM_22_is_less_equal_health(points=20), length=0x000C B2E9: 1F 0A ; COM_1F_print2 length=0x000A (to 0xB2F5) B2EB: 45 6E 0B 71 DB 22 94 BE F1 5F ; ; GOSH I'M TIRED! ; ; ; end case B2F5: 1C 01 ; case COM_22_is_less_equal_health(points=28), length=0x0001 B2F7: 1A ; COM_1A_set_var_to_noun1() ; ; end case B2F8: 1E 1C ; case COM_22_is_less_equal_health(points=30), length=0x001C B2FA: 1F 1A ; COM_1F_print2 length=0x001A (to 0xB316) B2FC: C7 DE D3 14 E6 96 7B 17 9B 85 A5 94 0F 71 AF A0 B30C: B8 16 82 17 4B 7B E3 72 AB BB ; ; YOU CAN'T TAKE MUCH MORE OF THIS HEAT! ; ; ; end case B316: 26 01 ; case COM_22_is_less_equal_health(points=38), length=0x0001 B318: 1A ; COM_1A_set_var_to_noun1() ; ; end case B319: 28 10 ; case COM_22_is_less_equal_health(points=40), length=0x0010 B31B: 1F 0E ; COM_1F_print2 length=0x000E (to 0xB32B) B31D: 0B 4F 0B EE DB 22 2B B9 63 BE A6 B3 EB DA ; ; BOY, I'M SO THIRSTY! ; ; ; end case B32B: 30 01 ; case COM_22_is_less_equal_health(points=48), length=0x0001 B32D: 1A ; COM_1A_set_var_to_noun1() ; ; end case B32E: 32 1E ; case COM_22_is_less_equal_health(points=50), length=0x001E B330: 1F 1C ; COM_1F_print2 length=0x001C (to 0xB34E) B332: 4A 77 5F A0 51 18 44 C2 07 B3 2E 6D 49 16 0B C0 B342: C3 9E 01 68 03 58 33 98 16 D0 21 62 ; ; I HOPE YOU BROUGHT LOTS OF FOOD AND WATER! ; ; ; end case B34E: 3A 01 ; case COM_22_is_less_equal_health(points=58), length=0x0001 B350: 1A ; COM_1A_set_var_to_noun1() ; ; end case B351: 3C 34 ; case COM_22_is_less_equal_health(points=60), length=0x0034 B353: 1F 32 ; COM_1F_print2 length=0x0032 (to 0xB387) B355: C7 DE D3 14 94 96 8E 5F FB 8E 67 66 16 8A DB 72 B365: E3 72 11 BC 96 64 DB 72 30 BA BF 14 D3 B2 AB 98 B375: 89 5B 91 96 9B 96 1B A1 83 7A 63 BE C6 B5 57 62 B385: B1 B3 ; ; YOU CAN REALLY FEEL THE HEAT OF THE SUN BURNING DOWN ON YOU ; IN THIS DESERT! ; ; ; end case B387: 41 01 ; case COM_22_is_less_equal_health(points=65), length=0x0001 B389: 1A ; COM_1A_set_var_to_noun1() ; ; end case B38A: 43 20 ; case COM_22_is_less_equal_health(points=67), length=0x0020 B38C: 1F 1E ; COM_1F_print2 length=0x001E (to 0xB3AC) B38E: 0B 4F 16 EE 95 73 FF 14 B4 B7 0B BC C9 B5 18 A0 B39E: 44 45 56 5E 29 A1 16 71 C5 9C 05 B3 6B B5 ; ; BOY, THIS DESERT IS GONNA BE TOUGH TO CROSS! ; ; ; end case B3AC: FF 01 ; case COM_22_is_less_equal_health(points=255), length=0x0001 B3AE: 1A ; COM_1A_set_var_to_noun1() ; ; end case ; ; end decode_switch at 0xB281 ; ; end group_AND at 0xB27A SubroutineCommands: B3AF: 00 89 BC ; List_ID=0x00, length=0x09BC (to 0xBD6E) ; -------------- Routine FN_81_PRINT_DOOR_HERE ; B3B2: 81 10 ; Routine Number: 0x81, Length: 0x0010 B3B4: 04 0E ; COM_04_print_message length=0x000E (to 0xB3C4) B3B6: 5F BE 5B B1 4B 7B 46 45 44 A0 9F 15 7F B1 ; ; THERE IS A DOOR HERE. ; ; -------------- Routine FN_80_PRINT_SHOTGUN_HERE ; B3C4: 80 12 ; Routine Number: 0x80, Length: 0x0012 B3C6: 04 10 ; COM_04_print_message length=0x0010 (to 0xB3D8) B3C8: 5F BE 5B B1 4B 7B 55 45 86 74 30 6F 9F 15 7F B1 ; ; THERE IS A SHOTGUN HERE. ; ; -------------- Routine FN_8B_PRINT_PERIOD ; B3D8: 8B 04 ; Routine Number: 0x8B, Length: 0x0004 B3DA: 04 02 ; COM_04_print_message length=0x0002 (to 0xB3DE) B3DC: 3B F4 ; ; . ; ; -------------- Routine FN_AB_PRINT_STILL_IN_DESERT ; B3DE: AB 15 ; Routine Number: 0xAB, Length: 0x0015 B3E0: 04 13 ; COM_04_print_message length=0x0013 (to 0xB3F5) B3E2: C7 DE 94 14 55 5E 8E BE 0B 8A 96 96 DB 72 F5 59 B3F2: 3E 62 2E ; ; YOU ARE STILL IN THE DESERT. ; ; -------------- Routine FN_95_PRINT_TRAIL_MEANDERS ; B3F5: 95 23 ; Routine Number: 0x95, Length: 0x0023 B3F7: 04 21 ; COM_04_print_message length=0x0021 (to 0xB41A) B3F9: 55 45 8E 91 16 8A CB B0 0F 8A 90 5F F4 59 C8 B5 B409: FF B2 82 17 47 5E 66 49 89 17 82 17 59 5E 66 62 B419: 2E ; ; A SMALL TRAIL MEANDERS FROM THE EAST TO THE WEST. ; ; -------------- Routine FN_96_PRINT_VAST_CANYON ; B41A: 96 1E ; Routine Number: 0x96, Length: 0x001E B41C: 04 1C ; COM_04_print_message length=0x001C (to 0xB43A) B41E: 58 45 66 49 CF 15 55 A4 04 B7 DB 8B 10 53 C0 DE B42E: C2 16 9D 61 AF 14 04 68 5B 5E 3F A1 ; ; A VAST IMPASSABLE CANYON OPENS BEFORE YOU. ; ; -------------- Routine FN_97_PRINT_CERTAIN_DEATH ; B43A: 97 1D ; Routine Number: 0x97, Length: 0x001D B43C: 04 1B ; COM_04_print_message length=0x001B (to 0xB459) B43E: 6B BF 2B 6E 5B BE 19 BC 3B 4A 47 D2 B3 8B 23 92 B44E: 85 96 3E 62 D0 47 FF 14 82 49 21 ; ; TO GO THAT WAY WOULD MEAN CERTAIN DEATH! ; ; -------------- Routine FN_99_DIE_CANYON_PLUNGE ; B459: 99 50 ; Routine Number: 0x99, Length: 0x0050 B45B: 0D 4E ; COM_0D_group_AND length=0x004E (to 0xB4AB) B45D: 04 46 ; COM_04_print_message length=0x0046 (to 0xB4A5) B45F: 83 46 94 46 7C B3 7C B3 F9 6C 22 6D 62 73 C3 06 B46F: 3C 49 FA 6C AB 70 94 14 BA B1 AB 70 5F BE D3 14 B47F: 91 9B 99 96 46 48 C7 B5 29 54 51 18 23 C6 64 B7 B48F: 8F 5F 95 14 51 18 52 C2 70 8E 9B 6C 6B BF C7 DE B49F: 86 AF 96 5F AB 70 ; ; AAAAARRRRRRRGGGGHHHHH! AARRGGHH! ARRGHH! THE CANYON WALLS ; ECHO YOUR SCREAM AS YOU PLUNGE TO YOUR DEATH! ; B4A5: 20 01 ; COM_20_is_active_object(obj=OBJ_01_PLAYER) B4A7: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) B4A9: 1D 64 ; COM_1D_attack_var(points=100) ; ; end group_AND at 0xB45B ; -------------- Routine FN_9A_PRINT_CANYON_PREVENTS ; B4AB: 9A 31 ; Routine Number: 0x9A, Length: 0x0031 B4AD: 04 2F ; COM_04_print_message length=0x002F (to 0xB4DE) B4AF: 5F BE D3 14 91 9B 99 96 46 48 D4 B5 57 7B 84 14 B4BF: 4F A1 51 18 52 C2 78 B1 9E 61 91 7A 71 16 6F CA B4CF: 9E 61 D0 15 82 17 4B 7B 94 5A E6 5F C0 7A 2E ; ; THE CANYON WALLS RISE ABOVE YOU PREVENTING MOVEMENT IN THIS ; DIRECTION. ; ; -------------- Routine FN_98_PRINT_LAKE ; B4DE: 98 28 ; Routine Number: 0x98, Length: 0x0028 B4E0: 04 26 ; COM_04_print_message length=0x0026 (to 0xB508) B4E2: 6B BF 5F BE 23 15 F3 B9 C7 DE D3 14 95 96 1B 60 B4F2: 1B D1 03 BC 9F A6 3D 49 89 17 AF 14 7B 14 54 8B B502: 9B 6C 4D 8B DB 63 ; ; TO THE EAST YOU CAN SEE WHAT APPEARS TO BE A LARGE LAKE. ; ; -------------- Routine FN_9B_PRINT_EMPTY_HIGHWAY ; B508: 9B 1C ; Routine Number: 0x9B, Length: 0x001C B50A: 04 1A ; COM_04_print_message length=0x001A (to 0xB526) B50C: 83 48 72 61 FB C0 89 73 B3 75 56 DB D8 B0 4D 61 B51C: 23 15 F3 B9 8E 48 F7 17 17 BA ; ; AN EMPTY HIGHWAY TRAVELS EAST AND WEST. ; ; -------------- Routine FN_8D_IS_CLOSED ; B526: 8D 0E ; Routine Number: 0x8D, Length: 0x000E B528: 0D 0C ; COM_0D_group_AND length=0x000C (to 0xB536) B52A: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) B52C: AA ; FN_AA_PRINT_THE_var B52D: 04 07 ; COM_04_print_message length=0x0007 (to 0xB536) B52F: 4B 7B C9 54 A6 B7 2E ; ; IS CLOSED. ; ; ; end group_AND at 0xB528 ; -------------- Routine FN_C7_IS_OBJECT_RIBULN ; B536: C7 0E ; Routine Number: 0xC7, Length: 0x000E B538: 0D 0C ; COM_0D_group_AND length=0x000C (to 0xB546) B53A: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) B53C: AA ; FN_AA_PRINT_THE_var B53D: 04 07 ; COM_04_print_message length=0x0007 (to 0xB546) B53F: 4B 7B 04 B2 48 C5 2E ; ; IS RIBULN. ; ; ; end group_AND at 0xB538 ; -------------- Routine FN_8F_GET_OBJECT ; B546: 8F 80 94 ; Routine Number: 0x8F, Length: 0x0094 B549: 0D 80 91 ; COM_0D_group_AND length=0x0091 (to 0xB5DD) B54C: 0E 80 8D ; COM_0E_group_OR length=0x008D (to 0xB5DC) B54F: 14 ; COM_14_reverse_status next command B550: BF ; FN_BF_IS_LIQUID_REACHABLE B551: 0D 23 ; COM_0D_group_AND length=0x0023 (to 0xB576) B553: 2E 10 ; COM_2E_is_var_ext_attributes(value=...Q----(liQuid)) B555: AA ; FN_AA_PRINT_THE_var B556: 04 1E ; COM_04_print_message length=0x001E (to 0xB576) B558: C3 B8 0B A7 6C BE 29 A1 1B 71 34 A1 53 15 B7 98 B568: AE B3 3F 16 D3 49 AB 98 5F BE 59 90 97 62 ; ; SLIPS THROUGH YOUR FINGERS, LEAVING THEM WET. ; ; ; end group_AND at 0xB551 B576: 0D 1A ; COM_0D_group_AND length=0x001A (to 0xB592) B578: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) B57A: 04 16 ; COM_04_print_message length=0x0016 (to 0xB592) B57C: 46 77 05 A0 16 BC 90 73 CA 83 59 5E 46 7A E1 14 B58C: 5F A0 D6 B0 DB 63 ; ; I DON'T THINK HE WILL COOPERATE. ; ; ; end group_AND at 0xB576 B592: 0D 22 ; COM_0D_group_AND length=0x0022 (to 0xB5B6) B594: 14 ; COM_14_reverse_status next command B595: 15 20 ; COM_15_is_var_attributes(value=..P.....(Portable)) B597: 14 ; COM_14_reverse_status next command B598: 2D 5C ; COM_2D_is_var_object(obj_num=0x5C, obj_text="OBJ_5C_PAIR_HANDS") B59A: 04 18 ; COM_04_print_message length=0x0018 (to 0xB5B4) B59C: C7 DE 94 14 53 5E D6 C4 4B 5E 13 98 44 A4 DB 8B B5AC: C3 9E 6F B1 53 A1 AB 98 ; ; YOU ARE QUITE INCAPABLE OF REMOVING ; B5B4: AA ; FN_AA_PRINT_THE_var B5B5: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0xB592 B5B6: 18 ; COM_18_is_var_owned_by_active() B5B7: 0D 18 ; COM_0D_group_AND length=0x0018 (to 0xB5D1) B5B9: 0F ; COM_0F_pick_up_var_object() B5BA: 14 ; COM_14_reverse_status next command B5BB: 39 ; COM_39_is_weight_70_or_less() B5BC: 04 12 ; COM_04_print_message length=0x0012 (to 0xB5D0) B5BE: C7 DE D3 14 E6 96 D3 14 83 B3 82 17 73 49 A5 94 B5CE: 9B 76 ; ; YOU CAN'T CARRY THAT MUCH. ; B5D0: 10 ; COM_10_drop_var() ; ; end group_AND at 0xB5B7 B5D1: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0xB5DB) B5D3: 0F ; COM_0F_pick_up_var_object() B5D4: AA ; FN_AA_PRINT_THE_var B5D5: 04 04 ; COM_04_print_message length=0x0004 (to 0xB5DB) B5D7: 4D BD A7 61 ; ; TAKEN. ; ; ; end group_AND at 0xB5D1 B5DB: C1 ; FN_C1_PRINT_CANT_REACH_var ; ; end group_OR at 0xB54C B5DC: 18 ; COM_18_is_var_owned_by_active() ; ; end group_AND at 0xB549 ; -------------- Routine FN_A2_PRINT_ALREADY_HAVE_THE_var ; B5DD: A2 13 ; Routine Number: 0xA2, Length: 0x0013 B5DF: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0xB5F2) B5E1: 1A ; COM_1A_set_var_to_noun1() B5E2: 18 ; COM_18_is_var_owned_by_active() B5E3: 04 0B ; COM_04_print_message length=0x000B (to 0xB5F0) B5E5: C7 DE 8E 14 63 B1 FB 5C 58 72 45 ; ; YOU ALREADY HAVE ; B5F0: AA ; FN_AA_PRINT_THE_var B5F1: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0xB5DF ; -------------- Routine FN_90_PRINT_ERROR_CLIMB_ENTER ; B5F2: 90 09 ; Routine Number: 0x90, Length: 0x0009 B5F4: 0B 07 0A ; COM_0B_switch length=0x0007 (to 0xB5FE), function=COM_0A_is_input_phrase(phrase_num) B5F7: 36 01 ; case COM_0A_is_input_phrase("ENTER * * *"), length=0x0001 B5F9: 91 ; FN_91_PRINT_USE_DIRECTIONS ; ; end case B5FA: 37 01 ; case COM_0A_is_input_phrase("CLIMB * OUT *"), length=0x0001 B5FC: 91 ; FN_91_PRINT_USE_DIRECTIONS ; ; end case ; ; end decode_switch at 0xB5F4 ; -------------- Routine FN_91_PRINT_USE_DIRECTIONS ; B5FD: 91 19 ; Routine Number: 0x91, Length: 0x0019 B5FF: 1F 17 ; COM_1F_print2 length=0x0017 (to 0xB618) B601: FF A5 57 49 B5 17 46 5E 2F 7B 03 56 1D A0 A6 16 B611: 3F BB 11 EE 99 AF 2E ; ; PLEASE USE DIRECTIONS N,S,E, OR W. ; ; -------------- Routine FN_92_PRINT_TRIED_BUT_COULDNT ; B618: 92 1F ; Routine Number: 0x92, Length: 0x001F B61A: 0D 1D ; COM_0D_group_AND length=0x001D (to 0xB639) B61C: 1A ; COM_1A_set_var_to_noun1() B61D: 14 ; COM_14_reverse_status next command B61E: 15 08 ; COM_15_is_var_attributes(value=....O...(Openable)) B620: 04 17 ; COM_04_print_message length=0x0017 (to 0xB639) B622: C7 DE 8C 17 26 79 04 EE 73 C6 C7 DE E1 14 3E C5 B632: E6 96 09 15 D6 15 2E ; ; YOU TRIED, BUT YOU COULDN'T DO IT. ; ; ; end group_AND at 0xB61A ; -------------- Routine FN_94_INITIALIZE_GAME ; B639: 94 06 ; Routine Number: 0x94, Length: 0x0006 B63B: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0xB641) B63D: 30 80 ; COM_30_set_current_room(room=RM_1_HIGHWAY_WEST) B63F: 2F 01 ; COM_2F_load_section_from_disk(section=1) ; ; end group_AND at 0xB63B ; -------------- Routine FN_A3_PRINT_WELCOME_MESSAGE ; B641: A3 36 ; Routine Number: 0xA3, Length: 0x0036 B643: 0D 34 ; COM_0D_group_AND length=0x0034 (to 0xB679) B645: 3A ; COM_3A_clear_screen() B646: 2C 01 ; COM_2C_set_active(obj=OBJ_01_PLAYER) B648: 30 80 ; COM_30_set_current_room(room=RM_1_HIGHWAY_WEST) B64A: 17 01 80 ; COM_17_move_object_to(obj=OBJ_01_PLAYER, destination=RM_1_HIGHWAY_WEST) B64D: 1F 1A ; COM_1F_print2 length=0x001A (to 0xB669) B64F: DF 2C DF 2C DF 2C DF 2C DF 2C 5A 2C 99 61 BE B5 B65F: 76 26 76 26 76 26 76 26 76 26 ; ; >>>>>>>>>>>>>>>> XENOS <<<<<<<<<<<<<<<< ; B669: 25 ; COM_25_print_linefeed() B66A: 1F 0C ; COM_1F_print2 length=0x000C (to 0xB678) B66C: 0C BA 91 48 46 62 AF 14 14 D0 EB 5D ; ; STRANGER, BEWARE! ; B678: 25 ; COM_25_print_linefeed() ; ; end group_AND at 0xB643 ; -------------- Routine FN_A5_IS_OPEN ; B679: A5 12 ; Routine Number: 0xA5, Length: 0x0012 B67B: 0D 10 ; COM_0D_group_AND length=0x0010 (to 0xB68D) B67D: 14 ; COM_14_reverse_status next command B67E: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) B680: A8 ; FN_A8_PRINT_noun1 B681: 04 0A ; COM_04_print_message length=0x000A (to 0xB68D) B683: 4B 7B 06 9A DE 14 D7 A0 9B 5D ; ; IS NOT CLOSED. ; ; ; end group_AND at 0xB67B ; -------------- Routine FN_A6_OPEN ; B68D: A6 26 ; Routine Number: 0xA6, Length: 0x0026 B68F: 0E 24 ; COM_0E_group_OR length=0x0024 (to 0xB6B5) B691: 0D 0D ; COM_0D_group_AND length=0x000D (to 0xB6A0) B693: 29 ; COM_29_toggle_open_VAR() B694: A8 ; FN_A8_PRINT_noun1 B695: 04 08 ; COM_04_print_message length=0x0008 (to 0xB69F) B697: 4B 7B 09 9A C2 16 A7 61 ; ; IS NOW OPEN. ; B69F: 0C ; COM_0C_fail() ; ; end group_AND at 0xB691 B6A0: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0xB6B3) B6A2: 1A ; COM_1A_set_var_to_noun1() B6A3: 15 02 ; COM_15_is_var_attributes(value=......H.(Holder)) B6A5: 14 ; COM_14_reverse_status next command B6A6: 2E 80 ; COM_2E_is_var_ext_attributes(value=G...----(Glass)) B6A8: 14 ; COM_14_reverse_status next command B6A9: 33 ; COM_33_print_objects_on_var_object() B6AA: A8 ; FN_A8_PRINT_noun1 B6AB: 04 06 ; COM_04_print_message length=0x0006 (to 0xB6B3) B6AD: 4B 7B 72 61 1F C1 ; ; IS EMPTY. ; ; ; end group_AND at 0xB6A0 B6B3: 14 ; COM_14_reverse_status next command B6B4: 0C ; COM_0C_fail() ; ; end group_OR at 0xB68F ; -------------- Routine FN_A8_PRINT_noun1 ; B6B5: A8 0C ; Routine Number: 0xA8, Length: 0x000C B6B7: 0D 0A ; COM_0D_group_AND length=0x000A (to 0xB6C3) B6B9: 1A ; COM_1A_set_var_to_noun1() B6BA: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xB6C2) B6BC: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) B6BE: 1F 02 ; COM_1F_print2 length=0x0002 (to 0xB6C2) B6C0: 5F BE ; ; THE ; ; ; end group_OR at 0xB6BA B6C2: 11 ; COM_11_print_noun1() ; ; end group_AND at 0xB6B7 ; -------------- Routine FN_A9_PRINT_noun2 ; B6C3: A9 0C ; Routine Number: 0xA9, Length: 0x000C B6C5: 0D 0A ; COM_0D_group_AND length=0x000A (to 0xB6D1) B6C7: 1B ; COM_1B_set_var_to_noun2() B6C8: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xB6D0) B6CA: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) B6CC: 1F 02 ; COM_1F_print2 length=0x0002 (to 0xB6D0) B6CE: 5F BE ; ; THE ; ; ; end group_OR at 0xB6C8 B6D0: 12 ; COM_12_print_noun2() ; ; end group_AND at 0xB6C5 ; -------------- Routine FN_AA_PRINT_THE_var ; B6D1: AA 0B ; Routine Number: 0xAA, Length: 0x000B B6D3: 0D 09 ; COM_0D_group_AND length=0x0009 (to 0xB6DE) B6D5: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xB6DD) B6D7: 15 10 ; COM_15_is_var_attributes(value=...A....(Alive)) B6D9: 1F 02 ; COM_1F_print2 length=0x0002 (to 0xB6DD) B6DB: 5F BE ; ; THE ; ; ; end group_OR at 0xB6D5 B6DD: 16 ; COM_16_print_var() ; ; end group_AND at 0xB6D3 ; -------------- Routine FN_9C_PRINT_AIRLOCK_TWO_BUTTONS ; B6DE: 9C 53 ; Routine Number: 0x9C, Length: 0x0053 B6E0: 0D 51 ; COM_0D_group_AND length=0x0051 (to 0xB733) B6E2: 04 04 ; COM_04_print_message length=0x0004 (to 0xB6E8) B6E4: 52 86 5B B9 ; ; KIPSPA ; B6E8: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0xB6F2) B6EA: C3 ; FN_C3_IS_PLAYER_LACKING_WISDOM B6EB: 04 05 ; COM_04_print_message length=0x0005 (to 0xB6F2) B6ED: D4 47 75 8D 4B ; ; AIRLOCK ; ; ; end group_OR at 0xB6E8 B6F2: 8B ; FN_8B_PRINT_PERIOD B6F3: 04 3E ; COM_04_print_message length=0x003E (to 0xB733) B6F5: C7 DE 94 14 4B 5E 83 96 5F 17 46 48 84 15 3B 63 B705: 01 B3 DB 95 5F BE 5B B1 4B 7B 52 45 8F 48 19 8A B715: 82 7B 91 17 C4 9C 8E C6 1D A0 11 EE 5B 98 4B 7B B725: 66 B1 90 14 11 58 5B 98 4B 7B 8F 4E DB 63 ; ; YOU ARE IN A SMALL GREY ROOM. THERE IS A PANEL WITH TWO ; BUTTONS, ONE IS RED AND ONE IS BLUE. ; ; ; end group_AND at 0xB6E0 ; -------------- Routine FN_B0_PRINT_AIRLOCK_THREE_BUTTONS ; B733: B0 5F ; Routine Number: 0xB0, Length: 0x005F B735: 0D 5D ; COM_0D_group_AND length=0x005D (to 0xB794) B737: 04 04 ; COM_04_print_message length=0x0004 (to 0xB73D) B739: 52 86 5B B9 ; ; KIPSPA ; B73D: 0E 08 ; COM_0E_group_OR length=0x0008 (to 0xB747) B73F: C3 ; FN_C3_IS_PLAYER_LACKING_WISDOM B740: 04 05 ; COM_04_print_message length=0x0005 (to 0xB747) B742: D4 47 75 8D 4B ; ; AIRLOCK ; ; ; end group_OR at 0xB73D B747: 8B ; FN_8B_PRINT_PERIOD B748: 04 4A ; COM_04_print_message length=0x004A (to 0xB794) B74A: C7 DE 94 14 4B 5E 83 96 5F 17 46 48 84 15 3B 4A B75A: 01 B3 DB 95 5F BE 5B B1 4B 7B 52 45 8F 48 19 8A B76A: 82 7B 82 17 67 B1 BF 14 49 C0 AE 9A C0 16 4B 5E B77A: D4 B5 16 60 C0 16 4B 5E C4 B5 67 8E 03 EE 33 98 B78A: 0F A0 D5 15 47 18 09 8D 5B D4 ; ; YOU ARE IN A SMALL GRAY ROOM. THERE IS A PANEL WITH THREE ; BUTTONS, ONE IS RED, ONE IS BLUE, AND ONE IS YELLOW. ; ; ; end group_AND at 0xB735 ; -------------- Routine FN_9D_PRINT_EXIT_YELLOW_BUTTON ; B794: 9D 74 ; Routine Number: 0x9D, Length: 0x0074 B796: 0D 72 ; COM_0D_group_AND length=0x0072 (to 0xB80A) B798: 04 05 ; COM_04_print_message length=0x0005 (to 0xB79F) B79A: 89 4E E2 87 41 ; ; BLOKSPA ; B79F: 0E 06 ; COM_0E_group_OR length=0x0006 (to 0xB7A7) B7A1: C3 ; FN_C3_IS_PLAYER_LACKING_WISDOM B7A2: 04 03 ; COM_04_print_message length=0x0003 (to 0xB7A7) B7A4: 23 63 54 ; ; EXIT ; ; ; end group_OR at 0xB79F B7A7: 8B ; FN_8B_PRINT_PERIOD B7A8: 04 60 ; COM_04_print_message length=0x0060 (to 0xB80A) B7AA: C7 DE 94 14 4B 5E 83 96 5F 17 46 48 E7 14 05 4E B7BA: FF 8B 82 17 2F 62 D5 15 7B 14 2E DD 89 8D BF 14 B7CA: 49 C0 91 96 96 96 DB 72 6A A0 DB A0 DB BD 0E D0 B7DA: 9B 8F 03 A0 5F BE 8F 16 23 49 0E D0 16 8A F4 72 B7EA: 4B 5E C3 B5 5F 17 46 48 63 17 94 C3 4A 5E BF 9F B7FA: 84 14 36 A1 91 17 CB 9C 1A 98 4B 62 E7 59 9B A8 ; ; YOU ARE IN A SMALL CUBICLE. THERE IS A YELLOW BUTTON ON THE ; OPPOSITE WALL. ON THE NEAR WALL THERE IS A SMALL SQUARE ; HOLE ABOUT TWO INCHES DEEP. ; ; ; end group_AND at 0xB796 ; -------------- Routine FN_9E_REMOVE_OVAL_FROM_ROOM ; B80A: 9E 03 ; Routine Number: 0x9E, Length: 0x0003 B80C: 17 3E 00 ; COM_17_move_object_to(obj=OBJ_3E_OVAL, destination=nowhere) ; -------------- Routine FN_9F_OVAL_YELLOW_BUTTON ; B80F: 9F 0A ; Routine Number: 0x9F, Length: 0x000A B811: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0xB81B) B813: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) B815: 08 3F ; COM_08_is_noun1(obj=OBJ_3F_YELLOW_BUTTON) B817: AD ; FN_AD_HANDLE_OVAL B818: 17 3E 3F ; COM_17_move_object_to(obj=OBJ_3E_OVAL, destination=OBJ_3F_YELLOW_BUTTON) ; ; end group_AND at 0xB811 ; -------------- Routine FN_A0_OVAL_RED_BUTTON ; B81B: A0 0A ; Routine Number: 0xA0, Length: 0x000A B81D: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0xB827) B81F: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) B821: 08 40 ; COM_08_is_noun1(obj=OBJ_40_RED_BUTTON) B823: AD ; FN_AD_HANDLE_OVAL B824: 17 3E 40 ; COM_17_move_object_to(obj=OBJ_3E_OVAL, destination=OBJ_40_RED_BUTTON) ; ; end group_AND at 0xB81D ; -------------- Routine FN_A1_OVAL_BLUE_BUTTON ; B827: A1 0A ; Routine Number: 0xA1, Length: 0x000A B829: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0xB833) B82B: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) B82D: 08 41 ; COM_08_is_noun1(obj=OBJ_41_BLUE_BUTTON) B82F: AD ; FN_AD_HANDLE_OVAL B830: 17 3E 41 ; COM_17_move_object_to(obj=OBJ_3E_OVAL, destination=OBJ_41_BLUE_BUTTON) ; ; end group_AND at 0xB829 ; -------------- Routine FN_AC_HANDLE_ORANGE_BUTTON ; B833: AC 0A ; Routine Number: 0xAC, Length: 0x000A B835: 0D 08 ; COM_0D_group_AND length=0x0008 (to 0xB83F) B837: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) B839: 08 42 ; COM_08_is_noun1(obj=OBJ_42_ORANGE_BUTTON) B83B: AD ; FN_AD_HANDLE_OVAL B83C: 17 3E 42 ; COM_17_move_object_to(obj=OBJ_3E_OVAL, destination=OBJ_42_ORANGE_BUTTON) ; ; end group_AND at 0xB835 ; -------------- Routine FN_AD_HANDLE_OVAL ; B83F: AD 54 ; Routine Number: 0xAD, Length: 0x0054 B841: 0E 52 ; COM_0E_group_OR length=0x0052 (to 0xB895) B843: 0D 3B ; COM_0D_group_AND length=0x003B (to 0xB880) B845: 14 ; COM_14_reverse_status next command B846: 37 ; COM_37_is_player_in_an_object() B847: 03 00 3E ; COM_03_is_located(owner=nowhere, obj=OBJ_3E_OVAL) B84A: 04 34 ; COM_04_print_message length=0x0034 (to 0xB880) B84C: 44 45 45 8B D1 83 CE C9 92 14 E3 A4 8B B3 03 A0 B85C: 5F BE F3 17 F3 8C 8E 48 3A 15 50 A4 0B 5C 6B BF B86C: 47 48 E6 A0 63 16 95 96 6F 7C 12 58 02 B3 BE A0 B87C: C0 7A 5B BB ; ; A BLACK OVAL APPEARS ON THE WALL AND EXPANDS TO ALMOST MAN ; SIZED PROPORTIONS. ; ; ; end group_AND at 0xB843 B880: 0D 0F ; COM_0D_group_AND length=0x000F (to 0xB891) B882: 14 ; COM_14_reverse_status next command B883: 37 ; COM_37_is_player_in_an_object() B884: 04 0B ; COM_04_print_message length=0x000B (to 0xB891) B886: 06 9A 90 73 CA 6A EA 48 9D 61 2E ; ; NOTHING HAPPENS. ; ; ; end group_AND at 0xB880 B891: 0D 02 ; COM_0D_group_AND length=0x0002 (to 0xB895) B893: 1A ; COM_1A_set_var_to_noun1() B894: C1 ; FN_C1_PRINT_CANT_REACH_var ; ; end group_AND at 0xB891 ; ; end group_OR at 0xB841 ; -------------- Routine FN_AE_PRINT_PUSH_BUTTON ; B895: AE 21 ; Routine Number: 0xAE, Length: 0x0021 B897: 0D 1F ; COM_0D_group_AND length=0x001F (to 0xB8B8) B899: 03 00 3E ; COM_03_is_located(owner=nowhere, obj=OBJ_3E_OVAL) B89C: 04 1A ; COM_04_print_message length=0x001A (to 0xB8B8) B89E: C7 DE FB 17 F3 8C 58 72 56 5E D2 9C 5A C6 7B 14 B8AE: F6 4F 80 BF 06 EE 6F C5 EB DA ; ; YOU WILL HAVE TO PUSH A BUTTON, DUMMY! ; ; ; end group_AND at 0xB897 ; -------------- Routine FN_AF_PRINT_I_SEE_NO_noun1_HERE ; B8B8: AF 13 ; Routine Number: 0xAF, Length: 0x0013 B8BA: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0xB8CD) B8BC: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) B8BE: 04 06 ; COM_04_print_message length=0x0006 (to 0xB8C6) B8C0: 55 77 1B 60 EB 99 ; ; I SEE NO ; B8C6: 11 ; COM_11_print_noun1() B8C7: 04 04 ; COM_04_print_message length=0x0004 (to 0xB8CD) B8C9: F4 72 DB 63 ; ; HERE. ; ; ; end group_AND at 0xB8BA ; -------------- Routine FN_B1_PRINT_var_CONTAINS ; B8CD: B1 0E ; Routine Number: 0xB1, Length: 0x000E B8CF: 0D 0C ; COM_0D_group_AND length=0x000C (to 0xB8DD) B8D1: 04 01 ; COM_04_print_message length=0x0001 (to 0xB8D4) B8D3: 20 ; ; ; B8D4: AA ; FN_AA_PRINT_THE_var B8D5: 04 06 ; COM_04_print_message length=0x0006 (to 0xB8DD) B8D7: 40 55 4B BD 8B 9A ; ; CONTAINS ; ; ; end group_AND at 0xB8CF ; -------------- Routine FN_B2_PRINT_ON_var_CAN_BE_SEEN ; B8DD: B2 11 ; Routine Number: 0xB2, Length: 0x0011 B8DF: 0D 0F ; COM_0D_group_AND length=0x000F (to 0xB8F0) B8E1: 04 02 ; COM_04_print_message length=0x0002 (to 0xB8E5) B8E3: C0 16 ; ; ON ; B8E5: AA ; FN_AA_PRINT_THE_var B8E6: 04 08 ; COM_04_print_message length=0x0008 (to 0xB8F0) B8E8: 10 53 AF 14 57 17 83 61 ; ; CAN BE SEEN ; ; ; end group_AND at 0xB8DF ; -------------- Routine FN_B3_PRINT_DISK_ERROR ; B8F0: B3 0C ; Routine Number: 0xB3, Length: 0x000C B8F2: 0D 0A ; COM_0D_group_AND length=0x000A (to 0xB8FE) B8F4: 1F 07 ; COM_1F_print2 length=0x0007 (to 0xB8FD) B8F6: 95 5A C7 83 79 B3 52 ; ; DISK ERROR ; B8FD: 25 ; COM_25_print_linefeed() ; ; end group_AND at 0xB8F2 ; -------------- Routine FN_B4_PRINT_AND ; B8FE: B4 04 ; Routine Number: 0xB4, Length: 0x0004 B900: 04 02 ; COM_04_print_message length=0x0002 (to 0xB904) B902: 8E 48 ; ; AND ; ; -------------- Routine FN_B5_PRINT_BY_YOUR_COMMAND ; B904: B5 0D ; Routine Number: 0xB5, Length: 0x000D B906: 04 0B ; COM_04_print_message length=0x000B (to 0xB913) B908: 7B 50 C7 DE 85 AF EF 9F 8E 48 2E ; ; BY YOUR COMMAND. ; ; -------------- Routine FN_B6_PRINT_TWO_SAME_SPACE ; B913: B6 3C ; Routine Number: 0xB6, Length: 0x003C B915: 04 3A ; COM_04_print_message length=0x003A (to 0xB951) B917: 73 7B 4B 7B 73 A5 45 B8 46 48 4B DB E9 93 DB B9 B927: 7F 4E 59 15 96 AF 2B D2 34 9E E6 5F D6 B5 D1 9C B937: 67 53 FB A7 5F BE 53 17 1B 92 5B B9 9B 53 73 49 B947: 5F BE 53 17 1B 92 8F BE DB 63 ; ; IT IS PHYSICALLY IMPOSSIBLE FOR TWO OBJECTS TO OCCUPY THE ; SAME SPACE AT THE SAME TIME. ; ; -------------- Routine FN_B7_PRINT_HAVE_TO_OPEN_var ; B951: B7 16 ; Routine Number: 0xB7, Length: 0x0016 B953: 0D 14 ; COM_0D_group_AND length=0x0014 (to 0xB969) B955: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) B957: 04 0E ; COM_04_print_message length=0x000E (to 0xB967) B959: C7 DE FB 17 F3 8C 58 72 56 5E D1 9C F0 A4 ; ; YOU WILL HAVE TO OPEN ; B967: AA ; FN_AA_PRINT_THE_var B968: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0xB953 ; -------------- Routine FN_B8_PRINT_GARBAGE_GAMES ; B969: B8 24 ; Routine Number: 0xB8, Length: 0x0024 B96B: 04 22 ; COM_04_print_message length=0x0022 (to 0xB98F) B96D: C7 DE 20 16 6B A1 C7 DE D3 14 E6 96 09 15 82 17 B97D: 73 49 14 6C C9 4C 4B 5E 96 96 F5 72 49 5E 67 48 B98D: 6B B5 ; ; YOU KNOW YOU CAN'T DO THAT GARBAGE IN THESE GAMES! ; ; -------------- Routine FN_B9_PRINT_JUKEBOX ; B98F: B9 2E ; Routine Number: 0xB9, Length: 0x002E B991: 04 2C ; COM_04_print_message length=0x002C (to 0xB9BF) B993: 83 7A 5F BE E1 14 CF B2 95 AF 50 BD 0B 5C 83 48 B9A3: 8D 48 30 79 14 BC 03 47 C3 9C 07 4F 16 BC DB 72 B9B3: 5C B8 51 5E 83 64 FF 15 A4 85 B7 A1 ; ; IN THE CORNER STANDS AN ANCIENT RADIO ABOUT THE SIZE OF A ; JUKEBOX. ; ; -------------- Routine FN_BA_OPEN_UNLOCK ; B9BF: BA 65 ; Routine Number: 0xBA, Length: 0x0065 B9C1: 0D 63 ; COM_0D_group_AND length=0x0063 (to 0xBA26) B9C3: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0xB9C9) B9C5: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) B9C7: 0A 42 ; COM_0A_is_input_phrase(phrase=UNLOCK u....... WITH u.......) ; ; end group_OR at 0xB9C3 B9C9: 0E 5B ; COM_0E_group_OR length=0x005B (to 0xBA26) B9CB: 0D 28 ; COM_0D_group_AND length=0x0028 (to 0xB9F5) B9CD: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) B9CF: 1A ; COM_1A_set_var_to_noun1() B9D0: 14 ; COM_14_reverse_status next command B9D1: 2E 40 ; COM_2E_is_var_ext_attributes(value=.L..----(Locked)) B9D3: 04 1A ; COM_04_print_message length=0x001A (to 0xB9EF) B9D5: EB 99 67 98 16 58 C4 9C 58 5E BE 7A 9E 61 0B EE B9E5: 0B C0 06 9A 49 16 97 54 AB 57 ; ; NO NEED TO BE VIOLENT, ITS NOT LOCKED! ; B9EF: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0xB9F5) B9F1: 14 ; COM_14_reverse_status next command B9F2: 2E 20 ; COM_2E_is_var_ext_attributes(value=..C.----(Closed)) B9F4: A6 ; FN_A6_OPEN ; ; end group_OR at 0xB9EF ; ; end group_AND at 0xB9CB B9F5: 0D 1C ; COM_0D_group_AND length=0x001C (to 0xBA13) B9F7: 09 24 ; COM_09_is_noun2(obj=OBJ_24_CROWBAR) B9F9: 04 18 ; COM_04_print_message length=0x0018 (to 0xBA13) B9FB: C7 DE 96 AF 3E A0 D5 15 89 17 D5 9C 8E 91 08 8A BA0B: A3 A0 5F BE F9 15 1B 51 ; ; YOUR TOOL IS TOO SMALL FOR THE JOB. ; ; ; end group_AND at 0xB9F5 BA13: 0D 11 ; COM_0D_group_AND length=0x0011 (to 0xBA26) BA15: A9 ; FN_A9_PRINT_noun2 BA16: 04 0E ; COM_04_print_message length=0x000E (to 0xBA26) BA18: 77 5B 05 B9 15 BC 2F 60 89 17 01 18 6F B2 ; ; DOESN'T SEEM TO WORK. ; ; ; end group_AND at 0xBA13 ; ; end group_OR at 0xB9C9 ; ; end group_AND at 0xB9C1 ; -------------- Routine FN_BB_PRINT_LOOK_IN_AT ; BA26: BB 23 ; Routine Number: 0xBB, Length: 0x0023 BA28: 0D 21 ; COM_0D_group_AND length=0x0021 (to 0xBA4B) BA2A: 0E 04 ; COM_0E_group_OR length=0x0004 (to 0xBA30) BA2C: 0A 10 ; COM_0A_is_input_phrase(phrase=LOOK * IN ......O.) BA2E: 0A 0B ; COM_0A_is_input_phrase(phrase=LOOK * AT u.......) ; ; end group_OR at 0xBA2A BA30: 04 19 ; COM_04_print_message length=0x0019 (to 0xBA4B) BA32: 8D 7B 89 17 C6 9C 35 49 89 17 57 17 4F 5E DA C3 BA42: B8 16 90 14 82 DF 91 7A 2E ; ; ITS TOO DARK TO SEE MUCH OF ANYTHING. ; ; ; end group_AND at 0xBA28 ; -------------- Routine FN_BC_SHOOT_DROP_SHELL ; BA4B: BC 07 ; Routine Number: 0xBC, Length: 0x0007 BA4D: 0D 05 ; COM_0D_group_AND length=0x0005 (to 0xBA54) BA4F: 0A 57 ; COM_0A_is_input_phrase(phrase=SHOOT u....... WITH u.......) BA51: 09 28 ; COM_09_is_noun2(obj=OBJ_28_SHOTGUN) BA53: 10 ; COM_10_drop_var() ; ; end group_AND at 0xBA4D ; -------------- Routine FN_BD_PRINT_SHAGGY_CREATURE ; BA54: BD 42 ; Routine Number: 0xBD, Length: 0x0042 BA56: 1F 40 ; COM_1F_print2 length=0x0040 (to 0xBA98) BA58: 56 45 EF 74 48 5E 46 A0 7B 17 F3 8C 1B B8 0B 6D BA68: E4 14 96 5F 2F C6 FB 17 53 BE DC B0 A3 A0 1B B8 BA78: 13 B3 BB 54 CB D2 8E 48 5E 17 CF 49 10 B2 D6 6A BA88: 36 60 15 71 50 BD 0B 5C 68 4D AF A0 51 18 DB C7 ; ; A THREE FOOT TALL SHAGGY CREATURE WITH RAZOR SHARP CLAWS ; AND SLAVERING TEETH STANDS BEFORE YOU. ; ; -------------- Routine FN_BE_PRINT_FORCE_FIELD ; BA98: BE 26 ; Routine Number: 0xBE, Length: 0x0026 BA9A: 04 24 ; COM_04_print_message length=0x0024 (to 0xBAC0) BA9C: 48 45 AD A0 48 5E 2E 79 12 58 78 B1 9E 61 DB B5 BAAC: 1B A1 79 68 49 90 50 9F D6 6A 56 72 03 15 65 B1 BABC: 91 BE 1B 9C ; ; A FORCE FIELD PREVENTS YOU FROM GOING THAT DIRECTION. ; ; -------------- Routine FN_BF_IS_LIQUID_REACHABLE ; BAC0: BF 10 ; Routine Number: 0xBF, Length: 0x0010 BAC2: 0E 0E ; COM_0E_group_OR length=0x000E (to 0xBAD2) BAC4: 36 ; UNKNOWN_COM_36 ;; If this object is in a closed container, then the var object is changed. The print ;; below tells the user the container is closed. BAC5: 0D 0B ; COM_0D_group_AND length=0x000B (to 0xBAD2) BAC7: AA ; FN_AA_PRINT_THE_var BAC8: 04 07 ; COM_04_print_message length=0x0007 (to 0xBAD1) BACA: 4B 7B C9 54 A6 B7 2E ; ; IS CLOSED. ; BAD1: 0C ; COM_0C_fail() ; ; end group_AND at 0xBAC5 ; ; end group_OR at 0xBAC2 ; -------------- Routine FN_C0_ARE_NOUNS_GIVEN ; BAD2: C0 06 ; Routine Number: 0xC0, Length: 0x0006 BAD4: 0D 04 ; COM_0D_group_AND length=0x0004 (to 0xBADA) BAD6: 08 00 ; COM_08_is_noun1(obj=nothing) BAD8: 09 00 ; COM_09_is_noun2(obj=nothing) ; ; end group_AND at 0xBAD4 ; -------------- Routine FN_C1_PRINT_CANT_REACH_var ; BADA: C1 18 ; Routine Number: 0xC1, Length: 0x0018 BADC: 0D 16 ; COM_0D_group_AND length=0x0016 (to 0xBAF4) BADE: 04 0A ; COM_04_print_message length=0x000A (to 0xBAEA) BAE0: C7 DE D3 14 E6 96 2F 17 DA 46 ; ; YOU CAN'T REACH ; BAEA: AA ; FN_AA_PRINT_THE_var BAEB: 04 07 ; COM_04_print_message length=0x0007 (to 0xBAF4) BAED: 79 68 4A 90 2F 62 2E ; ; FROM HERE. ; ; ; end group_AND at 0xBADC ; -------------- Routine FN_C2_PRINT_CANT_BUDGE_noun1 ; BAF4: C2 10 ; Routine Number: 0xC2, Length: 0x0010 BAF6: 0D 0E ; COM_0D_group_AND length=0x000E (to 0xBB06) BAF8: 04 0A ; COM_04_print_message length=0x000A (to 0xBB04) BAFA: C7 DE D3 14 E6 96 BF 14 37 5A ; ; YOU CAN'T BUDGE ; BB04: A8 ; FN_A8_PRINT_noun1 BB05: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0xBAF6 ; -------------- Routine FN_C3_IS_PLAYER_LACKING_WISDOM ; BB06: C3 04 ; Routine Number: 0xC3, Length: 0x0004 BB08: 14 ; COM_14_reverse_status next command BB09: 03 01 80 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_80_WISDOM) ; -------------- Routine FN_C4_IS_PHRASE_AN_AFFECT ; BB0C: C4 1C ; Routine Number: 0xC4, Length: 0x001C BB0E: 0E 1A ; COM_0E_group_OR length=0x001A (to 0xBB2A) BB10: 0A 11 ; COM_0A_is_input_phrase(phrase=OPEN u....... * *) BB12: 0A 3A ; COM_0A_is_input_phrase(phrase=OPEN u....... WITH u.......) BB14: 0A 05 ; COM_0A_is_input_phrase(phrase=GET ..C..... * *) BB16: 0A 43 ; COM_0A_is_input_phrase(phrase=GET ..C..... WITH ..C.....) BB18: 0A 09 ; COM_0A_is_input_phrase(phrase=ATTACK ...P.... WITH .v......) BB1A: 0A 27 ; COM_0A_is_input_phrase(phrase=KICK u....... * *) BB1C: 0A 2D ; COM_0A_is_input_phrase(phrase=PULL * UP u.......) BB1E: 0A 12 ; COM_0A_is_input_phrase(phrase=PULL u....... * *) BB20: 0A 18 ; COM_0A_is_input_phrase(phrase=RUB u....... * *) BB22: 0A 0F ; COM_0A_is_input_phrase(phrase=DROP ..C..... IN ......O.) BB24: 0A 4B ; COM_0A_is_input_phrase(phrase=DROP ..C..... ON .......L) BB26: 0A 4D ; COM_0A_is_input_phrase(phrase=FILL ......O. WITH u.......) BB28: 0A 40 ; COM_0A_is_input_phrase(phrase=CLOSE ....A... * *) ; ; end group_OR at 0xBB0E ; -------------- Routine FN_C5_ENTER_CLIMB_OUT ; BB2A: C5 28 ; Routine Number: 0xC5, Length: 0x0028 BB2C: 0B 26 0A ; COM_0B_switch length=0x0026 (to 0xBB55), function=COM_0A_is_input_phrase(phrase_num) BB2F: 36 0F ; case COM_0A_is_input_phrase("ENTER * * *"), length=0x000F BB31: 0D 0D ; COM_0D_group_AND length=0x000D (to 0xBB40) BB33: 04 09 ; COM_04_print_message length=0x0009 (to 0xBB3E) BB35: C7 DE AF 23 99 16 CB CE 4E ; ; YOU'RE NOW IN ; BB3E: A8 ; FN_A8_PRINT_noun1 BB3F: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0xBB31 ; ; end case BB40: 37 12 ; case COM_0A_is_input_phrase("CLIMB * OUT *"), length=0x0012 BB42: 0D 10 ; COM_0D_group_AND length=0x0010 (to 0xBB54) BB44: 04 0C ; COM_04_print_message length=0x000C (to 0xBB52) BB46: C7 DE AF 23 99 16 D1 CE 73 C6 C3 9E ; ; YOU'RE NOW OUT OF ; BB52: A8 ; FN_A8_PRINT_noun1 BB53: 8B ; FN_8B_PRINT_PERIOD ; ; end group_AND at 0xBB42 ; ; end case ; ; end decode_switch at 0xBB2C ; -------------- Routine FN_C6_PROMPT_FOR_DRIVE_NUMBER ; BB54: C6 1E ; Routine Number: 0xC6, Length: 0x001E BB56: 0D 1C ; COM_0D_group_AND length=0x001C (to 0xBB74) BB58: 04 18 ; COM_04_print_message length=0x0018 (to 0xBB72) BB5A: 18 B7 46 5E 5D 7B D5 15 D0 15 FA 17 DA 78 0C 15 BB6A: CF 7B B9 13 D7 E8 C3 12 ; ; SAVE DISK IS IN WHICH DRIVE <0-3> ? ; BB72: 3B ; COM_3B_wait_for_key123() BB73: 25 ; COM_25_print_linefeed() ; ; end group_AND at 0xBB56 ; -------------- Routine FN_C8_BACK_TO_TOWN ; BB74: C8 81 80 ; Routine Number: 0xC8, Length: 0x0180 BB77: 0E 81 7D ; COM_0E_group_OR length=0x017D (to 0xBCF7) BB7A: 0D 80 8C ; COM_0D_group_AND length=0x008C (to 0xBC09) BB7D: 03 01 91 ; COM_03_is_located(owner=OBJ_01_PLAYER, obj=OBJ_91_ALIEN_POISON) BB80: 04 80 82 ; COM_04_print_message length=0x0082 (to 0xBC05) BB83: AE D0 73 8F 73 7B A7 B7 4B 94 C7 DE 63 16 DB 59 BB93: 73 7B E4 46 E5 A0 82 17 46 5E 57 62 B1 B3 A9 15 BBA3: B8 D0 46 62 FA 17 83 61 5B BE 10 BC 66 49 45 DB BBB3: 63 B1 74 C0 4B 5E 96 96 DB 72 F5 59 3E 62 96 14 BBC3: 45 BD A6 85 51 18 B3 C7 C7 DE F7 17 5B B1 7B A6 BBD3: 40 B9 F1 5F DF 16 DB B1 0B A7 3F B9 43 5E C3 9A BBE3: 86 5B 45 5E 2E A1 0A 58 CF 49 53 17 66 CA 51 18 BBF3: DB C7 F6 4F 0B EE 0B BC D6 B5 2B A0 56 8B 50 5E BC03: 8F A1 ; ; WELL, IT SEEMS YOU MADE IT ACROSS THE DESERT! HOWEVER, WHEN ; THAT NASTY CREATURE IN THE DESERT ATTACKED YOU, YOU WERE ; POISONED! PERHAPS SOME ANTIDOTE COULD HAVE SAVED YOU. BUT, ; IT IS TOO LATE NOW. ; BC05: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) BC07: 1D 64 ; COM_1D_attack_var(points=100) ; ; end group_AND at 0xBB7A BC09: 0D 80 E9 ; COM_0D_group_AND length=0x00E9 (to 0xBCF5) BC0C: 03 00 71 ; COM_03_is_located(owner=nowhere, obj=OBJ_71_GREEN_BUTTON_WEAPON) BC0F: 04 80 E2 ; COM_04_print_message length=0x00E2 (to 0xBCF4) BC12: C7 DE 9B 15 5B CA 86 91 4B 5E 04 BC DD 46 89 17 BC22: 89 17 01 D2 82 17 56 5E 80 A1 C8 B5 C5 9F 9B 15 BC32: 5B CA 76 B1 38 C6 F3 5F 8E 48 82 17 3B 63 1F 54 BC42: 23 62 C7 DE 95 AF D5 C3 65 62 43 F4 B3 14 C5 6A BC52: 3F 61 6B 4F 91 BE 8B 96 D2 B5 72 B1 2F 49 03 58 BC62: 33 98 5F BE 4F 15 03 BA 16 CB 35 79 3B 16 F3 B9 BC72: 46 48 93 16 2E 6D 56 F4 DB 72 94 5F 53 BE 55 72 BC82: AF 14 83 61 18 B7 F1 5F 8A 14 19 EE 46 61 10 EE BC92: 6B A1 C7 DE 77 16 F3 B9 76 B1 38 C6 89 17 82 17 BCA2: 46 5E BE 9F EF B3 D1 B5 9B 64 34 A1 99 16 A3 B2 BCB2: 04 8A B3 A0 AB 98 88 8C DB 63 F4 A4 52 72 33 BB BCC2: C7 DE 82 17 95 7A 15 EE E7 9F 5B 59 90 14 02 A1 BCD2: 23 62 59 C4 FB 17 F3 8C 3F 55 43 5E 33 98 C7 DE BCE2: D3 14 8B 96 0F 9B 03 BA 16 6C 51 5E 17 98 71 16 BCF2: 7F B1 ; ; YOU HAVE MADE IT BACK TO TOWN! THE TOWNS FOLK HAVE RETURNED ; AND THEY CHEER YOUR SUCCESS. A BIG CELEBRATION IS PREPARED ; AND THE FESTIVITIES LAST ALL NIGHT. THE EARTH HAS BEEN ; SAVED! AH, WELL, NOW YOU MUST RETURN TO THE DOLDRUMS OF ; YOUR NORMAL BORING LIFE. PERHAPS, YOU THINK, SOMEDAY ; ANOTHER UFO WILL COME AND YOU CAN INVESTIGATE ONCE MORE. ; BCF4: 24 ; COM_24_exit_program() ; ; end group_AND at 0xBC09 BCF5: 14 ; COM_14_reverse_status next command BCF6: 0C ; COM_0C_fail() ; ; end group_OR at 0xBB77 ; -------------- Routine FN_C9_PRINT_COMPLETED_PERCENT ; BCF7: C9 23 ; Routine Number: 0xC9, Length: 0x0023 BCF9: 0D 21 ; COM_0D_group_AND length=0x0021 (to 0xBD1C) BCFB: 1F 0C ; COM_1F_print2 length=0x000C (to 0xBD09) BCFD: C7 DE 9B 15 5B CA 3F 55 FF A5 E6 BD ; ; YOU HAVE COMPLETED ; BD09: 26 ; COM_26_print_score() BD0A: 1F 10 ; COM_1F_print2 length=0x0010 (to 0xBD1C) BD0C: F4 A4 B0 53 11 BC 9B 64 34 A1 6B 16 DB B9 27 A0 ; ; PERCENT OF YOUR MISSION. ; ; ; end group_AND at 0xBCF9 ; -------------- Routine FN_CA_DIE_ENERGY_BEAM ; BD1C: CA 50 ; Routine Number: 0xCA, Length: 0x0050 BD1E: 0D 4E ; COM_0D_group_AND length=0x004E (to 0xBD6E) BD20: 25 ; COM_25_print_linefeed() BD21: 25 ; COM_25_print_linefeed() BD22: 1F 46 ; COM_1F_print2 length=0x0046 (to 0xBD6A) BD24: 26 BA F0 59 1E 8F 5C 15 DB 9F A7 B7 D0 92 D3 6D BD34: 99 16 1F D1 7E B1 90 14 30 15 31 62 44 DB 8F 5F BD44: 30 15 6E CA 5F A0 DB B5 19 A1 51 18 23 C6 74 CA BD54: 4E DB 4F 79 D5 15 EF 16 B7 B1 08 58 FF B2 51 18 BD64: 23 C6 F6 4E EB DA ; ; SUDDENLY, FROM SEEMINGLY NOWHERE, AN ENERGY BEAM ENVELOPES ; YOU! YOUR VERY LIFE IS PURGED FROM YOUR BODY! ; BD6A: 1C 01 ; COM_1C_set_var_object(obj=OBJ_01_PLAYER) BD6C: 1D 64 ; COM_1D_attack_var(points=100) ; ; end group_AND at 0xBD1E diskAccessBuffer: ; 256 bytes BD6E: 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 BD7E: 00 00 A3 22 63 23 63 A3 62 22 63 23 A7 E3 63 E3 BD8E: 67 E3 23 E7 67 22 22 03 22 22 E7 E2 E7 63 E7 E6 BD9E: E7 E7 62 E2 62 63 E7 E7 E6 C7 C7 C7 C3 02 02 02 BDAE: 02 02 C2 C2 42 62 BDB4: 23 BDB5: 02 BDB6: 23 BDB7: 02 BDB8: 02 BDB9: 02 BDBA: 03 BDBB: 22 23 02 BDBE: 23 BDBF: 02 BDC0: 02 BDC1: 02 BDC2: 02 BDC3: 02 LD (BC),A BDC4: 02 LD (BC),A BDC5: 02 LD (BC),A BDC6: 02 LD (BC),A BDC7: 02 LD (BC),A BDC8: 02 LD (BC),A BDC9: 02 LD (BC),A BDCA: 02 LD (BC),A BDCB: 02 LD (BC),A BDCC: 02 LD (BC),A BDCD: 02 LD (BC),A BDCE: 02 LD (BC),A BDCF: 02 LD (BC),A BDD0: 02 LD (BC),A BDD1: 02 LD (BC),A BDD2: 02 LD (BC),A BDD3: 02 LD (BC),A BDD4: 02 LD (BC),A BDD5: 02 LD (BC),A BDD6: 02 LD (BC),A BDD7: 02 LD (BC),A BDD8: 02 LD (BC),A BDD9: 02 LD (BC),A BDDA: 02 LD (BC),A BDDB: 02 LD (BC),A BDDC: 02 LD (BC),A BDDD: 02 LD (BC),A BDDE: 02 LD (BC),A BDDF: 02 LD (BC),A BDE0: 02 LD (BC),A BDE1: 02 LD (BC),A BDE2: 02 LD (BC),A BDE3: 02 LD (BC),A BDE4: 02 LD (BC),A BDE5: 02 LD (BC),A BDE6: 02 LD (BC),A BDE7: 02 LD (BC),A BDE8: 02 LD (BC),A BDE9: 02 LD (BC),A BDEA: 02 LD (BC),A BDEB: 02 LD (BC),A BDEC: 02 LD (BC),A BDED: 02 LD (BC),A BDEE: 02 LD (BC),A BDEF: 02 LD (BC),A BDF0: 02 LD (BC),A BDF1: 02 LD (BC),A BDF2: 02 LD (BC),A BDF3: 02 LD (BC),A BDF4: 02 LD (BC),A BDF5: 02 LD (BC),A BDF6: 02 LD (BC),A BDF7: 02 LD (BC),A BDF8: 02 LD (BC),A BDF9: 02 LD (BC),A BDFA: 00 BDFB: 02 LD (BC),A BDFC: 02 LD (BC),A BDFD: 02 LD (BC),A BDFE: 02 LD (BC),A BDFF: 02 LD (BC),A BE00: B3 OR E BE01: F2 FF FF JP P,$FFFF BE04: FF RST 0X38 BE05: FF RST 0X38 BE06: 73 LD (HL),E BE07: 62 LD H,D BE08: FF RST 0X38 BE09: FF RST 0X38 BE0A: BF CP A BE0B: FF RST 0X38 BE0C: FB EI BE0D: FF RST 0X38 BE0E: FF RST 0X38 BE0F: FF RST 0X38 BE10: FB EI BE11: FF RST 0X38 BE12: FF RST 0X38 BE13: FF RST 0X38 BE14: DF RST 0X18 BE15: FB EI BE16: DE F2 SBC $F2 BE18: FF RST 0X38 BE19: FE FF CP $FF BE1B: FF RST 0X38 BE1C: FF RST 0X38 BE1D: FF RST 0X38 BE1E: FF RST 0X38 BE1F: FF RST 0X38 BE20: FC FF FF CALL M,$FFFF BE23: FF RST 0X38 BE24: FF RST 0X38 BE25: FF RST 0X38 BE26: FE DF CP $DF BE28: DF RST 0X18 BE29: DF RST 0X18 BE2A: DF RST 0X18 BE2B: DE DE SBC $DE BE2D: DE DE SBC $DE BE2F: DE DF SBC $DF BE31: DF RST 0X18 BE32: 5F LD E,A BE33: 7F LD A,A BE34: 5F LD E,A BE35: 5F LD E,A BE36: 7F LD A,A BE37: 5F LD E,A BE38: 4A LD C,D BE39: 5F LD E,A BE3A: 5F LD E,A BE3B: 7F LD A,A BE3C: FF RST 0X38 BE3D: DF RST 0X18 BE3E: FD ; ???? BE3F: DF RST 0X18 BE40: 82 ADD A,D BE41: 00 BE42: 00 BE43: 00 BE44: 00 BE45: 00 BE46: 00 BE47: 00 BE48: 00 BE49: 00 BE4A: 00 BE4B: 00 BE4C: 00 BE4D: 00 BE4E: 00 BE4F: 00 BE50: 00 BE51: 00 BE52: 00 BE53: 00 BE54: 00 BE55: 00 BE56: 00 BE57: 00 BE58: 00 BE59: 00 BE5A: 00 BE5B: 00 BE5C: 00 BE5D: 00 BE5E: 00 BE5F: 00 BE60: 00 BE61: 00 BE62: 00 BE63: 00 BE64: 00 BE65: 00 BE66: 00 BE67: 00 BE68: 00 BE69: 00 BE6A: 00 BE6B: 10 92 BE6D: 82 BE6E: 80 ADD A,B BE6F: 80 ADD A,B BE70: 80 ADD A,B BE71: 80 ADD A,B BE72: 90 SUB B BE73: 90 SUB B BE74: 80 ADD A,B BE75: 80 ADD A,B BE76: 90 SUB B BE77: 80 ADD A,B BE78: 10 00 DJNZ $BE7A ; BE7A: 00 BE7B: 00 BE7C: 00 BE7D: 00 BE7E: 00 BE7F: 00 BE80: B3 OR E BE81: A2 AND D BE82: B7 OR A BE83: AF XOR A BE84: AF XOR A BE85: BF CP A BE86: 23 INC HL BE87: 22 AF 3F LD ($3FAF),HL BE8A: AF XOR A BE8B: BF CP A BE8C: AB XOR E BE8D: BF CP A BE8E: BF CP A BE8F: BF CP A BE90: A3 AND E BE91: BF CP A BE92: BF CP A BE93: 3F CCF BE94: 3F CCF BE95: 93 SUB E BE96: 26 B2 LD H,$B2 BE98: BF CP A BE99: BE CP (HL) BE9A: BF CP A BE9B: 3F CCF BE9C: BF CP A BE9D: BF CP A BE9E: BF CP A BE9F: BF CP A BEA0: AC XOR H BEA1: BE CP (HL) BEA2: 3E 3F LD A,$3F BEA4: BF CP A BEA5: BF CP A BEA6: BE CP (HL) BEA7: 9F SBC A BEA8: 9F SBC A BEA9: 9F SBC A BEAA: 9F SBC A BEAB: 1E 9E LD E,$9E BEAD: 0E 96 LD C,$96 BEAF: 9E SBC (HL) BEB0: DF RST 0X18 BEB1: 86 ADD A,(HL) BEB2: 0F RRCA BEB3: 27 DAA BEB4: 27 DAA BEB5: 17 RLA BEB6: 27 DAA BEB7: 17 RLA BEB8: 02 LD (BC),A BEB9: 1F RRA BEBA: 07 RLCA BEBB: 27 DAA BEBC: 27 DAA BEBD: 9F SBC A BEBE: 27 DAA BEBF: 17 RLA BEC0: 02 LD (BC),A BEC1: 00 BEC2: 00 BEC3: 00 BEC4: 00 BEC5: 00 BEC6: 00 BEC7: 00 BEC8: 00 BEC9: 00 BECA: 02 LD (BC),A BECB: 00 BECC: 00 BECD: 00 BECE: 00 BECF: 00 BED0: 00 BED1: 00 BED2: 00 BED3: 00 BED4: 00 BED5: 00 BED6: 00 BED7: 00 BED8: 00 BED9: 00 BEDA: 00 BEDB: 00 BEDC: 00 BEDD: 00 BEDE: 00 BEDF: 00 BEE0: 00 BEE1: 00 BEE2: 00 BEE3: 00 BEE4: 00 BEE5: 00 BEE6: 02 LD (BC),A BEE7: 00 BEE8: 00 BEE9: 00 BEEA: 00 BEEB: 00 BEEC: 00 BEED: 00 BEEE: 00 BEEF: 00 BEF0: 00 BEF1: 00 BEF2: 00 BEF3: 00 BEF4: 00 BEF5: 00 BEF6: 00 BEF7: 00 BEF8: 02 LD (BC),A BEF9: 00 BEFA: 00 BEFB: 00 BEFC: 00 BEFD: 00 BEFE: 00 BEFF: 00 BF00: B3 OR E BF01: E2 EF EF BF04: EF RST 0X28 BF05: EF RST 0X28 BF06: 63 LD H,E BF07: 62 LD H,D BF08: EF RST 0X28 BF09: EF RST 0X28 BF0A: AF XOR A BF0B: EF RST 0X28 BF0C: EB EX DE,HL BF0D: EF RST 0X28 BF0E: EF RST 0X28 BF0F: EF RST 0X28 BF10: EB EX DE,HL BF11: EF RST 0X28 BF12: EF RST 0X28 BF13: EF RST 0X28 BF14: EF RST 0X28 BF15: EB EX DE,HL BF16: EE E2 XOR $E2 BF18: EF RST 0X28 BF19: EE EF XOR $EF BF1B: EF RST 0X28 BF1C: EF RST 0X28 BF1D: EF RST 0X28 BF1E: EF RST 0X28 BF1F: EF RST 0X28 BF20: EC FE 6E CALL PE,$6EFE ; BF23: 6F LD L,A BF24: EF RST 0X28 BF25: EF RST 0X28 BF26: FE EF CP $EF BF28: CF RST 0X08 BF29: DF RST 0X18 BF2A: CF RST 0X08 BF2B: CE CE ADC $CE BF2D: CE CA ADC $CA BF2F: CE DF ADC $DF BF31: CF RST 0X08 BF32: 5F LD E,A BF33: 6F LD L,A BF34: 6F LD L,A BF35: 6F LD L,A BF36: 6F LD L,A BF37: 4F LD C,A BF38: 4A LD C,D BF39: 4F LD C,A BF3A: 4F LD C,A BF3B: 6F LD L,A BF3C: ED ; ???? BF3D: EF RST 0X28 BF3E: ED ; ???? BF3F: EF RST 0X28 BF40: 82 ADD A,D BF41: 00 BF42: 00 BF43: 00 BF44: 00 BF45: 00 BF46: 00 BF47: 00 BF48: 00 BF49: 00 BF4A: 00 BF4B: 00 BF4C: 00 BF4D: 00 BF4E: 00 BF4F: 00 BF50: 00 BF51: 00 BF52: 00 BF53: 00 BF54: 00 BF55: 00 BF56: 00 BF57: 00 BF58: 00 BF59: 00 BF5A: 00 BF5B: 00 BF5C: 00 BF5D: 00 BF5E: 00 BF5F: 00 BF60: 00 BF61: 00 BF62: 00 BF63: 00 BF64: 00 BF65: 00 BF66: 00 BF67: 00 BF68: 00 BF69: 00 BF6A: 00 BF6B: 00 BF6C: 80 ADD A,B BF6D: 80 ADD A,B BF6E: 00 BF6F: 00 BF70: 00 BF71: 00 BF72: 00 BF73: 00 BF74: 00 BF75: 00 BF76: 00 BF77: 00 BF78: 00 BF79: 00 BF7A: 00 BF7B: 00 BF7C: 00 BF7D: 00 BF7E: 00 BF7F: 00 BF80: B3 OR E BF81: E2 EF EF JP PO,$EFEF BF84: EF RST 0X28 BF85: EF RST 0X28 BF86: 62 LD H,D BF87: 62 LD H,D BF88: EF RST 0X28 BF89: EF RST 0X28 BF8A: AF XOR A BF8B: EF RST 0X28 BF8C: EB EX DE,HL BF8D: EF RST 0X28 BF8E: EF RST 0X28 BF8F: EF RST 0X28 BF90: EB EX DE,HL BF91: EF RST 0X28 BF92: EF RST 0X28 BF93: EF RST 0X28 BF94: EF RST 0X28 BF95: EB EX DE,HL BF96: EE E2 XOR $E2 BF98: EF BF99: EE BF9A: 00 ; Stack builds towards lower from here BF9B: EF BF9C: EF BF9D: EF BF9E: EF BF9F: EF BFA0: EC EE 6E BFA3: 6F BFA4: EF BFA5: EF BFA6: EE CF BFA8: CF BFA9: CF BFAA: CF BFAB: CE CE BFAD: CA CA CE BFB0: CE CE BFB2: 4F BFB3: 6F BFB4: 67 BFB5: 6A BFB6: 6F BFB7: 42 BFB8: 4A BFB9: 4B BFBA: 4F BFBB: 6A BFBC: 6F BFBD: EA EF EA BFC0: 02 BFC1: 00 BFC2: 00 BFC3: 00 BFC4: 00 BFC5: 00 BFC6: 00 BFC7: 00 BFC8: 00 BFC9: 00 BFCA: 00 BFCB: 00 BFCC: 00 BFCD: 00 BFCE: 00 BFCF: 00 BFD0: 00 BFD1: 00 BFD2: 00 BFD3: 00 BFD4: 00 BFD5: 00 BFD6: 00 BFD7: 00 BFD8: 00 BFD9: 00 BFDA: 00 BFDB: 00 BFDC: 00 BFDD: 00 BFDE: 00 BFDF: 00 BFE0: 00 BFE1: 00 BFE2: 00 BFE3: 00 BFE4: 00 BFE5: 00 BFE6: 00 BFE7: 00 BFE8: 00 BFE9: 00 BFEA: 00 BFEB: 00 BFEC: 80 BFED: 80 BFEE: 00 BFEF: 00 BFF0: 00 BFF1: 00 BFF2: 00 BFF3: 00 BFF4: 00 BFF5: 00 BFF6: 00 BFF7: 00 BFF8: 00 BFF9: 00 BFFA: 00 BFFB: 00 BFFC: 00 BFFD: 00 BFFE: 00 BFFF: 00