Doctor Who and the Warlord (Part B) 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 second part of the game has 125 rooms, 43 objects and approximately 44k of compressed text. The parser understands 217 words, including 105 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 B ... .. " &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 42 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-b ; 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 74 ; "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 42 2e 20 28 43 29 20 43 68 65 73 73 66 69 65 ; " B. (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 &06c4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &06d4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &06e4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &06f4 00 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_z2_string &0840 4c 2e 5a 32 0d ; "L.Z2"; ; save_z2_string &0845 53 2e 5a 32 20 36 30 30 20 38 30 30 0d ; "S.Z2 600 800"; ; load_sp_string &0852 4c 2e 53 50 20 39 30 30 0d ; "L.SP 900"; ; unused &085b 00 00 00 00 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 62 30 ; &82 : &3062 = bytecode_for_object_descriptions - 1 &0884 03 32 ; &84 : &3203 = bytecode_for_verbs - 1 &0886 53 3b ; &86 : &3b53 = bytecode_for_room_actions - 1 &0888 80 60 ; &88 : &6080 = miscellaneous_bytecode - 1 &088a 81 60 ; (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 3d 64 ; &9e : &643d = secondary_dictionary_one # &f9 &08a0 da 66 ; &a0 : &66da = secondary_dictionary_two # &fa &08a2 73 6c ; &a2 : &6c73 = secondary_dictionary_three # &fb &08a4 e0 70 ; &a4 : &70e0 = secondary_dictionary_four # &fc &08a6 3d 74 ; &a6 : &743d = primary_dictionary # &fd &08a8 c9 76 ; &a8 : &76c9 = verb_dictionary # &fe &08aa af 78 ; &aa : &78af = noun_dictionary # &ff &08ac fe 62 ; &ac : &62fe = end_of_bytecode - 1 (unused) ; maximum_object_plus_one &08ae 3e ; maximum_verb &08af 6d ; &fe &6d = "southwest" ; 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 ; load_special_file &08f3 a2 52 LDX #&52 ; &0852 = load_sp_string &08f5 a0 08 LDY #&08 &08f7 20 f7 ff JSR &fff7 ; OSCLI &08fa 4c 00 63 JMP &6300 ; process_saved_objects ; unused &08fd 00 00 00 00 ; initial_game_state # &0900 - &09ff is copied to &0600 - &06ff at start of game &0900 00 ; &0600 : score_for_special_file &0901 06 ; &0601 : object_room[&01] "a bag of florins" needed from part A &0902 06 ; &0602 : object_room[&02] "a rusty can" &0903 06 ; &0603 : object_room[&03] "a stick of chewing gum" needed from part A &0904 06 ; &0604 : object_room[&04] "a pea" needed from part A &0905 06 ; &0605 : object_room[&05] "a half cooked rat" &0906 06 ; &0606 : object_room[&06] "a metal security tag" &0907 06 ; &0607 : object_room[&07] "a bell push" &0908 06 ; &0608 : object_room[&08] "a metal disc" needed from part A &0909 06 ; &0609 : object_room[&09] "a bunch of keys" &090a 06 ; &060a : object_room[&0a] "a lantern" needed from part A &090b 06 ; &060b : object_room[&0b] "a coil of rope" &090c 06 ; &060c : object_room[&0c] "a bar of soap" needed from part A &090d 06 ; &060d : object_room[&0d] "a sonic lance" needed from part A &090e 06 ; &060e : object_room[&0e] "a gold locket" &090f 06 ; &060f : object_room[&0f] "a needle" needed from part A &0910 06 ; &0610 : object_room[&10] "an eagle's feather" needed from part A &0911 01 ; &0611 : object_room[&11] "some matches" carrying &0912 00 ; &0612 : object_room[&12] "a pair of time travellers' dungarees" wearing &0913 06 ; &0613 : object_room[&13] "an ivory toothpick" &0914 06 ; &0614 : object_room[&14] "the Doctor's sonic screwdriver" &0915 25 ; &0615 : object_room[&15] "a box of snuff" a tent &0916 25 ; &0616 : object_room[&16] "a pen lying by some documents" a tent &0917 13 ; &0617 : object_room[&17] "a hat" a warm and rowdy roadside inn &0918 32 ; &0618 : object_room[&18] "a map of Belgium" Napoleon Bonaparte's temporary headquarters &0919 07 ; &0619 : object_room[&19] "the Duke of Wellington" &091a 06 ; &061a : object_room[&1a] "a nail file" &091b 24 ; &061b : object_room[&1b] "some bully beef" a store tent &091c 32 ; &061c : object_room[&1c] "a jug" Napoleon Bonaparte's temporary headquarters &091d 16 ; &061d : object_room[&1d] "a french loaf" the bakery &091e 06 ; &061e : object_room[&1e] "a cannon fuse" &091f 13 ; &061f : object_room[&1f] "a cloak" a warm and rowdy roadside inn &0920 26 ; &0620 : object_room[&20] "a plate" a low room with stone walls &0921 2a ; &0621 : object_room[&21] "a taper" the tent of a cuirassier &0922 23 ; &0622 : object_room[&22] "a pistol" a tent &0923 06 ; &0623 : object_room[&23] "a small device with two buttons on it" &0924 15 ; &0624 : object_room[&24] "a cleaver" a butcher's shop &0925 12 ; &0625 : object_room[&25] "a musket" the shack &0926 85 ; &0626 : object_room[&26] "a recharge module for a sonic lance" &0927 7d ; &0627 : object_room[&27] "a whistle" along the side of a cornfield &0928 06 ; &0628 : object_room[&28] "a pair of scissors" &0929 30 ; &0629 : object_room[&29] "some tweezers" an empty tent &092a 12 ; &062a : object_room[&2a] "a bayonet" the shack &092b 80 ; &062b : object_room[&2b] "some despatches" the stable yard next to the farm &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 00 ; &063e (unused) &093f 00 ; &063f (unused) &0940 08 ; &0640 : p[&00] player_room &0941 08 ; &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 (unused) &095e 00 ; &065e : p[&1e] (unused) &095f 00 ; &065f : p[&1f] (unused) &0960 00 ; &0660 : p[&20] character &0961 00 ; &0661 : p[&21] soldier_timer &0962 00 ; &0662 : p[&22] infantry_timer &0963 00 ; &0663 : p[&23] tent_guards_patience &0964 00 ; &0664 : p[&24] inn_timer &0965 01 ; &0665 : p[&25] doctor_state &0966 00 ; &0666 : p[&26] baker_state &0967 00 ; &0667 : p[&27] pig_sty_wall_hole &0968 00 ; &0668 : p[&28] pig_sty_roof_hole &0969 00 ; &0669 : p[&29] taper_is_lit &096a 00 ; &066a : p[&2a] orange_button_state &096b 00 ; &066b : p[&2b] whistle_has_pea &096c 00 ; &066c : p[&2c] cavalry_state &096d 00 ; &066d : p[&2d] guesses &096e 00 ; &066e : p[&2e] cart_state &096f 00 ; &066f : p[&2f] (unused) &0970 00 ; &0670 : p[&30] fuse_is_lit &0971 00 ; &0671 : p[&31] (unused) &0972 00 ; &0672 : p[&32] (unused) &0973 00 ; &0673 : p[&33] lantern_is_lit &0974 00 ; &0674 : p[&34] (unused) &0975 00 ; &0675 : p[&35] (unused) &0976 00 ; &0676 : p[&36] (unused) &0977 00 ; &0677 : p[&37] despatches_open &0978 00 ; &0678 : p[&38] bomb_disarming_state &0979 00 ; &0679 : p[&39] bomb_countdown &097a 00 ; &067a : p[&3a] vault_colour &097b 02 ; &067b : p[&3b] lance_used &097c 00 ; &067c : p[&3c] warlord_state &097d 00 ; &067d : p[&3d] (unused) &097e 00 ; &067e : p[&3e] minion_state &097f 00 ; &067f : (unused) &0980 00 ; &0680 : room_flags[&84] &0981 00 ; &0681 : room_flags[&83] &0982 00 ; &0682 : room_flags[&82] &0983 00 ; &0683 : room_flags[&81] &0984 00 ; &0684 : room_flags[&80] &0985 00 ; &0685 : room_flags[&7f] &0986 00 ; &0686 : room_flags[&7e] &0987 80 ; &0687 : room_flags[&7d] &0988 00 ; &0688 : room_flags[&7c] &0989 00 ; &0689 : room_flags[&7b] &098a 00 ; &068a : room_flags[&7a] &098b 00 ; &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 00 ; &0691 : room_flags[&73] &0992 00 ; &0692 : room_flags[&72] &0993 80 ; &0693 : room_flags[&71] &0994 00 ; &0694 : room_flags[&70] &0995 00 ; &0695 : room_flags[&6f] &0996 00 ; &0696 : room_flags[&6e] &0997 00 ; &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 00 ; &06ab : room_flags[&59] &09ac 00 ; &06ac : room_flags[&58] &09ad 00 ; &06ad : room_flags[&57] &09ae 00 ; &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 00 ; &06c1 : room_flags[&43] &09c2 00 ; &06c2 : room_flags[&42] &09c3 00 ; &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 00 ; &06c8 : room_flags[&3c] &09c9 00 ; &06c9 : room_flags[&3b] &09ca 80 ; &06ca : room_flags[&3a] &09cb 00 ; &06cb : room_flags[&39] &09cc 00 ; &06cc : room_flags[&38] &09cd 80 ; &06cd : room_flags[&37] &09ce 00 ; &06ce : room_flags[&36] &09cf 00 ; &06cf : room_flags[&35] &09d0 00 ; &06d0 : room_flags[&34] &09d1 80 ; &06d1 : room_flags[&33] &09d2 80 ; &06d2 : room_flags[&32] &09d3 80 ; &06d3 : room_flags[&31] &09d4 00 ; &06d4 : room_flags[&30] &09d5 00 ; &06d5 : room_flags[&2f] &09d6 00 ; &06d6 : room_flags[&2e] &09d7 00 ; &06d7 : room_flags[&2d] &09d8 80 ; &06d8 : room_flags[&2c] &09d9 80 ; &06d9 : room_flags[&2b] &09da 80 ; &06da : room_flags[&2a] &09db 80 ; &06db : room_flags[&29] &09dc 00 ; &06dc : room_flags[&28] &09dd 80 ; &06dd : room_flags[&27] &09de 00 ; &06de : room_flags[&26] &09df 40 ; &06df : room_flags[&25] &09e0 00 ; &06e0 : room_flags[&24] &09e1 80 ; &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 80 ; &06e9 : room_flags[&1b] &09ea 00 ; &06ea : room_flags[&1a] &09eb 00 ; &06eb : room_flags[&19] &09ec 80 ; &06ec : room_flags[&18] &09ed 80 ; &06ed : room_flags[&17] &09ee 80 ; &06ee : room_flags[&16] &09ef 00 ; &06ef : room_flags[&15] &09f0 80 ; &06f0 : room_flags[&14] &09f1 80 ; &06f1 : room_flags[&13] &09f2 80 ; &06f2 : room_flags[&12] &09f3 00 ; &06f3 : room_flags[&11] &09f4 80 ; &06f4 : room_flags[&10] &09f5 80 ; &06f5 : room_flags[&0f] &09f6 80 ; &06f6 : room_flags[&0e] &09f7 80 ; &06f7 : room_flags[&0d] &09f8 00 ; &06f8 : room_flags[&0c] &09f9 00 ; &06f9 : room_flags[&0b] &09fa 00 ; &06fa : room_flags[&0a] &09fb 00 ; &06fb : room_flags[&09] &09fc 80 ; &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 &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_z2_string &0c61 a0 08 LDY #&08 &0c63 a5 00 LDA &00 ; buffer &0c65 8d 42 08 STA &0842 ; load_z2_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_z2_string &0c73 a0 08 LDY #&08 &0c75 a5 00 LDA &00 ; buffer &0c77 8d 47 08 STA &0847 ; save_z2_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 ; load_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 24 7b LDA &7b24,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 8e 7b LDA &7b8e,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 0d 2d 42 fa 5d 31 20 2f 29 0e 43 44 fc 05 06 2d ; "\nYou completed p["score"]% of the game. \nPress any key to &1110 fe 54 fc 06 1b 15 29 32 fe 67 06 2d 05 ; restart. \n" &111d 36 ; p["character"] = read_character() &111e 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &1125 8c 24 17 ; if(p["character"] == &13) &1128 01 ; { &1129 6e ; restore_position(); &112a 03 ; } ; else &112b 01 ; { &112c 2e ; restore_initial_position() &112d 03 ; } &112e 56 ; execute_bytecode_for_room() &112f 0c 06 09 ; p["output_written"] = &02 &1132 00 ; end ; bytecode_for_room_06_description &1133 00 ; end ; bytecode_for_room_07_description &1134 00 ; end ; bytecode_for_room_08_description &1135 d7 ; if(!room.flags[5]) &1136 01 ; { &1137 5f ; room.flags[5] = true &1138 0d 2f 10 2d 2d 2d 2d 2d fa 05 32 fb 05 2e 12 06 ; "[cls]\n\n\n\n\nWelcome to part B. Do you wish to load the &1148 33 42 27 19 23 18 32 fe 42 44 fb 69 ff 26 73 fb ; special file from part A? y/N\n" &1158 05 2e 34 07 29 2f 33 2e 1e 2d 05 &1163 36 ; p["character"] = read_character() &1164 8c 24 5d 02 ; if(p["character"] == &59 or &1168 8c 24 7d ; p["character"] == &79) &116b 01 ; { &116c 46 ; load_special_file() &116d 1c 0a ; p["number_of_objects_in_player_room"] = 1 &116f 4e ; store_position() &1170 03 ; } &1171 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &1178 03 ; } &1179 0d 42 45 35 44 b2 43 44 2e b3 b4 74 0b d9 46 44 ; "You are in the middle of the Tardis control room, standing by &1189 b4 ff 63 04 ; the control console." &118d 8c 24 5d 02 ; if(p["character"] == &59 or &1191 8c 24 7d ; p["character"] == &79) &1194 01 ; { &1195 0d 44 2e 75 47 fb 6a 48 36 49 24 18 19 1e 17 23 ; "the Doctor is putting one or two things away that you won't &11a5 76 77 42 fc 27 37 1e 15 15 14 19 1e 17 04 ; be needing." &11b3 14 24 ; p["character"] = 0 &11b5 04 ; return &11b6 03 ; } &11b7 0d 44 2e 75 47 12 25 23 29 78 44 fb 6b 0b fb 6a ; "the Doctor is busy with the controls, putting the Tardis into &11c7 44 2e b3 4a 23 24 11 1e 14 12 29 0e 1d 1f 14 15 ; standby mode ready for you to leave." &11d7 fc 9e 4b 42 32 fc 28 04 &11df 00 ; end ; bytecode_for_room_09_description &11e0 0d 42 45 38 44 4c 4d 43 44 2e b3 b4 74 0b fb 06 ; "You are on the west side of the Tardis control room, near the &11f0 44 11 19 22 1c 1f 13 1b 4e 04 ; airlock door." &11fa 00 ; end ; bytecode_for_room_0a_description &11fb 0d 42 45 38 44 79 4d 43 44 2e b3 b4 74 06 44 26 ; "You are on the north side of the Tardis control room. The &120b 19 15 27 19 1e 17 ff 52 47 fc 9f 42 35 44 79 7a ; viewing screen is facing you in the north wall." &121b 04 &121c 00 ; end ; bytecode_for_room_0b_description &121d 0d 42 45 38 44 7b 4d 43 44 2e b3 b4 74 06 7c 47 ; "You are on the south side of the Tardis control room. There is a &122d 34 ff 6c 4f 04 ; hatstand here." &1232 00 ; end ; bytecode_for_room_0c_description &1233 0d 42 45 38 44 50 4d 43 44 2e b3 b4 74 04 ; "You are on the east side of the Tardis control room." &1241 00 ; end ; bytecode_for_room_0d_description &1242 0d 42 45 35 34 fb 6c fc 07 b5 0b 78 12 25 19 1c ; "You are in a cobbled town square, with buildings east, west and &1252 14 19 1e 17 23 50 0b 4c 51 7b 06 34 7d fc a0 7e ; south. A road leads off north. The square is deserted." &1262 79 06 44 b5 47 fb 6d 04 &126a 00 ; end ; bytecode_for_room_0e_description &126b 0d 42 45 da 52 34 fb 6c fc 29 b6 fc 2a 79 51 7b ; "You are walking down a cobbled street which runs north and &127b 06 38 44 50 4d 47 34 fb 6e fa 06 44 fe 33 2e 12 ; south. On the east side is a hostelry bearing the sign Belle-Vue &128b 15 1c 1c 15 10 2e 26 25 15 2e 0e fa 5e 04 ; Charleroi." &1299 00 ; end ; bytecode_for_room_0f_description &129a 0d 42 53 fc a1 39 34 fc a2 ff 55 b6 fc a0 79 fb ; "You have arrived at a wooden bridge which leads north across a &12aa 6f 34 fc 2b 22 19 26 15 22 04 ; dark river." &12b4 a7 ; if(!room.flags[2]) &12b5 01 ; { &12b6 0d 49 fc 2c db fa 5f 42 0b 18 25 22 22 29 19 1e ; "two armed soldiers approach you, hurrying across the bridge. &12c6 17 fb 6f 44 ff 55 06 7f 45 fb 70 35 44 dc 43 44 ; They are dressed in the uniform of the Grande Armee. \n" &12d6 2e fc 2d 2e fc 2e 06 2d 05 &12df 03 ; } &12e0 0d 73 b7 42 80 44 81 43 1d 11 1e 29 dd 54 04 ; "From behind you comes the sound of many running feet." &12ef 00 ; end ; bytecode_for_room_10_description &12f0 0d 42 45 38 44 79 4d 43 44 fc a2 ff 55 06 fc a3 ; "You are on the north side of the wooden bridge. Lying on its &1300 38 55 4d 35 44 7d 47 3a fa 60 fc 2f 0b 78 3b 27 ; side in the road is an abandoned wagon, with no wheels." &1310 18 15 15 1c 23 04 &1316 a7 ; if(!room.flags[2]) &1317 01 ; { &1318 0d 2d 44 fb 71 54 73 44 7b 17 22 1f 27 fc a4 0b ; "\nThe pounding feet from the south grow louder, mingled with &1328 1d 19 1e 17 1c 15 14 78 44 fc 30 43 fa 61 db 04 ; the cries of outwitted soldiers." &1338 04 ; return &1339 03 ; } &133a b7 ; if(!room.flags[3]) &133b 01 ; { &133c 0d 44 ff 55 47 11 12 1c 11 2a 15 04 ; "the bridge is ablaze." &1348 04 ; return &1349 03 ; } &134a 0d 44 ff 55 56 57 17 25 24 24 15 14 46 fe 2a 51 ; "the bridge has been gutted by fire and the houses east and west &135a 44 fc a5 50 51 4c 45 fc a6 58 04 ; are boarded up." &1365 00 ; end ; bytecode_for_room_11_description &1366 cc 29 ; if(p["doctor_state"] != 0 and &1368 8c 2a 05 ; p["baker_state"] == &01) &136b 01 ; { &136c 0d 59 42 b8 0b 44 2e 75 47 fa 62 82 5a fc a7 0b ; "As you emerge, the Doctor is muttering under his breath, &137c fa 63 83 44 2e b3 84 58 32 18 15 22 fc 31 24 22 ; something about the Tardis being up to her old tricks - &138c 19 13 1b 23 0e 10 0e 30 16 30 13 fa 07 43 30 16 ; 1815 instead of 1814, Charleroi instead of Paris. Only hope &139c 30 12 0b 2e fa 5e fa 07 43 2e 20 11 22 19 23 06 ; we're not too late. . ." &13ac 85 18 1f 20 15 0e 27 15 0f 22 15 5b 5c fc 08 06 &13bc 06 04 &13be 44 2a ; p["baker_state"] ++ &13c0 04 ; return &13c1 03 ; } &13c2 0d 42 45 38 44 fa 64 43 44 fc 07 06 38 44 4c 4d ; "You are on the outskirts of the town. On the west side of the &13d2 43 44 7d 47 34 fc a8 06 de 3c 47 3a fc 09 04 ; road is a bakery. Opposite it is an inn." &13e1 00 ; end ; bytecode_for_room_12_description &13e2 0d 35 44 fc a9 42 86 34 23 19 1e 17 1c 15 2e 0e ; "In the shack you find a single French infantryman sprawled on a &13f2 b9 fa e4 23 20 22 11 27 1c 15 14 38 34 fc 32 df ; chair asleep, a musket" &1402 0b 34 ff 4a 05 &1407 e7 ; if(!room.flags[6]) &1408 01 ; { &1409 0d 78 34 ff 60 fb 72 32 3c 05 ; "with a bayonet attached to it" &1413 03 ; } &1414 0d fa 08 ba 5a 1b 1e 15 15 06 5a 87 fc 33 ff 58 ; "leaning against his knee. His hand rests gently on the barrel." &1424 38 44 ff 54 04 &1429 00 ; end ; bytecode_for_room_13_description &142a 0d 42 45 35 34 27 11 22 1d 51 22 1f 27 14 29 fb ; "You are in a warm and rowdy roadside inn, where all the &143a 73 fc 09 0b 88 89 44 f9 46 43 2e fc aa fc 34 32 ; nationalities of Europe seem to gather. The publican is serving &144a 17 11 24 18 15 22 06 44 20 25 12 1c 19 13 11 1e ; a large group of French soldiers, chattering excitedly to &145a 47 fb 74 34 8a fc ab 43 2e b9 db 0b fa 65 15 28 ; them." &146a 13 19 24 15 14 1c 29 32 ff 32 04 &1475 e7 ; if(!room.flags[6]) &1476 01 ; { &1477 0d 44 fa 66 ff 24 51 ff 47 53 57 5d 46 44 4e 0b ; "the soldiers' hats and cloaks have been left by the door, &1487 fc 0a 32 42 04 ; next to you." &148c 03 ; } &148d 00 ; end ; bytecode_for_room_14_description &148e 0d 42 45 39 44 fc 0b fa e5 38 44 79 4d 43 fc 07 ; "You are at the main crossroads on the north side of town. A &149e 06 34 fb 35 20 1f 19 1e 24 23 7b 32 2e fa 5e 51 ; signpost points south to Charleroi and north to Brussels. &14ae 79 32 2e fa 67 06 fa 68 34 2e b9 bb fb 75 53 fa ; Westwards a French cavalry battalion have bivouacked all over &14be 69 89 8b 44 7d 0b fc 35 32 44 50 7c 47 34 fa 6a ; the road, while to the east there is a guardpost." &14ce 04 &14cf c7 ; if(!room.flags[4]) &14d0 01 ; { &14d1 0d 73 44 fa 6b fc ac 3c 18 25 1e 14 22 15 14 23 ; "from the encampment beyond it hundreds of men are marching, &14e1 43 fb 07 45 1d 11 22 13 18 19 1e 17 0b fb 76 58 ; turning up the road to Brussels." &14f1 44 7d 32 2e fa 67 04 &14f8 03 ; } &14f9 0d 2d fe 6c 47 44 fc 09 0b fe 6b 34 fa e6 fc a9 ; "\nSoutheast is the inn, northwest a tumbledown shack, and &1509 0b 51 fe 6d 34 fa e7 fc 36 0a 38 44 fe 6a fc 37 ; southwest a butcher's shop; on the northeast corner is some &1519 47 5e fc 38 fc 36 fc 39 fe 33 47 fa 6c 04 ; other shop whose sign is illegible." &1527 a7 ; if(!room.flags[2]) &1528 01 ; { &1529 0d 2d 49 2e b9 fa 6d fa 5f 42 73 44 fa 6a 0b fa ; "\nTwo French officers approach you from the guardpost, &1539 6e 32 5f 60 fc ad 04 ; demanding to see your papers." &1540 03 ; } &1541 00 ; end ; bytecode_for_room_15_description &1542 0d 42 45 d9 35 34 fa e7 fc 36 06 38 44 8c 47 34 ; "You are standing in a butcher's shop. On the floor is a large &1552 8a ff 5e 0b fc a3 35 34 20 1f 1f 1c 43 12 1c 1f ; cleaver, lying in a pool of blood." &1562 1f 14 04 &1565 00 ; end ; bytecode_for_room_16_description &1566 df ; if(room.flags[5]) &1567 01 ; { &1568 0d 42 45 35 44 fc a8 04 ; "You are in the bakery." &1570 04 ; return &1571 03 ; } &1572 0d 44 fc 3a 17 22 15 15 24 23 42 f9 47 0b 1f 16 ; "the baker greets you cheerfully, offering a fresh baked loaf. &1582 16 15 22 19 1e 17 34 fc ae 12 11 1b 15 14 ff 29 ; Business is clearly booming." &1592 06 12 25 23 19 1e 15 23 23 47 e0 12 1f 1f 1d 19 &15a2 1e 17 04 &15a5 5f ; room.flags[5] = true &15a6 00 ; end ; bytecode_for_room_17_description &15a7 c7 ; if(!room.flags[4]) &15a8 01 ; { &15a9 0d 8d bc 61 32 37 34 f9 48 fb 77 fc 36 06 44 1f ; "This turns out to be a candlestick maker's shop. The owner &15b9 27 1e 15 22 47 34 f9 49 0b 1e 15 22 26 1f 25 23 ; is a suspicious, nervous character who is sitting behind &15c9 fb 78 62 47 bd b7 23 24 11 13 1b 23 43 13 11 1e ; stacks of candles, trimming wicks." &15d9 14 1c 15 23 0b 24 22 19 1d 1d 19 1e 17 0e 27 19 &15e9 13 1b 23 04 &15ed 04 ; return &15ee 03 ; } &15ef 0d 42 45 8e 35 44 f9 48 fb 77 fc 36 04 ; "you are back in the candlestick maker's shop." &15fc 00 ; end ; bytecode_for_room_18_description &15fd 0d 42 45 39 44 fc 0b 17 11 24 15 0e 20 1f 23 24 ; "You are at the main gate post leading to the French camp. A &160d 0e 1c 15 11 14 19 1e 17 32 44 2e b9 8f 06 34 fa ; belligerent sergeant demands to see your papers." &161d 6f e1 14 15 1d 11 1e 14 23 32 5f 60 fc ad 04 &162c 00 ; end ; bytecode_for_room_19_description &162d 0e ; skip_to_next_bytecode() &162e 00 ; end ; bytecode_for_room_1a_description &162f 0d 42 45 38 44 2e fa 67 7d 06 b9 e2 45 fa 69 38 ; "You are on the Brussels road. French infantry are bivouacked on &163f 44 4c 4d 0b 05 ; the west side, " &1644 8c 04 1e ; if(p["player_room"] == &1a) &1647 01 ; { &1648 0d fc 35 34 90 fb 79 32 37 24 11 1b 19 1e 17 fe ; "while a battle appears to be taking place beyond a ridge to &1658 50 fc ac 34 fc 3b 32 44 50 04 ; the east." &1662 04 ; return &1663 03 ; } &1664 0d 51 7c 47 fc 3c fc 3d 32 44 50 04 ; "and there is high fence to the east." &1670 00 ; end ; bytecode_for_room_1b_description &1671 0d 42 53 fc a1 39 44 fc af 43 2e fa 70 0b 88 44 ; "You have arrived at the hamlet of Gosselies, where the French &1681 2e b9 fc 3e be 32 53 fb 7a 4b fb 7b 06 42 86 e3 ; army seems to have stopped for supper. You find yourself the &1691 44 fc 0c 35 34 21 25 15 25 15 43 fa 09 2e fb 7c ; last in a queue of patient Belgians, waiting for the French to &16a1 0b fa 0a 4b 44 2e b9 32 fe 31 fa 71 4b ff 32 32 ; give permission for them to continue north. \nThe well dressed &16b1 fc b0 79 06 2d 44 fb 16 fb 70 fb 7d fc b1 43 42 ; gentleman ahead of you is now being questioned. His carriage &16c1 47 63 84 fa 72 06 5a bf fc b2 91 42 04 ; stands beside you." &16ce 00 ; end ; bytecode_for_room_1c_description &16cf 0d 42 23 24 25 1d 12 1c 15 8b 34 ff 62 43 44 2b ; "You stumble over a soldier of the " + random("Middle", "Young") &16df 06 2e b2 05 2e 29 1f 25 1e 17 05 04 2e 0e ff 41 ; + " Guard. He remonstrates with you, and quickly discovers you &16ef 06 3d fa e8 78 42 0b 51 ff 64 fa 73 42 45 5b 2e ; are not French. To save himself time and trouble, he cuts your &16ff b9 06 32 fe 45 18 19 1d 23 15 1c 16 64 51 24 22 ; throat." &170f 1f 25 12 1c 15 0b 3d fc 3f 60 24 18 22 1f 11 24 &171f 04 &1720 08 09 ; player_room = &05 &1722 56 ; execute_bytecode_for_room() &1723 00 ; end ; bytecode_for_room_1d_description &1724 0d 42 53 57 14 25 1d 20 15 14 35 3a fc b3 65 32 ; "You have been dumped in an empty tent to await interrogation. &1734 11 27 11 19 24 fa e9 06 44 4e 47 7b 05 ; The door is south" &1741 af ; if(room.flags[2]) &1742 01 ; { &1743 0d 0b 51 7c 47 34 92 66 35 44 ff 4e 38 44 79 4d ; ", and there is a long cut in the canvas on the north side" &1753 05 &1754 03 ; } &1755 0d 04 ; "." &1757 00 ; end ; bytecode_for_room_1e_description &1758 0e ; skip_to_next_bytecode() &1759 00 ; end ; bytecode_for_room_1f_description &175a 0e ; skip_to_next_bytecode() &175b 00 ; end ; bytecode_for_room_20_description &175c 0e ; skip_to_next_bytecode() &175d 00 ; end ; bytecode_for_room_21_description &175e 8c 04 22 ; if(p["player_room"] == &1e) &1761 01 ; { &1762 0d 42 45 39 44 fb 36 15 1e 14 43 05 ; "You are at the southern end of" &176e 03 ; } ; else &176f 01 ; { &1770 0d 42 45 35 05 ; "you are in" &1775 03 ; } &1776 0d 34 fc b4 17 11 20 77 fc 2a 79 51 7b 0b c0 34 ; "a narrow gap that runs north and south, between a row of tents &1786 22 1f 27 43 93 32 44 4c 51 34 fc 3c fc 3d 50 04 ; to the west and a high fence east." &1796 af ; if(room.flags[2]) &1797 01 ; { &1798 0d 44 65 32 44 4c 43 42 56 34 92 fb 17 35 44 ff ; "the tent to the west of you has a long gash in the canvas." &17a8 4e 04 &17aa 03 ; } &17ab 0d 2d 3c 47 c1 04 ; "\nIt is raining." &17b1 00 ; end ; bytecode_for_room_22_description &17b2 a7 ; if(!room.flags[2]) &17b3 01 ; { &17b4 0d 42 fe 4b 44 65 fa 74 44 66 06 34 2e b9 c2 0b ; "You enter the tent through the cut. A French veteran, who &17c4 62 fc 0d bd 78 5a 8e 32 42 0b 47 94 fb 76 95 0b ; was sitting with his back to you, is just turning round, &17d4 fa 75 4b 5a ff 16 04 ; reaching for his gun." &17db 04 ; return &17dc 03 ; } &17dd 0d 42 45 35 34 65 06 34 c2 43 44 2e fc 31 2e ff ; "you are in a tent. A veteran of the Old Guard lies on the floor, &17ed 41 96 38 44 8c 0b fc b5 06 7c 47 34 4e 4c 51 34 ; stunned. There is a door west and a slit in the canvas east." &17fd fc 40 35 44 ff 4e 50 04 &1805 00 ; end ; bytecode_for_room_23_description &1806 0d 42 45 35 34 65 06 34 fa 0b 2e b9 ff 62 47 df ; "You are in a tent. A drunken French soldier is asleep on the &1816 38 44 8c 0b fa 0c fb 7e 04 ; floor, snoring loudly." &181f e7 ; if(!room.flags[6]) &1820 01 ; { &1821 0d 34 fc b6 ff 48 96 fb 06 5a 97 04 ; "a loaded pistol lies near his head." &182d 03 ; } &182e 0d 7c 47 34 4e 4c 51 34 fc 40 35 44 ff 4e 50 04 ; "there is a door west and a slit in the canvas east." &183e 00 ; end ; bytecode_for_room_24_description &183f 0d 42 45 35 34 fe 5a 65 04 ; "You are in a store tent." &1848 e7 ; if(!room.flags[6]) &1849 01 ; { &184a 0d 7c 47 5e fb 7f ff 27 fb 80 4f 04 ; "there is some bully beef stacked here." &1856 03 ; } &1857 0d 7c 47 34 4e 4c 51 34 fc 40 35 44 ff 4e 50 04 ; "there is a door west and a slit in the canvas east." &1867 00 ; end ; bytecode_for_room_25_description &1868 9f ; if(room.flags[1]) &1869 01 ; { &186a 0d 44 fb 81 47 d9 23 24 19 16 16 1c 29 0b fa 76 ; "The chasseur is standing stiffly, watching you." &187a 42 04 &187c 04 ; return &187d 03 ; } &187e af ; if(room.flags[2]) &187f 01 ; { &1880 0d 42 45 35 34 65 0b 78 34 4e 4c 51 34 fc 40 35 ; "you are in a tent, with a door west and a slit in the canvas &1890 44 ff 4e 50 04 ; east." &1895 04 ; return &1896 03 ; } &1897 0d 94 59 42 fe 4b 8d 65 0b 34 2e b9 fb 81 80 fa ; "just as you enter this tent, a French chasseur comes through the &18a7 74 44 fc 0b 4e 06 3d fc b7 23 1c 19 17 18 24 1c ; main door. He looks slightly puzzled at your anpearance." &18b7 29 0e 20 25 2a 2a 1c 15 14 39 60 fa 77 04 &18c5 e7 ; if(!room.flags[6]) &18c6 01 ; { &18c7 0d 38 44 8f ff 43 42 98 5e ff 70 78 34 ff 12 fc ; "on the camp table you notice some documents with a pen lying &18d7 a3 91 ff 32 0b fc 0a 32 34 ff 39 ff 11 04 ; beside them, next to a snuff box." &18e5 03 ; } &18e6 00 ; end ; bytecode_for_room_26_description &18e7 db 2e ; if(object_room["bayonet"] == "carrying") &18e9 01 ; { &18ea 0b 0a 2e ; object_room["bayonet"] = &06 &18ed 4c 0e ; p["number_of_objects_carried"] -- &18ef 03 ; } &18f0 db 26 ; if(object_room["pistol"] == "carrying") &18f2 01 ; { &18f3 0b 0a 26 ; object_room["pistol"] = &06 &18f6 4c 0e ; p["number_of_objects_carried"] -- &18f8 03 ; } &18f9 0d 42 45 fa ea 35 34 fc 0e 74 78 fc 41 fc b8 77 ; "You are incarcerated in a low room with stone walls that " + &1909 2b 06 23 1d 15 1c 1c 23 05 fc b7 05 04 0e 59 67 ; random("smells", "looks") + " as if it might once have served as &1919 3c fc 42 fc 0f 53 23 15 22 26 15 14 59 34 f9 05 ; a pig sty." &1929 f9 06 04 &192c d7 ; if(!room.flags[5]) &192d 01 ; { &192e 0d ba 44 4c 7a 05 ; "against the west wall" &1934 03 ; } ; else &1935 01 ; { &1936 0d 35 44 b2 43 44 fc 43 05 ; "in the middle of the cell" &193f 03 ; } &1940 0d 47 34 ff 2b 0b 05 ; "is a bunk, " &1947 9f ; if(room.flags[1]) &1948 01 ; { &1949 0d 38 b6 42 45 d9 04 ; "on which you are standing." &1950 03 ; } ; else &1951 01 ; { &1952 0d c3 34 fb 82 36 12 1c 11 1e 1b 15 24 04 ; "without a mattress or blanket." &1960 03 ; } &1961 e7 ; if(!room.flags[6]) &1962 01 ; { &1963 0d 94 fc 44 44 19 22 1f 1e 4e 96 34 99 ff 3c 78 ; "just inside the iron door lies a metal plate with no food on &1973 3b 16 1f 1f 14 38 3c 04 ; it." &197b 03 ; } &197c af ; if(room.flags[2]) &197d 01 ; { &197e 0d 7c 47 34 c4 35 44 8c 04 ; "there is a tunnel in the floor." &1987 03 ; } &1988 df ; if(room.flags[5]) &1989 01 ; { &198a 84 2b 06 ; if(p["pig_sty_wall_hole"] < &02) &198d 01 ; { &198e 0d 35 44 4c 7a 7c 47 34 05 ; "in the west wall there is a" &1997 8c 2b 05 ; if(p["pig_sty_wall_hole"] == &01) &199a 01 ; { &199b 0d 68 04 ; "hole." &199e 03 ; } ; else &199f 01 ; { &19a0 0d fc 45 ff 40 04 ; "loose brick." &19a6 03 ; } &19a7 03 ; } &19a8 03 ; } &19a9 8c 2c 05 ; if(p["pig_sty_roof_hole"] == &01) &19ac 01 ; { &19ad 0d fb 08 47 c5 fa 74 34 68 35 44 fc 46 04 ; "rain is coming through a hole in the roof." &19bb 03 ; } &19bc 00 ; end ; bytecode_for_room_27_description &19bd 0d 42 86 e3 35 44 fe 6c fc 37 43 3a fe 40 b5 fa ; "You find yourself in the southeast corner of an open square &19cd 78 46 93 06 34 2e b9 fc b9 56 fb 7a 39 44 68 35 ; surrounded by tents. A French lancer has stopped at the hole in &19dd 44 fc 0e fa 79 50 43 42 0b 51 47 fa eb 5a 97 0a ; the low building east of you, and is scratching his head; &19ed fa ec 3d fc 47 5b fc 34 32 fc ba 42 53 94 fb 83 ; fortunately he does not seem to realise you have just escaped &19fd fa 74 3c 06 2d 7c 47 3a fe 40 65 4e 32 44 7b 04 ; through it. \nThere is an open tent door to the south." &1a0d 00 ; end ; bytecode_for_room_28_description &1a0e 0d 42 86 e3 79 43 34 fc 0e fa 79 0b 38 34 20 11 ; "You find yourself north of a low building, on a patch of mud &1a1e 24 13 18 43 1d 25 14 c0 49 8a 93 06 44 c6 32 48 ; between two large tents. The entrance to one is east, the other &1a2e 47 50 0b 44 fc 38 79 06 7c 47 34 fc 3c fc 3d 4c ; north. There is a high fence west. \nIt is raining." &1a3e 06 2d 3c 47 c1 04 &1a44 00 ; end ; bytecode_for_room_29_description &1a45 a7 ; if(!room.flags[2]) &1a46 01 ; { &1a47 0d 42 53 3b 64 32 fe 43 fc bb 42 0b fc bc 34 fc ; "You have no time to look around you, because a man is &1a57 10 47 11 14 26 11 1e 13 19 1e 17 e4 42 f9 60 0a ; advancing towards you threateningly; he is short but very &1a67 3d 47 fc 48 69 9a 12 22 1f 11 14 0b 27 15 11 22 ; broad, wears a twenty-fourth century singlet under his &1a77 23 34 f9 61 fc bd 23 19 1e 17 1c 15 24 82 5a f9 ; ill-fitting dragoon's uniform, and is drawing a meson &1a87 4a fa 7a dc 0b 51 47 14 22 11 27 19 1e 17 34 fc ; blaster from his belt. It occurs to you, in the split second &1a97 49 fc be 73 5a fc 11 06 3c 1f 13 13 25 22 23 32 ; before he fires, that this could be the Warlord. \nJust &1aa7 42 0b 35 44 fc bf fc c0 9b 3d fc 4a 0b 77 8d 13 ; behind you to the north is the hole through which you &1ab7 1f 25 1c 14 37 44 2e e5 06 2d 94 b7 42 32 44 79 ; emerged." &1ac7 47 44 68 fa 74 b6 42 15 1d 15 22 17 15 14 04 &1ad6 04 ; return &1ad7 03 ; } &1ad8 b7 ; if(!room.flags[3]) &1ad9 01 ; { &1ada 0d 42 45 83 32 37 2a 11 20 20 15 14 06 fc c1 ff ; "you are about to be zapped. Think fast." &1aea 36 04 &1aec 04 ; return &1aed 03 ; } &1aee 0d 48 43 44 2e fa ed fb 07 47 fa 7b f9 4b 35 44 ; "one of the Warlord's men is slumped unconscious in the mouth of &1afe 1d 1f 25 24 18 43 34 c4 06 73 fa 0d 80 44 81 43 ; a tunnel. From outside comes the sound of running feet." &1b0e dd 54 04 &1b11 00 ; end ; bytecode_for_room_2a_description &1b12 0d 42 45 35 44 65 43 34 fa 7c 0b 62 47 df 38 44 ; "You are in the tent of a cuirassier, who is asleep on the floor. &1b22 8c 06 91 6a 96 5a ff 4d 05 ; Beside him lies his armour" &1b2b e7 ; if(!room.flags[6]) &1b2c 01 ; { &1b2d 0d 51 44 23 24 25 12 43 34 ff 3d 05 ; "and the stub of a taper" &1b39 03 ; } &1b3a 0d 04 ; "." &1b3c 00 ; end ; bytecode_for_room_2b_description &1b3d 0d 8d 65 bc 61 32 37 34 1d 15 23 23 0e 18 11 1c ; "This tent turns out to be a mess hall, rather hastily erected. A &1b4d 1c 0b c7 18 11 23 24 19 1c 29 0e 15 22 15 13 24 ; dozen" &1b5d 15 14 06 34 fc 4b 05 &1b64 a7 ; if(!room.flags[2]) &1b65 01 ; { &1b66 0d fb 84 05 ; "miserable" &1b6a 03 ; } ; else &1b6b 01 ; { &1b6c 0d 13 18 15 15 22 16 25 1c 0e 05 ; "cheerful " &1b77 03 ; } &1b78 0d fb 85 43 44 2e fc 2d 2e fc 2e 45 bd 95 34 fb ; "sappers of the Grande Armee are sitting round a burning brazier, &1b88 86 ff 61 0b 05 ; " &1b8d a7 ; if(!room.flags[2]) &1b8e 01 ; { &1b8f 0d 1b 15 15 20 19 1e 17 61 43 44 fb 08 04 ; "keeping out of the rain." &1b9d 04 ; return &1b9e 03 ; } &1b9f 0d 13 1f 1f 1b 19 1e 17 34 1d 15 11 1c 04 ; "cooking a meal." &1bad 00 ; end ; bytecode_for_room_2c_description &1bae 0d 8d 65 47 fc c2 43 2e fa 7d fa ee 0b 24 22 29 ; "This tent is full of Napoleon's infantrymen, trying to get some &1bbe 19 1e 17 32 fe 1b 5e 22 15 23 24 9c 44 fc c3 06 ; rest after the march. Most are asleep. There is an entrance &1bce 6b 45 df 06 7c 47 3a c6 7b 0b 51 fc c4 38 44 fc ; south, and another on the far side of the tent, north." &1bde 12 4d 43 44 65 0b 79 04 &1be6 00 ; end ; bytecode_for_room_2d_description &1be7 0d 42 45 c0 9d 93 0b 34 8a 48 7b 0b 51 49 fb 87 ; "You are between three tents, a large one south, and two smaller &1bf7 1f 1e 15 23 fe 6b 51 50 06 3c 47 c1 04 ; ones northwest and east. It is raining." &1c04 00 ; end ; bytecode_for_room_2e_description &1c05 c7 ; if(!room.flags[4]) &1c06 01 ; { &1c07 0d 42 86 8d 47 34 ff 53 fe 5a 06 fc c5 44 12 11 ; "You find this is a powder store. Among the barrels of &1c17 22 22 15 1c 23 43 ff 71 fb 80 4f 47 48 c3 34 1c ; gunpowder stacked here is one without a lid." &1c27 19 14 04 &1c2a 03 ; } ; else &1c2b 01 ; { &1c2c 0d 42 45 35 44 ff 53 fe 5a 04 ; "you are in the powder store." &1c36 03 ; } &1c37 cc 34 ; if(p["fuse_is_lit"] != 0) &1c39 01 ; { &1c3a 0d 44 ff 2a 42 5d 47 fb 86 52 e6 04 ; "the fuse you left is burning down rapidly." &1c46 03 ; } &1c47 00 ; end ; bytecode_for_room_2f_description &1c48 a7 ; if(!room.flags[2]) &1c49 01 ; { &1c4a 0d 59 42 fe 4b 8d 65 0b 3a e7 78 34 fc c6 ff 3f ; "As you enter this tent, an officer with a heavy beard and &1c5a 51 44 dc 43 34 e8 43 2e fc 4c fc c7 35 fa 74 34 ; the uniform of a marshal of France walks in through a second &1c6a fc c0 c6 38 44 79 4d 06 3a 11 25 22 11 43 fa ef ; entrance on the north side. An aura of irredeemable evil &1c7a fc 4d be 32 fb 88 6a 06 3d 22 15 17 11 22 14 23 ; seems to surround him. He regards you menacingly, and moves &1c8a 42 fa f0 0b 51 fc 4e 59 67 32 fe 5c 42 04 ; as if to attack you." &1c98 04 ; return &1c99 03 ; } &1c9a b7 ; if(!room.flags[3]) &1c9b 01 ; { &1c9c 0d 44 2e e5 47 83 32 fe 29 42 78 3a c8 e9 06 42 ; "the Warlord is about to kill you with an atomic disruptor. &1cac fc 13 9e 33 fa 63 ff 36 04 ; You had better do something fast." &1cb5 04 ; return &1cb6 03 ; } &1cb7 0d 44 65 47 fc b3 39 fa 0e 0b 69 42 85 53 34 9f ; "the tent is empty at present, but you only have a moment. The &1cc7 06 44 fc c8 45 79 51 4c 04 ; exits are north and west." &1cd0 00 ; end ; bytecode_for_room_30_description &1cd1 0d 8d 65 47 fc b3 05 ; "This tent is empty" &1cd8 e7 ; if(!room.flags[6]) &1cd9 01 ; { &1cda 0d 0b fc 4f 73 34 fc 14 43 ff 68 77 fc c9 9a 26 ; ", apart from a pair of tweezers that someone very vain has &1cea 11 19 1e 56 57 fc ca 32 20 1c 25 13 1b 5a ff 3f ; been using to pluck his beard" &1cfa 05 &1cfb 03 ; } &1cfc 0d 06 44 fc c8 45 7b 51 fe 6a 04 ; ". The exits are south and northeast." &1d07 00 ; end ; bytecode_for_room_31_description &1d08 af ; if(room.flags[2]) &1d09 01 ; { &1d0a 0d 35 8d 65 34 fa 7e 43 44 2e e5 96 f9 4b 06 44 ; "In this tent a henchman of the Warlord lies unconscious. The &1d1a fc c8 45 fe 6d 51 79 04 ; exits are southwest and north." &1d22 04 ; return &1d23 03 ; } &1d24 0d 59 fc 15 59 42 fe 4b 8d 65 0b 42 5f 44 2e 75 ; "as soon as you enter this tent, you see the Doctor facing you &1d34 fc 9f 42 78 5a c9 35 44 fc 16 06 34 fa 7e 43 44 ; with his hands in the air. A henchman of the Warlord is just in &1d44 2e e5 47 94 35 fc 50 43 42 0b 78 5a 8e 32 42 0b ; front of you, with his back to you, pointing an atomic disruptor &1d54 fb 89 3a c8 e9 39 60 fc 31 16 22 19 15 1e 14 04 ; at your old friend." &1d64 8c 34 0c ; if(p["fuse_is_lit"] == &08) &1d67 01 ; { &1d68 0d 2d 39 8d 9f 7c 47 fa f1 fa 7f b7 42 06 fc cb ; "\nAt this moment there is tremendous explosion behind you. &1d78 73 44 fc 51 80 16 1c 29 19 1e 17 fa 74 44 fc 16 ; Debris from the blast comes flying through the air over your &1d88 8b 60 fa 80 0b 51 fc 52 44 2e fa ed fa 7e 38 44 ; shoulder, and hits the Warlord's henchman on the back of the &1d98 8e 43 44 97 06 3d fc cc 95 06 2d 44 2e 75 20 19 ; head. He spins round. \nThe Doctor picks up a camp chair and &1da8 13 1b 23 58 34 8f fc 32 51 1c 11 29 23 61 44 fa ; lays out the henchman with one blow. He grips your arm and &1db8 7e 78 48 fe 2e 06 3d 17 22 19 20 23 60 f9 07 51 ; pulls you northwards. \"You were just in time, \" he &1dc8 fb 8a 42 fa f2 06 0d 2e 42 fc 17 94 35 64 0b 0c ; whispers, \"but we had better make ourselves scarce around &1dd8 3d fa 81 0b 0d 69 3e fc 13 9e fc 18 fa 82 23 13 ; here. \" " &1de8 11 22 13 15 fc bb 4f 06 0c 05 &1df2 2f ; room.flags[2] = true &1df3 0c 0d 34 ; p["fuse_is_lit"] = &09 &1df6 44 29 ; p["doctor_state"] ++ &1df8 44 20 ; p["score"] ++ &1dfa 03 ; } &1dfb 00 ; end ; bytecode_for_room_32_description &1dfc 0d 42 45 35 2e ca 2e fa f3 fa 83 f9 4c 06 44 2e ; "You are in Napoleon Bonaparte's temporary headquarters. The &1e0c fb 8b 47 bd 35 34 fb 18 fc 32 0b fb 8c 06 38 44 ; Emperor is sitting in a deal chair, snoozing. On the table in &1e1c ff 43 35 fc 50 43 6a 47 34 ff 14 43 2e fb 8d 05 ; front of him is a map of Belgium" &1e2c e7 ; if(!room.flags[6]) &1e2d 01 ; { &1e2e 0d 51 34 ff 15 43 ff 28 05 ; "and a jug of wine" &1e37 03 ; } &1e38 0d 06 2e fa 7d a0 87 fc 33 38 44 ff 14 0b 8b 44 ; ". Napoleon's right hand rests on the map, over the position of &1e48 fb 37 43 2e fa 67 06 2d 7c 45 fc 53 79 51 7b 04 ; Brussels. \nThere are doors north and south." &1e58 00 ; end ; bytecode_for_room_33_description &1e59 0d 44 2e 15 1d 20 15 22 1f 22 0f 23 fb 8e fa f4 ; "The Emperor's personal bodyguard is slumped in this room, &1e69 47 fa 7b 35 8d 74 0b fa ec df 06 7c 45 fc 53 7b ; fortunately asleep. There are doors south and east, but you can &1e79 51 50 0b 69 42 6c 6d 5e fc 19 51 fc 1a 16 11 19 ; hear some hue and cry faintly to the south." &1e89 1e 24 1c 29 32 44 7b 04 &1e91 e7 ; if(!room.flags[6] and &1e92 cc 0a ; p["number_of_objects_in_player_room"] != 0) &1e94 01 ; { &1e95 0d 2d 5e 19 24 15 1d 23 fc cd 32 42 45 fb 80 35 ; "\nSome items familiar to you are stacked in the corner." &1ea5 44 fc 37 04 &1ea9 03 ; } &1eaa 00 ; end ; bytecode_for_room_34_description &1eab 0d 42 45 fa 84 4a 44 2e b9 8f 04 ; "You are escorted into the French camp." &1eb6 cc 29 ; if(p["doctor_state"] != 0) &1eb8 01 ; { &1eb9 0d 44 2e 75 47 fa 85 3a fa 86 86 51 47 f9 08 76 ; "the Doctor is considered an important find and is led away, &1ec9 0b 69 05 ; but" &1ecc 14 29 ; p["doctor_state"] = 0 &1ece 03 ; } &1ecf 0d 3b 48 be fb 19 a1 32 33 78 42 04 ; "no one seems sure what to do with you." &1edb cc 0e ; if(p["number_of_objects_carried"] != 0) &1edd 01 ; { &1ede 0d 7f fe 62 42 0b 51 fe 28 05 ; "they search you, and take" &1ee8 1c 0b ; p["old_room"] = 1 &1eea 0c 37 0c ; p["new_room"] = &33 &1eed 06 ; list_objects(p["old_room"]. p["new_room"]) &1eee 14 0e ; p["number_of_objects_carried"] = 0 &1ef0 0d 04 ; "." &1ef2 03 ; } &1ef3 08 2a ; player_room = &26 &1ef5 56 ; execute_bytecode_for_room() &1ef6 1c 0a ; p["number_of_objects_in_player_room"] = 1 &1ef8 00 ; end ; bytecode_for_room_35_description &1ef9 0d 42 45 38 44 fe 6a 15 14 17 15 43 44 8f 06 7c ; "You are on the northeast edge of the camp. There is a farm &1f09 47 34 fc 54 fa 79 4c 0b 93 32 44 7b 0b fe 40 fa ; building west, tents to the south, open countryside north, and a &1f19 87 79 0b 51 34 fc ce fa 88 32 44 50 06 44 fc 19 ; rough enclosure to the east. The hue and cry is distinctly &1f29 51 fc 1a 47 fa 89 fc a4 63 04 ; louder now." &1f33 a7 ; if(!room.flags[2]) &1f34 01 ; { &1f35 0d 2d 44 2e 75 fa 81 0b 0d 2e 19 0f 26 15 fa 0f ; "\nThe Doctor whispers, \"I've learned a lot while in the &1f45 34 fb 09 fc 35 35 44 2e fa ed c9 06 3d 47 fa 8a ; Warlord's hands. He is definitely out to kill the Duke of &1f55 61 32 fe 29 44 2e a2 43 2e fa 8b fc cf 39 44 fc ; Wellington tonight at the ball in Brussels. We have no time &1f65 55 35 2e fa 67 06 3e 53 3b 64 32 fc 1b 06 3e fc ; to lose. We had better separate, to double our chances of &1f75 13 9e fb 38 0b 32 fc d0 1f 25 22 0e 13 18 11 1e ; stopping him. Good luck. Brussels is twenty miles north of &1f85 13 15 23 43 23 24 1f 20 20 19 1e 17 6a 06 fc 56 ; here. \" \nHe disappears west, skirting the camp." &1f95 fc d1 06 fa 67 47 24 27 15 1e 24 29 0e 1d 19 1c &1fa5 15 23 79 43 4f 06 0c 2d 3d fa 8c 4c 0b fb 8f 44 &1fb5 8f 04 &1fb7 2f ; room.flags[2] = true &1fb8 4c 29 ; p["doctor_state"] -- &1fba 03 ; } &1fbb 00 ; end ; bytecode_for_room_36_description &1fbc 0d 42 86 e3 35 44 fb 90 43 44 2e fc 2d 2e fc 2e ; "You find yourself in the latrines of the Grande Armee. The smell &1fcc 06 44 23 1d 15 1c 1c 47 11 20 20 11 1c 1c 19 1e ; is appalling -almost as bad as the French graffiti on the broken &1fdc 17 0e 10 fc d2 59 f9 09 59 44 2e b9 ff 6a 38 44 ; wooden walls, all of which have gaps in them. You can hear the &1fec fc d3 fc a2 fc b8 0b 89 43 b6 53 17 11 20 23 35 ; shouts of soldiers hunting for you coming from" &1ffc ff 32 06 42 6c 6d 44 23 18 1f 25 24 23 43 db fb &200c 91 4b 42 c5 73 05 &2012 d7 02 ; if(!room.flags[5] or &2014 af ; room.flags[2]) &2015 01 ; { &2016 0d 15 26 15 22 29 4d 04 ; "every side." &201e 5f ; room.flags[5] = true &201f 04 ; return &2020 03 ; } &2021 0d 44 7b 51 50 04 ; "the south and east." &2027 9f ; if(room.flags[1]) &2028 01 ; { &2029 2f ; room.flags[2] = true &202a 03 ; } &202b 1f ; room.flags[1] = true &202c 00 ; end ; bytecode_for_room_37_description &202d 0d 42 45 da fc d4 44 2e 22 25 15 0e 14 15 0e 1c ; "You are walking along the Rue de la Blanchisserie, Brussels. It &203d 11 2e 0e f9 62 0b 2e fa 67 06 3c 47 c1 06 fc 57 ; is raining. Again. A sentry box stands at the entrance to a &204d 06 34 fc d5 ff 11 fc b2 39 44 c6 32 34 17 22 11 ; grand house north." &205d 1e 14 0e 18 1f 25 23 15 79 04 &2067 00 ; end ; bytecode_for_room_38_description &2068 0d 42 45 35 34 fb 0a 18 11 1c 1c 27 11 29 35 44 ; "You are in a wide hallway in the Duke of Richmond's residence, &2078 2e a2 43 2e f9 4d fb 92 0b 79 43 44 fc 0b c6 06 ; north of the main entrance. Double doors lead out west to the &2088 fc d0 fc 53 1c 15 11 14 61 4c 32 44 fb 93 0b 51 ; ballroom, and there is a smaller door opposite. The northern &2098 7c 47 34 fb 87 4e de 06 44 fc d6 7a 47 fc d7 46 ; wall is covered by a beautiful Flemish tapestry showing an &20a8 34 fa f5 2e 16 1c 15 1d 19 23 18 ff 6b 23 18 1f ; eighteenth century battlescene." &20b8 27 19 1e 17 3a fa 8d fc bd fa 8e 04 &20c4 af ; if(room.flags[2]) &20c5 01 ; { &20c6 0d 42 53 1c 19 16 24 15 14 44 ff 6b 11 23 19 14 ; "you have lifted the tapestry aside" &20d6 15 05 &20d8 bf ; if(room.flags[3]) &20d9 01 ; { &20da 0d 0b 32 fc d8 34 fc d9 43 fc da 04 ; ", to reveal a flight of steps." &20e6 03 ; } ; else &20e7 01 ; { &20e8 0d 04 ; "." &20ea 03 ; } &20eb 03 ; } &20ec 00 ; end ; bytecode_for_room_39_description &20ed 0d 42 45 35 44 2e a2 43 2e f9 4d fc db 04 ; "You are in the Duke of Richmond's study." &20fb e7 ; if(!room.flags[6]) &20fc 01 ; { &20fd 0d 34 8a ff 14 43 44 11 22 15 11 7b 43 2e fa 67 ; "a large map of the area south of Brussels is spread on the &210d 47 23 20 22 15 11 14 38 44 ff 43 04 ; table." &2119 03 ; } &211a 00 ; end ; bytecode_for_room_3a_description &211b 0d 42 45 35 44 fb 93 05 ; "You are in the ballroom" &2123 af ; if(room.flags[2]) &2124 01 ; { &2125 0d 0b b6 47 63 fb 6d 04 ; ", which is now deserted." &212d 04 ; return &212e 03 ; } &212f df ; if(room.flags[5]) &2130 01 ; { &2131 0d 06 44 2e 75 47 fa 8f ff 59 32 44 2e a2 0b 62 ; ". The Doctor is speaking softly to the Duke, who evidently &2141 fa 90 fc 47 5b fc dc 34 27 1f 22 14 3d 47 84 24 ; does not believe a word he is being told." &2151 1f 1c 14 04 &2155 04 ; return &2156 03 ; } &2157 0d 0b fa 78 46 fa f5 27 1f 1d 15 1e 51 14 11 23 ; ", surrounded by beautiful women and dashingly handsome officers. &2167 18 19 1e 17 1c 29 fb 94 fa 6d 06 fb 95 47 9a 14 ; Everyone is very dashing, because someone has just informed the &2177 11 23 18 19 1e 17 0b fc bc fc c9 56 94 fb 96 44 ; Duke of Wellington that Napoleon has crossed the frontier. His &2187 2e a2 43 2e fa 8b 77 2e ca 56 13 22 1f 23 23 15 ; Grace is giving orders to a dozen of his officers, who dash off &2197 14 44 fb 39 06 5a 2e fc 58 47 17 19 26 19 1e 17 ; in all directions. Despatches are constantly being brought in to &21a7 fc dd 32 34 fc 4b 43 5a fa 6d 0b 62 14 11 23 18 ; the Duke. \nAfter a few minutes he sits on a settee, and you see &21b7 7e 35 89 fa 91 06 ff 73 45 fa f6 84 12 22 1f 25 ; that the Doctor has arrived before you." &21c7 17 18 24 35 32 44 2e a2 06 2d 9c 34 fc 1c ea 3d &21d7 fb 1a 38 34 f9 11 0b 51 42 5f 77 44 2e 75 56 fc &21e7 a1 9b 42 04 &21eb 5f ; room.flags[5] = true &21ec 00 ; end ; bytecode_for_room_3b_description &21ed d7 ; if(!room.flags[5]) &21ee 01 ; { &21ef 0d 59 42 fc 18 60 6e ff 72 52 44 fc da 0b 44 fc ; "As you make your way carefully down the steps, the panel &21ff 59 fc de 8e 4a fe 50 b7 42 06 42 86 fa 92 35 34 ; slides back into place behind you. You find yourselves in a &220f cb fc 0e 13 15 1c 1c 11 22 04 ; small low cellar." &2219 03 ; } ; else &221a 01 ; { &221b 0d 42 45 8e 35 44 fc 0e 13 15 1c 1c 11 22 04 ; "you are back in the low cellar." &222a 03 ; } &222b 0d 44 fc da 46 b6 42 fa 10 45 7b 0b 51 7c 47 34 ; "the steps by which you entered are south, and there is a black &223b 12 1c 11 13 1b cc 79 06 2d 35 44 50 7a 47 34 4e ; doorway north. \nIn the east wall is a door, just ajar, &224b 0b 94 11 1a 11 22 0b fa 74 05 ; through" &2255 d7 ; if(!room.flags[5]) &2256 01 ; { &2257 0d 44 13 22 11 13 1b 43 b6 42 6c 5f 34 16 15 11 ; "the crack of which you can see a fearful sight. The Warlord, &2267 22 16 25 1c 0e 23 19 17 18 24 06 44 2e e5 0b 34 ; a cruel grin creasing his evil face, sits beside a large &2277 13 22 25 15 1c 0e 17 22 19 1e fb 97 5a fc 4d fc ; grey metal cube, watching numbers on a display count down &2287 1d 0b fb 1a 91 34 8a fc 5a 99 fc 5b 0b fa 76 1e ; towards zero. Beyond him is a dark doorway." &2297 25 1d 12 15 22 23 38 34 14 19 23 20 1c 11 29 0e &22a7 13 1f 25 1e 24 52 e4 2a 15 22 1f 06 fc ac 6a 47 &22b7 34 fc 2b cc 04 &22bc 04 ; return &22bd 03 ; } &22be 0d b6 44 2e 75 47 fa 76 5a fc df 04 ; "which the Doctor is watching his enemy." &22ca 00 ; end ; bytecode_for_room_3c_description &22cb 0d 42 45 35 44 cd fc 5c 44 2e a2 43 2e f9 4d 26 ; "You are in the vaults below the Duke of Richmond's villa. The &22db 19 1c 1c 11 06 44 a3 47 9a 20 1f 1f 22 0b 69 73 ; light is very poor, but from the darkness east comes a faint &22eb 44 fa 93 50 80 34 16 11 19 1e 24 a4 51 a5 fb 1b ; green and blue glow of a sickly and evil hue. A dim doorway &22fb 43 34 23 19 13 1b 1c 29 51 fc 4d fc 19 06 34 fb ; stands behind you, south, and the vaults continue north." &230b 0b cc fc b2 b7 42 0b 7b 0b 51 44 cd fc b0 79 04 &231b 00 ; end ; bytecode_for_room_3d_description &231c 0d 42 45 35 44 cd 06 7c 47 34 a4 a3 7b 51 34 a5 ; "You are in the vaults. There is a green light south and a blue &232c 48 50 06 44 cd fc b0 79 04 ; one east. The vaults continue north." &2335 00 ; end ; bytecode_for_room_3e_description &2336 0d 7c 47 fc e0 fa 93 89 fc bb 0b fc 4f 73 34 a5 ; "There is pitch darkness all around, apart from a blue glow from &2346 fb 1b 73 44 7b 06 fc 5c 42 32 44 79 42 6d 44 81 ; the south. Below you to the north you hear the sound of gurgling &2356 43 17 25 22 17 1c 19 1e 17 fc 5d 04 ; water." &2362 00 ; end ; bytecode_for_room_3f_description &2363 0e ; skip_to_next_bytecode() &2364 00 ; end ; bytecode_for_room_40_description &2365 0d 44 a5 a3 47 c5 b7 42 73 44 4c 0b 51 44 a4 48 ; "The blue light is coming behind you from the west, and the green &2375 47 7b 06 79 47 44 81 43 16 1c 1f 27 19 1e 17 fc ; one is south. North is the sound of flowing water." &2385 5d 04 &2387 00 ; end ; bytecode_for_room_41_description &2388 0d 60 a6 45 63 fc 5e fc 5f 32 44 fc 2b 0b 69 89 ; "Your eyes are now quite used to the dark, but all you perceive &2398 42 fb 98 35 44 19 1e 1b 29 0e 12 1c 11 13 1b 1e ; in the inky blackness is" &23a8 15 23 23 47 05 &23ad c4 42 ; if(p["minion_state"] == 0) &23af 01 ; { &23b0 0d 34 23 18 11 16 24 43 fc e1 05 ; "a shaft of intense" &23bb 8c 3e 08 ; if(p["vault_colour"] == &04) &23be 01 ; { &23bf 0d a5 05 ; "blue" &23c2 03 ; } ; else &23c3 01 ; { &23c4 0d a4 05 ; "green" &23c7 03 ; } &23c8 0d a3 fa 94 42 73 44 4c 0b 51 05 ; "light following you from the west, and" &23d3 03 ; } &23d4 0d 44 23 24 15 1e 13 18 51 81 43 34 dd fc 60 79 ; "the stench and sound of a running sewer north." &23e4 04 &23e5 00 ; end ; bytecode_for_room_42_description &23e6 d7 ; if(!room.flags[5]) &23e7 01 ; { &23e8 0d 42 a7 0b 51 1c 11 1e 14 38 34 fc 61 94 fc 62 ; "You fall, and land on a ledge just above the surface of a &23f8 44 fa 11 43 34 16 1f 25 1c fc 60 06 44 05 ; foul sewer. The" &2406 9c 3e 08 ; if(p["vault_colour"] != &04) &2409 01 ; { &240a 0d a4 05 ; "green" &240d 03 ; } ; else &240e 01 ; { &240f 0d a5 05 ; "blue" &2412 03 ; } &2413 0d a3 fc 62 42 fa 12 12 1c 19 1e 14 19 1e 17 1c ; "light above you becomes blindingly intense and seems to dart &2423 29 fc e1 51 0e be 32 14 11 22 24 83 59 67 fb 91 ; about as if hunting for its quarry." &2433 4b 55 21 25 11 22 22 29 04 &243c 04 ; return &243d 03 ; } &243e 0d 42 45 38 44 fc 61 04 ; "you are on the ledge." &2446 00 ; end ; bytecode_for_room_43_description &2447 0e ; skip_to_next_bytecode() &2448 00 ; end ; bytecode_for_room_44_description &2449 0d 44 fa 95 45 fb 99 35 06 44 a4 47 79 43 42 0b ; "The creatures are closing in. The green is north of you, the &2459 44 a5 48 7b 04 ; blue one south." &245e 00 ; end ; bytecode_for_room_45_description &245f 0d 44 fc 4d fc e2 f9 12 06 44 a5 47 b7 42 32 44 ; "The evil lights falter. The blue is behind you to the east, the &246f 50 0b 44 a4 47 79 04 ; green is north." &2476 00 ; end ; bytecode_for_room_46_description &2477 0d 44 fa 95 45 3f 13 1c 1f 23 15 77 42 6c 63 5f ; "The creatures are so close that you can now see a wall to the &2487 34 7a 32 44 7b 06 35 60 20 11 1e 19 13 42 45 5b ; south. In your panic you are not sure from which direction the &2497 fb 19 73 b6 fb 9a 44 ce 45 c5 04 ; minions are coming." &24a2 00 ; end ; bytecode_for_room_47_description &24a3 0d 7f 45 fc d2 38 42 06 7c 47 fa 93 51 23 11 16 ; "They are almost on you. There is darkness and safety south or &24b3 15 24 29 7b 36 50 04 ; east." &24ba 00 ; end ; bytecode_for_room_48_description &24bb 0d 35 60 fc 63 51 fa 96 42 fc 34 32 5f 23 18 11 ; "In your terror and confusion you seem to see shafts of green and &24cb 16 24 23 43 a4 51 a5 a3 fb 9b 42 73 89 fc 64 04 ; blue light piercing you from all sides." &24db 00 ; end ; bytecode_for_room_49_description &24dc 0d 60 97 13 1c 15 11 22 23 fa f7 59 42 fc ba 42 ; "Your head clears remarkably as you realise you are trapped. The &24ec 45 24 22 11 20 20 15 14 06 44 a4 a8 fa f8 73 44 ; green minion approaches from the west, the blue one from the &24fc 4c 0b 44 a5 48 73 44 79 06 b7 42 45 49 fc 65 fc ; north. Behind you are two solid walls." &250c b8 04 &250e 00 ; end ; bytecode_for_room_4a_description &250f 0d fc e3 08 34 fc e4 cc fc e5 32 44 4c 06 44 ce ; "Escape! a bright doorway opens to the west. The minions are &251f 45 b7 42 0b fb 99 35 73 44 50 51 79 0b 51 7c 47 ; behind you, closing in from the east and north, and there is a &252f 34 7a 7b 04 ; wall south." &2533 00 ; end ; bytecode_for_room_4b_description &2534 c4 42 ; if(p["minion_state"] == 0) &2536 01 ; { &2537 0d 44 a4 a8 fc 66 73 44 8c 6f 34 27 22 11 19 24 ; "The green minion rises from the floor like a wraith, its &2547 18 0b 55 fc e6 fb 0c 14 25 1c 1c 15 14 46 17 22 ; third eye dulled by grief, and stabs you through the &2557 19 15 16 0b 51 fc e7 42 fa 74 44 fc 67 04 ; heart." &2565 08 09 ; player_room = &05 &2567 56 ; execute_bytecode_for_room() &2568 04 ; return &2569 03 ; } &256a 0d 42 45 35 44 cd 06 7c 47 34 fb 0b cc 7b 04 ; "you are in the vaults. There is a dim doorway south." &2579 00 ; end ; bytecode_for_room_4c_description &257a 0e ; skip_to_next_bytecode() &257b 00 ; end ; bytecode_for_room_4d_description &257c 0e ; skip_to_next_bytecode() &257d 00 ; end ; bytecode_for_room_4e_description &257e 0e ; skip_to_next_bytecode() &257f 00 ; end ; bytecode_for_room_4f_description &2580 0e ; skip_to_next_bytecode() &2581 00 ; end ; bytecode_for_room_50_description &2582 0d 42 45 35 fc e0 fa 93 06 44 81 43 dd fc 5d 80 ; "You are in pitch darkness. The sound of running water comes from &2592 73 44 79 04 ; the north." &2596 00 ; end ; bytecode_for_room_51_description &2597 0e ; skip_to_next_bytecode() &2598 00 ; end ; bytecode_for_room_52_description &2599 0e ; skip_to_next_bytecode() &259a 00 ; end ; bytecode_for_room_53_description &259b 0e ; skip_to_next_bytecode() &259c 00 ; end ; bytecode_for_room_54_description &259d 0e ; skip_to_next_bytecode() &259e 00 ; end ; bytecode_for_room_55_description &259f 0e ; skip_to_next_bytecode() &25a0 00 ; end ; bytecode_for_room_56_description &25a1 0e ; skip_to_next_bytecode() &25a2 00 ; end ; bytecode_for_room_57_description &25a3 0d 42 45 35 2b 06 25 24 24 15 22 05 24 1f 24 11 ; "You are in " + random("utter", "total") + " darkness, down in &25b3 1c 05 04 0e fa 93 0b 52 35 44 cd 04 ; the vaults." &25bf 00 ; end ; bytecode_for_room_58_description &25c0 0d 34 fc e4 cc fc e5 4c 06 7c 47 34 7a 7b 04 ; "A bright doorway opens west. There is a wall south." &25cf 00 ; end ; bytecode_for_room_59_description &25d0 0d 7c 47 44 81 43 dd fc 5d 79 06 34 a4 a3 23 18 ; "There is the sound of running water north. A green light &25e0 19 1d 1d 15 22 23 fa 74 44 fc e8 50 04 ; shimmers through the gloom east." &25ed 00 ; end ; bytecode_for_room_5a_description &25ee 0d 44 a4 a3 1b 15 15 20 23 32 44 50 43 42 04 ; "The green light keeps to the east of you." &25fd 00 ; end ; bytecode_for_room_5b_description &25fe 0d 44 a4 eb 47 50 0b 51 7c 47 34 fb 0b cc 7b 04 ; "The green creature is east, and there is a dim doorway south." &260e 00 ; end ; bytecode_for_room_5c_description &260f 0e ; skip_to_next_bytecode() &2610 00 ; end ; bytecode_for_room_5d_description &2611 0e ; skip_to_next_bytecode() &2612 00 ; end ; bytecode_for_room_5e_description &2613 0e ; skip_to_next_bytecode() &2614 00 ; end ; bytecode_for_room_5f_description &2615 0d 42 45 35 44 fc 68 0b 78 44 fc 60 b7 42 32 44 ; "You are in the vault, with the sewer behind you to the north. &2625 79 06 44 a5 2b 06 a3 05 eb 05 04 0e 2b 06 1c 25 ; The blue " + random("light", "creature") + " " + random("lurks", &2635 22 1b 23 05 20 11 24 22 1f 1c 23 05 04 0e 35 44 ; "patrols") + " in the " + random("darkness", "gloom") + " &2645 2b 06 fa 93 05 fc e8 05 04 0e 7b 04 ; south." &2651 00 ; end ; bytecode_for_room_60_description &2652 0d 42 fe 57 35 44 cc 38 44 50 4d 43 34 fa 97 fb ; "You stand in the doorway on the east side of a brightly lit &2662 0d fc 68 06 60 fb 9c 47 16 19 28 15 14 38 44 16 ; vault. Your attention is fixed on the figure of the Warlord, now &2672 19 17 25 22 15 43 44 2e e5 0b 63 18 19 14 15 1f ; hideously deformed, sitting with his back to you in the centre &2682 25 23 1c 29 fb 9d 0b bd 78 5a 8e 32 42 35 44 fc ; of the room. \nIn his hands he holds an atomic disruptor. A &2692 69 43 44 74 06 2d 35 5a c9 3d fc e9 3a c8 e9 06 ; cackling laugh of victory issues from his breathing tubes as he &26a2 34 13 11 13 1b 1c 19 1e 17 0e 1c 11 25 17 18 43 ; starts to turn towards you. All the misery and savagery he has &26b2 fa 13 19 23 23 25 15 23 73 5a fa 98 fc ea 59 3d ; witnessed and caused for centuries is carved on his face and has &26c2 fc eb 32 fc 6a e4 42 06 89 44 1d 19 23 15 22 29 ; twisted his limbs." &26d2 51 fb 9e 3d 56 fa 99 51 fc ec 4b fb 9f 47 fc ed &26e2 38 5a fc 1d 51 56 24 27 19 23 24 15 14 5a fc ee &26f2 04 &26f3 00 ; end ; bytecode_for_room_61_description &26f4 0d 0e 49 fc e2 fb a0 38 42 61 43 44 fa 93 59 49 ; " Two lights converge on you out of the darkness as two creatures &2704 fa 95 fa 5f 06 7f 45 11 1c 19 1b 15 35 fb 1c 0b ; approach. They are alike in form, though one is vivid green and &2714 fb a1 48 47 26 19 26 19 14 a4 51 44 fc 38 fb 1d ; the other deep blue. They are the Warlord's minions. \nThey are &2724 a5 06 7f 45 44 2e fa ed ce 06 2d 7f 45 9d 1d 15 ; three metres tall, with limbs as thin as matchsticks ending in &2734 24 22 15 23 0e 24 11 1c 1c 0b 78 fc ee 59 fb 1e ; webbed hands and feet, and have wide, shallow heads like frogs. &2744 59 1d 11 24 13 18 23 24 19 13 1b 23 0e 15 1e 14 ; Their bodies are veined but smooth, and their protruding eyes &2754 19 1e 17 35 cf c9 51 54 0b 51 53 fb 0a 0b ec 18 ; are filled with unquenchable hatred. \nFrom a third eye high &2764 15 11 14 23 6f 16 22 1f 17 23 06 a9 12 1f 14 19 ; above each forehead come blinding beams of coloured light. In &2774 15 23 45 26 15 19 1e 15 14 69 23 1d 1f 1f 24 18 ; their webbed paws they hold long curved knives, sharpened to &2784 0b 51 a9 fa f9 a6 45 16 19 1c 1c 15 14 78 f9 4e ; perfection." &2794 fc ef 06 2d 73 34 fc e6 fb 0c fc 3c fc 62 fb 1f &27a4 fb a2 70 12 1c 19 1e 14 19 1e 17 0e 12 15 11 1d &27b4 23 43 fb a3 a3 06 35 a9 cf fb 20 7f 18 1f 1c 14 &27c4 92 fc f0 fc f1 0b fa 9a 32 fa 9b 04 &27d0 00 ; end ; bytecode_for_room_62_description &27d1 0d 42 45 fa 9c 46 48 43 44 2e fa ed ce 0b 34 fb ; "You are confronted by one of the Warlord's minions, a froglike &27e1 a4 eb 78 9d a6 06 73 44 fc e6 80 3a fc e1 fc 6b ; creature with three eyes. From the third comes an intense beam &27f1 43 a3 06 35 55 cf c9 3c fc e9 49 92 fc f0 fc f1 ; of light. In its webbed hands it holds two long curved knives, &2801 0b fc 6c 43 b6 45 22 11 2a 1f 22 fc f2 04 ; both of which are razor sharp." &280f 00 ; end ; bytecode_for_room_63_description &2810 0d 42 20 1c 25 1e 17 15 4a fb 21 51 16 19 1c 24 ; "You plunge into cold and filthy water. The sides are steep and &2820 18 29 fc 5d 06 44 fc 64 45 fc 6d 51 23 1c 19 20 ; slippery, and at last you drown." &2830 20 15 22 29 0b 51 39 fc 0c 42 14 22 1f 27 1e 04 &2840 08 09 ; player_room = &05 &2842 56 ; execute_bytecode_for_room() &2843 00 ; end ; bytecode_for_room_64_description &2844 d7 ; if(!room.flags[5]) &2845 01 ; { &2846 0d 0d 2e 34 fc 6e 0b 67 2e 19 0f 1d 5b fb a5 0b ; " \"A bomb, if I'm not mistaken, \" he mutters. He drops the &2856 0c 3d fb a6 06 3d fc f3 44 aa 0b ab 61 5a ac ff ; lance, takes out his sonic screwdriver and removes the front &2866 74 51 fa 14 44 fc 50 fc 59 04 ; panel." &2870 3b 11 ; object_room["lance"] = player_room &2872 5f ; room.flags[5] = true &2873 03 ; } ; else &2874 01 ; { &2875 0d 42 45 35 44 fc 6e fc 68 05 ; "you are in the bomb vault" &287f 8c 3c 0e ; if(p["bomb_disarming_state"] == &0a) &2882 01 ; { &2883 0d 06 34 fb a4 eb 47 83 32 fa 9d 42 04 ; ". A froglike creature is about to exterminate you." &2890 03 ; } ; else &2891 01 ; { &2892 0d 0b ed 8b 44 2e fb a7 fa 80 59 3d 27 1f 22 1b ; ", looking over the Doctor's shoulder as he works on the &28a2 23 38 44 fc 5a fc 5b 04 ; grey cube." &28aa 03 ; } &28ab 03 ; } &28ac c4 3c ; if(p["bomb_disarming_state"] == 0) &28ae 01 ; { &28af 0d fa 15 fc 44 0b 3d fb a8 0b 0d 2e 11 18 0e 29 ; "peering inside, he remarks, \"Ah yes. Now if only I had a &28bf 15 23 06 63 67 85 2e 19 fc 13 34 fc 14 43 13 1c ; pair of clippers. . . \" " &28cf 19 20 20 15 22 23 06 06 06 0c 05 &28da 03 ; } &28db 00 ; end ; bytecode_for_room_65_description &28dc 0d 2c 1b 15 22 27 18 25 1d 20 2c 08 3a fb a9 fa ; "KERWHUMP! an enormous explosion devastates the building. The &28ec 7f fa 9e 44 fa 79 06 44 2e a2 43 2e fa 8b 0b 62 ; Duke of Wellington, who is in the study at the time, is killed &28fc 47 35 44 fc db 39 44 64 0b 47 fc f4 59 44 8c fa ; as the floor collapses, with undesirable consequences for human &290c 9f 0b 78 fa a0 f9 4f 4b 18 25 1d 11 1e fc f5 06 ; history. \nThis is of little concern to you, since small pieces &291c 2d 8d 47 43 fc 6f fa 16 32 42 0b fc 70 cb fc f6 ; of you are splattered over the walls." &292c 43 42 45 fa fa 8b 44 fc b8 04 &2936 08 09 ; player_room = &05 &2938 56 ; execute_bytecode_for_room() &2939 00 ; end ; bytecode_for_room_66_description &293a 0d 42 86 e3 38 44 2e fa 67 7d 0b c0 44 fb aa 43 ; "You find yourself on the Brussels road, between the villages of &294a 2e fb 0e 2e 40 2e fb 0f 32 44 7b 51 2e fb ab 32 ; Mont St Jean to the south and Waterloo to the north. On either &295a 44 79 06 38 15 19 24 18 15 22 4d 43 44 7d 47 44 ; side of the road is the Forest of Soignes." &296a 2e ad 43 2e fb ac 04 &2971 c4 32 ; if(p["cart_state"] == 0) &2973 01 ; { &2974 0d 34 fc d7 ff 2e fb ad 46 0b 14 22 19 26 15 1e ; "a covered cart trundles by, driven by a farmer's boy." &2984 46 34 16 11 22 1d 15 22 0f 23 f9 0a 04 &2991 03 ; } &2992 00 ; end ; bytecode_for_room_67_description &2993 0d 42 fe 5b 34 ff 2f 06 2b 06 05 73 05 04 0e 2b ; "You climb a tree. " + random("", "From") + " " + random("up", &29a3 06 58 05 05 04 0e 4f 42 53 34 2b 08 1c 1f 26 15 ; "") + " here you have a " + random("lovely", "beautiful", &29b3 1c 29 05 fa f5 05 fc f7 05 fc 1e 05 04 0e fb 22 ; "perfect", "fine") + " view of a lot more trees." &29c3 43 34 fb 09 71 fc 71 04 &29cb cf ; if(room.flags[4]) &29cc 01 ; { &29cd 0d 44 fc 72 47 22 1f 25 17 18 1c 29 0e 05 ; "the hill is roughly " &29db 03 ; } ; else &29dc 01 ; { &29dd 0d 42 6c 5f 34 fc 72 22 19 23 19 1e 17 61 43 44 ; "you can see a hill rising out of the woods to the" &29ed 27 1f 1f 14 23 32 44 05 &29f5 03 ; } &29f6 8c 2b 05 ; if(p["pig_sty_wall_hole"] == &01) &29f9 01 ; { &29fa 0d 79 04 ; "north." &29fd 03 ; } &29fe 8c 2b 06 ; if(p["pig_sty_wall_hole"] == &02) &2a01 01 ; { &2a02 0d fe 6b 04 ; "northwest." &2a06 03 ; } &2a07 8c 2b 07 ; if(p["pig_sty_wall_hole"] == &03) &2a0a 01 ; { &2a0b 0d 4c 04 ; "west." &2a0e 03 ; } &2a0f 8c 2b 08 ; if(p["pig_sty_wall_hole"] == &04) &2a12 01 ; { &2a13 0d fe 6a 04 ; "northeast." &2a17 03 ; } &2a18 8c 2b 09 ; if(p["pig_sty_wall_hole"] == &05) &2a1b 01 ; { &2a1c 0d 50 04 ; "east." &2a1f 03 ; } &2a20 00 ; end ; bytecode_for_room_68_description &2a21 0e ; skip_to_next_bytecode() &2a22 00 ; end ; bytecode_for_room_69_description &2a23 0e ; skip_to_next_bytecode() &2a24 00 ; end ; bytecode_for_room_6a_description &2a25 0e ; skip_to_next_bytecode() &2a26 00 ; end ; bytecode_for_room_6b_description &2a27 0e ; skip_to_next_bytecode() &2a28 00 ; end ; bytecode_for_room_6c_description &2a29 0e ; skip_to_next_bytecode() &2a2a 00 ; end ; bytecode_for_room_6d_description &2a2b 0e ; skip_to_next_bytecode() &2a2c 00 ; end ; bytecode_for_room_6e_description &2a2d 0d 42 45 2b 08 fb ae 05 fb 1d 05 da 05 1c 1f 23 ; "You are " + random("somewhere", "deep", "walking", "lost") + " &2a3d 24 05 04 0e 35 44 ad 06 42 fc c1 42 5f 2b 06 fb ; in the forest. You think you see " + random("sinister", &2a4d 3a 05 23 18 11 14 1f 27 29 05 04 0e 16 19 17 25 ; "shadowy") + " figures " + random("flitting", "moving") + " &2a5d 22 15 23 0e 2b 06 fb af 05 fc f8 05 04 0e b7 44 ; behind the trees." &2a6d fc 71 04 &2a70 00 ; end ; bytecode_for_room_6f_description &2a71 0d 9d fa 17 fb b0 73 44 05 ; "Three unkempt deserters from the" &2a7a a7 ; if(!room.flags[2]) &2a7b 01 ; { &2a7c 0d 2e ee 05 ; "Prussian" &2a80 2f ; room.flags[2] = true &2a81 03 ; } ; else &2a82 01 ; { &2a83 0d 2e ef 05 ; "English" &2a87 03 ; } &2a88 0d fc 3e fe 34 61 38 42 04 ; "army jump out on you." &2a91 c4 0e ; if(p["number_of_objects_carried"] == 0) &2a93 01 ; { &2a94 0d 16 19 1e 14 19 1e 17 42 53 f0 fc 73 fb b1 0b ; "finding you have nothing worth stealing, they beat you to &2aa4 7f 12 15 11 24 42 32 fc 74 04 ; death." &2aae 08 09 ; player_room = &05 &2ab0 56 ; execute_bytecode_for_room() &2ab1 04 ; return &2ab2 03 ; } &2ab3 0d 7f 23 24 15 11 1c 0e 05 ; "they steal " &2abc 1c 0b ; p["old_room"] = 1 &2abe 0c 09 0c ; p["new_room"] = &05 &2ac1 06 ; list_objects(p["old_room"]. p["new_room"]) &2ac2 0d 0b 51 fb b2 4a 44 fc 71 04 ; ", and disappear into the trees." &2acc 00 ; end ; bytecode_for_room_70_description &2acd 0d 42 45 39 44 16 1f 1f 24 43 34 cb fc 72 b6 fc ; "You are at the foot of a small hill which rises steeply up to &2add 66 23 24 15 15 20 1c 29 58 32 44 79 04 ; the north." &2aea 00 ; end ; bytecode_for_room_71_description &2aeb 0d 42 53 23 24 22 25 17 17 1c 15 14 32 44 12 22 ; "You have struggled to the brow of a small hill." &2afb 1f 27 43 34 cb fc 72 04 &2b03 d7 ; if(!room.flags[5]) &2b04 01 ; { &2b05 0d 24 1f 20 20 19 1e 17 44 fc 1f 0b 42 fb b3 34 ; "topping the rise, you encounter a most unexpected &2b15 6b fa fb fb b4 04 ; surprise." &2b1b 03 ; } &2b1c a7 ; if(!room.flags[2]) &2b1d 01 ; { &2b1e 0d 34 d0 fb 78 fe 66 22 11 17 17 15 14 0e 23 1b ; "a strange character wearing ragged sky blue breeches and a &2b2e 29 a5 fb b5 51 34 29 15 1c 1c 1f 27 0e 1b 15 22 ; yellow kerchief is covering you with a loaded pistol." &2b3e 13 18 19 15 16 47 fb b6 42 78 34 fc b6 ff 48 04 &2b4e 03 ; } ; else &2b4f 01 ; { &2b50 0d 79 47 34 fb 22 8b 44 fb 23 43 2e fa 67 04 ; "north is a view over the city of Brussels." &2b5f 03 ; } &2b60 d7 ; if(!room.flags[5]) &2b61 01 ; { &2b62 5f ; room.flags[5] = true &2b63 0d 73 44 2e 25 1e 19 1f 1e 0e 2e 1a 11 13 1b 35 ; "from the Union Jack in his hat, he might just be British. \n &2b73 5a ff 13 0b 3d fc 42 94 37 2e fb b7 06 2d 0d 2e ; \"Don't move, \" he orders. \"You have three guesses; what &2b83 fc 75 fb 10 0b 0c 3d fc dd 06 0d 2e 42 53 9d 17 ; is my name? \" " &2b93 25 15 23 23 15 23 0a a1 47 72 1e 11 1d 15 07 0c &2ba3 05 &2ba4 03 ; } &2ba5 00 ; end ; bytecode_for_room_72_description &2ba6 0d 42 45 35 44 fc f9 43 2e fb ab 06 34 1e 25 1d ; "You are in the village of Waterloo. A number of houses are being &2bb6 12 15 22 43 fc a5 45 84 f9 50 4b fe 1f 46 44 fb ; requisitioned for use by the allied army. The road continues &2bc6 b8 fc 3e 06 44 7d fb b9 79 04 ; north." &2bd0 00 ; end ; bytecode_for_room_73_description &2bd1 0e ; skip_to_next_bytecode() &2bd2 00 ; end ; bytecode_for_room_74_description &2bd3 0d 42 45 38 44 2e fa 67 7d 0b b6 fc 2a 79 51 7b ; "You are on the Brussels road, which runs north and south through &2be3 fa 74 44 14 15 20 24 18 23 43 44 2e ad 43 2e fb ; the depths of the Forest of Soignes." &2bf3 ac 04 &2bf5 00 ; end ; bytecode_for_room_75_description &2bf6 0d 42 86 e3 38 44 fa fc fa 64 43 2e fa 67 06 44 ; "You find yourself on the southeastern outskirts of Brussels. The &2c06 7d 73 44 7b bc fe 6b 4a 44 fb 23 4f 06 7c 47 34 ; road from the south turns northwest into the city here. There is &2c16 fc d7 ff 2e 20 11 22 1b 15 14 39 44 4d 43 44 7d ; a covered cart parked at the side of the road." &2c26 04 &2c27 0c 0a 32 ; p["cart_state"] = &06 &2c2a 00 ; end ; bytecode_for_room_76_description &2c2b 0d 3c 47 c7 13 22 11 1d 20 15 14 35 4f 0b 82 44 ; "It is rather cramped in here, under the covers." &2c3b 13 1f 26 15 22 23 04 &2c42 84 32 09 ; if(p["cart_state"] < &05) &2c45 01 ; { &2c46 0d 44 ff 2e 12 25 1d 20 23 fc d4 fa f2 04 ; "the cart bumps along northwards." &2c54 03 ; } &2c55 00 ; end ; bytecode_for_room_77_description &2c56 0d 34 fc 4b fb ba 73 44 8f f1 42 51 fb 24 42 9b ; "A dozen dragoons from the camp discover you and drag you before &2c66 2e ca 06 44 2e fb 8b 0b fa 18 0b 47 fa fd 46 60 ; Napoleon. The Emperor, however, is impressed by your initiative &2c76 fb bb 51 11 20 20 1f 19 1e 24 23 42 32 5a fb 8e ; and appoints you to his personal guard. \nThe French win the &2c86 ff 41 06 2d 44 2e b9 27 19 1e 44 fa 19 44 fc 0a ; battles the next day, since the Duke of Wellington has been &2c96 f9 0b 0b fc 70 44 2e a2 43 2e fa 8b 56 57 fc f4 ; killed by the Warlord, and for the next sixty years Napoleonic &2ca6 46 44 2e e5 0b 51 4b 44 fc 0a 23 19 28 24 29 0e ; armies rampage round Europe, during which time you rise to the &2cb6 29 15 11 22 23 2e 0e fa a1 fc fa fa 1a 95 2e fc ; rank of general. Exciting, but not what you came here for. The &2cc6 aa 0b 14 25 22 19 1e 17 b6 64 42 fc 1f 32 44 22 ; Doctor never forgives your treachery." &2cd6 11 1e 1b 43 fa 1b 06 15 28 13 19 24 19 1e 17 0b &2ce6 69 5b a1 42 13 11 1d 15 4f 4b 06 44 2e 75 1e 15 &2cf6 26 15 22 fb bc 60 fa a2 04 &2cff 08 09 ; player_room = &05 &2d01 56 ; execute_bytecode_for_room() &2d02 00 ; end ; bytecode_for_room_78_description &2d03 0d 42 86 e3 79 43 44 8f 06 44 fc 19 51 fc 1a fb ; "You find yourself north of the camp. The hue and cry continues &2d13 b9 38 89 fc 64 04 ; on all sides." &2d19 00 ; end ; bytecode_for_room_79_description &2d1a 0d 42 fc 34 32 53 fb 83 44 fe 62 fa 1c 0b fb a1 ; "You seem to have escaped the search parties, though there is &2d2a 7c 47 5e fb bd fc fb 32 44 7b 06 42 6c fb 25 6d ; some shouting still to the south. You can also hear the sounds &2d3a 44 23 1f 25 1e 14 23 43 fb be 73 44 79 51 50 04 ; of fighting from the north and east." &2d4a a7 ; if(!room.flags[2]) &2d4b 01 ; { &2d4c 2f ; room.flags[2] = true &2d4d 44 20 ; p["score"] ++ &2d4f 03 ; } &2d50 00 ; end ; bytecode_for_room_7a_description &2d51 0d 42 86 e3 35 34 20 1c 1f 25 17 18 15 14 0e 16 ; "You find yourself in a ploughed field" &2d61 19 15 1c 14 05 &2d66 a7 ; if(!room.flags[2]) &2d67 01 ; { &2d68 0d 0b fc fc 35 44 b2 43 34 90 c0 2e b9 51 2e ee ; ", caught in the middle of a battle between French and &2d78 e2 06 92 fc 76 11 14 26 11 1e 13 15 73 44 79 51 ; Prussian infantry. Long lines advance from the north and &2d88 7b 0b d1 a9 fa a3 46 26 1f 1c 1c 15 29 23 06 fb ; south, firing their muskets by volleys. Everyone seems to be &2d98 95 be 32 37 d1 39 42 05 ; firing at you" &2da0 03 ; } &2da1 0d 04 ; "." &2da3 00 ; end ; bytecode_for_room_7b_description &2da4 0d 42 45 da 32 44 fb 11 43 34 ec fc 1f 06 7c 47 ; "You are walking to the top of a shallow rise. There is still the &2db4 fc fb 44 81 43 fb be 89 fc bb 04 ; sound of fighting all around." &2dbf a7 ; if(!room.flags[2]) &2dc0 01 ; { &2dc1 0d fa fe 34 fa a4 fa 1d 8b 44 fc 3b 35 fc 50 51 ; "suddenly a cannonball bounces over the ridge in front and &2dd1 22 1f 1c 1c 23 fb bf e4 42 04 ; rolls directly towards you." &2ddb 03 ; } &2ddc 00 ; end ; bytecode_for_room_7c_description &2ddd 0d 42 45 38 44 fc 3b 06 44 ec fc fd fc b1 be 32 ; "You are on the ridge. The shallow valley ahead seems to be full &2ded 37 fc c2 43 f9 51 04 ; of skirmishers." &2df4 a7 ; if(!room.flags[2]) &2df5 01 ; { &2df6 0d 73 44 fc d6 4d 43 44 fc fd 34 f9 52 47 fc fe ; "from the northern side of the valley a sharpshooter is &2e06 fb bf 39 42 04 ; aiming directly at you." &2e0b 03 ; } &2e0c 00 ; end ; bytecode_for_room_7d_description &2e0d 0d 42 45 da fc d4 44 4d 43 34 fa a5 06 7c 47 34 ; "You are walking along the side of a cornfield. There is a &2e1d fa a6 32 44 4c 05 ; farmhouse to the west" &2e23 c4 30 ; if(p["cavalry_state"] == 0) &2e25 01 ; { &2e26 0d 73 b6 80 44 81 43 5e fb c0 05 ; "from which comes the sound of some commotion" &2e31 03 ; } &2e32 0d 04 ; "." &2e34 e7 ; if(!room.flags[6]) &2e35 01 ; { &2e36 0d 38 44 20 11 24 18 96 3a 1f 16 16 19 13 15 22 ; "on the path lies an officer's whistle." &2e46 0f 23 ff 5f 04 &2e4b 03 ; } &2e4c 00 ; end ; bytecode_for_room_7e_description &2e4d 0d 42 45 38 44 79 4d 43 34 fa a5 06 7c 47 34 fc ; "You are on the north side of a cornfield. There is a hamlet west &2e5d af 4c 51 ad 50 04 ; and forest east." &2e63 c4 30 ; if(p["cavalry_state"] == 0) &2e65 01 ; { &2e66 0d 2d 39 8d 9f 2e b9 bb b8 73 34 fa a6 32 44 fe ; "\nAt this moment French cavalry emerge from a farmhouse to &2e76 6d 0b 51 d2 35 60 fb 9a 04 ; the southwest, and charge in your direction." &2e7f 03 ; } &2e80 00 ; end ; bytecode_for_room_7f_description &2e81 c4 30 ; if(p["cavalry_state"] == 0) &2e83 01 ; { &2e84 0d 44 bb fc 77 7f 45 5c fc 12 b7 fc df fc 76 51 ; "The cavalry decide they are too far behind enemy lines and &2e94 fc 6a 8e 04 ; turn back." &2e98 44 30 ; p["cavalry_state"] ++ &2e9a 44 20 ; p["score"] ++ &2e9c 03 ; } &2e9d 0d 89 47 fc 78 06 42 6c 5f 34 7d 32 44 4c 0b 51 ; "all is quiet. You can see a road to the west, and dark forest &2ead fc 2b ad 79 51 50 04 ; north and east." &2eb4 00 ; end ; bytecode_for_room_80_description &2eb5 0d 42 45 35 44 23 24 11 12 1c 15 fc 79 fc 0a 32 ; "You are in the stable yard next to the farm, which seems to have &2ec5 44 fc 54 0b b6 be 32 53 57 fc a6 58 04 ; been boarded up." &2ed2 a7 ; if(!room.flags[2]) &2ed3 01 ; { &2ed4 0d 34 fc 7a 0b 1d 11 14 78 fb 12 0b 47 fb c1 95 ; "a horse, mad with fear, is cantering round the yard, rearing &2ee4 44 fc 79 0b fa 1e 51 1e 15 19 17 18 19 1e 17 04 ; and neighing." &2ef4 03 ; } &2ef5 0d 38 44 17 22 1f 25 1e 14 96 44 fb 26 43 34 2e ; "on the ground lies the body of a Dutch despatch rider." &2f05 fb 3b ff 69 22 19 14 15 22 04 &2f0f af ; if(room.flags[2] and &2f10 e7 ; !room.flags[6]) &2f11 01 ; { &2f12 0d 42 63 98 5e ff 73 91 6a 04 ; "you now notice some despatches beside him." &2f1c 03 ; } &2f1d 00 ; end ; bytecode_for_room_81_description &2f1e 0d 42 45 35 44 fc f9 43 2e fb 0e 2e 40 2e fb 0f ; "You are in the village of Mont St Jean. There is forest to the &2f2e 06 7c 47 ad 32 44 4c 51 16 11 22 1d 1c 11 1e 14 ; west and farmland east. The road runs north and south." &2f3e 50 06 44 7d fc 2a 79 51 7b 04 &2f48 00 ; end ; bytecode_for_room_82_description &2f49 0d 42 fc 7b 39 44 fa e5 43 2e fb 3c 2e fb 27 06 ; "You arrive at the crossroads of Quatre Bras. You are taken &2f59 42 45 fc 7c 9b 2e f9 13 2e fb 3d 0b 62 fa 1f 42 ; before Prince Bernard, who decides you are on the allied side &2f69 45 38 44 fb b8 4d 51 23 24 22 1f 1e 17 fb c2 32 ; and strong enough to fight. Unfortunately the allies are &2f79 fc 7d 06 f9 53 44 11 1c 1c 19 15 23 45 fb c3 35 ; defeated in the battle the following day, because the Duke of &2f89 44 90 44 fa 94 f9 0b 0b fc bc 44 2e a2 43 2e fa ; Wellington has been assassinated by the Warlord. You acquit &2f99 8b 56 57 f9 54 46 44 2e e5 06 42 11 13 21 25 19 ; yourself heroically, and die holding the standard. Romantic, but &2fa9 24 e3 f9 21 0b 51 fb 13 fb c4 44 fb c5 06 fb c6 ; pointless." &2fb9 0b 69 fa a7 04 &2fbe 08 09 ; player_room = &05 &2fc0 56 ; execute_bytecode_for_room() &2fc1 00 ; end ; bytecode_for_room_83_description &2fc2 0d 42 2b 08 fc 7e fb c7 4a 3a fa a8 14 25 15 1c ; "You " + random("walk straight into an artillery duel", "run into &2fd2 05 ff 1c 4a 34 23 1b 19 22 1d 19 23 18 05 fb 3e ; a skirmish", "wander into a pitched battle", "get caught up in &2fe2 4a 34 20 19 24 13 18 15 14 90 05 fe 1b fc fc 58 ; cavalry charges") + " between the French and Prussian armies. A &2ff2 35 bb fb c8 05 04 0e c0 44 2e b9 51 2e ee fc fa ; stray shot hits you, with lethal results." &3002 06 34 23 24 22 11 29 ae fc 52 42 0b 78 1c 15 24 &3012 18 11 1c 0e 22 15 23 25 1c 24 23 04 &301e 08 09 ; player_room = &05 &3020 56 ; execute_bytecode_for_room() &3021 00 ; end ; bytecode_for_room_84_description &3022 0d fb ae 35 44 fc 69 43 2e fa 67 0b fc 12 32 44 ; "Somewhere in the centre of Brussels, far to the north, there is &3032 79 0b 7c 47 34 8a fa 7f 06 fc c5 44 fb 3f fc f4 ; a large explosion. Among the people killed in the blast is one &3042 35 44 fc 51 47 48 43 60 fa 20 fb c9 0b 51 42 fa ; of your distant ancestors, and you suddenly cease to exist." &3052 fe 13 15 11 23 15 32 15 28 19 23 24 04 &305f 08 09 ; player_room = &05 &3062 00 ; end ; bytecode_for_object_descriptions ; bytecode_for_object_01_description ("florins") &3063 0d 34 ff 0b 43 ff 5a 05 ; "a bag of florins" &306b 00 ; end ; bytecode_for_object_02_description ("can") &306c 0d 34 22 25 23 24 29 6c 05 ; "a rusty can" &3075 00 ; end ; bytecode_for_object_03_description ("gum") &3076 0d 34 23 24 19 13 1b 43 13 18 15 27 19 1e 17 ff ; "a stick of chewing gum" &3086 0d 05 &3088 00 ; end ; bytecode_for_object_04_description ("pea") &3089 0d 34 ff 0e 05 ; "a pea" &308e 00 ; end ; bytecode_for_object_05_description ("rat") &308f 0d 34 fc 7f 13 1f 1f 1b 15 14 ff 0f 05 ; "a half cooked rat" &309c 00 ; end ; bytecode_for_object_06_description ("tag") &309d 0d 34 99 fb ca ff 10 05 ; "a metal security tag" &30a5 00 ; end ; bytecode_for_object_07_description ("bell") &30a6 0d 34 ff 1d fe 3a 05 ; "a bell push" &30ad 00 ; end ; bytecode_for_object_08_description ("disk") &30ae 0d 34 99 ff 1e 05 ; "a metal disc" &30b4 00 ; end ; bytecode_for_object_09_description ("keys") &30b5 0d 34 12 25 1e 13 18 43 ff 20 05 ; "a bunch of keys" &30c0 00 ; end ; bytecode_for_object_0a_description ("lantern") &30c1 94 37 06 ; if(p["lantern_is_lit"] > &02) &30c4 01 ; { &30c5 0d 34 f9 22 05 ; "a flickering" &30ca 03 ; } ; else &30cb 01 ; { &30cc 0d 3a 25 1e 1c 19 24 05 ; "an unlit" &30d4 03 ; } &30d5 0d 0e ff 5b 05 ; " lantern" &30da 00 ; end ; bytecode_for_object_0b_description ("rope") &30db 0d 34 13 1f 19 1c 43 ff 22 05 ; "a coil of rope" &30e5 00 ; end ; bytecode_for_object_0c_description ("soap") &30e6 0d 34 12 11 22 43 ff 23 05 ; "a bar of soap" &30ef 00 ; end ; bytecode_for_object_0d_description ("lance") &30f0 0d 34 ac aa 05 ; "a sonic lance" &30f5 00 ; end ; bytecode_for_object_0e_description ("locket") &30f6 0d 34 17 1f 1c 14 ff 45 05 ; "a gold locket" &30ff 00 ; end ; bytecode_for_object_0f_description ("needle") &3100 0d 34 ff 46 05 ; "a needle" &3105 00 ; end ; bytecode_for_object_10_description ("feather") &3106 0d 3a 15 11 17 1c 15 0f 23 ff 5c 05 ; "an eagle's feather" &3112 00 ; end ; bytecode_for_object_11_description ("matches") &3113 0d 5e ff 5d 05 ; "some matches" &3118 00 ; end ; bytecode_for_object_12_description ("dungarees") &3119 0d 34 fc 14 43 64 f9 55 ff 6e 05 ; "a pair of time travellers' dungarees" &3124 00 ; end ; bytecode_for_object_13_description ("toothpick") &3125 0d 3a 19 26 1f 22 29 ff 6f 05 ; "an ivory toothpick" &312f 00 ; end ; bytecode_for_object_14_description ("screwdriver") &3130 0d 44 2e fb a7 ac ff 74 05 ; "the Doctor's sonic screwdriver" &3139 00 ; end ; bytecode_for_object_15_description ("snuff") &313a 0d 34 ff 11 43 ff 39 05 ; "a box of snuff" &3142 00 ; end ; bytecode_for_object_16_description ("documents") &3143 0d 34 ff 12 fc a3 46 5e ff 70 05 ; "a pen lying by some documents" &314e 00 ; end ; bytecode_for_object_17_description ("hats") &314f 0d 34 ff 13 05 ; "a hat" &3154 00 ; end ; bytecode_for_object_18_description ("map") &3155 0d 34 ff 14 43 2e fb 8d 05 ; "a map of Belgium" &315e 00 ; end ; bytecode_for_object_19_description ("duke") &315f 0d 44 2e a2 43 2e fa 8b 05 ; "the Duke of Wellington" &3168 00 ; end ; bytecode_for_object_1a_description ("file") &3169 0d 34 fc 80 ff 26 05 ; "a nail file" &3170 00 ; end ; bytecode_for_object_1b_description ("beef") &3171 0d 5e fb 7f ff 27 05 ; "some bully beef" &3178 00 ; end ; bytecode_for_object_1c_description ("wine") &3179 0d 34 ff 15 05 ; "a jug" &317e c4 37 ; if(p["lantern_is_lit"] == 0) &3180 01 ; { &3181 0d 43 ff 28 05 ; "of wine" &3186 03 ; } &3187 00 ; end ; bytecode_for_object_1d_description ("bread") &3188 0d 34 b9 ff 29 05 ; "a french loaf" &318e 00 ; end ; bytecode_for_object_1e_description ("fuse") &318f 0d 34 fc 81 ff 2a 05 ; "a cannon fuse" &3196 00 ; end ; bytecode_for_object_1f_description ("cloaks") &3197 0d 34 ff 3b 05 ; "a cloak" &319c 00 ; end ; bytecode_for_object_20_description ("plate") &319d 0d 34 ff 3c 05 ; "a plate" &31a2 00 ; end ; bytecode_for_object_21_description ("taper") &31a3 0d 34 05 ; "a" &31a6 cc 2d ; if(p["taper_is_lit"] != 0) &31a8 01 ; { &31a9 0d fb 86 05 ; "burning" &31ad 03 ; } &31ae 0d ff 3d 05 ; "taper" &31b2 00 ; end ; bytecode_for_object_22_description ("pistol") &31b3 0d 34 ff 48 05 ; "a pistol" &31b8 00 ; end ; bytecode_for_object_23_description ("device") &31b9 0d 34 cb ff 49 78 49 12 25 24 24 1f 1e 23 38 3c ; "a small device with two buttons on it" &31c9 05 &31ca 00 ; end ; bytecode_for_object_24_description ("cleaver") &31cb 0d 34 ff 5e 05 ; "a cleaver" &31d0 00 ; end ; bytecode_for_object_25_description ("musket") &31d1 0d 34 ff 4a 05 ; "a musket" &31d6 00 ; end ; bytecode_for_object_26_description ("module") &31d7 0d 34 fb cb ff 4b 4b 34 ac aa 05 ; "a recharge module for a sonic lance" &31e2 00 ; end ; bytecode_for_object_27_description ("whistle") &31e3 0d 34 ff 5f 05 ; "a whistle" &31e8 00 ; end ; bytecode_for_object_28_description ("scissors") &31e9 0d 34 fc 14 43 ff 67 05 ; "a pair of scissors" &31f1 00 ; end ; bytecode_for_object_29_description ("tweezers") &31f2 0d 5e ff 68 05 ; "some tweezers" &31f7 00 ; end ; bytecode_for_object_2a_description ("bayonet") &31f8 0d 34 ff 60 05 ; "a bayonet" &31fd 00 ; end ; bytecode_for_object_2b_description ("despatches") &31fe 0d 5e ff 73 05 ; "some despatches" &3203 00 ; end ; bytecode_for_verbs ; bytecode_for_verb_01 ("north") &3204 0d 42 af 41 79 04 ; "you can't go north." &320a 00 ; end ; bytecode_for_verb_02 ("east") &320b 0d f2 3b 6e 50 04 ; "there's no way east." &3211 00 ; end ; bytecode_for_verb_03 ("south") &3212 0d fb 28 42 af fc 7e fa 74 fc b8 04 ; "even you can't walk through walls." &321e 00 ; end ; bytecode_for_verb_04 ("west") &321f 0d f2 3b 22 1f 25 24 15 4c 73 4f 04 ; "there's no route west from here." &322b 00 ; end ; bytecode_for_verb_05 ("northeast") &322c 0e ; skip_to_next_bytecode() &322d 00 ; end ; bytecode_for_verb_06 ("northwest") &322e 0e ; skip_to_next_bytecode() &322f 00 ; end ; bytecode_for_verb_07 ("southeast") &3230 0e ; skip_to_next_bytecode() &3231 00 ; end ; bytecode_for_verb_08 ("southwest") &3232 0d b6 6e 07 05 ; "which way? " &3237 00 ; end ; bytecode_for_verb_09 ("left") &3238 0d b6 6e 47 5d 07 05 ; "which way is left? " &323f 00 ; end ; bytecode_for_verb_0a ("right") &3240 0d a0 07 b6 6e 47 77 07 05 ; "right? which way is that? " &3249 00 ; end ; bytecode_for_verb_0b ("down") &324a 0d 52 88 07 05 ; "down where? " &324f 00 ; end ; bytecode_for_verb_0c ("up") &3250 0d 7c 47 3b 6e 58 04 ; "there is no way up." &3257 00 ; end ; bytecode_for_verb_0d ("exit") &3258 0d fe 26 88 07 05 ; "exit where? " &325e 00 ; end ; bytecode_for_verb_0e ("enter") &325f 0d fe 4b 88 07 05 ; "enter where? " &3265 00 ; end ; bytecode_for_verb_0f ("back") &3266 bc 06 04 ; if(p["previous_room"] != p["player_room"] and &3269 cc 06 ; p["previous_room"] != 0) &326b 01 ; { &326c 2c 04 24 ; p["character"] = p["player_room"] &326f 2c 06 04 ; p["player_room"] = p["previous_room"] &3272 2c 24 06 ; p["previous_room"] = p["character"] &3275 04 ; return &3276 03 ; } &3277 0d 8e 88 07 05 ; "back where? " &327c 00 ; end ; bytecode_for_verb_10 ("forward") &327d 0d b6 6e fe 63 07 05 ; "which way forward? " &3284 00 ; end ; bytecode_for_verb_11 ("dc") &3285 0d 2f 11 2f 87 2f 43 2f 87 05 ; "\r[yellow]?[yellow]" &328f 66 ; decrypt_hint() &3290 00 ; end ; bytecode_for_verb_12 ("drink") &3291 89 20 ; if(first_noun == "wine") &3293 01 ; { &3294 cc 37 ; if(p["lantern_is_lit"] != 0) &3296 01 ; { &3297 0d f2 fc 20 5d 04 ; "there's none left." &329d 04 ; return &329e 03 ; } &329f 0d fa a9 04 ; "delicious." &32a3 44 37 ; p["lantern_is_lit"] ++ &32a5 04 ; return &32a6 03 ; } &32a7 89 21 ; if(first_noun == "bread") &32a9 01 ; { &32aa 0d fa a9 04 ; "delicious." &32ae 09 0a ; object_room[first_noun] = &06 &32b0 04 ; return &32b1 03 ; } &32b2 8c 15 05 ; if(p["first_noun_type"] == &01) &32b5 01 ; { &32b6 0d 34 fb 09 43 fc 56 77 b0 33 42 04 ; "a lot of good that will do you." &32c2 09 0a ; object_room[first_noun] = &06 &32c4 04 ; return &32c5 03 ; } &32c6 0d 70 38 63 08 05 ; "come on now! " &32cc 00 ; end ; bytecode_for_verb_13 ("buy") &32cd 8c 04 1a ; if(p["player_room"] == &16) &32d0 01 ; { &32d1 0d 7c 47 85 ff 3a 4b 23 11 1c 15 4f 04 ; "there is only bread for sale here." &32de 04 ; return &32df 03 ; } &32e0 0d d3 5b 35 34 fc 36 04 ; "you're not in a shop." &32e8 00 ; end ; bytecode_for_verb_14 ("cut") &32e9 db 2e ; if(object_room["bayonet"] == "carrying") &32eb 01 ; { &32ec 0d 44 05 ; "the" &32ef 1d ; print first_noun &32f0 0d fc 27 66 04 ; "won't cut." &32f5 04 ; return &32f6 03 ; } &32f7 0d 78 a1 07 05 ; "with what? " &32fc 00 ; end ; bytecode_for_verb_15 ("dig") &32fd 8d 4b ; if(preposition == "with" and &32ff c9 ; first_noun != 0 and &3300 99 24 ; first_noun != "plate") &3302 01 ; { &3303 0d fc 5e f9 23 04 ; "quite impossible." &3309 04 ; return &330a 03 ; } &330b 0d 77 fc 82 42 d4 04 ; "that gets you nowhere." &3312 00 ; end ; bytecode_for_verb_16 ("take") &3313 ac 0e 0d ; if(p["number_of_objects_carried"] == p["maximum_objects_carried"]) &3316 01 ; { &3317 0d 2b 06 fc 83 0b fb cc 89 42 6c 13 11 22 22 29 ; "" + random("sorry, that's all you can carry", "your hands &3327 05 60 c9 45 fc c2 05 04 04 ; are full") + "." &3330 04 ; return &3331 03 ; } &3332 89 41 ; if(first_noun == "all") &3334 01 ; { &3335 c4 0a ; if(p["number_of_objects_in_player_room"] == 0) &3337 01 ; { &3338 0d f2 f0 4f 32 fe 28 04 ; "there's nothing here to take." &3340 04 ; return &3341 03 ; } &3342 0d 42 fe 28 05 ; "you take" &3347 2c 04 0b ; p["old_room"] = p["player_room"] &334a 1c 0c ; p["new_room"] = 1 &334c 1c 0f ; p["consider_inventory_size"] = 1 &334e 06 ; list_objects(p["old_room"]. p["new_room"]) &334f 0d 04 ; "." &3351 14 0f ; p["consider_inventory_size"] = 0 &3353 6f ; room.flags[6] = true &3354 ac 0e 0d ; if(p["number_of_objects_carried"] == p["maximum_objects_carried"]) &3357 01 ; { &3358 0d 2d fb cc 89 42 6c 13 11 22 22 29 04 ; "\nThat's all you can carry." &3365 03 ; } &3366 04 ; return &3367 03 ; } &3368 8c 15 08 ; if(p["first_noun_type"] == &04) &336b 01 ; { &336c 0d 5c fc c6 4b 42 06 fc 83 04 ; "too heavy for you. Sorry." &3376 04 ; return &3377 03 ; } &3378 8c 15 09 ; if(p["first_noun_type"] == &05) &337b 01 ; { &337c 0d 42 af 04 ; "you can't." &3380 04 ; return &3381 03 ; } &3382 e9 0b ; if(object_room[first_noun] == &07) &3384 01 ; { &3385 0d 2b 06 24 22 19 13 1b 29 05 fa aa 05 04 04 ; "" + random("tricky", "difficult") + "." &3394 04 ; return &3395 03 ; } &3396 e1 ; if(object_room[first_noun] == player_room) &3397 01 ; { &3398 19 ; object_room[first_noun] = 1 &3399 0d 2b 06 fc 84 05 fc 21 05 04 04 ; "" + random("okay", "done") + "." &33a4 6f ; room.flags[6] = true &33a5 04 ; return &33a6 03 ; } &33a7 d9 ; if(object_room[first_noun] == "carrying") &33a8 01 ; { &33a9 0d 42 45 2b 06 fb c4 05 fe 69 05 04 0e 77 2b 06 ; "you are " + random("holding", "carrying") + " that " + &33b9 f3 05 05 04 04 ; random("already", "") + "." &33be 04 ; return &33bf 03 ; } &33c0 d1 ; if(object_room[first_noun] == "wearing") &33c1 01 ; { &33c2 0d 69 d3 fe 66 77 04 ; "but you're wearing that." &33c9 04 ; return &33ca 03 ; } &33cb 15 ; print verb &33cc 0d a1 07 05 ; "what? " &33d0 0c 07 09 ; p["output_written"] = &03 &33d3 00 ; end ; bytecode_for_verb_17 ("attack") &33d4 8d 4b ; if(preposition == "with") &33d6 01 ; { &33d7 8a 2e 02 ; if(second_noun == "bayonet" or &33da 89 2e ; first_noun == "bayonet") &33dc 01 ; { &33dd 0d fb cd 47 25 23 15 1c 15 23 23 4f 04 ; "violence is useless here." &33ea 04 ; return &33eb 03 ; } &33ec 03 ; } &33ed 0e ; skip_to_next_bytecode() &33ee 00 ; end ; bytecode_for_verb_18 ("shoot") &33ef db 26 ; if(object_room["pistol"] == "carrying") &33f1 01 ; { &33f2 0d fb 29 08 b9 db 70 dd 0b 51 fc c3 42 76 04 ; "bang! french soldiers come running, and march you away." &3401 0b 0a 26 ; object_room["pistol"] = &06 &3404 08 2a ; player_room = &26 &3406 04 ; return &3407 03 ; } &3408 db 11 ; if(object_room["lance"] == "carrying") &340a 01 ; { &340b 94 3f 05 ; if(p["lance_used"] > &01) &340e 01 ; { &340f 0d 7c 47 3b d2 5d 35 44 aa 04 ; "there is no charge left in the lance." &3419 04 ; return &341a 03 ; } &341b ff ; if(room.flags[7]) &341c 01 ; { &341d 0d fa ec 42 45 34 fb ce ae 06 fb cf ab 44 aa 76 ; "fortunately you are a hopeless shot. Somebody takes the &342d 73 42 35 13 11 23 15 42 18 11 22 1d e3 04 ; lance away from you in case you harm yourself." &343b 0b 0a 11 ; object_room["lance"] = &06 &343e 04 ; return &343f 03 ; } &3440 0d 42 fe 2a 44 aa 0b 69 fa ec 3b 18 11 22 1d 47 ; "you fire the lance, but fortunately no harm is done." &3450 fc 21 04 &3453 44 3f ; p["lance_used"] ++ &3455 04 ; return &3456 03 ; } &3457 88 1b ; if(verb == "attack") &3459 01 ; { &345a 0e ; skip_to_next_bytecode() &345b 03 ; } &345c 0d 42 53 3b 27 15 11 20 1f 1e 23 04 ; "you have no weapons." &3468 00 ; end ; bytecode_for_verb_19 ("kick") &3469 0e ; skip_to_next_bytecode() &346a 00 ; end ; bytecode_for_verb_1a ("hit") &346b 0d f9 24 b0 fe 1b 42 d4 4f 04 ; "aggression will get you nowhere here." &3475 00 ; end ; bytecode_for_verb_1b ("guess") &3476 0d 9a 22 19 23 1b 29 04 ; "very risky." &347e 00 ; end ; bytecode_for_verb_1c ("ask") &347f 8c 08 05 ; if(p["total_words"] == &01) &3482 01 ; { &3483 15 ; print verb &3484 0d a1 07 05 ; "what? " &3488 04 ; return &3489 03 ; } &348a 0e ; skip_to_next_bytecode() &348b 00 ; end ; bytecode_for_verb_1d ("speak") &348c cc 29 ; if(p["doctor_state"] != 0) &348e 01 ; { &348f 0d 44 2e 75 47 11 12 23 1f 22 12 15 14 35 5a 1f ; "the Doctor is absorbed in his own thoughts." &349f 27 1e 0e 24 18 1f 25 17 18 24 23 04 &34ab 04 ; return &34ac 03 ; } &34ad ff ; if(room.flags[7]) &34ae 01 ; { &34af 0d 42 fa 21 3b 22 15 20 1c 29 04 ; "you receive no reply." &34ba 04 ; return &34bb 03 ; } &34bc 0d 7c 47 3b 48 32 fe 2c 32 04 ; "there is no one to talk to." &34c6 00 ; end ; bytecode_for_verb_1e ("use") &34c7 0d 6f fc 22 07 05 ; "like how? " &34cd 00 ; end ; bytecode_for_verb_1f ("blow") &34ce 89 2b ; if(first_noun == "whistle") &34d0 01 ; { &34d1 cc 2f ; if(p["whistle_has_pea"] != 0) &34d3 01 ; { &34d4 0d 44 ff 5f 15 1d 19 24 23 34 fb 9b 1e 1f 24 15 ; "the whistle emits a piercing note. Absolutely nothing &34e4 06 11 12 23 1f 1c 25 24 15 1c 29 f0 f4 04 ; happens." &34f2 04 ; return &34f3 03 ; } &34f4 0d 44 ff 5f fb 40 fc 85 04 ; "the whistle doesn't work." &34fd 04 ; return &34fe 03 ; } &34ff 0d 5b 9a fa ab 04 ; "not very rewarding." &3505 00 ; end ; bytecode_for_verb_20 ("doff") &3506 89 16 ; if(first_noun == "dungarees") &3508 01 ; { &3509 0d 8d 47 34 f9 25 fa ac 08 05 ; "this is a respectable adventure! " &3513 04 ; return &3514 03 ; } &3515 d1 ; if(object_room[first_noun] == "wearing") &3516 01 ; { &3517 39 ; object_room[first_noun] = player_room &3518 0d fc 1e 04 ; "fine." &351c 6f ; room.flags[6] = true &351d 04 ; return &351e 03 ; } &351f e1 02 ; if(object_room[first_noun] == player_room or &3521 d9 ; object_room[first_noun] == "carrying") &3522 01 ; { &3523 0d d3 5b fe 66 77 04 ; "you're not wearing that." &352a 04 ; return &352b 03 ; } &352c 1d ; print first_noun &352d 0d 07 05 ; "? " &3530 00 ; end ; bytecode_for_verb_21 ("place") &3531 cd ; if(preposition != 0) &3532 01 ; { &3533 0e ; skip_to_next_bytecode() &3534 03 ; } &3535 15 ; print verb &3536 0d 3c 88 07 05 ; "it where? " &353b 00 ; end ; bytecode_for_verb_22 ("drop") &353c 89 16 ; if(first_noun == "dungarees") &353e 01 ; { &353f 0d 3b fa 22 04 ; "no comment." &3544 04 ; return &3545 03 ; } &3546 89 41 ; if(first_noun == "all") &3548 01 ; { &3549 c4 0e ; if(p["number_of_objects_carried"] == 0) &354b 01 ; { &354c 0d d3 5b fe 69 fb d0 04 ; "you're not carrying anything." &3554 04 ; return &3555 03 ; } &3556 0d 42 fe 20 52 05 ; "you put down" &355c 1c 0b ; p["old_room"] = 1 &355e 2c 04 0c ; p["new_room"] = p["player_room"] &3561 06 ; list_objects(p["old_room"]. p["new_room"]) &3562 0d 04 ; "." &3564 6f ; room.flags[6] = true &3565 04 ; return &3566 03 ; } &3567 d9 02 ; if(object_room[first_noun] == "carrying" or &3569 d1 ; object_room[first_noun] == "wearing") &356a 01 ; { &356b 39 ; object_room[first_noun] = player_room &356c 0d fc 1e 04 ; "fine." &3570 6f ; room.flags[6] = true &3571 04 ; return &3572 03 ; } &3573 0d d3 5b fe 69 77 04 ; "you're not carrying that." &357a 00 ; end ; bytecode_for_verb_23 ("offer") &357b 89 11 ; if(first_noun == "lance" and &357d cc 29 ; p["doctor_state"] != 0) &357f 01 ; { &3580 0d 44 2e 75 ab 44 aa 0b fa ad 77 3c fc 42 70 35 ; "the Doctor takes the lance, remarking that it might come in &3590 fb d1 04 ; useful." &3593 0b 8a 11 ; object_room["lance"] = &86 &3596 44 20 ; p["score"] ++ &3598 04 ; return &3599 03 ; } &359a ff 02 ; if(room.flags[7] or &359c cc 29 ; p["doctor_state"] != 0) &359e 01 ; { &359f 0d 60 fe 51 47 5b 11 13 13 15 20 24 15 14 04 ; "your offer is not accepted." &35ae 04 ; return &35af 03 ; } &35b0 0d f2 3b 48 32 fe 31 3c 32 04 ; "there's no one to give it to." &35ba 00 ; end ; bytecode_for_verb_24 ("show") &35bb ff ; if(room.flags[7]) &35bc 01 ; { &35bd 0d 8d fb d2 13 11 25 23 15 23 34 23 24 19 22 04 ; "this hardly causes a stir." &35cd 04 ; return &35ce 03 ; } &35cf 0d f2 3b 48 32 fe 32 3c 32 04 ; "there's no one to show it to." &35d9 00 ; end ; bytecode_for_verb_25 ("sign") &35da 0d a1 33 42 fb 14 07 05 ; "what do you mean? " &35e2 00 ; end ; bytecode_for_verb_26 ("throw") &35e3 d9 ; if(object_room[first_noun] == "carrying") &35e4 01 ; { &35e5 0d f9 24 b0 fe 1b 42 d4 4f 04 ; "aggression will get you nowhere here." &35ef 39 ; object_room[first_noun] = player_room &35f0 04 ; return &35f1 03 ; } &35f2 0d d3 5b fe 69 77 04 ; "you're not carrying that." &35f9 00 ; end ; bytecode_for_verb_27 ("jump") &35fa 0d fc 22 fb 2a 04 ; "how cute." &3600 00 ; end ; bytecode_for_verb_28 ("fill") &3601 99 0e ; if(first_noun != "lantern") &3603 01 ; { &3604 0d 42 af 04 ; "you can't." &3608 04 ; return &3609 03 ; } &360a c2 ; if(second_noun == 0) &360b 01 ; { &360c 0d 78 a1 07 05 ; "with what? " &3611 04 ; return &3612 03 ; } &3613 8d 4b ; if(preposition == "with") &3615 01 ; { &3616 8a 20 ; if(second_noun == "wine") &3618 01 ; { &3619 cc 37 ; if(p["lantern_is_lit"] != 0) &361b 01 ; { &361c 0d f2 3b ff 28 5d 04 ; "there's no wine left." &3623 04 ; return &3624 03 ; } &3625 0d fc 84 04 ; "okay." &3629 0c 06 37 ; p["lantern_is_lit"] = &02 &362c 04 ; return &362d 03 ; } &362e 03 ; } &362f 0d fc 83 07 05 ; "sorry? " &3634 00 ; end ; bytecode_for_verb_29 ("hide") &3635 c9 ; if(first_noun != 0) &3636 01 ; { &3637 0d 7c 47 d4 32 fe 36 3c 04 ; "there is nowhere to hide it." &3640 04 ; return &3641 03 ; } &3642 0d fb cc 3b fe 1f 04 ; "that's no use." &3649 00 ; end ; bytecode_for_verb_2a ("pour") &364a 99 20 ; if(first_noun != "wine") &364c 01 ; { &364d 0d 70 38 08 05 ; "come on! " &3652 04 ; return &3653 03 ; } &3654 cc 37 ; if(p["lantern_is_lit"] != 0) &3656 01 ; { &3657 0d f2 fc 20 5d 06 fc 83 04 ; "there's none left. Sorry." &3660 04 ; return &3661 03 ; } &3662 8d 43 ; if(preposition == "into" and &3664 8a 0e 02 ; second_noun == "lantern" or &3667 8d 45 ; preposition == "onto" and &3669 8a 3e ; second_noun == "gunpowder") &366b 01 ; { &366c 0d 44 ff 53 35 44 ff 21 18 19 23 23 15 23 51 fc ; "the powder in the lamp hisses and gives off odorous fumes." &367c 86 7e 1f 14 1f 22 1f 25 23 0e 16 25 1d 15 23 04 &368c 0c 06 37 ; p["lantern_is_lit"] = &02 &368f 44 20 ; p["score"] ++ &3691 04 ; return &3692 03 ; } &3693 0d 44 ff 28 20 1f 25 22 23 61 51 24 22 19 13 1b ; "the wine pours out and trickles away." &36a3 1c 15 23 76 04 &36a8 1c 37 ; p["lantern_is_lit"] = 1 &36aa 00 ; end ; bytecode_for_verb_2b ("lift") &36ab 0e ; skip_to_next_bytecode() &36ac 00 ; end ; bytecode_for_verb_2c ("press") &36ad 89 3f ; if(first_noun == "button") &36af 01 ; { &36b0 db 27 ; if(object_room["device"] == "carrying") &36b2 01 ; { &36b3 8d 4c ; if(preposition == "red") &36b5 01 ; { &36b6 cc 2e ; if(p["orange_button_state"] != 0) &36b8 01 ; { &36b9 94 04 3b ; if(p["player_room"] > &37 and &36bc 84 04 69 ; p["player_room"] < &65) &36bf 01 ; { &36c0 08 69 ; player_room = &65 &36c2 04 ; return &36c3 03 ; } &36c4 08 88 ; player_room = &84 &36c6 04 ; return &36c7 03 ; } &36c8 0d f0 f4 04 ; "nothing happens." &36cc 04 ; return &36cd 03 ; } &36ce 8d 4d ; if(preposition == "orange") &36d0 01 ; { &36d1 0d f0 f4 04 ; "nothing happens." &36d5 cc 2e ; if(p["orange_button_state"] != 0) &36d7 01 ; { &36d8 14 2e ; p["orange_button_state"] = 0 &36da 03 ; } ; else &36db 01 ; { &36dc 1c 2e ; p["orange_button_state"] = 1 &36de 03 ; } &36df 04 ; return &36e0 03 ; } &36e1 03 ; } &36e2 0d b6 ff 56 07 05 ; "which button? " &36e8 04 ; return &36e9 03 ; } &36ea 0d f0 f4 04 ; "nothing happens." &36ee 00 ; end ; bytecode_for_verb_2d ("read") &36ef 89 2f ; if(first_noun == "despatches") &36f1 01 ; { &36f2 cc 3b ; if(p["despatches_open"] != 0) &36f4 01 ; { &36f5 0d 60 2e fc 58 0b fa ae 06 2d 34 d0 84 0b 5b 12 ; "your Grace, greetings. \nA strange being, not born of &3705 1f 22 1e 43 27 1f 1d 11 1e 0b 3e 53 fb d3 4f 39 ; woman, we have captured here at Quatre Bras, which, &3715 2e fb 3c 2e fb 27 0b b6 0b 82 44 6b f9 14 14 25 ; under the most severe duress, admits serving one that it &3725 22 15 23 23 0b 11 14 1d 19 24 23 fb 74 48 77 3c ; calls The Warlord, from out of the future. This latter &3735 fb 41 2e 44 2e e5 0b 73 61 43 44 fb 42 06 8d f9 ; intends to kill you and your commanders at the ball &3745 15 19 1e 24 15 1e 14 23 32 fe 29 42 51 60 f9 26 ; tonight. I should believe none of it were not the body &3755 39 44 fc 55 fc cf 06 19 fb d4 fc dc fc 20 43 3c ; of the demon beside me as I write. I fear Bonaparte is &3765 fc 17 5b 44 fb 26 43 44 14 15 1d 1f 1e 91 1d 15 ; employing sorcery, therefore be on your guard. \nBernard &3775 59 2e 19 0e 27 22 19 24 15 06 19 fb 12 2e fb d5 ; Saxe-Weimar" &3785 47 15 1d 20 1c 1f 29 19 1e 17 0e 23 1f 22 13 15 &3795 22 29 0b fb d6 37 38 60 ff 41 06 2d fb 3d 2e 23 &37a5 11 28 15 10 2e 27 15 19 1d 11 22 05 &37b1 04 ; return &37b2 03 ; } &37b3 0d 44 ff 73 45 23 15 11 1c 15 14 06 7f 45 11 14 ; "the despatches are sealed. They are addressed to His Grace &37c3 14 22 15 23 23 15 14 32 2e 5a 2e fc 58 44 2e a2 ; the Duke of Wellington." &37d3 43 2e fa 8b 04 &37d8 04 ; return &37d9 03 ; } &37da c4 09 ; if(p["output_written"] == 0) &37dc 01 ; { &37dd 0d 45 42 23 15 22 19 1f 25 23 07 05 ; "are you serious? " &37e9 03 ; } &37ea 00 ; end ; bytecode_for_verb_2e ("wait") &37eb 0d f0 f4 04 ; "nothing happens." &37ef 00 ; end ; bytecode_for_verb_2f ("wave") &37f0 ff ; if(room.flags[7]) &37f1 01 ; { &37f2 0d fb 43 fc 87 8e 04 ; "nobody waves back." &37f9 04 ; return &37fa 03 ; } &37fb 0d f2 fb 43 32 fe 3d 32 04 ; "there's nobody to wave to." &3804 00 ; end ; bytecode_for_verb_30 ("wear") &3805 d1 ; if(object_room[first_noun] == "wearing") &3806 01 ; { &3807 0d d3 fe 66 77 f3 04 ; "you're wearing that already." &380e 04 ; return &380f 03 ; } &3810 c4 15 ; if(p["first_noun_type"] == 0) &3812 01 ; { &3813 e1 02 ; if(object_room[first_noun] == player_room or &3815 d9 ; object_room[first_noun] == "carrying") &3816 01 ; { &3817 0d a0 04 ; "right." &381a 11 ; object_room[first_noun] = 0 &381b 6f ; room.flags[6] = true &381c 03 ; } &381d 04 ; return &381e 03 ; } &381f 0d fb d7 07 05 ; "really? " &3824 00 ; end ; bytecode_for_verb_31 ("break") &3825 0d 3c fc 27 fe 55 04 ; "it won't break." &382c 00 ; end ; bytecode_for_verb_32 ("light") &382d 89 15 ; if(first_noun == "matches") &382f 01 ; { &3830 0d 44 ff 38 ff 64 fb 2b 61 04 ; "the match quickly goes out." &383a 04 ; return &383b 03 ; } &383c 89 0e 02 ; if(first_noun == "lantern" or &383f 89 20 ; first_noun == "wine") &3841 01 ; { &3842 db 15 ; if(object_room["matches"] == "carrying") &3844 01 ; { &3845 8c 37 06 ; if(p["lantern_is_lit"] == &02) &3848 01 ; { &3849 0d 44 ff 21 16 1c 11 22 15 23 58 fa 97 04 ; "the lamp flares up brightly." &3857 44 37 ; p["lantern_is_lit"] ++ &3859 04 ; return &385a 03 ; } &385b 8c 37 07 ; if(p["lantern_is_lit"] == &03) &385e 01 ; { &385f 0d fb 2c f3 fb 0d 04 ; "it's already lit." &3866 04 ; return &3867 03 ; } &3868 0d 7c 47 f0 35 44 ff 21 69 34 14 22 29 fc 5a ff ; "there is nothing in the lamp but a dry grey powder." &3878 53 04 &387a 04 ; return &387b 03 ; } &387c 0d 42 53 3b ff 5d 04 ; "you have no matches." &3883 04 ; return &3884 03 ; } &3885 89 22 ; if(first_noun == "fuse") &3887 01 ; { &3888 db 25 ; if(object_room["taper"] == "carrying" and &388a cc 2d ; p["taper_is_lit"] != 0) &388c 01 ; { &388d 0d 44 ff 2a f5 0b 51 35 34 fc 1c ea 3c fb 44 76 ; "the fuse catches, and in a few minutes it burns away." &389d 04 &389e 0b 0a 22 ; object_room["fuse"] = &06 &38a1 04 ; return &38a2 03 ; } &38a3 0d 42 fc 88 04 ; "you cannot." &38a8 04 ; return &38a9 03 ; } &38aa db 15 ; if(object_room["matches"] == "carrying") &38ac 01 ; { &38ad c9 ; if(first_noun != 0) &38ae 01 ; { &38af 0d 77 fc 27 fe 3f 04 ; "that won't burn." &38b6 04 ; return &38b7 03 ; } &38b8 15 ; print verb &38b9 0d a1 07 05 ; "what? " &38bd 04 ; return &38be 03 ; } &38bf 0d 42 af 04 ; "you can't." &38c3 00 ; end ; bytecode_for_verb_33 ("insert") &38c4 89 2a ; if(first_noun == "module") &38c6 01 ; { &38c7 db 11 02 ; if(object_room["lance"] == "carrying" or &38ca e3 11 ; object_room["lance"] == player_room) &38cc 01 ; { &38cd 0d 44 ff 4b 23 1c 1f 24 23 4a 44 12 25 24 24 43 ; "the module slots into the butt of the lance." &38dd 44 aa 04 &38e0 09 0b ; object_room[first_noun] = &07 &38e2 14 3f ; p["lance_used"] = 0 &38e4 44 20 ; p["score"] ++ &38e6 04 ; return &38e7 03 ; } &38e8 03 ; } &38e9 89 08 ; if(first_noun == "pea") &38eb 01 ; { &38ec db 2b 02 ; if(object_room["whistle"] == "carrying" or &38ef e3 2b ; object_room["whistle"] == player_room) &38f1 01 ; { &38f2 0d 3c 16 19 24 23 fb 45 04 ; "it fits neatly." &38fb 09 0b ; object_room[first_noun] = &07 &38fd 44 2f ; p["whistle_has_pea"] ++ &38ff 44 20 ; p["score"] ++ &3901 04 ; return &3902 03 ; } &3903 03 ; } &3904 0d 5b fb d8 04 ; "not possible." &3909 00 ; end ; bytecode_for_verb_34 ("stand") &390a 0d d3 f3 d9 04 ; "you're already standing." &390f 00 ; end ; bytecode_for_verb_35 ("follow") &3910 c1 ; if(first_noun == 0) &3911 01 ; { &3912 15 ; print verb &3913 0d 62 07 05 ; "who? " &3917 04 ; return &3918 03 ; } &3919 0d a1 45 42 24 11 1c 1b 19 1e 17 83 07 05 ; "what are you talking about? " &3927 00 ; end ; bytecode_for_verb_36 ("listen") &3928 0d 42 6d f0 04 ; "you hear nothing." &392d 00 ; end ; bytecode_for_verb_37 ("unlock") &392e db 0d ; if(object_room["keys"] == "carrying") &3930 01 ; { &3931 0d 44 ff 20 fc 75 f9 0c fb d0 4f 04 ; "the keys don't fit anything here." &393d 04 ; return &393e 03 ; } &393f 0d 42 53 3b ff 20 04 ; "you have no keys." &3946 00 ; end ; bytecode_for_verb_38 ("salute") &3947 0d 8d fc d2 1d 11 1b 15 23 42 16 15 15 1c 0e 23 ; "this almost makes you feel smart." &3957 1d 11 22 24 04 &395c 00 ; end ; bytecode_for_verb_39 ("open") &395d 89 2f ; if(first_noun == "despatches") &395f 01 ; { &3960 cc 3b ; if(p["despatches_open"] != 0) &3962 01 ; { &3963 0d 7f 45 fe 40 04 ; "they are open." &3969 04 ; return &396a 03 ; } &396b 0d a0 04 ; "right." &396e 44 3b ; p["despatches_open"] ++ &3970 04 ; return &3971 03 ; } &3972 89 12 ; if(first_noun == "locket") &3974 01 ; { &3975 0e ; skip_to_next_bytecode() &3976 03 ; } &3977 89 37 ; if(first_noun == "door") &3979 01 ; { &397a 0d 3c 47 fe 40 04 ; "it is open." &3980 04 ; return &3981 03 ; } &3982 0d fc 22 07 05 ; "how? " &3987 00 ; end ; bytecode_for_verb_3a ("examine") &3988 89 27 ; if(first_noun == "device") &398a 01 ; { &398b 0d 3c 47 83 44 23 19 2a 15 43 34 1d 11 24 13 18 ; "it is about the size of a matchbox, with a red button and an &399b 12 1f 28 0b 78 34 ff 1b ff 56 51 3a ff 57 ff 56 ; orange button on the top." &39ab 38 44 fb 11 04 &39b0 04 ; return &39b1 03 ; } &39b2 89 11 ; if(first_noun == "lance") &39b4 01 ; { &39b5 0d 3c 47 34 fa f5 87 fc ed ac aa 04 ; "it is a beautiful hand carved sonic lance." &39c1 8c 3f 06 ; if(p["lance_used"] == &02) &39c4 01 ; { &39c5 0d f2 3b d2 5d 04 ; "there's no charge left." &39cb 03 ; } &39cc 04 ; return &39cd 03 ; } &39ce 89 12 ; if(first_noun == "locket") &39d0 01 ; { &39d1 0d fc 44 44 ff 45 47 34 fb d9 fb 46 04 ; "inside the locket is a miniature portrait." &39de 04 ; return &39df 03 ; } &39e0 e9 0b ; if(object_room[first_noun] == &07) &39e2 01 ; { &39e3 0d fb cc 5b d5 fe 41 04 ; "that's not much help." &39eb 04 ; return &39ec 03 ; } &39ed 0d f0 2b 08 fb 69 05 25 1e 25 23 25 11 1c 05 fa ; "nothing " + random("special", "unusual", "remarkable", &39fd af 05 f9 56 05 04 06 2b 06 94 05 fc b7 6f 05 04 ; "extraordinary") + ". " + random("Just", "looks like") + " " &3a0d 0e 05 &3a0f 16 ; execute_bytecode_for_object(first_noun) &3a10 0d 04 ; "." &3a12 00 ; end ; bytecode_for_verb_3b ("where") &3a13 56 ; execute_bytecode_for_room() &3a14 00 ; end ; bytecode_for_verb_3c ("score") &3a15 0d 42 53 fa 5d 31 20 2f 29 0e 43 44 fc 05 2f 83 ; "you have completed p["score"]% of the game ." &3a25 2f 32 05 &3a28 00 ; end ; bytecode_for_verb_3d ("inv") &3a29 0e ; skip_to_next_bytecode() &3a2a 00 ; end ; bytecode_for_verb_3e ("carrying") &3a2b cc 0e ; if(p["number_of_objects_carried"] != 0) &3a2d 01 ; { &3a2e 0d 42 45 fe 69 05 ; "you are carrying" &3a34 1c 0b ; p["old_room"] = 1 &3a36 1c 0c ; p["new_room"] = 1 &3a38 06 ; list_objects(p["old_room"]. p["new_room"]) &3a39 0d 04 ; "." &3a3b 03 ; } ; else &3a3c 01 ; { &3a3d 0d 42 45 5b fe 69 fb d0 04 ; "you are not carrying anything." &3a46 03 ; } &3a47 88 41 ; if(verb == "inv") &3a49 01 ; { &3a4a 0d 2d 05 ; "\n" &3a4d 0e ; skip_to_next_bytecode() &3a4e 03 ; } &3a4f 00 ; end ; bytecode_for_verb_3f ("wearing") &3a50 0d 42 45 fe 66 05 ; "you are wearing" &3a56 14 0b ; p["old_room"] = 0 &3a58 14 0c ; p["new_room"] = 0 &3a5a 06 ; list_objects(p["old_room"]. p["new_room"]) &3a5b 0d 04 ; "." &3a5d 00 ; end ; bytecode_for_verb_40 ("help") &3a5e 0d fb 47 fb 48 09 05 ; "action words: " &3a65 5e ; list_verbs() &3a66 00 ; end ; bytecode_for_verb_41 ("load") &3a67 8c 08 06 ; if(p["total_words"] == &02) &3a6a 01 ; { &3a6b 1e ; load_position() &3a6c 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &3a73 0e ; skip_to_next_bytecode() &3a74 03 ; } &3a75 0d fb da 07 05 ; "Fileletter? " &3a7a 00 ; end ; bytecode_for_verb_42 ("look") &3a7b 47 ; room.flags[4] = false &3a7c 6f ; room.flags[6] = true &3a7d 56 ; execute_bytecode_for_room() &3a7e cc 29 ; if(p["doctor_state"] != 0) &3a80 01 ; { &3a81 0d 2d 42 45 78 44 2e 75 04 ; "\nYou are with the Doctor." &3a8a 03 ; } &3a8b cc 0a ; if(p["number_of_objects_in_player_room"] != 0) &3a8d 01 ; { &3a8e 0d 2d 05 ; "\n" &3a91 0e ; skip_to_next_bytecode() &3a92 03 ; } &3a93 00 ; end ; bytecode_for_verb_43 ("search") &3a94 c1 ; if(first_noun == 0) &3a95 01 ; { &3a96 0e ; skip_to_next_bytecode() &3a97 03 ; } &3a98 0d 5b d5 fe 41 04 ; "not much help." &3a9e 00 ; end ; bytecode_for_verb_44 ("here") &3a9f c4 0a ; if(p["number_of_objects_in_player_room"] == 0) &3aa1 01 ; { &3aa2 0d f2 f0 2b 08 43 d5 fe 1f 05 fb d1 05 fa b0 05 ; "there's nothing " + random("of much use", "useful", &3ab2 fa 86 05 04 0e 4f 04 ; "significant", "important") + " here." &3ab9 04 ; return &3aba 03 ; } &3abb 0d 2b 08 42 6c 5f 05 42 86 05 7c 47 05 f2 05 04 ; "" + random("you can see", "you find", "there is", "there's") + " &3acb 0e 05 ; " &3acd 2c 04 0b ; p["old_room"] = p["player_room"] &3ad0 2c 04 0c ; p["new_room"] = p["player_room"] &3ad3 06 ; list_objects(p["old_room"]. p["new_room"]) &3ad4 0d 0e 4f 04 ; " here." &3ad8 00 ; end ; bytecode_for_verb_45 ("save") &3ad9 8c 08 06 ; if(p["total_words"] == &02) &3adc 01 ; { &3add 26 ; save_position() &3ade 0d fc 05 23 11 26 15 14 04 ; "game saved." &3ae7 04 ; return &3ae8 03 ; } &3ae9 0d fb da 07 05 ; "fileletter? " &3aee 00 ; end ; bytecode_for_verb_46 ("quit") &3aef 0d 42 fb d7 fc 23 32 2b 06 fe 47 05 fe 46 05 04 ; "you really want to " + random("quit", "stop") + "? y/N\n" &3aff 07 29 2f 33 2e 1e 2d 05 &3b07 36 ; p["character"] = read_character() &3b08 8c 24 5d 02 ; if(p["character"] == &59 or &3b0c 8c 24 7d ; p["character"] == &79) &3b0f 01 ; { &3b10 3e ; reset() &3b11 03 ; } &3b12 00 ; end ; bytecode_for_verb_47 ("restart") &3b13 8c 08 05 ; if(p["total_words"] == &01) &3b16 01 ; { &3b17 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &3b1e 2e ; restore_initial_position() &3b1f 56 ; execute_bytecode_for_room() &3b20 04 ; return &3b21 03 ; } &3b22 0d a1 07 05 ; "What? " &3b26 00 ; end ; bytecode_for_verb_48 ("store") &3b27 8c 08 05 ; if(p["total_words"] == &01) &3b2a 01 ; { &3b2b 14 10 ; p["verb"] = 0 &3b2d 4e ; store_position() &3b2e 0d fc 05 23 24 1f 22 15 14 04 ; "game stored." &3b38 04 ; return &3b39 03 ; } &3b3a 0d a1 07 05 ; "what? " &3b3e 00 ; end ; bytecode_for_verb_49 ("restore") &3b3f 8c 08 05 ; if(p["total_words"] == &01) &3b42 01 ; { &3b43 0d 2f 10 2d 2d 2d 05 ; "[cls]\n\n\n" &3b4a 6e ; restore_position(); &3b4b 47 ; room.flags[4] = false &3b4c 56 ; execute_bytecode_for_room() &3b4d 04 ; return &3b4e 03 ; } &3b4f 0d a1 07 05 ; "What? " &3b53 00 ; end ; bytecode_for_room_actions ; bytecode_for_room_05_actions &3b54 00 ; end ; bytecode_for_room_06_actions &3b55 00 ; end ; bytecode_for_room_07_actions &3b56 00 ; end ; bytecode_for_room_08_actions &3b57 86 0a ; if(verb == "north") { player_room = &0a } &3b59 8e 0c ; if(verb == "east") { player_room = &0c } &3b5b 96 0b ; if(verb == "south") { player_room = &0b } &3b5d 9e 09 ; if(verb == "west") { player_room = &09 } &3b5f 00 ; end ; bytecode_for_room_09_actions &3b60 86 0a ; if(verb == "north") { player_room = &0a } &3b62 8e 08 ; if(verb == "east") { player_room = &08 } &3b64 96 0b ; if(verb == "south") { player_room = &0b } &3b66 88 08 02 ; if(verb == "west" or &3b69 88 11 ; verb == "exit") &3b6b 01 ; { &3b6c 0d 42 b8 73 44 2e b3 0b 44 2e 75 91 42 04 ; "You emerge from the Tardis, the Doctor beside you." &3b7a 94 25 05 ; if(p["soldier_timer"] > &01 and &3b7d 84 25 08 ; p["soldier_timer"] < &04) &3b80 01 ; { &3b81 08 11 ; player_room = &0d &3b83 04 ; return &3b84 03 ; } &3b85 0d 34 ff 62 0b 1f 12 26 19 1f 25 23 1c 29 5b fc ; "a soldier, obviously not used to telephone boxes appearing &3b95 5f 32 fb db 12 1f 28 15 23 fa b1 61 43 fb 1e fc ; out of thin air, has his musket at the ready. In the split &3ba5 16 0b 56 5a ff 4a 39 44 fc 9e 06 35 44 fc bf fc ; second before he fires, you regret once more your habit of &3bb5 c0 9b 3d fc 4a 0b 42 fc 89 fc 0f 71 60 18 11 12 ; not looking where you are going." &3bc5 19 24 43 5b ed 88 42 45 17 1f 19 1e 17 04 &3bd3 08 09 ; player_room = &05 &3bd5 03 ; } &3bd6 00 ; end ; bytecode_for_room_0a_actions &3bd7 8e 0c ; if(verb == "east") { player_room = &0c } &3bd9 96 08 ; if(verb == "south") { player_room = &08 } &3bdb 9e 09 ; if(verb == "west") { player_room = &09 } &3bdd 88 3d ; if(verb == "open" and &3bdf 89 3d ; first_noun == "tapestry" and &3be1 a7 ; !room.flags[2]) &3be2 01 ; { &3be3 0d 42 fe 43 61 ff 33 34 fb 6c fc 07 b5 06 3a fc ; "You look out onto a cobbled town square. An armed soldier is &3bf3 2c ff 62 47 fa 23 39 44 2e b3 0b fa b2 5a ff 4a ; staring at the Tardis, fingering his musket." &3c03 04 &3c04 2f ; room.flags[2] = true &3c05 44 20 ; p["score"] ++ &3c07 04 ; return &3c08 03 ; } &3c09 88 22 ; if(verb == "use" and &3c0b 89 3d 02 ; first_noun == "tapestry" or &3c0e 88 32 02 ; verb == "wait" or &3c11 88 47 ; verb == "search") &3c13 01 ; { &3c14 a7 ; if(!room.flags[2]) &3c15 01 ; { &3c16 0d 44 ff 52 47 13 1c 1f 23 15 14 04 ; "the screen is closed." &3c22 04 ; return &3c23 03 ; } &3c24 44 25 ; p["soldier_timer"] ++ &3c26 8c 25 05 ; if(p["soldier_timer"] == &01) &3c29 01 ; { &3c2a 0d 44 ff 62 47 da 95 44 2e b3 0b fa b3 3c 35 fa ; "the soldier is walking round the Tardis, inspecting it &3c3a b4 04 ; in disbelief." &3c3c 04 ; return &3c3d 03 ; } &3c3e 8c 25 06 ; if(p["soldier_timer"] == &02) &3c41 01 ; { &3c42 0d 44 ff 62 fc 2a 7e 79 0b 59 67 32 fe 1b fe 41 ; "the soldier runs off north, as if to get help." &3c52 04 &3c53 04 ; return &3c54 03 ; } &3c55 8c 25 07 ; if(p["soldier_timer"] == &03) &3c58 01 ; { &3c59 0d 44 b5 47 fc b3 94 63 04 ; "the square is empty just now." &3c62 04 ; return &3c63 03 ; } &3c64 0d 14 1f 2a 15 1e 23 43 db 53 11 20 20 15 11 22 ; "dozens of soldiers have appeared and are aiming their &3c74 15 14 51 45 fc fe a9 fa a3 39 44 fc 53 43 44 2e ; muskets at the doors of the Tardis." &3c84 b3 04 &3c86 03 ; } &3c87 00 ; end ; bytecode_for_room_0b_actions &3c88 86 08 ; if(verb == "north") { player_room = &08 } &3c8a 9e 09 ; if(verb == "west") { player_room = &09 } &3c8c 8e 0c ; if(verb == "east") { player_room = &0c } &3c8e 00 ; end ; bytecode_for_room_0c_actions &3c8f 86 0a ; if(verb == "north") { player_room = &0a } &3c91 96 0b ; if(verb == "south") { player_room = &0b } &3c93 9e 08 ; if(verb == "west") { player_room = &08 } &3c95 00 ; end ; bytecode_for_room_0d_actions &3c96 2c 04 06 ; p["previous_room"] = p["player_room"] &3c99 2c 04 05 ; p["current_room"] = p["player_room"] &3c9c 44 26 ; p["infantry_timer"] ++ &3c9e 94 26 07 ; if(p["infantry_timer"] > &03) &3ca1 01 ; { &3ca2 0e ; skip_to_next_bytecode() &3ca3 03 ; } &3ca4 88 06 02 ; if(verb == "east" or &3ca7 88 12 02 ; verb == "enter" or &3caa 88 3d ; verb == "open" and &3cac 89 37 ; first_noun == "door") &3cae 01 ; { &3caf 0d 44 2e 75 56 fb 49 44 2e b3 4e 04 ; "The Doctor has locked the Tardis door." &3cbb 04 ; return &3cbc 03 ; } &3cbd 88 05 ; if(verb == "north") &3cbf 01 ; { &3cc0 08 12 ; player_room = &0e &3cc2 04 ; return &3cc3 03 ; } &3cc4 80 09 ; if(verb < "northeast") &3cc6 01 ; { &3cc7 0d 44 fc 8a fc 07 47 fb dc 78 2e b9 db 06 60 fa ; "the whole town is teeming with French soldiers. Your &3cd7 b5 47 fb d2 f9 27 4b 44 64 51 fe 50 0a 44 2e b9 ; clothing is hardly appropriate for the time and place; the &3ce7 fc 77 32 15 28 15 13 25 24 15 42 fc 8b 51 fa b6 ; French decide to execute you first and interrogate you &3cf7 42 f9 28 04 ; afterwards." &3cfb 08 09 ; player_room = &05 &3cfd 03 ; } &3cfe 00 ; end ; bytecode_for_room_0e_actions &3cff 44 26 ; p["infantry_timer"] ++ &3d01 94 26 08 ; if(p["infantry_timer"] > &04) &3d04 01 ; { &3d05 0e ; skip_to_next_bytecode() &3d06 03 ; } &3d07 88 06 02 ; if(verb == "east" or &3d0a 88 12 ; verb == "enter") &3d0c 01 ; { &3d0d 0d 44 fc 09 bc 61 32 37 48 43 44 2e b9 11 22 1d ; "The inn turns out to be one of the French army's &3d1d 29 0f 23 f9 4c 0b fa 24 46 2e ca 85 34 fc 1c fc ; headquarters, vacated by Napoleon only a few hours ago. On &3d2d 8c 11 17 1f 06 38 8d fb dd 42 45 1c 25 13 1b 29 ; this occasion you are lucky; you are slung out in the street &3d3d 0a 42 45 23 1c 25 1e 17 61 35 44 fc 29 59 fa b7 ; as vagabonds." &3d4d 04 &3d4e 03 ; } &3d4f 86 0f ; if(verb == "north") { player_room = &0f } &3d51 96 0d ; if(verb == "south") { player_room = &0d } &3d53 00 ; end ; bytecode_for_room_0f_actions &3d54 44 26 ; p["infantry_timer"] ++ &3d56 94 26 09 ; if(p["infantry_timer"] > &05) &3d59 01 ; { &3d5a 0d 34 fa 25 43 2e fa 7d e2 15 1d 15 22 17 15 23 ; "A platoon of Napoleon's infantry emerges from the building &3d6a 73 44 fa 79 32 44 4c 06 42 45 20 22 1f 1d 20 24 ; to the west. You are promptly captured, tried, and executed &3d7a 1c 29 fb d3 0b fc 8d 0b 51 fa b8 59 2e ef f9 63 ; as English sympathisers." &3d8a 04 &3d8b 08 09 ; player_room = &05 &3d8d 04 ; return &3d8e 03 ; } &3d8f a7 ; if(!room.flags[2]) &3d90 01 ; { &3d91 88 20 02 ; if(verb == "ask" or &3d94 88 21 ; verb == "speak") &3d96 01 ; { &3d97 89 39 02 ; if(first_noun == "french" or &3d9a 8a 39 ; second_noun == "french") &3d9c 01 ; { &3d9d 0d 44 2e 75 ab 58 60 fc 8e 0b 24 15 1c 1c 19 1e ; "the Doctor takes up your idea, telling the guards in &3dad 17 44 fb de 35 fa b9 2e b9 32 18 25 22 22 29 51 ; excellent French to hurry and join the others &3dbd 1a 1f 19 1e 44 1f 24 18 15 22 23 ed 4b 44 2e ef ; looking for the English spies in the town. The &3dcd fb 4a 35 44 fc 07 06 44 fa ee ff 1c 38 20 11 23 ; infantrymen run on past you." &3ddd 24 42 04 &3de0 44 20 ; p["score"] ++ &3de2 2f ; room.flags[2] = true &3de3 0c 06 26 ; p["infantry_timer"] = &02 &3de6 04 ; return &3de7 03 ; } &3de8 03 ; } &3de9 0d 44 2e fa ba 0b f3 f9 49 0b fc 8f 42 06 42 45 ; "the Frenchmen, already suspicious, arrest you. You are taken &3df9 fc 7c 8e 32 44 b5 0b f9 29 0b 51 ae 59 1f 12 26 ; back to the square, interrogated, and shot as obvious &3e09 19 1f 25 23 0e 1c 19 11 22 23 04 ; liars." &3e14 08 09 ; player_room = &05 &3e16 04 ; return &3e17 03 ; } &3e18 86 10 ; if(verb == "north") { player_room = &10 } &3e1a 88 07 ; if(verb == "south") &3e1c 01 ; { &3e1d 0d 44 fe 50 47 fb dc 78 2e fa ba ed 4b 42 06 fc ; "the place is teeming with Frenchmen looking for you. Since &3e2d 70 42 45 e0 fa 26 0b 42 45 ae 61 43 87 04 ; you are clearly foreign, you are shot out of hand." &3e3b 08 09 ; player_room = &05 &3e3d 03 ; } &3e3e 00 ; end ; bytecode_for_room_10_actions &3e3f a7 ; if(!room.flags[2]) &3e40 01 ; { &3e41 88 36 02 ; if(verb == "light" or &3e44 88 1c ; verb == "shoot" and &3e46 8d 46 ; preposition == "to") &3e48 01 ; { &3e49 89 3f ; if(first_noun == "bridge") &3e4b 01 ; { &3e4c db 15 ; if(object_room["matches"] == "carrying") &3e4e 01 ; { &3e4f 0d 42 a3 34 ff 38 51 fe 30 3c 38 44 ff 55 0b b6 ; "You light a match and drop it on the bridge, &3e5f f5 fe 2a 51 fb 44 fb df 06 63 42 6d fc ae fc 30 ; which catches fire and burns fiercely. Now you &3e6f 0b c5 8d 64 73 44 79 04 ; hear fresh cries, coming this time from the ; north." &3e77 2f ; room.flags[2] = true &3e78 44 20 ; p["score"] ++ &3e7a 04 ; return &3e7b 03 ; } &3e7c 0d f9 53 42 53 3b ff 5d 06 2d 05 ; "unfortunately you have no matches. \n" &3e87 03 ; } &3e88 03 ; } &3e89 0d 44 fb 71 54 70 24 18 25 14 14 19 1e 17 8b 44 ; "The pounding feet come thudding over the bridge, and a mob &3e99 ff 55 0b 51 34 1d 1f 12 43 16 19 16 24 29 0e 16 ; of fifty furious frenchmen hurl themselves on you. By the &3ea9 25 22 19 1f 25 23 0e fa ba 18 25 22 1c f9 2a 38 ; time an officer arrives, you have been squashed to death." &3eb9 42 06 46 44 64 3a e7 fa 27 0b 42 53 57 23 21 25 &3ec9 11 23 18 15 14 32 fc 74 04 &3ed2 08 09 ; player_room = &05 &3ed4 04 ; return &3ed5 03 ; } &3ed6 b7 ; if(!room.flags[3]) &3ed7 01 ; { &3ed8 88 2d ; if(verb == "hide") &3eda 01 ; { &3edb 0d 42 13 22 11 27 1c 82 44 fc 2f 06 54 70 fb 71 ; "you crawl under the wagon. Feet come pounding by. After &3eeb 46 06 9c 34 fc 35 0b 89 47 fc 78 fc 57 04 ; a while, all is quiet again." &3ef9 3f ; room.flags[3] = true &3efa 04 ; return &3efb 03 ; } &3efc 0d fa ee b8 73 34 f9 2b 32 44 79 06 25 1e 11 12 ; "infantrymen emerge from a guardhouse to the north. Unable to &3f0c 1c 15 32 fb 2d 42 ba 44 16 1c 11 1d 15 23 0b 7f ; miss you against the flames, they shoot you easily." &3f1c fe 4d 42 15 11 23 19 1c 29 04 &3f26 08 09 ; player_room = &05 &3f28 04 ; return &3f29 03 ; } &3f2a 88 07 02 ; if(verb == "south" or &3f2d 88 13 ; verb == "back") &3f2f 01 ; { &3f30 0d 42 53 12 25 22 1e 15 14 60 ff 55 b7 42 04 ; "you have burned your bridge behind you." &3f3f 03 ; } &3f40 86 11 ; if(verb == "north") { player_room = &11 } &3f42 00 ; end ; bytecode_for_room_11_actions &3f43 96 10 ; if(verb == "south") { player_room = &10 } &3f45 9e 16 ; if(verb == "west") { player_room = &16 } &3f47 8e 13 ; if(verb == "east") { player_room = &13 } &3f49 86 14 ; if(verb == "north") { player_room = &14 } &3f4b 00 ; end ; bytecode_for_room_12_actions &3f4c 88 1a ; if(verb == "take" and &3f4e ac 0e 0d ; p["number_of_objects_carried"] == p["maximum_objects_carried"]) &3f51 01 ; { &3f52 04 ; return &3f53 03 ; } &3f54 88 1a ; if(verb == "take" and &3f56 8d 4e ; preposition == "carefully" and &3f58 89 2e ; first_noun == "bayonet" and &3f5a a7 ; !room.flags[2]) &3f5b 01 ; { &3f5c 0d 42 fc 90 44 ff 60 73 44 ff 4a 78 17 22 15 11 ; "You remove the bayonet from the musket with great care. The &3f6c 24 0e 13 11 22 15 06 44 ff 62 47 5b fb e0 04 ; soldier is not disturbed." &3f7b 1b 2e ; object_room["bayonet"] = 1 &3f7d 6f ; room.flags[6] = true &3f7e 2f ; room.flags[2] = true &3f7f 44 20 ; p["score"] ++ &3f81 04 ; return &3f82 03 ; } &3f83 88 1a 02 ; if(verb == "take" or &3f86 88 1b ; verb == "attack") &3f88 01 ; { &3f89 0d 60 13 1c 25 1d 23 29 fb 47 fb e1 44 ff 62 0b ; "your clumsy action disturbs the soldier, who jumps up and &3f99 62 1a 25 1d 20 23 58 51 23 13 22 15 11 1d 23 5e ; screams some imprecation in French. He grabs the musket, &3fa9 f9 2c 35 2e b9 06 3d 17 22 11 12 23 44 ff 4a 0b ; holds it to your chest, and pulls the trigger. Most &3fb9 fc e9 3c 32 60 13 18 15 23 24 0b 51 fb 8a 44 fb ; ungentlemanly." &3fc9 e2 06 6b f9 57 04 &3fcf 08 09 ; player_room = &05 &3fd1 03 ; } &3fd2 b6 14 ; if(verb == "southeast") { player_room = &14 } &3fd4 e6 14 ; if(verb == "exit") { player_room = &14 } &3fd6 00 ; end ; bytecode_for_room_13_actions &3fd7 44 28 ; p["inn_timer"] ++ &3fd9 9e 11 ; if(verb == "west") { player_room = &11 } &3fdb e6 11 ; if(verb == "exit") { player_room = &11 } &3fdd 94 28 08 02 ; if(p["inn_timer"] > &04 or &3fe1 88 17 02 ; verb == "buy" or &3fe4 88 20 ; verb == "ask") &3fe6 01 ; { &3fe7 0d 44 2e b9 db 98 42 0b 51 fb 4b 42 59 24 18 19 ; "The French soldiers notice you, and denounce you as thieves &3ff7 15 26 15 23 51 2e ef fb 4a 04 ; and English spies." &4001 08 38 ; player_room = &34 &4003 03 ; } &4004 00 ; end ; bytecode_for_room_14_actions &4005 a7 ; if(!room.flags[2]) &4006 01 ; { &4007 9d 4f 02 ; if(preposition != "quickly" or &400a 90 07 ; verb > "south") &400c 01 ; { &400d 80 08 ; if(verb < "west") &400f 01 ; { &4010 0d 42 45 d5 5c 23 1c 1f 27 04 ; "You are much too slow." &401a 03 ; } ; else &401b 01 ; { &401c 80 0d ; if(verb < "left") &401e 01 ; { &401f 0d 42 45 ff 64 fb e3 04 ; "you are quickly cornered." &4027 03 ; } &4028 03 ; } &4029 0d 44 fa 6d fc 8f 42 0b 51 fe 28 42 4b f9 2d 46 ; "the officers arrest you, and take you for questioning by &4039 34 e8 43 2e ca 04 ; a marshal of Napoleon." &403f 08 38 ; player_room = &34 &4041 04 ; return &4042 03 ; } &4043 0d 44 2e 75 fc 2a 35 44 de fb 9a 0b 51 44 fa 6d ; "the Doctor runs in the opposite direction, and the officers &4053 13 18 11 23 15 6a c7 fc 91 42 06 44 fc 0c 24 18 ; chase him rather than you. The last thing you see is the &4063 19 1e 17 42 5f 47 44 2e 75 84 fa 84 4a 44 8f 04 ; Doctor being escorted into the camp." &4073 14 09 ; p["output_written"] = 0 &4075 44 20 ; p["score"] ++ &4077 2f ; room.flags[2] = true &4078 14 29 ; p["doctor_state"] = 0 &407a 03 ; } &407b 86 19 ; if(verb == "north") { player_room = &19 } &407d a6 17 ; if(verb == "northeast") { player_room = &17 } &407f 8e 18 ; if(verb == "east") { player_room = &18 } &4081 b6 13 ; if(verb == "southeast") { player_room = &13 } &4083 96 11 ; if(verb == "south") { player_room = &11 } &4085 be 15 ; if(verb == "southwest") { player_room = &15 } &4087 9e 1c ; if(verb == "west") { player_room = &1c } &4089 ae 12 ; if(verb == "northwest") { player_room = &12 } &408b 00 ; end ; bytecode_for_room_15_actions &408c a6 14 ; if(verb == "northeast") { player_room = &14 } &408e e6 14 ; if(verb == "exit") { player_room = &14 } &4090 88 1a ; if(verb == "take") &4092 01 ; { &4093 89 28 02 ; if(first_noun == "cleaver" or &4096 89 41 ; first_noun == "all") &4098 01 ; { &4099 0d 39 44 9a 9f 42 fe 28 44 ff 5e 0b 49 fa 6d 43 ; "At the very moment you take the cleaver, two officers of &40a9 44 2e 19 1d 20 15 22 19 11 1c 2e 0e ff 41 fc 7e ; the Imperial Guard walk in and accuse you of murdering &40b9 35 51 11 13 13 25 23 15 42 43 fa bb 44 12 25 24 ; the butcher." &40c9 13 18 15 22 04 &40ce 08 38 ; player_room = &34 &40d0 03 ; } &40d1 03 ; } &40d2 00 ; end ; bytecode_for_room_16_actions &40d3 8e 11 ; if(verb == "east") { player_room = &11 } &40d5 e6 11 ; if(verb == "exit") { player_room = &11 } &40d7 af ; if(room.flags[2]) &40d8 01 ; { &40d9 88 17 ; if(verb == "buy" and &40db 89 21 ; first_noun == "bread") &40dd 01 ; { &40de 0d 42 53 12 1f 25 17 18 24 48 ff 29 04 ; "You have bought one loaf." &40eb 03 ; } &40ec 04 ; return &40ed 03 ; } &40ee 88 17 02 ; if(verb == "buy" or &40f1 88 1a ; verb == "take") &40f3 01 ; { &40f4 db 05 ; if(object_room["florins"] == "carrying") &40f6 01 ; { &40f7 89 21 ; if(first_noun == "bread") &40f9 01 ; { &40fa 0d 44 fc 3a fb 2e 34 92 ff 29 38 44 fb 4c 0b 51 ; "the baker puts a long loaf on the counter, and &410a fb c8 42 fc 7f 34 ff 44 06 0d 2e 42 5f 0b 2e ca ; charges you half a florin. \"You see, Napoleon will &411a b0 fa bc 44 2e ef 6f 12 25 1c 1c 1f 13 1b 23 0b ; slaughter the English like bullocks, tomorrow or &412a fb e4 36 2e fb e5 39 44 f9 16 0b 0c 0e 3d fb a8 ; Saturday at the latest, \" he remarks cheerfully. &413a f9 47 06 0d 30 16 30 13 27 2f 83 b0 41 52 35 fc ; \"1815 will go down in history. . . \" " &414a f5 06 06 06 0c 05 &4150 44 2a ; p["baker_state"] ++ &4152 2f ; room.flags[2] = true &4153 3b 21 ; object_room["bread"] = player_room &4155 6f ; room.flags[6] = true &4156 03 ; } &4157 04 ; return &4158 03 ; } &4159 0d 42 53 3b 1d 1f 1e 15 29 04 ; "You have no money." &4163 03 ; } &4164 00 ; end ; bytecode_for_room_17_actions &4165 be 14 ; if(verb == "southwest") { player_room = &14 } &4167 e6 14 ; if(verb == "exit") { player_room = &14 } &4169 88 17 02 ; if(verb == "buy" or &416c 88 20 02 ; verb == "ask" or &416f 88 21 ; verb == "speak") &4171 01 ; { &4172 0d 44 f9 48 1d 11 1b 15 22 47 fa bd 11 1c 15 22 ; "The candlestick maker is instantly alerted by your accent, &4182 24 15 14 46 60 fb 4d 0b 51 fb e6 42 32 44 2e b9 ; and denounces you to the French." &4192 04 &4193 08 38 ; player_room = &34 &4195 04 ; return &4196 03 ; } &4197 88 27 ; if(verb == "offer" and &4199 89 05 ; first_noun == "florins" and &419b a7 ; !room.flags[2]) &419c 01 ; { &419d 0d 44 fc 10 ff 6d ab 48 ff 44 73 42 51 ff 6d 1f ; "the man silently takes one florin from you and silently &41ad 16 16 15 22 23 42 5a ff 67 04 ; offers you his scissors." &41b7 3b 2c ; object_room["scissors"] = player_room &41b9 6f ; room.flags[6] = true &41ba 2f ; room.flags[2] = true &41bb 44 20 ; p["score"] ++ &41bd 03 ; } &41be 88 1a ; if(verb == "take" and &41c0 89 3a ; first_noun == "candle") &41c2 01 ; { &41c3 0d 44 fc 10 fb 40 fc 34 32 fc 23 32 23 15 1c 1c ; "the man doesn't seem to want to sell you a candle." &41d3 42 34 ff 50 04 &41d8 03 ; } &41d9 00 ; end ; bytecode_for_room_18_actions &41da d3 23 ; if(object_room["cloaks"] == "wearing") &41dc 01 ; { &41dd 4f ; room.flags[4] = true &41de 03 ; } ; else &41df 01 ; { &41e0 0d 60 f9 2e fa b5 1d 11 22 1b 23 42 59 34 fa 28 ; "Your outlandish clothing marks you as a hostile alien, and &41f0 11 1c 19 15 1e 0b 51 60 fb 4d 13 1f 1e 16 19 22 ; your accent confirms your guilt. You are handed over to be &4200 1d 23 60 17 25 19 1c 24 06 42 45 18 11 1e 14 15 ; questioned." &4210 14 8b 32 37 fa 72 04 &4217 08 38 ; player_room = &34 &4219 04 ; return &421a 03 ; } &421b af ; if(room.flags[2]) &421c 01 ; { &421d 0d fa fe 44 e1 fa be 42 06 42 45 23 15 19 2a 15 ; "suddenly the sergeant recognises you. You are seized and &422d 14 51 f9 58 76 04 ; frogmarched away." &4233 08 2a ; player_room = &26 &4235 04 ; return &4236 03 ; } &4237 0d f0 42 33 be 32 fb e7 44 e1 06 44 2e b9 fe 62 ; "nothing you do seems to convince the sergeant. The French search &4247 42 05 ; you" &4249 c4 0e 02 ; if(p["number_of_objects_carried"] == 0 or &424c 8c 0e 05 ; p["number_of_objects_carried"] == &01 and &424f db 2e ; object_room["bayonet"] == "carrying") &4251 01 ; { &4252 0d 69 86 f0 05 ; "but find nothing" &4257 03 ; } ; else &4258 01 ; { &4259 db 2e ; if(object_room["bayonet"] == "carrying") &425b 01 ; { &425c 0b 89 2e ; object_room["bayonet"] = &85 &425f 03 ; } &4260 0d 51 fc 90 73 42 05 ; "and remove from you" &4267 1c 0b ; p["old_room"] = 1 &4269 0c 37 0c ; p["new_room"] = &33 &426c 06 ; list_objects(p["old_room"]. p["new_room"]) &426d 03 ; } &426e 2f ; room.flags[2] = true &426f 08 21 ; player_room = &1d &4271 eb 2e 89 ; if(object_room["bayonet"] == &85) &4274 01 ; { &4275 1b 2e ; object_room["bayonet"] = 1 &4277 0d 0b 69 1f 26 15 22 1c 1f 1f 1b 48 19 24 15 1d ; ", but overlook one item" &4287 05 &4288 03 ; } &4289 0d 04 ; "." &428b db 2e ; if(object_room["bayonet"] == "carrying") &428d 01 ; { &428e 44 20 ; p["score"] ++ &4290 03 ; } &4291 00 ; end ; bytecode_for_room_19_actions &4292 86 1a ; if(verb == "north") { player_room = &1a } &4294 96 14 ; if(verb == "south") { player_room = &14 } &4296 9e 1c ; if(verb == "west") { player_room = &1c } &4298 00 ; end ; bytecode_for_room_1a_actions &4299 86 1b ; if(verb == "north") { player_room = &1b } &429b 8e 7c ; if(verb == "east") { player_room = &7c } &429d 96 19 ; if(verb == "south") { player_room = &19 } &429f 9e 1c ; if(verb == "west") { player_room = &1c } &42a1 00 ; end ; bytecode_for_room_1b_actions &42a2 88 12 02 ; if(verb == "enter" or &42a5 8d 43 ; preposition == "into") &42a7 01 ; { &42a8 0d 42 fe 5b 35 44 bf 06 59 fc 15 59 44 2e fb 4e ; "You climb in the carriage. As soon as the Belgian gentleman &42b8 fb 7d fc 82 35 0b 3d fa 73 42 51 fb e6 42 32 44 ; gets in, he discovers you and denounces you to the French." &42c8 2e b9 04 &42cb 08 38 ; player_room = &34 &42cd 04 ; return &42ce 03 ; } &42cf 88 2d ; if(verb == "hide") &42d1 01 ; { &42d2 0d 42 fc 92 82 44 bf 9b fc 93 d6 0b 51 13 1c 19 ; "you slip under the carriage before anyone notices, and cling &42e2 1e 17 32 44 12 1f 24 24 1f 1d 06 44 bf 23 15 24 ; to the bottom. The carriage sets off north, passing through &42f2 23 7e 79 0b fb e8 fa 74 fc 6c 44 2e b9 51 2e ef ; both the French and English lines before you finally lose &4302 fc 76 9b 42 fb e9 fc 1b 60 17 22 19 20 51 a7 7e ; your grip and fall off." &4312 04 &4313 08 85 ; player_room = &81 &4315 44 20 ; p["score"] ++ &4317 04 ; return &4318 03 ; } &4319 80 09 ; if(verb < "northeast") &431b 01 ; { &431c 0d 42 fc 24 32 fc 92 76 0b 69 44 f9 2f 98 51 18 ; "you try to slip away, but the guardsmen notice and haul you &432c 11 25 1c 42 8e 04 ; back." &4332 03 ; } ; else &4333 01 ; { &4334 0d 44 fb 7d 13 1c 19 1d 12 23 4a 5a bf 51 14 22 ; "the gentleman climbs into his carriage and drives off &4344 19 26 15 23 7e fa f2 06 44 f9 2f fc 6a 32 42 06 ; northwards. The guardsmen turn to you. You are rapidly &4354 42 45 e6 fb ea 59 84 fa 29 2e b9 f9 0d 2e fb 4e ; unmasked as being neither French nor Belgian." &4364 04 &4365 03 ; } &4366 08 38 ; player_room = &34 &4368 00 ; end ; bytecode_for_room_1c_actions &4369 00 ; end ; bytecode_for_room_1d_actions &436a 2c 04 05 ; p["current_room"] = p["player_room"] &436d 2c 04 06 ; p["previous_room"] = p["player_room"] &4370 88 07 02 ; if(verb == "south" or &4373 88 13 02 ; verb == "back" or &4376 88 11 ; verb == "exit") &4378 01 ; { &4379 94 27 05 ; if(p["tent_guards_patience"] > &01) &437c 01 ; { &437d 0d 60 fb de fb e9 fc 1b fb 4f 51 fe 1f 34 ff 60 ; "Your guards finally lose patience and use a bayonet on &438d 38 42 06 42 fc 77 77 42 14 19 14 66 3c 34 fc 6f ; you. You decide that you did cut it a little too fine." &439d 5c fc 1e 04 &43a1 08 09 ; player_room = &05 &43a3 04 ; return &43a4 03 ; } &43a5 0d 44 2e b9 45 17 25 11 22 14 19 1e 17 44 fe 26 ; "the French are guarding the exit and simply throw you back &43b5 51 23 19 1d 20 1c 29 fe 52 42 8e 35 44 65 04 ; in the tent." &43c4 44 27 ; p["tent_guards_patience"] ++ &43c6 03 ; } &43c7 88 18 ; if(verb == "cut" and &43c9 89 32 ; first_noun == "canvas") &43cb 01 ; { &43cc af ; if(room.flags[2]) &43cd 01 ; { &43ce 0d 3c fc 27 66 fb eb 15 1c 23 15 04 ; "it won't cut anywhere else." &43da 04 ; return &43db 03 ; } &43dc db 2e ; if(object_room["bayonet"] == "carrying") &43de 01 ; { &43df 0d 44 ff 60 47 94 fc f2 fb c2 32 66 44 23 15 11 ; "the bayonet is just sharp enough to cut the seam on the &43ef 1d 38 44 79 4d 04 ; north side." &43f5 2f ; room.flags[2] = true &43f6 44 20 ; p["score"] ++ &43f8 04 ; return &43f9 03 ; } &43fa 0d 78 a1 07 05 ; "with what? " &43ff 03 ; } &4400 af ; if(room.flags[2]) &4401 01 ; { &4402 86 1e ; if(verb == "north") { player_room = &1e } &4404 04 ; return &4405 03 ; } &4406 00 ; end ; bytecode_for_room_1e_actions &4407 0e ; skip_to_next_bytecode() &4408 00 ; end ; bytecode_for_room_1f_actions &4409 0e ; skip_to_next_bytecode() &440a 00 ; end ; bytecode_for_room_20_actions &440b 0e ; skip_to_next_bytecode() &440c 00 ; end ; bytecode_for_room_21_actions &440d 88 18 ; if(verb == "cut" and &440f 89 32 ; first_noun == "canvas") &4411 01 ; { &4412 a7 ; if(!room.flags[2]) &4413 01 ; { &4414 db 2e ; if(object_room["bayonet"] == "carrying") &4416 01 ; { &4417 0d 42 fc 18 34 92 2b 08 fb 17 05 23 1c 11 23 18 ; "You make a long " + random("gash", "slash", "hole", &4427 05 68 05 66 05 04 0e 35 44 65 7a 4c 04 ; "cut") + " in the tent wall west." &4434 2f ; room.flags[2] = true &4435 04 ; return &4436 03 ; } &4437 0d 78 a1 07 05 ; "with what? " &443c 04 ; return &443d 03 ; } &443e 0d 3c 47 f3 66 04 ; "it is already cut." &4444 03 ; } &4445 88 07 ; if(verb == "south") &4447 01 ; { &4448 4c 04 ; p["player_room"] -- &444a 44 09 ; p["output_written"] ++ &444c 03 ; } &444d 88 05 ; if(verb == "north") &444f 01 ; { &4450 84 04 25 ; if(p["player_room"] < &21) &4453 01 ; { &4454 44 04 ; p["player_room"] ++ &4456 44 09 ; p["output_written"] ++ &4458 04 ; return &4459 03 ; } &445a 0d 42 fb 2f 8b 34 17 25 29 0e 1c 19 1e 15 51 12 ; "you trip over a guy line and bring one of the tents crashing &446a 22 19 1e 17 48 43 44 93 13 22 11 23 18 19 1e 17 ; down. French soldiers come running, and drag you away." &447a 52 06 b9 db 70 dd 0b 51 fb 24 42 76 04 &4487 08 2a ; player_room = &26 &4489 03 ; } &448a af ; if(room.flags[2]) &448b 01 ; { &448c 88 08 02 ; if(verb == "west" or &448f 88 12 ; verb == "enter") &4491 01 ; { &4492 24 84 04 ; p["player_room"] += &04 &4495 44 09 ; p["output_written"] ++ &4497 03 ; } &4498 03 ; } &4499 00 ; end ; bytecode_for_room_22_actions &449a af ; if(room.flags[2]) &449b 01 ; { &449c 0e ; skip_to_next_bytecode() &449d 03 ; } &449e 88 1c ; if(verb == "shoot") &44a0 01 ; { &44a1 0d 60 ae fb 2b 27 19 1c 14 06 44 c2 47 d5 71 fc ; "Your shot goes wild. The veteran is much more used to &44b1 5f 32 18 11 1e 14 1c 19 1e 17 fb ec 0b 51 fb 2e ; handling firearms, and puts a bullet neatly through your &44c1 34 fb ed fb 45 fa 74 60 fb a2 04 ; forehead." &44cc 08 09 ; player_room = &05 &44ce 04 ; return &44cf 03 ; } &44d0 88 1e ; if(verb == "hit" and &44d2 db 26 ; object_room["pistol"] == "carrying") &44d4 01 ; { &44d5 0d 42 fe 1c 44 c2 ff 64 78 44 ff 48 06 3d fb 50 ; "you hit the veteran quickly with the pistol. He falls &44e5 fc b5 0b 14 22 1f 20 20 19 1e 17 34 fc 81 ff 2a ; stunned, dropping a cannon fuse from his left hand." &44f5 73 5a 5d 87 04 &44fa 3b 22 ; object_room["fuse"] = player_room &44fc 2f ; room.flags[2] = true &44fd 44 20 ; p["score"] ++ &44ff 04 ; return &4500 03 ; } &4501 0d 44 fb ee fa 2a f5 60 27 22 19 23 24 0b 51 24 ; "the seasoned fighter catches your wrist, and throws you to the &4511 18 22 1f 27 23 42 32 44 8c 9b f9 59 42 78 5a ff ; floor before despatching you with his pistol." &4521 48 04 &4523 08 09 ; player_room = &05 &4525 00 ; end ; bytecode_for_room_23_actions &4526 9d 50 ; if(preposition != "silently" and &4528 8c 04 27 ; p["player_room"] == &23) &452b 01 ; { &452c 0d 44 14 22 25 1e 1b 47 fb e0 46 60 fc 94 51 fa ; "The drunk is disturbed by your noise and staggers to his &453c bf 32 5a 54 06 3d fc 95 32 14 11 1e 13 15 78 42 ; feet. He tries to dance with you, singing loudly, and &454c 0b 23 19 1e 17 19 1e 17 fb 7e 0b 51 fb ef 32 fe ; refuses to stop. The racket attracts the attentions of more &455c 46 06 44 22 11 13 1b 15 24 fb f0 44 fa c0 43 71 ; sober soldiers, who march you silently away." &456c 23 1f 12 15 22 db 0b 62 fc c3 42 ff 6d 76 04 &457b 08 2a ; player_room = &26 &457d 04 ; return &457e 03 ; } &457f 0e ; skip_to_next_bytecode() &4580 00 ; end ; bytecode_for_room_24_actions &4581 0e ; skip_to_next_bytecode() &4582 00 ; end ; bytecode_for_room_25_actions &4583 8c 04 29 ; if(p["player_room"] == &25 and &4586 a7 ; !room.flags[2]) &4587 01 ; { &4588 88 29 ; if(verb == "sign" and &458a 89 1a ; first_noun == "documents" and &458c 97 ; !room.flags[1]) &458d 01 ; { &458e 0d 44 fa c1 be 32 fb 51 8d 06 3d fb f1 23 1d 11 ; "The lieutenant seems to accept this. He salutes &459e 22 24 1c 29 04 ; smartly." &45a3 1f ; room.flags[1] = true &45a4 04 ; return &45a5 03 ; } &45a6 9f ; if(room.flags[1] and &45a7 88 3c ; verb == "salute") &45a9 01 ; { &45aa 0d 44 fa c1 ab 44 ff 70 0b bc 23 1d 11 22 24 1c ; "the lieutenant takes the documents, turns smartly, and &45ba 29 0b 51 fa 8c 06 42 53 3b fc 8e 62 3d 24 18 19 ; disappears. You have no idea who he thinks you are." &45ca 1e 1b 23 42 45 04 &45d0 0b 0a 1a ; object_room["documents"] = &06 &45d3 17 ; room.flags[1] = false &45d4 2f ; room.flags[2] = true &45d5 44 20 ; p["score"] ++ &45d7 04 ; return &45d8 03 ; } &45d9 0d 44 e7 d6 44 66 35 44 ff 4e de 6a 06 14 1f 25 ; "the officer notices the cut in the canvas opposite him. &45e9 12 24 23 0e 11 23 23 11 19 1c 6a 06 fa fe 3d fb ; Doubts assail him. Suddenly he calls the guard and your &45f9 41 44 ff 41 51 60 12 1c 25 16 16 47 fb 52 04 ; bluff is called." &4608 08 2a ; player_room = &26 &460a 04 ; return &460b 03 ; } &460c 88 08 ; if(verb == "west") &460e 01 ; { &460f 0d 42 fb 3e 61 43 44 65 4a 44 fc 0b f9 17 b5 06 ; "you wander out of the tent into the main parade square. &461f fb 53 ea 42 45 fa c2 51 f9 58 76 04 ; Within minutes you are rearrested and frogmarched away." &462b 08 2a ; player_room = &26 &462d 04 ; return &462e 03 ; } &462f 88 06 ; if(verb == "east") &4631 01 ; { &4632 24 7c 04 ; p["player_room"] -= &04 &4635 44 09 ; p["output_written"] ++ &4637 03 ; } &4638 00 ; end ; bytecode_for_room_26_actions &4639 2c 04 05 ; p["current_room"] = p["player_room"] &463c 2c 04 06 ; p["previous_room"] = p["player_room"] &463f 88 3d ; if(verb == "open" and &4641 89 37 ; first_noun == "door") &4643 01 ; { &4644 0d 44 4e 47 fb 49 04 ; "The door is locked." &464b 03 ; } &464c 88 30 02 ; if(verb == "press" or &464f 88 2f ; verb == "lift") &4651 01 ; { &4652 89 31 ; if(first_noun == "armour") &4654 01 ; { &4655 17 ; room.flags[1] = false &4656 df ; if(room.flags[5]) &4657 01 ; { &4658 0d 42 05 ; "you" &465b 15 ; print verb &465c 0d 3c 8e 04 ; "it back." &4660 57 ; room.flags[5] = false &4661 04 ; return &4662 03 ; } &4663 0d 42 05 ; "you" &4666 15 ; print verb &4667 0d 44 ff 2b 76 73 44 7a 05 ; "the bunk away from the wall" &4670 5f ; room.flags[5] = true &4671 94 2b 05 ; if(p["pig_sty_wall_hole"] > &01) &4674 01 ; { &4675 0d 0b b6 be 32 53 57 fa c3 04 ; ", which seems to have been reinforced." &467f 04 ; return &4680 03 ; } &4681 8c 2b 05 ; if(p["pig_sty_wall_hole"] == &01) &4684 01 ; { &4685 0d 0b fa c4 34 68 04 ; ", revealing a hole." &468c 04 ; return &468d 03 ; } &468e 0d 06 7c 47 34 fc 45 ff 40 b7 3c 04 ; ". There is a loose brick behind it." &469a 03 ; } &469b 03 ; } &469c 88 2f ; if(verb == "lift" and &469e 89 35 ; first_noun == "brick") &46a0 01 ; { &46a1 17 ; room.flags[1] = false &46a2 cc 2b 02 ; if(p["pig_sty_wall_hole"] != 0 or &46a5 d7 ; !room.flags[5]) &46a6 01 ; { &46a7 0d a1 ff 40 07 05 ; "what brick? " &46ad 04 ; return &46ae 03 ; } &46af 0d fc 96 42 fe 38 44 ff 40 0b d7 71 a7 38 44 8c ; "when you pull the brick, several more fall on the floor, &46bf 0b fb f2 34 68 04 ; leaving a hole." &46c5 44 2b ; p["pig_sty_wall_hole"] ++ &46c7 44 20 ; p["score"] ++ &46c9 03 ; } &46ca 8c 2b 05 ; if(p["pig_sty_wall_hole"] == &01) &46cd 01 ; { &46ce 88 08 02 ; if(verb == "west" or &46d1 88 11 ; verb == "exit") &46d3 01 ; { &46d4 57 ; room.flags[5] = false &46d5 08 2b ; player_room = &27 &46d7 44 2b ; p["pig_sty_wall_hole"] ++ &46d9 03 ; } &46da 03 ; } &46db 88 10 ; if(verb == "up") &46dd 01 ; { &46de 97 ; if(!room.flags[1]) &46df 01 ; { &46e0 0d 42 fe 57 38 44 ff 2b 06 44 ff 3e 43 44 fc 46 ; "you stand on the bunk. The tiles of the roof are just &46f0 45 94 fc 62 60 97 04 ; above your head." &46f7 1f ; room.flags[1] = true &46f8 04 ; return &46f9 03 ; } &46fa 8c 2c 05 ; if(p["pig_sty_roof_hole"] == &01 and &46fd 9f ; room.flags[1]) &46fe 01 ; { &46ff 0d 42 fe 38 e3 ff 33 44 fc 46 51 22 1f 1c 1c 52 ; "you pull yourself onto the roof and roll down on the &470f 38 44 79 4d 04 ; north side." &4714 57 ; room.flags[5] = false &4715 0f ; room.flags[0] = true &4716 17 ; room.flags[1] = false &4717 44 2c ; p["pig_sty_roof_hole"] ++ &4719 08 2c ; player_room = &28 &471b 03 ; } &471c 03 ; } &471d 88 0f ; if(verb == "down" and &471f 9f ; room.flags[1]) &4720 01 ; { &4721 0d 42 fe 5b 52 04 ; "you climb down." &4727 17 ; room.flags[1] = false &4728 04 ; return &4729 03 ; } &472a 88 2f 02 ; if(verb == "lift" or &472d 88 30 ; verb == "press") &472f 01 ; { &4730 89 33 ; if(first_noun == "tiles") &4732 01 ; { &4733 97 ; if(!room.flags[1]) &4734 01 ; { &4735 0d 42 af 22 15 11 13 18 04 ; "you can't reach." &473e 04 ; return &473f 03 ; } &4740 8f ; if(room.flags[0]) &4741 01 ; { &4742 0d 44 fc 46 56 57 fa c3 04 ; "the roof has been reinforced." &474b 04 ; return &474c 03 ; } &474d 0d d7 ff 3e 70 76 51 fa 2b 38 44 8c 06 7c 47 34 ; "several tiles come away and shatter on the floor. There &475d 68 12 19 17 fb c2 4b 60 97 51 23 18 1f 25 1c 14 ; is a hole big enough for your head and shoulders." &476d 15 22 23 04 &4771 44 2c ; p["pig_sty_roof_hole"] ++ &4773 44 20 ; p["score"] ++ &4775 03 ; } &4776 03 ; } &4777 88 19 ; if(verb == "dig") &4779 01 ; { &477a 17 ; room.flags[1] = false &477b af ; if(room.flags[2]) &477c 01 ; { &477d 0d 42 53 f3 f9 18 34 c4 04 ; "you have already dug a tunnel." &4786 04 ; return &4787 03 ; } &4788 bf ; if(room.flags[3]) &4789 01 ; { &478a 0d fc c9 56 fa c3 44 8c 04 ; "someone has reinforced the floor." &4793 04 ; return &4794 03 ; } &4795 db 24 ; if(object_room["plate"] == "carrying") &4797 01 ; { &4798 0d 42 fe 1a 35 44 8c fc ca 44 ff 3c 59 34 23 20 ; "you dig in the floor using the plate as a spade, and in &47a8 11 14 15 0b 51 35 44 fc 97 43 34 fc 1c fc 8c 42 ; the space of a few hours you have constructed a narrow &47b8 53 f9 5a 34 fc b4 c4 82 44 7b 7a 04 ; tunnel under the south wall." &47c4 2f ; room.flags[2] = true &47c5 44 20 ; p["score"] ++ &47c7 04 ; return &47c8 03 ; } &47c9 0d 60 f9 30 45 5c 27 15 11 1b 32 fe 1a 35 44 18 ; "your fingernails are too weak to dig in the hard earth." &47d9 11 22 14 0e 15 11 22 24 18 04 &47e3 03 ; } &47e4 af ; if(room.flags[2]) &47e5 01 ; { &47e6 88 07 02 ; if(verb == "south" or &47e9 88 0f 02 ; verb == "down" or &47ec 88 11 ; verb == "exit") &47ee 01 ; { &47ef 0d 42 23 21 25 15 15 2a 15 fa 74 44 c4 0b 15 1d ; "you squeeze through the tunnel, emerging in one corner &47ff 15 22 17 19 1e 17 35 48 fc 37 43 34 8a 65 43 d0 ; of a large tent of strange design." &480f f9 19 04 &4812 17 ; room.flags[1] = false &4813 27 ; room.flags[2] = false &4814 3f ; room.flags[3] = true &4815 57 ; room.flags[5] = false &4816 08 2d ; player_room = &29 &4818 03 ; } &4819 03 ; } &481a 00 ; end ; bytecode_for_room_27_actions &481b 88 07 ; if(verb == "south") &481d 01 ; { &481e 08 2e ; player_room = &2a &4820 04 ; return &4821 03 ; } &4822 0d 44 2e fa c5 fb f3 5a fa 2c 06 fb f4 45 12 1c ; "The Frenchman realises his mistake. Whistles are blown and &4832 1f 27 1e 51 fb de 70 dd 06 42 45 fa 72 4b 3a fc ; guards come running. You are questioned for an hour, then &4842 25 0b b1 fb f5 32 60 fc 43 04 ; returned to your cell." &484c 08 2a ; player_room = &26 &484e 00 ; end ; bytecode_for_room_28_actions &484f 2c 04 05 ; p["current_room"] = p["player_room"] &4852 2c 04 06 ; p["previous_room"] = p["player_room"] &4855 8e 2b ; if(verb == "east") { player_room = &2b } &4857 86 2c ; if(verb == "north") { player_room = &2c } &4859 00 ; end ; bytecode_for_room_29_actions &485a a7 ; if(!room.flags[2]) &485b 01 ; { &485c 98 2b ; if(verb != "jump") &485e 01 ; { &485f 0d 5c fc 08 06 44 fc 49 fc 51 fc 3f 42 52 51 42 ; "Too late. The meson blast cuts you down and you fall &486f a7 f9 31 4a 44 17 22 11 26 15 42 f9 18 e3 04 ; backwards into the grave you dug yourself." &487e 08 09 ; player_room = &05 &4880 04 ; return &4881 03 ; } &4882 0d 42 1c 15 11 20 f9 31 8b 44 c4 51 44 fc 49 fc ; "you leap backwards over the tunnel and the meson beam passes &4892 6b d8 82 60 54 06 44 2e e5 24 22 19 20 23 59 3d ; under your feet. The Warlord trips as he dives for you, and &48a2 14 19 26 15 23 4b 42 0b 51 fb 50 35 06 73 44 ec ; falls in. From the shallow hole he aims his blaster at you &48b2 68 3d fb 30 5a fc be 39 42 fc 57 0b 13 25 22 23 ; again, cursing in some strange unearthly tongue." &48c2 19 1e 17 35 5e d0 fa c6 24 1f 1e 17 25 15 04 &48d1 2f ; room.flags[2] = true &48d2 04 ; return &48d3 03 ; } &48d4 b7 ; if(!room.flags[3]) &48d5 01 ; { &48d6 98 1e ; if(verb != "hit") &48d8 01 ; { &48d9 0d 44 fc 49 fc 6b fc 52 42 6f 34 fe 2e 0b fb f6 ; "the meson beam hits you like a blow, blasting you to &48e9 42 32 60 fa c7 fb 54 04 ; your constituent atoms." &48f1 08 09 ; player_room = &05 &48f3 04 ; return &48f4 03 ; } &48f5 0d 60 a0 13 22 1f 23 23 32 44 1a 11 27 fb 55 53 ; "your right cross to the jaw would have laid M. Ali low. The &4905 1c 11 19 14 0e 2e 1d 06 11 1c 19 fc 0e 06 44 fc ; man is not M. Ali, nor the Warlord, you now realise; he &4915 10 47 5b 2e 1d 06 11 1c 19 0b f9 0d 44 2e e5 0b ; slumps over, half blocking the tunnel. Something falls from &4925 42 63 fc ba 0a 3d 23 1c 25 1d 20 23 8b 0b fc 7f ; his left hand." &4935 12 1c 1f 13 1b 19 1e 17 44 c4 06 fa 63 fb 50 73 &4945 5a 5d 87 04 &4949 3b 27 ; object_room["device"] = player_room &494b 3f ; room.flags[3] = true &494c 44 20 ; p["score"] ++ &494e 04 ; return &494f 03 ; } &4950 88 1a ; if(verb == "take") &4952 01 ; { &4953 04 ; return &4954 03 ; } &4955 0d d7 2e b9 fa 6d 70 dd 35 0b 51 f9 5b 5f 44 fb ; "several French officers come running in, and immediately see the &4965 f7 06 42 45 18 15 1c 14 4b f9 2d 0b b1 fb f5 32 ; situation. You are held for questioning, then returned to your &4975 60 fc 43 04 ; cell." &4979 08 2a ; player_room = &26 &497b 00 ; end ; bytecode_for_room_2a_actions &497c 9d 50 ; if(preposition != "silently") &497e 01 ; { &497f 0d 42 fb 56 44 fa 7c 0b 62 47 34 c7 a3 fb f8 06 ; "You disturb the cuirassier, who is a rather light sleeper. &498f 9c 84 fa 72 4b fc 7f 3a fc 25 42 45 fb f5 32 44 ; After being questioned for half an hour you are returned to &499f f9 05 f9 06 04 ; the pig sty." &49a4 08 2a ; player_room = &26 &49a6 04 ; return &49a7 03 ; } &49a8 86 27 ; if(verb == "north") { player_room = &27 } &49aa e6 27 ; if(verb == "exit") { player_room = &27 } &49ac 00 ; end ; bytecode_for_room_2b_actions &49ad a7 ; if(!room.flags[2]) &49ae 01 ; { &49af 98 27 ; if(verb != "offer") &49b1 01 ; { &49b2 0d 44 fb 85 fb 88 42 51 fc 24 32 20 19 13 1b 60 ; "The sappers surround you and try to pick your pockets &49c2 20 1f 13 1b 15 24 23 0e 1f 20 15 1e 1c 29 06 7f ; openly. They soon find you are not French and call an &49d2 fc 15 86 42 45 5b 2e b9 51 fe 2d 3a e7 06 9c f9 ; officer. After questioning you are imprisoned again." &49e2 2d 42 45 f9 32 fc 57 04 &49ea 08 2a ; player_room = &26 &49ec 03 ; } &49ed 89 1f ; if(first_noun == "beef") &49ef 01 ; { &49f0 0d 44 fc ce 16 15 1c 1c 1f 27 23 fb 51 60 fe 51 ; "the rough fellows accept your offer with much &4a00 78 d5 f9 64 51 16 22 19 15 1e 14 1c 29 0e 13 18 ; backslapping and friendly cheers." &4a10 15 15 22 23 04 &4a15 2f ; room.flags[2] = true &4a16 3b 1f ; object_room["beef"] = player_room &4a18 44 20 ; p["score"] ++ &4a1a 03 ; } &4a1b 04 ; return &4a1c 03 ; } &4a1d 88 36 ; if(verb == "light" and &4a1f 89 25 ; first_noun == "taper") &4a21 01 ; { &4a22 0d fc 84 04 ; "okay." &4a26 1c 2d ; p["taper_is_lit"] = 1 &4a28 03 ; } &4a29 9e 28 ; if(verb == "west") { player_room = &28 } &4a2b e6 28 ; if(verb == "exit") { player_room = &28 } &4a2d 88 1a ; if(verb == "take") &4a2f 01 ; { &4a30 89 1f 02 ; if(first_noun == "beef" or &4a33 89 32 02 ; first_noun == "brazier" or &4a36 89 41 ; first_noun == "all") &4a38 01 ; { &4a39 0d 44 fb 85 45 5b 3f 1b 15 15 1e 38 8d fc 8e 06 ; "the sappers are not so keen on this idea. A fight &4a49 34 fc 7d 15 1e 23 25 15 23 0b 35 44 b2 43 b6 16 ; ensues, in the middle of which four officers walk in. &4a59 1f 25 22 fa 6d fc 7e 35 06 42 45 fa 72 51 fb f5 ; You are questioned and returned to jail." &4a69 32 1a 11 19 1c 04 &4a6f 08 2a ; player_room = &26 &4a71 03 ; } &4a72 03 ; } &4a73 00 ; end ; bytecode_for_room_2c_actions &4a74 9d 50 ; if(preposition != "silently") &4a76 01 ; { &4a77 0d 42 fb 56 34 fc ab 43 17 22 25 1d 20 29 fa c8 ; "You disturb a group of grumpy grenadiers, who accost you and &4a87 0b 62 11 13 13 1f 23 24 42 51 fc 15 f1 42 53 fb ; soon discover you have escaped from custody. You are &4a97 83 73 13 25 23 24 1f 14 29 06 42 45 f9 33 fb f5 ; eventually returned to the prison." &4aa7 32 44 fb 57 04 &4aac 08 2a ; player_room = &26 &4aae 04 ; return &4aaf 03 ; } &4ab0 96 28 ; if(verb == "south") { player_room = &28 } &4ab2 86 2d ; if(verb == "north") { player_room = &2d } &4ab4 00 ; end ; bytecode_for_room_2d_actions &4ab5 96 2c ; if(verb == "south") { player_room = &2c } &4ab7 8e 2f ; if(verb == "east") { player_room = &2f } &4ab9 ae 2e ; if(verb == "northwest") { player_room = &2e } &4abb 00 ; end ; bytecode_for_room_2e_actions &4abc 88 36 ; if(verb == "light" and &4abe 89 3e ; first_noun == "gunpowder" and &4ac0 db 25 ; object_room["taper"] == "carrying" and &4ac2 cc 2d ; p["taper_is_lit"] != 0) &4ac4 01 ; { &4ac5 0d 2c 12 1f 1f 1d 08 2c 0e 77 fc 0d 23 19 1c 1c ; "BOOM! that was silly of you." &4ad5 29 43 42 04 &4ad9 08 09 ; player_room = &05 &4adb 03 ; } &4adc 88 1a ; if(verb == "take" and &4ade 89 22 ; first_noun == "fuse" and &4ae0 af ; room.flags[2]) &4ae1 01 ; { &4ae2 27 ; room.flags[2] = false &4ae3 14 34 ; p["fuse_is_lit"] = 0 &4ae5 03 ; } &4ae6 88 37 ; if(verb == "insert" and &4ae8 89 22 ; first_noun == "fuse" and &4aea 8d 43 ; preposition == "into" and &4aec 8a 3e ; second_noun == "gunpowder") &4aee 01 ; { &4aef af ; if(room.flags[2]) &4af0 01 ; { &4af1 0d 42 53 fc 21 77 04 ; "you have done that." &4af8 04 ; return &4af9 03 ; } &4afa 0d a0 04 ; "right." &4afd 3b 22 ; object_room["fuse"] = player_room &4aff 2f ; room.flags[2] = true &4b00 03 ; } &4b01 88 36 ; if(verb == "light" and &4b03 89 22 ; first_noun == "fuse") &4b05 01 ; { &4b06 cc 34 ; if(p["fuse_is_lit"] != 0) &4b08 01 ; { &4b09 0d 3c 47 f3 fb 0d 04 ; "it is already lit." &4b10 04 ; return &4b11 03 ; } &4b12 db 25 ; if(object_room["taper"] == "carrying" and &4b14 cc 2d ; p["taper_is_lit"] != 0) &4b16 01 ; { &4b17 af ; if(room.flags[2]) &4b18 01 ; { &4b19 0d 3c f5 fe 2a 51 fc eb 32 fe 3f e6 06 42 fb f9 ; "it catches fire and starts to burn rapidly. You &4b29 42 53 83 16 19 26 15 ea 39 6b 04 ; estimate you have about five minutes at most." &4b34 44 34 ; p["fuse_is_lit"] ++ &4b36 44 20 ; p["score"] ++ &4b38 03 ; } &4b39 04 ; return &4b3a 03 ; } &4b3b 0d 78 a1 07 05 ; "with what? " &4b40 03 ; } &4b41 b6 2d ; if(verb == "southeast") { player_room = &2d } &4b43 e6 2d ; if(verb == "exit") { player_room = &2d } &4b45 00 ; end ; bytecode_for_room_2f_actions &4b46 a7 ; if(!room.flags[2]) &4b47 01 ; { &4b48 88 2f 02 ; if(verb == "lift" or &4b4b 88 1a ; verb == "take") &4b4d 01 ; { &4b4e 89 34 ; if(first_noun == "beard") &4b50 01 ; { &4b51 0d 44 ff 3f 80 76 35 60 c9 0b fa c4 34 18 19 14 ; "The beard comes away in your hands, revealing a &4b61 15 1f 25 23 51 fc 4d fc 1d 06 3c 47 23 13 11 22 ; hideous and evil face. It is scarred and &4b71 22 15 14 51 f9 5c 35 fa 77 0b 51 fb fa 78 f9 65 ; semi-reptilian in anpearance, and festooned with &4b81 fc ea 77 fb 1c 5e 1b 19 1e 14 43 fa 98 11 20 20 ; bio-mechanical tubes that form some kind of &4b91 11 22 11 24 25 23 06 2d fb 58 44 dc 43 34 e8 43 ; breathing apparatus. \nBeneath the uniform of a &4ba1 2e fc 4c 42 6c 63 5f 44 fc 98 43 fc 97 ff 4d 06 ; marshal of France you can now see the glint of space &4bb1 59 44 eb fb 8a 3a c8 e9 73 5a fc 11 0b 42 fc 99 ; armour. As the creature pulls an atomic disruptor &4bc1 77 39 fc 0c 42 53 f9 0e 44 2e e5 04 ; from his belt, you know that at last you have met ; the Warlord." &4bcd 2f ; room.flags[2] = true &4bce 44 20 ; p["score"] ++ &4bd0 04 ; return &4bd1 03 ; } &4bd2 03 ; } &4bd3 0d 44 e8 fc 4e 78 19 1e 18 25 1d 11 1e fb 59 0b ; "the marshal moves with inhuman speed, pulling a weapon from &4be3 20 25 1c 1c 19 1e 17 34 fb 5a 73 5a fc 11 06 42 ; his belt. You just have time to recognise it as an atomic &4bf3 94 53 64 32 fb fb 3c 59 3a c8 e9 9b 42 45 fb fc ; disruptor before you are blasted into elementary &4c03 4a fa c9 fa ca 04 ; particles." &4c09 08 09 ; player_room = &05 &4c0b 04 ; return &4c0c 03 ; } &4c0d b7 ; if(!room.flags[3]) &4c0e 01 ; { &4c0f 88 2a ; if(verb == "throw" and &4c11 89 19 ; first_noun == "snuff") &4c13 01 ; { &4c14 0d 44 ff 39 fc 82 a0 58 5a f9 65 fc ea 06 13 1f ; "the snuff gets right up his bio-mechanical tubes. &4c24 25 17 18 19 1e 17 51 f9 5d 0b 3d fa bf 61 43 44 ; Coughing and spluttering, he staggers out of the west &4c34 4c 4e 78 89 9d a6 fa cb 06 42 53 34 fb fd fa 98 ; door with all three eyes streaming. You have a moment's &4c44 fc 97 04 ; breathing space." &4c47 3f ; room.flags[3] = true &4c48 44 20 ; p["score"] ++ &4c4a 0b 0a 19 ; object_room["snuff"] = &06 &4c4d 04 ; return &4c4e 03 ; } &4c4f 0d 5c fc 08 06 42 45 f9 34 fa cc 9b 42 53 64 32 ; "too late. You are atomically disrupted before you have time &4c5f fe 28 34 16 19 1e 11 1c fc a7 06 42 53 f9 0e 60 ; to take a final breath. You have met your doom." &4c6f 14 1f 1f 1d 04 &4c74 08 09 ; player_room = &05 &4c76 04 ; return &4c77 03 ; } &4c78 87 ; if(!room.flags[0]) &4c79 01 ; { &4c7a 0f ; room.flags[0] = true &4c7b 86 30 ; if(verb == "north") { player_room = &30 } &4c7d 88 08 02 ; if(verb == "west" or &4c80 88 13 ; verb == "back") &4c82 01 ; { &4c83 0d 42 fc 7e a0 4a 44 11 22 1d 23 43 44 2e e5 0b ; "you walk right into the arms of the Warlord, whose fury &4c93 fc 39 fb 31 51 fa cd 45 63 fc ac f9 35 06 42 45 ; and malevolence are now beyond description. You are &4ca3 fb fc 4a fb 32 9b 42 fc 99 a1 56 fe 1c 42 04 ; blasted into dust before you know what has hit you." &4cb2 08 09 ; player_room = &05 &4cb4 04 ; return &4cb5 03 ; } &4cb6 04 ; return &4cb7 03 ; } &4cb8 0d 44 2e e5 22 15 24 25 22 1e 23 0b fc c2 43 fb ; "the Warlord returns, full of fury and malevolence, having &4cc8 31 51 fa cd 0b 18 11 26 19 1e 17 fb fe 73 60 fe ; recovered from your attack. He disrupts you atomically. You have &4cd8 5c 06 3d fa 3b 42 f9 34 06 42 53 23 1e 25 16 16 ; snuffed it." &4ce8 15 14 3c 04 &4cec 08 09 ; player_room = &05 &4cee 00 ; end ; bytecode_for_room_30_actions &4cef 96 2f ; if(verb == "south") { player_room = &2f } &4cf1 a6 31 ; if(verb == "northeast") { player_room = &31 } &4cf3 00 ; end ; bytecode_for_room_31_actions &4cf4 0b 0a 25 ; object_room["taper"] = &06 &4cf7 a7 ; if(!room.flags[2]) &4cf8 01 ; { &4cf9 0d 44 fa 7e fc cc 95 0b 5a fb 5a d1 27 19 1c 14 ; "The henchman spins round, his weapon firing wildly. As luck &4d09 1c 29 06 59 fc d1 fb 55 53 3c 0b 44 fc 6b fc 3f ; would have it, the beam cuts both you and the Doctor in &4d19 fc 6c 42 51 44 2e 75 35 fc 7f 04 ; half." &4d24 08 09 ; player_room = &05 &4d26 04 ; return &4d27 03 ; } &4d28 be 30 ; if(verb == "southwest") { player_room = &30 } &4d2a 86 32 ; if(verb == "north") { player_room = &32 } &4d2c 88 39 ; if(verb == "follow") &4d2e 01 ; { &4d2f 08 36 ; player_room = &32 &4d31 03 ; } &4d32 00 ; end ; bytecode_for_room_32_actions &4d33 9d 50 02 ; if(preposition != "silently" or &4d36 88 1a ; verb == "take" and &4d38 99 20 ; first_noun != "wine") &4d3a 01 ; { &4d3b 0d 44 2e fb 8b 11 1c 27 11 29 23 fc 0d 34 a3 fb ; "The Emperor always was a light sleeper. He opens his eyes, &4d4b f8 06 3d fc e5 5a a6 0b 23 15 15 23 42 0b 51 fb ; sees you, and calls immediately for his personal guard. You &4d5b 41 f9 5b 4b 5a fb 8e ff 41 06 42 45 11 23 23 25 ; are assumed to be assassins, and shot." &4d6b 1d 15 14 32 37 f9 36 0b 51 ae 04 &4d76 08 09 ; player_room = &05 &4d78 04 ; return &4d79 03 ; } &4d7a 96 31 ; if(verb == "south") { player_room = &31 } &4d7c 86 33 ; if(verb == "north") { player_room = &33 } &4d7e 00 ; end ; bytecode_for_room_33_actions &4d7f 9d 50 ; if(preposition != "silently") &4d81 01 ; { &4d82 0d 44 fa f4 27 11 1b 15 23 51 fb 41 4b fe 41 06 ; "The bodyguard wakes and calls for help. You are dragged &4d92 42 45 fa 3c 76 0b fa ce 60 fa 3d c3 11 26 11 19 ; away, protesting your innocence without avail, and shot as &4da2 1c 0b 51 ae 59 fb 4a 0b f9 36 0b 36 2e ef f9 63 ; spies, assassins, or English sympathisers. Probably all &4db2 06 20 22 1f 12 11 12 1c 29 89 9d 04 ; three." &4dbe 08 09 ; player_room = &05 &4dc0 04 ; return &4dc1 03 ; } &4dc2 96 32 ; if(verb == "south") { player_room = &32 } &4dc4 8e 35 ; if(verb == "east") { player_room = &35 } &4dc6 00 ; end ; bytecode_for_room_34_actions &4dc7 00 ; end ; bytecode_for_room_35_actions &4dc8 88 06 ; if(verb == "east") &4dca 01 ; { &4dcb 08 3a ; player_room = &36 &4dcd 04 ; return &4dce 03 ; } &4dcf 0d 3a fc 3e 43 11 1e 17 22 29 fa ee fc 7b 0b ed ; "An army of angry infantrymen arrive, looking for no one but you. &4ddf 4b 3b 48 69 42 06 42 45 fa b8 fa cf 59 3a fb 5b ; You are executed forthwith as an arsonist." &4def 04 &4df0 08 09 ; player_room = &05 &4df2 00 ; end ; bytecode_for_room_36_actions &4df3 9f ; if(room.flags[1] and &4df4 a7 ; !room.flags[2] and &4df5 88 05 ; verb == "north") &4df7 01 ; { &4df8 08 7c ; player_room = &78 &4dfa 14 34 ; p["fuse_is_lit"] = 0 &4dfc 04 ; return &4dfd 03 ; } &4dfe 80 09 ; if(verb < "northeast") &4e00 01 ; { &4e01 0d 34 fa 3e 18 25 17 15 fc 7a fb de fa bd 23 20 ; "A hundred huge horse guards instantly spot you and pounce on &4e11 1f 24 42 51 f9 1a 38 42 06 44 18 11 26 1f 13 42 ; you. The havoc you have caused throughout the camp has &4e21 53 fc ec f9 37 44 8f 56 fa d0 fb 95 51 42 45 18 ; infuriated everyone and you are hung without a trial." &4e31 25 1e 17 c3 34 24 22 19 11 1c 04 &4e3c 08 09 ; player_room = &05 &4e3e 04 ; return &4e3f 03 ; } &4e40 88 31 ; if(verb == "read" and &4e42 89 37 ; first_noun == "graffiti") &4e44 01 ; { &4e45 0d fc c5 44 2e b9 fb 48 0b b6 45 9e 5d f9 38 0b ; "among the French words, which are better left untranslated, &4e55 47 44 f9 39 35 2e ef 09 2e fe 4e 62 07 ff 4c fc ; is the inscription in English: Guess who? kilroy was here." &4e65 0d 4f 04 &4e68 03 ; } &4e69 9f ; if(room.flags[1]) &4e6a 01 ; { &4e6b 2f ; room.flags[2] = true &4e6c 03 ; } &4e6d 1f ; room.flags[1] = true &4e6e 00 ; end ; bytecode_for_room_37_actions &4e6f 96 75 ; if(verb == "south") { player_room = &75 } &4e71 eb 1c 36 ; if(object_room["map"] == &32) &4e74 01 ; { &4e75 0b 3d 1c ; object_room["map"] = &39 &4e78 03 ; } &4e79 88 05 ; if(verb == "north") &4e7b 01 ; { &4e7c af ; if(room.flags[2]) &4e7d 01 ; { &4e7e 08 3c ; player_room = &38 &4e80 04 ; return &4e81 03 ; } &4e82 0d 44 fc d5 fb ef 32 11 1c 1c 1f 27 42 32 fe 4b ; "The sentry refuses to allow you to enter." &4e92 04 &4e93 03 ; } &4e94 88 28 ; if(verb == "show" and &4e96 89 2f ; first_noun == "despatches") &4e98 01 ; { &4e99 cc 3b ; if(p["despatches_open"] != 0) &4e9b 01 ; { &4e9c 0d 44 fc d5 d6 44 ff 73 53 57 1f 20 15 1e 15 14 ; "the sentry notices the despatches have been opened, and &4eac 0b 51 34 e1 47 fb 52 06 42 45 fa 3f 51 fb 5c 4a ; a sergeant is called. You are arrested and thrown into &4ebc fb 57 0b 88 42 13 11 24 13 18 34 fb 21 51 fb 13 ; prison, where you catch a cold and die. Some days it's &4ecc 06 5e 14 11 29 23 fb 2c 94 5b fc 73 fa 2d 58 04 ; just not worth getting up." &4edc 08 09 ; player_room = &05 &4ede 04 ; return &4edf 03 ; } &4ee0 0d 44 fc d5 56 fc dd 32 fc 26 f9 3a fa 74 78 ff ; "the sentry has orders to let messengers through with &4ef0 69 0a 19 1e 14 15 15 14 0b 5b 32 fc 26 fc 93 fa ; despatch; indeed, not to let anyone through without &4f00 74 c3 ff 69 06 3d fb f1 59 42 fb 33 04 ; despatch. He salutes as you pass." &4f0d 2f ; room.flags[2] = true &4f0e 44 20 ; p["score"] ++ &4f10 03 ; } &4f11 00 ; end ; bytecode_for_room_38_actions &4f12 9e 3a ; if(verb == "west") { player_room = &3a } &4f14 8e 39 ; if(verb == "east") { player_room = &39 } &4f16 88 07 ; if(verb == "south") &4f18 01 ; { &4f19 cc 29 ; if(p["doctor_state"] != 0) &4f1b 01 ; { &4f1c 0d 44 2e 75 b0 5b fc 26 42 fc 28 9b 44 2e a2 06 ; "The Doctor will not let you leave before the Duke. The &4f2c 44 fb 42 47 39 fc 9a 04 ; future is at stake." &4f34 04 ; return &4f35 03 ; } &4f36 08 3b ; player_room = &37 &4f38 03 ; } &4f39 88 2f ; if(verb == "lift" and &4f3b 89 3d ; first_noun == "tapestry" and &4f3d a7 ; !room.flags[2]) &4f3e 01 ; { &4f3f 0d b7 44 ff 6b 7c 47 34 fc 65 fa 40 fc 59 04 ; "behind the tapestry there is a solid mahogany panel." &4f4e cc 29 ; if(p["doctor_state"] != 0) &4f50 01 ; { &4f51 0d 34 fc 98 fb 79 35 44 2e fb a7 fb 0c 06 3d fa ; "a glint appears in the Doctor's eye. He reaches into his &4f61 41 4a 5a 20 1f 13 1b 15 24 0b 69 fb 5d 3d fc 47 ; pocket, but finds he does not have his screwdriver." &4f71 5b 53 5a ff 74 04 &4f77 2f ; room.flags[2] = true &4f78 44 20 ; p["score"] ++ &4f7a 03 ; } &4f7b 03 ; } &4f7c af ; if(room.flags[2] and &4f7d 88 27 ; verb == "offer" and &4f7f 89 18 ; first_noun == "screwdriver") &4f81 01 ; { &4f82 0d 44 2e 75 47 6b 17 22 11 24 15 16 25 1c 4b 60 ; "the Doctor is most grateful for your efficiency. He aims the &4f92 f9 3b 06 3d fb 30 44 ac ff 74 39 44 fc 59 0b b6 ; sonic screwdriver at the panel, which slides sideways to &4fa2 fc de fa 42 32 fc d8 34 fc 6d fc d9 43 fc 41 fc ; reveal a steep flight of stone steps disappearing down into &4fb2 da f9 3c 52 4a fa 93 04 ; darkness." &4fba 0b 0a 18 ; object_room["screwdriver"] = &06 &4fbd 3f ; room.flags[3] = true &4fbe 44 20 ; p["score"] ++ &4fc0 03 ; } &4fc1 bf ; if(room.flags[3] and &4fc2 88 0f ; verb == "down") &4fc4 01 ; { &4fc5 8c 37 07 ; if(p["lantern_is_lit"] == &03 and &4fc8 db 0e ; object_room["lantern"] == "carrying") &4fca 01 ; { &4fcb 08 3f ; player_room = &3b &4fcd 44 20 ; p["score"] ++ &4fcf 04 ; return &4fd0 03 ; } &4fd1 0d 42 fb 2f 38 34 fc d3 23 24 15 20 0b 51 a7 18 ; "you trip on a broken step, and fall headlong. As you bounce &4fe1 15 11 14 1c 1f 1e 17 06 59 42 f9 1b 52 0b 42 11 ; down, you admit the futility of exploring secret passages in &4ff1 14 1d 19 24 44 16 25 24 19 1c 19 24 29 43 15 28 ; the dark." &5001 20 1c 1f 22 19 1e 17 f9 1c fa 43 35 44 fc 2b 04 &5011 08 09 ; player_room = &05 &5013 03 ; } &5014 00 ; end ; bytecode_for_room_39_actions &5015 88 1a ; if(verb == "take" and &5017 eb 1e 0a ; object_room["file"] == &06 and &501a bc 0e 0d ; p["number_of_objects_carried"] != p["maximum_objects_carried"] and &501d e3 1c ; object_room["map"] == player_room) &501f 01 ; { &5020 89 1c 02 ; if(first_noun == "map" or &5023 89 41 ; first_noun == "all") &5025 01 ; { &5026 3b 1e ; object_room["file"] = player_room &5028 44 20 ; p["score"] ++ &502a 1b 1c ; object_room["map"] = 1 &502c 0d 82 44 ff 14 42 f1 34 fc 80 ff 26 04 ; "Under the map you discover a nail file." &5039 6f ; room.flags[6] = true &503a 04 ; return &503b 03 ; } &503c 03 ; } &503d 88 2f 02 ; if(verb == "lift" or &5040 88 30 ; verb == "press") &5042 01 ; { &5043 89 1c ; if(first_noun == "map" and &5045 eb 1e 0a ; object_room["file"] == &06) &5048 01 ; { &5049 0d 82 44 ff 14 42 f1 34 fc 80 ff 26 04 ; "under the map you discover a nail file." &5056 3b 1e ; object_room["file"] = player_room &5058 44 20 ; p["score"] ++ &505a 6f ; room.flags[6] = true &505b 03 ; } &505c 03 ; } &505d 88 08 02 ; if(verb == "west" or &5060 88 11 ; verb == "exit") &5062 01 ; { &5063 db 1c ; if(object_room["map"] == "carrying") &5065 01 ; { &5066 0d 34 fa 2e d6 42 1d 11 1b 19 1e 17 7e 78 44 2e ; "a servant notices you making off with the Duke's most &5076 14 25 1b 15 0f 23 6b fa 44 ff 14 06 42 45 11 13 ; valuable map. You are accosted, tried for theft, and &5086 13 1f 23 24 15 14 0b fc 8d 4b 24 18 15 16 24 0b ; transported to Australia, where you fail at sheep &5096 51 f9 3d 32 2e fa d1 0b 88 42 16 11 19 1c 39 23 ; farming." &50a6 18 15 15 20 0e 16 11 22 1d 19 1e 17 04 &50b3 08 09 ; player_room = &05 &50b5 04 ; return &50b6 03 ; } &50b7 08 3c ; player_room = &38 &50b9 03 ; } &50ba 00 ; end ; bytecode_for_room_3a_actions &50bb 8e 38 ; if(verb == "east") { player_room = &38 } &50bd e6 38 ; if(verb == "exit") { player_room = &38 } &50bf 88 27 ; if(verb == "offer" and &50c1 89 2f ; first_noun == "despatches") &50c3 01 ; { &50c4 0d 44 2e a2 fc e5 44 ff 69 51 22 15 11 14 23 3c ; "The Duke opens the despatch and reads it rapidly. As he &50d4 e6 06 59 3d d8 3c 32 44 2e 75 0b 3d fc 9b 0b 0d ; passes it to the Doctor, he says, \"It seems you were &50e4 2e 3c be 42 fc 17 fa 8f 44 24 22 25 24 18 0b 69 ; speaking the truth, but it is still important that I should &50f4 3c 47 fc fb fa 86 77 2e 19 fb d4 22 15 11 23 23 ; reassure my friends. I shall stay three quarters of an hour. &5104 25 22 15 72 16 22 19 15 1e 14 23 06 19 fb 5e fb ; \" He glances at you. \"I suppose you also are from the &5114 34 9d fa 45 43 3a fc 25 06 0c 2e 3d 17 1c 11 1e ; future? then I shall put myself in your hands, gentlemen; &5124 13 15 23 39 42 06 0d 2e 19 0e 23 25 20 20 1f 23 ; for the next forty-five minutes, I must rely on you to deal &5134 15 42 fb 25 45 73 44 fb 42 07 b1 2e 19 fb 5e fe ; with any threat. I have been humbugged once today, and that &5144 20 1d 29 23 15 1c 16 35 60 c9 0b fa 46 0a 4b 44 ; is quite enough. \" \nThe Duke rises, takes the arm of Lady &5154 fc 0a fa d2 ea 0b 2e 19 0e 1d 25 23 24 0e 22 15 ; Frances Webster, and passes out to the supper room. The &5164 1c 29 38 42 32 fb 18 78 fc 06 24 18 22 15 11 24 ; Doctor hands the despatches back to you." &5174 06 19 53 57 18 25 1d 12 25 17 17 15 14 fc 0f 24 &5184 1f 14 11 29 0b 51 77 47 fc 5e fb c2 06 0c 2d 44 &5194 2e a2 fc 66 0b ab 44 f9 07 43 2e 1c 11 14 29 2e &51a4 0e fa 2f 2e fa 30 0b 51 d8 61 32 44 fb 7b 74 06 &51b4 44 2e 75 c9 44 ff 73 8e 32 42 04 &51bf 44 3b ; p["despatches_open"] ++ &51c1 2f ; room.flags[2] = true &51c2 44 29 ; p["doctor_state"] ++ &51c4 44 20 ; p["score"] ++ &51c6 0c 32 3d ; p["bomb_countdown"] = &2e &51c9 03 ; } &51ca 00 ; end ; bytecode_for_room_3b_actions &51cb 2c 04 05 ; p["current_room"] = p["player_room"] &51ce 2c 04 06 ; p["previous_room"] = p["player_room"] &51d1 0b 89 1d ; object_room["duke"] = &85 &51d4 88 05 ; if(verb == "north") &51d6 01 ; { &51d7 5f ; room.flags[5] = true &51d8 4c 29 ; p["doctor_state"] -- &51da b4 06 04 ; if(p["previous_room"] > p["player_room"]) &51dd 01 ; { &51de 0c 13 10 ; p["verb"] = "back" &51e1 04 ; return &51e2 03 ; } &51e3 08 40 ; player_room = &3c &51e5 03 ; } &51e6 88 06 ; if(verb == "east") &51e8 01 ; { &51e9 0d 42 fe 40 44 4e 06 44 2e e5 0b 62 fc 0d bd fc ; "You open the door. The Warlord, who was sitting facing you, &51f9 9f 42 0b 22 15 11 13 24 23 78 23 25 20 15 22 18 ; reacts with superhuman speed, and the blast of his disruptor &5209 25 1d 11 1e fb 59 0b 51 44 fc 51 43 5a e9 fc 52 ; hits you before you have time to regret your rashness." &5219 42 9b 42 53 64 32 fc 89 60 22 11 23 18 1e 15 23 &5229 23 04 &522b 08 09 ; player_room = &05 &522d 03 ; } &522e 88 07 02 ; if(verb == "south" or &5231 88 10 ; verb == "up") &5233 01 ; { &5234 0d 44 2e 75 b0 5b fc 26 42 fc 28 06 44 fb 42 47 ; "the Doctor will not let you leave. The future is at stake." &5244 39 fc 9a 04 &5248 04 ; return &5249 03 ; } &524a 00 ; end ; bytecode_for_room_3c_actions &524b 8e 61 ; if(verb == "east") { player_room = &61 } &524d 86 3d ; if(verb == "north") { player_room = &3d } &524f 88 07 ; if(verb == "south") &5251 01 ; { &5252 08 3f ; player_room = &3b &5254 44 29 ; p["doctor_state"] ++ &5256 03 ; } &5257 ac 04 05 02 ; if(p["player_room"] == p["current_room"] or &525b db 0e ; object_room["lantern"] == "carrying") &525d 01 ; { &525e 08 65 ; player_room = &61 &5260 03 ; } &5261 00 ; end ; bytecode_for_room_3d_actions &5262 44 3e ; p["vault_colour"] ++ &5264 8e 61 ; if(verb == "east") { player_room = &61 } &5266 96 61 ; if(verb == "south") { player_room = &61 } &5268 86 3e ; if(verb == "north") { player_room = &3e } &526a ac 04 05 ; if(p["player_room"] == p["current_room"]) &526d 01 ; { &526e 08 65 ; player_room = &61 &5270 03 ; } &5271 00 ; end ; bytecode_for_room_3e_actions &5272 86 63 ; if(verb == "north") { player_room = &63 } &5274 8e 3f ; if(verb == "east") { player_room = &3f } &5276 96 62 ; if(verb == "south") { player_room = &62 } &5278 ac 04 05 ; if(p["player_room"] == p["current_room"]) &527b 01 ; { &527c 08 66 ; player_room = &62 &527e 03 ; } &527f 00 ; end ; bytecode_for_room_3f_actions &5280 88 06 ; if(verb == "east") &5282 01 ; { &5283 08 44 ; player_room = &40 &5285 04 ; return &5286 03 ; } &5287 0e ; skip_to_next_bytecode() &5288 00 ; end ; bytecode_for_room_40_actions &5289 86 63 ; if(verb == "north") { player_room = &63 } &528b 8e 41 ; if(verb == "east") { player_room = &41 } &528d 96 61 ; if(verb == "south") { player_room = &61 } &528f 9e 61 ; if(verb == "west") { player_room = &61 } &5291 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5294 01 ; { &5295 08 65 ; player_room = &61 &5297 03 ; } &5298 00 ; end ; bytecode_for_room_41_actions &5299 86 42 ; if(verb == "north") { player_room = &42 } &529b d6 42 ; if(verb == "down") { player_room = &42 } &529d 96 43 ; if(verb == "south") { player_room = &43 } &529f 9e 62 ; if(verb == "west") { player_room = &62 } &52a1 ac 04 05 ; if(p["player_room"] == p["current_room"]) &52a4 01 ; { &52a5 08 66 ; player_room = &62 &52a7 03 ; } &52a8 00 ; end ; bytecode_for_room_42_actions &52a9 88 10 ; if(verb == "up") &52ab 01 ; { &52ac 8f ; if(room.flags[0]) &52ad 01 ; { &52ae 08 63 ; player_room = &5f &52b0 04 ; return &52b1 03 ; } &52b2 9f ; if(room.flags[1]) &52b3 01 ; { &52b4 08 54 ; player_room = &50 &52b6 04 ; return &52b7 03 ; } &52b8 08 65 ; player_room = &61 &52ba 03 ; } &52bb d6 63 ; if(verb == "down") { player_room = &63 } &52bd 86 63 ; if(verb == "north") { player_room = &63 } &52bf 8e 63 ; if(verb == "east") { player_room = &63 } &52c1 9e 63 ; if(verb == "west") { player_room = &63 } &52c3 ac 04 05 ; if(p["player_room"] == p["current_room"] and &52c6 d7 ; !room.flags[5]) &52c7 01 ; { &52c8 0d 44 fb 9b a3 fc e7 52 0b 51 34 cf 20 11 27 fa ; "The piercing light stabs down, and a webbed paw reaches for &52d8 41 4b 42 06 fa fe 0b 78 34 fa 47 23 18 22 19 15 ; you. Suddenly, with a terrible shriek, the minion falls" &52e8 1b 0b 44 a8 fb 50 05 &52ef 8c 3e 08 ; if(p["vault_colour"] == &04) &52f2 01 ; { &52f3 0d 51 47 23 27 15 20 24 76 06 89 47 f9 1d 51 fc ; "and is swept away. All is silent and dark." &5303 2b 04 &5305 1f ; room.flags[1] = true &5306 44 20 ; p["score"] ++ &5308 03 ; } ; else &5309 01 ; { &530a 0d 06 42 6d 3c 23 13 22 11 12 12 1c 19 1e 17 39 ; ". You hear it scrabbling at the sides of the sewer." &531a 44 fc 64 43 44 fc 60 04 &5322 0f ; room.flags[0] = true &5323 44 42 ; p["minion_state"] ++ &5325 03 ; } &5326 44 40 ; p["warlord_state"] ++ &5328 5f ; room.flags[5] = true &5329 44 20 ; p["score"] ++ &532b 03 ; } &532c 00 ; end ; bytecode_for_room_43_actions &532d 44 3e ; p["vault_colour"] ++ &532f 86 61 ; if(verb == "north") { player_room = &61 } &5331 96 61 ; if(verb == "south") { player_room = &61 } &5333 9e 44 ; if(verb == "west") { player_room = &44 } &5335 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5338 01 ; { &5339 08 65 ; player_room = &61 &533b 03 ; } &533c 00 ; end ; bytecode_for_room_44_actions &533d 86 61 ; if(verb == "north") { player_room = &61 } &533f 8e 43 ; if(verb == "east") { player_room = &43 } &5341 96 61 ; if(verb == "south") { player_room = &61 } &5343 9e 45 ; if(verb == "west") { player_room = &45 } &5345 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5348 01 ; { &5349 08 65 ; player_room = &61 &534b 03 ; } &534c 00 ; end ; bytecode_for_room_45_actions &534d 86 61 ; if(verb == "north") { player_room = &61 } &534f 8e 61 ; if(verb == "east") { player_room = &61 } &5351 96 46 ; if(verb == "south") { player_room = &46 } &5353 9e 3d ; if(verb == "west") { player_room = &3d } &5355 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5358 01 ; { &5359 08 65 ; player_room = &61 &535b 03 ; } &535c 00 ; end ; bytecode_for_room_46_actions &535d 86 61 ; if(verb == "north") { player_room = &61 } &535f 8e 47 ; if(verb == "east") { player_room = &47 } &5361 9e 61 ; if(verb == "west") { player_room = &61 } &5363 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5366 01 ; { &5367 08 65 ; player_room = &61 &5369 03 ; } &536a 00 ; end ; bytecode_for_room_47_actions &536b 86 61 ; if(verb == "north") { player_room = &61 } &536d 8e 48 ; if(verb == "east") { player_room = &48 } &536f 96 4a ; if(verb == "south") { player_room = &4a } &5371 9e 61 ; if(verb == "west") { player_room = &61 } &5373 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5376 01 ; { &5377 08 65 ; player_room = &61 &5379 03 ; } &537a 00 ; end ; bytecode_for_room_48_actions &537b 86 43 ; if(verb == "north") { player_room = &43 } &537d 96 49 ; if(verb == "south") { player_room = &49 } &537f 9e 61 ; if(verb == "west") { player_room = &61 } &5381 ac 04 05 ; if(p["player_room"] == p["current_room"]) &5384 01 ; { &5385 08 65 ; player_room = &61 &5387 03 ; } &5388 00 ; end ; bytecode_for_room_49_actions &5389 86 61 ; if(verb == "north") { player_room = &61 } &538b 8e 61 ; if(verb == "east") { player_room = &61 } &538d ac 04 05 ; if(p["player_room"] == p["current_room"]) &5390 01 ; { &5391 08 65 ; player_room = &61 &5393 03 ; } &5394 00 ; end ; bytecode_for_room_4a_actions &5395 86 61 ; if(verb == "north") { player_room = &61 } &5397 8e 61 ; if(verb == "east") { player_room = &61 } &5399 9e 60 ; if(verb == "west") { player_room = &60 } &539b ac 04 05 ; if(p["player_room"] == p["current_room"]) &539e 01 ; { &539f 08 65 ; player_room = &61 &53a1 03 ; } &53a2 00 ; end ; bytecode_for_room_4b_actions &53a3 86 4c ; if(verb == "north") { player_room = &4c } &53a5 8e 54 ; if(verb == "east") { player_room = &54 } &53a7 88 07 ; if(verb == "south") &53a9 01 ; { &53aa 08 3f ; player_room = &3b &53ac 44 29 ; p["doctor_state"] ++ &53ae 03 ; } &53af 00 ; end ; bytecode_for_room_4c_actions &53b0 86 4d ; if(verb == "north") { player_room = &4d } &53b2 8e 53 ; if(verb == "east") { player_room = &53 } &53b4 96 4b ; if(verb == "south") { player_room = &4b } &53b6 00 ; end ; bytecode_for_room_4d_actions &53b7 86 63 ; if(verb == "north") { player_room = &63 } &53b9 96 4c ; if(verb == "south") { player_room = &4c } &53bb 8e 4e ; if(verb == "east") { player_room = &4e } &53bd 00 ; end ; bytecode_for_room_4e_actions &53be 86 63 ; if(verb == "north") { player_room = &63 } &53c0 96 53 ; if(verb == "south") { player_room = &53 } &53c2 8e 4f ; if(verb == "east") { player_room = &4f } &53c4 9e 4d ; if(verb == "west") { player_room = &4d } &53c6 00 ; end ; bytecode_for_room_4f_actions &53c7 86 63 ; if(verb == "north") { player_room = &63 } &53c9 8e 50 ; if(verb == "east") { player_room = &50 } &53cb 96 52 ; if(verb == "south") { player_room = &52 } &53cd 9e 4e ; if(verb == "west") { player_room = &4e } &53cf 00 ; end ; bytecode_for_room_50_actions &53d0 86 63 ; if(verb == "north") { player_room = &63 } &53d2 96 51 ; if(verb == "south") { player_room = &51 } &53d4 9e 4f ; if(verb == "west") { player_room = &4f } &53d6 00 ; end ; bytecode_for_room_51_actions &53d7 86 50 ; if(verb == "north") { player_room = &50 } &53d9 96 56 ; if(verb == "south") { player_room = &56 } &53db 9e 52 ; if(verb == "west") { player_room = &52 } &53dd 00 ; end ; bytecode_for_room_52_actions &53de 86 4f ; if(verb == "north") { player_room = &4f } &53e0 8e 51 ; if(verb == "east") { player_room = &51 } &53e2 96 55 ; if(verb == "south") { player_room = &55 } &53e4 9e 53 ; if(verb == "west") { player_room = &53 } &53e6 00 ; end ; bytecode_for_room_53_actions &53e7 86 4e ; if(verb == "north") { player_room = &4e } &53e9 8e 52 ; if(verb == "east") { player_room = &52 } &53eb 96 54 ; if(verb == "south") { player_room = &54 } &53ed 9e 4c ; if(verb == "west") { player_room = &4c } &53ef 00 ; end ; bytecode_for_room_54_actions &53f0 86 53 ; if(verb == "north") { player_room = &53 } &53f2 8e 55 ; if(verb == "east") { player_room = &55 } &53f4 9e 4b ; if(verb == "west") { player_room = &4b } &53f6 00 ; end ; bytecode_for_room_55_actions &53f7 86 52 ; if(verb == "north") { player_room = &52 } &53f9 8e 56 ; if(verb == "east") { player_room = &56 } &53fb 96 58 ; if(verb == "south") { player_room = &58 } &53fd 9e 54 ; if(verb == "west") { player_room = &54 } &53ff 00 ; end ; bytecode_for_room_56_actions &5400 86 51 ; if(verb == "north") { player_room = &51 } &5402 96 57 ; if(verb == "south") { player_room = &57 } &5404 9e 55 ; if(verb == "west") { player_room = &55 } &5406 00 ; end ; bytecode_for_room_57_actions &5407 86 56 ; if(verb == "north") { player_room = &56 } &5409 9e 58 ; if(verb == "west") { player_room = &58 } &540b 00 ; end ; bytecode_for_room_58_actions &540c 86 55 ; if(verb == "north") { player_room = &55 } &540e 8e 57 ; if(verb == "east") { player_room = &57 } &5410 9e 60 ; if(verb == "west") { player_room = &60 } &5412 00 ; end ; bytecode_for_room_59_actions &5413 86 63 ; if(verb == "north") { player_room = &63 } &5415 8e 62 ; if(verb == "east") { player_room = &62 } &5417 96 5a ; if(verb == "south") { player_room = &5a } &5419 00 ; end ; bytecode_for_room_5a_actions &541a 86 59 ; if(verb == "north") { player_room = &59 } &541c 96 5b ; if(verb == "south") { player_room = &5b } &541e 8e 62 ; if(verb == "east") { player_room = &62 } &5420 00 ; end ; bytecode_for_room_5b_actions &5421 86 5a ; if(verb == "north") { player_room = &5a } &5423 88 07 ; if(verb == "south") &5425 01 ; { &5426 08 3f ; player_room = &3b &5428 44 29 ; p["doctor_state"] ++ &542a 03 ; } &542b 8e 62 ; if(verb == "east") { player_room = &62 } &542d 00 ; end ; bytecode_for_room_5c_actions &542e 86 63 ; if(verb == "north") { player_room = &63 } &5430 8e 5d ; if(verb == "east") { player_room = &5d } &5432 96 62 ; if(verb == "south") { player_room = &62 } &5434 00 ; end ; bytecode_for_room_5d_actions &5435 86 63 ; if(verb == "north") { player_room = &63 } &5437 8e 5e ; if(verb == "east") { player_room = &5e } &5439 96 62 ; if(verb == "south") { player_room = &62 } &543b 9e 5c ; if(verb == "west") { player_room = &5c } &543d 00 ; end ; bytecode_for_room_5e_actions &543e 86 63 ; if(verb == "north") { player_room = &63 } &5440 8e 5f ; if(verb == "east") { player_room = &5f } &5442 96 62 ; if(verb == "south") { player_room = &62 } &5444 9e 5d ; if(verb == "west") { player_room = &5d } &5446 00 ; end ; bytecode_for_room_5f_actions &5447 86 63 ; if(verb == "north") { player_room = &63 } &5449 96 62 ; if(verb == "south") { player_room = &62 } &544b 9e 5e ; if(verb == "west") { player_room = &5e } &544d 00 ; end ; bytecode_for_room_60_actions &544e 88 23 ; if(verb == "blow" and &5450 89 2b ; first_noun == "whistle" and &5452 cc 40 ; p["warlord_state"] != 0 and &5454 cc 2f ; p["whistle_has_pea"] != 0) &5456 01 ; { &5457 0d 60 fc df fa 48 06 39 77 9f 44 2e 75 fc da fa ; "Your enemy hesitates. At that moment the Doctor steps &5467 74 44 fc 12 4e 05 ; through the far door" &546d 44 20 ; p["score"] ++ &546f eb 11 8a ; if(object_room["lance"] == &86 and &5472 84 3f 06 ; p["lance_used"] < &02) &5475 01 ; { &5476 0d 06 85 3d 6c fb 10 fc 9c fc 91 44 2e e5 06 44 ; ". Only he can move faster than the Warlord. The beam of &5486 fc 6b 43 44 ac aa 23 1c 19 13 15 23 fa 74 44 2e ; the sonic lance slices through the Warlord's breathing &5496 fa ed fa 98 fc ea 0b 51 44 fa 31 fb 50 0b fa 49 ; tubes, and the monster falls, writhing, to the floor. &54a6 0b 32 44 8c 06 44 2e 75 fc c7 8b 32 44 fc 5a fc ; The Doctor walks over to the grey cube." &54b6 5b 04 &54b8 44 3f ; p["lance_used"] ++ &54ba 08 68 ; player_room = &64 &54bc 04 ; return &54bd 03 ; } &54be 0d 0b 69 6c 33 f0 32 fe 41 42 04 ; ", but can do nothing to help you." &54c9 03 ; } &54ca 88 1c ; if(verb == "shoot" and &54cc db 11 ; object_room["lance"] == "carrying") &54ce 01 ; { &54cf 8c 3f 06 ; if(p["lance_used"] == &02) &54d2 01 ; { &54d3 0d 7c 47 3b d2 5d 35 44 aa 06 44 2e e5 fa 4a 59 ; "there is no charge left in the lance. The Warlord laughs &54e3 3d bc 5a e9 38 42 04 ; as he turns his disruptor on you." &54ea 08 09 ; player_room = &05 &54ec 04 ; return &54ed 03 ; } &54ee cc 40 ; if(p["warlord_state"] != 0) &54f0 01 ; { &54f1 0d 44 2e e5 47 d5 5c ff 36 4b 42 06 44 e9 fa d3 ; "the Warlord is much too fast for you. The disruptor &5501 42 4a fb 54 fb 28 9b 42 fe 1b 60 fb 5f 38 44 fb ; dissolves you into atoms even before you get your finger &5511 e2 04 ; on the trigger." &5513 03 ; } ; else &5514 01 ; { &5515 0d cf fb 20 13 1c 11 27 39 42 73 b7 59 42 fc 24 ; "webbed paws claw at you from behind as you try to fire, &5525 32 fe 2a 0b 51 fb 15 42 32 fc f6 04 ; and tear you to pieces." &5531 03 ; } &5532 08 09 ; player_room = &05 &5534 04 ; return &5535 03 ; } &5536 88 06 ; if(verb == "east") &5538 01 ; { &5539 0d 43 89 44 fb 3f 35 44 fa 4b 5b 32 fc 6a 60 8e ; "of all the people in the universe not to turn your back on, &5549 38 0b 44 2e e5 47 fb 11 43 44 1c 19 23 24 06 3d ; the Warlord is top of the list. He blasts you in the back &5559 12 1c 11 23 24 23 42 35 44 8e 78 5a e9 04 ; with his disruptor." &5567 08 09 ; player_room = &05 &5569 04 ; return &556a 03 ; } &556b cc 40 ; if(p["warlord_state"] != 0) &556d 01 ; { &556e 0d 44 2e e5 fa 4a 59 3d bc 5a e9 38 42 04 ; "the Warlord laughs as he turns his disruptor on you." &557c 03 ; } ; else &557d 01 ; { &557e 0d cf 16 19 1e 17 15 22 23 0e 13 1c 25 24 13 18 ; "webbed fingers clutch at you from behind and tear you to &558e 39 42 73 b7 51 fb 15 42 32 fc f6 04 ; pieces." &559a 03 ; } &559b 08 09 ; player_room = &05 &559d 00 ; end ; bytecode_for_room_61_actions &559e 88 1c ; if(verb == "shoot" and &55a0 db 11 ; object_room["lance"] == "carrying" and &55a2 84 3f 06 ; p["lance_used"] < &02) &55a5 01 ; { &55a6 0d 42 fe 4d 48 43 44 ce 06 44 fc 38 fc 82 42 9b ; "You shoot one of the minions. The other gets you before you &55b6 42 53 64 32 fc 6a 44 aa 04 ; have time to turn the lance." &55bf 03 ; } ; else &55c0 01 ; { &55c1 0d 42 fb 13 43 fc 63 fc d2 9b 44 fc f1 fe 1b 32 ; "you die of terror almost before the knives get to you. But &55d1 42 06 69 5b fc 5e 04 ; not quite." &55d8 03 ; } &55d9 08 09 ; player_room = &05 &55db 00 ; end ; bytecode_for_room_62_actions &55dc 88 1c ; if(verb == "shoot" and &55de db 11 ; object_room["lance"] == "carrying" and &55e0 84 3f 06 ; p["lance_used"] < &02) &55e3 01 ; { &55e4 0d 44 fc c2 20 1f 27 15 22 43 44 aa fc 52 44 a8 ; "The full power of the lance hits the minion, which begins to &55f4 0b b6 12 15 17 19 1e 23 32 1d 15 1c 24 51 b1 fa ; melt and then suddenly explodes. You are thrown some &5604 fe fa d4 06 42 45 fb 5c 5e fb 60 46 44 fc 51 04 ; distance by the blast." &5614 44 3f ; p["lance_used"] ++ &5616 44 40 ; p["warlord_state"] ++ &5618 44 20 ; p["score"] ++ &561a 8c 40 06 ; if(p["warlord_state"] == &02) &561d 01 ; { &561e 08 57 ; player_room = &53 &5620 44 42 ; p["minion_state"] ++ &5622 04 ; return &5623 03 ; } &5624 8c 06 45 ; if(p["previous_room"] == &41) &5627 01 ; { &5628 08 62 ; player_room = &5e &562a 04 ; return &562b 03 ; } &562c 08 5d ; player_room = &59 &562e 04 ; return &562f 03 ; } &5630 0d 44 a8 56 85 48 11 19 1d 06 44 1b 1e 19 16 15 ; "the minion has only one aim. The knife passes through your &5640 d8 fa 74 60 fc 67 04 ; heart." &5647 08 09 ; player_room = &05 &5649 00 ; end ; bytecode_for_room_63_actions &564a 00 ; end ; bytecode_for_room_64_actions &564b 80 0d ; if(verb < "left") &564d 01 ; { &564e 0d 44 2e 75 47 e0 25 1e 18 11 20 20 29 83 42 fb ; "The Doctor is clearly unhappy about you leaving. He needs &565e f2 06 3d fb 61 60 fe 41 04 ; your help." &5667 04 ; return &5668 03 ; } &5669 8c 3c 0c ; if(p["bomb_disarming_state"] == &08 and &566c 98 27 ; verb != "offer") &566e 01 ; { &566f 08 69 ; player_room = &65 &5671 03 ; } &5672 88 27 ; if(verb == "offer") &5674 01 ; { &5675 c4 3c ; if(p["bomb_disarming_state"] == 0 and &5677 89 2c ; first_noun == "scissors") &5679 01 ; { &567a 0d 44 2e 75 fb 5d 24 18 15 23 15 45 94 a1 3d fb ; "the Doctor finds these are just what he needs. He clips &568a 61 06 3d 13 1c 19 20 23 9d 24 19 1e 29 0e 27 19 ; three tiny wires through, and observes, \"Good. Safe to &569a 22 15 23 fa 74 0b 51 1f 12 23 15 22 26 15 23 0b ; work on. \" He tries to cut a thicker metal strip, but &56aa 0d 2e fc 56 06 23 11 16 15 32 fc 85 38 06 0c 2e ; the scissors break." &56ba 3d fc 95 32 66 34 24 18 19 13 1b 15 22 99 23 24 &56ca 22 19 20 0b 69 44 ff 67 fe 55 04 &56d5 44 3c ; p["bomb_disarming_state"] ++ &56d7 09 0a ; object_room[first_noun] = &06 &56d9 44 20 ; p["score"] ++ &56db 04 ; return &56dc 03 ; } &56dd 8c 3c 05 ; if(p["bomb_disarming_state"] == &01 and &56e0 89 1e ; first_noun == "file") &56e2 01 ; { &56e3 0d 44 2e 75 15 28 20 22 15 23 23 15 23 5e 14 1f ; "the Doctor expresses some doubt about the file, but it &56f3 25 12 24 83 44 ff 26 0b 69 3c bc 61 32 fc 85 f9 ; turns out to work excellently. The thick connector is &5703 5e 06 44 24 18 19 13 1b fa 4c 47 fa 32 35 fa 4d ; severed in seconds. Now he tries to rotate some cogs in &5713 06 63 3d fc 95 32 f9 1e 5e fc 9d 35 44 fc 0b fa ; the main mechanism, but some of the metal filings have &5723 d5 0b 69 5e 43 44 99 fa 4e 53 1a 11 1d 1d 15 14 ; jammed in between two of the teeth. He starts to look &5733 35 c0 49 43 44 24 15 15 24 18 06 3d fc eb 32 fe ; worried." &5743 43 fa 33 04 &5747 44 3c ; p["bomb_disarming_state"] ++ &5749 09 0a ; object_room[first_noun] = &06 &574b 44 20 ; p["score"] ++ &574d 04 ; return &574e 03 ; } &574f 8c 3c 06 ; if(p["bomb_disarming_state"] == &02 and &5752 89 17 ; first_noun == "toothpick") &5754 01 ; { &5755 0d 44 2e 75 47 e0 fa fd 46 60 fa 4f 06 3d fa d6 ; "the Doctor is clearly impressed by your foresight. He &5765 44 fa 4e 0b b6 a7 14 15 15 20 15 22 4a 44 fa d5 ; dislodges the filings, which fall deeper into the &5775 06 0d 2e 42 fc 75 53 34 fc 14 43 ff 68 46 fc 06 ; mechanism. \"You don't have a pair of tweezers by any &5785 13 18 11 1e 13 15 07 0c 3d fa 50 18 1f 20 15 16 ; chance? \" he inquires hopefully." &5795 25 1c 1c 29 04 &579a 44 3c ; p["bomb_disarming_state"] ++ &579c 09 0a ; object_room[first_noun] = &06 &579e 44 20 ; p["score"] ++ &57a0 04 ; return &57a1 03 ; } &57a2 8c 3c 07 ; if(p["bomb_disarming_state"] == &03 and &57a5 89 2d ; first_noun == "tweezers") &57a7 01 ; { &57a8 0d 44 fa 4e 45 fb e9 fa d7 06 44 2e 75 fa 34 44 ; "the filings are finally extracted. The Doctor rotates &57b8 fc 9d 0b 69 34 23 20 22 19 1e 17 fb 8a ff 32 8e ; the cogs, but a spring pulls them back. \"Some glue, or &57c8 06 0d 2e 5e 17 1c 25 15 0b 36 44 6f 07 0c 3d 21 ; the like? \" he queries." &57d8 25 15 22 19 15 23 04 &57df 44 3c ; p["bomb_disarming_state"] ++ &57e1 09 0a ; object_room[first_noun] = &06 &57e3 44 20 ; p["score"] ++ &57e5 04 ; return &57e6 03 ; } &57e7 8c 3c 08 ; if(p["bomb_disarming_state"] == &04 and &57ea 89 07 ; first_noun == "gum") &57ec 01 ; { &57ed 0d 0d 2e fc f7 08 0c 2e 44 2e 75 1a 11 1d 23 44 ; " \"Perfect! \" The Doctor jams the cogs where he wants &57fd fc 9d 88 3d 27 11 1e 24 23 ff 32 06 3d b1 fa 51 ; them. He then attempts to pierce a diaphragm revealed &580d 32 f9 1f 34 f9 3e fa 52 fc 5c ff 32 78 44 ff 6f ; below them with the toothpick, but it snaps." &581d 0b 69 3c 23 1e 11 20 23 04 &5826 44 3c ; p["bomb_disarming_state"] ++ &5828 09 0a ; object_room[first_noun] = &06 &582a 44 20 ; p["score"] ++ &582c 04 ; return &582d 03 ; } &582e 8c 3c 09 ; if(p["bomb_disarming_state"] == &05 and &5831 89 13 ; first_noun == "needle") &5833 01 ; { &5834 0d 44 2e 75 56 9e fc d1 8d 64 06 44 f9 3e 23 20 ; "the Doctor has better luck this time. The diaphragm &5844 1c 19 24 23 32 fc d8 34 fb 62 fa d8 fb 53 06 0d ; splits to reveal a delicate instrument within. &5854 2e fa 53 59 d5 06 34 fb 63 fb 64 06 9e fc 48 61 ; \"Thought as much. A neutrino zelatron. Better short out &5864 44 fa 54 fc 8b 0b 0c 3d fb a6 04 ; the contacts first, \" he mutters." &586f 44 3c ; p["bomb_disarming_state"] ++ &5871 09 0a ; object_room[first_noun] = &06 &5873 44 20 ; p["score"] ++ &5875 04 ; return &5876 03 ; } &5877 8c 3c 0a ; if(p["bomb_disarming_state"] == &06 and &587a 89 0c ; first_noun == "disk") &587c 01 ; { &587d 0d 44 ff 1e fb 40 fc 5e f9 0c 35 44 23 1f 13 1b ; "the disc doesn't quite fit in the socket. \"Now a bit &588d 15 24 06 0d 2e 63 34 f9 0f 43 1f 19 1c 06 06 06 ; of oil. . . \" The Doctor murmurs." &589d 0c 44 2e 75 1d 25 22 1d 25 22 23 04 &58a9 44 3c ; p["bomb_disarming_state"] ++ &58ab 09 0a ; object_room[first_noun] = &06 &58ad 44 20 ; p["score"] ++ &58af 04 ; return &58b0 03 ; } &58b1 8c 3c 0b ; if(p["bomb_disarming_state"] == &07 and &58b4 89 10 ; first_noun == "soap") &58b6 01 ; { &58b7 0d 44 ff 1e fc de 4a fe 50 9c 34 f9 0f 43 ff 23 ; "the disc slides into place after a bit of soap is rubbed &58c7 47 22 25 12 12 15 14 38 3c 06 44 2e 75 fa 41 52 ; on it. The Doctor reaches down with a finger to depress &58d7 78 34 fb 5f 32 14 15 20 22 15 23 23 44 d1 f9 10 ; the firing pin. \"This will need a feather light touch, &58e7 06 0d 2e 8d b0 1e 15 15 14 34 ff 5c a3 24 1f 25 ; \" he remarks." &58f7 13 18 0b 0c 3d fb a8 04 &58ff 44 3c ; p["bomb_disarming_state"] ++ &5901 09 0a ; object_room[first_noun] = &06 &5903 44 20 ; p["score"] ++ &5905 04 ; return &5906 03 ; } &5907 8c 3c 0c ; if(p["bomb_disarming_state"] == &08) &590a 01 ; { &590b 89 14 ; if(first_noun == "feather") &590d 01 ; { &590e 0d 44 0e 2e 75 23 24 1f 20 23 94 35 64 51 ab 60 ; "the Doctor stops just in time and takes your &591e f9 3f 06 44 d1 f9 10 47 ff 58 fa d9 06 44 2e 75 ; suggestion. The firing pin is gently depressed. The &592e fc 9b 17 1c 25 1d 1c 29 0b 0d 2e 89 3e 53 32 33 ; Doctor says glumly, \"All we have to do now is &593e 63 47 fb e2 3c 06 17 1f 24 fc 06 fa 55 07 0c 05 ; trigger it. Got any neutrinos? \" " &594e 44 3c ; p["bomb_disarming_state"] ++ &5950 09 0a ; object_room[first_noun] = &06 &5952 44 20 ; p["score"] ++ &5954 04 ; return &5955 03 ; } &5956 08 69 ; player_room = &65 &5958 04 ; return &5959 03 ; } &595a 84 3c 0d ; if(p["bomb_disarming_state"] < &09) &595d 01 ; { &595e 0d 8d 47 5b 9a fb d1 0b 3c bc 61 06 44 2e 75 fc ; "this is not very useful, it turns out. The Doctor gives &596e 86 3c 8e 04 ; it back." &5972 04 ; return &5973 03 ; } &5974 03 ; } &5975 8c 3c 0d ; if(p["bomb_disarming_state"] == &09) &5978 01 ; { &5979 88 30 ; if(verb == "press" and &597b 89 3f ; first_noun == "button" and &597d 8d 4c ; preposition == "red" and &597f db 27 ; object_room["device"] == "carrying") &5981 01 ; { &5982 0d 42 fe 54 44 ff 56 05 ; "you press the button" &598a cc 2e ; if(p["orange_button_state"] != 0) &598c 01 ; { &598d 14 3d ; p["bomb_countdown"] = 0 &598f 0d 06 7c 47 34 18 19 23 23 19 1e 17 fc 94 73 fb ; ". There is a hissing noise from within the bomb, and &599f 53 44 fc 6e 0b 51 fa fe 44 fc 8a fa d5 fa 9f 4a ; suddenly the whole mechanism collapses into a small &59af 34 cb 18 15 11 20 43 fc 5a fb 32 06 44 2e 75 fc ; heap of grey dust. The Doctor stands up, beaming. &59bf b2 58 0b 12 15 11 1d 19 1e 17 06 2d 39 77 9f 44 ; \nAt that moment the green minion enters through the &59cf a4 a8 15 1e 24 15 22 23 fa 74 44 50 cc 0b fa 35 ; east doorway, despair and hatred in all three of its &59df 51 fc ef 35 89 9d 43 55 a6 06 55 23 1b 19 1e 47 ; eyes. Its skin is wet and in each webbed hand it &59ef 27 15 24 51 35 fb 1f cf 87 3c fc fb fc e9 34 92 ; still holds a long curved dagger." &59ff fc f0 14 11 17 17 15 22 04 &5a08 44 3c ; p["bomb_disarming_state"] ++ &5a0a 44 20 ; p["score"] ++ &5a0c 04 ; return &5a0d 03 ; } &5a0e 0d 0b 69 f0 f4 04 ; ", but nothing happens." &5a14 04 ; return &5a15 03 ; } &5a16 88 27 ; if(verb == "offer" and &5a18 d9 ; object_room[first_noun] == "carrying") &5a19 01 ; { &5a1a 0d 94 59 44 2e 75 ab 44 05 ; "just as the Doctor takes the" &5a23 1d ; print first_noun &5a24 0d 0b 44 fc 6e fa d4 04 ; ", the bomb explodes." &5a2c 08 09 ; player_room = &05 &5a2e 03 ; } &5a2f 04 ; return &5a30 03 ; } &5a31 8c 3c 0e ; if(p["bomb_disarming_state"] == &0a) &5a34 01 ; { &5a35 88 1d ; if(verb == "kick" and &5a37 89 11 ; first_noun == "lance") &5a39 01 ; { &5a3a 84 3f 06 ; if(p["lance_used"] < &02) &5a3d 01 ; { &5a3e 44 20 ; p["score"] ++ &5a40 0d 2f 10 2d 2d 2d 2d 60 24 1f 15 fa 36 44 fb e2 ; "[cls]\n\n\n\nYour toe strikes the trigger precisely. &5a50 fa da 06 34 17 1f 11 1c 08 44 aa fc 4a 0b 51 44 ; A goal! the lance fires, and the green minion melts &5a60 a4 a8 1d 15 1c 24 23 35 44 fc 6b 06 55 fc 0c fc ; in the beam. Its last cry is: \"Take the" &5a70 1a 47 09 0d 2e fe 28 44 05 &5a79 1d ; print first_noun &5a7a 0d 06 fe 5e 05 ; ". Follow" &5a7f 0c 89 0b ; p["old_room"] = &85 &5a82 06 ; list_objects(p["old_room"]. p["new_room"]) &5a83 0d 06 0c 2d 44 2e 75 51 42 fc 77 5b 32 fe 28 55 ; ". \" \nThe Doctor and you decide not to take its &5a93 11 14 26 19 13 15 06 42 fc 92 76 51 fb 34 35 2e ; advice. You slip away and stay in Brussels till the &5aa3 fa 67 24 19 1c 1c 44 90 47 8b 06 b1 42 fc 18 60 ; battle is over. Then you make your way back to the &5ab3 6e 8e 32 44 2e b3 51 23 15 24 7e 4b 1e 15 27 f9 ; Tardis and set off for new adventures, satisfied &5ac3 40 0b fa db 78 34 1a 1f 12 fb 16 fc 21 06 0e 2d ; with a job well done. &5ad3 2d 2d 2f 87 f9 66 06 2d 2f 87 42 fa 5d 31 20 2f ; \n\n\n[yellow]Congratulations. \n[yellow]You &5ae3 29 0e 43 2d 2f 87 75 2e 62 51 44 2e e5 06 2d 05 ; completed p["score"]% of \n[yellow]Doctor Who and ; the Warlord. \n" &5af3 36 ; p["character"] = read_character() &5af4 36 ; p["character"] = read_character() &5af5 3e ; reset() &5af6 03 ; } &5af7 0d 7c 47 3b d2 5d 35 44 aa 06 2d 05 ; "There is no charge left in the lance. \n" &5b03 03 ; } &5b04 0d 44 fa 56 43 44 a8 47 fa 47 32 12 15 18 1f 1c ; "The vengeance of the minion is terrible to behold - but since &5b14 14 0e 10 69 fc 70 42 45 85 11 1c 19 26 15 4b 44 ; you are only alive for the first few seconds of its attack, &5b24 fc 8b fc 1c fa 4d 43 55 fe 5c 0b 42 fb 2d 44 fa ; you miss the juiciest bits." &5b34 57 12 19 24 23 04 &5b3a 08 09 ; player_room = &05 &5b3c 03 ; } &5b3d 00 ; end ; bytecode_for_room_65_actions &5b3e 00 ; end ; bytecode_for_room_66_actions &5b3f c4 32 ; if(p["cart_state"] == 0) &5b41 01 ; { &5b42 88 12 ; if(verb == "enter" and &5b44 89 33 02 ; first_noun == "tiles" or &5b47 88 10 02 ; verb == "up" or &5b4a 88 2d ; verb == "hide" and &5b4c 89 33 ; first_noun == "tiles" and &5b4e 8d 43 ; preposition == "into") &5b50 01 ; { &5b51 08 7a ; player_room = &76 &5b53 44 32 ; p["cart_state"] ++ &5b55 04 ; return &5b56 03 ; } &5b57 03 ; } &5b58 86 72 ; if(verb == "north") { player_room = &72 } &5b5a 96 81 ; if(verb == "south") { player_room = &81 } &5b5c 8e 68 ; if(verb == "east") { player_room = &68 } &5b5e 9e 68 ; if(verb == "west") { player_room = &68 } &5b60 44 32 ; p["cart_state"] ++ &5b62 00 ; end ; bytecode_for_room_67_actions &5b63 88 0f ; if(verb == "down") &5b65 01 ; { &5b66 2c 04 24 ; p["character"] = p["player_room"] &5b69 2c 06 04 ; p["player_room"] = p["previous_room"] &5b6c 2c 24 06 ; p["previous_room"] = p["character"] &5b6f 0d 42 fe 5b 52 04 ; "You climb down." &5b75 04 ; return &5b76 03 ; } &5b77 80 0d ; if(verb < "left") &5b79 01 ; { &5b7a 0d 42 a7 51 fe 55 60 8e 04 ; "you fall and break your back." &5b83 08 09 ; player_room = &05 &5b85 03 ; } &5b86 00 ; end ; bytecode_for_room_68_actions &5b87 0c 07 2b ; p["pig_sty_wall_hole"] = &03 &5b8a 80 0d ; if(verb < "left") &5b8c 01 ; { &5b8d 08 73 ; player_room = &6f &5b8f 03 ; } &5b90 de 67 ; if(verb == "up") { player_room = &67 } &5b92 00 ; end ; bytecode_for_room_69_actions &5b93 0c 09 2b ; p["pig_sty_wall_hole"] = &05 &5b96 88 06 ; if(verb == "east") &5b98 01 ; { &5b99 08 6e ; player_room = &6a &5b9b 04 ; return &5b9c 03 ; } &5b9d 80 15 ; if(verb < "dc") &5b9f 01 ; { &5ba0 08 73 ; player_room = &6f &5ba2 03 ; } &5ba3 de 67 ; if(verb == "up") { player_room = &67 } &5ba5 00 ; end ; bytecode_for_room_6a_actions &5ba6 0c 06 2b ; p["pig_sty_wall_hole"] = &02 &5ba9 88 0a ; if(verb == "northwest") &5bab 01 ; { &5bac 08 6f ; player_room = &6b &5bae 04 ; return &5baf 03 ; } &5bb0 80 15 ; if(verb < "dc") &5bb2 01 ; { &5bb3 08 73 ; player_room = &6f &5bb5 03 ; } &5bb6 de 67 ; if(verb == "up") { player_room = &67 } &5bb8 00 ; end ; bytecode_for_room_6b_actions &5bb9 0c 08 2b ; p["pig_sty_wall_hole"] = &04 &5bbc 88 09 ; if(verb == "northeast") &5bbe 01 ; { &5bbf 08 70 ; player_room = &6c &5bc1 04 ; return &5bc2 03 ; } &5bc3 80 15 ; if(verb < "dc") &5bc5 01 ; { &5bc6 08 73 ; player_room = &6f &5bc8 03 ; } &5bc9 de 67 ; if(verb == "up") { player_room = &67 } &5bcb 00 ; end ; bytecode_for_room_6c_actions &5bcc 0c 05 2b ; p["pig_sty_wall_hole"] = &01 &5bcf 88 05 ; if(verb == "north") &5bd1 01 ; { &5bd2 08 71 ; player_room = &6d &5bd4 04 ; return &5bd5 03 ; } &5bd6 80 15 ; if(verb < "dc") &5bd8 01 ; { &5bd9 08 73 ; player_room = &6f &5bdb 03 ; } &5bdc de 67 ; if(verb == "up") { player_room = &67 } &5bde 00 ; end ; bytecode_for_room_6d_actions &5bdf 0c 07 2b ; p["pig_sty_wall_hole"] = &03 &5be2 88 08 ; if(verb == "west") &5be4 01 ; { &5be5 08 72 ; player_room = &6e &5be7 04 ; return &5be8 03 ; } &5be9 80 15 ; if(verb < "dc") &5beb 01 ; { &5bec 08 73 ; player_room = &6f &5bee 03 ; } &5bef de 67 ; if(verb == "up") { player_room = &67 } &5bf1 00 ; end ; bytecode_for_room_6e_actions &5bf2 0c 05 2b ; p["pig_sty_wall_hole"] = &01 &5bf5 88 05 ; if(verb == "north") &5bf7 01 ; { &5bf8 08 74 ; player_room = &70 &5bfa 04 ; return &5bfb 03 ; } &5bfc 80 15 ; if(verb < "dc") &5bfe 01 ; { &5bff 08 73 ; player_room = &6f &5c01 03 ; } &5c02 de 67 ; if(verb == "up") { player_room = &67 } &5c04 00 ; end ; bytecode_for_room_6f_actions &5c05 80 15 ; if(verb < "dc") &5c07 01 ; { &5c08 08 6d ; player_room = &69 &5c0a 2f ; room.flags[2] = true &5c0b 03 ; } &5c0c de 67 ; if(verb == "up") { player_room = &67 } &5c0e 00 ; end ; bytecode_for_room_70_actions &5c0f 86 71 ; if(verb == "north") { player_room = &71 } &5c11 de 71 ; if(verb == "up") { player_room = &71 } &5c13 80 0d ; if(verb < "left" and &5c15 8c 04 74 ; p["player_room"] == &70) &5c18 01 ; { &5c19 08 6d ; player_room = &69 &5c1b 03 ; } &5c1c 00 ; end ; bytecode_for_room_71_actions &5c1d af ; if(room.flags[2]) &5c1e 01 ; { &5c1f 88 05 ; if(verb == "north") &5c21 01 ; { &5c22 0d 42 fc 18 60 6e 52 44 fc 72 51 61 43 44 ad 04 ; "You make your way down the hill and out of the forest." &5c32 08 79 ; player_room = &75 &5c34 03 ; } &5c35 96 70 ; if(verb == "south") { player_room = &70 } &5c37 d6 70 ; if(verb == "down") { player_room = &70 } &5c39 8e 69 ; if(verb == "east") { player_room = &69 } &5c3b 9e 6b ; if(verb == "west") { player_room = &6b } &5c3d 04 ; return &5c3e 03 ; } &5c3f 80 0d 02 ; if(verb < "left" or &5c42 88 0f ; verb == "down") &5c44 01 ; { &5c45 0d 42 45 fa dc 78 34 fc b6 ff 48 51 42 fc 88 fc ; "you are threatened with a loaded pistol and you cannot &5c55 28 04 ; leave." &5c57 04 ; return &5c58 03 ; } &5c59 88 20 02 ; if(verb == "ask" or &5c5c 88 1f ; verb == "guess") &5c5e 01 ; { &5c5f 8c 08 05 ; if(p["total_words"] == &01) &5c62 01 ; { &5c63 15 ; print verb &5c64 0d a1 07 05 ; "what? " &5c68 04 ; return &5c69 03 ; } &5c6a 89 30 ; if(first_noun == "beard") &5c6c 01 ; { &5c6d 0d a0 08 ff 4c 1c 1f 27 15 22 23 5a ff 48 51 fc ; "right! kilroy lowers his pistol and says, \"I know what &5c7d 9b 0b 0d 2e 19 fc 99 a1 d3 14 1f 19 1e 17 06 4f ; you're doing. Here is something that might be useful &5c8d 47 fa 63 77 fc 42 37 fb d1 ba 44 2e e5 06 0c 2d ; against the Warlord. \" \nHe grins, drops something on &5c9d 3d 17 22 19 1e 23 0b fc f3 fa 63 38 44 fb 65 0b ; the grass, and disappears down the west side of the &5cad 51 fa 8c 52 44 4c 4d 43 44 fc 72 0a 4b 34 9f 42 ; hill; for a moment you think you can see right through &5cbd fc c1 42 6c 5f a0 fa 74 6a 0b 69 b1 3d 47 17 1f ; him, but then he is gone. \nYou scratch your head, &5ccd 1e 15 06 2d 42 23 13 22 11 24 13 18 60 97 0b fa ; wondering if the whole incident was real. Then you &5cdd dd 67 44 fc 8a fb 66 fc 0d 22 15 11 1c 06 b1 42 ; notice the object he dropped, lying on the grass." &5ced 98 44 fb 67 3d 14 22 1f 20 20 15 14 0b fc a3 38 &5cfd 44 fb 65 04 &5d01 3b 2a ; object_room["module"] = player_room &5d03 2f ; room.flags[2] = true &5d04 77 ; room.flags[7] = false &5d05 6f ; room.flags[6] = true &5d06 0c 08 31 ; p["guesses"] = &04 &5d09 0c 0a 32 ; p["cart_state"] = &06 &5d0c 44 20 ; p["score"] ++ &5d0e 04 ; return &5d0f 03 ; } &5d10 0d 27 22 1f 1e 17 04 ; "wrong." &5d17 44 31 ; p["guesses"] ++ &5d19 8c 31 06 ; if(p["guesses"] == &02) &5d1c 01 ; { &5d1d 0d 42 53 48 71 fe 4e 04 ; "you have one more guess." &5d25 03 ; } &5d26 8c 31 07 ; if(p["guesses"] == &03) &5d29 01 ; { &5d2a 0d fb 29 08 3d 23 18 1f 1f 24 23 42 04 ; "bang! he shoots you." &5d37 08 09 ; player_room = &05 &5d39 04 ; return &5d3a 03 ; } &5d3b 03 ; } &5d3c 00 ; end ; bytecode_for_room_72_actions &5d3d 86 73 ; if(verb == "north") { player_room = &73 } &5d3f 96 66 ; if(verb == "south") { player_room = &66 } &5d41 88 06 02 ; if(verb == "east" or &5d44 88 08 ; verb == "west") &5d46 01 ; { &5d47 0d 44 2e fb b7 fc 3e fc 23 3b fa de 73 42 06 7f ; "The British army want no assistance from you. They throw you &5d57 fe 52 42 8e 61 38 44 7d 04 ; back out on the road." &5d60 03 ; } &5d61 00 ; end ; bytecode_for_room_73_actions &5d62 86 74 ; if(verb == "north") { player_room = &74 } &5d64 8e 68 ; if(verb == "east") { player_room = &68 } &5d66 96 72 ; if(verb == "south") { player_room = &72 } &5d68 9e 68 ; if(verb == "west") { player_room = &68 } &5d6a 00 ; end ; bytecode_for_room_74_actions &5d6b cc 0e ; if(p["number_of_objects_carried"] != 0) &5d6d 01 ; { &5d6e 0d 34 fc ab 43 2e ee fb b0 b8 73 44 ad 51 22 1f ; "A group of Prussian deserters emerge from the forest and rob &5d7e 12 42 43 f9 41 42 53 06 7f f9 67 fe 4d 42 fc 96 ; you of everything you have. They accidentally shoot you when &5d8e 42 fc 24 32 f9 20 04 ; you try to resist." &5d95 08 09 ; player_room = &05 &5d97 04 ; return &5d98 03 ; } &5d99 86 75 ; if(verb == "north") { player_room = &75 } &5d9b 96 73 ; if(verb == "south") { player_room = &73 } &5d9d 00 ; end ; bytecode_for_room_75_actions &5d9e 88 12 ; if(verb == "enter" and &5da0 89 33 02 ; first_noun == "tiles" or &5da3 88 2d ; verb == "hide" and &5da5 89 33 ; first_noun == "tiles" and &5da7 8d 43 ; preposition == "into") &5da9 01 ; { &5daa 08 7a ; player_room = &76 &5dac 03 ; } &5dad 96 74 ; if(verb == "south") { player_room = &74 } &5daf ae 37 ; if(verb == "northwest") { player_room = &37 } &5db1 00 ; end ; bytecode_for_room_76_actions &5db2 8c 32 09 ; if(p["cart_state"] == &05) &5db5 01 ; { &5db6 0d 44 fa df 47 fb 5c 8e 51 42 45 fa 3c 61 46 2e ; "The tarpaulin is thrown back and you are dragged out by &5dc6 fb 4e db 06 44 fc 54 f9 0a fb e6 42 59 34 23 20 ; Belgian soldiers. The farm boy denounces you as a spy, and &5dd6 29 0b 51 42 45 f9 08 76 32 37 ae 04 ; you are led away to be shot." &5de2 08 09 ; player_room = &05 &5de4 04 ; return &5de5 03 ; } &5de6 88 0f 02 ; if(verb == "down" or &5de9 88 11 ; verb == "exit") &5deb 01 ; { &5dec 84 32 06 ; if(p["cart_state"] < &02) &5def 01 ; { &5df0 08 76 ; player_room = &72 &5df2 03 ; } &5df3 8c 32 06 ; if(p["cart_state"] == &02) &5df6 01 ; { &5df7 08 77 ; player_room = &73 &5df9 03 ; } &5dfa 8c 32 07 ; if(p["cart_state"] == &03) &5dfd 01 ; { &5dfe 08 78 ; player_room = &74 &5e00 03 ; } &5e01 94 32 07 ; if(p["cart_state"] > &03) &5e04 01 ; { &5e05 08 79 ; player_room = &75 &5e07 0c 0a 32 ; p["cart_state"] = &06 &5e0a 03 ; } &5e0b 04 ; return &5e0c 03 ; } &5e0d 84 32 0a ; if(p["cart_state"] < &06) &5e10 01 ; { &5e11 44 32 ; p["cart_state"] ++ &5e13 0d 44 ff 2e fb ad 79 04 ; "the cart trundles north." &5e1b 14 09 ; p["output_written"] = 0 &5e1d 03 ; } &5e1e 00 ; end ; bytecode_for_room_77_actions &5e1f 00 ; end ; bytecode_for_room_78_actions &5e20 88 05 ; if(verb == "north" and &5e22 8d 4f ; preposition == "quickly") &5e24 01 ; { &5e25 08 7d ; player_room = &79 &5e27 04 ; return &5e28 03 ; } &5e29 08 7b ; player_room = &77 &5e2b 00 ; end ; bytecode_for_room_79_actions &5e2c 86 83 ; if(verb == "north") { player_room = &83 } &5e2e 96 77 ; if(verb == "south") { player_room = &77 } &5e30 8e 83 ; if(verb == "east") { player_room = &83 } &5e32 9e 7a ; if(verb == "west") { player_room = &7a } &5e34 00 ; end ; bytecode_for_room_7a_actions &5e35 a7 ; if(!room.flags[2]) &5e36 01 ; { &5e37 88 0f ; if(verb == "down") &5e39 01 ; { &5e3a 0d 42 14 19 26 15 4a 34 16 25 22 22 1f 27 06 44 ; "You dive into a furrow. The battle passes over you, and &5e4a 90 d8 8b 42 0b 51 fc 4e 38 fa e0 06 42 b8 fa e1 ; moves on elsewhere. You emerge unscathed." &5e5a 04 &5e5b 2f ; room.flags[2] = true &5e5c 44 20 ; p["score"] ++ &5e5e 04 ; return &5e5f 03 ; } &5e60 0d d7 fa 3e ff 4a 12 11 1c 1c 23 fe 1c 42 73 26 ; "several hundred musket balls hit you from various sides. &5e70 11 22 19 1f 25 23 fc 64 06 8d 20 22 1f 26 15 23 ; This proves to be rather bad for your health." &5e80 32 37 c7 f9 09 4b 60 18 15 11 1c 24 18 04 &5e8e 08 09 ; player_room = &05 &5e90 04 ; return &5e91 03 ; } &5e92 8e 83 ; if(verb == "east") { player_room = &83 } &5e94 96 83 ; if(verb == "south") { player_room = &83 } &5e96 9e 83 ; if(verb == "west") { player_room = &83 } &5e98 86 7b ; if(verb == "north") { player_room = &7b } &5e9a 00 ; end ; bytecode_for_room_7b_actions &5e9b 88 10 ; if(verb == "up") &5e9d 01 ; { &5e9e 04 ; return &5e9f 03 ; } &5ea0 a7 ; if(!room.flags[2]) &5ea1 01 ; { &5ea2 88 2b ; if(verb == "jump") &5ea4 01 ; { &5ea5 0d fc 22 fb 2a 06 44 fc 81 fc 55 d8 18 11 22 1d ; "How cute. The cannon ball passes harmlessly beneath your &5eb5 1c 15 23 23 1c 29 fb 58 60 54 04 ; feet." &5ec0 2f ; room.flags[2] = true &5ec1 04 ; return &5ec2 03 ; } &5ec3 0d 44 fc 55 bc 61 32 37 fc f8 d5 fc 9c fc 91 42 ; "the ball turns out to be moving much faster than you &5ed3 fa 53 0b 51 12 1f 27 1c 23 42 8b 06 34 fb e8 2e ; thought, and bowls you over. A passing French lancer &5ee3 b9 fc b9 fa 58 42 7e 04 ; finishes you off." &5eeb 08 09 ; player_room = &05 &5eed 04 ; return &5eee 03 ; } &5eef 96 83 ; if(verb == "south") { player_room = &83 } &5ef1 8e 83 ; if(verb == "east") { player_room = &83 } &5ef3 9e 83 ; if(verb == "west") { player_room = &83 } &5ef5 86 7c ; if(verb == "north") { player_room = &7c } &5ef7 00 ; end ; bytecode_for_room_7c_actions &5ef8 a7 ; if(!room.flags[2]) &5ef9 01 ; { &5efa 88 33 ; if(verb == "wave") &5efc 01 ; { &5efd 0d 44 f9 52 fa 48 0b fb f3 42 45 5b fe 66 34 2e ; "The sharpshooter hesitates, realises you are not wearing &5f0d b9 dc 0b 51 fc 87 8e 06 3d 13 18 1f 1f 23 15 23 ; a French uniform, and waves back. He chooses another &5f1d fc c4 24 11 22 17 15 24 04 ; target." &5f26 2f ; room.flags[2] = true &5f27 44 20 ; p["score"] ++ &5f29 04 ; return &5f2a 03 ; } &5f2b 0d 5c fc 08 06 44 fb ed 47 f3 38 55 6e 0b 51 f9 ; "too late. The bullet is already on its way, and travelling &5f3b 42 d5 fc 9c fc 91 42 04 ; much faster than you." &5f43 08 09 ; player_room = &05 &5f45 04 ; return &5f46 03 ; } &5f47 88 05 ; if(verb == "north") &5f49 01 ; { &5f4a 0d 44 2e fb 3b f9 52 fc 87 fc 57 f9 47 59 42 fb ; "the Dutch sharpshooter waves again cheerfully as you pass." &5f5a 33 04 &5f5c 08 81 ; player_room = &7d &5f5e 03 ; } &5f5f 8e 83 ; if(verb == "east") { player_room = &83 } &5f61 9e 1a ; if(verb == "west") { player_room = &1a } &5f63 96 83 ; if(verb == "south") { player_room = &83 } &5f65 00 ; end ; bytecode_for_room_7d_actions &5f66 c4 30 ; if(p["cavalry_state"] == 0) &5f68 01 ; { &5f69 0d 34 fc ab 43 2e b9 bb 22 19 14 15 61 43 44 fc ; "A group of French cavalry ride out of the farm and surround &5f79 54 51 fb 88 42 06 60 20 19 24 19 16 25 1c fa 51 ; you. Your pitiful attempts to escape merely provoke them, &5f89 32 fc e3 1d 15 22 15 1c 29 fa 37 ff 32 0b 51 42 ; and you are cut down." &5f99 45 66 52 04 &5f9d 08 09 ; player_room = &05 &5f9f 04 ; return &5fa0 03 ; } &5fa1 86 7e ; if(verb == "north") { player_room = &7e } &5fa3 96 83 ; if(verb == "south") { player_room = &83 } &5fa5 8e 83 ; if(verb == "east") { player_room = &83 } &5fa7 9e 80 ; if(verb == "west") { player_room = &80 } &5fa9 00 ; end ; bytecode_for_room_7e_actions &5faa a7 ; if(!room.flags[2]) &5fab 01 ; { &5fac 88 05 ; if(verb == "north" and &5fae 8d 4f ; preposition == "quickly") &5fb0 01 ; { &5fb1 2f ; room.flags[2] = true &5fb2 08 83 ; player_room = &7f &5fb4 04 ; return &5fb5 03 ; } &5fb6 0d 44 bb e6 12 15 11 22 52 38 42 06 59 42 5f 44 ; "The cavalry rapidly bear down on you. As you see the whites &5fc6 27 18 19 24 15 23 43 a9 a6 0b 42 fb fb 44 16 1f ; of their eyes, you recognise the folly of unprepared &5fd6 1c 1c 29 43 fa e2 e2 fa e3 13 18 11 22 17 19 1e ; infantry receiving charging cavalry- especially when you are &5fe6 17 bb 10 0e 15 23 20 15 13 19 11 1c 1c 29 fc 96 ; the infantry." &5ff6 42 45 44 e2 04 &5ffb 08 09 ; player_room = &05 &5ffd 04 ; return &5ffe 03 ; } &5fff 86 7f ; if(verb == "north") { player_room = &7f } &6001 96 7d ; if(verb == "south") { player_room = &7d } &6003 8e 68 ; if(verb == "east") { player_room = &68 } &6005 9e 81 ; if(verb == "west") { player_room = &81 } &6007 be 80 ; if(verb == "southwest") { player_room = &80 } &6009 00 ; end ; bytecode_for_room_7f_actions &600a 86 68 ; if(verb == "north") { player_room = &68 } &600c 8e 68 ; if(verb == "east") { player_room = &68 } &600e 96 7e ; if(verb == "south") { player_room = &7e } &6010 9e 66 ; if(verb == "west") { player_room = &66 } &6012 00 ; end ; bytecode_for_room_80_actions &6013 a7 ; if(!room.flags[2]) &6014 01 ; { &6015 0d 44 fc 7a 12 1f 1c 24 23 fb c7 4b 44 c6 32 44 ; "The horse bolts straight for the entrance to the yard." &6025 fc 79 04 &6028 88 06 ; if(verb == "east") &602a 01 ; { &602b 0d 42 fe 1b 61 43 44 6e 94 35 64 0b 51 44 fc 7a ; "you get out of the way just in time, and the horse &603b fa 59 f9 43 04 ; vanishes southwards." &6040 2f ; room.flags[2] = true &6041 08 81 ; player_room = &7d &6043 44 20 ; p["score"] ++ &6045 04 ; return &6046 03 ; } &6047 0d 42 f1 77 d9 35 44 6e 43 34 f9 44 fa 5a 47 5b ; "you discover that standing in the way of a frightened &6057 44 12 15 23 24 6e 43 fa 75 34 22 19 20 15 fc 31 ; stallion is not the best way of reaching a ripe old age." &6067 11 17 15 04 &606b 08 09 ; player_room = &05 &606d 04 ; return &606e 03 ; } &606f 8e 7d ; if(verb == "east") { player_room = &7d } &6071 00 ; end ; bytecode_for_room_81_actions &6072 2c 04 05 ; p["current_room"] = p["player_room"] &6075 2c 04 06 ; p["previous_room"] = p["player_room"] &6078 86 66 ; if(verb == "north") { player_room = &66 } &607a 96 82 ; if(verb == "south") { player_room = &82 } &607c 8e 7e ; if(verb == "east") { player_room = &7e } &607e 9e 68 ; if(verb == "west") { player_room = &68 } &6080 00 ; end ; miscellaneous_bytecode ; miscellaneous_bytecode_00 &6081 0d 0e 51 05 ; " and" &6085 00 ; end ; miscellaneous_bytecode_01 &6086 cc 3d ; if(p["bomb_countdown"] != 0 and &6088 98 4c ; verb != "store") &608a 01 ; { &608b 4c 3d ; p["bomb_countdown"] -- &608d 8c 04 68 ; if(p["player_room"] == &64) &6090 01 ; { &6091 0d 44 fb 4c 13 18 11 1e 17 15 23 32 31 3d 04 ; "the counter changes to p["bomb_countdown"]." &60a0 03 ; } &60a1 c4 3d ; if(p["bomb_countdown"] == 0) &60a3 01 ; { &60a4 08 69 ; player_room = &65 &60a6 04 ; return &60a7 03 ; } &60a8 03 ; } &60a9 0b 0b 41 ; object_room["all"] = &07 &60ac 00 ; end ; miscellaneous_bytecode_02 &60ad bc 04 05 ; if(p["player_room"] != p["current_room"]) &60b0 01 ; { &60b1 2c 05 06 ; p["previous_room"] = p["current_room"] &60b4 03 ; } &60b5 2c 04 05 ; p["current_room"] = p["player_room"] &60b8 4f ; room.flags[4] = true &60b9 c4 07 ; if(p["recognised_words"] == 0) &60bb 01 ; { &60bc 84 08 07 ; if(p["total_words"] < &03) &60bf 01 ; { &60c0 0d a1 07 05 ; "what? " &60c4 03 ; } ; else &60c5 01 ; { &60c6 0d 2b 06 60 fa 38 47 fa 39 05 fb 68 fe 1f 23 19 ; "" + random("your meaning is unclear", "please use &60d6 1d 20 1c 15 22 fb 48 05 04 04 ; simpler words") + "." &60e0 03 ; } &60e1 0c 06 09 ; p["output_written"] = &02 &60e4 04 ; return &60e5 03 ; } &60e6 88 46 ; if(verb == "look" and &60e8 8d 43 ; preposition == "into") &60ea 01 ; { &60eb 0c 47 10 ; p["verb"] = "search" &60ee 14 14 ; p["verb_type"] = 0 &60f0 03 ; } &60f1 88 46 ; if(verb == "look" and &60f3 8d 42 ; preposition == "at") &60f5 01 ; { &60f6 0c 3e 10 ; p["verb"] = "examine" &60f9 14 14 ; p["verb_type"] = 0 &60fb 03 ; } &60fc 88 1a 02 ; if(verb == "take" or &60ff 88 26 ; verb == "drop") &6101 01 ; { &6102 8c 08 05 ; if(p["total_words"] == &01) &6105 01 ; { &6106 0c 41 11 ; p["first_noun"] = "all:= &3d" &6109 03 ; } &610a 03 ; } &610b 88 4e 02 ; if(verb == "climb" or &610e 88 1a ; verb == "take") &6110 01 ; { &6111 8d 4a ; if(preposition == "down") &6113 01 ; { &6114 0c 0f 10 ; p["verb"] = "down" &6117 0c 05 14 ; p["verb_type"] = &01 &611a 03 ; } &611b 8d 43 ; if(preposition == "into") &611d 01 ; { &611e 0c 12 10 ; p["verb"] = "enter" &6121 03 ; } &6122 8d 49 ; if(preposition == "out") &6124 01 ; { &6125 0c 11 10 ; p["verb"] = "exit" &6128 0c 05 14 ; p["verb_type"] = &01 &612b 03 ; } &612c 03 ; } &612d 88 4e ; if(verb == "climb" and &612f 9d 4a 02 ; preposition != "down" or &6132 88 1a ; verb == "take" and &6134 8d 47 02 ; preposition == "up" or &6137 88 38 ; verb == "stand" and &6139 8d 45 ; preposition == "onto") &613b 01 ; { &613c 0c 10 10 ; p["verb"] = "up" &613f 03 ; } &6140 c1 ; if(first_noun == 0 and &6141 ca ; second_noun != 0) &6142 01 ; { &6143 2c 12 11 ; p["first_noun"] = p["second_noun"] &6146 14 12 ; p["second_noun"] = 0 &6148 2c 16 15 ; p["first_noun_type"] = p["second_noun_type"] &614b 14 16 ; p["second_noun_type"] = 0 &614d 03 ; } &614e 8c 15 0a ; if(p["first_noun_type"] == &06) &6151 01 ; { &6152 2c 19 11 ; p["first_noun"] = p["previous_first_noun"] &6155 2c 1d 15 ; p["first_noun_type"] = p["previous_first_noun_type"] &6158 03 ; } &6159 89 41 ; if(first_noun == "all" and &615b 98 1a ; verb != "take" and &615d 98 26 ; verb != "drop") &615f 01 ; { &6160 0d fb 68 37 fa 5b 04 ; "please be specific." &6167 0c 06 09 ; p["output_written"] = &02 &616a 04 ; return &616b 03 ; } &616c c0 ; if(verb == 0 and &616d c9 ; first_noun != 0 and &616e cc 18 ; p["previous_verb"] != 0) &6170 01 ; { &6171 2c 18 10 ; p["verb"] = p["previous_verb"] &6174 2c 1b 13 ; p["preposition"] = p["previous_preposition"] &6177 2c 1a 12 ; p["second_noun"] = p["previous_second_noun"] &617a 03 ; } &617b 2c 10 18 ; p["previous_verb"] = p["verb"] &617e 2c 11 19 ; p["previous_first_noun"] = p["first_noun"] &6181 2c 12 1a ; p["previous_second_noun"] = p["second_noun"] &6184 2c 13 1b ; p["previous_preposition"] = p["preposition"] &6187 c0 ; if(verb == 0) &6188 01 ; { &6189 c1 ; if(first_noun == 0) &618a 01 ; { &618b 0d fb 68 37 71 15 28 20 1c 19 13 19 24 04 ; "please be more explicit." &6199 04 ; return &619a 03 ; } &619b 89 44 ; if(first_noun == "them") &619d 01 ; { &619e 0d a1 07 05 ; "what? " &61a2 0c 06 09 ; p["output_written"] = &02 &61a5 04 ; return &61a6 03 ; } &61a7 e1 02 ; if(object_room[first_noun] == player_room or &61a9 d9 02 ; object_room[first_noun] == "carrying" or &61ab d1 02 ; object_room[first_noun] == "wearing" or &61ad e9 0b ; object_room[first_noun] == &07) &61af 01 ; { &61b0 0d a1 33 42 fc 23 32 33 78 44 05 ; "what do you want to do with the" &61bb 1d ; print first_noun &61bc 0d 07 05 ; "? " &61bf 03 ; } ; else &61c0 01 ; { &61c1 99 41 ; if(first_noun != "all") &61c3 01 ; { &61c4 0d a1 05 ; "what" &61c7 1d ; print first_noun &61c8 0d 07 05 ; "? " &61cb 03 ; } &61cc 03 ; } &61cd 0c 06 09 ; p["output_written"] = &02 &61d0 04 ; return &61d1 03 ; } &61d2 c4 14 ; if(p["verb_type"] == 0 and &61d4 c1 ; first_noun == 0) &61d5 01 ; { &61d6 15 ; print verb &61d7 cd ; if(preposition != 0) &61d8 01 ; { &61d9 2d ; print preposition &61da 03 ; } &61db 0d a1 07 05 ; "what? " &61df 0c 07 09 ; p["output_written"] = &03 &61e2 04 ; return &61e3 03 ; } &61e4 94 14 05 ; if(p["verb_type"] > &01 and &61e7 84 14 0b ; p["verb_type"] < &07 and &61ea c9 ; first_noun != 0) &61eb 01 ; { &61ec 0d a1 33 42 fb 14 07 05 ; "what do you mean? " &61f4 0c 06 09 ; p["output_written"] = &02 &61f7 04 ; return &61f8 03 ; } &61f9 c9 ; if(first_noun != 0 and &61fa 98 20 ; verb != "ask") &61fc 01 ; { &61fd e1 02 ; if(object_room[first_noun] == player_room or &61ff d9 02 ; object_room[first_noun] == "carrying" or &6201 d1 02 ; object_room[first_noun] == "wearing" or &6203 e9 0b ; object_room[first_noun] == &07) &6205 01 ; { &6206 4f ; room.flags[4] = true &6207 03 ; } ; else &6208 01 ; { &6209 0d a1 05 ; "what" &620c 1d ; print first_noun &620d 0d 07 05 ; "? " &6210 0c 06 09 ; p["output_written"] = &02 &6213 04 ; return &6214 03 ; } &6215 03 ; } &6216 ca ; if(second_noun != 0 and &6217 98 20 ; verb != "ask") &6219 01 ; { &621a e2 02 ; if(object_room[second_noun] == player_room or &621c da 02 ; object_room[second_noun] == "carrying" or &621e d2 02 ; object_room[second_noun] == "wearing" or &6220 ea 0b ; object_room[second_noun] == &07) &6222 01 ; { &6223 4f ; room.flags[4] = true &6224 03 ; } ; else &6225 01 ; { &6226 0d a1 05 ; "what" &6229 25 ; print second_noun &622a 0d 07 05 ; "? " &622d 0c 06 09 ; p["output_written"] = &02 &6230 04 ; return &6231 03 ; } &6232 03 ; } &6233 88 25 ; if(verb == "place") &6235 01 ; { &6236 8d 45 ; if(preposition == "onto" and &6238 c2 ; second_noun == 0) &6239 01 ; { &623a 0c 34 10 ; p["verb"] = "wear" &623d 03 ; } &623e 8d 43 ; if(preposition == "into") &6240 01 ; { &6241 0c 37 10 ; p["verb"] = "insert" &6244 03 ; } &6245 03 ; } &6246 88 1a ; if(verb == "take" and &6248 8d 48 ; preposition == "off" and &624a c2 ; second_noun == 0) &624b 01 ; { &624c 0c 24 10 ; p["verb"] = "doff" &624f 03 ; } &6250 8c 14 0b ; if(p["verb_type"] == &07) &6253 01 ; { &6254 04 ; return &6255 03 ; } &6256 cc 34 ; if(p["fuse_is_lit"] != 0) &6258 01 ; { &6259 8c 04 2a ; if(p["player_room"] == &26) &625c 01 ; { &625d 14 34 ; p["fuse_is_lit"] = 0 &625f 04 ; return &6260 03 ; } &6261 44 34 ; p["fuse_is_lit"] ++ &6263 8c 34 0d ; if(p["fuse_is_lit"] == &09) &6266 01 ; { &6267 0d 34 fa f1 fa 7f 22 1f 13 1b 23 44 8f 05 ; "a tremendous explosion rocks the camp" &6275 8c 04 32 02 ; if(p["player_room"] == &2e or &6279 8c 04 31 ; p["player_room"] == &2d) &627c 01 ; { &627d 0d 0b 1b 19 1c 1c 19 1e 17 42 fa 5c 04 ; ", killing you outright." &628a 08 09 ; player_room = &05 &628c 04 ; return &628d 03 ; } &628e 0d 06 fb 07 23 24 11 22 24 dd f9 45 06 fc cb 16 ; ". Men start running everywhere. Debris flies through the &629e 1c 19 15 23 fa 74 44 fc 16 0b 51 5e fc c6 fb 67 ; air, and some heavy object hits you on the back of the &62ae fc 52 42 38 44 8e 43 44 97 06 42 fa 3a f9 68 35 ; head. You recover consciousness in surroundings that are &62be f9 5f 77 45 89 5c fc cd 04 ; all too familiar." &62c7 08 2a ; player_room = &26 &62c9 44 09 ; p["output_written"] ++ &62cb 14 34 ; p["fuse_is_lit"] = 0 &62cd 44 20 ; p["score"] ++ &62cf 04 ; return &62d0 03 ; } &62d1 8c 34 16 ; if(p["fuse_is_lit"] == &12) &62d4 01 ; { &62d5 08 7b ; player_room = &77 &62d7 04 ; return &62d8 03 ; } &62d9 03 ; } &62da 00 ; end ; miscellaneous_bytecode_03 &62db bc 05 04 ; if(p["current_room"] != p["player_room"]) &62de 01 ; { &62df 56 ; execute_bytecode_for_room() &62e0 ef ; if(room.flags[6] and &62e1 cc 0a ; p["number_of_objects_in_player_room"] != 0) &62e3 01 ; { &62e4 0d 2d 2b 06 7c 47 05 42 86 05 04 0e 05 ; "\n" + random("There is", "you find") + " " &62f1 2c 04 0b ; p["old_room"] = p["player_room"] &62f4 2c 04 0c ; p["new_room"] = p["player_room"] &62f7 06 ; list_objects(p["old_room"]. p["new_room"]) &62f8 0d 0e 4f 04 ; " here." &62fc 03 ; } &62fd 03 ; } &62fe 00 ; end ; end_of_bytecode ; unused &62ff 00 ; process_saved_objects &6300 ad 00 09 LDA &0900 ; score_for_special_file &6303 8d 5c 09 STA &095c ; initial_parameters + &1c (score) &6306 8d 5c 06 STA &065c ; parameters + &1c (score) &6309 a2 14 LDX #&14 ; process_saved_objects_loop &630b bd 00 09 LDA &0900,X ; initial_object_room &630e c9 02 CMP #&02 &6310 90 0a BCC &631c ; set_object_room # Branch if wearing or carrying object &6312 c9 5a CMP #&5a ; "in the middle of the Tardis control room" in part A &6314 d0 04 BNE &631a ; remove_object &6316 a9 08 LDA #&08 ; "in the middle of the Tardis control room" in part B &6318 d0 02 BNE &631c ; set_object_room ; remove_object &631a a9 06 LDA #&06 # Remove object if not worn, carried or in control room ; set_object_room &631c 9d 00 09 STA &0900,X ; initial_object_room &631f 9d 00 06 STA &0600,X ; object_room &6322 ca DEX &6323 d0 e6 BNE &630b ; process_saved_objects_loop &6325 60 RTS ; unused &6326 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6336 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6346 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6356 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6366 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6376 00 00 00 00 00 00 00 00 00 00 ; unused &6380 44 6f 63 74 6f 72 20 57 68 6f 20 61 6e 64 20 74 "Doctor Who and t" &6390 68 65 20 57 61 72 6c 6f 72 64 2c 20 50 61 72 74 "he Warlord, Part" &63a0 20 42 2e 20 28 43 29 20 43 68 65 73 73 66 69 65 " B. (C) Chessfie" &63b0 6c 64 20 4d 69 63 72 6f 67 61 6d 65 73 20 28 31 "ld Microgames (1" &63c0 39 38 34 29 "984)" ; unused &63c4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63d4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63e4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &63f4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6404 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6414 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6424 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &6434 00 00 00 00 00 00 00 00 00 ; secondary_dictionary_one &643d 6d 64 00 ; 0 words of length 1 &6440 6d 64 00 ; 12 words of length 2, starting at &646d &6443 85 64 0c ; 16 words of length 3, starting at &6485 &6446 b5 64 1c ; 0 words of length 4 &6449 b5 64 1c ; 0 words of length 5 &644c b5 64 1c ; 0 words of length 6 &644f b5 64 1c ; 37 words of length 7, starting at &64b5 &6452 b8 65 41 ; 26 words of length 8, starting at &65b8 &6455 88 66 5b ; 8 words of length 9, starting at &6688 &6458 d0 66 63 ; 1 words of length 10, starting at &66d0 &645b da 66 64 ; 0 words of length 11 &645e da 66 64 ; 0 words of length 12 &6461 da 66 64 ; 0 words of length 13 &6464 da 66 64 ; 0 words of length 14 &6467 da 66 64 &646a 00 0d 53 &646d 70 07 ; &f9 &05 : pig &646f d3 19 ; &f9 &06 : sty &6471 a1 0d ; &f9 &07 : arm &6473 4c 04 ; &f9 &08 : led &6475 22 04 ; &f9 &09 : bad &6477 82 19 ; &f9 &0a : boy &6479 24 19 ; &f9 &0b : day &647b 66 14 ; &f9 &0c : fit &647d 8e 12 ; &f9 &0d : nor &647f 4d 14 ; &f9 &0e : met &6481 62 14 ; &f9 &0f : bit &6483 70 0e ; &f9 &10 : pin &6485 53 d4 45 ; &f9 &11 : settee &6488 26 cc a5 ; &f9 &12 : falter &648b b0 e9 43 ; &f9 &13 : prince &648e 53 56 52 ; &f9 &14 : severe &6491 2c d4 a5 ; &f9 &15 : latter &6494 2c 54 d3 ; &f9 &16 : latest &6497 30 32 44 ; &f9 &17 : parade &649a 04 15 07 ; &f9 &18 : dug &649d 44 73 e7 ; &f9 &19 : design &64a0 90 f5 43 ; &f9 &1a : pounce &64a3 82 f5 43 ; &f9 &1b : bounce &64a6 53 a3 c5 ; &f9 &1c : secret &64a9 73 4c ce ; &f9 &1d : silent &64ac 92 34 54 ; &f9 &1e : rotate &64af 70 a5 43 ; &f9 &1f : pierce &64b2 52 73 d3 ; &f9 &20 : resist &64b5 48 92 09 23 0c 0c 19 ; &f9 &21 : heroically &64bc 06 6c 03 4b 72 0e 07 ; &f9 &22 : flickering &64c3 09 0d 90 13 73 02 4c ; &f9 &23 : impossible &64ca 01 07 a7 05 13 73 ef ; &f9 &24 : aggression &64d1 52 13 50 c3 01 02 4c ; &f9 &25 : respectable &64d8 83 0d 2d 0e 44 12 13 ; &f9 &26 : commanders &64df 01 10 b0 0f b0 29 54 ; &f9 &27 : appropriate &64e6 01 c6 a5 37 12 04 13 ; &f9 &28 : afterwards &64ed e9 54 b2 0f 27 54 04 ; &f9 &29 : interrogated &64f4 14 48 0d 53 0c 56 13 ; &f9 &2a : themselves &64fb 07 35 12 04 88 15 53 ; &f9 &2b : guardhouse &6502 09 0d b0 05 23 74 ef ; &f9 &2c : imprecation &6509 11 55 d3 89 6e 0e 07 ; &f9 &2d : questioning &6510 0f d5 2c 0e 64 13 08 ; &f9 &2e : outlandish &6517 07 35 12 04 13 4d 0e ; &f9 &2f : guardsmen &651e 66 0e 47 f2 61 0c 13 ; &f9 &30 : fingernails &6525 22 03 0b 37 12 04 13 ; &f9 &31 : backwards &652c 09 0d b0 09 93 4e 04 ; &f9 &32 : imprisoned &6533 05 56 ce 35 0c 0c 19 ; &f9 &33 : eventually &653a c1 0f 6d 23 0c 0c 19 ; &f9 &34 : atomically &6541 44 13 a3 09 d0 89 0e ; &f9 &35 : description &6548 01 13 33 13 73 0e 13 ; &f9 &36 : assassins &654f 14 a8 0f 15 07 88 d5 ; &f9 &37 : throughout &6556 f5 b4 e1 13 2c 54 04 ; &f9 &38 : untranslated &655d e9 13 a3 09 d0 89 0e ; &f9 &39 : inscription &6564 4d 13 53 0e 47 12 13 ; &f9 &3a : messengers &656b 05 06 66 63 e5 03 19 ; &f9 &3b : efficiency &6572 64 33 10 50 a1 e9 07 ; &f9 &3c : disappearing &6579 b4 e1 13 90 d2 05 04 ; &f9 &3d : transported &6580 64 01 10 a8 01 07 0d ; &f9 &3e : diaphragm &6587 13 15 07 47 d3 89 0e ; &f9 &3f : suggestion &658e 01 04 56 ce b5 05 13 ; &f9 &40 : adventures &6595 05 56 12 d9 68 0e 07 ; &f9 &41 : everything &659c b4 01 56 0c 6c 0e 07 ; &f9 &42 : travelling &65a3 93 d5 08 37 12 04 13 ; &f9 &43 : southwards &65aa a6 09 07 c8 e5 05 04 ; &f9 &44 : frightened &65b1 05 56 12 19 17 48 52 ; &f9 &45 : everywhere &65b8 2e 74 ef 01 6c 74 05 13 ; &f9 &46 : nationalities &65c0 03 48 a5 06 15 0c 0c 19 ; &f9 &47 : cheerfully &65c8 23 0e 04 4c d3 09 03 0b ; &f9 &48 : candlestick &65d0 13 15 13 70 63 0f 15 13 ; &f9 &49 : suspicious &65d8 09 0c 0c 00 66 d4 e9 07 ; &f9 &4a : ill-fitting &65e0 f5 83 0e 13 63 0f 15 13 ; &f9 &4b : unconscious &65e8 48 01 04 11 35 d2 a5 13 ; &f9 &4c : headquarters &65f0 72 03 08 8d 0e 04 1f 13 ; &f9 &4d : richmond's &65f8 f5 11 55 0e 03 28 02 4c ; &f9 &4e : unquenchable &6600 83 0e 53 11 55 0e 43 13 ; &f9 &4f : consequences &6608 52 11 75 73 74 ef 05 04 ; &f9 &50 : requisitioned &6610 13 6b 12 6d 13 48 12 13 ; &f9 &51 : skirmishers &6618 13 28 12 10 13 88 cf a5 ; &f9 &52 : sharpshooter &6620 f5 86 d2 f5 c1 05 0c 19 ; &f9 &53 : unfortunately &6628 01 13 33 13 73 2e 54 04 ; &f9 &54 : assassinated &6630 b4 01 56 0c 4c 12 13 1f ; &f9 &55 : travellers' &6638 05 d8 32 af 64 2e 12 19 ; &f9 &56 : extraordinary &6640 f5 47 ce 4c 2d 0e 0c 19 ; &f9 &57 : ungentlemanly &6648 a6 0f 07 2d 12 03 48 04 ; &f9 &58 : frogmarched &6650 44 13 30 14 03 68 0e 07 ; &f9 &59 : despatching &6658 83 0e d3 12 15 c3 05 04 ; &f9 &5a : constructed &6660 09 0d 4d 64 c1 05 0c 19 ; &f9 &5b : immediately &6668 53 6d a0 05 d0 09 6c e1 ; &f9 &5c : semi-reptilian &6670 13 10 0c d5 54 72 0e 07 ; &f9 &5d : spluttering &6678 05 18 43 0c 4c ce 0c 19 ; &f9 &5e : excellently &6680 13 b5 92 f5 64 0e 07 13 ; &f9 &5f : surroundings &6688 14 a8 25 54 6e 0e 07 0c 19 ; &f9 &60 : threateningly &6691 14 57 ce 19 00 86 b5 14 08 ; &f9 &61 : twenty-fourth &669a 02 2c 0e 03 68 13 53 72 05 ; &f9 &62 : blanchisserie &66a3 13 19 0d 30 14 68 53 12 13 ; &f9 &63 : sympathisers &66ac 22 03 0b 13 2c 10 70 0e 07 ; &f9 &64 : backslapping &66b5 62 0f 00 4d 03 28 6e 23 0c ; &f9 &65 : bio-mechanical &66be 83 0e a7 c1 15 2c 74 ef 13 ; &f9 &66 : congratulations &66c7 01 03 63 44 ce 01 0c 0c 19 ; &f9 &67 : accidentally &66d0 83 0e 13 63 0f 15 f3 05 13 13 ; &f9 &68 : consciousness ; secondary_dictionary_two &66da 0a 67 00 ; 0 words of length 1 &66dd 0a 67 00 ; 0 words of length 2 &66e0 0a 67 00 ; 0 words of length 3 &66e3 0a 67 00 ; 54 words of length 4, starting at &670a &66e6 e2 67 36 ; 34 words of length 5, starting at &67e2 &66e9 8c 68 58 ; 135 words of length 6, starting at &688c &66ec b6 6b df ; 27 words of length 7, starting at &6bb6 &66ef 73 6c fa ; 0 words of length 8 &66f2 73 6c fa ; 0 words of length 9 &66f5 73 6c fa ; 0 words of length 10 &66f8 73 6c fa ; 0 words of length 11 &66fb 73 6c fa ; 0 words of length 12 &66fe 73 6c fa ; 0 words of length 13 &6701 73 6c fa ; 0 words of length 14 &6704 73 6c fa &6707 00 49 4e &670a 57 0c 83 4d ; &fa &05 : welcome &670e 42 a1 e9 07 ; &fa &06 : bearing &6712 e9 d3 25 04 ; &fa &07 : instead &6716 4c e1 e9 07 ; &fa &08 : leaning &671a 30 74 e5 14 ; &fa &09 : patient &671e 37 c9 e9 07 ; &fa &0a : waiting &6722 a4 f5 4b 0e ; &fa &0b : drunken &6726 f3 af e9 07 ; &fa &0c : snoring &672a 0f d5 73 44 ; &fa &0d : outside &672e b0 05 53 ce ; &fa &0e : present &6732 4c a1 4e 04 ; &fa &0f : learned &6736 e5 54 52 04 ; &fa &10 : entered &673a 13 b5 26 43 ; &fa &11 : surface &673e 42 83 4d 13 ; &fa &12 : becomes &6742 76 c3 af 19 ; &fa &13 : victory &6746 52 8d 56 13 ; &fa &14 : removes &674a 50 a5 e9 07 ; &fa &15 : peering &674e 83 0e 43 f2 ; &fa &16 : concern &6752 f5 4b 0d d0 ; &fa &17 : unkempt &6756 88 57 56 12 ; &fa &18 : however &675a 22 d4 4c 13 ; &fa &19 : battles &675e 32 0d 30 47 ; &fa &1a : rampage &6762 47 4e 32 0c ; &fa &1b : general &6766 30 d2 49 13 ; &fa &1c : parties &676a 82 f5 43 13 ; &fa &1d : bounces &676e 52 a1 e9 07 ; &fa &1e : rearing &6772 44 63 44 13 ; &fa &1f : decides &6776 64 d3 e1 14 ; &fa &20 : distant &677a 52 43 09 56 ; &fa &21 : receive &677e 83 0d 4d ce ; &fa &22 : comment &6782 d3 a1 e9 07 ; &fa &23 : staring &6786 36 23 54 04 ; &fa &24 : vacated &678a 10 2c 94 ef ; &fa &25 : platoon &678e 86 52 09 e7 ; &fa &26 : foreign &6792 a1 72 56 13 ; &fa &27 : arrives &6796 88 d3 09 4c ; &fa &28 : hostile &679a 4e c9 48 12 ; &fa &29 : neither &679e 66 07 c8 a5 ; &fa &2a : fighter &67a2 13 28 d4 a5 ; &fa &2b : shatter &67a6 6d d3 01 4b ; &fa &2c : mistake &67aa 47 d4 e9 07 ; &fa &2d : getting &67ae 53 12 36 ce ; &fa &2e : servant &67b2 a6 e1 43 13 ; &fa &2f : frances &67b6 57 02 d3 a5 ; &fa &30 : webster &67ba 8d 0e d3 a5 ; &fa &31 : monster &67be 53 56 52 04 ; &fa &32 : severed &67c2 97 b2 49 04 ; &fa &33 : worried &67c6 92 34 54 13 ; &fa &34 : rotates &67ca 44 13 30 a9 ; &fa &35 : despair &67ce d3 72 4b 13 ; &fa &36 : strikes &67d2 b0 0f 96 4b ; &fa &37 : provoke &67d6 4d e1 e9 07 ; &fa &38 : meaning &67da f5 03 4c a1 ; &fa &39 : unclear &67de 52 83 56 12 ; &fa &3a : recover &67e2 64 b3 15 d0 13 ; &fa &3b : disrupts &67e7 a4 01 07 47 04 ; &fa &3c : dragged &67ec e9 8e 43 0e 43 ; &fa &3d : innocence &67f1 08 f5 a4 05 04 ; &fa &3e : hundred &67f6 a1 52 d3 05 04 ; &fa &3f : arrested &67fb 2d 88 27 0e 19 ; &fa &40 : mahogany &6800 52 01 03 48 13 ; &fa &41 : reaches &6805 73 44 37 19 13 ; &fa &42 : sideways &680a 30 13 33 47 13 ; &fa &43 : passages &680f 36 0c 35 02 4c ; &fa &44 : valuable &6814 11 35 d2 a5 13 ; &fa &45 : quarters &6819 47 ce 4c 4d 0e ; &fa &46 : gentlemen &681e 54 b2 09 02 4c ; &fa &47 : terrible &6823 48 73 34 54 13 ; &fa &48 : hesitates &6828 b7 c9 68 0e 07 ; &fa &49 : writhing &682d 2c 15 07 08 13 ; &fa &4a : laughs &6832 f5 09 56 12 53 ; &fa &4b : universe &6837 83 ee 05 c3 af ; &fa &4c : connector &683c 53 83 0e 04 13 ; &fa &4d : seconds &6841 66 6c 0e 07 13 ; &fa &4e : filings &6846 86 52 73 07 c8 ; &fa &4f : foresight &684b e9 11 75 52 13 ; &fa &50 : inquires &6850 c1 54 0d d0 13 ; &fa &51 : attempts &6855 52 56 01 4c 04 ; &fa &52 : revealed &685a 14 88 15 07 c8 ; &fa &53 : thought &685f 83 ce 01 c3 13 ; &fa &54 : contacts &6864 4e d5 72 8e 13 ; &fa &55 : neutrinos &6869 56 0e 47 e1 43 ; &fa &56 : vengeance &686e 0a 75 63 05 d3 ; &fa &57 : juiciest &6873 66 6e 13 48 13 ; &fa &58 : finishes &6878 36 6e 13 48 13 ; &fa &59 : vanishes &687d d3 01 0c 6c ef ; &fa &5a : stallion &6882 13 50 63 66 03 ; &fa &5b : specific &6887 0f d5 72 07 c8 ; &fa &5c : outright &688c 83 0d 10 4c 54 04 ; &fa &5d : completed &6892 03 28 12 4c 92 09 ; &fa &5e : charleroi &6898 01 10 b0 2f 03 08 ; &fa &5f : approach &689e 01 22 0e 84 4e 04 ; &fa &60 : abandoned &68a4 0f d5 77 d4 05 04 ; &fa &61 : outwitted &68aa 0d d5 54 72 0e 07 ; &fa &62 : muttering &68b0 93 4d 14 68 0e 07 ; &fa &63 : something &68b6 0f d5 13 6b d2 13 ; &fa &64 : outskirts &68bc 03 28 d4 a5 e9 07 ; &fa &65 : chattering &68c2 93 0c 64 a5 13 1f ; &fa &66 : soldiers' &68c8 a2 15 13 53 0c 13 ; &fa &67 : brussels &68ce 57 d3 37 12 04 13 ; &fa &68 : westwards &68d4 62 96 35 03 4b 04 ; &fa &69 : bivouacked &68da 07 35 12 04 90 d3 ; &fa &6a : guardpost &68e0 e5 23 0d 10 4d ce ; &fa &6b : encampment &68e6 09 0c 4c 67 02 4c ; &fa &6c : illegible &68ec 0f 06 66 43 12 13 ; &fa &6d : officers &68f2 44 2d 0e 64 0e 07 ; &fa &6e : demanding &68f8 42 0c 6c 47 52 ce ; &fa &6f : belligerent &68fe 87 13 53 6c 05 13 ; &fa &70 : gosselies &6904 50 12 6d 13 73 ef ; &fa &71 : permission &690a 11 55 d3 89 4e 04 ; &fa &72 : questioned &6910 64 13 83 56 12 13 ; &fa &73 : discovers &6916 14 a8 0f 15 07 08 ; &fa &74 : through &691c 52 01 03 68 0e 07 ; &fa &75 : reaching &6922 37 14 03 68 0e 07 ; &fa &76 : watching &6928 01 0e 50 a1 e1 43 ; &fa &77 : anpearance &692e 13 b5 92 f5 44 04 ; &fa &78 : surrounded &6934 02 75 0c 64 0e 07 ; &fa &79 : building &693a a4 01 87 ef 1f 13 ; &fa &7a : dragoon's &6940 13 0c 15 0d 50 04 ; &fa &7b : slumped &6946 03 75 32 13 73 a5 ; &fa &7c : cuirassier &694c 2e 90 4c ef 1f 13 ; &fa &7d : napoleon's &6952 48 0e 03 08 2d 0e ; &fa &7e : henchman &6958 05 18 10 8c 73 ef ; &fa &7f : explosion &695e 13 88 15 0c 44 12 ; &fa &80 : shoulder &6964 17 68 13 50 12 13 ; &fa &81 : whispers &696a 0f b5 53 0c 56 13 ; &fa &82 : ourselves &6970 54 0d 90 32 12 19 ; &fa &83 : temporary &6976 05 13 83 d2 05 04 ; &fa &84 : escorted &697c 83 0e 73 44 52 04 ; &fa &85 : considered &6982 09 0d 90 d2 e1 14 ; &fa &86 : important &6988 83 f5 b4 19 73 44 ; &fa &87 : countryside &698e e5 03 8c 13 b5 05 ; &fa &88 : enclosure &6994 64 d3 e9 c3 0c 19 ; &fa &89 : distinctly &699a 44 66 6e 54 0c 19 ; &fa &8a : definitely &69a0 57 0c 6c 0e c7 ef ; &fa &8b : wellington &69a6 64 33 10 50 a1 13 ; &fa &8c : disappears &69ac 65 07 c8 45 ce 08 ; &fa &8d : eighteenth &69b2 22 d4 4c 13 43 4e ; &fa &8e : battlescene &69b8 13 50 01 6b 0e 07 ; &fa &8f : speaking &69be 05 76 44 ce 0c 19 ; &fa &90 : evidently &69c4 64 52 c3 89 0e 13 ; &fa &91 : directions &69ca 99 b5 53 0c 56 13 ; &fa &92 : yourselves &69d0 24 12 eb 05 13 13 ; &fa &93 : darkness &69d6 86 0c 8c 77 0e 07 ; &fa &94 : following &69dc a3 25 14 b5 05 13 ; &fa &95 : creatures &69e2 83 0e 06 15 73 ef ; &fa &96 : confusion &69e8 a2 09 07 c8 0c 19 ; &fa &97 : brightly &69ee a2 25 14 68 0e 07 ; &fa &98 : breathing &69f4 77 f4 05 13 53 04 ; &fa &99 : witnessed &69fa 13 28 12 50 4e 04 ; &fa &9a : sharpened &6a00 50 12 46 c3 89 0e ; &fa &9b : perfection &6a06 83 0e a6 ef 54 04 ; &fa &9c : confronted &6a0c 05 d8 a5 6d 2e 54 ; &fa &9d : exterminate &6a12 44 36 d3 c1 05 13 ; &fa &9e : devastates &6a18 83 0c 2c 10 53 13 ; &fa &9f : collapses &6a1e f5 44 73 32 02 4c ; &fa &a0 : undesirable &6a24 2e 90 4c ef 09 03 ; &fa &a1 : napoleonic &6a2a b4 25 03 48 12 19 ; &fa &a2 : treachery &6a30 0d 15 13 4b 14 13 ; &fa &a3 : muskets &6a36 23 ee ef 22 0c 0c ; &fa &a4 : cannonball &6a3c 83 f2 66 05 0c 04 ; &fa &a5 : cornfield &6a42 26 12 0d 88 15 53 ; &fa &a6 : farmhouse &6a48 90 e9 14 4c 13 13 ; &fa &a7 : pointless &6a4e a1 74 0c 4c 12 19 ; &fa &a8 : artillery &6a54 44 6c 63 0f 15 13 ; &fa &a9 : delicious &6a5a 64 06 66 03 15 cc ; &fa &aa : difficult &6a60 52 37 12 64 0e 07 ; &fa &ab : rewarding &6a66 01 04 56 ce b5 05 ; &fa &ac : adventure &6a6c 52 2d 12 6b 0e 07 ; &fa &ad : remarking &6a72 a7 45 74 0e 07 13 ; &fa &ae : greetings &6a78 52 2d 12 2b 02 4c ; &fa &af : remarkable &6a7e 73 e7 09 66 23 ce ; &fa &b0 : significant &6a84 01 10 50 a1 e9 07 ; &fa &b1 : appearing &6a8a 66 0e 47 72 0e 07 ; &fa &b2 : fingering &6a90 e9 13 50 c3 e9 07 ; &fa &b3 : inspecting &6a96 64 13 42 6c 05 06 ; &fa &b4 : disbelief &6a9c 03 8c 14 68 0e 07 ; &fa &b5 : clothing &6aa2 e9 54 b2 0f 27 54 ; &fa &b6 : interrogate &6aa8 36 27 82 0e 04 13 ; &fa &b7 : vagabonds &6aae 05 58 03 d5 05 04 ; &fa &b8 : executed &6ab4 05 18 43 0c 4c ce ; &fa &b9 : excellent &6aba a6 e5 03 08 4d 0e ; &fa &ba : frenchmen &6ac0 0d b5 44 72 0e 07 ; &fa &bb : murdering &6ac6 13 2c 15 07 c8 a5 ; &fa &bc : slaughter &6acc e9 d3 e1 14 0c 19 ; &fa &bd : instantly &6ad2 52 83 e7 09 53 13 ; &fa &be : recognises &6ad8 d3 01 07 47 12 13 ; &fa &bf : staggers &6ade c1 54 ce 89 0e 13 ; &fa &c0 : attentions &6ae4 6c 05 d5 e5 e1 14 ; &fa &c1 : lieutenant &6aea 52 a1 52 d3 05 04 ; &fa &c2 : rearrested &6af0 52 e9 86 12 43 04 ; &fa &c3 : reinforced &6af6 52 56 01 6c 0e 07 ; &fa &c4 : revealing &6afc a6 e5 03 08 2d 0e ; &fa &c5 : frenchman &6b02 f5 25 d2 08 0c 19 ; &fa &c6 : unearthly &6b08 83 0e d3 c9 55 ce ; &fa &c7 : constituent &6b0e a7 e5 01 64 a5 13 ; &fa &c8 : grenadiers &6b14 05 4c 4d ce a1 19 ; &fa &c9 : elementary &6b1a 30 d2 09 03 4c 13 ; &fa &ca : particles &6b20 d3 52 01 6d 0e 07 ; &fa &cb : streaming &6b26 64 b3 15 d0 05 04 ; &fa &cc : disrupted &6b2c 2d 4c 96 4c 0e 43 ; &fa &cd : malevolence &6b32 b0 cf 05 d3 e9 07 ; &fa &ce : protesting &6b38 86 d2 08 77 14 08 ; &fa &cf : forthwith &6b3e e9 06 b5 29 54 04 ; &fa &d0 : infuriated &6b44 01 15 d3 32 6c 01 ; &fa &d1 : australia &6b4a 86 d2 19 00 66 56 ; &fa &d2 : forty-five &6b50 64 13 93 0c 56 13 ; &fa &d3 : dissolves &6b56 05 18 10 8c 44 13 ; &fa &d4 : explodes &6b5c 4d 03 28 6e 13 0d ; &fa &d5 : mechanism &6b62 64 13 8c 04 47 13 ; &fa &d6 : dislodges &6b68 05 d8 32 c3 05 04 ; &fa &d7 : extracted &6b6e e9 d3 12 15 4d ce ; &fa &d8 : instrument &6b74 44 b0 05 13 53 04 ; &fa &d9 : depressed &6b7a b0 05 63 53 0c 19 ; &fa &da : precisely &6b80 33 74 13 66 05 04 ; &fa &db : satisfied &6b86 14 a8 25 54 4e 04 ; &fa &dc : threatened &6b8c 97 0e 44 72 0e 07 ; &fa &dd : wondering &6b92 01 13 73 d3 e1 43 ; &fa &de : assistance &6b98 34 12 30 15 6c 0e ; &fa &df : tarpaulin &6b9e 05 0c 53 17 48 52 ; &fa &e0 : elsewhere &6ba4 f5 13 23 14 48 04 ; &fa &e1 : unscathed &6baa f5 b0 05 30 52 04 ; &fa &e2 : unprepared &6bb0 52 43 09 76 0e 07 ; &fa &e3 : receiving &6bb6 e9 26 ce 12 19 2d 0e ; &fa &e4 : infantryman &6bbd a3 0f 13 b3 2f 04 13 ; &fa &e5 : crossroads &6bc4 14 15 0d 02 4c 84 f7 ; &fa &e6 : tumbledown &6bcb 02 d5 03 48 12 1f 13 ; &fa &e7 : butcher's &6bd2 52 8d 0e d3 32 54 13 ; &fa &e8 : remonstrates &6bd9 e9 54 b2 0f 27 74 ef ; &fa &e9 : interrogation &6be0 e9 23 12 43 32 54 04 ; &fa &ea : incarcerated &6be7 13 a3 c1 03 68 0e 07 ; &fa &eb : scratching &6bee 86 d2 f5 c1 05 0c 19 ; &fa &ec : fortunately &6bf5 37 12 8c 12 04 1f 13 ; &fa &ed : warlord's &6bfc e9 26 ce 12 19 4d 0e ; &fa &ee : infantrymen &6c03 a9 52 44 05 2d 02 4c ; &fa &ef : irredeemable &6c0a 4d 2e 63 0e 07 0c 19 ; &fa &f0 : menacingly &6c11 b4 05 4d 0e 84 15 13 ; &fa &f1 : tremendous &6c18 8e d2 08 37 12 04 13 ; &fa &f2 : northwards &6c1f 82 2e 30 d2 05 1f 13 ; &fa &f3 : bonaparte's &6c26 82 04 19 07 35 12 04 ; &fa &f4 : bodyguard &6c2d 42 01 d5 09 06 15 0c ; &fa &f5 : beautiful &6c34 83 0e d3 e1 14 0c 19 ; &fa &f6 : constantly &6c3b 52 2d 12 2b 02 0c 19 ; &fa &f7 : remarkably &6c42 01 10 b0 2f 03 48 13 ; &fa &f8 : approaches &6c49 b0 cf 12 15 64 0e 07 ; &fa &f9 : protruding &6c50 13 10 2c d4 a5 05 04 ; &fa &fa : splattered &6c57 f5 05 18 50 c3 05 04 ; &fa &fb : unexpected &6c5e 93 d5 48 01 d3 a5 0e ; &fa &fc : southeastern &6c65 09 0d b0 05 13 53 04 ; &fa &fd : impressed &6c6c 13 15 04 44 0e 0c 19 ; &fa &fe : suddenly ; secondary_dictionary_three &6c73 a3 6c 00 ; 0 words of length 1 &6c76 a3 6c 00 ; 17 words of length 2, starting at &6ca3 &6c79 c5 6c 11 ; 31 words of length 3, starting at &6cc5 &6c7c 22 6d 30 ; 52 words of length 4, starting at &6d22 &6c7f f2 6d 64 ; 150 words of length 5, starting at &6df2 &6c82 e0 70 fa ; 0 words of length 6 &6c85 e0 70 fa ; 0 words of length 7 &6c88 e0 70 fa ; 0 words of length 8 &6c8b e0 70 fa ; 0 words of length 9 &6c8e e0 70 fa ; 0 words of length 10 &6c91 e0 70 fa ; 0 words of length 11 &6c94 e0 70 fa ; 0 words of length 12 &6c97 e0 70 fa ; 0 words of length 13 &6c9a e0 70 fa ; 0 words of length 14 &6c9d e0 70 fa &6ca0 00 00 00 &6ca3 30 d2 ; &fb &05 : part &6ca5 4e a1 ; &fb &06 : near &6ca7 4d 0e ; &fb &07 : men &6ca9 32 e9 ; &fb &08 : rain &6cab 8c 14 ; &fb &09 : lot &6cad 77 44 ; &fb &0a : wide &6caf 64 0d ; &fb &0b : dim &6cb1 05 59 ; &fb &0c : eye &6cb3 6c 14 ; &fb &0d : lit &6cb5 8d ce ; &fb &0e : mont &6cb7 4a e1 ; &fb &0f : jean &6cb9 8d 56 ; &fb &10 : move &6cbb 94 10 ; &fb &11 : top &6cbd 46 a1 ; &fb &12 : fear &6cbf 64 05 ; &fb &13 : die &6cc1 4d e1 ; &fb &14 : mean &6cc3 54 a1 ; &fb &15 : tear &6cc5 57 0c 0c ; &fb &16 : well &6cc8 27 13 08 ; &fb &17 : gash &6ccb 44 01 0c ; &fb &18 : deal &6cce 13 b5 05 ; &fb &19 : sure &6cd1 73 14 13 ; &fb &1a : sits &6cd4 07 8c 17 ; &fb &1b : glow &6cd7 86 12 0d ; &fb &1c : form &6cda 44 05 10 ; &fb &1d : deep &6cdd 14 68 0e ; &fb &1e : thin &6ce0 25 03 08 ; &fb &1f : each &6ce3 30 17 13 ; &fb &20 : paws &6ce6 83 0c 04 ; &fb &21 : cold &6ce9 76 05 17 ; &fb &22 : view &6cec 63 14 19 ; &fb &23 : city &6cef a4 01 07 ; &fb &24 : drag &6cf2 01 0c 93 ; &fb &25 : also &6cf5 82 04 19 ; &fb &26 : body &6cf8 a2 01 13 ; &fb &27 : bras &6cfb 05 56 0e ; &fb &28 : even &6cfe 22 0e 07 ; &fb &29 : bang &6d01 03 d5 05 ; &fb &2a : cute &6d04 87 05 13 ; &fb &2b : goes &6d07 c9 1f 13 ; &fb &2c : it's &6d0a 6d 13 13 ; &fb &2d : miss &6d0d 10 d5 13 ; &fb &2e : puts &6d10 b4 09 10 ; &fb &2f : trip &6d13 61 0d 13 ; &fb &30 : aims &6d16 06 b5 19 ; &fb &31 : fury &6d19 04 15 d3 ; &fb &32 : dust &6d1c 30 13 13 ; &fb &33 : pass &6d1f d3 01 19 ; &fb &34 : stay &6d22 73 e7 90 d3 ; &fb &35 : signpost &6d26 93 d5 48 f2 ; &fb &36 : southern &6d2a 90 73 74 ef ; &fb &37 : position &6d2e 53 30 32 54 ; &fb &38 : separate &6d32 a6 ef 74 a5 ; &fb &39 : frontier &6d36 73 6e d3 a5 ; &fb &3a : sinister &6d3a 04 d5 03 08 ; &fb &3b : dutch &6d3e 11 35 b4 05 ; &fb &3c : quatre &6d42 42 f2 a1 04 ; &fb &3d : bernard &6d46 37 0e 44 12 ; &fb &3e : wander &6d4a 50 0f 10 4c ; &fb &3f : people &6d4e 84 05 f3 df ; &fb &40 : doesn't &6d52 23 0c 0c 13 ; &fb &41 : calls &6d56 06 d5 b5 05 ; &fb &42 : future &6d5a 8e 82 04 19 ; &fb &43 : nobody &6d5e 02 b5 0e 13 ; &fb &44 : burns &6d62 4e c1 0c 19 ; &fb &45 : neatly &6d66 90 d2 32 c9 ; &fb &46 : portrait &6d6a 01 c3 89 0e ; &fb &47 : action &6d6e 97 12 04 13 ; &fb &48 : words &6d72 8c 03 4b 04 ; &fb &49 : locked &6d76 13 70 05 13 ; &fb &4a : spies &6d7a 44 8e f5 43 ; &fb &4b : denounce &6d7e 83 f5 54 12 ; &fb &4c : counter &6d82 01 03 43 ce ; &fb &4d : accent &6d86 42 0c 67 e1 ; &fb &4e : belgian &6d8a 30 74 e5 43 ; &fb &4f : patience &6d8e 26 0c 0c 13 ; &fb &50 : falls &6d92 01 03 43 d0 ; &fb &51 : accept &6d96 23 0c 4c 04 ; &fb &52 : called &6d9a 77 14 68 0e ; &fb &53 : within &6d9e c1 0f 0d 13 ; &fb &54 : atoms &6da2 97 15 0c 04 ; &fb &55 : would &6da6 64 d3 b5 02 ; &fb &56 : disturb &6daa b0 09 93 0e ; &fb &57 : prison &6dae 42 4e c1 08 ; &fb &58 : beneath &6db2 13 50 05 04 ; &fb &59 : speed &6db6 57 01 90 0e ; &fb &5a : weapon &6dba a1 93 6e d3 ; &fb &5b : arsonist &6dbe 14 a8 0f f7 ; &fb &5c : thrown &6dc2 66 0e 04 13 ; &fb &5d : finds &6dc6 13 28 0c 0c ; &fb &5e : shall &6dca 66 0e 47 12 ; &fb &5f : finger &6dce 64 d3 e1 43 ; &fb &60 : distance &6dd2 4e 05 04 13 ; &fb &61 : needs &6dd6 44 6c 23 54 ; &fb &62 : delicate &6dda 4e d5 72 8e ; &fb &63 : neutrino &6dde 5a 2c b4 ef ; &fb &64 : zelatron &6de2 a7 01 13 13 ; &fb &65 : grass &6de6 e9 63 44 ce ; &fb &66 : incident &6dea 0f 02 4a c3 ; &fb &67 : object &6dee 10 4c 01 53 ; &fb &68 : please &6df2 13 50 63 01 0c ; &fb &69 : special &6df7 10 d5 74 0e 07 ; &fb &6a : putting &6dfc 83 ce 92 0c 13 ; &fb &6b : controls &6e01 83 02 02 4c 04 ; &fb &6c : cobbled &6e06 44 53 d2 05 04 ; &fb &6d : deserted &6e0b 88 d3 05 ac 19 ; &fb &6e : hostelry &6e10 01 a3 0f 13 13 ; &fb &6f : across &6e15 a4 05 13 53 04 ; &fb &70 : dressed &6e1a 90 f5 64 0e 07 ; &fb &71 : pounding &6e1f c1 34 03 48 04 ; &fb &72 : attached &6e24 92 01 04 73 44 ; &fb &73 : roadside &6e29 53 12 76 0e 07 ; &fb &74 : serving &6e2e 22 d4 01 6c ef ; &fb &75 : battalion &6e33 14 b5 6e 0e 07 ; &fb &76 : turning &6e38 2d 4b 12 1f 13 ; &fb &77 : maker's &6e3d 03 28 32 c3 a5 ; &fb &78 : character &6e42 01 10 50 a1 13 ; &fb &79 : appears &6e47 d3 0f 10 50 04 ; &fb &7a : stopped &6e4c 13 15 10 50 12 ; &fb &7b : supper &6e51 42 0c 67 e1 13 ; &fb &7c : belgians &6e56 47 ce 4c 2d 0e ; &fb &7d : gentleman &6e5b 8c 15 04 0c 19 ; &fb &7e : loudly &6e60 02 15 0c 0c 19 ; &fb &7f : bully &6e65 d3 01 03 4b 04 ; &fb &80 : stacked &6e6a 03 28 13 53 b5 ; &fb &81 : chasseur &6e6f 2d d4 52 13 13 ; &fb &82 : mattress &6e74 05 13 23 50 04 ; &fb &83 : escaped &6e79 6d 53 32 02 4c ; &fb &84 : miserable &6e7e 33 10 50 12 13 ; &fb &85 : sappers &6e83 02 b5 6e 0e 07 ; &fb &86 : burning &6e88 13 2d 0c 4c 12 ; &fb &87 : smaller &6e8d 13 b5 92 f5 04 ; &fb &88 : surround &6e92 90 e9 74 0e 07 ; &fb &89 : pointing &6e97 10 15 0c 0c 13 ; &fb &8a : pulls &6e9c 05 0d 50 92 12 ; &fb &8b : emperor &6ea1 f3 8f 7a 0e 07 ; &fb &8c : snoozing &6ea6 42 0c 67 15 0d ; &fb &8d : belgium &6eab 50 12 93 2e 0c ; &fb &8e : personal &6eb0 13 6b d2 e9 07 ; &fb &8f : skirting &6eb5 2c b4 e9 05 13 ; &fb &90 : latrines &6eba 08 f5 74 0e 07 ; &fb &91 : hunting &6ebf 52 73 44 0e 43 ; &fb &92 : residence &6ec4 22 0c ac 8f 0d ; &fb &93 : ballroom &6ec9 28 0e 04 93 4d ; &fb &94 : handsome &6ece 05 56 12 99 4e ; &fb &95 : everyone &6ed3 e9 86 12 4d 04 ; &fb &96 : informed &6ed8 a3 25 73 0e 07 ; &fb &97 : creasing &6edd 50 12 43 09 56 ; &fb &98 : perceive &6ee2 03 8c 73 0e 07 ; &fb &99 : closing &6ee7 64 52 c3 89 0e ; &fb &9a : direction &6eec 70 a5 63 0e 07 ; &fb &9b : piercing &6ef1 c1 54 ce 89 0e ; &fb &9c : attention &6ef6 44 86 12 4d 04 ; &fb &9d : deformed &6efb 33 36 47 12 19 ; &fb &9e : savagery &6f00 43 ce b5 49 13 ; &fb &9f : centuries &6f05 83 0e 56 12 47 ; &fb &a0 : converge &6f0a 14 88 15 07 08 ; &fb &a1 : though &6f0f 86 52 48 01 04 ; &fb &a2 : forehead &6f14 83 8c b5 05 04 ; &fb &a3 : coloured &6f19 a6 0f 07 6c 4b ; &fb &a4 : froglike &6f1e 6d d3 01 4b 0e ; &fb &a5 : mistaken &6f23 0d d5 54 12 13 ; &fb &a6 : mutters &6f28 84 c3 af 1f 13 ; &fb &a7 : doctor's &6f2d 52 2d 12 0b 13 ; &fb &a8 : remarks &6f32 e5 af 8d 15 13 ; &fb &a9 : enormous &6f37 76 0c 2c 47 13 ; &fb &aa : villages &6f3c 37 54 12 8c 0f ; &fb &ab : waterloo &6f41 93 09 e7 05 13 ; &fb &ac : soignes &6f46 b4 f5 04 4c 13 ; &fb &ad : trundles &6f4b 93 4d 17 48 52 ; &fb &ae : somewhere &6f50 06 6c d4 e9 07 ; &fb &af : flitting &6f55 44 53 d2 a5 13 ; &fb &b0 : deserters &6f5a d3 25 6c 0e 07 ; &fb &b1 : stealing &6f5f 64 33 10 50 a1 ; &fb &b2 : disappear &6f64 e5 83 f5 54 12 ; &fb &b3 : encounter &6f69 13 b5 b0 09 53 ; &fb &b4 : surprise &6f6e a2 45 03 48 13 ; &fb &b5 : breeches &6f73 83 56 72 0e 07 ; &fb &b6 : covering &6f78 a2 c9 09 13 08 ; &fb &b7 : british &6f7d 01 0c 6c 05 04 ; &fb &b8 : allied &6f82 83 ce e9 55 13 ; &fb &b9 : continues &6f87 a4 01 87 ef 13 ; &fb &ba : dragoons &6f8c e9 c9 29 74 56 ; &fb &bb : initiative &6f91 86 12 67 56 13 ; &fb &bc : forgives &6f96 13 88 d5 e9 07 ; &fb &bd : shouting &6f9b 66 07 c8 e9 07 ; &fb &be : fighting &6fa0 64 52 c3 0c 19 ; &fb &bf : directly &6fa5 83 0d 8d 74 ef ; &fb &c0 : commotion &6faa 23 ce a5 e9 07 ; &fb &c1 : cantering &6faf e5 0f 15 07 08 ; &fb &c2 : enough &6fb4 44 46 c1 05 04 ; &fb &c3 : defeated &6fb9 88 0c 64 0e 07 ; &fb &c4 : holding &6fbe d3 e1 24 12 04 ; &fb &c5 : standard &6fc3 92 2d ce 09 03 ; &fb &c6 : romantic &6fc8 d3 32 09 07 c8 ; &fb &c7 : straight &6fcd 03 28 12 47 13 ; &fb &c8 : charges &6fd2 e1 43 d3 af 13 ; &fb &c9 : ancestors &6fd7 53 03 b5 c9 19 ; &fb &ca : security &6fdc 52 03 28 12 47 ; &fb &cb : recharge &6fe1 14 28 14 1f 13 ; &fb &cc : that's &6fe6 76 0f 4c 0e 43 ; &fb &cd : violence &6feb 88 50 4c 13 13 ; &fb &ce : hopeless &6ff0 93 4d 82 04 19 ; &fb &cf : somebody &6ff5 e1 d9 68 0e 07 ; &fb &d0 : anything &6ffa 15 53 06 15 0c ; &fb &d1 : useful &6fff 28 12 04 0c 19 ; &fb &d2 : hardly &7004 23 d0 b5 05 04 ; &fb &d3 : captured &7009 13 88 15 0c 04 ; &fb &d4 : should &700e 82 2e 30 d2 05 ; &fb &d5 : bonaparte &7013 14 48 52 86 52 ; &fb &d6 : therefore &7018 52 01 0c 0c 19 ; &fb &d7 : really &701d 90 13 73 02 4c ; &fb &d8 : possible &7022 6d 6e c1 b5 05 ; &fb &d9 : miniature &7027 66 4c 4c d4 a5 ; &fb &da : fileletter &702c 54 4c 10 88 4e ; &fb &db : telephone &7031 54 05 6d 0e 07 ; &fb &dc : teeming &7036 0f 03 23 73 ef ; &fb &dd : occasion &703b 07 35 12 04 13 ; &fb &de : guards &7040 66 a5 43 0c 19 ; &fb &df : fiercely &7045 64 d3 b5 42 04 ; &fb &e0 : disturbed &704a 64 d3 b5 02 13 ; &fb &e1 : disturbs &704f b4 09 07 47 12 ; &fb &e2 : trigger &7054 83 f2 a5 05 04 ; &fb &e3 : cornered &7059 94 8d b2 0f 17 ; &fb &e4 : tomorrow &705e 33 14 b5 24 19 ; &fb &e5 : saturday &7063 44 8e f5 43 13 ; &fb &e6 : denounces &7068 83 0e 76 0e 43 ; &fb &e7 : convince &706d 30 13 73 0e 07 ; &fb &e8 : passing &7072 66 2e 0c 0c 19 ; &fb &e9 : finally &7077 f5 2d 13 4b 04 ; &fb &ea : unmasked &707c e1 19 17 48 52 ; &fb &eb : anywhere &7081 66 52 a1 0d 13 ; &fb &ec : firearms &7086 02 15 0c 4c 14 ; &fb &ed : bullet &708b 53 01 93 4e 04 ; &fb &ee : seasoned &7090 52 06 15 53 13 ; &fb &ef : refuses &7095 c1 b4 01 c3 13 ; &fb &f0 : attracts &709a 33 0c d5 05 13 ; &fb &f1 : salutes &709f 4c 01 76 0e 07 ; &fb &f2 : leaving &70a4 52 01 6c 53 13 ; &fb &f3 : realises &70a9 17 68 d3 4c 13 ; &fb &f4 : whistles &70ae 52 14 b5 4e 04 ; &fb &f5 : returned &70b3 02 2c d3 e9 07 ; &fb &f6 : blasting &70b8 73 14 35 74 ef ; &fb &f7 : situation &70bd 13 4c 05 50 12 ; &fb &f8 : sleeper &70c2 05 d3 09 2d 54 ; &fb &f9 : estimate &70c7 46 d3 8f 4e 04 ; &fb &fa : festooned &70cc 52 83 e7 09 53 ; &fb &fb : recognise &70d1 02 2c d3 05 04 ; &fb &fc : blasted &70d6 8d 4d ce 1f 13 ; &fb &fd : moment's &70db 52 83 56 52 04 ; &fb &fe : recovered ; secondary_dictionary_four &70e0 10 71 00 ; 0 words of length 1 &70e3 10 71 00 ; 34 words of length 2, starting at &7110 &70e6 54 71 22 ; 119 words of length 3, starting at &7154 &70e9 b9 72 99 ; 97 words of length 4, starting at &72b9 &70ec 3d 74 fa ; 0 words of length 5 &70ef 3d 74 fa ; 0 words of length 6 &70f2 3d 74 fa ; 0 words of length 7 &70f5 3d 74 fa ; 0 words of length 8 &70f8 3d 74 fa ; 0 words of length 9 &70fb 3d 74 fa ; 0 words of length 10 &70fe 3d 74 fa ; 0 words of length 11 &7101 3d 74 fa ; 0 words of length 12 &7104 3d 74 fa ; 0 words of length 13 &7107 3d 74 fa ; 0 words of length 14 &710a 3d 74 fa &710d 00 00 00 &7110 27 4d ; &fc &05 : game &7112 e1 19 ; &fc &06 : any &7114 94 f7 ; &fc &07 : town &7116 2c 54 ; &fc &08 : late &7118 e9 0e ; &fc &09 : inn &711a 4e d8 ; &fc &0a : next &711c 2d e9 ; &fc &0b : main &711e 2c d3 ; &fc &0c : last &7120 37 13 ; &fc &0d : was &7122 8c 17 ; &fc &0e : low &7124 ef 43 ; &fc &0f : once &7126 2d 0e ; &fc &10 : man &7128 42 cc ; &fc &11 : belt &712a 26 12 ; &fc &12 : far &712c 28 04 ; &fc &13 : had &712e 30 a9 ; &fc &14 : pair &7130 93 ef ; &fc &15 : soon &7132 61 12 ; &fc &16 : air &7134 57 52 ; &fc &17 : were &7136 2d 4b ; &fc &18 : make &7138 08 55 ; &fc &19 : hue &713a a3 19 ; &fc &1a : cry &713c 8c 53 ; &fc &1b : lose &713e 46 17 ; &fc &1c : few &7140 26 43 ; &fc &1d : face &7142 66 4e ; &fc &1e : fine &7144 72 53 ; &fc &1f : rise &7146 8e 4e ; &fc &20 : none &7148 84 4e ; &fc &21 : done &714a 88 17 ; &fc &22 : how &714c 37 ce ; &fc &23 : want &714e b4 19 ; &fc &24 : try &7150 88 b5 ; &fc &25 : hour &7152 4c 14 ; &fc &26 : let &7154 97 0e df ; &fc &27 : won't &7157 4c 01 56 ; &fc &28 : leave &715a d3 52 c5 ; &fc &29 : street &715d 12 f5 13 ; &fc &2a : runs &7160 24 12 0b ; &fc &2b : dark &7163 a1 4d 04 ; &fc &2c : armed &7166 a7 e1 44 ; &fc &2d : grande &7169 a1 4d 05 ; &fc &2e : armee &716c 37 87 0e ; &fc &2f : wagon &716f a3 49 13 ; &fc &30 : cries &7172 0f 0c 04 ; &fc &31 : old &7175 03 28 a9 ; &fc &32 : chair &7178 52 d3 13 ; &fc &33 : rests &717b 53 05 0d ; &fc &34 : seem &717e 17 68 4c ; &fc &35 : while &7181 13 88 10 ; &fc &36 : shop &7184 83 f2 a5 ; &fc &37 : corner &7187 cf 48 12 ; &fc &38 : other &718a 17 88 53 ; &fc &39 : whose &718d 22 4b 12 ; &fc &3a : baker &7190 72 04 47 ; &fc &3b : ridge &7193 68 07 08 ; &fc &3c : high &7196 46 0e 43 ; &fc &3d : fence &7199 a1 0d 19 ; &fc &3e : army &719c 03 d5 13 ; &fc &3f : cuts &719f 13 6c 14 ; &fc &40 : slit &71a2 d3 ef 05 ; &fc &41 : stone &71a5 6d 07 c8 ; &fc &42 : might &71a8 43 0c 0c ; &fc &43 : cell &71ab e9 73 44 ; &fc &44 : inside &71ae 8c 0f 53 ; &fc &45 : loose &71b1 92 0f 06 ; &fc &46 : roof &71b4 84 05 13 ; &fc &47 : does &71b7 13 88 d2 ; &fc &48 : short &71ba 4d 93 0e ; &fc &49 : meson &71bd 66 52 13 ; &fc &4a : fires &71c0 84 5a 0e ; &fc &4b : dozen &71c3 a6 e1 43 ; &fc &4c : france &71c6 05 76 0c ; &fc &4d : evil &71c9 8d 56 13 ; &fc &4e : moves &71cc 01 30 d2 ; &fc &4f : apart &71cf a6 ef 14 ; &fc &50 : front &71d2 02 2c d3 ; &fc &51 : blast &71d5 68 14 13 ; &fc &52 : hits &71d8 84 af 13 ; &fc &53 : doors &71db 26 12 0d ; &fc &54 : farm &71de 22 0c 0c ; &fc &55 : ball &71e1 87 0f 04 ; &fc &56 : good &71e4 01 27 e9 ; &fc &57 : again &71e7 a7 01 43 ; &fc &58 : grace &71ea 30 4e 0c ; &fc &59 : panel &71ed a7 05 19 ; &fc &5a : grey &71f0 03 15 42 ; &fc &5b : cube &71f3 42 8c 17 ; &fc &5c : below &71f6 37 54 12 ; &fc &5d : water &71f9 11 75 54 ; &fc &5e : quite &71fc 15 53 04 ; &fc &5f : used &71ff 53 57 12 ; &fc &60 : sewer &7202 4c 04 47 ; &fc &61 : ledge &7205 01 82 56 ; &fc &62 : above &7208 54 b2 af ; &fc &63 : terror &720b 73 44 13 ; &fc &64 : sides &720e 93 6c 04 ; &fc &65 : solid &7211 72 53 13 ; &fc &66 : rises &7214 48 a1 14 ; &fc &67 : heart &7217 36 15 cc ; &fc &68 : vault &721a 43 ce 52 ; &fc &69 : centre &721d 14 b5 0e ; &fc &6a : turn &7220 42 01 0d ; &fc &6b : beam &7223 82 14 08 ; &fc &6c : both &7226 d3 45 10 ; &fc &6d : steep &7229 82 0d 02 ; &fc &6e : bomb &722c 6c d4 4c ; &fc &6f : little &722f 73 0e 43 ; &fc &70 : since &7232 b4 45 13 ; &fc &71 : trees &7235 68 0c 0c ; &fc &72 : hill &7238 97 d2 08 ; &fc &73 : worth &723b 44 c1 08 ; &fc &74 : death &723e 84 0e df ; &fc &75 : don't &7241 6c 4e 13 ; &fc &76 : lines &7244 44 63 44 ; &fc &77 : decide &7247 11 75 c5 ; &fc &78 : quiet &724a 39 12 04 ; &fc &79 : yard &724d 88 12 53 ; &fc &7a : horse &7250 a1 72 56 ; &fc &7b : arrive &7253 34 4b 0e ; &fc &7c : taken &7256 66 07 c8 ; &fc &7d : fight &7259 37 0c 0b ; &fc &7e : walk &725c 28 0c 06 ; &fc &7f : half &725f 2e 09 0c ; &fc &80 : nail &7262 23 ee ef ; &fc &81 : cannon &7265 47 14 13 ; &fc &82 : gets &7268 93 b2 19 ; &fc &83 : sorry &726b 0f 2b 19 ; &fc &84 : okay &726e 97 12 0b ; &fc &85 : work &7271 67 56 13 ; &fc &86 : gives &7274 37 56 13 ; &fc &87 : waves &7277 23 ee cf ; &fc &88 : cannot &727a 52 a7 c5 ; &fc &89 : regret &727d 17 88 4c ; &fc &8a : whole &7280 66 12 d3 ; &fc &8b : first &7283 88 b5 13 ; &fc &8c : hours &7286 b4 49 04 ; &fc &8d : tried &7289 09 44 01 ; &fc &8e : idea &728c a1 52 d3 ; &fc &8f : arrest &728f 52 8d 56 ; &fc &90 : remove &7292 14 28 0e ; &fc &91 : than &7295 13 6c 10 ; &fc &92 : slip &7298 e1 99 4e ; &fc &93 : anyone &729b 8e 09 53 ; &fc &94 : noise &729e b4 49 13 ; &fc &95 : tries &72a1 17 48 0e ; &fc &96 : when &72a4 13 30 43 ; &fc &97 : space &72a7 07 6c ce ; &fc &98 : glint &72aa eb 0f 17 ; &fc &99 : know &72ad d3 01 4b ; &fc &9a : stake &72b0 33 19 13 ; &fc &9b : says &72b3 26 d3 a5 ; &fc &9c : faster &72b6 83 07 13 ; &fc &9d : cogs &72b9 52 01 04 19 ; &fc &9e : ready &72bd 26 63 0e 07 ; &fc &9f : facing &72c1 4c 01 04 13 ; &fc &a0 : leads &72c5 a1 72 56 04 ; &fc &a1 : arrived &72c9 97 0f 44 0e ; &fc &a2 : wooden &72cd 0c 79 0e 07 ; &fc &a3 : lying &72d1 8c 15 44 12 ; &fc &a4 : louder &72d5 88 15 53 13 ; &fc &a5 : houses &72d9 82 a1 44 04 ; &fc &a6 : boarded &72dd a2 25 14 08 ; &fc &a7 : breath &72e1 22 4b 12 19 ; &fc &a8 : bakery &72e5 13 28 03 0b ; &fc &a9 : shack &72e9 05 b5 0f 50 ; &fc &aa : europe &72ed a7 0f 15 10 ; &fc &ab : group &72f1 42 99 0e 04 ; &fc &ac : beyond &72f5 30 50 12 13 ; &fc &ad : papers &72f9 a6 05 13 08 ; &fc &ae : fresh &72fd 28 0d 4c 14 ; &fc &af : hamlet &7301 83 ce e9 55 ; &fc &b0 : continue &7305 01 48 01 04 ; &fc &b1 : ahead &7309 d3 e1 04 13 ; &fc &b2 : stands &730d 05 0d d0 19 ; &fc &b3 : empty &7311 2e b2 0f 17 ; &fc &b4 : narrow &7315 d3 f5 4e 04 ; &fc &b5 : stunned &7319 8c 01 44 04 ; &fc &b6 : loaded &731d 8c 0f 0b 13 ; &fc &b7 : looks &7321 37 0c 0c 13 ; &fc &b8 : walls &7325 2c 0e 43 12 ; &fc &b9 : lancer &7329 52 01 6c 53 ; &fc &ba : realise &732d a1 0f f5 04 ; &fc &bb : around &7331 42 23 15 53 ; &fc &bc : because &7335 43 ce b5 19 ; &fc &bd : century &7339 02 2c d3 a5 ; &fc &be : blaster &733d 13 10 6c 14 ; &fc &bf : split &7341 53 83 0e 04 ; &fc &c0 : second &7345 14 68 0e 0b ; &fc &c1 : think &7349 06 15 0c 0c ; &fc &c2 : full &734d 2d 12 03 08 ; &fc &c3 : march &7351 e1 cf 48 12 ; &fc &c4 : another &7355 01 8d 0e 07 ; &fc &c5 : among &7359 48 01 16 19 ; &fc &c6 : heavy &735d 37 0c 0b 13 ; &fc &c7 : walks &7361 05 78 14 13 ; &fc &c8 : exits &7365 93 4d ef 05 ; &fc &c9 : someone &7369 15 73 0e 07 ; &fc &ca : using &736d 44 a2 09 13 ; &fc &cb : debris &7371 13 70 0e 13 ; &fc &cc : spins &7375 26 6d 6c a1 ; &fc &cd : familiar &7379 92 15 07 08 ; &fc &ce : rough &737d 94 6e 07 c8 ; &fc &cf : tonight &7381 84 15 02 4c ; &fc &d0 : double &7385 0c 15 03 0b ; &fc &d1 : luck &7389 01 0c 8d d3 ; &fc &d2 : almost &738d a2 0f 4b 0e ; &fc &d3 : broken &7391 01 8c 0e 07 ; &fc &d4 : along &7395 53 ce 12 19 ; &fc &d5 : sentry &7399 8e d2 48 f2 ; &fc &d6 : northern &739d 83 56 52 04 ; &fc &d7 : covered &73a1 52 56 01 0c ; &fc &d8 : reveal &73a5 06 6c 07 c8 ; &fc &d9 : flight &73a9 d3 05 10 13 ; &fc &da : steps &73ad d3 15 04 19 ; &fc &db : study &73b1 42 6c 05 56 ; &fc &dc : believe &73b5 af 44 12 13 ; &fc &dd : orders &73b9 13 6c 44 13 ; &fc &de : slides &73bd e5 05 0d 19 ; &fc &df : enemy &73c1 70 14 03 08 ; &fc &e0 : pitch &73c5 e9 54 0e 53 ; &fc &e1 : intense &73c9 6c 07 c8 13 ; &fc &e2 : lights &73cd 05 13 23 50 ; &fc &e3 : escape &73d1 a2 09 07 c8 ; &fc &e4 : bright &73d5 0f 50 0e 13 ; &fc &e5 : opens &73d9 14 68 12 04 ; &fc &e6 : third &73dd d3 01 02 13 ; &fc &e7 : stabs &73e1 07 8c 0f 0d ; &fc &e8 : gloom &73e5 88 0c 04 13 ; &fc &e9 : holds &73e9 14 15 42 13 ; &fc &ea : tubes &73ed d3 a1 14 13 ; &fc &eb : starts &73f1 23 15 53 04 ; &fc &ec : caused &73f5 23 12 56 04 ; &fc &ed : carved &73f9 6c 0d 02 13 ; &fc &ee : limbs &73fd 28 b4 05 04 ; &fc &ef : hatred &7401 03 b5 56 04 ; &fc &f0 : curved &7405 eb 09 56 13 ; &fc &f1 : knives &7409 13 28 12 10 ; &fc &f2 : sharp &740d a4 0f 10 13 ; &fc &f3 : drops &7411 6b 0c 4c 04 ; &fc &f4 : killed &7415 68 d3 af 19 ; &fc &f5 : history &7419 70 05 43 13 ; &fc &f6 : pieces &741d 50 12 46 c3 ; &fc &f7 : perfect &7421 8d 76 0e 07 ; &fc &f8 : moving &7425 76 0c 2c 47 ; &fc &f9 : village &7429 a1 6d 05 13 ; &fc &fa : armies &742d d3 09 0c 0c ; &fc &fb : still &7431 23 15 07 c8 ; &fc &fc : caught &7435 36 0c 4c 19 ; &fc &fd : valley &7439 61 6d 0e 07 ; &fc &fe : aiming ; primary_dictionary &743d 6d 74 00 ; 16 words of length 1, starting at &746d &7440 7d 74 10 ; 49 words of length 2, starting at &747d &7443 df 74 41 ; 63 words of length 3, starting at &74df &7446 9c 75 80 ; 39 words of length 4, starting at &759c &7449 38 76 a7 ; 29 words of length 5, starting at &7638 &744c c9 76 c4 ; 0 words of length 6 &744f c9 76 c4 ; 0 words of length 7 &7452 c9 76 c4 ; 0 words of length 8 &7455 c9 76 c4 ; 0 words of length 9 &7458 c9 76 c4 ; 0 words of length 10 &745b c9 76 c4 ; 0 words of length 11 &745e c9 76 c4 ; 0 words of length 12 &7461 c9 76 c4 ; 0 words of length 13 &7464 c9 76 c4 ; 0 words of length 14 &7467 c9 76 c4 &746a 00 00 00 &746d 94 ; &32 : to &746e 84 ; &33 : do &746f 01 ; &34 : a &7470 e9 ; &35 : in &7471 af ; &36 : or &7472 42 ; &37 : be &7473 ef ; &38 : on &7474 c1 ; &39 : at &7475 e1 ; &3a : an &7476 8e ; &3b : no &7477 c9 ; &3c : it &7478 48 ; &3d : he &7479 57 ; &3e : we &747a 93 ; &3f : so &747b d3 ; &40 : st &747c 87 ; &41 : go &747d 99 15 ; &42 : you &747f 0f 06 ; &43 : of &7481 14 48 ; &44 : the &7483 a1 05 ; &45 : are &7485 02 19 ; &46 : by &7487 09 13 ; &47 : is &7489 ef 05 ; &48 : one &748b 14 97 ; &49 : two &748d e9 94 ; &4a : into &748f 86 12 ; &4b : for &7491 57 d3 ; &4c : west &7493 73 44 ; &4d : side &7495 84 af ; &4e : door &7497 48 52 ; &4f : here &7499 25 d3 ; &50 : east &749b e1 04 ; &51 : and &749d 84 f7 ; &52 : down &749f 28 56 ; &53 : have &74a1 46 c5 ; &54 : feet &74a3 c9 13 ; &55 : its &74a5 28 13 ; &56 : has &74a7 42 e5 ; &57 : been &74a9 15 10 ; &58 : up &74ab 01 13 ; &59 : as &74ad 68 13 ; &5a : his &74af 8e 14 ; &5b : not &74b1 94 0f ; &5c : too &74b3 4c c6 ; &5d : left &74b5 93 4d ; &5e : some &74b7 53 05 ; &5f : see &74b9 99 b5 ; &60 : your &74bb 0f d5 ; &61 : out &74bd 17 88 ; &62 : who &74bf 8e 17 ; &63 : now &74c1 74 4d ; &64 : time &74c3 54 ce ; &65 : tent &74c5 03 d5 ; &66 : cut &74c7 09 06 ; &67 : if &74c9 88 4c ; &68 : hole &74cb 02 d5 ; &69 : but &74cd 68 0d ; &6a : him &74cf 8d d3 ; &6b : most &74d1 23 0e ; &6c : can &74d3 48 a1 ; &6d : hear &74d5 37 19 ; &6e : way &74d7 6c 4b ; &6f : like &74d9 83 4d ; &70 : come &74db 8d 52 ; &71 : more &74dd 0d 19 ; &72 : my &74df a6 0f 0d ; &73 : from &74e2 92 0f 0d ; &74 : room &74e5 84 c3 af ; &75 : doctor &74e8 01 37 19 ; &76 : away &74eb 14 28 14 ; &77 : that &74ee 77 14 08 ; &78 : with &74f1 8e d2 08 ; &79 : north &74f4 37 0c 0c ; &7a : wall &74f7 93 d5 08 ; &7b : south &74fa 14 48 52 ; &7c : there &74fd 92 01 04 ; &7d : road &7500 0f 06 06 ; &7e : off &7503 14 48 19 ; &7f : they &7506 83 4d 13 ; &80 : comes &7509 93 f5 04 ; &81 : sound &750c f5 44 12 ; &82 : under &750f 01 82 d5 ; &83 : about &7512 42 e9 07 ; &84 : being &7515 ef 0c 19 ; &85 : only &7518 66 0e 04 ; &86 : find &751b 28 0e 04 ; &87 : hand &751e 17 48 52 ; &88 : where &7521 01 0c 0c ; &89 : all &7524 2c 12 47 ; &8a : large &7527 0f 56 12 ; &8b : over &752a 06 8c af ; &8c : floor &752d 14 68 13 ; &8d : this &7530 22 03 0b ; &8e : back &7533 23 0d 10 ; &8f : camp &7536 22 d4 4c ; &90 : battle &7539 42 73 44 ; &91 : beside &753c 8c 0e 07 ; &92 : long &753f 54 ce 13 ; &93 : tents &7542 0a 15 d3 ; &94 : just &7545 92 f5 04 ; &95 : round &7548 6c 05 13 ; &96 : lies &754b 48 01 04 ; &97 : head &754e 8e 74 43 ; &98 : notice &7551 4d 34 0c ; &99 : metal &7554 56 12 19 ; &9a : very &7557 42 86 52 ; &9b : before &755a 01 c6 a5 ; &9c : after &755d 14 a8 45 ; &9d : three &7560 42 d4 a5 ; &9e : better &7563 8d 4d ce ; &9f : moment &7566 72 07 c8 ; &a0 : right &7569 17 28 14 ; &a1 : what &756c 04 15 4b ; &a2 : duke &756f 6c 07 c8 ; &a3 : light &7572 a7 45 0e ; &a4 : green &7575 02 0c 55 ; &a5 : blue &7578 05 59 13 ; &a6 : eyes &757b 26 0c 0c ; &a7 : fall &757e 6d 6e ef ; &a8 : minion &7581 14 48 a9 ; &a9 : their &7584 2c 0e 43 ; &aa : lance &7587 34 4b 13 ; &ab : takes &758a 93 6e 03 ; &ac : sonic &758d 86 52 d3 ; &ad : forest &7590 13 88 14 ; &ae : shot &7593 23 0e df ; &af : can't &7596 77 0c 0c ; &b0 : will &7599 14 48 0e ; &b1 : then &759c 6d 04 04 4c ; &b2 : middle &75a0 34 12 64 13 ; &b3 : tardis &75a4 83 ce 92 0c ; &b4 : control &75a8 13 11 35 52 ; &b5 : square &75ac 17 68 03 08 ; &b6 : which &75b0 42 68 0e 04 ; &b7 : behind &75b4 05 4d 12 47 ; &b8 : emerge &75b8 a6 e5 03 08 ; &b9 : french &75bc 01 27 e9 d3 ; &ba : against &75c0 23 36 ac 19 ; &bb : cavalry &75c4 14 b5 0e 13 ; &bc : turns &75c8 73 d4 e9 07 ; &bd : sitting &75cc 53 05 0d 13 ; &be : seems &75d0 23 b2 29 47 ; &bf : carriage &75d4 42 14 57 e5 ; &c0 : between &75d8 32 e9 e9 07 ; &c1 : raining &75dc 56 54 32 0e ; &c2 : veteran &75e0 77 14 88 d5 ; &c3 : without &75e4 14 f5 4e 0c ; &c4 : tunnel &75e8 83 6d 0e 07 ; &c5 : coming &75ec e5 b4 e1 43 ; &c6 : entrance &75f0 32 14 48 12 ; &c7 : rather &75f4 c1 0f 6d 03 ; &c8 : atomic &75f8 28 0e 04 13 ; &c9 : hands &75fc 2e 90 4c ef ; &ca : napoleon &7600 13 2d 0c 0c ; &cb : small &7604 84 af 37 19 ; &cc : doorway &7608 36 15 cc 13 ; &cd : vaults &760c 6d 6e ef 13 ; &ce : minions &7610 57 02 42 04 ; &cf : webbed &7614 d3 32 0e 47 ; &d0 : strange &7618 66 72 0e 07 ; &d1 : firing &761c 03 28 12 47 ; &d2 : charge &7620 99 15 bf 05 ; &d3 : you're &7624 8e 17 48 52 ; &d4 : nowhere &7628 0d 15 03 08 ; &d5 : much &762c 8e 74 43 13 ; &d6 : notices &7630 53 56 32 0c ; &d7 : several &7634 30 13 53 13 ; &d8 : passes &7638 d3 e1 64 0e 07 ; &d9 : standing &763d 37 0c 6b 0e 07 ; &da : walking &7642 93 0c 64 a5 13 ; &db : soldiers &7647 f5 09 86 12 0d ; &dc : uniform &764c 12 f5 6e 0e 07 ; &dd : running &7651 0f 10 90 73 54 ; &de : opposite &7656 01 13 4c 05 10 ; &df : asleep &765b 03 4c a1 0c 19 ; &e0 : clearly &7660 53 12 47 e1 14 ; &e1 : sergeant &7665 e9 26 ce 12 19 ; &e2 : infantry &766a 99 b5 53 0c 06 ; &e3 : yourself &766f 94 37 12 04 13 ; &e4 : towards &7674 37 12 8c 12 04 ; &e5 : warlord &7679 32 70 04 0c 19 ; &e6 : rapidly &767e 0f 06 66 43 12 ; &e7 : officer &7683 2d 12 13 28 0c ; &e8 : marshal &7688 64 b3 15 d0 af ; &e9 : disruptor &768d 6d 0e d5 05 13 ; &ea : minutes &7692 a3 25 14 b5 05 ; &eb : creature &7697 13 28 0c 8c 17 ; &ec : shallow &769c 8c 0f 6b 0e 07 ; &ed : looking &76a1 b0 15 13 73 e1 ; &ee : prussian &76a6 e5 07 6c 13 08 ; &ef : english &76ab 8e 14 68 0e 07 ; &f0 : nothing &76b0 64 13 83 56 12 ; &f1 : discover &76b5 14 48 52 1f 13 ; &f2 : there's &76ba 01 ac 25 04 19 ; &f3 : already &76bf 28 10 50 0e 13 ; &f4 : happens &76c4 23 14 03 48 13 ; &f5 : catches ; verb_dictionary &76c9 f9 76 00 ; 11 words of length 1, starting at &76f9 &76cc 04 77 0b ; 7 words of length 2, starting at &7704 &76cf 12 77 12 ; 11 words of length 3, starting at &7712 &76d2 33 77 1d ; 38 words of length 4, starting at &7733 &76d5 cb 77 43 ; 20 words of length 5, starting at &77cb &76d8 2f 78 57 ; 7 words of length 6, starting at &782f &76db 59 78 5e ; 6 words of length 7, starting at &7859 &76de 83 78 64 ; 1 words of length 8, starting at &7883 &76e1 8b 78 65 ; 4 words of length 9, starting at &788b &76e4 af 78 69 ; 0 words of length 10 &76e7 af 78 69 ; 0 words of length 11 &76ea af 78 69 ; 0 words of length 12 &76ed af 78 69 ; 0 words of length 13 &76f0 af 78 69 ; 0 words of length 14 &76f3 af 78 69 &76f6 00 00 00 &76f9 6e ; &fe &05: "n" verb &01, type 3 &76fa 65 ; &fe &06: "e" verb &02, type 3 &76fb 73 ; &fe &07: "s" verb &03, type 3 &76fc 77 ; &fe &08: "w" verb &04, type 3 &76fd 6c ; &fe &09: "l" verb &09, type 3 &76fe 72 ; &fe &0a: "r" verb &0a, type 3 &76ff 24 ; &fe &0b: "d" verb &0b, type 1 &7700 35 ; &fe &0c: "u" verb &0c, type 1 &7701 78 ; &fe &0d: "x" verb &0d, type 3 &7702 62 ; &fe &0e: "b" verb &0f, type 3 &7703 66 ; &fe &0f: "f" verb &10, type 3 &7704 6e 45 ; &fe &10: "ne" verb &05, type 3 &7706 6e 57 ; &fe &11: "nw" verb &06, type 3 &7708 73 45 ; &fe &12: "se" verb &07, type 3 &770a 73 57 ; &fe &13: "sw" verb &08, type 3 &770c 25 4e ; &fe &14: "en" verb &0e, type 1 &770e e4 43 ; &fe &15: "dc" verb &11, type 7 (system verb) &7710 35 50 ; &fe &16: "up" verb &0c, type 1 &7712 25 41 54 ; &fe &17: "eat" verb &12, type 1 &7715 22 55 59 ; &fe &18: "buy" verb &13, type 1 &7718 03 55 54 ; &fe &19: "cut" verb &14, type 0 &771b 24 49 47 ; &fe &1a: "dig" verb &15, type 1 &771e 07 45 54 ; &fe &1b: "get" verb &16, type 0 &7721 28 49 54 ; &fe &1c: "hit" verb &1a, type 1 &7724 33 41 59 ; &fe &1d: "say" verb &1c, type 1 &7727 21 53 4b ; &fe &1e: "ask" verb &1c, type 1 &772a 15 53 45 ; &fe &1f: "use" verb &1e, type 0 &772d 10 55 54 ; &fe &20: "put" verb &21, type 0 &7730 e9 4e 56 ; &fe &21: "inv" verb &3d, type 7 (system verb) &7733 65 41 53 54 ; &fe &22: "east" verb &02, type 3 &7737 77 45 53 54 ; &fe &23: "west" verb &04, type 3 &773b 6c 45 46 54 ; &fe &24: "left" verb &09, type 3 &773f 24 4f 57 4e ; &fe &25: "down" verb &0b, type 1 &7743 65 58 49 54 ; &fe &26: "exit" verb &0d, type 3 &7747 62 41 43 4b ; &fe &27: "back" verb &0f, type 3 &774b 14 41 4b 45 ; &fe &28: "take" verb &16, type 0 &774f 2b 49 4c 4c ; &fe &29: "kill" verb &17, type 1 &7753 26 49 52 45 ; &fe &2a: "fire" verb &18, type 1 &7757 2b 49 43 4b ; &fe &2b: "kick" verb &19, type 1 &775b 34 41 4c 4b ; &fe &2c: "talk" verb &1d, type 1 &775f 23 41 4c 4c ; &fe &2d: "call" verb &1d, type 1 &7763 02 4c 4f 57 ; &fe &2e: "blow" verb &1f, type 0 &7767 04 4f 46 46 ; &fe &2f: "doff" verb &20, type 0 &776b 04 52 4f 50 ; &fe &30: "drop" verb &22, type 0 &776f 07 49 56 45 ; &fe &31: "give" verb &23, type 0 &7773 13 48 4f 57 ; &fe &32: "show" verb &24, type 0 &7777 13 49 47 4e ; &fe &33: "sign" verb &25, type 0 &777b 4a 55 4d 50 ; &fe &34: "jump" verb &27, type 2 &777f 06 49 4c 4c ; &fe &35: "fill" verb &28, type 0 &7783 28 49 44 45 ; &fe &36: "hide" verb &29, type 1 &7787 10 4f 55 52 ; &fe &37: "pour" verb &2a, type 0 &778b 10 55 4c 4c ; &fe &38: "pull" verb &2b, type 0 &778f 0c 49 46 54 ; &fe &39: "lift" verb &2b, type 0 &7793 10 55 53 48 ; &fe &3a: "push" verb &2c, type 0 &7797 12 45 41 44 ; &fe &3b: "read" verb &2d, type 0 &779b 57 41 49 54 ; &fe &3c: "wait" verb &2e, type 2 &779f 37 41 56 45 ; &fe &3d: "wave" verb &2f, type 1 &77a3 17 45 41 52 ; &fe &3e: "wear" verb &30, type 0 &77a7 02 55 52 4e ; &fe &3f: "burn" verb &32, type 0 &77ab 2f 50 45 4e ; &fe &40: "open" verb &39, type 1 &77af e8 45 4c 50 ; &fe &41: "help" verb &40, type 7 (system verb) &77b3 ec 4f 41 44 ; &fe &42: "load" verb &41, type 7 (system verb) &77b7 ec 4f 4f 4b ; &fe &43: "look" verb &42, type 7 (system verb) &77bb e8 45 52 45 ; &fe &44: "here" verb &44, type 7 (system verb) &77bf f3 41 56 45 ; &fe &45: "save" verb &45, type 7 (system verb) &77c3 f3 54 4f 50 ; &fe &46: "stop" verb &46, type 7 (system verb) &77c7 f1 55 49 54 ; &fe &47: "quit" verb &46, type 7 (system verb) &77cb 6e 4f 52 54 48 ; &fe &48: "north" verb &01, type 3 &77d0 73 4f 55 54 48 ; &fe &49: "south" verb &03, type 3 &77d5 72 49 47 48 54 ; &fe &4a: "right" verb &0a, type 3 &77da 25 4e 54 45 52 ; &fe &4b: "enter" verb &0e, type 1 &77df 24 52 49 4e 4b ; &fe &4c: "drink" verb &12, type 1 &77e4 33 48 4f 4f 54 ; &fe &4d: "shoot" verb &18, type 1 &77e9 27 55 45 53 53 ; &fe &4e: "guess" verb &1b, type 1 &77ee 33 50 45 41 4b ; &fe &4f: "speak" verb &1d, type 1 &77f3 10 4c 41 43 45 ; &fe &50: "place" verb &21, type 0 &77f8 0f 46 46 45 52 ; &fe &51: "offer" verb &23, type 0 &77fd 14 48 52 4f 57 ; &fe &52: "throw" verb &26, type 0 &7802 13 48 49 46 54 ; &fe &53: "shift" verb &2c, type 0 &7807 10 52 45 53 53 ; &fe &54: "press" verb &2c, type 0 &780c 02 52 45 41 4b ; &fe &55: "break" verb &31, type 0 &7811 2c 49 47 48 54 ; &fe &56: "light" verb &32, type 1 &7816 33 54 41 4e 44 ; &fe &57: "stand" verb &34, type 1 &781b f7 48 45 52 45 ; &fe &58: "where" verb &3b, type 7 (system verb) &7820 f3 43 4f 52 45 ; &fe &59: "score" verb &3c, type 7 (system verb) &7825 f3 54 4f 52 45 ; &fe &5a: "store" verb &48, type 7 (system verb) &782a 23 4c 49 4d 42 ; &fe &5b: "climb" verb &4a, type 1 &782f 21 54 54 41 43 4b ; &fe &5c: "attack" verb &17, type 1 &7835 09 4e 53 45 52 54 ; &fe &5d: "insert" verb &33, type 0 &783b 26 4f 4c 4c 4f 57 ; &fe &5e: "follow" verb &35, type 1 &7841 2c 49 53 54 45 4e ; &fe &5f: "listen" verb &36, type 1 &7847 35 4e 4c 4f 43 4b ; &fe &60: "unlock" verb &37, type 1 &784d 33 41 4c 55 54 45 ; &fe &61: "salute" verb &38, type 1 &7853 33 45 41 52 43 48 ; &fe &62: "search" verb &43, type 1 &7859 66 4f 52 57 41 52 44 ; &fe &63: "forward" verb &10, type 3 &7860 09 4e 53 50 45 43 54 ; &fe &64: "inspect" verb &3a, type 0 &7867 05 58 41 4d 49 4e 45 ; &fe &65: "examine" verb &3a, type 0 &786e f7 45 41 52 49 4e 47 ; &fe &66: "wearing" verb &3f, type 7 (system verb) &7875 f2 45 53 54 41 52 54 ; &fe &67: "restart" verb &47, type 7 (system verb) &787c f2 45 53 54 4f 52 45 ; &fe &68: "restore" verb &49, type 7 (system verb) &7883 e3 41 52 52 59 49 4e 47 ; &fe &69: "carrying" verb &3e, type 7 (system verb) &788b 6e 4f 52 54 48 45 41 53 54 ; &fe &6a: "northeast" verb &05, type 3 &7894 6e 4f 52 54 48 57 45 53 54 ; &fe &6b: "northwest" verb &06, type 3 &789d 73 4f 55 54 48 45 41 53 54 ; &fe &6c: "southeast" verb &07, type 3 &78a6 73 4f 55 54 48 57 45 53 54 ; &fe &6d: "southwest" verb &08, type 3 ; noun_dictionary &78af df 78 00 ; 0 words of length 1 &78b2 df 78 00 ; 6 words of length 2, starting at &78df &78b5 eb 78 06 ; 18 words of length 3, starting at &78eb &78b8 21 79 18 ; 26 words of length 4, starting at &7921 &78bb 89 79 32 ; 13 words of length 5, starting at &7989 &78be ca 79 3f ; 22 words of length 6, starting at &79ca &78c1 4e 7a 55 ; 12 words of length 7, starting at &7a4e &78c4 a2 7a 61 ; 8 words of length 8, starting at &7aa2 &78c7 e2 7a 69 ; 5 words of length 9, starting at &7ae2 &78ca 0f 7b 6e ; 1 words of length 10, starting at &7b0f &78cd 19 7b 6f ; 1 words of length 11, starting at &7b19 &78d0 24 7b 70 ; 0 words of length 12 &78d3 24 7b 70 ; 0 words of length 13 &78d6 24 7b 70 ; 0 words of length 14 &78d9 24 7b 70 &78dc 00 00 00 &78df e1 54 ; &ff &05: "at" noun &3e, type 7 (preposition) &78e1 e9 4e ; &ff &06: "in" noun &3f, type 7 (preposition) &78e3 c9 54 ; &ff &07: "it" noun &40, type 6 (pronoun) &78e5 ef 4e ; &ff &08: "on" noun &41, type 7 (preposition) &78e7 f4 4f ; &ff &09: "to" noun &42, type 7 (preposition) &78e9 f5 50 ; &ff &0a: "up" noun &43, type 7 (preposition) &78eb 42 41 47 ; &ff &0b: "bag" noun &01, type 2 &78ee 43 41 4e ; &ff &0c: "can" noun &02, type 2 &78f1 27 55 4d ; &ff &0d: "gum" noun &03, type 1 &78f4 30 45 41 ; &ff &0e: "pea" noun &04, type 1 &78f7 32 41 54 ; &ff &0f: "rat" noun &05, type 1 &78fa 34 41 47 ; &ff &10: "tag" noun &06, type 1 &78fd 42 4f 58 ; &ff &11: "box" noun &15, type 2 &7900 30 45 4e ; &ff &12: "pen" noun &16, type 1 &7903 08 41 54 ; &ff &13: "hat" noun &17, type 0 &7906 4d 41 50 ; &ff &14: "map" noun &18, type 2 &7909 2a 55 47 ; &ff &15: "jug" noun &1c, type 1 &790c 47 55 4e ; &ff &16: "gun" noun &22, type 2 &790f a1 4c 4c ; &ff &17: "all" noun &3d, type 5 &7912 c8 49 4d ; &ff &18: "him" noun &40, type 6 (pronoun) &7915 ef 46 46 ; &ff &19: "off" noun &44, type 7 (preposition) &7918 ef 55 54 ; &ff &1a: "out" noun &45, type 7 (preposition) &791b f2 45 44 ; &ff &1b: "red" noun &48, type 7 (preposition) &791e f2 55 4e ; &ff &1c: "run" noun &4b, type 7 (preposition) &7921 42 45 4c 4c ; &ff &1d: "bell" noun &07, type 2 &7925 24 49 53 43 ; &ff &1e: "disc" noun &08, type 1 &7929 24 49 53 4b ; &ff &1f: "disk" noun &08, type 1 &792d 4b 45 59 53 ; &ff &20: "keys" noun &09, type 2 &7931 4c 41 4d 50 ; &ff &21: "lamp" noun &0a, type 2 &7935 52 4f 50 45 ; &ff &22: "rope" noun &0b, type 2 &7939 33 4f 41 50 ; &ff &23: "soap" noun &0c, type 1 &793d 08 41 54 53 ; &ff &24: "hats" noun &17, type 0 &7941 64 55 4b 45 ; &ff &25: "duke" noun &19, type 3 &7945 26 49 4c 45 ; &ff &26: "file" noun &1a, type 1 &7949 22 45 45 46 ; &ff &27: "beef" noun &1b, type 1 &794d 37 49 4e 45 ; &ff &28: "wine" noun &1c, type 1 &7951 2c 4f 41 46 ; &ff &29: "loaf" noun &1d, type 1 &7955 46 55 53 45 ; &ff &2a: "fuse" noun &1e, type 2 &7959 82 55 4e 4b ; &ff &2b: "bunk" noun &2d, type 4 &795d b4 45 4e 54 ; &ff &2c: "tent" noun &2e, type 5 &7961 b4 49 4c 45 ; &ff &2d: "tile" noun &2f, type 5 &7965 83 41 52 54 ; &ff &2e: "cart" noun &2f, type 4 &7969 b4 52 45 45 ; &ff &2f: "tree" noun &30, type 5 &796d a4 4f 4f 52 ; &ff &30: "door" noun &33, type 5 &7971 e9 4e 54 4f ; &ff &31: "into" noun &3f, type 7 (preposition) &7975 d4 48 45 4d ; &ff &32: "them" noun &40, type 6 (pronoun) &7979 ef 4e 54 4f ; &ff &33: "onto" noun &41, type 7 (preposition) &797d e4 4f 57 4e ; &ff &34: "down" noun &46, type 7 (preposition) &7981 f7 49 54 48 ; &ff &35: "with" noun &47, type 7 (preposition) &7985 e6 41 53 54 ; &ff &36: "fast" noun &4b, type 7 (preposition) &7989 4c 41 4e 43 45 ; &ff &37: "lance" noun &0d, type 2 &798e 2d 41 54 43 48 ; &ff &38: "match" noun &11, type 1 &7993 53 4e 55 46 46 ; &ff &39: "snuff" noun &15, type 2 &7998 22 52 45 41 44 ; &ff &3a: "bread" noun &1d, type 1 &799d 03 4c 4f 41 4b ; &ff &3b: "cloak" noun &1f, type 0 &79a2 50 4c 41 54 45 ; &ff &3c: "plate" noun &20, type 2 &79a7 34 41 50 45 52 ; &ff &3d: "taper" noun &21, type 1 &79ac b4 49 4c 45 53 ; &ff &3e: "tiles" noun &2f, type 5 &79b1 a2 45 41 52 44 ; &ff &3f: "beard" noun &30, type 5 &79b6 82 52 49 43 4b ; &ff &40: "brick" noun &31, type 4 &79bb 67 55 41 52 44 ; &ff &41: "guard" noun &32, type 3 &79c0 8c 49 47 48 54 ; &ff &42: "light" noun &34, type 4 &79c5 94 41 42 4c 45 ; &ff &43: "table" noun &37, type 4 &79ca 46 4c 4f 52 49 4e ; &ff &44: "florin" noun &01, type 2 &79d0 0c 4f 43 4b 45 54 ; &ff &45: "locket" noun &0e, type 0 &79d6 2e 45 45 44 4c 45 ; &ff &46: "needle" noun &0f, type 1 &79dc 03 4c 4f 41 4b 53 ; &ff &47: "cloaks" noun &1f, type 0 &79e2 50 49 53 54 4f 4c ; &ff &48: "pistol" noun &22, type 2 &79e8 44 45 56 49 43 45 ; &ff &49: "device" noun &23, type 2 &79ee 4d 55 53 4b 45 54 ; &ff &4a: "musket" noun &25, type 2 &79f4 4d 4f 44 55 4c 45 ; &ff &4b: "module" noun &26, type 2 &79fa 6b 49 4c 52 4f 59 ; &ff &4c: "kilroy" noun &2c, type 3 &7a00 81 52 4d 4f 55 52 ; &ff &4d: "armour" noun &2d, type 4 &7a06 a3 41 4e 56 41 53 ; &ff &4e: "canvas" noun &2e, type 5 &7a0c 86 52 45 4e 43 48 ; &ff &4f: "french" noun &35, type 4 &7a12 a3 41 4e 44 4c 45 ; &ff &50: "candle" noun &36, type 5 &7a18 64 4f 43 54 4f 52 ; &ff &51: "doctor" noun &38, type 3 &7a1e b3 43 52 45 45 4e ; &ff &52: "screen" noun &39, type 5 &7a24 b0 4f 57 44 45 52 ; &ff &53: "powder" noun &3a, type 5 &7a2a a2 41 52 52 45 4c ; &ff &54: "barrel" noun &3a, type 5 &7a30 a2 52 49 44 47 45 ; &ff &55: "bridge" noun &3b, type 5 &7a36 a2 55 54 54 4f 4e ; &ff &56: "button" noun &3b, type 5 &7a3c ef 52 41 4e 47 45 ; &ff &57: "orange" noun &49, type 7 (preposition) &7a42 e7 45 4e 54 4c 59 ; &ff &58: "gently" noun &4a, type 7 (preposition) &7a48 f3 4f 46 54 4c 59 ; &ff &59: "softly" noun &4c, type 7 (preposition) &7a4e 46 4c 4f 52 49 4e 53 ; &ff &5a: "florins" noun &01, type 2 &7a55 4c 41 4e 54 45 52 4e ; &ff &5b: "lantern" noun &0a, type 2 &7a5c 26 45 41 54 48 45 52 ; &ff &5c: "feather" noun &10, type 1 &7a63 2d 41 54 43 48 45 53 ; &ff &5d: "matches" noun &11, type 1 &7a6a 43 4c 45 41 56 45 52 ; &ff &5e: "cleaver" noun &24, type 2 &7a71 57 48 49 53 54 4c 45 ; &ff &5f: "whistle" noun &27, type 2 &7a78 42 41 59 4f 4e 45 54 ; &ff &60: "bayonet" noun &2a, type 2 &7a7f 82 52 41 5a 49 45 52 ; &ff &61: "brazier" noun &2e, type 4 &7a86 73 4f 4c 44 49 45 52 ; &ff &62: "soldier" noun &32, type 3 &7a8d 83 4f 4e 53 4f 4c 45 ; &ff &63: "console" noun &3c, type 4 &7a94 f1 55 49 43 4b 4c 59 ; &ff &64: "quickly" noun &4b, type 7 (preposition) &7a9b f1 55 49 45 54 4c 59 ; &ff &65: "quietly" noun &4c, type 7 (preposition) &7aa2 24 4f 43 55 4d 45 4e 54 ; &ff &66: "document" noun &16, type 1 &7aaa 53 43 49 53 53 4f 52 53 ; &ff &67: "scissors" noun &28, type 2 &7ab2 54 57 45 45 5a 45 52 53 ; &ff &68: "tweezers" noun &29, type 2 &7aba 44 45 53 50 41 54 43 48 ; &ff &69: "despatch" noun &2b, type 2 &7ac2 a7 52 41 46 46 49 54 49 ; &ff &6a: "graffiti" noun &33, type 5 &7aca b4 41 50 45 53 54 52 59 ; &ff &6b: "tapestry" noun &39, type 5 &7ad2 88 41 54 53 54 41 4e 44 ; &ff &6c: "hatstand" noun &3c, type 4 &7ada f3 49 4c 45 4e 54 4c 59 ; &ff &6d: "silently" noun &4c, type 7 (preposition) &7ae2 04 55 4e 47 41 52 45 45 53 ; &ff &6e: "dungarees" noun &12, type 0 &7aeb 34 4f 4f 54 48 50 49 43 4b ; &ff &6f: "toothpick" noun &13, type 1 &7af4 24 4f 43 55 4d 45 4e 54 53 ; &ff &70: "documents" noun &16, type 1 &7afd a7 55 4e 50 4f 57 44 45 52 ; &ff &71: "gunpowder" noun &3a, type 5 &7b06 e3 41 52 45 46 55 4c 4c 59 ; &ff &72: "carefully" noun &4a, type 7 (preposition) &7b0f 44 45 53 50 41 54 43 48 45 53 ; &ff &73: "despatches" noun &2b, type 2 &7b19 33 43 52 45 57 44 52 49 56 45 52 ; &ff &74: "screwdriver" noun &14, type 1 ; verb_translation_table ; 0 1 2 3 4 5 6 7 8 9 a b c d e f &7b24 00 01 02 03 04 09 0a 0b 0c 0d 0f 10 05 06 07 08 ; &00 &7b34 0e 11 0c 12 13 14 15 16 1a 1c 1c 1e 21 3d 02 04 ; &10 &7b44 09 0b 0d 0f 16 17 18 19 1d 1d 1f 20 22 23 24 25 ; &20 &7b54 27 28 29 2a 2b 2b 2c 2d 2e 2f 30 32 39 40 41 42 ; &30 &7b64 44 45 46 46 01 03 0a 0e 12 18 1b 1d 21 23 26 2c ; &40 &7b74 2c 31 32 34 3b 3c 48 4a 17 33 35 36 37 38 43 10 ; &50 &7b84 3a 3a 3f 47 49 3e 05 06 07 08 ; &60 ; noun_translation_table ; 0 1 2 3 4 5 6 7 8 9 a b c d e f &7b8e 00 3e 3f 40 41 42 43 01 02 03 04 05 06 15 16 17 ; &00 &7b9e 18 1c 22 3d 40 44 45 48 4b 07 08 08 09 0a 0b 0c ; &10 &7bae 17 19 1a 1b 1c 1d 1e 2d 2e 2f 2f 30 33 3f 40 41 ; &20 &7bbe 46 47 4b 0d 11 15 1d 1f 20 21 2f 30 31 32 34 37 ; &30 &7bce 01 0e 0f 1f 22 23 25 26 2c 2d 2e 35 36 38 39 3a ; &40 &7bde 3a 3b 3b 49 4a 4c 01 0a 10 11 24 27 2a 2e 32 3c ; &50 &7bee 4b 4c 16 28 29 2b 33 39 3c 4c 12 13 16 3a 4a 2b ; &60 &7bfe 14 ; &70 ; unused &7bff 00 ; 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 (B) " &7c20 20 20 20 20 20 20 20 20 20 20 20 83 44 4f 43 54 ; " " &7c30 4f 52 20 57 48 4f 20 41 4e 44 20 54 48 45 20 57 ; " "Long ago," the Doctor tells you, " &7c40 41 52 4c 4f 52 44 20 28 42 29 20 20 20 20 20 20 ; ""the Warlord was a Time Lord studying " &7c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "warfare in the search for a means to " &7c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; "stop it. But his motives were subverted," &7c70 20 20 20 20 20 20 20 20 20 20 20 22 4c 6f 6e 67 ; "and he became hooked on war. For some " &7c80 20 61 67 6f 2c 22 20 74 68 65 20 44 6f 63 74 6f ; "centuries now he has been bending his " &7c90 72 20 74 65 6c 6c 73 20 79 6f 75 2c 20 20 20 20 ; "considerable efforts to wandering round " &7ca0 22 74 68 65 20 57 61 72 6c 6f 72 64 20 77 61 73 ; "in history and committing the greatest " &7cb0 20 61 20 54 69 6d 65 20 4c 6f 72 64 20 73 74 75 ; "Time Crime - changing events to keep " &7cc0 64 79 69 6e 67 20 20 20 77 61 72 66 61 72 65 20 ; "various conflicts going. " &7cd0 69 6e 20 74 68 65 20 73 65 61 72 63 68 20 66 6f ; " " &7ce0 72 20 61 20 6d 65 61 6e 73 20 74 6f 20 20 20 20 ; " "On Sirius V he did it by giving the " &7cf0 73 74 6f 70 20 69 74 2e 20 42 75 74 20 68 69 73 ; "cave people fire. On Fomalhaut VII it " &7d00 20 6d 6f 74 69 76 65 73 20 77 65 72 65 20 73 75 ; "was the internal combustion engine. I " &7d10 62 76 65 72 74 65 64 2c 61 6e 64 20 68 65 20 62 ; "suspect he may have been behind the " &7d20 65 63 61 6d 65 20 68 6f 6f 6b 65 64 20 6f 6e 20 ; "destruction of the Notrethan race..." " &7d30 77 61 72 2e 20 46 6f 72 20 73 6f 6d 65 20 20 20 ; " " &7d40 63 65 6e 74 75 72 69 65 73 20 6e 6f 77 20 68 65 ; " The Doctor busies himself with the " &7d50 20 68 61 73 20 62 65 65 6e 20 62 65 6e 64 69 6e ; "Tardis controls. "And now Napoleon " &7d60 67 20 68 69 73 20 20 20 63 6f 6e 73 69 64 65 72 ; "Bonaparte," he murmurs. " &7d70 61 62 6c 65 20 65 66 66 6f 72 74 73 20 74 6f 20 ; " " &7d80 77 61 6e 64 65 72 69 6e 67 20 72 6f 75 6e 64 20 ; " .PRESS RETURN " &7d90 69 6e 20 68 69 73 74 6f 72 79 20 61 6e 64 20 63 ; " " &7da0 6f 6d 6d 69 74 74 69 6e 67 20 74 68 65 20 67 72 &7db0 65 61 74 65 73 74 20 20 54 69 6d 65 20 43 72 69 &7dc0 6d 65 20 2d 20 63 68 61 6e 67 69 6e 67 20 65 76 &7dd0 65 6e 74 73 20 74 6f 20 6b 65 65 70 20 20 20 20 &7de0 76 61 72 69 6f 75 73 20 63 6f 6e 66 6c 69 63 74 &7df0 73 20 67 6f 69 6e 67 2e 20 20 20 20 20 20 20 20 &7e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7e30 20 20 20 22 4f 6e 20 53 69 72 69 75 73 20 56 20 &7e40 68 65 20 64 69 64 20 69 74 20 62 79 20 67 69 76 &7e50 69 6e 67 20 74 68 65 20 63 61 76 65 20 70 65 6f &7e60 70 6c 65 20 66 69 72 65 2e 20 4f 6e 20 46 6f 6d &7e70 61 6c 68 61 75 74 20 56 49 49 20 69 74 20 20 20 &7e80 77 61 73 20 74 68 65 20 69 6e 74 65 72 6e 61 6c &7e90 20 63 6f 6d 62 75 73 74 69 6f 6e 20 65 6e 67 69 &7ea0 6e 65 2e 20 49 20 20 20 73 75 73 70 65 63 74 20 &7eb0 68 65 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e &7ec0 20 62 65 68 69 6e 64 20 74 68 65 20 20 20 20 20 &7ed0 64 65 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 74 &7ee0 68 65 20 4e 6f 74 72 65 74 68 61 6e 20 72 61 63 &7ef0 65 2e 2e 2e 22 20 20 20 20 20 20 20 20 20 20 20 &7f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &7f20 20 20 20 20 54 68 65 20 44 6f 63 74 6f 72 20 62 &7f30 75 73 69 65 73 20 68 69 6d 73 65 6c 66 20 77 69 &7f40 74 68 20 74 68 65 20 20 54 61 72 64 69 73 20 63 &7f50 6f 6e 74 72 6f 6c 73 2e 20 22 41 6e 64 20 6e 6f &7f60 77 20 4e 61 70 6f 6c 65 6f 6e 20 20 20 20 20 20 &7f70 42 6f 6e 61 70 61 72 74 65 2c 22 20 68 65 20 6d &7f80 75 72 6d 75 72 73 2e 20 20 20 20 20 20 20 20 20 &7f90 20 20 20 20 20 20 20 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 20 20 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 20