Doctor Who and the Warlord (Part A) disassembly =============================================== Doctor Who and the Warlord was written by Graham Williams and an uncredited Peter Voke, and was published by Chessfield Microgames for the BBC Micro in 1985. It is a two-part text adventure, which was republished in a modified form as Warlord by Acorn User in August and September 1988. The following disassembly was created by reverse engineering binary images, without access to any source code. It is nevertheless reasonably complete, allowing the technical approaches used to be understood. The author of this disassembly imposes no additional copyright restrictions beyond those already present on the game itself. It is provided for educational purposes only, and it is hoped that the original authors will accept it in the good faith it was intended - as a tribute to their skills. Technical notes =============== The first part of the game has 116 rooms, 43 objects and approximately 42k of compressed text. The parser understands 239 words, including 108 verbs. Each object has a location, and each room has eight one-bit flags. There is also an array of variables, p[], referred to as parameters by one of the authors, which are used both in the interpreter and the bytecode. The game is written in a custom bytecode which uses the following opcodes: 0 0000 000 (&00) end of byte code 0 0000 001 (&01) open bracket 0 0000 010 (&02) logical OR 0 0000 011 (&03) close bracket 0 0000 011 (&04) return Otherwise, if the top bit of an opcode is clear, it is an assignment: 0 .... 000 set player room 0 .... 001 set object_room[first_noun] 0 .... 010 set object_room[second_noun] 0 .... 011 set object_room[byte - 4], where byte is the next byte of bytecode 0 .... 100 set p[byte - 4] For each of these, the middle four bits determine the value set: 0 0001 ... = (byte - 4) 0 0010 ... = 0 0 0011 ... = 1 0 0100 ... += (byte - &80) 0 0101 ... = p[byte - 4] 0 0110 ... = rnd(byte - 4) 0 0111 ... = player_room 0 1000 ... ++ 0 1001 ... -- 0 .... 101 write packed string or input word: 0 0001 101 (&0d) write packed string 0 0010 101 (&15) write verb 0 0011 101 (&1d) write first_noun 0 0100 101 (&25) write second_noun 0 0101 101 (&2d) write preposition 0 1010 101 (&55) write pronoun 0 .... 110 execute a special function: 0 0000 110 (&06) list and move objects 0 0001 110 (&0e) skip to start of next bytecode 0 0010 110 (&16) execute object bytecode for first noun 0 0011 110 (&1e) load position from file 0 0100 110 (&26) save position to file 0 0101 110 (&2e) restore initial position 0 0110 110 (&36) read a character into p[&20] (character) 0 0111 110 (&3e) reset the system 0 1000 110 (&46) save special file for part B 0 1001 110 (&4e) store game state to memory 0 1010 110 (&56) execute room bytecode for player room 0 1011 110 (&5e) list verbs 0 1100 110 (&66) decrypt hint 0 1101 110 (&6e) restore game state from memory 0 .... 111 clear or set room flag: . 421. ... flag to set or clear . ...0 ... clear flag . ...1 ... set flag If the top bit of an opcode is set, it is a condition: 1 .... 000 verb 1 .... 001 first_noun 1 .... 010 second noun 1 .... 011 (byte - 4) 1 .... 100 p[byte - 4] 1 .... 101 preposition For each of these, the middle four bits determine the comparison: 1 0000 ... true if (variable < (byte - 4)) 1 0001 ... true if (variable == (byte - 4)) 1 0010 ... true if (variable > (byte - 4)) 1 0011 ... true if (variable != (byte - 4)) 1 0100 ... true if (variable < p[byte - 4]) 1 0101 ... true if (variable == p[byte - 4]) 1 0110 ... true if (variable > p[byte - 4]) 1 0111 ... true if (variable != p[byte - 4]) 1 1000 ... true if (variable == 0) 1 1001 ... true if (variable != 0) 1 1010 ... true if object_room[variable] == 0 1 1011 ... true if object_room[variable] == 1 1 1100 ... true if object_room[variable] == player_room 1 1101 ... true if object_room[variable] == (byte - 4) 1 .... 110 set player_room if player moving in specified direction: . 0000 ... player_room = byte if verb == "north" . 0001 ... player_room = byte if verb == "east" . 0010 ... player_room = byte if verb == "south" . 0011 ... player_room = byte if verb == "west" . 0100 ... player_room = byte if verb == "northeast" . 0101 ... player_room = byte if verb == "northwest" . 0110 ... player_room = byte if verb == "southeast" . 0111 ... player_room = byte if verb == "southwest" . 1000 ... player_room = byte if verb == "left" . 1001 ... player_room = byte if verb == "right" . 1010 ... player_room = byte if verb == "down" . 1011 ... player_room = byte if verb == "up" . 1100 ... player_room = byte if verb == "enter" . 1101 ... player_room = byte if verb == "exit" . 1110 ... player_room = byte if verb == "back" . 1111 ... player_room = byte if verb == "forward" 1 .... 111 test room flag . 421. ... flag to test 1 ...0 ... true if flag unset 1 ...1 ... true if flag set Consecutive conditions are ANDed together, except where separated by an OR. Strings are stored as follows: &04 end string with "." &05 end string without "." &06 - &10 punctuation &11 - &2a letters &2b randomly write a string from (byte - 4) choices, separated by &05 &2c toggle forced uppercase &2d new line &2e uppercase next character &2f write character (byte - 4) &30 write (byte - 4) as a number &31 write p[byte - 4] as a number &32 - &f6 write word from primary dictionary &f7 byte (unused) &f8 byte (unused) &f9 byte &fa byte &fb byte &fc byte write word from secondary dictionary &fd byte (unused) write word from primary dictionary &fe byte write word from verb dictionary &ff byte write word from noun dictionary Loader disassembly ================== ; WHO-A ; FFFF1900 FFFF1910 0590 &1900 0d # Start of BASIC program &1901 00 00 09 d6 90 2b 31 36 0d ; 0CALLPAGE+16 &190a ff # End of BASIC program ; unused &190b 00 00 00 00 00 ; entry_point &1910 a5 18 LDA &18 ; basic_page &1912 85 91 STA &91 ; source_address_high &1914 a9 00 LDA #&00 &1916 85 90 STA &90 ; source_address_low &1918 a9 16 LDA #&16 # Change to MODE 7 &191a 20 e3 ff JSR &ffe3 ; OSASCI &191d a9 07 LDA #&07 &191f 20 e3 ff JSR &ffe3 ; OSASCI &1922 a9 03 LDA #&03 # End print job &1924 20 e3 ff JSR &ffe3 ; OSASCI &1927 a9 1c LDA #&1c # Define text window x:(&16, &23), y:(&10, &12) &1929 20 e3 ff JSR &ffe3 ; OSASCI &192c a9 16 LDA #&16 &192e 20 e3 ff JSR &ffe3 ; OSASCI &1931 a9 12 LDA #&12 &1933 20 e3 ff JSR &ffe3 ; OSASCI &1936 a9 23 LDA #&23 &1938 20 e3 ff JSR &ffe3 ; OSASCI &193b a9 10 LDA #&10 &193d 20 e3 ff JSR &ffe3 ; OSASCI &1940 a9 7b LDA #&7b ; &7b00 = screen_memory - &100 &1942 85 93 STA &93 ; target_address_high &1944 a9 00 LDA #&00 &1946 85 92 STA &92 ; target_address_low &1948 a8 TAY &1949 a2 04 LDX #&04 ; copy_title_screen_page_loop &194b e6 91 INC &91 ; source_address_high &194d e6 93 INC &93 ; target_address_high ; copy_title_screen_byte_loop &194f b1 90 LDA (&90),Y ; source_address &1951 91 92 STA (&92),Y ; target_address &1953 88 DEY &1954 d0 f9 BNE &194f ; copy_title_screen_byte_loop &1956 ca DEX &1957 d0 f2 BNE &194b ; copy_title_screen_page_loop &1959 a9 8b LDA #&8b ; Set filing system attributes &195b a2 01 LDX #&01 # *OPT 1,1 &195d a0 01 LDY #&01 &195f 20 f4 ff JSR &fff4 ; OSBYTE &1962 a9 8b LDA #&8b ; Set filing system attributes &1964 a2 02 LDX #&02 # *OPT 2,1 &1966 a0 01 LDY #&01 &1968 20 f4 ff JSR &fff4 ; OSBYTE &196b a9 c8 LDA #&c8 ; Read/Write BREAK/ESCAPE effect &196d a2 03 LDX #&03 ; Clear memory on next RESET &196f a0 00 LDY #&00 &1971 20 f4 ff JSR &fff4 ; OSBYTE &1974 a9 d4 LDA #&d4 ; Read/Write volume/ENVELOPE For BELL &1976 a2 a8 LDX #&a8 ; use -10 volume &1978 a0 00 LDY #&00 &197a 20 f4 ff JSR &fff4 ; OSBYTE &197d a9 d5 LDA #&d5 ; Read/Write frequency for BELL &197f a2 01 LDX #&01 &1981 a0 00 LDY #&00 &1983 20 f4 ff JSR &fff4 ; OSBYTE &1986 a9 d6 LDA #&d6 ; Read/Write duration for BELL &1988 a2 04 LDX #&04 &198a a0 00 LDY #&00 &198c 20 f4 ff JSR &fff4 ; OSBYTE &198f a9 e1 LDA #&e1 ; Read/Write Interpretation of F-Keys &1991 a2 00 LDX #&00 ; ignore the character &1993 a0 00 LDY #&00 &1995 20 f4 ff JSR &fff4 ; OSBYTE &1998 e6 91 INC &91 ; source_address_high &199a a9 00 LDA #&00 &199c 85 93 STA &93 ; target_address_high &199e a0 8f LDY #&8f ; copy_loader_code_loop &19a0 b1 90 LDA (&90),Y ; source_address &19a2 91 92 STA (&92),Y ; target_address &19a4 88 DEY &19a5 c0 4f CPY #&4f &19a7 d0 f7 BNE &19a0 ; copy_loader_code_loop &19a9 4c 50 00 JMP &0050 ; load_and_run_main_binary ; unused &19ac 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &19bc 00 00 00 00 ; unused &19c0 28 43 29 20 43 68 65 73 73 66 69 65 6c 64 20 4d ; "(C) Chessfield M" &19d0 69 63 72 6f 67 61 6d 65 73 20 31 39 38 34 0d ; "icrogames 1984" ; unused &19df 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &19ef 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &19ff 00 ; title_screen_data &1a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; "........................................" &1a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ". .9!1)9!1)1 " &1a20 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 ; " .d". `"& $ " &1a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; " .9900108!1 " &1a40 20 20 20 96 39 21 31 29 39 21 31 29 31 20 20 20 ; ".DOCTOR WHO .ffff$ $ " &1a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; ".AND THE . )9990 1 " &1a60 20 20 20 20 20 20 20 20 20 20 20 96 64 22 a6 20 ; ".WARLORD ."f&fd $ " &1a70 60 22 26 20 24 20 20 20 20 20 20 20 20 20 20 20 ; " .((()()..1 " &1a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; " ..BRITISH.|4||h|4|4 " &1a90 20 20 20 96 39 39 30 30 31 30 38 21 31 20 20 20 ; " . ..BROADCASTING.}45jj| j " &1aa0 83 44 4f 43 54 4f 52 20 57 48 4f 20 20 20 20 20 ; " . ..CORPORATION |5}~j j " &1ab0 20 20 20 20 20 20 20 20 20 20 20 96 66 66 66 66 ; " . " &1ac0 24 20 20 20 24 20 20 20 83 41 4e 44 20 54 48 45 ; ".Designed by ................... " &1ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; ".GRAHAM WILLIAMS ... .. " &1ae0 20 20 20 96 20 29 39 39 39 30 20 20 31 20 20 20 ; " ... .. " &1af0 83 57 41 52 4c 4f 52 44 20 20 20 20 20 20 20 20 ; " ... .. " &1b00 20 20 20 20 20 20 20 20 20 20 20 20 20 96 22 66 ; ".Implemented by ... .. " &1b10 26 66 64 20 24 20 20 20 20 20 20 20 20 20 20 20 ; ".CHESSFIELD ... .. " &1b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; ".MICROGAMES ... .. " &1b30 20 20 20 96 28 28 28 29 28 29 a6 ae 31 20 20 20 ; " ... .. " &1b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; " ... .. " &1b50 20 20 9a 96 42 52 49 54 49 53 48 96 7c 34 7c 7c ; ".Part A ... .. " &1b60 68 7c 34 7c 34 20 20 20 20 83 20 20 20 20 20 20 ; ".(c) 1985 ................... " &1b70 20 20 20 20 20 9a 96 42 52 4f 41 44 43 41 53 54 ; " " &1b80 49 4e 47 96 7d 34 35 6a 6a 7c 20 6a 20 20 20 20 ; " " &1b90 20 83 20 20 20 20 20 20 20 20 20 20 20 20 9a 96 ; " " &1ba0 43 4f 52 50 4f 52 41 54 49 4f 4e 20 7c 35 7d 7e &1bb0 6a 20 20 6a 20 20 20 20 20 20 20 20 20 20 20 20 &1bc0 20 20 20 20 20 20 20 20 20 20 20 94 20 20 20 20 &1bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1be0 83 44 65 73 69 67 6e 65 64 20 62 79 20 20 20 20 &1bf0 20 20 20 94 e0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 &1c00 f0 f0 f0 f0 f0 b0 20 20 83 47 52 41 48 41 4d 20 &1c10 57 49 4c 4c 49 41 4d 53 20 20 20 94 ea 87 20 20 &1c20 20 20 20 20 20 20 20 20 20 20 20 20 94 b5 20 20 &1c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1c40 20 20 20 94 ea 87 20 20 20 20 20 20 20 20 20 20 &1c50 20 20 20 20 94 b5 20 20 20 20 20 20 20 20 20 20 &1c60 20 20 20 20 20 20 20 20 20 20 20 94 ea 87 20 20 &1c70 20 20 20 20 20 20 20 20 20 20 20 20 94 b5 20 20 &1c80 83 49 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 &1c90 20 20 20 94 ea 87 20 20 20 20 20 20 20 20 20 20 &1ca0 20 20 20 20 94 b5 20 20 83 43 48 45 53 53 46 49 &1cb0 45 4c 44 20 20 20 20 20 20 20 20 94 ea 87 20 20 &1cc0 20 20 20 20 20 20 20 20 20 20 20 20 94 b5 20 20 &1cd0 93 4d 49 43 52 4f 47 41 4d 45 53 20 20 20 20 20 &1ce0 20 20 20 94 ea 87 20 20 20 20 20 20 20 20 20 20 &1cf0 20 20 20 20 94 b5 20 20 20 20 20 20 20 20 20 20 &1d00 20 20 20 20 20 20 20 20 20 20 20 94 ea 87 20 20 &1d10 20 20 20 20 20 20 20 20 20 20 20 20 94 b5 20 20 &1d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1d30 20 20 20 94 ea 87 20 20 20 20 20 20 20 20 20 20 &1d40 20 20 20 20 94 b5 20 20 83 50 61 72 74 20 41 20 &1d50 20 20 20 20 20 20 20 20 20 20 20 94 ea 87 20 20 &1d60 20 20 20 20 20 20 20 20 20 20 20 20 94 b5 20 20 &1d70 83 28 63 29 20 31 39 38 35 20 20 20 20 20 20 20 &1d80 20 20 20 94 ea f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 &1d90 f0 f0 f0 f0 f0 b5 20 20 20 20 20 20 20 20 20 20 &1da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &1df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; unused &1e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &1e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &1e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 # &1e50 - &1e8f is moved to &0050 - &008f at &19a0 ; load_and_run_main_binary &0050 a2 5a LDX #&5a ; &005a = load_string &0052 a0 00 LDY #&00 &0054 20 f7 ff JSR &fff7 ; OSCLI &0057 4c 00 06 JMP &0600 ; main_binary_entry_point ; load_string &005a 4c 2e 22 22 20 34 30 30 0d ; "L."" 400" ; unused &0063 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0073 00 ; object_rooms_address &0074 00 06 ; &0600 = object_rooms # Value used in game ; parameters_address &0076 40 06 ; &0640 = parameters # Value used in game ; unused &0078 00 00 ; input_address &007a 00 01 ; &0100 = input_buffer - 4 # Value used in game ; buffer_address &007c 00 00 ; &0000 = buffer # Value used in game ; unused &007e 00 00 00 00 00 00 00 00 ; text_x &0086 00 # Value used in game ; buffer_offset &0087 00 # Value used in game ; end_of_word &0088 00 # Value used in game ; unused &0089 00 ; force_uppercasing &008a 00 # Value used in game ; unused &008b 00 00 00 00 00 Game disassembly ================ ; who-a ; FFFF0400 FFFF0600 7800 ; start_game &0400 20 80 0c JSR &0c80 ; copy_initial_game_state &0403 20 aa 0c JSR &0caa ; backup_game_state &0406 ad 40 06 LDA &0640 ; parameters + &00 (player_room) &0409 20 b0 05 JSR &05b0 ; execute_bytecode_for_room &040c 20 aa 05 JSR &05aa ; write_buffer_and_newline ; main_game_loop &040f a2 b6 LDX #&b6 ; &08b6 = prompt_string &0411 20 1e 0b JSR &0b1e ; write_string &0414 a9 00 LDA #&00 ; Input line &0416 a2 6b LDX #&6b ; &086b = input_block &0418 a0 08 LDY #&08 &041a 20 f1 ff JSR &fff1 ; OSWORD # Returns Y = length of input &041d 98 TYA &041e d0 08 BNE &0428 ; process_input &0420 a2 bb LDX #&bb ; &08bb = cursor_up_twice_string &0422 20 1e 0b JSR &0b1e ; write_string &0425 4c 0f 04 JMP &040f ; main_game_loop ; process_input &0428 a0 04 LDY #&04 &042a 84 83 STY &83 ; input_offset ; process_input_loop &042c a2 00 LDX #&00 &042e 8e 43 06 STX &0643 ; parameters + &03 (recognised_words) &0431 8e 44 06 STX &0644 ; parameters + &04 (total_words) &0434 86 69 STX &69 ; have_preposition # Set to zero to indicate not following prepositions &0436 8e 4c 06 STX &064c ; parameters + &0c (verb) &0439 8e 4d 06 STX &064d ; parameters + &0d (first_noun) &043c 8e 4e 06 STX &064e ; parameters + &0e (second_noun) &043f 8e 4f 06 STX &064f ; parameters + &0f (preposition) &0442 ca DEX ; &ff &0443 9a TXS ; process_next_word &0444 a2 00 LDX #&00 &0446 86 6c STX &6c ; input_word_length ; copy_word_from_input_loop &0448 a4 83 LDY &83 ; input_offset &044a b1 7a LDA (&7a),Y ; input_address &044c 85 82 STA &82 ; character &044e c9 41 CMP #&41 ; "A" &0450 30 0c BMI &045e ; consider_next_character &0452 c9 7b CMP #&7b ; "z" + 1 &0454 10 08 BPL &045e ; consider_next_character &0456 29 1f AND #&1f &0458 18 CLC &0459 69 60 ADC #&60 ; "a" - 1 &045b 95 00 STA &00,X ; buffer &045d e8 INX ; consider_next_character &045e c8 INY &045f 84 83 STY &83 ; input_offset &0461 a5 82 LDA &82 ; character &0463 c9 20 CMP #&20 ; " " &0465 f0 14 BEQ &047b ; is_end_of_word &0467 c9 0d CMP #&0d ; CR &0469 f0 10 BEQ &047b ; is_end_of_word &046b c9 26 CMP #&26 ; "&" &046d f0 0c BEQ &047b ; is_end_of_word &046f c9 2c CMP #&2c ; "," &0471 f0 08 BEQ &047b ; is_end_of_word &0473 c9 2e CMP #&2e ; "." &0475 f0 04 BEQ &047b ; is_end_of_word &0477 e0 0f CPX #&0f &0479 30 cd BMI &0448 ; copy_word_from_input_loop ; is_end_of_word &047b a9 00 LDA #&00 &047d 95 00 STA &00,X ; buffer &047f 86 6c STX &6c ; input_word_length &0481 e0 03 CPX #&03 &0483 d0 18 BNE &049d ; not_and &0485 a5 00 LDA &00 ; buffer &0487 c9 61 CMP #&61 ; "a" &0489 d0 12 BNE &049d ; not_and &048b a5 01 LDA &01 ; buffer + 1 &048d c9 6e CMP #&6e ; "n" &048f d0 0c BNE &049d ; not_and &0491 a5 02 LDA &02 ; buffer + 2 &0493 c9 64 CMP #&64 ; "d" &0495 d0 06 BNE &049d ; not_and &0497 a2 00 LDX #&00 &0499 a9 2c LDA #&2c ; "," &049b 85 82 STA &82 ; character ; not_and &049d e0 00 CPX #&00 &049f f0 25 BEQ &04c6 ; skip_word &04a1 ee 44 06 INC &0644 ; parameters + &04 (total_words) &04a4 ad 43 06 LDA &0643 ; parameters + &03 (recognised_words) &04a7 c9 04 CMP #&04 &04a9 10 1b BPL &04c6 ; skip_word &04ab ad 4c 06 LDA &064c ; parameters + &0c (verb) &04ae f0 0a BEQ &04ba ; skip_nouns ; consider_nouns &04b0 a0 aa LDY #&aa ; &08aa = noun_dictionary &04b2 a2 01 LDX #&01 # Non-zero to use non-verb dictionary &04b4 20 46 10 JSR &1046 ; find_word_in_dictionary &04b7 4c c6 04 JMP &04c6 ; skip_word ; skip_nouns &04ba a0 a8 LDY #&a8 ; &08a8 = verb_dictionary &04bc a2 00 LDX #&00 # Zero to use verb dictionary &04be 20 46 10 JSR &1046 ; find_word_in_dictionary &04c1 ad 4c 06 LDA &064c ; parameters + &0c (verb) &04c4 f0 ea BEQ &04b0 ; consider_nouns ; skip_word &04c6 a5 82 LDA &82 ; character &04c8 c9 0d CMP #&0d ; CR &04ca f0 0f BEQ &04db ; is_end_of_words &04cc c9 26 CMP #&26 ; "&" &04ce f0 0b BEQ &04db ; is_end_of_words &04d0 c9 2c CMP #&2c ; "," &04d2 f0 07 BEQ &04db ; is_end_of_words &04d4 c9 2e CMP #&2e ; "." &04d6 f0 03 BEQ &04db ; is_end_of_words &04d8 4c 44 04 JMP &0444 ; process_next_word ; is_end_of_words &04db ad 44 06 LDA &0644 ; parameters + &04 (total_words) &04de f0 6f BEQ &054f ; skip_action &04e0 a9 00 LDA #&00 &04e2 85 71 STA &71 ; target_address_high &04e4 85 73 STA &73 ; source_address_high &04e6 a9 20 LDA #&20 ; &0020 = first_noun_buffer &04e8 85 70 STA &70 ; target_address_low &04ea a0 0f LDY #&0f &04ec ad 4d 06 LDA &064d ; parameters + &0d (first_noun) &04ef d0 0c BNE &04fd ; skip_copying &04f1 ad 4e 06 LDA &064e ; parameters + &0e (second_noun) &04f4 f0 07 BEQ &04fd ; skip_copying &04f6 a9 30 LDA #&30 ; &0030 = second_noun_buffer &04f8 85 72 STA &72 ; source_address_low &04fa 20 61 0a JSR &0a61 ; copy_memory # Copy second noun into first noun ; skip_copying &04fd ad 51 06 LDA &0651 ; parameters + &11 (first_noun_type) &0500 c9 06 CMP #&06 ; WORD_TYPE_PRONOUN &0502 d0 07 BNE &050b ; not_pronoun &0504 a9 a0 LDA #&a0 ; &00a0 = pronoun_buffer &0506 85 72 STA &72 ; source_address_low &0508 20 61 0a JSR &0a61 ; copy_memory ; not_pronoun &050b a9 00 LDA #&00 &050d 8d 45 06 STA &0645 ; parameters + &05 (output_written) &0510 a9 02 LDA #&02 &0512 20 00 0a JSR &0a00 ; execute_miscellaneous_bytecode # Execute bytecode for additional parsing &0515 ad 50 06 LDA &0650 ; parameters + &10 (verb_type) &0518 c9 07 CMP #&07 ; VERB_TYPE_SYSTEM &051a 10 0b BPL &0527 ; skip_room_action &051c ad 40 06 LDA &0640 ; parameters + &00 (player_room) &051f 38 SEC &0520 e9 05 SBC #&05 &0522 a0 86 LDY #&86 ; &0886 = bytecode_for_room_actions_address &0524 20 04 0a JSR &0a04 ; execute_bytecode_if_no_output_written # Execute bytecode for action in room ; skip_room_action &0527 ae 4c 06 LDX &064c ; parameters + &0c (verb) &052a ca DEX &052b 8a TXA &052c a0 84 LDY #&84 ; &0884 = bytecode_for_verbs_address &052e 20 04 0a JSR &0a04 ; execute_bytecode_if_no_output_written # Execute bytecode for action globally &0531 a9 01 LDA #&01 &0533 20 00 0a JSR &0a00 ; execute_miscellaneous_bytecode # Execute global bytecode &0536 ae 40 06 LDX &0640 ; parameters + &00 (player_room) &0539 20 87 0a JSR &0a87 ; count_objects_in_room # Returns number of objects in X &053c 8e 46 06 STX &0646 ; parameters + &06 (number_of_objects_in_player_room) &053f a2 01 LDX #&01 ; ROOM_CARRYING &0541 20 87 0a JSR &0a87 ; count_objects_in_room # Returns number of objects in X &0544 8e 4a 06 STX &064a ; parameters + &0a (number_of_objects_carried) &0547 a9 03 LDA #&03 &0549 20 00 0a JSR &0a00 ; execute_miscellaneous_bytecode # Execute bytecode to list objects if room changed &054c 20 aa 05 JSR &05aa ; write_buffer_and_newline ; skip_action &054f a4 83 LDY &83 ; input_offset &0551 a5 82 LDA &82 ; character &0553 c9 0d CMP #&0d : CR &0555 f0 0a BEQ &0561 ; stop_further_actions &0557 ad 45 06 LDA &0645 ; parameters + &05 (output_written) &055a c9 02 CMP #&02 &055c 10 03 BPL &0561 ; stop_further_actions &055e 4c 2c 04 JMP &042c ; process_input_loop ; stop_further_actions &0561 ad 45 06 LDA &0645 ; parameters + &05 (output_written) &0564 c9 03 CMP #&03 &0566 10 05 BPL &056d ; to_main_game_loop &0568 a9 00 LDA #&00 &056a 8d 54 06 STA &0654 ; parameters + &14 (previous_verb) ; to_main_game_loop &056d 4c 0f 04 JMP &040f ; main_game_loop ; set_word_if_not_already_set &0570 bc 4c 06 LDY &064c,X ; parameters + &0c (words) # Zero if no word already set for this slot &0573 f0 01 BEQ &0576 ; set_word &0575 60 RTS ; set_word &0576 9d 4c 06 STA &064c,X ; parameters + &0c (words) &0579 ee 43 06 INC &0643 ; parameters + &03 (recognised_words) &057c a5 68 LDA &68 ; word_type &057e 9d 50 06 STA &0650,X ; parameters + &10 (word_types) &0581 e8 INX &0582 8a TXA &0583 0a ASL A # buffer + &0010 = verb_buffer &0584 0a ASL A # buffer + &0020 = first_noun_buffer &0585 0a ASL A # buffer + &0030 = second_noun_buffer &0586 0a ASL A # buffer + &0040 = third_noun_buffer &0587 85 70 STA &70 ; target_address_low # buffer + &00a0 = pronoun_buffer &0589 a5 7d LDA &7d ; buffer_address &058b 85 71 STA &71 ; target_address_high &058d 85 73 STA &73 ; source_address_high &058f a9 00 LDA #&00 &0591 85 72 STA &72 ; source_address_low &0593 a0 0f LDY #&0f &0595 4c 61 0a JMP &0a61 ; copy_memory # Copy input word for use in writing strings ; set_address_X_to_Y &0598 a9 00 LDA #&00 ; &0880 = address_table &059a 85 70 STA &70 ; address_address_low &059c a9 08 LDA #&08 &059e 85 71 STA &71 ; address_address_high &05a0 b1 70 LDA (&70),Y ; address_address &05a2 95 70 STA &70,X ; address_address &05a4 c8 INY &05a5 b1 70 LDA (&70),Y ; address_address &05a7 95 71 STA &71,X ; address_address + 1 &05a9 60 RTS ; write_buffer_and_newline &05aa 20 1d 10 JSR &101d ; write_buffer &05ad 4c e7 ff JMP &ffe7 ; OSNEWL ; execute_bytecode_for_room # Called with A = room &05b0 38 SEC &05b1 e9 05 SBC #&05 &05b3 a0 80 LDY #&80 ; &0880 = bytecode_for_room_descriptions_address &05b5 a2 01 LDX #&01 # Non-zero to indicate buffer is not empty ; execute_bytecode &05b7 85 80 STA &80 ; chunk &05b9 86 8e STX &8e ; buffer_needs_writing &05bb a5 7e LDA &7e ; bytecode_address_low &05bd 48 PHA ; previous_bytecode_address_low &05be a5 7f LDA &7f ; bytecode_address_high &05c0 48 PHA ; previous_bytecode_address_high &05c1 a2 0e LDX #&0e ; &7e = bytecode_address &05c3 20 98 05 JSR &0598 ; set_address_X_to_Y &05c6 a6 80 LDX &80 ; chunk &05c8 f0 14 BEQ &05de ; execute_bytecode_loop &05ca a4 7e LDY &7e ; bytecode_address_low &05cc a9 00 LDA #&00 &05ce 85 7e STA &7e ; bytecode_address_low ; find_chunk_loop &05d0 c8 INY &05d1 d0 02 BNE &05d5 ; skip_page &05d3 e6 7f INC &7f ; bytecode_address_high ; skip_page &05d5 b1 7e LDA (&7e),Y ; bytecode_address # Zero if start of bytecode chunk &05d7 d0 f7 BNE &05d0 ; find_chunk_loop &05d9 ca DEX &05da d0 f4 BNE &05d0 ; find_chunk_loop &05dc 84 7e STY &7e ; bytecode_address_low ; execute_bytecode_loop &05de 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &05e1 30 06 BMI &05e9 ; is_negative ; is_positive # 0 .... ... assignment or special function &05e3 20 3f 0b JSR &0b3f ; execute_series_of_assignments &05e6 4c ec 05 JMP &05ec ; next_byte ; is_negative # 1 .... ... condition &05e9 20 e5 0c JSR &0ce5 ; execute_series_of_conditions ; next_byte &05ec a5 8f LDA &8f ; bytecode_byte &05ee f0 04 BEQ &05f4 ; end_of_bytecode &05f0 c9 04 CMP #&04 ; OP_RETURN &05f2 d0 ea BNE &05de ; execute_bytecode_loop ; end_of_bytecode &05f4 68 PLA ; previous_bytecode_address_high &05f5 85 7f STA &7f ; bytecode_address_high &05f7 68 PLA ; previous_bytecode_address_low &05f8 85 7e STA &7e ; bytecode_address_low &05fa 60 RTS ; unused &05fb 00 00 00 00 00 # &0600 - &06ff is used for the current position ; entry_point &0600 a9 1c LDA #&1c # Define text window x:(&19, &1a), y:(&18, &18) &0602 20 e3 ff JSR &ffe3 ; OSASCI &0605 a9 19 LDA #&19 &0607 20 e3 ff JSR &ffe3 ; OSASCI &060a a9 18 LDA #&18 &060c 20 e3 ff JSR &ffe3 ; OSASCI &060f a9 1a LDA #&1a &0611 20 e3 ff JSR &ffe3 ; OSASCI &0614 a9 18 LDA #&18 &0616 20 e3 ff JSR &ffe3 ; OSASCI &0619 a2 4c LDX #&4c ; &064c = load_string &061b a0 06 LDY #&06 &061d 20 f7 ff JSR &fff7 ; OSCLI # Load title screen &0620 ad 0e 02 LDA &020e ; oswrch_vector_low &0623 85 90 STA &90 ; previous_oswrch_vector_low &0625 ad 0f 02 LDA &020f ; oswrch_vector_high &0628 85 91 STA &91 ; previous_oswrch_vector_high &062a a9 0f LDA #&0f ; Flush all buffers &062c a2 00 LDX #&00 ; all buffers &062e a0 00 LDY #&00 &0630 20 f4 ff JSR &fff4 ; OSBYTE ; wait_for_return &0633 20 e0 ff JSR &ffe0 ; OSRDCH &0636 c9 0d CMP #&0d ; CR &0638 d0 f9 BNE &0633 ; wait_for_return &063a a9 1a LDA #&1a # Restore default windows &063c 20 e3 ff JSR &ffe3 ; OSASCI &063f a9 c8 LDA #&c8 ; &08c8 = oswrch_handler &0641 8d 0e 02 STA &020e ; oswrch_vector_low &0644 a9 08 LDA #&08 &0646 8d 0f 02 STA &020f ; oswrch_vector_high &0649 4c 00 04 JMP &0400 ; start_game ; load_string &064c 4c 2e 22 22 20 37 43 30 30 0d ; "L."" 7c00" ; unused &0656 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0666 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0676 00 00 00 00 00 00 00 00 00 00 ; unused &0680 44 6f 63 74 6f 72 20 57 68 6f 20 61 6e 64 20 54 ; "Doctor Who and T" &0690 68 65 20 57 61 72 6c 6f 72 64 2c 20 50 61 72 74 ; "he Warlord, Part" &06a0 20 41 2e 20 28 43 29 20 43 68 65 73 73 66 69 65 ; " A. (C) Chessfie" &06b0 6c 64 20 4d 69 63 72 6f 67 61 6d 65 73 20 28 31 ; "ld Microgames (1" &06c0 39 38 34 29 2e ; "984)." ; unused &06c5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &06d5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &06e5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &06f5 00 00 00 00 00 00 00 00 00 00 00 ; unused # &0700 - &07ff is used for the stored position &0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; OS sound workspace &0800 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 &0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0830 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 ; load_z1_string &0840 4c 2e 5a 31 0d ; "L.Z1"; ; save_z1_string &0845 53 2e 5a 31 20 36 30 30 20 38 30 30 0d ; "S.Z1 600 800"; ; save_sp_string &0852 53 2e 53 50 20 36 30 30 20 36 31 35 0d ; "S.SP 600 615"; &085f 00 ; punctuation # 6789abcdef0 &0860 2e 3f 21 3a 3b 2c 22 22 20 27 2d ; ".?!:;,"" '-" ; input_block &086b 04 01 ; &0104 = input_buffer &086d 24 ; length &086e 20 7a ; accept " " to "z" ; os_sound_channel_3_buffer &0870 00 00 00 00 00 a8 01 04 00 00 00 00 00 00 00 00 ; address_table &0880 ff 10 ; &80 : &10ff = bytecode_for_room_descriptions - 1 &0882 be 2c ; &82 : &2cbe = bytecode_for_object_descriptions - 1 &0884 54 2e ; &84 : &2e54 = bytecode_for_verbs - 1 &0886 12 39 ; &86 : &3912 = bytecode_for_room_actions - 1 &0888 e0 5e ; &88 : &5ee0 = miscellaneous_bytecode - 1 &088a e1 5e ; (unused) &088c ff 10 ; (unused) &088e ff 10 ; (unused) &0890 ff 10 ; (unused) &0892 ff ff ; (unused) &0894 ff ff ; (unused) &0896 97 08 ; &96 : &0897 = bytecode_for_listing_verb - 1 ; bytecode_for_listing_verb &0898 0d fe 05 05 ; "[verb]" # &089a is modified &089c 00 ; end ; unused &089d ff &089e 24 64 ; &9e : &6424 = secondary_dictionary_one # &f9 &08a0 f9 66 ; &a0 : &66f9 = secondary_dictionary_two # &fa &08a2 a5 6b ; &a2 : &6ba5 = secondary_dictionary_three # &fb &08a4 f9 6f ; &a4 : &6ff9 = secondary_dictionary_four # &fc &08a6 3e 73 ; &a6 : &733e = primary_dictionary # &fd &08a8 05 76 ; &a8 : &7605 = verb_dictionary # &fe &08aa 23 78 ; &aa : &7823 = noun_dictionary # &ff &08ac 3f 62 ; &ac : &623f = end_of_bytecode - 1 (unused) ; maximum_object_plus_one &08ae 3f ; maximum_verb &08af 75 ; &fe &75 = "hypnotise" ; indent_string &08b0 0d 20 20 20 20 00 ; "\r "; ; prompt_string &08b6 0d 83 5d 83 00 ; \r YELLOW "]" YELLOW ; cursor_up_twice_string &08bb 0b 0b 00 ; unused &08be 00 00 00 ; syllable_suffixes &08c1 11 : &20 : "a" - &50 &08c2 15 ; &40 : "e" - &50 &08c3 19 ; &60 : "i" - &50 &08c4 1f ; &80 : "o" - &50 &08c5 22 ; &a0 : "r" - &50 &08c6 24 ; &c0 : "t" - &50 &08c7 1e ; &e0 : "n" - &50 ; oswrch_handler &08c8 c9 07 CMP #&07 &08ca 90 0b BCC &08d7 ; leave &08cc c9 20 CMP #&20 ; " " &08ce b0 04 BCS &08d4 ; to_previous_oswrch_vector &08d0 c9 0e CMP #&0e &08d2 b0 03 BCS &08d7 ; leave ; to_previous_oswrch_vector &08d4 6c 90 00 JMP (&0090) ; previous_oswrch_vector ; leave &08d7 60 RTS ; decrypt_hint &08d8 a9 27 LDA #&27 ; "'" &08da 85 80 STA &80 ; key ; decrypt_hint_loop &08dc 20 e0 ff JSR &ffe0 ; OSRDCH &08df c9 0d CMP #&0d ; CR &08e1 f0 f4 BEQ &08d7 ; leave &08e3 18 CLC &08e4 65 80 ADC &80 ; key &08e6 85 80 STA &80 ; key &08e8 29 3f AND #&3f &08ea 18 CLC &08eb 69 20 ADC #&20 ; " " &08ed 20 ee ff JSR &ffee ; OSWRCH &08f0 4c dc 08 JMP &08dc ; decrypt_hint_loop ; save_special_file &08f3 ad 5c 06 LDA &065c ; parameters + &1c (score) &08f6 8d 00 06 STA &0600 ; score_for_special_file &08f9 a2 52 LDX #&52 ; &0852 = save_sp_string &08fb a0 08 LDY #&08 &08fd 4c f7 ff JMP &fff7 ; OSCLI ; initial_game_state # &0900 - &09ff is copied to &0600 - &06ff at start of game &0900 00 ; &0600 : score_for_special_file &0901 72 ; &0601 : object_room[&01] "a bag of florins" the music room &0902 38 ; &0602 : object_room[&02] "a rusty can" the bottom of the well &0903 06 ; &0603 : object_room[&03] "a stick of chewing gum" &0904 43 ; &0604 : object_room[&04] "a pea" one end of the castle kitchen &0905 28 ; &0605 : object_room[&05] "a half cooked rat" the bandits' hideout &0906 06 ; &0606 : object_room[&06] "a metal security tag" &0907 07 ; &0607 : object_room[&07] "a bell push" &0908 06 ; &0608 : object_room[&08] "a metal disc" &0909 06 ; &0609 : object_room[&09] "a bunch of keys" &090a 44 ; &060a : object_room[&0a] "a lantern" the cellars &090b 06 ; &060b : object_room[&0b] "a coil of rope" &090c 60 ; &060c : object_room[&0c] "a bar of soap" the Tardis bathroom &090d 07 ; &060d : object_room[&0d] "a sonic lance" &090e 06 ; &060e : object_room[&0e] "a gold locket" &090f 06 ; &060f : object_room[&0f] "a needle" &0910 06 ; &0610 : object_room[&10] "an eagle's feather" &0911 06 ; &0611 : object_room[&11] "some matches" &0912 00 ; &0612 : object_room[&12] "a pair of time travellers' dungarees" wearing &0913 06 ; &0613 : object_room[&13] "an ivory toothpick" &0914 70 ; &0614 : object_room[&14] "the Doctor's sonic screwdriver" a small workshop &0915 06 ; &0615 : object_room[&15] "a pair of space boots" &0916 07 ; &0616 : object_room[&16] "a light bulb" &0917 3d ; &0617 : object_room[&17] "a scrap of paper with writing on it" the dark corridor &0918 07 ; &0618 : object_room[&18] "some broken glass" &0919 01 ; &0619 : object_room[&19] "a two way radio" carried &091a 06 ; &061a : object_room[&1a] "a silver button" &091b 07 ; &061b : object_room[&1b] "several dozen radioactive roubles" &091c 56 ; &061c : object_room[&1c] "a tankard of ale" the busiest inn in town &091d 3f ; &061d : object_room[&1d] "a green wig" the dressing room &091e 38 ; &061e : object_room[&1e] "a bone" the bottom of the well &091f 06 ; &061f : object_room[&1f] "a leather bound book" &0920 06 ; &0620 : object_room[&20] "an index card" &0921 3f ; &0621 : object_room[&21] "an ermine robe" the dressing room &0922 60 ; &0622 : object_room[&22] "some snow" the Tardis bathroom &0923 3e ; &0623 : object_room[&23] "a flagon" a luxurious bedroom &0924 0f ; &0624 : object_room[&24] "a yellow hovercycle" the battle headquarters of King Varangar &0925 06 ; &0625 : object_room[&25] "a parchment scroll" &0926 07 ; &0626 : object_room[&26] "the Doctor's fob watch" &0927 06 ; &0627 : object_room[&27] "a letter from the Doctor" &0928 38 ; &0628 : object_room[&28] "a broken bottle" the bottom of the well &0929 07 ; &0629 : object_room[&29] "a wrist computer" &092a 06 ; &062a : object_room[&2a] "a hexagonal cylinder" &092b 06 ; &062b : object_room[&2b] "the king's invitation" &092c 07 ; &062c : object_room[&2c] (unused) &092d 07 ; &062d : object_room[&2d] (unused) &092e 07 ; &062e : object_room[&2e] (unused) &092f 07 ; &062f : object_room[&2f] (unused) &0930 07 ; &0630 : object_room[&30] (unused) &0931 07 ; &0631 : object_room[&31] (unused) &0932 07 ; &0632 : object_room[&32] (unused) &0933 07 ; &0633 : object_room[&33] (unused) &0934 07 ; &0634 : object_room[&34] (unused) &0935 07 ; &0635 : object_room[&35] (unused) &0936 07 ; &0636 : object_room[&36] (unused) &0937 07 ; &0637 : object_room[&37] (unused) &0938 07 ; &0638 : object_room[&38] (unused) &0939 07 ; &0639 : object_room[&39] (unused) &093a 07 ; &063a : object_room[&3a] (unused) &093b 07 ; &063b : object_room[&3b] (unused) &093c 07 ; &063c : object_room[&3c] (unused) &093d 07 ; &063d : object_room[&3d] (unused) &093e 07 ; &063e : object_room[&3e] (unused) &093f 00 ; &063f (unused) &0940 05 ; &0640 : p[&00] player_room &0941 05 ; &0641 : p[&01] current_room &0942 00 ; &0642 : p[&02] previous_room &0943 00 ; &0643 : p[&03] recognised_words &0944 00 ; &0644 : p[&04] total_words &0945 00 ; &0645 : p[&05] output_written &0946 00 ; &0646 : p[&06] number_of_objects_in_player_room &0947 00 ; &0647 : p[&07] old_room &0948 00 ; &0648 : p[&08] new_room &0949 10 ; &0649 : p[&09] maximum_objects_carried &094a 01 ; &064a : p[&0a] number_of_objects_carried &094b 00 ; &064b : p[&0b] consider_inventory_size &094c 00 ; &064c : p[&0c] verb &094d 00 ; &064d : p[&0d] first_noun &094e 00 ; &064e : p[&0e] second_noun &094f 00 ; &064f : p[&0f] preposition &0950 00 ; &0650 : p[&10] verb_type &0951 00 ; &0651 : p[&11] first_noun_type &0952 00 ; &0652 : p[&12] second_noun_type &0953 00 ; &0653 : p[&13] preposition_type &0954 00 ; &0654 : p[&14] previous_verb &0955 00 ; &0655 : p[&15] previous_first_noun &0956 00 ; &0656 : p[&16] previous_second_noun &0957 00 ; &0657 : p[&17] previous_preposition &0958 00 ; &0658 : p[&18] previous_verb_type (unused) &0959 00 ; &0659 : p[&19] previous_first_noun_type &095a 00 ; &065a : p[&1a] previous_second_noun_type (unused) &095b 00 ; &065b : p[&1b] previous_preposition_type (unused) &095c 00 ; &065c : p[&1c] score &095d 00 ; &065d : p[&1d] moves &095e 00 ; &065e : p[&1e] (unused) &095f 00 ; &065f : p[&1f] is_following_doctor &0960 00 ; &0660 : p[&20] character &0961 00 ; &0661 : p[&21] is_riding_hovercycle &0962 00 ; &0662 : p[&22] following_guards_on_hovercycle &0963 00 ; &0663 : p[&23] distance_into_mountains &0964 00 ; &0664 : p[&24] distance_into_desert &0965 00 ; &0665 : p[&25] haystack_searched &0966 00 ; &0666 : p[&26] radio_battery_used &0967 00 ; &0667 : p[&27] distance_into_forest &0968 00 ; &0668 : p[&28] drunk_state &0969 00 ; &0669 : p[&29] spiral_staircase_direction &096a 00 ; &066a : p[&2a] lance_used &096b 00 ; &066b : p[&2b] doctor_state &096c 00 ; &066c : p[&2c] tardis_fire_state &096d 00 ; &066d : p[&2d] tardis_fire_extinguished &096e 00 ; &066e : p[&2e] antigrav_boots_state &096f 00 ; &066f : p[&2f] bandit_chieftain_was_tearful &0970 00 ; &0670 : p[&30] king_state &0971 00 ; &0671 : p[&31] king_bow_count &0972 00 ; &0672 : p[&32] dungeon_door_state &0973 00 ; &0673 : p[&33] lantern_state &0974 00 ; &0674 : p[&34] (unused) &0975 00 ; &0675 : p[&35] radio_state &0976 00 ; &0676 : p[&36] tardis_state &0977 00 ; &0677 : p[&37] tardis_fire_alarm_state &0978 00 ; &0678 : p[&38] courtyard_guards_state &0979 00 ; &0679 : p[&39] entrance_hall_guard_state &097a 00 ; &067a (unused) &097b 00 ; &067b (unused) &097c 00 ; &067c (unused) &097d 00 ; &067d (unused) &097e 00 ; &067e (unused) &097f 00 ; &067f (unused) &0980 00 ; &0680 (unused) &0981 00 ; &0681 (unused) &0982 00 ; &0682 (unused) &0983 00 ; &0683 (unused) &0984 00 ; &0684 (unused) &0985 00 ; &0685 (unused) &0986 00 ; &0686 (unused) &0987 00 ; &0687 (unused) &0988 00 ; &0688 (unused) &0989 00 ; &0689 : room_flags[&7b] &098a 00 ; &068a : room_flags[&7a] &098b 40 ; &068b : room_flags[&79] &098c 00 ; &068c : room_flags[&78] &098d 00 ; &068d : room_flags[&77] &098e 00 ; &068e : room_flags[&76] &098f 00 ; &068f : room_flags[&75] &0990 00 ; &0690 : room_flags[&74] &0991 40 ; &0691 : room_flags[&73] &0992 00 ; &0692 : room_flags[&72] &0993 00 ; &0693 : room_flags[&71] &0994 00 ; &0694 : room_flags[&70] &0995 40 ; &0695 : room_flags[&6f] &0996 00 ; &0696 : room_flags[&6e] &0997 40 ; &0697 : room_flags[&6d] &0998 00 ; &0698 : room_flags[&6c] &0999 00 ; &0699 : room_flags[&6b] &099a 00 ; &069a : room_flags[&6a] &099b 00 ; &069b : room_flags[&69] &099c 00 ; &069c : room_flags[&68] &099d 00 ; &069d : room_flags[&67] &099e 00 ; &069e : room_flags[&66] &099f 00 ; &069f : room_flags[&65] &09a0 00 ; &06a0 : room_flags[&64] &09a1 00 ; &06a1 : room_flags[&63] &09a2 00 ; &06a2 : room_flags[&62] &09a3 00 ; &06a3 : room_flags[&61] &09a4 00 ; &06a4 : room_flags[&60] &09a5 00 ; &06a5 : room_flags[&5f] &09a6 00 ; &06a6 : room_flags[&5e] &09a7 00 ; &06a7 : room_flags[&5d] &09a8 00 ; &06a8 : room_flags[&5c] &09a9 00 ; &06a9 : room_flags[&5b] &09aa 00 ; &06aa : room_flags[&5a] &09ab 80 ; &06ab : room_flags[&59] &09ac 00 ; &06ac : room_flags[&58] &09ad 80 ; &06ad : room_flags[&57] &09ae 80 ; &06ae : room_flags[&56] &09af 00 ; &06af : room_flags[&55] &09b0 00 ; &06b0 : room_flags[&54] &09b1 00 ; &06b1 : room_flags[&53] &09b2 00 ; &06b2 : room_flags[&52] &09b3 00 ; &06b3 : room_flags[&51] &09b4 00 ; &06b4 : room_flags[&50] &09b5 00 ; &06b5 : room_flags[&4f] &09b6 00 ; &06b6 : room_flags[&4e] &09b7 00 ; &06b7 : room_flags[&4d] &09b8 00 ; &06b8 : room_flags[&4c] &09b9 00 ; &06b9 : room_flags[&4b] &09ba 00 ; &06ba : room_flags[&4a] &09bb 00 ; &06bb : room_flags[&49] &09bc 00 ; &06bc : room_flags[&48] &09bd 00 ; &06bd : room_flags[&47] &09be 00 ; &06be : room_flags[&46] &09bf 00 ; &06bf : room_flags[&45] &09c0 00 ; &06c0 : room_flags[&44] &09c1 80 ; &06c1 : room_flags[&43] &09c2 80 ; &06c2 : room_flags[&42] &09c3 80 ; &06c3 : room_flags[&41] &09c4 00 ; &06c4 : room_flags[&40] &09c5 00 ; &06c5 : room_flags[&3f] &09c6 00 ; &06c6 : room_flags[&3e] &09c7 00 ; &06c7 : room_flags[&3d] &09c8 80 ; &06c8 : room_flags[&3c] &09c9 80 ; &06c9 : room_flags[&3b] &09ca 80 ; &06ca : room_flags[&3a] &09cb 80 ; &06cb : room_flags[&39] &09cc 00 ; &06cc : room_flags[&38] &09cd 00 ; &06cd : room_flags[&37] &09ce 80 ; &06ce : room_flags[&36] &09cf 00 ; &06cf : room_flags[&35] &09d0 80 ; &06d0 : room_flags[&34] &09d1 00 ; &06d1 : room_flags[&33] &09d2 00 ; &06d2 : room_flags[&32] &09d3 00 ; &06d3 : room_flags[&31] &09d4 00 ; &06d4 : room_flags[&30] &09d5 80 ; &06d5 : room_flags[&2f] &09d6 c0 ; &06d6 : room_flags[&2e] &09d7 00 ; &06d7 : room_flags[&2d] &09d8 00 ; &06d8 : room_flags[&2c] &09d9 00 ; &06d9 : room_flags[&2b] &09da 00 ; &06da : room_flags[&2a] &09db 00 ; &06db : room_flags[&29] &09dc 80 ; &06dc : room_flags[&28] &09dd 00 ; &06dd : room_flags[&27] &09de 00 ; &06de : room_flags[&26] &09df 00 ; &06df : room_flags[&25] &09e0 00 ; &06e0 : room_flags[&24] &09e1 00 ; &06e1 : room_flags[&23] &09e2 00 ; &06e2 : room_flags[&22] &09e3 00 ; &06e3 : room_flags[&21] &09e4 00 ; &06e4 : room_flags[&20] &09e5 00 ; &06e5 : room_flags[&1f] &09e6 00 ; &06e6 : room_flags[&1e] &09e7 00 ; &06e7 : room_flags[&1d] &09e8 00 ; &06e8 : room_flags[&1c] &09e9 00 ; &06e9 : room_flags[&1b] &09ea 00 ; &06ea : room_flags[&1a] &09eb 00 ; &06eb : room_flags[&19] &09ec 00 ; &06ec : room_flags[&18] &09ed 00 ; &06ed : room_flags[&17] &09ee 00 ; &06ee : room_flags[&16] &09ef 00 ; &06ef : room_flags[&15] &09f0 00 ; &06f0 : room_flags[&14] &09f1 00 ; &06f1 : room_flags[&13] &09f2 00 ; &06f2 : room_flags[&12] &09f3 00 ; &06f3 : room_flags[&11] &09f4 80 ; &06f4 : room_flags[&10] &09f5 00 ; &06f5 : room_flags[&0f] &09f6 80 ; &06f6 : room_flags[&0e] &09f7 00 ; &06f7 : room_flags[&0d] &09f8 00 ; &06f8 : room_flags[&0c] &09f9 00 ; &06f9 : room_flags[&0b] &09fa 00 ; &06fa : room_flags[&0a] &09fb 40 ; &06fb : room_flags[&09] &09fc 00 ; &06fc : room_flags[&08] &09fd 00 ; &06fd : room_flags[&07] &09fe 00 ; &06fe : room_flags[&06] &09ff 00 ; &06ff : room_flags[&05] ; execute_miscellaneous_bytecode &0a00 a0 88 LDY #&88 ; &0888 = miscellaneous_bytecode_address &0a02 d0 05 BNE &0a09 ; execute_bytecode_with_non_empty_buffer # Always branches ; execute_bytecode_if_no_output_written &0a04 ae 45 06 LDX &0645 ; parameters + &05 (output_written) # Non-zero if any output was written &0a07 d0 11 BNE &0a1a ; leave ; execute_bytecode_with_non_empty_buffer &0a09 a2 01 LDX #&01 # Set to non-zero to indicate buffer is not empty &0a0b 4c b7 05 JMP &05b7 ; execute_bytecode # If no valid move made ; get_byte_of_bytecode &0a0e a2 00 LDX #&00 &0a10 e6 7e INC &7e ; bytecode_address_low &0a12 d0 02 BNE &0a16 ; skip_page &0a14 e6 7f INC &7f ; bytecode_address_high ; skip_page &0a16 a1 7e LDA (&7e,X) ; bytecode_address &0a18 85 8f STA &8f ; bytecode_byte &0a1a 60 RTS ; get_byte_of_bytecode_minus_four &0a1b 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0a1e 38 SEC &0a1f e9 04 SBC #&04 &0a21 85 6e STA &6e ; comparison_value &0a23 60 RTS ; get_following_byte_of_bytecode &0a24 a0 01 LDY #&01 &0a26 b1 7e LDA (&7e),Y ; bytecode_address &0a28 60 RTS ; get_parameter_from_byte_of_bytecode_minus_four &0a29 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0a2c a8 TAY &0a2d b1 76 LDA (&76),Y ; parameters_address &0a2f 60 RTS ; find_close_bracket # Call with A = - (number of brackets to skip) &0a30 85 80 STA &80 ; depth ; find_close_bracket_loop &0a32 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0a35 c9 04 CMP #&04 ; OP_STRING_END_PERIOD &0a37 b0 f9 BCS &0a32 ; find_close_bracket_loop &0a39 38 SEC &0a3a e9 02 SBC #&02 ; OP_OR # &01 (OP_BRACKET_START) decreases depth &0a3c 18 CLC # &03 (OP_BRACKET_END) increases depth &0a3d 65 80 ADC &80 ; depth &0a3f 85 80 STA &80 ; depth &0a41 d0 ef BNE &0a32 ; find_close_bracket_loop &0a43 60 RTS ; rnd &0a44 a2 30 LDX #&30 ; &0130 = clock_block &0a46 a0 01 LDY #&01 &0a48 a9 01 LDA #&01 ; Read system clock &0a4a 20 f1 ff JSR &fff1 ; OSWORD &0a4d 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0a50 38 SEC &0a51 e9 01 SBC #&01 &0a53 2d 30 01 AND &0130 ; clock_block &0a56 60 RTS ; search_for_next_byte_A_of_bytecode &0a57 85 80 STA &80 ; byte ; search_for_next_byte_A_of_bytecode_loop &0a59 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0a5c c5 80 CMP &80 ; byte &0a5e d0 f9 BNE &0a59 ; search_for_next_byte_A_of_bytecode_loop &0a60 60 RTS ; copy_memory # Called with Y = number of bytes to copy - 1 &0a61 b1 72 LDA (&72),Y ; source_address &0a63 91 70 STA (&70),Y ; target_address &0a65 88 DEY &0a66 c0 ff CPY #&ff &0a68 d0 f7 BNE &0a61 ; copy_memory &0a6a 60 RTS ; get_room_flag_address_and_mask &0a6b a9 06 LDA #&06 &0a6d 85 71 STA &71 ; room_flags_address_high &0a6f a9 04 LDA #&04 # Room X flags are stored at &0700 - (X - 4) &0a71 38 SEC # i.e. start at &06ff for room 5 and move downwards &0a72 ed 40 06 SBC &0640 ; parameters + &00 (player_room) &0a75 85 70 STA &70 ; room_flags_address_low &0a77 a5 8d LDA &8d ; opcode_middle_four_bits # . 421. ... specifies flag to use for mask &0a79 4a LSR A &0a7a aa TAX &0a7b a9 01 LDA #&01 # Flag 0 is stored in lowest bit (bit 0), etc &0a7d e0 00 CPX #&00 &0a7f f0 04 BEQ &0a85 ; leave_with_mask ; calculate_mask_loop &0a81 0a ASL A &0a82 ca DEX &0a83 d0 fc BNE &0a81 ; calculate_mask_loop ; leave_with_mask &0a85 aa TAX &0a86 60 RTS # Leaves with A = X = mask for flag ; count_objects_in_room # Called with X = room &0a87 86 63 STX &63 ; room &0a89 a0 00 LDY #&00 &0a8b a2 00 LDX #&00 ; count_objects_in_room_loop &0a8d c8 INY &0a8e cc ae 08 CPY &08ae ; maximum_object_plus_one &0a91 f0 09 BEQ &0a9c ; leave &0a93 b1 74 LDA (&74),Y ; object_rooms_address &0a95 c5 63 CMP &63 ; room &0a97 d0 f4 BNE &0a8d ; count_objects_in_room_loop &0a99 e8 INX &0a9a d0 f1 BNE &0a8d ; count_objects_in_room_loop # Always branches ; leave &0a9c 60 RTS # Leaves with X = number of objects in room ; list_and_move_objects_in_room # Called with X = old room, Y = new room &0a9d 84 64 STY &64 ; new_room &0a9f 20 87 0a JSR &0a87 ; count_objects_in_room # Returns number of objects in X &0aa2 86 66 STX &66 ; number_of_objects_in_room &0aa4 8a TXA &0aa5 f0 67 BEQ &0b0e ; leave # Leave if no objects in room &0aa7 a9 00 LDA #&00 &0aa9 8d 45 06 STA &0645 ; parameters + &05 (output_written) # Set to zero to indicate no output written &0aac 85 67 STA &67 ; count &0aae a8 TAY ; find_next_object_loop &0aaf c8 INY &0ab0 84 65 STY &65 ; object &0ab2 cc ae 08 CPY &08ae ; maximum_object_plus_one &0ab5 f0 57 BEQ &0b0e ; leave &0ab7 b1 74 LDA (&74),Y ; object_rooms_address &0ab9 c5 63 CMP &63 ; room # Set in count_objects_in_room_loop &0abb d0 f2 BNE &0aaf ; find_next_object_loop &0abd ad 49 06 LDA &0649 ; parameters + &09 (maximum_objects_carried) &0ac0 38 SEC &0ac1 ed 4b 06 SBC &064b ; parameters + &0b (consider_inventory_size) &0ac4 cd 4a 06 CMP &064a ; parameters + &0a (number_of_objects_carried) &0ac7 90 45 BCC &0b0e ; leave # Stop moving objects if inventory is full &0ac9 e6 67 INC &67 ; count &0acb a5 67 LDA &67 ; count &0acd c9 01 CMP #&01 &0acf f0 14 BEQ &0ae5 ; list_and_move_object # If not the first object, &0ad1 c5 66 CMP &66 ; number_of_objects_in_room &0ad3 f0 08 BEQ &0add ; write_and # and not the last object &0ad5 a9 0b LDA #&0b ; CHARACTER_COMMA &0ad7 20 42 0f JSR &0f42 ; add_character_to_buffer # write ", " &0ada 4c e5 0a JMP &0ae5 ; list_and_move_object ; write_and # If this is the last object &0add a9 00 LDA #&00 &0adf aa TAX # Zero to indicate buffer is empty &0ae0 a0 88 LDY #&88 ; &0888 = miscellaneous_bytecode_address &0ae2 20 b7 05 JSR &05b7 ; execute_bytecode # write "and " ; list_and_move_object &0ae5 a5 65 LDA &65 ; object &0ae7 38 SEC &0ae8 e9 01 SBC #&01 &0aea a0 82 LDY #&82 ; &0882 = bytecode_for_object_descriptions_address &0aec a2 00 LDX #&00 &0aee 20 b7 05 JSR &05b7 ; execute_bytecode # Write object description &0af1 a4 65 LDY &65 ; object &0af3 a5 64 LDA &64 ; new_room &0af5 91 74 STA (&74),Y ; object_rooms_address # Move object to new room &0af7 ad 4a 06 LDA &064a ; parameters + &0a (number_of_objects_carried) &0afa 18 CLC &0afb 6d 4b 06 ADC &064b ; parameters + &0b (consider_inventory_size) &0afe 8d 4a 06 STA &064a ; parameters + &0a (number_of_objects_carried) &0b01 ad 46 06 LDA &0646 ; parameters + &06 (number_of_objects_in_player_room) &0b04 38 SEC &0b05 ed 4b 06 SBC &064b ; parameters + &0b (consider_inventory_size) &0b08 8d 46 06 STA &0646 ; parameters + &06 (number_of_objects_in_player_room) &0b0b 4c af 0a JMP &0aaf ; find_next_object_loop ; leave &0b0e 60 RTS ; copy_page_Y_to_page_X &0b0f a9 00 LDA #&00 &0b11 85 70 STA &70 ; target_address_low &0b13 85 72 STA &72 ; source_address_low &0b15 86 71 STX &71 ; target_address_high &0b17 84 73 STY &73 ; source_address_high &0b19 a0 ff LDY #&ff # Copy 256 bytes &0b1b 4c 61 0a JMP &0a61 ; copy_memory ; write_string &0b1e a0 00 LDY #&00 &0b20 86 70 STX &70 ; string_address_low &0b22 a9 08 LDA #&08 &0b24 85 71 STA &71 ; string_address_high ; write_string_loop &0b26 b1 70 LDA (&70),Y ; string_address &0b28 f0 06 BEQ &0b30 ; leave &0b2a 20 e3 ff JSR &ffe3 ; OSASCI &0b2d c8 INY &0b2e d0 f6 BNE &0b26 ; write_string_loop ; leave &0b30 60 RTS ; split_opcode_into_bits &0b31 4a LSR A &0b32 4a LSR A &0b33 4a LSR A &0b34 29 0f AND #&0f &0b36 85 8d STA &8d ; opcode_middle_four_bits # . 8421 ... &0b38 a5 8f LDA &8f ; bytecode_byte &0b3a 29 07 AND #&07 &0b3c 85 8c STA &8c ; opcode_low_three_bits # . .... 421 &0b3e 60 RTS ; execute_series_of_assignments # 0 .... ... assignment or special function &0b3f c9 06 CMP #&06 ; OP_STRING_END + 1 &0b41 30 2a BMI &0b6d ; leave # Leave if brackets ; execute_series_of_assignments_loop &0b43 20 31 0b JSR &0b31 ; split_opcode_into_bits # Returns lowest three bits &0b46 c9 05 CMP #&05 ; ASSIGNMENT_TYPE_FIVE &0b48 10 03 BPL &0b4d ; skip_value &0b4a 20 77 0b JSR &0b77 ; determine_value_for_assignment ; skip_value &0b4d 20 c6 0b JSR &0bc6 ; execute_assignment_or_special_function ; find_end_of_brackets_loop &0b50 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0b53 30 19 BMI &0b6e ; move_back_a_byte_of_bytecode # Negative if next operation is a condition &0b55 c9 06 CMP #&06 ; OP_STRING_END + 1 &0b57 10 ea BPL &0b43 ; execute_series_of_assignments_loop # Continue executing if next operation is an assignment &0b59 c9 03 CMP #&03 ; OP_BRACKET_END &0b5b d0 10 BNE &0b6d ; leave &0b5d 20 24 0a JSR &0a24 ; get_following_byte_of_bytecode &0b60 c9 03 CMP #&03 ; OP_BRACKET_END &0b62 f0 ec BEQ &0b50 ; find_end_of_brackets_loop # Find end of (possibly nested) bracket &0b64 c9 01 CMP #&01 ; OP_BRACKET_START &0b66 d0 05 BNE &0b6d ; leave # A following start bracket indicates "else" code &0b68 a9 00 LDA #&00 &0b6a 20 30 0a JSR &0a30 ; find_close_bracket # Skip bytecode in else bracket ; leave &0b6d 60 RTS ; move_back_a_byte_of_bytecode &0b6e a5 7e LDA &7e ; bytecode_address_low &0b70 d0 02 BNE &0b74 ; skip_page &0b72 c6 7f DEC &7f ; bytecode_address_page ; skip_page &0b74 c6 7e DEC &7e ; bytecode_address_low &0b76 60 RTS ; determine_value_for_assignment &0b77 a6 8d LDX &8d ; opcode_middle_four_bits &0b79 ca DEX &0b7a d0 03 BNE &0b7f ; not_assignment_value_type_1 ; is_assignment_value_type_1 # 0 0001 ... variable = (byte - 4) &0b7c 4c 1b 0a JMP &0a1b ; get_byte_of_bytecode_minus_four ; not_assignment_value_type_1 &0b7f ca DEX &0b80 d0 03 BNE &0b85 ; not_assignment_value_type_2 ; is_assignment_value_type_2 # 0 0010 ... variable = 0 &0b82 a9 00 LDA #&00 &0b84 60 RTS ; not_assignment_value_type_2 &0b85 ca DEX &0b86 d0 03 BNE &0b8b ; not_assignment_value_type_3 ; is_assignment_value_type_3 # 0 0011 ... variable = 1 &0b88 a9 01 LDA #&01 &0b8a 60 RTS ; not_assignment_value_type_3 &0b8b ca DEX &0b8c d0 14 BNE &0ba2 ; not_assignment_value_type_4 ; is_assignment_value_type_4 # 0 0100 ... variable += (byte - &80) &0b8e 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0b91 38 SEC &0b92 e9 80 SBC #&80 &0b94 85 80 STA &80 ; delta ; add_delta_to_variable &0b96 20 29 0a JSR &0a29 ; get_parameter_from_byte_of_bytecode_minus_four &0b99 18 CLC &0b9a 65 80 ADC &80 ; delta &0b9c 48 PHA ; tmp_a &0b9d 20 6e 0b JSR &0b6e ; move_back_a_byte_of_bytecode &0ba0 68 PLA ; tmp_a &0ba1 60 RTS ; not_assignment_value_type_4 &0ba2 ca DEX &0ba3 d0 03 BNE &0ba8 ; not_assignment_value_type_5 ; is_assignment_value_type_5 # 0 0101 ... variable = p[byte - 4] &0ba5 4c 29 0a JMP &0a29 ; get_parameter_from_byte_of_bytecode_minus_four ; not_assignment_value_type_5 &0ba8 ca DEX &0ba9 d0 03 BNE &0bae ; not_assignment_value_type_6 ; is_assignment_value_type_6 # 0 0110 ... variable = rnd(byte - 4) &0bab 4c 44 0a JMP &0a44 ; rnd ; not_assignment_value_type_6 &0bae ca DEX &0baf d0 04 BNE &0bb5 ; not_assignment_value_type_7 ; is_assignment_value_type_7 # 0 0111 ... variable = player_room &0bb1 ad 40 06 LDA &0640 ; parameters + &00 (player_room) &0bb4 60 RTS ; not_assignment_value_type_7 &0bb5 ca DEX &0bb6 d0 07 BNE &0bbf ; is_assignment_value_type_9 ; is_assignment_value_type_8 # 0 1000 ... variable ++ &0bb8 a9 01 LDA #&01 &0bba 85 80 STA &80 ; delta &0bbc 4c 96 0b JMP &0b96 ; add_delta_to_variable ; is_assignment_value_type_9 # 0 1001 ... variable -- &0bbf a9 ff LDA #&ff &0bc1 85 80 STA &80 ; delta &0bc3 4c 96 0b JMP &0b96 ; add_delta_to_variable ; execute_assignment_or_special_function &0bc6 a6 8c LDX &8c ; opcode_low_three_bits &0bc8 d0 09 BNE &0bd3 ; not_assignment_type_0 ; is_assignment_type_0 # 0 .... 000 sets player room &0bca 8d 40 06 STA &0640 ; parameters + &00 (player_room) &0bcd a9 01 LDA #&01 &0bcf 8d 45 06 STA &0645 ; parameters + &05 (output_written) # Set to non-zero to indicate output written &0bd2 60 RTS ; not_assignment_type_0 &0bd3 ca DEX &0bd4 d0 04 BNE &0bda ; not_assignment_type_1 ; is_assignment_type_1 # 0 .... 001 sets object_room[first_noun] &0bd6 a0 0d LDY #&0d ; parameters + &0d (first_noun) &0bd8 d0 05 BNE &0bdf ; set_object_room_from_parameter # Always branches ; not_assignment_type_1 &0bda ca DEX &0bdb d0 09 BNE &0be6 ; not_assignment_type_2 ; is_assignment_type_2 # 0 .... 010 sets object_room[second_noun] &0bdd a0 0e LDY #&0e ; parameters + &0e (second_noun) ; set_object_room_from_parameter &0bdf be 40 06 LDX &0640,Y ; parameters &0be2 9d 00 06 STA &0600,X ; object_rooms &0be5 60 RTS ; not_assignment_type_2 &0be6 ca DEX &0be7 d0 0a BNE &0bf3 ; not_assignment_type_3 ; is_assignment_type_4 # 0 .... 011 sets object_room[byte - 4] &0be9 a8 TAY &0bea 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0bed aa TAX &0bee 98 TYA &0bef 9d 00 06 STA &0600,X ; object_rooms &0bf2 60 RTS ; not_assignment_type_3 &0bf3 ca DEX &0bf4 d0 0a BNE &0c00 ; not_assignment_type_4 ; is_assignment_type_4 # 0 .... 100 sets p[byte - 4] &0bf6 a8 TAY &0bf7 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0bfa aa TAX &0bfb 98 TYA &0bfc 9d 40 06 STA &0640,X ; parameters &0bff 60 RTS ; not_assignment_type_4 &0c00 ca DEX &0c01 d0 0d BNE &0c10 ; not_assignment_type_5 ; is_assignment_type_5 # 0 .... 101 writes packed string or input word &0c03 a9 01 LDA #&01 &0c05 8d 45 06 STA &0645 ; parameters + &05 (output_written) # Set to non-zero to indicate output written &0c08 20 4c 0e JSR &0e4c ; write_packed_string_or_input_word &0c0b a9 00 LDA #&00 &0c0d 85 8e STA &8e ; buffer_needs_writing # Set to zero to indicate buffer is empty &0c0f 60 RTS ; not_assignment_type_5 &0c10 ca DEX &0c11 d0 03 BNE &0c16 ; is_assignment_type_7 ; is_assignment_type_6 # 0 .... 110 executes a special function &0c13 4c 35 0c JMP &0c35 ; execute_special_function ; is_assignment_type_7 # 0 .... 111 alters room flag &0c16 20 6b 0a JSR &0a6b ; get_room_flag_address_and_mask # Returns X = mask &0c19 a5 8d LDA &8d ; opcode_middle_four_bits &0c1b 29 01 AND #&01 # . ...0 ... clears flag &0c1d f0 08 BEQ &0c27 ; clear_room_flag ; set_room_flag &0c1f 8a TXA # . ...1 ... sets flag &0c20 a2 00 LDX #&00 &0c22 01 70 ORA (&70,X) ; room_flags_address &0c24 81 70 STA (&70,X) ; room_flags_address &0c26 60 RTS ; clear_room_flag &0c27 86 80 STX &80 ; mask &0c29 a2 00 LDX #&00 &0c2b a9 ff LDA #&ff &0c2d 38 SEC &0c2e e5 80 SBC &80 ; mask &0c30 21 70 AND (&70,X) ; room_flags_address &0c32 81 70 STA (&70,X) ; room_flags_address &0c34 60 RTS ; execute_special_function &0c35 a6 8d LDX &8d ; opcode_middle_four_bits &0c37 d0 09 BNE &0c42 ; not_special_function_0 ; is_special_function_0 # 0 0000 110 lists and moves objects &0c39 ae 47 06 LDX &0647 ; parameters + &07 (old_room) &0c3c ac 48 06 LDY &0648 ; parameters + &08 (new_room) &0c3f 4c 9d 0a JMP &0a9d ; list_and_move_objects_in_room ; not_special_function_0 &0c42 ca DEX &0c43 d0 05 BNE &0c4a ; not_special_function_1 ; is_special_function_1 # 0 0001 110 skips to start of next bytecode &0c45 a9 00 LDA #&00 ; OP_BYTECODE_END &0c47 4c 57 0a JMP &0a57 ; search_for_next_byte_A_of_bytecode ; not_special_function_1 &0c4a ca DEX &0c4b d0 0c BNE &0c59 ; not_special_function_2 ; is_special_function_2 # 0 0010 110 executes object bytecode for first noun &0c4d ae 4d 06 LDX &064d ; parameters + &0d (first_noun) &0c50 ca DEX &0c51 8a TXA &0c52 a2 00 LDX #&00 &0c54 a0 82 LDY #&82 ; &0882 = bytecode_for_object_descriptions_address &0c56 4c b7 05 JMP &05b7 ; execute_bytecode ; not_special_function_2 &0c59 ca DEX &0c5a d0 0f BNE &0c6b ; not_special_function_3 ; is_special_function_3 # 0 0011 110 loads position from file &0c5c 20 df 0f JSR &0fdf ; write_buffer_and_start_new_line &0c5f a2 40 LDX #&40 ; &0840 = load_z1_string &0c61 a0 08 LDY #&08 &0c63 a5 00 LDA &00 ; buffer &0c65 8d 42 08 STA &0842 ; load_z1_string + 2 # Replace Z with first character of last word input &0c68 4c f7 ff JMP &fff7 ; OSCLI ; not_special_function_3 &0c6b ca DEX &0c6c d0 0f BNE &0c7d ; not_special_function_4 ; is_special_function_4 # 0 0100 110 saves position to file &0c6e 20 df 0f JSR &0fdf ; write_buffer_and_start_new_line &0c71 a2 45 LDX #&45 ; &0845 = save_z1_string &0c73 a0 08 LDY #&08 &0c75 a5 00 LDA &00 ; buffer &0c77 8d 47 08 STA &0847 ; save_z1_string + 2 # Replace Z with first character of last word input &0c7a 4c f7 ff JMP &fff7 ; OSCLI ; not_special_function_4 &0c7d ca DEX &0c7e d0 07 BNE &0c87 ; not_special_function_5 ; is_special_function_5 # 0 0101 110 restores initial position ; copy_initial_game_state &0c80 a2 06 LDX #&06 ; &0600 = game_state &0c82 a0 09 LDY #&09 ; &0900 = initial_game_state &0c84 4c 0f 0b JMP &0b0f ; copy_page_Y_to_page_X ; not_special_function_5 &0c87 ca DEX &0c88 d0 11 BNE &0c9b ; not_special_function_6 ; is_special_function_6 # 0 0110 110 reads a character into p[&20] (character) &0c8a 20 1d 10 JSR &101d ; write_buffer &0c8d a9 0f LDA #&0f ; Flush all buffers &0c8f a2 00 LDX #&00 ; all buffers &0c91 20 f4 ff JSR &fff4 ; OSBYTE &0c94 20 e0 ff JSR &ffe0 ; OSRDCH &0c97 8d 60 06 STA &0660 ; parameters + &20 (character) &0c9a 60 RTS ; not_special_function_6 &0c9b ca DEX &0c9c d0 03 BNE &0ca1 ; not_special_function_7 ; is_special_function_7 # 0 0111 110 resets the system &0c9e 6c fc ff JMP (&fffc) ; os_reset_address_low ; not_special_function_7 &0ca1 ca DEX &0ca2 d0 03 BNE &0ca7 ; not_special_function_8 ; is_special_function_8 # 0 1000 110 saves special file for part B &0ca4 4c f3 08 JMP &08f3 ; save_special_file ; not_special_function_8 &0ca7 ca DEX &0ca8 d0 07 BNE &0cb1 ; not_special_function_9 ; is_special_function_9 # 0 1001 110 stores game state to memory ; backup_game_state &0caa a2 07 LDX #&07 ; &0700 = saved_game_state &0cac a0 06 LDY #&06 ; &0600 = game_state &0cae 4c 0f 0b JMP &0b0f ; copy_page_Y_to_page_X ; not_special_function_9 &0cb1 ca DEX &0cb2 d0 06 BNE &0cba ; not_special_function_10 ; is_special_function_10 # 0 1010 110 executes room bytecode for player room &0cb4 ad 40 06 LDA &0640 ; parameters + &00 (player_room) &0cb7 4c b0 05 JMP &05b0 ; execute_bytecode_for_room ; not_special_function_10 &0cba ca DEX &0cbb d0 1b BNE &0cd8 ; not_special_function_11 ; is_special_function_11 # 0 1011 110 lists verbs &0cbd a9 16 LDA #&16 ; &fe &16 = "up" &0cbf 8d 9a 08 STA &089a ; bytecode_for_listing_verb + 2 ; list_verbs_loop &0cc2 a9 00 LDA #&00 &0cc4 aa TAX &0cc5 a0 96 LDY #&96 ; &0896 = bytecode_for_listing_verb_address &0cc7 20 b7 05 JSR &05b7 ; execute_bytecode # Write a verb &0cca ad 9a 08 LDA &089a ; bytecode_for_listing_verb + 2 &0ccd cd af 08 CMP &08af ; maximum_verb &0cd0 f0 05 BEQ &0cd7 ; leave &0cd2 ee 9a 08 INC &089a ; bytecode_for_listing_verb + 2 &0cd5 d0 eb BNE &0cc2 ; list_verbs_loop ; leave &0cd7 60 RTS ; not_special_function_11 &0cd8 ca DEX &0cd9 d0 03 BNE &0cde ; is_special_function_13 ; is_special_function_12 # 0 1100 110 decrypts hint &0cdb 4c d8 08 JMP &08d8 ; decrypt_hint ; is_special_function_13 # 0 1101 110 restores game state from memory ; restore_game_state &0cde a2 06 LDX #&06 ; &0600 = game_state &0ce0 a0 07 LDY #&07 ; &0700 = saved_game_state &0ce2 4c 0f 0b JMP &0b0f ; copy_page_Y_to_page_X ; execute_series_of_conditions &0ce5 a2 ff LDX #&ff ; TRUE &0ce7 86 85 STX &85 ; truth ; execute_series_of_conditions_loop &0ce9 20 31 0b JSR &0b31 ; split_opcode_into_bits &0cec 20 33 0d JSR &0d33 ; get_variable_for_comparison &0cef a6 8c LDX &8c ; opcode_low_three_bits &0cf1 e0 06 CPX #&06 ; CONDITION_TYPE_SIX &0cf3 10 0c BPL &0d01 ; consider_next_condition &0cf5 20 88 0d JSR &0d88 ; perform_comparison # Returns &ff if condition true, &00 if false &0cf8 25 85 AND &85 ; truth &0cfa 85 85 STA &85 ; truth &0cfc 4c 01 0d JMP &0d01 ; consider_next_condition ; unused &0cff 00 ; nmi_handler &0d00 40 RTI ; consider_next_condition &0d01 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0d04 30 e3 BMI &0ce9 ; execute_series_of_conditions_loop # Negative if next operation is a condition &0d06 aa TAX &0d07 ca DEX &0d08 30 1e BMI &0d28 ; leave # Leave if &00 (OP_BYTECODE_END) &0d0a c9 04 CMP #&04 ; OP_STRING_END_PERIOD &0d0c f0 1a BEQ &0d28 ; leave &0d0e 30 03 BMI &0d13 ; is_opcode_1_2_or_3 &0d10 4c 6e 0b JMP &0b6e ; move_back_a_byte_of_bytecode ; is_opcode_1_2_or_3 # Should never be &03 (OP_BRACKET_END) &0d13 ca DEX &0d14 10 09 BPL &0d1f ; not_opcode_1 ; is_opcode_1 # &01 (OP_BRACKET_START) &0d16 a5 85 LDA &85 ; truth &0d18 d0 0e BNE &0d28 ; leave # If true, leave to execute bracketed bytecode &0d1a a9 ff LDA #&ff &0d1c 4c 30 0a JMP &0a30 ; find_close_bracket # Otherwise, skip past bracketed bytecode ; is_opcode_2 # &02 (OP_OR) &0d1f a5 85 LDA &85 ; truth &0d21 f0 06 BEQ &0d29 ; consider_or ; skip_or # If true, skip past remaining conditions &0d23 a9 01 LDA #&01 ; OP_BRACKET_START &0d25 20 57 0a JSR &0a57 ; search_for_next_byte_A_of_bytecode ; leave &0d28 60 RTS ; consider_or # Otherwise, consider alternative conditions &0d29 a9 ff LDA #&ff ; TRUE &0d2b 85 85 STA &85 ; truth &0d2d 20 0e 0a JSR &0a0e ; get_byte_of_bytecode # Zero at end of bytecode &0d30 d0 b7 BNE &0ce9 ; execute_series_of_conditions_loop # Should always branch &0d32 60 RTS ; get_variable_for_comparison &0d33 a6 8c LDX &8c ; opcode_low_three_bits &0d35 e0 03 CPX #&03 ; CONDITION_TYPE_THREE &0d37 10 04 BPL &0d3d ; not_comparison_variable_type_0_1_or_2 ; is_comparison_variable_type_0_1_or_2 # 1 .... 000 verb &0d39 bd 4c 06 LDA &064c,X ; parameters + &0c (words) # 1 .... 001 first_noun &0d3c 60 RTS # 1 .... 010 second noun ; not_comparison_variable_type_0_1_or_2 &0d3d ca DEX &0d3e ca DEX &0d3f ca DEX &0d40 ca DEX &0d41 10 04 BPL &0d47 ; not_comparison_variable_type_3 ; is_comparison_variable_type_3 # 1 .... 011 (byte - 4) &0d43 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0d46 60 RTS ; not_comparison_variable_type_3 &0d47 ca DEX &0d48 10 03 BPL &0d4d ; not_comparison_variable_type_4 ; is_comparison_variable_type_4 # 1 .... 100 p[byte - 4] &0d4a 4c 29 0a JMP &0a29 ; get_parameter_from_byte_of_bytecode_minus_four ; not_comparison_variable_type_4 &0d4d ca DEX &0d4e 10 04 BPL &0d54 ; not_comparison_variable_type_5 ; is_comparison_variable_type_5 # 1 .... 101 preposition &0d50 ad 4f 06 LDA &064f ; parameters + &0f (preposition) &0d53 60 RTS ; not_comparison_variable_type_5 &0d54 ca DEX &0d55 10 17 BPL &0d6e ; is_comparison_variable_type_7 ; is_comparison_variable_type_6 # 1 .... 110 changes room if player moving in direction &0d57 ac 4c 06 LDY &064c ; parameters + &0c (verb) &0d5a 88 DEY &0d5b c4 8d CPY &8d ; opcode_middle_four_bits # . 8421 ... direction - 1 &0d5d d0 0c BNE &0d6b ; skip_byte &0d5f 20 0e 0a JSR &0a0e ; get_byte_of_bytecode # Next byte specifies new room &0d62 8d 40 06 STA &0640 ; parameters + &00 (player_room) &0d65 a9 01 LDA #&01 &0d67 8d 45 06 STA &0645 ; parameters + &05 (output_written) &0d6a 60 RTS ; skip_byte &0d6b 4c 0e 0a JMP &0a0e ; get_byte_of_bytecode # Discard room byte if not moving in correct direction ; is_comparison_variable_type_7 # 1 .... 111 gets room flag &0d6e 20 6b 0a JSR &0a6b ; get_room_flag_address_and_mask # Returns A = mask for flag specified in . 421. ... &0d71 a0 00 LDY #&00 &0d73 31 70 AND (&70),Y ; room_flags_address &0d75 a8 TAY # Y is non-zero if flag is set &0d76 a5 8d LDA &8d ; opcode_middle_four_bits &0d78 29 01 AND #&01 # . ...1 ... return true if flag set, false if unset &0d7a f0 04 BEQ &0d80 ; leave_with_false_if_set &0d7c 98 TYA # . ...0 ... return true if flag unset, false if set &0d7d f0 04 BEQ &0d83 ; leave_with_false &0d7f 60 RTS ; leave_with_false_if_set &0d80 98 TYA &0d81 f0 04 BEQ &0d87 ; leave ; leave_with_false &0d83 a9 00 LDA #&00 ; FALSE &0d85 85 85 STA &85 ; truth ; leave &0d87 60 RTS ; perform_comparison &0d88 a6 8d LDX &8d ; opcode_middle_four_bits &0d8a e0 04 CPX #&04 ; COMPARISON_VALUE_TYPE_FOUR &0d8c 10 07 BPL &0d95 ; not_comparison_type_0_1_2_or_3 &0d8e 48 PHA ; tmp_a &0d8f 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0d92 68 PLA ; tmp_a &0d93 a6 8d LDX &8d ; opcode_middle_four_bits ; not_comparison_type_0_1_2_or_3 &0d95 ca DEX &0d96 10 06 BPL &0d9e ; not_comparison_type_0 ; is_comparison_type_0 # 1 0000 ... true if (variable < (byte - 4)) &0d98 c5 6e CMP &6e ; comparison_value &0d9a 30 68 BMI &0e04 ; leave_with_true &0d9c 10 69 BPL &0e07 ; leave_with_false # Always branches ; not_comparison_type_0 &0d9e ca DEX &0d9f 10 06 BPL &0da7 ; not_comparison_type_1 ; is_comparison_type_1 # 1 0001 ... true if (variable == (byte - 4)) &0da1 c5 6e CMP &6e ; comparison_value &0da3 f0 5f BEQ &0e04 ; leave_with_true &0da5 d0 60 BNE &0e07 ; leave_with_false # Always branches ; not_comparison_type_1 &0da7 ca DEX &0da8 10 08 BPL &0db2 ; not_comparison_type_2 ; is_comparison_type_2 # 1 0010 ... true if (variable > (byte - 4)) &0daa c5 6e CMP &6e ; comparison_value &0dac f0 59 BEQ &0e07 ; leave_with_false &0dae 10 54 BPL &0e04 ; leave_with_true &0db0 30 55 BMI &0e07 ; leave_with_false # Always branches ; not_comparison_type_2 &0db2 ca DEX &0db3 10 06 BPL &0dbb ; not_comparison_type_3 ; is_comparison_type_3 # 1 0011 ... true if (variable != (byte - 4)) &0db5 c5 6e CMP &6e ; comparison_value &0db7 d0 4b BNE &0e04 ; leave_with_true &0db9 f0 4c BEQ &0e07 ; leave_with_false # Always branches ; not_comparison_type_3 &0dbb e0 04 CPX #&04 &0dbd 10 0e BPL &0dcd ; not_comparison_type_4_5_6_or_7 ; is_comparison_type_4_5_6_or_7 # 1 0100 ... true if (variable < p[byte - 4]) &0dbf 48 PHA ; tmp_a # 1 0101 ... true if (variable == p[byte - 4]) &0dc0 86 80 STX &80 ; tmp_x # 1 0110 ... true if (variable > p[byte - 4]) &0dc2 20 29 0a JSR &0a29 ; get_parameter_from_byte_of_bytecode_minus_four # 1 0111 ... true if (variable != p[byte - 4]) &0dc5 85 6e STA &6e ; comparison_value &0dc7 a6 80 LDX &80 ; tmp_x &0dc9 68 PLA ; tmp_a &0dca 4c 95 0d JMP &0d95 ; perform_comparison ; not_comparison_type_4_5_6_or_7 &0dcd ca DEX &0dce ca DEX &0dcf ca DEX &0dd0 ca DEX &0dd1 ca DEX &0dd2 10 05 BPL &0dd9 ; not_comparison_type_8 ; is_comparison_type_8 # 1 1000 ... true if (variable == 0) ; leave_with_true_if_zero &0dd4 a8 TAY # A = variable &0dd5 f0 2d BEQ &0e04 ; leave_with_true &0dd7 d0 2e BNE &0e07 ; leave_with_false # Always branches ; not_comparison_type_8 &0dd9 ca DEX &0dda 10 05 BPL &0de1 ; not_comparison_type_9 ; is_comparison_type_9 # 1 1001 ... true if (variable != 0) &0ddc a8 TAY # A = variable &0ddd d0 25 BNE &0e04 ; leave_with_true &0ddf f0 26 BEQ &0e07 ; leave_with_false # Always branches ; not_comparison_type_9 &0de1 a8 TAY &0de2 b1 74 LDA (&74),Y ; object_rooms_address &0de4 ca DEX &0de5 30 ed BMI &0dd4 ; leave_with_true_if_zero # 1 1010 ... true if object_room[variable] == 0 ; not_comparison_type_10 &0de7 ca DEX &0de8 10 06 BPL &0df0 ; not_comparison_type_11 ; is_comparison_type_11 # 1 1011 ... true if object_room[variable] == 1 &0dea c9 01 CMP #&01 &0dec f0 16 BEQ &0e04 ; leave_with_true &0dee d0 17 BNE &0e07 ; leave_with_false # Always branches ; not_comparison_type_11 &0df0 ca DEX &0df1 10 07 BPL &0dfa ; is_comparison_type_13 ; is_comparison_type_12 # 1 1100 ... true if object_room[variable] == player_room &0df3 cd 40 06 CMP &0640 ; parameters + &00 (player_room) &0df6 f0 0c BEQ &0e04 ; leave_with_true &0df8 d0 0d BNE &0e07 ; leave_with_false # Always branches ; is_comparison_type_13 # 1 1101 ... true if object_room[variable] == (byte - 4) &0dfa a8 TAY # Y = object_room[variable] &0dfb 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0dfe c4 6e CPY &6e ; comparison_value &0e00 f0 02 BEQ &0e04 ; leave_with_true &0e02 d0 03 BNE &0e07 ; leave_with_false # Always branches ; leave_with_true &0e04 a9 ff LDA #&ff ; TRUE # Leave with &ff to indicate true &0e06 60 RTS ; leave_with_false &0e07 a9 00 LDA #&00 ; FALSE # Leave with &00 to indicate false &0e09 60 RTS ; write_number &0e0a aa TAX # X is number &0e0b f8 SED &0e0c a9 00 LDA #&00 &0e0e 85 62 STA &62 ; digits + 2 &0e10 e0 00 CPX #&00 &0e12 f0 0a BEQ &0e1e ; skip_converting_number ; convert_number_loop &0e14 18 CLC &0e15 69 01 ADC #&01 &0e17 90 02 BCC &0e1b ; skip_overflow &0e19 e6 62 INC &62 ; digits + 2 ; skip_overflow &0e1b ca DEX &0e1c d0 f6 BNE &0e14 ; convert_number_loop ; skip_converting_number &0e1e d8 CLD &0e1f aa TAX # A is number as BCD &0e20 29 0f AND #&0f &0e22 85 60 STA &60 ; digits &0e24 8a TXA &0e25 4a LSR A &0e26 4a LSR A &0e27 4a LSR A &0e28 4a LSR A &0e29 85 61 STA &61 ; digits + 1 &0e2b a2 02 LDX #&02 &0e2d a0 01 LDY #&01 ; write_number_loop &0e2f b5 60 LDA &60,X ; digits &0e31 f0 0c BEQ &0e3f ; skip_leading_zero ; write_zero &0e33 18 CLC &0e34 69 30 ADC #&30 ; "0" &0e36 20 e3 ff JSR &ffe3 ; OSASCI &0e39 e6 86 INC &86 ; text_x &0e3b a0 ff LDY #&ff &0e3d d0 04 BNE &0e43 ; skip_trailing_zero # Always branches ; skip_leading_zero &0e3f c0 00 CPY #&00 &0e41 30 f0 BMI &0e33 ; write_zero ; skip_trailing_zero &0e43 88 DEY &0e44 ca DEX &0e45 10 e8 BPL &0e2f ; write_number_loop &0e47 a9 00 LDA #&00 &0e49 85 88 STA &88 ; end_of_word # Set to zero to indicate not end of word &0e4b 60 RTS ; write_packed_string_or_input_word # 0 .... 101 writes packed string or input word &0e4c a5 8e LDA &8e ; buffer_needs_writing # Zero if buffer is empty &0e4e f0 07 BEQ &0e57 ; skip_existing_buffer &0e50 20 df 0f JSR &0fdf ; write_buffer_and_start_new_line &0e53 a9 00 LDA #&00 &0e55 85 8e STA &8e ; buffer_needs_writing # Set to zero to indicate buffer is empty ; skip_existing_buffer &0e57 a5 8d LDA &8d ; opcode_middle_four_bits &0e59 c9 02 CMP #&02 # 0 0001 101 writes packed string from following bytes &0e5b 30 23 BMI &0e80 ; write_packed_string_loop ; write_input_word # 0 0010 101 writes verb &0e5d 38 SEC # 0 0011 101 writes first_noun &0e5e e9 01 SBC #&01 # 0 0100 101 writes second_noun &0e60 0a ASL A # 0 0101 101 writes preposition &0e61 0a ASL A # 0 1010 101 writes pronoun &0e62 0a ASL A &0e63 0a ASL A &0e64 85 8b STA &8b ; offset &0e66 20 7a 0e JSR &0e7a ; add_space_to_buffer ; write_input_word_loop &0e69 a4 8b LDY &8b ; offset &0e6b b1 7c LDA (&7c),Y ; buffer_address # Store input word at buffer + word * 16 &0e6d f0 0b BEQ &0e7a ; add_space_to_buffer &0e6f 38 SEC &0e70 e9 50 SBC #&50 &0e72 20 42 0f JSR &0f42 ; add_character_to_buffer &0e75 e6 8b INC &8b ; offset &0e77 4c 69 0e JMP &0e69 ; write_input_word_loop ; add_space_to_buffer &0e7a a9 0e LDA #&0e ; CHARACTER_SPACE &0e7c 20 42 0f JSR &0f42 ; add_character_to_buffer &0e7f 60 RTS ; write_packed_string_loop &0e80 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0e83 c9 04 CMP #&04 ; OP_STRING_END_PERIOD # &04 ends string with "." &0e85 d0 06 BNE &0e8d ; not_string_end_period &0e87 a9 06 LDA #&06 ; CHARACTER_PERIOD &0e89 20 42 0f JSR &0f42 ; add_character_to_buffer ; leave &0e8c 60 RTS ; not_string_end_period &0e8d c9 05 CMP #&05 ; OP_STRING_END # &05 ends string without "." &0e8f f0 fb BEQ &0e8c ; leave &0e91 c9 32 CMP #&32 # &06 - &31 adds character (for words not in dictionary) &0e93 b0 06 BCS &0e9b ; use_dictionary &0e95 20 42 0f JSR &0f42 ; add_character_to_buffer &0e98 4c 80 0e JMP &0e80 ; write_packed_string_loop ; use_dictionary &0e9b 20 7a 0e JSR &0e7a ; add_space_to_buffer &0e9e 20 1d 10 JSR &101d ; write_buffer &0ea1 a5 8f LDA &8f ; bytecode_byte &0ea3 c9 f7 CMP #&f7 &0ea5 b0 0a BCS &0eb1 ; use_secondary_dictionary ; use_primary_dictionary # &32 - &f6 uses word from primary dictionary &0ea7 38 SEC &0ea8 e9 32 SBC #&32 &0eaa 85 84 STA &84 ; dictionary_lookup &0eac a0 a6 LDY #&a6 ; &08a6 = primary_dictionary &0eae 4c be 0e JMP &0ebe ; get_word_from_dictionary ; use_secondary_dictionary # &f7 - &ff uses word from secondary dictionaries &0eb1 38 SEC &0eb2 e9 aa SBC #&aa # &f7 -> &089a, &f8 -> &089c, &f9 -> &089e &0eb4 0a ASL A # &fa -> &08a0, &fb -> &08a2, &fc -> &08a4 &0eb5 a8 TAY # &fd -> &08a6, &fe -> &08a8, &ff -> &08aa &0eb6 20 0e 0a JSR &0a0e ; get_byte_of_bytecode &0eb9 38 SEC &0eba e9 05 SBC #&05 &0ebc 85 84 STA &84 ; dictionary_lookup ; get_word_from_dictionary &0ebe 84 6e STY &6e ; dictionary_number &0ec0 a2 08 LDX #&08 ; &78 = dictionary_address &0ec2 20 98 05 JSR &0598 ; set_address_X_to_Y &0ec5 a2 00 LDX #&00 &0ec7 a0 05 LDY #&05 &0ec9 d0 0c BNE &0ed7 ; consider_words_of_length # Always branches ; find_words_of_length_loop # Find which section of the dictionary the word is in &0ecb a5 78 LDA &78 ; dictionary_address_low &0ecd 18 CLC &0ece 69 03 ADC #&03 &0ed0 85 78 STA &78 ; dictionary_address_low &0ed2 90 02 BCC &0ed6 ; skip_page &0ed4 e6 79 INC &79 ; dictionary_address_high ; skip_page &0ed6 e8 INX ; consider_words_of_length &0ed7 b1 78 LDA (&78),Y ; dictionary_address &0ed9 c5 84 CMP &84 ; dictionary_lookup &0edb 90 ee BCC &0ecb ; find_words_of_length_loop &0edd f0 ec BEQ &0ecb ; find_words_of_length_loop &0edf e8 INX &0ee0 86 80 STX &80 ; lengths_to_skip &0ee2 a5 84 LDA &84 ; dictionary_lookup &0ee4 38 SEC &0ee5 a0 02 LDY #&02 &0ee7 f1 78 SBC (&78),Y ; dictionary_address &0ee9 85 84 STA &84 ; dictionary_lookup # Use offset into section (words of same length) &0eeb 88 DEY &0eec b1 78 LDA (&78),Y ; dictionary_address &0eee 85 71 STA &71 ; packed_word_address_high &0ef0 88 DEY &0ef1 b1 78 LDA (&78),Y ; dictionary_address &0ef3 85 70 STA &70 ; packed_word_address_low &0ef5 a4 84 LDY &84 ; dictionary_lookup &0ef7 f0 10 BEQ &0f09 ; unpack_word_loop &0ef9 a5 70 LDA &70 ; packed_word_address_low ; find_word_loop # Find start of word in section &0efb 18 CLC &0efc 65 80 ADC &80 ; lengths_to_skip &0efe 90 02 BCC &0f02 ; skip_page &0f00 e6 71 INC &71 ; packed_word_address_high ; skip_page &0f02 88 DEY &0f03 d0 f6 BNE &0efb ; find_word_loop &0f05 85 70 STA &70 ; packed_word_address_low &0f07 84 60 STY &60 ; unused # Unused variable ; unpack_word_loop &0f09 b1 70 LDA (&70),Y ; packed_word_address &0f0b 85 69 STA &69 ; packed_word_byte &0f0d 84 6a STY &6a ; packed_word_offset &0f0f 29 1f AND #&1f ; ...18421 # Low five bits set first letter of syllable &0f11 18 CLC &0f12 69 10 ADC #&10 &0f14 c9 2f CMP #&2f &0f16 d0 02 BNE &0f1a ; not_apostrophe &0f18 a9 0f LDA #&0f ; CHARACTER_APOSTROPHE ; not_apostrophe &0f1a 20 42 0f JSR &0f42 ; add_character_to_buffer # Write first letter of syllable &0f1d a5 6e LDA &6e ; dictionary_number &0f1f c9 a8 CMP #&a8 ; &08a8 = verb_dictionary # Verbs and non-verbs only have one letter per byte &0f21 10 12 BPL &0f35 ; skip_second_letter &0f23 a5 69 LDA &69 ; packed_word_byte &0f25 29 e0 AND #&e0 ; 842..... # Top three bits set optional second letter of syllable &0f27 f0 0c BEQ &0f35 ; skip_second_letter &0f29 4a LSR A &0f2a 4a LSR A &0f2b 4a LSR A &0f2c 4a LSR A &0f2d 4a LSR A &0f2e aa TAX &0f2f bd c0 08 LDA &08c0,X ; syllable_suffixes - 1 &0f32 20 42 0f JSR &0f42 ; add_character_to_buffer # Write second letter of syllable ; skip_second_letter &0f35 a4 6a LDY &6a ; packed_word_offset &0f37 c8 INY &0f38 c4 80 CPY &80 ; packed_word_length &0f3a d0 cd BNE &0f09 ; unpack_word_loop &0f3c 20 7a 0e JSR &0e7a ; add_space_to_buffer # Write space after dictionary word &0f3f 4c 80 0e JMP &0e80 ; write_packed_string_loop ; add_character_to_buffer &0f42 85 6f STA &6f ; character_to_add &0f44 a4 87 LDY &87 ; buffer_offset &0f46 a6 8a LDX &8a ; force_uppercasing # Non-zero to uppercase entire words &0f48 f0 04 BEQ &0f4e ; skip_uppercasing &0f4a a2 30 LDX #&30 ; CASE_UPPERCASE &0f4c 86 89 STX &89 ; character_case ; skip_uppercasing &0f4e c9 2b CMP #&2b ; CHARACTER_FIRST_SPECIAL &0f50 10 5d BPL &0faf ; is_special_character &0f52 a6 88 LDX &88 ; end_of_word # Non-zero at end of word &0f54 f0 0f BEQ &0f65 ; add_character_to_existing_word &0f56 c9 0e CMP #&0e ; CHARACTER_SPACE &0f58 f0 52 BEQ &0fac ; leave_after_setting_buffer_offset &0f5a c9 0d CMP #&0d ; CHARACTER_START_QUOTE &0f5c 10 04 BPL &0f62 ; add_character_to_new_word # Branch if quote, apostrophe, hyphen or letter &0f5e 88 DEY &0f5f 4c 65 0f JMP &0f65 ; add_character_to_existing_word ; add_character_to_new_word &0f62 20 1d 10 JSR &101d ; write_buffer ; add_character_to_existing_word &0f65 a5 6f LDA &6f ; character_to_add &0f67 c9 11 CMP #&11 ; CHARACTER_HYPHEN + 1 &0f69 30 10 BMI &0f7b ; is_punctuation ; is_letter &0f6b 18 CLC &0f6c 65 89 ADC &89 ; character_case &0f6e 91 7c STA (&7c),Y ; buffer_address &0f70 a2 50 LDX #&50 ; CASE_LOWERCASE &0f72 86 89 STX &89 ; character_case &0f74 a2 00 LDX #&00 &0f76 86 88 STX &88 ; end_of_word # Set to zero to indicate not end of word &0f78 4c ab 0f JMP &0fab ; leave_after_incrementing_buffer_offset ; is_punctuation &0f7b aa TAX &0f7c bd 5a 08 LDA &085a,X ; punctuation - 6 &0f7f 91 7c STA (&7c),Y ; buffer_address &0f81 a2 00 LDX #&00 &0f83 86 88 STX &88 ; end_of_word # Set to zero to indicate not end of word &0f85 a5 6f LDA &6f ; character_to_add &0f87 c9 0d CMP #&0d ; CHARACTER_START_QUOTE &0f89 30 09 BMI &0f94 ; not_end_of_word &0f8b c9 0f CMP #&0f ; CHARACTER_APOSTROPHE &0f8d 10 05 BPL &0f94 ; not_end_of_word ; is_end_quote_or_space &0f8f 85 88 STA &88 ; end_of_word # Set to non-zero to indicate end of word &0f91 4c ab 0f JMP &0fab ; leave_after_incrementing_buffer_offset ; not_end_of_word &0f94 a2 30 LDX #&30 ; CASE_UPPERCASE # Start next word with uppercase letter &0f96 86 89 STX &89 ; character_case &0f98 c9 09 CMP #&09 ; CHARACTER_COLON # if period, question mark or exclamation mark &0f9a 30 04 BMI &0fa0 ; skip_lowercasing &0f9c a2 50 LDX #&50 ; CASE_LOWERCASE # Otherwise, start next word with lowercase letter &0f9e 86 89 STX &89 ; character_case ; skip_lowercasing &0fa0 c9 0d CMP #&0d ; CHARACTER_START_QUOTE # No space after quote, space, apostrophe or hyphen &0fa2 10 07 BPL &0fab ; leave_after_incrementing_buffer_offset &0fa4 a9 0e LDA #&0e ; " " # Other punctuation is followed by a space &0fa6 85 6f STA &6f ; character_to_add &0fa8 c8 INY &0fa9 d0 d0 BNE &0f7b ; is_punctuation # Always branches ; leave_after_incrementing_buffer_offset &0fab c8 INY ; leave_after_setting_buffer_offset &0fac 84 87 STY &87 ; buffer_offset &0fae 60 RTS ; is_special_character &0faf 38 SEC &0fb0 e9 2b SBC #&2b ; CHARACTER_FIRST_SPECIAL &0fb2 aa TAX &0fb3 d0 1d BNE &0fd2 ; not_character_2b ; is_character_2b # &2b randomly prints a string from (byte - 4) choices &0fb5 98 TYA &0fb6 48 PHA ; tmp_y &0fb7 20 44 0a JSR &0a44 ; rnd # Gets next byte of bytecode minus four &0fba f0 0b BEQ &0fc7 ; use_following_string &0fbc 85 81 STA &81 ; strings_to_skip ; skip_strings_loop &0fbe a9 05 LDA #&05 ; OP_STRING_END # Choices are separated by &05 bytes &0fc0 20 57 0a JSR &0a57 ; search_for_next_byte_A_of_bytecode &0fc3 c6 81 DEC &81 ; strings_to_skip &0fc5 d0 f7 BNE &0fbe ; skip_strings_loop ; use_following_string &0fc7 20 80 0e JSR &0e80 ; write_packed_string_loop &0fca a9 04 LDA #&04 ; OP_STRING_END_PERIOD # Random block is terminated by &04 byte &0fcc 20 57 0a JSR &0a57 ; search_for_next_byte_A_of_bytecode &0fcf 68 PLA ; tmp_y &0fd0 a8 TAY &0fd1 60 RTS ; not_character_2b &0fd2 ca DEX &0fd3 d0 07 BNE &0fdc ; not_character_2c ; is_character_2c # &2c toggles forcing uppercase &0fd5 a5 8a LDA &8a ; force_uppercasing &0fd7 49 ff EOR #&ff &0fd9 85 8a STA &8a ; force_uppercasing &0fdb 60 RTS ; not_character_2c &0fdc ca DEX &0fdd d0 13 BNE &0ff2 ; not_character_2d ; is_character_2d # &2d writes existing buffer and starts a new line ; write_buffer_and_start_new_line &0fdf 20 1d 10 JSR &101d ; write_buffer &0fe2 a2 b0 LDX #&b0 ; &08b0 = indent_string &0fe4 20 1e 0b JSR &0b1e ; write_string &0fe7 a2 04 LDX #&04 &0fe9 86 86 STX &86 ; text_x &0feb 86 88 STX &88 ; end_of_word ; is_character_2e # &2e uppercases next character &0fed a9 30 LDA #&30 ; CASE_UPPERCASE ; set_character_case &0fef 85 89 STA &89 ; character_case &0ff1 60 RTS ; not_character_2d &0ff2 ca DEX &0ff3 f0 f8 BEQ &0fed ; is_character_2e ; not_character_2e &0ff5 ca DEX &0ff6 d0 0e BNE &1006 ; not_character_2f ; is_character_2f # &2f writes character (byte - 4) &0ff8 20 1d 10 JSR &101d ; write_buffer &0ffb 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &0ffe 20 ee ff JSR &ffee ; OSWRCH &1001 a9 00 LDA #&00 &1003 85 88 STA &88 ; end_of_word # Set to zero to indicate not end of word &1005 60 RTS ; not_character_2f &1006 ca DEX &1007 d0 0a BNE &1013 ; is_character_31 ; is_character_30 # &30 writes (byte - 4) as a number &1009 20 1d 10 JSR &101d ; write_buffer &100c 20 1b 0a JSR &0a1b ; get_byte_of_bytecode_minus_four &100f 20 0a 0e JSR &0e0a ; write_number &1012 60 RTS ; is_character_31 # &31 writes p[byte - 4] as a number &1013 20 1d 10 JSR &101d ; write_buffer &1016 20 29 0a JSR &0a29 ; get_parameter_from_byte_of_bytecode_minus_four &1019 20 0a 0e JSR &0e0a ; write_number &101c 60 RTS ; write_buffer &101d a4 87 LDY &87 ; buffer_offset &101f 98 TYA &1020 18 CLC &1021 65 86 ADC &86 ; text_x &1023 c9 28 CMP #&28 # 40 characters per line &1025 30 07 BMI &102e ; not_new_line &1027 20 e7 ff JSR &ffe7 ; OSNEWL &102a a9 00 LDA #&00 &102c 85 86 STA &86 ; text_x ; not_new_line &102e 98 TYA &102f f0 10 BEQ &1041 ; skip_writing_buffer &1031 85 80 STA &80 ; buffer_length &1033 a0 00 LDY #&00 ; write_buffer_loop &1035 e6 86 INC &86 ; text_x &1037 b1 7c LDA (&7c),Y ; buffer_address &1039 20 e3 ff JSR &ffe3 ; OSASCI &103c c8 INY &103d c4 80 CPY &80 ; buffer_length &103f 30 f4 BMI &1035 ; write_buffer_loop ; skip_writing_buffer &1041 a0 00 LDY #&00 &1043 84 87 STY &87 ; buffer_offset &1045 60 RTS ; find_word_in_dictionary &1046 86 6a STX &6a ; word_is_verb &1048 a2 08 LDX #&08 ; &78 = dictionary_address &104a 20 98 05 JSR &0598 ; set_address_X_to_Y &104d a6 6c LDX &6c ; input_word_length # Find which section of the dictionary the word is in &104f ca DEX &1050 8a TXA &1051 85 80 STA &80 ; word_length_times_three &1053 0a ASL A &1054 18 CLC &1055 65 80 ADC &80 ; word_length_times_three &1057 a8 TAY &1058 b1 78 LDA (&78),Y ; dictionary_address &105a 85 70 STA &70 ; word_address_low &105c c8 INY &105d b1 78 LDA (&78),Y ; dictionary_address &105f 85 71 STA &71 ; word_address_high &1061 c8 INY &1062 b1 78 LDA (&78),Y ; dictionary_address &1064 85 6b STA &6b ; word_number &1066 c8 INY &1067 b1 78 LDA (&78),Y ; dictionary_address &1069 85 72 STA &72 ; end_address_low &106b c8 INY &106c b1 78 LDA (&78),Y ; dictionary_address &106e 85 73 STA &73 ; end_address_high ; check_words_loop &1070 a0 00 LDY #&00 ; check_for_match_loop &1072 b1 70 LDA (&70),Y ; word_address &1074 29 1f AND #&1f &1076 85 80 STA &80 ; character &1078 b1 7c LDA (&7c),Y ; buffer_address &107a 29 1f AND #&1f &107c c5 80 CMP &80 ; character &107e d0 08 BNE &1088 ; consider_next_word &1080 c8 INY &1081 c4 6c CPY &6c ; input_word_length &1083 30 ed BMI &1072 ; check_for_match_loop &1085 4c a8 10 JMP &10a8 ; found_word ; consider_next_word &1088 e6 6b INC &6b ; word_number &108a a5 70 LDA &70 ; word_address_low &108c 18 CLC &108d 65 6c ADC &6c ; input_word_length &108f 90 02 BCC &1093 ; skip_page &1091 e6 71 INC &71 ; word_address_high ; skip_page &1093 85 70 STA &70 ; word_address_low &1095 a5 73 LDA &73 ; end_address_high &1097 c5 71 CMP &71 ; word_address_high &1099 f0 04 BEQ &109f ; check_low &109b 90 0a BCC &10a7 ; leave &109d b0 d1 BCS &1070 ; check_words_loop # Always branches ; check_low &109f a5 72 LDA &72 ; end_address_low &10a1 c5 70 CMP &70 ; word_address_low &10a3 f0 02 BEQ &10a7 ; leave &10a5 b0 c9 BCS &1070 ; check_words_loop ; leave &10a7 60 RTS ; found_word &10a8 a0 00 LDY #&00 &10aa b1 70 LDA (&70),Y ; word_address_low # Top three bits of first byte of word set word type &10ac 4a LSR A &10ad 4a LSR A &10ae 4a LSR A &10af 4a LSR A &10b0 4a LSR A &10b1 85 68 STA &68 ; word_type &10b3 a4 6b LDY &6b ; word_number &10b5 c8 INY &10b6 a6 6a LDX &6a ; word_is_verb # Zero if verb, non-zero if non-verb &10b8 d0 08 BNE &10c2 ; not_verb ; is_verb &10ba b9 09 7b LDA &7b09,Y ; verb_translation_table &10bd a2 00 LDX #&00 ; WORD_VERB &10bf 4c 70 05 JMP &0570 ; set_word_if_not_already_set ; not_verb &10c2 b9 7b 7b LDA &7b7b,Y ; noun_translation_table &10c5 a6 68 LDX &68 ; word_type &10c7 e0 07 CPX #&07 ; WORD_TYPE_PREPOSITION # Type 7 words are prepositions &10c9 d0 0a BNE &10d5 ; not_preposition ; is_preposition &10cb a2 03 LDX #&03 ; WORD_PREPOSITION &10cd 20 70 05 JSR &0570 ; set_word_if_not_already_set &10d0 a9 ff LDA #&ff &10d2 85 69 STA &69 ; have_preposition # Set to non-zero to indicate following preposition &10d4 60 RTS ; not_preposition &10d5 a6 69 LDX &69 ; have_preposition # Zero if not following preposition &10d7 f0 08 BEQ &10e1 ; is_first_noun ; is_second_noun &10d9 a2 02 LDX #&02 ; WORD_SECOND_NOUN &10db 20 70 05 JSR &0570 ; set_word_if_not_already_set &10de 4c f9 10 JMP &10f9 ; clear_have_preposition ; is_first_noun &10e1 a2 01 LDX #&01 ; WORD_FIRST_NOUN &10e3 20 70 05 JSR &0570 ; set_word_if_not_already_set &10e6 a6 68 LDX &68 ; word_type &10e8 e0 06 CPX #&06 ; WORD_TYPE_PRONOUN # Type 6 words are pronouns ("it", "him", "them") &10ea f0 0d BEQ &10f9 ; clear_have_preposition ; not_pronoun &10ec a2 00 LDX #&00 &10ee 8e 55 06 STX &0655 ; parameters + &15 (previous_first_noun) # Set to zero to forget any previous noun for pronoun &10f1 a2 09 LDX #&09 ; &0655 = parameters + &15 (previous_first_noun) &10f3 20 70 05 JSR &0570 ; set_word_if_not_already_set &10f6 ce 43 06 DEC &0643 ; parameters + &03 (recognised_words) # Undo increment at &0579 ; clear_have_preposition &10f9 a9 00 LDA #&00 &10fb 85 69 STA &69 ; have_preposition # Set to zero to indicate not following preposition &10fd 60 RTS ; unused &10fe 00 00 ; bytecode_for_room_descriptions ; bytecode_for_room_05_description &1100 c7 ; if(!room.flags[4]) &1101 01 ; { &1102 0d 2f 10 2d 2d 2d 2d 2d 05 ; "[cls]\n\n\n\n\n" &110b d7 ; if(!room.flags[5]) &110c 01 ; { &110d 0d 41 fb 05 32 66 05 ; "You wake to find" &1114 03 ; } &1115 0d 41 42 33 34 fc a7 0b fc 05 34 fc 36 ff 2b 06 ; "you are in a field, near a tall tree. One sun is rising, the &1125 43 fa 05 44 fc a8 0b 45 fc 37 fa 38 06 32 45 67 ; other setting. To the north and west of you, very distantly, &1135 46 47 48 41 0b 68 fa a4 0b 44 45 fc 38 48 fb 7b ; is the sound of fighting, but morning mist obscures the view &1145 0b 49 fa 39 fc 06 1f 12 23 13 25 22 15 23 45 fb ; south and east." &1155 18 69 46 4a 04 &115a d7 ; if(!room.flags[5]) &115b 01 ; { &115c 0d 6a 44 35 fc 07 48 45 2e 6b 06 33 4b 6c 20 1f ; "there is no sign of the Doctor. In your back pocket you &116c 13 1b 15 24 41 66 34 fc 08 4c ff 41 04 ; find a two way radio." &1179 5f ; room.flags[5] = true &117a 03 ; } &117b 04 ; return &117c 03 ; } &117d 0d 41 42 6c fc 05 45 fc 36 ff 2b 6d 41 fa 3a 04 ; "you are back near the tall tree where you started." &118d 00 ; end ; bytecode_for_room_06_description &118e 00 ; end ; bytecode_for_room_07_description &118f 00 ; end ; bytecode_for_room_08_description &1190 0d 6e 4b fa 3b 20 1f 19 1e 24 33 45 ff 2b 41 4d ; "From your vantage point in the tree you can see a metal road to &11a0 4e 34 6f 70 32 45 4a 0b 46 34 fa 13 f9 12 fa a5 ; the east, and a barren wilderness westwards. Battle scarred &11b0 06 71 23 13 11 22 22 15 14 0e 16 19 15 1c 14 23 ; fields lie to the north, with a range of high snow covered &11c0 fc 09 32 45 67 0b 72 34 22 11 1e 17 15 48 73 ff ; mountains beyond, while the country to the south is shrouded in &11d0 29 fc a9 c8 a9 0b 74 45 fa 3c 32 45 69 44 23 18 ; mist." &11e0 22 1f 25 14 15 14 33 fc 06 04 &11ea 00 ; end ; bytecode_for_room_09_description &11eb 0d 41 fc aa 32 36 33 34 20 1c 1f 25 17 18 15 14 ; "You appear to be in a ploughed field, with deep furrows &11fb fc a7 0b 72 75 16 25 22 22 1f 27 23 fb 7c 06 37 ; underfoot. It is rather misty round here. Nearby there is a &120b 44 aa 1d 19 23 24 29 76 4f 06 ab 6a 44 34 ff 78 ; haystack." &121b 04 &121c 00 ; end ; bytecode_for_room_0a_description &121d 0d 41 42 e7 50 fa a6 fc 0a 06 34 fc 39 fa 14 fb ; "You are surrounded by swirling fog. A blue police telephone box &122d 7d 12 1f 28 fc ab ab 04 ; stands nearby." &1235 8c 3a 06 ; if(p["tardis_state"] == &02) &1238 01 ; { &1239 0d 45 51 44 fc 3a 04 ; "the door is ajar." &1240 03 ; } &1241 00 ; end ; bytecode_for_room_0b_description &1242 0e ; skip_to_next_bytecode() &1243 00 ; end ; bytecode_for_room_0c_description &1244 0d 41 42 33 75 fc 06 06 41 4d 12 11 22 15 1c 29 ; "You are in deep mist. You can barely see your hand in front of &1254 4e 4b 77 33 fc 3b 48 41 06 45 fb 19 fc ac fc ad ; you. The damp ground slopes down to the south." &1264 52 32 45 69 04 &1269 00 ; end ; bytecode_for_room_0d_description &126a 0d fc 0a 23 27 19 22 1c 23 76 41 06 45 fc ac fb ; "Fog swirls round you. The ground underfoot is now very marshy &127a 7c 44 fc 0b 68 1d 11 22 23 18 29 46 41 fc 3c 32 ; and you start to sink in." &128a fc 3d 33 04 &128e 00 ; end ; bytecode_for_room_0e_description &128f c7 ; if(!room.flags[4]) &1290 01 ; { &1291 0d 78 45 fc 0c 1c 1f 26 15 1c 29 0e 1c 11 1e 14 ; "Over the once lovely land lies a pall of smoke. Wounded &12a1 fc 3e 34 fb 1a 48 fc 3f 06 fa 3d 79 ff 7a fb 7e ; space troopers stumble past you, unseeing." &12b1 fb 06 41 0b fb 7f 04 &12b8 04 ; return &12b9 03 ; } &12ba 0d 41 42 c9 38 45 f2 06 fc 3f fc ae 38 45 fc 0d ; "you are somewhere on the battlefield. Smoke drifts on the air." &12ca 04 &12cb 00 ; end ; bytecode_for_room_0f_description &12cc a7 ; if(!room.flags[2]) &12cd 01 ; { &12ce 0d 41 42 e7 50 fc 40 fc 0e 0b 53 41 54 fa a7 55 ; "You are surrounded by armed men, for you have stumbled into &12de 2e 7a 2e f3 71 f9 44 06 f3 fc af ac 42 39 1c 15 ; King Varangar's battle headquarters. Varangar's blood guard &12ee 11 23 24 fc 0f 56 fc 0f 19 1e 13 18 15 23 fc 36 ; are at least six feet six inches tall even without their &12fe fc 41 ad fc 42 79 ff 60 0b 46 54 fc 43 fa 15 16 ; space armour, and have long orange fur. They inspect you &130e 25 22 06 7b fe 6a 41 f9 61 78 fc 42 24 25 23 1b ; suspiciously over their tusks." &131e 23 04 &1320 04 ; return &1321 03 ; } &1322 0d 41 42 fc 44 33 45 71 f9 44 48 2e 7a 2e ca 0b ; "you are again in the battle headquarters of King Varangar, which &1332 ae 42 fb 80 0b fc 45 fb 81 57 fc 10 32 45 fb 1b ; are deserted, since everyone has gone to the ball." &1342 04 &1343 00 ; end ; bytecode_for_room_10_description &1344 c7 ; if(!room.flags[4]) &1345 01 ; { &1346 0d 78 45 fc b0 46 fb 82 fa a8 fc 0e 46 12 15 11 ; "Over the bleak and bloody landscape men and beasts are &1356 23 24 23 42 fb 83 0b 7c 6e 45 fa a9 48 2e 7a 2e ; fleeing, away from the onslaught of King Varangar's dreadful &1366 f3 fa aa fa ab 04 ; battalions." &136c 03 ; } &136d 0d 34 fb 1a 48 fc 3f fc 3e 78 45 23 13 15 1e 15 ; "a pall of smoke lies over the scene, all but obscuring the &137d 0b 7d 49 1f 12 23 13 25 22 19 1e 17 45 c8 32 45 ; mountains to the north." &138d 67 04 &138f 00 ; end ; bytecode_for_room_11_description &1390 c4 27 ; if(p["distance_into_mountains"] == 0) &1392 01 ; { &1393 0d 41 42 33 45 fa ac 48 45 fc b1 c8 06 6a 44 35 ; "You are in the foothills of the northern mountains. There is &13a3 fc 07 48 fc 11 fc 46 04 ; no sign of any path." &13ab 1c 27 ; p["distance_into_mountains"] = 1 &13ad 03 ; } ; else &13ae 01 ; { &13af 0d 41 42 c9 73 33 45 fc b0 fc b1 c8 0b ad fc 47 ; "you are somewhere high in the bleak northern mountains, &13bf 3a fa ad 06 72 fc 48 fc 49 0b 41 fc 4a 13 1f 1c ; without food or protection. With each step, you become &13cf 14 15 22 46 fc 12 15 28 18 11 25 23 24 15 14 04 ; colder and more exhausted." &13df 03 ; } &13e0 00 ; end ; bytecode_for_room_12_description &13e1 0d 41 42 39 45 fc b1 7e 48 34 fc 13 46 fb 82 f2 ; "You are at the northern edge of a vast and bloody battlefield." &13f1 04 &13f2 c7 ; if(!room.flags[4]) &13f3 01 ; { &13f4 0d 45 fc 38 48 fb 7b 44 fb 84 46 fc b2 0b 13 1f ; "the sound of fighting is sporadic and distant, coming, it &1404 1d 19 1e 17 0b 37 af 0b 6e 45 fe 74 04 ; seems, from the southwest." &1411 03 ; } &1412 0d 32 45 4a 44 34 75 fc 4b 06 45 fa ac 48 45 c8 ; "to the east is a deep ravine. The foothills of the mountains lie &1422 fc 09 fb 85 67 04 ; directly north." &1428 00 ; end ; bytecode_for_room_13_description &1429 0d 41 42 38 45 7e 48 45 f2 0b ae e8 58 fc 14 58 ; "You are on the edge of the battlefield, which stretches as far &1439 45 fa 06 4d 4e 06 59 fc b3 32 45 47 6a 44 34 1e ; as the eye can see. Some distance to the west there is a neat &1449 15 11 24 fc b4 48 14 1f 1d 15 14 fc 4c 04 ; group of domed tents." &1457 00 ; end ; bytecode_for_room_14_description &1458 0d 45 fc ac b0 41 fc 15 fa ae 45 23 19 24 15 48 ; "The ground around you was evidently the site of a laser attack &1468 34 1c 11 23 15 22 fe 5e 33 45 fa 16 71 06 22 25 ; in the recent battle. Rubble and earth are black and scorching. &1478 12 12 1c 15 46 fc 4d 42 fc b5 46 f9 13 06 fc 08 ; Two gold roubles lie at your feet." &1488 7f ff 6a fc 09 39 4b 56 04 &1491 00 ; end ; bytecode_for_room_15_description &1492 0d 45 f2 e8 58 fc 14 58 45 fa 06 4d 4e 32 45 fe ; "The battlefield stretches as far as the eye can see to the &14a2 73 06 67 fc 09 45 c8 0b 46 47 48 4f 6a 44 cb 49 ; southeast. North lie the mountains, and west of here there is &14b2 e9 80 06 2d 34 ff 6e fc 3e 39 4b 56 0b 34 17 11 ; nothing but radioactive desert. \nA trooper lies at your feet, a &14c2 20 19 1e 17 fb 07 33 5a 79 ff 60 05 ; gaping hole in his space armour" &14ce eb 11 0b ; if(object_room["lance"] == &07) &14d1 01 ; { &14d2 0d 0b 5a 81 ff 3b fc b6 33 5a 82 fc 4e 05 ; ", his sonic lance still in his death grip" &14e0 03 ; } &14e1 0d 06 fc 4f ff 15 44 34 20 19 1c 15 48 7f ff 6a ; ". Beside him is a pile of gold roubles, the fruit of some long &14f1 0b 45 16 22 25 19 24 48 59 fc 43 fa af fc b7 04 ; abandoned looting." &1501 00 ; end ; bytecode_for_room_16_description &1502 0d 45 fa aa 23 13 15 1e 15 23 48 fa 3e fb 86 41 ; "The dreadful scenes of carnage surround you on all sides. To the &1512 38 7d fc 50 06 32 45 47 34 fb 87 12 1c 11 23 24 ; west a nuclear blast has created a new desert. Some distance to &1522 57 fa 3f 34 1e 15 27 80 06 59 fc b3 32 45 4a 48 ; the east of you there is a group of silastic tents." &1532 41 6a 44 34 fc b4 48 fb 88 fc 4c 04 &153e 00 ; end ; bytecode_for_room_17_description &153f 0d 45 f2 e8 7c 38 7d fc 50 46 fb 87 cc fc aa 32 ; "The battlefield stretches away on all sides and nuclear weapons &154f 54 fc 16 fc 51 32 45 47 06 24 18 19 1e fa 17 24 ; appear to have been used to the west. Thin vapour trails mark &155f 22 11 19 1c 23 0e 1d 11 22 1b 45 fb 89 48 fb 83 ; the departure of fleeing vessels. \nThere are many gold coins &156f 26 15 23 23 15 1c 23 06 0e 2d 6a 42 fc 52 7f ff ; scattered around here. A shallow crater marks where a mine has &157f 42 fa b0 b0 4f 06 34 23 18 11 1c 1c 1f 27 fa 18 ; exploded nearby." &158f 1d 11 22 1b 23 6d 34 fb 08 57 15 28 20 1c 1f 14 &159f 15 14 ab 04 &15a3 00 ; end ; bytecode_for_room_18_description &15a4 0d 41 42 39 45 7e 48 34 fc 13 46 fb 82 f2 06 f4 ; "You are at the edge of a vast and bloody battlefield. Everywhere &15b4 6a 42 fc 53 46 14 29 19 1e 17 06 32 45 47 6a 44 ; there are dead and dying. To the west there is nothing but &15c4 cb 49 e9 80 0b 49 32 45 69 41 4d 4e 34 fa b1 23 ; radioactive desert, but to the south you can see a strangely &15d4 18 11 20 15 14 0e 18 19 1c 1c fc a8 5b 48 f9 14 ; shaped hill rising out of marshland." &15e4 04 &15e5 00 ; end ; bytecode_for_room_19_description &15e6 0d 41 42 68 fc 05 32 45 fc 17 48 45 83 06 45 24 ; "You are very near to the top of the ramp. The trembling &15f6 22 15 1d 12 1c 19 1e 17 fb 8a 57 fc 4a 34 fc b8 ; sensation has become a heavy rumbling and is getting louder all &1606 22 25 1d 12 1c 19 1e 17 46 44 fc b9 1c 1f 25 14 ; the time. \nAt your feet are twenty two gold coins." &1616 15 22 7d 45 5c 06 2d 39 4b 56 42 fc ba fc 08 7f &1626 ff 42 04 &1629 00 ; end ; bytecode_for_room_1a_description &162a 0d 38 15 19 24 18 15 22 5d 45 fc bb e8 7c 59 84 ; "On either side the surface stretches away some three hundred &163a cd 56 85 06 45 83 af 32 24 22 15 1d 12 1c 15 fa ; feet below. The ramp seems to tremble slightly." &164a b2 04 &164c 00 ; end ; bytecode_for_room_1b_description &164d 0d 41 42 38 45 fc 54 83 0b ae 86 5e 32 45 69 46 ; "You are on the steel ramp, which runs up to the south and down &165d 52 32 45 67 06 45 87 48 45 83 32 4a 46 47 b1 fc ; to the north. The wall of the ramp to east and west falls two &166d 08 cd 56 32 45 20 1c 11 19 1e 85 04 ; hundred feet to the plain below." &1679 00 ; end ; bytecode_for_room_1c_description &167a 0d 45 fc 54 83 fb 8b 5e 32 45 69 06 38 fb 1c fc ; "The steel ramp climbs up to the south. On both sides is a fall &168a 50 44 34 88 48 34 cd 56 04 ; of a hundred feet." &1693 00 ; end ; bytecode_for_room_1d_description &1694 0d 41 42 ce 38 89 cf 32 36 45 fa 19 fc 18 48 3b ; "You are standing on what appears to be the lowest part of an &16a4 fb 8c fc 54 83 0b ae 22 19 23 15 23 32 45 69 06 ; enormous steel ramp, which rises to the south. A short ladder &16b4 34 fc 55 fc bc b2 52 32 45 4a 0b 55 45 f9 14 fc ; leads down to the east, into the marshland fog." &16c4 0a 04 &16c6 00 ; end ; bytecode_for_room_1e_description &16c7 c4 28 ; if(p["distance_into_desert"] == 0) &16c9 01 ; { &16ca 1c 28 ; p["distance_into_desert"] = 1 &16cc 03 ; } &16cd 9c 28 08 02 ; if(p["distance_into_desert"] != &04 or &16d1 af ; room.flags[2]) &16d2 01 ; { &16d3 0d 41 42 c9 33 45 f9 13 fc bd 80 6d 45 fc be fb ; "You are somewhere in the scorching western desert where the &16e3 1d 72 fa b3 fb 8d 06 58 b3 fc bf fc c0 0b 41 fb ; rocks glow with unnatural radiation. As every minute passes, &16f3 1d 34 fc 56 fb 8e d0 04 ; you glow a little brighter yourself." &16fb 04 ; return &16fc 03 ; } &16fd 0d 41 54 fa a7 d1 45 fc c1 48 3b fc c2 fc b7 fc ; "you have stumbled across the remains of an enemy looting party. &170d 57 06 fc c3 45 fa b4 13 1f 22 20 23 15 23 41 4e ; Among the blackened corpses you see piles of gold coins and one &171d 20 19 1c 15 23 48 7f ff 42 46 43 fb 8f 81 ff 3b ; undamaged sonic lance." &172d 04 &172e 00 ; end ; bytecode_for_room_1f_description &172f 0d 34 23 19 1c 26 15 22 29 6f 70 23 1c 19 13 15 ; "A silvery metal road slices through the landscape from the &173f 23 ea 45 fa a8 6e 45 67 0b f9 15 55 45 1d 19 23 ; north, disappearing into the mists south of here. Just beyond it &174f 24 23 69 48 4f 06 8a a9 37 34 fc 19 0b 23 27 19 ; a wide, swift flowing river prevents access to forest covered &175f 16 24 0e 16 1c 1f 27 19 1e 17 8b fb 90 fb 91 32 ; hills to the east." &176f 8c fc a9 fc c4 32 45 4a 04 &1778 00 ; end ; bytecode_for_room_20_description &1779 0d 41 66 d0 38 34 fc 19 11 1c 25 1d 19 1e 19 25 ; "You find yourself on a wide aluminium road which runs along a &1789 1d 70 ae 86 b4 34 8b fb 1e 6e 69 32 67 06 a9 45 ; river bank from south to north. Beyond the river to the east is &1799 8b 32 45 4a 44 14 15 1e 23 15 8c 04 ; dense forest." &17a5 00 ; end ; bytecode_for_room_21_description &17a6 0d 41 42 38 34 fc 19 b5 6d 45 6f 70 d2 6e 45 69 ; "You are on a wide bridge where the metal road leading from the &17b6 13 25 22 26 15 23 4a d1 45 8b 06 67 48 4f 45 8b ; south curves east across the river. North of here the river &17c6 22 25 23 18 15 23 52 6e 45 c8 ea eb 22 11 20 19 ; rushes down from the mountains through dangerous rapids, &17d6 14 23 0b fb 92 46 fc c5 04 ; cascades and ravines." &17df 00 ; end ; bytecode_for_room_22_description &17e0 c4 2b ; if(p["distance_into_forest"] == 0) &17e2 01 ; { &17e3 0d 41 42 39 45 7e 48 45 8d fc c6 8c 06 37 44 5f ; "You are at the edge of the great southern forest. It is not &17f3 fc 1a fc 1b 32 fc 58 6c 04 ; too late to turn back." &17fc 1c 2b ; p["distance_into_forest"] = 1 &17fe 04 ; return &17ff 03 ; } &1800 0d 41 42 fc 1c 33 45 14 15 20 24 18 23 48 45 fc ; "you are lost in the depths of the southern forest. " + &1810 c6 8c 06 2b 08 41 4e cb 49 fc 59 38 7d fc 50 05 ; random("You see nothing but trees on all sides", "you feel as if &1820 41 16 15 15 1c 58 60 41 54 fc 16 4f 8e 05 45 fc ; you have been here before", "the trees seem familiar here", "you &1830 59 fc 5a b6 4f 05 41 42 fb 93 32 fe 58 41 42 fc ; are beginning to think you are going in circles") + "." &1840 5b 33 13 19 22 13 1c 15 23 05 04 04 &184c 00 ; end ; bytecode_for_room_23_description &184d 0d 45 70 13 25 24 23 fb 94 52 34 fc c7 0b fc c8 ; "The road cuts straight down a valley, between forest covered &185d 8c fc a9 fc c4 32 45 69 46 fc 5c fc c9 fc 5d 32 ; hills to the south and steep mountain scree to the north." &186d 45 67 04 &1870 8c 06 09 ; if(p["previous_room"] == &05) &1873 01 ; { &1874 0d fc 14 fc ca 41 4d 4e 45 6f fc cb 48 2e 8f 2e ; "far ahead you can see the metal towers of Castle Varangar." &1884 ca 04 &1886 03 ; } &1887 00 ; end ; bytecode_for_room_24_description &1888 0e ; skip_to_next_bytecode() &1889 00 ; end ; bytecode_for_room_25_description &188a 0d 45 70 fb 95 b4 45 fc c7 0b 72 90 8c 38 43 5d ; "The road continues along the valley, with dark forest on one &189a 46 45 1c 1f 27 15 22 fc ad 48 45 c8 38 45 fc 37 ; side and the lower slopes of the mountains on the other." &18aa 04 &18ab 00 ; end ; bytecode_for_room_26_description &18ac 0d 41 42 39 34 f9 16 fc 5e fc 5f 32 45 91 0b 27 ; "You are at a crossroads quite close to the city, whose gleaming &18bc 18 1f 23 15 ec fc cc fc 60 78 41 32 45 4a 06 4f ; spires tower over you to the east. Here a rough track leads into &18cc 34 fc cd fc ce b2 55 45 8c f9 17 0b 46 fb 8b 5e ; the forest southwards, and climbs up a rocky gully opposite into &18dc 34 22 1f 13 1b 29 fb 96 fb 97 55 45 fa ac 32 45 ; the foothills to the north." &18ec 67 04 &18ee 00 ; end ; bytecode_for_room_27_description &18ef 0d 41 42 d3 38 34 fc 5c fc 46 fc c8 fc 61 fc cf ; "You are walking on a steep path between solid walls of rock. To &18ff 48 ff 2c 06 32 45 67 45 13 1c 19 16 16 23 0e 27 ; the north the cliffs widen as if there was once a quarry here." &190f 19 14 15 1e 58 60 6a fc 15 fc 0c 34 fc d0 4f 04 &191f 00 ; end ; bytecode_for_room_28_description &1920 b7 ; if(!room.flags[3]) &1921 01 ; { &1922 0d 41 54 27 11 1c 1b 15 14 55 45 ed fc d1 33 34 ; "You have walked into the bandits' hideout in a disused gold &1932 14 19 23 25 23 15 14 7f fc d0 04 ; quarry." &193d a7 ; if(!room.flags[2]) &193e 01 ; { &193f 0d 41 42 ee e7 50 fa b5 fc cd 16 15 1c 1c 1f 27 ; "you are instantly surrounded by wild-eyed rough fellows &194f 23 61 fb 18 7d fa b6 0b f9 45 41 0b 72 75 ef 06 ; who view all strangers, especially you, with deep &195f b3 fb 98 fa b7 af 32 36 f9 18 0b fb 99 45 fc d2 ; suspicion. Every species imaginable seems to be &196f ff 81 af fc 12 3a 1c 15 23 23 fc d3 04 ; represented, though the bandit chieftain seems more or ; less human." &197c 03 ; } &197d 04 ; return &197e 03 ; } &197f 0d 41 42 6c 33 45 ed fc d1 0b ae fc d4 b3 fc 07 ; "you are back in the bandits' hideout, which shows every sign of &198f 48 fc d5 fc 16 fa af 33 34 18 25 22 22 29 04 ; having been abandoned in a hurry." &199e 00 ; end ; bytecode_for_room_29_description &199f 0d 41 66 d0 38 34 b7 fc 46 92 fc d6 45 fc 5c fa ; "You find yourself on a narrow path that skirts the steep &19af b8 0b d2 47 04 ; mountainside, leading west." &19b4 00 ; end ; bytecode_for_room_2a_description &19b5 0d 41 42 38 34 b7 fc 46 92 fc d6 45 fc 5c fa b8 ; "You are on a narrow path that skirts the steep mountainside, &19c5 0b d2 6e 4a 32 47 04 ; leading from east to west." &19cc 00 ; end ; bytecode_for_room_2b_description &19cd 0d 45 fc 46 6e 45 4a fc d7 67 55 45 c8 4f 06 6a ; "The path from the east turns north into the mountains here. &19dd 44 34 eb fc 5d 48 1c 1f 1f 23 15 fc be 38 4b 62 ; There is a dangerous scree of loose rocks on your left and a &19ed 46 34 75 fc 4b fc ca 06 39 45 fc 17 48 45 fb 9a ; deep ravine ahead. At the top of the precipice an old, gnarled &19fd 3b fc 62 0b fa 40 ff 2b 17 22 1f 27 23 fc c3 45 ; tree grows among the boulders." &1a0d ff 79 04 &1a10 af 02 ; if(room.flags[2] or &1a12 bf ; room.flags[3]) &1a13 01 ; { &1a14 0d 34 ff 1e fc d8 78 45 fc d9 0b fc 63 39 45 fc ; "a rope hangs over the cliff, tied at the top to" &1a24 17 32 05 &1a27 03 ; } &1a28 af ; if(room.flags[2]) &1a29 01 ; { &1a2a 0d 34 ff 2c 04 ; "a rock." &1a2f 03 ; } &1a30 bf ; if(room.flags[3]) &1a31 01 ; { &1a32 0d 45 ff 2b 04 ; "the tree." &1a37 03 ; } &1a38 00 ; end ; bytecode_for_room_2c_description &1a39 0d 41 66 d0 33 34 75 fc 4b 0b fc 4f 34 fc da 06 ; "You find yourself in a deep ravine, beside a spring. The stream &1a49 45 23 24 22 15 11 1d f0 78 34 fa b9 69 0b 46 38 ; disappears over a waterfall south, and on the cliff north, east &1a59 45 fc d9 67 0b 4a 46 47 6a 44 35 18 11 1e 14 18 ; and west there is no handhold firm enough to support you." &1a69 1f 1c 14 0e 16 19 22 1d fb 9b 32 23 25 20 20 1f &1a79 22 24 41 04 &1a7d a7 ; if(!room.flags[2]) &1a7e 01 ; { &1a7f 0d 2d 34 fc 64 fb 9c fc 65 0b 39 fc 66 93 34 23 ; "\nA giant hunting eagle, at first only a speck in the sky, &1a8f 20 15 13 1b 33 45 fa 1a 0b b1 d4 41 fc 1d 34 f9 ; falls towards you like a thunderbolt." &1a9f 19 04 &1aa1 04 ; return &1aa2 03 ; } &1aa3 97 ; if(!room.flags[1]) &1aa4 01 ; { &1aa5 0d 2d 41 fc 0b 94 34 fc db 33 45 fe 71 95 04 ; "\nYou now notice a crevice in the northeast corner." &1ab4 1f ; room.flags[1] = true &1ab5 03 ; } &1ab6 00 ; end ; bytecode_for_room_2d_description &1ab7 0d 41 42 d3 b4 34 1d 25 14 14 29 8c fc ce 06 6a ; "You are walking along a muddy forest track. There seems to be a &1ac7 af 32 36 34 fc 67 fb 9d 59 4c 69 04 ; large clearing some way south." &1ad3 00 ; end ; bytecode_for_room_2e_description &1ad4 0d 33 34 fb 9d ff 33 7c 6e 45 70 44 34 ff 4b fb ; "In a clearing well away from the road is a gypsy camp. Colourful &1ae4 1f 06 fa ba 79 fb 9e 48 b3 23 19 2a 15 0b 23 18 ; space vehicles of every size, shape and age are set in a circle &1af4 11 20 15 46 11 17 15 42 fc 1e 33 34 13 19 22 13 ; round a central atomic furnace." &1b04 1c 15 76 34 b8 fc dc fa 41 04 &1b0e a7 ; if(!room.flags[2]) &1b0f 01 ; { &1b10 0d 2d 45 f9 5a 24 19 1e 1b 15 22 23 42 33 34 16 ; "\nThe interplanetary tinkers are in a foul mood, for an &1b20 1f 25 1c 0e 1d 1f 1f 14 0b 53 3b fa bb fa 42 44 ; essential element is missing from their annual festival of &1b30 1d 19 23 23 19 1e 17 6e fc 42 11 1e 1e 25 11 1c ; alchemy. A giant gypsy, made even taller by his space boots, &1b40 fb 9f 48 11 1c 13 18 15 1d 29 06 34 fc 64 ff 4b ; floats towards you." &1b50 0b fc 1f fc 41 24 11 1c 1c 15 22 50 5a 79 ff 3d &1b60 0b 16 1c 1f 11 24 23 d4 41 04 &1b6a 04 ; return &1b6b 03 ; } &1b6c 0d 2d 4b fc dd 45 fc 36 ff 4b fc 68 41 34 fb a0 ; "\nYour friend the tall gypsy gives you a generous smile." &1b7c 23 1d 19 1c 15 04 &1b82 00 ; end ; bytecode_for_room_2f_description &1b83 cf ; if(room.flags[4]) &1b84 01 ; { &1b85 0d 41 42 6c 39 45 47 17 11 24 15 04 ; "You are back at the west gate." &1b91 03 ; } ; else &1b92 01 ; { &1b93 0d 41 54 fa 43 39 45 fc bd fb a1 0b ae 0b fc 1d ; "you have arrived at the western gatehouse, which, like the &1ba3 45 fb 09 48 45 91 0b cf 32 36 f9 1a 48 23 15 11 ; rest of the city, appears to be contructed of seamless &1bb3 1d 1c 15 23 23 fb a2 04 ; titanium." &1bbb 03 ; } &1bbc cc 25 ; if(p["is_riding_hovercycle"] != 0) &1bbe 01 ; { &1bbf 0d 45 ff 84 fc de f9 5b 0b 24 19 20 23 41 17 15 ; "the hovercycle stops automatically, tips you gently off, and &1bcf 1e 24 1c 29 96 0b 46 fc ae 7c 32 45 ff 84 fe 5c ; drifts away to the hovercycle store." &1bdf 04 &1be0 cc 26 ; if(p["following_guards_on_hovercycle"] != 0) &1be2 01 ; { &1be3 0d 45 fc af ac 2a 1f 1f 1d ea 0b ad fb a3 7b 54 ; "the blood guard zoom through, without noticing they have &1bf3 fc 1c 41 04 ; lost you." &1bf7 03 ; } &1bf8 14 25 ; p["is_riding_hovercycle"] = 0 &1bfa 14 26 ; p["following_guards_on_hovercycle"] = 0 &1bfc 0b 0a 28 ; object_room["hovercycle"] = &06 &1bff 03 ; } &1c00 0d 2d fc 40 d5 42 fa 44 32 fe 64 fb 81 fb a4 3a ; "\nArmed soldiers are waiting to search everyone entering or &1c10 fb a5 04 ; leaving." &1c13 c7 ; if(!room.flags[4]) &1c14 01 ; { &1c15 0d fc d5 27 11 24 13 18 15 14 fc 1a fc 52 fc b5 ; "having watched too many black market videos from earth, the &1c25 b9 26 19 14 15 1f 23 6e fc 4d 0b 45 d5 42 7d 22 ; soldiers are all rude and chew gum constantly." &1c35 25 14 15 46 13 18 15 27 ff 0d f9 1b 04 &1c42 03 ; } &1c43 00 ; end ; bytecode_for_room_30_description &1c44 0d 41 42 d3 d1 3b 11 22 13 18 19 1e 17 b5 73 78 ; "You are walking across an arching bridge high over the castle &1c54 45 8f 63 04 ; moat." &1c58 00 ; end ; bytecode_for_room_31_description &1c59 0d 41 66 d0 5e 32 4b fc 69 33 16 19 1c 24 18 29 ; "You find yourself up to your neck in filthy water. The moat is &1c69 fc 6a 06 45 63 44 fc df 48 fc e0 fc 56 fa bc 0b ; full of pretty little fangfish, which are starting to nibble. &1c79 ae 42 fb a6 32 1e 19 12 12 1c 15 06 f5 43 20 19 ; Fortunately one pillar of the bridge is beside you." &1c89 1c 1c 11 22 48 45 b5 44 fc 4f 41 04 &1c95 00 ; end ; bytecode_for_room_32_description &1c96 0d fc e1 fc 6b 52 4a 55 45 91 0b fb 97 45 b5 78 ; "Steps lead down east into the city, opposite the bridge over the &1ca6 45 63 06 67 46 69 42 b7 27 11 1c 1b 27 11 29 23 ; moat. North and south are narrow walkways along the top of the &1cb6 b4 45 fc 17 48 45 fc 20 91 87 04 ; main city wall." &1cc1 00 ; end ; bytecode_for_room_33_description &1cc2 0d 41 42 ce 38 45 8f 87 06 85 41 32 45 47 44 45 ; "You are standing on the castle wall. Below you to the west is &1cd2 63 0b fc 21 fc bb 12 25 12 12 1c 19 1e 17 06 38 ; the moat, its surface bubbling. On the other side you overlook a &1ce2 45 fc 37 5d 41 1f 26 15 22 1c 1f 1f 1b 34 12 25 ; busy market square where you notice an old well standing in the &1cf2 23 29 b9 ba 6d 41 94 3b fc 62 ff 33 ce 33 45 fe ; northwest corner. North of you is a high tower without &1d02 72 95 06 67 48 41 44 34 73 fc 60 ad 27 19 1e 14 ; windows." &1d12 1f 27 23 04 &1d16 00 ; end ; bytecode_for_room_34_description &1d17 0d 41 42 38 34 fc e2 48 45 8f 87 06 32 45 69 46 ; "You are on a section of the castle wall. To the south and east &1d27 4a f9 1c fc cc fe 5d 5e 55 45 fa 1a 06 32 45 47 ; precipitous spires climb up into the sky. To the west, some &1d37 0b 59 fc e3 56 85 41 0b 44 45 63 06 2d 34 ff 6d ; thirty feet below you, is the moat. \nA soldier is lying here in &1d47 44 fc e4 4f 33 45 fa 05 0b d6 ff 0d 0b 5a fc 6c ; the sun, chewing gum, his eyes closed." &1d57 13 1c 1f 23 15 14 04 &1d5e 00 ; end ; bytecode_for_room_35_description &1d5f 0d 41 42 38 34 6f 70 ae b2 6e 47 32 4a 0b fb a7 ; "You are on a metal road which leads from west to east, running &1d6f b4 45 69 5d 48 3b 97 b9 ba 04 ; along the south side of an open market square." &1d79 00 ; end ; bytecode_for_room_36_description &1d7a 0d 41 42 33 34 13 22 1f 27 14 15 14 b9 ba 0b fc ; "You are in a crowded market square, full of strange sounds and &1d8a df 48 bb 23 1f 25 1e 14 23 46 fa bd 06 38 fc 22 ; fragrances. On sale are all manner of goods." &1d9a 42 7d fc 6d 48 17 1f 1f 14 23 04 &1da5 a7 ; if(!room.flags[2]) &1da6 01 ; { &1da7 0d 45 fc e5 fc 5a f9 46 46 f9 1d 0b fc 6e 6e 43 ; "the locals seem suspicious and unfriendly, apart from one &1db7 fa 45 fc 62 ff 70 23 15 1c 1c 19 1e 17 ff 6b 46 ; wizened old centaur selling watches and wrist computers." &1dc7 fc 6f ff 80 04 &1dcc 03 ; } &1dcd 00 ; end ; bytecode_for_room_37_description &1dce 0d 41 42 33 34 90 95 48 45 b9 ba 0b ce 50 34 75 ; "You are in a dark corner of the market square, standing by a &1dde ff 33 06 34 fc e6 ff 49 fc d8 52 55 45 ff 33 04 ; deep well. A rusty chain hangs down into the well." &1dee 00 ; end ; bytecode_for_room_38_description &1def 0d 45 fc e7 48 45 ff 33 44 fc e8 48 fc 6a 0b 49 ; "The bottom of the well is empty of water, but seems to be used &1dff af 32 36 fc 51 58 34 22 25 12 12 19 23 18 fa 07 ; as a rubbish tip" &1e0f 05 &1e10 e7 ; if(!room.flags[6]) &1e11 01 ; { &1e12 0d 0e 53 7d 45 fc 62 fc 70 0b fc e6 13 11 1e 23 ; " for all the old bones, rusty cans and broken bottles of the &1e22 46 fc e9 fa 46 48 45 91 05 ; city" &1e2b 03 ; } &1e2c 0d 04 ; "." &1e2e 00 ; end ; bytecode_for_room_39_description &1e2f 0d 41 42 38 45 fc 20 fa 1b fb a7 5e d4 45 b8 fa ; "You are on the main street running up towards the central &1e3f be 48 45 8f 06 22 11 25 13 1f 25 23 fb a8 19 23 ; courtyard of the castle. Raucous laughter issues from the open &1e4f 23 25 15 23 6e 45 97 51 48 3b fc 23 38 45 69 5d ; door of an inn on the south side, " &1e5f 0b 05 &1e61 a7 ; if(!room.flags[2]) &1e62 01 ; { &1e63 0d 49 34 23 13 22 25 16 16 29 64 72 25 1e 25 23 ; "but a scruffy dog with unusually large teeth bars your &1e73 25 11 1c 1c 29 fc 67 98 ff 34 4b 4c 04 ; way." &1e80 04 ; return &1e81 03 ; } &1e82 0d 74 34 f9 1e 1d 1f 1e 17 22 15 1c fc ea 34 ff ; "while a flea-bitten mongrel gnaws a bone at your feet." &1e92 25 39 4b 56 04 &1e97 00 ; end ; bytecode_for_room_3a_description &1e98 0d 41 fe 49 45 b8 fa be 48 45 8f 04 ; "You enter the central courtyard of the castle." &1ea4 c7 ; if(!room.flags[4]) &1ea5 01 ; { &1ea6 0d ec 6f fc cc fb 86 41 46 34 fc 13 fc eb 48 fc ; "gleaming metal spires surround you and a vast flight of &1eb6 ec 32 45 4a b2 5e 32 45 fc 60 fc ed 06 fc 1e 33 ; stairs to the east leads up to the tower entrance. Set in &1ec6 45 87 44 34 fc 24 ff 48 0b fb a9 33 30 f0 0e fa ; the wall is a red lever, labelled in 236 languages &1ed6 bf 2d 2d 2f 85 2c 3c 5f 24 1f 25 13 18 2c 2d 2d ; \n\n[red]DO NOT TOUCH\n\nThere are armed guards and &1ee6 6a 42 fc 40 d7 46 fa c0 f4 04 ; dignitaries everywhere." &1ef0 03 ; } &1ef1 00 ; end ; bytecode_for_room_3b_description &1ef2 a7 ; if(!room.flags[2]) &1ef3 01 ; { &1ef4 0d 41 42 33 45 8d 99 48 2e 8f 2e ca 06 45 9a 44 ; "You are in the great hall of Castle Varangar. The room is &1f04 9b 9c 34 fb 0a ba 0b 46 41 9d 4e 45 fc b2 fb aa ; about half a mile square, and you cannot see the distant &1f14 0b 60 6a 44 43 06 37 44 34 bc 0b fb 3a fa c1 48 ; ceiling, if there is one. It is a small, intimate gathering &1f24 9b 24 15 1e 3a 24 27 15 1c 26 15 fa c2 06 8d 24 ; of about ten or twelve thousand. Great tables groan with the &1f34 11 12 1c 15 23 0e 17 22 1f 11 1e 72 45 fc ee 48 ; weight of strange food and drink. The king is seated on his &1f44 bb fc 47 46 ff 43 06 45 7a 44 23 15 11 24 15 14 ; throne nearby, surrounded by courtiers." &1f54 38 5a 24 18 22 1f 1e 15 ab 0b e7 50 fb ab 04 &1f63 03 ; } ; else &1f64 01 ; { &1f65 0d 41 42 6c 33 45 8d 99 06 fb 0b 48 45 fc ef 42 ; "you are back in the great hall. Most of the guests are dead &1f75 fc 53 fc 71 0b 46 fc 72 61 fa 1c 42 fa 47 33 34 ; drunk, and those who aren't are engaged in a hand of twenty &1f85 77 48 fc ba fb 0c ff 27 0b 84 f9 1f 12 22 11 17 ; nine card, three dimensional brag." &1f95 04 &1f96 03 ; } &1f97 0d 2d 45 fc 20 fc 73 42 47 0b 74 38 45 4a 5d 44 ; "\nThe main doors are west, while on the east side is a smaller &1fa7 34 fb ac fc 74 04 ; arch." &1fad 00 ; end ; bytecode_for_room_3c_description &1fae 0d 41 fa 1d 33 45 fc ed 99 48 45 fc 60 04 ; "You arrive in the entrance hall of the tower." &1fbc a7 ; if(!room.flags[2]) &1fbd 01 ; { &1fbe 0d 34 fa c3 46 17 1f 22 17 15 1f 25 23 1c 29 0e ; "a bejewelled and gorgeously robed figure stands before you, &1fce 22 1f 12 15 14 0e 16 19 17 25 22 15 fc ab 8e 41 ; the hand of friendship extended." &1fde 0b 45 77 48 f9 20 fb ad 04 &1fe7 03 ; } &1fe8 0d 8d fc 73 fe 56 97 32 45 4a 46 47 0b 46 6a 44 ; "great doors stand open to the east and west, and there is a &1ff8 34 fb ac fc 74 33 45 67 87 04 ; smaller arch in the north wall." &2002 00 ; end ; bytecode_for_room_3d_description &2003 0d 41 42 33 45 90 d8 72 34 fa c4 27 19 1e 14 1f ; "You are in the dark corridor with a shuttered window in front of &2013 27 33 fc 3b 48 41 32 45 67 06 45 51 38 4b 62 44 ; you to the north. The door on your left is" &2023 05 &2024 af ; if(room.flags[2]) &2025 01 ; { &2026 0d 97 0b 46 05 ; "open, and" &202b 03 ; } ; else &202c 01 ; { &202d 0d bd 0b 49 05 ; "locked, but" &2032 03 ; } &2033 0d 45 43 32 4b fe 48 44 fc 3a 04 ; "the one to your right is ajar." &203e e7 ; if(!room.flags[6]) &203f 01 ; { &2040 0d 34 ff 3e 48 ff 3f 44 23 24 25 13 1b 32 45 51 ; "a scrap of paper is stuck to the door." &2050 04 &2051 03 ; } &2052 00 ; end ; bytecode_for_room_3e_description &2053 0d 41 54 be 34 1c 25 28 25 22 19 1f 25 23 fc f0 ; "You have entered a luxurious bedroom, decorated in green silk. &2063 0b fb ae 33 9e fb 20 06 fc 75 32 45 87 fc 76 45 ; Fixed to the wall above the bedside table is a mirror" &2073 fc f1 ff 4e 44 34 ff 62 05 &207c e7 ; if(!room.flags[6]) &207d 01 ; { &207e 0d 0b 74 38 45 ff 4e 44 45 fc c1 48 34 ff 5b 48 ; ", while on the table is the remains of a flagon of the &208e 45 2e d9 fb 3b 2e ff 83 05 ; Doctor's favorite Beaujolais" &2097 03 ; } &2098 a7 ; if(!room.flags[2]) &2099 01 ; { &209a 0d 06 4b ef 92 45 2e 6b 23 1c 15 20 24 4f fc 25 ; ". Your suspicion that the Doctor slept here last night is &20aa 1e 19 17 18 24 44 fa c5 50 45 fa 1e ff 13 05 ; confirmed by the unmade bed" &20b9 03 ; } &20ba 0d 06 2d 34 23 1c 19 14 19 1e 17 51 38 45 4a 5d ; ". \nA sliding door on the east side leads to the dressing room. &20ca b2 32 45 14 22 15 23 23 19 1e 17 9a 06 47 44 45 ; West is the main door." &20da fc 20 51 04 &20de 00 ; end ; bytecode_for_room_3f_description &20df 0d 41 42 33 45 14 22 15 23 23 19 1e 17 9a 04 ; "You are in the dressing room." &20ee e7 ; if(!room.flags[6]) &20ef 01 ; { &20f0 0d 38 34 14 25 1d 1d 29 50 45 fb af 44 3b fc 77 ; "on a dummy by the armchair is an ermine robe and a full &2100 ff 28 46 34 fc df fb b0 ff 12 33 fc f2 9e 04 ; bottomed wig in bright green." &210f 03 ; } &2110 00 ; end ; bytecode_for_room_40_description &2111 0d 41 42 33 34 fc f0 fc 1d 45 fc 37 0b 49 fb ae ; "You are in a bedroom like the other, but decorated in white &2121 33 9f fb 20 04 ; silk." &2126 e7 ; if(!room.flags[6]) &2127 01 ; { &2128 0d 6a 44 34 ff 5a ff 59 38 45 fc f1 ff 4e 04 ; "there is a silver button on the bedside table." &2137 03 ; } &2138 00 ; end ; bytecode_for_room_41_description &2139 0d 34 ec da 72 9a 53 34 cd 32 fc 78 5e fa 48 e8 ; "A gleaming staircase with room for a hundred to walk up abreast &2149 8e 41 32 45 4a 06 d7 fe 56 8e 8d fc f3 fc 73 39 ; stretches before you to the east. Guards stand before great &2159 45 fc 17 06 2d d2 67 44 34 90 fa c6 d8 04 ; carved doors at the top. \nLeading north is a dark carpetted ; corridor." &2167 00 ; end ; bytecode_for_room_42_description &2168 0d 41 42 38 45 6c fc ec 06 34 ac 05 ; "You are on the back stairs. A guard" &2174 d3 25 ; if(object_room["robe"] == "wearing" and &2176 d3 21 ; object_room["wig"] == "wearing") &2178 01 ; { &2179 0d fb 21 fc 26 04 ; "bows low." &217f 04 ; return &2180 03 ; } &2181 0d fc 6c 41 f9 61 04 ; "eyes you suspiciously." &2188 00 ; end ; bytecode_for_room_43_description &2189 0d 41 42 ce 39 43 fa 08 48 45 8f 1b 19 24 13 18 ; "You are standing at one end of the castle kitchen. Cooks are &2199 15 1e 06 ff 4a 42 22 25 23 18 19 1e 17 9b 0b fa ; rushing about, pouring peas into great cauldrons, while guards &21a9 49 20 15 11 23 55 8d fa c7 0b 74 d7 fa 1f 9b fc ; lounge about making sure no one poisons the soup." &21b9 f4 23 25 22 15 35 43 20 1f 19 23 1f 1e 23 45 23 &21c9 1f 25 20 04 &21cd 00 ; end ; bytecode_for_room_44_description &21ce 14 2c ; p["drunk_state"] = 0 &21d0 af ; if(room.flags[2]) &21d1 01 ; { &21d2 0d 41 4d fc 0b 4e 92 45 db fc f5 69 0b 49 6a 44 ; "You can now see that the cellars continue south, but there &21e2 34 68 75 fc 27 8a a9 45 11 22 13 18 27 11 29 47 ; is a very deep pit just beyond the archway west. Steps lead &21f2 06 fc e1 fc 6b 5e 55 45 8f 04 ; up into the castle." &21fc 04 ; return &21fd 03 ; } &21fe 0d 45 ff 4c 6e 45 fc ec 44 8a fb 9b 53 41 32 fe ; "the light from the stairs is just enough for you to make out" &220e 32 5b 05 &2211 e7 ; if(!room.flags[6]) &2212 01 ; { &2213 0d 3b fc 62 ff 67 fc e4 33 45 fc f6 33 ae 41 42 ; "an old lantern lying in the cellar in which you are now &2223 fc 0b ce 06 6a 42 05 ; standing. There are" &222a 03 ; } &222b 0d 90 fc f7 d2 96 69 46 47 04 ; "dark arches leading off south and west." &2235 00 ; end ; bytecode_for_room_45_description &2236 a7 ; if(!room.flags[2]) &2237 01 ; { &2238 0e ; skip_to_next_bytecode() &2239 03 ; } &223a 0d 45 db dc 7c 32 45 69 0b 47 0b 46 67 04 ; "The cellars stretch away to the south, west, and north." &2248 00 ; end ; bytecode_for_room_46_description &2249 a7 ; if(!room.flags[2]) &224a 01 ; { &224b 0e ; skip_to_next_bytecode() &224c 03 ; } &224d 0d 45 db bf 34 fc 53 fa 08 4f 06 32 45 47 44 34 ; "The cellars reach a dead end here. To the west is a bottomless &225d f9 21 fc 27 04 ; pit." &2262 00 ; end ; bytecode_for_room_47_description &2263 a7 ; if(!room.flags[2]) &2264 01 ; { &2265 0e ; skip_to_next_bytecode() &2266 03 ; } &2267 0d 32 67 46 69 48 41 42 f9 21 fb 22 33 45 fc f6 ; "To north and south of you are bottomless pits in the cellar &2277 a0 06 45 db fc f5 47 46 4a 04 ; floor. The cellars continue west and east." &2281 00 ; end ; bytecode_for_room_48_description &2282 a7 ; if(!room.flags[2]) &2283 01 ; { &2284 0e ; skip_to_next_bytecode() &2285 03 ; } &2286 0d 45 fc f7 dc 7c 32 45 47 46 69 0b 49 32 45 4a ; "The arches stretch away to the west and south, but to the east &2296 6a 44 34 75 fc b5 fc 27 04 ; there is a deep black pit." &229f 00 ; end ; bytecode_for_room_49_description &22a0 a7 ; if(!room.flags[2]) &22a1 01 ; { &22a2 0e ; skip_to_next_bytecode() &22a3 03 ; } &22a4 0d 32 45 47 44 34 f9 21 fc 27 06 fc 37 22 1f 25 ; "To the west is a bottomless pit. Other routes look safe." &22b4 24 15 23 fe 41 fb 0d 04 &22bc 00 ; end ; bytecode_for_room_4a_description &22bd a7 ; if(!room.flags[2]) &22be 01 ; { &22bf 0e ; skip_to_next_bytecode() &22c0 03 ; } &22c1 0d 45 db dc 7c 32 67 46 47 06 32 45 4a 44 34 fc ; "The cellars stretch away to north and west. To the east is a &22d1 27 04 ; pit." &22d3 00 ; end ; bytecode_for_room_4b_description &22d4 a7 ; if(!room.flags[2]) &22d5 01 ; { &22d6 0e ; skip_to_next_bytecode() &22d7 03 ; } &22d8 0d 6a 42 fb 22 32 45 67 46 47 0b 46 34 87 69 06 ; "There are pits to the north and west, and a wall south. The only &22e8 45 93 4c 5b 44 6c 4a 04 ; way out is back east." &22f0 00 ; end ; bytecode_for_room_4c_description &22f1 0e ; skip_to_next_bytecode() &22f2 00 ; end ; bytecode_for_room_4d_description &22f3 0e ; skip_to_next_bytecode() &22f4 00 ; end ; bytecode_for_room_4e_description &22f5 a7 ; if(!room.flags[2]) &22f6 01 ; { &22f7 0e ; skip_to_next_bytecode() &22f8 03 ; } &22f9 0d 45 b7 fc f8 86 6e 67 32 69 04 ; "The narrow tunnel runs from north to south." &2304 00 ; end ; bytecode_for_room_4f_description &2305 a7 ; if(!room.flags[2]) &2306 01 ; { &2307 0d 41 42 2b 06 c9 05 05 04 0e 33 45 db 06 37 44 ; "You are " + random("somewhere", "") + " in the cellars. It &2317 2b 08 fc f9 05 f9 22 05 fb b1 05 68 05 04 0e 90 ; is " + random("pitch", "completely", "totally", "very") + " &2327 04 ; dark." &2328 04 ; return &2329 03 ; } &232a d7 ; if(!room.flags[5]) &232b 01 ; { &232c 3b 22 ; object_room["bone"] = player_room &232e 44 0a ; p["number_of_objects_in_player_room"] ++ &2330 5f ; room.flags[5] = true &2331 03 ; } &2332 0d 41 66 d0 33 34 13 1c 15 11 1e fc f6 6d c0 fc ; "you find yourself in a clean cellar where several heavy casks &2342 b8 ff 47 42 23 24 11 13 1b 15 14 04 ; are stacked." &234e e7 ; if(!room.flags[6]) &234f 01 ; { &2350 0d 33 43 95 44 34 ff 25 0b fb b2 17 1e 11 27 15 ; "in one corner is a bone, savagely gnawed." &2360 14 04 &2362 03 ; } &2363 0d 33 45 a0 44 34 ff 7b 06 6a 44 34 b7 17 11 20 ; "in the floor is a trapdoor. There is a narrow gap in the north &2373 33 45 67 87 0b 46 34 05 ; wall, and a" &237b 87 ; if(!room.flags[0]) &237c 01 ; { &237d 0d 0e ff 32 14 11 1e 17 1c 19 1e 17 6e 45 22 1f ; " wire dangling from the roof." &238d 1f 16 04 &2390 04 ; return &2391 03 ; } &2392 0d 0e fc bc d2 5e 55 fa c8 04 ; " ladder leading up into darkness." &239c 00 ; end ; bytecode_for_room_50_description &239d 1c 2d ; p["spiral_staircase_direction"] = 1 &239f 0d 41 66 d0 39 45 fc 28 48 34 fc fa da fc 1f 48 ; "You find yourself at the foot of a spiral staircase made of &23af 6f fc fb 0b ea ae ff 4c fc fc 52 6e fc 14 fc 76 ; metal slats, through which light filters down from far above. A &23bf 06 34 90 fc f8 b2 96 f9 17 06 45 8d 6f 51 33 45 ; dark tunnel leads off southwards. The great metal door in the &23cf 47 87 05 ; west wall" &23d2 cc 36 ; if(p["dungeon_door_state"] != 0) &23d4 01 ; { &23d5 0d 44 fc 3a 04 ; "is ajar." &23da 04 ; return &23db 03 ; } &23dc 0d 44 fb 23 fb b3 46 fc fd 34 fc 26 fc 79 04 ; "is shut firmly and emits a low hum." &23eb 00 ; end ; bytecode_for_room_51_description &23ec 0e ; skip_to_next_bytecode() &23ed 00 ; end ; bytecode_for_room_52_description &23ee 0e ; skip_to_next_bytecode() &23ef 00 ; end ; bytecode_for_room_53_description &23f0 0d 41 42 fc 18 4c 05 ; "You are part way" &23f7 cc 2d ; if(p["spiral_staircase_direction"] != 0) &23f9 01 ; { &23fa 0d 5e 05 ; "up" &23fd 03 ; } ; else &23fe 01 ; { &23ff 0d 52 05 ; "down" &2402 03 ; } &2403 0d 0e 34 fc fa da 48 6f fc fb d2 32 45 fb b4 06 ; " a spiral staircase of metal slats leading to the dungeons. &2413 ff 4c fc fc 52 6e fc 76 04 ; Light filters down from above." &241c 00 ; end ; bytecode_for_room_54_description &241d 14 2d ; p["spiral_staircase_direction"] = 0 &241f 0d 41 42 39 45 fc 17 48 34 fc 43 fc fa da ae f0 ; "You are at the top of a long spiral staircase which disappears &242f 55 45 17 1c 1f 1f 1d 85 06 3b fc 74 b2 5b 55 34 ; into the gloom below. An arch leads out into a sunlit hall &243f 23 25 1e 1c 19 24 99 69 04 ; south." &2448 00 ; end ; bytecode_for_room_55_description &2449 cc 36 02 ; if(p["dungeon_door_state"] != 0 or &244c af 02 ; room.flags[2] or &244e df ; room.flags[5]) &244f 01 ; { &2450 0d 41 42 05 ; "You are" &2454 9f ; if(room.flags[1]) &2455 01 ; { &2456 0d 0e ce 38 45 ff 4e 05 ; " standing on the table" &245e 03 ; } &245f 0d 0e 33 45 fa 4a 04 ; " in the dungeon." &2466 cc 36 ; if(p["dungeon_door_state"] != 0) &2468 01 ; { &2469 0d 58 45 fb 24 44 fc 10 0b 05 ; "as the fuse is gone, " &2473 03 ; } &2474 0d 37 44 fc f9 90 04 ; "it is pitch dark." &247b 04 ; return &247c 03 ; } &247d 0d 41 42 f9 23 33 45 fa 4b 46 fa 4c 48 45 fb b5 ; "you are imprisoned in the deepest and dankest of the castle's &248d 15 19 17 18 24 fa c2 3a 3d fb b4 06 45 51 44 84 ; eight thousand or so dungeons. The door is three inch thick &249d 19 1e 13 18 0e 24 18 19 13 1b fc 54 0b 72 35 fa ; steel, with no keyhole visible, and emits a low hum." &24ad 4d fa 4e 0b 46 fc fd 34 fc 26 fc 79 04 &24ba 0d 2d 34 fc fe ff 4c ff 21 44 45 93 fa 20 48 f9 ; "\nA single light bulb is the only source of illumination. The &24ca 47 06 45 fe 62 44 50 45 51 06 34 fc b8 19 22 1f ; switch is by the door. A heavy iron table completes the minus &24da 1e ff 4e fa c9 45 1d 19 1e 25 23 0e 16 19 26 15 ; five and a half star accommodation." &24ea 46 34 9c fb 0e f9 48 04 &24f2 00 ; end ; bytecode_for_room_56_description &24f3 c7 ; if(!room.flags[4]) &24f4 01 ; { &24f5 0d 41 66 41 42 33 45 12 25 23 19 15 23 24 fc 23 ; "You find you are in the busiest inn in town. The customers &2505 33 24 1f 27 1e 06 45 f9 24 fc 5a 34 1c 19 26 15 ; seem a lively lot, and a good deal of the local ale is being &2515 1c 29 fc 29 0b 46 34 fb 25 14 15 11 1c 48 45 1c ; swilled by one and all. The landlord's toothsome daughter" &2525 1f 13 11 1c ff 11 44 fc 7a 23 27 19 1c 1c 15 14 &2535 50 43 46 7d 06 45 f9 49 fb b6 dd 05 &2541 a7 02 ; if(!room.flags[2] or &2543 8f ; room.flags[0]) &2544 01 ; { &2545 0d 0b 61 fb 3c 16 11 19 22 1c 29 fc d3 fc 6e 6e ; ", who looks fairly human apart from her green eyes and &2555 fc 2a 9e fc 6c 46 fa ca 98 0b 44 17 11 19 1c 29 ; vampire's teeth, is gaily serving the customers." &2565 0e 23 15 22 26 19 1e 17 45 f9 24 04 &2571 87 ; if(!room.flags[0]) &2572 01 ; { &2573 0d b0 fc 2a fc 69 23 18 15 0e 27 15 11 22 23 34 ; "around her neck she wears a gold locket." &2583 7f ff 56 04 &2587 03 ; } &2588 04 ; return &2589 03 ; } &258a 0d 44 fc 7a fb b7 50 34 ff 6f 04 ; "is being bothered by a ruffian." &2595 04 ; return &2596 03 ; } &2597 0d 41 42 6c 33 45 fc 23 04 ; "you are back in the inn." &25a0 00 ; end ; bytecode_for_room_57_description &25a1 0d 41 54 fc 16 14 25 1d 20 15 14 33 34 bc fb 19 ; "You have been dumped in a small damp cave somewhere under the &25b1 13 11 26 15 c9 fc 7b 45 c8 06 34 51 48 6f ff 34 ; mountains. A door of metal bars is the only exit, and beyond it &25c1 44 45 93 fe 27 0b 46 a9 37 23 19 24 23 4b ac 0b ; sits your guard, " &25d1 05 &25d2 a7 ; if(!room.flags[2]) &25d3 01 ; { &25d4 0d 45 ff 1c 39 5a fc 7c 04 ; "the keys at his waist." &25dd 04 ; return &25de 03 ; } &25df 0d 61 57 16 11 1c 1c 15 1e 55 34 75 fc 7d 04 ; "who has fallen into a deep trance." &25ee 00 ; end ; bytecode_for_room_58_description &25ef 0d 41 27 22 19 17 17 1c 15 55 34 fc db 04 ; "You wriggle into a crevice." &25fd e7 ; if(!room.flags[6]) &25fe 01 ; { &25ff 0d 41 de 34 ff 5a ff 59 27 15 14 17 15 14 33 45 ; "you discover a silver button wedged in the rock." &260f ff 2c 04 &2612 03 ; } &2613 00 ; end ; bytecode_for_room_59_description &2614 0d 41 66 d0 38 45 47 5d 48 45 2e c1 c2 9a 0b fc ; "You find yourself on the west side of the Tardis control room, &2624 05 45 11 19 22 1c 1f 13 1b 51 04 ; near the airlock door." &262f c4 2f ; if(p["doctor_state"] == 0) &2631 01 ; { &2632 0d 45 2e 6b 44 4f 05 ; "the Doctor is here" &2639 87 ; if(!room.flags[0]) &263a 01 ; { &263b 0d 0b 49 3e af aa 25 20 23 15 24 46 13 1f 1e 16 ; ", but he seems rather upset and confused" &264b 25 23 15 14 05 &2650 03 ; } &2651 0d 04 ; "." &2653 03 ; } &2654 00 ; end ; bytecode_for_room_5a_description &2655 8c 2f 06 ; if(p["doctor_state"] == &02) &2658 01 ; { &2659 0d 2f 10 2d 2d 2d 2d 05 ; "[cls]\n\n\n\n" &2661 03 ; } &2662 0d 41 42 33 45 1d 19 14 14 1c 15 48 45 2e c1 c2 ; "You are in the middle of the Tardis control room, standing by &2672 9a 0b ce 50 45 c2 ff 74 04 ; the control console." &267b 8c 2f 06 ; if(p["doctor_state"] == &02) &267e 01 ; { &267f 0d 45 2e 6b 44 20 25 1e 13 18 19 1e 17 33 45 fa ; "the Doctor is punching in the coordinates, muttering to &268f cb 0b fa cc 32 18 19 1d 23 15 1c 16 06 2d 23 15 ; himself. \nSeeing you, he straightens up and says, \"It's &269f 15 19 1e 17 41 0b 3e f9 25 5e 46 23 11 29 23 0b ; all becoming clear. I'll explain as we go. Paris 1814! this &26af 0d 2e a1 7d fb b8 fc 7e 06 fb 3d 15 28 20 1c 11 ; Warlord could be very dangerous. \" \n\n\n[yellow]" &26bf 19 1e 58 3f 40 06 2e fc 7f 30 16 30 12 08 fc 80 &26cf 2e df 13 1f 25 1c 14 36 68 eb 06 0c 2d 2d 2d 2f &26df 87 05 &26e1 24 82 20 ; p["score"] += &02 &26e4 94 20 35 ; if(p["score"] > &31) &26e7 01 ; { &26e8 0d f9 5c 08 2d 2f 87 41 54 fb b9 fc 18 2e 34 48 ; "Congratulations! \n[yellow]You have finished part A of" &26f8 05 &26f9 03 ; } ; else &26fa 01 ; { &26fb 0d 41 54 fa cd 31 20 2f 29 0e 48 05 ; "you have completed p["score"]% of" &2707 03 ; } &2708 0d 2d 2f 87 6b 2e 61 46 45 2e df 04 ; "\n[yellow]Doctor Who and the Warlord." &2714 0d 2d 2d 2f 87 fe 50 2e 23 32 fe 43 53 fc 18 2e ; "\n\n[yellow]Press S to save for part B. \n[yellow]Press R to &2724 12 06 2d 2f 87 fe 50 2e 22 32 fe 6d 06 2d 05 ; restart. \n" &2733 36 ; p["character"] = read_character() &2734 8c 24 57 ; if(p["character"] == &53) &2737 01 ; { &2738 46 ; save_special_file() &2739 36 ; p["character"] = read_character() &273a 03 ; } &273b 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &2742 2e ; restore_initial_position() &2743 56 ; execute_bytecode_for_room() &2744 03 ; } &2745 00 ; end ; bytecode_for_room_5b_description &2746 0d 41 42 38 45 67 5d 48 45 2e c1 c2 9a 06 45 26 ; "You are on the north side of the Tardis control room. The &2756 19 15 27 19 1e 17 ff 64 44 16 11 13 19 1e 17 41 ; viewing screen is facing you in the north wall." &2766 33 45 67 87 04 &276b 00 ; end ; bytecode_for_room_5c_description &276c 0d 41 42 38 45 69 5d 48 45 2e c1 c2 9a 06 6a 44 ; "You are on the south side of the Tardis control room. There is a &277c 34 ff 7d 4f 04 ; hatstand here." &2781 00 ; end ; bytecode_for_room_5d_description &2782 0d 41 42 38 45 4a 5d 48 45 2e c1 c2 9a 06 34 fb ; "You are on the east side of the Tardis control room. A passage &2792 3e b2 4a 6e 4f 04 ; leads east from here." &2798 00 ; end ; bytecode_for_room_5e_description &2799 0d 41 42 33 34 9f fb 3e 0b ae b2 4a 06 45 c2 9a ; "You are in a white passage, which leads east. The control room &27a9 44 47 06 6a 44 34 51 38 45 67 5d 46 34 9e d8 d2 ; is west. There is a door on the north side and a green corridor &27b9 69 06 2d fc 75 32 45 87 44 34 bc fc 24 ff 23 0b ; leading south. \nFixed to the wall is a small red case, with a &27c9 72 34 94 fc 76 37 ae fb 3f 09 2f 89 2e 33 ff 23 ; notice above it which reads: [magenta]In case of fire, break &27d9 48 fe 2b 0b fe 51 ff 40 04 ; glass." &27e2 00 ; end ; bytecode_for_room_5f_description &27e3 0d 41 42 d3 b4 34 9f fb 3e ae 86 6e 4a 32 47 04 ; "You are walking along a white passage which runs from east to ; west." &27f3 00 ; end ; bytecode_for_room_60_description &27f4 0d 41 66 d0 33 45 2e c1 fb ba 06 34 f9 26 fc 81 ; "You find yourself in the Tardis bathroom. A freshwater lagoon &2804 e8 8e 41 0b 72 13 22 29 23 24 11 1c fc 7e 75 fc ; stretches before you, with crystal clear deep blue water, golden &2814 39 fc 6a 0b 17 1f 1c 14 15 1e fb 40 0b 46 27 11 ; sands, and waving palm trees. Unfortunately environmental &2824 26 19 1e 17 fb 26 fc 59 06 f9 4a f9 4b c2 44 38 ; control is on the blink at the moment and it is about thirty &2834 45 12 1c 19 1e 1b 39 45 fc 82 46 37 44 9b fc e3 ; degrees below freezing." &2844 fa 4f 85 fb bb 04 &284a e7 ; if(!room.flags[6]) &284b 01 ; { &284c 0d 39 4b 56 44 34 fa 09 48 ff 1f 9c 12 25 22 19 ; "at your feet is a bar of soap half buried in snow." &285c 15 14 33 ff 29 04 &2862 03 ; } &2863 00 ; end ; bytecode_for_room_61_description &2864 0d 41 42 33 45 9e d8 06 84 fc e1 fc 6b 52 32 45 ; "You are in the green corridor. Three steps lead down to the &2874 69 06 78 45 fc e1 44 34 fc 07 fb bc 09 2d 2d 2c ; south. Over the steps is a sign reading: \n\n[magenta]RESTRICTED &2884 2f 89 fa ce fb 91 2c 05 ; ACCESS " &288c 00 ; end ; bytecode_for_room_62_description &288d 0d 4f 34 fb 41 d8 6e 45 47 fc 83 45 9e d8 ae 86 ; "Here a yellow corridor from the west meets the green corridor &289d 67 46 69 06 78 7d fb 42 42 fa 50 23 11 29 19 1e ; which runs north and south. Over all exits are notices saying: &28ad 17 09 2e 35 fb 91 ad e0 fb bd 06 2d 6a 44 34 51 ; No access without security clearance. \nThere is a door east, &28bd 4a 0b fb a9 2e e0 2e fb 43 04 ; labelled Security Office." &28c7 00 ; end ; bytecode_for_room_63_description &28c8 0d 41 42 d3 b4 45 9e d8 04 ; "You are walking along the green corridor." &28d1 00 ; end ; bytecode_for_room_64_description &28d2 0d 34 9e d8 6e 45 67 fc 83 34 fc 39 d8 fb a7 4a ; "A green corridor from the north meets a blue corridor running &28e2 46 47 4f 04 ; east and west here." &28e6 00 ; end ; bytecode_for_room_65_description &28e7 0d 41 42 33 45 fc 39 d8 0b ae b2 6e 4a 32 47 06 ; "You are in the blue corridor, which leads from east to west. &28f7 67 44 34 20 1c 11 24 15 ff 40 51 ea ae 41 4d 4e ; North is a plate glass door through which you can see a &2907 34 fa cf a2 c3 33 45 9a a9 06 45 51 05 ; telepathic index machine in the room beyond. The door" &2914 a7 ; if(!room.flags[2]) &2915 01 ; { &2916 0d cf 32 36 bd 04 ; "appears to be locked." &291c 04 ; return &291d 03 ; } &291e 0d fc ab 9c 97 04 ; "stands half open." &2924 00 ; end ; bytecode_for_room_66_description &2925 0e ; skip_to_next_bytecode() &2926 00 ; end ; bytecode_for_room_67_description &2927 0d 41 42 33 45 fc 39 d8 06 6a 44 34 51 38 45 69 ; "You are in the blue corridor. There is a door on the south &2937 5d 04 ; side." &2939 00 ; end ; bytecode_for_room_68_description &293a 0d 4f 34 fc 39 d8 6e 45 4a fc 83 34 fc 24 d8 92 ; "Here a blue corridor from the east meets a red corridor that &294a b2 67 04 ; leads north." &294d 00 ; end ; bytecode_for_room_69_description &294e 0e ; skip_to_next_bytecode() &294f 00 ; end ; bytecode_for_room_6a_description &2950 0d 45 fb 41 d8 86 4a 46 47 06 6a 44 34 51 69 04 ; "The yellow corridor runs east and west. There is a door south." &2960 00 ; end ; bytecode_for_room_6b_description &2961 0d 41 42 39 34 24 25 22 1e 19 1e 17 06 34 fb 41 ; "You are at a turning. A yellow corridor leads east, a red one &2971 d8 b2 4a 0b 34 fc 24 43 69 04 ; south." &297b 00 ; end ; bytecode_for_room_6c_description &297c 0d c4 33 34 fc 24 d8 92 86 67 46 69 06 6a 44 34 ; "You're in a red corridor that runs north and south. There is a &298c 51 38 fc 48 5d 04 ; door on each side." &2992 00 ; end ; bytecode_for_room_6d_description &2993 0d 41 66 d0 33 34 bc fb 43 72 34 ff 31 46 ff 4d ; "You find yourself in a small office with a desk and chair." &29a3 04 &29a4 97 ; if(!room.flags[1]) &29a5 01 ; { &29a6 0d fb be 32 45 ff 31 44 34 ff 19 fe 39 04 ; "screwed to the desk is a bell push." &29b4 03 ; } &29b5 0d 6a 42 fc 73 4a 46 47 04 ; "there are doors east and west." &29be 00 ; end ; bytecode_for_room_6e_description &29bf 0d 41 54 be 45 2e c1 17 29 1d 1e 11 23 19 25 1d ; "You have entered the Tardis gymnasium, which has the appearance &29cf 0b ae 57 45 fa d0 48 34 84 fe 3a 13 19 22 13 25 ; of a three ring circus: bars, high wires, trapezes and &29df 23 09 ff 34 0b 73 ff 50 0b fb bf 46 f9 27 42 7d ; trampolines are all available." &29ef fa d1 04 &29f2 00 ; end ; bytecode_for_room_6f_description &29f3 0d 41 42 33 45 c3 fb 27 04 ; "You are in the machine shop." &29fc cc 30 ; if(p["tardis_fire_state"] != 0) &29fe 01 ; { &29ff 0d 45 fc 84 fe 4d 44 11 1c 19 17 18 24 0b 46 41 ; "the whole place is alight, and you are in danger of your &2a0f 42 33 fb 44 48 4b fc 2b 04 ; life." &2a18 04 ; return &2a19 03 ; } &2a1a cc 31 ; if(p["tardis_fire_extinguished"] != 0) &2a1c 01 ; { &2a1d 0d 6a 44 cb 62 4f 49 13 18 11 22 22 15 14 0e 11 ; "there is nothing left here but charred ashes." &2a2d 23 18 15 23 04 &2a32 03 ; } ; else &2a33 01 ; { &2a34 0d 6a 44 34 ff 51 46 34 ff 7c 0b ae 44 12 25 22 ; "there is a lathe and a crucible, which is burning away &2a44 1e 19 1e 17 7c 1d 15 22 22 19 1c 29 06 fc 75 32 ; merrily. Fixed to the work bench is a small hexagonal &2a54 45 fb 28 ff 52 44 34 bc e1 ff 53 04 ; mould." &2a60 03 ; } &2a61 0d 6a 42 fb 42 67 46 47 04 ; "there are exits north and west." &2a6a 00 ; end ; bytecode_for_room_70_description &2a6b 0d 41 42 33 34 bc 27 1f 22 1b 23 18 1f 20 04 ; "You are in a small workshop." &2a7a e7 ; if(!room.flags[6]) &2a7b 01 ; { &2a7c 0d fc e4 38 45 ff 52 44 45 2e d9 81 ff 87 04 ; "lying on the bench is the Doctor's sonic screwdriver." &2a8b 03 ; } &2a8c 0d 45 fe 27 44 4a 04 ; "the exit is east." &2a93 00 ; end ; bytecode_for_room_71_description &2a94 0d 41 42 33 45 2e c1 fb 45 9a 0b ae 44 84 56 ba ; "You are in the Tardis sewing room, which is three feet square, &2aa4 0b 46 fc e8 06 45 2e 6b a3 1c 19 1b 15 14 fb 45 ; and empty. The Doctor never liked sewing much." &2ab4 fb 46 04 &2ab7 00 ; end ; bytecode_for_room_72_description &2ab8 0d 41 42 33 45 1d 25 23 19 13 9a 0b ae 44 34 fb ; "You are in the music room, which is a miniature version of the &2ac8 c0 fa 51 48 45 2e 11 1c 12 15 22 24 0e 99 04 ; Albert hall." &2ad7 e7 ; if(!room.flags[6]) &2ad8 01 ; { &2ad9 0d 6a 44 34 ff 0b 48 ff 66 38 45 ff 4f 23 24 1f ; "there is a bag of florins on the piano stool. On the bag is &2ae9 1f 1c 06 38 45 ff 0b 44 c5 09 72 fc 52 24 18 11 ; written: with many thanks from Wolfgang Amadeus." &2af9 1e 1b 23 6e 2e 27 1f 1c 16 17 11 1e 17 0e 2e 11 &2b09 1d 11 14 15 25 23 04 &2b10 03 ; } &2b11 00 ; end ; bytecode_for_room_73_description &2b12 0d 41 42 33 45 2e fb 47 2e a2 2e 9a 06 34 fa cf ; "You are in the Library Index Room. A telepathic index machine &2b22 a2 c3 1f 13 13 25 20 19 15 23 45 fc 84 48 45 4a ; occupies the whole of the east wall. The only exit is south." &2b32 87 06 45 93 fe 27 44 69 04 &2b3b 00 ; end ; bytecode_for_room_74_description &2b3c c7 ; if(!room.flags[4]) &2b3d 01 ; { &2b3e 0e ; skip_to_next_bytecode() &2b3f 03 ; } &2b40 0d 41 42 38 45 47 5d 48 45 fe 5c 06 34 51 b2 47 ; "You are on the west side of the store. A door leads west into &2b50 55 45 9f fb 3e 04 ; the white passage." &2b56 00 ; end ; bytecode_for_room_75_description &2b57 c7 ; if(!room.flags[4]) &2b58 01 ; { &2b59 0e ; skip_to_next_bytecode() &2b5a 03 ; } &2b5b 0d 41 42 38 45 67 5d 48 45 fe 5c 04 ; "You are on the north side of the store." &2b67 00 ; end ; bytecode_for_room_76_description &2b68 c7 ; if(!room.flags[4]) &2b69 01 ; { &2b6a 0e ; skip_to_next_bytecode() &2b6b 03 ; } &2b6c 0d 41 42 38 45 69 5d 48 45 fe 5c 04 ; "You are on the south side of the store." &2b78 00 ; end ; bytecode_for_room_77_description &2b79 c7 ; if(!room.flags[4]) &2b7a 01 ; { &2b7b 0d 41 54 be 3b fc e8 fe 5c 9a 0b 43 48 fc 52 33 ; "You have entered an empty store room, one of many in the &2b8b 45 2e c1 06 45 9a 44 fa d2 9c 34 fb 0a ba 46 41 ; Tardis. The room is roughly half a mile square and you &2b9b 9d 4e 45 fb aa 0b fb 99 45 ff 4c 44 fc 5e fc f2 ; cannot see the ceiling, though the light is quite bright." &2bab 04 &2bac 04 ; return &2bad 03 ; } &2bae 0d 41 42 38 45 4a 5d 48 45 fe 5c 06 6a 44 34 bc ; "you are on the east side of the store. There is a small arch in &2bbe fc 74 33 45 87 04 ; the wall." &2bc4 00 ; end ; bytecode_for_room_78_description &2bc5 0d 41 66 d0 33 45 fb c1 fb 0f fb 48 9a 0b 34 bc ; "You find yourself in the principal data storage room, a small &2bd5 9a 72 3b fc 74 38 45 47 5d 04 ; room with an arch on the west side." &2bdf 8c 2f 05 ; if(p["doctor_state"] == &01) &2be2 01 ; { &2be3 0d 45 2e 6b 44 ce 50 45 ff 76 fb c2 04 ; "the Doctor is standing by the computer terminal." &2bf0 14 23 ; p["is_following_doctor"] = 0 &2bf2 03 ; } &2bf3 00 ; end ; bytecode_for_room_79_description &2bf4 0d 41 42 33 45 fc 66 fc e2 48 45 2e c1 fb 47 0b ; "You are in the first section of the Tardis library, which &2c04 ae fb c3 fa d2 84 46 34 9c fa 52 fb 49 06 45 2e ; contains roughly three and a half billion books. The Doctor is a &2c14 6b 44 34 fa d3 22 15 11 14 15 22 04 ; voracious reader." &2c20 ff ; if(room.flags[7]) &2c21 01 ; { &2c22 0d 2d 34 fb 4a ff 54 ff 82 11 27 11 19 24 23 4b ; "\nA snooty robot librarian awaits your instructions." &2c32 f9 4c 04 &2c35 03 ; } &2c36 00 ; end ; bytecode_for_room_7a_description &2c37 0d 41 42 16 11 1c 1c 19 1e 17 0b 16 11 1c 1c 19 ; "You are falling, falling, falling, in what appears to be a &2c47 1e 17 0b 16 11 1c 1c 19 1e 17 0b 33 89 cf 32 36 ; bottomless pit. . . \n" &2c57 34 f9 21 fc 27 06 06 06 2d 05 &2c61 36 ; p["character"] = read_character() &2c62 0d 2d 2c 13 22 25 1e 13 18 08 2c 0e 37 fa 21 f9 ; "\nCRUNCH! it wasn't bottomless after all. \n" &2c72 21 fc 85 7d 06 2d 05 &2c79 0e ; skip_to_next_bytecode() &2c7a 00 ; end ; bytecode_for_room_7b_description &2c7b 0d 2d 41 fa cd 31 20 2f 29 0e 48 45 fc 2c 06 2d ; "\nYou completed p["score"]% of the game. \nPress any key to &2c8b fe 50 fc 11 1b 15 29 32 fe 6d 06 2d 05 ; restart. \n" &2c98 36 ; p["character"] = read_character() &2c99 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &2ca0 8c 24 17 ; if(p["character"] == &13) &2ca3 01 ; { &2ca4 6e ; restore_position(); &2ca5 03 ; } ; else &2ca6 01 ; { &2ca7 2e ; restore_initial_position() &2ca8 03 ; } &2ca9 56 ; execute_bytecode_for_room() &2caa cc 25 ; if(p["is_riding_hovercycle"] != 0) &2cac 01 ; { &2cad 0d 2d 41 42 38 34 ff 84 0b fc 5b 4a 04 ; "\nYou are on a hovercycle, going east." &2cba 03 ; } &2cbb 0c 06 09 ; p["output_written"] = &02 &2cbe 00 ; end ; bytecode_for_object_descriptions ; bytecode_for_object_01_description ("florins") &2cbf 0d 34 ff 0b 48 ff 66 05 ; "a bag of florins" &2cc7 00 ; end ; bytecode_for_object_02_description ("can") &2cc8 0d 34 fc e6 4d 05 ; "a rusty can" &2cce 00 ; end ; bytecode_for_object_03_description ("gum") &2ccf 0d 34 fb 4b 48 d6 ff 0d 05 ; "a stick of chewing gum" &2cd8 00 ; end ; bytecode_for_object_04_description ("pea") &2cd9 0d 34 ff 0e 05 ; "a pea" &2cde 00 ; end ; bytecode_for_object_05_description ("meat") &2cdf 0d 34 9c 13 1f 1f 1b 15 14 ff 0f 05 ; "a half cooked rat" &2ceb 00 ; end ; bytecode_for_object_06_description ("tag") &2cec 0d 34 6f e0 ff 10 05 ; "a metal security tag" &2cf3 00 ; end ; bytecode_for_object_07_description ("bell") &2cf4 0d 34 ff 19 fe 39 05 ; "a bell push" &2cfb 00 ; end ; bytecode_for_object_08_description ("disk") &2cfc 0d 34 6f ff 1a 05 ; "a metal disc" &2d02 00 ; end ; bytecode_for_object_09_description ("keys") &2d03 0d 34 12 25 1e 13 18 48 ff 1c 05 ; "a bunch of keys" &2d0e 00 ; end ; bytecode_for_object_0a_description ("lantern") &2d0f 94 37 06 ; if(p["lantern_state"] > &02) &2d12 01 ; { &2d13 0d 34 f9 28 05 ; "a flickering" &2d18 03 ; } ; else &2d19 01 ; { &2d1a 0d 3b 25 1e 1c 19 24 05 ; "an unlit" &2d22 03 ; } &2d23 0d 0e ff 67 05 ; " lantern" &2d28 00 ; end ; bytecode_for_object_0b_description ("rope") &2d29 0d 34 13 1f 19 1c 48 ff 1e 05 ; "a coil of rope" &2d33 00 ; end ; bytecode_for_object_0c_description ("soap") &2d34 0d 34 fa 09 48 ff 1f 05 ; "a bar of soap" &2d3c 00 ; end ; bytecode_for_object_0d_description ("lance") &2d3d 0d 34 81 ff 3b 05 ; "a sonic lance" &2d43 00 ; end ; bytecode_for_object_0e_description ("locket") &2d44 0d 34 7f ff 56 05 ; "a gold locket" &2d4a 00 ; end ; bytecode_for_object_0f_description ("needle") &2d4b 0d 34 ff 57 05 ; "a needle" &2d50 00 ; end ; bytecode_for_object_10_description ("feather") &2d51 0d 3b fb c4 ff 68 05 ; "an eagle's feather" &2d58 00 ; end ; bytecode_for_object_11_description ("matches") &2d59 0d 59 ff 69 05 ; "some matches" &2d5e 00 ; end ; bytecode_for_object_12_description ("dungarees") &2d5f 0d 34 fc 2d 48 5c f9 4d ff 7e 05 ; "a pair of time travellers' dungarees" &2d6a 00 ; end ; bytecode_for_object_13_description ("toothpick") &2d6b 0d 3b 19 26 1f 22 29 ff 7f 05 ; "an ivory toothpick" &2d75 00 ; end ; bytecode_for_object_14_description ("screwdriver") &2d76 0d 45 2e d9 81 ff 87 05 ; "the Doctor's sonic screwdriver" &2d7e 00 ; end ; bytecode_for_object_15_description ("boots") &2d7f 0d 34 fc 2d 48 79 ff 3d 05 ; "a pair of space boots" &2d88 00 ; end ; bytecode_for_object_16_description ("bulb") &2d89 0d 34 ff 4c ff 21 05 ; "a light bulb" &2d90 00 ; end ; bytecode_for_object_17_description ("paper") &2d91 0d 34 ff 3e 48 ff 3f 72 fa 53 38 37 05 ; "a scrap of paper with writing on it" &2d9e 00 ; end ; bytecode_for_object_18_description ("glass") &2d9f 0d 59 fc e9 ff 40 05 ; "some broken glass" &2da6 00 ; end ; bytecode_for_object_19_description ("radio") &2da7 0d 34 fc 08 4c ff 41 05 ; "a two way radio" &2daf 00 ; end ; bytecode_for_object_1a_description ("silver") &2db0 0d 34 ff 5a ff 59 05 ; "a silver button" &2db7 00 ; end ; bytecode_for_object_1b_description ("roubles") &2db8 0d c0 fc 86 e9 ff 6a 05 ; "several dozen radioactive roubles" &2dc0 00 ; end ; bytecode_for_object_1c_description ("drink") &2dc1 0d 34 24 11 1e 1b 11 22 14 48 ff 11 05 ; "a tankard of ale" &2dce 00 ; end ; bytecode_for_object_1d_description ("wig") &2dcf 0d 34 9e ff 12 05 ; "a green wig" &2dd5 00 ; end ; bytecode_for_object_1e_description ("bone") &2dd6 0d 34 ff 25 05 ; "a bone" &2ddb 00 ; end ; bytecode_for_object_1f_description ("book") &2ddc 0d 34 fa 54 12 1f 25 1e 14 ff 26 05 ; "a leather bound book" &2de8 00 ; end ; bytecode_for_object_20_description ("card") &2de9 0d 3b a2 ff 27 05 ; "an index card" &2def 00 ; end ; bytecode_for_object_21_description ("robe") &2df0 0d 3b fc 77 ff 28 05 ; "an ermine robe" &2df7 00 ; end ; bytecode_for_object_22_description ("snow") &2df8 0d 59 ff 29 05 ; "some snow" &2dfd 00 ; end ; bytecode_for_object_23_description ("beaujolais") &2dfe 0d 34 ff 5b 05 ; "a flagon" &2e03 c4 37 ; if(p["lantern_state"] == 0) &2e05 01 ; { &2e06 0d 0e 48 ff 2a 05 ; " of wine" &2e0c 03 ; } &2e0d 00 ; end ; bytecode_for_object_24_description ("hovercycle") &2e0e 0d 34 fb 41 ff 84 05 ; "a yellow hovercycle" &2e15 00 ; end ; bytecode_for_object_25_description ("scroll") &2e16 0d 34 fa d4 ff 5c 05 ; "a parchment scroll" &2e1d 00 ; end ; bytecode_for_object_26_description ("watches") &2e1e 0d 45 2e d9 ff 17 ff 45 05 ; "the Doctor's fob watch" &2e27 00 ; end ; bytecode_for_object_27_description ("letter") &2e28 0d 34 ff 5d 6e 45 2e 6b 05 ; "a letter from the Doctor" &2e31 00 ; end ; bytecode_for_object_28_description ("bottle") &2e32 0d 34 fc e9 ff 5e 05 ; "a broken bottle" &2e39 00 ; end ; bytecode_for_object_29_description ("computers") &2e3a 0d 34 fc 6f ff 76 05 ; "a wrist computer" &2e41 00 ; end ; bytecode_for_object_2a_description ("cylinder") &2e42 0d 34 e1 ff 77 05 ; "a hexagonal cylinder" &2e48 00 ; end ; bytecode_for_object_2b_description ("invitation") &2e49 0d 45 1b 19 1e 17 0f 23 ff 85 05 ; "the king's invitation" &2e54 00 ; end ; bytecode_for_verbs ; bytecode_for_verb_01 ("north") &2e55 0d 41 a4 40 67 04 ; "you can't go north." &2e5b 00 ; end ; bytecode_for_verb_02 ("east") &2e5c 0d e2 35 4c 4a 04 ; "there's no way east." &2e62 00 ; end ; bytecode_for_verb_03 ("south") &2e63 0d fc 41 41 a4 fc 78 ea fc cf 04 ; "even you can't walk through walls." &2e6e 00 ; end ; bytecode_for_verb_04 ("west") &2e6f 0d e2 35 fc 87 47 6e 4f 04 ; "there's no route west from here." &2e78 00 ; end ; bytecode_for_verb_05 ("northeast") &2e79 0e ; skip_to_next_bytecode() &2e7a 00 ; end ; bytecode_for_verb_06 ("northwest") &2e7b 0e ; skip_to_next_bytecode() &2e7c 00 ; end ; bytecode_for_verb_07 ("southeast") &2e7d 0e ; skip_to_next_bytecode() &2e7e 00 ; end ; bytecode_for_verb_08 ("southwest") &2e7f 0d ae 4c 07 05 ; "which way? " &2e84 00 ; end ; bytecode_for_verb_09 ("left") &2e85 0d ae 4c 44 62 07 05 ; "which way is left? " &2e8c 00 ; end ; bytecode_for_verb_0a ("right") &2e8d 0d fe 48 07 ae 4c 44 92 07 05 ; "right? which way is that? " &2e97 00 ; end ; bytecode_for_verb_0b ("down") &2e98 0d 52 6d 07 05 ; "down where? " &2e9d 00 ; end ; bytecode_for_verb_0c ("up") &2e9e 0d 6a 44 35 4c 5e 04 ; "there is no way up." &2ea5 00 ; end ; bytecode_for_verb_0d ("exit") &2ea6 0d fe 27 6d 07 05 ; "exit where? " &2eac 00 ; end ; bytecode_for_verb_0e ("enter") &2ead 0d fe 49 6d 07 05 ; "enter where? " &2eb3 00 ; end ; bytecode_for_verb_0f ("back") &2eb4 bc 06 04 ; if(p["previous_room"] != p["player_room"] and &2eb7 cc 06 ; p["previous_room"] != 0) &2eb9 01 ; { &2eba 2c 04 24 ; p["character"] = p["player_room"] &2ebd 2c 06 04 ; p["player_room"] = p["previous_room"] &2ec0 2c 24 06 ; p["previous_room"] = p["character"] &2ec3 04 ; return &2ec4 03 ; } &2ec5 0d 6c 6d 07 05 ; "back where? " &2eca 00 ; end ; bytecode_for_verb_10 ("forward") &2ecb 0d ae 4c fe 65 07 05 ; "which way forward? " &2ed2 00 ; end ; bytecode_for_verb_11 ("dc") &2ed3 0d 2f 11 2f 87 2f 43 2f 87 05 ; "\r[yellow]?[yellow]" &2edd 66 ; decrypt_hint() &2ede 00 ; end ; bytecode_for_verb_12 ("drink") &2edf 89 27 ; if(first_noun == "beaujolais") &2ee1 01 ; { &2ee2 c4 37 ; if(p["lantern_state"] == 0) &2ee4 01 ; { &2ee5 0d 41 16 19 1e 19 23 18 96 45 2e ff 83 04 ; "you finish off the Beaujolais." &2ef3 1c 2c ; p["drunk_state"] = 1 &2ef5 1c 37 ; p["lantern_state"] = 1 &2ef7 04 ; return &2ef8 03 ; } &2ef9 0d a5 0b fb 10 62 04 ; "sorry, none left." &2f00 04 ; return &2f01 03 ; } &2f02 8c 15 05 ; if(p["first_noun_type"] == &01) &2f05 01 ; { &2f06 0d 34 fc 29 48 fb 25 92 a6 3c 41 04 ; "a lot of good that will do you." &2f12 09 0a ; object_room[first_noun] = &06 &2f14 04 ; return &2f15 03 ; } &2f16 0d fb 11 38 fc 0b 08 05 ; "come on now! " &2f1e 00 ; end ; bytecode_for_verb_13 ("bow") &2f1f 0d 4b fb 4c 44 5f f9 4e 04 ; "your gesture is not appreciated." &2f28 00 ; end ; bytecode_for_verb_14 ("buy") &2f29 0d c4 5f 33 45 b9 04 ; "you're not in the market." &2f30 00 ; end ; bytecode_for_verb_15 ("dig") &2f31 94 04 3f ; if(p["player_room"] > &3b) &2f34 01 ; { &2f35 0d 41 a4 04 ; "you can't." &2f39 04 ; return &2f3a 03 ; } &2f3b 0d 92 fb 29 41 fb 4d 04 ; "that gets you nowhere." &2f43 00 ; end ; bytecode_for_verb_16 ("take") &2f44 ac 0e 0d ; if(p["number_of_objects_carried"] == p["maximum_objects_carried"]) &2f47 01 ; { &2f48 0d 2b 06 a5 0b fb c5 7d 41 4d fc 88 05 4b 18 11 ; "" + random("sorry, that's all you can carry", "your hands &2f58 1e 14 23 42 fc df 05 04 04 ; are full") + "." &2f61 04 ; return &2f62 03 ; } &2f63 89 42 ; if(first_noun == "all") &2f65 01 ; { &2f66 c4 0a ; if(p["number_of_objects_in_player_room"] == 0) &2f68 01 ; { &2f69 0d e2 cb 4f 32 fe 29 04 ; "there's nothing here to take." &2f71 04 ; return &2f72 03 ; } &2f73 0d 41 fe 29 05 ; "you take" &2f78 2c 04 0b ; p["old_room"] = p["player_room"] &2f7b 1c 0c ; p["new_room"] = 1 &2f7d 1c 0f ; p["consider_inventory_size"] = 1 &2f7f 06 ; list_objects(p["old_room"]. p["new_room"]) &2f80 0d 04 ; "." &2f82 14 0f ; p["consider_inventory_size"] = 0 &2f84 6f ; room.flags[6] = true &2f85 ac 0e 0d ; if(p["number_of_objects_carried"] == p["maximum_objects_carried"]) &2f88 01 ; { &2f89 0d 2d fb c5 7d 41 4d fc 88 04 ; "\nThat's all you can carry." &2f93 03 ; } &2f94 04 ; return &2f95 03 ; } &2f96 8c 15 08 ; if(p["first_noun_type"] == &04) &2f99 01 ; { &2f9a 0d fc 1a fc b8 53 41 06 a5 04 ; "too heavy for you. Sorry." &2fa4 04 ; return &2fa5 03 ; } &2fa6 8c 15 09 ; if(p["first_noun_type"] == &05) &2fa9 01 ; { &2faa 0d 41 a4 04 ; "you can't." &2fae 04 ; return &2faf 03 ; } &2fb0 e9 0b ; if(object_room[first_noun] == &07) &2fb2 01 ; { &2fb3 0d 2b 06 24 22 19 13 1b 29 05 fa d5 05 04 04 ; "" + random("tricky", "difficult") + "." &2fc2 04 ; return &2fc3 03 ; } &2fc4 e1 ; if(object_room[first_noun] == player_room) &2fc5 01 ; { &2fc6 19 ; object_room[first_noun] = 1 &2fc7 0d 2b 06 a7 05 fc 2e 05 04 04 ; "" + random("okay", "done") + "." &2fd1 6f ; room.flags[6] = true &2fd2 04 ; return &2fd3 03 ; } &2fd4 d9 ; if(object_room[first_noun] == "carrying") &2fd5 01 ; { &2fd6 0d 41 42 2b 06 18 1f 1c 14 19 1e 17 05 fe 70 05 ; "you are " + random("holding", "carrying") + " that " + &2fe6 04 0e 92 2b 06 e3 05 05 04 04 ; random("already", "") + "." &2ff0 04 ; return &2ff1 03 ; } &2ff2 d1 ; if(object_room[first_noun] == "wearing") &2ff3 01 ; { &2ff4 0d 49 c4 fe 6c 92 04 ; "but you're wearing that." &2ffb 04 ; return &2ffc 03 ; } &2ffd 15 ; print verb &2ffe 0d 89 07 05 ; "what? " &3002 0c 07 09 ; p["output_written"] = &03 &3005 00 ; end ; bytecode_for_verb_17 ("attack") &3006 0e ; skip_to_next_bytecode() &3007 00 ; end ; bytecode_for_verb_18 ("shoot") &3008 db 11 ; if(object_room["lance"] == "carrying") &300a 01 ; { &300b cc 2e ; if(p["lance_used"] != 0) &300d 01 ; { &300e 0d 6a 44 35 fb 4e 62 33 45 ff 3b 04 ; "there is no charge left in the lance." &301a 04 ; return &301b 03 ; } &301c 0d 41 fe 2b 45 ff 3b 0b 49 f5 35 fb 2a 44 fc 2e ; "you fire the lance, but fortunately no harm is done." &302c 04 &302d 44 2e ; p["lance_used"] ++ &302f 04 ; return &3030 03 ; } &3031 88 1b ; if(verb == "attack") &3033 01 ; { &3034 0e ; skip_to_next_bytecode() &3035 03 ; } &3036 0d 41 54 35 cc 04 ; "you have no weapons." &303c 00 ; end ; bytecode_for_verb_19 ("kick") &303d 0d f9 29 a6 fe 1b 41 fb 4d 4f 04 ; "aggression will get you nowhere here." &3048 00 ; end ; bytecode_for_verb_1a ("tie") &3049 99 0f ; if(first_noun != "rope") &304b 01 ; { &304c 0d 41 a4 3c 92 04 ; "you can't do that." &3052 04 ; return &3053 03 ; } &3054 9d 47 02 ; if(preposition != "to" or &3057 c2 ; second_noun == 0) &3058 01 ; { &3059 0d fe 1d 37 32 89 07 05 ; "tie it to what? " &3061 04 ; return &3062 03 ; } &3063 8a 30 ; if(second_noun == "tree") &3065 01 ; { &3066 8c 04 26 02 ; if(p["player_room"] == &22 or &306a 8c 04 2f 02 ; p["player_room"] == &2b or &306e 8c 04 09 02 ; p["player_room"] == &05 or &3072 8c 04 64 ; p["player_room"] == &60) &3075 01 ; { &3076 0d a7 04 ; "okay." &3079 09 0b ; object_room[first_noun] = &07 &307b 3f ; room.flags[3] = true &307c 04 ; return &307d 03 ; } &307e 0d 89 ff 2b 07 05 ; "what tree? " &3084 03 ; } &3085 0d fa d5 04 ; "difficult." &3089 00 ; end ; bytecode_for_verb_1b ("ask") &308a 8c 08 05 ; if(p["total_words"] == &01) &308d 01 ; { &308e 15 ; print verb &308f 0d 89 07 05 ; "what? " &3093 04 ; return &3094 03 ; } &3095 89 1d 02 ; if(first_noun == "radio" or &3098 8a 1d ; second_noun == "radio") &309a 01 ; { &309b 0c 1d 11 ; p["first_noun"] = "radio:= &19" &309e 03 ; } &309f 0e ; skip_to_next_bytecode() &30a0 00 ; end ; bytecode_for_verb_1c ("speak") &30a1 89 1d ; if(first_noun == "radio") &30a3 01 ; { &30a4 0e ; skip_to_next_bytecode() &30a5 03 ; } &30a6 ff ; if(room.flags[7]) &30a7 01 ; { &30a8 0d 1e 1f 12 1f 14 29 fb c6 04 ; "nobody replies." &30b2 04 ; return &30b3 03 ; } &30b4 0d 6a 44 35 43 32 fe 2d 32 04 ; "there is no one to talk to." &30be 00 ; end ; bytecode_for_verb_1d ("use") &30bf 89 2d ; if(first_noun == "computers") &30c1 01 ; { &30c2 0d 41 fc 89 3b fa d6 53 34 74 06 37 44 9b 34 5c ; "you play an adventure for a while. It is about a time &30d2 fa d7 61 1c 1f 23 15 23 5a ff 45 0b 46 68 fa d5 ; traveller who loses his watch, and very difficult." &30e2 04 &30e3 04 ; return &30e4 03 ; } &30e5 89 1d ; if(first_noun == "radio") &30e7 01 ; { &30e8 94 2a 24 ; if(p["radio_battery_used"] > &20) &30eb 01 ; { &30ec 0d 45 ff 41 fb c7 54 22 25 1e 5b 04 ; "the radio batteries have run out." &30f8 04 ; return &30f9 03 ; } &30fa c4 39 ; if(p["radio_state"] == 0) &30fc 01 ; { &30fd 0d a1 23 27 19 24 13 18 15 14 96 04 ; "it's switched off." &3109 04 ; return &310a 03 ; } &310b 94 04 11 02 ; if(p["player_room"] > &0d or &310f 9c 3a 05 ; p["tardis_state"] != &01) &3112 01 ; { &3113 0d 41 18 15 11 22 cb 49 18 19 23 23 19 1e 17 0e ; "you hear nothing but hissing static." &3123 23 24 11 24 19 13 04 &312a 04 ; return &312b 03 ; } &312c 0d 45 2e d9 26 1f 19 13 15 fb c6 09 2e 18 15 1c ; "the Doctor's voice replies: Hello! where have you been? lost &313c 1c 1f 08 6d 54 41 fc 16 07 fc 1c 33 45 fc 0a 07 ; in the fog? the easiest way to find the Tardis is to go to &314c 45 fa 55 4c 32 66 45 2e c1 44 32 40 32 45 fc 36 ; the tall tree, and move southeast. I'll have the door open &315c ff 2b 0b 46 fc 2f fe 73 06 fb 3d 54 45 51 97 53 ; for you." &316c 41 04 &316e 44 3a ; p["tardis_state"] ++ &3170 24 82 20 ; p["score"] += &02 &3173 04 ; return &3174 03 ; } &3175 0d fc 1d fc 30 07 05 ; "like how? " &317c 00 ; end ; bytecode_for_verb_1e ("doff") &317d 89 16 ; if(first_noun == "dungarees") &317f 01 ; { &3180 0d fc 80 44 34 f9 2a fa d6 08 05 ; "this is a respectable adventure! " &318b 04 ; return &318c 03 ; } &318d d1 ; if(object_room[first_noun] == "wearing") &318e 01 ; { &318f 39 ; object_room[first_noun] = player_room &3190 0d fc 31 04 ; "fine." &3194 04 ; return &3195 03 ; } &3196 e1 02 ; if(object_room[first_noun] == player_room or &3198 d9 ; object_room[first_noun] == "carrying") &3199 01 ; { &319a 0d c4 5f fe 6c 92 04 ; "you're not wearing that." &31a1 04 ; return &31a2 03 ; } &31a3 1d ; print first_noun &31a4 0d 07 05 ; "? " &31a7 00 ; end ; bytecode_for_verb_1f ("place") &31a8 cd ; if(preposition != 0) &31a9 01 ; { &31aa 0e ; skip_to_next_bytecode() &31ab 03 ; } &31ac 15 ; print verb &31ad 0d 37 6d 07 05 ; "it where? " &31b2 00 ; end ; bytecode_for_verb_20 ("replace") &31b3 0e ; skip_to_next_bytecode() &31b4 00 ; end ; bytecode_for_verb_21 ("drop") &31b5 89 16 ; if(first_noun == "dungarees") &31b7 01 ; { &31b8 0d 35 fa 56 04 ; "no comment." &31bd 04 ; return &31be 03 ; } &31bf 89 42 ; if(first_noun == "all") &31c1 01 ; { &31c2 c4 0e ; if(p["number_of_objects_carried"] == 0) &31c4 01 ; { &31c5 0d c4 5f fe 70 e4 04 ; "you're not carrying anything." &31cc 04 ; return &31cd 03 ; } &31ce 0d 41 fe 21 52 05 ; "you put down" &31d4 1c 0b ; p["old_room"] = 1 &31d6 2c 04 0c ; p["new_room"] = p["player_room"] &31d9 06 ; list_objects(p["old_room"]. p["new_room"]) &31da 0d 04 ; "." &31dc 6f ; room.flags[6] = true &31dd 04 ; return &31de 03 ; } &31df d9 02 ; if(object_room[first_noun] == "carrying" or &31e1 d1 ; object_room[first_noun] == "wearing") &31e2 01 ; { &31e3 39 ; object_room[first_noun] = player_room &31e4 0d fc 31 04 ; "fine." &31e8 6f ; room.flags[6] = true &31e9 04 ; return &31ea 03 ; } &31eb 0d c4 5f fe 70 92 04 ; "you're not carrying that." &31f2 00 ; end ; bytecode_for_verb_22 ("give") &31f3 89 3a ; if(first_noun == "doctor") &31f5 01 ; { &31f6 0d fe 31 89 32 45 2e 6b 07 05 ; "give what to the Doctor? " &3200 04 ; return &3201 03 ; } &3202 ff ; if(room.flags[7]) &3203 01 ; { &3204 0d 4b 1f 16 16 15 22 44 5f 11 13 13 15 20 24 15 ; "your offer is not accepted." &3214 14 04 &3216 04 ; return &3217 03 ; } &3218 0d e2 35 43 32 fe 31 37 32 04 ; "there's no one to give it to." &3222 00 ; end ; bytecode_for_verb_23 ("make") &3223 0d 89 42 41 fb c8 9b 07 05 ; "what are you talking about? " &322c 00 ; end ; bytecode_for_verb_24 ("show") &322d ff ; if(room.flags[7]) &322e 01 ; { &322f 0d fc 80 fb c9 13 11 25 23 15 23 34 23 24 19 22 ; "this hardly causes a stir." &323f 04 &3240 04 ; return &3241 03 ; } &3242 0d e2 35 43 32 fe 33 37 32 04 ; "there's no one to show it to." &324c 00 ; end ; bytecode_for_verb_25 ("throw") &324d d9 ; if(object_room[first_noun] == "carrying") &324e 01 ; { &324f 0d f9 29 a6 fe 1b 41 fb 4d 4f 04 ; "aggression will get you nowhere here." &325a 39 ; object_room[first_noun] = player_room &325b 04 ; return &325c 03 ; } &325d 0d c4 5f fe 70 fc 11 05 ; "you're not carrying any" &3265 1d ; print first_noun &3266 0d 04 ; "." &3268 00 ; end ; bytecode_for_verb_26 ("jump") &3269 0d fc 30 13 25 24 15 04 ; "how cute." &3271 00 ; end ; bytecode_for_verb_27 ("fill") &3272 99 0e ; if(first_noun != "lantern") &3274 01 ; { &3275 0d 41 a4 04 ; "you can't." &3279 04 ; return &327a 03 ; } &327b c2 ; if(second_noun == 0) &327c 01 ; { &327d 0d 72 89 07 05 ; "with what? " &3282 04 ; return &3283 03 ; } &3284 8d 4c ; if(preposition == "with") &3286 01 ; { &3287 8a 27 ; if(second_noun == "beaujolais") &3289 01 ; { &328a cc 37 ; if(p["lantern_state"] != 0) &328c 01 ; { &328d 0d e2 35 ff 2a 62 04 ; "there's no wine left." &3294 04 ; return &3295 03 ; } &3296 0d a7 04 ; "okay." &3299 0c 06 37 ; p["lantern_state"] = &02 &329c 04 ; return &329d 03 ; } &329e 03 ; } &329f 0d a5 07 05 ; "sorry? " &32a3 00 ; end ; bytecode_for_verb_28 ("pour") &32a4 99 27 ; if(first_noun != "beaujolais") &32a6 01 ; { &32a7 0d fb 11 38 08 05 ; "come on! " &32ad 04 ; return &32ae 03 ; } &32af cc 37 ; if(p["lantern_state"] != 0) &32b1 01 ; { &32b2 0d e2 fb 10 62 06 a5 04 ; "there's none left. Sorry." &32ba 04 ; return &32bb 03 ; } &32bc 8d 44 ; if(preposition == "into" and &32be 8a 0e 02 ; second_noun == "lantern" or &32c1 8d 46 ; preposition == "onto" and &32c3 8a 39 ; second_noun == "mirror") &32c5 01 ; { &32c6 0d 45 ff 61 33 45 ff 1d 18 19 23 23 15 23 46 fc ; "the powder in the lamp hisses and gives off odorous fumes." &32d6 68 96 1f 14 1f 22 1f 25 23 0e 16 25 1d 15 23 04 &32e6 0c 06 37 ; p["lantern_state"] = &02 &32e9 04 ; return &32ea 03 ; } &32eb 0d 45 ff 2a 20 1f 25 22 23 ff 38 45 a0 46 24 22 ; "the wine pours onto the floor and trickles away." &32fb 19 13 1b 1c 15 23 7c 04 &3303 1c 37 ; p["lantern_state"] = 1 &3305 00 ; end ; bytecode_for_verb_29 ("lift") &3306 0e ; skip_to_next_bytecode() &3307 00 ; end ; bytecode_for_verb_2a ("press") &3308 89 0b ; if(first_noun == "bell") &330a 01 ; { &330b 0e ; skip_to_next_bytecode() &330c 03 ; } &330d 0d cb e5 04 ; "nothing happens." &3311 00 ; end ; bytecode_for_verb_2b ("ring") &3312 89 0b ; if(first_noun == "bell") &3314 01 ; { &3315 d9 ; if(object_room[first_noun] == "carrying") &3316 01 ; { &3317 0d fc 8a 08 89 fa 0a 04 ; "ping! what fun." &331f 04 ; return &3320 03 ; } &3321 0d 89 ff 19 07 05 ; "what bell? " &3327 04 ; return &3328 03 ; } &3329 0d 42 41 13 22 11 2a 29 07 05 ; "are you crazy? " &3333 00 ; end ; bytecode_for_verb_2c ("read") &3334 89 2b ; if(first_noun == "letter") &3336 01 ; { &3337 0d 45 ff 5d 44 c5 33 45 2e d9 b6 fb ca 06 3e fc ; "the letter is written in the Doctor's familiar scrawl. He &3347 8b 41 42 11 1c 22 19 17 18 24 0b 46 15 28 20 1c ; hopes you are alright, and explains that he had to go ahead &3357 11 19 1e 23 92 3e fa 0b 32 40 fc ca 32 45 8f 32 ; to the castle to warn the king of a plot. You should go with &3367 27 11 22 1e 45 7a 48 34 20 1c 1f 24 06 41 fb cb ; the blood guard, who can be trusted; they will bring you to &3377 40 72 45 fc af ac 0b 61 4d 36 24 22 25 23 24 15 ; the castle. \nP. S. Have you seen his watch anywhere? " &3387 14 0a 7b a6 fc 8c 41 32 45 8f 06 2d 20 06 23 06 &3397 54 41 fc 32 5a ff 45 fb cc 07 05 &33a2 03 ; } &33a3 89 2f ; if(first_noun == "invitation") &33a5 01 ; { &33a6 0d 45 ff 5a 15 1d 12 1f 23 23 15 14 fb cd fb 3f ; "the silver embossed lettering reads: \nHis Royal Highness &33b6 09 2d 5a 2e 22 1f 29 11 1c 0e 2e 18 19 17 18 1e ; King Varangar V requests the pleasure of your company in the &33c6 15 23 23 2e 0e 7a 2e ca 2e 26 fb ce 45 20 1c 15 ; great hall tonight, in celebration of his victory." &33d6 11 23 25 22 15 48 4b 13 1f 1d 20 11 1e 29 33 45 &33e6 8d 99 fb 4f 0b 33 fa d8 48 5a fb 50 04 &33f3 03 ; } &33f4 89 1b ; if(first_noun == "paper") &33f6 01 ; { &33f7 0d 45 ff 22 44 fa d9 1f 27 19 1e 17 32 45 fc 6d ; "the note is illegible owing to the manner in which it was &3407 33 ae 37 fc 15 c5 04 ; written." &340e 03 ; } &340f 89 29 ; if(first_noun == "scroll") &3411 01 ; { &3412 0d 45 ff 5c 44 c5 33 34 fb cf 3a 13 1f 14 15 41 ; "the scroll is written in a language or code you have never &3422 54 a3 fc 32 8e 04 ; seen before." &3428 03 ; } &3429 89 24 ; if(first_noun == "card") &342b 01 ; { &342c 0d 93 34 ff 54 4d fe 3b 37 04 ; "only a robot can read it." &3436 03 ; } &3437 89 23 ; if(first_noun == "book") &3439 01 ; { &343a 0d 37 fb 3c 68 fa 0c 46 12 1f 22 19 1e 17 0e 23 ; "it looks very dry and boring stuff." &344a 24 25 16 16 04 &344f 03 ; } &3450 c4 09 ; if(p["output_written"] == 0) &3452 01 ; { &3453 0d 42 41 23 15 22 19 1f 25 23 07 05 ; "are you serious? " &345f 03 ; } &3460 00 ; end ; bytecode_for_verb_2d ("wait") &3461 0d cb e5 04 ; "nothing happens." &3465 00 ; end ; bytecode_for_verb_2e ("wear") &3466 d1 ; if(object_room[first_noun] == "wearing") &3467 01 ; { &3468 0d c4 fe 6c 92 e3 04 ; "you're wearing that already." &346f 04 ; return &3470 03 ; } &3471 89 19 ; if(first_noun == "boots" and &3473 c4 32 ; p["antigrav_boots_state"] == 0) &3475 01 ; { &3476 0d 58 41 fe 21 38 45 ff 3d 0b 45 fb d0 fb 51 33 ; "as you put on the boots, the antigrav motors in the heels &3486 45 fb 52 fc 3c 5e f9 5b 05 ; start up automatically" &348f 94 04 3f ; if(p["player_room"] > &3b) &3492 01 ; { &3493 0d 06 8a 8e 4b fc 8d 13 22 11 23 18 15 23 55 45 ; ". Just before your head crashes into the ceiling, " &34a3 fb aa 0b 05 &34a7 03 ; } ; else &34a8 01 ; { &34a9 0d 0b fa 57 41 c0 cd 56 55 45 fc 0d 8e 45 fb 53 ; ", lifting you several hundred feet into the air before &34b9 fc 68 5b 06 38 45 4c 52 0b 05 ; the energy gives out. On the way down, " &34c3 03 ; } &34c4 0d 41 fe 31 fb d1 32 45 fb d2 48 f9 2b 0b 46 45 ; "you give thought to the wonders of technology, and the &34d4 fa da 48 fc d3 fa db 04 ; limitations of human knowledge." &34dc 08 7f ; player_room = &7b &34de 04 ; return &34df 03 ; } &34e0 c4 15 ; if(p["first_noun_type"] == 0) &34e2 01 ; { &34e3 e1 02 ; if(object_room[first_noun] == player_room or &34e5 d9 ; object_room[first_noun] == "carrying") &34e6 01 ; { &34e7 0d fe 48 04 ; "right." &34eb 11 ; object_room[first_noun] = 0 &34ec 6f ; room.flags[6] = true &34ed 03 ; } &34ee 04 ; return &34ef 03 ; } &34f0 0d fb d3 07 05 ; "really? " &34f5 00 ; end ; bytecode_for_verb_2f ("break") &34f6 0d 37 fc 8e fe 51 04 ; "it won't break." &34fd 00 ; end ; bytecode_for_verb_30 ("bribe") &34fe ff ; if(room.flags[7]) &34ff 01 ; { &3500 0d f9 2c 04 ; "impossible." &3504 04 ; return &3505 03 ; } &3506 0d 6a 44 35 43 4f 04 ; "there is no one here." &350d 00 ; end ; bytecode_for_verb_31 ("light") &350e db 15 02 ; if(object_room["matches"] == "carrying" or &3511 e3 15 ; object_room["matches"] == player_room) &3513 01 ; { &3514 4f ; room.flags[4] = true &3515 03 ; } ; else &3516 01 ; { &3517 0d 41 54 35 ff 69 04 ; "you have no matches." &351e 04 ; return &351f 03 ; } &3520 89 15 ; if(first_noun == "matches") &3522 01 ; { &3523 0d 45 ff 3c f1 a8 5b 04 ; "the match quickly goes out." &352b 04 ; return &352c 03 ; } &352d 89 1b 02 ; if(first_noun == "paper" or &3530 89 2b 02 ; first_noun == "letter" or &3533 89 29 ; first_noun == "scroll") &3535 01 ; { &3536 0d 45 05 ; "the" &3539 1d ; print first_noun &353a 0d fb 54 32 cb 33 23 15 13 1f 1e 14 23 04 ; "burns to nothing in seconds." &3548 09 0a ; object_room[first_noun] = &06 &354a 04 ; return &354b 03 ; } &354c 89 0e 02 ; if(first_noun == "lantern" or &354f 89 27 ; first_noun == "beaujolais") &3551 01 ; { &3552 8c 37 06 ; if(p["lantern_state"] == &02) &3555 01 ; { &3556 0d 45 ff 1d 16 1c 11 22 15 23 5e 0b f9 5d 45 f9 ; "the lamp flares up, illuminating the surroundings." &3566 4f 04 &3568 44 37 ; p["lantern_state"] ++ &356a 8c 04 48 ; if(p["player_room"] == &44) &356d 01 ; { &356e 2f ; room.flags[2] = true &356f 56 ; execute_bytecode_for_room() &3570 03 ; } &3571 04 ; return &3572 03 ; } &3573 8c 37 07 ; if(p["lantern_state"] == &03) &3576 01 ; { &3577 0d a1 e3 1c 19 24 04 ; "it's already lit." &357e 04 ; return &357f 03 ; } &3580 0d 6a 44 cb 33 45 ff 1d 49 34 fa 0c 17 22 15 29 ; "there is nothing in the lamp but a dry grey powder." &3590 ff 61 04 &3593 04 ; return &3594 03 ; } &3595 c9 ; if(first_noun != 0) &3596 01 ; { &3597 0d 92 fc 8e fb 2b 04 ; "that won't burn." &359e 04 ; return &359f 03 ; } &35a0 15 ; print verb &35a1 0d 89 07 05 ; "what? " &35a5 00 ; end ; bytecode_for_verb_32 ("mount") &35a6 89 28 ; if(first_noun == "hovercycle") &35a8 01 ; { &35a9 cc 25 ; if(p["is_riding_hovercycle"] != 0) &35ab 01 ; { &35ac 0d c4 38 45 ff 84 e3 04 ; "you're on the hovercycle already." &35b4 04 ; return &35b5 03 ; } &35b6 9c 04 13 ; if(p["player_room"] != &0f) &35b9 01 ; { &35ba 0d e2 35 ff 44 4f 04 ; "there's no cycle here." &35c1 04 ; return &35c2 03 ; } &35c3 0d 58 41 fe 1b 38 45 ff 44 0b 37 fb 55 32 fc 2f ; "as you get on the cycle, it begins to move east as if drawn &35d3 4a 58 60 fc 8f 50 59 fb d4 fb 2c 06 45 fb d5 42 ; by some invisible beam. The controls are totally mysterious &35e3 fb b1 f9 2d 32 41 04 ; to you." &35ea 1c 25 ; p["is_riding_hovercycle"] = 1 &35ec 44 20 ; p["score"] ++ &35ee 3f ; room.flags[3] = true &35ef 0b 0b 28 ; object_room["hovercycle"] = &07 &35f2 04 ; return &35f3 03 ; } &35f4 0d 44 92 fb d6 07 05 ; "is that possible? " &35fb 00 ; end ; bytecode_for_verb_33 ("insert") &35fc 0d 5f fb d6 04 ; "not possible." &3601 00 ; end ; bytecode_for_verb_34 ("stand") &3602 0d c4 e3 ce 04 ; "you're already standing." &3607 00 ; end ; bytecode_for_verb_35 ("swing") &3608 0d fa 58 04 ; "bizarre." &360c 00 ; end ; bytecode_for_verb_36 ("think") &360d 8c 08 05 ; if(p["total_words"] == &01) &3610 01 ; { &3611 0d 89 3b 15 16 16 1f 22 24 08 05 ; "what an effort! " &361c 04 ; return &361d 03 ; } &361e 0d cb e5 04 ; "nothing happens." &3622 00 ; end ; bytecode_for_verb_37 ("untie") &3623 99 0f ; if(first_noun != "rope") &3625 01 ; { &3626 0d 18 25 18 07 05 ; "huh? " &362c 04 ; return &362d 03 ; } &362e 8c 04 26 02 ; if(p["player_room"] == &22 or &3632 8c 04 2f 02 ; p["player_room"] == &2b or &3636 8c 04 09 ; p["player_room"] == &05) &3639 01 ; { &363a bf ; if(room.flags[3]) &363b 01 ; { &363c 0d fc 2e 04 ; "done." &3640 19 ; object_room[first_noun] = 1 &3641 04 ; return &3642 03 ; } &3643 03 ; } &3644 0e ; skip_to_next_bytecode() &3645 00 ; end ; bytecode_for_verb_38 ("follow") &3646 c1 ; if(first_noun == 0) &3647 01 ; { &3648 15 ; print verb &3649 0d 61 07 05 ; "who? " &364d 04 ; return &364e 03 ; } &364f 0d 89 42 41 fb c8 9b 07 05 ; "what are you talking about? " &3658 00 ; end ; bytecode_for_verb_39 ("pretend") &3659 0d 41 fc 90 fc 91 11 1e 29 12 1f 14 29 04 ; "you don't fool anybody." &3667 00 ; end ; bytecode_for_verb_3a ("unlock") &3668 db 0d ; if(object_room["keys"] == "carrying") &366a 01 ; { &366b 0d 45 ff 1c fc 90 fa 0d e4 4f 04 ; "the keys don't fit anything here." &3676 04 ; return &3677 03 ; } &3678 0d 41 54 35 ff 1c 04 ; "you have no keys." &367f 00 ; end ; bytecode_for_verb_3b ("switch") &3680 89 1d ; if(first_noun == "radio") &3682 01 ; { &3683 8d 46 ; if(preposition == "onto") &3685 01 ; { &3686 c4 39 ; if(p["radio_state"] == 0) &3688 01 ; { &3689 0d fe 48 04 ; "right." &368d 1c 39 ; p["radio_state"] = 1 &368f 04 ; return &3690 03 ; } &3691 0d 37 44 38 04 ; "it is on." &3696 04 ; return &3697 03 ; } &3698 8d 49 ; if(preposition == "off") &369a 01 ; { &369b c4 39 ; if(p["radio_state"] == 0) &369d 01 ; { &369e 0d 37 44 96 04 ; "it is off." &36a3 04 ; return &36a4 03 ; } &36a5 0d a7 04 ; "okay." &36a8 14 39 ; p["radio_state"] = 0 &36aa 04 ; return &36ab 03 ; } &36ac 0d 38 3a 96 07 05 ; "on or off? " &36b2 04 ; return &36b3 03 ; } &36b4 0d 1f 12 23 13 25 22 15 08 05 ; "obscure! " &36be 00 ; end ; bytecode_for_verb_3c ("dismount") &36bf cc 25 ; if(p["is_riding_hovercycle"] != 0) &36c1 01 ; { &36c2 0d 41 de 0b fc 1a fc 1b 0b 92 fa dc 96 34 fa 59 ; "you discover, too late, that jumping off a vehicle &36d2 f9 2e 39 9b 34 cd 1d 19 1c 15 23 3b 18 1f 25 22 ; travelling at about a hundred miles an hour can easily be &36e2 4d 15 11 23 19 1c 29 36 16 11 24 11 1c 04 ; fatal." &36f0 08 7f ; player_room = &7b &36f2 04 ; return &36f3 03 ; } &36f4 0d 89 3c 41 fb 12 07 05 ; "what do you mean? " &36fc 00 ; end ; bytecode_for_verb_3d ("extract") &36fd 0d 44 92 fb d6 07 05 ; "is that possible? " &3704 00 ; end ; bytecode_for_verb_3e ("hypnotise") &3705 0d fb 56 04 ; "silly." &3709 00 ; end ; bytecode_for_verb_3f ("open") &370a c1 ; if(first_noun == 0) &370b 01 ; { &370c 15 ; print verb &370d 0d 89 07 05 ; "what? " &3711 04 ; return &3712 03 ; } &3713 89 12 ; if(first_noun == "locket") &3715 01 ; { &3716 0e ; skip_to_next_bytecode() &3717 03 ; } &3718 89 33 ; if(first_noun == "trapdoor") &371a 01 ; { &371b 0d 37 44 97 04 ; "it is open." &3720 04 ; return &3721 03 ; } &3722 0d 41 9d 04 ; "you cannot." &3726 00 ; end ; bytecode_for_verb_40 ("examine") &3727 94 04 47 ; if(p["player_room"] > &43 and &372a 84 04 59 ; p["player_room"] < &55 and &372d a7 ; !room.flags[2]) &372e 01 ; { &372f 0d 33 45 90 07 05 ; "in the dark? " &3735 04 ; return &3736 03 ; } &3737 89 11 ; if(first_noun == "lance") &3739 01 ; { &373a 0d 37 44 34 12 15 11 25 24 19 16 25 1c 0e 1d 11 ; "it is a beautiful marksman's sonic lance, hand carved from &374a 22 1b 23 1d 11 1e 0f 23 81 ff 3b 0b 77 fc f3 6e ; ebonite and titanium." &375a fa 5a 46 fb a2 04 &3760 cc 2e ; if(p["lance_used"] != 0) &3762 01 ; { &3763 0d e2 35 fb 4e 62 04 ; "there's no charge left." &376a 03 ; } &376b 04 ; return &376c 03 ; } &376d 89 12 ; if(first_noun == "locket") &376f 01 ; { &3770 0d fa 22 45 ff 56 41 66 34 fb c0 fb 57 48 45 f9 ; "inside the locket you find a miniature portrait of the &3780 49 9e 15 29 15 14 dd 04 ; landlord's green eyed daughter." &3788 04 ; return &3789 03 ; } &378a e9 0b ; if(object_room[first_noun] == &07) &378c 01 ; { &378d 0d fb c5 5f fb 46 fe 3f 04 ; "that's not much help." &3796 04 ; return &3797 03 ; } &3798 0d cb 2b 08 23 20 15 13 19 11 1c 05 25 1e 25 23 ; "nothing " + random("special", "unusual", "remarkable", &37a8 25 11 1c 05 fa dd 05 f9 50 05 04 06 2b 06 8a 05 ; "extraordinary") + ". " + random("Just", "looks like") + " " &37b8 fb 3c fc 1d 05 04 0e 05 &37c0 16 ; execute_bytecode_for_object(first_noun) &37c1 0d 04 ; "." &37c3 00 ; end ; bytecode_for_verb_41 ("where") &37c4 56 ; execute_bytecode_for_room() &37c5 00 ; end ; bytecode_for_verb_42 ("score") &37c6 0d 41 54 fa cd 31 20 2f 29 0e 48 45 fc 2c 2f 83 ; "you have completed p["score"]% of the game ." &37d6 2f 32 05 &37d9 00 ; end ; bytecode_for_verb_43 ("inv") &37da 0e ; skip_to_next_bytecode() &37db 00 ; end ; bytecode_for_verb_44 ("carrying") &37dc cc 0e ; if(p["number_of_objects_carried"] != 0) &37de 01 ; { &37df 0d 41 42 fe 70 05 ; "you are carrying" &37e5 1c 0b ; p["old_room"] = 1 &37e7 1c 0c ; p["new_room"] = 1 &37e9 06 ; list_objects(p["old_room"]. p["new_room"]) &37ea 0d 04 ; "." &37ec 03 ; } ; else &37ed 01 ; { &37ee 0d 41 42 5f fe 70 e4 04 ; "you are not carrying anything." &37f6 03 ; } &37f7 88 47 ; if(verb == "inv") &37f9 01 ; { &37fa 0d 2d 05 ; "\n" &37fd 0e ; skip_to_next_bytecode() &37fe 03 ; } &37ff 00 ; end ; bytecode_for_verb_45 ("wearing") &3800 0d 41 42 fe 6c 05 ; "you are wearing" &3806 14 0b ; p["old_room"] = 0 &3808 14 0c ; p["new_room"] = 0 &380a 06 ; list_objects(p["old_room"]. p["new_room"]) &380b 0d 04 ; "." &380d 00 ; end ; bytecode_for_verb_46 ("help") &380e 0d fb 58 fb 59 09 05 ; "action words: " &3815 5e ; list_verbs() &3816 00 ; end ; bytecode_for_verb_47 ("load") &3817 8c 08 06 ; if(p["total_words"] == &02) &381a 01 ; { &381b 1e ; load_position() &381c 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &3823 0e ; skip_to_next_bytecode() &3824 03 ; } &3825 0d fb d7 07 05 ; "Fileletter? " &382a 00 ; end ; bytecode_for_verb_48 ("look") &382b 47 ; room.flags[4] = false &382c 6f ; room.flags[6] = true &382d 56 ; execute_bytecode_for_room() &382e cc 25 ; if(p["is_riding_hovercycle"] != 0) &3830 01 ; { &3831 0d 2d 41 42 38 45 ff 84 04 ; "\nYou are on the hovercycle." &383a 03 ; } &383b cc 0a ; if(p["number_of_objects_in_player_room"] != 0) &383d 01 ; { &383e 0d 2d 05 ; "\n" &3841 0e ; skip_to_next_bytecode() &3842 03 ; } &3843 00 ; end ; bytecode_for_verb_49 ("search") &3844 c1 ; if(first_noun == 0) &3845 01 ; { &3846 0e ; skip_to_next_bytecode() &3847 03 ; } &3848 0d 5f fb 46 fe 3f 04 ; "not much help." &384f 00 ; end ; bytecode_for_verb_4a ("here") &3850 c4 0a ; if(p["number_of_objects_in_player_room"] == 0) &3852 01 ; { &3853 0d e2 cb 2b 08 48 fb 46 fe 20 05 25 23 15 16 25 ; "there's nothing " + random("of much use", "useful", &3863 1c 05 fa de 05 fa df 05 04 0e 4f 04 ; "significant", "important") + " here." &386f 04 ; return &3870 03 ; } &3871 0d 2b 08 41 4d 4e 05 41 66 05 6a 44 05 e2 05 04 ; "" + random("you can see", "you find", "there is", "there's") + " &3881 0e 05 ; " &3883 2c 04 0b ; p["old_room"] = p["player_room"] &3886 2c 04 0c ; p["new_room"] = p["player_room"] &3889 06 ; list_objects(p["old_room"]. p["new_room"]) &388a 0d 0e 4f 04 ; " here." &388e 00 ; end ; bytecode_for_verb_4b ("save") &388f 8c 08 06 ; if(p["total_words"] == &02) &3892 01 ; { &3893 26 ; save_position() &3894 0d fc 2c 23 11 26 15 14 04 ; "game saved." &389d 04 ; return &389e 03 ; } &389f 0d fb d7 07 05 ; "fileletter? " &38a4 00 ; end ; bytecode_for_verb_4c ("quit") &38a5 0d 41 fb d3 fc 33 32 2b 06 fe 45 05 fe 44 05 04 ; "you really want to " + random("quit", "stop") + "? y/N\n" &38b5 07 29 2f 33 2e 1e 2d 05 &38bd 36 ; p["character"] = read_character() &38be 8c 24 5d 02 ; if(p["character"] == &59 or &38c2 8c 24 7d ; p["character"] == &79) &38c5 01 ; { &38c6 3e ; reset() &38c7 03 ; } &38c8 00 ; end ; bytecode_for_verb_4d ("restart") &38c9 8c 08 05 ; if(p["total_words"] == &01) &38cc 01 ; { &38cd 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &38d4 2e ; restore_initial_position() &38d5 56 ; execute_bytecode_for_room() &38d6 04 ; return &38d7 03 ; } &38d8 0d 89 07 05 ; "What? " &38dc 00 ; end ; bytecode_for_verb_4e ("store") &38dd 8c 08 05 ; if(p["total_words"] == &01) &38e0 01 ; { &38e1 14 10 ; p["verb"] = 0 &38e3 4e ; store_position() &38e4 0d fc 2c fb 5a 04 ; "game stored." &38ea 04 ; return &38eb 03 ; } &38ec 0d 89 07 05 ; "what? " &38f0 00 ; end ; bytecode_for_verb_4f ("restore") &38f1 8c 08 05 ; if(p["total_words"] == &01) &38f4 01 ; { &38f5 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &38fc 6e ; restore_position(); &38fd 47 ; room.flags[4] = false &38fe 56 ; execute_bytecode_for_room() &38ff cc 25 ; if(p["is_riding_hovercycle"] != 0) &3901 01 ; { &3902 0d 2d 41 42 38 45 ff 84 04 ; "\nYou are on the hovercycle." &390b 03 ; } &390c 04 ; return &390d 03 ; } &390e 0d 89 07 05 ; "what? " &3912 00 ; end ; bytecode_for_room_actions ; bytecode_for_room_05_actions &3913 87 ; if(!room.flags[0]) &3914 01 ; { &3915 0f ; room.flags[0] = true &3916 44 20 ; p["score"] ++ &3918 03 ; } &3919 86 0e ; if(verb == "north") { player_room = &0e } &391b 8e 09 ; if(verb == "east") { player_room = &09 } &391d 96 0c ; if(verb == "south") { player_room = &0c } &391f 9e 18 ; if(verb == "west") { player_room = &18 } &3921 b6 0b ; if(verb == "southeast") { player_room = &0b } &3923 de 08 ; if(verb == "up") { player_room = &08 } &3925 00 ; end ; bytecode_for_room_06_actions &3926 00 ; end ; bytecode_for_room_07_actions &3927 00 ; end ; bytecode_for_room_08_actions &3928 88 0f ; if(verb == "down") &392a 01 ; { &392b 0d 41 fe 5d 52 04 ; "You climb down." &3931 08 09 ; player_room = &05 &3933 04 ; return &3934 03 ; } &3935 80 09 ; if(verb < "northeast") &3937 01 ; { &3938 0d 41 fc 49 96 34 fb 5b 46 88 0b fb d8 4b fc 69 ; "you step off a branch and fall, breaking your neck." &3948 04 &3949 08 7f ; player_room = &7b &394b 03 ; } &394c 00 ; end ; bytecode_for_room_09_actions &394d 86 14 ; if(verb == "north") { player_room = &14 } &394f 8e 1f ; if(verb == "east") { player_room = &1f } &3951 9e 05 ; if(verb == "west") { player_room = &05 } &3953 96 0b ; if(verb == "south") { player_room = &0b } &3955 88 4d ; if(verb == "search") &3957 01 ; { &3958 44 29 ; p["haystack_searched"] ++ &395a 8c 29 05 ; if(p["haystack_searched"] == &01) &395d 01 ; { &395e 0d 33 45 ff 78 41 de 34 ff 5a ff 59 fb 5c 72 45 ; "In the haystack you discover a silver button marked with &396e fc 8d 48 45 7a 04 ; the head of the king." &3974 3b 1e ; object_room["silver"] = player_room &3976 44 20 ; p["score"] ++ &3978 04 ; return &3979 03 ; } &397a 8c 29 06 ; if(p["haystack_searched"] == &02) &397d 01 ; { &397e 0d 41 fe 64 14 15 15 20 15 22 46 fa 5b 34 fb 2d ; "you search deeper and uncover a tiny needle among the &398e ff 57 fc c3 45 23 24 11 1c 1b 23 04 ; stalks." &399a 3b 13 ; object_room["needle"] = player_room &399c 44 20 ; p["score"] ++ &399e 04 ; return &399f 03 ; } &39a0 0d 11 13 18 1f 1f 08 18 11 29 fb 2e 44 fc b9 5e ; "achoo! hay dust is getting up your nose." &39b0 4b fb 13 04 &39b4 03 ; } &39b5 00 ; end ; bytecode_for_room_0a_actions &39b6 87 ; if(!room.flags[0]) &39b7 01 ; { &39b8 44 20 ; p["score"] ++ &39ba 0f ; room.flags[0] = true &39bb 03 ; } &39bc 86 1f ; if(verb == "north") { player_room = &1f } &39be 9e 0b ; if(verb == "west") { player_room = &0b } &39c0 96 0d ; if(verb == "south") { player_room = &0d } &39c2 88 06 02 ; if(verb == "east" or &39c5 88 12 02 ; verb == "enter" or &39c8 88 43 ; verb == "open" and &39ca 89 33 ; first_noun == "trapdoor") &39cc 01 ; { &39cd 84 3a 06 ; if(p["tardis_state"] < &02) &39d0 01 ; { &39d1 0d 45 51 48 45 2e c1 44 bd 04 ; "The door of the Tardis is locked." &39db 04 ; return &39dc 03 ; } &39dd 08 5d ; player_room = &59 &39df 03 ; } &39e0 00 ; end ; bytecode_for_room_0b_actions &39e1 86 09 ; if(verb == "north") { player_room = &09 } &39e3 8e 0c ; if(verb == "east") { player_room = &0c } &39e5 96 0d ; if(verb == "south") { player_room = &0d } &39e7 9e 0c ; if(verb == "west") { player_room = &0c } &39e9 b6 0a ; if(verb == "southeast") { player_room = &0a } &39eb 00 ; end ; bytecode_for_room_0c_actions &39ec 86 05 ; if(verb == "north") { player_room = &05 } &39ee 8e 0b ; if(verb == "east") { player_room = &0b } &39f0 96 0d ; if(verb == "south") { player_room = &0d } &39f2 9e 0b ; if(verb == "west") { player_room = &0b } &39f4 00 ; end ; bytecode_for_room_0d_actions &39f5 88 05 02 ; if(verb == "north" or &39f8 88 13 ; verb == "back") &39fa 01 ; { &39fb 08 0f ; player_room = &0b &39fd 0d 41 fb d9 d0 6e 45 fb 5d 8a 33 5c 04 ; "You extricate yourself from the marsh just in time." &3a0a 04 ; return &3a0b 03 ; } &3a0c 80 15 ; if(verb < "dc") &3a0e 01 ; { &3a0f 0d 41 12 1c 25 1e 14 15 22 e6 55 45 fb 5d 06 fc ; "you blunder further into the marsh. After a while you are &3a1f 85 34 74 41 42 23 25 13 1b 15 14 fc 7b 46 14 22 ; sucked under and drown." &3a2f 1f 27 1e 04 &3a33 03 ; } ; else &3a34 01 ; { &3a35 0d fb da 41 fc 3d 55 45 fb 5d 46 fb db 04 ; "slowly you sink into the marsh and disappear." &3a43 03 ; } &3a44 08 7f ; player_room = &7b &3a46 00 ; end ; bytecode_for_room_0e_actions &3a47 86 0f ; if(verb == "north") { player_room = &0f } &3a49 8e 14 ; if(verb == "east") { player_room = &14 } &3a4b 96 05 ; if(verb == "south") { player_room = &05 } &3a4d 9e 17 ; if(verb == "west") { player_room = &17 } &3a4f 00 ; end ; bytecode_for_room_0f_actions &3a50 a7 ; if(!room.flags[2]) &3a51 01 ; { &3a52 88 1f ; if(verb == "ask") &3a54 01 ; { &3a55 89 3a 02 ; if(first_noun == "doctor" or &3a58 8d 4d ; preposition == "doctors") &3a5a 01 ; { &3a5b 0d 45 d5 17 22 15 15 24 41 58 34 fa 5c 33 fc 92 ; "The soldiers greet you as a comrade in arms. To the &3a6b 06 32 45 2e 6b 7b 1f 27 15 fc 42 8d fb 50 0b 53 ; Doctor they owe their great victory, for it is he &3a7b 37 44 3e 61 16 1f 19 1c 15 14 34 fa e0 fe 5e 38 ; who foiled a dastardly attack on the king by the &3a8b 45 7a 50 45 fb 5e 2e df 0b 46 61 23 15 1e 24 ff ; mighty Warlord, and who sent them back to the &3a9b 37 6c 32 45 f2 32 66 41 06 2d 41 42 fc 93 34 ff ; battlefield to find you. \nYou are given a letter &3aab 5d 6e 45 2e 6b 0b 46 3b ff 85 32 1a 1f 19 1e ff ; from the Doctor, and an invitation to join him in &3abb 15 33 45 8d 99 39 45 8f 53 34 fa d8 fb 1b 32 36 ; the great hall at the castle for a celebration ball &3acb fc 93 50 45 7a fb 4f 06 45 d7 fe 54 fc 42 f9 51 ; to be given by the king tonight. The guards mount &3adb 46 fc 2f 96 fa e1 0b fb a5 43 ff 44 53 41 04 ; their hovercycles and move off eastwards, leaving ; one cycle for you." &3aea 2f ; room.flags[2] = true &3aeb 1b 2b ; object_room["letter"] = 1 &3aed 1b 2f ; object_room["invitation"] = 1 &3aef 44 20 ; p["score"] ++ &3af1 0c 08 26 ; p["following_guards_on_hovercycle"] = &04 &3af4 6f ; room.flags[6] = true &3af5 04 ; return &3af6 03 ; } &3af7 0d 45 d7 fc 5a fa e2 50 4b 21 25 11 19 1e 24 0e ; "the guards seem fascinated by your quaint accent." &3b07 11 13 13 15 1e 24 04 &3b0e 04 ; return &3b0f 03 ; } &3b10 80 15 ; if(verb < "dc") &3b12 01 ; { &3b13 0d 4b c6 32 fb 5f 05 ; "your attempt to escape" &3b1a 03 ; } ; else &3b1b 01 ; { &3b1c 0d 4b fb 58 05 ; "your action" &3b21 03 ; } &3b22 0d 93 11 22 1f 25 23 15 23 e6 ef 46 45 d7 54 35 ; "only arouses further suspicion and the guards have no &3b32 f9 2f 33 fb dc 41 06 45 fc 0f fc 28 71 fb dd 42 ; difficulty in capturing you. The six foot battle veterans &3b42 11 1d 25 23 15 14 50 4b 20 19 24 19 16 25 1c 0e ; are amused by your pitiful efforts, and rather than do you &3b52 15 16 16 1f 22 24 23 0b 46 aa fc 94 3c 41 fc 11 ; any harm merely break your arms and legs and throw you out &3b62 fb 2a 1d 15 22 15 1c 29 fe 51 4b fc 92 46 1c 15 ; to die. " + random("", "", "", "As you sink into delirium, &3b72 17 23 46 fe 4e 41 5b 32 fc 34 06 2b 08 05 05 05 ; you call the Doctor's name, but no one answers. ") + "" &3b82 58 41 fc 3d 55 fb de 0b 41 fe 2e 45 2e d9 1e 11 &3b92 1d 15 0b 49 35 43 11 1e 23 27 15 22 23 06 05 04 &3ba2 05 &3ba3 08 7f ; player_room = &7b &3ba5 04 ; return &3ba6 03 ; } &3ba7 86 10 ; if(verb == "north") { player_room = &10 } &3ba9 8e 13 ; if(verb == "east") { player_room = &13 } &3bab 96 0e ; if(verb == "south") { player_room = &0e } &3bad 9e 16 ; if(verb == "west") { player_room = &16 } &3baf 00 ; end ; bytecode_for_room_10_actions &3bb0 86 11 ; if(verb == "north") { player_room = &11 } &3bb2 8e 12 ; if(verb == "east") { player_room = &12 } &3bb4 96 0f ; if(verb == "south") { player_room = &0f } &3bb6 9e 15 ; if(verb == "west") { player_room = &15 } &3bb8 00 ; end ; bytecode_for_room_11_actions &3bb9 88 25 02 ; if(verb == "drop" or &3bbc 88 29 02 ; verb == "throw" or &3bbf 88 22 02 ; verb == "doff" or &3bc2 88 24 ; verb == "replace") &3bc4 01 ; { &3bc5 0d 38 24 18 15 23 15 fb 60 46 fb df 20 15 11 1b ; "On these desolate and unmapped peaks, you will never find &3bd5 23 0b 41 a6 a3 66 e4 41 fe 4e 7c 04 ; anything you throw away." &3be1 03 ; } &3be2 80 0d ; if(verb < "left" and &3be4 98 07 ; verb != "south") &3be6 01 ; { &3be7 44 27 ; p["distance_into_mountains"] ++ &3be9 8c 27 0a ; if(p["distance_into_mountains"] == &06) &3bec 01 ; { &3bed 0d 73 38 45 fb e0 41 39 fc 25 fc 95 32 82 0b 46 ; "high on the glaciers you at last freeze to death, and &3bfd 4b fc 70 42 a3 fc 96 04 ; your bones are never found." &3c05 08 7f ; player_room = &7b &3c07 04 ; return &3c08 03 ; } &3c09 03 ; } &3c0a 88 07 ; if(verb == "south") &3c0c 01 ; { &3c0d 4c 27 ; p["distance_into_mountains"] -- &3c0f c4 27 ; if(p["distance_into_mountains"] == 0) &3c11 01 ; { &3c12 2c 06 04 ; p["player_room"] = p["previous_room"] &3c15 1c 09 ; p["output_written"] = 1 &3c17 04 ; return &3c18 03 ; } &3c19 03 ; } &3c1a 80 09 02 ; if(verb < "northeast" or &3c1d 88 13 ; verb == "back") &3c1f 01 ; { &3c20 56 ; execute_bytecode_for_room() &3c21 03 ; } &3c22 00 ; end ; bytecode_for_room_12_actions &3c23 86 11 ; if(verb == "north") { player_room = &11 } &3c25 96 13 ; if(verb == "south") { player_room = &13 } &3c27 9e 10 ; if(verb == "west") { player_room = &10 } &3c29 be 0f ; if(verb == "southwest") { player_room = &0f } &3c2b 88 06 02 ; if(verb == "east" or &3c2e 88 0f ; verb == "down") &3c30 01 ; { &3c31 0d 58 41 fa 23 96 45 fc 50 48 45 fc 4b 38 4b 4c ; "As you bounce off the sides of the ravine on your way down &3c41 52 45 cd fc 28 fe 30 0b 37 fb e1 32 41 92 d3 78 ; the hundred foot drop, it occurs to you that walking over &3c51 fa e3 44 5f 45 12 15 23 24 4c 32 20 22 1f 1c 1f ; precipices is not the best way to prolong your life." &3c61 1e 17 4b fc 2b 04 &3c67 08 7f ; player_room = &7b &3c69 03 ; } &3c6a 00 ; end ; bytecode_for_room_13_actions &3c6b 86 12 ; if(verb == "north") { player_room = &12 } &3c6d 8e 21 ; if(verb == "east") { player_room = &21 } &3c6f 9e 0f ; if(verb == "west") { player_room = &0f } &3c71 96 14 ; if(verb == "south") { player_room = &14 } &3c73 00 ; end ; bytecode_for_room_14_actions &3c74 86 13 ; if(verb == "north") { player_room = &13 } &3c76 9e 0e ; if(verb == "west") { player_room = &0e } &3c78 96 09 ; if(verb == "south") { player_room = &09 } &3c7a 8e 20 ; if(verb == "east") { player_room = &20 } &3c7c 88 1a ; if(verb == "take") &3c7e 01 ; { &3c7f 89 1f 02 ; if(first_noun == "roubles" or &3c82 89 42 ; first_noun == "all") &3c84 01 ; { &3c85 0d 45 ff 42 fb 14 fb 61 1d 15 1c 24 15 14 33 45 ; "The coins were almost melted in the heat and the &3c95 18 15 11 24 46 45 fa e4 fc 66 fa 24 fb 54 fc 58 ; resulting first degree burns turn gangrenous overnight. &3ca5 f9 30 fa e5 06 41 fc 97 0b 33 4b fc 25 fb 62 48 ; You decide, in your last moments of delirium, that you &3cb5 fb de 0b 92 41 fb cb 54 20 1c 11 29 15 14 37 34 ; should have played it a little more cool." &3cc5 fc 56 fc 12 13 1f 1f 1c 04 &3cce 08 7f ; player_room = &7b &3cd0 03 ; } &3cd1 03 ; } &3cd2 00 ; end ; bytecode_for_room_15_actions &3cd3 86 11 ; if(verb == "north") { player_room = &11 } &3cd5 8e 10 ; if(verb == "east") { player_room = &10 } &3cd7 96 16 ; if(verb == "south") { player_room = &16 } &3cd9 9e 1e ; if(verb == "west") { player_room = &1e } &3cdb 88 1a ; if(verb == "take") &3cdd 01 ; { &3cde 89 1f 02 ; if(first_noun == "roubles" or &3ce1 89 11 02 ; first_noun == "lance" or &3ce4 89 42 ; first_noun == "all") &3ce6 01 ; { &3ce7 0d 58 41 1c 15 11 1e 78 45 13 1f 22 20 23 15 0b ; "As you lean over the corpse, posthumous avarice or rigor &3cf7 f9 31 fa 5d 3a 22 19 17 1f 22 0e 1d 1f 22 24 19 ; mortis cause the trooper's finger to tighten on the &3d07 23 0e 13 11 25 23 15 45 fa e6 16 19 1e 17 15 22 ; trigger. The sonic beam, with poetic justice, hits you &3d17 32 fa 5e 38 45 fb e2 06 45 81 fb 2c 0b 72 20 1f ; smack in the right temple." &3d27 15 24 19 13 0e 1a 25 23 24 19 13 15 0b fb 2f 41 &3d37 23 1d 11 13 1b 33 45 fe 48 24 15 1d 20 1c 15 04 &3d47 08 7f ; player_room = &7b &3d49 03 ; } &3d4a 03 ; } &3d4b 00 ; end ; bytecode_for_room_16_actions &3d4c 86 15 ; if(verb == "north") { player_room = &15 } &3d4e 8e 0f ; if(verb == "east") { player_room = &0f } &3d50 96 17 ; if(verb == "south") { player_room = &17 } &3d52 9e 1e ; if(verb == "west") { player_room = &1e } &3d54 00 ; end ; bytecode_for_room_17_actions &3d55 86 16 ; if(verb == "north") { player_room = &16 } &3d57 8e 0e ; if(verb == "east") { player_room = &0e } &3d59 96 18 ; if(verb == "south") { player_room = &18 } &3d5b 9e 1e ; if(verb == "west") { player_room = &1e } &3d5d 88 1a ; if(verb == "take") &3d5f 01 ; { &3d60 89 1f 02 ; if(first_noun == "roubles" or &3d63 89 42 ; first_noun == "all") &3d65 01 ; { &3d66 0d 3b fa e7 11 1c 11 22 1d 0e 20 19 1e 17 23 34 ; "An infra-red alarm pings a microsecond before the atomic &3d76 f9 32 8e 45 fc dc fb 08 15 28 20 1c 1f 14 15 23 ; mine explodes, hardly giving you time to regret your &3d86 0b fb c9 17 19 26 19 1e 17 41 5c 32 fa 25 4b 17 ; greed." &3d96 22 15 15 14 04 &3d9b 08 7f ; player_room = &7b &3d9d 03 ; } &3d9e 03 ; } &3d9f 00 ; end ; bytecode_for_room_18_actions &3da0 86 17 ; if(verb == "north") { player_room = &17 } &3da2 8e 05 ; if(verb == "east") { player_room = &05 } &3da4 96 1d ; if(verb == "south") { player_room = &1d } &3da6 9e 1e ; if(verb == "west") { player_room = &1e } &3da8 00 ; end ; bytecode_for_room_19_actions &3da9 88 07 02 ; if(verb == "south" or &3dac 88 10 ; verb == "up") &3dae 01 ; { &3daf 0c 06 10 ; p["verb"] = "east" &3db2 03 ; } &3db3 88 1a ; if(verb == "take") &3db5 01 ; { &3db6 89 1f 02 ; if(first_noun == "roubles" or &3db9 89 42 ; first_noun == "all") &3dbb 01 ; { &3dbc 0d 45 83 44 fc 18 48 45 11 22 13 18 11 19 13 fb ; "The ramp is part of the archaic defences of the planet. &3dcc e3 48 45 fb 63 06 4b 11 13 24 19 1f 1e 23 54 fa ; Your actions have triggered a very rusty firing &3ddc e8 34 68 fc e6 fb 64 fa e9 0b 46 41 8a 54 5c 32 ; mechanism, and you just have time to see the gigantic &3dec 4e 45 fb e4 f9 5a fa 5f 13 11 24 13 18 19 1e 17 ; interplanetary missile catching you behind the knees &3dfc 41 fb 65 45 1b 1e 15 15 23 8e 37 fa 60 41 ea 45 ; before it carries you through the upper atmosphere. From &3e0c 25 20 20 15 22 fa ea 06 6e 6a 41 54 34 fc 98 f9 ; there you have a better perspective on life, and in your &3e1c 33 38 fc 2b 0b 46 33 4b fc 25 fb 62 41 20 1f 1e ; last moments you ponder the wisdom of aimless searching &3e2c 14 15 22 45 27 19 23 14 1f 1d 48 11 19 1d 1c 15 ; for gold." &3e3c 23 23 fa eb 53 7f 04 &3e43 08 7f ; player_room = &7b &3e45 03 ; } &3e46 03 ; } &3e47 0e ; skip_to_next_bytecode() &3e48 00 ; end ; bytecode_for_room_1a_actions &3e49 0e ; skip_to_next_bytecode() &3e4a 00 ; end ; bytecode_for_room_1b_actions &3e4b 0e ; skip_to_next_bytecode() &3e4c 00 ; end ; bytecode_for_room_1c_actions &3e4d 88 05 02 ; if(verb == "north" or &3e50 88 0f ; verb == "down") &3e52 01 ; { &3e53 24 81 04 ; p["player_room"] += &01 &3e56 1c 09 ; p["output_written"] = 1 &3e58 03 ; } &3e59 88 07 02 ; if(verb == "south" or &3e5c 88 10 ; verb == "up") &3e5e 01 ; { &3e5f 24 7f 04 ; p["player_room"] -= &01 &3e62 1c 09 ; p["output_written"] = 1 &3e64 03 ; } &3e65 88 06 02 ; if(verb == "east" or &3e68 88 08 ; verb == "west") &3e6a 01 ; { &3e6b 0d fa ec fc 91 0b 41 88 6e 45 83 06 34 fb e5 80 ; "Reckless fool, you fall from the ramp. A starving desert &3e7b fa ed 13 1f 1d 15 23 d1 4b fc e9 fc 99 59 18 1f ; voorwokurp comes across your broken body some hours later, &3e8b 25 22 23 fc 9a 0b 49 f5 41 42 f9 52 50 92 5c 04 ; but fortunately you are unconscious by that time." &3e9b 08 7f ; player_room = &7b &3e9d 03 ; } &3e9e 00 ; end ; bytecode_for_room_1d_actions &3e9f 86 18 ; if(verb == "north") { player_room = &18 } &3ea1 8e 0c ; if(verb == "east") { player_room = &0c } &3ea3 d6 0c ; if(verb == "down") { player_room = &0c } &3ea5 96 1c ; if(verb == "south") { player_room = &1c } &3ea7 de 1c ; if(verb == "up") { player_room = &1c } &3ea9 88 08 ; if(verb == "west") &3eab 01 ; { &3eac 0d 41 88 32 45 fc bb 0b fa ee 3b fc 9b fa b2 04 ; "You fall to the surface, spraining an ankle slightly." &3ebc 08 22 ; player_room = &1e &3ebe 03 ; } &3ebf 00 ; end ; bytecode_for_room_1e_actions &3ec0 88 25 02 ; if(verb == "drop" or &3ec3 88 29 02 ; verb == "throw" or &3ec6 88 22 02 ; verb == "doff" or &3ec9 88 24 ; verb == "replace") &3ecb 01 ; { &3ecc 0d 92 fb 66 36 fb 0b fa 26 06 41 a6 a3 66 e4 41 ; "That would be most unwise. You will never find anything you &3edc fc 9c 4f 04 ; leave here." &3ee0 04 ; return &3ee1 03 ; } &3ee2 88 1a ; if(verb == "take" and &3ee4 8c 28 08 ; p["distance_into_desert"] == &04 and &3ee7 a7 ; !room.flags[2]) &3ee8 01 ; { &3ee9 2f ; room.flags[2] = true &3eea 0d 41 17 22 11 12 4b 12 1f 1f 24 29 46 23 24 11 ; "you grab your booty and stagger away." &3efa 17 17 15 22 7c 04 &3f00 89 1f 02 ; if(first_noun == "roubles" or &3f03 89 11 ; first_noun == "lance") &3f05 01 ; { &3f06 19 ; object_room[first_noun] = 1 &3f07 03 ; } &3f08 89 42 ; if(first_noun == "all") &3f0a 01 ; { &3f0b 1b 11 ; object_room["lance"] = 1 &3f0d 1b 1f ; object_room["roubles"] = 1 &3f0f 03 ; } &3f10 04 ; return &3f11 03 ; } &3f12 88 06 ; if(verb == "east" and &3f14 eb 1f 0b ; object_room["roubles"] == &07) &3f17 01 ; { &3f18 4c 28 ; p["distance_into_desert"] -- &3f1a c4 28 ; if(p["distance_into_desert"] == 0) &3f1c 01 ; { &3f1d db 11 ; if(object_room["lance"] == "carrying" and &3f1f 87 ; !room.flags[0]) &3f20 01 ; { &3f21 0f ; room.flags[0] = true &3f22 44 20 ; p["score"] ++ &3f24 03 ; } &3f25 2c 06 04 ; p["player_room"] = p["previous_room"] &3f28 1c 09 ; p["output_written"] = 1 &3f2a 04 ; return &3f2b 03 ; } &3f2c 56 ; execute_bytecode_for_room() &3f2d 04 ; return &3f2e 03 ; } &3f2f 80 09 02 ; if(verb < "northeast" or &3f32 88 13 ; verb == "back") &3f34 01 ; { &3f35 44 28 ; p["distance_into_desert"] ++ &3f37 94 28 0a ; if(p["distance_into_desert"] > &06) &3f3a 01 ; { &3f3b 0d 39 fc 25 41 23 25 13 13 25 1d 12 32 fb 8d 23 ; "at last you succumb to radiation sickness. Your body &3f4b 19 13 1b 1e 15 23 23 06 4b fc 99 fa ef 55 45 17 ; dissolves into the glowing sands and your fate is never &3f5b 1c 1f 27 19 1e 17 fb 40 46 4b 16 11 24 15 44 a3 ; known." &3f6b 1b 1e 1f 27 1e 04 &3f71 08 7f ; player_room = &7b &3f73 04 ; return &3f74 03 ; } &3f75 56 ; execute_bytecode_for_room() &3f76 03 ; } &3f77 00 ; end ; bytecode_for_room_1f_actions &3f78 86 20 ; if(verb == "north") { player_room = &20 } &3f7a 96 0b ; if(verb == "south") { player_room = &0b } &3f7c 9e 09 ; if(verb == "west") { player_room = &09 } &3f7e 88 06 ; if(verb == "east") &3f80 01 ; { &3f81 0e ; skip_to_next_bytecode() &3f82 03 ; } &3f83 00 ; end ; bytecode_for_room_20_actions &3f84 86 21 ; if(verb == "north") { player_room = &21 } &3f86 96 1f ; if(verb == "south") { player_room = &1f } &3f88 9e 14 ; if(verb == "west") { player_room = &14 } &3f8a 88 06 ; if(verb == "east") &3f8c 01 ; { &3f8d 0d 41 27 11 14 15 55 45 8b 46 42 f1 23 27 15 20 ; "You wade into the river and are quickly swept off your feet. &3f9d 24 96 4b 56 06 72 fc 98 fb 67 fc 94 41 fa 61 0b ; With better fortune than you deserve, you are deposited back &3fad 41 42 fb e6 6c 38 45 fc bd fb 1e 34 fc 55 fc b3 ; on the western bank a short distance downstream." &3fbd fa f0 04 &3fc0 03 ; } &3fc1 00 ; end ; bytecode_for_room_21_actions &3fc2 8e 23 ; if(verb == "east") { player_room = &23 } &3fc4 96 20 ; if(verb == "south") { player_room = &20 } &3fc6 9e 13 ; if(verb == "west") { player_room = &13 } &3fc8 88 05 ; if(verb == "north") &3fca 01 ; { &3fcb 0d 72 fa ec 14 11 22 19 1e 17 41 fc 1e 96 5e 45 ; "With reckless daring you set off up the ravines. By one &3fdb fc c5 06 50 43 dc 48 fa 62 9f fc 6a 41 fc 9d 38 ; stretch of roaring white water you slip on wet rocks and are &3feb 27 15 24 fc be 46 42 fb 68 78 34 fa b9 fa f0 06 ; carried over a waterfall downstream. As your head is struck &3ffb 58 4b fc 8d 44 23 24 22 25 13 1b 0e 16 1f 22 13 ; forcibly against the twentieth rock, it occurs to you that &400b 19 12 1c 29 fa 63 45 fa f1 ff 2c 0b 37 fb e1 32 ; you might have chosen a safer route." &401b 41 92 41 1d 19 17 18 24 54 13 18 1f 23 15 1e 34 &402b 23 11 16 15 22 fc 87 04 &4033 08 7f ; player_room = &7b &4035 03 ; } &4036 00 ; end ; bytecode_for_room_22_actions &4037 88 25 02 ; if(verb == "drop" or &403a 88 29 02 ; verb == "throw" or &403d 88 22 02 ; verb == "doff" or &4040 88 24 ; verb == "replace") &4042 01 ; { &4043 0d 92 fb 66 36 68 16 1f 1f 1c 19 23 18 06 41 a6 ; "That would be very foolish. You will never be able to find &4053 a3 36 11 12 1c 15 32 66 e4 41 fe 30 33 fc 80 f9 ; anything you drop in this undergrowth." &4063 34 04 &4065 03 ; } &4066 88 05 ; if(verb == "north") &4068 01 ; { &4069 4c 2b ; p["distance_into_forest"] -- &406b c4 2b ; if(p["distance_into_forest"] == 0) &406d 01 ; { &406e 2c 06 04 ; p["player_room"] = p["previous_room"] &4071 44 09 ; p["output_written"] ++ &4073 04 ; return &4074 03 ; } &4075 56 ; execute_bytecode_for_room() &4076 04 ; return &4077 03 ; } &4078 80 0d 02 ; if(verb < "left" or &407b 88 13 ; verb == "back") &407d 01 ; { &407e 44 2b ; p["distance_into_forest"] ++ &4080 94 2b 09 ; if(p["distance_into_forest"] > &05) &4083 01 ; { &4084 0d 6e 3b f9 53 fb 5b 34 fb 9c 8c fa ed fb 69 38 ; "from an overhanging branch a hunting forest voorwokurp &4094 41 06 27 18 15 1e 45 11 1e 19 1d 11 1c 57 fb b9 ; drops on you. When the animal has finished, no trace of &40a4 0b 35 24 22 11 13 15 48 41 44 62 04 ; you is left." &40b0 08 7f ; player_room = &7b &40b2 04 ; return &40b3 03 ; } &40b4 56 ; execute_bytecode_for_room() &40b5 03 ; } &40b6 00 ; end ; bytecode_for_room_23_actions &40b7 88 05 02 ; if(verb == "north" or &40ba 88 10 ; verb == "up") &40bc 01 ; { &40bd 0d 41 c6 32 fe 5d 45 fc 5c 23 1c 11 24 15 fc 5d ; "You attempt to climb the steep slate scree without success. &40cd ad 23 25 13 13 15 23 23 06 27 19 23 15 1c 29 0b ; Wisely, you give up trying." &40dd 41 fe 31 5e 24 22 29 19 1e 17 04 &40e8 03 ; } &40e9 8e 24 ; if(verb == "east") { player_room = &24 } &40eb 9e 21 ; if(verb == "west") { player_room = &21 } &40ed 96 22 ; if(verb == "south") { player_room = &22 } &40ef 00 ; end ; bytecode_for_room_24_actions &40f0 cc 26 ; if(p["following_guards_on_hovercycle"] != 0) &40f2 01 ; { &40f3 0d 45 fc cb 48 45 91 17 22 1f 27 0e 1c 11 22 17 ; "The towers of the city grow larger every minute. From the &4103 15 22 b3 fc bf 06 6e 45 fa b8 38 4b 62 34 fb 30 ; mountainside on your left a band of brigands watches you &4113 48 fa f2 ff 6b 41 fb 31 04 ; pass." &411c 44 20 ; p["score"] ++ &411e 03 ; } &411f c4 0e 02 ; if(p["number_of_objects_carried"] == 0 or &4122 cc 26 02 ; p["following_guards_on_hovercycle"] != 0 or &4125 cc 33 02 ; p["bandit_chieftain_was_tearful"] != 0 or &4128 9f ; room.flags[1]) &4129 01 ; { &412a 80 09 ; if(verb < "northeast") &412c 01 ; { &412d 27 ; room.flags[2] = false &412e 17 ; room.flags[1] = false &412f 03 ; } &4130 8e 25 ; if(verb == "east") { player_room = &25 } &4132 96 22 ; if(verb == "south") { player_room = &22 } &4134 86 2a ; if(verb == "north") { player_room = &2a } &4136 9e 23 ; if(verb == "west") { player_room = &23 } &4138 04 ; return &4139 03 ; } &413a a7 ; if(!room.flags[2]) &413b 01 ; { &413c 0d 34 fb 30 48 fa f2 22 19 14 19 1e 17 0e 23 11 ; "a band of brigands riding sabre tooth chalikos appears from &414c 12 22 15 0e 24 1f 1f 24 18 fb e7 cf 6e 34 fc c9 ; a mountain gully and sets upon you. Armed to the teeth and &415c fb 96 46 fb 32 25 20 1f 1e 41 06 fc 40 32 45 98 ; drawn from the wierdest species on the planet, they look a &416c 46 fc 8f 6e 45 fb 6a fb 98 38 45 fb 63 0b 7b fe ; desperate and dangerous crew." &417c 41 34 fb e8 46 eb 13 22 15 27 04 &4187 cc 25 ; if(p["is_riding_hovercycle"] != 0) &4189 01 ; { &418a 0d 7b f1 fa 07 41 96 4b ff 84 0b 27 22 15 13 1b ; "they quickly tip you off your hovercycle, wrecking it in &419a 19 1e 17 37 33 45 fb e9 04 ; the process." &41a3 14 25 ; p["is_riding_hovercycle"] = 0 &41a5 03 ; } &41a6 2f ; room.flags[2] = true &41a7 44 09 ; p["output_written"] ++ &41a9 04 ; return &41aa 03 ; } &41ab 88 1b 02 ; if(verb == "attack" or &41ae 88 1c ; verb == "shoot") &41b0 01 ; { &41b1 db 11 ; if(object_room["lance"] == "carrying" and &41b3 c4 2e ; p["lance_used"] == 0) &41b5 01 ; { &41b6 0d 41 54 35 19 14 15 11 fc 30 32 fe 20 45 ff 3b ; "you have no idea how to use the lance, but your wild &41c6 0b 49 4b 27 19 1c 14 fb 64 57 45 fe 48 15 16 16 ; firing has the right effect. The cowards make off into &41d6 15 13 24 06 45 13 1f 27 11 22 14 23 fe 32 96 55 ; the mountains as if a devil were after them." &41e6 45 c8 58 60 34 14 15 26 19 1c fb 14 fc 85 ff 37 &41f6 04 &41f7 1f ; room.flags[1] = true &41f8 44 2e ; p["lance_used"] ++ &41fa 44 20 ; p["score"] ++ &41fc 04 ; return &41fd 03 ; } &41fe db 11 ; if(object_room["lance"] == "carrying") &4200 01 ; { &4201 0d 6a 44 35 fb 4e 62 33 45 ff 3b 05 ; "there is no charge left in the lance" &420d 03 ; } ; else &420e 01 ; { &420f 0d f9 35 41 54 35 cc 72 41 05 ; "regretably you have no weapons with you" &4219 03 ; } &421a 0d 0b 3d 05 ; ", so" &421e 03 ; } &421f 0d 41 42 fb ea 46 22 1f 12 12 15 14 48 7d 41 20 ; "you are overcome and robbed of all you possess, namely " &422f 1f 23 23 15 23 23 0b 1e 11 1d 15 1c 29 0e 05 &423e 1c 0b ; p["old_room"] = 1 &4240 0c 2c 0c ; p["new_room"] = &28 &4243 06 ; list_objects(p["old_room"]. p["new_room"]) &4244 0d 06 12 11 14 1c 29 fa 27 46 fc 1f 32 fc 9e 16 ; ". Badly beaten and made to tell funny stories, you are hit on &4254 25 1e 1e 29 fa 64 0b 41 42 fe 1c 38 45 fc 8d 46 ; the head and left for dead." &4264 62 53 fc 53 04 &4269 00 ; end ; bytecode_for_room_25_actions &426a 86 29 ; if(verb == "north") { player_room = &29 } &426c 8e 26 ; if(verb == "east") { player_room = &26 } &426e 9e 24 ; if(verb == "west") { player_room = &24 } &4270 96 22 ; if(verb == "south") { player_room = &22 } &4272 00 ; end ; bytecode_for_room_26_actions &4273 86 27 ; if(verb == "north") { player_room = &27 } &4275 8e 2f ; if(verb == "east") { player_room = &2f } &4277 96 2d ; if(verb == "south") { player_room = &2d } &4279 9e 25 ; if(verb == "west") { player_room = &25 } &427b 00 ; end ; bytecode_for_room_27_actions &427c 86 28 ; if(verb == "north") { player_room = &28 } &427e 96 26 ; if(verb == "south") { player_room = &26 } &4280 00 ; end ; bytecode_for_room_28_actions &4281 af ; if(room.flags[2]) &4282 01 ; { &4283 88 07 02 ; if(verb == "south" or &4286 88 08 ; verb == "west") &4288 01 ; { &4289 3f ; room.flags[3] = true &428a 03 ; } &428b 96 27 ; if(verb == "south") { player_room = &27 } &428d f6 27 ; if(verb == "back") { player_room = &27 } &428f 9e 29 ; if(verb == "west") { player_room = &29 } &4291 e3 1e ; if(object_room["silver"] == player_room and &4293 87 ; !room.flags[0]) &4294 01 ; { &4295 44 20 ; p["score"] ++ &4297 0f ; room.flags[0] = true &4298 03 ; } &4299 04 ; return &429a 03 ; } &429b 88 26 02 ; if(verb == "give" or &429e 88 28 02 ; verb == "show" or &42a1 88 43 ; verb == "open") &42a3 01 ; { &42a4 89 12 ; if(first_noun == "locket") &42a6 01 ; { &42a7 0b 0a 12 ; object_room["locket"] = &06 &42aa 0d 45 fc d2 ff 81 fb 6b 45 ff 56 46 fa f3 5a fc ; "The bandit chieftain opens the locket and recognises his &42ba 43 fc 1c fa f4 06 3e 12 25 22 23 24 23 55 fc 9f ; long lost sweetheart. He bursts into tears of gratitude &42ca 48 fb eb 58 41 fc 9e ff 15 6d 32 66 fc 2a 0b 46 ; as you tell him where to find her, and offers you a &42da fb ec 41 34 22 1f 11 23 24 15 14 fc 64 ff 0f 6e ; roasted giant rat from the spit." &42ea 45 23 20 19 24 04 &42f0 2f ; room.flags[2] = true &42f1 6f ; room.flags[6] = true &42f2 44 33 ; p["bandit_chieftain_was_tearful"] ++ &42f4 04 ; return &42f5 03 ; } &42f6 03 ; } &42f7 80 09 ; if(verb < "northeast") &42f9 01 ; { &42fa 0d 41 c6 32 fc 9d 7c 49 45 ff 71 42 fc 1a fb 6c ; "you attempt to slip away but the bandits are too quick for &430a 53 41 04 ; you." &430d 03 ; } ; else &430e 01 ; { &430f 0d fc 80 93 fb ed 45 ed ef 04 ; "this only increases the bandits' suspicion." &4319 03 ; } &431a d3 12 ; if(object_room["locket"] == "wearing") &431c 01 ; { &431d 0d a1 4b 1c 25 13 1b 29 fa 0e 06 7b fb 33 41 52 ; "it's your lucky day. They drag you down a secret tunnel into &432d 34 fa 28 fc f8 55 45 fc c9 04 ; the mountain." &4337 3f ; room.flags[3] = true &4338 77 ; room.flags[7] = false &4339 08 5b ; player_room = &57 &433b 44 20 ; p["score"] ++ &433d db 11 ; if(object_room["lance"] == "carrying") &433f 01 ; { &4340 0b 0a 11 ; object_room["lance"] = &06 &4343 03 ; } &4344 04 ; return &4345 03 ; } &4346 0d 7b fa 29 27 18 15 24 18 15 22 32 fb 34 41 fa ; "they debate whether to hold you hostage, but it's your unlucky &4356 65 0b 49 a1 4b 25 1e 1c 25 13 1b 29 fa 0e 09 7b ; day: they decide that dead men tell no tales, and shoot you." &4366 fc 97 92 fc 53 fc 0e fc 9e 35 24 11 1c 15 23 0b &4376 46 fe 4b 41 04 &437b 08 7f ; player_room = &7b &437d 00 ; end ; bytecode_for_room_29_actions &437e 86 11 ; if(verb == "north") { player_room = &11 } &4380 8e 28 ; if(verb == "east") { player_room = &28 } &4382 88 07 ; if(verb == "south") &4384 01 ; { &4385 0e ; skip_to_next_bytecode() &4386 03 ; } &4387 9e 2a ; if(verb == "west") { player_room = &2a } &4389 00 ; end ; bytecode_for_room_2a_actions &438a 86 11 ; if(verb == "north") { player_room = &11 } &438c 8e 29 ; if(verb == "east") { player_room = &29 } &438e 88 07 ; if(verb == "south") &4390 01 ; { &4391 0d 41 14 15 23 13 15 1e 14 32 45 fc c7 04 ; "You descend to the valley." &439f 08 29 ; player_room = &25 &43a1 03 ; } &43a2 9e 2b ; if(verb == "west") { player_room = &2b } &43a4 00 ; end ; bytecode_for_room_2b_actions &43a5 88 1e ; if(verb == "tie" and &43a7 89 0f ; first_noun == "rope" and &43a9 8d 47 ; preposition == "to") &43ab 01 ; { &43ac af 02 ; if(room.flags[2] or &43ae bf ; room.flags[3]) &43af 01 ; { &43b0 0d a1 e3 fc 63 04 ; "It's already tied." &43b6 04 ; return &43b7 03 ; } &43b8 c2 ; if(second_noun == 0) &43b9 01 ; { &43ba 04 ; return &43bb 03 ; } &43bc 8a 30 ; if(second_noun == "tree") &43be 01 ; { &43bf 3f ; room.flags[3] = true &43c0 03 ; } &43c1 8a 31 ; if(second_noun == "boulders") &43c3 01 ; { &43c4 2f ; room.flags[2] = true &43c5 03 ; } &43c6 0d fc 31 04 ; "fine." &43ca 09 0b ; object_room[first_noun] = &07 &43cc 03 ; } &43cd 88 3b ; if(verb == "untie" and &43cf 89 0f ; first_noun == "rope") &43d1 01 ; { &43d2 a7 ; if(!room.flags[2] and &43d3 b7 ; !room.flags[3]) &43d4 01 ; { &43d5 0d a1 5f fc 63 04 ; "it's not tied." &43db 04 ; return &43dc 03 ; } &43dd 0d fe 48 04 ; "right." &43e1 19 ; object_room[first_noun] = 1 &43e2 37 ; room.flags[3] = false &43e3 27 ; room.flags[2] = false &43e4 04 ; return &43e5 03 ; } &43e6 88 0f ; if(verb == "down") &43e8 01 ; { &43e9 bf ; if(room.flags[3]) &43ea 01 ; { &43eb 0d 9c 4c 52 0b 45 ff 2b 44 20 25 1c 1c 15 14 5b ; "half way down, the tree is pulled out by its roots and &43fb 50 fc 21 22 1f 1f 24 23 46 b1 38 fc 17 48 41 58 ; falls on top of you as you hit the bottom. You do not &440b 41 fe 1c 45 fc e7 06 41 3c 5f 1c 19 26 15 fc 43 ; live long enough to work out what went wrong." &441b fb 9b 32 fb 28 5b 89 27 15 1e 24 0e 27 22 1f 1e &442b 17 04 &442d 08 7f ; player_room = &7b &442f 04 ; return &4430 03 ; } &4431 af ; if(room.flags[2]) &4432 01 ; { &4433 27 ; room.flags[2] = false &4434 08 30 ; player_room = &2c &4436 0d 41 8a fe 32 37 32 45 fc e7 8e 45 ff 1e fb 6d ; "you just make it to the bottom before the rope slips &4446 96 06 37 1c 11 1e 14 23 0e 1e 15 11 24 1c 29 fc ; off. It lands neatly beside you." &4456 4f 41 04 &4459 3b 0f ; object_room["rope"] = player_room &445b 44 20 ; p["score"] ++ &445d 04 ; return &445e 03 ; } &445f 0d 34 fa 0f 1d 15 24 22 15 23 85 45 7e 41 fc 35 ; "a few metres below the edge you lose your grip. As you &446f 4b fc 4e 06 58 41 fb ee 45 fb 09 48 4b fb 6e fa ; complete the rest of your journey faster than you intended, &447f 2a fc 94 41 fb ef 0b 41 c7 38 45 fb f0 48 45 f9 ; you reflect on the vagaries of the inexperienced rock &448f 54 ff 2c fe 5d 04 ; climb." &4495 08 7f ; player_room = &7b &4497 04 ; return &4498 03 ; } &4499 88 08 02 ; if(verb == "west" or &449c 88 14 ; verb == "forward") &449e 01 ; { &449f 0d 41 fc 49 78 45 fb 9a 46 88 32 4b 82 04 ; "you step over the precipice and fall to your death." &44ad 08 7f ; player_room = &7b &44af 03 ; } &44b0 88 07 02 ; if(verb == "south" or &44b3 88 0d ; verb == "left") &44b5 01 ; { &44b6 0d 41 fc 9d 38 45 fc 5d 46 88 c0 cd 56 32 45 70 ; "you slip on the scree and fall several hundred feet to the &44c6 04 ; road." &44c7 08 7f ; player_room = &7b &44c9 03 ; } &44ca 86 11 ; if(verb == "north") { player_room = &11 } &44cc 8e 2a ; if(verb == "east") { player_room = &2a } &44ce 00 ; end ; bytecode_for_room_2c_actions &44cf 2c 04 06 ; p["previous_room"] = p["player_room"] &44d2 2c 04 05 ; p["current_room"] = p["player_room"] &44d5 88 25 02 ; if(verb == "drop" or &44d8 88 29 02 ; verb == "throw" or &44db 88 26 ; verb == "give") &44dd 01 ; { &44de 89 09 ; if(first_noun == "meat") &44e0 01 ; { &44e1 0d 45 fc 65 23 15 19 2a 15 23 45 ff 18 46 fc a0 ; "The eagle seizes the meat and makes off, dropping a &44f1 96 0b 14 22 1f 20 20 19 1e 17 34 fc fe 9f ff 68 ; single white feather from one wing as it goes." &4501 6e 43 27 19 1e 17 58 37 a8 04 &450b 0b 0a 09 ; object_room["meat"] = &06 &450e 3b 14 ; object_room["feather"] = player_room &4510 44 20 ; p["score"] ++ &4512 2f ; room.flags[2] = true &4513 6f ; room.flags[6] = true &4514 04 ; return &4515 03 ; } &4516 03 ; } &4517 a7 ; if(!room.flags[2]) &4518 01 ; { &4519 0d fc 1a fc 1b 06 45 fb c4 24 11 1c 1f 1e 23 fc ; "too late. The eagle's talons grip you inexorably. Just &4529 4e 41 f9 36 06 8a 8e fc 21 12 15 11 1b fc 9f 41 ; before its beak tears you limb from limb, you pause to &4539 1c 19 1d 12 6e 1c 19 1d 12 0b 41 20 11 25 23 15 ; reflect on the wonders of nature and the sanctity of &4549 32 c7 38 45 fb d2 48 1e 11 24 25 22 15 46 45 fb ; wildlife. Especially big, hungry wildlife." &4559 f1 48 fb f2 06 f9 45 fa 10 0b 18 25 1e 17 22 29 &4569 fb f2 04 &456c 08 7f ; player_room = &7b &456e 04 ; return &456f 03 ; } &4570 88 07 ; if(verb == "south") &4572 01 ; { &4573 0d 41 fc 78 32 45 7e 48 45 b1 0b 49 6a 44 35 4c ; "you walk to the edge of the falls, but there is no way &4583 52 04 ; down." &4585 03 ; } &4586 a6 58 ; if(verb == "northeast") { player_room = &58 } &4588 88 32 ; if(verb == "wear" and &458a 89 19 ; first_noun == "boots" and &458c c4 32 ; p["antigrav_boots_state"] == 0) &458e 01 ; { &458f 44 20 ; p["score"] ++ &4591 0d 41 fe 21 38 45 79 ff 3d 06 45 fb 2d fb d0 fb ; "you put on the space boots. The tiny antigrav motors in the &45a1 51 33 45 fb 52 fc 3c fb f3 46 41 05 ; heels start whirring and you" &45ad db 0f 02 ; if(object_room["rope"] == "carrying" or &45b0 db 11 02 ; object_room["lance"] == "carrying" or &45b3 94 0e 08 ; p["number_of_objects_carried"] > &04) &45b6 01 ; { &45b7 0d 16 1c 1f 11 24 b0 53 34 74 05 ; "float around for a while" &45c2 03 ; } ; else &45c3 01 ; { &45c4 0d 42 1c 19 16 24 15 14 32 45 fc 17 48 45 47 ff ; "are lifted to the top of the west rock wall" &45d4 2c 87 05 &45d7 08 16 ; player_room = &12 &45d9 03 ; } &45da 0d 8e 45 fb 53 fc 68 5b 04 ; "before the energy gives out." &45e3 13 19 ; object_room["boots"] = 0 &45e5 1c 32 ; p["antigrav_boots_state"] = 1 &45e7 03 ; } &45e8 88 10 02 ; if(verb == "up" or &45eb 88 13 ; verb == "back") &45ed 01 ; { &45ee 0d 9b 9c 4c 5e 0b 45 ff 2c 13 22 25 1d 12 1c 15 ; "about half way up, the rock crumbles under your hand and you &45fe 23 fc 7b 4b 77 46 41 88 f9 37 0b fb d8 b3 ff 25 ; fall backwards, breaking every bone in your body. Over the &460e 33 4b fc 99 06 78 45 fb 15 fa 0f 27 15 15 1b 23 ; next few weeks, as you slowly die of starvation, you have &461e 0b 58 41 fb da fc 34 48 fb f4 0b 41 54 fb 6f 48 ; plenty of time to consider the gravity of your situation." &462e 5c 32 fb f5 45 fb f6 48 4b fb f7 04 &463a 08 7f ; player_room = &7b &463c 03 ; } &463d 00 ; end ; bytecode_for_room_2d_actions &463e 86 26 ; if(verb == "north") { player_room = &26 } &4640 96 2e ; if(verb == "south") { player_room = &2e } &4642 88 06 02 ; if(verb == "east" or &4645 88 08 ; verb == "west") &4647 01 ; { &4648 08 26 ; player_room = &22 &464a 1c 2b ; p["distance_into_forest"] = 1 &464c 03 ; } &464d 9e 22 ; if(verb == "west") { player_room = &22 } &464f 00 ; end ; bytecode_for_room_2e_actions &4650 86 2d ; if(verb == "north") { player_room = &2d } &4652 88 06 02 ; if(verb == "east" or &4655 88 08 ; verb == "west") &4657 01 ; { &4658 08 26 ; player_room = &22 &465a 1c 2b ; p["distance_into_forest"] = 1 &465c 03 ; } &465d 96 22 ; if(verb == "south") { player_room = &22 } &465f 88 26 ; if(verb == "give" and &4661 89 1e ; first_noun == "silver" and &4663 a7 ; !room.flags[2]) &4664 01 ; { &4665 0d fc d5 13 22 1f 23 23 15 14 45 17 29 20 23 29 ; "Having crossed the gypsy's palm with silver, he tells your &4675 0f 23 fb 26 72 ff 5a 0b 3e 24 15 1c 1c 23 4b fb ; fortune. \nYour journey will be longer than you think. To &4685 67 06 2d 4b fb 6e a6 36 1c 1f 1e 17 15 22 fc 94 ; the east weapons will not aid you, and to the north gold is &4695 41 fe 58 06 32 45 4a cc a6 5f 11 19 14 41 0b 46 ; of more value. In the west you will at last meet your &46a5 32 45 67 7f 44 48 fc 12 26 11 1c 25 15 06 0e 33 ; friend; in the south you will find only an enemy. \nAs an &46b5 45 47 41 a6 39 fc 25 fb 16 4b fc dd 0a 33 45 69 ; honoured guest, you may take anything you wish from the &46c5 41 a6 66 93 3b fc c2 06 2d 58 3b fb f8 17 25 15 ; camp. Looking round, you see only a pair of worn space boots &46d5 23 24 0b 41 1d 11 29 fe 29 e4 41 fb 35 6e 45 fb ; and an oily rope." &46e5 1f 06 fb f9 76 0b 41 4e 93 34 fc 2d 48 27 1f 22 &46f5 1e 79 ff 3d 46 3b 1f 19 1c 29 ff 1e 04 &4702 2f ; room.flags[2] = true &4703 0b 5c 1e ; object_room["silver"] = &58 &4706 3b 19 ; object_room["boots"] = player_room &4708 3b 0f ; object_room["rope"] = player_room &470a 44 20 ; p["score"] ++ &470c 03 ; } &470d 00 ; end ; bytecode_for_room_2f_actions &470e bf ; if(room.flags[3]) &470f 01 ; { &4710 88 08 ; if(verb == "west") &4712 01 ; { &4713 37 ; room.flags[3] = false &4714 08 2a ; player_room = &26 &4716 03 ; } &4717 88 06 ; if(verb == "east") &4719 01 ; { &471a 37 ; room.flags[3] = false &471b 08 34 ; player_room = &30 &471d 03 ; } &471e 04 ; return &471f 03 ; } &4720 88 1d 02 ; if(verb == "kick" or &4723 88 1b ; verb == "attack") &4725 01 ; { &4726 04 ; return &4727 03 ; } &4728 88 25 ; if(verb == "drop" and &472a 89 11 ; first_noun == "lance") &472c 01 ; { &472d 0d 4b 27 15 11 20 1f 1e 44 fa f5 50 34 fa f6 fc ; "Your weapon is collected by a stainless steel gnome made &473d 54 17 1e 1f 1d 15 fc 1f f9 45 53 45 fa 66 04 ; especially for the purpose." &474c 09 0a ; object_room[first_noun] = &06 &474e 04 ; return &474f 03 ; } &4750 80 15 ; if(verb < "dc") &4752 01 ; { &4753 0d 45 d5 fe 2b 39 4b fb 83 16 1f 22 1d 0b fa f7 ; "the soldiers fire at your fleeing form, registering hits in &4763 fb 2f 33 30 8d 0e 20 1c 11 13 15 23 06 58 41 12 ; 137 places. As you bite the dust, your mind dwells for a &4773 19 24 15 45 fb 2e 0b 4b fc a1 14 27 15 1c 1c 23 ; moment on the virtues of patience." &4783 53 34 fc 82 38 45 fa 67 48 fb 70 04 &478f 08 7f ; player_room = &7b &4791 04 ; return &4792 03 ; } &4793 08 3d ; player_room = &39 &4795 27 ; room.flags[2] = false &4796 17 ; room.flags[1] = false &4797 08 33 ; player_room = &2f &4799 98 1c ; if(verb != "shoot") &479b 01 ; { &479c 0d 45 d5 f9 38 fe 1b 76 32 fa eb 41 04 ; "the soldiers eventually get round to searching you." &47a9 03 ; } &47aa db 11 ; if(object_room["lance"] == "carrying") &47ac 01 ; { &47ad 0d fc 45 41 42 fc 96 32 36 fe 70 cc 0b 41 42 23 ; "since you are found to be carrying weapons, you are &47bd 25 1d 1d 11 22 19 1c 29 0e 15 28 15 13 25 24 15 ; summarily executed. As the blindfold is tied, you resolve &47cd 14 06 58 45 12 1c 19 1e 14 16 1f 1c 14 44 fc 63 ; never again to trust anyone chewing gum." &47dd 0b 41 fa 68 a3 fc 44 32 24 22 25 23 24 fa 2b d6 &47ed ff 0d 04 &47f0 08 7f ; player_room = &7b &47f2 04 ; return &47f3 03 ; } &47f4 0d 7b 25 23 18 15 22 41 ea 04 ; "they usher you through." &47fe 3f ; room.flags[3] = true &47ff 00 ; end ; bytecode_for_room_30_actions &4800 86 31 ; if(verb == "north") { player_room = &31 } &4802 8e 32 ; if(verb == "east") { player_room = &32 } &4804 96 31 ; if(verb == "south") { player_room = &31 } &4806 9e 2f ; if(verb == "west") { player_room = &2f } &4808 00 ; end ; bytecode_for_room_31_actions &4809 88 10 ; if(verb == "up") &480b 01 ; { &480c 0d 41 23 13 22 11 1d 12 1c 15 6c ff 38 45 b5 8a ; "You scramble back onto the bridge just in time." &481c 33 5c 04 &481f 08 34 ; player_room = &30 &4821 2c 04 05 ; p["current_room"] = p["player_room"] &4824 04 ; return &4825 03 ; } &4826 0d 58 45 fa bc fe 17 41 11 1c 19 26 15 0b 41 c7 ; "as the fangfish eat you alive, you reflect briefly on the folly &4836 12 22 19 15 16 1c 29 38 45 fb 71 48 1c 15 11 20 ; of leaping before looking." &4846 19 1e 17 8e fb f9 04 &484d 08 7f ; player_room = &7b &484f 00 ; end ; bytecode_for_room_32_actions &4850 86 33 ; if(verb == "north") { player_room = &33 } &4852 8e 35 ; if(verb == "east") { player_room = &35 } &4854 d6 35 ; if(verb == "down") { player_room = &35 } &4856 96 34 ; if(verb == "south") { player_room = &34 } &4858 9e 30 ; if(verb == "west") { player_room = &30 } &485a 00 ; end ; bytecode_for_room_33_actions &485b 96 32 ; if(verb == "south") { player_room = &32 } &485d 9e 31 ; if(verb == "west") { player_room = &31 } &485f 88 06 02 ; if(verb == "east" or &4862 88 2a ; verb == "jump") &4864 01 ; { &4865 0d 41 88 55 45 b9 ba 0b fb d8 4b fc 69 06 45 8f ; "You fall into the market square, breaking your neck. The &4875 ff 75 42 13 11 1c 1c 15 14 0b 49 16 11 19 1c 32 ; castle doctors are called, but fail to save you." &4885 fe 43 41 04 &4889 08 7f ; player_room = &7b &488b 03 ; } &488c 00 ; end ; bytecode_for_room_34_actions &488d 88 1a ; if(verb == "take") &488f 01 ; { &4890 04 ; return &4891 03 ; } &4892 86 32 ; if(verb == "north") { player_room = &32 } &4894 88 07 ; if(verb == "south") &4896 01 ; { &4897 0d 41 24 22 19 20 78 45 ff 6d 0b 46 88 55 45 63 ; "You trip over the soldier, and fall into the moat." &48a7 04 &48a8 08 35 ; player_room = &31 &48aa 04 ; return &48ab 03 ; } &48ac 9e 31 ; if(verb == "west") { player_room = &31 } &48ae d6 31 ; if(verb == "down") { player_room = &31 } &48b0 88 2a ; if(verb == "jump") &48b2 01 ; { &48b3 08 35 ; player_room = &31 &48b5 04 ; return &48b6 03 ; } &48b7 80 10 ; if(verb < "up") &48b9 01 ; { &48ba 04 ; return &48bb 03 ; } &48bc a7 ; if(!room.flags[2] and &48bd 88 1f ; verb == "ask") &48bf 01 ; { &48c0 0d 45 ff 6d fb 6b 5a fc 6c 0b 17 22 19 1e 23 0b ; "the soldier opens his eyes, grins, and offers you a stick of &48d0 46 fb ec 41 34 fb 4b 48 d6 ff 0d 06 5a fc 6c fc ; chewing gum. His eyes close again." &48e0 5f fc 44 04 &48e4 3b 07 ; object_room["gum"] = player_room &48e6 2f ; room.flags[2] = true &48e7 44 20 ; p["score"] ++ &48e9 04 ; return &48ea 03 ; } &48eb 0d 45 ff 6d 44 fb fa 58 4b 23 18 11 14 1f 27 b1 ; "the soldier is startled as your shadow falls across him. Jumping &48fb d1 ff 15 06 fa dc 5e 0b 3e f9 5e 1b 1e 1f 13 1b ; up, he accidentally knocks you backwards into the moat." &490b 23 41 f9 37 55 45 63 04 &4913 08 35 ; player_room = &31 &4915 00 ; end ; bytecode_for_room_35_actions &4916 8c 37 07 ; if(p["lantern_state"] == &03) &4919 01 ; { &491a 0c 05 37 ; p["lantern_state"] = &01 &491d 03 ; } &491e 86 36 ; if(verb == "north") { player_room = &36 } &4920 8e 39 ; if(verb == "east") { player_room = &39 } &4922 9e 32 ; if(verb == "west") { player_room = &32 } &4924 de 32 ; if(verb == "up") { player_room = &32 } &4926 00 ; end ; bytecode_for_room_36_actions &4927 ae 37 ; if(verb == "northwest") { player_room = &37 } &4929 96 35 ; if(verb == "south") { player_room = &35 } &492b 88 1a ; if(verb == "take") &492d 01 ; { &492e 0d fb 72 08 fb 72 08 45 fa 11 a8 5e 06 41 42 15 ; "Thief! thief! the cry goes up. You are escorted from the &493e 23 13 1f 22 24 15 14 6e 45 91 ad e6 fa 12 04 ; city without further ado." &494d 08 2a ; player_room = &26 &494f 03 ; } &4950 a7 ; if(!room.flags[2]) &4951 01 ; { &4952 88 44 ; if(verb == "examine") &4954 01 ; { &4955 89 2a 02 ; if(first_noun == "watches" or &4958 89 2d ; first_noun == "computers") &495a 01 ; { &495b 0d fb f9 13 1c 1f 23 15 22 0b 41 94 43 48 45 19 ; "looking closer, you notice one of the items for sale &496b 24 15 1d 23 53 fc 22 44 34 ff 17 ff 45 92 fc 0c ; is a fob watch that once decorated the Doctor's &497b fb ae 45 2e d9 fb fb 04 ; waistcoat." &4983 04 ; return &4984 03 ; } &4985 03 ; } &4986 03 ; } &4987 88 18 ; if(verb == "buy") &4989 01 ; { &498a db 1e ; if(object_room["silver"] == "carrying") &498c 01 ; { &498d 4f ; room.flags[4] = true &498e 03 ; } ; else &498f 01 ; { &4990 db 05 ; if(object_room["florins"] == "carrying") &4992 01 ; { &4993 0d 35 43 a6 fe 29 2e fc 4d ff 66 04 ; "no one will take Earth florins." &499f 04 ; return &49a0 03 ; } &49a1 0d 41 54 cb 32 20 11 29 72 04 ; "you have nothing to pay with." &49ab 04 ; return &49ac 03 ; } &49ad 89 2a 02 ; if(first_noun == "watches" or &49b0 89 2d ; first_noun == "computers") &49b2 01 ; { &49b3 af ; if(room.flags[2]) &49b4 01 ; { &49b5 0d 45 ff 70 57 23 1c 19 20 20 15 14 7c 06 a5 04 ; "the centaur has slipped away. Sorry." &49c5 04 ; return &49c6 03 ; } &49c7 2f ; room.flags[2] = true &49c8 0b 0a 1e ; object_room["silver"] = &06 &49cb 8d 4d 02 ; if(preposition == "doctors" or &49ce 8d 4a ; preposition == "fob") &49d0 01 ; { &49d1 0d 45 ff 70 20 11 22 24 23 f9 55 72 45 ff 45 0b ; "the centaur parts reluctantly with the watch, in &49e1 33 15 28 13 18 11 1e 17 15 53 4b ff 5a ff 59 06 ; exchange for your silver button. He slips off into &49f1 3e fb 6d 96 55 45 fb 73 04 ; the crowd." &49fa 1b 2a ; object_room["watches"] = 1 &49fc 44 20 ; p["score"] ++ &49fe 04 ; return &49ff 03 ; } &4a00 0d 45 23 1c 29 fc 62 fb 72 fc c0 41 34 13 18 15 ; "the sly old thief passes you a cheap wrist computer, &4a10 11 20 fc 6f ff 76 0b fa 69 93 48 20 1c 11 29 19 ; capable only of playing a silly adventure game, and &4a20 1e 17 34 fb 56 fa d6 fc 2c 0b 46 fb 6d 96 55 45 ; slips off into the crowd, taking your silver with him." &4a30 fb 73 0b 24 11 1b 19 1e 17 4b ff 5a 72 ff 15 04 &4a40 1b 2d ; object_room["computers"] = 1 &4a42 04 ; return &4a43 03 ; } &4a44 0d 92 44 5f 53 fc 22 4f 04 ; "that is not for sale here." &4a4d 03 ; } &4a4e 00 ; end ; bytecode_for_room_37_actions &4a4f 88 25 ; if(verb == "drop" and &4a51 8a 3b ; second_noun == "screen") &4a53 01 ; { &4a54 0d 45 05 ; "The" &4a57 1d ; print first_noun &4a58 0d f0 52 45 ff 33 04 ; "disappears down the well." &4a5f 09 3c ; object_room[first_noun] = &38 &4a61 03 ; } &4a62 d6 38 ; if(verb == "down") { player_room = &38 } &4a64 b6 36 ; if(verb == "southeast") { player_room = &36 } &4a66 e6 36 ; if(verb == "exit") { player_room = &36 } &4a68 00 ; end ; bytecode_for_room_38_actions &4a69 88 10 02 ; if(verb == "up" or &4a6c 88 13 ; verb == "back") &4a6e 01 ; { &4a6f 94 0e 05 ; if(p["number_of_objects_carried"] > &01) &4a72 01 ; { &4a73 0d 4b fc ee 20 22 1f 26 15 23 fc 1a fb 46 46 45 ; "Your weight proves too much and the rusty chain breaks. &4a83 fc e6 ff 49 12 22 15 11 1b 23 06 4b 13 22 19 15 ; Your cries for help go unheeded. You have plenty of time &4a93 23 53 fe 3f 40 fb fc 06 41 54 fb 6f 48 5c 32 fb ; to consider the gravity of your situation as you starve &4aa3 f5 45 fb f6 48 4b fb f7 58 41 fa 2c 32 82 04 ; to death." &4ab2 08 7f ; player_room = &7b &4ab4 04 ; return &4ab5 03 ; } &4ab6 08 3b ; player_room = &37 &4ab8 03 ; } &4ab9 00 ; end ; bytecode_for_room_39_actions &4aba 8c 37 07 ; if(p["lantern_state"] == &03) &4abd 01 ; { &4abe 0c 05 37 ; p["lantern_state"] = &01 &4ac1 03 ; } &4ac2 88 2a ; if(verb == "jump") &4ac4 01 ; { &4ac5 0d 45 64 44 fc 1a fa 10 32 fe 34 78 04 ; "The dog is too big to jump over." &4ad2 03 ; } &4ad3 af ; if(room.flags[2] and &4ad4 88 1a ; verb == "take" and &4ad6 89 22 ; first_noun == "bone") &4ad8 01 ; { &4ad9 0d 45 64 af aa 16 1f 1e 14 48 37 04 ; "the dog seems rather fond of it." &4ae5 03 ; } &4ae6 97 ; if(!room.flags[1]) &4ae7 01 ; { &4ae8 9e 35 ; if(verb == "west") { player_room = &35 } &4aea a7 ; if(!room.flags[2]) &4aeb 01 ; { &4aec 88 06 02 ; if(verb == "east" or &4aef 88 07 02 ; verb == "south" or &4af2 88 12 ; verb == "enter") &4af4 01 ; { &4af5 0d 45 64 12 11 22 15 23 5a 98 46 fb fd f9 5f 04 ; "the dog bares his teeth and growls convincingly." &4b05 03 ; } &4b06 88 26 ; if(verb == "give" and &4b08 89 22 ; first_noun == "bone") &4b0a 01 ; { &4b0b d9 02 ; if(object_room[first_noun] == "carrying" or &4b0d e1 ; object_room[first_noun] == player_room) &4b0e 01 ; { &4b0f 0d 45 64 17 22 11 12 23 45 ff 25 46 27 22 11 20 ; "the dog grabs the bone and wraps his canines &4b1f 23 5a fa 6a 76 37 06 fb 36 34 fc e0 fc a2 ac 64 ; round it. He's a pretty rotten guard dog." &4b2f 04 &4b30 2f ; room.flags[2] = true &4b31 0b 0b 22 ; object_room["bone"] = &07 &4b34 44 20 ; p["score"] ++ &4b36 03 ; } &4b37 03 ; } &4b38 04 ; return &4b39 03 ; } &4b3a 03 ; } &4b3b 8e 3a ; if(verb == "east") { player_room = &3a } &4b3d 96 56 ; if(verb == "south") { player_room = &56 } &4b3f ee 56 ; if(verb == "enter") { player_room = &56 } &4b41 97 ; if(!room.flags[1]) &4b42 01 ; { &4b43 04 ; return &4b44 03 ; } &4b45 a7 ; if(!room.flags[2]) &4b46 01 ; { &4b47 88 08 ; if(verb == "west") &4b49 01 ; { &4b4a 0d 45 64 fc d4 5a 98 46 fb fd 04 ; "the dog shows his teeth and growls." &4b55 03 ; } &4b56 88 26 ; if(verb == "give" and &4b58 89 22 ; first_noun == "bone" and &4b5a d9 ; object_room[first_noun] == "carrying") &4b5b 01 ; { &4b5c 0d 45 64 a8 53 45 ff 25 0b 49 1d 19 23 23 15 23 ; "the dog goes for the bone, but misses and sinks his &4b6c 46 23 19 1e 1b 23 5a 98 55 4b 77 06 3e fb d3 44 ; teeth into your hand. He really is a pretty rotten guard &4b7c 34 fc e0 fc a2 ac 64 04 ; dog." &4b84 04 ; return &4b85 03 ; } &4b86 88 29 ; if(verb == "throw" and &4b88 89 22 ; first_noun == "bone") &4b8a 01 ; { &4b8b 0d 45 64 86 96 32 fb 74 45 ff 25 06 3e 57 fc 16 ; "the dog runs off to retrieve the bone. He has been &4b9b be 53 2e 27 1f 22 23 24 2e 0e ac 2e 64 33 45 2e ; entered for Worst Guard Dog in the Universe and doesn't &4bab fb fe 46 fa 6b fc 33 32 23 20 1f 19 1c 5a fa 85 ; want to spoil his chances." &4bbb 04 &4bbc 2f ; room.flags[2] = true &4bbd 0b 0b 22 ; object_room["bone"] = &07 &4bc0 44 20 ; p["score"] ++ &4bc2 03 ; } &4bc3 04 ; return &4bc4 03 ; } &4bc5 9e 35 ; if(verb == "west") { player_room = &35 } &4bc7 00 ; end ; bytecode_for_room_3a_actions &4bc8 88 2d ; if(verb == "lift" and &4bca 89 34 ; first_noun == "chain") &4bcc 01 ; { &4bcd 0d fc 48 48 45 ec fc cc fc d7 5b 32 36 34 fc 61 ; "Each of the gleaming spires turns out to be a solid fuel &4bdd 16 25 15 1c fa 2d 0b 46 45 b8 fc 60 45 fc c1 48 ; engine, and the central tower the remains of a once mighty &4bed 34 fc 0c fb 5e fb 0e fa 6c 06 58 45 fa 6d 19 17 ; star cruiser. As the engines ignite, incinerating you and &4bfd 1e 19 24 15 0b f9 39 41 46 45 fc 84 91 0b 41 c7 ; the whole city, you reflect once more on the folly of idle &4c0d fc 0c fc 12 38 45 fb 71 48 19 14 1c 15 fa f8 04 ; curiosity." &4c1d 08 7f ; player_room = &7b &4c1f 04 ; return &4c20 03 ; } &4c21 9e 39 ; if(verb == "west") { player_room = &39 } &4c23 a7 ; if(!room.flags[2] and &4c24 88 06 ; verb == "east") &4c26 01 ; { &4c27 0d fa 86 fc ef 42 5f f9 4e 06 34 fc 86 d7 fa 2e ; "uninvited guests are not appreciated. A dozen guards pounce &4c37 38 41 58 41 24 22 29 32 fc 9d fb 06 0b 46 fb 33 ; on you as you try to slip past, and drag you away." &4c47 41 7c 04 &4c4a 08 59 ; player_room = &55 &4c4c 04 ; return &4c4d 03 ; } &4c4e 88 26 02 ; if(verb == "give" or &4c51 88 28 ; verb == "show") &4c53 01 ; { &4c54 89 2f ; if(first_noun == "invitation" and &4c56 a7 ; !room.flags[2]) &4c57 01 ; { &4c58 0d 45 d7 fe 18 fa 87 46 fa 2f 41 32 45 4a 04 ; "the guards bow deeply and direct you to the east." &4c67 2f ; room.flags[2] = true &4c68 44 20 ; p["score"] ++ &4c6a 04 ; return &4c6b 03 ; } &4c6c 03 ; } &4c6d a7 ; if(!room.flags[2]) &4c6e 01 ; { &4c6f 44 3c ; p["courtyard_guards_state"] ++ &4c71 94 3c 07 ; if(p["courtyard_guards_state"] > &03) &4c74 01 ; { &4c75 0d 45 d7 fc 35 fb 70 72 4b bb 27 11 29 23 46 fe ; "the guards lose patience with your strange ways and &4c85 4e 41 55 fb 75 58 3b 1f 12 26 19 1f 25 23 0e 23 ; throw you into prison as an obvious spy." &4c95 20 29 04 &4c98 08 59 ; player_room = &55 &4c9a 14 3c ; p["courtyard_guards_state"] = 0 &4c9c 03 ; } &4c9d 04 ; return &4c9e 03 ; } &4c9f 8e 3c ; if(verb == "east") { player_room = &3c } &4ca1 00 ; end ; bytecode_for_room_3b_actions &4ca2 88 17 ; if(verb == "bow") &4ca4 01 ; { &4ca5 44 35 ; p["king_bow_count"] ++ &4ca7 8c 35 05 ; if(p["king_bow_count"] == &01) &4caa 01 ; { &4cab 0d 45 7a f9 60 4b fb 4c 04 ; "The king acknowledges your gesture." &4cb4 03 ; } &4cb5 8c 35 06 ; if(p["king_bow_count"] == &02) &4cb8 01 ; { &4cb9 0d 45 7a fa 6e 41 fe 65 06 3e 15 1d 12 22 11 13 ; "the king motions you forward. He embraces you and awards &4cc9 15 23 41 46 11 27 11 22 14 23 41 34 1d 15 14 11 ; you a medal for the Doctor's part in defeating the &4cd9 1c 53 45 2e d9 fc 18 33 fa 88 45 2e df 46 5a fa ; Warlord and his minions. He asks you to deliver a small &4ce9 6f 06 0e 3e fb 76 41 32 fa 70 34 bc fa d4 ff 5c ; parchment scroll which was dropped by the Warlord in his &4cf9 ae fc 15 14 22 1f 20 20 15 14 50 45 2e df 33 5a ; flight from the battlefield: the king cannot read and &4d09 fc eb 6e 45 f2 09 45 7a 9d fe 3b 46 fc 8b 45 2e ; hopes the Doctor can. \nThe king bids you eat." &4d19 6b 4d 06 2d 45 7a 12 19 14 23 41 fe 17 04 &4d27 14 34 ; p["king_state"] = 0 &4d29 1c 3a ; p["tardis_state"] = 1 &4d2b 3b 29 ; object_room["scroll"] = player_room &4d2d 44 20 ; p["score"] ++ &4d2f 2f ; room.flags[2] = true &4d30 03 ; } &4d31 04 ; return &4d32 03 ; } &4d33 88 3d ; if(verb == "pretend") &4d35 01 ; { &4d36 af ; if(room.flags[2]) &4d37 01 ; { &4d38 0d fa f9 08 41 fc 91 fb 81 0b fc 41 45 7a 06 58 ; "magnificent! you fool everyone, even the king. As you &4d48 41 fe 67 32 fe 17 0b 41 94 39 4b 15 1c 12 1f 27 ; pretend to eat, you notice at your elbow a folder of &4d58 34 ff 58 48 ff 69 f9 56 45 2e fa fa 39 45 2e fc ; matches advertising the Restaurant at the Start of the &4d68 3c 48 45 2e fb fe 04 ; Universe." &4d6f 3b 15 ; object_room["matches"] = player_room &4d71 1f ; room.flags[1] = true &4d72 44 20 ; p["score"] ++ &4d74 04 ; return &4d75 03 ; } &4d76 03 ; } &4d77 88 16 ; if(verb == "drink") &4d79 01 ; { &4d7a 0d 41 fb 17 de 45 11 1c 19 15 1e fc 47 46 ff 2a ; "you soon discover the alien food and wine do not agree with &4d8a 3c 5f 11 17 22 15 15 72 fc d3 23 24 1f 1d 11 13 ; human stomachs. You turn green and keel over." &4d9a 18 23 06 41 fc 58 9e 46 1b 15 15 1c 78 04 &4da8 08 7f ; player_room = &7b &4daa 04 ; return &4dab 03 ; } &4dac 97 ; if(!room.flags[1]) &4dad 01 ; { &4dae 44 34 ; p["king_state"] ++ &4db0 94 34 08 02 ; if(p["king_state"] > &04 or &4db4 80 09 ; verb < "northeast") &4db6 01 ; { &4db7 0d 45 7a 44 11 20 20 11 1c 1c 15 14 50 4b fb 37 ; "the king is appalled by your lack of courtesy" &4dc7 48 fa 89 05 &4dcb af ; if(room.flags[2]) &4dcc 01 ; { &4dcd 0d 33 22 15 16 25 23 19 1e 17 32 fe 17 0b 05 ; "in refusing to eat, " &4ddc 03 ; } &4ddd 0d 0e 46 57 41 fa 71 04 ; " and has you removed." &4de5 08 3d ; player_room = &39 &4de7 14 34 ; p["king_state"] = 0 &4de9 04 ; return &4dea 03 ; } &4deb 03 ; } &4dec 9e 41 ; if(verb == "west") { player_room = &41 } &4dee 8e 42 ; if(verb == "east") { player_room = &42 } &4df0 00 ; end ; bytecode_for_room_3c_actions &4df1 9e 3a ; if(verb == "west") { player_room = &3a } &4df3 af ; if(room.flags[2]) &4df4 01 ; { &4df5 8e 41 ; if(verb == "east") { player_room = &41 } &4df7 86 54 ; if(verb == "north") { player_room = &54 } &4df9 04 ; return &4dfa 03 ; } &4dfb 88 26 ; if(verb == "give" and &4dfd 89 2f ; first_noun == "invitation") &4dff 01 ; { &4e00 0d 45 fa fb fb 21 fa 87 46 fa 8a 41 33 16 25 1c ; "The major-domo bows deeply and welcomes you in fulsome &4e10 23 1f 1d 15 0e 24 15 22 1d 23 04 ; terms." &4e1b 0b 0a 2f ; object_room["invitation"] = &06 &4e1e 2f ; room.flags[2] = true &4e1f 44 20 ; p["score"] ++ &4e21 08 3d ; player_room = &39 &4e23 27 ; room.flags[2] = false &4e24 1f ; room.flags[1] = true &4e25 08 40 ; player_room = &3c &4e27 04 ; return &4e28 03 ; } &4e29 44 3d ; p["entrance_hall_guard_state"] ++ &4e2b 94 3d 07 ; if(p["entrance_hall_guard_state"] > &03) &4e2e 01 ; { &4e2f 0d 16 19 1e 11 1c 1c 29 fa fc 92 41 42 34 1c 25 ; "finally convinced that you are a lunatic, the guards decide &4e3f 1e 11 24 19 13 0b 45 d7 fc 97 32 fc 89 fb 0d 46 ; to play safe and lock you away to await medical advice." &4e4f fb 38 41 7c 32 fc a3 fa 72 11 14 26 19 13 15 04 &4e5f 08 59 ; player_room = &55 &4e61 14 3d ; p["entrance_hall_guard_state"] = 0 &4e63 04 ; return &4e64 03 ; } &4e65 80 08 ; if(verb < "west") &4e67 01 ; { &4e68 0d 11 1c 11 22 1d 15 14 50 4b fb 37 48 fa 89 0b ; "alarmed by your lack of courtesy, the guards prevent your &4e78 45 d7 fa 73 4b fe 27 04 ; exit." &4e80 03 ; } &4e81 00 ; end ; bytecode_for_room_3d_actions &4e82 96 41 ; if(verb == "south") { player_room = &41 } &4e84 ce 3e ; if(verb == "right") { player_room = &3e } &4e86 8e 3e ; if(verb == "east") { player_room = &3e } &4e88 88 08 02 ; if(verb == "west" or &4e8b 88 0d 02 ; verb == "left" or &4e8e 88 43 ; verb == "open" and &4e90 89 33 ; first_noun == "trapdoor") &4e92 01 ; { &4e93 af ; if(room.flags[2]) &4e94 01 ; { &4e95 08 44 ; player_room = &40 &4e97 04 ; return &4e98 03 ; } &4e99 0d 45 51 44 bd 04 ; "The door is locked." &4e9f 03 ; } &4ea0 88 3e ; if(verb == "unlock" and &4ea2 89 33 ; first_noun == "trapdoor" and &4ea4 a7 ; !room.flags[2] and &4ea5 db 0d ; object_room["keys"] == "carrying") &4ea7 01 ; { &4ea8 0d 43 48 45 ed ff 1c fc d7 5b 32 fa 0d 45 fb 38 ; "one of the bandits' keys turns out to fit the lock." &4eb8 04 &4eb9 2f ; room.flags[2] = true &4eba 44 20 ; p["score"] ++ &4ebc 03 ; } &4ebd 00 ; end ; bytecode_for_room_3e_actions &4ebe 8e 3f ; if(verb == "east") { player_room = &3f } &4ec0 ee 3f ; if(verb == "enter") { player_room = &3f } &4ec2 9e 3d ; if(verb == "west") { player_room = &3d } &4ec4 e6 3d ; if(verb == "exit") { player_room = &3d } &4ec6 88 30 02 ; if(verb == "read" or &4ec9 88 44 ; verb == "examine") &4ecb 01 ; { &4ecc 89 1b ; if(first_noun == "paper" and &4ece 8d 44 ; preposition == "into" and &4ed0 8a 39 ; second_noun == "mirror") &4ed2 01 ; { &4ed3 0d 41 fb 34 45 ff 22 5e 32 45 ff 62 06 33 45 2e ; "You hold the note up to the mirror. In the Doctor's &4ee3 d9 b6 fb ca 44 c5 09 2d 65 14 15 11 22 fc dd 0b ; familiar scrawl is written: \nMy dear friend, this is a &4ef3 fc 80 44 34 24 22 19 13 1b 0e 2e 19 fa 74 6e 2e ; trick I learned from Leonardo, or maybe taught him. &4f03 fb 77 0b 3a 1d 11 29 12 15 0e 24 11 25 17 18 24 ; Don't remember. Have gone back to the Tardis to find my &4f13 ff 15 06 fc 90 fa 8b 06 54 fc 10 6c 32 45 2e c1 ; watch. It is lost or stolen and I am losing track of &4f23 32 66 65 ff 45 06 37 44 fc 1c 3a 23 24 1f 1c 15 ; time without it. \nPlease play my role at the party; bow &4f33 1e 46 2e 19 0e 11 1d 0e 1c 1f 23 19 1e 17 fc ce ; twice to the king, of course, receive the honours, and &4f43 48 5c ad 37 06 2d fb 78 fc 89 65 22 1f 1c 15 39 ; all that. Regards. . ." &4f53 45 fc 57 0a fe 18 24 27 19 13 15 32 45 7a 0b 48 &4f63 fa 30 0b fa 75 45 fa 76 0b 46 7d 92 06 22 15 17 &4f73 11 22 14 23 06 06 04 &4f7a 03 ; } &4f7b 03 ; } &4f7c 89 39 ; if(first_noun == "mirror") &4f7e 01 ; { &4f7f 88 4d 02 ; if(verb == "search" or &4f82 88 21 ; verb == "use") &4f84 01 ; { &4f85 d3 21 ; if(object_room["wig"] == "wearing") &4f87 01 ; { &4f88 0d 41 3c fe 41 fb 56 08 05 ; "You do look silly! " &4f91 04 ; return &4f92 03 ; } &4f93 0d 34 b6 16 11 13 15 fb 3c 6c 39 41 04 ; "a familiar face looks back at you." &4fa0 03 ; } &4fa1 03 ; } &4fa2 88 27 02 ; if(verb == "make" or &4fa5 88 4d ; verb == "search") &4fa7 01 ; { &4fa8 89 31 ; if(first_noun == "boulders" and &4faa a7 ; !room.flags[2]) &4fab 01 ; { &4fac 0d 33 45 ff 13 41 de 34 fc 51 ff 7f 04 ; "in the bed you discover a used toothpick." &4fb9 3b 17 ; object_room["toothpick"] = player_room &4fbb 44 20 ; p["score"] ++ &4fbd 2f ; room.flags[2] = true &4fbe 03 ; } &4fbf 03 ; } &4fc0 00 ; end ; bytecode_for_room_3f_actions &4fc1 9e 3e ; if(verb == "west") { player_room = &3e } &4fc3 e6 3e ; if(verb == "exit") { player_room = &3e } &4fc5 00 ; end ; bytecode_for_room_40_actions &4fc6 8e 3d ; if(verb == "east") { player_room = &3d } &4fc8 e6 3d ; if(verb == "exit") { player_room = &3d } &4fca 00 ; end ; bytecode_for_room_41_actions &4fcb 86 3d ; if(verb == "north") { player_room = &3d } &4fcd 9e 3c ; if(verb == "west") { player_room = &3c } &4fcf 88 06 02 ; if(verb == "east" or &4fd2 88 10 ; verb == "up") &4fd4 01 ; { &4fd5 d3 25 ; if(object_room["robe"] == "wearing" and &4fd7 d3 21 ; object_room["wig"] == "wearing") &4fd9 01 ; { &4fda 87 ; if(!room.flags[0]) &4fdb 01 ; { &4fdc 0d 45 d7 fb 79 41 58 41 fb 31 ea 45 fc 73 04 ; "The guards announce you as you pass through the ; doors." &4feb 44 20 ; p["score"] ++ &4fed 03 ; } &4fee 0f ; room.flags[0] = true &4fef 08 3f ; player_room = &3b &4ff1 04 ; return &4ff2 03 ; } &4ff3 0d 45 d7 22 15 16 25 23 15 32 11 1c 1c 1f 27 41 ; "the guards refuse to allow you to enter since you are &5003 32 fe 49 fc 45 41 42 f9 57 fa 8c 04 ; improperly dressed." &500f 04 ; return &5010 03 ; } &5011 00 ; end ; bytecode_for_room_42_actions &5012 de 43 ; if(verb == "up") { player_room = &43 } &5014 d6 44 ; if(verb == "down") { player_room = &44 } &5016 88 08 ; if(verb == "west") &5018 01 ; { &5019 d3 25 ; if(object_room["robe"] == "wearing" and &501b d3 21 ; object_room["wig"] == "wearing") &501d 01 ; { &501e 08 3f ; player_room = &3b &5020 04 ; return &5021 03 ; } &5022 0d 45 ac 22 15 16 25 23 15 23 32 1c 15 24 41 fe ; "The guard refuses to let you enter the hall improperly &5032 49 45 99 f9 57 fa 8c 04 ; dressed." &503a 03 ; } &503b 88 0f ; if(verb == "down") &503d 01 ; { &503e d3 25 ; if(object_room["robe"] == "wearing" and &5040 d3 21 ; object_room["wig"] == "wearing") &5042 01 ; { &5043 0d 45 ac fb 3c 39 4b 16 19 1e 15 22 29 46 fa 77 ; "the guard looks at your finery and directs you firmly &5053 41 fb b3 47 04 ; west." &5058 08 3f ; player_room = &3b &505a 04 ; return &505b 03 ; } &505c 08 48 ; player_room = &44 &505e 03 ; } &505f 00 ; end ; bytecode_for_room_43_actions &5060 a7 ; if(!room.flags[2] and &5061 db 08 ; object_room["pea"] == "carrying") &5063 01 ; { &5064 44 20 ; p["score"] ++ &5066 2f ; room.flags[2] = true &5067 03 ; } &5068 d6 42 ; if(verb == "down") { player_room = &42 } &506a 88 4d ; if(verb == "search" and &506c e3 08 ; object_room["pea"] == player_room) &506e 01 ; { &506f 0d 41 94 34 ff 0e 38 45 a0 fc 05 4b fc 28 04 ; "You notice a pea on the floor near your foot." &507e 03 ; } &507f 80 08 ; if(verb < "west") &5081 01 ; { &5082 0d 41 42 11 13 13 25 23 15 14 48 fc 7a 34 fa 8d ; "you are accused of being a poisoner by a suspicious cook, &5092 50 34 f9 46 13 1f 1f 1b 0b 46 14 22 11 17 17 15 ; and dragged away by the guards." &50a2 14 7c 50 45 d7 04 &50a8 08 59 ; player_room = &55 &50aa 03 ; } &50ab 00 ; end ; bytecode_for_room_44_actions &50ac de 42 ; if(verb == "up") { player_room = &42 } &50ae 86 42 ; if(verb == "north") { player_room = &42 } &50b0 9e 7a ; if(verb == "west") { player_room = &7a } &50b2 96 45 ; if(verb == "south") { player_room = &45 } &50b4 00 ; end ; bytecode_for_room_45_actions &50b5 86 44 ; if(verb == "north") { player_room = &44 } &50b7 96 46 ; if(verb == "south") { player_room = &46 } &50b9 9e 47 ; if(verb == "west") { player_room = &47 } &50bb 00 ; end ; bytecode_for_room_46_actions &50bc 86 45 ; if(verb == "north") { player_room = &45 } &50be 9e 7a ; if(verb == "west") { player_room = &7a } &50c0 00 ; end ; bytecode_for_room_47_actions &50c1 86 7a ; if(verb == "north") { player_room = &7a } &50c3 8e 45 ; if(verb == "east") { player_room = &45 } &50c5 96 7a ; if(verb == "south") { player_room = &7a } &50c7 9e 49 ; if(verb == "west") { player_room = &49 } &50c9 00 ; end ; bytecode_for_room_48_actions &50ca 8e 7a ; if(verb == "east") { player_room = &7a } &50cc 96 49 ; if(verb == "south") { player_room = &49 } &50ce 9e 4f ; if(verb == "west") { player_room = &4f } &50d0 00 ; end ; bytecode_for_room_49_actions &50d1 8e 47 ; if(verb == "east") { player_room = &47 } &50d3 86 48 ; if(verb == "north") { player_room = &48 } &50d5 96 4a ; if(verb == "south") { player_room = &4a } &50d7 9e 7a ; if(verb == "west") { player_room = &7a } &50d9 00 ; end ; bytecode_for_room_4a_actions &50da 86 49 ; if(verb == "north") { player_room = &49 } &50dc 8e 7a ; if(verb == "east") { player_room = &7a } &50de 9e 4b ; if(verb == "west") { player_room = &4b } &50e0 00 ; end ; bytecode_for_room_4b_actions &50e1 86 7a ; if(verb == "north") { player_room = &7a } &50e3 8e 4a ; if(verb == "east") { player_room = &4a } &50e5 9e 7a ; if(verb == "west") { player_room = &7a } &50e7 00 ; end ; bytecode_for_room_4c_actions &50e8 86 50 ; if(verb == "north") { player_room = &50 } &50ea 96 4d ; if(verb == "south") { player_room = &4d } &50ec 00 ; end ; bytecode_for_room_4d_actions &50ed 86 4c ; if(verb == "north") { player_room = &4c } &50ef 96 4e ; if(verb == "south") { player_room = &4e } &50f1 00 ; end ; bytecode_for_room_4e_actions &50f2 86 4d ; if(verb == "north") { player_room = &4d } &50f4 96 4f ; if(verb == "south") { player_room = &4f } &50f6 00 ; end ; bytecode_for_room_4f_actions &50f7 86 4e ; if(verb == "north") { player_room = &4e } &50f9 8e 48 ; if(verb == "east") { player_room = &48 } &50fb 88 2d ; if(verb == "lift" and &50fd 89 39 ; first_noun == "mirror") &50ff 01 ; { &5100 8f ; if(room.flags[0]) &5101 01 ; { &5102 0d cb e5 04 ; "Nothing happens." &5106 04 ; return &5107 03 ; } &5108 0d 34 fc bc 23 27 19 1e 17 23 52 6e 45 fa c8 fc ; "a ladder swings down from the darkness above." &5118 76 04 &511a 0f ; room.flags[0] = true &511b 04 ; return &511c 03 ; } &511d 88 43 ; if(verb == "open" and &511f 89 33 02 ; first_noun == "trapdoor" or &5122 88 0f ; verb == "down") &5124 01 ; { &5125 0d 34 fc 64 ff 0f 12 1f 25 1e 14 23 5b 46 fb 55 ; "a giant rat bounds out and begins to devour you. As it &5135 32 fa 31 41 06 58 37 fc ea 0b 41 c7 38 45 fc 29 ; gnaws, you reflect on the lot of lonely rodents and the &5145 48 1c 1f 1e 15 1c 29 fa 78 46 45 fa fd 48 f9 3a ; unfairness of fifty-fifty chances." &5155 fa 85 04 &5158 08 7f ; player_room = &7b &515a 03 ; } &515b 8f ; if(room.flags[0] and &515c 88 10 ; verb == "up") &515e 01 ; { &515f 07 ; room.flags[0] = false &5160 0d 41 15 1d 15 22 17 15 33 34 90 95 48 34 fc 67 ; "you emerge in a dark corner of a large room full of people. &5170 9a fc df 48 20 15 1f 20 1c 15 06 45 ff 7b fa 8e ; The trapdoor clicks shut behind you." &5180 fb 23 fb 65 41 04 &5186 08 5a ; player_room = &56 &5188 03 ; } &5189 00 ; end ; bytecode_for_room_50_actions &518a de 51 ; if(verb == "up") { player_room = &51 } &518c 96 4c ; if(verb == "south") { player_room = &4c } &518e cc 36 ; if(p["dungeon_door_state"] != 0) &5190 01 ; { &5191 9e 55 ; if(verb == "west") { player_room = &55 } &5193 ee 55 ; if(verb == "enter") { player_room = &55 } &5195 04 ; return &5196 03 ; } &5197 89 33 ; if(first_noun == "trapdoor") &5199 01 ; { &519a 88 43 02 ; if(verb == "open" or &519d 88 3e ; verb == "unlock") &519f 01 ; { &51a0 0d f9 22 f9 2c 04 ; "Completely impossible." &51a6 03 ; } &51a7 03 ; } &51a8 00 ; end ; bytecode_for_room_51_actions &51a9 0e ; skip_to_next_bytecode() &51aa 00 ; end ; bytecode_for_room_52_actions &51ab 0e ; skip_to_next_bytecode() &51ac 00 ; end ; bytecode_for_room_53_actions &51ad 88 10 ; if(verb == "up") &51af 01 ; { &51b0 44 04 ; p["player_room"] ++ &51b2 44 09 ; p["output_written"] ++ &51b4 03 ; } &51b5 88 0f ; if(verb == "down") &51b7 01 ; { &51b8 4c 04 ; p["player_room"] -- &51ba 44 09 ; p["output_written"] ++ &51bc 03 ; } &51bd 00 ; end ; bytecode_for_room_54_actions &51be 96 3c ; if(verb == "south") { player_room = &3c } &51c0 d6 53 ; if(verb == "down") { player_room = &53 } &51c2 00 ; end ; bytecode_for_room_55_actions &51c3 8c 37 07 ; if(p["lantern_state"] == &03) &51c6 01 ; { &51c7 0c 05 37 ; p["lantern_state"] = &01 &51ca 03 ; } &51cb 2c 04 06 ; p["previous_room"] = p["player_room"] &51ce 2c 04 05 ; p["current_room"] = p["player_room"] &51d1 80 08 ; if(verb < "west" and &51d3 9f ; room.flags[1]) &51d4 01 ; { &51d5 0d 41 fc 49 96 45 ff 4e 0b fa ee 3b fc 9b 04 ; "You step off the table, spraining an ankle." &51e4 17 ; room.flags[1] = false &51e5 04 ; return &51e6 03 ; } &51e7 88 43 ; if(verb == "open") &51e9 01 ; { &51ea cc 36 ; if(p["dungeon_door_state"] != 0) &51ec 01 ; { &51ed 04 ; return &51ee 03 ; } &51ef 0d 45 51 44 bd 04 ; "the door is locked." &51f5 03 ; } &51f6 88 10 ; if(verb == "up" and &51f8 97 ; !room.flags[1]) &51f9 01 ; { &51fa 0d 41 fe 56 38 45 ff 4e 04 ; "you stand on the table." &5203 1f ; room.flags[1] = true &5204 03 ; } &5205 88 0f ; if(verb == "down" and &5207 9f ; room.flags[1]) &5208 01 ; { &5209 0d 41 fe 1b 52 04 ; "you get down." &520f 17 ; room.flags[1] = false &5210 03 ; } &5211 88 3f ; if(verb == "switch" and &5213 99 1d ; first_noun != "radio") &5215 01 ; { &5216 9f ; if(room.flags[1]) &5217 01 ; { &5218 0d 41 a4 bf 45 fe 62 04 ; "you can't reach the switch." &5220 04 ; return &5221 03 ; } &5222 cc 36 ; if(p["dungeon_door_state"] != 0) &5224 01 ; { &5225 0d 0e cb e5 04 ; " nothing happens." &522a 04 ; return &522b 03 ; } &522c 8d 46 ; if(preposition == "onto") &522e 01 ; { &522f d7 ; if(!room.flags[5]) &5230 01 ; { &5231 0d 37 44 38 04 ; "it is on." &5236 04 ; return &5237 03 ; } &5238 bf ; if(room.flags[3]) &5239 01 ; { &523a af ; if(room.flags[2]) &523b 01 ; { &523c 0d 45 ff 1a b1 5b 04 ; "the disc falls out." &5243 37 ; room.flags[3] = false &5244 57 ; room.flags[5] = false &5245 3b 0c ; object_room["disk"] = player_room &5247 04 ; return &5248 03 ; } &5249 0d 20 18 25 24 08 45 fb 24 12 1c 1f 27 23 06 45 ; "phut! the fuse blows. The hum from the door stops." &5259 fc 79 6e 45 51 fc de 04 &5261 1c 36 ; p["dungeon_door_state"] = 1 &5263 44 20 ; p["score"] ++ &5265 04 ; return &5266 03 ; } &5267 0d a7 04 ; "okay." &526a 57 ; room.flags[5] = false &526b 04 ; return &526c 03 ; } &526d 8d 49 ; if(preposition == "off") &526f 01 ; { &5270 df ; if(room.flags[5]) &5271 01 ; { &5272 0d 37 44 96 04 ; "it is off." &5277 04 ; return &5278 03 ; } &5279 0d a7 04 ; "okay." &527c 5f ; room.flags[5] = true &527d 04 ; return &527e 03 ; } &527f 0d 38 3a 96 07 05 ; "on or off? " &5285 03 ; } &5286 88 1a 02 ; if(verb == "take" or &5289 88 2d 02 ; verb == "lift" or &528c 88 2e ; verb == "press") &528e 01 ; { &528f 89 38 ; if(first_noun == "armour") &5291 01 ; { &5292 9f ; if(room.flags[1]) &5293 01 ; { &5294 0d 74 41 42 38 37 07 05 ; "while you are on it? " &529c 04 ; return &529d 03 ; } &529e 0d 1f 1f 20 18 08 a1 fc b8 04 ; "ooph! it's heavy." &52a8 87 ; if(!room.flags[0]) &52a9 01 ; { &52aa 0d 34 bc 6f ff 1a b1 96 45 fc e7 48 43 1c 15 17 ; "a small metal disc falls off the bottom of one &52ba 04 ; leg." &52bb 0f ; room.flags[0] = true &52bc 3b 0c ; object_room["disk"] = player_room &52be 03 ; } &52bf 03 ; } &52c0 03 ; } &52c1 88 1a ; if(verb == "take" and &52c3 89 1a ; first_noun == "bulb" and &52c5 a7 ; !room.flags[2]) &52c6 01 ; { &52c7 0d a1 fb be 33 04 ; "it's screwed in." &52cd 04 ; return &52ce 03 ; } &52cf 88 41 ; if(verb == "extract") &52d1 01 ; { &52d2 89 1a 02 ; if(first_noun == "bulb" or &52d5 89 37 ; first_noun == "chair") &52d7 01 ; { &52d8 97 ; if(!room.flags[1]) &52d9 01 ; { &52da 0d 41 a4 bf 37 04 ; "you can't reach it." &52e0 04 ; return &52e1 03 ; } &52e2 af ; if(room.flags[2]) &52e3 01 ; { &52e4 0d 37 44 fa fe 04 ; "it is unscrewed." &52ea 04 ; return &52eb 03 ; } &52ec 0d a7 04 ; "okay." &52ef 3b 1a ; object_room["bulb"] = player_room &52f1 2f ; room.flags[2] = true &52f2 03 ; } &52f3 03 ; } &52f4 88 24 02 ; if(verb == "replace" or &52f7 88 37 ; verb == "insert") &52f9 01 ; { &52fa 89 1a 02 ; if(first_noun == "bulb" or &52fd 89 37 ; first_noun == "chair") &52ff 01 ; { &5300 97 ; if(!room.flags[1]) &5301 01 ; { &5302 0d 41 a4 bf 04 ; "you can't reach." &5307 04 ; return &5308 03 ; } &5309 0d a7 04 ; "okay." &530c 27 ; room.flags[2] = false &530d 0b 0b 1a ; object_room["bulb"] = &07 &5310 03 ; } &5311 03 ; } &5312 88 37 ; if(verb == "insert" and &5314 89 0c ; first_noun == "disk") &5316 01 ; { &5317 a7 ; if(!room.flags[2]) &5318 01 ; { &5319 0d 6d 07 05 ; "where? " &531d 04 ; return &531e 03 ; } &531f 97 ; if(!room.flags[1]) &5320 01 ; { &5321 0d 41 a4 bf 04 ; "you can't reach." &5326 04 ; return &5327 03 ; } &5328 e3 0c ; if(object_room["disk"] == player_room) &532a 01 ; { &532b 0d a1 fc b6 38 45 a0 04 ; "it's still on the floor." &5333 04 ; return &5334 03 ; } &5335 c4 36 ; if(p["dungeon_door_state"] == 0 and &5337 d7 ; !room.flags[5]) &5338 01 ; { &5339 0d 2a 11 20 08 45 fa 79 a8 fb 94 ea 41 06 15 28 ; "zap! the current goes straight through you. Expiring on &5349 20 19 22 19 1e 17 38 45 a0 0b 41 1d 25 23 15 38 ; the floor, you muse on the elementary rules of &5359 45 f9 05 22 25 1c 15 23 48 f9 06 23 11 16 15 24 ; electrical safety." &5369 29 04 &536b 08 7f ; player_room = &7b &536d 04 ; return &536e 03 ; } &536f 0d 37 fb 39 23 1e 25 17 1c 29 04 ; "it fits snugly." &537a 0b 0b 0c ; object_room["disk"] = &07 &537d 3f ; room.flags[3] = true &537e 03 ; } &537f 88 41 ; if(verb == "extract" and &5381 89 0c ; first_noun == "disk") &5383 01 ; { &5384 97 ; if(!room.flags[1]) &5385 01 ; { &5386 0d 41 a4 bf 04 ; "you can't reach." &538b 04 ; return &538c 03 ; } &538d a7 ; if(!room.flags[2]) &538e 01 ; { &538f 0d 41 a4 fe 1b 37 04 ; "you can't get it." &5396 04 ; return &5397 03 ; } &5398 b7 ; if(!room.flags[3]) &5399 01 ; { &539a 0d ff 1a 07 6e 6d 07 05 ; "disc? from where? " &53a2 04 ; return &53a3 03 ; } &53a4 0d fc 31 04 ; "fine." &53a8 3b 0c ; object_room["disk"] = player_room &53aa 37 ; room.flags[3] = false &53ab 03 ; } &53ac cc 36 ; if(p["dungeon_door_state"] != 0) &53ae 01 ; { &53af 8e 50 ; if(verb == "east") { player_room = &50 } &53b1 e6 50 ; if(verb == "exit") { player_room = &50 } &53b3 04 ; return &53b4 03 ; } &53b5 00 ; end ; bytecode_for_room_56_actions &53b6 88 43 ; if(verb == "open" and &53b8 89 33 ; first_noun == "trapdoor") &53ba 01 ; { &53bb 0d 35 40 04 ; "No go." &53bf 03 ; } &53c0 88 1d 02 ; if(verb == "kick" or &53c3 88 1b ; verb == "attack") &53c5 01 ; { &53c6 99 35 02 ; if(first_noun != "ruffian" or &53c9 a7 02 ; !room.flags[2] or &53cb 8f ; room.flags[0]) &53cc 01 ; { &53cd 0d 41 42 1b 1e 1f 13 1b 15 14 32 45 a0 46 1a 25 ; "you are knocked to the floor and jumped on for your &53dd 1d 20 15 14 38 53 4b 20 11 19 1e 23 04 ; pains." &53ea 04 ; return &53eb 03 ; } &53ec 03 ; } &53ed 2c 04 05 ; p["current_room"] = p["player_room"] &53f0 2c 04 06 ; p["previous_room"] = p["player_room"] &53f3 88 18 ; if(verb == "buy" and &53f5 89 20 ; first_noun == "drink") &53f7 01 ; { &53f8 db 1e ; if(object_room["silver"] == "carrying") &53fa 01 ; { &53fb af ; if(room.flags[2]) &53fc 01 ; { &53fd 0d 41 54 43 e3 04 ; "you have one already." &5403 04 ; return &5404 03 ; } &5405 0d 41 fe 19 34 fc 67 ff 11 0b fa 7a 43 ff 5a ff ; "you buy a large ale, costing one silver button. In the &5415 59 06 33 45 fb e9 48 fa 8f 0b 41 9d fe 3f 49 94 ; process of ordering, you cannot help but notice that the &5425 92 45 f9 49 dd 44 23 25 16 16 15 22 19 1e 17 6e ; landlord's daughter is suffering from the unwanted &5435 45 fa 90 f9 07 48 34 fa 7b ff 6f 59 fb 0c 56 fc ; attentions of a drunken ruffian some nine feet tall who &5445 36 61 23 20 1f 22 24 23 0e 18 1f 22 1e 23 46 34 ; sports horns and a forked tail." &5455 16 1f 22 1b 15 14 0e 24 11 19 1c 04 &5461 2f ; room.flags[2] = true &5462 0b 44 1e ; object_room["silver"] = &40 &5465 1b 20 ; object_room["drink"] = 1 &5467 44 20 ; p["score"] ++ &5469 04 ; return &546a 03 ; } &546b db 05 ; if(object_room["florins"] == "carrying") &546d 01 ; { &546e 0d 7b fc 90 11 13 13 15 20 24 ff 66 6e 2e fc 4d ; "they don't accept florins from Earth here." &547e 4f 04 &5480 04 ; return &5481 03 ; } &5482 0d 41 54 35 1d 1f 1e 15 29 04 ; "you have no money." &548c 03 ; } &548d 88 05 02 ; if(verb == "north" or &5490 88 11 ; verb == "exit") &5492 01 ; { &5493 a7 ; if(!room.flags[2]) &5494 01 ; { &5495 0d 45 fc e5 4e 4b fa 7c 32 fe 19 34 ff 43 58 3b ; "the locals see your neglect to buy a drink as an insult. &54a5 19 1e 23 25 1c 24 06 41 42 15 1a 15 13 24 15 14 ; You are ejected with considerable force, and scraped off &54b5 72 f9 3b 16 1f 22 13 15 0b 46 23 13 22 11 20 15 ; the wall by a passing patrol who arrest you as drunk and &54c5 14 96 45 87 50 34 20 11 23 23 19 1e 17 0e 20 11 ; disorderly." &54d5 24 22 1f 1c 61 fa 32 41 58 fc 71 46 f9 3c 04 &54e4 08 59 ; player_room = &55 &54e6 04 ; return &54e7 03 ; } &54e8 db 20 ; if(object_room["drink"] == "carrying") &54ea 01 ; { &54eb 3b 20 ; object_room["drink"] = player_room &54ed 03 ; } &54ee 03 ; } &54ef af ; if(room.flags[2]) &54f0 01 ; { &54f1 86 39 ; if(verb == "north") { player_room = &39 } &54f3 e6 39 ; if(verb == "exit") { player_room = &39 } &54f5 88 1d ; if(verb == "kick" and &54f7 89 35 ; first_noun == "ruffian") &54f9 01 ; { &54fa 97 ; if(!room.flags[1]) &54fb 01 ; { &54fc 0d 41 fe 1c 45 ff 6f 0b 61 12 1c 11 13 1b 23 4b ; "you hit the ruffian, who blacks your eyes and makes &550c fc 6c 46 fc a0 4b fb 13 12 1c 15 15 14 33 22 15 ; your nose bleed in return." &551c 24 25 22 1e 04 &5521 1f ; room.flags[1] = true &5522 04 ; return &5523 03 ; } &5524 0d 45 ff 6f 23 24 11 17 17 15 22 23 06 34 fc 86 ; "the ruffian staggers. A dozen of the locals seize the &5534 48 45 fc e5 23 15 19 2a 15 45 f9 08 41 54 12 22 ; advantage you have brought about, and as the ruffian is &5544 1f 25 17 18 24 9b 0b 46 58 45 ff 6f 44 fb 68 96 ; carried off to the infirmary the landlord's daughter &5554 32 45 f9 09 45 f9 49 dd 24 18 22 1f 27 23 fc 2a ; throws her arms and her locket around your neck." &5564 fc 92 46 fc 2a ff 56 b0 4b fc 69 04 &5570 13 12 ; object_room["locket"] = 0 &5572 0b 0a 35 ; object_room["ruffian"] = &06 &5575 0f ; room.flags[0] = true &5576 44 20 ; p["score"] ++ &5578 03 ; } &5579 04 ; return &557a 03 ; } &557b 88 1a ; if(verb == "take") &557d 01 ; { &557e 0d fb 72 08 fb 72 08 45 fa 11 a8 5e 06 41 42 24 ; "thief! thief! the cry goes up. You are thrown in prison &558e 18 22 1f 27 1e 33 fb 75 ad e6 fa 12 04 ; without further ado." &559b 08 59 ; player_room = &55 &559d 03 ; } &559e 00 ; end ; bytecode_for_room_57_actions &559f 2c 04 05 ; p["current_room"] = p["player_room"] &55a2 2c 04 06 ; p["previous_room"] = p["player_room"] &55a5 88 3e ; if(verb == "unlock" and &55a7 db 0d ; object_room["keys"] == "carrying") &55a9 01 ; { &55aa 9f ; if(room.flags[1]) &55ab 01 ; { &55ac 0d 37 44 fa 91 04 ; "It is unlocked." &55b2 04 ; return &55b3 03 ; } &55b4 0d 45 ac 23 24 19 22 23 0b 49 fc a4 5f fb 05 06 ; "the guard stirs, but does not wake. The tunnel leads west &55c4 45 fc f8 b2 47 d4 45 ff 4c 04 ; towards the light." &55ce 1f ; room.flags[1] = true &55cf 04 ; return &55d0 03 ; } &55d1 9f ; if(room.flags[1]) &55d2 01 ; { &55d3 88 08 02 ; if(verb == "west" or &55d6 88 11 ; verb == "exit") &55d8 01 ; { &55d9 08 2c ; player_room = &28 &55db 44 20 ; p["score"] ++ &55dd 2f ; room.flags[2] = true &55de 3b 22 ; object_room["bone"] = player_room &55e0 03 ; } &55e1 04 ; return &55e2 03 ; } &55e3 88 08 02 ; if(verb == "west" or &55e6 88 11 02 ; verb == "exit" or &55e9 88 43 ; verb == "open" and &55eb 89 33 ; first_noun == "trapdoor" and &55ed 97 ; !room.flags[1]) &55ee 01 ; { &55ef 0d 45 51 44 f9 0a 04 ; "the door is padlocked." &55f6 04 ; return &55f7 03 ; } &55f8 a7 ; if(!room.flags[2]) &55f9 01 ; { &55fa 88 1b ; if(verb == "attack") &55fc 01 ; { &55fd 0d 5f 3d 15 11 23 29 04 ; "not so easy." &5605 04 ; return &5606 03 ; } &5607 88 26 ; if(verb == "give" and &5609 89 12 02 ; first_noun == "locket" or &560c 88 34 ; verb == "bribe" and &560e 89 32 ; first_noun == "troopers") &5610 01 ; { &5611 0d 45 ac 11 13 13 15 20 24 23 45 7f ff 56 72 f9 ; "the guard accepts the gold locket with commendable &5621 3d fb 7a 06 3e fa 92 72 37 0b a3 32 36 fc 32 fc ; speed. He vanishes with it, never to be seen again. With &5631 44 06 72 35 43 32 16 15 15 14 41 0b 41 fc 34 48 ; no one to feed you, you die of starvation and boredom." &5641 fb f4 46 fa 7d 04 &5647 08 7f ; player_room = &7b &5649 03 ; } &564a 88 42 ; if(verb == "hypnotise" and &564c 89 32 02 ; first_noun == "troopers" or &564f 88 39 ; verb == "swing" and &5651 89 12 ; first_noun == "locket") &5653 01 ; { &5654 a7 ; if(!room.flags[2]) &5655 01 ; { &5656 0d 41 fe 57 45 7f ff 56 06 45 ac fa 7e fa e2 0b ; "you swing the gold locket. The guard becomes &5666 46 fc 85 34 fc bf b1 55 34 75 fc 7d 04 ; fascinated, and after a minute falls into a deep ; trance." &5673 2f ; room.flags[2] = true &5674 3b 0d ; object_room["keys"] = player_room &5676 44 20 ; p["score"] ++ &5678 03 ; } &5679 03 ; } &567a 03 ; } &567b 00 ; end ; bytecode_for_room_58_actions &567c a7 ; if(!room.flags[2]) &567d 01 ; { &567e 44 20 ; p["score"] ++ &5680 2f ; room.flags[2] = true &5681 03 ; } &5682 be 2c ; if(verb == "southwest") { player_room = &2c } &5684 e6 2c ; if(verb == "exit") { player_room = &2c } &5686 00 ; end ; bytecode_for_room_59_actions &5687 c4 2f ; if(p["doctor_state"] == 0 and &5689 8f ; room.flags[0]) &568a 01 ; { &568b 88 1f 02 ; if(verb == "ask" or &568e 80 08 ; verb < "west") &5690 01 ; { &5691 0d 45 2e 6b fc a5 4b 11 22 1d 46 fb 76 41 60 41 ; "The Doctor takes your arm and asks you if you would mind &56a1 fb 66 fc a1 fc 5b 6c 32 fe 1b 45 ff 5c 6e 2e 7a ; going back to get the scroll from King Varangar." &56b1 2e ca 04 &56b4 04 ; return &56b5 03 ; } &56b6 03 ; } &56b7 86 5b ; if(verb == "north") { player_room = &5b } &56b9 8e 5a ; if(verb == "east") { player_room = &5a } &56bb 96 5c ; if(verb == "south") { player_room = &5c } &56bd 9e 0a ; if(verb == "west") { player_room = &0a } &56bf e6 0a ; if(verb == "exit") { player_room = &0a } &56c1 c4 2f ; if(p["doctor_state"] == 0) &56c3 01 ; { &56c4 87 ; if(!room.flags[0]) &56c5 01 ; { &56c6 88 26 ; if(verb == "give" and &56c8 89 2a ; first_noun == "watches") &56ca 01 ; { &56cb eb 2a 0b ; if(object_room["watches"] == &07) &56ce 01 ; { &56cf 0d 89 ff 45 07 05 ; "what watch? " &56d5 04 ; return &56d6 03 ; } &56d7 0d 45 2e 6b fc a5 5a ff 45 72 22 15 1c 19 15 16 ; "the Doctor takes his watch with relief and &56e7 46 fb eb 0b 46 17 22 15 15 24 23 41 27 11 22 1d ; gratitude, and greets you warmly." &56f7 1c 29 04 &56fa 94 0e 05 ; if(p["number_of_objects_carried"] > &01) &56fd 01 ; { &56fe 0d 0d 2e 19 fb cb 14 25 1d 20 fc 72 24 18 19 1e ; " \"I should dump those things by the console, \" &570e 17 23 50 45 ff 74 0b 0c 3e fa 93 0b 46 24 18 15 ; he remarks, and then " &571e 1e 0e 05 &5721 03 ; } ; else &5722 01 ; { &5723 0d 3e 05 ; "he" &5726 03 ; } &5727 0d fb 76 0d 2e 14 19 14 41 fc 8c 45 ff 5c 6e 2e ; "asks \"Did you bring the scroll from Varangar? \" " &5737 ca 07 0c 05 &573b 0b 0b 2a ; object_room["watches"] = &07 &573e 0f ; room.flags[0] = true &573f 44 20 ; p["score"] ++ &5741 04 ; return &5742 03 ; } &5743 88 1f 02 ; if(verb == "ask" or &5746 88 26 ; verb == "give") &5748 01 ; { &5749 89 3a ; if(first_noun == "doctor") &574b 01 ; { &574c 04 ; return &574d 03 ; } &574e 0d 45 2e 6b 57 f9 22 fc 1c fc ce 48 5c 06 3e fc ; "the Doctor has completely lost track of time. He was &575e 15 72 41 0b 3a a6 36 72 41 0b fa 33 3a fc 9a 04 ; with you, or will be with you, sooner or later." &576e 03 ; } &576f 04 ; return &5770 03 ; } &5771 88 26 ; if(verb == "give" and &5773 89 29 ; first_noun == "scroll") &5775 01 ; { &5776 0d 45 2e 6b fb 6b 45 ff 5c 46 16 22 1f 27 1e 23 ; "the Doctor opens the scroll and frowns as he sees the &5786 58 3e 23 15 15 23 45 bb fb cf 06 3e fb 76 41 32 ; strange language. He asks you to meet him at the data &5796 fb 16 ff 15 39 45 fb 0f fb 48 9a 58 fb 17 58 fb ; storage room as soon as possible with a copy of &57a6 d6 72 34 13 1f 20 29 48 2e fa f5 2e 13 1f 14 15 ; Collected Codes for Translating Tatty Old Scrolls, from &57b6 23 53 2e f9 3e 2e 24 11 24 24 29 2e 0e fc 62 2e ; the Tardis library. He speeds off eastwards." &57c6 23 13 22 1f 1c 1c 23 0b 6e 45 2e c1 fb 47 06 3e &57d6 23 20 15 15 14 23 96 fa e1 04 &57e0 44 2f ; p["doctor_state"] ++ &57e2 44 20 ; p["score"] ++ &57e4 1c 23 ; p["is_following_doctor"] = 1 &57e6 0b 0b 29 ; object_room["scroll"] = &07 &57e9 77 ; room.flags[7] = false &57ea 04 ; return &57eb 03 ; } &57ec 03 ; } &57ed 00 ; end ; bytecode_for_room_5a_actions &57ee 86 5b ; if(verb == "north") { player_room = &5b } &57f0 8e 5d ; if(verb == "east") { player_room = &5d } &57f2 96 5c ; if(verb == "south") { player_room = &5c } &57f4 9e 59 ; if(verb == "west") { player_room = &59 } &57f6 00 ; end ; bytecode_for_room_5b_actions &57f7 8e 5d ; if(verb == "east") { player_room = &5d } &57f9 96 5a ; if(verb == "south") { player_room = &5a } &57fb 9e 59 ; if(verb == "west") { player_room = &59 } &57fd 88 21 02 ; if(verb == "use" or &5800 88 43 02 ; verb == "open" or &5803 88 4c ; verb == "look") &5805 01 ; { &5806 89 3b ; if(first_noun == "screen") &5808 01 ; { &5809 0d 45 ff 64 fc d4 93 fa a6 fc 06 04 ; "The screen shows only swirling mist." &5815 03 ; } &5816 03 ; } &5817 00 ; end ; bytecode_for_room_5c_actions &5818 86 5a ; if(verb == "north") { player_room = &5a } &581a 9e 59 ; if(verb == "west") { player_room = &59 } &581c 8e 5d ; if(verb == "east") { player_room = &5d } &581e 00 ; end ; bytecode_for_room_5d_actions &581f 86 5b ; if(verb == "north") { player_room = &5b } &5821 8e 5e ; if(verb == "east") { player_room = &5e } &5823 96 5c ; if(verb == "south") { player_room = &5c } &5825 9e 5a ; if(verb == "west") { player_room = &5a } &5827 00 ; end ; bytecode_for_room_5e_actions &5828 0b 64 26 ; object_room["snow"] = &60 &582b 86 60 ; if(verb == "north") { player_room = &60 } &582d ee 60 ; if(verb == "enter") { player_room = &60 } &582f 8e 5f ; if(verb == "east") { player_room = &5f } &5831 96 61 ; if(verb == "south") { player_room = &61 } &5833 9e 5d ; if(verb == "west") { player_room = &5d } &5835 88 1a ; if(verb == "take" and &5837 89 1c ; first_noun == "glass" and &5839 c4 3b ; p["tardis_fire_alarm_state"] == 0) &583b 01 ; { &583c 0d 41 a4 04 ; "You can't." &5840 03 ; } &5841 88 33 ; if(verb == "break" and &5843 89 1c ; first_noun == "glass") &5845 01 ; { &5846 af ; if(room.flags[2]) &5847 01 ; { &5848 0d 29 1f 25 0f 26 15 e3 fc 2e 92 04 ; "you've already done that." &5854 04 ; return &5855 03 ; } &5856 2f ; room.flags[2] = true &5857 1c 3b ; p["tardis_fire_alarm_state"] = 1 &5859 3b 1c ; object_room["glass"] = player_room &585b 6f ; room.flags[6] = true &585c 0d 45 ff 40 fa 94 06 45 f9 0b fb e3 48 45 2e c1 ; "the glass shatters. The automatic defences of the Tardis &586c fc da 55 fb 58 05 ; spring into action" &5872 c4 30 ; if(p["tardis_fire_state"] == 0) &5874 01 ; { &5875 0d 49 42 25 1e 11 12 1c 15 32 fa 34 34 fe 2b 04 ; "but are unable to detect a fire." &5885 04 ; return &5886 03 ; } &5887 0d 0b 20 25 24 24 19 1e 17 5b 45 fe 2b 33 45 c3 ; ", putting out the fire in the machine shop." &5897 fb 27 04 &589a 14 30 ; p["tardis_fire_state"] = 0 &589c 1c 31 ; p["tardis_fire_extinguished"] = 1 &589e 44 20 ; p["score"] ++ &58a0 03 ; } &58a1 00 ; end ; bytecode_for_room_5f_actions &58a2 8e 74 ; if(verb == "east") { player_room = &74 } &58a4 9e 5e ; if(verb == "west") { player_room = &5e } &58a6 00 ; end ; bytecode_for_room_60_actions &58a7 88 07 ; if(verb == "south") &58a9 01 ; { &58aa 08 62 ; player_room = &5e &58ac 04 ; return &58ad 03 ; } &58ae e6 5e ; if(verb == "exit") { player_room = &5e } &58b0 80 09 ; if(verb < "northeast") &58b2 01 ; { &58b3 0d 41 fb 7e 55 45 19 13 29 fc 81 46 fc 95 32 82 ; "You stumble into the icy lagoon and freeze to death almost &58c3 fb 61 ee 04 ; instantly." &58c7 08 7f ; player_room = &7b &58c9 03 ; } &58ca 00 ; end ; bytecode_for_room_61_actions &58cb 86 5e ; if(verb == "north") { player_room = &5e } &58cd 96 62 ; if(verb == "south") { player_room = &62 } &58cf d6 62 ; if(verb == "down") { player_room = &62 } &58d1 00 ; end ; bytecode_for_room_62_actions &58d2 8e 6d ; if(verb == "east") { player_room = &6d } &58d4 ee 6d ; if(verb == "enter") { player_room = &6d } &58d6 bc 04 05 ; if(p["player_room"] != p["current_room"]) &58d9 01 ; { &58da 04 ; return &58db 03 ; } &58dc db 0a ; if(object_room["tag"] == "carrying") &58de 01 ; { &58df 86 61 ; if(verb == "north") { player_room = &61 } &58e1 de 61 ; if(verb == "up") { player_room = &61 } &58e3 9e 69 ; if(verb == "west") { player_room = &69 } &58e5 96 63 ; if(verb == "south") { player_room = &63 } &58e7 04 ; return &58e8 03 ; } &58e9 80 09 ; if(verb < "northeast") &58eb 01 ; { &58ec 0d 41 fb e2 45 f9 0b e0 23 13 11 1e 06 33 34 fa ; "You trigger the automatic security scan. In a fraction of a &58fc 95 48 34 23 15 13 1f 1e 14 41 42 f9 58 16 22 1f ; second you are cryogenically frozen and stored for &590c 2a 15 1e 46 fb 5a 53 f9 3f 50 45 2e 6b 06 f9 4a ; questioning by the Doctor. Unfortunately he does not &591c 3e fc a4 5f de 89 fa 96 32 41 25 1e 24 19 1c 0e ; discover what happened to you until 114 years have passed." &592c 30 76 fc a6 54 20 11 23 23 15 14 04 &5938 08 7f ; player_room = &7b &593a 03 ; } &593b 00 ; end ; bytecode_for_room_63_actions &593c 86 62 ; if(verb == "north") { player_room = &62 } &593e 96 64 ; if(verb == "south") { player_room = &64 } &5940 00 ; end ; bytecode_for_room_64_actions &5941 86 63 ; if(verb == "north") { player_room = &63 } &5943 8e 65 ; if(verb == "east") { player_room = &65 } &5945 9e 66 ; if(verb == "west") { player_room = &66 } &5947 00 ; end ; bytecode_for_room_65_actions &5948 9e 64 ; if(verb == "west") { player_room = &64 } &594a 8e 79 ; if(verb == "east") { player_room = &79 } &594c a7 ; if(!room.flags[2]) &594d 01 ; { &594e 88 44 ; if(verb == "examine" and &5950 89 33 ; first_noun == "trapdoor") &5952 01 ; { &5953 0d 39 43 7e 48 45 51 0b fc 7c 73 0b 41 66 34 bc ; "At one edge of the door, waist high, you find a small &5963 e1 fb 07 04 ; hexagonal hole." &5967 03 ; } &5968 88 37 ; if(verb == "insert" and &596a 89 2e ; first_noun == "cylinder") &596c 01 ; { &596d 0d 45 ff 77 fb 39 f9 0c 06 45 51 fa 8e 97 04 ; "the cylinder fits perfectly. The door clicks open." &597c 2f ; room.flags[2] = true &597d 0b 0a 2e ; object_room["cylinder"] = &06 &5980 44 20 ; p["score"] ++ &5982 03 ; } &5983 88 43 ; if(verb == "open" and &5985 89 33 ; first_noun == "trapdoor") &5987 01 ; { &5988 0d a1 bd 04 ; "it's locked." &598c 03 ; } &598d 04 ; return &598e 03 ; } &598f 86 73 ; if(verb == "north") { player_room = &73 } &5991 ee 73 ; if(verb == "enter") { player_room = &73 } &5993 00 ; end ; bytecode_for_room_66_actions &5994 8e 64 ; if(verb == "east") { player_room = &64 } &5996 9e 67 ; if(verb == "west") { player_room = &67 } &5998 96 72 ; if(verb == "south") { player_room = &72 } &599a ee 72 ; if(verb == "enter") { player_room = &72 } &599c 00 ; end ; bytecode_for_room_67_actions &599d 8e 66 ; if(verb == "east") { player_room = &66 } &599f 9e 68 ; if(verb == "west") { player_room = &68 } &59a1 96 71 ; if(verb == "south") { player_room = &71 } &59a3 ee 71 ; if(verb == "enter") { player_room = &71 } &59a5 00 ; end ; bytecode_for_room_68_actions &59a6 86 6c ; if(verb == "north") { player_room = &6c } &59a8 8e 67 ; if(verb == "east") { player_room = &67 } &59aa 00 ; end ; bytecode_for_room_69_actions &59ab 8e 62 ; if(verb == "east") { player_room = &62 } &59ad 96 6e ; if(verb == "south") { player_room = &6e } &59af ee 6e ; if(verb == "enter") { player_room = &6e } &59b1 9e 6a ; if(verb == "west") { player_room = &6a } &59b3 00 ; end ; bytecode_for_room_6a_actions &59b4 8e 69 ; if(verb == "east") { player_room = &69 } &59b6 96 6f ; if(verb == "south") { player_room = &6f } &59b8 ee 6f ; if(verb == "enter") { player_room = &6f } &59ba 9e 6b ; if(verb == "west") { player_room = &6b } &59bc 00 ; end ; bytecode_for_room_6b_actions &59bd 8e 6a ; if(verb == "east") { player_room = &6a } &59bf 96 6c ; if(verb == "south") { player_room = &6c } &59c1 00 ; end ; bytecode_for_room_6c_actions &59c2 86 6b ; if(verb == "north") { player_room = &6b } &59c4 8e 6f ; if(verb == "east") { player_room = &6f } &59c6 96 68 ; if(verb == "south") { player_room = &68 } &59c8 9e 70 ; if(verb == "west") { player_room = &70 } &59ca 00 ; end ; bytecode_for_room_6d_actions &59cb 9e 62 ; if(verb == "west") { player_room = &62 } &59cd e6 62 ; if(verb == "exit") { player_room = &62 } &59cf 88 1a ; if(verb == "take" and &59d1 89 0b ; first_noun == "bell" and &59d3 97 ; !room.flags[1]) &59d4 01 ; { &59d5 0d 37 44 fb be 32 45 ff 31 04 ; "It is screwed to the desk." &59df 03 ; } &59e0 88 41 ; if(verb == "extract" and &59e2 89 0b ; first_noun == "bell") &59e4 01 ; { &59e5 9f ; if(room.flags[1]) &59e6 01 ; { &59e7 0d 37 44 fa fe 04 ; "it is unscrewed." &59ed 04 ; return &59ee 03 ; } &59ef db 18 ; if(object_room["screwdriver"] == "carrying") &59f1 01 ; { &59f2 0d fe 48 04 ; "right." &59f6 1f ; room.flags[1] = true &59f7 3b 0b ; object_room["bell"] = player_room &59f9 44 20 ; p["score"] ++ &59fb 04 ; return &59fc 03 ; } &59fd 0d 35 4c 04 ; "no way." &5a01 03 ; } &5a02 88 44 02 ; if(verb == "examine" or &5a05 88 4d ; verb == "search") &5a07 01 ; { &5a08 89 38 ; if(first_noun == "armour") &5a0a 01 ; { &5a0b 0d a1 3b fa 97 27 1f 1f 14 15 1e ff 31 72 43 ff ; "it's an ordinary wooden desk with one drawer." &5a1b 65 04 &5a1d 04 ; return &5a1e 03 ; } &5a1f 03 ; } &5a20 88 43 ; if(verb == "open" and &5a22 89 3f ; first_noun == "drawer") &5a24 01 ; { &5a25 a7 ; if(!room.flags[2]) &5a26 01 ; { &5a27 0d 41 66 34 6f e0 ff 10 33 45 ff 65 04 ; "you find a metal security tag in the drawer." &5a34 3b 0a ; object_room["tag"] = player_room &5a36 2f ; room.flags[2] = true &5a37 44 20 ; p["score"] ++ &5a39 04 ; return &5a3a 03 ; } &5a3b 0d 37 44 97 04 ; "it is open." &5a40 04 ; return &5a41 03 ; } &5a42 98 06 ; if(verb != "east" and &5a44 99 0b 02 ; first_noun != "bell" or &5a47 89 0b ; first_noun == "bell" and &5a49 98 2f ; verb != "ring" and &5a4b 98 2e ; verb != "press" and &5a4d 98 21 ; verb != "use") &5a4f 01 ; { &5a50 04 ; return &5a51 03 ; } &5a52 88 06 ; if(verb == "east") &5a54 01 ; { &5a55 0d 58 41 97 45 51 0b 05 ; "as you open the door, " &5a5d 03 ; } &5a5e 0d 34 e0 ff 73 1c 25 1d 12 15 22 23 33 46 fb 76 ; "a security android lumbers in and asks you why you are" &5a6e 41 27 18 29 41 42 05 &5a75 db 0a ; if(object_room["tag"] == "carrying") &5a77 01 ; { &5a78 0d fa 98 05 ; "stealing" &5a7c 0b 0a 0a ; object_room["tag"] = &06 &5a7f 03 ; } ; else &5a80 01 ; { &5a81 0d 33 34 fa ce 11 22 15 11 ad 05 ; "in a restricted area without" &5a8c 03 ; } &5a8d 0d 34 e0 ff 10 06 37 15 23 13 1f 22 24 23 41 32 ; "a security tag. It escorts you to the control room console, with &5a9d 45 c2 9a ff 74 0b 72 f9 4c 5f 32 fc 2f 24 19 1c ; instructions not to move till the Doctor returns. It is &5aad 1c 45 2e 6b fa 99 06 37 44 f9 40 32 19 17 1e 1f ; programmed to ignore complaints about Catch 22." &5abd 22 15 f9 41 9b 2e 13 11 24 13 18 0e 30 1a 04 &5acc 08 5e ; player_room = &5a &5ace 2c 04 06 ; p["previous_room"] = p["player_room"] &5ad1 2c 04 05 ; p["current_room"] = p["player_room"] &5ad4 00 ; end ; bytecode_for_room_6e_actions &5ad5 86 69 ; if(verb == "north") { player_room = &69 } &5ad7 e6 69 ; if(verb == "exit") { player_room = &69 } &5ad9 88 21 ; if(verb == "use") &5adb 01 ; { &5adc 89 3c 02 ; if(first_noun == "trampoline" or &5adf 89 3c 02 ; first_noun == "trampoline" or &5ae2 89 3c 02 ; first_noun == "trampoline" or &5ae5 89 3c ; first_noun == "trampoline") &5ae7 01 ; { &5ae8 0d 27 18 15 15 08 89 fa 0a 04 ; "Whee! what fun." &5af2 04 ; return &5af3 03 ; } &5af4 0d 89 05 ; "what" &5af7 1d ; print first_noun &5af8 0d 07 05 ; "? " &5afb 03 ; } &5afc 00 ; end ; bytecode_for_room_6f_actions &5afd 2c 04 05 ; p["current_room"] = p["player_room"] &5b00 2c 04 06 ; p["previous_room"] = p["player_room"] &5b03 97 ; if(!room.flags[1] and &5b04 db 2e ; object_room["cylinder"] == "carrying") &5b06 01 ; { &5b07 88 05 02 ; if(verb == "north" or &5b0a 88 08 ; verb == "west") &5b0c 01 ; { &5b0d 1c 30 ; p["tardis_fire_state"] = 1 &5b0f 1f ; room.flags[1] = true &5b10 44 20 ; p["score"] ++ &5b12 0d 58 41 fc 9c 0b 45 14 22 19 20 20 19 1e 17 ff ; "As you leave, the dripping crucible sets the bench on &5b22 7c fb 32 45 ff 52 38 fe 2b 04 ; fire." &5b2c cc 0a ; if(p["number_of_objects_in_player_room"] != 0) &5b2e 01 ; { &5b2f 0d f9 42 a8 5e 33 16 1c 11 1d 15 23 0b 19 1e 13 ; "everything goes up in flames, including " &5b3f 1c 25 14 19 1e 17 0e 05 &5b47 2c 04 0b ; p["old_room"] = p["player_room"] &5b4a 0c 0a 0c ; p["new_room"] = &06 &5b4d 06 ; list_objects(p["old_room"]. p["new_room"]) &5b4e 0d 41 62 fb 65 04 ; "you left behind." &5b54 03 ; } &5b55 03 ; } &5b56 03 ; } &5b57 86 6a ; if(verb == "north") { player_room = &6a } &5b59 9e 6c ; if(verb == "west") { player_room = &6c } &5b5b cc 31 02 ; if(p["tardis_fire_extinguished"] != 0 or &5b5e 80 15 ; verb < "dc") &5b60 01 ; { &5b61 04 ; return &5b62 03 ; } &5b63 88 44 ; if(verb == "examine" and &5b65 89 3d ; first_noun == "crucible") &5b67 01 ; { &5b68 0d 38 45 5d 48 45 ff 7c 44 fb 5c 09 2d fc 1f 33 ; "on the side of the crucible is marked: \nMade in Fomalhaut &5b78 2e fa 9a 28 26 19 06 2d 2c fb 44 06 53 ff 40 93 ; xvi. \nDANGER. FOR GLASS ONLY. " &5b88 06 2c 05 &5b8b 03 ; } &5b8c cc 30 ; if(p["tardis_fire_state"] != 0) &5b8e 01 ; { &5b8f 0d 41 9d fe 21 5b 45 fe 2b 0b 46 35 43 18 15 11 ; "You cannot put out the fire, and no one hears your screams &5b9f 22 23 4b 23 13 22 15 11 1d 23 58 41 fb 2b 32 82 ; as you burn to death." &5baf 04 &5bb0 08 7f ; player_room = &7b &5bb2 04 ; return &5bb3 03 ; } &5bb4 88 37 02 ; if(verb == "insert" or &5bb7 88 25 ; verb == "drop") &5bb9 01 ; { &5bba 8d 44 ; if(preposition == "into" and &5bbc 8a 3d ; second_noun == "crucible" and &5bbe a7 ; !room.flags[2] and &5bbf d9 ; object_room[first_noun] == "carrying") &5bc0 01 ; { &5bc1 89 2c 02 ; if(first_noun == "bottle" or &5bc4 89 1c ; first_noun == "glass") &5bc6 01 ; { &5bc7 0d 45 05 ; "the" &5bca 1d ; print first_noun &5bcb 0d 1d 15 1c 24 23 ee 04 ; "melts instantly." &5bd3 09 0b ; object_room[first_noun] = &07 &5bd5 2f ; room.flags[2] = true &5bd6 44 20 ; p["score"] ++ &5bd8 04 ; return &5bd9 03 ; } &5bda 8c 15 05 ; if(p["first_noun_type"] == &01) &5bdd 01 ; { &5bde 0d 45 05 ; "the" &5be1 1d ; print first_noun &5be2 0d 22 15 11 13 24 23 ee 72 45 9f 18 1f 24 ff 7c ; "reacts instantly with the white hot crucible, &5bf2 0b 23 15 1e 14 19 1e 17 fa 7f 23 20 11 22 1b 23 ; sending searing sparks shooting everywhere. The &5c02 fa 9b f4 06 45 ff 52 13 11 24 13 18 15 23 fe 2b ; bench catches fire." &5c12 04 &5c13 1c 30 ; p["tardis_fire_state"] = 1 &5c15 04 ; return &5c16 03 ; } &5c17 0d 37 fc 8e 40 33 04 ; "it won't go in." &5c1e 03 ; } &5c1f 03 ; } &5c20 88 2c ; if(verb == "pour") &5c22 01 ; { &5c23 af ; if(room.flags[2]) &5c24 01 ; { &5c25 0d 41 fe 36 45 fa 35 fa 9c 05 ; "you pour the molten material" &5c2f 27 ; room.flags[2] = false &5c30 8d 44 ; if(preposition == "into") &5c32 01 ; { &5c33 89 3f ; if(first_noun == "drawer" and &5c35 c2 02 ; second_noun == 0 or &5c37 8a 3f ; second_noun == "drawer") &5c39 01 ; { &5c3a 0d 55 45 ff 53 0b 6d 37 fa 80 06 34 bc e1 ff 77 ; "into the mould, where it freezes. A small &5c4a fb 69 5b 04 ; hexagonal cylinder drops out." &5c4e 3b 2e ; object_room["cylinder"] = player_room &5c50 04 ; return &5c51 03 ; } &5c52 03 ; } &5c53 0d ff 38 45 a0 04 ; "onto the floor." &5c59 04 ; return &5c5a 03 ; } &5c5b 0d 45 ff 7c 44 fc e8 04 ; "the crucible is empty." &5c63 03 ; } &5c64 00 ; end ; bytecode_for_room_70_actions &5c65 8e 6c ; if(verb == "east") { player_room = &6c } &5c67 e6 6c ; if(verb == "exit") { player_room = &6c } &5c69 00 ; end ; bytecode_for_room_71_actions &5c6a 86 67 ; if(verb == "north") { player_room = &67 } &5c6c e6 67 ; if(verb == "exit") { player_room = &67 } &5c6e 00 ; end ; bytecode_for_room_72_actions &5c6f 86 66 ; if(verb == "north") { player_room = &66 } &5c71 e6 66 ; if(verb == "exit") { player_room = &66 } &5c73 00 ; end ; bytecode_for_room_73_actions &5c74 96 65 ; if(verb == "south") { player_room = &65 } &5c76 e6 65 ; if(verb == "exit") { player_room = &65 } &5c78 88 3a ; if(verb == "think" and &5c7a a7 ; !room.flags[2]) &5c7b 01 ; { &5c7c 0d 45 fc a1 fb bc c3 ee 20 19 13 1b 23 5e 4b fb ; "The mind reading machine instantly picks up your thought. &5c8c d1 06 45 a2 ff 27 53 45 ff 26 41 23 15 15 1b fb ; The index card for the book you seek drops onto the floor." &5c9c 69 ff 38 45 a0 04 &5ca2 2f ; room.flags[2] = true &5ca3 44 20 ; p["score"] ++ &5ca5 3b 24 ; object_room["card"] = player_room &5ca7 03 ; } &5ca8 00 ; end ; bytecode_for_room_74_actions &5ca9 9e 5f ; if(verb == "west") { player_room = &5f } &5cab 86 75 ; if(verb == "north") { player_room = &75 } &5cad 96 76 ; if(verb == "south") { player_room = &76 } &5caf 8e 77 ; if(verb == "east") { player_room = &77 } &5cb1 4f ; room.flags[4] = true &5cb2 00 ; end ; bytecode_for_room_75_actions &5cb3 8e 77 ; if(verb == "east") { player_room = &77 } &5cb5 96 76 ; if(verb == "south") { player_room = &76 } &5cb7 9e 74 ; if(verb == "west") { player_room = &74 } &5cb9 4f ; room.flags[4] = true &5cba 00 ; end ; bytecode_for_room_76_actions &5cbb 86 75 ; if(verb == "north") { player_room = &75 } &5cbd 8e 77 ; if(verb == "east") { player_room = &77 } &5cbf 9e 74 ; if(verb == "west") { player_room = &74 } &5cc1 4f ; room.flags[4] = true &5cc2 00 ; end ; bytecode_for_room_77_actions &5cc3 86 75 ; if(verb == "north") { player_room = &75 } &5cc5 96 76 ; if(verb == "south") { player_room = &76 } &5cc7 9e 74 ; if(verb == "west") { player_room = &74 } &5cc9 4f ; room.flags[4] = true &5cca 8e 78 ; if(verb == "east") { player_room = &78 } &5ccc ee 78 ; if(verb == "enter") { player_room = &78 } &5cce 00 ; end ; bytecode_for_room_78_actions &5ccf 9e 77 ; if(verb == "west") { player_room = &77 } &5cd1 e6 77 ; if(verb == "exit") { player_room = &77 } &5cd3 80 15 ; if(verb < "dc") &5cd5 01 ; { &5cd6 04 ; return &5cd7 03 ; } &5cd8 8c 2f 05 ; if(p["doctor_state"] == &01) &5cdb 01 ; { &5cdc 7f ; room.flags[7] = true &5cdd 88 26 ; if(verb == "give" and &5cdf 89 23 ; first_noun == "book") &5ce1 01 ; { &5ce2 0d 45 2e 6b f1 16 19 1e 14 23 45 fc e2 3e 27 11 ; "The Doctor quickly finds the section he wants and &5cf2 1e 24 23 46 f9 0d 45 ff 5c 09 2d f9 0e 3f 11 23 ; translates the scroll: \nImperative we assemble with men &5d02 23 15 1d 12 1c 15 72 fc 0e 46 f9 0f 2e fc 7f 30 ; and equipment Paris 1814 as planned. The escape from &5d12 16 30 12 0e 58 20 1c 11 1e 1e 15 14 06 45 fb 5f ; Elba will proceed on schedule. Warlord. \nThe Doctor &5d22 6e 2e 15 1c 12 11 a6 20 22 1f 13 15 15 14 38 23 ; mutters as he gets the coordinates for Paris 1814 from &5d32 13 18 15 14 25 1c 15 06 df 06 2d 45 2e 6b 1d 25 ; the computer. \"Just as I feared. He's making for &5d42 24 24 15 22 23 58 3e fb 29 45 fa cb 53 2e fc 7f ; Earth. Quick, back to the control console. \" \nHe &5d52 30 16 30 12 0e 6e 45 ff 76 06 0d 2e 8a 58 2e 19 ; disappears through the arch westwards." &5d62 0e 16 15 11 22 15 14 06 fb 36 fc f4 53 2e fc 4d &5d72 06 fb 6c 0b 6c 32 45 c2 ff 74 06 0c 2d 3e f0 ea &5d82 45 fc 74 fa a5 04 &5d88 3b 23 ; object_room["book"] = player_room &5d8a 44 2f ; p["doctor_state"] ++ &5d8c 1c 23 ; p["is_following_doctor"] = 1 &5d8e 44 20 ; p["score"] ++ &5d90 04 ; return &5d91 03 ; } &5d92 88 3c ; if(verb == "follow") &5d94 01 ; { &5d95 04 ; return &5d96 03 ; } &5d97 0d 45 2e 6b 18 1f 1c 14 23 5a 77 5b f9 59 53 45 ; "the Doctor holds his hand out expectantly for the book." &5da7 ff 26 04 &5daa 03 ; } &5dab 00 ; end ; bytecode_for_room_79_actions &5dac 80 08 ; if(verb < "west") &5dae 01 ; { &5daf ff ; if(room.flags[7]) &5db0 01 ; { &5db1 0d 45 ff 82 fb 90 41 fc 5b fc 11 e6 04 ; "The librarian prevents you going any further." &5dbe 04 ; return &5dbf 03 ; } &5dc0 0d 41 27 11 1e 14 15 22 33 fc c3 45 fa 9d 46 fa ; "you wander in among the shelves and rapidly lose your sense &5dd0 9e fc 35 4b 23 15 1e 23 15 48 fa 9f 06 41 23 20 ; of direction. You spend the next 60 years browsing among the &5de0 15 1e 14 45 fb 15 30 40 0e fc a6 12 22 1f 27 23 ; millions of books" &5df0 19 1e 17 fc c3 45 fa a0 48 fb 49 05 &5dfc cc 2f ; if(p["doctor_state"] != 0) &5dfe 01 ; { &5dff 0d 0b 49 fc 34 ad 16 19 1e 14 19 1e 17 45 43 45 ; ", but die without finding the one the Doctor wanted." &5e0f 2e 6b 27 11 1e 24 15 14 04 &5e18 03 ; } ; else &5e19 01 ; { &5e1a 0d 04 ; "." &5e1c 03 ; } &5e1d 08 7f ; player_room = &7b &5e1f 03 ; } &5e20 9e 65 ; if(verb == "west") { player_room = &65 } &5e22 e6 65 ; if(verb == "exit") { player_room = &65 } &5e24 88 2f 02 ; if(verb == "ring" or &5e27 88 2e 02 ; verb == "press" or &5e2a 88 21 ; verb == "use") &5e2c 01 ; { &5e2d 89 0b ; if(first_noun == "bell" and &5e2f d9 ; object_room[first_noun] == "carrying") &5e30 01 ; { &5e31 f7 ; if(!room.flags[7]) &5e32 01 ; { &5e33 0d fc 8a 08 34 aa fb 4a ff 54 ff 82 fa a1 5b 6e ; "ping! a rather snooty robot librarian trundles out &5e43 45 fa 9d 32 fc a3 4b f9 4c 04 ; from the shelves to await your instructions." &5e4d 7f ; room.flags[7] = true &5e4e 44 20 ; p["score"] ++ &5e50 04 ; return &5e51 03 ; } &5e52 0d fc 8a 08 45 ff 73 44 13 1c 15 11 22 1c 29 fa ; "ping! the android is clearly annoyed." &5e62 81 04 &5e64 03 ; } &5e65 03 ; } &5e66 f7 ; if(!room.flags[7]) &5e67 01 ; { &5e68 04 ; return &5e69 03 ; } &5e6a 88 1f 02 ; if(verb == "ask" or &5e6d 88 1a ; verb == "take" and &5e6f 89 23 ; first_noun == "book") &5e71 01 ; { &5e72 a7 ; if(!room.flags[2]) &5e73 01 ; { &5e74 0d 45 ff 82 23 1e 19 16 16 23 72 fb 1c 1e 1f 23 ; "the librarian sniffs with both noses and remarks: I have &5e84 15 23 46 fa 93 09 2e 19 54 c0 fb 49 4f 0b 58 41 ; several books here, as you can see. An index card would &5e94 4d 4e 06 3b a2 ff 27 fb 66 36 23 25 13 18 34 fe ; be such a help." &5ea4 3f 04 &5ea6 03 ; } &5ea7 03 ; } &5ea8 88 26 ; if(verb == "give" and &5eaa 89 24 ; first_noun == "card") &5eac 01 ; { &5ead 0d 45 ff 82 fc a5 45 ff 27 0b fa a1 96 0b 46 fa ; "the librarian takes the card, trundles off, and returns two &5ebd 99 fc 08 1d 19 1e 25 24 15 23 fc 9a 72 45 ff 26 ; minutes later with the book the Doctor asked for." &5ecd 45 2e 6b 11 23 1b 15 14 53 04 &5ed7 3b 23 ; object_room["book"] = player_room &5ed9 0b 0a 24 ; object_room["card"] = &06 &5edc 44 20 ; p["score"] ++ &5ede 2f ; room.flags[2] = true &5edf 03 ; } &5ee0 00 ; end ; miscellaneous_bytecode ; miscellaneous_bytecode_00 &5ee1 0d 0e 46 05 ; " and" &5ee5 00 ; end ; miscellaneous_bytecode_01 &5ee6 94 04 47 ; if(p["player_room"] > &43 and &5ee9 84 04 59 ; p["player_room"] < &55) &5eec 01 ; { &5eed 27 ; room.flags[2] = false &5eee db 0e 02 ; if(object_room["lantern"] == "carrying" or &5ef1 e3 0e ; object_room["lantern"] == player_room) &5ef3 01 ; { &5ef4 94 37 06 ; if(p["lantern_state"] > &02) &5ef7 01 ; { &5ef8 2f ; room.flags[2] = true &5ef9 03 ; } &5efa 03 ; } &5efb 03 ; } &5efc 0b 0b 42 ; object_room["all"] = &07 &5eff 00 ; end ; miscellaneous_bytecode_02 &5f00 bc 04 05 ; if(p["player_room"] != p["current_room"]) &5f03 01 ; { &5f04 2c 05 06 ; p["previous_room"] = p["current_room"] &5f07 03 ; } &5f08 2c 04 05 ; p["current_room"] = p["player_room"] &5f0b 4f ; room.flags[4] = true &5f0c c4 07 ; if(p["recognised_words"] == 0) &5f0e 01 ; { &5f0f 84 08 07 ; if(p["total_words"] < &03) &5f12 01 ; { &5f13 0d 89 07 05 ; "what? " &5f17 03 ; } ; else &5f18 01 ; { &5f19 0d 2b 06 4b fa 82 44 fa 83 05 fb 78 fe 20 23 19 ; "" + random("your meaning is unclear", "please use &5f29 1d 20 1c 15 22 fb 59 05 04 04 ; simpler words") + "." &5f33 03 ; } &5f34 0c 06 09 ; p["output_written"] = &02 &5f37 04 ; return &5f38 03 ; } &5f39 88 4c ; if(verb == "look" and &5f3b 8d 44 ; preposition == "into") &5f3d 01 ; { &5f3e 0c 4d 10 ; p["verb"] = "search" &5f41 14 14 ; p["verb_type"] = 0 &5f43 03 ; } &5f44 88 4c ; if(verb == "look" and &5f46 8d 43 ; preposition == "at") &5f48 01 ; { &5f49 0c 44 10 ; p["verb"] = "examine" &5f4c 14 14 ; p["verb_type"] = 0 &5f4e 03 ; } &5f4f 88 1a ; if(verb == "take" and &5f51 8d 46 ; preposition == "onto") &5f53 01 ; { &5f54 8a 28 ; if(second_noun == "hovercycle") &5f56 01 ; { &5f57 0c 36 10 ; p["verb"] = "mount" &5f5a 03 ; } ; else &5f5b 01 ; { &5f5c 0c 10 10 ; p["verb"] = "up" &5f5f 03 ; } &5f60 03 ; } &5f61 88 1a ; if(verb == "take" and &5f63 8d 49 ; preposition == "off" and &5f65 8a 28 ; second_noun == "hovercycle") &5f67 01 ; { &5f68 0c 40 10 ; p["verb"] = "dismount" &5f6b 03 ; } &5f6c 88 1a 02 ; if(verb == "take" or &5f6f 88 25 ; verb == "drop") &5f71 01 ; { &5f72 8c 08 05 ; if(p["total_words"] == &01) &5f75 01 ; { &5f76 0c 42 11 ; p["first_noun"] = "all:= &3e" &5f79 03 ; } &5f7a 03 ; } &5f7b 88 54 ; if(verb == "climb" and &5f7d 9d 4b 02 ; preposition != "down" or &5f80 88 1a ; verb == "take" and &5f82 8d 48 02 ; preposition == "up" or &5f85 88 38 ; verb == "stand" and &5f87 8d 46 ; preposition == "onto") &5f89 01 ; { &5f8a 0c 10 10 ; p["verb"] = "up" &5f8d 0c 05 14 ; p["verb_type"] = &01 &5f90 03 ; } &5f91 88 54 02 ; if(verb == "climb" or &5f94 88 1a ; verb == "take") &5f96 01 ; { &5f97 8d 4b ; if(preposition == "down") &5f99 01 ; { &5f9a 0c 0f 10 ; p["verb"] = "down" &5f9d 0c 05 14 ; p["verb_type"] = &01 &5fa0 03 ; } &5fa1 03 ; } &5fa2 c1 ; if(first_noun == 0 and &5fa3 ca ; second_noun != 0) &5fa4 01 ; { &5fa5 2c 12 11 ; p["first_noun"] = p["second_noun"] &5fa8 14 12 ; p["second_noun"] = 0 &5faa 2c 16 15 ; p["first_noun_type"] = p["second_noun_type"] &5fad 14 16 ; p["second_noun_type"] = 0 &5faf 03 ; } &5fb0 8c 15 0a ; if(p["first_noun_type"] == &06) &5fb3 01 ; { &5fb4 c0 ; if(verb == 0) &5fb5 01 ; { &5fb6 0d 89 07 05 ; "what? " &5fba 04 ; return &5fbb 03 ; } &5fbc 2c 19 11 ; p["first_noun"] = p["previous_first_noun"] &5fbf 2c 1d 15 ; p["first_noun_type"] = p["previous_first_noun_type"] &5fc2 03 ; } &5fc3 c0 ; if(verb == 0 and &5fc4 c9 ; first_noun != 0 and &5fc5 cc 18 ; p["previous_verb"] != 0) &5fc7 01 ; { &5fc8 2c 18 10 ; p["verb"] = p["previous_verb"] &5fcb 2c 1b 13 ; p["preposition"] = p["previous_preposition"] &5fce 2c 1a 12 ; p["second_noun"] = p["previous_second_noun"] &5fd1 03 ; } &5fd2 2c 10 18 ; p["previous_verb"] = p["verb"] &5fd5 2c 11 19 ; p["previous_first_noun"] = p["first_noun"] &5fd8 2c 12 1a ; p["previous_second_noun"] = p["second_noun"] &5fdb 2c 13 1b ; p["previous_preposition"] = p["preposition"] &5fde c0 ; if(verb == 0) &5fdf 01 ; { &5fe0 c1 ; if(first_noun == 0) &5fe1 01 ; { &5fe2 0d fb 78 36 fc 12 15 28 20 1c 19 13 19 24 04 ; "please be more explicit." &5ff1 04 ; return &5ff2 03 ; } &5ff3 e1 02 ; if(object_room[first_noun] == player_room or &5ff5 d9 02 ; object_room[first_noun] == "carrying" or &5ff7 d1 02 ; object_room[first_noun] == "wearing" or &5ff9 e9 0b ; object_room[first_noun] == &07) &5ffb 01 ; { &5ffc 0d 89 3c 41 fc 33 32 3c 72 45 05 ; "what do you want to do with the" &6007 1d ; print first_noun &6008 0d 07 05 ; "? " &600b 03 ; } ; else &600c 01 ; { &600d 99 42 ; if(first_noun != "all") &600f 01 ; { &6010 0d 89 05 ; "what" &6013 1d ; print first_noun &6014 0d 07 05 ; "? " &6017 03 ; } &6018 03 ; } &6019 0c 06 09 ; p["output_written"] = &02 &601c 04 ; return &601d 03 ; } &601e c4 14 ; if(p["verb_type"] == 0 and &6020 c1 ; first_noun == 0) &6021 01 ; { &6022 15 ; print verb &6023 cd ; if(preposition != 0) &6024 01 ; { &6025 2d ; print preposition &6026 03 ; } &6027 0d 89 07 05 ; "what? " &602b 0c 07 09 ; p["output_written"] = &03 &602e 04 ; return &602f 03 ; } &6030 94 14 05 ; if(p["verb_type"] > &01 and &6033 84 14 0b ; p["verb_type"] < &07 and &6036 c9 ; first_noun != 0) &6037 01 ; { &6038 0d 89 3c 41 fb 12 07 05 ; "what do you mean? " &6040 0c 06 09 ; p["output_written"] = &02 &6043 04 ; return &6044 03 ; } &6045 c9 ; if(first_noun != 0 and &6046 98 1f ; verb != "ask" and &6048 98 3a ; verb != "think") &604a 01 ; { &604b e1 02 ; if(object_room[first_noun] == player_room or &604d d9 02 ; object_room[first_noun] == "carrying" or &604f d1 02 ; object_room[first_noun] == "wearing" or &6051 e9 0b ; object_room[first_noun] == &07) &6053 01 ; { &6054 4f ; room.flags[4] = true &6055 03 ; } ; else &6056 01 ; { &6057 0d 89 05 ; "what" &605a 1d ; print first_noun &605b 0d 07 05 ; "? " &605e 0c 06 09 ; p["output_written"] = &02 &6061 04 ; return &6062 03 ; } &6063 03 ; } &6064 ca ; if(second_noun != 0 and &6065 98 1f ; verb != "ask") &6067 01 ; { &6068 e2 02 ; if(object_room[second_noun] == player_room or &606a da 02 ; object_room[second_noun] == "carrying" or &606c d2 02 ; object_room[second_noun] == "wearing" or &606e ea 0b ; object_room[second_noun] == &07) &6070 01 ; { &6071 4f ; room.flags[4] = true &6072 03 ; } ; else &6073 01 ; { &6074 0d 89 05 ; "what" &6077 25 ; print second_noun &6078 0d 07 05 ; "? " &607b 0c 06 09 ; p["output_written"] = &02 &607e 04 ; return &607f 03 ; } &6080 03 ; } &6081 89 42 ; if(first_noun == "all") &6083 01 ; { &6084 98 1a ; if(verb != "take" and &6086 98 25 ; verb != "drop") &6088 01 ; { &6089 0d fb 78 36 fa a2 04 ; "please be specific." &6090 0c 06 09 ; p["output_written"] = &02 &6093 04 ; return &6094 03 ; } &6095 03 ; } &6096 88 23 ; if(verb == "place") &6098 01 ; { &6099 8d 46 ; if(preposition == "onto" and &609b c2 ; second_noun == 0) &609c 01 ; { &609d 0c 32 10 ; p["verb"] = "wear" &60a0 03 ; } &60a1 8d 44 ; if(preposition == "into") &60a3 01 ; { &60a4 0c 37 10 ; p["verb"] = "insert" &60a7 03 ; } &60a8 03 ; } &60a9 88 1a ; if(verb == "take" and &60ab 8d 49 ; preposition == "off" and &60ad c2 ; second_noun == 0) &60ae 01 ; { &60af 0c 22 10 ; p["verb"] = "doff" &60b2 03 ; } &60b3 98 3c ; if(verb != "follow") &60b5 01 ; { &60b6 14 23 ; p["is_following_doctor"] = 0 &60b8 03 ; } &60b9 88 3c ; if(verb == "follow" and &60bb cc 23 ; p["is_following_doctor"] != 0) &60bd 01 ; { &60be 8c 2f 05 ; if(p["doctor_state"] == &01) &60c1 01 ; { &60c2 0c 06 10 ; p["verb"] = "east" &60c5 03 ; } &60c6 8c 2f 06 ; if(p["doctor_state"] == &02) &60c9 01 ; { &60ca 0c 08 10 ; p["verb"] = "west" &60cd 03 ; } &60ce 03 ; } &60cf 44 21 ; p["moves"] ++ &60d1 cc 39 ; if(p["radio_state"] != 0 and &60d3 84 2a 34 ; p["radio_battery_used"] < &30) &60d6 01 ; { &60d7 44 2a ; p["radio_battery_used"] ++ &60d9 03 ; } &60da cc 26 ; if(p["following_guards_on_hovercycle"] != 0 and &60dc c4 25 ; p["is_riding_hovercycle"] == 0) &60de 01 ; { &60df 4c 26 ; p["following_guards_on_hovercycle"] -- &60e1 03 ; } &60e2 cc 25 ; if(p["is_riding_hovercycle"] != 0) &60e4 01 ; { &60e5 80 11 ; if(verb < "exit" and &60e7 98 06 02 ; verb != "east" or &60ea 88 13 ; verb == "back") &60ec 01 ; { &60ed 0d 41 c6 32 fc 58 45 ff 44 0b 72 f9 10 22 15 23 ; "you attempt to turn the cycle, with disastrous results. &60fd 25 1c 24 23 06 58 41 fa 36 ea 45 fc 0d 39 fb 7a ; As you fly through the air at speed towards a nearby " + &610d d4 34 ab 2b 06 ff 2b 05 ff 6c 05 04 0b 41 fb 35 ; random("tree", "boulder") + ", you wish you had followed &611d 41 fa 0b fa a3 45 d7 04 ; the guards." &6125 08 7f ; player_room = &7b &6127 04 ; return &6128 03 ; } &6129 88 06 02 ; if(verb == "east" or &612c 88 31 02 ; verb == "wait" or &612f 88 3c ; verb == "follow" and &6131 cc 26 ; p["following_guards_on_hovercycle"] != 0) &6133 01 ; { &6134 0d 41 fa 36 4a 05 ; "you fly east" &613a cc 26 ; if(p["following_guards_on_hovercycle"] != 0) &613c 01 ; { &613d 0d 72 45 d7 8a fc ca 04 ; "with the guards just ahead." &6145 03 ; } ; else &6146 01 ; { &6147 0d 38 f9 11 04 ; "on autopilot." &614c 03 ; } &614d 0c 06 10 ; p["verb"] = "east" &6150 14 09 ; p["output_written"] = 0 &6152 04 ; return &6153 03 ; } &6154 88 1a ; if(verb == "take") &6156 01 ; { &6157 0d fc 30 4d 41 20 19 13 1b 5e e4 74 41 42 38 34 ; "how can you pick up anything while you are on a &6167 ff 84 07 05 ; hovercycle? " &616b 03 ; } &616c 03 ; } &616d 94 04 43 ; if(p["player_room"] > &3f and &6170 84 04 47 ; p["player_room"] < &43 and &6173 cc 2c ; p["drunk_state"] != 0) &6175 01 ; { &6176 44 2c ; p["drunk_state"] ++ &6178 94 2c 06 ; if(p["drunk_state"] > &02) &617b 01 ; { &617c 0d 41 42 11 13 13 1f 23 24 15 14 50 45 d7 53 fc ; "you are accosted by the guards for being drunk and &618c 7a fc 71 46 f9 3c 06 fc 1a fc 1b 41 fa 8b 45 2e ; disorderly. Too late you remember the Doctor always &619c 6b 11 1c 27 11 29 23 0e 27 11 22 1e 15 14 92 2e ; warned that Beaujolais does not travel well. Not in deep &61ac ff 83 fc a4 5f 24 22 11 26 15 1c ff 33 06 5f 33 ; space, anyway." &61bc 75 79 0b 11 1e 29 27 11 29 04 &61c6 14 2c ; p["drunk_state"] = 0 &61c8 08 59 ; player_room = &55 &61ca 04 ; return &61cb 03 ; } &61cc 03 ; } &61cd cc 30 ; if(p["tardis_fire_state"] != 0) &61cf 01 ; { &61d0 44 30 ; p["tardis_fire_state"] ++ &61d2 94 30 0b ; if(p["tardis_fire_state"] > &07) &61d5 01 ; { &61d6 88 33 ; if(verb == "break" and &61d8 89 1c ; first_noun == "glass") &61da 01 ; { &61db 04 ; return &61dc 03 ; } &61dd 0d 45 fe 2b 23 20 22 15 11 14 23 fa 9e 46 15 1e ; "the fire spreads rapidly and engulfs the entire Tardis. &61ed 17 25 1c 16 23 45 fa 37 2e c1 06 45 2e 6b 15 23 ; The Doctor escapes in a life pod, unaware that it is the &61fd 13 11 20 15 23 33 34 fc 2b 20 1f 14 0b fa 84 92 ; only one left functioning." &620d 37 44 45 93 43 62 f9 43 04 &6216 08 7f ; player_room = &7b &6218 04 ; return &6219 03 ; } &621a 03 ; } &621b 00 ; end ; miscellaneous_bytecode_03 &621c bc 05 04 ; if(p["current_room"] != p["player_room"]) &621f 01 ; { &6220 56 ; execute_bytecode_for_room() &6221 ef ; if(room.flags[6] and &6222 cc 0a ; p["number_of_objects_in_player_room"] != 0) &6224 01 ; { &6225 0d 2d 2b 06 6a 44 05 41 66 05 04 0e 05 ; "\n" + random("There is", "you find") + " " &6232 2c 04 0b ; p["old_room"] = p["player_room"] &6235 2c 04 0c ; p["new_room"] = p["player_room"] &6238 06 ; list_objects(p["old_room"]. p["new_room"]) &6239 0d 0e 4f 04 ; " here." &623d 03 ; } &623e 03 ; } &623f 00 ; end ; end_of_bytecode ; unused &6240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &62a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &62b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &62c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &62d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &62e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &62f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6300 44 6f 63 74 6f 72 20 57 68 6f 20 61 6e 64 20 74 ; "Doctor Who and t" &6310 68 65 20 57 61 72 6c 6f 72 64 2c 20 50 61 72 74 ; "he Warlord, Part" &6320 20 41 2e 20 28 43 29 20 43 68 65 73 73 66 69 65 ; " A. (C) Chessfie" &6330 6c 64 20 4d 69 63 72 6f 67 61 6d 65 73 20 28 31 ; "ld Microgames (1" &6340 39 38 34 29 0d 00 00 00 00 00 00 00 00 00 00 00 ; "984)." &6350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6420 00 00 00 00 ; secondary_dictionary_one &6424 54 64 00 ; 0 words of length 1 &6427 54 64 00 ; 0 words of length 2 &642a 54 64 00 ; 0 words of length 3 &642d 54 64 00 ; 0 words of length 4 &6430 54 64 00 ; 0 words of length 5 &6433 54 64 00 ; 13 words of length 6, starting at &6454 &6436 a2 64 0d ; 50 words of length 7, starting at &64a2 &6439 00 66 3f ; 22 words of length 8, starting at &6600 &643c b0 66 55 ; 7 words of length 9, starting at &66b0 &643f ef 66 5c ; 1 words of length 10, starting at &66ef &6442 f9 66 5d ; 0 words of length 11 &6445 f9 66 5d ; 0 words of length 12 &6448 f9 66 5d ; 0 words of length 13 &644b f9 66 5d ; 0 words of length 14 &644e f9 66 5d &6451 00 43 49 &6454 05 4c 4d ce a1 19 ; &f9 &05 : elementary &645a 05 4c c3 72 23 0c ; &f9 &06 : electrical &6460 c1 54 ce 89 0e 13 ; &f9 &07 : attentions &6466 01 04 36 ce 01 47 ; &f9 &08 : advantage &646c e9 66 12 2d 12 19 ; &f9 &09 : infirmary &6472 30 04 8c 03 4b 04 ; &f9 &0a : padlocked &6478 01 d5 0f 2d 74 03 ; &f9 &0b : automatic &647e 50 12 46 c3 0c 19 ; &f9 &0c : perfectly &6484 b4 e1 13 2c 54 13 ; &f9 &0d : translates &648a 09 0d 50 32 74 56 ; &f9 &0e : imperative &6490 05 11 75 10 4d ce ; &f9 &0f : equipment &6496 64 33 d3 92 15 13 ; &f9 &10 : disastrous &649c 01 d5 0f 70 8c 14 ; &f9 &11 : autopilot &64a2 77 0c 44 f2 05 13 13 ; &f9 &12 : wilderness &64a9 13 83 12 03 68 0e 07 ; &f9 &13 : scorching &64b0 2d 12 13 08 2c 0e 04 ; &f9 &14 : marshland &64b7 64 33 10 50 a1 e9 07 ; &f9 &15 : disappearing &64be a3 0f 13 b3 2f 04 13 ; &f9 &16 : crossroads &64c5 93 d5 08 37 12 04 13 ; &f9 &17 : southwards &64cc 52 b0 05 53 ce 05 04 ; &f9 &18 : represented &64d3 14 08 f5 44 12 82 cc ; &f9 &19 : thunderbolt &64da 83 ce 12 15 c3 05 04 ; &f9 &1a : contructed &64e1 83 0e d3 e1 14 0c 19 ; &f9 &1b : constantly &64e8 b0 05 63 70 94 15 13 ; &f9 &1c : precipitous &64ef f5 a6 49 0e 04 0c 19 ; &f9 &1d : unfriendly &64f6 06 4c 01 00 62 d4 e5 ; &f9 &1e : flea-bitten &64fd 64 4d 0e 73 ef 01 0c ; &f9 &1f : dimensional &6504 a6 49 0e 04 13 68 10 ; &f9 &20 : friendship &650b 82 d4 0f 0d 4c 13 13 ; &f9 &21 : bottomless &6512 83 0d 10 4c 54 0c 19 ; &f9 &22 : completely &6519 09 0d b0 09 93 4e 04 ; &f9 &23 : imprisoned &6520 03 15 d3 0f 4d 12 13 ; &f9 &24 : customers &6527 d3 32 09 07 c8 e5 13 ; &f9 &25 : straightens &652e a6 05 13 08 37 54 12 ; &f9 &26 : freshwater &6535 b4 01 0d 90 6c 4e 13 ; &f9 &27 : trampolines &653c 06 6c 03 4b 72 0e 07 ; &f9 &28 : flickering &6543 01 07 a7 05 13 73 ef ; &f9 &29 : aggression &654a 52 13 50 c3 01 02 4c ; &f9 &2a : respectable &6551 54 03 e8 0f 8c 07 19 ; &f9 &2b : technology &6558 09 0d 90 13 73 02 4c ; &f9 &2c : impossible &655f 0d 19 d3 a5 89 15 13 ; &f9 &2d : mysterious &6566 b4 01 56 0c 6c 0e 07 ; &f9 &2e : travelling &656d 64 06 66 03 15 cc 19 ; &f9 &2f : difficulty &6574 27 0e a7 e5 0f 15 13 ; &f9 &30 : gangrenous &657b 90 d3 08 15 8d 15 13 ; &f9 &31 : posthumous &6582 6d a3 0f 53 83 0e 04 ; &f9 &32 : microsecond &6589 50 12 13 50 c3 09 56 ; &f9 &33 : perspective &6590 f5 44 12 a7 0f d7 08 ; &f9 &34 : undergrowth &6597 52 a7 c5 01 02 0c 19 ; &f9 &35 : regretably &659e e9 05 98 32 02 0c 19 ; &f9 &36 : inexorably &65a5 22 03 0b 37 12 04 13 ; &f9 &37 : backwards &65ac 05 56 ce 35 0c 0c 19 ; &f9 &38 : eventually &65b3 e9 63 4e 32 74 0e 07 ; &f9 &39 : incinerating &65ba 66 c6 19 00 66 c6 19 ; &f9 &3a : fifty-fifty &65c1 83 0e 73 44 32 02 4c ; &f9 &3b : considerable &65c8 64 93 12 44 12 0c 19 ; &f9 &3c : disorderly &65cf 83 0d 4d 0e 24 02 4c ; &f9 &3d : commendable &65d6 b4 e1 13 2c 74 0e 07 ; &f9 &3e : translating &65dd 11 55 d3 89 6e 0e 07 ; &f9 &3f : questioning &65e4 b0 0f a7 01 0d 4d 04 ; &f9 &40 : programmed &65eb 83 0d 10 2c e9 14 13 ; &f9 &41 : complaints &65f2 05 56 12 d9 68 0e 07 ; &f9 &42 : everything &65f9 06 f5 c3 89 6e 0e 07 ; &f9 &43 : functioning &6600 48 01 04 11 35 d2 a5 13 ; &f9 &44 : headquarters &6608 05 13 50 63 01 0c 0c 19 ; &f9 &45 : especially &6610 13 15 13 70 63 0f 15 13 ; &f9 &46 : suspicious &6618 09 0c 0c 15 6d 2e 74 ef ; &f9 &47 : illumination &6620 01 03 83 0d 8d 24 74 ef ; &f9 &48 : accommodation &6628 2c 0e 04 8c 12 04 1f 13 ; &f9 &49 : landlord's &6630 f5 86 d2 f5 c1 05 0c 19 ; &f9 &4a : unfortunately &6638 e5 76 92 0e 4d ce 01 0c ; &f9 &4b : environmental &6640 e9 d3 12 15 c3 89 0e 13 ; &f9 &4c : instructions &6648 b4 01 56 0c 4c 12 13 1f ; &f9 &4d : travellers' &6650 01 10 b0 05 63 c1 05 04 ; &f9 &4e : appreciated &6658 13 b5 92 f5 64 0e 07 13 ; &f9 &4f : surroundings &6660 05 d8 32 af 64 2e 12 19 ; &f9 &50 : extraordinary &6668 88 56 12 03 19 03 4c 13 ; &f9 &51 : hovercycles &6670 f5 83 0e 13 63 0f 15 13 ; &f9 &52 : unconscious &6678 0f 56 12 28 0e 67 0e 07 ; &f9 &53 : overhanging &6680 e9 05 18 50 72 e5 43 04 ; &f9 &54 : inexperienced &6688 52 0c 15 c3 e1 14 0c 19 ; &f9 &55 : reluctantly &6690 01 04 56 d2 09 73 0e 07 ; &f9 &56 : advertising &6698 09 0d b0 0f 50 12 0c 19 ; &f9 &57 : improperly &66a0 a3 99 47 6e 23 0c 0c 19 ; &f9 &58 : cryogenically &66a8 05 18 50 c3 e1 14 0c 19 ; &f9 &59 : expectantly &66b0 e9 54 12 10 2c 4e 34 12 19 ; &f9 &5a : interplanetary &66b9 01 d5 0f 2d 74 23 0c 0c 19 ; &f9 &5b : automatically &66c2 83 0e a7 c1 15 2c 74 ef 13 ; &f9 &5c : congratulations &66cb 09 0c 0c 15 6d 2e 74 0e 07 ; &f9 &5d : illuminating &66d4 01 03 63 44 ce 01 0c 0c 19 ; &f9 &5e : accidentally &66dd 83 0e 76 0e 63 0e 07 0c 19 ; &f9 &5f : convincingly &66e6 01 03 eb 0f 17 4c 04 47 13 ; &f9 &60 : acknowledges &66ef 13 15 13 70 63 0f 15 13 0c 19 ; &f9 &61 : suspiciously ; secondary_dictionary_two &66f9 29 67 00 ; 0 words of length 1 &66fc 29 67 00 ; 14 words of length 2, starting at &6729 &66ff 45 67 0e ; 37 words of length 3, starting at &6745 &6702 b4 67 33 ; 77 words of length 4, starting at &67b4 &6705 e8 68 80 ; 31 words of length 5, starting at &68e8 &6708 83 69 9f ; 91 words of length 6, starting at &6983 &670b a5 6b fa ; 0 words of length 7 &670e a5 6b fa ; 0 words of length 8 &6711 a5 6b fa ; 0 words of length 9 &6714 a5 6b fa ; 0 words of length 10 &6717 a5 6b fa ; 0 words of length 11 &671a a5 6b fa ; 0 words of length 12 &671d a5 6b fa ; 0 words of length 13 &6720 a5 6b fa ; 0 words of length 14 &6723 a5 6b fa &6726 00 43 4f &6729 13 f5 ; &fa &05 : sun &672b 05 59 ; &fa &06 : eye &672d 74 10 ; &fa &07 : tip &672f e5 04 ; &fa &08 : end &6731 22 12 ; &fa &09 : bar &6733 06 f5 ; &fa &0a : fun &6735 28 04 ; &fa &0b : had &6737 a4 19 ; &fa &0c : dry &6739 66 14 ; &fa &0d : fit &673b 24 19 ; &fa &0e : day &673d 46 17 ; &fa &0f : few &673f 62 07 ; &fa &10 : big &6741 a3 19 ; &fa &11 : cry &6743 01 84 ; &fa &12 : ado &6745 22 b2 e5 ; &fa &13 : barren &6748 90 6c 43 ; &fa &14 : police &674b af e1 47 ; &fa &15 : orange &674e 52 43 ce ; &fa &16 : recent &6751 36 90 b5 ; &fa &17 : vapour &6754 a3 c1 a5 ; &fa &18 : crater &6757 8c 57 d3 ; &fa &19 : lowest &675a 13 0b 19 ; &fa &1a : sky &675d d3 52 c5 ; &fa &1b : street &6760 a1 e5 df ; &fa &1c : aren't &6763 a1 72 56 ; &fa &1d : arrive &6766 f5 2d 44 ; &fa &1e : unmade &6769 8c f5 47 ; &fa &1f : lounge &676c 93 b5 43 ; &fa &20 : source &676f 37 f3 df ; &fa &21 : wasn't &6772 e9 73 44 ; &fa &22 : inside &6775 82 f5 43 ; &fa &23 : bounce &6778 44 a7 45 ; &fa &24 : degree &677b 52 a7 c5 ; &fa &25 : regret &677e f5 77 53 ; &fa &26 : unwise &6781 42 c1 e5 ; &fa &27 : beaten &6784 53 a3 c5 ; &fa &28 : secret &6787 44 22 54 ; &fa &29 : debate &678a 26 d3 a5 ; &fa &2a : faster &678d e1 99 4e ; &fa &2b : anyone &6790 d3 a1 56 ; &fa &2c : starve &6793 e5 67 4e ; &fa &2d : engine &6796 90 f5 43 ; &fa &2e : pounce &6799 64 52 c3 ; &fa &2f : direct &679c 83 b5 53 ; &fa &30 : course &679f 44 96 b5 ; &fa &31 : devour &67a2 a1 52 d3 ; &fa &32 : arrest &67a5 93 ef a5 ; &fa &33 : sooner &67a8 44 54 c3 ; &fa &34 : detect &67ab 8d cc e5 ; &fa &35 : molten &67ae 06 0c 19 ; &fa &36 : fly &67b1 e5 74 52 ; &fa &37 : entire &67b4 53 d4 e9 07 ; &fa &38 : setting &67b8 8d f2 e9 07 ; &fa &39 : morning &67bc d3 a1 54 04 ; &fa &3a : started &67c0 36 ce 01 47 ; &fa &3b : vantage &67c4 83 f5 b4 19 ; &fa &3c : country &67c8 97 f5 44 04 ; &fa &3d : wounded &67cc 23 f2 01 47 ; &fa &3e : carnage &67d0 a3 25 54 04 ; &fa &3f : created &67d4 e7 a1 4c 04 ; &fa &40 : gnarled &67d8 06 b5 2e 43 ; &fa &41 : furnace &67dc 05 4c 4d ce ; &fa &42 : element &67e0 a1 72 56 04 ; &fa &43 : arrived &67e4 37 c9 e9 07 ; &fa &44 : waiting &67e8 77 5a 4e 04 ; &fa &45 : wizened &67ec 82 d4 4c 13 ; &fa &46 : bottles &67f0 e5 27 47 04 ; &fa &47 : engaged &67f4 01 a2 25 d3 ; &fa &48 : abreast &67f8 90 b5 e9 07 ; &fa &49 : pouring &67fc 04 f5 47 ef ; &fa &4a : dungeon &6800 44 05 50 d3 ; &fa &4b : deepest &6804 24 0e 4b d3 ; &fa &4c : dankest &6808 4b 19 88 4c ; &fa &4d : keyhole &680c 76 73 02 4c ; &fa &4e : visible &6810 44 a7 45 13 ; &fa &4f : degrees &6814 8e 74 43 13 ; &fa &50 : notices &6818 56 12 73 ef ; &fa &51 : version &681c 62 0c 6c ef ; &fa &52 : billion &6820 b7 c9 e9 07 ; &fa &53 : writing &6824 4c c1 48 12 ; &fa &54 : leather &6828 25 73 05 d3 ; &fa &55 : easiest &682c 83 0d 4d ce ; &fa &56 : comment &6830 6c c6 e9 07 ; &fa &57 : lifting &6834 62 3a b2 05 ; &fa &58 : bizarre &6838 56 68 03 4c ; &fa &59 : vehicle &683c 05 82 6e 54 ; &fa &5a : ebonite &6840 f5 83 56 12 ; &fa &5b : uncover &6844 83 ad 01 44 ; &fa &5c : comrade &6848 01 36 72 43 ; &fa &5d : avarice &684c 74 07 c8 e5 ; &fa &5e : tighten &6850 6d 13 73 4c ; &fa &5f : missile &6854 23 b2 49 13 ; &fa &60 : carries &6858 44 53 12 56 ; &fa &61 : deserve &685c 92 a1 e9 07 ; &fa &62 : roaring &6860 01 27 e9 d3 ; &fa &63 : against &6864 d3 af 49 13 ; &fa &64 : stories &6868 88 d3 01 47 ; &fa &65 : hostage &686c 10 b5 90 53 ; &fa &66 : purpose &6870 76 d2 55 13 ; &fa &67 : virtues &6874 52 93 0c 56 ; &fa &68 : resolve &6878 23 30 02 4c ; &fa &69 : capable &687c 23 6e 4e 13 ; &fa &6a : canines &6880 84 05 f3 df ; &fa &6b : doesn't &6884 a3 75 53 12 ; &fa &6c : cruiser &6888 e5 67 4e 13 ; &fa &6d : engines &688c 8d 74 ef 13 ; &fa &6e : motions &6890 6d 6e ef 13 ; &fa &6f : minions &6894 44 6c 56 12 ; &fa &70 : deliver &6898 52 8d 56 04 ; &fa &71 : removed &689c 4d 64 23 0c ; &fa &72 : medical &68a0 b0 05 56 ce ; &fa &73 : prevent &68a4 4c a1 4e 04 ; &fa &74 : learned &68a8 52 43 09 56 ; &fa &75 : receive &68ac 88 8e b5 13 ; &fa &76 : honours &68b0 64 52 c3 13 ; &fa &77 : directs &68b4 92 44 ce 13 ; &fa &78 : rodents &68b8 03 b5 52 ce ; &fa &79 : current &68bc 83 d3 e9 07 ; &fa &7a : costing &68c0 a4 f5 4b 0e ; &fa &7b : drunken &68c4 4e 07 4c c3 ; &fa &7c : neglect &68c8 82 52 84 0d ; &fa &7d : boredom &68cc 42 83 4d 13 ; &fa &7e : becomes &68d0 53 a1 e9 07 ; &fa &7f : searing &68d4 a6 45 5a 13 ; &fa &80 : freezes &68d8 e1 8e 59 04 ; &fa &81 : annoyed &68dc 4d e1 e9 07 ; &fa &82 : meaning &68e0 f5 03 4c a1 ; &fa &83 : unclear &68e4 f5 01 37 52 ; &fa &84 : unaware &68e8 03 28 0e 43 13 ; &fa &85 : chances &68ed f5 e9 76 54 04 ; &fa &86 : uninvited &68f2 44 05 10 0c 19 ; &fa &87 : deeply &68f7 44 46 c1 e9 07 ; &fa &88 : defeating &68fc 83 b5 54 13 19 ; &fa &89 : courtesy &6901 57 0c 83 4d 13 ; &fa &8a : welcomes &6906 52 4d 0d 42 12 ; &fa &8b : remember &690b a4 05 13 53 04 ; &fa &8c : dressed &6910 90 09 93 4e 12 ; &fa &8d : poisoner &6915 03 6c 03 0b 13 ; &fa &8e : clicks &691a af 44 72 0e 07 ; &fa &8f : ordering &691f f5 37 ce 05 04 ; &fa &90 : unwanted &6924 f5 8c 03 4b 04 ; &fa &91 : unlocked &6929 36 6e 13 48 13 ; &fa &92 : vanishes &692e 52 2d 12 0b 13 ; &fa &93 : remarks &6933 13 28 d4 a5 13 ; &fa &94 : shatters &6938 a6 01 c3 89 0e ; &fa &95 : fraction &693d 28 10 50 4e 04 ; &fa &96 : happened &6942 af 64 2e 12 19 ; &fa &97 : ordinary &6947 d3 25 6c 0e 07 ; &fa &98 : stealing &694c 52 14 b5 0e 13 ; &fa &99 : returns &6951 86 2d 0c 28 d5 ; &fa &9a : fomalhaut &6956 13 88 cf e9 07 ; &fa &9b : shooting &695b 2d 54 72 01 0c ; &fa &9c : material &6960 13 48 0c 56 13 ; &fa &9d : shelves &6965 32 70 04 0c 19 ; &fa &9e : rapidly &696a 64 52 c3 89 0e ; &fa &9f : direction &696f 6d 0c 6c ef 13 ; &fa &a0 : millions &6974 b4 f5 04 4c 13 ; &fa &a1 : trundles &6979 13 50 63 66 03 ; &fa &a2 : specific &697e 86 0c 8c 57 04 ; &fa &a3 : followed &6983 64 d3 e1 14 0c 19 ; &fa &a4 : distantly &6989 57 d3 37 12 04 13 ; &fa &a5 : westwards &698f 13 77 12 6c 0e 07 ; &fa &a6 : swirling &6995 d3 15 0d 02 4c 04 ; &fa &a7 : stumbled &699b 2c 0e 04 13 23 50 ; &fa &a8 : landscape &69a1 ef 13 2c 15 07 c8 ; &fa &a9 : onslaught &69a7 a4 25 04 06 15 0c ; &fa &aa : dreadful &69ad 22 d4 01 6c ef 13 ; &fa &ab : battalions &69b3 86 cf 68 0c 0c 13 ; &fa &ac : foothills &69b9 b0 cf 05 c3 89 0e ; &fa &ad : protection &69bf 05 76 44 ce 0c 19 ; &fa &ae : evidently &69c5 01 22 0e 84 4e 04 ; &fa &af : abandoned &69cb 13 23 d4 a5 05 04 ; &fa &b0 : scattered &69d1 d3 32 0e 47 0c 19 ; &fa &b1 : strangely &69d7 13 6c 07 c8 0c 19 ; &fa &b2 : slightly &69dd f5 2e 14 b5 01 0c ; &fa &b3 : unnatural &69e3 02 2c 03 4b 4e 04 ; &fa &b4 : blackened &69e9 77 0c 04 40 59 04 ; &fa &b5 : wild-eyed &69ef d3 32 0e 47 12 13 ; &fa &b6 : strangers &69f5 09 2d 67 2e 02 4c ; &fa &b7 : imaginable &69fb 8d f5 34 e9 73 44 ; &fa &b8 : mountainside &6a01 37 54 12 26 0c 0c ; &fa &b9 : waterfall &6a07 83 8c b5 06 15 0c ; &fa &ba : colourful &6a0d 05 13 53 ce 29 0c ; &fa &bb : essential &6a13 26 0e 07 66 13 08 ; &fa &bc : fangfish &6a19 a6 01 a7 e1 43 13 ; &fa &bd : fragrances &6a1f 83 b5 14 39 12 04 ; &fa &be : courtyard &6a25 2c 0e 07 35 47 13 ; &fa &bf : languages &6a2b 64 e7 c9 a1 49 13 ; &fa &c0 : dignitaries &6a31 27 14 48 72 0e 07 ; &fa &c1 : gathering &6a37 14 88 15 33 0e 04 ; &fa &c2 : thousand &6a3d 42 4a 57 0c 4c 04 ; &fa &c3 : bejewelled &6a43 13 08 d5 54 52 04 ; &fa &c4 : shuttered &6a49 83 0e 66 12 4d 04 ; &fa &c5 : confirmed &6a4f 23 12 50 d4 05 04 ; &fa &c6 : carpetted &6a55 23 15 0c a4 ef 13 ; &fa &c7 : cauldrons &6a5b 24 12 eb 05 13 13 ; &fa &c8 : darkness &6a61 83 0d 10 4c 54 13 ; &fa &c9 : completes &6a67 36 0d 70 52 1f 13 ; &fa &ca : vampire's &6a6d 83 af 64 2e 54 13 ; &fa &cb : coordinates &6a73 0d d5 54 72 0e 07 ; &fa &cc : muttering &6a79 83 0d 10 4c 54 04 ; &fa &cd : completed &6a7f 52 d3 72 c3 05 04 ; &fa &ce : restricted &6a85 54 4c 30 14 68 03 ; &fa &cf : telepathic &6a8b 01 10 50 a1 e1 43 ; &fa &d0 : appearance &6a91 01 36 09 2c 02 4c ; &fa &d1 : available &6a97 92 15 07 08 0c 19 ; &fa &d2 : roughly &6a9d 96 32 63 0f 15 13 ; &fa &d3 : voracious &6aa3 30 12 03 08 4d ce ; &fa &d4 : parchment &6aa9 64 06 66 03 15 cc ; &fa &d5 : difficult &6aaf 01 04 56 ce b5 05 ; &fa &d6 : adventure &6ab5 b4 01 56 0c 4c 12 ; &fa &d7 : traveller &6abb 43 4c a2 c1 89 0e ; &fa &d8 : celebration &6ac1 09 0c 4c 67 02 4c ; &fa &d9 : illegible &6ac7 6c 6d 34 74 ef 13 ; &fa &da : limitations &6acd eb 0f 17 4c 04 47 ; &fa &db : knowledge &6ad3 0a 15 0d 70 0e 07 ; &fa &dc : jumping &6ad9 52 2d 12 2b 02 4c ; &fa &dd : remarkable &6adf 73 e7 09 66 23 ce ; &fa &de : significant &6ae5 09 0d 90 d2 e1 14 ; &fa &df : important &6aeb 24 d3 a1 04 0c 19 ; &fa &e0 : dastardly &6af1 25 d3 37 12 04 13 ; &fa &e1 : eastwards &6af7 26 13 63 2e 54 04 ; &fa &e2 : fascinated &6afd b0 05 63 70 43 13 ; &fa &e3 : precipices &6b03 52 13 15 cc e9 07 ; &fa &e4 : resulting &6b09 0f 56 f2 09 07 c8 ; &fa &e5 : overnight &6b0f b4 8f 50 12 1f 13 ; &fa &e6 : trooper's &6b15 e9 a6 01 a0 05 04 ; &fa &e7 : infra-red &6b1b b4 09 07 47 52 04 ; &fa &e8 : triggered &6b21 4d 03 28 6e 13 0d ; &fa &e9 : mechanism &6b27 c1 8d 13 10 48 52 ; &fa &ea : atmosphere &6b2d 53 a1 03 68 0e 07 ; &fa &eb : searching &6b33 52 03 0b 4c 13 13 ; &fa &ec : reckless &6b39 96 af 97 0b b5 10 ; &fa &ed : voorwokurp &6b3f 13 b0 61 6e 0e 07 ; &fa &ee : spraining &6b45 64 13 93 0c 56 13 ; &fa &ef : dissolves &6b4b 84 f7 d3 52 01 0d ; &fa &f0 : downstream &6b51 14 57 ce 49 14 08 ; &fa &f1 : twentieth &6b57 a2 09 27 0e 04 13 ; &fa &f2 : brigands &6b5d 52 83 e7 09 53 13 ; &fa &f3 : recognises &6b63 13 57 c5 48 a1 14 ; &fa &f4 : sweetheart &6b69 83 0c 4c c3 05 04 ; &fa &f5 : collected &6b6f d3 61 0e 4c 13 13 ; &fa &f6 : stainless &6b75 52 67 d3 a5 e9 07 ; &fa &f7 : registering &6b7b 03 b5 89 73 14 19 ; &fa &f8 : curiosity &6b81 2d e7 09 66 43 ce ; &fa &f9 : magnificent &6b87 52 d3 01 b5 e1 14 ; &fa &fa : restaurant &6b8d 2d 8a 12 00 84 8d ; &fa &fb : major-domo &6b93 83 0e 76 0e 43 04 ; &fa &fc : convinced &6b99 f5 26 a9 4e 13 13 ; &fa &fd : unfairness &6b9f f5 13 a3 05 57 04 ; &fa &fe : unscrewed ; secondary_dictionary_three &6ba5 d5 6b 00 ; 0 words of length 1 &6ba8 d5 6b 00 ; 19 words of length 2, starting at &6bd5 &6bab fb 6b 13 ; 34 words of length 3, starting at &6bfb &6bae 61 6c 35 ; 65 words of length 4, starting at &6c61 &6bb1 65 6d 76 ; 132 words of length 5, starting at &6d65 &6bb4 f9 6f fa ; 0 words of length 6 &6bb7 f9 6f fa ; 0 words of length 7 &6bba f9 6f fa ; 0 words of length 8 &6bbd f9 6f fa ; 0 words of length 9 &6bc0 f9 6f fa ; 0 words of length 10 &6bc3 f9 6f fa ; 0 words of length 11 &6bc6 f9 6f fa ; 0 words of length 12 &6bc9 f9 6f fa ; 0 words of length 13 &6bcc f9 6f fa ; 0 words of length 14 &6bcf f9 6f fa &6bd2 00 00 00 &6bd5 37 4b ; &fb &05 : wake &6bd7 30 d3 ; &fb &06 : past &6bd9 88 4c ; &fb &07 : hole &6bdb 6d 4e ; &fb &08 : mine &6bdd 52 d3 ; &fb &09 : rest &6bdf 6d 4c ; &fb &0a : mile &6be1 8d d3 ; &fb &0b : most &6be3 6e 4e ; &fb &0c : nine &6be5 33 46 ; &fb &0d : safe &6be7 d3 a1 ; &fb &0e : star &6be9 24 34 ; &fb &0f : data &6beb 8e 4e ; &fb &10 : none &6bed 83 4d ; &fb &11 : come &6bef 4d e1 ; &fb &12 : mean &6bf1 8e 53 ; &fb &13 : nose &6bf3 57 52 ; &fb &14 : were &6bf5 4e d8 ; &fb &15 : next &6bf7 4d c5 ; &fb &16 : meet &6bf9 93 ef ; &fb &17 : soon &6bfb 76 05 17 ; &fb &18 : view &6bfe 24 0d 10 ; &fb &19 : damp &6c01 30 0c 0c ; &fb &1a : pall &6c04 22 0c 0c ; &fb &1b : ball &6c07 82 14 08 ; &fb &1c : both &6c0a 07 8c 17 ; &fb &1d : glow &6c0d 22 0e 0b ; &fb &1e : bank &6c10 23 0d 10 ; &fb &1f : camp &6c13 73 0c 0b ; &fb &20 : silk &6c16 82 17 13 ; &fb &21 : bows &6c19 70 14 13 ; &fb &22 : pits &6c1c 13 08 d5 ; &fb &23 : shut &6c1f 06 15 53 ; &fb &24 : fuse &6c22 87 0f 04 ; &fb &25 : good &6c25 30 0c 0d ; &fb &26 : palm &6c28 13 88 10 ; &fb &27 : shop &6c2b 97 12 0b ; &fb &28 : work &6c2e 47 14 13 ; &fb &29 : gets &6c31 28 12 0d ; &fb &2a : harm &6c34 02 b5 0e ; &fb &2b : burn &6c37 42 01 0d ; &fb &2c : beam &6c3a 74 0e 19 ; &fb &2d : tiny &6c3d 04 15 d3 ; &fb &2e : dust &6c40 68 14 13 ; &fb &2f : hits &6c43 22 0e 04 ; &fb &30 : band &6c46 30 13 13 ; &fb &31 : pass &6c49 53 14 13 ; &fb &32 : sets &6c4c a4 01 07 ; &fb &33 : drag &6c4f 88 0c 04 ; &fb &34 : hold &6c52 77 13 08 ; &fb &35 : wish &6c55 48 1f 13 ; &fb &36 : he's &6c58 2c 03 0b ; &fb &37 : lack &6c5b 8c 03 0b ; &fb &38 : lock &6c5e 66 14 13 ; &fb &39 : fits &6c61 e9 74 2d 54 ; &fb &3a : intimate &6c65 26 96 72 54 ; &fb &3b : favorite &6c69 8c 0f 0b 13 ; &fb &3c : looks &6c6d 09 1f 0c 0c ; &fb &3d : i'll &6c71 30 13 33 47 ; &fb &3e : passage &6c75 52 01 04 13 ; &fb &3f : reads &6c79 33 0e 04 13 ; &fb &40 : sands &6c7d 59 0c 8c 17 ; &fb &41 : yellow &6c81 05 78 14 13 ; &fb &42 : exits &6c85 0f 06 66 43 ; &fb &43 : office &6c89 24 0e 47 12 ; &fb &44 : danger &6c8d 53 77 0e 07 ; &fb &45 : sewing &6c91 0d 15 03 08 ; &fb &46 : much &6c95 6c a2 a1 19 ; &fb &47 : library &6c99 d3 af 01 47 ; &fb &48 : storage &6c9d 82 0f 0b 13 ; &fb &49 : books &6ca1 f3 8f 14 19 ; &fb &4a : snooty &6ca5 d3 09 03 0b ; &fb &4b : stick &6ca9 47 d3 b5 05 ; &fb &4c : gesture &6cad 8e 17 48 52 ; &fb &4d : nowhere &6cb1 03 28 12 47 ; &fb &4e : charge &6cb5 94 6e 07 c8 ; &fb &4f : tonight &6cb9 76 c3 af 19 ; &fb &50 : victory &6cbd 8d 94 12 13 ; &fb &51 : motors &6cc1 48 05 0c 13 ; &fb &52 : heels &6cc5 e5 a5 07 19 ; &fb &53 : energy &6cc9 02 b5 0e 13 ; &fb &54 : burns &6ccd 42 67 0e 13 ; &fb &55 : begins &6cd1 73 0c 0c 19 ; &fb &56 : silly &6cd5 90 d2 32 c9 ; &fb &57 : portrait &6cd9 01 c3 89 0e ; &fb &58 : action &6cdd 97 12 04 13 ; &fb &59 : words &6ce1 d3 af 05 04 ; &fb &5a : stored &6ce5 a2 e1 03 08 ; &fb &5b : branch &6ce9 2d 12 4b 04 ; &fb &5c : marked &6ced 2d 12 13 08 ; &fb &5d : marsh &6cf1 6d 07 c8 19 ; &fb &5e : mighty &6cf5 05 13 23 50 ; &fb &5f : escape &6cf9 44 93 2c 54 ; &fb &60 : desolate &6cfd 01 0c 8d d3 ; &fb &61 : almost &6d01 8d 4d ce 13 ; &fb &62 : moments &6d05 10 2c 4e 14 ; &fb &63 : planet &6d09 66 72 0e 07 ; &fb &64 : firing &6d0d 42 68 0e 04 ; &fb &65 : behind &6d11 97 15 0c 04 ; &fb &66 : would &6d15 86 d2 f5 05 ; &fb &67 : fortune &6d19 23 b2 49 04 ; &fb &68 : carried &6d1d a4 0f 10 13 ; &fb &69 : drops &6d21 77 a5 44 d3 ; &fb &6a : wierdest &6d25 0f 50 0e 13 ; &fb &6b : opens &6d29 11 75 03 0b ; &fb &6c : quick &6d2d 13 6c 10 13 ; &fb &6d : slips &6d31 8a b5 4e 19 ; &fb &6e : journey &6d35 10 4c ce 19 ; &fb &6f : plenty &6d39 30 74 e5 43 ; &fb &70 : patience &6d3d 86 0c 0c 19 ; &fb &71 : folly &6d41 14 68 05 06 ; &fb &72 : thief &6d45 a3 0f 17 04 ; &fb &73 : crowd &6d49 52 b4 49 56 ; &fb &74 : retrieve &6d4d b0 09 93 0e ; &fb &75 : prison &6d51 01 13 0b 13 ; &fb &76 : asks &6d55 4c ef a1 84 ; &fb &77 : leonardo &6d59 10 4c 01 53 ; &fb &78 : please &6d5d e1 8e f5 43 ; &fb &79 : announce &6d61 13 50 05 04 ; &fb &7a : speed &6d65 66 07 c8 e9 07 ; &fb &7b : fighting &6d6a f5 44 12 86 cf ; &fb &7c : underfoot &6d6f 54 4c 10 88 4e ; &fb &7d : telephone &6d74 d3 15 0d 02 4c ; &fb &7e : stumble &6d79 f5 53 65 0e 07 ; &fb &7f : unseeing &6d7e 44 53 d2 05 04 ; &fb &80 : deserted &6d83 05 56 12 99 4e ; &fb &81 : everyone &6d88 02 8c 0f 04 19 ; &fb &82 : bloody &6d8d 06 4c 65 0e 07 ; &fb &83 : fleeing &6d92 13 90 32 64 03 ; &fb &84 : sporadic &6d97 64 52 c3 0c 19 ; &fb &85 : directly &6d9c 13 b5 92 f5 04 ; &fb &86 : surround &6da1 0e 15 03 4c a1 ; &fb &87 : nuclear &6da6 73 2c d3 09 03 ; &fb &88 : silastic &6dab 44 30 d2 b5 05 ; &fb &89 : departure &6db0 53 0e 33 74 ef ; &fb &8a : sensation &6db5 03 6c 0d 02 13 ; &fb &8b : climbs &6dba e5 af 8d 15 13 ; &fb &8c : enormous &6dbf 32 64 c1 89 0e ; &fb &8d : radiation &6dc4 a2 09 07 c8 a5 ; &fb &8e : brighter &6dc9 f5 24 2d 47 04 ; &fb &8f : undamaged &6dce b0 05 56 ce 13 ; &fb &90 : prevents &6dd3 01 03 43 13 13 ; &fb &91 : access &6dd8 23 13 23 44 13 ; &fb &92 : cascades &6ddd 42 67 ee e9 07 ; &fb &93 : beginning &6de2 d3 32 09 07 c8 ; &fb &94 : straight &6de7 83 ce e9 55 13 ; &fb &95 : continues &6dec 07 15 0c 0c 19 ; &fb &96 : gully &6df1 0f 10 90 73 54 ; &fb &97 : opposite &6df6 13 50 63 05 13 ; &fb &98 : species &6dfb 14 88 15 07 08 ; &fb &99 : though &6e00 b0 05 63 70 43 ; &fb &9a : precipice &6e05 e5 0f 15 07 08 ; &fb &9b : enough &6e0a 08 f5 74 0e 07 ; &fb &9c : hunting &6e0f 03 4c a1 e9 07 ; &fb &9d : clearing &6e14 56 68 03 4c 13 ; &fb &9e : vehicles &6e19 46 d3 09 36 0c ; &fb &9f : festival &6e1e 47 4e 92 15 13 ; &fb &a0 : generous &6e23 27 54 88 15 53 ; &fb &a1 : gatehouse &6e28 74 34 6e 15 0d ; &fb &a2 : titanium &6e2d 8e 74 63 0e 07 ; &fb &a3 : noticing &6e32 e5 54 72 0e 07 ; &fb &a4 : entering &6e37 4c 01 76 0e 07 ; &fb &a5 : leaving &6e3c d3 a1 74 0e 07 ; &fb &a6 : starting &6e41 12 f5 6e 0e 07 ; &fb &a7 : running &6e46 2c 15 07 c8 a5 ; &fb &a8 : laughter &6e4b 2c 42 0c 4c 04 ; &fb &a9 : labelled &6e50 43 09 6c 0e 07 ; &fb &aa : ceiling &6e55 83 b5 74 a5 13 ; &fb &ab : courtiers &6e5a 13 2d 0c 4c 12 ; &fb &ac : smaller &6e5f 05 d8 e5 44 04 ; &fb &ad : extended &6e64 44 83 32 54 04 ; &fb &ae : decorated &6e69 a1 0d 03 28 a9 ; &fb &af : armchair &6e6e 82 d4 0f 4d 04 ; &fb &b0 : bottomed &6e73 94 34 0c 0c 19 ; &fb &b1 : totally &6e78 33 36 47 0c 19 ; &fb &b2 : savagely &6e7d 66 12 0d 0c 19 ; &fb &b3 : firmly &6e82 04 f5 47 ef 13 ; &fb &b4 : dungeons &6e87 23 d3 4c 1f 13 ; &fb &b5 : castle's &6e8c 94 cf 08 93 4d ; &fb &b6 : toothsome &6e91 82 14 48 52 04 ; &fb &b7 : bothered &6e96 42 83 6d 0e 07 ; &fb &b8 : becoming &6e9b 66 6e 13 48 04 ; &fb &b9 : finished &6ea0 22 14 a8 8f 0d ; &fb &ba : bathroom &6ea5 a6 45 7a 0e 07 ; &fb &bb : freezing &6eaa 52 01 64 0e 07 ; &fb &bc : reading &6eaf 03 4c a1 e1 43 ; &fb &bd : clearance &6eb4 13 a3 05 57 04 ; &fb &be : screwed &6eb9 b4 01 50 5a 13 ; &fb &bf : trapezes &6ebe 6d 6e c1 b5 05 ; &fb &c0 : miniature &6ec3 b0 e9 63 30 0c ; &fb &c1 : principal &6ec8 54 12 6d 2e 0c ; &fb &c2 : terminal &6ecd 83 ce 61 0e 13 ; &fb &c3 : contains &6ed2 25 07 4c 1f 13 ; &fb &c4 : eagle's &6ed7 14 28 14 1f 13 ; &fb &c5 : that's &6edc 52 10 6c 05 13 ; &fb &c6 : replies &6ee1 22 d4 a5 49 13 ; &fb &c7 : batteries &6ee6 34 0c 6b 0e 07 ; &fb &c8 : talking &6eeb 28 12 04 0c 19 ; &fb &c9 : hardly &6ef0 13 a3 01 17 0c ; &fb &ca : scrawl &6ef5 13 88 15 0c 04 ; &fb &cb : should &6efa e1 19 17 48 52 ; &fb &cc : anywhere &6eff 4c d4 a5 e9 07 ; &fb &cd : lettering &6f04 52 11 55 d3 13 ; &fb &ce : requests &6f09 2c 0e 07 35 47 ; &fb &cf : language &6f0e e1 74 a7 01 16 ; &fb &d0 : antigrav &6f13 14 88 15 07 c8 ; &fb &d1 : thought &6f18 97 0e 44 12 13 ; &fb &d2 : wonders &6f1d 52 01 0c 0c 19 ; &fb &d3 : really &6f22 e9 76 73 02 4c ; &fb &d4 : invisible &6f27 83 ce 92 0c 13 ; &fb &d5 : controls &6f2c 90 13 73 02 4c ; &fb &d6 : possible &6f31 66 4c 4c d4 a5 ; &fb &d7 : fileletter &6f36 a2 25 6b 0e 07 ; &fb &d8 : breaking &6f3b 05 d8 72 23 54 ; &fb &d9 : extricate &6f40 13 8c 17 0c 19 ; &fb &da : slowly &6f45 64 33 10 50 a1 ; &fb &db : disappear &6f4a 23 d0 b5 e9 07 ; &fb &dc : capturing &6f4f 56 54 32 0e 13 ; &fb &dd : veterans &6f54 44 6c 72 15 0d ; &fb &de : delirium &6f59 f5 2d 10 50 04 ; &fb &df : unmapped &6f5e 07 2c 63 a5 13 ; &fb &e0 : glaciers &6f63 0f 03 03 b5 13 ; &fb &e1 : occurs &6f68 b4 09 07 47 12 ; &fb &e2 : trigger &6f6d 44 46 0e 43 13 ; &fb &e3 : defences &6f72 67 27 ce 09 03 ; &fb &e4 : gigantic &6f77 d3 a1 76 0e 07 ; &fb &e5 : starving &6f7c 44 90 73 54 04 ; &fb &e6 : deposited &6f81 03 28 6c 8b 13 ; &fb &e7 : chalikos &6f86 44 13 50 32 54 ; &fb &e8 : desperate &6f8b b0 0f 43 13 13 ; &fb &e9 : process &6f90 0f 56 12 83 4d ; &fb &ea : overcome &6f95 a7 c1 c9 15 44 ; &fb &eb : gratitude &6f9a 0f 06 46 12 13 ; &fb &ec : offers &6f9f e9 a3 25 53 13 ; &fb &ed : increases &6fa4 83 0d 10 4c 54 ; &fb &ee : complete &6fa9 e9 54 0e 44 04 ; &fb &ef : intended &6fae 36 27 72 05 13 ; &fb &f0 : vagaries &6fb3 33 0e c3 c9 19 ; &fb &f1 : sanctity &6fb8 77 0c 04 6c 46 ; &fb &f2 : wildlife &6fbd 17 68 b2 e9 07 ; &fb &f3 : whirring &6fc2 d3 a1 36 74 ef ; &fb &f4 : starvation &6fc7 83 0e 73 44 12 ; &fb &f5 : consider &6fcc a7 01 76 14 19 ; &fb &f6 : gravity &6fd1 73 14 35 74 ef ; &fb &f7 : situation &6fd6 88 8e b5 05 04 ; &fb &f8 : honoured &6fdb 8c 0f 6b 0e 07 ; &fb &f9 : looking &6fe0 d3 a1 14 4c 04 ; &fb &fa : startled &6fe5 37 09 d3 83 c1 ; &fb &fb : waistcoat &6fea f5 48 05 44 04 ; &fb &fc : unheeded &6fef a7 0f 17 0c 13 ; &fb &fd : growls &6ff4 f5 09 56 12 53 ; &fb &fe : universe ; secondary_dictionary_four &6ff9 29 70 00 ; 0 words of length 1 &6ffc 29 70 00 ; 49 words of length 2, starting at &7029 &6fff 8b 70 31 ; 113 words of length 3, starting at &708b &7002 de 71 a2 ; 88 words of length 4, starting at &71de &7005 3e 73 fa ; 0 words of length 5 &7008 3e 73 fa ; 0 words of length 6 &700b 3e 73 fa ; 0 words of length 7 &700e 3e 73 fa ; 0 words of length 8 &7011 3e 73 fa ; 0 words of length 9 &7014 3e 73 fa ; 0 words of length 10 &7017 3e 73 fa ; 0 words of length 11 &701a 3e 73 fa ; 0 words of length 12 &701d 3e 73 fa ; 0 words of length 13 &7020 3e 73 fa ; 0 words of length 14 &7023 3e 73 fa &7026 00 00 00 &7029 4e a1 ; &fc &05 : near &702b 6d d3 ; &fc &06 : mist &702d 73 e7 ; &fc &07 : sign &702f 14 97 ; &fc &08 : two &7031 6c 05 ; &fc &09 : lie &7033 86 07 ; &fc &0a : fog &7035 8e 17 ; &fc &0b : now &7037 ef 43 ; &fc &0c : once &7039 61 12 ; &fc &0d : air &703b 4d 0e ; &fc &0e : men &703d 73 18 ; &fc &0f : six &703f 87 4e ; &fc &10 : gone &7041 e1 19 ; &fc &11 : any &7043 8d 52 ; &fc &12 : more &7045 36 d3 ; &fc &13 : vast &7047 26 12 ; &fc &14 : far &7049 37 13 ; &fc &15 : was &704b 42 e5 ; &fc &16 : been &704d 94 10 ; &fc &17 : top &704f 30 d2 ; &fc &18 : part &7051 77 44 ; &fc &19 : wide &7053 94 0f ; &fc &1a : too &7055 2c 54 ; &fc &1b : late &7057 8c d3 ; &fc &1c : lost &7059 6c 4b ; &fc &1d : like &705b 53 14 ; &fc &1e : set &705d 2d 44 ; &fc &1f : made &705f 2d e9 ; &fc &20 : main &7061 c9 13 ; &fc &21 : its &7063 33 4c ; &fc &22 : sale &7065 e9 0e ; &fc &23 : inn &7067 52 04 ; &fc &24 : red &7069 2c d3 ; &fc &25 : last &706b 8c 17 ; &fc &26 : low &706d 70 14 ; &fc &27 : pit &706f 86 cf ; &fc &28 : foot &7071 8c 14 ; &fc &29 : lot &7073 48 12 ; &fc &2a : her &7075 6c 46 ; &fc &2b : life &7077 27 4d ; &fc &2c : game &7079 30 a9 ; &fc &2d : pair &707b 84 4e ; &fc &2e : done &707d 8d 56 ; &fc &2f : move &707f 88 17 ; &fc &30 : how &7081 66 4e ; &fc &31 : fine &7083 53 e5 ; &fc &32 : seen &7085 37 ce ; &fc &33 : want &7087 64 05 ; &fc &34 : die &7089 8c 53 ; &fc &35 : lose &708b 34 0c 0c ; &fc &36 : tall &708e cf 48 12 ; &fc &37 : other &7091 93 f5 04 ; &fc &38 : sound &7094 02 0c 55 ; &fc &39 : blue &7097 01 2a 12 ; &fc &3a : ajar &709a a6 ef 14 ; &fc &3b : front &709d d3 a1 14 ; &fc &3c : start &70a0 73 0e 0b ; &fc &3d : sink &70a3 6c 05 13 ; &fc &3e : lies &70a6 13 8d 4b ; &fc &3f : smoke &70a9 a1 4d 04 ; &fc &40 : armed &70ac 05 56 0e ; &fc &41 : even &70af 14 48 a9 ; &fc &42 : their &70b2 8c 0e 07 ; &fc &43 : long &70b5 01 27 e9 ; &fc &44 : again &70b8 73 0e 43 ; &fc &45 : since &70bb 30 14 08 ; &fc &46 : path &70be 86 0f 04 ; &fc &47 : food &70c1 25 03 08 ; &fc &48 : each &70c4 d3 05 10 ; &fc &49 : step &70c7 42 83 4d ; &fc &4a : become &70ca 32 76 4e ; &fc &4b : ravine &70cd 54 ce 13 ; &fc &4c : tents &70d0 25 d2 08 ; &fc &4d : earth &70d3 a7 09 10 ; &fc &4e : grip &70d6 42 73 44 ; &fc &4f : beside &70d9 73 44 13 ; &fc &50 : sides &70dc 15 53 04 ; &fc &51 : used &70df 2d 0e 19 ; &fc &52 : many &70e2 44 01 04 ; &fc &53 : dead &70e5 d3 45 0c ; &fc &54 : steel &70e8 13 88 d2 ; &fc &55 : short &70eb 6c d4 4c ; &fc &56 : little &70ee 30 d2 19 ; &fc &57 : party &70f1 14 b5 0e ; &fc &58 : turn &70f4 b4 45 13 ; &fc &59 : trees &70f7 53 05 0d ; &fc &5a : seem &70fa 87 e9 07 ; &fc &5b : going &70fd d3 45 10 ; &fc &5c : steep &7100 13 a3 45 ; &fc &5d : scree &7103 11 75 54 ; &fc &5e : quite &7106 03 8c 53 ; &fc &5f : close &7109 94 57 12 ; &fc &60 : tower &710c 93 6c 04 ; &fc &61 : solid &710f 0f 0c 04 ; &fc &62 : old &7112 74 05 04 ; &fc &63 : tied &7115 67 e1 14 ; &fc &64 : giant &7118 25 07 4c ; &fc &65 : eagle &711b 66 12 d3 ; &fc &66 : first &711e 2c 12 47 ; &fc &67 : large &7121 67 56 13 ; &fc &68 : gives &7124 4e 03 0b ; &fc &69 : neck &7127 37 54 12 ; &fc &6a : water &712a 4c 01 04 ; &fc &6b : lead &712d 05 59 13 ; &fc &6c : eyes &7130 2d ee a5 ; &fc &6d : manner &7133 01 30 d2 ; &fc &6e : apart &7136 b7 09 d3 ; &fc &6f : wrist &7139 82 4e 13 ; &fc &70 : bones &713c a4 f5 0b ; &fc &71 : drunk &713f 14 88 53 ; &fc &72 : those &7142 84 af 13 ; &fc &73 : doors &7145 a1 03 08 ; &fc &74 : arch &7148 66 58 04 ; &fc &75 : fixed &714b 01 82 56 ; &fc &76 : above &714e a5 6d 4e ; &fc &77 : ermine &7151 37 0c 0b ; &fc &78 : walk &7154 08 15 0d ; &fc &79 : hum &7157 42 e9 07 ; &fc &7a : being &715a f5 44 12 ; &fc &7b : under &715d 37 09 d3 ; &fc &7c : waist &7160 b4 e1 43 ; &fc &7d : trance &7163 03 4c a1 ; &fc &7e : clear &7166 30 72 13 ; &fc &7f : paris &7169 14 68 13 ; &fc &80 : this &716c 2c 87 ef ; &fc &81 : lagoon &716f 8d 4d ce ; &fc &82 : moment &7172 4d c5 13 ; &fc &83 : meets &7175 17 88 4c ; &fc &84 : whole &7178 01 c6 a5 ; &fc &85 : after &717b 84 5a 0e ; &fc &86 : dozen &717e 92 d5 05 ; &fc &87 : route &7181 23 b2 19 ; &fc &88 : carry &7184 10 2c 19 ; &fc &89 : play &7187 70 0e 07 ; &fc &8a : ping &718a 88 50 13 ; &fc &8b : hopes &718d a2 e9 07 ; &fc &8c : bring &7190 48 01 04 ; &fc &8d : head &7193 97 0e df ; &fc &8e : won't &7196 a4 01 f7 ; &fc &8f : drawn &7199 84 0e df ; &fc &90 : don't &719c 86 0f 0c ; &fc &91 : fool &719f a1 0d 13 ; &fc &92 : arms &71a2 67 56 0e ; &fc &93 : given &71a5 14 28 0e ; &fc &94 : than &71a8 a6 45 5a ; &fc &95 : freeze &71ab 86 f5 04 ; &fc &96 : found &71ae 44 63 44 ; &fc &97 : decide &71b1 42 d4 a5 ; &fc &98 : better &71b4 82 04 19 ; &fc &99 : body &71b7 2c 54 12 ; &fc &9a : later &71ba e1 0b 4c ; &fc &9b : ankle &71bd 4c 01 56 ; &fc &9c : leave &71c0 13 6c 10 ; &fc &9d : slip &71c3 54 0c 0c ; &fc &9e : tell &71c6 54 a1 13 ; &fc &9f : tears &71c9 2d 4b 13 ; &fc &a0 : makes &71cc 6d 0e 04 ; &fc &a1 : mind &71cf 92 d4 e5 ; &fc &a2 : rotten &71d2 01 37 c9 ; &fc &a3 : await &71d5 84 05 13 ; &fc &a4 : does &71d8 34 4b 13 ; &fc &a5 : takes &71db 59 a1 13 ; &fc &a6 : years &71de 66 05 0c 04 ; &fc &a7 : field &71e2 72 73 0e 07 ; &fc &a8 : rising &71e6 83 56 52 04 ; &fc &a9 : covered &71ea 01 10 50 a1 ; &fc &aa : appear &71ee d3 e1 04 13 ; &fc &ab : stands &71f2 a7 0f f5 04 ; &fc &ac : ground &71f6 13 8c 50 13 ; &fc &ad : slopes &71fa a4 09 c6 13 ; &fc &ae : drifts &71fe 02 8c 0f 04 ; &fc &af : blood &7202 02 4c 01 0b ; &fc &b0 : bleak &7206 8e d2 48 f2 ; &fc &b1 : northern &720a 64 d3 e1 14 ; &fc &b2 : distant &720e 64 d3 e1 43 ; &fc &b3 : distance &7212 a7 0f 15 10 ; &fc &b4 : group &7216 02 2c 03 0b ; &fc &b5 : black &721a d3 09 0c 0c ; &fc &b6 : still &721e 8c cf e9 07 ; &fc &b7 : looting &7222 48 01 16 19 ; &fc &b8 : heavy &7226 47 d4 e9 07 ; &fc &b9 : getting &722a 14 57 ce 19 ; &fc &ba : twenty &722e 13 b5 26 43 ; &fc &bb : surface &7232 2c 04 44 12 ; &fc &bc : ladder &7236 57 d3 a5 0e ; &fc &bd : western &723a 92 03 0b 13 ; &fc &be : rocks &723e 6d 0e d5 05 ; &fc &bf : minute &7242 30 13 53 13 ; &fc &c0 : passes &7246 52 2d e9 13 ; &fc &c1 : remains &724a e5 05 0d 19 ; &fc &c2 : enemy &724e 01 8d 0e 07 ; &fc &c3 : among &7252 68 0c 0c 13 ; &fc &c4 : hills &7256 32 76 4e 13 ; &fc &c5 : ravines &725a 93 d5 48 f2 ; &fc &c6 : southern &725e 36 0c 4c 19 ; &fc &c7 : valley &7262 42 14 57 e5 ; &fc &c8 : between &7266 8d f5 34 e9 ; &fc &c9 : mountain &726a 01 48 01 04 ; &fc &ca : ahead &726e 94 57 12 13 ; &fc &cb : towers &7272 13 70 52 13 ; &fc &cc : spires &7276 92 15 07 08 ; &fc &cd : rough &727a b4 01 03 0b ; &fc &ce : track &727e 37 0c 0c 13 ; &fc &cf : walls &7282 11 35 b2 19 ; &fc &d0 : quarry &7286 68 44 0f d5 ; &fc &d1 : hideout &728a 22 0e 64 14 ; &fc &d2 : bandit &728e 08 15 2d 0e ; &fc &d3 : human &7292 13 88 17 13 ; &fc &d4 : shows &7296 28 76 0e 07 ; &fc &d5 : having &729a 13 6b d2 13 ; &fc &d6 : skirts &729e 14 b5 0e 13 ; &fc &d7 : turns &72a2 28 0e 07 13 ; &fc &d8 : hangs &72a6 03 6c 06 06 ; &fc &d9 : cliff &72aa 13 b0 e9 07 ; &fc &da : spring &72ae a3 05 76 43 ; &fc &db : crevice &72b2 c1 0f 6d 03 ; &fc &dc : atomic &72b6 a6 49 0e 04 ; &fc &dd : friend &72ba d3 0f 10 13 ; &fc &de : stops &72be 06 15 0c 0c ; &fc &df : full &72c2 b0 c5 14 19 ; &fc &e0 : pretty &72c6 d3 05 10 13 ; &fc &e1 : steps &72ca 53 c3 89 0e ; &fc &e2 : section &72ce 14 68 d2 19 ; &fc &e3 : thirty &72d2 0c 79 0e 07 ; &fc &e4 : lying &72d6 8c 23 0c 13 ; &fc &e5 : locals &72da 12 15 d3 19 ; &fc &e6 : rusty &72de 82 d4 0f 0d ; &fc &e7 : bottom &72e2 05 0d d0 19 ; &fc &e8 : empty &72e6 a2 0f 4b 0e ; &fc &e9 : broken &72ea e7 01 17 13 ; &fc &ea : gnaws &72ee 06 6c 07 c8 ; &fc &eb : flight &72f2 d3 61 12 13 ; &fc &ec : stairs &72f6 e5 b4 e1 43 ; &fc &ed : entrance &72fa 57 09 07 c8 ; &fc &ee : weight &72fe 07 55 d3 13 ; &fc &ef : guests &7302 42 a4 8f 0d ; &fc &f0 : bedroom &7306 42 04 73 44 ; &fc &f1 : bedside &730a a2 09 07 c8 ; &fc &f2 : bright &730e 23 12 56 04 ; &fc &f3 : carved &7312 2d 6b 0e 07 ; &fc &f4 : making &7316 83 ce e9 55 ; &fc &f5 : continue &731a 43 0c 2c 12 ; &fc &f6 : cellar &731e a1 03 48 13 ; &fc &f7 : arches &7322 14 f5 4e 0c ; &fc &f8 : tunnel &7326 70 14 03 08 ; &fc &f9 : pitch &732a 13 70 32 0c ; &fc &fa : spiral &732e 13 2c 14 13 ; &fc &fb : slats &7332 66 cc a5 13 ; &fc &fc : filters &7336 05 6d 14 13 ; &fc &fd : emits &733a 73 0e 07 4c ; &fc &fe : single ; primary_dictionary &733e 6e 73 00 ; 15 words of length 1, starting at &736e &7341 7d 73 0f ; 37 words of length 2, starting at &737d &7344 c7 73 34 ; 67 words of length 3, starting at &73c7 &7347 90 74 77 ; 31 words of length 4, starting at &7490 &734a 0c 75 96 ; 31 words of length 5, starting at &750c &734d a7 75 b5 ; 11 words of length 6, starting at &75a7 &7350 e9 75 c0 ; 4 words of length 7, starting at &75e9 &7353 05 76 c4 ; 0 words of length 8 &7356 05 76 c4 ; 0 words of length 9 &7359 05 76 c4 ; 0 words of length 10 &735c 05 76 c4 ; 0 words of length 11 &735f 05 76 c4 ; 0 words of length 12 &7362 05 76 c4 ; 0 words of length 13 &7365 05 76 c4 ; 0 words of length 14 &7368 05 76 c4 &736b 00 00 00 &736e 94 ; &32 : to &736f e9 ; &33 : in &7370 01 ; &34 : a &7371 8e ; &35 : no &7372 42 ; &36 : be &7373 c9 ; &37 : it &7374 ef ; &38 : on &7375 c1 ; &39 : at &7376 af ; &3a : or &7377 e1 ; &3b : an &7378 84 ; &3c : do &7379 93 ; &3d : so &737a 48 ; &3e : he &737b 57 ; &3f : we &737c 87 ; &40 : go &737d 99 15 ; &41 : you &737f a1 05 ; &42 : are &7381 ef 05 ; &43 : one &7383 09 13 ; &44 : is &7385 14 48 ; &45 : the &7387 e1 04 ; &46 : and &7389 57 d3 ; &47 : west &738b 0f 06 ; &48 : of &738d 02 d5 ; &49 : but &738f 25 d3 ; &4a : east &7391 99 b5 ; &4b : your &7393 37 19 ; &4c : way &7395 23 0e ; &4d : can &7397 53 05 ; &4e : see &7399 48 52 ; &4f : here &739b 02 19 ; &50 : by &739d 84 af ; &51 : door &739f 84 f7 ; &52 : down &73a1 86 12 ; &53 : for &73a3 28 56 ; &54 : have &73a5 e9 94 ; &55 : into &73a7 46 c5 ; &56 : feet &73a9 28 13 ; &57 : has &73ab 01 13 ; &58 : as &73ad 93 4d ; &59 : some &73af 68 13 ; &5a : his &73b1 0f d5 ; &5b : out &73b3 74 4d ; &5c : time &73b5 73 44 ; &5d : side &73b7 15 10 ; &5e : up &73b9 8e 14 ; &5f : not &73bb 09 06 ; &60 : if &73bd 17 88 ; &61 : who &73bf 4c c6 ; &62 : left &73c1 8d c1 ; &63 : moat &73c3 84 07 ; &64 : dog &73c5 0d 19 ; &65 : my &73c7 66 0e 04 ; &66 : find &73ca 8e d2 08 ; &67 : north &73cd 56 12 19 ; &68 : very &73d0 93 d5 08 ; &69 : south &73d3 14 48 52 ; &6a : there &73d6 84 c3 af ; &6b : doctor &73d9 22 03 0b ; &6c : back &73dc 17 48 52 ; &6d : where &73df a6 0f 0d ; &6e : from &73e2 4d 34 0c ; &6f : metal &73e5 92 01 04 ; &70 : road &73e8 22 d4 4c ; &71 : battle &73eb 77 14 08 ; &72 : with &73ee 68 07 08 ; &73 : high &73f1 17 68 4c ; &74 : while &73f4 44 05 10 ; &75 : deep &73f7 92 f5 04 ; &76 : round &73fa 28 0e 04 ; &77 : hand &73fd 0f 56 12 ; &78 : over &7400 13 30 43 ; &79 : space &7403 6b 0e 07 ; &7a : king &7406 14 48 19 ; &7b : they &7409 01 37 19 ; &7c : away &740c 01 0c 0c ; &7d : all &740f 05 04 47 ; &7e : edge &7412 87 0c 04 ; &7f : gold &7415 44 53 d2 ; &80 : desert &7418 93 6e 03 ; &81 : sonic &741b 44 c1 08 ; &82 : death &741e 32 0d 10 ; &83 : ramp &7421 14 a8 45 ; &84 : three &7424 42 8c 17 ; &85 : below &7427 12 f5 13 ; &86 : runs &742a 37 0c 0c ; &87 : wall &742d 26 0c 0c ; &88 : fall &7430 17 28 14 ; &89 : what &7433 0a 15 d3 ; &8a : just &7436 72 56 12 ; &8b : river &7439 86 52 d3 ; &8c : forest &743c a7 25 14 ; &8d : great &743f 42 86 52 ; &8e : before &7442 23 d3 4c ; &8f : castle &7445 24 12 0b ; &90 : dark &7448 63 14 19 ; &91 : city &744b 14 28 14 ; &92 : that &744e ef 0c 19 ; &93 : only &7451 8e 74 43 ; &94 : notice &7454 83 f2 a5 ; &95 : corner &7457 0f 06 06 ; &96 : off &745a 0f 50 0e ; &97 : open &745d 54 c5 08 ; &98 : teeth &7460 28 0c 0c ; &99 : hall &7463 92 0f 0d ; &9a : room &7466 01 82 d5 ; &9b : about &7469 28 0c 06 ; &9c : half &746c 23 ee cf ; &9d : cannot &746f a7 45 0e ; &9e : green &7472 17 68 54 ; &9f : white &7475 06 8c af ; &a0 : floor &7478 c9 1f 13 ; &a1 : it's &747b e9 44 18 ; &a2 : index &747e 4e 56 12 ; &a3 : never &7481 23 0e df ; &a4 : can't &7484 93 b2 19 ; &a5 : sorry &7487 77 0c 0c ; &a6 : will &748a 0f 2b 19 ; &a7 : okay &748d 87 05 13 ; &a8 : goes &7490 42 99 0e 04 ; &a9 : beyond &7494 32 14 48 12 ; &aa : rather &7498 4e a1 02 19 ; &ab : nearby &749c 07 35 12 04 ; &ac : guard &74a0 77 14 88 d5 ; &ad : without &74a4 17 68 03 08 ; &ae : which &74a8 53 05 0d 13 ; &af : seems &74ac a1 0f f5 04 ; &b0 : around &74b0 26 0c 0c 13 ; &b1 : falls &74b4 4c 01 04 13 ; &b2 : leads &74b8 05 56 12 19 ; &b3 : every &74bc 01 8c 0e 07 ; &b4 : along &74c0 a2 09 04 47 ; &b5 : bridge &74c4 26 6d 6c a1 ; &b6 : familiar &74c8 2e b2 0f 17 ; &b7 : narrow &74cc 43 ce 32 0c ; &b8 : central &74d0 2d 12 4b 14 ; &b9 : market &74d4 13 11 35 52 ; &ba : square &74d8 d3 32 0e 47 ; &bb : strange &74dc 13 2d 0c 0c ; &bc : small &74e0 8c 03 4b 04 ; &bd : locked &74e4 e5 54 52 04 ; &be : entered &74e8 52 01 03 08 ; &bf : reach &74ec 53 56 32 0c ; &c0 : several &74f0 34 12 64 13 ; &c1 : tardis &74f4 83 ce 92 0c ; &c2 : control &74f8 2d 03 68 4e ; &c3 : machine &74fc 99 15 bf 05 ; &c4 : you're &7500 b7 c9 54 0e ; &c5 : written &7504 c1 54 0d d0 ; &c6 : attempt &7508 52 06 4c c3 ; &c7 : reflect &750c 8d f5 34 e9 13 ; &c8 : mountains &7511 93 4d 17 48 52 ; &c9 : somewhere &7516 36 32 0e 27 12 ; &ca : varangar &751b 8e 14 68 0e 07 ; &cb : nothing &7520 57 01 90 0e 13 ; &cc : weapons &7525 08 f5 a4 05 04 ; &cd : hundred &752a d3 e1 64 0e 07 ; &ce : standing &752f 01 10 50 a1 13 ; &cf : appears &7534 99 b5 53 0c 06 ; &d0 : yourself &7539 01 a3 0f 13 13 ; &d1 : across &753e 4c 01 64 0e 07 ; &d2 : leading &7543 37 0c 6b 0e 07 ; &d3 : walking &7548 94 37 12 04 13 ; &d4 : towards &754d 93 0c 64 a5 13 ; &d5 : soldiers &7552 03 48 77 0e 07 ; &d6 : chewing &7557 07 35 12 04 13 ; &d7 : guards &755c 83 b2 09 84 12 ; &d8 : corridor &7561 84 c3 af 1f 13 ; &d9 : doctor's &7566 d3 61 12 23 53 ; &da : staircase &756b 43 0c 2c 12 13 ; &db : cellars &7570 d3 52 14 03 08 ; &dc : stretch &7575 24 15 07 c8 a5 ; &dd : daughter &757a 64 13 83 56 12 ; &de : discover &757f 37 12 8c 12 04 ; &df : warlord &7584 53 03 b5 c9 19 ; &e0 : security &7589 48 38 87 2e 0c ; &e1 : hexagonal &758e 14 48 52 1f 13 ; &e2 : there's &7593 01 ac 25 04 19 ; &e3 : already &7598 e1 d9 68 0e 07 ; &e4 : anything &759d 28 10 50 0e 13 ; &e5 : happens &75a2 06 b5 14 48 12 ; &e6 : further &75a7 13 b5 92 f5 44 04 ; &e7 : surrounded &75ad d3 52 14 03 48 13 ; &e8 : stretches &75b3 32 64 2f c3 09 56 ; &e9 : radioactive &75b9 14 a8 0f 15 07 08 ; &ea : through &75bf 24 0e 47 92 15 13 ; &eb : dangerous &75c5 07 4c 01 6d 0e 07 ; &ec : gleaming &75cb 22 0e 64 14 13 1f ; &ed : bandits' &75d1 e9 d3 e1 14 0c 19 ; &ee : instantly &75d7 13 15 13 70 63 ef ; &ef : suspicion &75dd 64 33 10 50 a1 13 ; &f0 : disappears &75e3 11 75 03 0b 0c 19 ; &f1 : quickly &75e9 22 d4 4c 66 05 0c 04 ; &f2 : battlefield &75f0 36 32 0e 27 12 1f 13 ; &f3 : varangar's &75f7 05 56 12 19 17 48 52 ; &f4 : everywhere &75fe 86 d2 f5 c1 05 0c 19 ; &f5 : fortunately ; verb_dictionary &7605 35 76 00 ; 11 words of length 1, starting at &7635 &7608 40 76 0b ; 7 words of length 2, starting at &7640 &760b 4e 76 12 ; 12 words of length 3, starting at &764e &760e 72 76 1e ; 35 words of length 4, starting at &7672 &7611 fe 76 41 ; 24 words of length 5, starting at &76fe &7614 76 77 59 ; 7 words of length 6, starting at &7776 &7617 a0 77 60 ; 10 words of length 7, starting at &77a0 &761a e6 77 6a ; 2 words of length 8, starting at &77e6 &761d f6 77 6c ; 5 words of length 9, starting at &77f6 &7620 23 78 71 ; 0 words of length 10 &7623 23 78 71 ; 0 words of length 11 &7626 23 78 71 ; 0 words of length 12 &7629 23 78 71 ; 0 words of length 13 &762c 23 78 71 ; 0 words of length 14 &762f 23 78 71 &7632 00 00 00 &7635 6e ; &fe &05: "n" verb &01, type 3 &7636 65 ; &fe &06: "e" verb &02, type 3 &7637 73 ; &fe &07: "s" verb &03, type 3 &7638 77 ; &fe &08: "w" verb &04, type 3 &7639 6c ; &fe &09: "l" verb &09, type 3 &763a 72 ; &fe &0a: "r" verb &0a, type 3 &763b 24 ; &fe &0b: "d" verb &0b, type 1 &763c 35 ; &fe &0c: "u" verb &0c, type 1 &763d 78 ; &fe &0d: "x" verb &0d, type 3 &763e 62 ; &fe &0e: "b" verb &0f, type 3 &763f 66 ; &fe &0f: "f" verb &10, type 3 &7640 6e 45 ; &fe &10: "ne" verb &05, type 3 &7642 6e 57 ; &fe &11: "nw" verb &06, type 3 &7644 73 45 ; &fe &12: "se" verb &07, type 3 &7646 73 57 ; &fe &13: "sw" verb &08, type 3 &7648 25 4e ; &fe &14: "en" verb &0e, type 1 &764a e4 43 ; &fe &15: "dc" verb &11, type 7 (system verb) &764c 35 50 ; &fe &16: "up" verb &0c, type 1 &764e 25 41 54 ; &fe &17: "eat" verb &12, type 1 &7651 42 4f 57 ; &fe &18: "bow" verb &13, type 2 &7654 02 55 59 ; &fe &19: "buy" verb &14, type 0 &7657 44 49 47 ; &fe &1a: "dig" verb &15, type 2 &765a 07 45 54 ; &fe &1b: "get" verb &16, type 0 &765d 28 49 54 ; &fe &1c: "hit" verb &19, type 1 &7660 14 49 45 ; &fe &1d: "tie" verb &1a, type 0 &7663 33 41 59 ; &fe &1e: "say" verb &1b, type 1 &7666 21 53 4b ; &fe &1f: "ask" verb &1b, type 1 &7669 15 53 45 ; &fe &20: "use" verb &1d, type 0 &766c 10 55 54 ; &fe &21: "put" verb &1f, type 0 &766f e9 4e 56 ; &fe &22: "inv" verb &43, type 7 (system verb) &7672 65 41 53 54 ; &fe &23: "east" verb &02, type 3 &7676 77 45 53 54 ; &fe &24: "west" verb &04, type 3 &767a 6c 45 46 54 ; &fe &25: "left" verb &09, type 3 &767e 24 4f 57 4e ; &fe &26: "down" verb &0b, type 1 &7682 65 58 49 54 ; &fe &27: "exit" verb &0d, type 3 &7686 62 41 43 4b ; &fe &28: "back" verb &0f, type 3 &768a 14 41 4b 45 ; &fe &29: "take" verb &16, type 0 &768e 2b 49 4c 4c ; &fe &2a: "kill" verb &17, type 1 &7692 26 49 52 45 ; &fe &2b: "fire" verb &18, type 1 &7696 2b 49 43 4b ; &fe &2c: "kick" verb &19, type 1 &769a 34 41 4c 4b ; &fe &2d: "talk" verb &1c, type 1 &769e 23 41 4c 4c ; &fe &2e: "call" verb &1c, type 1 &76a2 04 4f 46 46 ; &fe &2f: "doff" verb &1e, type 0 &76a6 04 52 4f 50 ; &fe &30: "drop" verb &21, type 0 &76aa 07 49 56 45 ; &fe &31: "give" verb &22, type 0 &76ae 0d 41 4b 45 ; &fe &32: "make" verb &23, type 0 &76b2 13 48 4f 57 ; &fe &33: "show" verb &24, type 0 &76b6 4a 55 4d 50 ; &fe &34: "jump" verb &26, type 2 &76ba 06 49 4c 4c ; &fe &35: "fill" verb &27, type 0 &76be 10 4f 55 52 ; &fe &36: "pour" verb &28, type 0 &76c2 10 55 4c 4c ; &fe &37: "pull" verb &29, type 0 &76c6 0c 49 46 54 ; &fe &38: "lift" verb &29, type 0 &76ca 10 55 53 48 ; &fe &39: "push" verb &2a, type 0 &76ce 12 49 4e 47 ; &fe &3a: "ring" verb &2b, type 0 &76d2 12 45 41 44 ; &fe &3b: "read" verb &2c, type 0 &76d6 57 41 49 54 ; &fe &3c: "wait" verb &2d, type 2 &76da 17 45 41 52 ; &fe &3d: "wear" verb &2e, type 0 &76de 2f 50 45 4e ; &fe &3e: "open" verb &3f, type 1 &76e2 e8 45 4c 50 ; &fe &3f: "help" verb &46, type 7 (system verb) &76e6 ec 4f 41 44 ; &fe &40: "load" verb &47, type 7 (system verb) &76ea ec 4f 4f 4b ; &fe &41: "look" verb &48, type 7 (system verb) &76ee e8 45 52 45 ; &fe &42: "here" verb &4a, type 7 (system verb) &76f2 f3 41 56 45 ; &fe &43: "save" verb &4b, type 7 (system verb) &76f6 f3 54 4f 50 ; &fe &44: "stop" verb &4c, type 7 (system verb) &76fa f1 55 49 54 ; &fe &45: "quit" verb &4c, type 7 (system verb) &76fe 6e 4f 52 54 48 ; &fe &46: "north" verb &01, type 3 &7703 73 4f 55 54 48 ; &fe &47: "south" verb &03, type 3 &7708 72 49 47 48 54 ; &fe &48: "right" verb &0a, type 3 &770d 25 4e 54 45 52 ; &fe &49: "enter" verb &0e, type 1 &7712 24 52 49 4e 4b ; &fe &4a: "drink" verb &12, type 1 &7717 33 48 4f 4f 54 ; &fe &4b: "shoot" verb &18, type 1 &771c 33 50 45 41 4b ; &fe &4c: "speak" verb &1c, type 1 &7721 10 4c 41 43 45 ; &fe &4d: "place" verb &1f, type 0 &7726 14 48 52 4f 57 ; &fe &4e: "throw" verb &25, type 0 &772b 13 48 49 46 54 ; &fe &4f: "shift" verb &2a, type 0 &7730 10 52 45 53 53 ; &fe &50: "press" verb &2a, type 0 &7735 02 52 45 41 4b ; &fe &51: "break" verb &2f, type 0 &773a 02 52 49 42 45 ; &fe &52: "bribe" verb &30, type 0 &773f 2c 49 47 48 54 ; &fe &53: "light" verb &31, type 1 &7744 0d 4f 55 4e 54 ; &fe &54: "mount" verb &32, type 0 &7749 13 43 52 45 57 ; &fe &55: "screw" verb &33, type 0 &774e 33 54 41 4e 44 ; &fe &56: "stand" verb &34, type 1 &7753 13 57 49 4e 47 ; &fe &57: "swing" verb &35, type 0 &7758 34 48 49 4e 4b ; &fe &58: "think" verb &36, type 1 &775d 15 4e 54 49 45 ; &fe &59: "untie" verb &37, type 0 &7762 f7 48 45 52 45 ; &fe &5a: "where" verb &41, type 7 (system verb) &7767 f3 43 4f 52 45 ; &fe &5b: "score" verb &42, type 7 (system verb) &776c f3 54 4f 52 45 ; &fe &5c: "store" verb &4e, type 7 (system verb) &7771 23 4c 49 4d 42 ; &fe &5d: "climb" verb &50, type 1 &7776 21 54 54 41 43 4b ; &fe &5e: "attack" verb &17, type 1 &777c 09 4e 53 45 52 54 ; &fe &5f: "insert" verb &33, type 0 &7782 26 4f 4c 4c 4f 57 ; &fe &60: "follow" verb &38, type 1 &7788 15 4e 4c 4f 43 4b ; &fe &61: "unlock" verb &3a, type 0 &778e 13 57 49 54 43 48 ; &fe &62: "switch" verb &3b, type 0 &7794 12 45 4d 4f 56 45 ; &fe &63: "remove" verb &3d, type 0 &779a 33 45 41 52 43 48 ; &fe &64: "search" verb &49, type 1 &77a0 66 4f 52 57 41 52 44 ; &fe &65: "forward" verb &10, type 3 &77a7 12 45 50 4c 41 43 45 ; &fe &66: "replace" verb &20, type 0 &77ae 30 52 45 54 45 4e 44 ; &fe &67: "pretend" verb &39, type 1 &77b5 15 4e 53 43 52 45 57 ; &fe &68: "unscrew" verb &3d, type 0 &77bc 05 58 54 52 41 43 54 ; &fe &69: "extract" verb &3d, type 0 &77c3 09 4e 53 50 45 43 54 ; &fe &6a: "inspect" verb &40, type 0 &77ca 05 58 41 4d 49 4e 45 ; &fe &6b: "examine" verb &40, type 0 &77d1 f7 45 41 52 49 4e 47 ; &fe &6c: "wearing" verb &45, type 7 (system verb) &77d8 f2 45 53 54 41 52 54 ; &fe &6d: "restart" verb &4d, type 7 (system verb) &77df f2 45 53 54 4f 52 45 ; &fe &6e: "restore" verb &4f, type 7 (system verb) &77e6 24 49 53 4d 4f 55 4e 54 ; &fe &6f: "dismount" verb &3c, type 1 &77ee e3 41 52 52 59 49 4e 47 ; &fe &70: "carrying" verb &44, type 7 (system verb) &77f6 6e 4f 52 54 48 45 41 53 54 ; &fe &71: "northeast" verb &05, type 3 &77ff 6e 4f 52 54 48 57 45 53 54 ; &fe &72: "northwest" verb &06, type 3 &7808 73 4f 55 54 48 45 41 53 54 ; &fe &73: "southeast" verb &07, type 3 &7811 73 4f 55 54 48 57 45 53 54 ; &fe &74: "southwest" verb &08, type 3 &781a 08 59 50 4e 4f 54 49 53 45 ; &fe &75: "hypnotise" verb &3e, type 0 ; noun_dictionary &7823 53 78 00 ; 0 words of length 1 &7826 53 78 00 ; 6 words of length 2, starting at &7853 &7829 5f 78 06 ; 13 words of length 3, starting at &785f &782c 86 78 13 ; 35 words of length 4, starting at &7886 &782f 12 79 36 ; 27 words of length 5, starting at &7912 &7832 99 79 51 ; 16 words of length 6, starting at &7999 &7835 f9 79 61 ; 16 words of length 7, starting at &79f9 &7838 69 7a 71 ; 8 words of length 8, starting at &7a69 &783b a9 7a 79 ; 5 words of length 9, starting at &7aa9 &783e d6 7a 7e ; 4 words of length 10, starting at &7ad6 &7841 fe 7a 82 ; 1 words of length 11, starting at &7afe &7844 09 7b 83 ; 0 words of length 12 &7847 09 7b 83 ; 0 words of length 13 &784a 09 7b 83 ; 0 words of length 14 &784d 09 7b 83 &7850 00 00 00 &7853 e1 54 ; &ff &05: "at" noun &3f, type 7 (preposition) &7855 e9 4e ; &ff &06: "in" noun &40, type 7 (preposition) &7857 c9 54 ; &ff &07: "it" noun &41, type 6 (pronoun) &7859 ef 4e ; &ff &08: "on" noun &42, type 7 (preposition) &785b f4 4f ; &ff &09: "to" noun &43, type 7 (preposition) &785d f5 50 ; &ff &0a: "up" noun &44, type 7 (preposition) &785f 42 41 47 ; &ff &0b: "bag" noun &01, type 2 &7862 43 41 4e ; &ff &0c: "can" noun &02, type 2 &7865 27 55 4d ; &ff &0d: "gum" noun &03, type 1 &7868 30 45 41 ; &ff &0e: "pea" noun &04, type 1 &786b 32 41 54 ; &ff &0f: "rat" noun &05, type 1 &786e 34 41 47 ; &ff &10: "tag" noun &06, type 1 &7871 21 4c 45 ; &ff &11: "ale" noun &1c, type 1 &7874 17 49 47 ; &ff &12: "wig" noun &1d, type 0 &7877 82 45 44 ; &ff &13: "bed" noun &2d, type 4 &787a a1 4c 4c ; &ff &14: "all" noun &3e, type 5 &787d c8 49 4d ; &ff &15: "him" noun &41, type 6 (pronoun) &7880 ef 46 46 ; &ff &16: "off" noun &45, type 7 (preposition) &7883 e6 4f 42 ; &ff &17: "fob" noun &46, type 7 (preposition) &7886 2d 45 41 54 ; &ff &18: "meat" noun &05, type 1 &788a 42 45 4c 4c ; &ff &19: "bell" noun &07, type 2 &788e 24 49 53 43 ; &ff &1a: "disc" noun &08, type 1 &7892 24 49 53 4b ; &ff &1b: "disk" noun &08, type 1 &7896 4b 45 59 53 ; &ff &1c: "keys" noun &09, type 2 &789a 4c 41 4d 50 ; &ff &1d: "lamp" noun &0a, type 2 &789e 52 4f 50 45 ; &ff &1e: "rope" noun &0b, type 2 &78a2 33 4f 41 50 ; &ff &1f: "soap" noun &0c, type 1 &78a6 02 4f 4f 54 ; &ff &20: "boot" noun &15, type 0 &78aa 42 55 4c 42 ; &ff &21: "bulb" noun &16, type 2 &78ae 2e 4f 54 45 ; &ff &22: "note" noun &17, type 1 &78b2 43 41 53 45 ; &ff &23: "case" noun &18, type 2 &78b6 27 4f 4c 44 ; &ff &24: "gold" noun &1b, type 1 &78ba 22 4f 4e 45 ; &ff &25: "bone" noun &1e, type 1 &78be 42 4f 4f 4b ; &ff &26: "book" noun &1f, type 2 &78c2 23 41 52 44 ; &ff &27: "card" noun &20, type 1 &78c6 12 4f 42 45 ; &ff &28: "robe" noun &21, type 0 &78ca 33 4e 4f 57 ; &ff &29: "snow" noun &22, type 1 &78ce 37 49 4e 45 ; &ff &2a: "wine" noun &23, type 1 &78d2 b4 52 45 45 ; &ff &2b: "tree" noun &2c, type 5 &78d6 92 4f 43 4b ; &ff &2c: "rock" noun &2d, type 4 &78da 6b 49 4e 47 ; &ff &2d: "king" noun &2e, type 3 &78de b4 52 41 50 ; &ff &2e: "trap" noun &2f, type 5 &78e2 a4 4f 4f 52 ; &ff &2f: "door" noun &2f, type 5 &78e6 83 41 53 4b ; &ff &30: "cask" noun &30, type 4 &78ea 84 45 53 4b ; &ff &31: "desk" noun &34, type 4 &78ee b7 49 52 45 ; &ff &32: "wire" noun &35, type 5 &78f2 b7 45 4c 4c ; &ff &33: "well" noun &37, type 5 &78f6 a2 41 52 53 ; &ff &34: "bars" noun &38, type 5 &78fa 96 49 53 45 ; &ff &35: "vise" noun &3a, type 4 &78fe e9 4e 54 4f ; &ff &36: "into" noun &40, type 7 (preposition) &7902 d4 48 45 4d ; &ff &37: "them" noun &41, type 6 (pronoun) &7906 ef 4e 54 4f ; &ff &38: "onto" noun &42, type 7 (preposition) &790a e4 4f 57 4e ; &ff &39: "down" noun &47, type 7 (preposition) &790e f7 49 54 48 ; &ff &3a: "with" noun &48, type 7 (preposition) &7912 4c 41 4e 43 45 ; &ff &3b: "lance" noun &0d, type 2 &7917 2d 41 54 43 48 ; &ff &3c: "match" noun &11, type 1 &791c 02 4f 4f 54 53 ; &ff &3d: "boots" noun &15, type 0 &7921 53 43 52 41 50 ; &ff &3e: "scrap" noun &17, type 2 &7926 50 41 50 45 52 ; &ff &3f: "paper" noun &17, type 2 &792b 47 4c 41 53 53 ; &ff &40: "glass" noun &18, type 2 &7930 52 41 44 49 4f ; &ff &41: "radio" noun &19, type 2 &7935 43 4f 49 4e 53 ; &ff &42: "coins" noun &1b, type 2 &793a 24 52 49 4e 4b ; &ff &43: "drink" noun &1c, type 1 &793f 83 59 43 4c 45 ; &ff &44: "cycle" noun &24, type 4 &7944 57 41 54 43 48 ; &ff &45: "watch" noun &26, type 2 &7949 67 55 41 52 44 ; &ff &46: "guard" noun &2e, type 3 &794e 83 41 53 4b 53 ; &ff &47: "casks" noun &30, type 4 &7953 ac 45 56 45 52 ; &ff &48: "lever" noun &30, type 5 &7958 a3 48 41 49 4e ; &ff &49: "chain" noun &30, type 5 &795d 63 4f 4f 4b 53 ; &ff &4a: "cooks" noun &32, type 3 &7962 67 59 50 53 59 ; &ff &4b: "gypsy" noun &32, type 3 &7967 8c 49 47 48 54 ; &ff &4c: "light" noun &33, type 4 &796c 83 48 41 49 52 ; &ff &4d: "chair" noun &33, type 4 &7971 94 41 42 4c 45 ; &ff &4e: "table" noun &34, type 4 &7976 90 49 41 4e 4f ; &ff &4f: "piano" noun &34, type 4 &797b b7 49 52 45 53 ; &ff &50: "wires" noun &38, type 5 &7980 8c 41 54 48 45 ; &ff &51: "lathe" noun &3a, type 4 &7985 82 45 4e 43 48 ; &ff &52: "bench" noun &3a, type 4 &798a ad 4f 55 4c 44 ; &ff &53: "mould" noun &3b, type 5 &798f 72 4f 42 4f 54 ; &ff &54: "robot" noun &3c, type 3 &7994 76 41 4c 45 54 ; &ff &55: "valet" noun &3c, type 3 &7999 0c 4f 43 4b 45 54 ; &ff &56: "locket" noun &0e, type 0 &799f 2e 45 45 44 4c 45 ; &ff &57: "needle" noun &0f, type 1 &79a5 26 4f 4c 44 45 52 ; &ff &58: "folder" noun &11, type 1 &79ab 22 55 54 54 4f 4e ; &ff &59: "button" noun &1a, type 1 &79b1 53 49 4c 56 45 52 ; &ff &5a: "silver" noun &1a, type 2 &79b7 26 4c 41 47 4f 4e ; &ff &5b: "flagon" noun &23, type 1 &79bd 53 43 52 4f 4c 4c ; &ff &5c: "scroll" noun &25, type 2 &79c3 2c 45 54 54 45 52 ; &ff &5d: "letter" noun &27, type 1 &79c9 22 4f 54 54 4c 45 ; &ff &5e: "bottle" noun &28, type 1 &79cf 67 55 41 52 44 53 ; &ff &5f: "guards" noun &2e, type 3 &79d5 81 52 4d 4f 55 52 ; &ff &60: "armour" noun &34, type 4 &79db b0 4f 57 44 45 52 ; &ff &61: "powder" noun &35, type 5 &79e1 ad 49 52 52 4f 52 ; &ff &62: "mirror" noun &35, type 5 &79e7 64 4f 43 54 4f 52 ; &ff &63: "doctor" noun &36, type 3 &79ed b3 43 52 45 45 4e ; &ff &64: "screen" noun &37, type 5 &79f3 a4 52 41 57 45 52 ; &ff &65: "drawer" noun &3b, type 5 &79f9 46 4c 4f 52 49 4e 53 ; &ff &66: "florins" noun &01, type 2 &7a00 4c 41 4e 54 45 52 4e ; &ff &67: "lantern" noun &0a, type 2 &7a07 26 45 41 54 48 45 52 ; &ff &68: "feather" noun &10, type 1 &7a0e 2d 41 54 43 48 45 53 ; &ff &69: "matches" noun &11, type 1 &7a15 52 4f 55 42 4c 45 53 ; &ff &6a: "roubles" noun &1b, type 2 &7a1c 57 41 54 43 48 45 53 ; &ff &6b: "watches" noun &26, type 2 &7a23 82 4f 55 4c 44 45 52 ; &ff &6c: "boulder" noun &2d, type 4 &7a2a 73 4f 4c 44 49 45 52 ; &ff &6d: "soldier" noun &2e, type 3 &7a31 74 52 4f 4f 50 45 52 ; &ff &6e: "trooper" noun &2e, type 3 &7a38 72 55 46 46 49 41 4e ; &ff &6f: "ruffian" noun &31, type 3 &7a3f 63 45 4e 54 41 55 52 ; &ff &70: "centaur" noun &32, type 3 &7a46 62 41 4e 44 49 54 53 ; &ff &71: "bandits" noun &32, type 3 &7a4d b4 52 41 50 45 5a 45 ; &ff &72: "trapeze" noun &38, type 5 &7a54 61 4e 44 52 4f 49 44 ; &ff &73: "android" noun &3c, type 3 &7a5b 83 4f 4e 53 4f 4c 45 ; &ff &74: "console" noun &3d, type 4 &7a62 e4 4f 43 54 4f 52 53 ; &ff &75: "doctors" noun &49, type 7 (preposition) &7a69 03 4f 4d 50 55 54 45 52 ; &ff &76: "computer" noun &29, type 0 &7a71 23 59 4c 49 4e 44 45 52 ; &ff &77: "cylinder" noun &2a, type 1 &7a79 88 41 59 53 54 41 43 4b ; &ff &78: "haystack" noun &2c, type 4 &7a81 82 4f 55 4c 44 45 52 53 ; &ff &79: "boulders" noun &2d, type 4 &7a89 74 52 4f 4f 50 45 52 53 ; &ff &7a: "troopers" noun &2e, type 3 &7a91 b4 52 41 50 44 4f 4f 52 ; &ff &7b: "trapdoor" noun &2f, type 5 &7a99 a3 52 55 43 49 42 4c 45 ; &ff &7c: "crucible" noun &39, type 5 &7aa1 88 41 54 53 54 41 4e 44 ; &ff &7d: "hatstand" noun &3d, type 4 &7aa9 04 55 4e 47 41 52 45 45 53 ; &ff &7e: "dungarees" noun &12, type 0 &7ab2 34 4f 4f 54 48 50 49 43 4b ; &ff &7f: "toothpick" noun &13, type 1 &7abb 03 4f 4d 50 55 54 45 52 53 ; &ff &80: "computers" noun &29, type 0 &7ac4 63 48 49 45 46 54 41 49 4e ; &ff &81: "chieftain" noun &32, type 3 &7acd 6c 49 42 52 41 52 49 41 4e ; &ff &82: "librarian" noun &3c, type 3 &7ad6 22 45 41 55 4a 4f 4c 41 49 53 ; &ff &83: "beaujolais" noun &23, type 1 &7ae0 88 4f 56 45 52 43 59 43 4c 45 ; &ff &84: "hovercycle" noun &24, type 4 &7aea 49 4e 56 49 54 41 54 49 4f 4e ; &ff &85: "invitation" noun &2b, type 2 &7af4 b4 52 41 4d 50 4f 4c 49 4e 45 ; &ff &86: "trampoline" noun &38, type 5 &7afe 33 43 52 45 57 44 52 49 56 45 52 ; &ff &87: "screwdriver" noun &14, type 1 ; verb_translation_table ; 0 1 2 3 4 5 6 7 8 9 a b c d e f &7b09 00 01 02 03 04 09 0a 0b 0c 0d 0f 10 05 06 07 08 ; &00 &7b19 0e 11 0c 12 13 14 15 16 19 1a 1b 1b 1d 1f 43 02 ; &10 &7b29 04 09 0b 0d 0f 16 17 18 19 1c 1c 1e 21 22 23 24 ; &20 &7b39 26 27 28 29 29 2a 2b 2c 2d 2e 3f 46 47 48 4a 4b ; &30 &7b49 4c 4c 01 03 0a 0e 12 18 1c 1f 25 2a 2a 2f 30 31 ; &40 &7b59 32 33 34 35 36 37 41 42 4e 50 17 33 38 3a 3b 3d ; &50 &7b69 49 10 20 39 3d 3d 40 40 45 4d 4f 3c 44 05 06 07 ; &60 &7b79 08 3e ; &70 ; noun_translation_table ; 0 1 2 3 4 5 6 7 8 9 a b c d e f &7b7b 00 3f 40 41 42 43 44 01 02 03 04 05 06 1c 1d 2d ; &00 &7b8b 3e 41 45 46 05 07 08 08 09 0a 0b 0c 15 16 17 18 ; &10 &7b9b 1b 1e 1f 20 21 22 23 2c 2d 2e 2f 2f 30 34 35 37 ; &20 &7bab 38 3a 40 41 42 47 48 0d 11 15 17 17 18 19 1b 1c ; &30 &7bbb 24 26 2e 30 30 30 32 32 33 33 34 34 38 3a 3a 3b ; &40 &7bcb 3c 3c 0e 0f 11 1a 1a 23 25 27 28 2e 34 35 35 36 ; &50 &7bdb 37 3b 01 0a 10 11 1b 26 2d 2e 2e 31 32 32 38 3c ; &60 &7beb 3d 49 29 2a 2c 2d 2e 2f 39 3d 12 13 29 32 3c 23 ; &70 &7bfb 24 2b 38 14 ; &80 ; unused &7bff 92 ; SCRNB ; FFFF7C00 FFFF7C00 0400 &7c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; " " &7c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; " .DOCTOR WHO AND THE WARLORD " &7c20 20 20 20 20 20 20 20 20 20 20 20 20 83 44 4f 43 ; " " &7c30 54 4f 52 20 57 48 4f 20 41 4e 44 20 54 48 45 20 ; " The year is 2743. You arrive with " &7c40 57 41 52 4c 4f 52 44 20 20 20 20 20 20 20 20 20 ; "the Doctor on the planet Quantain, " &7c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "where a century-long war is just " &7c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "coming to a close. " &7c70 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 ; " " &7c80 79 65 61 72 20 69 73 20 32 37 34 33 2e 20 59 6f ; " You emerge from the Tardis to find " &7c90 75 20 61 72 72 69 76 65 20 77 69 74 68 20 20 20 ; "deep mist all around. Travelling north, " &7ca0 74 68 65 20 44 6f 63 74 6f 72 20 6f 6e 20 74 68 ; "you stumble into one of the last battles" &7cb0 65 20 70 6c 61 6e 65 74 20 51 75 61 6e 74 61 69 ; "of the long war. The Doctor, however, " &7cc0 6e 2c 20 20 20 20 20 20 77 68 65 72 65 20 61 20 ; "seems convinced that King Varangar, " &7cd0 63 65 6e 74 75 72 79 2d 6c 6f 6e 67 20 77 61 72 ; "(an old friend of his) is in some deadly" &7ce0 20 69 73 20 6a 75 73 74 20 20 20 20 20 20 20 20 ; "danger, and presses on. " &7cf0 63 6f 6d 69 6e 67 20 74 6f 20 61 20 63 6c 6f 73 ; " " &7d00 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; " In the confusion of the battle you " &7d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "are separated from the Doctor, and " &7d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "caught up in a skirmish. Something hits " &7d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "you on the back of the head. The last " &7d40 20 20 20 20 59 6f 75 20 65 6d 65 72 67 65 20 66 ; "thing you remember as you sink to the " &7d50 72 6f 6d 20 74 68 65 20 54 61 72 64 69 73 20 74 ; "ground is cries of "Varangar! Varangar!"" &7d60 6f 20 66 69 6e 64 20 20 64 65 65 70 20 6d 69 73 ; "answered by "The Warlord! The Warlord!" " &7d70 74 20 61 6c 6c 20 61 72 6f 75 6e 64 2e 20 54 72 ; " " &7d80 61 76 65 6c 6c 69 6e 67 20 6e 6f 72 74 68 2c 20 ; " ...PRESS RETURN " &7d90 79 6f 75 20 73 74 75 6d 62 6c 65 20 69 6e 74 6f ; " $" &7da0 20 6f 6e 65 20 6f 66 20 74 68 65 20 6c 61 73 74 &7db0 20 62 61 74 74 6c 65 73 6f 66 20 74 68 65 20 6c &7dc0 6f 6e 67 20 77 61 72 2e 20 54 68 65 20 44 6f 63 &7dd0 74 6f 72 2c 20 68 6f 77 65 76 65 72 2c 20 20 20 &7de0 73 65 65 6d 73 20 63 6f 6e 76 69 6e 63 65 64 20 &7df0 74 68 61 74 20 4b 69 6e 67 20 56 61 72 61 6e 67 &7e00 61 72 2c 20 20 20 20 20 28 61 6e 20 6f 6c 64 20 &7e10 66 72 69 65 6e 64 20 6f 66 20 68 69 73 29 20 69 &7e20 73 20 69 6e 20 73 6f 6d 65 20 64 65 61 64 6c 79 &7e30 64 61 6e 67 65 72 2c 20 61 6e 64 20 70 72 65 73 &7e40 73 65 73 20 6f 6e 2e 20 20 20 20 20 20 20 20 20 &7e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7e80 20 20 20 20 49 6e 20 74 68 65 20 63 6f 6e 66 75 &7e90 73 69 6f 6e 20 6f 66 20 74 68 65 20 62 61 74 74 &7ea0 6c 65 20 79 6f 75 20 20 61 72 65 20 73 65 70 61 &7eb0 72 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 44 &7ec0 6f 63 74 6f 72 2c 20 61 6e 64 20 20 20 20 20 20 &7ed0 63 61 75 67 68 74 20 75 70 20 69 6e 20 61 20 73 &7ee0 6b 69 72 6d 69 73 68 2e 20 53 6f 6d 65 74 68 69 &7ef0 6e 67 20 68 69 74 73 20 79 6f 75 20 6f 6e 20 74 &7f00 68 65 20 62 61 63 6b 20 6f 66 20 74 68 65 20 68 &7f10 65 61 64 2e 20 54 68 65 20 6c 61 73 74 20 20 20 &7f20 74 68 69 6e 67 20 79 6f 75 20 72 65 6d 65 6d 62 &7f30 65 72 20 61 73 20 79 6f 75 20 73 69 6e 6b 20 74 &7f40 6f 20 74 68 65 20 20 20 67 72 6f 75 6e 64 20 69 &7f50 73 20 63 72 69 65 73 20 6f 66 20 22 56 61 72 61 &7f60 6e 67 61 72 21 20 56 61 72 61 6e 67 61 72 21 22 &7f70 61 6e 73 77 65 72 65 64 20 62 79 20 22 54 68 65 &7f80 20 57 61 72 6c 6f 72 64 21 20 54 68 65 20 57 61 &7f90 72 6c 6f 72 64 21 22 20 20 20 20 20 20 20 20 20 &7fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7fc0 20 20 20 20 20 20 20 20 20 83 83 83 50 52 45 53 &7fd0 53 20 52 45 54 55 52 4e 20 20 20 20 20 20 20 20 &7fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24