{"schema":1,"platform":"c64","game":"neverending-story","title":"The NeverEnding Story","build":"Ocean disk release; Part 1 at the command prompt","symbols_sha256":"7e3767218192862ba63d3a60ef1e8808796b1f0158d4b046dbd05aab089b204b","index":[{"a":928,"n":"RUN_FASTLOADER","k":"routine","len":6,"c":true},{"a":934,"n":"SWAP_FASTLOADER_IMAGE","k":"routine","len":7,"c":true},{"a":939,"n":"SWAP_FASTLOADER_PAGE_LOOP","k":"branch","len":1,"c":false},{"a":941,"n":"SWAP_SRC_VISIBLE_PAGE","k":"routine","len":3,"c":true},{"a":944,"n":"SWAP_SRC_HIDDEN_PAGE","k":"routine","len":3,"c":true},{"a":947,"n":"SWAP_DST_VISIBLE_PAGE","k":"routine","len":4,"c":true},{"a":951,"n":"SWAP_DST_HIDDEN_PAGE","k":"routine","len":42,"c":true},{"a":1024,"n":"ENTRY_POINT","k":"routine","len":6,"c":true},{"a":1030,"n":"CALL_INIT_GAME","k":"routine","len":3,"c":true},{"a":1033,"n":"MAIN_LOOP","k":"routine","len":12,"c":true},{"a":1045,"n":"SWITCH_TO_NEXT_PART","k":"routine","len":32,"c":true},{"a":1063,"n":"NEXT_PART_SET_ROOM_PART2","k":"branch","len":1,"c":false},{"a":1068,"n":"NEXT_PART_LOAD_AND_SETUP","k":"branch","len":1,"c":false},{"a":1077,"n":"ROOM_GRAPHIC_TABLE_PTR","k":"variable","len":1,"c":true},{"a":1078,"n":"a_0436","k":"variable","len":1,"c":true},{"a":1079,"n":"PART_INIT_SCRIPT_TABLE_PTR","k":"variable","len":1,"c":true},{"a":1080,"n":"a_0438","k":"variable","len":1,"c":true},{"a":1081,"n":"SHOW_PART_LOAD_SCREEN","k":"routine","len":38,"c":true},{"a":1119,"n":"LOAD_DISABLED_RTS","k":"routine","len":1,"c":true},{"a":1120,"n":"ROUTINE_PADDING_0460","k":"variable","len":1,"c":true},{"a":1121,"n":"DISK_LOAD_GAME","k":"routine","len":48,"c":true},{"a":1162,"n":"DISK_LOAD_POST_LOAD_SETUP","k":"branch","len":1,"c":false},{"a":1169,"n":"SAVE_DISABLED_RTS","k":"routine","len":1,"c":true},{"a":1170,"n":"UNUSED_READ_FILENAME_PTR","k":"variable","len":2,"c":true},{"a":1172,"n":"DISK_SAVE_GAME","k":"routine","len":34,"c":true},{"a":1206,"n":"DISK_IO_ERROR","k":"routine","len":13,"c":true},{"a":1209,"n":"DISK_IO_ERROR_REPORT","k":"branch","len":1,"c":false},{"a":1219,"n":"ABORT_EMPTY_FILENAME","k":"routine","len":5,"c":true},{"a":1224,"n":"READ_FILENAME","k":"routine","len":35,"c":true},{"a":1241,"n":"READ_FILENAME_COPY_LOOP","k":"branch","len":1,"c":false},{"a":1250,"n":"READ_FILENAME_STORE_CHAR","k":"branch","len":1,"c":false},{"a":1259,"n":"BLANK_FILENAME_BUF","k":"routine","len":11,"c":true},{"a":1263,"n":"BLANK_FILENAME_LOOP","k":"branch","len":1,"c":false},{"a":1270,"n":"PREPARE_DISK_IO","k":"routine","len":22,"c":true},{"a":1292,"n":"SETUP_KERNAL_FILE","k":"routine","len":21,"c":true},{"a":1313,"n":"END_DISK_IO","k":"routine","len":27,"c":true},{"a":1340,"n":"SWAP_ZERO_PAGE_AND_BACKUP","k":"routine","len":22,"c":true},{"a":1342,"n":"SWAP_LOOP","k":"branch","len":1,"c":false},{"a":1362,"n":"WAIT_FOR_KEY","k":"routine","len":11,"c":true},{"a":1373,"n":"WAIT_FOR_SPACE_KEY","k":"routine","len":8,"c":true},{"a":1381,"n":"CHECK_YES_KEY","k":"routine","len":11,"c":true},{"a":1390,"n":"CHECK_YES_ACCEPT","k":"branch","len":1,"c":false},{"a":1392,"n":"RENDER_ROOM_GRAPHICS","k":"routine","len":79,"c":true},{"a":1409,"n":"RENDER_ROOM_GFX_RECORD_LOOP","k":"branch","len":1,"c":false},{"a":1418,"n":"RENDER_ROOM_GFX_NEXT_RECORD","k":"branch","len":1,"c":false},{"a":1429,"n":"RENDER_ROOM_GFX_LOOP_TAIL","k":"branch","len":1,"c":false},{"a":1441,"n":"RENDER_ROOM_GFX_STRIDE_LOOP","k":"branch","len":1,"c":false},{"a":1453,"n":"RENDER_ROOM_GFX_STRIDE_TAIL","k":"branch","len":1,"c":false},{"a":1471,"n":"BLIT_ROOM_GRAPHIC","k":"routine","len":183,"c":true},{"a":1475,"n":"BLIT_ROOM_GFX_COPY_RECORD","k":"branch","len":1,"c":false},{"a":1492,"n":"BLIT_ROOM_GFX_ROW_LOOP","k":"branch","len":1,"c":false},{"a":1524,"n":"BLIT_ROOM_GFX_ADD_COLUMN","k":"branch","len":1,"c":false},{"a":1653,"n":"BLIT_ROOM_GFX_DONE","k":"branch","len":1,"c":false},{"a":1654,"n":"COPY_BLIT_ROW","k":"routine","len":31,"c":true},{"a":1656,"n":"COPY_BLIT_ROW_LOOP","k":"branch","len":1,"c":false},{"a":1666,"n":"COPY_BLIT_ROW_BUMP_DEST","k":"branch","len":1,"c":false},{"a":1672,"n":"COPY_BLIT_ROW_TEST_END","k":"branch","len":1,"c":false},{"a":1685,"n":"READ_RASTER_LINE","k":"routine","len":4,"c":true},{"a":1689,"n":"NOOP_0699","k":"routine","len":1,"c":true},{"a":1690,"n":"NOOP_069A","k":"routine","len":1,"c":true},{"a":1691,"n":"INITIALIZE_PART1_DISPLAY","k":"routine","len":116,"c":true},{"a":1807,"n":"ENTER_GAMEPLAY_DISPLAY","k":"routine","len":33,"c":true},{"a":1840,"n":"ENTER_DISPLAY_LOADER_COPY_LOOP","k":"routine","len":73,"c":true},{"a":1913,"n":"MEMCPY","k":"routine","len":37,"c":true},{"a":1921,"n":"COPY_BLOCK_LOOP","k":"branch","len":1,"c":false},{"a":1935,"n":"COPY_REMAINDER_BYTES","k":"branch","len":1,"c":false},{"a":1944,"n":"COPY_REMAINDER_LOOP","k":"branch","len":1,"c":false},{"a":1950,"n":"REMAINDER_BYTES","k":"routine","len":4,"c":true},{"a":1953,"n":"COPY_COMPLETED","k":"branch","len":1,"c":false},{"a":1954,"n":"RESTORE_GAMEPLAY_DISPLAY","k":"routine","len":70,"c":true},{"a":2024,"n":"CLEAR_TEXT_SCREEN","k":"routine","len":25,"c":true},{"a":2036,"n":"CLEAR_TEXT_PAGE_LOOP","k":"branch","len":1,"c":false},{"a":2038,"n":"CLEAR_TEXT_BYTE_LOOP","k":"branch","len":1,"c":false},{"a":2049,"n":"READ_INPUT_ALT","k":"routine","len":5,"c":true},{"a":2054,"n":"READ_INPUT","k":"routine","len":199,"c":true},{"a":2062,"n":"READ_INPUT_SET_IDLE_HIGH","k":"branch","len":1,"c":false},{"a":2082,"n":"READ_INPUT_BLANK_LOOP","k":"branch","len":1,"c":false},{"a":2108,"n":"READ_INPUT_IDLE_TICK","k":"branch","len":1,"c":false},{"a":2123,"n":"READ_INPUT_SCAN_KEY","k":"branch","len":1,"c":false},{"a":2158,"n":"READ_INPUT_STORE_CHAR","k":"branch","len":1,"c":false},{"a":2171,"n":"READ_INPUT_RESET_REPEAT","k":"branch","len":1,"c":false},{"a":2179,"n":"READ_INPUT_BACKSPACE","k":"branch","len":1,"c":false},{"a":2218,"n":"READ_INPUT_BACKSPACE_COLOR","k":"branch","len":1,"c":false},{"a":2229,"n":"READ_INPUT_REDRAW_CURSOR","k":"branch","len":1,"c":false},{"a":2244,"n":"READ_INPUT_TIMED_OUT","k":"branch","len":1,"c":false},{"a":2253,"n":"FINISH_INPUT_LINE","k":"routine","len":14,"c":true},{"a":2267,"n":"PRINT_CHARACTER","k":"routine","len":36,"c":true},{"a":2282,"n":"INC_COLOR_PTR","k":"branch","len":1,"c":false},{"a":2288,"n":"SET_COLUMN","k":"branch","len":1,"c":false},{"a":2299,"n":"RESET_COLUMN","k":"branch","len":1,"c":false},{"a":2303,"n":"SCROLL_IF_BOTTOM","k":"routine","len":74,"c":true},{"a":2371,"n":"CLEAR_LAST_ROW","k":"branch","len":1,"c":false},{"a":2376,"n":"SCROLL_DONE","k":"branch","len":1,"c":false},{"a":2377,"n":"a_0949","k":"routine","len":3,"c":true},{"a":2380,"n":"DRAW_INPUT_CURSOR","k":"routine","len":11,"c":true},{"a":2390,"n":"RETURN_FROM_SCROLL","k":"branch","len":1,"c":false},{"a":2391,"n":"PRINT_ROOM_TEXT_DROPCAP","k":"routine","len":68,"c":true},{"a":2422,"n":"DROPCAP_GAP_LOOP","k":"branch","len":1,"c":false},{"a":2459,"n":"PRINT_SENTENCE","k":"routine","len":15,"c":true},{"a":2474,"n":"COMPUTE_SENTENCE_PTR_OFS","k":"routine","len":16,"c":true},{"a":2486,"n":"STORE_HIGH_BYTE","k":"branch","len":1,"c":false},{"a":2490,"n":"COMPUTE_SENTENCE_PTR","k":"routine","len":29,"c":true},{"a":2519,"n":"PRINT_EVENT_TEXT","k":"routine","len":55,"c":true},{"a":2541,"n":"EVENT_TEXT_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":2545,"n":"EVENT_TEXT_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":2574,"n":"PROCESS_TERM","k":"routine","len":45,"c":true},{"a":2587,"n":"TOKEN_TEST","k":"branch","len":1,"c":false},{"a":2592,"n":"DISPATCH_CHARACTER","k":"branch","len":1,"c":false},{"a":2609,"n":"CONTINUE_WORD_SCAN","k":"branch","len":1,"c":false},{"a":2619,"n":"TEST_WORD_FITS_SCREEN_1","k":"routine","len":56,"c":true},{"a":2631,"n":"CALL_PRINT_WORD","k":"branch","len":1,"c":false},{"a":2634,"n":"TEST_ADD_SPACE","k":"branch","len":1,"c":false},{"a":2654,"n":"TEST_WORD_FITS_SCREEN_2","k":"branch","len":1,"c":false},{"a":2666,"n":"PRINT_WORD_AND_SPACE","k":"branch","len":1,"c":false},{"a":2675,"n":"PROCESS_TOKEN","k":"routine","len":104,"c":true},{"a":2699,"n":"STORE_HIGH_BYTE","k":"branch","len":1,"c":false},{"a":2703,"n":"COMPUTE_TOKEN_ADDR","k":"branch","len":1,"c":false},{"a":2745,"n":"MOVE_POINTER_TO_CHARS","k":"branch","len":1,"c":false},{"a":2751,"n":"PRINT_TERM","k":"branch","len":1,"c":false},{"a":2771,"n":"RESUME_SENTENCE","k":"branch","len":1,"c":false},{"a":2779,"n":"PRINT_WORD","k":"routine","len":26,"c":true},{"a":2805,"n":"UPPERCASE_FILTER_ENABLED","k":"routine","len":10,"c":true},{"a":2812,"n":"CONTINUE_UPPERCASE_LETTER","k":"branch","len":1,"c":false},{"a":2815,"n":"UPPERCASE_LETTER_FLAG","k":"routine","len":19,"c":true},{"a":2827,"n":"CONTINUE_LOWERCASE_LETTER","k":"branch","len":1,"c":false},{"a":2831,"n":"CONTINUE_ANY_LETTER","k":"branch","len":1,"c":false},{"a":2834,"n":"HANDLE_DOT","k":"routine","len":43,"c":true},{"a":2841,"n":"PRINT_CHAR_AND_CONTINUE","k":"branch","len":1,"c":false},{"a":2844,"n":"INCREMENT_TERM_PTR","k":"branch","len":1,"c":false},{"a":2850,"n":"PROCEED_TO_NEXT_CHAR","k":"branch","len":1,"c":false},{"a":2855,"n":"NEXT_CHAR_COLOR_ESCAPE","k":"branch","len":1,"c":false},{"a":2861,"n":"NEXT_CHAR_SET_COLOR","k":"branch","len":1,"c":false},{"a":2871,"n":"HANDLE_NEWLINE","k":"branch","len":1,"c":false},{"a":2877,"n":"PRINT_PARAGRAPH_INDENT","k":"routine","len":14,"c":true},{"a":2891,"n":"PRINT_EMPTY_LINE","k":"routine","len":13,"c":true},{"a":2903,"n":"PRINTING_COMPLETED","k":"branch","len":1,"c":false},{"a":2904,"n":"PRINT_ROOM_TEXT","k":"routine","len":101,"c":true},{"a":2936,"n":"ROOM_TEXT_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":2940,"n":"ROOM_TEXT_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":2997,"n":"ROOM_TEXT_SET_BODY_COLOR","k":"branch","len":1,"c":false},{"a":3005,"n":"BITMAP_ROW_ADDR_TABLE","k":"table","len":20,"c":true},{"a":3025,"n":"f_0BD1","k":"variable","len":2,"c":true},{"a":3027,"n":"SCREEN_ROW_ADDR_TABLE","k":"table","len":18,"c":true},{"a":3045,"n":"COLOR_ROW_ADDR_TABLE","k":"table","len":20,"c":true},{"a":3065,"n":"ROOM_GRAPHIC_TABLE","k":"table","len":342,"c":true},{"a":3407,"n":"OBJ_ROOM_TABLE","k":"table","len":125,"c":true},{"a":3532,"n":"PART_ROOM_BASE_IDS","k":"table","len":3,"c":true},{"a":3535,"n":"PART_INIT_SCRIPT_POINTERS","k":"table","len":6,"c":true},{"a":3541,"n":"FILENAME_PTR","k":"variable","len":1,"c":true},{"a":3542,"n":"a_0DD6","k":"variable","len":1,"c":true},{"a":3543,"n":"FILENAME_BUF","k":"table","len":8,"c":true},{"a":3551,"n":"UNUSED_FILENAME_BUFFER_SIZE","k":"variable","len":2,"c":true},{"a":3553,"n":"ACTION_DISPATCH_TABLE_PTR","k":"variable","len":1,"c":true},{"a":3554,"n":"ACTION_DISPATCH_TABLE_PTR_HI","k":"variable","len":1,"c":true},{"a":3555,"n":"ACTION_DISPATCH_TABLE","k":"table","len":66,"c":true},{"a":3621,"n":"SCRIPT_GOTO_ACTION_SCRIPT_NOUN","k":"routine","len":14,"c":true},{"a":3629,"n":"SCRIPT_MOVE_NOUN_BAD_DIRECTION","k":"branch","len":1,"c":false},{"a":3635,"n":"SCRIPT_GOTO_ACTION_SCRIPT","k":"routine","len":3,"c":true},{"a":3638,"n":"RUN_DIRECTION_ACTION_SCRIPT","k":"routine","len":9,"c":true},{"a":3647,"n":"ACTION_MOVE_DIRECTION","k":"routine","len":78,"c":true},{"a":3665,"n":"MOVE_DIR_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":3669,"n":"MOVE_DIR_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":3697,"n":"MOVE_DIR_SCAN_EXITS","k":"branch","len":1,"c":false},{"a":3711,"n":"MOVE_DIR_TAKE_EXIT","k":"branch","len":1,"c":false},{"a":3720,"n":"MOVE_DIR_NO_EXIT","k":"branch","len":1,"c":false},{"a":3725,"n":"SCRIPT_SET_CURRENT_ROOM","k":"routine","len":7,"c":true},{"a":3732,"n":"SCRIPT_SET_OBJECT_LOCATION","k":"routine","len":18,"c":true},{"a":3746,"n":"SET_OBJ_LOC_STORE","k":"branch","len":1,"c":false},{"a":3750,"n":"SET_VERBOSE_OFF","k":"routine","len":5,"c":true},{"a":3755,"n":"SET_VERBOSE_ON","k":"routine","len":5,"c":true},{"a":3760,"n":"ACTION_DROP_OBJECT","k":"routine","len":82,"c":true},{"a":3769,"n":"DROP_OBJ_RESOLVE","k":"branch","len":1,"c":false},{"a":3781,"n":"DROP_OBJ_PLACE_IN_ROOM","k":"branch","len":1,"c":false},{"a":3799,"n":"DROP_OBJ_FIND_RECORD","k":"branch","len":1,"c":false},{"a":3804,"n":"DROP_OBJ_SCAN_RECORDS","k":"branch","len":1,"c":false},{"a":3820,"n":"DROP_OBJ_NEXT_RECORD","k":"branch","len":1,"c":false},{"a":3830,"n":"DROP_OBJ_CLEAR_RECORD","k":"branch","len":1,"c":false},{"a":3842,"n":"ACTION_TAKE_OBJECT","k":"routine","len":110,"c":true},{"a":3851,"n":"TAKE_OBJ_RESOLVE","k":"branch","len":1,"c":false},{"a":3859,"n":"TAKE_OBJ_CHECK_STATE","k":"branch","len":1,"c":false},{"a":3898,"n":"SHOW_OBJECT_ICON","k":"branch","len":1,"c":false},{"a":3900,"n":"SHOW_ICON_SCAN_FREE_SLOT","k":"branch","len":1,"c":false},{"a":3915,"n":"SHOW_ICON_INSTALL_POINTER","k":"branch","len":1,"c":false},{"a":3932,"n":"TAKE_OBJ_ALREADY_CARRIED","k":"branch","len":1,"c":false},{"a":3937,"n":"TAKE_OBJ_NOT_HERE","k":"branch","len":1,"c":false},{"a":3942,"n":"TAKE_OBJ_BLOCKED","k":"branch","len":1,"c":false},{"a":3947,"n":"TAKE_OBJ_NO_NOUN","k":"branch","len":1,"c":false},{"a":3952,"n":"CALC_OBJECT_GRAPHIC_PTR","k":"routine","len":27,"c":true},{"a":3964,"n":"CALC_OBJ_GFX_ADD_BLOCK","k":"branch","len":1,"c":false},{"a":3975,"n":"CALC_OBJ_GFX_LOOP_TAIL","k":"branch","len":1,"c":false},{"a":3978,"n":"CALC_OBJ_GFX_DONE","k":"branch","len":1,"c":false},{"a":3979,"n":"STATE_SET_COUNTER","k":"routine","len":14,"c":true},{"a":3993,"n":"STATE_INC_COUNTER","k":"routine","len":15,"c":true},{"a":4007,"n":"INC_COUNTER_DONE","k":"branch","len":1,"c":false},{"a":4008,"n":"STATE_DEC_COUNTER","k":"routine","len":13,"c":true},{"a":4020,"n":"DEC_COUNTER_DONE","k":"branch","len":1,"c":false},{"a":4021,"n":"STATE_SET_FLAG","k":"routine","len":10,"c":true},{"a":4031,"n":"STATE_CLEAR_FLAG","k":"routine","len":10,"c":true},{"a":4041,"n":"RETURN_SKIP_CALLER","k":"routine","len":3,"c":true},{"a":4044,"n":"ACTION_QUIT","k":"routine","len":17,"c":true},{"a":4061,"n":"RESTART_GAME","k":"routine","len":20,"c":true},{"a":4081,"n":"ACTION_NEXT_PART","k":"routine","len":16,"c":true},{"a":4097,"n":"ACTION_PRINT_MESSAGE","k":"routine","len":7,"c":true},{"a":4104,"n":"CMD_INVENTORY","k":"routine","len":118,"c":true},{"a":4115,"n":"INVENTORY_SCAN_LOOP","k":"branch","len":1,"c":false},{"a":4122,"n":"INVENTORY_NEXT_OBJECT","k":"branch","len":1,"c":false},{"a":4140,"n":"INVENTORY_DONE","k":"branch","len":1,"c":false},{"a":4144,"n":"INVENTORY_PRINT_ITEM","k":"branch","len":1,"c":false},{"a":4170,"n":"INVENTORY_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":4174,"n":"INVENTORY_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":4206,"n":"INVENTORY_SET_TERM_PTR","k":"branch","len":1,"c":false},{"a":4222,"n":"DESCRIBE_CURRENT_ROOM","k":"routine","len":139,"c":true},{"a":4235,"n":"DESCRIBE_ROOM_LIT","k":"branch","len":1,"c":false},{"a":4243,"n":"DESCRIBE_ROOM_SCAN_OBJECTS","k":"branch","len":1,"c":false},{"a":4251,"n":"DESCRIBE_ROOM_NEXT_OBJECT","k":"branch","len":1,"c":false},{"a":4257,"n":"DESCRIBE_ROOM_UPDATE_GRAPHIC","k":"branch","len":1,"c":false},{"a":4275,"n":"DESCRIBE_ROOM_DONE","k":"branch","len":1,"c":false},{"a":4276,"n":"DESCRIBE_ROOM_PRINT_OBJECT","k":"branch","len":1,"c":false},{"a":4290,"n":"DESCRIBE_ROOM_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":4294,"n":"DESCRIBE_ROOM_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":4343,"n":"DESCRIBE_ROOM_SKIP_PREFIX","k":"branch","len":1,"c":false},{"a":4349,"n":"DESCRIBE_ROOM_SET_TERM_PTR","k":"branch","len":1,"c":false},{"a":4361,"n":"DESCRIBE_ROOM_SAVED_PREFIX","k":"routine","len":28,"c":true},{"a":4371,"n":"DESCRIBE_ROOM_SUFFIX_10","k":"branch","len":1,"c":false},{"a":4379,"n":"DESCRIBE_ROOM_SUFFIX_07","k":"branch","len":1,"c":false},{"a":4384,"n":"DESCRIBE_ROOM_RESUME_SCAN","k":"branch","len":1,"c":false},{"a":4389,"n":"NOOP_ACTION_11","k":"routine","len":4,"c":true},{"a":4393,"n":"NOOP_ACTION_12","k":"routine","len":4,"c":true},{"a":4397,"n":"SCRIPT_SET_ROOM_GRAPHIC","k":"routine","len":16,"c":true},{"a":4410,"n":"SET_ROOM_GFX_USE_ROOM_DEFAULT","k":"branch","len":1,"c":false},{"a":4413,"n":"SCRIPT_SET_OBJECT_GRAPHIC","k":"routine","len":36,"c":true},{"a":4431,"n":"SET_OBJ_GFX_INSTALL","k":"branch","len":1,"c":false},{"a":4449,"n":"SCRIPT_PRINT_SENTENCE","k":"routine","len":7,"c":true},{"a":4456,"n":"DEC_CARRIED_COUNT","k":"routine","len":6,"c":true},{"a":4462,"n":"INC_CARRIED_COUNT","k":"routine","len":6,"c":true},{"a":4468,"n":"SCRIPT_SET_STATE_4D","k":"routine","len":6,"c":true},{"a":4474,"n":"SHOW_PAUSED_MESSAGE","k":"routine","len":15,"c":true},{"a":4482,"n":"WAIT_FOR_SPACE","k":"branch","len":1,"c":false},{"a":4489,"n":"ACTION_SAVE_DISABLED","k":"routine","len":3,"c":true},{"a":4492,"n":"ACTION_LOAD_DISABLED","k":"routine","len":3,"c":true},{"a":4495,"n":"NOOP_ACTION_15","k":"routine","len":2,"c":true},{"a":4497,"n":"COND_TABLE_PTR","k":"variable","len":1,"c":true},{"a":4498,"n":"a_1192","k":"variable","len":1,"c":true},{"a":4499,"n":"CONDITION_DISPATCH_TABLE","k":"table","len":20,"c":true},{"a":4519,"n":"COND_CURRENT_ROOM_IS","k":"routine","len":11,"c":true},{"a":4530,"n":"COND_OBJECT_IN_ROOM","k":"routine","len":12,"c":true},{"a":4542,"n":"COND_FALSE","k":"routine","len":2,"c":true},{"a":4544,"n":"COND_TRUE","k":"routine","len":2,"c":true},{"a":4546,"n":"COND_OBJECT_CARRIED","k":"routine","len":14,"c":true},{"a":4560,"n":"COND_FLAG_SET","k":"routine","len":12,"c":true},{"a":4572,"n":"COND_FLAG_CLEAR","k":"routine","len":12,"c":true},{"a":4584,"n":"COND_COUNTER_ZERO","k":"routine","len":12,"c":true},{"a":4596,"n":"COND_COUNTER_EQ","k":"routine","len":18,"c":true},{"a":4614,"n":"COND_OBJECT_PRESENT","k":"routine","len":14,"c":true},{"a":4628,"n":"COND_OBJECT_ABSENT","k":"routine","len":14,"c":true},{"a":4642,"n":"COND_RANDOM","k":"routine","len":13,"c":true},{"a":4655,"n":"PARSE_INPUT","k":"routine","len":97,"c":true},{"a":4660,"n":"PARSE_CLEAR_TOKENS","k":"branch","len":1,"c":false},{"a":4666,"n":"PARSE_CLEAR_LOOP","k":"branch","len":1,"c":false},{"a":4683,"n":"PARSE_SKIP_SPACES","k":"branch","len":1,"c":false},{"a":4695,"n":"PARSE_WORD_START","k":"branch","len":1,"c":false},{"a":4699,"n":"PARSE_SCAN_WORD","k":"branch","len":1,"c":false},{"a":4710,"n":"PARSE_LAST_WORD_END","k":"branch","len":1,"c":false},{"a":4718,"n":"PARSE_SAVE_WORD_END","k":"branch","len":1,"c":false},{"a":4720,"n":"PARSE_SKIP_GAP","k":"branch","len":1,"c":false},{"a":4734,"n":"PARSE_RESTORE_WORD_END","k":"branch","len":1,"c":false},{"a":4739,"n":"PARSE_RECORD_WORD_END","k":"branch","len":1,"c":false},{"a":4752,"n":"PARSE_BEGIN_LOOKUP","k":"routine","len":52,"c":true},{"a":4758,"n":"PARSE_NEXT_WORD","k":"branch","len":1,"c":false},{"a":4764,"n":"PARSE_BLANK_WORD_BUFFER","k":"branch","len":1,"c":false},{"a":4780,"n":"PARSE_COPY_WORD_CHARS","k":"branch","len":1,"c":false},{"a":4794,"n":"PARSE_LOAD_VOCAB_PTR","k":"branch","len":1,"c":false},{"a":4804,"n":"VOCAB_LOOKUP","k":"routine","len":50,"c":true},{"a":4818,"n":"VOCAB_NEXT_ENTRY","k":"branch","len":1,"c":false},{"a":4832,"n":"VOCAB_MATCH_CHAR_2","k":"branch","len":1,"c":false},{"a":4843,"n":"VOCAB_MATCH_CHAR_3","k":"branch","len":1,"c":false},{"a":4854,"n":"WORD_NOT_FOUND","k":"routine","len":47,"c":true},{"a":4901,"n":"VOCAB_READ_TOKEN_ID","k":"routine","len":99,"c":true},{"a":4917,"n":"VOCAB_DISAMBIGUATE_TYPE_1","k":"branch","len":1,"c":false},{"a":4946,"n":"VOCAB_TYPE_1_WEST","k":"branch","len":1,"c":false},{"a":4953,"n":"VOCAB_TYPE_1_EAST","k":"branch","len":1,"c":false},{"a":4960,"n":"VOCAB_DISAMBIGUATE_TYPE_5","k":"branch","len":1,"c":false},{"a":4989,"n":"VOCAB_TYPE_5_WEST","k":"branch","len":1,"c":false},{"a":4996,"n":"VOCAB_TYPE_5_EAST","k":"branch","len":1,"c":false},{"a":5000,"n":"VOCAB_STORE_TOKEN_ID","k":"routine","len":41,"c":true},{"a":5014,"n":"RESOLVE_VERB_NOUN","k":"branch","len":1,"c":false},{"a":5026,"n":"RESOLVE_VN_RESTART_SCAN","k":"branch","len":1,"c":false},{"a":5030,"n":"RESOLVE_VN_SCAN_VERB","k":"branch","len":1,"c":false},{"a":5034,"n":"RESOLVE_VN_NEXT_VERB_SLOT","k":"branch","len":1,"c":false},{"a":5041,"n":"COMMAND_UNHANDLED_FLAG","k":"routine","len":82,"c":true},{"a":5052,"n":"RESOLVE_VN_DONE","k":"branch","len":1,"c":false},{"a":5053,"n":"RESOLVE_VN_TEST_CANDIDATE","k":"branch","len":1,"c":false},{"a":5065,"n":"RESOLVE_VN_SKIP_TOKEN","k":"branch","len":1,"c":false},{"a":5068,"n":"RESOLVE_VN_ACCEPT_VERB","k":"branch","len":1,"c":false},{"a":5080,"n":"RESOLVE_VN_SCAN_NOUN","k":"branch","len":1,"c":false},{"a":5091,"n":"RESOLVE_VN_NEXT_NOUN_SLOT","k":"branch","len":1,"c":false},{"a":5101,"n":"RESOLVE_VN_ACCEPT_NOUN","k":"branch","len":1,"c":false},{"a":5113,"n":"RESOLVE_VN_MULTI_COMMAND","k":"branch","len":1,"c":false},{"a":5123,"n":"DISPATCH_COMMAND","k":"routine","len":79,"c":true},{"a":5142,"n":"DISPATCH_SCAN_RULES","k":"branch","len":1,"c":false},{"a":5153,"n":"DISPATCH_NEXT_RULE","k":"branch","len":1,"c":false},{"a":5159,"n":"DISPATCH_CHECK_NOUN","k":"branch","len":1,"c":false},{"a":5173,"n":"DISPATCH_CHECK_INDEX","k":"branch","len":1,"c":false},{"a":5186,"n":"DISPATCH_NO_MATCH","k":"branch","len":1,"c":false},{"a":5187,"n":"DISPATCH_RUN_RULE","k":"branch","len":1,"c":false},{"a":5194,"n":"VERB_NOT_FOUND","k":"branch","len":1,"c":false},{"a":5202,"n":"RUN_ACTION_SCRIPT","k":"routine","len":43,"c":true},{"a":5214,"n":"RUN_ACTION_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":5218,"n":"RUN_ACTION_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":5245,"n":"PRINT_ROOM_DESCRIPTION","k":"routine","len":89,"c":true},{"a":5300,"n":"ROOM_DESC_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":5304,"n":"ROOM_DESC_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":5334,"n":"INIT_GAME","k":"routine","len":3,"c":true},{"a":5337,"n":"CONFIRM_RESTART","k":"routine","len":13,"c":true},{"a":5350,"n":"INIT_GAME_RUN","k":"routine","len":24,"c":true},{"a":5360,"n":"INIT_RUN_SETUP_ROOM","k":"branch","len":1,"c":false},{"a":5363,"n":"DO_RESTART","k":"branch","len":1,"c":false},{"a":5373,"n":"DO_RESTART_DONE","k":"branch","len":1,"c":false},{"a":5374,"n":"INIT_GAME_STATE","k":"routine","len":70,"c":true},{"a":5412,"n":"INIT_STATE_COPY_LOCATIONS","k":"branch","len":1,"c":false},{"a":5428,"n":"INIT_STATE_CLEAR_FLAGS","k":"branch","len":1,"c":false},{"a":5444,"n":"SETUP_CURRENT_ROOM","k":"routine","len":60,"c":true},{"a":5464,"n":"SETUP_ROOM_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":5468,"n":"SETUP_ROOM_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":5494,"n":"SETUP_ROOM_RUN_INIT_SCRIPT","k":"branch","len":1,"c":false},{"a":5504,"n":"SHOW_OPENING_NARRATIVE_AND_ENTER_PLAY","k":"routine","len":88,"c":true},{"a":5592,"n":"FETCH_SCRIPT_BYTE","k":"routine","len":11,"c":true},{"a":5602,"n":"FETCH_SCRIPT_DONE","k":"branch","len":1,"c":false},{"a":5603,"n":"RESOLVE_NOUN","k":"routine","len":34,"c":true},{"a":5610,"n":"RESOLVE_NOUN_SCAN","k":"branch","len":1,"c":false},{"a":5625,"n":"RESOLVE_NOUN_NOT_FOUND","k":"branch","len":1,"c":false},{"a":5627,"n":"RESOLVE_NOUN_FOUND","k":"branch","len":1,"c":false},{"a":5637,"n":"RUN_SCRIPT","k":"routine","len":61,"c":true},{"a":5651,"n":"SCRIPT_CONDITION_INDEX","k":"branch","len":1,"c":false},{"a":5665,"n":"SCRIPT_CONDITION_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":5669,"n":"SCRIPT_CONDITION_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":5698,"n":"CONDITION_HANDLER_TARGET_LO","k":"routine","len":1,"c":true},{"a":5699,"n":"CONDITION_HANDLER_TARGET_HI","k":"routine","len":87,"c":true},{"a":5705,"n":"SCRIPT_READ_ACTION_OPCODE","k":"branch","len":1,"c":false},{"a":5715,"n":"SCRIPT_TEST_END_MARKER","k":"branch","len":1,"c":false},{"a":5719,"n":"SCRIPT_END","k":"branch","len":1,"c":false},{"a":5720,"n":"SCRIPT_TEST_RULE_SEPARATOR","k":"branch","len":1,"c":false},{"a":5738,"n":"SCRIPT_NEXT_RULE","k":"branch","len":1,"c":false},{"a":5741,"n":"SCRIPT_ACTION_INDEX","k":"branch","len":1,"c":false},{"a":5753,"n":"SCRIPT_ACTION_INDEX_HIGH","k":"branch","len":1,"c":false},{"a":5757,"n":"SCRIPT_ACTION_ADD_TABLE_BASE","k":"branch","len":1,"c":false},{"a":5785,"n":"SCRIPT_CALL_ACTION_HANDLER","k":"branch","len":1,"c":false},{"a":5786,"n":"ACTION_HANDLER_TARGET_LO","k":"routine","len":1,"c":true},{"a":5787,"n":"ACTION_HANDLER_TARGET_HI","k":"routine","len":25,"c":true},{"a":5791,"n":"SCRIPT_SKIP_ACTIONS","k":"branch","len":1,"c":false},{"a":5793,"n":"SCRIPT_SKIP_LOOP","k":"branch","len":1,"c":false},{"a":5801,"n":"SCRIPT_SKIP_TEST_MARKER","k":"branch","len":1,"c":false},{"a":5812,"n":"DIRECTION_EXIT_TABLE_PTR","k":"variable","len":1,"c":true},{"a":5813,"n":"a_16B5","k":"variable","len":1,"c":true},{"a":5814,"n":"DIRECTION_EXIT_POINTERS","k":"table","len":20,"c":true},{"a":5834,"n":"ROOM_EXITS_NORTH","k":"table","len":74,"c":true},{"a":5908,"n":"ROOM_EXITS_NORTH_END","k":"variable","len":1,"c":true},{"a":5909,"n":"ROOM_EXITS_NORTHEAST","k":"table","len":50,"c":true},{"a":5959,"n":"ROOM_EXITS_NORTHEAST_END","k":"variable","len":1,"c":true},{"a":5960,"n":"ROOM_EXITS_EAST","k":"table","len":144,"c":true},{"a":6104,"n":"ROOM_EXITS_EAST_END","k":"variable","len":1,"c":true},{"a":6105,"n":"ROOM_EXITS_SOUTHEAST","k":"table","len":52,"c":true},{"a":6157,"n":"ROOM_EXITS_SOUTHEAST_END","k":"variable","len":1,"c":true},{"a":6158,"n":"ROOM_EXITS_SOUTH","k":"table","len":76,"c":true},{"a":6234,"n":"ROOM_EXITS_SOUTH_END","k":"variable","len":1,"c":true},{"a":6235,"n":"ROOM_EXITS_SOUTHWEST","k":"table","len":52,"c":true},{"a":6287,"n":"ROOM_EXITS_SOUTHWEST_END","k":"variable","len":1,"c":true},{"a":6288,"n":"ROOM_EXITS_WEST","k":"table","len":146,"c":true},{"a":6434,"n":"ROOM_EXITS_WEST_END","k":"variable","len":1,"c":true},{"a":6435,"n":"ROOM_EXITS_NORTHWEST","k":"table","len":50,"c":true},{"a":6485,"n":"ROOM_EXITS_NORTHWEST_END","k":"variable","len":1,"c":true},{"a":6486,"n":"ROOM_EXITS_UP","k":"table","len":30,"c":true},{"a":6516,"n":"ROOM_EXITS_UP_END","k":"variable","len":1,"c":true},{"a":6517,"n":"ROOM_EXITS_DOWN","k":"table","len":38,"c":true},{"a":6555,"n":"ROOM_EXITS_DOWN_END","k":"variable","len":1,"c":true},{"a":6556,"n":"VOCAB_TABLE_PTR","k":"variable","len":1,"c":true},{"a":6557,"n":"a_199D","k":"variable","len":1,"c":true},{"a":6558,"n":"VERB_RULE_TABLE_PTR","k":"variable","len":1,"c":true},{"a":6559,"n":"a_199F","k":"variable","len":1,"c":true},{"a":6560,"n":"VERB_RULE_TABLE","k":"table","len":26,"c":true},{"a":6586,"n":"VERB_RULE_GET_ARTAX","k":"variable","len":2,"c":true},{"a":6588,"n":"VERB_RULE_GET_FALKOR","k":"table","len":34,"c":true},{"a":6622,"n":"VERB_RULE_SAVE","k":"variable","len":2,"c":true},{"a":6624,"n":"VERB_RULE_LOAD","k":"table","len":78,"c":true},{"a":6702,"n":"VOCAB_TABLE","k":"table","len":96,"c":true},{"a":6798,"n":"VOCAB_SAVE","k":"table","len":4,"c":true},{"a":6802,"n":"VOCAB_LOAD","k":"table","len":408,"c":true},{"a":7210,"n":"VOCAB_ARTAX","k":"table","len":12,"c":true},{"a":7222,"n":"VOCAB_CRUCIFIX","k":"table","len":48,"c":true},{"a":7270,"n":"VOCAB_TABLE_END","k":"variable","len":1,"c":true},{"a":7271,"n":"TOKEN_POINTERS_BASE_ADDR","k":"variable","len":1,"c":true},{"a":7272,"n":"a_1C68","k":"variable","len":1,"c":true},{"a":7273,"n":"SENTENCE_POINTERS_BASE_ADDR","k":"variable","len":1,"c":true},{"a":7274,"n":"a_1C6A","k":"variable","len":1,"c":true},{"a":7275,"n":"OBJECT_DESCRIPTION_TABLE_PTR","k":"variable","len":1,"c":true},{"a":7276,"n":"a_1C6C","k":"variable","len":1,"c":true},{"a":7277,"n":"GLOBAL_TURN_SCRIPT_PTR","k":"variable","len":1,"c":true},{"a":7278,"n":"a_1C6E","k":"variable","len":1,"c":true},{"a":7279,"n":"GLOBAL_TURN_SCRIPT","k":"table","len":65,"c":true},{"a":7344,"n":"SENTENCE_POINTERS","k":"table","len":136,"c":true},{"a":7480,"n":"SENTENCE_00","k":"table","len":22,"c":true},{"a":7502,"n":"SENTENCE_01","k":"table","len":20,"c":true},{"a":7522,"n":"SENTENCE_02","k":"table","len":21,"c":true},{"a":7543,"n":"SENTENCE_03","k":"table","len":11,"c":true},{"a":7554,"n":"SENTENCE_04","k":"table","len":3,"c":true},{"a":7557,"n":"SENTENCE_05","k":"table","len":3,"c":true},{"a":7560,"n":"SENTENCE_06","k":"table","len":15,"c":true},{"a":7575,"n":"SENTENCE_07","k":"table","len":6,"c":true},{"a":7581,"n":"SENTENCE_08","k":"table","len":15,"c":true},{"a":7596,"n":"SENTENCE_09","k":"table","len":24,"c":true},{"a":7620,"n":"SENTENCE_0A","k":"table","len":20,"c":true},{"a":7640,"n":"SENTENCE_0B","k":"table","len":27,"c":true},{"a":7667,"n":"SENTENCE_0C","k":"table","len":7,"c":true},{"a":7674,"n":"SENTENCE_0D","k":"table","len":9,"c":true},{"a":7683,"n":"SENTENCE_0E","k":"table","len":22,"c":true},{"a":7705,"n":"SENTENCE_0F","k":"table","len":4,"c":true},{"a":7709,"n":"SENTENCE_10","k":"table","len":4,"c":true},{"a":7713,"n":"SENTENCE_11","k":"table","len":23,"c":true},{"a":7736,"n":"SENTENCE_12","k":"table","len":7,"c":true},{"a":7743,"n":"SENTENCE_13","k":"table","len":7,"c":true},{"a":7750,"n":"SENTENCE_14","k":"table","len":11,"c":true},{"a":7761,"n":"SENTENCE_15","k":"table","len":11,"c":true},{"a":7772,"n":"SENTENCE_16","k":"table","len":10,"c":true},{"a":7782,"n":"SENTENCE_17","k":"table","len":14,"c":true},{"a":7796,"n":"SENTENCE_18","k":"table","len":29,"c":true},{"a":7825,"n":"SENTENCE_19","k":"table","len":20,"c":true},{"a":7845,"n":"SENTENCE_1A","k":"table","len":21,"c":true},{"a":7866,"n":"SENTENCE_1B","k":"table","len":12,"c":true},{"a":7878,"n":"SENTENCE_1C","k":"table","len":36,"c":true},{"a":7914,"n":"SENTENCE_1D","k":"table","len":26,"c":true},{"a":7940,"n":"SENTENCE_1E","k":"table","len":13,"c":true},{"a":7953,"n":"SENTENCE_1F","k":"table","len":4,"c":true},{"a":7957,"n":"SENTENCE_20","k":"table","len":5,"c":true},{"a":7962,"n":"SENTENCE_21","k":"table","len":18,"c":true},{"a":7980,"n":"SENTENCE_22","k":"table","len":10,"c":true},{"a":7990,"n":"SENTENCE_23","k":"table","len":10,"c":true},{"a":8000,"n":"SENTENCE_24","k":"table","len":18,"c":true},{"a":8018,"n":"SENTENCE_25","k":"table","len":19,"c":true},{"a":8037,"n":"SENTENCE_26","k":"table","len":16,"c":true},{"a":8053,"n":"SENTENCE_27","k":"table","len":24,"c":true},{"a":8077,"n":"SENTENCE_28","k":"table","len":24,"c":true},{"a":8101,"n":"SENTENCE_29","k":"table","len":41,"c":true},{"a":8142,"n":"SENTENCE_2A","k":"table","len":61,"c":true},{"a":8203,"n":"SENTENCE_2B","k":"table","len":14,"c":true},{"a":8217,"n":"SENTENCE_2C","k":"table","len":28,"c":true},{"a":8245,"n":"SENTENCE_2D","k":"table","len":15,"c":true},{"a":8260,"n":"SENTENCE_2E","k":"table","len":19,"c":true},{"a":8279,"n":"SENTENCE_2F","k":"table","len":14,"c":true},{"a":8293,"n":"SENTENCE_30","k":"table","len":9,"c":true},{"a":8302,"n":"SENTENCE_31","k":"table","len":9,"c":true},{"a":8311,"n":"SENTENCE_32","k":"table","len":11,"c":true},{"a":8322,"n":"SENTENCE_33","k":"table","len":9,"c":true},{"a":8331,"n":"SENTENCE_34","k":"table","len":10,"c":true},{"a":8341,"n":"SENTENCE_35","k":"table","len":10,"c":true},{"a":8351,"n":"SENTENCE_36","k":"table","len":23,"c":true},{"a":8374,"n":"SENTENCE_37","k":"table","len":6,"c":true},{"a":8380,"n":"SENTENCE_38","k":"table","len":12,"c":true},{"a":8392,"n":"SENTENCE_39","k":"table","len":24,"c":true},{"a":8416,"n":"SENTENCE_3A","k":"table","len":76,"c":true},{"a":8492,"n":"SENTENCE_3B","k":"table","len":124,"c":true},{"a":8616,"n":"SENTENCE_3C","k":"table","len":17,"c":true},{"a":8633,"n":"SENTENCE_3D","k":"table","len":19,"c":true},{"a":8652,"n":"SENTENCE_3E","k":"table","len":26,"c":true},{"a":8678,"n":"SENTENCE_3F","k":"table","len":25,"c":true},{"a":8703,"n":"SENTENCE_40","k":"table","len":22,"c":true},{"a":8725,"n":"SENTENCE_41","k":"table","len":45,"c":true},{"a":8770,"n":"SENTENCE_42","k":"table","len":21,"c":true},{"a":8791,"n":"SENTENCE_43","k":"table","len":21,"c":true},{"a":8812,"n":"INITIAL_OBJECT_LOCATIONS","k":"table","len":54,"c":true},{"a":8866,"n":"INITIAL_CARRIED_END","k":"variable","len":1,"c":true},{"a":8867,"n":"OBJECT_COUNT","k":"variable","len":1,"c":true},{"a":8868,"n":"NOUN_TO_OBJECT_INDEX","k":"table","len":36,"c":true},{"a":8904,"n":"NOUN_TO_OBJECT_END","k":"variable","len":1,"c":true},{"a":8905,"n":"OBJECT_DESCRIPTION_POINTERS","k":"table","len":108,"c":true},{"a":9013,"n":"OBJECT_DESCRIPTION_00","k":"table","len":3,"c":true},{"a":9016,"n":"OBJECT_DESCRIPTION_01","k":"variable","len":1,"c":true},{"a":9017,"n":"OBJECT_DESCRIPTION_05","k":"table","len":20,"c":true},{"a":9037,"n":"OBJECT_DESCRIPTION_08","k":"table","len":26,"c":true},{"a":9063,"n":"OBJECT_DESCRIPTION_09","k":"table","len":19,"c":true},{"a":9082,"n":"OBJECT_DESCRIPTION_0A","k":"table","len":10,"c":true},{"a":9092,"n":"OBJECT_DESCRIPTION_0B","k":"table","len":3,"c":true},{"a":9095,"n":"OBJECT_DESCRIPTION_0C","k":"table","len":12,"c":true},{"a":9107,"n":"OBJECT_DESCRIPTION_0F","k":"table","len":7,"c":true},{"a":9114,"n":"OBJECT_DESCRIPTION_11","k":"table","len":13,"c":true},{"a":9127,"n":"OBJECT_DESCRIPTION_12","k":"table","len":9,"c":true},{"a":9136,"n":"OBJECT_DESCRIPTION_13","k":"table","len":12,"c":true},{"a":9148,"n":"OBJECT_DESCRIPTION_14","k":"table","len":28,"c":true},{"a":9176,"n":"OBJECT_DESCRIPTION_15","k":"table","len":14,"c":true},{"a":9190,"n":"OBJECT_DESCRIPTION_16","k":"table","len":18,"c":true},{"a":9208,"n":"OBJECT_DESCRIPTION_17","k":"table","len":19,"c":true},{"a":9227,"n":"OBJECT_DESCRIPTION_18","k":"table","len":27,"c":true},{"a":9254,"n":"OBJECT_DESCRIPTION_19","k":"table","len":14,"c":true},{"a":9268,"n":"OBJECT_DESCRIPTION_1A","k":"table","len":18,"c":true},{"a":9286,"n":"OBJECT_DESCRIPTION_1B","k":"table","len":18,"c":true},{"a":9304,"n":"OBJECT_DESCRIPTION_1D","k":"table","len":21,"c":true},{"a":9325,"n":"OBJECT_DESCRIPTION_1E","k":"table","len":29,"c":true},{"a":9354,"n":"OBJECT_DESCRIPTION_1F","k":"table","len":24,"c":true},{"a":9378,"n":"OBJECT_DESCRIPTION_21","k":"table","len":25,"c":true},{"a":9403,"n":"OBJECT_DESCRIPTION_22","k":"table","len":18,"c":true},{"a":9421,"n":"OBJECT_DESCRIPTION_24","k":"table","len":36,"c":true},{"a":9457,"n":"OBJECT_DESCRIPTION_25","k":"table","len":3,"c":true},{"a":9460,"n":"OBJECT_DESCRIPTION_26","k":"table","len":23,"c":true},{"a":9483,"n":"OBJECT_DESCRIPTION_27","k":"table","len":13,"c":true},{"a":9496,"n":"OBJECT_DESCRIPTION_29","k":"table","len":15,"c":true},{"a":9511,"n":"OBJECT_DESCRIPTION_2D","k":"table","len":38,"c":true},{"a":9549,"n":"OBJECT_DESCRIPTION_2E","k":"table","len":26,"c":true},{"a":9575,"n":"OBJECT_DESCRIPTION_2F","k":"table","len":14,"c":true},{"a":9589,"n":"OBJECT_DESCRIPTION_30","k":"table","len":12,"c":true},{"a":9601,"n":"OBJECT_DESCRIPTION_31","k":"table","len":25,"c":true},{"a":9626,"n":"OBJECT_DESCRIPTION_33","k":"table","len":19,"c":true},{"a":9645,"n":"OBJECT_DESCRIPTION_34","k":"table","len":26,"c":true},{"a":9671,"n":"OBJECT_DESCRIPTION_35","k":"table","len":22,"c":true},{"a":9693,"n":"TOKEN_POINTERS_TABLE","k":"table","len":188,"c":true},{"a":9881,"n":"WORD_THE_LC","k":"table","len":4,"c":true},{"a":9885,"n":"WORD_ATREYU","k":"table","len":7,"c":true},{"a":9892,"n":"WORD_FALKOR","k":"table","len":7,"c":true},{"a":9899,"n":"WORD_THERE_CAP","k":"table","len":6,"c":true},{"a":9905,"n":"WORD_IS","k":"table","len":3,"c":true},{"a":9908,"n":"WORD_THAT","k":"table","len":5,"c":true},{"a":9913,"n":"WORD_IN","k":"table","len":3,"c":true},{"a":9916,"n":"WORD_STANDS","k":"table","len":7,"c":true},{"a":9923,"n":"WORD_OF","k":"table","len":3,"c":true},{"a":9926,"n":"WORD_GREAT","k":"table","len":6,"c":true},{"a":9932,"n":"WORD_FOREST","k":"table","len":7,"c":true},{"a":9939,"n":"WORD_YOU_CAP","k":"table","len":4,"c":true},{"a":9943,"n":"WORD_ARE","k":"table","len":4,"c":true},{"a":9947,"n":"WORD_TO_LC","k":"variable","len":1,"c":true},{"a":9948,"n":"WORD_TO_LC_TEXT","k":"variable","len":2,"c":true},{"a":9950,"n":"WORD_OFF","k":"table","len":4,"c":true},{"a":9954,"n":"WORD_NORTH","k":"table","len":6,"c":true},{"a":9960,"n":"WORD_NORTHEAST","k":"table","len":10,"c":true},{"a":9970,"n":"WORD_EAST","k":"table","len":5,"c":true},{"a":9975,"n":"WORD_SOUTHEAST","k":"table","len":10,"c":true},{"a":9985,"n":"WORD_SOUTH","k":"table","len":6,"c":true},{"a":9991,"n":"WORD_SOUTHWEST","k":"table","len":10,"c":true},{"a":10001,"n":"WORD_WEST","k":"table","len":5,"c":true},{"a":10006,"n":"WORD_NORTHWEST","k":"table","len":10,"c":true},{"a":10016,"n":"WORD_CAN","k":"table","len":4,"c":true},{"a":10020,"n":"WORD_SEE","k":"table","len":4,"c":true},{"a":10024,"n":"WORD_ALL","k":"table","len":4,"c":true},{"a":10028,"n":"WORD_BUT","k":"table","len":4,"c":true},{"a":10032,"n":"WORD_THERE","k":"table","len":6,"c":true},{"a":10038,"n":"WORD_BE","k":"table","len":3,"c":true},{"a":10041,"n":"WORD_ON","k":"table","len":3,"c":true},{"a":10044,"n":"WORD_AT","k":"table","len":3,"c":true},{"a":10047,"n":"WORD_SWAMPS","k":"table","len":7,"c":true},{"a":10054,"n":"WORD_SADNESS","k":"table","len":8,"c":true},{"a":10062,"n":"WORD_SOME","k":"table","len":5,"c":true},{"a":10067,"n":"WORD_AURYN","k":"table","len":6,"c":true},{"a":10073,"n":"WORD_UP","k":"table","len":3,"c":true},{"a":10076,"n":"WORD_DOWN","k":"table","len":5,"c":true},{"a":10081,"n":"WORD_LEADING","k":"table","len":8,"c":true},{"a":10089,"n":"WORD_SMALL","k":"table","len":6,"c":true},{"a":10095,"n":"WORD_LARGE","k":"table","len":6,"c":true},{"a":10101,"n":"WORD_REMAINS","k":"table","len":8,"c":true},{"a":10109,"n":"WORD_THIS","k":"table","len":5,"c":true},{"a":10114,"n":"WORD_AN","k":"table","len":3,"c":true},{"a":10117,"n":"WORD_SIDE","k":"table","len":5,"c":true},{"a":10122,"n":"WORD_HERE","k":"table","len":5,"c":true},{"a":10127,"n":"WORD_SEEN","k":"table","len":5,"c":true},{"a":10132,"n":"WORD_SPOOK_CITY","k":"table","len":11,"c":true},{"a":10143,"n":"WORD_NOTHING","k":"table","len":8,"c":true},{"a":10151,"n":"WORD_CORRIDOR","k":"table","len":9,"c":true},{"a":10160,"n":"WORD_WELL","k":"table","len":5,"c":true},{"a":10165,"n":"WORD_STAIRS","k":"table","len":7,"c":true},{"a":10172,"n":"WORD_DUNGEON","k":"table","len":8,"c":true},{"a":10180,"n":"WORD_MAIN","k":"table","len":5,"c":true},{"a":10185,"n":"WORD_EXITS","k":"table","len":6,"c":true},{"a":10191,"n":"WORD_THE","k":"table","len":4,"c":true},{"a":10195,"n":"WORD_RUINED","k":"table","len":7,"c":true},{"a":10202,"n":"WORD_ONLY","k":"table","len":5,"c":true},{"a":10207,"n":"WORD_AS","k":"table","len":3,"c":true},{"a":10210,"n":"WORD_AND","k":"table","len":4,"c":true},{"a":10214,"n":"WORD_HAS","k":"table","len":4,"c":true},{"a":10218,"n":"WORD_WHICH","k":"table","len":6,"c":true},{"a":10224,"n":"WORD_PAINTING","k":"table","len":9,"c":true},{"a":10233,"n":"WORD_WALL","k":"table","len":5,"c":true},{"a":10238,"n":"WORD_CENTRE","k":"table","len":7,"c":true},{"a":10245,"n":"WORD_TO","k":"table","len":3,"c":true},{"a":10248,"n":"WORD_IT","k":"table","len":3,"c":true},{"a":10251,"n":"WORD_FROM","k":"table","len":5,"c":true},{"a":10256,"n":"WORD_THOUGH","k":"table","len":7,"c":true},{"a":10263,"n":"WORD_IVORY_TOWER","k":"table","len":12,"c":true},{"a":10275,"n":"WORD_DEEP","k":"table","len":5,"c":true},{"a":10280,"n":"WORD_A","k":"variable","len":2,"c":true},{"a":10282,"n":"WORD_TRACK","k":"table","len":6,"c":true},{"a":10288,"n":"WORD_PATH","k":"table","len":5,"c":true},{"a":10293,"n":"WORD_MORLA","k":"table","len":6,"c":true},{"a":10299,"n":"WORD_FANTASIA","k":"table","len":11,"c":true},{"a":10310,"n":"WORD_INTO","k":"table","len":5,"c":true},{"a":10315,"n":"WORD_TINY","k":"table","len":5,"c":true},{"a":10320,"n":"WORD_OPEN","k":"table","len":5,"c":true},{"a":10325,"n":"WORD_CLOSED","k":"table","len":7,"c":true},{"a":10332,"n":"WORD_ENTRANCE","k":"table","len":11,"c":true},{"a":10343,"n":"WORD_FLOOR","k":"table","len":6,"c":true},{"a":10349,"n":"WORD_ROOM","k":"table","len":5,"c":true},{"a":10354,"n":"WORD_JUST","k":"table","len":5,"c":true},{"a":10359,"n":"WORD_BY","k":"table","len":3,"c":true},{"a":10362,"n":"WORD_EMPRESS","k":"table","len":8,"c":true},{"a":10370,"n":"WORD_ROCKBITER","k":"table","len":10,"c":true},{"a":10380,"n":"WORD_ENGYWOOK","k":"table","len":9,"c":true},{"a":10389,"n":"WORD_URGLL","k":"table","len":6,"c":true},{"a":10395,"n":"WORD_ARTAX","k":"table","len":6,"c":true},{"a":10401,"n":"WORD_BASTIAN","k":"table","len":8,"c":true},{"a":10409,"n":"WORD_NEVERENDING","k":"table","len":12,"c":true},{"a":10421,"n":"WORD_YOU","k":"table","len":4,"c":true},{"a":10425,"n":"VISIBLE_OBJECT_RECORDS_PTR","k":"variable","len":1,"c":true},{"a":10426,"n":"a_28BA","k":"variable","len":1,"c":true},{"a":10427,"n":"DISK_LOAD_ADDR","k":"variable","len":1,"c":true},{"a":10428,"n":"a_28BC","k":"variable","len":1,"c":true},{"a":10429,"n":"DISK_SAVE_END_ADDR","k":"variable","len":1,"c":true},{"a":10430,"n":"a_28BE","k":"variable","len":1,"c":true},{"a":10431,"n":"OBJECT_LOCATIONS","k":"table","len":80,"c":true},{"a":10511,"n":"OBJ_FLAGS","k":"table","len":32,"c":true},{"a":10543,"n":"OBJ_COUNTERS","k":"table","len":16,"c":true},{"a":10559,"n":"CURRENT_ROOM","k":"variable","len":1,"c":true},{"a":10560,"n":"CURRENT_PART_NO","k":"variable","len":1,"c":true},{"a":10561,"n":"UNUSED_SAVE_STATE_2941","k":"variable","len":1,"c":true},{"a":10562,"n":"CURRENT_ROOM_GRAPHIC_ID","k":"variable","len":1,"c":true},{"a":10563,"n":"VISIBLE_OBJECT_RECORDS","k":"table","len":3,"c":true},{"a":10566,"n":"a_2946","k":"table","len":6,"c":true},{"a":10572,"n":"a_294C","k":"table","len":6,"c":true},{"a":10578,"n":"VISIBLE_OBJECT_RECORD_2_COLUMN","k":"table","len":6,"c":true},{"a":10584,"n":"a_2958","k":"table","len":6,"c":true},{"a":10590,"n":"a_295E","k":"table","len":5,"c":true},{"a":10595,"n":"CURRENT_OBJECT_GRAPHIC_PTR","k":"variable","len":1,"c":true},{"a":10596,"n":"a_2964","k":"table","len":3,"c":true},{"a":10599,"n":"SAVE_BLOCK_END","k":"variable","len":1,"c":true},{"a":10600,"n":"PART1_INIT_SCRIPT","k":"table","len":5,"c":true},{"a":10605,"n":"PART1_INIT_SCRIPT_END_MARKER","k":"variable","len":1,"c":true},{"a":10606,"n":"PART_INIT_SCRIPT_SLOT_1","k":"table","len":16,"c":true},{"a":10622,"n":"PART_INIT_SCRIPT_SLOT_2","k":"table","len":6,"c":true},{"a":10628,"n":"ACTION_SCRIPT_TABLE_PTR","k":"variable","len":1,"c":true},{"a":10629,"n":"a_2985","k":"variable","len":1,"c":true},{"a":10630,"n":"ACTION_SCRIPT_POINTERS","k":"table","len":26,"c":true},{"a":10656,"n":"ACTION_SCRIPT_GET_ARTAX_PTR","k":"variable","len":2,"c":true},{"a":10658,"n":"ACTION_SCRIPT_GET_FALKOR_PTR","k":"table","len":34,"c":true},{"a":10692,"n":"ACTION_SCRIPT_SAVE_PTR","k":"variable","len":2,"c":true},{"a":10694,"n":"ACTION_SCRIPT_LOAD_PTR","k":"table","len":76,"c":true},{"a":10770,"n":"ACTION_SCRIPT_COUNT","k":"variable","len":1,"c":true},{"a":10771,"n":"ACTION_SCRIPT_00","k":"table","len":19,"c":true},{"a":10790,"n":"ACTION_SCRIPT_02","k":"table","len":43,"c":true},{"a":10833,"n":"ACTION_SCRIPT_04","k":"table","len":32,"c":true},{"a":10865,"n":"ACTION_SCRIPT_06","k":"table","len":45,"c":true},{"a":10910,"n":"ACTION_SCRIPT_08","k":"table","len":42,"c":true},{"a":10952,"n":"ACTION_SCRIPT_09","k":"table","len":75,"c":true},{"a":11027,"n":"ACTION_SCRIPT_0A","k":"table","len":12,"c":true},{"a":11039,"n":"ACTION_SCRIPT_12","k":"variable","len":2,"c":true},{"a":11041,"n":"ACTION_SCRIPT_13","k":"variable","len":2,"c":true},{"a":11043,"n":"ACTION_SCRIPT_1B","k":"variable","len":2,"c":true},{"a":11045,"n":"ACTION_SCRIPT_1C","k":"table","len":4,"c":true},{"a":11049,"n":"ACTION_SCRIPT_1D","k":"table","len":4,"c":true},{"a":11053,"n":"ACTION_SCRIPT_1E","k":"table","len":19,"c":true},{"a":11072,"n":"ACTION_SCRIPT_0C","k":"table","len":17,"c":true},{"a":11089,"n":"ACTION_SCRIPT_SAVE_DISABLED","k":"variable","len":2,"c":true},{"a":11091,"n":"ACTION_SCRIPT_LOAD_DISABLED","k":"variable","len":2,"c":true},{"a":11093,"n":"ACTION_SCRIPT_GET_ARTAX","k":"table","len":23,"c":true},{"a":11116,"n":"ACTION_SCRIPT_GET_FALKOR","k":"table","len":48,"c":true},{"a":11164,"n":"ACTION_SCRIPT_15","k":"table","len":13,"c":true},{"a":11177,"n":"ACTION_SCRIPT_16","k":"table","len":15,"c":true},{"a":11192,"n":"ACTION_SCRIPT_14","k":"table","len":17,"c":true},{"a":11209,"n":"ACTION_SCRIPT_22","k":"table","len":20,"c":true},{"a":11229,"n":"ACTION_SCRIPT_24","k":"table","len":40,"c":true},{"a":11269,"n":"ACTION_SCRIPT_25","k":"table","len":34,"c":true},{"a":11303,"n":"ACTION_SCRIPT_26","k":"table","len":47,"c":true},{"a":11350,"n":"ACTION_SCRIPT_29","k":"table","len":14,"c":true},{"a":11364,"n":"ACTION_SCRIPT_2A","k":"table","len":46,"c":true},{"a":11410,"n":"ACTION_SCRIPT_2B","k":"table","len":52,"c":true},{"a":11462,"n":"ACTION_SCRIPT_2E","k":"table","len":3,"c":true},{"a":11465,"n":"ACTION_SCRIPT_2F","k":"table","len":13,"c":true},{"a":11478,"n":"ACTION_SCRIPT_0F","k":"table","len":21,"c":true},{"a":11499,"n":"ACTION_SCRIPT_30","k":"table","len":28,"c":true},{"a":11527,"n":"ACTION_SCRIPT_17","k":"table","len":14,"c":true},{"a":11541,"n":"ACTION_SCRIPT_27","k":"table","len":22,"c":true},{"a":11563,"n":"ACTION_SCRIPT_28","k":"table","len":22,"c":true},{"a":11585,"n":"ACTION_SCRIPT_32","k":"table","len":3,"c":true},{"a":11588,"n":"ACTION_SCRIPT_33","k":"variable","len":2,"c":true},{"a":11590,"n":"ACTION_SCRIPT_31","k":"table","len":3,"c":true},{"a":11593,"n":"ACTION_SCRIPT_35","k":"table","len":9,"c":true},{"a":11602,"n":"ACTION_SCRIPT_34","k":"variable","len":2,"c":true},{"a":11604,"n":"ACTION_SCRIPT_36","k":"table","len":9,"c":true},{"a":11613,"n":"ACTION_SCRIPT_21","k":"table","len":35,"c":true},{"a":11648,"n":"ACTION_SCRIPT_23","k":"table","len":3,"c":true},{"a":11651,"n":"ACTION_SCRIPT_2C","k":"table","len":3,"c":true},{"a":11654,"n":"ACTION_SCRIPT_10","k":"table","len":13,"c":true},{"a":11667,"n":"ACTION_SCRIPT_37","k":"table","len":30,"c":true},{"a":11697,"n":"ACTION_SCRIPT_38","k":"table","len":17,"c":true},{"a":11714,"n":"ACTION_SCRIPT_39","k":"table","len":9,"c":true},{"a":11723,"n":"ACTION_SCRIPT_3A","k":"table","len":9,"c":true},{"a":11732,"n":"ACTION_SCRIPT_3B","k":"table","len":3,"c":true},{"a":11735,"n":"ACTION_SCRIPT_3C","k":"table","len":20,"c":true},{"a":11755,"n":"ACTION_SCRIPT_3D","k":"table","len":21,"c":true},{"a":11776,"n":"ACTION_SCRIPT_3E","k":"table","len":21,"c":true},{"a":11797,"n":"ACTION_SCRIPT_3F","k":"table","len":55,"c":true},{"a":11852,"n":"ACTION_SCRIPT_40","k":"table","len":55,"c":true},{"a":11907,"n":"ACTION_SCRIPT_0B","k":"table","len":14,"c":true},{"a":11921,"n":"ACTION_SCRIPT_41","k":"table","len":30,"c":true},{"a":11951,"n":"ACTION_SCRIPT_11","k":"table","len":9,"c":true},{"a":11960,"n":"ACTION_SCRIPT_42","k":"table","len":5,"c":true},{"a":11965,"n":"ACTION_SCRIPT_43","k":"table","len":21,"c":true},{"a":11986,"n":"ACTION_SCRIPT_44","k":"table","len":5,"c":true},{"a":11991,"n":"ACTION_SCRIPT_1A","k":"table","len":3,"c":true},{"a":11994,"n":"ACTION_SCRIPT_45","k":"table","len":38,"c":true},{"a":12032,"n":"ROOM_TEXT_TABLE_PTR","k":"variable","len":1,"c":true},{"a":12033,"n":"a_2F01","k":"variable","len":1,"c":true},{"a":12034,"n":"EVENT_TEXT_TABLE_PTR","k":"variable","len":1,"c":true},{"a":12035,"n":"a_2F03","k":"variable","len":1,"c":true},{"a":12036,"n":"ROOM_SCRIPT_TABLE_PTR","k":"variable","len":1,"c":true},{"a":12037,"n":"a_2F05","k":"variable","len":1,"c":true},{"a":12038,"n":"PART_GLOBAL_TURN_SCRIPT","k":"table","len":69,"c":true},{"a":12107,"n":"ROOM_SCRIPT_POINTERS","k":"table","len":82,"c":true},{"a":12189,"n":"ROOM_SCRIPT_00","k":"variable","len":2,"c":true},{"a":12191,"n":"ROOM_SCRIPT_01","k":"table","len":10,"c":true},{"a":12201,"n":"ROOM_SCRIPT_02","k":"table","len":13,"c":true},{"a":12214,"n":"ROOM_SCRIPT_03","k":"table","len":21,"c":true},{"a":12235,"n":"ROOM_SCRIPT_07","k":"table","len":5,"c":true},{"a":12240,"n":"ROOM_SCRIPT_08","k":"variable","len":2,"c":true},{"a":12242,"n":"ROOM_SCRIPT_09","k":"table","len":5,"c":true},{"a":12247,"n":"ROOM_SCRIPT_0A","k":"table","len":5,"c":true},{"a":12252,"n":"ROOM_SCRIPT_0D","k":"table","len":22,"c":true},{"a":12274,"n":"ROOM_SCRIPT_0E","k":"table","len":19,"c":true},{"a":12293,"n":"ROOM_SCRIPT_0F","k":"table","len":19,"c":true},{"a":12312,"n":"ROOM_SCRIPT_10","k":"table","len":5,"c":true},{"a":12317,"n":"ROOM_SCRIPT_11","k":"table","len":12,"c":true},{"a":12329,"n":"ROOM_SCRIPT_12","k":"table","len":8,"c":true},{"a":12337,"n":"ROOM_SCRIPT_13","k":"table","len":5,"c":true},{"a":12342,"n":"ROOM_SCRIPT_14","k":"table","len":5,"c":true},{"a":12347,"n":"ROOM_SCRIPT_15","k":"table","len":13,"c":true},{"a":12360,"n":"ROOM_SCRIPT_16","k":"table","len":5,"c":true},{"a":12365,"n":"ROOM_SCRIPT_17","k":"table","len":5,"c":true},{"a":12370,"n":"ROOM_SCRIPT_1C","k":"table","len":5,"c":true},{"a":12375,"n":"ROOM_SCRIPT_1F","k":"table","len":5,"c":true},{"a":12380,"n":"ROOM_SCRIPT_24","k":"table","len":11,"c":true},{"a":12391,"n":"ROOM_SCRIPT_25","k":"table","len":27,"c":true},{"a":12418,"n":"ROOM_SCRIPT_27","k":"table","len":14,"c":true},{"a":12432,"n":"ROOM_SCRIPT_28","k":"table","len":20,"c":true},{"a":12452,"n":"EVENT_TEXT_POINTERS","k":"table","len":56,"c":true},{"a":12508,"n":"EVENT_TEXT_00","k":"table","len":68,"c":true},{"a":12576,"n":"EVENT_TEXT_01","k":"table","len":108,"c":true},{"a":12684,"n":"EVENT_TEXT_02","k":"table","len":98,"c":true},{"a":12782,"n":"EVENT_TEXT_03","k":"table","len":72,"c":true},{"a":12854,"n":"EVENT_TEXT_04","k":"table","len":47,"c":true},{"a":12901,"n":"EVENT_TEXT_05","k":"table","len":62,"c":true},{"a":12963,"n":"EVENT_TEXT_06","k":"table","len":24,"c":true},{"a":12987,"n":"EVENT_TEXT_07","k":"table","len":37,"c":true},{"a":13024,"n":"EVENT_TEXT_08","k":"table","len":38,"c":true},{"a":13062,"n":"EVENT_TEXT_09","k":"table","len":20,"c":true},{"a":13082,"n":"EVENT_TEXT_0A","k":"table","len":101,"c":true},{"a":13183,"n":"EVENT_TEXT_0B","k":"table","len":34,"c":true},{"a":13217,"n":"EVENT_TEXT_0C","k":"table","len":31,"c":true},{"a":13248,"n":"EVENT_TEXT_0D","k":"table","len":37,"c":true},{"a":13285,"n":"EVENT_TEXT_0E","k":"table","len":161,"c":true},{"a":13446,"n":"EVENT_TEXT_0F","k":"table","len":109,"c":true},{"a":13555,"n":"EVENT_TEXT_10","k":"table","len":48,"c":true},{"a":13603,"n":"EVENT_TEXT_11","k":"table","len":27,"c":true},{"a":13630,"n":"EVENT_TEXT_12","k":"table","len":61,"c":true},{"a":13691,"n":"EVENT_TEXT_13","k":"table","len":66,"c":true},{"a":13757,"n":"EVENT_TEXT_14","k":"table","len":9,"c":true},{"a":13766,"n":"EVENT_TEXT_15","k":"table","len":27,"c":true},{"a":13793,"n":"EVENT_TEXT_16","k":"table","len":29,"c":true},{"a":13822,"n":"EVENT_TEXT_17","k":"table","len":35,"c":true},{"a":13857,"n":"EVENT_TEXT_18","k":"table","len":29,"c":true},{"a":13886,"n":"EVENT_TEXT_19","k":"table","len":127,"c":true},{"a":14013,"n":"EVENT_TEXT_1A","k":"table","len":21,"c":true},{"a":14034,"n":"EVENT_TEXT_1B","k":"table","len":104,"c":true},{"a":14138,"n":"ROOM_TEXT_POINTERS","k":"table","len":82,"c":true},{"a":14220,"n":"ROOM_TEXT_00","k":"table","len":52,"c":true},{"a":14272,"n":"ROOM_TEXT_01","k":"table","len":82,"c":true},{"a":14354,"n":"ROOM_TEXT_02","k":"table","len":40,"c":true},{"a":14394,"n":"ROOM_TEXT_03","k":"table","len":78,"c":true},{"a":14472,"n":"ROOM_TEXT_04","k":"table","len":28,"c":true},{"a":14500,"n":"ROOM_TEXT_05","k":"table","len":79,"c":true},{"a":14579,"n":"ROOM_TEXT_06","k":"table","len":148,"c":true},{"a":14727,"n":"ROOM_TEXT_07","k":"table","len":66,"c":true},{"a":14793,"n":"ROOM_TEXT_08","k":"table","len":86,"c":true},{"a":14879,"n":"ROOM_TEXT_09","k":"table","len":67,"c":true},{"a":14946,"n":"ROOM_TEXT_0A","k":"table","len":65,"c":true},{"a":15011,"n":"ROOM_TEXT_0B","k":"table","len":47,"c":true},{"a":15058,"n":"ROOM_TEXT_0C","k":"table","len":78,"c":true},{"a":15136,"n":"ROOM_TEXT_0D","k":"table","len":76,"c":true},{"a":15212,"n":"ROOM_TEXT_0E","k":"table","len":148,"c":true},{"a":15360,"n":"ROOM_TEXT_0F","k":"table","len":66,"c":true},{"a":15426,"n":"ROOM_TEXT_10","k":"table","len":64,"c":true},{"a":15490,"n":"ROOM_TEXT_11","k":"table","len":163,"c":true},{"a":15653,"n":"ROOM_TEXT_12","k":"table","len":33,"c":true},{"a":15686,"n":"ROOM_TEXT_14","k":"table","len":49,"c":true},{"a":15735,"n":"ROOM_TEXT_15","k":"table","len":82,"c":true},{"a":15817,"n":"ROOM_TEXT_16","k":"table","len":73,"c":true},{"a":15890,"n":"ROOM_TEXT_17","k":"table","len":39,"c":true},{"a":15929,"n":"ROOM_TEXT_18","k":"table","len":43,"c":true},{"a":15972,"n":"ROOM_TEXT_19","k":"table","len":39,"c":true},{"a":16011,"n":"ROOM_TEXT_1A","k":"table","len":44,"c":true},{"a":16055,"n":"ROOM_TEXT_1B","k":"table","len":26,"c":true},{"a":16081,"n":"ROOM_TEXT_1C","k":"table","len":47,"c":true},{"a":16128,"n":"ROOM_TEXT_1D","k":"table","len":113,"c":true},{"a":16241,"n":"ROOM_TEXT_1E","k":"table","len":33,"c":true},{"a":16274,"n":"ROOM_TEXT_1F","k":"table","len":53,"c":true},{"a":16327,"n":"ROOM_TEXT_20","k":"table","len":57,"c":true},{"a":16414,"n":"ROOM_TEXT_21","k":"table","len":91,"c":true},{"a":16505,"n":"ROOM_TEXT_22","k":"table","len":85,"c":true},{"a":16590,"n":"ROOM_TEXT_23","k":"table","len":77,"c":true},{"a":16667,"n":"ROOM_TEXT_24","k":"table","len":101,"c":true},{"a":16768,"n":"ROOM_TEXT_25","k":"table","len":116,"c":true},{"a":16884,"n":"ROOM_TEXT_26","k":"table","len":88,"c":true},{"a":16972,"n":"ROOM_TEXT_27","k":"table","len":106,"c":true},{"a":17078,"n":"ROOM_TEXT_28","k":"table","len":44,"c":true},{"a":17122,"n":"PART_GRAPHICS_PREFIX_42E2","k":"table","len":30,"c":true},{"a":17152,"n":"ROOM_GFX_01","k":"table","len":720,"c":true},{"a":17872,"n":"ROOM_GFX_02","k":"table","len":1024,"c":true},{"a":18896,"n":"ROOM_GFX_02_CONT_49D0","k":"table","len":176,"c":true},{"a":19072,"n":"ROOM_GFX_03","k":"table","len":960,"c":true},{"a":20032,"n":"ROOM_GFX_04","k":"table","len":840,"c":true},{"a":20872,"n":"ROOM_GFX_05","k":"table","len":780,"c":true},{"a":21652,"n":"ROOM_GFX_06","k":"table","len":680,"c":true},{"a":22332,"n":"ROOM_GFX_07","k":"table","len":800,"c":true},{"a":23132,"n":"ROOM_GFX_08","k":"table","len":1024,"c":true},{"a":24156,"n":"ROOM_GFX_08_CONT_5E5C","k":"table","len":496,"c":true},{"a":24652,"n":"ROOM_GFX_09","k":"table","len":990,"c":true},{"a":25642,"n":"ROOM_GFX_10","k":"table","len":1024,"c":true},{"a":26666,"n":"ROOM_GFX_10_CONT_682A","k":"table","len":173,"c":true},{"a":26839,"n":"ROOM_GFX_10_ROW6_BITMAP_TAIL","k":"table","len":323,"c":true},{"a":27162,"n":"ROOM_GFX_11","k":"table","len":1024,"c":true},{"a":28186,"n":"ROOM_GFX_11_CONT_6E1A","k":"table","len":76,"c":true},{"a":28262,"n":"ROOM_GFX_12","k":"table","len":600,"c":true},{"a":28862,"n":"ROOM_GFX_13","k":"table","len":800,"c":true},{"a":29662,"n":"ROOM_GFX_14","k":"table","len":1024,"c":true},{"a":30686,"n":"ROOM_GFX_14_CONT_77DE","k":"table","len":26,"c":true},{"a":30712,"n":"ROOM_GFX_15","k":"table","len":900,"c":true},{"a":31612,"n":"ROOM_GFX_16","k":"table","len":1024,"c":true},{"a":32636,"n":"ROOM_GFX_16_CONT_7F7C","k":"table","len":132,"c":true},{"a":32768,"n":"ROOM_GFX_16_CONT_8000","k":"table","len":544,"c":true},{"a":33312,"n":"ROOM_GFX_17","k":"table","len":960,"c":true},{"a":34272,"n":"ROOM_GFX_18","k":"table","len":800,"c":true},{"a":35072,"n":"ROOM_GFX_19","k":"table","len":1024,"c":true},{"a":36096,"n":"ROOM_GFX_19_CONT_8D00","k":"table","len":416,"c":true},{"a":36512,"n":"ROOM_GFX_20","k":"table","len":1024,"c":true},{"a":37536,"n":"ROOM_GFX_20_CONT_92A0","k":"table","len":326,"c":true},{"a":37862,"n":"ROOM_GFX_BUFFER_SLACK_93E6","k":"table","len":666,"c":true},{"a":38528,"n":"ROOM_GFX_BUFFER_SLACK_9680","k":"table","len":128,"c":true},{"a":38656,"n":"LOAD_NEXT_GAME_PART","k":"routine","len":40,"c":true},{"a":38657,"n":"LOAD_PART_SELECT_KERNAL_MAP","k":"branch","len":1,"c":false},{"a":38696,"n":"PART_FILENAME_POINTER_LOW_OPERAND","k":"routine","len":6,"c":true},{"a":38702,"n":"PART_LOADER_CLD_BEFORE_CALL","k":"routine","len":6,"c":true},{"a":38708,"n":"PART_LOADER_RESUME_JUMP_HIGH_OPERAND","k":"routine","len":1,"c":true},{"a":38709,"n":"PART_FILENAME","k":"table","len":4,"c":true},{"a":38713,"n":"a_9739","k":"variable","len":1,"c":true},{"a":38714,"n":"LOAD_PART_RESTORE_STATE","k":"routine","len":40,"c":true},{"a":38754,"n":"DISK_LOADER_IMAGE_UNUSED_TAIL","k":"table","len":158,"c":true},{"a":38912,"n":"f_9800","k":"table","len":64,"c":true},{"a":39168,"n":"EXCLUDED_TITLE_MUSIC_BYTES","k":"table","len":1023,"c":true},{"a":40188,"n":"j_9CFC","k":"variable","len":1,"c":false},{"a":40191,"n":"TITLE_MUSIC_ADVANCE_COMMAND","k":"routine","len":46,"c":true},{"a":40202,"n":"b_9D0A","k":"branch","len":1,"c":false},{"a":40237,"n":"TITLE_MUSIC_DISPATCH_OPERAND","k":"routine","len":1,"c":true},{"a":40238,"n":"a_9D2E","k":"routine","len":1,"c":true},{"a":40239,"n":"TITLE_MUSIC_NOTE_COMMAND","k":"routine","len":134,"c":true},{"a":40250,"n":"b_9D3A","k":"branch","len":1,"c":false},{"a":40259,"n":"b_9D43","k":"branch","len":1,"c":false},{"a":40268,"n":"b_9D4C","k":"branch","len":1,"c":false},{"a":40272,"n":"b_9D50","k":"branch","len":1,"c":false},{"a":40284,"n":"b_9D5C","k":"branch","len":1,"c":false},{"a":40295,"n":"b_9D67","k":"branch","len":1,"c":false},{"a":40323,"n":"b_9D83","k":"branch","len":1,"c":false},{"a":40332,"n":"b_9D8C","k":"branch","len":1,"c":false},{"a":40373,"n":"TITLE_MUSIC_LOAD_DURATION","k":"routine","len":24,"c":true},{"a":40394,"n":"b_9DCA","k":"branch","len":1,"c":false},{"a":40397,"n":"TITLE_MUSIC_POP_STREAM","k":"routine","len":18,"c":true},{"a":40415,"n":"TITLE_MUSIC_COPY_PARAMETERS","k":"routine","len":22,"c":true},{"a":40419,"n":"b_9DE3","k":"branch","len":1,"c":false},{"a":40437,"n":"TITLE_MUSIC_SET_TRANSPOSE_AND_JUMP","k":"routine","len":18,"c":true},{"a":40444,"n":"j_9DFC","k":"branch","len":1,"c":false},{"a":40455,"n":"TITLE_MUSIC_CALL_INDIRECT","k":"routine","len":9,"c":true},{"a":40464,"n":"TITLE_MUSIC_PUSH_STREAM","k":"routine","len":33,"c":true},{"a":40466,"n":"b_9E12","k":"branch","len":1,"c":false},{"a":40497,"n":"TITLE_MUSIC_COMMAND_HANDLERS","k":"variable","len":1,"c":true},{"a":40498,"n":"TITLE_MUSIC_HANDLER_HIGH_BASE","k":"table","len":27,"c":true},{"a":40525,"n":"TITLE_MUSIC_UPDATE_PULSE","k":"routine","len":166,"c":true},{"a":40533,"n":"b_9E55","k":"branch","len":1,"c":false},{"a":40559,"n":"b_9E6F","k":"branch","len":1,"c":false},{"a":40570,"n":"b_9E7A","k":"branch","len":1,"c":false},{"a":40577,"n":"j_9E81","k":"branch","len":1,"c":false},{"a":40598,"n":"b_9E96","k":"branch","len":1,"c":false},{"a":40619,"n":"b_9EAB","k":"branch","len":1,"c":false},{"a":40634,"n":"b_9EBA","k":"branch","len":1,"c":false},{"a":40640,"n":"b_9EC0","k":"branch","len":1,"c":false},{"a":40664,"n":"b_9ED8","k":"branch","len":1,"c":false},{"a":40677,"n":"b_9EE5","k":"branch","len":1,"c":false},{"a":40690,"n":"r_9EF2","k":"branch","len":1,"c":false},{"a":40859,"n":"TITLE_MUSIC_PARAMETER_RECORD","k":"table","len":15,"c":true},{"a":40874,"n":"TITLE_MUSIC_MODULATION_PARAMETERS","k":"table","len":8,"c":true},{"a":40882,"n":"TITLE_MUSIC_MODULATION_FLAGS","k":"variable","len":1,"c":true},{"a":40883,"n":"TITLE_MUSIC_PULSE_LOW","k":"variable","len":1,"c":true},{"a":40884,"n":"TITLE_MUSIC_PULSE_HIGH","k":"table","len":4,"c":true},{"a":40888,"n":"TITLE_MUSIC_COUNTER_FIRST","k":"variable","len":1,"c":true},{"a":40889,"n":"TITLE_MUSIC_COUNTER_SECOND","k":"table","len":4,"c":true},{"a":40893,"n":"TITLE_MUSIC_DURATION_VALUES","k":"table","len":17,"c":true},{"a":40910,"n":"TITLE_MUSIC_STREAM_STACK_LOW","k":"table","len":16,"c":true},{"a":40926,"n":"TITLE_MUSIC_STREAM_STACK_HIGH","k":"table","len":16,"c":true},{"a":40942,"n":"TITLE_MUSIC_TRANSPOSE","k":"variable","len":1,"c":true},{"a":40943,"n":"BOOT_UNPACKED_IMAGE_TRAILER","k":"table","len":17,"c":true},{"a":40960,"n":"ZERO_PAGE_BACKUP","k":"table","len":256,"c":true},{"a":41216,"n":"ROOM_GFX_00","k":"table","len":1024,"c":true},{"a":42240,"n":"ROOM_GFX_00_CONT_A500","k":"table","len":96,"c":true},{"a":42336,"n":"ICON_00","k":"table","len":160,"c":true},{"a":42496,"n":"ICON_01","k":"table","len":160,"c":true},{"a":42656,"n":"ICON_02","k":"table","len":160,"c":true},{"a":42816,"n":"ICON_03","k":"table","len":160,"c":true},{"a":42976,"n":"RASTER_IRQ_DISPATCH","k":"routine","len":2,"c":true},{"a":42978,"n":"IRQ_SPLIT_STATE","k":"routine","len":1,"c":true},{"a":42979,"n":"RASTER_SPLIT_PICTURE","k":"routine","len":30,"c":true},{"a":43009,"n":"RASTER_ACK_TAIL","k":"routine","len":9,"c":true},{"a":43018,"n":"RASTER_SPLIT_TEXT_DELAY","k":"routine","len":4,"c":true},{"a":43022,"n":"RASTER_IRQ_SPLIT_MID","k":"routine","len":39,"c":true},{"a":43061,"n":"RASTER_IRQ_SPLIT_TOP","k":"routine","len":19,"c":true},{"a":43080,"n":"ICON_SLOT_04_ARTWORK_TAIL","k":"table","len":56,"c":true},{"a":43136,"n":"TEMPORARY_PART1_RASTER_IRQ","k":"routine","len":19,"c":true},{"a":43155,"n":"RESTORE_SYSTEM_TO_BASIC","k":"routine","len":57,"c":true},{"a":43162,"n":"RESTORE_BASIC_ZERO_LOOP","k":"branch","len":1,"c":false},{"a":43186,"n":"RESTORE_BASIC_VECTOR_COPY_LOOP","k":"branch","len":1,"c":false},{"a":43212,"n":"INSTALL_GAME_IRQ","k":"routine","len":19,"c":true},{"a":43231,"n":"ICON_SLOT_05_ARTWORK_TAIL","k":"table","len":65,"c":true},{"a":43296,"n":"ICON_06","k":"table","len":160,"c":true},{"a":43456,"n":"ICON_07","k":"table","len":160,"c":true},{"a":43616,"n":"ICON_08","k":"table","len":160,"c":true},{"a":43776,"n":"ICON_09","k":"table","len":160,"c":true},{"a":43936,"n":"ICON_10","k":"table","len":160,"c":true},{"a":44096,"n":"ICON_11_ANCIENT_PADLOCK","k":"table","len":160,"c":true},{"a":44256,"n":"ICON_12","k":"table","len":160,"c":true},{"a":44416,"n":"ICON_13","k":"table","len":160,"c":true},{"a":44576,"n":"ICON_14","k":"table","len":160,"c":true},{"a":44736,"n":"ICON_15","k":"table","len":160,"c":true},{"a":44896,"n":"ICON_16","k":"table","len":160,"c":true},{"a":45056,"n":"ICON_17","k":"table","len":160,"c":true},{"a":45216,"n":"ICON_18","k":"table","len":160,"c":true},{"a":45376,"n":"ICON_19","k":"table","len":160,"c":true},{"a":45536,"n":"ICON_20","k":"table","len":160,"c":true},{"a":45696,"n":"ICON_21","k":"table","len":160,"c":true},{"a":45856,"n":"ICON_22","k":"table","len":160,"c":true},{"a":46016,"n":"ICON_FALKOR","k":"table","len":160,"c":true},{"a":46176,"n":"ICON_ARTAX","k":"table","len":160,"c":true},{"a":46336,"n":"ICON_25","k":"table","len":160,"c":true},{"a":46496,"n":"ICON_26","k":"table","len":160,"c":true},{"a":46656,"n":"UNUSED_ICON_CRUCIFIX","k":"table","len":160,"c":true},{"a":46816,"n":"ICON_28","k":"table","len":160,"c":true},{"a":46976,"n":"EXCLUDED_INTRO_DATA","k":"table","len":391,"c":true},{"a":47367,"n":"ICON_SLOT_31_ARTWORK_TAIL","k":"table","len":89,"c":true},{"a":47456,"n":"ICON_32","k":"table","len":160,"c":true},{"a":47616,"n":"ICON_33","k":"table","len":160,"c":true},{"a":47776,"n":"ICON_34","k":"table","len":160,"c":true},{"a":47936,"n":"ICON_35","k":"table","len":160,"c":true},{"a":48096,"n":"ICON_TABLE_ALIGNMENT_RESIDUE","k":"table","len":32,"c":true},{"a":53248,"n":"BOOT_FIXUP_POINTERS","k":"table","len":16,"c":true},{"a":53264,"n":"BOOT_PAGE_COPY_UNUSED_TAIL","k":"table","len":1024,"c":true},{"a":56320,"n":"PARKED_LOADER_ENTRY","k":"table","len":38,"c":true},{"a":56358,"n":"PARKED_LOADER_TRAILER_BYTES","k":"table","len":5,"c":true},{"a":56363,"n":"PARKED_LOADER_MATCH_HEADER","k":"table","len":43,"c":true},{"a":56406,"n":"PARKED_LOADER_READ_HEADER","k":"table","len":20,"c":true},{"a":56426,"n":"PARKED_LOADER_READ_PAYLOAD","k":"table","len":32,"c":true},{"a":56458,"n":"PARKED_LOADER_SYNC","k":"table","len":37,"c":true},{"a":56495,"n":"PARKED_LOADER_READ_BYTE","k":"table","len":13,"c":true},{"a":56508,"n":"PARKED_LOADER_READ_BIT","k":"table","len":18,"c":true},{"a":56526,"n":"PARKED_LOADER_TIMER_SETUP","k":"table","len":818,"c":true},{"a":63488,"n":"gameplay_character_set","k":"table","len":1024,"c":true},{"a":64512,"n":"gameplay_character_set_upper","k":"table","len":304,"c":true},{"a":64816,"n":"TEXT_FONT_CELLS_166_255","k":"table","len":720,"c":true},{"a":65439,"n":"KERNAL_SCNKEY","k":"variable","len":1,"c":false},{"a":65466,"n":"KERNAL_SETLFS","k":"variable","len":1,"c":false},{"a":65469,"n":"KERNAL_SETNAM","k":"variable","len":1,"c":false},{"a":65493,"n":"KERNAL_LOAD","k":"variable","len":1,"c":false},{"a":65496,"n":"KERNAL_SAVE","k":"variable","len":1,"c":false},{"a":65508,"n":"KERNAL_GETIN","k":"variable","len":1,"c":false}],"records":[{"a":0,"t":"gap","n":928,"x":[1342,1349,1714]},{"a":0,"t":"note","l":"C64_CPU_PROCESSOR_PORT_DIRECTION","c":"6510 on-chip I/O-port data-direction register.","note":"outside the tracked image","x":[1342,1349,1714]},{"a":1,"t":"note","l":"C64_CPU_PROCESSOR_PORT","note":"outside the tracked image","x":[935,974,1694,1793,1803,1857,1884,5578,5585,38659,38751,43138,43145,43157]},{"a":2,"t":"note","l":"SCRATCH_BYTE","c":"Shared one-byte arithmetic/comparison scratch.","note":"outside the tracked image","x":[1494,1521,1531,2391,2403,2408,2410,2439,2441,2446,2448,2909,2919,4649,4652,4904,4948,4955,4991,4998,5000,5053,5059,5280,5286,5608,5613,5629,43162]},{"a":3,"t":"note","l":"SCRATCH_INDEX","c":"Shared saved X/index scratch.","note":"outside the tracked image","x":[2424,2429,3982,3987,4599,4604,4758,4771,4776,4864,5002]},{"a":4,"t":"note","l":"SCRATCH_BYTE_2","c":"Shared temporary byte used for lengths, offsets, and part-room bases.","note":"outside the tracked image","x":[1913,1935,2917,2922,4718,4734]},{"a":5,"t":"note","l":"SAVED_CHAR_COLOR","c":"Saved current character color while drawing status text.","note":"outside the tracked image","x":[2396,2415,2453]},{"a":6,"t":"note","l":"SCREEN_CURSOR_PTR","note":"outside the tracked image","x":[1770,1810,2207,2212,2236,2269,2276,2305,2363,2371,2384]},{"a":8,"t":"note","l":"COLOR_CURSOR_PTR","note":"outside the tracked image","x":[1772,1812,2218,2223,2274,2282,2365,2388]},{"a":10,"t":"note","l":"MEMCPY_SOURCE","c":"Primary work pointer; source pointer for MEMCPY and table pointer in parser/dispatcher code.","note":"outside the tracked image","x":[1861,1921,1944,1956,1979,2002,2026,2038,2317,2340,4673,4683,4699,4725,4780,5131,5142,5160]},{"a":12,"t":"note","l":"WORK_PTR","c":"Secondary work pointer; destination pointer for MEMCPY and computed table-entry pointer elsewhere.","note":"outside the tracked image","x":[1435,1445,1447,1456,1869,1923,1946,1964,1987,2010,2325,2348,2475,2490,2496,2507,2512,2530,2545,2551,2562,2567,2688,2703,2709,2720,2725,2925,2940,2946,2957,2962,3654,3669,3675,3686,3691,4159,4174,4180,4191,4196,4279,4294,4300,4311,4316,4797,4808,4821,4823,4834,4845,4902,5203,5218,5224,5235,5240,5289,5304,5310,5321,5326,5453,5468,5474,5485,5490,5654,5669,5675,5686,5692,5742,5757,5763,5774,5780]},{"a":14,"t":"note","l":"AUX_PTR","c":"Auxiliary pointer used by input, object-description, and renderer paths.","note":"outside the tracked image","x":[1241,2072,2082,2164,2189,3688,3697,3712,4193,4200,4206,4313,4322,4343,4349]},{"a":16,"t":"note","l":"EXCLUDED_TITLE_MUSIC_ZP_STATE","c":"Excluded title-stage music-player zero-page state retained in the gameplay snapshot; no in-scope code references this range.","note":"outside the tracked image"},{"a":34,"t":"note","l":"TERM_DATA_PTR","c":"Current compressed term/text data pointer.","note":"outside the tracked image","x":[2509,2564,2580,2592,2636,2675,2678,2722,2731,2745,2763,2765,2781,2844,2855,2863,2959,2978,2991,4208,4351,4884,5526,5544]},{"a":36,"t":"note","l":"CURRENT_COLUMN","c":"Current text-renderer output column.","note":"outside the tracked image","x":[1894,2201,2203,2205,2288,2294,2301,2622,2642,2657,2736,2896,5516]},{"a":37,"t":"note","l":"WORD_REMAINING_LEN","c":"Remaining characters in the current output word.","note":"outside the tracked image","x":[2576,2613,2619,2654,2733,2850,2861,4877,5521,5539]},{"a":38,"t":"note","l":"INPUT_LEN","c":"Number of characters in INPUT_TEXT_BUFFER.","note":"outside the tracked image","x":[1235,2104,2158,2166,2179,2183,2185,4655,4690,4706,4721]},{"a":39,"t":"note","l":"WORD_COUNT","c":"Parser count/extent for the tokenized input words.","note":"outside the tracked image","x":[4662,4710,4741,4754,5019,5022,5036,5072,5093,5105]},{"a":40,"t":"note","l":"PARSED_TOKENS","c":"Sixteen pairs of input-buffer start/end offsets and later parsed word ids.","note":"outside the tracked image","x":[4666,4695,4713,4739,4773,4867,4872,4879,5004,5030,5080]},{"a":72,"t":"note","l":"UNUSED_PARSER_PADDING","c":"Three zero bytes between PARSED_TOKENS and LOOP_COUNTER. No decoded instruction addresses them; they are unused parser-workspace padding in the captured image.","note":"outside the tracked image"},{"a":75,"t":"note","l":"LOOP_COUNTER","c":"Shared loop counter; also holds the matched VERB_RULE_TABLE pair index before action dispatch.","note":"outside the tracked image","x":[1397,1429,4111,4128,4144,4756,5007,5140,5154,5173,5179]},{"a":76,"t":"note","l":"VERB_ID","c":"Parsed command verb id.","note":"outside the tracked image","x":[3638,3647,3649,3651,5068,5144]},{"a":77,"t":"note","l":"NOUN_ID","c":"Parsed command noun id.","note":"outside the tracked image","x":[3621,3760,3842,4471,5028,5101,5166]},{"a":78,"t":"note","l":"SCRIPT_PC","c":"Current action/condition bytecode program counter.","note":"outside the tracked image","x":[5237,5253,5265,5323,5487,5594,5596,5639,5645,5707,5709,5728,5732,5793,5795]},{"a":80,"t":"note","l":"BLIT_ROW","c":"Current illustration character row while blitting a RoomGraphicRecord.","note":"outside the tracked image","x":[1477,1485,1496,1554,1598,1642,1644]},{"a":81,"t":"note","l":"BLIT_COLUMN","c":"Illustration start column from the active RoomGraphicRecord.","note":"outside the tracked image","x":[1511,1569,1613]},{"a":82,"t":"note","l":"BLIT_SOURCE_PTR","c":"Current source cursor for packed bitmap/screen/color graphic data.","note":"outside the tracked image","x":[1541,1585,1629,1656,1660,1672]},{"a":84,"t":"note","l":"BLIT_END_ROW","c":"Exclusive ending row, computed as start_row + height_rows.","note":"outside the tracked image","x":[1488,1490,1646]},{"a":85,"t":"note","l":"BLIT_WIDTH","c":"Graphic width in character columns; bitmap rows consume width*8 bytes.","note":"outside the tracked image","x":[1535,1582,1626]},{"a":86,"t":"note","l":"BLIT_DEST_PTR","c":"Current bitmap, screen, or color destination cursor.","note":"outside the tracked image","x":[1503,1525,1527,1561,1572,1574,1605,1616,1618,1658,1666]},{"a":88,"t":"note","l":"BLIT_SOURCE_END_PTR","c":"Exclusive source end pointer for the current blit row/plane.","note":"outside the tracked image","x":[1543,1587,1631,1674]},{"a":90,"t":"note","l":"GRAPHIC_RECORD_PTR","c":"Pointer to the current static or dynamic RoomGraphicRecord; reused for computed object graphic source addresses.","note":"outside the tracked image","x":[1402,1411,1421,1423,1462,1475,3807,3923,3954,3967,3969,4436]},{"a":92,"t":"note","l":"CURRENT_OBJECT_INDEX","c":"Resolved object-state index for the current noun; used to locate its packed graphic at $A560 + index*$A0.","note":"outside the tracked image","x":[3960,4431,5627]},{"a":93,"t":"note","l":"UNUSED_GAME_ZP_005D","c":"Unused game zero-page byte in the captured program. It is zero, has no decoded instruction operand or recorded reference, and lies between CURRENT_OBJECT_INDEX and LOADED_PART_NO.","note":"outside the tracked image"},{"a":94,"t":"note","l":"LOADED_PART_NO","c":"Game part currently resident in memory; compared with CURRENT_PART_NO after state loads.","note":"outside the tracked image","x":[1116,1149,1789,5353]},{"a":95,"t":"note","l":"DISK_ERROR_FLAG","c":"Set when KERNAL load/save fails; game initialization retries while nonzero.","note":"outside the tracked image","x":[1121,1211,1774,5366]},{"a":96,"t":"note","l":"IDLE_COUNTDOWN","c":"Little-endian 24-bit input-idle countdown. Expiry triggers the idle action at $08C4; keypresses extend the high byte.","note":"outside the tracked image","x":[2058,2108]},{"a":99,"t":"note","l":"VERBOSE_FLAG","c":"Controls verbose room/object feedback.","note":"outside the tracked image","x":[3752,3757,3790,3889]},{"a":100,"t":"note","l":"WORD_BUFFER","c":"Space-padded six-byte parser comparison buffer.","note":"outside the tracked image","x":[4764,4786,4814,4836,4847,4919,4926,4933,4962,4969,4976]},{"a":106,"t":"note","l":"SAVED_PARSE_INDEX","c":"Saved PARSED_TOKENS index across an embedded command dispatch.","note":"outside the tracked image","x":[5113,5118]},{"a":107,"t":"note","l":"BASIC_FAC2_WORKSPACE","c":"BASIC floating-point workspace: the tail of FAC2's mantissa ($6B-$6D), its sign ($6E), the\nFAC1/FAC2 sign comparison ($6F), FAC1's rounding byte ($70), and FBUFPT ($71-$72), a series\nevaluation pointer still holding $A30A inside BASIC ROM. Inherited state; the game's own\nzero-page allocation ends at $6A (SAVED_PARSE_INDEX).","note":"outside the tracked image"},{"a":115,"t":"note","l":"CHRGET","c":"CHRGET ($0073-$008A) - executable code living in zero page, not data.\nThe KERNAL copies this 24-byte routine into RAM at power-up; it is BASIC's tokenizer feed. It\nincrements the 16-bit text pointer at $7A/$7B, fetches the next program byte through an\nabsolute LDA whose operand IS $7A/$7B (self-modifying by design), skips spaces, and returns\nwith carry clear when the byte is an ASCII digit.\nByte-verified against the stock routine:\nE6 7A D0 02 E6 7B AD 06 02 C9 3A B0 0A C9 20 F0 EF 38 E9 30 38 E9 D0 60\nUnmodified and unreachable here: BASIC ROM is banked out ($01 = $36). TXTPTR reads $0206,\npointing into the BASIC input buffer - residue of the RUN that started the game.","note":"outside the tracked image"},{"a":139,"t":"note","l":"RND_SEED","c":"RNDX ($8B-$8F) - BASIC's RND seed, still the stock power-up value 80 4F C7 52 58. The game\nnever uses BASIC's generator.","note":"outside the tracked image"},{"a":144,"t":"note","l":"C64_WORKSPACE_IO_STATUS","c":"KERNAL I/O status and scratch ($90-$B1): STATUS ($90) = $40, the EOI left by the last LOAD;\nSTKEY ($91) = $FF, no STOP; LDTND ($98) = 0, no logical file open; DFLTN/DFLTO ($99/$9A) = 0\nand 3, the default keyboard input and screen output devices; TIME ($A0-$A2), the software\njiffy clock, frozen at $0015AF because the game's IRQ handler never chains to $EA31 and so\nnever calls UDTIM; and tape/RS-232 temporaries the game never uses. SAL ($AC-$AD) and EAL\n($AE-$AF) are the start and end addresses of the last KERNAL LOAD.","note":"outside the tracked image"},{"a":145,"t":"note","l":"C64_WORKSPACE_STOP_KEY_FLAG","note":"outside the tracked image"},{"a":153,"t":"note","l":"C64_WORKSPACE_DEFAULT_INPUT_DEVICE","note":"outside the tracked image"},{"a":154,"t":"note","l":"C64_WORKSPACE_DEFAULT_OUTPUT_DEVICE","note":"outside the tracked image"},{"a":178,"t":"note","l":"TAPE1_CASSETTE_BUFFER_PTR","c":"KERNAL current-file parameter block ($B2-$C5), the part of zero page the game does write.\n$B2-$B3  TAPE1   start of the cassette buffer. RESTORE_SYSTEM_TO_BASIC writes $033C here\n($A8A8/$A8AC), reproducing what the KERNAL's RAMTAS does at $FD5F\n$B7      FNLEN   filename length\n$B9      SA      secondary address. LOAD_NEXT_GAME_PART writes 0 at $971D, which tells LOAD\nto place the file at the address in MEMUSS rather than honouring the load\naddress stored in the file's first two bytes\n$BA      FA      device number. $9723 writes 8, the first disk drive\n$BB-$BC  FNADR   filename pointer, normally set through SETNAM ($FFBD)\n$C2      STAL+1  I/O start address high; $A8AE writes $03\n$C3-$C4  MEMUSS  the load address LOAD uses when SA = 0; $971F writes the low byte\n$C5      LSTX    matrix code of the last key SCNKEY saw; $40 = none\nComparing this block against ZERO_PAGE_BACKUP dates the backup exactly: $A0B7 = 5 and\n$A0BB/$A0BC = $9735 are the SETNAM(\"PART2\") parameters written at $9725-$972B, so the backup\nhalf is zero page as LOAD_NEXT_GAME_PART left it.","note":"outside the tracked image","x":[43176]},{"a":185,"t":"note","l":"SA_SECONDARY_ADDRESS","note":"outside the tracked image","x":[38685]},{"a":186,"t":"note","l":"FA_DEVICE_NUMBER","note":"outside the tracked image","x":[38691]},{"a":193,"t":"note","l":"STAL_IO_START_ADDRESS","note":"outside the tracked image"},{"a":195,"t":"note","l":"MEMUSS_LOAD_ADDRESS","note":"outside the tracked image","x":[38687]},{"a":198,"t":"note","l":"C64_WORKSPACE_KEYBOARD_BUFFER_LENGTH","c":"KERNAL NDX: number of characters waiting in the keyboard buffer.","note":"outside the tracked image","x":[2106]},{"a":199,"t":"note","l":"KERNAL_EDITOR_WORKSPACE","c":"KERNAL screen-editor, keyboard and RS-232 workspace ($C7-$FD). The game reads or writes none of it except $FD; the values are stale state from before the program took the machine over, and they are internally consistent for a stock 40x25 screen at $0400. The game own screen is SCREEN_RAM at $CC00.\n$CB SFDX is the matrix code of the key being scanned; $40 means none. $CC BLNSW disables cursor blink. $D1-$D2 point to screen line $0400. $D5 LNMX is $27 (39). $D6 TBLX is the cursor physical line and is not game state. $D9-$F2 is the 26-byte screen line-link table. $F3-$F4 point to Color RAM $D800; $F5-$F6 point to the KERNAL unshifted keyboard table $EB81; $F7-$FA are null RS-232 buffer pointers. $FD is cleared by LOAD_NEXT_GAME_PART at $971B with the KERNAL file parameters; its consumer is the fast-loader image under I/O at $DC00-$DFFF, outside this snapshot.\nGhidra 6502 SLEIGH models JSR, RTS, PHA and PLA stack accesses at $00Fx rather than $01Fx, producing roughly 189 false references into $F0-$F9. The only real game access here is $971B writing $FD. The modeled stack traffic nevertheless establishes that the live stack did not descend below $01F0, explaining why the excluded prior-stage bytes at $0100-$01E8 survive unchanged in this later gameplay snapshot.","note":"outside the tracked image"},{"a":211,"t":"note","l":"C64_WORKSPACE_CURSOR_COLUMN","note":"outside the tracked image"},{"a":214,"t":"note","l":"C64_WORKSPACE_CURSOR_ROW","note":"outside the tracked image"},{"a":217,"t":"note","l":"LDTB1_SCREEN_LINE_LINK","c":"KERNAL LDTB1 ($D9-$F2) \u2014 the screen editor's 26-byte line-link table: one entry per screen row\nplus an editor scratch byte. Bits 0-3 hold the screen-memory page displacement of that row's\nfirst byte; bit 7 set marks the first physical line of a logical line. The captured $84/$85/$86/\n$87 pattern describes a stock 40x25 screen based at $0400, i.e. state left over from before the\ngame took the machine. The game neither reads nor writes it; the incoming references are the\n6502 stack-modelling artifact described in the KERNAL_EDITOR_WORKSPACE plate at $C7.","note":"outside the tracked image"},{"a":243,"t":"note","l":"USER_COLOR_RAM_PTR","note":"outside the tracked image"},{"a":245,"t":"note","l":"KEYTAB_DECODE_VECTOR","note":"outside the tracked image"},{"a":247,"t":"note","l":"RIBUF_RS232_INPUT_PTR","note":"outside the tracked image"},{"a":249,"t":"note","l":"ROBUF_RS232_OUTPUT_PTR","note":"outside the tracked image"},{"a":253,"t":"note","l":"FASTLOADER_ZP_FLAG","note":"outside the tracked image","x":[38683]},{"a":254,"t":"note","l":"SAVE_START_PTR","c":"Zero-page pointer supplied to KERNAL SAVE as the start of serialized state.","note":"outside the tracked image","x":[1178]},{"a":256,"t":"note","l":"PRIOR_STAGE_STACK_RESIDUE","c":"Excluded prior-stage stack-page residue retained as data exactly as captured in the gameplay snapshot. No prior loader, depacker, intro, or crack code is modeled or reversed here.","note":"outside the tracked image"},{"a":489,"t":"note","l":"STACK_RESIDUE","note":"outside the tracked image"},{"a":500,"t":"note","l":"annotation_01f4","c":"Live 6510 stack at capture: twelve bytes holding the six nested JSR return addresses of the\ndocumented call chain. No frame of that chain lies below $01F4, which is why $0100-$01E8 is\nprior-stage residue rather than active state. JSR stores the address of its final byte, so each\nreturn target is the stored value plus one.\nInnermost first: $01F4=$0554 (JSR $FF9F at $0552, KERNAL SCNKEY); $01F6=$055F (JSR $0552 at\n$055D, wait for SPACE); $01F8=$1184 (JSR $055D at $1182); $01FA=$169B (self-modified JSR $117A\nat $1699); $01FC=$1578 (JSR $1605 at $1576, bytecode interpreter); $01FE=$0408 (JSR $14D6 at\n$0406, INIT_GAME).\nThe VSF CPU PC is $EA93 inside KERNAL SCNKEY, reached through $FF9F, matching the innermost\nframe. The machine was blocked at the room-setup SPACE prompt.\nPage 1 immediately below $01F4 is not stable: two dumps taken from the same blocked session\ndiffer at $01EC/$01ED, so transient KERNAL and\ninterrupt frames do reach at least $01EC while the engine waits. Only $01F4-$01FF is asserted.","s":"XREF to JSR begin","note":"outside the tracked image"},{"a":512,"t":"note","l":"BASIC_INPUT_BUFFER","c":"BASIC_INPUT_BUFFER (BUF, $0200-$0258, 89 bytes), unused by the game. At capture it retains startup residue: $8A is the tokenized RUN keyword and the trailing 8,1 is from an earlier LOAD command. This establishes prior-stage provenance only; the excluded startup code is not modeled in the Ghidra program.","note":"outside the tracked image","x":[43165]},{"a":601,"t":"note","l":"KERNAL_LAT","c":"KERNAL_LAT ($0259-$0262) - KERNAL table of active logical file numbers, one byte per open\nfile, up to ten. All zero here: no logical file is open at capture. Maintained by OPEN/CLOSE,\nnot by this program.","note":"outside the tracked image"},{"a":611,"t":"note","l":"KERNAL_FAT","c":"KERNAL_FAT ($0263-$026C) - KERNAL table of device numbers, parallel to KERNAL_LAT.","note":"outside the tracked image"},{"a":621,"t":"note","l":"KERNAL_SAT","c":"KERNAL_SAT ($026D-$0276) - KERNAL table of secondary addresses, parallel to KERNAL_LAT.","note":"outside the tracked image"},{"a":631,"t":"note","l":"KEYBOARD_BUFFER","c":"KEYBOARD_BUFFER (KEYD, $0277-$0280) - the KERNAL's ten-byte keystroke FIFO.\nSCNKEY ($FF9F) scans the keyboard matrix through CIA 1 and appends PETSCII codes here,\nbumping the count in NDX ($00C6); GETIN ($FFE4) removes the oldest code and decrements NDX.\nThe fill limit is XMAX ($0289), default 10.\nThis program never touches the buffer directly, but it is squarely on the input path: $0552\nand $084B call SCNKEY, $0555 and $084E call GETIN, and $083A zeroes NDX to flush pending\nkeystrokes before reading a command line. Empty at capture.","note":"outside the tracked image"},{"a":641,"t":"note","l":"OS_MEM_START","note":"outside the tracked image"},{"a":643,"t":"note","l":"OS_MEM_END","note":"outside the tracked image"},{"a":645,"t":"note","l":"IEEE_TIMEOUT_FLAG","note":"outside the tracked image"},{"a":646,"t":"note","l":"C64_WORKSPACE_TEXT_COLOR","c":"KERNAL current character color.","note":"outside the tracked image","x":[1827,2089,2260,2271,2393,2400,2417,2436,2455,2865,2999,5247,5446]},{"a":647,"t":"note","l":"CURSOR_COLOR_UNDER","c":"KERNAL GDCOL: color value saved from the screen cell under the software cursor so it can be restored when the cursor moves.","note":"outside the tracked image"},{"a":648,"t":"note","l":"C64_WORKSPACE_SCREEN_MEMORY_PAGE","c":"KERNAL HIBASE: high byte of the current screen-memory base. $04 selects the standard screen at $0400.","note":"outside the tracked image"},{"a":649,"t":"note","l":"KEYBOARD_BUFFER_MAX_LEN","c":"KERNAL XMAX: maximum number of characters accepted in the keyboard buffer. The captured default $0A permits ten queued characters.","note":"outside the tracked image"},{"a":650,"t":"note","l":"KEY_REPEAT_MODE","c":"KERNAL RPTFLG: keyboard auto-repeat mode. Zero selects the normal policy (cursor keys repeat; other keys do not).","note":"outside the tracked image"},{"a":651,"t":"note","l":"KEY_REPEAT_COUNTDOWN","c":"KERNAL key-repeat control flag, cleared after accepted input.","note":"outside the tracked image","x":[1891,2173]},{"a":652,"t":"note","l":"KEY_REPEAT_DELAY","note":"outside the tracked image"},{"a":653,"t":"note","l":"SHIFT_CTRL_FLAG","note":"outside the tracked image"},{"a":654,"t":"note","l":"LAST_SHIFT_PATTERN","note":"outside the tracked image"},{"a":655,"t":"note","l":"KEYLOG_VECTOR","note":"outside the tracked image"},{"a":657,"t":"note","l":"KERNAL_EDITOR_RS232_WORKSPACE","c":"KERNAL_EDITOR_RS232_WORKSPACE ($0291-$02A5) - charset-switch enable, scroll enable, the\nmock-6551 RS-232 registers and buffer indices, and cassette save temporaries. All zero: this\nprogram uses none of them.","note":"outside the tracked image"},{"a":678,"t":"note","l":"PAL_NTSC_FLAG","note":"outside the tracked image"},{"a":679,"t":"note","l":"UNUSED_02A7","c":"$02A7-$02FF - documented as unused by the KERNAL, and zero here.","note":"outside the tracked image"},{"a":768,"t":"note","l":"BASIC_VECTORS","c":"BASIC_VECTORS ($0300-$030B) - IERROR, IMAIN, ICRNCH, IQPLOP, IGONE, IEVAL: ROM BASIC's\nindirect entry points.\nStill at power-up values ($E38B, $A483, $A57C, $A71A, $A7E4, $AE86) and inert. BASIC ROM is\nbanked out ($01 = $36), and the RAM those addresses select now holds the game's IRQ handlers\nand the object-icon table. Boot residue, not program state.","note":"outside the tracked image","x":[43168]},{"a":780,"t":"note","l":"KERNAL_SAVED_REGISTERS","note":"outside the tracked image"},{"a":784,"t":"note","l":"USR_JMP","note":"outside the tracked image"},{"a":787,"t":"note","l":"UNUSED_0313","note":"outside the tracked image"},{"a":788,"t":"note","l":"C64_WORKSPACE_IRQ_RAM_VECTOR","c":"KERNAL CINV RAM vector. The captured little-endian value $A7E0 installs the game's raster dispatcher; the ROM IRQ entry consults this vector while KERNAL remains mapped in.","note":"outside the tracked image","x":[1727,1903,43189,43203,43214]},{"a":789,"t":"note","l":"IRQ_VECTOR_HIGH_BYTE","note":"outside the tracked image","x":[1732,1908,43208,43219]},{"a":790,"t":"note","l":"C64_WORKSPACE_BRK_RAM_VECTOR","note":"outside the tracked image"},{"a":792,"t":"note","l":"C64_WORKSPACE_NMI_RAM_VECTOR","note":"outside the tracked image"},{"a":794,"t":"note","l":"KERNAL_IO_VECTORS","c":"KERNAL_IO_VECTORS ($031A-$0333) - indirect entry points for OPEN, CLOSE, CHKIN, CKOUT,\nCLRCHN, CHRIN, CHROUT, STOP, GETIN, CLALL, the user command, LOAD and SAVE.\nEvery one is at its ROM default for KERNAL revision 901227-03 ($F34A, $F291, $F20E, $F250,\n$F333, $F157, $F1CA, $F6ED, $F13E, $F32F, $FE66, $F4A5, $F5ED), matching the ROM's own\ndefault table at $FD30. The program never patches them: for disk I/O it calls the public jump\ntable (SETNAM $FFBD and friends) and lets the KERNAL run normally.\nNote Mapping the 64 lists ILOAD/ISAVE as $F49E/$F5DD; this machine runs 901227-03, whose\ndefaults are $F4A5/$F5ED, and those are the values present.","note":"outside the tracked image"},{"a":820,"t":"note","l":"UNUSED_0334","note":"outside the tracked image"},{"a":828,"t":"note","l":"CASSETTE_BUFFER","c":"CASSETTE_BUFFER (TBUFFER, $033C-$03FB) - the KERNAL's 192-byte datasette block buffer.\nUnused by a disk-only program, which is exactly why the game parks its resident loader\ntrampoline RUN_FASTLOADER at $03A0, inside this buffer: 192 bytes that neither BASIC nor the\nKERNAL will disturb as long as no tape operation occurs. $033C-$039F is still zero-filled;\nthe game's code begins at $03A0.","note":"outside the tracked image"},{"a":928,"l":"RUN_FASTLOADER","c":"RUN_FASTLOADER ($03A0)\nPurpose: Bring the parked custom disk fast-loader into executable space and run it. The image normally lives in the RAM hidden beneath the CIA/I-O window at $DC00-$DFFF; this wrapper exchanges it with the four screen-matrix pages at $CC00-$CFFF and then calls it at $CC00.\nInputs: None in registers. Requires the loader image parked in RAM under $DC00-$DFFF and KERNAL file parameters already set by the caller (LOAD_NEXT_GAME_PART performs SETNAM before calling).\nOutputs: The requested part has been loaded by the custom loader; the loader image and the previous screen-matrix contents have been exchanged back by the callee's second half, so $CC00-$CFFF again holds the loader image only for the duration of the call.\nAssumptions: Entry with $01=$37 so that KERNAL ROM and the I/O page are visible; the four exchange pages exist both at $CC00-$CFFF and in RAM under $DC00-$DFFF.\nClobbers: A, X, Y, flags, plus whatever the custom loader itself uses; the visible screen matrix is destroyed for the duration of the call.\nHardware changes: Indirect: the callee SWAP_FASTLOADER_IMAGE drives the 6510 port $01 between $37 and $38, and the loader itself drives the serial bus on CIA 2 port A ($DD00). The text screen is unreadable while the loader occupies $CC00-$CFFF, which is why the caller blanks the VIC display first.","s":"Swap the hidden loader into execution space.","t":"code","b":[32,166,3],"m":"jsr","oa":934,"o":"SWAP_FASTLOADER_IMAGE","x":[38703]},{"a":931,"s":"Execute the custom loader now resident at $CC00.","t":"code","b":[32,0,204],"m":"jsr","oa":52224,"o":"SCREEN_RAM"},{"a":934,"l":"SWAP_FASTLOADER_IMAGE","c":"SWAP_FASTLOADER_IMAGE ($03A6)\nPurpose: Exchange the four 256-byte pages at $CC00-$CFFF with the four pages of RAM that lie underneath the I/O window at $DC00-$DFFF, so that a program parked in hidden RAM becomes executable and the displaced screen matrix is preserved.\nInputs: None in registers. Requires four consecutive pages at $CC00 and four underneath $DC00.\nOutputs: The two four-page regions have swapped contents. All four self-modified absolute operand high bytes ($03AD, $03B0, $03B3, $03B7) are reset to $CC/$DC so the routine is re-entrant across calls. Returns with interrupts disabled.\nAssumptions: Entry with $01=$37. The routine reaches $38 by INC $01, which is only correct from $37; it restores by DEC $01. Interrupts must stay off while I/O is hidden, otherwise an IRQ acknowledging $D019 would write RAM instead.\nClobbers: A, X, Y, flags, the four operand bytes named above, and the interrupt-disable flag (left set on return).\nHardware changes: Executes SEI. Changes the 6510 on-chip port $01 from $37 to $38, which unmaps the whole I/O page (VIC-II, SID, CIAs, colour RAM) and exposes the RAM beneath it, then restores $37. No device register is written.","t":"code","b":[120],"m":"sei","x":[928]},{"a":935,"s":"Increment $01 from $37 to $38: expose RAM at $D000-$DFFF.","t":"code","b":[230,1],"m":"inc","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":937,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":939,"l":"SWAP_FASTLOADER_PAGE_LOOP","s":"Read one byte from the visible $CCxx page; operand high byte advances per page.","t":"code","b":[188,0,204],"m":"ldy","oa":52224,"o":"SCREEN_RAM,x","x":[953,972]},{"a":941,"t":"note","l":"SWAP_SRC_VISIBLE_PAGE","c":"High operand byte of LDY $CC00,X at $03AB. The exchange loop advances it through pages $CC-$CF, reads parked loader pages $DC-$DF, and swaps the bytes; it resets to $CC on exit.","note":"inside the item at $03AB","x":[955,978]},{"a":942,"s":"Read the corresponding byte from RAM hidden beneath I/O.","t":"code","b":[189,0,220],"m":"lda","oa":56320,"o":"PARKED_LOADER_ENTRY,x"},{"a":944,"t":"note","l":"SWAP_SRC_HIDDEN_PAGE","c":"High operand byte of LDA $DC00,X at $03AE, advanced through $DC-$DF and restored to $DC after the four-page loader exchange.","note":"inside the item at $03AE","x":[958,986]},{"a":945,"s":"Move hidden-RAM byte into the $CCxx loader page.","t":"code","b":[157,0,204],"m":"sta","oa":52224,"o":"SCREEN_RAM,x"},{"a":947,"t":"note","l":"SWAP_DST_VISIBLE_PAGE","c":"High operand byte of STA $CC00,X at $03B1, advanced alongside the visible source operand through $CC-$CF and restored to $CC on exit.","note":"inside the item at $03B1","x":[961,981]},{"a":948,"t":"code","b":[152],"m":"tya"},{"a":949,"s":"Store former $CCxx byte under I/O, completing the swap.","t":"code","b":[157,0,220],"m":"sta","oa":56320,"o":"PARKED_LOADER_ENTRY,x"},{"a":951,"t":"note","l":"SWAP_DST_HIDDEN_PAGE","c":"High operand byte of STA $DC00,X at $03B5. Each byte writes the previous visible screen value beneath I/O. The loop ends when this operand reaches $E0, restores processor port $37, resets all four page operands, and returns at $03E0.","note":"inside the item at $03B5","x":[964,967,989]},{"a":952,"t":"code","b":[232],"m":"inx"},{"a":953,"t":"code","b":[208,240],"m":"bne","oa":939,"o":"SWAP_FASTLOADER_PAGE_LOOP"},{"a":955,"s":"Advance the $CCxx read operand to the next page.","t":"code","b":[238,173,3],"m":"inc","oa":941,"o":"SWAP_SRC_VISIBLE_PAGE"},{"a":958,"s":"Advance the $DCxx read operand to the next page.","t":"code","b":[238,176,3],"m":"inc","oa":944,"o":"SWAP_SRC_HIDDEN_PAGE"},{"a":961,"s":"Advance the $CCxx write operand to the next page.","t":"code","b":[238,179,3],"m":"inc","oa":947,"o":"SWAP_DST_VISIBLE_PAGE"},{"a":964,"s":"Advance the $DCxx write operand to the next page.","t":"code","b":[238,183,3],"m":"inc","oa":951,"o":"SWAP_DST_HIDDEN_PAGE"},{"a":967,"t":"code","b":[173,183,3],"m":"lda","oa":951,"o":"SWAP_DST_HIDDEN_PAGE"},{"a":970,"s":"Stop after swapping through page $DF.","t":"code","b":[201,224],"m":"cmp","o":"#$E0"},{"a":972,"t":"code","b":[208,221],"m":"bne","oa":939,"o":"SWAP_FASTLOADER_PAGE_LOOP"},{"a":974,"s":"Restore $01 from $38 to $37 so ROM and I/O are visible again.","t":"code","b":[198,1],"m":"dec","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":976,"s":"Reset all self-modified operand high bytes for the next invocation.","t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":978,"t":"code","b":[141,173,3],"m":"sta","oa":941,"o":"SWAP_SRC_VISIBLE_PAGE"},{"a":981,"t":"code","b":[141,179,3],"m":"sta","oa":947,"o":"SWAP_DST_VISIBLE_PAGE"},{"a":984,"t":"code","b":[169,220],"m":"lda","o":"#$DC"},{"a":986,"t":"code","b":[141,176,3],"m":"sta","oa":944,"o":"SWAP_SRC_HIDDEN_PAGE"},{"a":989,"t":"code","b":[141,183,3],"m":"sta","oa":951,"o":"SWAP_DST_HIDDEN_PAGE"},{"a":992,"t":"code","b":[96],"m":"rts"},{"a":993,"t":"gap","n":31},{"a":993,"t":"note","l":"UNUSED_TAPE_BUFFER_TAIL","c":"31 zero bytes. $03E1-$03FB is the tail of the KERNAL's cassette buffer ($033C-$03FB) and\n$03FC-$03FF is documented as unused; RUN_FASTLOADER / SWAP_FASTLOADER_IMAGE ends with RTS at\n$03E0 and nothing follows it.\nThe game parks its fast-loader wrapper at $03A0-$03E0 for the usual C64 reason: on a\ndisk-only program the tape buffer is free RAM, and it stays visible in every $01 banking\nconfiguration, including the all-RAM map the swap routine selects. The zeros here are the\nKERNAL RAMTAS boot fill.","note":"outside the tracked image"},{"a":1024,"l":"ENTRY_POINT","c":"Part-1 entry calls display setup $069B, then opening narrative and gameplay transition $1580. Both calls return before $0406 initializes the adventure and enters the command loop. The first phase installs temporary IRQ $A880; $070F installs gameplay IRQ $A7E0. The callees\u2019 direct contracts are described at their entries and checked by reference/review-checks.js.","s":"Initialize the first display phase before the opening narrative.","t":"code","b":[32,155,6],"m":"jsr","oa":1691,"o":"INITIALIZE_PART1_DISPLAY"},{"a":1027,"s":"excluded intro; returns with gameplay display installed","t":"code","b":[32,128,21],"m":"jsr","oa":5504,"o":"SHOW_OPENING_NARRATIVE_AND_ENTER_PLAY"},{"a":1030,"l":"CALL_INIT_GAME","c":"CALL_INIT_GAME ($0406)\nPurpose: Alternate, non-returning entry into game initialisation. Reached by the restart path (JMP from RESTART_GAME at $0FEE). Calls INIT_GAME to rebuild adventure state and the starting room, then falls through into MAIN_LOOP.\nInputs: None in registers.\nOutputs: Adventure state rebuilt and the starting room described; control continues in MAIN_LOOP. Never returns to its caller.\nAssumptions: The gameplay memory layout, banking, raster IRQ and display are already established; only the adventure state is rebuilt.\nClobbers: A, X, Y, flags, and all game state through callees. Any stack frame belonging to the abandoned command is not unwound here; RESTART_GAME has already discarded it.\nHardware changes: None directly. Callees write screen and colour RAM through the terminal.","s":"initialise adventure state (rooms, inventory, flags)","t":"code","b":[32,214,20],"m":"jsr","oa":5334,"o":"INIT_GAME","x":[4078]},{"a":1033,"l":"MAIN_LOOP","c":"MAIN_LOOP ($0409)\nPurpose: The non-returning foreground command loop: describe the current room, read one edited command line, parse and execute it, repeat forever.\nInputs: None in registers. Requires valid captured PART1 tables and initialised game state.\nOutputs: Continuously updated screen and game-state arrays. Never returns; the only exits are the non-local ones taken by RESTART_GAME and ACTION_NEXT_PART.\nAssumptions: Runs under the already-established gameplay banking ($01=$36), the raster-split IRQ, and the split display; it does not configure them itself.\nClobbers: A, X, Y, flags, and the whole parser, VM and renderer workspace.\nHardware changes: None directly; callees write screen RAM at $CC00-$CFFF, colour RAM at $D800-$DBFF, and read the CIA 1 keyboard matrix through KERNAL SCNKEY/GETIN.","s":"MAIN_LOOP: print current room description","t":"code","b":[32,125,20],"m":"jsr","oa":5245,"o":"PRINT_ROOM_DESCRIPTION","x":[1042,1074]},{"a":1036,"s":"read a line of player input","t":"code","b":[32,6,8],"m":"jsr","oa":2054,"o":"READ_INPUT"},{"a":1039,"s":"parse & execute the command","t":"code","b":[32,47,18],"m":"jsr","oa":4655,"o":"PARSE_INPUT"},{"a":1042,"s":"repeat forever","t":"code","b":[76,9,4],"m":"jmp","oa":1033,"o":"MAIN_LOOP"},{"a":1045,"l":"SWITCH_TO_NEXT_PART","c":"SWITCH_TO_NEXT_PART ($0415)\nPurpose: Advance the multipart overlay selector and bring in the next story part. Increments CURRENT_PART_NO, sets CURRENT_ROOM to that part's starting room ($34 for part 2, $4D for any later part), shows the swap prompt and loads, runs the new part's initialisation, and resumes the command loop.\nInputs: CURRENT_PART_NO ($2940) valid; the replacement disk part available in the drive.\nOutputs: CURRENT_PART_NO incremented, CURRENT_ROOM set, the captured overlay replaced on disk load, LOADED_PART_NO ($5E) recorded, and control transferred to MAIN_LOOP. Non-returning with respect to the action handler that invoked it.\nAssumptions: Called only from ACTION_NEXT_PART, which has already discarded three levels of return address, so the stack is at the main-loop level. The replacement occupant's internals are outside this project.\nClobbers: A, X, Y, flags, UI and disk scratch, and every array the replacement occupant's initialisation script writes.\nHardware changes: Through its callees: VIC-II display enable and border/background, VIC interrupt enable $D01A, CIA 1 timer A control $DC0E and interrupt control $DC0D, the serial bus, and the 6510 port $01.","s":"part counter += 1","t":"code","b":[238,64,41],"m":"inc","oa":10560,"o":"CURRENT_PART_NO","x":[4094]},{"a":1048,"t":"code","b":[173,64,41],"m":"lda","oa":10560,"o":"CURRENT_PART_NO"},{"a":1051,"s":"counter == 1 ?","t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":1053,"s":"yes -> object id $34","t":"code","b":[240,8],"m":"beq","oa":1063,"o":"NEXT_PART_SET_ROOM_PART2"},{"a":1055,"s":"A = object id $4D","t":"code","b":[169,77],"m":"lda","o":"#$4D"},{"a":1057,"s":"CURRENT_ROOM = $4D, the part-3 starting room.","t":"code","b":[141,63,41],"m":"sta","oa":10559,"o":"CURRENT_ROOM"},{"a":1060,"s":"skip","t":"code","b":[76,44,4],"m":"jmp","oa":1068,"o":"NEXT_PART_LOAD_AND_SETUP"},{"a":1063,"l":"NEXT_PART_SET_ROOM_PART2","s":"A = object id $34","t":"code","b":[169,52],"m":"lda","o":"#$34","x":[1053]},{"a":1065,"s":"CURRENT_ROOM = $34, the part-2 starting room.","t":"code","b":[141,63,41],"m":"sta","oa":10559,"o":"CURRENT_ROOM"},{"a":1068,"l":"NEXT_PART_LOAD_AND_SETUP","s":"show 'part N' screen + load from disk","t":"code","b":[32,57,4],"m":"jsr","oa":1081,"o":"SHOW_PART_LOAD_SCREEN","x":[1060]},{"a":1071,"s":"post-load room/game setup","t":"code","b":[32,68,21],"m":"jsr","oa":5444,"o":"SETUP_CURRENT_ROOM"},{"a":1074,"s":"back to MAIN_LOOP","t":"code","b":[76,9,4],"m":"jmp","oa":1033,"o":"MAIN_LOOP"},{"a":1077,"l":"ROOM_GRAPHIC_TABLE_PTR","c":"Pointer to ROOM_GRAPHIC_TABLE, the fixed six-byte illustration-blit records.","t":"word","b":[249,11],"d":[3065],"x":[1459]},{"a":1078,"t":"note","l":"a_0436","c":"High byte $0B of ROOM_GRAPHIC_TABLE_PTR, the little-endian pointer at $0435 whose captured value is $0BF9. Low byte and pointer purpose are described at $0435.","note":"inside the item at $0435","x":[1466]},{"a":1079,"l":"PART_INIT_SCRIPT_TABLE_PTR","c":"Pointer to the three-entry per-part initialization-script pointer table.","t":"word","b":[207,13],"d":[3535],"x":[5471]},{"a":1080,"t":"note","l":"a_0438","c":"High byte $0D of PART_INIT_SCRIPT_TABLE_PTR, the little-endian pointer at $0437 whose captured value is $0DCF. Low byte and pointer purpose are described at $0437.","note":"inside the item at $0437","x":[5478]},{"a":1081,"l":"SHOW_PART_LOAD_SCREEN","c":"SHOW_PART_LOAD_SCREEN ($0439)\nPurpose: Print the \"insert part N\" prompt, wait for Space, then load that part through the resident fast loader and record which part is now resident.\nInputs: CURRENT_PART_NO ($2940) selects the prompt digit and the file to load.\nOutputs: The prompt and the digit CURRENT_PART_NO+'0' printed; the requested part loaded over the overlay region; LOADED_PART_NO ($5E) set to CURRENT_PART_NO; returns normally.\nAssumptions: Terminal, keyboard, the installed loader at $9700 and the drive are all available. Gameplay interrupts are suspended and restored by PREPARE_DISK_IO/END_DISK_IO around the load.\nClobbers: A, X, Y, flags, the whole text-renderer scratch, and the zero page (exchanged with its backup and exchanged back).\nHardware changes: Blanks and re-enables the VIC display through $D011 bit 4 (DEN); rewrites the VIC interrupt-enable register $D01A ($F0 then $F1); stops CIA 1 timer A through $DC0E bit 0; drives the serial bus; changes the 6510 port $01 during the load.","s":"print blank line","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE","x":[1068,1159,5357]},{"a":1084,"s":"A = $2F = 'part' message sentence id","t":"code","b":[169,47],"m":"lda","o":"#$2F"},{"a":1086,"s":"print sentence","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":1089,"s":"part number","t":"code","b":[173,64,41],"m":"lda","oa":10560,"o":"CURRENT_PART_NO"},{"a":1092,"t":"code","b":[24],"m":"clc"},{"a":1093,"s":"+ '0' -> ASCII digit","t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":1095,"s":"output the part-number digit","t":"code","b":[32,170,9],"m":"jsr","oa":2474,"o":"COMPUTE_SENTENCE_PTR_OFS"},{"a":1098,"s":"print blank line","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":1101,"s":"wait for SPACE key","t":"code","b":[32,93,5],"m":"jsr","oa":1373,"o":"WAIT_FOR_SPACE_KEY"},{"a":1104,"s":"prepare for disk I/O","t":"code","b":[32,246,4],"m":"jsr","oa":1270,"o":"PREPARE_DISK_IO"},{"a":1107,"s":"fast-loader load ($9700)","t":"code","b":[32,0,151],"m":"jsr","oa":38656,"o":"LOAD_NEXT_GAME_PART"},{"a":1110,"s":"restore game state after I/O","t":"code","b":[32,33,5],"m":"jsr","oa":1313,"o":"END_DISK_IO"},{"a":1113,"s":"record loaded part number ...","t":"code","b":[173,64,41],"m":"lda","oa":10560,"o":"CURRENT_PART_NO"},{"a":1116,"s":"... in $5E (LOADED_PART_NO)","t":"code","b":[133,94],"m":"sta","oa":94,"o":"LOADED_PART_NO"},{"a":1118,"t":"code","b":[96],"m":"rts"},{"a":1119,"l":"LOAD_DISABLED_RTS","c":"LOAD_DISABLED_RTS ($045F)\nPurpose: One-byte return stub standing in for the LOAD feature. Action opcode $13 jumps here instead of to the surviving KERNAL load implementation at DISK_LOAD_GAME, so the shipped LOAD verb does nothing.\nInputs: None. Also called (as a plain subroutine) by DO_RESTART at $14F3.\nOutputs: Immediate return with everything unchanged.\nAssumptions: Nothing; the stub is deliberately inert. The complete load implementation still exists at $0461 but no shipped rule reaches it.\nClobbers: Nothing. A, X, Y, flags, memory, banking and devices are all preserved.\nHardware changes: None.","t":"code","b":[96],"m":"rts","x":[4492,5363]},{"a":1120,"l":"ROUTINE_PADDING_0460","c":"Single shipped $00 separator between the one-byte NOOP_045F RTS stub and DISK_LOAD_GAME. The byte is present in the original NEVER ENDING disk file, has no decoded operand or recorded reference, and is not on any control-flow path.","t":"byte","b":[0]},{"a":1121,"l":"DISK_LOAD_GAME","c":"DISK_LOAD_GAME ($0461)\nPurpose: Complete but unreachable KERNAL restore-game implementation: prompt for a filename, LOAD the saved state block over OBJECT_LOCATIONS, pull in a different story part if the restored save belongs to one, then redescribe and repaint the room.\nInputs: A = mode flag stored into DISK_ERROR_FLAG ($5F). DISK_LOAD_ADDR ($28BB/$28BC) supplies the load address; the eight-character FILENAME_BUF ($0DD7) is filled by READ_FILENAME.\nOutputs: On success the saved state block is in memory, the room is redescribed and the picture repainted. On a carry-set KERNAL error it tail-jumps to DISK_IO_ERROR. Returns normally otherwise.\nAssumptions: Static audit finds no call, pointer, action script or decoded operand reaching $0461 in the shipped build, so this routine is retained but inactive; the SAVE/LOAD verbs dispatch to the no-op stubs instead. When it did run it required KERNAL ROM, I/O and the KERNAL zero page to be swapped in by PREPARE_DISK_IO.\nClobbers: A, X, Y, flags, DISK_ERROR_FLAG, the zero page (exchanged and restored), and the whole renderer workspace.\nHardware changes: Through its callees: 6510 port $01 during the zero-page exchange, VIC-II display enable $D011 bit 4, VIC interrupt enable $D01A, CIA 1 timer A control $DC0E, and the serial bus via KERNAL LOAD ($FFD5), SETLFS ($FFBA) and SETNAM ($FFBD). Executes SEI around the status check.","s":"$5F = mode flag (from A)","t":"code","b":[133,95],"m":"sta","oa":95,"o":"DISK_ERROR_FLAG"},{"a":1123,"s":"prompt for + read filename","t":"code","b":[32,200,4],"m":"jsr","oa":1224,"o":"READ_FILENAME"},{"a":1126,"s":"prepare for disk I/O","t":"code","b":[32,246,4],"m":"jsr","oa":1270,"o":"PREPARE_DISK_IO"},{"a":1129,"s":"SETLFS + SETNAM (device 8, 8-char name)","t":"code","b":[32,12,5],"m":"jsr","oa":1292,"o":"SETUP_KERNAL_FILE"},{"a":1132,"s":"A=0 => LOAD (not verify)","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1134,"s":"X = load address low","t":"code","b":[174,187,40],"m":"ldx","oa":10427,"o":"DISK_LOAD_ADDR"},{"a":1137,"s":"Y = load address high","t":"code","b":[172,188,40],"m":"ldy","oa":10428,"o":"a_28BC"},{"a":1140,"s":"KERNAL LOAD","t":"code","b":[32,213,255],"m":"jsr","oa":65493,"o":"KERNAL_LOAD"},{"a":1143,"s":"block IRQ during status check","t":"code","b":[120],"m":"sei"},{"a":1144,"s":"carry set => load error","t":"code","b":[176,60],"m":"bcs","oa":1206,"o":"DISK_IO_ERROR"},{"a":1146,"s":"restore game state after I/O","t":"code","b":[32,33,5],"m":"jsr","oa":1313,"o":"END_DISK_IO"},{"a":1149,"s":"loaded part number","t":"code","b":[165,94],"m":"lda","oa":94,"o":"LOADED_PART_NO"},{"a":1151,"s":"== requested part?","t":"code","b":[205,64,41],"m":"cmp","oa":10560,"o":"CURRENT_PART_NO"},{"a":1154,"s":"yes -> skip reload","t":"code","b":[240,6],"m":"beq","oa":1162,"o":"DISK_LOAD_POST_LOAD_SETUP"},{"a":1156,"s":"else fetch requested part:","t":"code","b":[173,64,41],"m":"lda","oa":10560,"o":"CURRENT_PART_NO"},{"a":1159,"s":"show 'part N' + load","t":"code","b":[32,57,4],"m":"jsr","oa":1081,"o":"SHOW_PART_LOAD_SCREEN"},{"a":1162,"l":"DISK_LOAD_POST_LOAD_SETUP","s":"post-load setup","t":"code","b":[32,126,16],"m":"jsr","oa":4222,"o":"DESCRIBE_CURRENT_ROOM","x":[1154]},{"a":1165,"s":"post-load setup 2","t":"code","b":[32,112,5],"m":"jsr","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":1168,"s":"done","t":"code","b":[96],"m":"rts"},{"a":1169,"l":"SAVE_DISABLED_RTS","c":"SAVE_DISABLED_RTS ($0491)\nPurpose: One-byte return stub standing in for the SAVE feature. Action opcode $12 jumps here instead of to the surviving KERNAL save implementation at DISK_SAVE_GAME.\nInputs: None.\nOutputs: Immediate return with everything unchanged.\nAssumptions: Nothing; the stub is deliberately inert. The orphaned pointer word $04C8 stored at $0492/$0493 is leftover metadata of the disabled subsystem, not a live vector.\nClobbers: Nothing. A, X, Y, flags, memory, banking and devices are all preserved.\nHardware changes: None.","t":"code","b":[96],"m":"rts","x":[4489]},{"a":1170,"l":"UNUSED_READ_FILENAME_PTR","c":"UNUSED_READ_FILENAME_PTR \u2014 orphaned little-endian pointer $04C8 to READ_FILENAME, retained beside the disabled save/load implementation.\nThe shipped vocabulary accepts SAVE and LOAD, but their action scripts are only `12 FF` and `13 FF`; those opcode handlers jump to NOOP_0491 and NOOP_045F. No pointer, call, action script, decoded operand, or recorded reference reaches DISK_LOAD_GAME, DISK_SAVE_GAME, or this word. The bytes are unchanged from the original NEVER ENDING PRG. Their exact value and placement immediately after the save verb's RTS identify leftover filename-routine metadata from the disabled feature, not active code or an unresolved target.","t":"word","b":[200,4],"d":[1224]},{"a":1172,"l":"DISK_SAVE_GAME","c":"DISK_SAVE_GAME ($0494)\nPurpose: Complete but unreachable KERNAL save-game implementation: copy the save start address into the KERNAL's zero-page pointer at $FE/$FF, set the file parameters, and SAVE from there up to DISK_SAVE_END_ADDR.\nInputs: DISK_LOAD_ADDR ($28BB/$28BC) is the start of the block to write; DISK_SAVE_END_ADDR ($28BD/$28BE) is the exclusive end; FILENAME_BUF holds the eight-character name.\nOutputs: On success the block is written and END_DISK_IO restores the gameplay machine state. On a carry-set KERNAL error it tail-jumps to DISK_IO_ERROR.\nAssumptions: Static audit finds no active caller; the SAVE verb dispatches to SAVE_DISABLED_RTS. KERNAL SAVE requires A to hold the zero-page address of the start pointer, hence the LDA #$FE.\nClobbers: A, X, Y, flags, the KERNAL save pointer at $FE/$FF, and the zero page (exchanged and restored).\nHardware changes: 6510 port $01 during the zero-page exchange; VIC-II display enable $D011 bit 4; VIC interrupt enable $D01A; CIA 1 timer A control $DC0E; the serial bus via KERNAL SAVE ($FFD8), SETLFS and SETNAM. Executes SEI around the status check.","s":"prepare for disk I/O","t":"code","b":[32,246,4],"m":"jsr","oa":1270,"o":"PREPARE_DISK_IO"},{"a":1175,"s":"save start low ...","t":"code","b":[173,187,40],"m":"lda","oa":10427,"o":"DISK_LOAD_ADDR"},{"a":1178,"s":"... -> $FE","t":"code","b":[133,254],"m":"sta","oa":254,"o":"SAVE_START_PTR"},{"a":1180,"s":"save start high ...","t":"code","b":[173,188,40],"m":"lda","oa":10428,"o":"a_28BC"},{"a":1183,"s":"... -> $FF (KERNAL SAVE start ptr in ZP)","t":"code","b":[133,255],"m":"sta","oa":255,"o":"zpa_FF"},{"a":1185,"s":"SETLFS + SETNAM","t":"code","b":[32,12,5],"m":"jsr","oa":1292,"o":"SETUP_KERNAL_FILE"},{"a":1188,"s":"A=$FE => ZP ptr holding start address","t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":1190,"s":"X = end address low","t":"code","b":[174,189,40],"m":"ldx","oa":10429,"o":"DISK_SAVE_END_ADDR"},{"a":1193,"s":"Y = end address high","t":"code","b":[172,190,40],"m":"ldy","oa":10430,"o":"a_28BE"},{"a":1196,"s":"KERNAL SAVE ($FE.. up to X/Y)","t":"code","b":[32,216,255],"m":"jsr","oa":65496,"o":"KERNAL_SAVE"},{"a":1199,"s":"block IRQ during status check","t":"code","b":[120],"m":"sei"},{"a":1200,"s":"carry set => save error","t":"code","b":[176,4],"m":"bcs","oa":1206,"o":"DISK_IO_ERROR"},{"a":1202,"s":"restore game state after I/O","t":"code","b":[32,33,5],"m":"jsr","oa":1313,"o":"END_DISK_IO"},{"a":1205,"t":"code","b":[96],"m":"rts"},{"a":1206,"l":"DISK_IO_ERROR","c":"DISK_IO_ERROR ($04B6)\nPurpose: Shared failure tail for the retained disk subsystem: restore the gameplay machine state, raise the error flag, and print the disk-error message.\nInputs: Entered by tail jump from DISK_LOAD_GAME ($0478) or DISK_SAVE_GAME ($04B0) with carry set from the KERNAL call, or from ABORT_EMPTY_FILENAME at the $04B9 continuation.\nOutputs: DISK_ERROR_FLAG ($5F) set to 1; sentence $12 printed; returns to the caller of the failed disk routine.\nAssumptions: END_DISK_IO must be able to swap the game zero page back in, so the backup at $A002-$A0FF must be intact and BASIC must be banked out.\nClobbers: A, X, Y, flags, DISK_ERROR_FLAG, zero page (exchanged), and text-renderer scratch.\nHardware changes: Through END_DISK_IO: re-enables the VIC display ($D011 bit 4), stops CIA 1 timer A ($DC0E bit 0), rewrites $D01A to $F1 and executes CLI. Writes screen and colour RAM through the terminal.","s":"restore game state after I/O","t":"code","b":[32,33,5],"m":"jsr","oa":1313,"o":"END_DISK_IO","x":[1144,1200]},{"a":1209,"l":"DISK_IO_ERROR_REPORT","s":"A = 1","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[1221]},{"a":1211,"s":"$5F = error flag = 1","t":"code","b":[133,95],"m":"sta","oa":95,"o":"DISK_ERROR_FLAG"},{"a":1213,"s":"A = $12 = error-message sentence id","t":"code","b":[169,18],"m":"lda","o":"#$12"},{"a":1215,"s":"print sentence","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":1218,"t":"code","b":[96],"m":"rts"},{"a":1219,"l":"ABORT_EMPTY_FILENAME","c":"ABORT_EMPTY_FILENAME ($04C3)\nPurpose: Abort the filename prompt when the player entered nothing. Discards the immediate caller's return address so control cannot fall back into the load/save flow, then joins the error tail at $04B9.\nInputs: Entered by branch from READ_FILENAME ($04D5) with INPUT_LEN ($26) zero.\nOutputs: Two bytes popped from the stack; DISK_ERROR_FLAG set to 1 and sentence $12 printed; the eventual RTS returns to the caller of the routine that called READ_FILENAME.\nAssumptions: The stack contains exactly READ_FILENAME's return address on top, i.e. this label is only reachable from inside READ_FILENAME.\nClobbers: A, X, Y, flags, DISK_ERROR_FLAG, six bytes of stack depth accounting (two popped here), and renderer scratch.\nHardware changes: Writes screen and colour RAM through the terminal; no device register is programmed here.","s":"discard caller return address (2 bytes)","t":"code","b":[104],"m":"pla","x":[1237]},{"a":1220,"t":"code","b":[104],"m":"pla"},{"a":1221,"s":"report as I/O error","t":"code","b":[76,185,4],"m":"jmp","oa":1209,"o":"DISK_IO_ERROR_REPORT"},{"a":1224,"l":"READ_FILENAME","c":"READ_FILENAME ($04C8)\nPurpose: Prompt for and normalise an eight-character disk filename: print the prompt sentence, read one line with the long idle timeout, blank the buffer, then copy up to eight characters while folding lowercase to uppercase.\nInputs: None in registers. Uses the edited line left by READ_INPUT_ALT at INPUT_TEXT_BUFFER ($CBA0) with its length in INPUT_LEN ($26) and its pointer in AUX_PTR ($0E/$0F).\nOutputs: FILENAME_BUF ($0DD7-$0DDE) contains eight characters, space padded, PETSCII uppercase. Empty input does not return; it diverts to ABORT_EMPTY_FILENAME.\nAssumptions: Case folding is a plain SBC #$20 applied to every non-space character, so it only produces correct results for lowercase letters; digits and punctuation are mangled. Retained inactive code.\nClobbers: A, Y, flags, FILENAME_BUF, and everything READ_INPUT_ALT clobbers (editor state, idle counters, cursor).\nHardware changes: Through the editor: reads the CIA 1 keyboard matrix via KERNAL SCNKEY ($FF9F) and GETIN ($FFE4); writes screen and colour RAM.","s":"A = $43 = 'enter filename' prompt sentence id","t":"code","b":[169,67],"m":"lda","o":"#$43","x":[1123]},{"a":1226,"s":"print prompt","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":1229,"s":"read an input line","t":"code","b":[32,1,8],"m":"jsr","oa":2049,"o":"READ_INPUT_ALT"},{"a":1232,"s":"blank FILENAME_BUF (8 spaces)","t":"code","b":[32,235,4],"m":"jsr","oa":1259,"o":"BLANK_FILENAME_BUF"},{"a":1235,"s":"input length","t":"code","b":[165,38],"m":"lda","oa":38,"o":"INPUT_LEN"},{"a":1237,"s":"empty -> abort","t":"code","b":[240,236],"m":"beq","oa":1219,"o":"ABORT_EMPTY_FILENAME"},{"a":1239,"s":"Y = 0 (dest index)","t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":1241,"l":"READ_FILENAME_COPY_LOOP","s":"next input char (via $0E/$0F ptr)","t":"code","b":[177,14],"m":"lda","oa":14,"o":"(AUX_PTR),y","x":[1256]},{"a":1243,"s":"space?","t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":1245,"s":"yes -> keep as-is","t":"code","b":[240,3],"m":"beq","oa":1250,"o":"READ_FILENAME_STORE_CHAR"},{"a":1247,"s":"convert lowercase -> uppercase:","t":"code","b":[56],"m":"sec"},{"a":1248,"s":"A -= $20","t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":1250,"l":"READ_FILENAME_STORE_CHAR","s":"store into FILENAME_BUF[Y]","t":"code","b":[153,215,13],"m":"sta","oa":3543,"o":"FILENAME_BUF,y","x":[1245]},{"a":1253,"s":"next char","t":"code","b":[200],"m":"iny"},{"a":1254,"s":"up to 8 chars","t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":1256,"s":"loop","t":"code","b":[208,239],"m":"bne","oa":1241,"o":"READ_FILENAME_COPY_LOOP"},{"a":1258,"s":"done","t":"code","b":[96],"m":"rts"},{"a":1259,"l":"BLANK_FILENAME_BUF","c":"BLANK_FILENAME_BUF ($04EB)\nPurpose: Fill the eight-byte FILENAME_BUF with PETSCII spaces so a short name is correctly padded for KERNAL SETNAM.\nInputs: None.\nOutputs: FILENAME_BUF ($0DD7-$0DDE) set to $20 eight times. Returns with X=$FF and N set.\nAssumptions: The buffer is exactly eight bytes and is followed by the orphaned metadata word, which this loop does not touch.\nClobbers: A, X, flags. Y is preserved.\nHardware changes: None; ordinary RAM only.","s":"X = 7 (indices 7..0)","t":"code","b":[162,7],"m":"ldx","o":"#$07","x":[1232]},{"a":1261,"s":"A = $20 space","t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":1263,"l":"BLANK_FILENAME_LOOP","s":"FILENAME_BUF[X] = space","t":"code","b":[157,215,13],"m":"sta","oa":3543,"o":"FILENAME_BUF,x","x":[1267]},{"a":1266,"s":"X--","t":"code","b":[202],"m":"dex"},{"a":1267,"s":"loop while >= 0","t":"code","b":[16,250],"m":"bpl","oa":1263,"o":"BLANK_FILENAME_LOOP"},{"a":1269,"t":"code","b":[96],"m":"rts"},{"a":1270,"l":"PREPARE_DISK_IO","c":"PREPARE_DISK_IO ($04F6)\nPurpose: Put the machine into a state in which KERNAL disk routines can run: disable interrupts, exchange the game's private zero page for the KERNAL's, blank the display, and disable the raster interrupt source.\nInputs: None. Requires the KERNAL zero-page image to be present in the backup at $A002-$A0FF.\nOutputs: The KERNAL zero page is live and the game's copy is parked in the backup; the display is blank; the VIC raster interrupt is masked; returns with interrupts still disabled.\nAssumptions: BASIC ROM must be banked out ($01=$36 or $35) so that reads from $A000-$A0FF see the backup RAM rather than ROM. The four NOPs at $04F7-$04FA are shipped padding.\nClobbers: A, X, Y, flags, and the entire zero page from $02 to $FF (exchanged with its backup).\nHardware changes: Executes SEI. Clears bit 4 (DEN) of VIC-II control register 1 $D011, blanking the display. Writes $F0 to the VIC interrupt-enable register $D01A, clearing bit 0 so raster compares no longer request an IRQ.","s":"block IRQ","t":"code","b":[120],"m":"sei","x":[1104,1126,1172]},{"a":1271,"t":"code","b":[234],"m":"nop"},{"a":1272,"t":"code","b":[234],"m":"nop"},{"a":1273,"t":"code","b":[234],"m":"nop"},{"a":1274,"t":"code","b":[234],"m":"nop"},{"a":1275,"s":"swap in KERNAL zero page (restore $02-$FF from $A000 backup)","t":"code","b":[32,60,5],"m":"jsr","oa":1340,"o":"SWAP_ZERO_PAGE_AND_BACKUP"},{"a":1278,"s":"read $D011","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":1281,"s":"clear bit4 (DEN) = blank display","t":"code","b":[41,239],"m":"and","o":"#$EF"},{"a":1283,"s":"$D011","t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":1286,"s":"A = $F0","t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":1288,"s":"$D01A: disable raster IRQ (bit0=0)","t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":1291,"t":"code","b":[96],"m":"rts"},{"a":1292,"l":"SETUP_KERNAL_FILE","c":"SETUP_KERNAL_FILE ($050C)\nPurpose: Establish the KERNAL file parameters for the retained save/load code: logical file $20 on device 8 with secondary address 0, and an eight-character name taken from FILENAME_BUF.\nInputs: FILENAME_BUF filled; FILENAME_PTR ($0DD5/$0DD6) points at it.\nOutputs: KERNAL SETLFS and SETNAM have recorded the file number, device, secondary address, name length and name pointer.\nAssumptions: Secondary address 0 selects a program-file load at the address stored in the file rather than at the caller's address; the retained load path overrides that by passing A=0 to LOAD with its own X/Y.\nClobbers: A, X, Y, flags, and the KERNAL's own zero-page file-parameter bytes.\nHardware changes: Calls KERNAL SETLFS ($FFBA) and SETNAM ($FFBD); no device is accessed yet.","s":"A = $20 logical file number","t":"code","b":[169,32],"m":"lda","o":"#$20","x":[1129,1185]},{"a":1294,"s":"X = 8 device (disk drive)","t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":1296,"s":"Y = 0 secondary address","t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":1298,"s":"KERNAL SETLFS","t":"code","b":[32,186,255],"m":"jsr","oa":65466,"o":"KERNAL_SETLFS"},{"a":1301,"s":"A = 8 filename length","t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":1303,"s":"X = filename addr low (FILENAME_PTR)","t":"code","b":[174,213,13],"m":"ldx","oa":3541,"o":"FILENAME_PTR"},{"a":1306,"s":"Y = filename addr high","t":"code","b":[172,214,13],"m":"ldy","oa":3542,"o":"a_0DD6"},{"a":1309,"s":"KERNAL SETNAM","t":"code","b":[32,189,255],"m":"jsr","oa":65469,"o":"KERNAL_SETNAM"},{"a":1312,"t":"code","b":[96],"m":"rts"},{"a":1313,"l":"END_DISK_IO","c":"END_DISK_IO ($0521)\nPurpose: Undo PREPARE_DISK_IO: bring the game's zero page back, re-enable the display, stop CIA 1 timer A, re-arm the raster interrupt, and re-enable interrupts.\nInputs: None. Requires the game zero page to be parked in the backup at $A002-$A0FF.\nOutputs: Game zero page live again; display enabled; CIA 1 timer A halted; VIC raster interrupt re-armed; interrupts enabled on return.\nAssumptions: BASIC must still be banked out so the backup region reads as RAM. The routine assumes the raster dispatcher at $A7E0 is still installed in CINV.\nClobbers: A, X, Y, flags, and the entire zero page from $02 to $FF.\nHardware changes: Executes SEI then CLI. Sets bit 4 (DEN) of $D011 to re-enable the display. Clears bit 0 of CIA 1 timer A control $DC0E, stopping the timer that would otherwise drive the KERNAL's 60 Hz interrupt. Writes $F1 to $D01A, enabling the raster-compare interrupt source.","s":"swap game zero page back in","t":"code","b":[32,60,5],"m":"jsr","oa":1340,"o":"SWAP_ZERO_PAGE_AND_BACKUP","x":[1110,1146,1202,1206]},{"a":1316,"t":"code","b":[120],"m":"sei"},{"a":1317,"s":"read $D011","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":1320,"s":"set bit4 (DEN) = display on","t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":1322,"s":"$D011","t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":1325,"s":"read CIA#1 Timer A control","t":"code","b":[173,14,220],"m":"lda","o":"cia1_control_a"},{"a":1328,"s":"clear bit0 (stop timer)","t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":1330,"s":"CIA#1 Timer A control","t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":1333,"s":"A = $F1","t":"code","b":[169,241],"m":"lda","o":"#$F1"},{"a":1335,"s":"$D01A: re-enable raster IRQ (bit0=1)","t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":1338,"t":"code","b":[88],"m":"cli"},{"a":1339,"t":"code","b":[96],"m":"rts"},{"a":1340,"l":"SWAP_ZERO_PAGE_AND_BACKUP","c":"SWAP_ZERO_PAGE_AND_BACKUP ($053C)\nPurpose: Exchange the 254 bytes of zero page from $02 to $FF with the backup block at $A002-$A0FF, so the same code can serve both directions: park the game workspace before a KERNAL call and restore it afterwards.\nInputs: None.\nOutputs: The two regions have exchanged contents. Returns with Y=$01 and X holding the last byte read from zero page.\nAssumptions: $00 and $01 are deliberately excluded: they are the 6510 data-direction and port registers, not ordinary RAM, and swapping them would change the memory map mid-loop. BASIC ROM must be banked out so $A000-$A0FF reads the backup RAM; a write-only mapping is not enough because every byte is read before being replaced.\nClobbers: A, X, Y, flags, zero page $02-$FF, and the backup block.\nHardware changes: None directly, but the routine is only correct under a banking configuration that hides BASIC ROM.","t":"code","b":[160,255],"m":"ldy","o":"#$FF","x":[1275,1313]},{"a":1342,"l":"SWAP_LOOP","t":"code","b":[185,0,0],"m":"lda","oa":0,"o":"C64_CPU_PROCESSOR_PORT_DIRECTION,y","x":[1359]},{"a":1345,"t":"code","b":[170],"m":"tax"},{"a":1346,"t":"code","b":[185,0,160],"m":"lda","oa":40960,"o":"ZERO_PAGE_BACKUP,y"},{"a":1349,"t":"code","b":[153,0,0],"m":"sta","oa":0,"o":"C64_CPU_PROCESSOR_PORT_DIRECTION,y"},{"a":1352,"t":"code","b":[138],"m":"txa"},{"a":1353,"t":"code","b":[153,0,160],"m":"sta","oa":40960,"o":"ZERO_PAGE_BACKUP,y"},{"a":1356,"t":"code","b":[136],"m":"dey"},{"a":1357,"t":"code","b":[192,1],"m":"cpy","o":"#$01"},{"a":1359,"t":"code","b":[208,237],"m":"bne","oa":1342,"o":"SWAP_LOOP"},{"a":1361,"t":"code","b":[96],"m":"rts"},{"a":1362,"l":"WAIT_FOR_KEY","c":"WAIT_FOR_KEY ($0552)\nPurpose: Block until the keyboard produces a non-zero PETSCII code, scanning the matrix explicitly rather than relying on the KERNAL's timer interrupt.\nInputs: None.\nOutputs: A = the pressed key code, guaranteed non-zero; flags reflect the CMP #$00 that fell through.\nAssumptions: KERNAL ROM and the I/O page are visible and the KERNAL's keyboard-related zero-page workspace is valid. Because the game normally runs with CIA 1 timer A stopped, the KERNAL's own keyboard scan is not running, which is why SCNKEY is called explicitly.\nClobbers: A, X, Y, flags, the KERNAL keyboard buffer and its associated zero-page bytes.\nHardware changes: Calls KERNAL SCNKEY ($FF9F), which drives the CIA 1 keyboard matrix through $DC00/$DC01, and GETIN ($FFE4), which consumes the keyboard queue. No display register is touched.","t":"code","b":[32,159,255],"m":"jsr","oa":65439,"o":"KERNAL_SCNKEY","x":[1370,1373,1381,5572]},{"a":1365,"t":"code","b":[32,228,255],"m":"jsr","oa":65508,"o":"KERNAL_GETIN"},{"a":1368,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":1370,"t":"code","b":[240,246],"m":"beq","oa":1362,"o":"WAIT_FOR_KEY"},{"a":1372,"t":"code","b":[96],"m":"rts"},{"a":1373,"l":"WAIT_FOR_SPACE_KEY","c":"WAIT_FOR_SPACE_KEY ($055D)\nPurpose: Block until the player presses Space, discarding every other key.\nInputs: None.\nOutputs: A = $20; flags reflect the CMP #$20 that fell through.\nAssumptions: Same KERNAL ROM, I/O and zero-page requirements as WAIT_FOR_KEY.\nClobbers: A, X, Y, flags, KERNAL keyboard workspace.\nHardware changes: Through WAIT_FOR_KEY: CIA 1 keyboard matrix scanning via KERNAL SCNKEY and GETIN.","t":"code","b":[32,82,5],"m":"jsr","oa":1362,"o":"WAIT_FOR_KEY","x":[1101,1378,4482]},{"a":1376,"s":"Space","t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":1378,"t":"code","b":[208,249],"m":"bne","oa":1373,"o":"WAIT_FOR_SPACE_KEY"},{"a":1380,"t":"code","b":[96],"m":"rts"},{"a":1381,"l":"CHECK_YES_KEY","c":"CHECK_YES_KEY ($0565)\nPurpose: Read exactly one key and classify it as confirmation. Carry is the Boolean result.\nInputs: None.\nOutputs: A = the key that was pressed; carry set only for uppercase PETSCII 'Y' ($59), clear for everything else.\nAssumptions: Same KERNAL ROM, I/O and zero-page requirements as WAIT_FOR_KEY. The comparison is exact: lowercase 'y' does not confirm.\nClobbers: A, X, Y, flags, KERNAL keyboard workspace.\nHardware changes: Through WAIT_FOR_KEY: CIA 1 keyboard matrix scanning via KERNAL SCNKEY and GETIN.","t":"code","b":[32,82,5],"m":"jsr","oa":1362,"o":"WAIT_FOR_KEY","x":[4052,5345]},{"a":1384,"t":"code","b":[201,89],"m":"cmp","o":"#$59"},{"a":1386,"t":"code","b":[240,2],"m":"beq","oa":1390,"o":"CHECK_YES_ACCEPT"},{"a":1388,"t":"code","b":[24],"m":"clc"},{"a":1389,"t":"code","b":[96],"m":"rts"},{"a":1390,"l":"CHECK_YES_ACCEPT","t":"code","b":[56],"m":"sec","x":[1386]},{"a":1391,"t":"code","b":[96],"m":"rts"},{"a":1392,"l":"RENDER_ROOM_GRAPHICS","c":"RENDER_ROOM_GRAPHICS ($0570)\nPurpose: Rebuild the whole illustration band: restore the packed base display, draw each active runtime object record, then draw the static room picture selected by CURRENT_ROOM_GRAPHIC_ID.\nInputs: CURRENT_ROOM_GRAPHIC_ID ($2942) selects a RoomGraphicRecord in the 57-entry table at $0BF9; VISIBLE_OBJECT_RECORDS ($2943) holds six six-byte runtime records whose byte 3 is the enable flag.\nOutputs: Bitmap RAM at $E000, the screen matrix at $CC00 and colour RAM at $D800 hold the composed picture. Returns by falling into BLIT_ROOM_GRAPHIC's tail.\nAssumptions: The record index multiplication is performed as six repeated additions of CURRENT_ROOM_GRAPHIC_ID, which is the six-byte record stride; the caller must keep the index inside the table.\nClobbers: A, X, Y, flags, LOOP_COUNTER ($4B), GRAPHIC_RECORD_PTR ($5A/$5B), WORK_PTR ($0C/$0D), the blit state at $50-$59, and MEMCPY's pointers.\nHardware changes: Writes colour RAM at $D800-$DBFF directly. Writes bitmap and screen memory, which the VIC-II reads from bank 3. No VIC register is programmed here; the raster handler already selected the modes.","s":"Restore the packed base room display before overlay rendering.","t":"code","b":[32,162,7],"m":"jsr","oa":1954,"o":"RESTORE_GAMEPLAY_DISPLAY","x":[1165,3839,3929,4272,4407,4428,4446]},{"a":1395,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":1397,"s":"6 records to check","t":"code","b":[133,75],"m":"sta","oa":75,"o":"LOOP_COUNTER"},{"a":1399,"s":"$5A/$5B = VISIBLE_OBJ_RECORDS","t":"code","b":[173,185,40],"m":"lda","oa":10425,"o":"VISIBLE_OBJECT_RECORDS_PTR"},{"a":1402,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":1404,"t":"code","b":[173,186,40],"m":"lda","oa":10426,"o":"a_28BA"},{"a":1407,"t":"code","b":[133,91],"m":"sta","oa":91,"o":"zpa_5B"},{"a":1409,"l":"RENDER_ROOM_GFX_RECORD_LOOP","t":"code","b":[160,3],"m":"ldy","o":"#$03","x":[1431]},{"a":1411,"s":"record byte[3] (draw flag)","t":"code","b":[177,90],"m":"lda","oa":90,"o":"(GRAPHIC_RECORD_PTR),y"},{"a":1413,"t":"code","b":[240,3],"m":"beq","oa":1418,"o":"RENDER_ROOM_GFX_NEXT_RECORD"},{"a":1415,"s":"Draw this active runtime RoomGraphicRecord.","t":"code","b":[32,191,5],"m":"jsr","oa":1471,"o":"BLIT_ROOM_GRAPHIC"},{"a":1418,"l":"RENDER_ROOM_GFX_NEXT_RECORD","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[1413]},{"a":1420,"s":"advance to next 6-byte record","t":"code","b":[24],"m":"clc"},{"a":1421,"t":"code","b":[101,90],"m":"adc","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":1423,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":1425,"t":"code","b":[144,2],"m":"bcc","oa":1429,"o":"RENDER_ROOM_GFX_LOOP_TAIL"},{"a":1427,"t":"code","b":[230,91],"m":"inc","oa":91,"o":"zpa_5B"},{"a":1429,"l":"RENDER_ROOM_GFX_LOOP_TAIL","t":"code","b":[198,75],"m":"dec","oa":75,"o":"LOOP_COUNTER","x":[1425]},{"a":1431,"t":"code","b":[208,232],"m":"bne","oa":1409,"o":"RENDER_ROOM_GFX_RECORD_LOOP"},{"a":1433,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1435,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":1437,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":1439,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":1441,"l":"RENDER_ROOM_GFX_STRIDE_LOOP","s":"multiply CURRENT_ROOM_GRAPHIC_ID by the six-byte RoomGraphicRecord stride","t":"code","b":[173,66,41],"m":"lda","oa":10562,"o":"CURRENT_ROOM_GRAPHIC_ID","x":[1454]},{"a":1444,"t":"code","b":[24],"m":"clc"},{"a":1445,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"WORK_PTR"},{"a":1447,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":1449,"t":"code","b":[144,2],"m":"bcc","oa":1453,"o":"RENDER_ROOM_GFX_STRIDE_TAIL"},{"a":1451,"t":"code","b":[230,13],"m":"inc","oa":13,"o":"zpa_0D"},{"a":1453,"l":"RENDER_ROOM_GFX_STRIDE_TAIL","t":"code","b":[202],"m":"dex","x":[1449]},{"a":1454,"t":"code","b":[208,241],"m":"bne","oa":1441,"o":"RENDER_ROOM_GFX_STRIDE_LOOP"},{"a":1456,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR"},{"a":1458,"t":"code","b":[24],"m":"clc"},{"a":1459,"s":"+ OBJ_GFX_TABLE_PTR ($0435)","t":"code","b":[109,53,4],"m":"adc","oa":1077,"o":"ROOM_GRAPHIC_TABLE_PTR"},{"a":1462,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":1464,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":1466,"t":"code","b":[109,54,4],"m":"adc","oa":1078,"o":"a_0436"},{"a":1469,"t":"code","b":[133,91],"m":"sta","oa":91,"o":"zpa_5B"},{"a":1471,"l":"BLIT_ROOM_GRAPHIC","c":"BLIT_ROOM_GRAPHIC ($05BF)\nPurpose: Draw one RoomGraphicRecord. Copies the six record fields into the zero-page blit state and then, for each character row, writes the record's bitmap, screen-code and colour spans to the three destination tables.\nInputs: GRAPHIC_RECORD_PTR ($5A/$5B) points at a six-byte record: start row, start column, source pointer (two bytes), height in rows, width in columns.\nOutputs: A height-by-width rectangle of the picture band updated in bitmap, screen and colour memory; BLIT_ROW ($50) advanced to the end row.\nAssumptions: Row and column stay inside the ten-row, forty-column destination tables at $0BBD (bitmap), $0BD1 (screen) and $0BE5 (colour). No clipping is performed. The source stream is interleaved per row as width*8 bitmap bytes, then width screen bytes, then width colour bytes, so one record consumes height*width*10 bytes.\nClobbers: A, X, Y, flags, and the blit state $50-$59 (row, column, source pointer, end row, width, destination pointer, source end pointer).\nHardware changes: Writes colour RAM at $D800-$DBFF; writes bitmap and screen memory read by the VIC-II. Programs no VIC register.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[1415]},{"a":1473,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":1475,"l":"BLIT_ROOM_GFX_COPY_RECORD","s":"copy 6-byte record -> $50..$55","t":"code","b":[177,90],"m":"lda","oa":90,"o":"(GRAPHIC_RECORD_PTR),y","x":[1483]},{"a":1477,"t":"code","b":[149,80],"m":"sta","oa":80,"o":"BLIT_ROW,x"},{"a":1479,"t":"code","b":[232],"m":"inx"},{"a":1480,"t":"code","b":[200],"m":"iny"},{"a":1481,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":1483,"t":"code","b":[208,246],"m":"bne","oa":1475,"o":"BLIT_ROOM_GFX_COPY_RECORD"},{"a":1485,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"BLIT_ROW"},{"a":1487,"t":"code","b":[24],"m":"clc"},{"a":1488,"t":"code","b":[101,84],"m":"adc","oa":84,"o":"BLIT_END_ROW"},{"a":1490,"t":"code","b":[133,84],"m":"sta","oa":84,"o":"BLIT_END_ROW"},{"a":1492,"l":"BLIT_ROOM_GFX_ROW_LOOP","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[1650]},{"a":1494,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":1496,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"BLIT_ROW"},{"a":1498,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1499,"t":"code","b":[170],"m":"tax"},{"a":1500,"s":"row -> bitmap address (BITMAP_ROW_ADDR_TABLE)","t":"code","b":[189,189,11],"m":"lda","oa":3005,"o":"BITMAP_ROW_ADDR_TABLE,x"},{"a":1503,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"BLIT_DEST_PTR"},{"a":1505,"t":"code","b":[232],"m":"inx"},{"a":1506,"t":"code","b":[189,189,11],"m":"lda","oa":3005,"o":"BITMAP_ROW_ADDR_TABLE,x"},{"a":1509,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"zpa_57"},{"a":1511,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"BLIT_COLUMN"},{"a":1513,"s":"column * 8 (bitmap cell)","t":"code","b":[10],"m":"asl","o":"a"},{"a":1514,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1515,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1516,"t":"code","b":[144,6],"m":"bcc","oa":1524,"o":"BLIT_ROOM_GFX_ADD_COLUMN"},{"a":1518,"t":"code","b":[72],"m":"pha"},{"a":1519,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":1521,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":1523,"t":"code","b":[104],"m":"pla"},{"a":1524,"l":"BLIT_ROOM_GFX_ADD_COLUMN","t":"code","b":[24],"m":"clc","x":[1516]},{"a":1525,"t":"code","b":[101,86],"m":"adc","oa":86,"o":"BLIT_DEST_PTR"},{"a":1527,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"BLIT_DEST_PTR"},{"a":1529,"t":"code","b":[165,87],"m":"lda","oa":87,"o":"zpa_57"},{"a":1531,"t":"code","b":[101,2],"m":"adc","oa":2,"o":"SCRATCH_BYTE"},{"a":1533,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"zpa_57"},{"a":1535,"t":"code","b":[165,85],"m":"lda","oa":85,"o":"BLIT_WIDTH"},{"a":1537,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1538,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1539,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1540,"t":"code","b":[24],"m":"clc"},{"a":1541,"t":"code","b":[101,82],"m":"adc","oa":82,"o":"BLIT_SOURCE_PTR"},{"a":1543,"t":"code","b":[133,88],"m":"sta","oa":88,"o":"BLIT_SOURCE_END_PTR"},{"a":1545,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"zpa_53"},{"a":1547,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":1549,"t":"code","b":[133,89],"m":"sta","oa":89,"o":"zpa_59"},{"a":1551,"s":"Copy this bitmap row span.","t":"code","b":[32,118,6],"m":"jsr","oa":1654,"o":"COPY_BLIT_ROW"},{"a":1554,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"BLIT_ROW"},{"a":1556,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1557,"t":"code","b":[170],"m":"tax"},{"a":1558,"t":"code","b":[189,209,11],"m":"lda","oa":3025,"o":"f_0BD1,x"},{"a":1561,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"BLIT_DEST_PTR"},{"a":1563,"t":"code","b":[232],"m":"inx"},{"a":1564,"t":"code","b":[189,209,11],"m":"lda","oa":3025,"o":"f_0BD1,x"},{"a":1567,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"zpa_57"},{"a":1569,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"BLIT_COLUMN"},{"a":1571,"t":"code","b":[24],"m":"clc"},{"a":1572,"t":"code","b":[101,86],"m":"adc","oa":86,"o":"BLIT_DEST_PTR"},{"a":1574,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"BLIT_DEST_PTR"},{"a":1576,"t":"code","b":[165,87],"m":"lda","oa":87,"o":"zpa_57"},{"a":1578,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":1580,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"zpa_57"},{"a":1582,"t":"code","b":[165,85],"m":"lda","oa":85,"o":"BLIT_WIDTH"},{"a":1584,"t":"code","b":[24],"m":"clc"},{"a":1585,"t":"code","b":[101,82],"m":"adc","oa":82,"o":"BLIT_SOURCE_PTR"},{"a":1587,"t":"code","b":[133,88],"m":"sta","oa":88,"o":"BLIT_SOURCE_END_PTR"},{"a":1589,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"zpa_53"},{"a":1591,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":1593,"t":"code","b":[133,89],"m":"sta","oa":89,"o":"zpa_59"},{"a":1595,"s":"Copy this screen-code row span.","t":"code","b":[32,118,6],"m":"jsr","oa":1654,"o":"COPY_BLIT_ROW"},{"a":1598,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"BLIT_ROW"},{"a":1600,"t":"code","b":[10],"m":"asl","o":"a"},{"a":1601,"t":"code","b":[170],"m":"tax"},{"a":1602,"t":"code","b":[189,229,11],"m":"lda","oa":3045,"o":"COLOR_ROW_ADDR_TABLE,x"},{"a":1605,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"BLIT_DEST_PTR"},{"a":1607,"t":"code","b":[232],"m":"inx"},{"a":1608,"t":"code","b":[189,229,11],"m":"lda","oa":3045,"o":"COLOR_ROW_ADDR_TABLE,x"},{"a":1611,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"zpa_57"},{"a":1613,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"BLIT_COLUMN"},{"a":1615,"t":"code","b":[24],"m":"clc"},{"a":1616,"t":"code","b":[101,86],"m":"adc","oa":86,"o":"BLIT_DEST_PTR"},{"a":1618,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"BLIT_DEST_PTR"},{"a":1620,"t":"code","b":[165,87],"m":"lda","oa":87,"o":"zpa_57"},{"a":1622,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":1624,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"zpa_57"},{"a":1626,"t":"code","b":[165,85],"m":"lda","oa":85,"o":"BLIT_WIDTH"},{"a":1628,"t":"code","b":[24],"m":"clc"},{"a":1629,"t":"code","b":[101,82],"m":"adc","oa":82,"o":"BLIT_SOURCE_PTR"},{"a":1631,"t":"code","b":[133,88],"m":"sta","oa":88,"o":"BLIT_SOURCE_END_PTR"},{"a":1633,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"zpa_53"},{"a":1635,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":1637,"t":"code","b":[133,89],"m":"sta","oa":89,"o":"zpa_59"},{"a":1639,"s":"Copy this color row span.","t":"code","b":[32,118,6],"m":"jsr","oa":1654,"o":"COPY_BLIT_ROW"},{"a":1642,"t":"code","b":[230,80],"m":"inc","oa":80,"o":"BLIT_ROW"},{"a":1644,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"BLIT_ROW"},{"a":1646,"t":"code","b":[197,84],"m":"cmp","oa":84,"o":"BLIT_END_ROW"},{"a":1648,"t":"code","b":[240,3],"m":"beq","oa":1653,"o":"BLIT_ROOM_GFX_DONE"},{"a":1650,"t":"code","b":[76,212,5],"m":"jmp","oa":1492,"o":"BLIT_ROOM_GFX_ROW_LOOP"},{"a":1653,"l":"BLIT_ROOM_GFX_DONE","t":"code","b":[96],"m":"rts","x":[1648]},{"a":1654,"l":"COPY_BLIT_ROW","c":"COPY_BLIT_ROW ($0676)\nPurpose: Copy one span of the interleaved picture stream to its destination, advancing both pointers across page boundaries and stopping on an exact sixteen-bit end comparison.\nInputs: BLIT_SOURCE_PTR ($52/$53), BLIT_SOURCE_END_PTR ($58/$59) as an exclusive end, and BLIT_DEST_PTR ($56/$57).\nOutputs: The span is copied; source and destination pointers are left at their ends, so the caller can compute the next span from BLIT_SOURCE_PTR alone.\nAssumptions: The end pointer is strictly reachable from the start pointer; the loop tests low byte then high byte, so a mismatched pair would run away. Y is held at zero throughout, so the indirect stores are effectively plain pointer writes.\nClobbers: A, Y, flags, BLIT_SOURCE_PTR and BLIT_DEST_PTR. X is preserved.\nHardware changes: Writes colour RAM at $D800-$DBFF when the destination is a colour span; otherwise writes ordinary RAM that the VIC-II reads.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[1551,1595,1639]},{"a":1656,"l":"COPY_BLIT_ROW_LOOP","s":"Dynamic GET FALKOR proof: this indirect read used BLIT_SOURCE_PTR=$B3C0 with CURRENT_OBJECT_INDEX=$17; slot 23 is ICON_FALKOR.","t":"code","b":[177,82],"m":"lda","oa":82,"o":"(BLIT_SOURCE_PTR),y","x":[1676,1682]},{"a":1658,"t":"code","b":[145,86],"m":"sta","oa":86,"o":"(BLIT_DEST_PTR),y"},{"a":1660,"t":"code","b":[230,82],"m":"inc","oa":82,"o":"BLIT_SOURCE_PTR"},{"a":1662,"t":"code","b":[208,2],"m":"bne","oa":1666,"o":"COPY_BLIT_ROW_BUMP_DEST"},{"a":1664,"t":"code","b":[230,83],"m":"inc","oa":83,"o":"zpa_53"},{"a":1666,"l":"COPY_BLIT_ROW_BUMP_DEST","t":"code","b":[230,86],"m":"inc","oa":86,"o":"BLIT_DEST_PTR","x":[1662]},{"a":1668,"t":"code","b":[208,2],"m":"bne","oa":1672,"o":"COPY_BLIT_ROW_TEST_END"},{"a":1670,"t":"code","b":[230,87],"m":"inc","oa":87,"o":"zpa_57"},{"a":1672,"l":"COPY_BLIT_ROW_TEST_END","t":"code","b":[165,82],"m":"lda","oa":82,"o":"BLIT_SOURCE_PTR","x":[1668]},{"a":1674,"t":"code","b":[197,88],"m":"cmp","oa":88,"o":"BLIT_SOURCE_END_PTR"},{"a":1676,"t":"code","b":[208,234],"m":"bne","oa":1656,"o":"COPY_BLIT_ROW_LOOP"},{"a":1678,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"zpa_53"},{"a":1680,"t":"code","b":[197,89],"m":"cmp","oa":89,"o":"zpa_59"},{"a":1682,"t":"code","b":[208,228],"m":"bne","oa":1656,"o":"COPY_BLIT_ROW_LOOP"},{"a":1684,"t":"code","b":[96],"m":"rts"},{"a":1685,"l":"READ_RASTER_LINE","c":"READ_RASTER_LINE ($0695)\nPurpose: Sample the low eight bits of the VIC-II raster counter, used by the engine as its only entropy source.\nInputs: None.\nOutputs: A = the low eight bits of $D012; N and Z reflect that value. X and Y are preserved.\nAssumptions: The I/O page must be visible. Bit 8 of the raster counter lives in bit 7 of $D011 and is deliberately not returned, so the value wraps every 256 lines rather than every frame.\nClobbers: A and flags only.\nHardware changes: Reads VIC-II register $D012. Nothing is written and no VIC state changes.","t":"code","b":[173,18,208],"m":"lda","o":"vic_raster","x":[4646]},{"a":1688,"t":"code","b":[96],"m":"rts"},{"a":1689,"l":"NOOP_0699","c":"NOOP_0699 ($0699)\nPurpose: Deliberate one-byte RTS stub invoked by action opcode $0B through NOOP_ACTION_11.\nInputs: None.\nOutputs: Immediate return.\nAssumptions: The engine allocates one no-op opcode and one stub per silent verb; this is the $0B stub, distinct from the $0C stub at $069A.\nClobbers: Nothing. A, X, Y, flags, memory and devices are all preserved.\nHardware changes: None.","t":"code","b":[96],"m":"rts","x":[4389]},{"a":1690,"l":"NOOP_069A","c":"NOOP_069A ($069A)\nPurpose: Deliberate one-byte RTS stub invoked by action opcode $0C through NOOP_ACTION_12.\nInputs: None.\nOutputs: Immediate return.\nAssumptions: Paired with NOOP_0699; the two adjacent stubs exist so that each no-op opcode has its own handler chain.\nClobbers: Nothing. A, X, Y, flags, memory and devices are all preserved.\nHardware changes: None.","t":"code","b":[96],"m":"rts","x":[4393]},{"a":1691,"l":"INITIALIZE_PART1_DISPLAY","c":"Initialize the first Part-1 display phase. Mask IRQs, select port $36, call KERNAL IOINIT ($FF84) and SETMSG ($FF90) with A=0, stop CIA1 timer A, and copy zero-page bytes $0002-$00FF to $A002-$A0FF. Install temporary IRQ $A880 through $0314/$0315, enable VIC interrupts with $D01A=$F1, set compare $D012=$33, select VIC bank $C000 and text layout $D018=$3E/$D011=$1B/$D016=$C8. Initialize screen and colour cursors to $CC00/$D800, clear the text screen through $07E8, set $5E=$FF, call $96A1 and $96DA with RAM under KERNAL visible ($01=$35), restore $01=$36 and enable IRQs. Controlled source calls verify its own writes and call order; the internal effects of the $96xx callees are not established by those hooked calls.","t":"code","b":[120],"m":"sei","x":[1024]},{"a":1692,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":1694,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":1696,"t":"code","b":[32,132,255],"m":"jsr","oa":65412,"o":"$FF84"},{"a":1699,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1701,"t":"code","b":[32,144,255],"m":"jsr","oa":65424,"o":"$FF90"},{"a":1704,"t":"code","b":[173,14,220],"m":"lda","o":"cia1_control_a"},{"a":1707,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":1709,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":1712,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":1714,"t":"code","b":[185,0,0],"m":"lda","oa":0,"o":"C64_CPU_PROCESSOR_PORT_DIRECTION,y","x":[1723]},{"a":1717,"t":"code","b":[153,0,160],"m":"sta","oa":40960,"o":"ZERO_PAGE_BACKUP,y"},{"a":1720,"t":"code","b":[136],"m":"dey"},{"a":1721,"t":"code","b":[192,1],"m":"cpy","o":"#$01"},{"a":1723,"t":"code","b":[208,245],"m":"bne","oa":1714,"o":"$06B2"},{"a":1725,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":1727,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"C64_WORKSPACE_IRQ_RAM_VECTOR"},{"a":1730,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":1732,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"IRQ_VECTOR_HIGH_BYTE"},{"a":1735,"t":"code","b":[169,241],"m":"lda","o":"#$F1"},{"a":1737,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":1740,"t":"code","b":[169,51],"m":"lda","o":"#$33"},{"a":1742,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":1745,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":1748,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":1750,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":1753,"t":"code","b":[169,62],"m":"lda","o":"#$3E"},{"a":1755,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":1758,"t":"code","b":[169,27],"m":"lda","o":"#$1B"},{"a":1760,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":1763,"t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":1765,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":1768,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1770,"t":"code","b":[133,6],"m":"sta","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":1772,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"COLOR_CURSOR_PTR"},{"a":1774,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"DISK_ERROR_FLAG"},{"a":1776,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":1778,"t":"code","b":[133,7],"m":"sta","oa":7,"o":"zpa_07"},{"a":1780,"t":"code","b":[169,216],"m":"lda","o":"#$D8"},{"a":1782,"t":"code","b":[133,9],"m":"sta","oa":9,"o":"zpa_09"},{"a":1784,"t":"code","b":[32,232,7],"m":"jsr","oa":2024,"o":"CLEAR_TEXT_SCREEN"},{"a":1787,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":1789,"t":"code","b":[133,94],"m":"sta","oa":94,"o":"LOADED_PART_NO"},{"a":1791,"t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":1793,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":1795,"t":"code","b":[32,161,150],"m":"jsr","oa":38561,"o":"$96A1"},{"a":1798,"t":"code","b":[32,218,150],"m":"jsr","oa":38618,"o":"$96DA"},{"a":1801,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":1803,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":1805,"t":"code","b":[88],"m":"cli"},{"a":1806,"t":"code","b":[96],"m":"rts"},{"a":1807,"l":"ENTER_GAMEPLAY_DISPLAY","c":"ENTER_GAMEPLAY_DISPLAY ($070F)\nPurpose: The gameplay-side half of the phase transition: set up the text cursor, clear the text screen, install the runtime disk loader over the excluded title-stage occupant, capture the live bitmap into the packed display buffer, restore the composed display, and install the raster-split IRQ handler.\nInputs: None in registers. Requires the staged loader image at $C000-$C1FF and the live picture already present at $E000; the previous phase has already selected VIC bank 3, enabled the raster interrupt in $D01A and programmed an initial $D012/$D011 compare.\nOutputs: SCREEN_CURSOR_PTR ($06/$07) = $CD90 and COLOR_CURSOR_PTR ($08/$09) = $D990; the text screen is cleared; the 512-byte loader occupies $9700-$98FF; $BC00 onwards holds the packed $0FA0-byte display bundle; the composed display is restored; CINV ($0314/$0315) = $A7E0; $01 = $36; interrupts enabled on return.\nAssumptions: The copy loop at $0730 runs with $01=$36, so $9700 is plain RAM. Reading the live bitmap at $E000 requires $01=$35 to expose RAM under the KERNAL, which the routine sets and then restores.\nClobbers: A, X, Y, flags, MEMCPY_SOURCE ($0A/$0B), WORK_PTR ($0C/$0D), the screen and colour cursors, CURRENT_COLUMN ($24), KEY_REPEAT_COUNTDOWN ($028B), the renderer state byte at $0AF5, and the two pages at $9700-$98FF.\nHardware changes: Executes SEI then CLI. Writes the 6510 port $01 ($35 then $36). Sets VIC-II background colour $D021 and border colour $D020 to medium grey ($0C). Writes colour RAM at $D800-$D98F (400 cells) through the display restore. Rewrites the KERNAL RAM IRQ vector CINV at $0314/$0315 to point at $A7E0.","s":"Keep interrupts disabled while replacing display and IRQ state.","t":"code","b":[120],"m":"sei","x":[5588]},{"a":1808,"s":"Set screen cursor to $CD90, the first gameplay text position.","t":"code","b":[169,144],"m":"lda","o":"#$90"},{"a":1810,"t":"code","b":[133,6],"m":"sta","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":1812,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"COLOR_CURSOR_PTR"},{"a":1814,"s":"Set matching color cursor to $D990.","t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":1816,"t":"code","b":[133,7],"m":"sta","oa":7,"o":"zpa_07"},{"a":1818,"t":"code","b":[169,217],"m":"lda","o":"#$D9"},{"a":1820,"t":"code","b":[133,9],"m":"sta","oa":9,"o":"zpa_09"},{"a":1822,"s":"Clear all four pages of screen RAM.","t":"code","b":[32,232,7],"m":"jsr","oa":2024,"o":"CLEAR_TEXT_SCREEN"},{"a":1825,"s":"Select blue as the KERNAL text color.","t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":1827,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":1830,"s":"Set border and background to medium grey ($0C).","t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":1832,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":1835,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":1838,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":1840,"l":"ENTER_DISPLAY_LOADER_COPY_LOOP","c":"INSTALL_DISK_LOADER \u2014 copies the 512-byte runtime disk loader from staging pages $C000-$C1FF to $9700-$98FF. Y counts 0..255 for both pages in parallel. Called only from ENTER_GAMEPLAY_DISPLAY with $01=$36, so the destination is plain RAM. Replacing the excluded title-stage occupant marks the transition into gameplay.","s":"Copy staged loader page $C000 to runtime page $9700.","t":"code","b":[185,0,192],"m":"lda","oa":49152,"o":"f_C000,y","x":[1853]},{"a":1843,"s":"Install loader page 1 at $9700.","t":"code","b":[153,0,151],"m":"sta","oa":38656,"o":"LOAD_NEXT_GAME_PART,y"},{"a":1846,"s":"Copy staged loader page $C100 to runtime page $9800.","t":"code","b":[185,0,193],"m":"lda","oa":49408,"o":"f_C100,y"},{"a":1849,"s":"Install loader page 2 at $9800.","t":"code","b":[153,0,152],"m":"sta","oa":38912,"o":"f_9800,y"},{"a":1852,"t":"code","b":[200],"m":"iny"},{"a":1853,"t":"code","b":[208,241],"m":"bne","oa":1840,"o":"ENTER_DISPLAY_LOADER_COPY_LOOP"},{"a":1855,"s":"Expose RAM beneath KERNAL before reading the live bitmap.","t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":1857,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":1859,"s":"MEMCPY source = $E000 bitmap memory.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1861,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":1863,"t":"code","b":[169,224],"m":"lda","o":"#$E0"},{"a":1865,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":1867,"s":"MEMCPY destination = packed display buffer at $BC00.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1869,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":1871,"t":"code","b":[169,188],"m":"lda","o":"#$BC"},{"a":1873,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":1875,"s":"Copy 15 complete pages.","t":"code","b":[162,15],"m":"ldx","o":"#$0F"},{"a":1877,"s":"Copy an additional $A0 bytes, for $0FA0 bytes total.","t":"code","b":[160,160],"m":"ldy","o":"#$A0"},{"a":1879,"s":"Copy the complete $0FA0-byte packed display bundle.","t":"code","b":[32,121,7],"m":"jsr","oa":1913,"o":"MEMCPY"},{"a":1882,"s":"Restore game-standard banking.","t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":1884,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":1886,"s":"Restore saved screen, color, and bitmap buffers.","t":"code","b":[32,162,7],"m":"jsr","oa":1954,"o":"RESTORE_GAMEPLAY_DISPLAY"},{"a":1889,"s":"Clear KERNAL color-code mode byte.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1891,"s":"Reset render/cursor state.","t":"code","b":[141,139,2],"m":"sta","oa":651,"o":"KEY_REPEAT_COUNTDOWN"},{"a":1894,"t":"code","b":[133,36],"m":"sta","oa":36,"o":"CURRENT_COLUMN"},{"a":1896,"s":"Initialize renderer state byte at $0AF5.","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":1898,"t":"code","b":[141,245,10],"m":"sta","oa":2805,"o":"UPPERCASE_FILTER_ENABLED"},{"a":1901,"s":"Install gameplay raster dispatcher $A7E0 in the KERNAL IRQ vector.","t":"code","b":[169,224],"m":"lda","o":"#$E0"},{"a":1903,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"C64_WORKSPACE_IRQ_RAM_VECTOR"},{"a":1906,"t":"code","b":[169,167],"m":"lda","o":"#$A7"},{"a":1908,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"IRQ_VECTOR_HIGH_BYTE"},{"a":1911,"s":"Transition complete; enable gameplay interrupts.","t":"code","b":[88],"m":"cli"},{"a":1912,"t":"code","b":[96],"m":"rts"},{"a":1913,"l":"MEMCPY","c":"MEMCPY ($0779)\nPurpose: General forward block copy of X complete pages plus an optional Y-byte tail, used for the display bundle, screen scrolling and buffer restores.\nInputs: MEMCPY_SOURCE ($0A/$0B) = source, WORK_PTR ($0C/$0D) = destination, X = number of whole 256-byte pages, Y = tail length in bytes.\nOutputs: The requested bytes are copied. The two pointer low bytes are unchanged; their high bytes have been incremented by the original X. When the tail was non-zero the routine returns with Y equal to the tail length.\nAssumptions: The copy is strictly forward and does not handle overlapping ranges where the destination is above the source within the same page. The tail bound is not a register: it is written into the CPY immediate operand at $079E, so the routine is self-modifying and not interrupt-reentrant.\nClobbers: A, X, Y, flags, SCRATCH_BYTE_2 ($04), the high bytes of both pointers, and the immediate operand byte at $079E, which retains the most recent non-zero tail length.\nHardware changes: None of its own; the destination may be colour RAM or VIC-visible RAM depending on the caller.","s":"Preserve the requested tail length in zero-page scratch $04.","t":"code","b":[132,4],"m":"sty","oa":4,"o":"SCRATCH_BYTE_2","x":[1879,1974,1997,2020,2335,2358]},{"a":1915,"s":"Skip the full-page loop when X is zero.","t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":1917,"t":"code","b":[240,16],"m":"beq","oa":1935,"o":"COPY_REMAINDER_BYTES"},{"a":1919,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":1921,"l":"COPY_BLOCK_LOOP","s":"Load through the source pointer.","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y","x":[1926,1933]},{"a":1923,"s":"Store through the destination pointer.","t":"code","b":[145,12],"m":"sta","oa":12,"o":"(WORK_PTR),y"},{"a":1925,"t":"code","b":[200],"m":"iny"},{"a":1926,"t":"code","b":[208,249],"m":"bne","oa":1921,"o":"COPY_BLOCK_LOOP"},{"a":1928,"s":"Advance source pointer by one page.","t":"code","b":[230,11],"m":"inc","oa":11,"o":"zpa_0B"},{"a":1930,"s":"Advance destination pointer by one page.","t":"code","b":[230,13],"m":"inc","oa":13,"o":"zpa_0D"},{"a":1932,"t":"code","b":[202],"m":"dex"},{"a":1933,"t":"code","b":[208,242],"m":"bne","oa":1921,"o":"COPY_BLOCK_LOOP"},{"a":1935,"l":"COPY_REMAINDER_BYTES","s":"Recover the requested tail length.","t":"code","b":[164,4],"m":"ldy","oa":4,"o":"SCRATCH_BYTE_2","x":[1917]},{"a":1937,"t":"code","b":[240,14],"m":"beq","oa":1953,"o":"COPY_COMPLETED"},{"a":1939,"s":"Patch the CPY immediate operand with the tail length.","t":"code","b":[140,158,7],"m":"sty","oa":1950,"o":"REMAINDER_BYTES"},{"a":1942,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":1944,"l":"COPY_REMAINDER_LOOP","s":"Copy the remaining partial page.","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y","x":[1951]},{"a":1946,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"(WORK_PTR),y"},{"a":1948,"t":"code","b":[200],"m":"iny"},{"a":1949,"s":"Self-modified tail-loop bound.","t":"code","b":[192,48],"m":"cpy","o":"#$30"},{"a":1950,"t":"note","l":"REMAINDER_BYTES","c":"Self-modified immediate tail length for CPY at $079D, written by $0793 in MEMCPY. The BNE at $079F repeats the partial-page copy until Y reaches this bound; $07A1 returns.","note":"inside the item at $079D","x":[1939]},{"a":1951,"t":"code","b":[208,247],"m":"bne","oa":1944,"o":"COPY_REMAINDER_LOOP"},{"a":1953,"l":"COPY_COMPLETED","t":"code","b":[96],"m":"rts","x":[1937]},{"a":1954,"l":"RESTORE_GAMEPLAY_DISPLAY","c":"RESTORE_GAMEPLAY_DISPLAY ($07A2)\nPurpose: Repaint the whole gameplay display from the three packed buffers: 400 screen cells from $C880 to $CC00, 400 colour cells from $CA10 to $D800, and the $0C80-byte picture from $BC00 to $E000.\nInputs: None in registers; the three packed buffers must hold the composed base display.\nOutputs: Screen matrix, colour RAM and bitmap memory all restored to the base picture, ready for object overlays to be drawn on top.\nAssumptions: Runs with $01=$36. That leaves KERNAL ROM readable at $E000-$FFFF, but the routine only ever writes there, and writes always fall through to the RAM underneath, which is the RAM the VIC-II fetches the bitmap from in bank 3; no $35 switch is needed because nothing here reads $E000. Writing colour RAM requires the I/O page to be visible, which $36 provides.\nClobbers: A, X, Y, flags, MEMCPY_SOURCE ($0A/$0B), WORK_PTR ($0C/$0D), and MEMCPY's self-modified tail operand.\nHardware changes: Writes colour RAM at $D800-$D98F (400 cells, X=$01/Y=$90). Writes screen and bitmap memory read by the VIC-II. Programs no VIC register.","s":"Source = SAVED_SCREEN ($C880).","t":"code","b":[169,128],"m":"lda","o":"#$80","x":[1392,1886]},{"a":1956,"s":"SAVED_SCREEN -> $CC00","t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":1958,"t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":1960,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":1962,"s":"Destination = screen RAM ($CC00).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1964,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":1966,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":1968,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":1970,"s":"Copy one page plus $90 bytes: 400 screen cells.","t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":1972,"t":"code","b":[160,144],"m":"ldy","o":"#$90"},{"a":1974,"t":"code","b":[32,121,7],"m":"jsr","oa":1913,"o":"MEMCPY"},{"a":1977,"s":"Source = SAVED_COLOR ($CA10).","t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":1979,"s":"SAVED_COLOR -> $D800","t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":1981,"t":"code","b":[169,202],"m":"lda","o":"#$CA"},{"a":1983,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":1985,"s":"Destination = color RAM ($D800).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":1987,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":1989,"t":"code","b":[169,216],"m":"lda","o":"#$D8"},{"a":1991,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":1993,"s":"Copy one page plus $90 bytes: 400 color cells.","t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":1995,"t":"code","b":[160,144],"m":"ldy","o":"#$90"},{"a":1997,"t":"code","b":[32,121,7],"m":"jsr","oa":1913,"o":"MEMCPY"},{"a":2000,"s":"Source = SAVED_BITMAP ($BC00).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2002,"s":"SAVED_BITMAP -> $E000 (room picture)","t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":2004,"t":"code","b":[169,188],"m":"lda","o":"#$BC"},{"a":2006,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":2008,"s":"Destination = bitmap RAM ($E000).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2010,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2012,"t":"code","b":[169,224],"m":"lda","o":"#$E0"},{"a":2014,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2016,"s":"Copy twelve pages plus $80 bytes: $0C80 bytes.","t":"code","b":[162,12],"m":"ldx","o":"#$0C"},{"a":2018,"t":"code","b":[160,128],"m":"ldy","o":"#$80"},{"a":2020,"t":"code","b":[32,121,7],"m":"jsr","oa":1913,"o":"MEMCPY"},{"a":2023,"t":"code","b":[96],"m":"rts"},{"a":2024,"l":"CLEAR_TEXT_SCREEN","c":"CLEAR_TEXT_SCREEN ($07E8)\nPurpose: Fill all four pages of the gameplay screen matrix at $CC00-$CFFF with the space screen code.\nInputs: None.\nOutputs: 1024 bytes of $20 written at $CC00. Colour RAM is not touched.\nAssumptions: The screen matrix is at $CC00 in VIC bank 3, which is where $D018=$38/$3E place it. Runs with the I/O page mapped but never writes it.\nClobbers: A, X, Y, flags and MEMCPY_SOURCE ($0A/$0B), which is left pointing one page past the screen.\nHardware changes: None; ordinary RAM that the VIC-II reads.","s":"Point the clear loop at screen RAM $CC00.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[1784,1822]},{"a":2026,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":2028,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":2030,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":2032,"s":"Screen-code space.","t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2034,"s":"Clear four complete 256-byte pages.","t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":2036,"l":"CLEAR_TEXT_PAGE_LOOP","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2046]},{"a":2038,"l":"CLEAR_TEXT_BYTE_LOOP","t":"code","b":[145,10],"m":"sta","oa":10,"o":"(MEMCPY_SOURCE),y","x":[2041]},{"a":2040,"t":"code","b":[200],"m":"iny"},{"a":2041,"t":"code","b":[208,251],"m":"bne","oa":2038,"o":"CLEAR_TEXT_BYTE_LOOP"},{"a":2043,"t":"code","b":[230,11],"m":"inc","oa":11,"o":"zpa_0B"},{"a":2045,"t":"code","b":[202],"m":"dex"},{"a":2046,"t":"code","b":[208,244],"m":"bne","oa":2036,"o":"CLEAR_TEXT_PAGE_LOOP"},{"a":2048,"t":"code","b":[96],"m":"rts"},{"a":2049,"l":"READ_INPUT_ALT","c":"READ_INPUT_ALT ($0801)\nPurpose: Alternate entry into the line editor used by the retained filename prompt. It sets only the high byte of the three-byte idle countdown to $FF and joins READ_INPUT at $080E, preserving the existing low and middle bytes and therefore giving a much longer idle timeout than READ_INPUT's own $0004FFFF initialisation.\nInputs: The existing IDLE_COUNTDOWN low and middle bytes ($60/$61).\nOutputs: As READ_INPUT: a lowercased command line in INPUT_TEXT_BUFFER ($CBA0) with its length in INPUT_LEN ($26).\nAssumptions: Same terminal, KERNAL and banking assumptions as READ_INPUT. Only reachable from READ_FILENAME, which is itself retained inactive code.\nClobbers: As READ_INPUT.\nHardware changes: As READ_INPUT: CIA 1 keyboard scanning through KERNAL SCNKEY/GETIN, plus screen and colour RAM writes.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[1229]},{"a":2051,"t":"code","b":[76,14,8],"m":"jmp","oa":2062,"o":"READ_INPUT_SET_IDLE_HIGH"},{"a":2054,"l":"READ_INPUT","c":"READ_INPUT ($0806)\nPurpose: Read and edit one command line with echo, backspace and an idle timeout. Return finishes the line, Delete backspaces, Space and A-Z are appended after folding to lowercase, and everything else is ignored.\nInputs: None in registers. Uses the terminal cursors at $06-$09 and CURRENT_COLUMN ($24).\nOutputs: A lowercased command line of up to 78 characters at INPUT_TEXT_BUFFER ($CBA0) with its length in INPUT_LEN ($26); the line has been echoed on screen and terminated with a blank line. On timeout the line is finished automatically and sentence $13 is printed.\nAssumptions: KERNAL ROM and the I/O page must be visible and the KERNAL's keyboard workspace usable, because the editor calls SCNKEY and GETIN directly rather than waiting on a timer interrupt. The buffer is 81 bytes and the editor stops appending at 78.\nClobbers: A, X, Y, flags, IDLE_COUNTDOWN ($60-$62), AUX_PTR ($0E/$0F), INPUT_LEN, KEYBOARD_BUFFER_LEN ($C6), CURRENT_CHAR_COLOR ($0286), KEY_REPEAT_COUNTDOWN ($028B), CURRENT_COLUMN, the terminal cursors, and the self-modified caret-gate operand at $0949.\nHardware changes: Reads the CIA 1 keyboard matrix through KERNAL SCNKEY ($FF9F) and GETIN ($FFE4). Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through PRINT_CHARACTER.","s":"IDLE_COUNTDOWN = $0004FFFF (idle-timeout counter)","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[1036]},{"a":2056,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"zpa_61"},{"a":2058,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"IDLE_COUNTDOWN"},{"a":2060,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":2062,"l":"READ_INPUT_SET_IDLE_HIGH","t":"code","b":[133,98],"m":"sta","oa":98,"o":"zpa_62","x":[2051]},{"a":2064,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2067,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2070,"s":"$0E/$0F = INPUT_TEXT_BUFFER ($CBA0)","t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":2072,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"AUX_PTR"},{"a":2074,"t":"code","b":[169,203],"m":"lda","o":"#$CB"},{"a":2076,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"zpa_0F"},{"a":2078,"s":"clear input line ($51 spaces)","t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2080,"t":"code","b":[160,80],"m":"ldy","o":"#$50"},{"a":2082,"l":"READ_INPUT_BLANK_LOOP","t":"code","b":[145,14],"m":"sta","oa":14,"o":"(AUX_PTR),y","x":[2085]},{"a":2084,"t":"code","b":[136],"m":"dey"},{"a":2085,"t":"code","b":[16,251],"m":"bpl","oa":2082,"o":"READ_INPUT_BLANK_LOOP"},{"a":2087,"s":"cursor color = 2 (red)","t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":2089,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2092,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2094,"t":"code","b":[141,73,9],"m":"sta","oa":2377,"o":"a_0949"},{"a":2097,"s":"print '>' prompt ($3E)","t":"code","b":[169,62],"m":"lda","o":"#$3E"},{"a":2099,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2102,"s":"INPUT_LEN = 0","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2104,"t":"code","b":[133,38],"m":"sta","oa":38,"o":"INPUT_LEN"},{"a":2106,"s":"clear KERNAL keybuf count","t":"code","b":[133,198],"m":"sta","oa":198,"o":"C64_WORKSPACE_KEYBOARD_BUFFER_LENGTH"},{"a":2108,"l":"READ_INPUT_IDLE_TICK","s":"tick idle countdown ...","t":"code","b":[198,96],"m":"dec","oa":96,"o":"IDLE_COUNTDOWN","x":[2131,2149,2153,2162,2176,2181]},{"a":2110,"t":"code","b":[208,11],"m":"bne","oa":2123,"o":"READ_INPUT_SCAN_KEY"},{"a":2112,"t":"code","b":[198,97],"m":"dec","oa":97,"o":"zpa_61"},{"a":2114,"t":"code","b":[208,7],"m":"bne","oa":2123,"o":"READ_INPUT_SCAN_KEY"},{"a":2116,"t":"code","b":[198,98],"m":"dec","oa":98,"o":"zpa_62"},{"a":2118,"t":"code","b":[208,3],"m":"bne","oa":2123,"o":"READ_INPUT_SCAN_KEY"},{"a":2120,"s":"... timed out -> auto-finish","t":"code","b":[76,196,8],"m":"jmp","oa":2244,"o":"READ_INPUT_TIMED_OUT"},{"a":2123,"l":"READ_INPUT_SCAN_KEY","s":"scan + read keyboard","t":"code","b":[32,159,255],"m":"jsr","oa":65439,"o":"KERNAL_SCNKEY","x":[2110,2114,2118]},{"a":2126,"t":"code","b":[32,228,255],"m":"jsr","oa":65508,"o":"KERNAL_GETIN"},{"a":2129,"s":"no key -> keep waiting","t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":2131,"t":"code","b":[240,231],"m":"beq","oa":2108,"o":"READ_INPUT_IDLE_TICK"},{"a":2133,"t":"code","b":[230,98],"m":"inc","oa":98,"o":"zpa_62"},{"a":2135,"s":"RETURN -> finish","t":"code","b":[201,13],"m":"cmp","o":"#$0D"},{"a":2137,"t":"code","b":[240,114],"m":"beq","oa":2253,"o":"FINISH_INPUT_LINE"},{"a":2139,"s":"DELETE -> backspace","t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":2141,"t":"code","b":[240,36],"m":"beq","oa":2179,"o":"READ_INPUT_BACKSPACE"},{"a":2143,"s":"SPACE","t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":2145,"t":"code","b":[240,11],"m":"beq","oa":2158,"o":"READ_INPUT_STORE_CHAR"},{"a":2147,"s":"below 'A' -> ignore","t":"code","b":[201,65],"m":"cmp","o":"#$41"},{"a":2149,"t":"code","b":[144,213],"m":"bcc","oa":2108,"o":"READ_INPUT_IDLE_TICK"},{"a":2151,"s":"above 'Z' -> ignore","t":"code","b":[201,91],"m":"cmp","o":"#$5B"},{"a":2153,"t":"code","b":[176,209],"m":"bcs","oa":2108,"o":"READ_INPUT_IDLE_TICK"},{"a":2155,"t":"code","b":[24],"m":"clc"},{"a":2156,"s":"fold A-Z to lowercase (+$20)","t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":2158,"l":"READ_INPUT_STORE_CHAR","s":"line full (78)?","t":"code","b":[164,38],"m":"ldy","oa":38,"o":"INPUT_LEN","x":[2145]},{"a":2160,"t":"code","b":[192,78],"m":"cpy","o":"#$4E"},{"a":2162,"t":"code","b":[240,200],"m":"beq","oa":2108,"o":"READ_INPUT_IDLE_TICK"},{"a":2164,"s":"store char into input buffer","t":"code","b":[145,14],"m":"sta","oa":14,"o":"(AUX_PTR),y"},{"a":2166,"s":"INPUT_LEN++","t":"code","b":[230,38],"m":"inc","oa":38,"o":"INPUT_LEN"},{"a":2168,"s":"echo the char","t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2171,"l":"READ_INPUT_RESET_REPEAT","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[2241]},{"a":2173,"t":"code","b":[141,139,2],"m":"sta","oa":651,"o":"KEY_REPEAT_COUNTDOWN"},{"a":2176,"t":"code","b":[76,60,8],"m":"jmp","oa":2108,"o":"READ_INPUT_IDLE_TICK"},{"a":2179,"l":"READ_INPUT_BACKSPACE","s":"backspace: line empty?","t":"code","b":[165,38],"m":"lda","oa":38,"o":"INPUT_LEN","x":[2141]},{"a":2181,"t":"code","b":[240,181],"m":"beq","oa":2108,"o":"READ_INPUT_IDLE_TICK"},{"a":2183,"t":"code","b":[198,38],"m":"dec","oa":38,"o":"INPUT_LEN"},{"a":2185,"t":"code","b":[164,38],"m":"ldy","oa":38,"o":"INPUT_LEN"},{"a":2187,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2189,"t":"code","b":[145,14],"m":"sta","oa":14,"o":"(AUX_PTR),y"},{"a":2191,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2193,"t":"code","b":[141,73,9],"m":"sta","oa":2377,"o":"a_0949"},{"a":2196,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2198,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2201,"t":"code","b":[198,36],"m":"dec","oa":36,"o":"CURRENT_COLUMN"},{"a":2203,"t":"code","b":[198,36],"m":"dec","oa":36,"o":"CURRENT_COLUMN"},{"a":2205,"t":"code","b":[198,36],"m":"dec","oa":36,"o":"CURRENT_COLUMN"},{"a":2207,"t":"code","b":[165,6],"m":"lda","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":2209,"t":"code","b":[56],"m":"sec"},{"a":2210,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":2212,"t":"code","b":[133,6],"m":"sta","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":2214,"t":"code","b":[176,2],"m":"bcs","oa":2218,"o":"READ_INPUT_BACKSPACE_COLOR"},{"a":2216,"t":"code","b":[198,7],"m":"dec","oa":7,"o":"zpa_07"},{"a":2218,"l":"READ_INPUT_BACKSPACE_COLOR","t":"code","b":[165,8],"m":"lda","oa":8,"o":"COLOR_CURSOR_PTR","x":[2214]},{"a":2220,"t":"code","b":[56],"m":"sec"},{"a":2221,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":2223,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"COLOR_CURSOR_PTR"},{"a":2225,"t":"code","b":[176,2],"m":"bcs","oa":2229,"o":"READ_INPUT_REDRAW_CURSOR"},{"a":2227,"t":"code","b":[198,9],"m":"dec","oa":9,"o":"zpa_09"},{"a":2229,"l":"READ_INPUT_REDRAW_CURSOR","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2225]},{"a":2231,"t":"code","b":[141,73,9],"m":"sta","oa":2377,"o":"a_0949"},{"a":2234,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":2236,"t":"code","b":[161,6],"m":"lda","oa":6,"o":"(SCREEN_CURSOR_PTR,x)"},{"a":2238,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2241,"t":"code","b":[76,123,8],"m":"jmp","oa":2171,"o":"READ_INPUT_RESET_REPEAT"},{"a":2244,"l":"READ_INPUT_TIMED_OUT","s":"timeout: finish + sentence $13","t":"code","b":[32,205,8],"m":"jsr","oa":2253,"o":"FINISH_INPUT_LINE","x":[2120]},{"a":2247,"t":"code","b":[169,19],"m":"lda","o":"#$13"},{"a":2249,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":2252,"t":"code","b":[96],"m":"rts"},{"a":2253,"l":"FINISH_INPUT_LINE","c":"FINISH_INPUT_LINE ($08CD)\nPurpose: Close a command line: disable the input caret, restore the ordinary blue text colour, and advance to a fresh line.\nInputs: None.\nOutputs: The caret gate at $0949 cleared to zero, CURRENT_CHAR_COLOR ($0286) set to 6 (blue), and a blank line emitted so the cursor sits at column zero. Normally returns with A=$00 and Z set.\nAssumptions: The caret gate is an immediate operand inside PRINT_CHARACTER's scroll tail, so clearing it here suppresses the caret for all subsequent output until the editor sets it again.\nClobbers: A, flags, the caret-gate operand at $0949, CURRENT_CHAR_COLOR, CURRENT_COLUMN and the terminal cursors.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through PRINT_CHARACTER.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[2137,2244]},{"a":2255,"t":"code","b":[141,73,9],"m":"sta","oa":2377,"o":"a_0949"},{"a":2258,"s":"char color = 6 (blue)","t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":2260,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2263,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2266,"t":"code","b":[96],"m":"rts"},{"a":2267,"l":"PRINT_CHARACTER","c":"PRINT_CHARACTER ($08DB)\nPurpose: Write one screen code at the terminal cursor in the current colour, advance both cursors and the column, wrap at column 39, and scroll the text window when the cursor passes the last row. Every character the engine prints goes through here.\nInputs: A = screen code. SCREEN_CURSOR_PTR ($06/$07), COLOR_CURSOR_PTR ($08/$09), CURRENT_COLUMN ($24) and CURRENT_CHAR_COLOR ($0286).\nOutputs: One screen cell and its colour cell written; both sixteen-bit cursors incremented; CURRENT_COLUMN advanced or reset to zero; the window scrolled and the caret optionally repainted.\nAssumptions: The two cursors must stay in step and inside the text window at $CD90-$CFFF / $D990-$DBFF. The scroll test compares the screen cursor against the literal $CFC0, so it only triggers on exact arrival at the last row.\nClobbers: A, X, Y, flags, both cursors, CURRENT_COLUMN, and, when scrolling, MEMCPY_SOURCE/WORK_PTR and MEMCPY's self-modified tail operand.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF. Colour RAM is only four bits wide, so the stored colour reads back as the low nibble.","s":"screen RAM[cursor] = char","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[2099,2168,2198,2238,2405,2412,2426,2443,2450,2648,2671,2841,2882,2887,2893,2968,2973,4861,4895]},{"a":2269,"s":"Print char to current position","t":"code","b":[129,6],"m":"sta","oa":6,"o":"(SCREEN_CURSOR_PTR,x)"},{"a":2271,"s":"color RAM[cursor] = CURRENT_CHAR_COLOR","t":"code","b":[173,134,2],"m":"lda","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2274,"s":"Set color to corresponding position","t":"code","b":[129,8],"m":"sta","oa":8,"o":"(COLOR_CURSOR_PTR,x)"},{"a":2276,"s":"cursor ptr++ (16-bit)","t":"code","b":[230,6],"m":"inc","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":2278,"t":"code","b":[208,2],"m":"bne","oa":2282,"o":"INC_COLOR_PTR"},{"a":2280,"t":"code","b":[230,7],"m":"inc","oa":7,"o":"zpa_07"},{"a":2282,"l":"INC_COLOR_PTR","s":"color ptr++ (16-bit)","t":"code","b":[230,8],"m":"inc","oa":8,"o":"COLOR_CURSOR_PTR","x":[2278]},{"a":2284,"t":"code","b":[208,2],"m":"bne","oa":2288,"o":"SET_COLUMN"},{"a":2286,"t":"code","b":[230,9],"m":"inc","oa":9,"o":"zpa_09"},{"a":2288,"l":"SET_COLUMN","s":"at last column (39)?","t":"code","b":[165,36],"m":"lda","oa":36,"o":"CURRENT_COLUMN","x":[2284]},{"a":2290,"s":"Last column","t":"code","b":[201,39],"m":"cmp","o":"#$27"},{"a":2292,"s":"yes -> wrap to new line","t":"code","b":[240,5],"m":"beq","oa":2299,"o":"RESET_COLUMN"},{"a":2294,"s":"else column++","t":"code","b":[230,36],"m":"inc","oa":36,"o":"CURRENT_COLUMN"},{"a":2296,"t":"code","b":[76,255,8],"m":"jmp","oa":2303,"o":"SCROLL_IF_BOTTOM"},{"a":2299,"l":"RESET_COLUMN","s":"RESET_COLUMN: column = 0","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[2292]},{"a":2301,"t":"code","b":[133,36],"m":"sta","oa":36,"o":"CURRENT_COLUMN"},{"a":2303,"l":"SCROLL_IF_BOTTOM","c":"When the cursor reaches $CFC0 (start of the screen's last text row) the text window is\nscrolled up one row: screen rows are block-moved up ($CDB8->$CD90, ~560 bytes) and the\nmatching color RAM is moved ($D9B8->$D990); the cursor is reset to $CFC0 and the new last\nrow (40 cells) is cleared to spaces.","t":"code","b":[169,232],"m":"lda","o":"#$E8","x":[2296]},{"a":2305,"s":"cursor low == $C0?","t":"code","b":[197,6],"m":"cmp","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":2307,"s":"\u2193","t":"code","b":[208,67],"m":"bne","oa":2376,"o":"SCROLL_DONE"},{"a":2309,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":2311,"s":"cursor high == $CF? (last row)","t":"code","b":[197,7],"m":"cmp","oa":7,"o":"zpa_07"},{"a":2313,"s":"\u2191Cursor is past the end of screen RAM?","t":"code","b":[208,61],"m":"bne","oa":2376,"o":"SCROLL_DONE"},{"a":2315,"s":"scroll screen rows up (MEMCPY)","t":"code","b":[169,184],"m":"lda","o":"#$B8"},{"a":2317,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":2319,"s":"\u219112th row (CDB8h - CC00h = 440 = 40 * 11)","t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":2321,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":2323,"s":"\u2193","t":"code","b":[169,144],"m":"lda","o":"#$90"},{"a":2325,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2327,"s":"\u219111th row (CD90h - CC00h = 400 = 40 * 10)","t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":2329,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2331,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":2333,"t":"code","b":[160,48],"m":"ldy","o":"#$30"},{"a":2335,"s":"Scroll rows 12th..25th (2 * 512 + 48 bytes = 14 rows)","t":"code","b":[32,121,7],"m":"jsr","oa":1913,"o":"MEMCPY"},{"a":2338,"s":"scroll color RAM up to match","t":"code","b":[169,184],"m":"lda","o":"#$B8"},{"a":2340,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":2342,"t":"code","b":[169,217],"m":"lda","o":"#$D9"},{"a":2344,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":2346,"t":"code","b":[169,144],"m":"lda","o":"#$90"},{"a":2348,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2350,"t":"code","b":[169,217],"m":"lda","o":"#$D9"},{"a":2352,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2354,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":2356,"t":"code","b":[160,48],"m":"ldy","o":"#$30"},{"a":2358,"s":"Mirrors the copy above, for color RAM (D9B8h/D800h)","t":"code","b":[32,121,7],"m":"jsr","oa":1913,"o":"MEMCPY"},{"a":2361,"s":"cursor -> $CFC0 (last row)","t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":2363,"t":"code","b":[133,6],"m":"sta","oa":6,"o":"SCREEN_CURSOR_PTR"},{"a":2365,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"COLOR_CURSOR_PTR"},{"a":2367,"s":"clear last row (40 spaces)","t":"code","b":[160,39],"m":"ldy","o":"#$27"},{"a":2369,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2371,"l":"CLEAR_LAST_ROW","t":"code","b":[145,6],"m":"sta","oa":6,"o":"(SCREEN_CURSOR_PTR),y","x":[2374]},{"a":2373,"t":"code","b":[136],"m":"dey"},{"a":2374,"t":"code","b":[16,251],"m":"bpl","oa":2371,"o":"CLEAR_LAST_ROW"},{"a":2376,"l":"SCROLL_DONE","s":"A = caret-enable flag (operand at $0949 is self-modified); 0 -> skip caret, nonzero -> DRAW_INPUT_CURSOR","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2307,2313]},{"a":2377,"t":"note","l":"a_0949","c":"Self-modified input-caret enable byte, the immediate operand of LDA at $0948. Zero skips DRAW_INPUT_CURSOR; nonzero proceeds to draw glyph $3D after clearing the final text row.","note":"inside the item at $0948","x":[2094,2193,2231,2255]},{"a":2378,"t":"code","b":[240,10],"m":"beq","oa":2390,"o":"RETURN_FROM_SCROLL"},{"a":2380,"l":"DRAW_INPUT_CURSOR","c":"DRAW_INPUT_CURSOR ($094C)\nPurpose: Paint the line-input caret, screen code $3D in light grey, at the current terminal position. Reached from PRINT_CHARACTER's scroll tail only when the caret gate is enabled, so the caret follows every echoed keystroke.\nInputs: SCREEN_CURSOR_PTR ($06/$07) and COLOR_CURSOR_PTR ($08/$09). The gate is the immediate operand at $0949, written from outside PRINT_CHARACTER by the editor ($082E and $08B7 enable it, $0891 and FINISH_INPUT_LINE at $08CF clear it).\nOutputs: One screen cell set to $3D and its colour cell set to $0F (light grey).\nAssumptions: This is not debug code: it is the only caret the engine draws, and it is deliberately suppressed outside line editing so ordinary narrative output leaves no stray character.\nClobbers: A, X, flags. Y is preserved.\nHardware changes: Writes one screen cell in $CC00-$CFFF and one colour cell in $D800-$DBFF.","s":"screen code $3D = input caret glyph","t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":2382,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":2384,"t":"code","b":[129,6],"m":"sta","oa":6,"o":"(SCREEN_CURSOR_PTR,x)"},{"a":2386,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":2388,"t":"code","b":[129,8],"m":"sta","oa":8,"o":"(COLOR_CURSOR_PTR,x)"},{"a":2390,"l":"RETURN_FROM_SCROLL","t":"code","b":[96],"m":"rts","x":[2378]},{"a":2391,"l":"PRINT_ROOM_TEXT_DROPCAP","c":"PRINT_ROOM_TEXT_DROPCAP ($0957)\nPurpose: Render the first letter of a room description as a two-by-two drop capital built from four consecutive custom glyphs, in light grey, then restore the previous text colour.\nInputs: A = the top-left glyph code. The caller derives it as $7B + 4*(letter - 'A') from the description's leading letter.\nOutputs: Four screen cells and their colour cells written: the top pair, then thirty-eight spaces in the caller's colour to reach the next row, then the bottom pair. CURRENT_CHAR_COLOR ($0286) is restored to its entry value.\nAssumptions: The gameplay character set at $F800 contains the four-cell drop-cap glyphs at $7B upwards, and the terminal cursor is at the start of a row so that the thirty-eight-space advance lands the bottom pair directly underneath the top pair.\nClobbers: A, X, Y, flags, SCRATCH_BYTE ($02), SCRATCH_INDEX ($03), SAVED_CHAR_COLOR ($05), the terminal cursors and CURRENT_COLUMN.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through PRINT_CHARACTER.","s":"save base char in $02","t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE","x":[2988]},{"a":2393,"t":"code","b":[173,134,2],"m":"lda","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2396,"s":"save current color","t":"code","b":[133,5],"m":"sta","oa":5,"o":"SAVED_CHAR_COLOR"},{"a":2398,"s":"color = 7 (light grey)","t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":2400,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2403,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":2405,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2408,"t":"code","b":[230,2],"m":"inc","oa":2,"o":"SCRATCH_BYTE"},{"a":2410,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":2412,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2415,"t":"code","b":[165,5],"m":"lda","oa":5,"o":"SAVED_CHAR_COLOR"},{"a":2417,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2420,"s":"print $26 spaces (gap) in prior color","t":"code","b":[162,38],"m":"ldx","o":"#$26"},{"a":2422,"l":"DROPCAP_GAP_LOOP","t":"code","b":[169,32],"m":"lda","o":"#$20","x":[2432]},{"a":2424,"t":"code","b":[134,3],"m":"stx","oa":3,"o":"SCRATCH_INDEX"},{"a":2426,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2429,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"SCRATCH_INDEX"},{"a":2431,"t":"code","b":[202],"m":"dex"},{"a":2432,"t":"code","b":[208,244],"m":"bne","oa":2422,"o":"DROPCAP_GAP_LOOP"},{"a":2434,"s":"color = 7 (light grey) again","t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":2436,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2439,"t":"code","b":[230,2],"m":"inc","oa":2,"o":"SCRATCH_BYTE"},{"a":2441,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":2443,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2446,"t":"code","b":[230,2],"m":"inc","oa":2,"o":"SCRATCH_BYTE"},{"a":2448,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":2450,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2453,"t":"code","b":[165,5],"m":"lda","oa":5,"o":"SAVED_CHAR_COLOR"},{"a":2455,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2458,"t":"code","b":[96],"m":"rts"},{"a":2459,"l":"PRINT_SENTENCE","c":"PRINT_SENTENCE ($099B)\nPurpose: Print one common sentence, preceded by a blank line and with its first letter capitalised. This is the engine's standard way of emitting a canned reply.\nInputs: A = common-sentence id.\nOutputs: A blank line, then the selected compressed term stream rendered with word wrapping. Tail-jumps into COMPUTE_SENTENCE_PTR_OFS, so the caller's RTS is the renderer's.\nAssumptions: SENTENCE_POINTERS ($1CB0, reached through the base pointer at $1C69) contains a valid entry for the id; ids are not range checked.\nClobbers: A, X, Y, flags, UPPERCASE_LETTER_FLAG ($0AFF), WORK_PTR ($0C/$0D), TERM_DATA_PTR ($22/$23), WORD_REMAINING_LEN ($25), the terminal cursors and CURRENT_COLUMN.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through the renderer.","s":"save sentence id","t":"code","b":[72],"m":"pha","x":[1086,1215,1226,2249,3631,3722,3766,3778,3796,3848,3895,3934,3939,3944,3949,4049,4072,4106,4231,4452,4479,4856,5046,5196,5339]},{"a":2460,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2463,"t":"code","b":[104],"m":"pla"},{"a":2464,"t":"code","b":[168],"m":"tay"},{"a":2465,"s":"UPPERCASE_LETTER_FLAG = 1 (capitalise first letter)","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2467,"t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":2470,"t":"code","b":[152],"m":"tya"},{"a":2471,"s":"-> compute sentence pointer","t":"code","b":[76,170,9],"m":"jmp","oa":2474,"o":"COMPUTE_SENTENCE_PTR_OFS"},{"a":2474,"l":"COMPUTE_SENTENCE_PTR_OFS","c":"COMPUTE_SENTENCE_PTR_OFS ($09AA)\nPurpose: Resolve a common-sentence id into a term-stream pointer and render it. Doubles the id, adds the sixteen-bit table base, loads the two-byte entry into TERM_DATA_PTR and tail-jumps to PROCESS_TERM.\nInputs: A = common-sentence id. The sentence pointer table base is the word at $1C69.\nOutputs: TERM_DATA_PTR ($22/$23) points at the sentence's term stream, which is then rendered. Control leaves through PROCESS_TERM, so this routine never returns on its own.\nAssumptions: The doubling is done with ASL and a carry test, which supports ids up to 255 and therefore table offsets up to 510. It does not check the id against the table length.\nClobbers: A, Y, flags, WORK_PTR ($0C/$0D), TERM_DATA_PTR, and everything the renderer clobbers.\nHardware changes: Writes screen and colour RAM through the renderer; no device register is programmed.","s":"id * 2 (2-byte table entries)","t":"code","b":[10],"m":"asl","o":"a","x":[1095,2471,4137,4340,4373,4381]},{"a":2475,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2477,"t":"code","b":[176,7],"m":"bcs","oa":2486,"o":"STORE_HIGH_BYTE"},{"a":2479,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2481,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2483,"t":"code","b":[76,186,9],"m":"jmp","oa":2490,"o":"COMPUTE_SENTENCE_PTR"},{"a":2486,"l":"STORE_HIGH_BYTE","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2477]},{"a":2488,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2490,"l":"COMPUTE_SENTENCE_PTR","c":"Compute sentence pointer","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[2483]},{"a":2492,"t":"code","b":[24],"m":"clc"},{"a":2493,"s":"+ SENTENCE_POINTERS_BASE_ADDR","t":"code","b":[109,105,28],"m":"adc","oa":7273,"o":"SENTENCE_POINTERS_BASE_ADDR"},{"a":2496,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2498,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":2500,"t":"code","b":[109,106,28],"m":"adc","oa":7274,"o":"a_1C6A"},{"a":2503,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2505,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":2507,"s":"read sentence data ptr -> TERM_DATA_PTR","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2509,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":2511,"t":"code","b":[200],"m":"iny"},{"a":2512,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2514,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":2516,"s":"render it (PROCESS_TERM)","t":"code","b":[76,14,10],"m":"jmp","oa":2574,"o":"PROCESS_TERM"},{"a":2519,"l":"PRINT_EVENT_TEXT","c":"PRINT_EVENT_TEXT ($09D7)\nPurpose: Render one event-text entry: capitalise the first letter, emit a blank line and a two-space paragraph indent, then resolve the id through the event pointer table and render the stream.\nInputs: A = event-text id. The event pointer table base is the word at $2F02.\nOutputs: A new indented paragraph containing the event text. Tail-jumps to PROCESS_TERM.\nAssumptions: Event ids are supplied by captured PART1 bytecode and are not range checked. Because the base pointer lives in the replaceable overlay, the same id means different text after a part change.\nClobbers: A, X, Y, flags, UPPERCASE_LETTER_FLAG ($0AFF), WORK_PTR ($0C/$0D), TERM_DATA_PTR ($22/$23), and the terminal state.\nHardware changes: Writes screen and colour RAM through the renderer.","t":"code","b":[72],"m":"pha","x":[4100]},{"a":2520,"s":"UPPERCASE_LETTER_FLAG = 1","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2522,"t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":2525,"s":"Print a blank line and two-space paragraph indent before the event text.","t":"code","b":[32,61,11],"m":"jsr","oa":2877,"o":"PRINT_PARAGRAPH_INDENT"},{"a":2528,"t":"code","b":[104],"m":"pla"},{"a":2529,"s":"id * 2","t":"code","b":[10],"m":"asl","o":"a"},{"a":2530,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2532,"t":"code","b":[176,7],"m":"bcs","oa":2541,"o":"EVENT_TEXT_INDEX_HIGH"},{"a":2534,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2536,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2538,"t":"code","b":[76,241,9],"m":"jmp","oa":2545,"o":"EVENT_TEXT_ADD_TABLE_BASE"},{"a":2541,"l":"EVENT_TEXT_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2532]},{"a":2543,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2545,"l":"EVENT_TEXT_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[2538]},{"a":2547,"t":"code","b":[24],"m":"clc"},{"a":2548,"s":"+ $2F02 table base low","t":"code","b":[109,2,47],"m":"adc","oa":12034,"o":"EVENT_TEXT_TABLE_PTR"},{"a":2551,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2553,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":2555,"s":"+ $2F03 base high -> entry ptr","t":"code","b":[109,3,47],"m":"adc","oa":12035,"o":"a_2F03"},{"a":2558,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2560,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":2562,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2564,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":2566,"t":"code","b":[200],"m":"iny"},{"a":2567,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2569,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":2571,"t":"code","b":[76,14,10],"m":"jmp","oa":2574,"o":"PROCESS_TERM"},{"a":2574,"l":"PROCESS_TERM","c":"PROCESS_TERM ($0A0E)\nPurpose: Interpret one compressed term stream with word wrapping until the '@' terminator. Bytes with bit 7 set are dictionary tokens and are expanded; other bytes begin a literal word whose length is measured before printing so that a word which would cross column 40 is preceded by a line break.\nInputs: TERM_DATA_PTR ($22/$23) points at the stream; CURRENT_COLUMN ($24) is the live column; UPPERCASE_LETTER_FLAG ($0AFF) selects capitalisation of the next letter.\nOutputs: The stream is rendered to the terminal with word wrapping and inter-word spaces; returns when the terminator is consumed.\nAssumptions: The wrap threshold is a hard-coded 41 ($29) compared against column plus word length. A word longer than forty characters would still overflow. The routine is re-entered recursively in effect through PROCESS_TOKEN, which saves and restores TERM_DATA_PTR on the stack.\nClobbers: A, X, Y, flags, WORD_REMAINING_LEN ($25), TERM_DATA_PTR, WORK_PTR ($0C/$0D), UPPERCASE_LETTER_FLAG, the terminal cursors and CURRENT_COLUMN.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through PRINT_CHARACTER.","s":"WORD_REMAINING_LEN = 1","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2516,2571,2640,2644,2651,3002,4214,4357]},{"a":2576,"t":"code","b":[133,37],"m":"sta","oa":37,"o":"WORD_REMAINING_LEN"},{"a":2578,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":2580,"s":"read next term byte","t":"code","b":[177,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR),y"},{"a":2582,"s":"'@' end of sentence?","t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":2584,"t":"code","b":[208,1],"m":"bne","oa":2587,"o":"TOKEN_TEST"},{"a":2586,"t":"code","b":[96],"m":"rts"},{"a":2587,"l":"TOKEN_TEST","s":"bit7 set -> token","t":"code","b":[41,128],"m":"and","o":"#$80","x":[2584]},{"a":2589,"t":"code","b":[208,84],"m":"bne","oa":2675,"o":"PROCESS_TOKEN"},{"a":2591,"s":"scan literal word, measuring its length","t":"code","b":[200],"m":"iny"},{"a":2592,"l":"DISPATCH_CHARACTER","t":"code","b":[177,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR),y","x":[2616]},{"a":2594,"s":"Sentence terminator","t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":2596,"t":"code","b":[240,56],"m":"beq","oa":2654,"o":"TEST_WORD_FITS_SCREEN_2"},{"a":2598,"s":"Before `a`?","t":"code","b":[201,65],"m":"cmp","o":"#$41"},{"a":2600,"t":"code","b":[144,7],"m":"bcc","oa":2609,"o":"CONTINUE_WORD_SCAN"},{"a":2602,"s":"Past `z`?","t":"code","b":[201,91],"m":"cmp","o":"#$5B"},{"a":2604,"t":"code","b":[176,3],"m":"bcs","oa":2609,"o":"CONTINUE_WORD_SCAN"},{"a":2606,"t":"code","b":[76,59,10],"m":"jmp","oa":2619,"o":"TEST_WORD_FITS_SCREEN_1"},{"a":2609,"l":"CONTINUE_WORD_SCAN","t":"code","b":[41,128],"m":"and","o":"#$80","x":[2600,2604]},{"a":2611,"t":"code","b":[208,6],"m":"bne","oa":2619,"o":"TEST_WORD_FITS_SCREEN_1"},{"a":2613,"s":"WORD_REMAINING_LEN++","t":"code","b":[230,37],"m":"inc","oa":37,"o":"WORD_REMAINING_LEN"},{"a":2615,"t":"code","b":[200],"m":"iny"},{"a":2616,"t":"code","b":[76,32,10],"m":"jmp","oa":2592,"o":"DISPATCH_CHARACTER"},{"a":2619,"l":"TEST_WORD_FITS_SCREEN_1","c":"If CURRENT_COLUMN + WORD_REMAINING_LEN >= $29 (41), emit a newline (PRINT_EMPTY_LINE) before\nprinting the word (PRINT_WORD). Then TEST_ADD_SPACE adds a separating space unless the next\nchar is a '.' or we're at column 0.","t":"code","b":[165,37],"m":"lda","oa":37,"o":"WORD_REMAINING_LEN","x":[2606,2611]},{"a":2621,"t":"code","b":[24],"m":"clc"},{"a":2622,"s":"column + word length","t":"code","b":[101,36],"m":"adc","oa":36,"o":"CURRENT_COLUMN"},{"a":2624,"s":">= text width -> wrap","t":"code","b":[201,41],"m":"cmp","o":"#$29"},{"a":2626,"t":"code","b":[144,3],"m":"bcc","oa":2631,"o":"CALL_PRINT_WORD"},{"a":2628,"s":"newline","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2631,"l":"CALL_PRINT_WORD","s":"print the word","t":"code","b":[32,219,10],"m":"jsr","oa":2779,"o":"PRINT_WORD","x":[2626]},{"a":2634,"l":"TEST_ADD_SPACE","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2776]},{"a":2636,"t":"code","b":[177,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR),y"},{"a":2638,"s":"next char '.'? -> no space","t":"code","b":[201,46],"m":"cmp","o":"#$2E"},{"a":2640,"t":"code","b":[240,188],"m":"beq","oa":2574,"o":"PROCESS_TERM"},{"a":2642,"s":"If column 0, don't print a space","t":"code","b":[165,36],"m":"lda","oa":36,"o":"CURRENT_COLUMN"},{"a":2644,"t":"code","b":[240,184],"m":"beq","oa":2574,"o":"PROCESS_TERM"},{"a":2646,"s":"add separating space","t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2648,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2651,"t":"code","b":[76,14,10],"m":"jmp","oa":2574,"o":"PROCESS_TERM"},{"a":2654,"l":"TEST_WORD_FITS_SCREEN_2","t":"code","b":[165,37],"m":"lda","oa":37,"o":"WORD_REMAINING_LEN","x":[2596]},{"a":2656,"t":"code","b":[24],"m":"clc"},{"a":2657,"t":"code","b":[101,36],"m":"adc","oa":36,"o":"CURRENT_COLUMN"},{"a":2659,"s":"overflow screen?","t":"code","b":[201,41],"m":"cmp","o":"#$29"},{"a":2661,"t":"code","b":[144,3],"m":"bcc","oa":2666,"o":"PRINT_WORD_AND_SPACE"},{"a":2663,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2666,"l":"PRINT_WORD_AND_SPACE","t":"code","b":[32,219,10],"m":"jsr","oa":2779,"o":"PRINT_WORD","x":[2661]},{"a":2669,"s":"Space","t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2671,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2674,"t":"code","b":[96],"m":"rts"},{"a":2675,"l":"PROCESS_TOKEN","c":"Token id has bit7 set; (id & $7F)*2 indexes TOKEN_POINTERS_BASE_ADDR ($25DD) to get a pointer\nto the token's text. Saves the current TERM_DATA_PTR, points it at the token text, PRINT_WORDs\nthe expansion (capitalised if UPPERCASE_LETTER_FLAG), then restores TERM_DATA_PTR and resumes\nthe sentence. Tokens encode frequently-used words to compress the text.","t":"code","b":[177,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR),y","x":[2589]},{"a":2677,"t":"code","b":[168],"m":"tay"},{"a":2678,"s":"push current TERM_DATA_PTR","t":"code","b":[165,34],"m":"lda","oa":34,"o":"TERM_DATA_PTR"},{"a":2680,"t":"code","b":[72],"m":"pha"},{"a":2681,"t":"code","b":[165,35],"m":"lda","oa":35,"o":"zpa_23"},{"a":2683,"t":"code","b":[72],"m":"pha"},{"a":2684,"s":"Restore token","t":"code","b":[152],"m":"tya"},{"a":2685,"s":"drop token bit7","t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":2687,"s":"id * 2 (word table entries)","t":"code","b":[10],"m":"asl","o":"a"},{"a":2688,"s":"Store processed token","t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2690,"s":"Can't reach, because `AND 7Fh` clears the high bit.","t":"code","b":[176,7],"m":"bcs","oa":2699,"o":"STORE_HIGH_BYTE"},{"a":2692,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2694,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2696,"t":"code","b":[76,143,10],"m":"jmp","oa":2703,"o":"COMPUTE_TOKEN_ADDR"},{"a":2699,"l":"STORE_HIGH_BYTE","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2690]},{"a":2701,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2703,"l":"COMPUTE_TOKEN_ADDR","s":"Load processed token","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[2696]},{"a":2705,"s":"Compute token address\u2026","t":"code","b":[24],"m":"clc"},{"a":2706,"s":"+ TOKEN_POINTERS_BASE_ADDR ($25DD)","t":"code","b":[109,103,28],"m":"adc","oa":7271,"o":"TOKEN_POINTERS_BASE_ADDR"},{"a":2709,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2711,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":2713,"t":"code","b":[109,104,28],"m":"adc","oa":7272,"o":"a_1C68"},{"a":2716,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2718,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":2720,"s":"read token text ptr -> TERM_DATA_PTR","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2722,"s":"\u2026and store into TERM_DATA_PTR","t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":2724,"t":"code","b":[200],"m":"iny"},{"a":2725,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2727,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":2729,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":2731,"s":"token length (first byte)","t":"code","b":[161,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR,x)"},{"a":2733,"t":"code","b":[133,37],"m":"sta","oa":37,"o":"WORD_REMAINING_LEN"},{"a":2735,"t":"code","b":[24],"m":"clc"},{"a":2736,"t":"code","b":[101,36],"m":"adc","oa":36,"o":"CURRENT_COLUMN"},{"a":2738,"s":"would overflow width? -> newline","t":"code","b":[201,41],"m":"cmp","o":"#$29"},{"a":2740,"t":"code","b":[144,3],"m":"bcc","oa":2745,"o":"MOVE_POINTER_TO_CHARS"},{"a":2742,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2745,"l":"MOVE_POINTER_TO_CHARS","s":"skip length byte -> token chars","t":"code","b":[230,34],"m":"inc","oa":34,"o":"TERM_DATA_PTR","x":[2740]},{"a":2747,"t":"code","b":[208,2],"m":"bne","oa":2751,"o":"PRINT_TERM"},{"a":2749,"t":"code","b":[230,35],"m":"inc","oa":35,"o":"zpa_23"},{"a":2751,"l":"PRINT_TERM","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2747]},{"a":2753,"t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":2756,"s":"print the token expansion","t":"code","b":[32,219,10],"m":"jsr","oa":2779,"o":"PRINT_WORD"},{"a":2759,"s":"restore TERM_DATA_PTR (resume sentence)","t":"code","b":[104],"m":"pla"},{"a":2760,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":2762,"t":"code","b":[104],"m":"pla"},{"a":2763,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":2765,"t":"code","b":[230,34],"m":"inc","oa":34,"o":"TERM_DATA_PTR"},{"a":2767,"t":"code","b":[208,2],"m":"bne","oa":2771,"o":"RESUME_SENTENCE"},{"a":2769,"t":"code","b":[230,35],"m":"inc","oa":35,"o":"zpa_23"},{"a":2771,"l":"RESUME_SENTENCE","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[2767]},{"a":2773,"t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":2776,"t":"code","b":[76,74,10],"m":"jmp","oa":2634,"o":"TEST_ADD_SPACE"},{"a":2779,"l":"PRINT_WORD","c":"PRINT_WORD ($0ADB)\nPurpose: Emit the characters of one literal word or expanded token, applying the inline control codes: '.' prints a full stop and arms capitalisation, '<' emits a line break, $FF takes the following byte as a new text colour, and A-Z are folded to lowercase unless the capitalisation flag is set.\nInputs: TERM_DATA_PTR ($22/$23) points at the first character; WORD_REMAINING_LEN ($25) is the character count; UPPERCASE_LETTER_FLAG ($0AFF) selects the case of the next letter.\nOutputs: The characters are printed, TERM_DATA_PTR is advanced past them, WORD_REMAINING_LEN reaches zero, and the capitalisation flag is cleared once it has been consumed.\nAssumptions: The $FF colour escape consumes one extra byte and decrements the length accordingly, so a stream that ends immediately after $FF would read past the word. Colour values are written straight to CURRENT_CHAR_COLOR without masking.\nClobbers: A, X, flags, TERM_DATA_PTR, WORD_REMAINING_LEN, UPPERCASE_LETTER_FLAG, CURRENT_CHAR_COLOR ($0286), the terminal cursors and CURRENT_COLUMN.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through PRINT_CHARACTER.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[2631,2666,2756,2852,4890,5533,5551]},{"a":2781,"s":"read char","t":"code","b":[161,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR,x)"},{"a":2783,"s":"'.'?","t":"code","b":[201,46],"m":"cmp","o":"#$2E"},{"a":2785,"t":"code","b":[240,47],"m":"beq","oa":2834,"o":"HANDLE_DOT"},{"a":2787,"s":"'<' newline?","t":"code","b":[201,60],"m":"cmp","o":"#$3C"},{"a":2789,"t":"code","b":[240,80],"m":"beq","oa":2871,"o":"HANDLE_NEWLINE"},{"a":2791,"s":"$FF colour-change escape?","t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":2793,"t":"code","b":[240,60],"m":"beq","oa":2855,"o":"NEXT_CHAR_COLOR_ESCAPE"},{"a":2795,"s":"< 'A' -> print as-is","t":"code","b":[201,65],"m":"cmp","o":"#$41"},{"a":2797,"t":"code","b":[144,42],"m":"bcc","oa":2841,"o":"PRINT_CHAR_AND_CONTINUE"},{"a":2799,"s":"> 'Z' -> print as-is","t":"code","b":[201,91],"m":"cmp","o":"#$5B"},{"a":2801,"t":"code","b":[176,38],"m":"bcs","oa":2841,"o":"PRINT_CHAR_AND_CONTINUE"},{"a":2803,"s":"letter: check UPPERCASE_LETTER_FLAG","t":"code","b":[72],"m":"pha"},{"a":2804,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2805,"t":"note","l":"UPPERCASE_FILTER_ENABLED","c":"Immediate enable byte for the uppercase filter, initialized to one by $076A. Zero preserves letter case; nonzero checks UPPERCASE_LETTER_FLAG at $0AFF, retains one requested capital and clears that flag, or adds $20 to fold an uppercase ASCII letter to lowercase.","note":"inside the item at $0AF4","x":[1898]},{"a":2806,"t":"code","b":[208,4],"m":"bne","oa":2812,"o":"CONTINUE_UPPERCASE_LETTER"},{"a":2808,"t":"code","b":[104],"m":"pla"},{"a":2809,"t":"code","b":[76,25,11],"m":"jmp","oa":2841,"o":"PRINT_CHAR_AND_CONTINUE"},{"a":2812,"l":"CONTINUE_UPPERCASE_LETTER","t":"code","b":[104],"m":"pla","x":[2806]},{"a":2813,"t":"code","b":[72],"m":"pha"},{"a":2814,"s":"flag set -> keep uppercase, clear flag","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2815,"t":"note","l":"UPPERCASE_LETTER_FLAG","c":"Immediate one-shot capitalization flag for LDA $0AFE. When nonzero, an uppercase letter is retained and the flag is cleared at $0B04; when zero, the renderer adds $20 to lowercase the letter. The subsequent control-token path sets this flag to capitalize the next letter.","note":"inside the item at $0AFE","x":[2467,2522,2753,2773,2820,2836,4153]},{"a":2816,"t":"code","b":[240,9],"m":"beq","oa":2827,"o":"CONTINUE_LOWERCASE_LETTER"},{"a":2818,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2820,"t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":2823,"t":"code","b":[104],"m":"pla"},{"a":2824,"t":"code","b":[76,15,11],"m":"jmp","oa":2831,"o":"CONTINUE_ANY_LETTER"},{"a":2827,"l":"CONTINUE_LOWERCASE_LETTER","t":"code","b":[104],"m":"pla","x":[2816]},{"a":2828,"t":"code","b":[24],"m":"clc"},{"a":2829,"s":"else fold to lowercase (+$20)","t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":2831,"l":"CONTINUE_ANY_LETTER","t":"code","b":[76,25,11],"m":"jmp","oa":2841,"o":"PRINT_CHAR_AND_CONTINUE","x":[2824]},{"a":2834,"l":"HANDLE_DOT","c":"Sets UPPERCASE_LETTER_FLAG, prints '.', advances the term pointer, and continues the word.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2785]},{"a":2836,"s":"UPPERCASE_LETTER_FLAG = 1","t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":2839,"s":"print '.'","t":"code","b":[169,46],"m":"lda","o":"#$2E"},{"a":2841,"l":"PRINT_CHAR_AND_CONTINUE","t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER","x":[2797,2801,2809,2831]},{"a":2844,"l":"INCREMENT_TERM_PTR","t":"code","b":[230,34],"m":"inc","oa":34,"o":"TERM_DATA_PTR","x":[2868,2874]},{"a":2846,"t":"code","b":[208,2],"m":"bne","oa":2850,"o":"PROCEED_TO_NEXT_CHAR"},{"a":2848,"t":"code","b":[230,35],"m":"inc","oa":35,"o":"zpa_23"},{"a":2850,"l":"PROCEED_TO_NEXT_CHAR","s":"WORD_REMAINING_LEN-- ; loop","t":"code","b":[198,37],"m":"dec","oa":37,"o":"WORD_REMAINING_LEN","x":[2846]},{"a":2852,"t":"code","b":[208,181],"m":"bne","oa":2779,"o":"PRINT_WORD"},{"a":2854,"t":"code","b":[96],"m":"rts"},{"a":2855,"l":"NEXT_CHAR_COLOR_ESCAPE","t":"code","b":[230,34],"m":"inc","oa":34,"o":"TERM_DATA_PTR","x":[2793]},{"a":2857,"t":"code","b":[208,2],"m":"bne","oa":2861,"o":"NEXT_CHAR_SET_COLOR"},{"a":2859,"t":"code","b":[230,35],"m":"inc","oa":35,"o":"zpa_23"},{"a":2861,"l":"NEXT_CHAR_SET_COLOR","t":"code","b":[198,37],"m":"dec","oa":37,"o":"WORD_REMAINING_LEN","x":[2857]},{"a":2863,"s":"$FF: read next byte as new colour","t":"code","b":[161,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR,x)"},{"a":2865,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":2868,"t":"code","b":[76,28,11],"m":"jmp","oa":2844,"o":"INCREMENT_TERM_PTR"},{"a":2871,"l":"HANDLE_NEWLINE","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE","x":[2789]},{"a":2874,"t":"code","b":[76,28,11],"m":"jmp","oa":2844,"o":"INCREMENT_TERM_PTR"},{"a":2877,"l":"PRINT_PARAGRAPH_INDENT","c":"PRINT_PARAGRAPH_INDENT ($0B3D)\nPurpose: Advance to the start of a fresh line and emit a two-space indent, the standard prefix for an inventory item or an event paragraph.\nInputs: None in registers; the terminal cursors and CURRENT_COLUMN ($24) must be valid.\nOutputs: The cursor is at column 2 of a new line.\nAssumptions: PRINT_EMPTY_LINE reaches column zero by padding with spaces, so this also clears the remainder of the current line.\nClobbers: A, X, Y, flags, the terminal cursors, CURRENT_COLUMN, and MEMCPY state if a scroll occurs.\nHardware changes: Writes screen and colour RAM through PRINT_CHARACTER.","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE","x":[2525,4132,4148,4332]},{"a":2880,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2882,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2885,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2887,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2890,"t":"code","b":[96],"m":"rts"},{"a":2891,"l":"PRINT_EMPTY_LINE","c":"PRINT_EMPTY_LINE ($0B4B)\nPurpose: Advance the cursor to the start of the next line by printing spaces until the column wraps to zero. If the cursor is already at column zero it still emits a whole blank line.\nInputs: CURRENT_COLUMN ($24) and the terminal cursors.\nOutputs: The cursor sits at column zero of a new line; the remainder of the previous line has been overwritten with spaces in the current text colour.\nAssumptions: The loop is written as a self tail-jump rather than a counted loop, so it relies on PRINT_CHARACTER resetting the column exactly at 39.\nClobbers: A, X, Y, flags, the terminal cursors, CURRENT_COLUMN, and MEMCPY state if a scroll occurs.\nHardware changes: Writes screen RAM at $CC00-$CFFF and colour RAM at $D800-$DBFF through PRINT_CHARACTER.","s":"Space","t":"code","b":[169,32],"m":"lda","o":"#$20","x":[1081,1098,2064,2067,2263,2460,2628,2663,2742,2871,2877,2900,2905,4044,4057,4067,4075,4140,4474,4485,4898,5049,5342]},{"a":2893,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2896,"s":"reached column 0? -> done","t":"code","b":[165,36],"m":"lda","oa":36,"o":"CURRENT_COLUMN"},{"a":2898,"t":"code","b":[240,3],"m":"beq","oa":2903,"o":"PRINTING_COMPLETED"},{"a":2900,"t":"code","b":[76,75,11],"m":"jmp","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2903,"l":"PRINTING_COMPLETED","t":"code","b":[96],"m":"rts","x":[2898]},{"a":2904,"l":"PRINT_ROOM_TEXT","c":"PRINT_ROOM_TEXT ($0B58)\nPurpose: Print one room description: convert the global room id to a part-relative index, resolve it through the room-text pointer table, emit two leading spaces, draw the first letter as a drop capital, then render the rest of the stream.\nInputs: A = global room id. CURRENT_PART_NO ($2940) selects the base in PART_ROOM_BASE_IDS ($0DCC); the room-text pointer table base is the word at $2F00.\nOutputs: The room description printed with its two-by-two initial; TERM_DATA_PTR advanced past the leading letter. Tail-jumps to PROCESS_TERM.\nAssumptions: The description's first character is an uppercase A-Z letter, because the drop-cap glyph index is computed as $7B + 4*(char - 'A'). Both the base table and the pointer table live in the replaceable overlay.\nClobbers: A, X, Y, flags, SCRATCH_BYTE ($02), SCRATCH_BYTE_2 ($04), WORK_PTR ($0C/$0D), TERM_DATA_PTR ($22/$23), CURRENT_CHAR_COLOR ($0286) which is left at 6, and the terminal state.\nHardware changes: Writes screen and colour RAM through the renderer.","t":"code","b":[72],"m":"pha","x":[4238]},{"a":2905,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":2908,"t":"code","b":[104],"m":"pla"},{"a":2909,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":2911,"s":"base = PART_STRING_BASE_TABLE[CURRENT_PART_NO]","t":"code","b":[172,64,41],"m":"ldy","oa":10560,"o":"CURRENT_PART_NO"},{"a":2914,"t":"code","b":[185,204,13],"m":"lda","oa":3532,"o":"PART_ROOM_BASE_IDS,y"},{"a":2917,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"SCRATCH_BYTE_2"},{"a":2919,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":2921,"t":"code","b":[56],"m":"sec"},{"a":2922,"s":"id -= base (part-relative)","t":"code","b":[229,4],"m":"sbc","oa":4,"o":"SCRATCH_BYTE_2"},{"a":2924,"s":"* 2 (word table entries)","t":"code","b":[10],"m":"asl","o":"a"},{"a":2925,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2927,"t":"code","b":[176,7],"m":"bcs","oa":2936,"o":"ROOM_TEXT_INDEX_HIGH"},{"a":2929,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2931,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2933,"t":"code","b":[76,124,11],"m":"jmp","oa":2940,"o":"ROOM_TEXT_ADD_TABLE_BASE"},{"a":2936,"l":"ROOM_TEXT_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[2927]},{"a":2938,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2940,"l":"ROOM_TEXT_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[2933]},{"a":2942,"t":"code","b":[24],"m":"clc"},{"a":2943,"s":"+ PART_STRING_TABLE_PTR ($2F00)","t":"code","b":[109,0,47],"m":"adc","oa":12032,"o":"ROOM_TEXT_TABLE_PTR"},{"a":2946,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":2948,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":2950,"t":"code","b":[109,1,47],"m":"adc","oa":12033,"o":"a_2F01"},{"a":2953,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":2955,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":2957,"s":"read string ptr -> TERM_DATA_PTR","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2959,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":2961,"t":"code","b":[200],"m":"iny"},{"a":2962,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":2964,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":2966,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2968,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2971,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2973,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":2976,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":2978,"s":"first char -> glyph index","t":"code","b":[161,34],"m":"lda","oa":34,"o":"(TERM_DATA_PTR,x)"},{"a":2980,"t":"code","b":[56],"m":"sec"},{"a":2981,"t":"code","b":[233,65],"m":"sbc","o":"#$41"},{"a":2983,"t":"code","b":[10],"m":"asl","o":"a"},{"a":2984,"t":"code","b":[10],"m":"asl","o":"a"},{"a":2985,"t":"code","b":[24],"m":"clc"},{"a":2986,"t":"code","b":[105,123],"m":"adc","o":"#$7B"},{"a":2988,"s":"draw the room description's first letter as a 2x2 drop capital","t":"code","b":[32,87,9],"m":"jsr","oa":2391,"o":"PRINT_ROOM_TEXT_DROPCAP"},{"a":2991,"t":"code","b":[230,34],"m":"inc","oa":34,"o":"TERM_DATA_PTR"},{"a":2993,"t":"code","b":[208,2],"m":"bne","oa":2997,"o":"ROOM_TEXT_SET_BODY_COLOR"},{"a":2995,"t":"code","b":[230,35],"m":"inc","oa":35,"o":"zpa_23"},{"a":2997,"l":"ROOM_TEXT_SET_BODY_COLOR","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[2993]},{"a":2999,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":3002,"s":"render the string","t":"code","b":[76,14,10],"m":"jmp","oa":2574,"o":"PROCESS_TERM"},{"a":3005,"l":"BITMAP_ROW_ADDR_TABLE","c":"Bitmap destination base address for each of the ten illustration character rows.","t":"byte","b":[0,224,64,225,128,226,192,227],"x":[1500,1506]},{"a":3013,"t":"byte","b":[0,229,64,230,128,231,192,232]},{"a":3021,"t":"byte","b":[0,234,64,235]},{"a":3025,"l":"f_0BD1","c":"Screen-RAM destination base address for each of the ten illustration character rows.","t":"byte","b":[0,204],"x":[1558,1564]},{"a":3027,"l":"SCREEN_ROW_ADDR_TABLE","c":"Second word of the ten-row screen-address table at $0BD1: $CC28, screen row one. Remaining words are $CC50, $CC78, $CCA0, $CCC8, $CCF0, $CD18, $CD40, $CD68; the blitter indexes these row starts and adds its column offset.","t":"byte","b":[40,204,80,204,120,204,160,204]},{"a":3035,"t":"byte","b":[200,204,240,204,24,205,64,205]},{"a":3043,"t":"byte","b":[104,205]},{"a":3045,"l":"COLOR_ROW_ADDR_TABLE","c":"Color-RAM destination base address for each of the ten illustration character rows.","t":"byte","b":[0,216,40,216,80,216,120,216],"x":[1602,1608]},{"a":3053,"t":"byte","b":[160,216,200,216,240,216,24,217]},{"a":3061,"t":"byte","b":[64,217,104,217]},{"a":3065,"l":"ROOM_GRAPHIC_TABLE","c":"ROOM_GRAPHIC_TABLE \u2014 57 fixed six-byte room-illustration descriptors at $0BF9-$0D4E.\nRoomGraphicRecord layout, stride 6:\n+0 start_row\n+1 start_column\n+2 source_ptr, little endian\n+4 height_rows\n+5 width_columns\nBLIT_ROOM_GRAPHIC copies these fields into zero-page blit state, then invokes COPY_BLIT_ROW three times per character row. Each source row is interleaved as width*8 bitmap bytes, width screen-matrix bytes, then width colour-RAM bytes. A record therefore consumes height*width*10 bytes. BITMAP_ROW_ADDR_TABLE, SCREEN_ROW_ADDR_TABLE, and COLOR_ROW_ADDR_TABLE select the ten destination rows in bitmap $E000, screen $CC00, and colour RAM $D800.\nThe captured occupant uses descriptors 0-20. Descriptor 0 points to $A100; descriptors 1-20 form the current contiguous source chain $4300-$93E5 and are fully typed as ROOM_GFX_00 through ROOM_GFX_20. Descriptors 21-56 are resident transition metadata whose addressed payload occupants are absent from this capture; they remain structurally typed descriptors but are not expanded into noncaptured graphics.\nThe 57-entry extent is established inside the capture: the following byte at $0D4F begins OBJ_ROOM_TABLE, that table's largest descriptor index is $38 (decimal 56), and a hypothetical descriptor at $0D4F has an impossible zero width.","t":"byte","b":[1,3,0,161,8,14,1,5]},{"a":3073,"t":"byte","b":[0,67,8,9,0,4,208,69]},{"a":3081,"t":"byte","b":[10,12,1,4,128,74,8,12]},{"a":3089,"t":"byte","b":[1,4,64,78,7,12,2,3]},{"a":3097,"t":"byte","b":[136,81,6,13,3,1,148,84]},{"a":3105,"t":"byte","b":[4,17,1,5,60,87,8,10]},{"a":3113,"t":"byte","b":[1,1,92,90,8,19,1,4]},{"a":3121,"t":"byte","b":[76,96,9,11,1,1,42,100]},{"a":3129,"t":"byte","b":[8,19,0,4,26,106,10,11]},{"a":3137,"t":"byte","b":[3,4,102,110,5,12,1,5]},{"a":3145,"t":"byte","b":[190,112,8,10,2,2,222,115]},{"a":3153,"t":"byte","b":[7,15,1,5,248,119,9,10]},{"a":3161,"t":"byte","b":[0,1,124,123,10,17,2,2]},{"a":3169,"t":"byte","b":[32,130,6,16,0,6,224,133]},{"a":3177,"t":"byte","b":[10,8,1,2,0,137,9,16]},{"a":3185,"t":"byte","b":[1,2,160,142,9,15,2,5]},{"a":3193,"t":"byte","b":[0,67,7,10,1,5,188,69]},{"a":3201,"t":"byte","b":[8,10,1,2,220,72,8,15]},{"a":3209,"t":"byte","b":[1,5,140,77,8,10,1,2]},{"a":3217,"t":"byte","b":[172,80,8,15,2,3,92,85]},{"a":3225,"t":"byte","b":[6,13,1,5,104,88,9,10]},{"a":3233,"t":"byte","b":[0,5,236,91,10,10,2,5]},{"a":3241,"t":"byte","b":[212,95,6,10,1,4,44,98]},{"a":3249,"t":"byte","b":[8,12,0,5,236,101,10,10]},{"a":3257,"t":"byte","b":[0,5,212,105,10,10,0,5]},{"a":3265,"t":"byte","b":[188,109,10,9,2,3,64,113]},{"a":3273,"t":"byte","b":[6,13,1,5,76,116,8,10]},{"a":3281,"t":"byte","b":[1,5,108,119,8,10,1,5]},{"a":3289,"t":"byte","b":[0,67,8,10,0,6,32,70]},{"a":3297,"t":"byte","b":[10,8,0,6,64,73,10,8]},{"a":3305,"t":"byte","b":[1,3,96,76,7,13,1,3]},{"a":3313,"t":"byte","b":[238,79,7,13,1,3,124,83]},{"a":3321,"t":"byte","b":[7,13,0,5,10,87,10,10]},{"a":3329,"t":"byte","b":[0,5,242,90,10,10,0,5]},{"a":3337,"t":"byte","b":[218,94,10,10,0,4,194,98]},{"a":3345,"t":"byte","b":[10,12,0,1,114,103,10,17]},{"a":3353,"t":"byte","b":[0,5,22,110,10,10,1,5]},{"a":3361,"t":"byte","b":[254,113,9,10,0,5,130,117]},{"a":3369,"t":"byte","b":[10,10,1,6,106,121,9,8]},{"a":3377,"t":"byte","b":[1,5,58,124,8,10,1,5]},{"a":3385,"t":"byte","b":[90,127,8,10,1,5,122,130]},{"a":3393,"t":"byte","b":[8,10,1,5,154,133,8,10]},{"a":3401,"t":"byte","b":[0,3,186,136,10,13]},{"a":3407,"l":"OBJ_ROOM_TABLE","c":"OBJ_ROOM_TABLE ($0D4F-$0DCB) \u2014 125 resident bytes indexed by global room id $00-$7C; each byte selects a RoomGraphicRecord in ROOM_GRAPHIC_TABLE.\nAt $10A5 the engine indexes this table with CURRENT_ROOM, compares the result with CURRENT_ROOM_GRAPHIC_ID, and repaints when it changes. For the captured current part, rooms $00-$28 select descriptors $00-$14. Bytes for room ids $29-$7C are retained and typed because they are present, but they are transition metadata for noncaptured occupants and are not interpreted as later-part content here. A zero entry means no illustration.","t":"byte","b":[0,0,0,0,18,0,5,0],"x":[4261]},{"a":3415,"t":"byte","b":[19,0,0,0,0,0,7,7]},{"a":3423,"t":"byte","b":[7,9,7,7,7,7,0,0]},{"a":3431,"t":"byte","b":[0,18,0,0,0,0,0,0]},{"a":3439,"t":"byte","b":[0,0,0,0,13,14,0,11]},{"a":3447,"t":"byte","b":[15,30,0,32,0,0,0,0]},{"a":3455,"t":"byte","b":[0,0,25,0,0,0,0,0]},{"a":3463,"t":"byte","b":[0,0,0,33,0,0,0,0]},{"a":3471,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3479,"t":"byte","b":[35,34,0,0,21,38,38,0]},{"a":3487,"t":"byte","b":[39,52,0,0,38,0,42,42]},{"a":3495,"t":"byte","b":[55,42,45,45,42,42,45,42]},{"a":3503,"t":"byte","b":[42,42,54,50,54,41,41,44]},{"a":3511,"t":"byte","b":[41,54,41,48,41,54,40,40]},{"a":3519,"t":"byte","b":[40,53,40,43,40,43,43,43]},{"a":3527,"t":"byte","b":[0,53,51,56,46]},{"a":3532,"l":"PART_ROOM_BASE_IDS","c":"Three-entry table of global-room bases used by captured engine code: $00, $29, $4D. The current captured part uses entry 0. Entries 1 and 2 are resident transition metadata; their replacement occupants are outside this project.","t":"byte","b":[0,41,77],"x":[2914,5277]},{"a":3535,"l":"PART_INIT_SCRIPT_POINTERS","c":"Three little-endian initialization-script pointers indexed by CURRENT_PART_NO. Entry 0 selects the captured part's script at $2968. Entries 1 and 2 address captured bytecode-shaped slots, but a disk transition replaces the overlay containing both scripts and their operand tables; this project does not equate the captured slot bytes with noncaptured occupants.","t":"byte","b":[104,41,110,41,126,41]},{"a":3541,"l":"FILENAME_PTR","c":"Pointer to the eight-byte save/load filename buffer.","t":"word","b":[215,13],"d":[3543],"x":[1303]},{"a":3542,"t":"note","l":"a_0DD6","c":"High byte $0D of FILENAME_PTR, the little-endian pointer at $0DD5 whose captured value is $0DD7. Low byte and pointer purpose are described at $0DD5.","note":"inside the item at $0DD5","x":[1306]},{"a":3543,"l":"FILENAME_BUF","c":"FILENAME_BUF \u2014 eight-byte mutable KERNAL save/load filename buffer, initialized to `FILENAME`. The active code hardcodes its eight-byte capacity; the following word UNUSED_FILENAME_BUFFER_SIZE is redundant metadata and is never read.","t":"byte","b":[70,73,76,69,78,65,77,69],"x":[1250,1263]},{"a":3551,"l":"UNUSED_FILENAME_BUFFER_SIZE","c":"UNUSED_FILENAME_BUFFER_SIZE \u2014 shipped little-endian constant $0008 immediately after the eight-byte FILENAME_BUF.\nREAD_FILENAME hardcodes CPY #$08 and SETUP_KERNAL_FILE hardcodes LDA #$08, so neither reads this word. No instruction operand, pointer, table entry, or recorded reference consumes it. It is redundant assembler metadata retained with the disabled save/load subsystem.","t":"word","b":[8,0],"d":[8]},{"a":3553,"l":"ACTION_DISPATCH_TABLE_PTR","c":"Little-endian pointer to ACTION_DISPATCH_TABLE; RUN_SCRIPT adds twice the action opcode to this base and reads a two-byte handler address before patching JSR $1699.","t":"word","b":[227,13],"d":[3555],"x":[5760]},{"a":3554,"t":"note","l":"ACTION_DISPATCH_TABLE_PTR_HI","c":"High byte of the little-endian action dispatch pointer at $0DE1, used by RUN_SCRIPT to locate handler addresses.","note":"inside the item at $0DE1","x":[5767]},{"a":3555,"l":"ACTION_DISPATCH_TABLE","c":"ACTION_DISPATCH_TABLE \u2014 33 little-endian action-handler pointers indexed by bytecode opcode. Confirmed targets include ACTION_MOVE_DIRECTION, SCRIPT_SET_OBJECT_LOCATION, ACTION_DROP_OBJECT ($0EB0), ACTION_TAKE_OBJECT ($0F02), counter/flag handlers, inventory, DESCRIBE_CURRENT_ROOM, and other $11xx handlers.","t":"byte","b":[63,14,148,14,176,14,2,15]},{"a":3563,"t":"byte","b":[139,15,181,15,191,15,201,15]},{"a":3571,"t":"byte","b":[1,16,8,16,126,16,37,17]},{"a":3579,"t":"byte","b":[41,17,153,15,168,15,143,17]},{"a":3587,"t":"byte","b":[45,17,97,17,137,17,140,17]},{"a":3595,"t":"byte","b":[221,15,104,17,110,17,61,17]},{"a":3603,"t":"byte","b":[141,14,116,17,122,17,166,14]},{"a":3611,"t":"byte","b":[171,14,51,14,37,14,241,15]},{"a":3619,"t":"byte","b":[204,15]},{"a":3621,"l":"SCRIPT_GOTO_ACTION_SCRIPT_NOUN","c":"SCRIPT_GOTO_ACTION_SCRIPT_NOUN ($0E25)\nPurpose: Action opcode $1E: redirect the running script to the ordinary action stream of the direction the player named. Used by contextual verbs such as FLY and RIDE, which take a direction as their noun.\nInputs: NOUN_ID ($4D) holds the parsed direction token; valid values are $01-$0A.\nOutputs: On a valid direction, SCRIPT_PC is replaced with that direction's action stream through RUN_DIRECTION_ACTION_SCRIPT, so the current VM loop resumes there. On zero or a value of $0B or above, sentence $25 is printed and the handler returns.\nAssumptions: Direction tokens are one-based and dense; the check is a single unsigned comparison against $0B, so any token below $0B other than zero is treated as a direction.\nClobbers: A, flags, VERB_ID ($4C), SCRIPT_PC ($4E/$4F), and, on the error path, renderer scratch.\nHardware changes: None directly; the error path writes screen and colour RAM through the renderer.","s":"NOUN_ID is a direction word id for FLY/RIDE <direction>.","t":"code","b":[165,77],"m":"lda","oa":77,"o":"NOUN_ID"},{"a":3623,"s":"0 -> error $25","t":"code","b":[240,4],"m":"beq","oa":3629,"o":"SCRIPT_MOVE_NOUN_BAD_DIRECTION"},{"a":3625,"s":">= $0B ?","t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":3627,"t":"code","b":[144,9],"m":"bcc","oa":3638,"o":"RUN_DIRECTION_ACTION_SCRIPT"},{"a":3629,"l":"SCRIPT_MOVE_NOUN_BAD_DIRECTION","s":"A=$25 error sentence","t":"code","b":[169,37],"m":"lda","o":"#$25","x":[3623]},{"a":3631,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":3634,"t":"code","b":[96],"m":"rts"},{"a":3635,"l":"SCRIPT_GOTO_ACTION_SCRIPT","c":"SCRIPT_GOTO_ACTION_SCRIPT ($0E33)\nPurpose: Action opcode $1D: read one literal direction id from the bytecode stream and redirect the running script to that direction's ordinary action stream. Used by ENTER, CLIMB and OUT rules so that a contextual command inherits the real direction's barriers and room transition.\nInputs: One operand byte at SCRIPT_PC; every genuine emission site supplies $01-$0A.\nOutputs: SCRIPT_PC advanced past the operand, then replaced with the selected direction's action stream; the current VM loop resumes there.\nAssumptions: Unlike opcode $1E this path performs no range validation, so a malformed operand would index outside the ten-entry action-script pointer table.\nClobbers: A, flags, VERB_ID ($4C), SCRIPT_PC ($4E/$4F), WORK_PTR ($0C/$0D).\nHardware changes: None.","s":"Fetch one-based direction id ($01-$0A) from action bytecode.","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3638,"l":"RUN_DIRECTION_ACTION_SCRIPT","c":"RUN_DIRECTION_ACTION_SCRIPT ($0E36)\nPurpose: Shared tail of action opcodes $1D and $1E: cache a one-based direction id as the current verb and point SCRIPT_PC at that direction's action script.\nInputs: A = one-based direction id $01-$0A.\nOutputs: VERB_ID ($4C) = A; SCRIPT_PC ($4E/$4F) loaded from ACTION_SCRIPT_POINTERS entry A-1. It does not recursively run the VM; the caller's interpreter loop continues at the new address.\nAssumptions: The ten direction verbs occupy the first ten action-script slots, so subtracting one converts the verb id to a table index.\nClobbers: A, flags, VERB_ID, SCRIPT_PC, WORK_PTR ($0C/$0D).\nHardware changes: None.","s":"save count in $4C","t":"code","b":[133,76],"m":"sta","oa":76,"o":"VERB_ID","x":[3627]},{"a":3640,"t":"code","b":[56],"m":"sec"},{"a":3641,"s":"count - 1","t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":3643,"s":"call RUN_ACTION_SCRIPT ($1452)","t":"code","b":[32,82,20],"m":"jsr","oa":5202,"o":"RUN_ACTION_SCRIPT"},{"a":3646,"t":"code","b":[96],"m":"rts"},{"a":3647,"l":"ACTION_MOVE_DIRECTION","c":"ACTION_MOVE_DIRECTION ($0E3F)\nPurpose: The movement handler. Selects one of ten sorted exit tables from the current verb, scans it for an entry whose from-room matches CURRENT_ROOM, and on a match moves the player and describes the destination; otherwise it prints the refusal sentence 2.\nInputs: VERB_ID ($4C) holds a one-based direction id; DIRECTION_EXIT_POINTERS (base word at $16B4) selects the table; CURRENT_ROOM ($293F).\nOutputs: On success CURRENT_ROOM is replaced by the destination and control tail-jumps to DESCRIBE_CURRENT_ROOM. On failure it tail-jumps to PRINT_SENTENCE with sentence 2. VERB_ID is decremented and re-incremented, so it is unchanged on exit.\nAssumptions: Each exit table is a list of two-byte from/to pairs sorted by from-room and terminated implicitly: the scan stops as soon as an entry's from-room is greater than or equal to CURRENT_ROOM, so the sort order is load bearing.\nClobbers: A, Y, flags, WORK_PTR ($0C/$0D), AUX_PTR ($0E/$0F), CURRENT_ROOM on success, and all renderer and graphics scratch through the tail call.\nHardware changes: None directly; the tail calls write screen, colour and bitmap memory.","s":"index = $4C - 1 (then restored)","t":"code","b":[198,76],"m":"dec","oa":76,"o":"VERB_ID"},{"a":3649,"t":"code","b":[165,76],"m":"lda","oa":76,"o":"VERB_ID"},{"a":3651,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"VERB_ID"},{"a":3653,"s":"*2 (word table entries)","t":"code","b":[10],"m":"asl","o":"a"},{"a":3654,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":3656,"t":"code","b":[176,7],"m":"bcs","oa":3665,"o":"MOVE_DIR_INDEX_HIGH"},{"a":3658,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3660,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":3662,"t":"code","b":[76,85,14],"m":"jmp","oa":3669,"o":"MOVE_DIR_ADD_TABLE_BASE"},{"a":3665,"l":"MOVE_DIR_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[3656]},{"a":3667,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":3669,"l":"MOVE_DIR_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[3662]},{"a":3671,"t":"code","b":[24],"m":"clc"},{"a":3672,"s":"Add the low byte of DIRECTION_EXIT_POINTERS.","t":"code","b":[109,180,22],"m":"adc","oa":5812,"o":"DIRECTION_EXIT_TABLE_PTR"},{"a":3675,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":3677,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":3679,"s":"Complete the selected RoomExit-table pointer.","t":"code","b":[109,181,22],"m":"adc","oa":5813,"o":"a_16B5"},{"a":3682,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":3684,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":3686,"s":"record address low -> $0E","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":3688,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"AUX_PTR"},{"a":3690,"t":"code","b":[200],"m":"iny"},{"a":3691,"s":"record address high -> $0F","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":3693,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"zpa_0F"},{"a":3695,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":3697,"l":"MOVE_DIR_SCAN_EXITS","s":"Read this entry's from_room.","t":"code","b":[177,14],"m":"lda","oa":14,"o":"(AUX_PTR),y","x":[3708]},{"a":3699,"s":"Match the exit record whose from_room equals CURRENT_ROOM.","t":"code","b":[205,63,41],"m":"cmp","oa":10559,"o":"CURRENT_ROOM"},{"a":3702,"s":"match","t":"code","b":[240,7],"m":"beq","oa":3711,"o":"MOVE_DIR_TAKE_EXIT"},{"a":3704,"s":"passed target -> not found","t":"code","b":[176,14],"m":"bcs","oa":3720,"o":"MOVE_DIR_NO_EXIT"},{"a":3706,"t":"code","b":[200],"m":"iny"},{"a":3707,"s":"next entry (step 2)","t":"code","b":[200],"m":"iny"},{"a":3708,"t":"code","b":[76,113,14],"m":"jmp","oa":3697,"o":"MOVE_DIR_SCAN_EXITS"},{"a":3711,"l":"MOVE_DIR_TAKE_EXIT","t":"code","b":[200],"m":"iny","x":[3702]},{"a":3712,"s":"Read the matched entry's to_room.","t":"code","b":[177,14],"m":"lda","oa":14,"o":"(AUX_PTR),y"},{"a":3714,"s":"Enter the matched exit record's to_room.","t":"code","b":[141,63,41],"m":"sta","oa":10559,"o":"CURRENT_ROOM"},{"a":3717,"s":"Describe the destination room.","t":"code","b":[76,126,16],"m":"jmp","oa":4222,"o":"DESCRIBE_CURRENT_ROOM"},{"a":3720,"l":"MOVE_DIR_NO_EXIT","s":"A=$2 'not found' sentence","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[3704]},{"a":3722,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3725,"l":"SCRIPT_SET_CURRENT_ROOM","c":"SCRIPT_SET_CURRENT_ROOM ($0E8D)\nPurpose: Action opcode: teleport the player by storing one literal room id into CURRENT_ROOM without running any exit table or description.\nInputs: One operand byte at SCRIPT_PC.\nOutputs: SCRIPT_PC advanced by one; CURRENT_ROOM ($293F) = operand.\nAssumptions: No description or repaint happens here; the script is expected to follow up with a description or graphic opcode.\nClobbers: A, flags, SCRIPT_PC.\nHardware changes: None.","s":"read byte from script","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3728,"s":"CURRENT_ROOM = next script byte.","t":"code","b":[141,63,41],"m":"sta","oa":10559,"o":"CURRENT_ROOM"},{"a":3731,"t":"code","b":[96],"m":"rts"},{"a":3732,"l":"SCRIPT_SET_OBJECT_LOCATION","c":"SCRIPT_SET_OBJECT_LOCATION ($0E94)\nPurpose: Action opcode: assign an object's location or state. Reads a slot index and a value; the marker $FA is replaced by the current room, which lets one script move an object to wherever the player is.\nInputs: Two operand bytes at SCRIPT_PC: object slot index, then value or the $FA marker.\nOutputs: SCRIPT_PC advanced by two; OBJECT_LOCATIONS[slot] ($28BF + slot) set to the value, or to CURRENT_ROOM when the value was $FA.\nAssumptions: The slot index is not range checked against OBJECT_COUNT ($22A3). Values $FC (carried) and $FD (absent) are reserved states, not room numbers.\nClobbers: A, Y, flags, SCRIPT_PC.\nHardware changes: None.","s":"read slot index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3735,"s":"-> Y","t":"code","b":[168],"m":"tay"},{"a":3736,"s":"read value","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3739,"s":"marker $FA?","t":"code","b":[201,250],"m":"cmp","o":"#$FA"},{"a":3741,"t":"code","b":[208,3],"m":"bne","oa":3746,"o":"SET_OBJ_LOC_STORE"},{"a":3743,"s":"Marker $FA means use CURRENT_ROOM as the object location.","t":"code","b":[173,63,41],"m":"lda","oa":10559,"o":"CURRENT_ROOM"},{"a":3746,"l":"SET_OBJ_LOC_STORE","s":"Store the selected location/state in OBJECT_LOCATIONS[slot].","t":"code","b":[153,191,40],"m":"sta","oa":10431,"o":"OBJECT_LOCATIONS,y","x":[3741]},{"a":3749,"t":"code","b":[96],"m":"rts"},{"a":3750,"l":"SET_VERBOSE_OFF","c":"SET_VERBOSE_OFF ($0EA6)\nPurpose: Action opcode: suppress the short confirmation sentences that TAKE and DROP print after a successful action.\nInputs: None.\nOutputs: VERBOSE_FLAG ($63) = 0. Returns with A=0 and Z set.\nAssumptions: The flag only gates confirmations; refusals and error sentences are printed regardless.\nClobbers: A, flags.\nHardware changes: None.","s":"VERBOSE_FLAG = 0","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3752,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"VERBOSE_FLAG"},{"a":3754,"t":"code","b":[96],"m":"rts"},{"a":3755,"l":"SET_VERBOSE_ON","c":"SET_VERBOSE_ON ($0EAB)\nPurpose: Action opcode: re-enable the short confirmation sentences. Also called directly at the end of SETUP_CURRENT_ROOM so that a freshly initialised part starts verbose.\nInputs: None.\nOutputs: VERBOSE_FLAG ($63) = 1. Returns with A=1 and Z clear.\nAssumptions: Scripts use the off/on pair around a scripted sequence so that its internal object moves stay silent.\nClobbers: A, flags.\nHardware changes: None.","s":"VERBOSE_FLAG = 1","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5500]},{"a":3757,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"VERBOSE_FLAG"},{"a":3759,"t":"code","b":[96],"m":"rts"},{"a":3760,"l":"ACTION_DROP_OBJECT","c":"ACTION_DROP_OBJECT ($0EB0)\nPurpose: The DROP handler. Requires the command state to permit acting and the resolved noun to be currently carried; moves the object into the current room, decrements the carried count, clears its icon from the visible-record table, and repaints.\nInputs: NOUN_ID ($4D) must be non-zero and must resolve through RESOLVE_NOUN; VERBOSE_FLAG ($63) selects the confirmation.\nOutputs: OBJECT_LOCATIONS[slot] set to CURRENT_ROOM; OBJ_COUNTERS[0] decremented; the matching six-byte record in VISIBLE_OBJECT_RECORDS ($2943) zeroed and the picture repainted. Sentence $19 for a blocked state, sentence $0A when the object is not carried, sentence $0D as confirmation.\nAssumptions: The record search matches on the object's computed $A560 graphics pointer, so an object whose icon is not currently installed simply falls out of the loop and no repaint occurs.\nClobbers: A, X, Y, flags, CURRENT_OBJECT_INDEX ($5C), GRAPHIC_RECORD_PTR ($5A/$5B), the visible-record table, and all renderer and blitter scratch.\nHardware changes: Writes colour RAM, screen RAM and bitmap memory through RENDER_ROOM_GRAPHICS when a record was cleared.","s":"can the player act now? ($4D)","t":"code","b":[165,77],"m":"lda","oa":77,"o":"NOUN_ID"},{"a":3762,"t":"code","b":[208,5],"m":"bne","oa":3769,"o":"DROP_OBJ_RESOLVE"},{"a":3764,"s":"A=$19 refusal sentence","t":"code","b":[169,25],"m":"lda","o":"#$19"},{"a":3766,"s":"print & return","t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3769,"l":"DROP_OBJ_RESOLVE","s":"fetch parsed noun token","t":"code","b":[32,227,21],"m":"jsr","oa":5603,"o":"RESOLVE_NOUN","x":[3762]},{"a":3772,"s":"object marker $FC?","t":"code","b":[201,252],"m":"cmp","o":"#$FC"},{"a":3774,"t":"code","b":[240,5],"m":"beq","oa":3781,"o":"DROP_OBJ_PLACE_IN_ROOM"},{"a":3776,"s":"A=$0A \"I don't see it\"","t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":3778,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3781,"l":"DROP_OBJ_PLACE_IN_ROOM","s":"The drop destination is CURRENT_ROOM.","t":"code","b":[173,63,41],"m":"lda","oa":10559,"o":"CURRENT_ROOM","x":[3774]},{"a":3784,"s":"Move this carried object into the current room.","t":"code","b":[153,191,40],"m":"sta","oa":10431,"o":"OBJECT_LOCATIONS,y"},{"a":3787,"s":"One fewer object is carried.","t":"code","b":[32,104,17],"m":"jsr","oa":4456,"o":"DEC_CARRIED_COUNT"},{"a":3790,"s":"verbose flag?","t":"code","b":[165,99],"m":"lda","oa":99,"o":"VERBOSE_FLAG"},{"a":3792,"t":"code","b":[240,5],"m":"beq","oa":3799,"o":"DROP_OBJ_FIND_RECORD"},{"a":3794,"s":"A=$0D confirmation sentence","t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":3796,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":3799,"l":"DROP_OBJ_FIND_RECORD","s":"Locate the selected object's $A560 graphics block.","t":"code","b":[32,112,15],"m":"jsr","oa":3952,"o":"CALC_OBJECT_GRAPHIC_PTR","x":[3792]},{"a":3802,"s":"Scan VISIBLE_OBJECT_RECORDS by source pointer.","t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":3804,"l":"DROP_OBJ_SCAN_RECORDS","t":"code","b":[189,67,41],"m":"lda","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x","x":[3827]},{"a":3807,"s":"entry low == room ptr low?","t":"code","b":[197,90],"m":"cmp","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":3809,"t":"code","b":[208,9],"m":"bne","oa":3820,"o":"DROP_OBJ_NEXT_RECORD"},{"a":3811,"t":"code","b":[232],"m":"inx"},{"a":3812,"t":"code","b":[189,67,41],"m":"lda","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x"},{"a":3815,"s":"entry high == room ptr high?","t":"code","b":[197,91],"m":"cmp","oa":91,"o":"zpa_5B"},{"a":3817,"s":"match -> remove entry","t":"code","b":[240,11],"m":"beq","oa":3830,"o":"DROP_OBJ_CLEAR_RECORD"},{"a":3819,"t":"code","b":[202],"m":"dex"},{"a":3820,"l":"DROP_OBJ_NEXT_RECORD","t":"code","b":[138],"m":"txa","x":[3809]},{"a":3821,"t":"code","b":[24],"m":"clc"},{"a":3822,"s":"next 6-byte record","t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":3824,"t":"code","b":[170],"m":"tax"},{"a":3825,"s":"end of table?","t":"code","b":[224,32],"m":"cpx","o":"#$20"},{"a":3827,"t":"code","b":[208,231],"m":"bne","oa":3804,"o":"DROP_OBJ_SCAN_RECORDS"},{"a":3829,"t":"code","b":[96],"m":"rts"},{"a":3830,"l":"DROP_OBJ_CLEAR_RECORD","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[3817]},{"a":3832,"s":"zero matched entry (remove from room)","t":"code","b":[157,67,41],"m":"sta","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x"},{"a":3835,"t":"code","b":[202],"m":"dex"},{"a":3836,"t":"code","b":[157,67,41],"m":"sta","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x"},{"a":3839,"s":"Redraw after adding the dropped object's graphic.","t":"code","b":[76,112,5],"m":"jmp","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":3842,"l":"ACTION_TAKE_OBJECT","c":"ACTION_TAKE_OBJECT ($0F02)\nPurpose: The TAKE handler. Requires the command state to permit acting, the noun to resolve, the object to be in the current room, and the carry capacity not to be exhausted; marks the object carried, increments the count, installs its icon in the first free visible record, and repaints.\nInputs: NOUN_ID ($4D); RESOLVE_NOUN supplies the slot, the location and the graphics index; OBJ_COUNTERS[0] ($292F) is the carried count and also the capacity gate.\nOutputs: OBJECT_LOCATIONS[slot] set to $FC; OBJ_COUNTERS[0] incremented; the icon pointer installed in a free record of VISIBLE_OBJECT_RECORDS and the picture repainted. Refusals use sentence $19 (cannot act), $03 (no noun), $09 (already carried), $08 (not here) and $0B (hands full at count 5).\nAssumptions: The capacity test compares OBJ_COUNTERS[0] against the literal 5 before the increment, so the practical limit is five carried objects. If every visible record is occupied the icon is silently not installed and no repaint occurs.\nClobbers: A, X, Y, flags, CURRENT_OBJECT_INDEX ($5C), GRAPHIC_RECORD_PTR ($5A/$5B), the visible-record table, and all renderer and blitter scratch.\nHardware changes: Writes colour RAM, screen RAM and bitmap memory through RENDER_ROOM_GRAPHICS.","s":"can the player act now? ($4D)","t":"code","b":[165,77],"m":"lda","oa":77,"o":"NOUN_ID"},{"a":3844,"t":"code","b":[208,5],"m":"bne","oa":3851,"o":"TAKE_OBJ_RESOLVE"},{"a":3846,"s":"A=$19 refusal","t":"code","b":[169,25],"m":"lda","o":"#$19"},{"a":3848,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3851,"l":"TAKE_OBJ_RESOLVE","s":"fetch parsed noun","t":"code","b":[32,227,21],"m":"jsr","oa":5603,"o":"RESOLVE_NOUN","x":[3844]},{"a":3854,"s":"valid noun? (carry set)","t":"code","b":[176,3],"m":"bcs","oa":3859,"o":"TAKE_OBJ_CHECK_STATE"},{"a":3856,"s":"no noun -> sentence $3","t":"code","b":[76,107,15],"m":"jmp","oa":3947,"o":"TAKE_OBJ_NO_NOUN"},{"a":3859,"l":"TAKE_OBJ_CHECK_STATE","s":"marker $FC?","t":"code","b":[201,252],"m":"cmp","o":"#$FC","x":[3854]},{"a":3861,"t":"code","b":[240,69],"m":"beq","oa":3932,"o":"TAKE_OBJ_ALREADY_CARRIED"},{"a":3863,"s":"marker $FD?","t":"code","b":[201,253],"m":"cmp","o":"#$FD"},{"a":3865,"t":"code","b":[240,70],"m":"beq","oa":3937,"o":"TAKE_OBJ_NOT_HERE"},{"a":3867,"s":"Is this object located in CURRENT_ROOM?","t":"code","b":[205,63,41],"m":"cmp","oa":10559,"o":"CURRENT_ROOM"},{"a":3870,"s":"no -> sentence $8","t":"code","b":[208,65],"m":"bne","oa":3937,"o":"TAKE_OBJ_NOT_HERE"},{"a":3872,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":3874,"s":"OBJ_COUNTERS[0]","t":"code","b":[189,47,41],"m":"lda","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":3877,"s":"== 5 (blocked state)?","t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":3879,"s":"yes -> sentence $B","t":"code","b":[240,61],"m":"beq","oa":3942,"o":"TAKE_OBJ_BLOCKED"},{"a":3881,"s":"$FC is the carried-object state.","t":"code","b":[169,252],"m":"lda","o":"#$FC"},{"a":3883,"s":"Mark the selected object as carried.","t":"code","b":[153,191,40],"m":"sta","oa":10431,"o":"OBJECT_LOCATIONS,y"},{"a":3886,"s":"One more object is carried.","t":"code","b":[32,110,17],"m":"jsr","oa":4462,"o":"INC_CARRIED_COUNT"},{"a":3889,"s":"verbose flag?","t":"code","b":[165,99],"m":"lda","oa":99,"o":"VERBOSE_FLAG"},{"a":3891,"t":"code","b":[240,5],"m":"beq","oa":3898,"o":"SHOW_OBJECT_ICON"},{"a":3893,"s":"A=$0C confirmation sentence","t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":3895,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":3898,"l":"SHOW_OBJECT_ICON","s":"Find an unused visible-object graphic record.","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[3891]},{"a":3900,"l":"SHOW_ICON_SCAN_FREE_SLOT","t":"code","b":[189,67,41],"m":"lda","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x","x":[3912]},{"a":3903,"s":"empty entry?","t":"code","b":[240,10],"m":"beq","oa":3915,"o":"SHOW_ICON_INSTALL_POINTER"},{"a":3905,"t":"code","b":[138],"m":"txa"},{"a":3906,"t":"code","b":[24],"m":"clc"},{"a":3907,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":3909,"t":"code","b":[170],"m":"tax"},{"a":3910,"s":"end of table?","t":"code","b":[224,33],"m":"cpx","o":"#$21"},{"a":3912,"t":"code","b":[208,242],"m":"bne","oa":3900,"o":"SHOW_ICON_SCAN_FREE_SLOT"},{"a":3914,"t":"code","b":[96],"m":"rts"},{"a":3915,"l":"SHOW_ICON_INSTALL_POINTER","s":"Locate the selected object's $A560 graphics block.","t":"code","b":[32,112,15],"m":"jsr","oa":3952,"o":"CALC_OBJECT_GRAPHIC_PTR","x":[3903]},{"a":3918,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":3920,"s":"store ptr high into entry","t":"code","b":[157,67,41],"m":"sta","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x"},{"a":3923,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":3925,"t":"code","b":[202],"m":"dex"},{"a":3926,"s":"Install the object graphic pointer in the free record.","t":"code","b":[157,67,41],"m":"sta","oa":10563,"o":"VISIBLE_OBJECT_RECORDS,x"},{"a":3929,"s":"Redraw after removing the taken object's room graphic.","t":"code","b":[76,112,5],"m":"jmp","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":3932,"l":"TAKE_OBJ_ALREADY_CARRIED","s":"A=$9 sentence","t":"code","b":[169,9],"m":"lda","o":"#$09","x":[3861]},{"a":3934,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3937,"l":"TAKE_OBJ_NOT_HERE","s":"A=$8 sentence","t":"code","b":[169,8],"m":"lda","o":"#$08","x":[3865,3870]},{"a":3939,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3942,"l":"TAKE_OBJ_BLOCKED","s":"A=$B sentence","t":"code","b":[169,11],"m":"lda","o":"#$0B","x":[3879]},{"a":3944,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3947,"l":"TAKE_OBJ_NO_NOUN","s":"A=$3 sentence","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[3856]},{"a":3949,"t":"code","b":[76,155,9],"m":"jmp","oa":2459,"o":"PRINT_SENTENCE"},{"a":3952,"l":"CALC_OBJECT_GRAPHIC_PTR","c":"CALC_OBJECT_GRAPHIC_PTR ($0F70)\nPurpose: Compute the address of an object icon: GRAPHIC_RECORD_PTR = $A560 + CURRENT_OBJECT_INDEX * $A0, using repeated sixteen-bit addition rather than a multiply.\nInputs: CURRENT_OBJECT_INDEX ($5C) = icon slot index.\nOutputs: GRAPHIC_RECORD_PTR ($5A/$5B) points at the selected 160-byte icon record. Index 0 returns the base unchanged.\nAssumptions: The $A0 stride is the fixed icon record size; the table holds 36 slots from $A560 to $BBDF. The routine does not bound the index.\nClobbers: A, Y, flags, GRAPHIC_RECORD_PTR. X is preserved.\nHardware changes: None.","s":"Start at the object graphics base $A560.","t":"code","b":[169,96],"m":"lda","o":"#$60","x":[3799,3915,4433]},{"a":3954,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":3956,"t":"code","b":[169,165],"m":"lda","o":"#$A5"},{"a":3958,"t":"code","b":[133,91],"m":"sta","oa":91,"o":"zpa_5B"},{"a":3960,"s":"Scale CURRENT_OBJECT_INDEX by $A0 to select its graphics block.","t":"code","b":[164,92],"m":"ldy","oa":92,"o":"CURRENT_OBJECT_INDEX"},{"a":3962,"s":"Object graphic index 0 already selects the base block.","t":"code","b":[240,14],"m":"beq","oa":3978,"o":"CALC_OBJ_GFX_DONE"},{"a":3964,"l":"CALC_OBJ_GFX_ADD_BLOCK","s":"add record size $A0 (160) ...","t":"code","b":[169,160],"m":"lda","o":"#$A0","x":[3976]},{"a":3966,"t":"code","b":[24],"m":"clc"},{"a":3967,"t":"code","b":[101,90],"m":"adc","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":3969,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":3971,"t":"code","b":[144,2],"m":"bcc","oa":3975,"o":"CALC_OBJ_GFX_LOOP_TAIL"},{"a":3973,"s":"... carry into high byte","t":"code","b":[230,91],"m":"inc","oa":91,"o":"zpa_5B"},{"a":3975,"l":"CALC_OBJ_GFX_LOOP_TAIL","t":"code","b":[136],"m":"dey","x":[3971]},{"a":3976,"s":"Advance one $A0-byte block per object graphic index.","t":"code","b":[208,242],"m":"bne","oa":3964,"o":"CALC_OBJ_GFX_ADD_BLOCK"},{"a":3978,"l":"CALC_OBJ_GFX_DONE","t":"code","b":[96],"m":"rts","x":[3962]},{"a":3979,"l":"STATE_SET_COUNTER","c":"STATE_SET_COUNTER ($0F8B)\nPurpose: Action opcode: assign a counter. Reads an index and a value from the bytecode and stores the value into OBJ_COUNTERS[index].\nInputs: Two operand bytes at SCRIPT_PC: index, then value.\nOutputs: SCRIPT_PC advanced by two; OBJ_COUNTERS[index] ($292F + index) = value.\nAssumptions: Counters share the 48-byte state block with flags; the index is not range checked.\nClobbers: A, X, flags, SCRATCH_INDEX ($03), SCRIPT_PC.\nHardware changes: None.","s":"read index byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3982,"s":"save index","t":"code","b":[133,3],"m":"sta","oa":3,"o":"SCRATCH_INDEX"},{"a":3984,"s":"read value byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3987,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"SCRATCH_INDEX"},{"a":3989,"s":"OBJ_COUNTERS[index] = value","t":"code","b":[157,47,41],"m":"sta","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":3992,"t":"code","b":[96],"m":"rts"},{"a":3993,"l":"STATE_INC_COUNTER","c":"STATE_INC_COUNTER ($0F99)\nPurpose: Action opcode: increment a counter, saturating at $FF so a long-running tally cannot wrap to zero.\nInputs: One operand byte at SCRIPT_PC: the counter index.\nOutputs: SCRIPT_PC advanced by one; OBJ_COUNTERS[index] incremented unless it was already $FF.\nAssumptions: Saturation is explicit, which matters because several scripts test counters for exact values.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read index byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":3996,"t":"code","b":[170],"m":"tax"},{"a":3997,"s":"current counter value","t":"code","b":[189,47,41],"m":"lda","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4000,"s":"already $FF?","t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":4002,"t":"code","b":[240,3],"m":"beq","oa":4007,"o":"INC_COUNTER_DONE"},{"a":4004,"s":"OBJ_COUNTERS[index]++","t":"code","b":[254,47,41],"m":"inc","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4007,"l":"INC_COUNTER_DONE","t":"code","b":[96],"m":"rts","x":[4002]},{"a":4008,"l":"STATE_DEC_COUNTER","c":"STATE_DEC_COUNTER ($0FA8)\nPurpose: Action opcode: decrement a counter, flooring at zero so it cannot wrap to $FF.\nInputs: One operand byte at SCRIPT_PC: the counter index.\nOutputs: SCRIPT_PC advanced by one; OBJ_COUNTERS[index] decremented unless it was already zero.\nAssumptions: The floor is explicit and is the mirror of the saturating increment.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read index byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4011,"t":"code","b":[170],"m":"tax"},{"a":4012,"s":"current counter value","t":"code","b":[189,47,41],"m":"lda","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4015,"s":"already 0?","t":"code","b":[240,3],"m":"beq","oa":4020,"o":"DEC_COUNTER_DONE"},{"a":4017,"s":"OBJ_COUNTERS[index]--","t":"code","b":[222,47,41],"m":"dec","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4020,"l":"DEC_COUNTER_DONE","t":"code","b":[96],"m":"rts","x":[4015]},{"a":4021,"l":"STATE_SET_FLAG","c":"STATE_SET_FLAG ($0FB5)\nPurpose: Action opcode: set a Boolean progression flag to one.\nInputs: One operand byte at SCRIPT_PC: the flag index.\nOutputs: SCRIPT_PC advanced by one; OBJ_FLAGS[index] ($290F + index) = 1.\nAssumptions: Flags occupy $290F-$293E; index 7 is the room-lit flag consulted by DESCRIBE_CURRENT_ROOM. The index is not range checked.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read index byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4024,"t":"code","b":[170],"m":"tax"},{"a":4025,"s":"A = 1","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":4027,"s":"OBJ_FLAGS[index] = 1","t":"code","b":[157,15,41],"m":"sta","oa":10511,"o":"OBJ_FLAGS,x"},{"a":4030,"t":"code","b":[96],"m":"rts"},{"a":4031,"l":"STATE_CLEAR_FLAG","c":"STATE_CLEAR_FLAG ($0FBF)\nPurpose: Action opcode: clear a Boolean progression flag to zero.\nInputs: One operand byte at SCRIPT_PC: the flag index.\nOutputs: SCRIPT_PC advanced by one; OBJ_FLAGS[index] = 0.\nAssumptions: Clearing index 7 makes the room dark, which suppresses the whole room description.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read index byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4034,"t":"code","b":[170],"m":"tax"},{"a":4035,"s":"A = 0","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4037,"s":"OBJ_FLAGS[index] = 0","t":"code","b":[157,15,41],"m":"sta","oa":10511,"o":"OBJ_FLAGS,x"},{"a":4040,"t":"code","b":[96],"m":"rts"},{"a":4041,"l":"RETURN_SKIP_CALLER","c":"RETURN_SKIP_CALLER ($0FC9)\nPurpose: Action opcode: a one-level non-local exit. Discards the immediate caller's return address so the following RTS lands in the caller's caller, unwinding out of the interpreter loop that invoked the handler.\nInputs: The stack must hold this handler's return address on top of the return address to be skipped.\nOutputs: Two bytes popped, then RTS. A holds the last byte popped and N/Z reflect it; X, Y and the other flags are preserved.\nAssumptions: The handler is invoked through the self-modified JSR at $1699, so the address discarded is always RUN_SCRIPT's, and control resumes in whatever called RUN_SCRIPT.\nClobbers: A, N and Z, and two bytes of stack depth.\nHardware changes: None.","s":"drop caller return address (2 bytes)","t":"code","b":[104],"m":"pla","x":[5785]},{"a":4042,"t":"code","b":[104],"m":"pla"},{"a":4043,"s":"return to caller's caller","t":"code","b":[96],"m":"rts"},{"a":4044,"l":"ACTION_QUIT","c":"ACTION_QUIT ($0FCC)\nPurpose: The QUIT handler: print the confirmation prompt, read one key, and either fall into the non-returning restart or return quietly.\nInputs: None in registers; the terminal and keyboard must be usable.\nOutputs: Sentence $34 printed. On uppercase 'Y' control falls into RESTART_GAME and does not return; on any other key a blank line is printed and the handler returns normally.\nAssumptions: CHECK_YES_KEY only accepts uppercase 'Y', and the fall-through into RESTART_GAME is deliberate, which is why the confirmation branch has no JMP.\nClobbers: A, X, Y, flags, keyboard workspace and renderer scratch.\nHardware changes: Reads the CIA 1 keyboard matrix through KERNAL SCNKEY and GETIN; writes screen and colour RAM.","s":"blank line","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4047,"s":"A=$34 = 'are you sure?' sentence","t":"code","b":[169,52],"m":"lda","o":"#$34"},{"a":4049,"s":"print prompt","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4052,"s":"read Y/N (carry set = yes)","t":"code","b":[32,101,5],"m":"jsr","oa":1381,"o":"CHECK_YES_KEY"},{"a":4055,"s":"yes -> RESTART_GAME","t":"code","b":[176,4],"m":"bcs","oa":4061,"o":"RESTART_GAME"},{"a":4057,"s":"no: blank line + return","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4060,"t":"code","b":[96],"m":"rts"},{"a":4061,"l":"RESTART_GAME","c":"RESTART_GAME ($0FDD)\nPurpose: Abandon the current command entirely and restart the adventure. Pops three nested return addresses to unwind the handler, interpreter and dispatcher frames, prints the restart message, and jumps to the initialisation entry.\nInputs: Entered through the normal three-level command call stack: DISPATCH_COMMAND calls RUN_SCRIPT, which calls the handler through the self-modified JSR.\nOutputs: Six bytes popped from the stack; sentence $35 printed; control transferred to CALL_INIT_GAME. Non-returning.\nAssumptions: The exact stack depth is part of the contract; a caller that reached this code by any other route would return into rubbish. The stack pointer is not otherwise repaired, so the abandoned frames' contents are simply left behind.\nClobbers: A, X, Y, flags, six bytes of stack, and all game state through the reinitialisation.\nHardware changes: None directly; the reinitialisation path writes screen, colour and bitmap memory.","s":"discard 3 nested return addresses (6 bytes)","t":"code","b":[104],"m":"pla","x":[4055]},{"a":4062,"t":"code","b":[104],"m":"pla"},{"a":4063,"t":"code","b":[104],"m":"pla"},{"a":4064,"t":"code","b":[104],"m":"pla"},{"a":4065,"t":"code","b":[104],"m":"pla"},{"a":4066,"t":"code","b":[104],"m":"pla"},{"a":4067,"s":"blank line","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4070,"s":"A=$35 = 'restarting' sentence","t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":4072,"s":"print","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4075,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4078,"s":"re-init game (-> INIT_GAME + main loop)","t":"code","b":[76,6,4],"m":"jmp","oa":1030,"o":"CALL_INIT_GAME"},{"a":4081,"l":"ACTION_NEXT_PART","c":"ACTION_NEXT_PART ($0FF1)\nPurpose: The story-advance handler: unwind the command dispatch, clear the progression flag that gates the transition, and jump into the multipart loader path.\nInputs: Entered through the same three-level command call stack as RESTART_GAME; the replacement disk part must be available.\nOutputs: Six bytes popped; OBJ_FLAGS[2] ($2911) cleared; control transferred to SWITCH_TO_NEXT_PART. Non-returning.\nAssumptions: As with RESTART_GAME the three-frame depth is load bearing. After the transition the captured overlay, its tables and its scripts are replaced, so nothing beyond the loader contract can be asserted about the successor occupant.\nClobbers: A, X, flags, six bytes of stack, and, through the callees, the overlay, display, IRQ, CIA and banking state.\nHardware changes: Through SHOW_PART_LOAD_SCREEN and LOAD_NEXT_GAME_PART: VIC-II display enable and border, $D01A, $D019, CIA 1 $DC0D/$DC0E, CIA 2 $DD0D, the serial bus, and the 6510 port $01.","s":"discard 3 nested return addresses (6 bytes)","t":"code","b":[104],"m":"pla"},{"a":4082,"t":"code","b":[104],"m":"pla"},{"a":4083,"t":"code","b":[104],"m":"pla"},{"a":4084,"t":"code","b":[104],"m":"pla"},{"a":4085,"t":"code","b":[104],"m":"pla"},{"a":4086,"t":"code","b":[104],"m":"pla"},{"a":4087,"s":"A=0","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4089,"s":"X=2","t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":4091,"s":"OBJ_FLAGS[2] = 0","t":"code","b":[157,15,41],"m":"sta","oa":10511,"o":"OBJ_FLAGS,x"},{"a":4094,"s":"load next part","t":"code","b":[76,21,4],"m":"jmp","oa":1045,"o":"SWITCH_TO_NEXT_PART"},{"a":4097,"l":"ACTION_PRINT_MESSAGE","c":"ACTION_PRINT_MESSAGE ($1001)\nPurpose: Action opcode: fetch one event-text id from the bytecode stream and render that event paragraph.\nInputs: One operand byte at SCRIPT_PC: the event-text id.\nOutputs: SCRIPT_PC advanced by one; the event paragraph printed with a blank line and two-space indent.\nAssumptions: The event pointer table lives in the replaceable overlay at $2F02, so the same id selects different prose after a part change.\nClobbers: A, X, Y, flags, SCRIPT_PC, TERM_DATA_PTR ($22/$23), WORK_PTR ($0C/$0D), UPPERCASE_LETTER_FLAG and terminal state.\nHardware changes: Writes screen and colour RAM through the renderer.","s":"read message index byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4100,"s":"print that string","t":"code","b":[32,215,9],"m":"jsr","oa":2519,"o":"PRINT_EVENT_TEXT"},{"a":4103,"t":"code","b":[96],"m":"rts"},{"a":4104,"l":"CMD_INVENTORY","c":"CMD_INVENTORY ($1008)\nPurpose: The INVENTORY handler: print the header sentence, then walk the object table and print the description of every object whose location byte is the carried marker $FC. If nothing is carried it prints the 'nothing' sentence instead.\nInputs: OBJECT_LOCATIONS ($28BF) and OBJECT_COUNT ($22A3); the object-description pointer table base is the word at $1C6B.\nOutputs: Sentence $0E, then one indented paragraph per carried object, or sentence $0F when none; finally a blank line.\nAssumptions: The scan bound is OBJECT_COUNT, a captured overlay byte, so the list length follows the current part. Each description pointer addresses a length-prefixed token stream and the routine skips that length byte before rendering.\nClobbers: A, X, Y, flags, LOOP_COUNTER ($4B), WORK_PTR ($0C/$0D), AUX_PTR ($0E/$0F), TERM_DATA_PTR ($22/$23), UPPERCASE_LETTER_FLAG, and terminal state; the loop index is preserved across each item on the stack.\nHardware changes: Writes screen and colour RAM through the renderer.","s":"A=$0E = 'you are carrying' sentence","t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":4106,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4109,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4111,"s":"item count = 0","t":"code","b":[133,75],"m":"sta","oa":75,"o":"LOOP_COUNTER"},{"a":4113,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4115,"l":"INVENTORY_SCAN_LOOP","s":"Read this object's location/state.","t":"code","b":[185,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,y","x":[4126]},{"a":4118,"s":"$FC means the object is carried.","t":"code","b":[201,252],"m":"cmp","o":"#$FC"},{"a":4120,"s":"yes -> print this item","t":"code","b":[240,22],"m":"beq","oa":4144,"o":"INVENTORY_PRINT_ITEM"},{"a":4122,"l":"INVENTORY_NEXT_OBJECT","t":"code","b":[200],"m":"iny","x":[4219]},{"a":4123,"s":"Stop after OBJECT_COUNT entries.","t":"code","b":[204,163,34],"m":"cpy","oa":8867,"o":"OBJECT_COUNT"},{"a":4126,"t":"code","b":[208,243],"m":"bne","oa":4115,"o":"INVENTORY_SCAN_LOOP"},{"a":4128,"s":"any items printed?","t":"code","b":[165,75],"m":"lda","oa":75,"o":"LOOP_COUNTER"},{"a":4130,"s":"yes -> skip 'nothing'","t":"code","b":[208,8],"m":"bne","oa":4140,"o":"INVENTORY_DONE"},{"a":4132,"t":"code","b":[32,61,11],"m":"jsr","oa":2877,"o":"PRINT_PARAGRAPH_INDENT"},{"a":4135,"s":"A=$0F = 'nothing' sentence","t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":4137,"s":"print","t":"code","b":[32,170,9],"m":"jsr","oa":2474,"o":"COMPUTE_SENTENCE_PTR_OFS"},{"a":4140,"l":"INVENTORY_DONE","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE","x":[4130]},{"a":4143,"t":"code","b":[96],"m":"rts"},{"a":4144,"l":"INVENTORY_PRINT_ITEM","s":"count this item","t":"code","b":[230,75],"m":"inc","oa":75,"o":"LOOP_COUNTER","x":[4120]},{"a":4146,"t":"code","b":[152],"m":"tya"},{"a":4147,"t":"code","b":[72],"m":"pha"},{"a":4148,"s":"set up token print","t":"code","b":[32,61,11],"m":"jsr","oa":2877,"o":"PRINT_PARAGRAPH_INDENT"},{"a":4151,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4153,"s":"clear print flag $0AFF","t":"code","b":[141,255,10],"m":"sta","oa":2815,"o":"UPPERCASE_LETTER_FLAG"},{"a":4156,"t":"code","b":[104],"m":"pla"},{"a":4157,"t":"code","b":[72],"m":"pha"},{"a":4158,"s":"index*2 (word entries)","t":"code","b":[10],"m":"asl","o":"a"},{"a":4159,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":4161,"t":"code","b":[176,7],"m":"bcs","oa":4170,"o":"INVENTORY_INDEX_HIGH"},{"a":4163,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4165,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4167,"t":"code","b":[76,78,16],"m":"jmp","oa":4174,"o":"INVENTORY_ADD_TABLE_BASE"},{"a":4170,"l":"INVENTORY_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[4161]},{"a":4172,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4174,"l":"INVENTORY_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[4167]},{"a":4176,"t":"code","b":[24],"m":"clc"},{"a":4177,"s":"+ TOKEN_POINTERS base ($1C6B) low","t":"code","b":[109,107,28],"m":"adc","oa":7275,"o":"OBJECT_DESCRIPTION_TABLE_PTR"},{"a":4180,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":4182,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":4184,"s":"+ TOKEN_POINTERS base high","t":"code","b":[109,108,28],"m":"adc","oa":7276,"o":"a_1C6C"},{"a":4187,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4189,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4191,"s":"read token ptr low ...","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4193,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"AUX_PTR"},{"a":4195,"t":"code","b":[200],"m":"iny"},{"a":4196,"s":"read token ptr high","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4198,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"zpa_0F"},{"a":4200,"s":"point $22/$23 at token text (+1)","t":"code","b":[230,14],"m":"inc","oa":14,"o":"AUX_PTR"},{"a":4202,"t":"code","b":[208,2],"m":"bne","oa":4206,"o":"INVENTORY_SET_TERM_PTR"},{"a":4204,"t":"code","b":[230,15],"m":"inc","oa":15,"o":"zpa_0F"},{"a":4206,"l":"INVENTORY_SET_TERM_PTR","t":"code","b":[165,14],"m":"lda","oa":14,"o":"AUX_PTR","x":[4202]},{"a":4208,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":4210,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"zpa_0F"},{"a":4212,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":4214,"s":"print the object name (token)","t":"code","b":[32,14,10],"m":"jsr","oa":2574,"o":"PROCESS_TERM"},{"a":4217,"t":"code","b":[104],"m":"pla"},{"a":4218,"t":"code","b":[168],"m":"tay"},{"a":4219,"s":"continue scanning carried list","t":"code","b":[76,26,16],"m":"jmp","oa":4122,"o":"INVENTORY_NEXT_OBJECT"},{"a":4222,"l":"DESCRIBE_CURRENT_ROOM","c":"DESCRIBE_CURRENT_ROOM ($107E)\nPurpose: Enter a room for presentation purposes: refuse everything if the room-lit flag is clear, otherwise print the room text, list the objects lying here, and synchronise the illustration with the room's default picture, repainting only if it changed.\nInputs: OBJ_FLAGS[7] ($2916) is the room-lit flag; CURRENT_ROOM ($293F); OBJ_ROOM_TABLE ($0D4F) maps room id to default picture id; CURRENT_ROOM_GRAPHIC_ID ($2942).\nOutputs: Either sentence $3F alone when dark, or the room description, the list of present objects, and a possibly updated CURRENT_ROOM_GRAPHIC_ID with a repaint.\nAssumptions: Darkness is checked before anything else, so a dark room hides both prose and object list but leaves the previous illustration on screen. The picture is only redrawn when the default id actually changes, which is what makes scripted overrides persist.\nClobbers: A, X, Y, flags, WORK_PTR ($0C/$0D), AUX_PTR ($0E/$0F), TERM_DATA_PTR ($22/$23), the self-modified operand at $1109, renderer and blitter scratch.\nHardware changes: Writes screen RAM, colour RAM and bitmap memory through the renderer and RENDER_ROOM_GRAPHICS.","t":"code","b":[162,7],"m":"ldx","o":"#$07","x":[1162,3717,5497]},{"a":4224,"s":"OBJ_FLAGS[7] = room lit?","t":"code","b":[189,15,41],"m":"lda","oa":10511,"o":"OBJ_FLAGS,x"},{"a":4227,"t":"code","b":[208,6],"m":"bne","oa":4235,"o":"DESCRIBE_ROOM_LIT"},{"a":4229,"s":"dark -> sentence $3F","t":"code","b":[169,63],"m":"lda","o":"#$3F"},{"a":4231,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4234,"t":"code","b":[96],"m":"rts"},{"a":4235,"l":"DESCRIBE_ROOM_LIT","s":"Select CURRENT_ROOM's location text.","t":"code","b":[173,63,41],"m":"lda","oa":10559,"o":"CURRENT_ROOM","x":[4227]},{"a":4238,"t":"code","b":[32,88,11],"m":"jsr","oa":2904,"o":"PRINT_ROOM_TEXT"},{"a":4241,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4243,"l":"DESCRIBE_ROOM_SCAN_OBJECTS","s":"Read this object's location/state.","t":"code","b":[185,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,y","x":[4255]},{"a":4246,"s":"List it when its location equals CURRENT_ROOM.","t":"code","b":[205,63,41],"m":"cmp","oa":10559,"o":"CURRENT_ROOM"},{"a":4249,"t":"code","b":[240,25],"m":"beq","oa":4276,"o":"DESCRIBE_ROOM_PRINT_OBJECT"},{"a":4251,"l":"DESCRIBE_ROOM_NEXT_OBJECT","t":"code","b":[200],"m":"iny","x":[4386]},{"a":4252,"s":"Stop after OBJECT_COUNT entries.","t":"code","b":[204,163,34],"m":"cpy","oa":8867,"o":"OBJECT_COUNT"},{"a":4255,"t":"code","b":[208,242],"m":"bne","oa":4243,"o":"DESCRIBE_ROOM_SCAN_OBJECTS"},{"a":4257,"l":"DESCRIBE_ROOM_UPDATE_GRAPHIC","t":"code","b":[173,63,41],"m":"lda","oa":10559,"o":"CURRENT_ROOM","x":[4410]},{"a":4260,"t":"code","b":[168],"m":"tay"},{"a":4261,"s":"object's room from OBJ_ROOM_TABLE","t":"code","b":[185,79,13],"m":"lda","oa":3407,"o":"OBJ_ROOM_TABLE,y"},{"a":4264,"t":"code","b":[205,66,41],"m":"cmp","oa":10562,"o":"CURRENT_ROOM_GRAPHIC_ID"},{"a":4267,"t":"code","b":[240,6],"m":"beq","oa":4275,"o":"DESCRIBE_ROOM_DONE"},{"a":4269,"s":"changed -> update + repaint","t":"code","b":[141,66,41],"m":"sta","oa":10562,"o":"CURRENT_ROOM_GRAPHIC_ID"},{"a":4272,"t":"code","b":[76,112,5],"m":"jmp","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":4275,"l":"DESCRIBE_ROOM_DONE","t":"code","b":[96],"m":"rts","x":[4267]},{"a":4276,"l":"DESCRIBE_ROOM_PRINT_OBJECT","t":"code","b":[152],"m":"tya","x":[4249]},{"a":4277,"t":"code","b":[72],"m":"pha"},{"a":4278,"t":"code","b":[10],"m":"asl","o":"a"},{"a":4279,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":4281,"t":"code","b":[176,7],"m":"bcs","oa":4290,"o":"DESCRIBE_ROOM_INDEX_HIGH"},{"a":4283,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4285,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4287,"t":"code","b":[76,198,16],"m":"jmp","oa":4294,"o":"DESCRIBE_ROOM_ADD_TABLE_BASE"},{"a":4290,"l":"DESCRIBE_ROOM_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[4281]},{"a":4292,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4294,"l":"DESCRIBE_ROOM_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[4287]},{"a":4296,"t":"code","b":[24],"m":"clc"},{"a":4297,"s":"+ TOKEN_POINTERS ($1C6B) -> name","t":"code","b":[109,107,28],"m":"adc","oa":7275,"o":"OBJECT_DESCRIPTION_TABLE_PTR"},{"a":4300,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":4302,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":4304,"t":"code","b":[109,108,28],"m":"adc","oa":7276,"o":"a_1C6C"},{"a":4307,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4309,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4311,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4313,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"AUX_PTR"},{"a":4315,"t":"code","b":[200],"m":"iny"},{"a":4316,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4318,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"zpa_0F"},{"a":4320,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4322,"t":"code","b":[161,14],"m":"lda","oa":14,"o":"(AUX_PTR,x)"},{"a":4324,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":4326,"t":"code","b":[240,56],"m":"beq","oa":4384,"o":"DESCRIBE_ROOM_RESUME_SCAN"},{"a":4328,"t":"code","b":[141,9,17],"m":"sta","oa":4361,"o":"DESCRIBE_ROOM_SAVED_PREFIX"},{"a":4331,"t":"code","b":[72],"m":"pha"},{"a":4332,"t":"code","b":[32,61,11],"m":"jsr","oa":2877,"o":"PRINT_PARAGRAPH_INDENT"},{"a":4335,"t":"code","b":[104],"m":"pla"},{"a":4336,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":4338,"t":"code","b":[240,3],"m":"beq","oa":4343,"o":"DESCRIBE_ROOM_SKIP_PREFIX"},{"a":4340,"t":"code","b":[32,170,9],"m":"jsr","oa":2474,"o":"COMPUTE_SENTENCE_PTR_OFS"},{"a":4343,"l":"DESCRIBE_ROOM_SKIP_PREFIX","t":"code","b":[230,14],"m":"inc","oa":14,"o":"AUX_PTR","x":[4338]},{"a":4345,"t":"code","b":[208,2],"m":"bne","oa":4349,"o":"DESCRIBE_ROOM_SET_TERM_PTR"},{"a":4347,"t":"code","b":[230,15],"m":"inc","oa":15,"o":"zpa_0F"},{"a":4349,"l":"DESCRIBE_ROOM_SET_TERM_PTR","t":"code","b":[165,14],"m":"lda","oa":14,"o":"AUX_PTR","x":[4345]},{"a":4351,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":4353,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"zpa_0F"},{"a":4355,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":4357,"t":"code","b":[32,14,10],"m":"jsr","oa":2574,"o":"PROCESS_TERM"},{"a":4360,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4361,"t":"note","l":"DESCRIBE_ROOM_SAVED_PREFIX","c":"Saved immediate prefix id, written by $10E8 and restored by LDA at $1108 after processing an object description. Zero appends sentence $10; value six appends nothing; other nonzero values append sentence seven. The routine restores the object-scan index from the stack and resumes at $109B.","note":"inside the item at $1108","x":[4328]},{"a":4362,"t":"code","b":[240,7],"m":"beq","oa":4371,"o":"DESCRIBE_ROOM_SUFFIX_10"},{"a":4364,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":4366,"t":"code","b":[208,11],"m":"bne","oa":4379,"o":"DESCRIBE_ROOM_SUFFIX_07"},{"a":4368,"t":"code","b":[76,32,17],"m":"jmp","oa":4384,"o":"DESCRIBE_ROOM_RESUME_SCAN"},{"a":4371,"l":"DESCRIBE_ROOM_SUFFIX_10","t":"code","b":[169,16],"m":"lda","o":"#$10","x":[4362]},{"a":4373,"t":"code","b":[32,170,9],"m":"jsr","oa":2474,"o":"COMPUTE_SENTENCE_PTR_OFS"},{"a":4376,"t":"code","b":[76,32,17],"m":"jmp","oa":4384,"o":"DESCRIBE_ROOM_RESUME_SCAN"},{"a":4379,"l":"DESCRIBE_ROOM_SUFFIX_07","t":"code","b":[169,7],"m":"lda","o":"#$07","x":[4366]},{"a":4381,"t":"code","b":[32,170,9],"m":"jsr","oa":2474,"o":"COMPUTE_SENTENCE_PTR_OFS"},{"a":4384,"l":"DESCRIBE_ROOM_RESUME_SCAN","t":"code","b":[104],"m":"pla","x":[4326,4368,4376]},{"a":4385,"t":"code","b":[168],"m":"tay"},{"a":4386,"t":"code","b":[76,155,16],"m":"jmp","oa":4251,"o":"DESCRIBE_ROOM_NEXT_OBJECT"},{"a":4389,"l":"NOOP_ACTION_11","c":"NOOP_ACTION_11 ($1125)\nPurpose: Action opcode $0B: a deliberate no-op verb body. Calls the RTS stub NOOP_0699 and returns, so the enclosing script's next opcode supplies the canned reply.\nInputs: None.\nOutputs: No semantic state change. Returns to the interpreter.\nAssumptions: A census of all 119 shipped scripts (1,909 bytes, 871 opcode emissions) finds two emissions of $0B, including $2B25 as '0B 11 1F FF', meaning no-op, print sentence $1F, end. The distinct opcode and stub are deliberate, not dead code.\nClobbers: Nothing beyond the JSR/RTS stack cycle; A, X, Y and flags are preserved.\nHardware changes: None.","s":"call RTS stub (no-op)","t":"code","b":[32,153,6],"m":"jsr","oa":1689,"o":"NOOP_0699"},{"a":4392,"t":"code","b":[96],"m":"rts"},{"a":4393,"l":"NOOP_ACTION_12","c":"NOOP_ACTION_12 ($1129)\nPurpose: Action opcode $0C: a second deliberate no-op verb body, calling its own RTS stub NOOP_069A.\nInputs: None.\nOutputs: No semantic state change. Returns to the interpreter.\nAssumptions: Emitted exactly once, at $2B29 as '0C 11 1F FF'. The existence of two adjacent one-byte RTS stubs at $0699 and $069A is explained by this one-stub-per-opcode allocation.\nClobbers: Nothing beyond the JSR/RTS stack cycle; A, X, Y and flags are preserved.\nHardware changes: None.","s":"call RTS stub (no-op)","t":"code","b":[32,154,6],"m":"jsr","oa":1690,"o":"NOOP_069A"},{"a":4396,"t":"code","b":[96],"m":"rts"},{"a":4397,"l":"SCRIPT_SET_ROOM_GRAPHIC","c":"SCRIPT_SET_ROOM_GRAPHIC ($112D)\nPurpose: Action opcode: override the room illustration. Stores the operand into CURRENT_ROOM_GRAPHIC_ID and repaints; the marker $FA instead re-runs the default-picture synchronisation inside DESCRIBE_CURRENT_ROOM.\nInputs: One operand byte at SCRIPT_PC: a picture id or the $FA marker.\nOutputs: SCRIPT_PC advanced by one; CURRENT_ROOM_GRAPHIC_ID ($2942) updated and the band repainted, or the default picture restored via the $10A1 tail.\nAssumptions: Picture ids index the 57-entry RoomGraphicRecord table; the captured occupant only supplies payload for records 0-20.\nClobbers: A, flags, SCRIPT_PC, CURRENT_ROOM_GRAPHIC_ID, and all blitter and copy scratch.\nHardware changes: Writes colour RAM, screen RAM and bitmap memory through RENDER_ROOM_GRAPHICS.","s":"read byte from script","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4400,"s":"marker $FA?","t":"code","b":[201,250],"m":"cmp","o":"#$FA"},{"a":4402,"t":"code","b":[240,6],"m":"beq","oa":4410,"o":"SET_ROOM_GFX_USE_ROOM_DEFAULT"},{"a":4404,"s":"$2942 = byte","t":"code","b":[141,66,41],"m":"sta","oa":10562,"o":"CURRENT_ROOM_GRAPHIC_ID"},{"a":4407,"s":"Redraw using the new room graphic id.","t":"code","b":[76,112,5],"m":"jmp","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":4410,"l":"SET_ROOM_GFX_USE_ROOM_DEFAULT","s":"$FA -> handler at $10A1","t":"code","b":[76,161,16],"m":"jmp","oa":4257,"o":"DESCRIBE_ROOM_UPDATE_GRAPHIC","x":[4402]},{"a":4413,"l":"SCRIPT_SET_OBJECT_GRAPHIC","c":"SCRIPT_SET_OBJECT_GRAPHIC ($113D)\nPurpose: Action opcode: install or clear the sixth visible-object record directly by icon slot index, bypassing the noun-to-object map. The marker $FA clears the record.\nInputs: One operand byte at SCRIPT_PC: an icon slot index or the $FA marker.\nOutputs: SCRIPT_PC advanced by one; the sixth record's source pointer at $2963/$2964 either zeroed or set to $A560 + index*$A0; the band repainted.\nAssumptions: Because the operand is a direct slot index, this opcode can display artwork that no vocabulary noun can select. Part 1's GET FALKOR script passes $17 and renders the Falkor icon at $B3C0.\nClobbers: A, flags, SCRIPT_PC, CURRENT_OBJECT_INDEX ($5C), GRAPHIC_RECORD_PTR ($5A/$5B), the sixth visible record, and blitter scratch.\nHardware changes: Writes colour RAM, screen RAM and bitmap memory through RENDER_ROOM_GRAPHICS.","s":"read room byte from script","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4416,"s":"marker $FA?","t":"code","b":[201,250],"m":"cmp","o":"#$FA"},{"a":4418,"t":"code","b":[208,11],"m":"bne","oa":4431,"o":"SET_OBJ_GFX_INSTALL"},{"a":4420,"s":"Marker $FA clears the sixth visible graphic pointer.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4422,"t":"code","b":[141,99,41],"m":"sta","oa":10595,"o":"CURRENT_OBJECT_GRAPHIC_PTR"},{"a":4425,"t":"code","b":[141,100,41],"m":"sta","oa":10596,"o":"a_2964"},{"a":4428,"s":"Redraw after clearing the selected object graphic.","t":"code","b":[76,112,5],"m":"jmp","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":4431,"l":"SET_OBJ_GFX_INSTALL","s":"Cache the selected object graphics-block index.","t":"code","b":[133,92],"m":"sta","oa":92,"o":"CURRENT_OBJECT_INDEX","x":[4418]},{"a":4433,"s":"Compute its $A560 object graphics pointer.","t":"code","b":[32,112,15],"m":"jsr","oa":3952,"o":"CALC_OBJECT_GRAPHIC_PTR"},{"a":4436,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"GRAPHIC_RECORD_PTR"},{"a":4438,"s":"Install the low byte in CURRENT_OBJECT_GRAPHIC_PTR.","t":"code","b":[141,99,41],"m":"sta","oa":10595,"o":"CURRENT_OBJECT_GRAPHIC_PTR"},{"a":4441,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":4443,"s":"Install the high byte in CURRENT_OBJECT_GRAPHIC_PTR.","t":"code","b":[141,100,41],"m":"sta","oa":10596,"o":"a_2964"},{"a":4446,"s":"Redraw with the selected object graphic.","t":"code","b":[76,112,5],"m":"jmp","oa":1392,"o":"RENDER_ROOM_GRAPHICS"},{"a":4449,"l":"SCRIPT_PRINT_SENTENCE","c":"SCRIPT_PRINT_SENTENCE ($1161)\nPurpose: Action opcode: fetch one common-sentence id from the bytecode stream and print it.\nInputs: One operand byte at SCRIPT_PC: the sentence id.\nOutputs: SCRIPT_PC advanced by one; a blank line and the selected sentence printed.\nAssumptions: The sentence table is resident engine data rather than overlay data, so these ids mean the same thing in every part.\nClobbers: A, X, Y, flags, SCRIPT_PC, TERM_DATA_PTR ($22/$23), WORK_PTR ($0C/$0D), UPPERCASE_LETTER_FLAG and terminal state.\nHardware changes: Writes screen and colour RAM through the renderer.","s":"read sentence id","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4452,"s":"print sentence","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4455,"t":"code","b":[96],"m":"rts"},{"a":4456,"l":"DEC_CARRIED_COUNT","c":"DEC_CARRIED_COUNT ($1168)\nPurpose: Decrement OBJ_COUNTERS[0], the number of objects the player is carrying.\nInputs: None; operates on the fixed counter slot 0.\nOutputs: OBJ_COUNTERS[0] ($292F) decremented. Returns with X=0 and flags reflecting the DEC.\nAssumptions: There is no floor: the count is expected to be kept consistent by TAKE and DROP. ACTION_DROP_OBJECT calls this directly at $0ECB, so the code is live; it is also installed as action opcode $15, but the full shipped-script census finds no $15 emission, so the dispatch-table role is redundant.\nClobbers: X and flags.\nHardware changes: None.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[3787]},{"a":4458,"t":"code","b":[222,47,41],"m":"dec","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4461,"t":"code","b":[96],"m":"rts"},{"a":4462,"l":"INC_CARRIED_COUNT","c":"INC_CARRIED_COUNT ($116E)\nPurpose: Increment OBJ_COUNTERS[0], the number of objects the player is carrying.\nInputs: None; operates on the fixed counter slot 0.\nOutputs: OBJ_COUNTERS[0] ($292F) incremented. Returns with X=0 and flags reflecting the INC.\nAssumptions: There is no saturation; the capacity test lives in ACTION_TAKE_OBJECT. Called directly at $0F2E; also installed as action opcode $16, which the shipped-script census shows is never emitted.\nClobbers: X and flags.\nHardware changes: None.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[3886]},{"a":4464,"t":"code","b":[254,47,41],"m":"inc","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4467,"t":"code","b":[96],"m":"rts"},{"a":4468,"l":"SCRIPT_SET_STATE_4D","c":"SCRIPT_SET_STATE_4D ($1174)\nPurpose: Action opcode: write the command-state byte that the object handlers consult before acting. The byte is the same location the parser uses for NOUN_ID, so a script can suppress or re-arm the next TAKE or DROP.\nInputs: One operand byte at SCRIPT_PC.\nOutputs: SCRIPT_PC advanced by one; the byte at $4D set to the operand.\nAssumptions: Sharing storage with NOUN_ID is deliberate but fragile: any later parse overwrites it, so scripts use it only within one command.\nClobbers: A, flags, SCRIPT_PC, and $4D.\nHardware changes: None.","s":"read byte from script","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4471,"s":"$4D = byte","t":"code","b":[133,77],"m":"sta","oa":77,"o":"NOUN_ID"},{"a":4473,"t":"code","b":[96],"m":"rts"},{"a":4474,"l":"SHOW_PAUSED_MESSAGE","c":"SHOW_PAUSED_MESSAGE ($117A)\nPurpose: Action opcode: pause the narrative. Prints a blank line and the 'press space' prompt, waits for Space, then advances to a blank line.\nInputs: None in registers; terminal and keyboard must be usable.\nOutputs: Sentence $1D printed, the player has pressed Space, and the cursor is at the start of a fresh line.\nAssumptions: The wait is a busy KERNAL keyboard scan, so the raster-split interrupt continues to run and the display stays correct while the engine blocks here. The captured snapshot was taken inside exactly this wait.\nClobbers: A, X, Y, flags, keyboard workspace, terminal cursors and CURRENT_COLUMN.\nHardware changes: Reads the CIA 1 keyboard matrix through KERNAL SCNKEY ($FF9F) and GETIN ($FFE4); writes screen and colour RAM.","s":"blank line","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4477,"s":"A=$1D prompt sentence","t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":4479,"s":"print","t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4482,"l":"WAIT_FOR_SPACE","s":"wait for SPACE","t":"code","b":[32,93,5],"m":"jsr","oa":1373,"o":"WAIT_FOR_SPACE_KEY"},{"a":4485,"s":"blank line","t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4488,"t":"code","b":[96],"m":"rts"},{"a":4489,"l":"ACTION_SAVE_DISABLED","c":"ACTION_SAVE_DISABLED ($1189)\nPurpose: Action opcode $12: the shipped handler for the SAVE verb. It jumps straight to the RTS stub at $0491 and performs no disk operation.\nInputs: None. Reached only from the two-byte action script '12 FF'.\nOutputs: Immediate return; nothing is written to disk and no state changes.\nAssumptions: The parser still accepts the SAVE stem, so the feature is disabled at the action layer rather than in the vocabulary. The full KERNAL implementation survives at DISK_SAVE_GAME but has no incoming edge.\nClobbers: Nothing beyond the jump.\nHardware changes: None.","s":"-> RTS at $0491 (no-op)","t":"code","b":[76,145,4],"m":"jmp","oa":1169,"o":"SAVE_DISABLED_RTS"},{"a":4492,"l":"ACTION_LOAD_DISABLED","c":"ACTION_LOAD_DISABLED ($118C)\nPurpose: Action opcode $13: the shipped handler for the LOAD verb. It jumps straight to the RTS stub at $045F and performs no disk operation.\nInputs: None. Reached only from the two-byte action script '13 FF'.\nOutputs: Immediate return; nothing is read from disk and no state changes.\nAssumptions: As with SAVE, the vocabulary still accepts the stem; the surviving implementation at DISK_LOAD_GAME is unreachable.\nClobbers: Nothing beyond the jump.\nHardware changes: None.","s":"-> RTS at $045F (no-op)","t":"code","b":[76,95,4],"m":"jmp","oa":1119,"o":"LOAD_DISABLED_RTS"},{"a":4495,"l":"NOOP_ACTION_15","c":"NOOP_ACTION_15 ($118F)\nPurpose: Action opcode $0F: a verb body that does nothing at all, not even print. NOP followed by RTS.\nInputs: None.\nOutputs: Immediate return with no state change.\nAssumptions: Emitted exactly once, at $2B2D as '0F FF', giving a verb the parser accepts and that silently does nothing.\nClobbers: Nothing; A, X, Y, flags, memory and devices are preserved.\nHardware changes: None.","s":"no-op","t":"code","b":[234],"m":"nop"},{"a":4496,"t":"code","b":[96],"m":"rts"},{"a":4497,"l":"COND_TABLE_PTR","c":"Pointer to the condition-opcode handler table.","t":"word","b":[147,17],"d":[4499],"x":[5672]},{"a":4498,"t":"note","l":"a_1192","c":"High byte $11 of COND_TABLE_PTR, the little-endian pointer at $1191 whose captured value is $1193. Low byte and pointer purpose are described at $1191.","note":"inside the item at $1191","x":[5679]},{"a":4499,"l":"CONDITION_DISPATCH_TABLE","c":"Ten condition-opcode handler addresses used by RUN_SCRIPT for opcodes $80-$89.\n[offcut 1194] --- Data: condition-opcode dispatch table ---\n[offcut 1194] Pointers to the script condition handlers at $11C2+ (COND_SLOT_EMPTY, COND_FLAG_SET,\n[offcut 1194] COND_FLAG_CLEAR, COND_COUNTER_ZERO, COND_COUNTER_EQ, COND_CARRIED_*, COND_RANDOM, ...),\n[offcut 1194] stored high-byte-first for RTS-style dispatch. Indexed by condition-opcode number.","t":"byte","b":[178,17,194,17,208,17,220,17]},{"a":4507,"t":"byte","b":[232,17,244,17,6,18,20,18]},{"a":4515,"t":"byte","b":[34,18,167,17]},{"a":4519,"l":"COND_CURRENT_ROOM_IS","c":"COND_CURRENT_ROOM_IS ($11A7)\nPurpose: Condition opcode $89: true when the operand equals the room the player is in.\nInputs: One operand byte at SCRIPT_PC: a room id.\nOutputs: SCRIPT_PC advanced by one; carry set iff operand == CURRENT_ROOM ($293F).\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear.\nClobbers: A, flags, SCRIPT_PC.\nHardware changes: None.","s":"read operand byte (a room id) from script","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4522,"t":"code","b":[205,63,41],"m":"cmp","oa":10559,"o":"CURRENT_ROOM"},{"a":4525,"s":"operand == CURRENT_ROOM -> TRUE","t":"code","b":[240,17],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4527,"s":"else -> FALSE","t":"code","b":[76,190,17],"m":"jmp","oa":4542,"o":"COND_FALSE"},{"a":4530,"l":"COND_OBJECT_IN_ROOM","c":"COND_OBJECT_IN_ROOM ($11B2)\nPurpose: Condition opcode $80: true when the named object's location byte equals the current room.\nInputs: One operand byte at SCRIPT_PC: an object slot index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJECT_LOCATIONS[slot] == CURRENT_ROOM. Falls through into COND_FALSE when not equal.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear. The slot index is not range checked.\nClobbers: A, Y, flags, SCRIPT_PC.\nHardware changes: None.","s":"read object slot index from script","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE","x":[5697]},{"a":4533,"t":"code","b":[168],"m":"tay"},{"a":4534,"s":"A = OBJECT_LOCATIONS[slot] (object's current room/state)","t":"code","b":[185,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,y"},{"a":4537,"t":"code","b":[205,63,41],"m":"cmp","oa":10559,"o":"CURRENT_ROOM"},{"a":4540,"s":"object in CURRENT_ROOM -> TRUE, else fall through to COND_FALSE","t":"code","b":[240,2],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4542,"l":"COND_FALSE","c":"COND_FALSE ($11BE)\nPurpose: Shared Boolean-false return used by every condition handler: clear carry and return.\nInputs: None. Entered by branch or jump from eight different condition handlers.\nOutputs: Carry clear; A, X, Y and the other flags are whatever the calling handler left.\nAssumptions: Reached from outside its textual neighbours, so it is a genuine shared exit rather than a fall-through label.\nClobbers: Carry only.\nHardware changes: None.","s":"return FALSE (carry clear)","t":"code","b":[24],"m":"clc","x":[4527,4557,4567,4581,4593,4611,4623,4639]},{"a":4543,"t":"code","b":[96],"m":"rts"},{"a":4544,"l":"COND_TRUE","c":"COND_TRUE ($11C0)\nPurpose: Shared Boolean-true return used by every condition handler: set carry and return.\nInputs: None. Entered by branch or jump from nine different condition handlers.\nOutputs: Carry set; A, X, Y and the other flags are whatever the calling handler left.\nAssumptions: Reached from outside its textual neighbours, so it is a genuine shared exit.\nClobbers: Carry only.\nHardware changes: None.","s":"return TRUE (carry set)","t":"code","b":[56],"m":"sec","x":[4525,4540,4555,4569,4579,4591,4609,4625,4637]},{"a":4545,"t":"code","b":[96],"m":"rts"},{"a":4546,"l":"COND_OBJECT_CARRIED","c":"COND_OBJECT_CARRIED ($11C2)\nPurpose: Condition opcode $81: true when the named object is in the player's hands, i.e. its location byte holds the reserved carried marker $FC.\nInputs: One operand byte at SCRIPT_PC: an object slot index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJECT_LOCATIONS[slot] == $FC.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear.\nClobbers: A, Y, flags, SCRIPT_PC.\nHardware changes: None.","s":"read slot index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4549,"t":"code","b":[168],"m":"tay"},{"a":4550,"s":"Read this object's location/state.","t":"code","b":[185,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,y"},{"a":4553,"s":"$FC means carried.","t":"code","b":[201,252],"m":"cmp","o":"#$FC"},{"a":4555,"s":"yes -> true","t":"code","b":[240,243],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4557,"s":"no -> false","t":"code","b":[76,190,17],"m":"jmp","oa":4542,"o":"COND_FALSE"},{"a":4560,"l":"COND_FLAG_SET","c":"COND_FLAG_SET ($11D0)\nPurpose: Condition opcode $82: true when the named progression flag is non-zero.\nInputs: One operand byte at SCRIPT_PC: a flag index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJ_FLAGS[index] ($290F + index) != 0.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read flag index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4563,"t":"code","b":[170],"m":"tax"},{"a":4564,"s":"OBJ_FLAGS[idx]","t":"code","b":[189,15,41],"m":"lda","oa":10511,"o":"OBJ_FLAGS,x"},{"a":4567,"s":"== 0 -> false","t":"code","b":[240,229],"m":"beq","oa":4542,"o":"COND_FALSE"},{"a":4569,"s":"else -> true","t":"code","b":[76,192,17],"m":"jmp","oa":4544,"o":"COND_TRUE"},{"a":4572,"l":"COND_FLAG_CLEAR","c":"COND_FLAG_CLEAR ($11DC)\nPurpose: Condition opcode $83: true when the named progression flag is zero.\nInputs: One operand byte at SCRIPT_PC: a flag index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJ_FLAGS[index] == 0.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read flag index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4575,"t":"code","b":[170],"m":"tax"},{"a":4576,"s":"OBJ_FLAGS[idx]","t":"code","b":[189,15,41],"m":"lda","oa":10511,"o":"OBJ_FLAGS,x"},{"a":4579,"s":"== 0 -> true","t":"code","b":[240,219],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4581,"s":"else -> false","t":"code","b":[76,190,17],"m":"jmp","oa":4542,"o":"COND_FALSE"},{"a":4584,"l":"COND_COUNTER_ZERO","c":"COND_COUNTER_ZERO ($11E8)\nPurpose: Condition opcode $84: true when the named counter has reached zero.\nInputs: One operand byte at SCRIPT_PC: a counter index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJ_COUNTERS[index] ($292F + index) == 0.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read counter index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4587,"t":"code","b":[170],"m":"tax"},{"a":4588,"s":"OBJ_COUNTERS[idx]","t":"code","b":[189,47,41],"m":"lda","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4591,"s":"== 0 -> true","t":"code","b":[240,207],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4593,"s":"else -> false","t":"code","b":[76,190,17],"m":"jmp","oa":4542,"o":"COND_FALSE"},{"a":4596,"l":"COND_COUNTER_EQ","c":"COND_COUNTER_EQ ($11F4)\nPurpose: Condition opcode $85: true when the named counter holds exactly the given value.\nInputs: Two operand bytes at SCRIPT_PC: the value first, then the counter index.\nOutputs: SCRIPT_PC advanced by two; carry set iff OBJ_COUNTERS[index] == value.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear. Note the operand order: value precedes index, the opposite of STATE_SET_COUNTER.\nClobbers: A, X, flags, SCRATCH_INDEX ($03), SCRIPT_PC.\nHardware changes: None.","s":"read value","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4599,"s":"save value","t":"code","b":[133,3],"m":"sta","oa":3,"o":"SCRATCH_INDEX"},{"a":4601,"s":"read counter index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4604,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"SCRATCH_INDEX"},{"a":4606,"s":"value == OBJ_COUNTERS[idx]?","t":"code","b":[221,47,41],"m":"cmp","oa":10543,"o":"OBJ_COUNTERS,x"},{"a":4609,"s":"yes -> true","t":"code","b":[240,189],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4611,"s":"no -> false","t":"code","b":[76,190,17],"m":"jmp","oa":4542,"o":"COND_FALSE"},{"a":4614,"l":"COND_OBJECT_PRESENT","c":"COND_OBJECT_PRESENT ($1206)\nPurpose: Condition opcode $86: true when the named object still exists in the world, i.e. its location byte is not the reserved absent marker $FD.\nInputs: One operand byte at SCRIPT_PC: an object slot index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJECT_LOCATIONS[slot] != $FD.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear. 'Present' means not destroyed, not 'in this room'.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read slot index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4617,"t":"code","b":[170],"m":"tax"},{"a":4618,"s":"Read this object's location/state.","t":"code","b":[189,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,x"},{"a":4621,"s":"$FD means absent or disabled.","t":"code","b":[201,253],"m":"cmp","o":"#$FD"},{"a":4623,"s":"yes -> false","t":"code","b":[240,173],"m":"beq","oa":4542,"o":"COND_FALSE"},{"a":4625,"s":"no -> true","t":"code","b":[76,192,17],"m":"jmp","oa":4544,"o":"COND_TRUE"},{"a":4628,"l":"COND_OBJECT_ABSENT","c":"COND_OBJECT_ABSENT ($1214)\nPurpose: Condition opcode $87: true when the named object has been removed from the world, i.e. its location byte is the reserved absent marker $FD.\nInputs: One operand byte at SCRIPT_PC: an object slot index.\nOutputs: SCRIPT_PC advanced by one; carry set iff OBJECT_LOCATIONS[slot] == $FD.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear.\nClobbers: A, X, flags, SCRIPT_PC.\nHardware changes: None.","s":"read slot index","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4631,"t":"code","b":[170],"m":"tax"},{"a":4632,"s":"Read this object's location/state.","t":"code","b":[189,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,x"},{"a":4635,"s":"$FD means absent or disabled.","t":"code","b":[201,253],"m":"cmp","o":"#$FD"},{"a":4637,"s":"yes -> true","t":"code","b":[240,161],"m":"beq","oa":4544,"o":"COND_TRUE"},{"a":4639,"s":"no -> false","t":"code","b":[76,190,17],"m":"jmp","oa":4542,"o":"COND_FALSE"},{"a":4642,"l":"COND_RANDOM","c":"COND_RANDOM ($1222)\nPurpose: Condition opcode $88: the engine's coin flip. Compares an operand threshold against the low eight bits of the VIC-II raster counter and returns the resulting carry, so the outcome depends on when in the frame the script happens to run.\nInputs: One operand byte at SCRIPT_PC: the threshold.\nOutputs: SCRIPT_PC advanced by one; carry set iff threshold >= the sampled raster value, i.e. roughly threshold/256 probability.\nAssumptions: Invoked through the self-modified JSR at $1641, whose target is loaded from CONDITION_DISPATCH_TABLE ($1193). Carry is the entire return protocol: the interpreter continues the rule on carry set and skips to the next $FE or $FF on carry clear. The stack is used for one balanced PHA/PLA, so the stack pointer is restored. Because the sample is taken during foreground code that is itself interrupted by three raster splits per frame, the distribution is neither uniform nor independent between consecutive calls.\nClobbers: A, flags, SCRATCH_BYTE ($02), SCRIPT_PC.\nHardware changes: Reads the VIC-II raster register $D012 through READ_RASTER_LINE. Nothing is written.","s":"read threshold byte","t":"code","b":[32,216,21],"m":"jsr","oa":5592,"o":"FETCH_SCRIPT_BYTE"},{"a":4645,"s":"save it","t":"code","b":[72],"m":"pha"},{"a":4646,"s":"A = current raster line ($D012)","t":"code","b":[32,149,6],"m":"jsr","oa":1685,"o":"READ_RASTER_LINE"},{"a":4649,"s":"-> temp $02","t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":4651,"t":"code","b":[104],"m":"pla"},{"a":4652,"s":"carry = threshold >= raster line","t":"code","b":[197,2],"m":"cmp","oa":2,"o":"SCRATCH_BYTE"},{"a":4654,"t":"code","b":[96],"m":"rts"},{"a":4655,"l":"PARSE_INPUT","c":"PARSE_INPUT ($122F)\nPurpose: Turn one edited command line into an executed command. Splits the line into words and records their start and end offsets, then replaces each offset pair with a vocabulary token id, then resolves the verb and noun and dispatches the matching rule.\nInputs: INPUT_TEXT_BUFFER ($CBA0) holds the lowercased line and INPUT_LEN ($26) its length. An empty line returns immediately.\nOutputs: PARSED_TOKENS ($28-$47) holds up to sixteen resolved token ids, WORD_COUNT ($27) the number of words, and the matching action script has been run, so any game state may have changed.\nAssumptions: The token table is sixteen two-byte slots and the tokenizer stops when it fills. Vocabulary matching uses only the first three characters of each word; the disambiguation block at $1325 inspects characters four to six to separate stems that share a prefix.\nClobbers: A, X, Y, flags, WORD_COUNT, PARSED_TOKENS, LOOP_COUNTER ($4B), SCRATCH_BYTE ($02), SCRATCH_INDEX ($03), SCRATCH_BYTE_2 ($04), WORD_BUFFER ($64-$69), MEMCPY_SOURCE ($0A/$0B), WORK_PTR ($0C/$0D), VERB_ID ($4C), NOUN_ID ($4D), SAVED_PARSE_INDEX ($6A), the self-modified operand at $13B1, and all VM and renderer state through dispatch.\nHardware changes: None directly; the renderer writes screen and colour RAM, and an executed command may reach the disk and display paths.","s":"input length","t":"code","b":[165,38],"m":"lda","oa":38,"o":"INPUT_LEN","x":[1039]},{"a":4657,"s":"empty line -> return","t":"code","b":[208,1],"m":"bne","oa":4660,"o":"PARSE_CLEAR_TOKENS"},{"a":4659,"t":"code","b":[96],"m":"rts"},{"a":4660,"l":"PARSE_CLEAR_TOKENS","s":"WORD_COUNT = 0","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[4657]},{"a":4662,"t":"code","b":[133,39],"m":"sta","oa":39,"o":"WORD_COUNT"},{"a":4664,"s":"clear PARSED_TOKENS offset table (32 bytes)","t":"code","b":[162,31],"m":"ldx","o":"#$1F"},{"a":4666,"l":"PARSE_CLEAR_LOOP","t":"code","b":[149,40],"m":"sta","oa":40,"o":"PARSED_TOKENS,x","x":[4669]},{"a":4668,"t":"code","b":[202],"m":"dex"},{"a":4669,"t":"code","b":[16,251],"m":"bpl","oa":4666,"o":"PARSE_CLEAR_LOOP"},{"a":4671,"s":"src ptr = INPUT_TEXT_BUFFER ($CBA0)","t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":4673,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":4675,"t":"code","b":[169,203],"m":"lda","o":"#$CB"},{"a":4677,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":4679,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4681,"s":"X = PARSED_TOKENS index","t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4683,"l":"PARSE_SKIP_SPACES","s":"skip leading spaces","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y","x":[4692]},{"a":4685,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4687,"t":"code","b":[208,6],"m":"bne","oa":4695,"o":"PARSE_WORD_START"},{"a":4689,"t":"code","b":[200],"m":"iny"},{"a":4690,"s":"end of input?","t":"code","b":[196,38],"m":"cpy","oa":38,"o":"INPUT_LEN"},{"a":4692,"t":"code","b":[208,245],"m":"bne","oa":4683,"o":"PARSE_SKIP_SPACES"},{"a":4694,"t":"code","b":[96],"m":"rts"},{"a":4695,"l":"PARSE_WORD_START","s":"record word start offset -> PARSED_TOKENS[X]","t":"code","b":[148,40],"m":"sty","oa":40,"o":"PARSED_TOKENS,x","x":[4687]},{"a":4697,"t":"code","b":[232],"m":"inx"},{"a":4698,"t":"code","b":[232],"m":"inx"},{"a":4699,"l":"PARSE_SCAN_WORD","s":"scan to end of word (next space)","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y","x":[4708,4749]},{"a":4701,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4703,"t":"code","b":[240,13],"m":"beq","oa":4718,"o":"PARSE_SAVE_WORD_END"},{"a":4705,"t":"code","b":[200],"m":"iny"},{"a":4706,"t":"code","b":[196,38],"m":"cpy","oa":38,"o":"INPUT_LEN"},{"a":4708,"t":"code","b":[208,245],"m":"bne","oa":4699,"o":"PARSE_SCAN_WORD"},{"a":4710,"l":"PARSE_LAST_WORD_END","s":"WORD_COUNT++","t":"code","b":[230,39],"m":"inc","oa":39,"o":"WORD_COUNT","x":[4736]},{"a":4712,"t":"code","b":[200],"m":"iny"},{"a":4713,"t":"code","b":[148,40],"m":"sty","oa":40,"o":"PARSED_TOKENS,x"},{"a":4715,"t":"code","b":[76,144,18],"m":"jmp","oa":4752,"o":"PARSE_BEGIN_LOOKUP"},{"a":4718,"l":"PARSE_SAVE_WORD_END","t":"code","b":[132,4],"m":"sty","oa":4,"o":"SCRATCH_BYTE_2","x":[4703]},{"a":4720,"l":"PARSE_SKIP_GAP","t":"code","b":[200],"m":"iny","x":[4729]},{"a":4721,"t":"code","b":[196,38],"m":"cpy","oa":38,"o":"INPUT_LEN"},{"a":4723,"t":"code","b":[240,9],"m":"beq","oa":4734,"o":"PARSE_RESTORE_WORD_END"},{"a":4725,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y"},{"a":4727,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4729,"t":"code","b":[240,245],"m":"beq","oa":4720,"o":"PARSE_SKIP_GAP"},{"a":4731,"t":"code","b":[76,131,18],"m":"jmp","oa":4739,"o":"PARSE_RECORD_WORD_END"},{"a":4734,"l":"PARSE_RESTORE_WORD_END","t":"code","b":[164,4],"m":"ldy","oa":4,"o":"SCRATCH_BYTE_2","x":[4723]},{"a":4736,"t":"code","b":[76,102,18],"m":"jmp","oa":4710,"o":"PARSE_LAST_WORD_END"},{"a":4739,"l":"PARSE_RECORD_WORD_END","s":"record word end, advance token slot","t":"code","b":[148,40],"m":"sty","oa":40,"o":"PARSED_TOKENS,x","x":[4731]},{"a":4741,"t":"code","b":[230,39],"m":"inc","oa":39,"o":"WORD_COUNT"},{"a":4743,"t":"code","b":[232],"m":"inx"},{"a":4744,"t":"code","b":[232],"m":"inx"},{"a":4745,"s":"table full (16 words)?","t":"code","b":[224,32],"m":"cpx","o":"#$20"},{"a":4747,"t":"code","b":[240,3],"m":"beq","oa":4752,"o":"PARSE_BEGIN_LOOKUP"},{"a":4749,"t":"code","b":[76,91,18],"m":"jmp","oa":4699,"o":"PARSE_SCAN_WORD"},{"a":4752,"l":"PARSE_BEGIN_LOOKUP","c":"For each parsed word: blank WORD_BUFFER (6 spaces), copy up to 6 chars of the word from\nINPUT_TEXT_BUFFER into WORD_BUFFER, then fall into VOCAB_LOOKUP.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[4715,4747]},{"a":4754,"s":"WORD_COUNT -> $4B (words remaining)","t":"code","b":[165,39],"m":"lda","oa":39,"o":"WORD_COUNT"},{"a":4756,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"LOOP_COUNTER"},{"a":4758,"l":"PARSE_NEXT_WORD","t":"code","b":[134,3],"m":"stx","oa":3,"o":"SCRATCH_INDEX","x":[5011]},{"a":4760,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4762,"s":"blank WORD_BUFFER (6 spaces)","t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":4764,"l":"PARSE_BLANK_WORD_BUFFER","t":"code","b":[149,100],"m":"sta","oa":100,"o":"WORD_BUFFER,x","x":[4769]},{"a":4766,"t":"code","b":[232],"m":"inx"},{"a":4767,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":4769,"t":"code","b":[208,249],"m":"bne","oa":4764,"o":"PARSE_BLANK_WORD_BUFFER"},{"a":4771,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"SCRATCH_INDEX"},{"a":4773,"s":"Y = this word's start offset","t":"code","b":[180,40],"m":"ldy","oa":40,"o":"PARSED_TOKENS,x"},{"a":4775,"t":"code","b":[232],"m":"inx"},{"a":4776,"t":"code","b":[134,3],"m":"stx","oa":3,"o":"SCRATCH_INDEX"},{"a":4778,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4780,"l":"PARSE_COPY_WORD_CHARS","s":"copy word chars into WORD_BUFFER (max 6)","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y","x":[4792]},{"a":4782,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4784,"t":"code","b":[240,8],"m":"beq","oa":4794,"o":"PARSE_LOAD_VOCAB_PTR"},{"a":4786,"t":"code","b":[149,100],"m":"sta","oa":100,"o":"WORD_BUFFER,x"},{"a":4788,"t":"code","b":[200],"m":"iny"},{"a":4789,"t":"code","b":[232],"m":"inx"},{"a":4790,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":4792,"t":"code","b":[208,242],"m":"bne","oa":4780,"o":"PARSE_COPY_WORD_CHARS"},{"a":4794,"l":"PARSE_LOAD_VOCAB_PTR","s":"VOCAB_TABLE_PTR -> vocab pointer $0C/$0D","t":"code","b":[173,156,25],"m":"lda","oa":6556,"o":"VOCAB_TABLE_PTR","x":[4784]},{"a":4797,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":4799,"t":"code","b":[173,157,25],"m":"lda","oa":6557,"o":"a_199D"},{"a":4802,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":4804,"l":"VOCAB_LOOKUP","c":"The vocabulary is a list of 4-byte entries [char1,char2,char3,id], terminated by '@' ($40).\nMatches the word's first 3 chars against each entry; on a full match reads the id byte\n(-> $02) and resolves the token type at RESOLVE_TOKEN_TYPE. A '@' terminator means the word\nis unknown -> WORD_NOT_FOUND.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[4825,4829]},{"a":4806,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4808,"s":"vocab entry char","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4810,"s":"'@' end-of-vocab -> not found","t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":4812,"t":"code","b":[240,40],"m":"beq","oa":4854,"o":"WORD_NOT_FOUND"},{"a":4814,"s":"compare to WORD_BUFFER[0]","t":"code","b":[213,100],"m":"cmp","oa":100,"o":"WORD_BUFFER,x"},{"a":4816,"t":"code","b":[240,14],"m":"beq","oa":4832,"o":"VOCAB_MATCH_CHAR_2"},{"a":4818,"l":"VOCAB_NEXT_ENTRY","s":"no match: advance to next 4-byte entry","t":"code","b":[169,4],"m":"lda","o":"#$04","x":[4840,4851]},{"a":4820,"t":"code","b":[24],"m":"clc"},{"a":4821,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"WORK_PTR"},{"a":4823,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":4825,"t":"code","b":[144,233],"m":"bcc","oa":4804,"o":"VOCAB_LOOKUP"},{"a":4827,"t":"code","b":[230,13],"m":"inc","oa":13,"o":"zpa_0D"},{"a":4829,"t":"code","b":[76,196,18],"m":"jmp","oa":4804,"o":"VOCAB_LOOKUP"},{"a":4832,"l":"VOCAB_MATCH_CHAR_2","s":"match char 2 ...","t":"code","b":[200],"m":"iny","x":[4816]},{"a":4833,"t":"code","b":[232],"m":"inx"},{"a":4834,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4836,"t":"code","b":[213,100],"m":"cmp","oa":100,"o":"WORD_BUFFER,x"},{"a":4838,"t":"code","b":[240,3],"m":"beq","oa":4843,"o":"VOCAB_MATCH_CHAR_3"},{"a":4840,"t":"code","b":[76,210,18],"m":"jmp","oa":4818,"o":"VOCAB_NEXT_ENTRY"},{"a":4843,"l":"VOCAB_MATCH_CHAR_3","s":"match char 3 -> token found","t":"code","b":[200],"m":"iny","x":[4838]},{"a":4844,"t":"code","b":[232],"m":"inx"},{"a":4845,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4847,"t":"code","b":[213,100],"m":"cmp","oa":100,"o":"WORD_BUFFER,x"},{"a":4849,"t":"code","b":[240,50],"m":"beq","oa":4901,"o":"VOCAB_READ_TOKEN_ID"},{"a":4851,"t":"code","b":[76,210,18],"m":"jmp","oa":4818,"o":"VOCAB_NEXT_ENTRY"},{"a":4854,"l":"WORD_NOT_FOUND","c":"Prints sentence $0 (\"I don't understand ...\") then echoes the offending word in quotes:\ncomputes its length (WORD_REMAINING_LEN) and pointer (TERM_DATA_PTR = $CBA0 + offset) and\nprints it via PRINT_WORD, then a blank line.","s":"A=$0 'don't understand' sentence","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[4812]},{"a":4856,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":4859,"s":"print '\"'","t":"code","b":[169,34],"m":"lda","o":"#$22"},{"a":4861,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":4864,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"SCRATCH_INDEX"},{"a":4866,"t":"code","b":[232],"m":"inx"},{"a":4867,"s":"word length = end offset - start offset - 1","t":"code","b":[181,40],"m":"lda","oa":40,"o":"PARSED_TOKENS,x"},{"a":4869,"t":"code","b":[202],"m":"dex"},{"a":4870,"t":"code","b":[202],"m":"dex"},{"a":4871,"t":"code","b":[56],"m":"sec"},{"a":4872,"t":"code","b":[245,40],"m":"sbc","oa":40,"o":"PARSED_TOKENS,x"},{"a":4874,"t":"code","b":[56],"m":"sec"},{"a":4875,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":4877,"s":"-> WORD_REMAINING_LEN","t":"code","b":[133,37],"m":"sta","oa":37,"o":"WORD_REMAINING_LEN"},{"a":4879,"s":"TERM_DATA_PTR = $CBA0 + word start offset","t":"code","b":[181,40],"m":"lda","oa":40,"o":"PARSED_TOKENS,x"},{"a":4881,"t":"code","b":[24],"m":"clc"},{"a":4882,"t":"code","b":[105,160],"m":"adc","o":"#$A0"},{"a":4884,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":4886,"t":"code","b":[169,203],"m":"lda","o":"#$CB"},{"a":4888,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":4890,"s":"print the word","t":"code","b":[32,219,10],"m":"jsr","oa":2779,"o":"PRINT_WORD"},{"a":4893,"s":"print '\"'","t":"code","b":[169,34],"m":"lda","o":"#$22"},{"a":4895,"t":"code","b":[32,219,8],"m":"jsr","oa":2267,"o":"PRINT_CHARACTER"},{"a":4898,"s":"blank line + return","t":"code","b":[76,75,11],"m":"jmp","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":4901,"l":"VOCAB_READ_TOKEN_ID","c":"Reads the matched vocab entry's id byte into $02. For ambiguous stems (id type 1 or 5) it\ninspects WORD_BUFFER[3..5] to pick the exact word \u2014 e.g. \"th e\"/\"th w\" variants map to\ndifferent ids ($2,$4,$6,$8). This lets 3-char-stem matching still distinguish words that\nshare a stem.","s":"read id byte -> $02","t":"code","b":[200],"m":"iny","x":[4849]},{"a":4902,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":4904,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":4906,"s":"type 1? -> disambiguate","t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":4908,"t":"code","b":[240,7],"m":"beq","oa":4917,"o":"VOCAB_DISAMBIGUATE_TYPE_1"},{"a":4910,"s":"type 5? -> disambiguate","t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":4912,"t":"code","b":[240,46],"m":"beq","oa":4960,"o":"VOCAB_DISAMBIGUATE_TYPE_5"},{"a":4914,"t":"code","b":[76,136,19],"m":"jmp","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4917,"l":"VOCAB_DISAMBIGUATE_TYPE_1","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[4908]},{"a":4919,"s":"check WORD_BUFFER[3..5] for exact word","t":"code","b":[181,100],"m":"lda","oa":100,"o":"WORD_BUFFER,x"},{"a":4921,"t":"code","b":[201,116],"m":"cmp","o":"#$74"},{"a":4923,"t":"code","b":[208,75],"m":"bne","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4925,"t":"code","b":[232],"m":"inx"},{"a":4926,"t":"code","b":[181,100],"m":"lda","oa":100,"o":"WORD_BUFFER,x"},{"a":4928,"t":"code","b":[201,104],"m":"cmp","o":"#$68"},{"a":4930,"t":"code","b":[208,68],"m":"bne","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4932,"t":"code","b":[232],"m":"inx"},{"a":4933,"t":"code","b":[181,100],"m":"lda","oa":100,"o":"WORD_BUFFER,x"},{"a":4935,"t":"code","b":[201,101],"m":"cmp","o":"#$65"},{"a":4937,"t":"code","b":[240,14],"m":"beq","oa":4953,"o":"VOCAB_TYPE_1_EAST"},{"a":4939,"t":"code","b":[201,119],"m":"cmp","o":"#$77"},{"a":4941,"t":"code","b":[240,3],"m":"beq","oa":4946,"o":"VOCAB_TYPE_1_WEST"},{"a":4943,"t":"code","b":[76,136,19],"m":"jmp","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4946,"l":"VOCAB_TYPE_1_WEST","t":"code","b":[169,8],"m":"lda","o":"#$08","x":[4941]},{"a":4948,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":4950,"t":"code","b":[76,136,19],"m":"jmp","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4953,"l":"VOCAB_TYPE_1_EAST","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[4937]},{"a":4955,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":4957,"t":"code","b":[76,136,19],"m":"jmp","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4960,"l":"VOCAB_DISAMBIGUATE_TYPE_5","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[4912]},{"a":4962,"t":"code","b":[181,100],"m":"lda","oa":100,"o":"WORD_BUFFER,x"},{"a":4964,"t":"code","b":[201,116],"m":"cmp","o":"#$74"},{"a":4966,"t":"code","b":[208,32],"m":"bne","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4968,"t":"code","b":[232],"m":"inx"},{"a":4969,"t":"code","b":[181,100],"m":"lda","oa":100,"o":"WORD_BUFFER,x"},{"a":4971,"t":"code","b":[201,104],"m":"cmp","o":"#$68"},{"a":4973,"t":"code","b":[208,25],"m":"bne","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4975,"t":"code","b":[232],"m":"inx"},{"a":4976,"t":"code","b":[181,100],"m":"lda","oa":100,"o":"WORD_BUFFER,x"},{"a":4978,"t":"code","b":[201,101],"m":"cmp","o":"#$65"},{"a":4980,"t":"code","b":[240,14],"m":"beq","oa":4996,"o":"VOCAB_TYPE_5_EAST"},{"a":4982,"t":"code","b":[201,119],"m":"cmp","o":"#$77"},{"a":4984,"t":"code","b":[240,3],"m":"beq","oa":4989,"o":"VOCAB_TYPE_5_WEST"},{"a":4986,"t":"code","b":[76,136,19],"m":"jmp","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4989,"l":"VOCAB_TYPE_5_WEST","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[4984]},{"a":4991,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":4993,"t":"code","b":[76,136,19],"m":"jmp","oa":5000,"o":"VOCAB_STORE_TOKEN_ID"},{"a":4996,"l":"VOCAB_TYPE_5_EAST","t":"code","b":[169,4],"m":"lda","o":"#$04","x":[4980]},{"a":4998,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":5000,"l":"VOCAB_STORE_TOKEN_ID","c":"Overwrites PARSED_TOKENS[X] with the resolved id ($02) and loops to the next word (via\n$1296) until WORD_COUNT words are done. RESOLVE_VERB_NOUN ($1396) then rescans the token\nstream: WORD_COUNT is doubled to a byte length, and the first meaningful token becomes the\nverb; NOUN_ID defaults to $FA (none). Verb tokens are id<$32 or with bit7 set. A lone\ntoken with no verb prints sentence $1 (\"I don't understand\").","s":"store resolved id -> PARSED_TOKENS[X]","t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE","x":[4914,4923,4930,4943,4950,4957,4966,4973,4986,4993]},{"a":5002,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"SCRATCH_INDEX"},{"a":5004,"t":"code","b":[149,40],"m":"sta","oa":40,"o":"PARSED_TOKENS,x"},{"a":5006,"t":"code","b":[232],"m":"inx"},{"a":5007,"s":"words remaining--","t":"code","b":[198,75],"m":"dec","oa":75,"o":"LOOP_COUNTER"},{"a":5009,"s":"all done -> RESOLVE_VERB_NOUN","t":"code","b":[240,3],"m":"beq","oa":5014,"o":"RESOLVE_VERB_NOUN"},{"a":5011,"s":"next word","t":"code","b":[76,150,18],"m":"jmp","oa":4758,"o":"PARSE_NEXT_WORD"},{"a":5014,"l":"RESOLVE_VERB_NOUN","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5009]},{"a":5016,"t":"code","b":[141,177,19],"m":"sta","oa":5041,"o":"COMMAND_UNHANDLED_FLAG"},{"a":5019,"t":"code","b":[165,39],"m":"lda","oa":39,"o":"WORD_COUNT"},{"a":5021,"s":"WORD_COUNT *= 2 (byte length)","t":"code","b":[10],"m":"asl","o":"a"},{"a":5022,"t":"code","b":[133,39],"m":"sta","oa":39,"o":"WORD_COUNT"},{"a":5024,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":5026,"l":"RESOLVE_VN_RESTART_SCAN","s":"scan tokens for the verb","t":"code","b":[169,250],"m":"lda","o":"#$FA","x":[5120]},{"a":5028,"s":"NOUN_ID = $FA (none)","t":"code","b":[133,77],"m":"sta","oa":77,"o":"NOUN_ID"},{"a":5030,"l":"RESOLVE_VN_SCAN_VERB","t":"code","b":[181,40],"m":"lda","oa":40,"o":"PARSED_TOKENS,x","x":[5038]},{"a":5032,"t":"code","b":[208,19],"m":"bne","oa":5053,"o":"RESOLVE_VN_TEST_CANDIDATE"},{"a":5034,"l":"RESOLVE_VN_NEXT_VERB_SLOT","t":"code","b":[232],"m":"inx","x":[5065]},{"a":5035,"t":"code","b":[232],"m":"inx"},{"a":5036,"t":"code","b":[228,39],"m":"cpx","oa":39,"o":"WORD_COUNT"},{"a":5038,"t":"code","b":[144,246],"m":"bcc","oa":5030,"o":"RESOLVE_VN_SCAN_VERB"},{"a":5040,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5041,"t":"note","l":"COMMAND_UNHANDLED_FLAG","c":"Immediate operand of LDA at $13B0, patched by $1398/$1405 to record whether a command remained unhandled. Zero takes BEQ $13BC without printing; one prints sentence 1 and an empty line. Following resolver code selects a verb id below $32 and scans the noun tokens before dispatch.","note":"inside the item at $13B0","x":[5016,5125]},{"a":5042,"t":"code","b":[240,8],"m":"beq","oa":5052,"o":"RESOLVE_VN_DONE"},{"a":5044,"s":"no verb -> sentence $1","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5046,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":5049,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":5052,"l":"RESOLVE_VN_DONE","t":"code","b":[96],"m":"rts","x":[5042]},{"a":5053,"l":"RESOLVE_VN_TEST_CANDIDATE","s":"candidate token","t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE","x":[5032]},{"a":5055,"s":"bit 7 set -> skip this token; it is not a verb candidate","t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":5057,"t":"code","b":[208,6],"m":"bne","oa":5065,"o":"RESOLVE_VN_SKIP_TOKEN"},{"a":5059,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":5061,"s":"bit 7 clear and id < $32 -> accept as the verb","t":"code","b":[201,50],"m":"cmp","o":"#$32"},{"a":5063,"t":"code","b":[144,3],"m":"bcc","oa":5068,"o":"RESOLVE_VN_ACCEPT_VERB"},{"a":5065,"l":"RESOLVE_VN_SKIP_TOKEN","t":"code","b":[76,170,19],"m":"jmp","oa":5034,"o":"RESOLVE_VN_NEXT_VERB_SLOT","x":[5057]},{"a":5068,"l":"RESOLVE_VN_ACCEPT_VERB","s":"VERB_ID = token","t":"code","b":[133,76],"m":"sta","oa":76,"o":"VERB_ID","x":[5063]},{"a":5070,"t":"code","b":[232],"m":"inx"},{"a":5071,"t":"code","b":[232],"m":"inx"},{"a":5072,"t":"code","b":[228,39],"m":"cpx","oa":39,"o":"WORD_COUNT"},{"a":5074,"t":"code","b":[144,4],"m":"bcc","oa":5080,"o":"RESOLVE_VN_SCAN_NOUN"},{"a":5076,"t":"code","b":[32,3,20],"m":"jsr","oa":5123,"o":"DISPATCH_COMMAND"},{"a":5079,"t":"code","b":[96],"m":"rts"},{"a":5080,"l":"RESOLVE_VN_SCAN_NOUN","s":"scan for the noun token","t":"code","b":[181,40],"m":"lda","oa":40,"o":"PARSED_TOKENS,x","x":[5074,5095]},{"a":5082,"t":"code","b":[240,7],"m":"beq","oa":5091,"o":"RESOLVE_VN_NEXT_NOUN_SLOT"},{"a":5084,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5086,"t":"code","b":[240,25],"m":"beq","oa":5113,"o":"RESOLVE_VN_MULTI_COMMAND"},{"a":5088,"t":"code","b":[76,237,19],"m":"jmp","oa":5101,"o":"RESOLVE_VN_ACCEPT_NOUN"},{"a":5091,"l":"RESOLVE_VN_NEXT_NOUN_SLOT","t":"code","b":[232],"m":"inx","x":[5082]},{"a":5092,"t":"code","b":[232],"m":"inx"},{"a":5093,"t":"code","b":[228,39],"m":"cpx","oa":39,"o":"WORD_COUNT"},{"a":5095,"t":"code","b":[144,239],"m":"bcc","oa":5080,"o":"RESOLVE_VN_SCAN_NOUN"},{"a":5097,"t":"code","b":[32,3,20],"m":"jsr","oa":5123,"o":"DISPATCH_COMMAND"},{"a":5100,"t":"code","b":[96],"m":"rts"},{"a":5101,"l":"RESOLVE_VN_ACCEPT_NOUN","s":"NOUN_ID = token","t":"code","b":[133,77],"m":"sta","oa":77,"o":"NOUN_ID","x":[5088]},{"a":5103,"t":"code","b":[232],"m":"inx"},{"a":5104,"t":"code","b":[232],"m":"inx"},{"a":5105,"t":"code","b":[228,39],"m":"cpx","oa":39,"o":"WORD_COUNT"},{"a":5107,"t":"code","b":[144,4],"m":"bcc","oa":5113,"o":"RESOLVE_VN_MULTI_COMMAND"},{"a":5109,"t":"code","b":[32,3,20],"m":"jsr","oa":5123,"o":"DISPATCH_COMMAND"},{"a":5112,"t":"code","b":[96],"m":"rts"},{"a":5113,"l":"RESOLVE_VN_MULTI_COMMAND","s":"$FF token: run command then continue scanning","t":"code","b":[134,106],"m":"stx","oa":106,"o":"SAVED_PARSE_INDEX","x":[5086,5107]},{"a":5115,"t":"code","b":[32,3,20],"m":"jsr","oa":5123,"o":"DISPATCH_COMMAND"},{"a":5118,"t":"code","b":[166,106],"m":"ldx","oa":106,"o":"SAVED_PARSE_INDEX"},{"a":5120,"t":"code","b":[76,162,19],"m":"jmp","oa":5026,"o":"RESOLVE_VN_RESTART_SCAN"},{"a":5123,"l":"DISPATCH_COMMAND","c":"DISPATCH_COMMAND ($1403)\nPurpose: Find the rule matching the current verb and noun and run its action script. Scans the two-byte verb-rule table for the verb, then requires the following byte to be the any-noun wildcard $FB or to equal the parsed noun; on a match it loads the script and runs the interpreter.\nInputs: VERB_ID ($4C), NOUN_ID ($4D); the verb-rule table base is the word at $199E; ACTION_SCRIPT_COUNT ($2A12) bounds the rule index.\nOutputs: On a match, RUN_ACTION_SCRIPT sets SCRIPT_PC and RUN_SCRIPT executes the bytecode. On no match, sentence $03 is printed and the caller's return address is discarded so control unwinds directly to the outer parse loop. A rule index at or above the count returns silently.\nAssumptions: The rule index doubles as the action-script index, so the table order and the script table order must agree. The bit-7 test on the index rejects indices above 127 before the count comparison.\nClobbers: A, X, Y, flags, MEMCPY_SOURCE ($0A/$0B), LOOP_COUNTER ($4B), the self-modified operand at $13B1, SCRIPT_PC ($4E/$4F), and everything the executed script touches.\nHardware changes: None directly; scripts may reach the display, disk and banking paths.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[5076,5097,5109,5115]},{"a":5125,"t":"code","b":[141,177,19],"m":"sta","oa":5041,"o":"COMMAND_UNHANDLED_FLAG"},{"a":5128,"s":"rule table ptr = $19A0","t":"code","b":[173,158,25],"m":"lda","oa":6558,"o":"VERB_RULE_TABLE_PTR"},{"a":5131,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"MEMCPY_SOURCE"},{"a":5133,"t":"code","b":[173,159,25],"m":"lda","oa":6559,"o":"a_199F"},{"a":5136,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":5138,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5140,"s":"rule index = 0","t":"code","b":[132,75],"m":"sty","oa":75,"o":"LOOP_COUNTER"},{"a":5142,"l":"DISPATCH_SCAN_RULES","s":"rule's verb byte","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y","x":[5156]},{"a":5144,"s":"== VERB_ID?","t":"code","b":[197,76],"m":"cmp","oa":76,"o":"VERB_ID"},{"a":5146,"t":"code","b":[240,11],"m":"beq","oa":5159,"o":"DISPATCH_CHECK_NOUN"},{"a":5148,"s":"$FF -> end of table (not found)","t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5150,"t":"code","b":[240,42],"m":"beq","oa":5194,"o":"VERB_NOT_FOUND"},{"a":5152,"s":"next 2-byte rule","t":"code","b":[200],"m":"iny"},{"a":5153,"l":"DISPATCH_NEXT_RULE","t":"code","b":[200],"m":"iny","x":[5170]},{"a":5154,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"LOOP_COUNTER"},{"a":5156,"t":"code","b":[76,22,20],"m":"jmp","oa":5142,"o":"DISPATCH_SCAN_RULES"},{"a":5159,"l":"DISPATCH_CHECK_NOUN","t":"code","b":[200],"m":"iny","x":[5146]},{"a":5160,"s":"rule's noun byte","t":"code","b":[177,10],"m":"lda","oa":10,"o":"(MEMCPY_SOURCE),y"},{"a":5162,"s":"$FB = any-noun wildcard","t":"code","b":[201,251],"m":"cmp","o":"#$FB"},{"a":5164,"t":"code","b":[240,7],"m":"beq","oa":5173,"o":"DISPATCH_CHECK_INDEX"},{"a":5166,"s":"or == NOUN_ID","t":"code","b":[197,77],"m":"cmp","oa":77,"o":"NOUN_ID"},{"a":5168,"t":"code","b":[240,3],"m":"beq","oa":5173,"o":"DISPATCH_CHECK_INDEX"},{"a":5170,"t":"code","b":[76,33,20],"m":"jmp","oa":5153,"o":"DISPATCH_NEXT_RULE"},{"a":5173,"l":"DISPATCH_CHECK_INDEX","t":"code","b":[165,75],"m":"lda","oa":75,"o":"LOOP_COUNTER","x":[5164,5168]},{"a":5175,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":5177,"t":"code","b":[208,7],"m":"bne","oa":5186,"o":"DISPATCH_NO_MATCH"},{"a":5179,"t":"code","b":[165,75],"m":"lda","oa":75,"o":"LOOP_COUNTER"},{"a":5181,"s":"rule index within VERB_RULE_COUNT?","t":"code","b":[205,18,42],"m":"cmp","oa":10770,"o":"ACTION_SCRIPT_COUNT"},{"a":5184,"t":"code","b":[144,1],"m":"bcc","oa":5187,"o":"DISPATCH_RUN_RULE"},{"a":5186,"l":"DISPATCH_NO_MATCH","t":"code","b":[96],"m":"rts","x":[5177]},{"a":5187,"l":"DISPATCH_RUN_RULE","s":"run the action script","t":"code","b":[32,82,20],"m":"jsr","oa":5202,"o":"RUN_ACTION_SCRIPT","x":[5184]},{"a":5190,"s":"post-action processing","t":"code","b":[32,5,22],"m":"jsr","oa":5637,"o":"RUN_SCRIPT"},{"a":5193,"t":"code","b":[96],"m":"rts"},{"a":5194,"l":"VERB_NOT_FOUND","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[5150]},{"a":5196,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":5199,"t":"code","b":[104],"m":"pla"},{"a":5200,"t":"code","b":[104],"m":"pla"},{"a":5201,"t":"code","b":[96],"m":"rts"},{"a":5202,"l":"RUN_ACTION_SCRIPT","c":"RUN_ACTION_SCRIPT ($1452)\nPurpose: Point the bytecode program counter at action script number A, resolved through the action-script pointer table.\nInputs: A = zero-based action-script index; the pointer table base is the word at $2984.\nOutputs: SCRIPT_PC ($4E/$4F) loaded with the script's address. The interpreter is not started here.\nAssumptions: The index is doubled with a carry test so indices above 127 still address correctly, but no upper bound is applied here; the bound lives in DISPATCH_COMMAND.\nClobbers: A, Y, flags, WORK_PTR ($0C/$0D), SCRIPT_PC.\nHardware changes: None.","s":"index * 2","t":"code","b":[10],"m":"asl","o":"a","x":[3643,5187]},{"a":5203,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5205,"t":"code","b":[176,7],"m":"bcs","oa":5214,"o":"RUN_ACTION_INDEX_HIGH"},{"a":5207,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5209,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5211,"t":"code","b":[76,98,20],"m":"jmp","oa":5218,"o":"RUN_ACTION_ADD_TABLE_BASE"},{"a":5214,"l":"RUN_ACTION_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5205]},{"a":5216,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5218,"l":"RUN_ACTION_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[5211]},{"a":5220,"t":"code","b":[24],"m":"clc"},{"a":5221,"s":"+ ACTION_SCRIPT_TABLE_PTR ($2984)","t":"code","b":[109,132,41],"m":"adc","oa":10628,"o":"ACTION_SCRIPT_TABLE_PTR"},{"a":5224,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5226,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":5228,"t":"code","b":[109,133,41],"m":"adc","oa":10629,"o":"a_2985"},{"a":5231,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5233,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5235,"s":"load SCRIPT_PC from table entry","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5237,"t":"code","b":[133,78],"m":"sta","oa":78,"o":"SCRIPT_PC"},{"a":5239,"t":"code","b":[200],"m":"iny"},{"a":5240,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5242,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"zpa_4F"},{"a":5244,"t":"code","b":[96],"m":"rts"},{"a":5245,"l":"PRINT_ROOM_DESCRIPTION","c":"PRINT_ROOM_DESCRIPTION ($147D)\nPurpose: The per-turn narrative pass. Sets the ordinary text colour, then runs three bytecode programs in order: the resident global turn script, the fixed overlay script at $2F06, and the script belonging to the current room.\nInputs: CURRENT_PART_NO ($2940) and CURRENT_ROOM ($293F); the global turn script pointer is the word at $1C6D, and the room-script pointer table base is the word at $2F04.\nOutputs: All three scripts have run, so the room text, any daemon behaviour and any room-local events have been applied.\nAssumptions: The room index is made part-relative by subtracting PART_ROOM_BASE_IDS[CURRENT_PART_NO] ($0DCC), so the same global room number selects different scripts in different parts. Both the fixed $2F06 script and the room table live in the replaceable overlay.\nClobbers: A, X, Y, flags, CURRENT_CHAR_COLOR ($0286), SCRIPT_PC ($4E/$4F), WORK_PTR ($0C/$0D), SCRATCH_BYTE ($02), and all VM, parser and renderer scratch.\nHardware changes: Writes screen RAM, colour RAM and, when a script changes the picture, bitmap memory.","s":"char color = 6","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[1033]},{"a":5247,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":5250,"s":"SCRIPT_PC = header script ($1C6D)","t":"code","b":[173,109,28],"m":"lda","oa":7277,"o":"GLOBAL_TURN_SCRIPT_PTR"},{"a":5253,"t":"code","b":[133,78],"m":"sta","oa":78,"o":"SCRIPT_PC"},{"a":5255,"t":"code","b":[173,110,28],"m":"lda","oa":7278,"o":"a_1C6E"},{"a":5258,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"zpa_4F"},{"a":5260,"s":"run it","t":"code","b":[32,5,22],"m":"jsr","oa":5637,"o":"RUN_SCRIPT"},{"a":5263,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":5265,"t":"code","b":[133,78],"m":"sta","oa":78,"o":"SCRIPT_PC"},{"a":5267,"t":"code","b":[169,47],"m":"lda","o":"#$2F"},{"a":5269,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"zpa_4F"},{"a":5271,"s":"run script at $2F06","t":"code","b":[32,5,22],"m":"jsr","oa":5637,"o":"RUN_SCRIPT"},{"a":5274,"t":"code","b":[172,64,41],"m":"ldy","oa":10560,"o":"CURRENT_PART_NO"},{"a":5277,"s":"base = PART_STRING_BASE_TABLE[CURRENT_PART_NO]","t":"code","b":[185,204,13],"m":"lda","oa":3532,"o":"PART_ROOM_BASE_IDS,y"},{"a":5280,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":5282,"t":"code","b":[173,63,41],"m":"lda","oa":10559,"o":"CURRENT_ROOM"},{"a":5285,"t":"code","b":[56],"m":"sec"},{"a":5286,"t":"code","b":[229,2],"m":"sbc","oa":2,"o":"SCRATCH_BYTE"},{"a":5288,"t":"code","b":[10],"m":"asl","o":"a"},{"a":5289,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5291,"t":"code","b":[176,7],"m":"bcs","oa":5300,"o":"ROOM_DESC_INDEX_HIGH"},{"a":5293,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5295,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5297,"t":"code","b":[76,184,20],"m":"jmp","oa":5304,"o":"ROOM_DESC_ADD_TABLE_BASE"},{"a":5300,"l":"ROOM_DESC_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5291]},{"a":5302,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5304,"l":"ROOM_DESC_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[5297]},{"a":5306,"t":"code","b":[24],"m":"clc"},{"a":5307,"s":"+ ROOM_DESC_TABLE_PTR ($2F04)","t":"code","b":[109,4,47],"m":"adc","oa":12036,"o":"ROOM_SCRIPT_TABLE_PTR"},{"a":5310,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5312,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":5314,"t":"code","b":[109,5,47],"m":"adc","oa":12037,"o":"a_2F05"},{"a":5317,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5319,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5321,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5323,"t":"code","b":[133,78],"m":"sta","oa":78,"o":"SCRIPT_PC"},{"a":5325,"t":"code","b":[200],"m":"iny"},{"a":5326,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5328,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"zpa_4F"},{"a":5330,"s":"run the room's description script","t":"code","b":[32,5,22],"m":"jsr","oa":5637,"o":"RUN_SCRIPT"},{"a":5333,"t":"code","b":[96],"m":"rts"},{"a":5334,"l":"INIT_GAME","c":"INIT_GAME ($14D6)\nPurpose: Entry point for game initialisation. A bare jump to INIT_GAME_RUN, which keeps the initialisation entry address stable while the confirmation block that follows it is bypassed.\nInputs: None.\nOutputs: Control transferred to INIT_GAME_RUN; no ordinary return from this instruction.\nAssumptions: The three bytes exist so that callers can JSR $14D6 without entering the restart-confirmation block at $14D9.\nClobbers: Nothing of its own.\nHardware changes: None.","t":"code","b":[76,230,20],"m":"jmp","oa":5350,"o":"INIT_GAME_RUN","x":[1030,5370]},{"a":5337,"l":"CONFIRM_RESTART","c":"CONFIRM_RESTART ($14D9)\nPurpose: Retained restart-confirmation block: print the 'are you sure' sentence, read one key, and on 'Y' fall into the restart tail; otherwise fall through into ordinary initialisation.\nInputs: None in registers.\nOutputs: Sentence $2E printed, a key read, and either the DO_RESTART tail or plain INIT_GAME_RUN entered.\nAssumptions: No call, jump, pointer or decoded operand in the captured occupant reaches $14D9: it is retained unreferenced code, structurally coherent and left in place by the build. The QUIT verb reaches its own confirmation at ACTION_QUIT instead.\nClobbers: A, X, Y, flags, keyboard workspace, renderer scratch, and, through the fall-through, all game state.\nHardware changes: Reads the CIA 1 keyboard matrix through KERNAL SCNKEY and GETIN; writes screen and colour RAM.","s":"A=$2E 'are you sure?' sentence","t":"code","b":[169,46],"m":"lda","o":"#$2E"},{"a":5339,"t":"code","b":[32,155,9],"m":"jsr","oa":2459,"o":"PRINT_SENTENCE"},{"a":5342,"t":"code","b":[32,75,11],"m":"jsr","oa":2891,"o":"PRINT_EMPTY_LINE"},{"a":5345,"s":"read Y/N","t":"code","b":[32,101,5],"m":"jsr","oa":1381,"o":"CHECK_YES_KEY"},{"a":5348,"s":"yes -> restart","t":"code","b":[176,13],"m":"bcs","oa":5363,"o":"DO_RESTART"},{"a":5350,"l":"INIT_GAME_RUN","c":"INIT_GAME_RUN ($14E6)\nPurpose: The real initialisation body: reset the whole state block, pull in a story part if one was previously loaded, and then set up the starting room.\nInputs: LOADED_PART_NO ($5E) records whether a part other than the resident one is required.\nOutputs: State arrays reset by INIT_GAME_STATE; the required part loaded if LOADED_PART_NO is non-zero; control tail-jumps to SETUP_CURRENT_ROOM, which describes the room and returns to the caller of INIT_GAME.\nAssumptions: Entered by jump from INIT_GAME and by fall-through from the unreferenced confirmation block, so it is a genuine shared entry. The display, IRQ and banking are assumed already established.\nClobbers: A, X, Y, flags, the whole state block, SCRIPT_PC, and all renderer and blitter scratch.\nHardware changes: Indirect only: a part load drives the display, CIA, interrupt and banking registers through SHOW_PART_LOAD_SCREEN.","s":"reset game state","t":"code","b":[32,254,20],"m":"jsr","oa":5374,"o":"INIT_GAME_STATE","x":[5334]},{"a":5353,"s":"a part loaded? -> fetch it","t":"code","b":[165,94],"m":"lda","oa":94,"o":"LOADED_PART_NO"},{"a":5355,"t":"code","b":[240,3],"m":"beq","oa":5360,"o":"INIT_RUN_SETUP_ROOM"},{"a":5357,"t":"code","b":[32,57,4],"m":"jsr","oa":1081,"o":"SHOW_PART_LOAD_SCREEN"},{"a":5360,"l":"INIT_RUN_SETUP_ROOM","s":"set up current room","t":"code","b":[76,68,21],"m":"jmp","oa":5444,"o":"SETUP_CURRENT_ROOM","x":[5355]},{"a":5363,"l":"DO_RESTART","t":"code","b":[32,95,4],"m":"jsr","oa":1119,"o":"LOAD_DISABLED_RTS","x":[5348]},{"a":5366,"s":"restart flag $5F set?","t":"code","b":[165,95],"m":"lda","oa":95,"o":"DISK_ERROR_FLAG"},{"a":5368,"t":"code","b":[240,3],"m":"beq","oa":5373,"o":"DO_RESTART_DONE"},{"a":5370,"s":"-> INIT_GAME","t":"code","b":[76,214,20],"m":"jmp","oa":5334,"o":"INIT_GAME"},{"a":5373,"l":"DO_RESTART_DONE","t":"code","b":[96],"m":"rts","x":[5368]},{"a":5374,"l":"INIT_GAME_STATE","c":"INIT_GAME_STATE ($14FE)\nPurpose: Reset the serialized adventure state to its initial values: clear the runtime illustration records, select part 0 and room 1, copy the initial object-location template over the live array, clear all flags and counters, and light the starting room.\nInputs: INITIAL_OBJECT_LOCATIONS ($226C) and OBJECT_COUNT ($22A3).\nOutputs: $2941 and CURRENT_ROOM_GRAPHIC_ID ($2942) cleared; the six visible-record source-pointer high bytes at $2946, $294C, $2952, $2958, $295E and $2964 cleared, which deactivates all six records without touching their other fields; CURRENT_PART_NO ($2940) = 0; CURRENT_ROOM ($293F) = 1; OBJECT_COUNT location bytes copied; the 48 bytes of OBJ_FLAGS ($290F-$293E) cleared; OBJ_FLAGS[7] set to 1 so the first room is lit.\nAssumptions: Only the high byte of each visible record's source pointer is cleared, because that byte is the record's enable flag; the row, column, height and width fields keep whatever they held. The flag clear loop covers $30 bytes, which spans both the flag and counter regions.\nClobbers: A, X, Y, flags, and the whole state block.\nHardware changes: None; ordinary RAM only.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[5350]},{"a":5376,"s":"clear $29xx state bytes","t":"code","b":[141,65,41],"m":"sta","oa":10561,"o":"UNUSED_SAVE_STATE_2941"},{"a":5379,"t":"code","b":[141,66,41],"m":"sta","oa":10562,"o":"CURRENT_ROOM_GRAPHIC_ID"},{"a":5382,"t":"code","b":[141,70,41],"m":"sta","oa":10566,"o":"a_2946"},{"a":5385,"t":"code","b":[141,76,41],"m":"sta","oa":10572,"o":"a_294C"},{"a":5388,"t":"code","b":[141,82,41],"m":"sta","oa":10578,"o":"VISIBLE_OBJECT_RECORD_2_COLUMN"},{"a":5391,"t":"code","b":[141,88,41],"m":"sta","oa":10584,"o":"a_2958"},{"a":5394,"t":"code","b":[141,94,41],"m":"sta","oa":10590,"o":"a_295E"},{"a":5397,"t":"code","b":[141,100,41],"m":"sta","oa":10596,"o":"a_2964"},{"a":5400,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5402,"s":"CURRENT_PART_NO = 0","t":"code","b":[141,64,41],"m":"sta","oa":10560,"o":"CURRENT_PART_NO"},{"a":5405,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5407,"s":"CURRENT_ROOM = 1, the initial starting room.","t":"code","b":[141,63,41],"m":"sta","oa":10559,"o":"CURRENT_ROOM"},{"a":5410,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5412,"l":"INIT_STATE_COPY_LOCATIONS","s":"Copy INITIAL_OBJECT_LOCATIONS to OBJECT_LOCATIONS.","t":"code","b":[185,108,34],"m":"lda","oa":8812,"o":"INITIAL_OBJECT_LOCATIONS,y","x":[5422]},{"a":5415,"s":"Initialize this object's location/state.","t":"code","b":[153,191,40],"m":"sta","oa":10431,"o":"OBJECT_LOCATIONS,y"},{"a":5418,"t":"code","b":[200],"m":"iny"},{"a":5419,"s":"Copy OBJECT_COUNT entries.","t":"code","b":[204,163,34],"m":"cpy","oa":8867,"o":"OBJECT_COUNT"},{"a":5422,"t":"code","b":[208,244],"m":"bne","oa":5412,"o":"INIT_STATE_COPY_LOCATIONS"},{"a":5424,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5426,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5428,"l":"INIT_STATE_CLEAR_FLAGS","s":"clear OBJ_FLAGS[0..$2F]","t":"code","b":[153,15,41],"m":"sta","oa":10511,"o":"OBJ_FLAGS,y","x":[5434]},{"a":5431,"t":"code","b":[200],"m":"iny"},{"a":5432,"t":"code","b":[192,48],"m":"cpy","o":"#$30"},{"a":5434,"t":"code","b":[208,248],"m":"bne","oa":5428,"o":"INIT_STATE_CLEAR_FLAGS"},{"a":5436,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":5438,"s":"OBJ_FLAGS[7] = 1","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5440,"t":"code","b":[157,15,41],"m":"sta","oa":10511,"o":"OBJ_FLAGS,x"},{"a":5443,"t":"code","b":[96],"m":"rts"},{"a":5444,"l":"SETUP_CURRENT_ROOM","c":"SETUP_CURRENT_ROOM ($1544)\nPurpose: Prepare a freshly started or freshly loaded part for play: run that part's initialisation bytecode, describe the current room, and switch confirmation messages back on.\nInputs: CURRENT_PART_NO ($2940); the per-part initialisation pointer table base is the word at $0437, pointing at $0DCF.\nOutputs: The part's initialisation script has run, the room has been described and painted, and VERBOSE_FLAG ($63) is 1.\nAssumptions: The initialisation script pointer is overlay data. In the captured part it addresses $2968, whose neighbours at $296E and $297E are structurally bytecode-shaped but belong to occupants a part change would replace.\nClobbers: A, X, Y, flags, CURRENT_CHAR_COLOR ($0286), WORK_PTR ($0C/$0D), SCRIPT_PC ($4E/$4F), VERBOSE_FLAG, and all VM, renderer and blitter scratch.\nHardware changes: Writes screen RAM, colour RAM and bitmap memory through the description and repaint.","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[1071,5360]},{"a":5446,"t":"code","b":[141,134,2],"m":"sta","oa":646,"o":"C64_WORKSPACE_TEXT_COLOR"},{"a":5449,"t":"code","b":[173,64,41],"m":"lda","oa":10560,"o":"CURRENT_PART_NO"},{"a":5452,"s":"CURRENT_PART_NO * 2","t":"code","b":[10],"m":"asl","o":"a"},{"a":5453,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5455,"t":"code","b":[176,7],"m":"bcs","oa":5464,"o":"SETUP_ROOM_INDEX_HIGH"},{"a":5457,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5459,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5461,"t":"code","b":[76,92,21],"m":"jmp","oa":5468,"o":"SETUP_ROOM_ADD_TABLE_BASE"},{"a":5464,"l":"SETUP_ROOM_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5455]},{"a":5466,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5468,"l":"SETUP_ROOM_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[5461]},{"a":5470,"t":"code","b":[24],"m":"clc"},{"a":5471,"s":"+ PART_INIT_SCRIPT_TABLE_PTR ($0437)","t":"code","b":[109,55,4],"m":"adc","oa":1079,"o":"PART_INIT_SCRIPT_TABLE_PTR"},{"a":5474,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5476,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":5478,"t":"code","b":[109,56,4],"m":"adc","oa":1080,"o":"a_0438"},{"a":5481,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5483,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5485,"s":"SCRIPT_PC = part init script","t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5487,"t":"code","b":[133,78],"m":"sta","oa":78,"o":"SCRIPT_PC"},{"a":5489,"t":"code","b":[200],"m":"iny"},{"a":5490,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5492,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"zpa_4F"},{"a":5494,"l":"SETUP_ROOM_RUN_INIT_SCRIPT","s":"run it","t":"code","b":[32,5,22],"m":"jsr","oa":5637,"o":"RUN_SCRIPT"},{"a":5497,"t":"code","b":[32,126,16],"m":"jsr","oa":4222,"o":"DESCRIBE_CURRENT_ROOM"},{"a":5500,"t":"code","b":[32,171,14],"m":"jsr","oa":3755,"o":"SET_VERBOSE_ON"},{"a":5503,"t":"code","b":[96],"m":"rts"},{"a":5504,"l":"SHOW_OPENING_NARRATIVE_AND_ENTER_PLAY","c":"Show the two opening narrative strings, wait for a key, and enter the gameplay display. Set background $0C and border $0B; use pointers at $B780/$B782 with lengths at $B784/$B785 for two PRINT_WORD calls ($0ADB). Put screen codes $5E/$5F at $CFC0/$CFE7 with colour $0B at $DBC0/$DBE7. WAIT_FOR_KEY ($0552) gates the transition. Mask IRQs, switch to $01=$35 for a call to $96A1, restore $36 and enable IRQs, then call ENTER_GAMEPLAY_DISPLAY ($070F), which installs the gameplay IRQ $A7E0. reference/review-checks.js checks the direct writes, two print-call arguments and transition-call order with callees hooked.","t":"code","b":[169,12],"m":"lda","o":"#$0C","x":[1027]},{"a":5506,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":5509,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":5511,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":5514,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5516,"t":"code","b":[133,36],"m":"sta","oa":36,"o":"CURRENT_COLUMN"},{"a":5518,"t":"code","b":[173,132,183],"m":"lda","oa":46980,"o":"$B784"},{"a":5521,"t":"code","b":[133,37],"m":"sta","oa":37,"o":"WORD_REMAINING_LEN"},{"a":5523,"t":"code","b":[173,128,183],"m":"lda","oa":46976,"o":"EXCLUDED_INTRO_DATA"},{"a":5526,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":5528,"t":"code","b":[173,129,183],"m":"lda","oa":46977,"o":"$B781"},{"a":5531,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":5533,"t":"code","b":[32,219,10],"m":"jsr","oa":2779,"o":"PRINT_WORD"},{"a":5536,"t":"code","b":[173,133,183],"m":"lda","oa":46981,"o":"$B785"},{"a":5539,"t":"code","b":[133,37],"m":"sta","oa":37,"o":"WORD_REMAINING_LEN"},{"a":5541,"t":"code","b":[173,130,183],"m":"lda","oa":46978,"o":"$B782"},{"a":5544,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"TERM_DATA_PTR"},{"a":5546,"t":"code","b":[173,131,183],"m":"lda","oa":46979,"o":"$B783"},{"a":5549,"t":"code","b":[133,35],"m":"sta","oa":35,"o":"zpa_23"},{"a":5551,"t":"code","b":[32,219,10],"m":"jsr","oa":2779,"o":"PRINT_WORD"},{"a":5554,"t":"code","b":[169,94],"m":"lda","o":"#$5E"},{"a":5556,"t":"code","b":[141,192,207],"m":"sta","oa":53184,"o":"$CFC0"},{"a":5559,"t":"code","b":[169,95],"m":"lda","o":"#$5F"},{"a":5561,"t":"code","b":[141,231,207],"m":"sta","oa":53223,"o":"$CFE7"},{"a":5564,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":5566,"t":"code","b":[141,192,219],"m":"sta","o":"$DBC0"},{"a":5569,"t":"code","b":[141,231,219],"m":"sta","o":"$DBE7"},{"a":5572,"t":"code","b":[32,82,5],"m":"jsr","oa":1362,"o":"WAIT_FOR_KEY"},{"a":5575,"t":"code","b":[120],"m":"sei"},{"a":5576,"t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":5578,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":5580,"t":"code","b":[32,161,150],"m":"jsr","oa":38561,"o":"$96A1"},{"a":5583,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":5585,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":5587,"t":"code","b":[88],"m":"cli"},{"a":5588,"t":"code","b":[32,15,7],"m":"jsr","oa":1807,"o":"ENTER_GAMEPLAY_DISPLAY"},{"a":5591,"t":"code","b":[96],"m":"rts"},{"a":5592,"l":"FETCH_SCRIPT_BYTE","c":"FETCH_SCRIPT_BYTE ($15D8)\nPurpose: Read the next bytecode operand and advance the sixteen-bit program counter. Every operand-taking opcode handler begins with a call to this routine.\nInputs: SCRIPT_PC ($4E/$4F) points at the byte to read.\nOutputs: A = the byte; SCRIPT_PC incremented across the page boundary; flags reflect the load.\nAssumptions: The fetch uses (SCRIPT_PC,X) with X held at zero, which is the cheapest way to dereference a zero-page pointer without disturbing Y. There is no end-of-stream check; termination is the interpreter's job.\nClobbers: A, X (set to 0), flags, SCRIPT_PC.\nHardware changes: None.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[3635,3725,3732,3736,3979,3984,3993,4008,4021,4031,4097,4397,4413,4449,4468,4519,4530,4546,4560,4572,4584,4596,4601,4614,4628,4642]},{"a":5594,"s":"A = *SCRIPT_PC","t":"code","b":[161,78],"m":"lda","oa":78,"o":"(SCRIPT_PC,x)"},{"a":5596,"s":"SCRIPT_PC++ (16-bit)","t":"code","b":[230,78],"m":"inc","oa":78,"o":"SCRIPT_PC"},{"a":5598,"t":"code","b":[208,2],"m":"bne","oa":5602,"o":"FETCH_SCRIPT_DONE"},{"a":5600,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"zpa_4F"},{"a":5602,"l":"FETCH_SCRIPT_DONE","t":"code","b":[96],"m":"rts","x":[5598]},{"a":5603,"l":"RESOLVE_NOUN","c":"RESOLVE_NOUN ($15E3)\nPurpose: Map a parsed noun token to the object it names. Subtracts the noun token base $32, scans the noun-to-object map for that value, and returns the object's current location together with its icon slot index.\nInputs: A = parsed noun token; NOUN_TO_OBJECT_INDEX ($22A4) is an $FF-terminated map from object slot to noun value.\nOutputs: On success carry is set, A holds OBJECT_LOCATIONS[slot], Y holds the object slot index and CURRENT_OBJECT_INDEX ($5C) holds the icon slot index. On failure carry is clear and A is meaningless.\nAssumptions: Carry is part of the API: callers must not treat A as a location when carry is clear. The map index and the location index are the same value, while the icon index is the map position, so the three id spaces are deliberately distinct.\nClobbers: A, Y, flags, SCRATCH_BYTE ($02), CURRENT_OBJECT_INDEX.\nHardware changes: None.","t":"code","b":[56],"m":"sec","x":[3769,3851]},{"a":5604,"s":"index = token - $32","t":"code","b":[233,50],"m":"sbc","o":"#$32"},{"a":5606,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5608,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"SCRATCH_BYTE"},{"a":5610,"l":"RESOLVE_NOUN_SCAN","s":"scan NOUN_TABLE for a match","t":"code","b":[185,164,34],"m":"lda","oa":8868,"o":"NOUN_TO_OBJECT_INDEX,y","x":[5622]},{"a":5613,"t":"code","b":[197,2],"m":"cmp","oa":2,"o":"SCRATCH_BYTE"},{"a":5615,"t":"code","b":[240,10],"m":"beq","oa":5627,"o":"RESOLVE_NOUN_FOUND"},{"a":5617,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5619,"t":"code","b":[240,4],"m":"beq","oa":5625,"o":"RESOLVE_NOUN_NOT_FOUND"},{"a":5621,"t":"code","b":[200],"m":"iny"},{"a":5622,"t":"code","b":[76,234,21],"m":"jmp","oa":5610,"o":"RESOLVE_NOUN_SCAN"},{"a":5625,"l":"RESOLVE_NOUN_NOT_FOUND","t":"code","b":[24],"m":"clc","x":[5619]},{"a":5626,"t":"code","b":[96],"m":"rts"},{"a":5627,"l":"RESOLVE_NOUN_FOUND","s":"Cache the noun-to-object lookup result as CURRENT_OBJECT_INDEX.","t":"code","b":[132,92],"m":"sty","oa":92,"o":"CURRENT_OBJECT_INDEX","x":[5615]},{"a":5629,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"SCRATCH_BYTE"},{"a":5631,"t":"code","b":[168],"m":"tay"},{"a":5632,"s":"Return this resolved object's current location/state.","t":"code","b":[185,191,40],"m":"lda","oa":10431,"o":"OBJECT_LOCATIONS,y"},{"a":5635,"t":"code","b":[56],"m":"sec"},{"a":5636,"t":"code","b":[96],"m":"rts"},{"a":5637,"l":"RUN_SCRIPT","c":"RUN_SCRIPT ($1605)\nPurpose: The bytecode interpreter. Reads opcodes at SCRIPT_PC: values $80 and above are conditions dispatched through the condition table, values below $80 are actions dispatched through the action table, $FE separates rules and $FF ends the script. A false condition skips forward to the next separator.\nInputs: SCRIPT_PC ($4E/$4F) points at a script; the condition table base is the word at $1191 and the action table base is the word at $0DE1.\nOutputs: The script has been executed to its terminator, or control has left through one of the non-local exits ($0FC9, $0FDD, $0FF1). Any game state, display state or disk state may have changed.\nAssumptions: Both dispatches work by writing the handler address into the operand bytes of a JSR instruction ($1642/$1643 for conditions, $169A/$169B for actions), so the interpreter is self-modifying and not reentrant. Interrupts do not enter it, and handlers that unwind must do so through the documented non-local exits. When an action opcode of $80 or above is encountered in the action position, the interpreter backs SCRIPT_PC up by one and re-reads it as a condition.\nClobbers: A, X, Y, flags, WORK_PTR ($0C/$0D), SCRIPT_PC, the four self-modified operand bytes, and everything the invoked handlers clobber.\nHardware changes: None directly; handlers reach the VIC-II, CIA, colour RAM, keyboard and disk.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[5190,5260,5271,5330,5494,5700,5738,5809]},{"a":5639,"s":"read opcode at SCRIPT_PC","t":"code","b":[161,78],"m":"lda","oa":78,"o":"(SCRIPT_PC,x)"},{"a":5641,"s":">= $80 -> condition opcode","t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":5643,"t":"code","b":[144,60],"m":"bcc","oa":5705,"o":"SCRIPT_READ_ACTION_OPCODE"},{"a":5645,"t":"code","b":[230,78],"m":"inc","oa":78,"o":"SCRIPT_PC"},{"a":5647,"t":"code","b":[208,2],"m":"bne","oa":5651,"o":"SCRIPT_CONDITION_INDEX"},{"a":5649,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"zpa_4F"},{"a":5651,"l":"SCRIPT_CONDITION_INDEX","s":"(op & $7F) * 2","t":"code","b":[41,127],"m":"and","o":"#$7F","x":[5647]},{"a":5653,"t":"code","b":[10],"m":"asl","o":"a"},{"a":5654,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5656,"t":"code","b":[176,7],"m":"bcs","oa":5665,"o":"SCRIPT_CONDITION_INDEX_HIGH"},{"a":5658,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5660,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5662,"t":"code","b":[76,37,22],"m":"jmp","oa":5669,"o":"SCRIPT_CONDITION_ADD_TABLE_BASE"},{"a":5665,"l":"SCRIPT_CONDITION_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5656]},{"a":5667,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5669,"l":"SCRIPT_CONDITION_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[5662]},{"a":5671,"t":"code","b":[24],"m":"clc"},{"a":5672,"s":"+ COND_TABLE_PTR -> handler addr","t":"code","b":[109,145,17],"m":"adc","oa":4497,"o":"COND_TABLE_PTR"},{"a":5675,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5677,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":5679,"t":"code","b":[109,146,17],"m":"adc","oa":4498,"o":"a_1192"},{"a":5682,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5684,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5686,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5688,"s":"patch JSR target (self-modify)","t":"code","b":[141,66,22],"m":"sta","oa":5698,"o":"CONDITION_HANDLER_TARGET_LO"},{"a":5691,"t":"code","b":[200],"m":"iny"},{"a":5692,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5694,"t":"code","b":[141,67,22],"m":"sta","oa":5699,"o":"CONDITION_HANDLER_TARGET_HI"},{"a":5697,"s":"call condition handler -> carry","t":"code","b":[32,178,17],"m":"jsr","oa":4530,"o":"COND_OBJECT_IN_ROOM"},{"a":5698,"t":"note","l":"CONDITION_HANDLER_TARGET_LO","c":"Low operand byte of the condition-handler JSR at $1641; $1638 writes it from CONDITION_DISPATCH_TABLE. $1643 is the high byte, written at $163E. Handler carry selects continuation or skip-actions. Following code reads action opcodes: $FF ends, $FE starts the next rule, and $80-$FE backs the script pointer up for condition processing.","note":"inside the item at $1641","x":[5688]},{"a":5699,"t":"note","l":"CONDITION_HANDLER_TARGET_HI","c":"High operand byte of the self-modifying condition-handler JSR at $1641, written by $163E after reading the dispatch table. The carry result branches at $1644: set continues RUN_SCRIPT; clear skips actions. See $1642 for the low byte and subsequent action-opcode interpreter.","note":"inside the item at $1641","x":[5694]},{"a":5700,"s":"TRUE -> keep running","t":"code","b":[176,191],"m":"bcs","oa":5637,"o":"RUN_SCRIPT"},{"a":5702,"s":"FALSE -> skip this rule's actions","t":"code","b":[76,159,22],"m":"jmp","oa":5791,"o":"SCRIPT_SKIP_ACTIONS"},{"a":5705,"l":"SCRIPT_READ_ACTION_OPCODE","s":"ACTION: read opcode","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[5643,5788]},{"a":5707,"t":"code","b":[161,78],"m":"lda","oa":78,"o":"(SCRIPT_PC,x)"},{"a":5709,"t":"code","b":[230,78],"m":"inc","oa":78,"o":"SCRIPT_PC"},{"a":5711,"t":"code","b":[208,2],"m":"bne","oa":5715,"o":"SCRIPT_TEST_END_MARKER"},{"a":5713,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"zpa_4F"},{"a":5715,"l":"SCRIPT_TEST_END_MARKER","s":"$FF -> end of script","t":"code","b":[201,255],"m":"cmp","o":"#$FF","x":[5711]},{"a":5717,"t":"code","b":[208,1],"m":"bne","oa":5720,"o":"SCRIPT_TEST_RULE_SEPARATOR"},{"a":5719,"l":"SCRIPT_END","t":"code","b":[96],"m":"rts","x":[5803]},{"a":5720,"l":"SCRIPT_TEST_RULE_SEPARATOR","s":"$FE -> rule separator (continue)","t":"code","b":[201,254],"m":"cmp","o":"#$FE","x":[5717]},{"a":5722,"t":"code","b":[240,14],"m":"beq","oa":5738,"o":"SCRIPT_NEXT_RULE"},{"a":5724,"s":"$80+ here = back up (condition follows)","t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":5726,"t":"code","b":[144,13],"m":"bcc","oa":5741,"o":"SCRIPT_ACTION_INDEX"},{"a":5728,"t":"code","b":[198,78],"m":"dec","oa":78,"o":"SCRIPT_PC"},{"a":5730,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":5732,"t":"code","b":[197,78],"m":"cmp","oa":78,"o":"SCRIPT_PC"},{"a":5734,"t":"code","b":[208,2],"m":"bne","oa":5738,"o":"SCRIPT_NEXT_RULE"},{"a":5736,"t":"code","b":[198,79],"m":"dec","oa":79,"o":"zpa_4F"},{"a":5738,"l":"SCRIPT_NEXT_RULE","t":"code","b":[76,5,22],"m":"jmp","oa":5637,"o":"RUN_SCRIPT","x":[5722,5734]},{"a":5741,"l":"SCRIPT_ACTION_INDEX","s":"op*2 + ACTION table -> handler","t":"code","b":[10],"m":"asl","o":"a","x":[5726]},{"a":5742,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5744,"t":"code","b":[176,7],"m":"bcs","oa":5753,"o":"SCRIPT_ACTION_INDEX_HIGH"},{"a":5746,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5748,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5750,"t":"code","b":[76,125,22],"m":"jmp","oa":5757,"o":"SCRIPT_ACTION_ADD_TABLE_BASE"},{"a":5753,"l":"SCRIPT_ACTION_INDEX_HIGH","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[5744]},{"a":5755,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5757,"l":"SCRIPT_ACTION_ADD_TABLE_BASE","t":"code","b":[165,12],"m":"lda","oa":12,"o":"WORK_PTR","x":[5750]},{"a":5759,"t":"code","b":[24],"m":"clc"},{"a":5760,"t":"code","b":[109,225,13],"m":"adc","oa":3553,"o":"ACTION_DISPATCH_TABLE_PTR"},{"a":5763,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"WORK_PTR"},{"a":5765,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":5767,"t":"code","b":[109,226,13],"m":"adc","oa":3554,"o":"ACTION_DISPATCH_TABLE_PTR_HI"},{"a":5770,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":5772,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5774,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5776,"t":"code","b":[141,154,22],"m":"sta","oa":5786,"o":"ACTION_HANDLER_TARGET_LO"},{"a":5779,"t":"code","b":[200],"m":"iny"},{"a":5780,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"(WORK_PTR),y"},{"a":5782,"t":"code","b":[141,155,22],"m":"sta","oa":5787,"o":"ACTION_HANDLER_TARGET_HI"},{"a":5785,"l":"SCRIPT_CALL_ACTION_HANDLER","s":"call action handler (self-modified JSR)","t":"code","b":[32,201,15],"m":"jsr","oa":4041,"o":"RETURN_SKIP_CALLER"},{"a":5786,"t":"note","l":"ACTION_HANDLER_TARGET_LO","c":"Low operand byte of the action-handler JSR at $1699, written by $1690 from the action dispatch table. $169B is the high byte, written at $1696. After the handler returns, execution resumes RUN_SCRIPT; unsuccessful-condition processing skips action bytes until a separator or condition opcode.","note":"inside the item at $1699","x":[5776]},{"a":5787,"t":"note","l":"ACTION_HANDLER_TARGET_HI","c":"High operand byte of the action-handler JSR at $1699, written at $1696; see $169A for dispatch. The subsequent interpreter branch resumes RUN_SCRIPT or scans past actions when a condition fails.","note":"inside the item at $1699","x":[5782]},{"a":5788,"t":"code","b":[76,73,22],"m":"jmp","oa":5705,"o":"SCRIPT_READ_ACTION_OPCODE"},{"a":5791,"l":"SCRIPT_SKIP_ACTIONS","s":"skip actions until next $FE/$FF (condition was false)","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[5702]},{"a":5793,"l":"SCRIPT_SKIP_LOOP","t":"code","b":[161,78],"m":"lda","oa":78,"o":"(SCRIPT_PC,x)","x":[5807]},{"a":5795,"t":"code","b":[230,78],"m":"inc","oa":78,"o":"SCRIPT_PC"},{"a":5797,"t":"code","b":[208,2],"m":"bne","oa":5801,"o":"SCRIPT_SKIP_TEST_MARKER"},{"a":5799,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"zpa_4F"},{"a":5801,"l":"SCRIPT_SKIP_TEST_MARKER","t":"code","b":[201,255],"m":"cmp","o":"#$FF","x":[5797]},{"a":5803,"t":"code","b":[240,170],"m":"beq","oa":5719,"o":"SCRIPT_END"},{"a":5805,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":5807,"t":"code","b":[208,240],"m":"bne","oa":5793,"o":"SCRIPT_SKIP_LOOP"},{"a":5809,"t":"code","b":[76,5,22],"m":"jmp","oa":5637,"o":"RUN_SCRIPT"},{"a":5812,"l":"DIRECTION_EXIT_TABLE_PTR","c":"Pointer to ten directional room-transition tables, indexed by movement verb id minus one.","t":"word","b":[182,22],"d":[5814],"x":[3672]},{"a":5813,"t":"note","l":"a_16B5","c":"High byte $16 of DIRECTION_EXIT_TABLE_PTR, the little-endian pointer at $16B4 whose captured value is $16B6. Low byte and pointer purpose are described at $16B4.","note":"inside the item at $16B4","x":[3679]},{"a":5814,"l":"DIRECTION_EXIT_POINTERS","c":"Pointers for NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST, UP, and DOWN transition tables.","t":"byte","b":[202,22,21,23,72,23,217,23]},{"a":5822,"t":"byte","b":[14,24,91,24,144,24,35,25]},{"a":5830,"t":"byte","b":[86,25,117,25]},{"a":5834,"l":"ROOM_EXITS_NORTH","c":"37 sorted room-transition pairs for NORTH; followed by a $FF terminator.","t":"byte","b":[3,12,6,10,7,9,12,14]},{"a":5842,"t":"byte","b":[14,17,15,16,16,22,21,23]},{"a":5850,"t":"byte","b":[23,8,26,3,28,6,29,7]},{"a":5858,"t":"byte","b":[30,24,31,25,36,35,38,37]},{"a":5866,"t":"byte","b":[39,38,40,39,42,46,46,47]},{"a":5874,"t":"byte","b":[47,41,49,48,50,42,53,50]},{"a":5882,"t":"byte","b":[61,56,62,57,65,60,76,74]},{"a":5890,"t":"byte","b":[78,81,79,82,80,84,82,85]},{"a":5898,"t":"byte","b":[89,94,99,104,104,108,110,117]},{"a":5906,"t":"byte","b":[116,120]},{"a":5908,"l":"ROOM_EXITS_NORTH_END","c":"$FF terminator for ROOM_EXITS_NORTH.","t":"byte","b":[255]},{"a":5909,"l":"ROOM_EXITS_NORTHEAST","c":"25 sorted room-transition pairs for NORTHEAST; followed by a $FF terminator.","t":"byte","b":[0,6,1,2,3,11,13,18]},{"a":5917,"t":"byte","b":[17,22,25,3,29,8,31,26]},{"a":5925,"t":"byte","b":[43,44,46,41,47,41,48,46]},{"a":5933,"t":"byte","b":[51,41,54,41,71,67,74,69]},{"a":5941,"t":"byte","b":[77,80,87,91,90,95,98,103]},{"a":5949,"t":"byte","b":[99,105,105,109,110,114,113,116]},{"a":5957,"t":"byte","b":[116,121]},{"a":5959,"l":"ROOM_EXITS_NORTHEAST_END","c":"$FF terminator for ROOM_EXITS_NORTHEAST.","t":"byte","b":[255]},{"a":5960,"l":"ROOM_EXITS_EAST","c":"72 sorted room-transition pairs for EAST; followed by a $FF terminator.","t":"byte","b":[2,3,3,4,4,5,5,6]},{"a":5968,"t":"byte","b":[6,7,7,8,10,9,11,10]},{"a":5976,"t":"byte","b":[17,16,18,17,19,20,26,27]},{"a":5984,"t":"byte","b":[28,29,30,31,34,35,36,37]},{"a":5992,"t":"byte","b":[42,43,44,45,46,44,47,41]},{"a":6000,"t":"byte","b":[48,42,49,50,50,51,51,41]},{"a":6008,"t":"byte","b":[52,53,53,54,54,41,59,60]},{"a":6016,"t":"byte","b":[60,61,61,62,63,64,64,65]},{"a":6024,"t":"byte","b":[65,66,67,68,69,70,72,73]},{"a":6032,"t":"byte","b":[73,74,74,75,77,78,80,81]},{"a":6040,"t":"byte","b":[81,82,82,83,86,87,88,86]},{"a":6048,"t":"byte","b":[89,90,90,91,91,92,92,93]},{"a":6056,"t":"byte","b":[93,89,95,96,96,97,97,94]},{"a":6064,"t":"byte","b":[100,101,101,102,102,98,103,104]},{"a":6072,"t":"byte","b":[104,105,106,107,107,108,108,109]},{"a":6080,"t":"byte","b":[109,106,110,111,111,112,112,113]},{"a":6088,"t":"byte","b":[113,110,114,115,117,118,118,119]},{"a":6096,"t":"byte","b":[120,121,121,117,122,123,123,124]},{"a":6104,"l":"ROOM_EXITS_EAST_END","c":"$FF terminator for ROOM_EXITS_EAST.","t":"byte","b":[255]},{"a":6105,"l":"ROOM_EXITS_SOUTHEAST","c":"26 sorted room-transition pairs for SOUTHEAST; followed by a $FF terminator.","t":"byte","b":[3,27,9,8,10,7,15,11]},{"a":6113,"t":"byte","b":[17,15,19,18,30,33,46,43]},{"a":6121,"t":"byte","b":[47,41,51,41,52,41,53,41]},{"a":6129,"t":"byte","b":[54,41,55,60,62,67,80,78]},{"a":6137,"t":"byte","b":[84,81,91,88,94,90,95,91]},{"a":6145,"t":"byte","b":[105,100,106,103,108,105,114,111]},{"a":6153,"t":"byte","b":[115,112,117,114]},{"a":6157,"l":"ROOM_EXITS_SOUTHEAST_END","c":"$FF terminator for ROOM_EXITS_SOUTHEAST.","t":"byte","b":[255]},{"a":6158,"l":"ROOM_EXITS_SOUTH","c":"38 sorted room-transition pairs for SOUTH; followed by a $FF terminator.","t":"byte","b":[3,26,6,28,7,29,9,7]},{"a":6166,"t":"byte","b":[10,6,12,3,14,12,16,15]},{"a":6174,"t":"byte","b":[17,14,22,16,23,21,24,30]},{"a":6182,"t":"byte","b":[25,31,35,36,37,38,38,39]},{"a":6190,"t":"byte","b":[39,40,42,50,46,42,47,46]},{"a":6198,"t":"byte","b":[48,49,50,53,52,41,53,41]},{"a":6206,"t":"byte","b":[54,41,56,61,57,62,60,65]},{"a":6214,"t":"byte","b":[74,76,81,78,82,79,84,80]},{"a":6222,"t":"byte","b":[85,82,94,89,104,99,108,104]},{"a":6230,"t":"byte","b":[117,110,120,116]},{"a":6234,"l":"ROOM_EXITS_SOUTH_END","c":"$FF terminator for ROOM_EXITS_SOUTH.","t":"byte","b":[255]},{"a":6235,"l":"ROOM_EXITS_SOUTHWEST","c":"26 sorted room-transition pairs for SOUTHWEST; followed by a $FF terminator.","t":"byte","b":[2,1,3,25,6,0,8,29]},{"a":6243,"t":"byte","b":[11,3,18,13,22,17,26,31]},{"a":6251,"t":"byte","b":[44,43,46,48,47,41,49,41]},{"a":6259,"t":"byte","b":[52,41,53,41,54,41,67,71]},{"a":6267,"t":"byte","b":[69,74,80,77,91,87,95,90]},{"a":6275,"t":"byte","b":[103,98,105,99,109,105,114,110]},{"a":6283,"t":"byte","b":[116,113,121,116]},{"a":6287,"l":"ROOM_EXITS_SOUTHWEST_END","c":"$FF terminator for ROOM_EXITS_SOUTHWEST.","t":"byte","b":[255]},{"a":6288,"l":"ROOM_EXITS_WEST","c":"73 sorted room-transition pairs for WEST; followed by a $FF terminator.","t":"byte","b":[3,2,4,3,5,4,6,5]},{"a":6296,"t":"byte","b":[7,6,8,7,9,10,10,11]},{"a":6304,"t":"byte","b":[16,17,17,18,20,19,27,26]},{"a":6312,"t":"byte","b":[29,28,31,30,35,34,37,36]},{"a":6320,"t":"byte","b":[42,48,43,42,44,46,45,44]},{"a":6328,"t":"byte","b":[46,41,47,41,49,41,50,49]},{"a":6336,"t":"byte","b":[51,50,52,41,53,52,54,53]},{"a":6344,"t":"byte","b":[60,59,61,60,62,61,64,63]},{"a":6352,"t":"byte","b":[65,64,66,65,68,67,70,69]},{"a":6360,"t":"byte","b":[73,72,74,73,75,74,78,77]},{"a":6368,"t":"byte","b":[81,80,82,81,83,82,86,88]},{"a":6376,"t":"byte","b":[87,86,89,93,90,89,91,90]},{"a":6384,"t":"byte","b":[92,91,93,92,94,97,96,95]},{"a":6392,"t":"byte","b":[97,96,98,102,101,100,102,101]},{"a":6400,"t":"byte","b":[104,103,105,104,106,109,107,106]},{"a":6408,"t":"byte","b":[108,107,109,108,110,113,111,110]},{"a":6416,"t":"byte","b":[112,111,113,112,115,114,117,121]},{"a":6424,"t":"byte","b":[118,117,119,118,121,120,123,122]},{"a":6432,"t":"byte","b":[124,123]},{"a":6434,"l":"ROOM_EXITS_WEST_END","c":"$FF terminator for ROOM_EXITS_WEST.","t":"byte","b":[255]},{"a":6435,"l":"ROOM_EXITS_NORTHWEST","c":"25 sorted room-transition pairs for NORTHWEST; followed by a $FF terminator.","t":"byte","b":[7,10,8,9,11,15,15,17]},{"a":6443,"t":"byte","b":[18,19,27,3,33,30,43,46]},{"a":6451,"t":"byte","b":[46,41,47,41,49,41,52,41]},{"a":6459,"t":"byte","b":[60,55,67,62,78,80,81,84]},{"a":6467,"t":"byte","b":[88,91,90,94,91,95,100,105]},{"a":6475,"t":"byte","b":[103,106,105,108,111,114,112,115]},{"a":6483,"t":"byte","b":[114,117]},{"a":6485,"l":"ROOM_EXITS_NORTHWEST_END","c":"$FF terminator for ROOM_EXITS_NORTHWEST.","t":"byte","b":[255]},{"a":6486,"l":"ROOM_EXITS_UP","c":"15 sorted room-transition pairs for UP; followed by a $FF terminator.","t":"byte","b":[23,8,35,32,55,46,58,59]},{"a":6494,"t":"byte","b":[70,71,83,88,90,98,91,109]},{"a":6502,"t":"byte","b":[94,100,103,121,105,113,115,91]},{"a":6510,"t":"byte","b":[117,98,118,90,119,122]},{"a":6516,"l":"ROOM_EXITS_UP_END","c":"$FF terminator for ROOM_EXITS_UP.","t":"byte","b":[255]},{"a":6517,"l":"ROOM_EXITS_DOWN","c":"19 sorted room-transition pairs for DOWN; followed by a $FF terminator.","t":"byte","b":[8,23,32,35,45,68,46,55]},{"a":6525,"t":"byte","b":[58,75,59,58,71,70,75,58]},{"a":6533,"t":"byte","b":[88,83,98,90,100,94,105,113]},{"a":6541,"t":"byte","b":[109,91,113,105,115,91,117,98]},{"a":6549,"t":"byte","b":[118,90,121,103,122,119]},{"a":6555,"l":"ROOM_EXITS_DOWN_END","c":"$FF terminator for ROOM_EXITS_DOWN.","t":"byte","b":[255]},{"a":6556,"l":"VOCAB_TABLE_PTR","c":"Pointer to the fixed-size vocabulary entries.","t":"word","b":[46,26],"d":[6702],"x":[4794]},{"a":6557,"t":"note","l":"a_199D","c":"High byte $1A of VOCAB_TABLE_PTR, the little-endian pointer at $199C whose captured value is $1A2E. Low byte and pointer purpose are described at $199C.","note":"inside the item at $199C","x":[4799]},{"a":6558,"l":"VERB_RULE_TABLE_PTR","c":"Pointer to the ordered verb/noun command-rule pairs.","t":"word","b":[160,25],"d":[6560],"x":[5128]},{"a":6559,"t":"note","l":"a_199F","c":"High byte $19 of VERB_RULE_TABLE_PTR, the little-endian pointer at $199E whose captured value is $19A0. Low byte and pointer purpose are described at $199E.","note":"inside the item at $199E","x":[5133]},{"a":6560,"l":"VERB_RULE_TABLE","c":"Seventy-one ordered verb/noun pairs. The pair index selects the corresponding ACTION_SCRIPT_POINTERS entry; $FB is the any-noun rule and $FF/$FF terminates the table.\n[offcut 19ba] Part-1 verb rule pair 13: verb id $15 (GET), noun id $57 (ARTAX). Selects ACTION_SCRIPT_GET_ARTAX_PTR at $29A0.\n[offcut 19bc] Part-1 verb rule pair 14: verb id $15 (GET), noun id $37 (FALKOR). The pair selects ACTION_SCRIPT_GET_FALKOR_PTR at $29A2. Confirmed dynamically by entering \"get falkor\".","t":"byte","b":[1,250,2,250,3,250,4,250]},{"a":6568,"t":"byte","b":[5,250,6,250,7,250,8,250]},{"a":6576,"t":"byte","b":[9,250,10,250,22,250,21,97]},{"a":6584,"t":"byte","b":[21,201]},{"a":6586,"l":"VERB_RULE_GET_ARTAX","c":"Verb/noun rule pair 13: GET ($15) and ARTAX ($57). Following two-byte pairs continue VERB_RULE_TABLE at $19A0; their pair positions select action pointers at $2986. $FF/$FF terminates the rule scan.","t":"byte","b":[21,87]},{"a":6588,"l":"VERB_RULE_GET_FALKOR","c":"Verb/noun rule pair 14: ids $15/$37. The matching pair position indexes ACTION_SCRIPT_POINTERS; following pairs continue through the $FF/$FF terminator at $1A2C.","t":"byte","b":[21,55,21,81,21,70,21,77]},{"a":6596,"t":"byte","b":[21,251,12,255,12,201,12,87]},{"a":6604,"t":"byte","b":[12,55,12,84,12,255,12,251]},{"a":6612,"t":"byte","b":[20,81,20,250,23,250,24,250]},{"a":6620,"t":"byte","b":[49,250]},{"a":6622,"l":"VERB_RULE_SAVE","c":"Verb/noun rule pair 31: ids $0E/$FA. The matching pair position indexes ACTION_SCRIPT_POINTERS; following pairs continue through the $FF/$FF terminator at $1A2C.","t":"byte","b":[14,250]},{"a":6624,"l":"VERB_RULE_LOAD","c":"Verb/noun rule pair 32: ids $0F/$FA. The matching pair position indexes ACTION_SCRIPT_POINTERS; following pairs continue through the $FF/$FF terminator at $1A2C.","t":"byte","b":[15,250,25,89,25,65,25,251]},{"a":6632,"t":"byte","b":[16,54,16,79,18,251,26,5]},{"a":6640,"t":"byte","b":[26,1,26,251,27,251,28,96]},{"a":6648,"t":"byte","b":[13,51,13,70,13,251,29,251]},{"a":6656,"t":"byte","b":[30,86,30,251,31,250,32,250]},{"a":6664,"t":"byte","b":[11,250,19,54,33,251,37,70]},{"a":6672,"t":"byte","b":[37,89,34,83,34,91,34,251]},{"a":6680,"t":"byte","b":[35,102,36,95,40,95,38,204]},{"a":6688,"t":"byte","b":[39,204,41,77,36,200,42,205]},{"a":6696,"t":"byte","b":[42,251,38,200,255,255]},{"a":6702,"l":"VOCAB_TABLE","c":"One hundred forty-two vocabulary entries: a three-character lowercase stem plus the parsed word id.\n[offcut 1c2a] Vocabulary entry \"art\", parsed noun id $57: ARTAX.\n[offcut 1c36] Vocabulary entry \"cru\", parsed noun id $5A: CRUCIFIX. Matching artwork survives in UNUSED_ICON_CRUCIFIX, but no resolver key or action script can select it.","t":"byte","b":[115,111,117,5,115,32,32,5]},{"a":6710,"t":"byte","b":[110,111,114,1,110,32,32,1]},{"a":6718,"t":"byte","b":[101,97,115,3,101,32,32,3]},{"a":6726,"t":"byte","b":[119,101,115,7,119,32,32,7]},{"a":6734,"t":"byte","b":[110,101,32,2,115,101,32,4]},{"a":6742,"t":"byte","b":[115,119,32,6,110,119,32,8]},{"a":6750,"t":"byte","b":[117,112,32,9,117,32,32,9]},{"a":6758,"t":"byte","b":[100,111,119,10,100,32,32,10]},{"a":6766,"t":"byte","b":[113,117,105,11,100,114,111,12]},{"a":6774,"t":"byte","b":[112,117,116,12,103,105,118,12]},{"a":6782,"t":"byte","b":[97,116,116,13,107,105,108,13]},{"a":6790,"t":"byte","b":[112,117,110,13,115,116,97,13]},{"a":6798,"l":"VOCAB_SAVE","c":"Vocabulary entry 24: lowercase stem sav followed by verb id $0E (SAVE). The following four-byte records continue VOCAB_TABLE at $1A2E: three stem bytes then parsed id, through $1C65; $1C66 contains the $40 terminator.","t":"byte","b":[115,97,118,14]},{"a":6802,"l":"VOCAB_LOAD","c":"Vocabulary entry 25: three-character stem 'loa' followed by parsed id $0F. Entries continue every four bytes through $1C65; the parser compares the stems and uses the id to resolve commands.","t":"byte","b":[108,111,97,15,108,105,103,16]},{"a":6810,"t":"byte","b":[46,46,46,17,101,110,116,18]},{"a":6818,"t":"byte","b":[105,110,32,18,112,117,108,19]},{"a":6826,"t":"byte","b":[108,111,111,20,108,32,32,20]},{"a":6834,"t":"byte","b":[103,101,116,21,116,97,107,21]},{"a":6842,"t":"byte","b":[105,110,118,22,105,32,32,22]},{"a":6850,"t":"byte","b":[109,117,115,23,110,111,109,24]},{"a":6858,"t":"byte","b":[101,97,116,25,102,108,121,26]},{"a":6866,"t":"byte","b":[99,108,105,27,98,108,111,28]},{"a":6874,"t":"byte","b":[114,105,100,29,115,109,97,30]},{"a":6882,"t":"byte","b":[104,105,116,30,107,105,99,30]},{"a":6890,"t":"byte","b":[119,97,105,31,112,97,117,32]},{"a":6898,"t":"byte","b":[111,117,116,33,114,101,97,34]},{"a":6906,"t":"byte","b":[114,101,109,35,111,112,101,36]},{"a":6914,"t":"byte","b":[99,117,116,37,117,110,108,38]},{"a":6922,"t":"byte","b":[108,111,99,39,99,108,111,40]},{"a":6930,"t":"byte","b":[116,105,101,41,102,97,115,41]},{"a":6938,"t":"byte","b":[115,97,121,42,115,104,111,42]},{"a":6946,"t":"byte","b":[116,32,32,49,116,101,115,49]},{"a":6954,"t":"byte","b":[116,104,101,0,103,111,32,0]},{"a":6962,"t":"byte","b":[97,116,32,0,116,104,114,0]},{"a":6970,"t":"byte","b":[115,101,116,0,111,110,32,0]},{"a":6978,"t":"byte","b":[111,102,102,0,103,108,97,0]},{"a":6986,"t":"byte","b":[103,114,97,0,104,117,116,0]},{"a":6994,"t":"byte","b":[114,117,110,0,112,105,101,0]},{"a":7002,"t":"byte","b":[111,102,32,0,115,105,108,0]},{"a":7010,"t":"byte","b":[114,117,115,0,104,111,111,0]},{"a":7018,"t":"byte","b":[116,111,32,0,103,105,97,0]},{"a":7026,"t":"byte","b":[97,110,100,255,100,111,111,200]},{"a":7034,"t":"byte","b":[107,101,121,201,116,117,110,202]},{"a":7042,"t":"byte","b":[116,114,101,203,99,101,108,204]},{"a":7050,"t":"byte","b":[112,108,101,205,97,117,114,50]},{"a":7058,"t":"byte","b":[103,109,111,51,116,114,101,52]},{"a":7066,"t":"byte","b":[105,118,111,53,116,111,119,53]},{"a":7074,"t":"byte","b":[116,104,111,54,98,117,115,54]},{"a":7082,"t":"byte","b":[102,97,108,55,108,117,99,55]},{"a":7090,"t":"byte","b":[100,114,97,55,101,110,103,56]},{"a":7098,"t":"byte","b":[117,114,103,57,116,101,108,58]},{"a":7106,"t":"byte","b":[99,114,121,59,110,105,103,60]},{"a":7114,"t":"byte","b":[114,111,99,61,116,101,101,62]},{"a":7122,"t":"byte","b":[102,111,114,63,115,119,97,64]},{"a":7130,"t":"byte","b":[102,111,111,65,103,111,108,67]},{"a":7138,"t":"byte","b":[107,110,105,68,103,108,111,69]},{"a":7146,"t":"byte","b":[119,101,98,70,115,112,105,70]},{"a":7154,"t":"byte","b":[105,114,111,71,115,97,112,73]},{"a":7162,"t":"byte","b":[100,105,97,74,114,117,98,75]},{"a":7170,"t":"byte","b":[99,97,112,76,114,111,112,77]},{"a":7178,"t":"byte","b":[102,105,114,78,98,114,97,79]},{"a":7186,"t":"byte","b":[98,117,114,80,102,114,97,81]},{"a":7194,"t":"byte","b":[111,114,110,82,112,97,112,83]},{"a":7202,"t":"byte","b":[108,101,97,84,98,111,120,86]},{"a":7210,"l":"VOCAB_ARTAX","c":"Vocabulary entry 127: three-character stem 'art' followed by parsed id $57. Entries continue every four bytes through $1C65; the parser compares the stems and uses the id to resolve commands.","t":"byte","b":[97,114,116,87,115,116,111,88]},{"a":7218,"t":"byte","b":[97,112,112,89]},{"a":7222,"l":"VOCAB_CRUCIFIX","c":"Vocabulary entry 130: three-character stem 'cru' followed by parsed id $5A. Entries continue every four bytes through $1C65; the parser compares the stems and uses the id to resolve commands.","t":"byte","b":[99,114,117,90,98,111,111,91]},{"a":7230,"t":"byte","b":[116,105,110,95,104,111,114,96]},{"a":7238,"t":"byte","b":[112,111,117,97,99,111,105,98]},{"a":7246,"t":"byte","b":[102,111,103,99,116,114,101,100]},{"a":7254,"t":"byte","b":[99,97,115,101,106,101,119,101]},{"a":7262,"t":"byte","b":[112,108,97,102,114,97,116,103]},{"a":7270,"l":"VOCAB_TABLE_END","c":"$40 sentinel terminating the vocabulary scan.","t":"byte","b":[64]},{"a":7271,"l":"TOKEN_POINTERS_BASE_ADDR","c":"Pointer to TOKEN_POINTERS_TABLE.","t":"word","b":[221,37],"d":[9693],"x":[2706]},{"a":7272,"t":"note","l":"a_1C68","c":"High byte $25 of TOKEN_POINTERS_BASE_ADDR, the little-endian pointer at $1C67 whose captured value is $25DD. Low byte and pointer purpose are described at $1C67.","note":"inside the item at $1C67","x":[2713]},{"a":7273,"l":"SENTENCE_POINTERS_BASE_ADDR","c":"Pointer to SENTENCE_POINTERS.","t":"word","b":[176,28],"d":[7344],"x":[2493]},{"a":7274,"t":"note","l":"a_1C6A","c":"High byte $1C of SENTENCE_POINTERS_BASE_ADDR, the little-endian pointer at $1C69 whose captured value is $1CB0. Low byte and pointer purpose are described at $1C69.","note":"inside the item at $1C69","x":[2500]},{"a":7275,"l":"OBJECT_DESCRIPTION_TABLE_PTR","c":"Pointer to OBJECT_DESCRIPTION_POINTERS.","t":"word","b":[201,34],"d":[8905],"x":[4177,4297]},{"a":7276,"t":"note","l":"a_1C6C","c":"High byte $22 of OBJECT_DESCRIPTION_TABLE_PTR, the little-endian pointer at $1C6B whose captured value is $22C9. Low byte and pointer purpose are described at $1C6B.","note":"inside the item at $1C6B","x":[4184,4304]},{"a":7277,"l":"GLOBAL_TURN_SCRIPT_PTR","c":"Pointer to the resident every-turn housekeeping bytecode at GLOBAL_TURN_SCRIPT.","t":"word","b":[111,28],"d":[7279],"x":[5250]},{"a":7278,"t":"note","l":"a_1C6E","c":"High byte $1C of GLOBAL_TURN_SCRIPT_PTR, the little-endian pointer at $1C6D whose captured value is $1C6F. Low byte and pointer purpose are described at $1C6D.","note":"inside the item at $1C6D","x":[5255]},{"a":7279,"l":"GLOBAL_TURN_SCRIPT","c":"GLOBAL_TURN_SCRIPT ($1C6F-$1CAF) - resident every-turn housekeeping bytecode, the first\nscript PRINT_ROOM_DESCRIPTION runs ($148C) on each pass of MAIN_LOOP ($0409).\nThis is interpreted data, not 6510 code. RUN_SCRIPT ($1605) walks it through SCRIPT_PC\n($4E/$4F). Opcodes $80-$89 are conditions, dispatched through CONDITION_DISPATCH_TABLE\n($1193); each returns carry, and a false condition jumps to the skip loop at $169F, so\nconsecutive conditions AND together. Opcodes $00-$7F are actions via ACTION_DISPATCH_TABLE\n($0DE3). $FE separates rules, $FF ends the script.\nWhat it does each turn:\n- once only (OBJ_FLAGS[6]), sets Atreyu's strength OBJ_COUNTERS[1] = 50 and lights flag 7\n- warns at strength 10 (sentence $1B) and kills at 0 (sentence $1C, pause, RESTART)\n- grants OBJ_FLAGS[$11] while the Black Velvet Cape (object $1A) is carried\n- keeps flag 7 set while the Glowglobe (object $13) is carried; flag 7 is the same \"room\nlit\" flag DESCRIBE_CURRENT_ROOM ($107E) tests before printing anything\n- counts turns in the dark in OBJ_COUNTERS[6] and kills at 4 (sentence $41)\n- drains strength each turn while poisoned (OBJ_FLAGS[8], sentence $40)\nIt ends with action $07 (RETURN_SKIP_CALLER), which pops the interpreter's self-modified JSR\nframe and returns straight to PRINT_ROOM_DESCRIPTION, so the trailing $FF is unreachable.\nBeing below $2F00, it survives every part load: the PART1/2/3 overlays cover $2F00-$96FF\nonly.","t":"byte","b":[131,6,5,6,5,7,4,1]},{"a":7287,"t":"byte","b":[50,254,133,1,10,14,1,17]},{"a":7295,"t":"byte","b":[27,254,132,1,17,28,26,20]},{"a":7303,"t":"byte","b":[254,129,26,131,17,5,17,254]},{"a":7311,"t":"byte","b":[129,19,5,7,254,130,7,4]},{"a":7319,"t":"byte","b":[6,0,254,131,7,13,6,254]},{"a":7327,"t":"byte","b":[133,6,4,17,65,26,20,254]},{"a":7335,"t":"byte","b":[130,8,14,1,17,64,254,7]},{"a":7343,"t":"byte","b":[255]},{"a":7344,"l":"SENTENCE_POINTERS","c":"Sixty-eight pointers to compressed, $40-terminated sentence data beginning at $1D38.","t":"byte","b":[56,29,78,29,98,29,119,29]},{"a":7352,"t":"byte","b":[130,29,133,29,136,29,151,29]},{"a":7360,"t":"byte","b":[157,29,172,29,196,29,216,29]},{"a":7368,"t":"byte","b":[243,29,250,29,3,30,25,30]},{"a":7376,"t":"byte","b":[29,30,33,30,56,30,63,30]},{"a":7384,"t":"byte","b":[70,30,81,30,92,30,102,30]},{"a":7392,"t":"byte","b":[116,30,145,30,165,30,186,30]},{"a":7400,"t":"byte","b":[198,30,234,30,4,31,17,31]},{"a":7408,"t":"byte","b":[21,31,26,31,44,31,54,31]},{"a":7416,"t":"byte","b":[64,31,82,31,101,31,117,31]},{"a":7424,"t":"byte","b":[141,31,165,31,206,31,11,32]},{"a":7432,"t":"byte","b":[25,32,53,32,68,32,87,32]},{"a":7440,"t":"byte","b":[101,32,110,32,119,32,130,32]},{"a":7448,"t":"byte","b":[139,32,149,32,159,32,182,32]},{"a":7456,"t":"byte","b":[188,32,200,32,224,32,44,33]},{"a":7464,"t":"byte","b":[168,33,185,33,204,33,230,33]},{"a":7472,"t":"byte","b":[255,33,21,34,66,34,87,34]},{"a":7480,"l":"SENTENCE_00","c":"Compressed sentence data for table index(es) $00; bounded by the next distinct pointer.","t":"byte","b":[73,68,111,110,39,116,85,110]},{"a":7488,"t":"byte","b":[100,101,114,115,116,97,110,100]},{"a":7496,"t":"byte","b":[128,87,111,114,100,64]},{"a":7502,"l":"SENTENCE_01","c":"Compressed sentence data for table index(es) $01; bounded by the next distinct pointer.","t":"byte","b":[131,132,78,111,86,101,114,98]},{"a":7510,"t":"byte","b":[134,133,83,101,110,116,101,110]},{"a":7518,"t":"byte","b":[99,101,46,64]},{"a":7522,"l":"SENTENCE_02","c":"Compressed sentence data for table index(es) $02; bounded by the next distinct pointer.","t":"byte","b":[139,67,97,110,39,116,71,111]},{"a":7530,"t":"byte","b":[134,133,68,105,114,101,99,116]},{"a":7538,"t":"byte","b":[105,111,110,46,64]},{"a":7543,"l":"SENTENCE_03","c":"Compressed sentence data for table index(es) $03; bounded by the next distinct pointer.","t":"byte","b":[139,67,97,110,39,116,68,111]},{"a":7551,"t":"byte","b":[133,46,64]},{"a":7554,"l":"SENTENCE_04","c":"Compressed sentence data for table index(es) $04; bounded by the next distinct pointer.","t":"byte","b":[131,132,64]},{"a":7557,"l":"SENTENCE_05","c":"Compressed sentence data for table index(es) $05; bounded by the next distinct pointer.","t":"byte","b":[131,140,64]},{"a":7560,"l":"SENTENCE_06","c":"Compressed sentence data for table index(es) $06; bounded by the next distinct pointer.","t":"byte","b":[76,121,105,110,103,157,128,71]},{"a":7568,"t":"byte","b":[114,111,117,110,100,132,64]},{"a":7575,"l":"SENTENCE_07","c":"Compressed sentence data for table index(es) $07; bounded by the next distinct pointer.","t":"byte","b":[104,101,114,101,46,64]},{"a":7581,"l":"SENTENCE_08","c":"Compressed sentence data for table index(es) $08; bounded by the next distinct pointer.","t":"byte","b":[73,68,111,110,39,116,152,73]},{"a":7589,"t":"byte","b":[116,72,101,114,101,33,64]},{"a":7596,"l":"SENTENCE_09","c":"Compressed sentence data for table index(es) $09; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,114,101,65,108]},{"a":7604,"t":"byte","b":[114,101,97,100,121,67,97,114]},{"a":7612,"t":"byte","b":[114,121,105,110,103,193,33,64]},{"a":7620,"l":"SENTENCE_0A","c":"Compressed sentence data for table index(es) $0A; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,114,101,78,111]},{"a":7628,"t":"byte","b":[116,67,97,114,114,121,105,110]},{"a":7636,"t":"byte","b":[103,193,33,64]},{"a":7640,"l":"SENTENCE_0B","c":"Compressed sentence data for table index(es) $0B; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,118,101,71,111]},{"a":7648,"t":"byte","b":[116,65,70,117,108,108,76,111]},{"a":7656,"t":"byte","b":[97,100,65,108,114,101,97,100]},{"a":7664,"t":"byte","b":[121,33,64]},{"a":7667,"l":"SENTENCE_0C","c":"Compressed sentence data for table index(es) $0C; bounded by the next distinct pointer.","t":"byte","b":[84,97,107,101,110,33,64]},{"a":7674,"l":"SENTENCE_0D","c":"Compressed sentence data for table index(es) $0D; bounded by the next distinct pointer.","t":"byte","b":[68,114,111,112,112,101,100,33]},{"a":7682,"t":"byte","b":[64]},{"a":7683,"l":"SENTENCE_0E","c":"Compressed sentence data for table index(es) $0E; bounded by the next distinct pointer.","t":"byte","b":[139,140,67,97,114,114,121,105]},{"a":7691,"t":"byte","b":[110,103,128,70,111,108,108,111]},{"a":7699,"t":"byte","b":[119,105,110,103,58,64]},{"a":7705,"l":"SENTENCE_0F","c":"Compressed sentence data for table index(es) $0F; bounded by the next distinct pointer.","t":"byte","b":[175,158,153,64]},{"a":7709,"l":"SENTENCE_10","c":"Compressed sentence data for table index(es) $10; bounded by the next distinct pointer.","t":"byte","b":[132,172,46,64]},{"a":7713,"l":"SENTENCE_11","c":"Compressed sentence data for table index(es) $11; bounded by the next distinct pointer.","t":"byte","b":[69,114,114,111,114,33,209,72]},{"a":7721,"t":"byte","b":[105,116,83,112,97,99,101,141]},{"a":7729,"t":"byte","b":[82,101,116,114,121,46,64]},{"a":7736,"l":"SENTENCE_12","c":"Compressed sentence data for table index(es) $12; bounded by the next distinct pointer.","t":"byte","b":[69,114,114,111,114,33,64]},{"a":7743,"l":"SENTENCE_13","c":"Compressed sentence data for table index(es) $13; bounded by the next distinct pointer.","t":"byte","b":[139,87,97,105,116,33,64]},{"a":7750,"l":"SENTENCE_14","c":"Compressed sentence data for table index(es) $14; bounded by the next distinct pointer.","t":"byte","b":[218,132,87,105,116,104,89,111]},{"a":7758,"t":"byte","b":[117,46,64]},{"a":7761,"l":"SENTENCE_15","c":"Compressed sentence data for table index(es) $15; bounded by the next distinct pointer.","t":"byte","b":[130,132,87,105,116,104,89,111]},{"a":7769,"t":"byte","b":[117,46,64]},{"a":7772,"l":"SENTENCE_16","c":"Compressed sentence data for table index(es) $16; bounded by the next distinct pointer.","t":"byte","b":[72,101,39,115,78,111,116,172]},{"a":7780,"t":"byte","b":[33,64]},{"a":7782,"l":"SENTENCE_17","c":"Compressed sentence data for table index(es) $17; bounded by the next distinct pointer.","t":"byte","b":[72,101,39,115,78,111,116,87]},{"a":7790,"t":"byte","b":[105,116,104,221,33,64]},{"a":7796,"l":"SENTENCE_18","c":"Compressed sentence data for table index(es) $18; bounded by the next distinct pointer.","t":"byte","b":[182,70,111,111,100,82,101,115]},{"a":7804,"t":"byte","b":[116,111,114,101,115,129,141,70]},{"a":7812,"t":"byte","b":[117,108,108,83,116,114,101,110]},{"a":7820,"t":"byte","b":[103,116,104,33,64]},{"a":7825,"l":"SENTENCE_19","c":"Compressed sentence data for table index(es) $19; bounded by the next distinct pointer.","t":"byte","b":[131,132,78,111,78,111,117,110]},{"a":7833,"t":"byte","b":[134,133,83,101,110,116,101,110]},{"a":7841,"t":"byte","b":[99,101,33,64]},{"a":7845,"l":"SENTENCE_1A","c":"Compressed sentence data for table index(es) $1A; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,108,108,72,97]},{"a":7853,"t":"byte","b":[118,101,84,111,71,111,65,108]},{"a":7861,"t":"byte","b":[111,110,101,33,64]},{"a":7866,"l":"SENTENCE_1B","c":"Compressed sentence data for table index(es) $1B; bounded by the next distinct pointer.","t":"byte","b":[129,132,86,101,114,121,87,101]},{"a":7874,"t":"byte","b":[97,107,33,64]},{"a":7878,"l":"SENTENCE_1C","c":"Compressed sentence data for table index(es) $1C; bounded by the next distinct pointer.","t":"byte","b":[129,132,212,84,111,111,87,101]},{"a":7886,"t":"byte","b":[97,107,141,71,111,157,46,78]},{"a":7894,"t":"byte","b":[111,119,202,132,83,117,114,101]},{"a":7902,"t":"byte","b":[141,156,67,111,110,115,117,109]},{"a":7910,"t":"byte","b":[101,100,33,64]},{"a":7914,"l":"SENTENCE_1D","c":"Compressed sentence data for table index(es) $1D; bounded by the next distinct pointer.","t":"byte","b":[80,97,117,115,101,100,209,72]},{"a":7922,"t":"byte","b":[105,116,83,112,97,99,101,141]},{"a":7930,"t":"byte","b":[67,111,110,116,105,110,117,101]},{"a":7938,"t":"byte","b":[33,64]},{"a":7940,"l":"SENTENCE_1E","c":"Compressed sentence data for table index(es) $1E; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,121,39,114,101,78]},{"a":7948,"t":"byte","b":[111,116,172,33,64]},{"a":7953,"l":"SENTENCE_1F","c":"Compressed sentence data for table index(es) $1F; bounded by the next distinct pointer.","t":"byte","b":[79,107,33,64]},{"a":7957,"l":"SENTENCE_20","c":"Compressed sentence data for table index(es) $20; bounded by the next distinct pointer.","t":"byte","b":[72,111,119,63,64]},{"a":7962,"l":"SENTENCE_21","c":"Compressed sentence data for table index(es) $21; bounded by the next distinct pointer.","t":"byte","b":[78,111,116,86,101,114,121,69]},{"a":7970,"t":"byte","b":[102,102,101,99,116,105,118,101]},{"a":7978,"t":"byte","b":[33,64]},{"a":7980,"l":"SENTENCE_22","c":"Compressed sentence data for table index(es) $22; bounded by the next distinct pointer.","t":"byte","b":[175,72,97,112,112,101,110,115]},{"a":7988,"t":"byte","b":[33,64]},{"a":7990,"l":"SENTENCE_23","c":"Compressed sentence data for table index(es) $23; bounded by the next distinct pointer.","t":"byte","b":[130,65,112,112,101,97,114,115]},{"a":7998,"t":"byte","b":[33,64]},{"a":8000,"l":"SENTENCE_24","c":"Compressed sentence data for table index(es) $24; bounded by the next distinct pointer.","t":"byte","b":[131,132,78,111,116,104,105,110]},{"a":8008,"t":"byte","b":[103,172,141,67,108,105,109,98]},{"a":8016,"t":"byte","b":[33,64]},{"a":8018,"l":"SENTENCE_25","c":"Compressed sentence data for table index(es) $25; bounded by the next distinct pointer.","t":"byte","b":[73,68,111,110,39,116,85,110]},{"a":8026,"t":"byte","b":[100,101,114,115,116,97,110,100]},{"a":8034,"t":"byte","b":[133,33,64]},{"a":8037,"l":"SENTENCE_26","c":"Compressed sentence data for table index(es) $26; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,67,97,110,39,116]},{"a":8045,"t":"byte","b":[70,108,121,79,110,218,33,64]},{"a":8053,"l":"SENTENCE_27","c":"Compressed sentence data for table index(es) $27; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,118,101,71,111]},{"a":8061,"t":"byte","b":[116,78,111,116,104,105,110,103]},{"a":8069,"t":"byte","b":[141,82,105,100,101,157,33,64]},{"a":8077,"l":"SENTENCE_28","c":"Compressed sentence data for table index(es) $28; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,108,108,72,97]},{"a":8085,"t":"byte","b":[118,101,141,83,109,97,115,104]},{"a":8093,"t":"byte","b":[193,70,105,114,115,116,33,64]},{"a":8101,"l":"SENTENCE_29","c":"Compressed sentence data for table index(es) $29; bounded by the next distinct pointer.","t":"byte","b":[182,70,114,97,103,109,101,110]},{"a":8109,"t":"byte","b":[116,132,86,101,114,121,83,104]},{"a":8117,"t":"byte","b":[97,114,112,186,193,83,108,105]},{"a":8125,"t":"byte","b":[112,115,79,117,116,136,89,111]},{"a":8133,"t":"byte","b":[117,114,72,97,110,100,115,33]},{"a":8141,"t":"byte","b":[64]},{"a":8142,"l":"SENTENCE_2A","c":"Compressed sentence data for table index(es) $2A; bounded by the next distinct pointer.","t":"byte","b":[182,66,111,120,83,104,97,116]},{"a":8150,"t":"byte","b":[116,101,114,115,204,80,111,119]},{"a":8158,"t":"byte","b":[100,101,114,101,100,71,108,97]},{"a":8166,"t":"byte","b":[115,115,65,112,97,114,116,194]},{"a":8174,"t":"byte","b":[79,110,101,166,70,114,97,103]},{"a":8182,"t":"byte","b":[109,101,110,116,186,128,67,114]},{"a":8190,"t":"byte","b":[121,115,116,97,108,73,116,115]},{"a":8198,"t":"byte","b":[101,108,102,33,64]},{"a":8203,"l":"SENTENCE_2B","c":"Compressed sentence data for table index(es) $2B; bounded by the next distinct pointer.","t":"byte","b":[73,116,39,115,84,111,111,84]},{"a":8211,"t":"byte","b":[111,117,103,104,33,64]},{"a":8217,"l":"SENTENCE_2C","c":"Compressed sentence data for table index(es) $2C; bounded by the next distinct pointer.","t":"byte","b":[130,70,108,105,101,115,221,83]},{"a":8225,"t":"byte","b":[97,102,101,108,121,65,99,114]},{"a":8233,"t":"byte","b":[111,115,115,128,68,101,115,101]},{"a":8241,"t":"byte","b":[114,116,33,64]},{"a":8245,"l":"SENTENCE_2D","c":"Compressed sentence data for table index(es) $2D; bounded by the next distinct pointer.","t":"byte","b":[139,212,67,117,116,89,111,117]},{"a":8253,"t":"byte","b":[114,115,101,108,102,33,64]},{"a":8260,"l":"SENTENCE_2E","c":"Compressed sentence data for table index(es) $2E; bounded by the next distinct pointer.","t":"byte","b":[82,101,115,116,111,114,101,65]},{"a":8268,"t":"byte","b":[83,97,118,101,100,71,97,109]},{"a":8276,"t":"byte","b":[101,63,64]},{"a":8279,"l":"SENTENCE_2F","c":"Compressed sentence data for table index(es) $2F; bounded by the next distinct pointer.","t":"byte","b":[72,105,116,83,112,97,99,101]},{"a":8287,"t":"byte","b":[141,76,111,97,100,64]},{"a":8293,"l":"SENTENCE_30","c":"Compressed sentence data for table index(es) $30; bounded by the next distinct pointer.","t":"byte","b":[80,97,114,116,79,110,101,33]},{"a":8301,"t":"byte","b":[64]},{"a":8302,"l":"SENTENCE_31","c":"Compressed sentence data for table index(es) $31; bounded by the next distinct pointer.","t":"byte","b":[80,97,114,116,84,119,111,33]},{"a":8310,"t":"byte","b":[64]},{"a":8311,"l":"SENTENCE_32","c":"Compressed sentence data for table index(es) $32; bounded by the next distinct pointer.","t":"byte","b":[80,97,114,116,84,104,114,101]},{"a":8319,"t":"byte","b":[101,33,64]},{"a":8322,"l":"SENTENCE_33","c":"Compressed sentence data for table index(es) $33; bounded by the next distinct pointer.","t":"byte","b":[79,108,100,71,97,109,101,33]},{"a":8330,"t":"byte","b":[64]},{"a":8331,"l":"SENTENCE_34","c":"Compressed sentence data for table index(es) $34; bounded by the next distinct pointer.","t":"byte","b":[65,114,101,221,83,117,114,101]},{"a":8339,"t":"byte","b":[63,64]},{"a":8341,"l":"SENTENCE_35","c":"Compressed sentence data for table index(es) $35; bounded by the next distinct pointer.","t":"byte","b":[71,97,109,101,79,118,101,114]},{"a":8349,"t":"byte","b":[33,64]},{"a":8351,"l":"SENTENCE_36","c":"Compressed sentence data for table index(es) $36; bounded by the next distinct pointer.","t":"byte","b":[182,65,112,112,108,101,68,101]},{"a":8359,"t":"byte","b":[115,116,114,111,121,115,128,80]},{"a":8367,"t":"byte","b":[111,105,115,111,110,33,64]},{"a":8374,"l":"SENTENCE_37","c":"Compressed sentence data for table index(es) $37; bounded by the next distinct pointer.","t":"byte","b":[72,117,104,33,33,64]},{"a":8380,"l":"SENTENCE_38","c":"Compressed sentence data for table index(es) $38; bounded by the next distinct pointer.","t":"byte","b":[78,111,116,65,67,104,97,110]},{"a":8388,"t":"byte","b":[99,101,33,64]},{"a":8392,"l":"SENTENCE_39","c":"Compressed sentence data for table index(es) $39; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,39,118,101,78,111]},{"a":8400,"t":"byte","b":[116,104,105,110,103,141,67,117]},{"a":8408,"t":"byte","b":[116,193,87,105,116,104,33,64]},{"a":8416,"l":"SENTENCE_3A","c":"Compressed sentence data for table index(es) $3A; bounded by the next distinct pointer.","t":"byte","b":[182,80,97,112,101,114,76,111]},{"a":8424,"t":"byte","b":[111,107,115,76,105,107,101,65]},{"a":8432,"t":"byte","b":[80,105,101,99,101,136,170,79]},{"a":8440,"t":"byte","b":[108,100,65,100,118,101,114,116]},{"a":8448,"t":"byte","b":[46,182,184,82,101,97,100,97]},{"a":8456,"t":"byte","b":[98,108,101,80,97,114,116,132]},{"a":8464,"t":"byte","b":[128,83,108,111,103,97,110,203]},{"a":8472,"t":"byte","b":[202,71,108,97,115,115,132,128]},{"a":8480,"t":"byte","b":[184,84,114,117,101,71,108,97]},{"a":8488,"t":"byte","b":[115,115,33,64]},{"a":8492,"l":"SENTENCE_3B","c":"Compressed sentence data for table index(es) $3B; bounded by the next distinct pointer.","t":"byte","b":[182,66,111,111,107,132,65,98]},{"a":8500,"t":"byte","b":[111,117,116,128,72,105,115,116]},{"a":8508,"t":"byte","b":[111,114,121,136,128,196,46,73]},{"a":8516,"t":"byte","b":[116,69,120,112,108,97,105,110]},{"a":8524,"t":"byte","b":[115,133,128,184,87,97,121,141]},{"a":8532,"t":"byte","b":[71,97,105,110,208,141,128,84]},{"a":8540,"t":"byte","b":[111,119,101,114,73,102,193,68]},{"a":8548,"t":"byte","b":[111,101,115,110,39,116,87,105]},{"a":8556,"t":"byte","b":[115,104,89,111,117,141,69,110]},{"a":8564,"t":"byte","b":[116,101,114,132,87,105,116,104]},{"a":8572,"t":"byte","b":[128,65,110,99,105,101,110,116]},{"a":8580,"t":"byte","b":[71,111,108,100,101,110,75,101]},{"a":8588,"t":"byte","b":[121,203,154,133,169,187,66,101]},{"a":8596,"t":"byte","b":[101,110,76,111,115,116,70,111]},{"a":8604,"t":"byte","b":[114,67,101,110,116,117,114,105]},{"a":8612,"t":"byte","b":[101,115,46,64]},{"a":8616,"l":"SENTENCE_3C","c":"Compressed sentence data for table index(es) $3C; bounded by the next distinct pointer.","t":"byte","b":[73,116,39,115,65,108,114,101]},{"a":8624,"t":"byte","b":[97,100,121,79,112,101,110,33]},{"a":8632,"t":"byte","b":[64]},{"a":8633,"l":"SENTENCE_3D","c":"Compressed sentence data for table index(es) $3D; bounded by the next distinct pointer.","t":"byte","b":[73,116,39,115,65,108,114,101]},{"a":8641,"t":"byte","b":[97,100,121,67,108,111,115,101]},{"a":8649,"t":"byte","b":[100,33,64]},{"a":8652,"l":"SENTENCE_3E","c":"Compressed sentence data for table index(es) $3E; bounded by the next distinct pointer.","t":"byte","b":[182,84,105,110,67,111,110,116]},{"a":8660,"t":"byte","b":[97,105,110,115,65,87,104,105]},{"a":8668,"t":"byte","b":[116,101,80,111,119,100,101,114]},{"a":8676,"t":"byte","b":[46,64]},{"a":8678,"l":"SENTENCE_3F","c":"Compressed sentence data for table index(es) $3F; bounded by the next distinct pointer.","t":"byte","b":[73,116,39,115,84,111,111,68]},{"a":8686,"t":"byte","b":[97,114,107,141,83,101,101,65]},{"a":8694,"t":"byte","b":[110,121,116,104,105,110,103,33]},{"a":8702,"t":"byte","b":[64]},{"a":8703,"l":"SENTENCE_40","c":"Compressed sentence data for table index(es) $40; bounded by the next distinct pointer.","t":"byte","b":[182,80,111,105,115,111,110,132]},{"a":8711,"t":"byte","b":[87,101,97,107,101,110,105,110]},{"a":8719,"t":"byte","b":[103,89,111,117,33,64]},{"a":8725,"l":"SENTENCE_41","c":"Compressed sentence data for table index(es) $41; bounded by the next distinct pointer.","t":"byte","b":[83,111,109,101,116,104,105,110]},{"a":8733,"t":"byte","b":[103,71,114,97,98,115,89,111]},{"a":8741,"t":"byte","b":[117,79,117,116,136,128,68,97]},{"a":8749,"t":"byte","b":[114,107,110,101,115,115,186,83]},{"a":8757,"t":"byte","b":[116,114,97,110,103,108,101,115]},{"a":8765,"t":"byte","b":[89,111,117,33,64]},{"a":8770,"l":"SENTENCE_42","c":"Compressed sentence data for table index(es) $42; bounded by the next distinct pointer.","t":"byte","b":[130,87,105,108,108,184,72,101]},{"a":8778,"t":"byte","b":[108,112,128,66,101,97,114,101]},{"a":8786,"t":"byte","b":[114,136,162,33,64]},{"a":8791,"l":"SENTENCE_43","c":"Compressed sentence data for table index(es) $43; bounded by the next distinct pointer.","t":"byte","b":[80,108,101,97,115,101,69,110]},{"a":8799,"t":"byte","b":[116,101,114,128,70,105,108,101]},{"a":8807,"t":"byte","b":[110,97,109,101,64]},{"a":8812,"l":"INITIAL_OBJECT_LOCATIONS","c":"Initial 54-byte per-object location/state image copied to OBJECT_LOCATIONS when starting a new game.","t":"byte","b":[253,253,17,3,8,251,36,36],"x":[5412]},{"a":8820,"t":"byte","b":[37,253,3,1,2,253,253,0]},{"a":8828,"t":"byte","b":[253,72,65,51,70,57,253,107]},{"a":8836,"t":"byte","b":[107,107,13,48,1,24,253,253]},{"a":8844,"t":"byte","b":[122,47,0,253,23,6,25,42]},{"a":8852,"t":"byte","b":[253,44,253,253,253,66,31,75]},{"a":8860,"t":"byte","b":[253,51,35,107,46,57]},{"a":8866,"l":"INITIAL_CARRIED_END","c":"$FF sentinel following the initial object-state image; the copy count is stored separately at $22A3.","t":"byte","b":[255]},{"a":8867,"l":"OBJECT_COUNT","c":"Number of valid per-object entries in INITIAL_OBJECT_LOCATIONS and OBJECT_LOCATIONS.","t":"byte","b":[54],"x":[4123,4252,5419]},{"a":8868,"l":"NOUN_TO_OBJECT_INDEX","c":"Maps parsed object noun ids ($32-based) to object-state indices; searched linearly by the noun resolver.","t":"byte","b":[0,8,9,15,0,0,17,18],"x":[5610]},{"a":8876,"t":"byte","b":[19,20,21,22,23,25,24,26]},{"a":8884,"t":"byte","b":[27,29,30,31,33,34,36,0]},{"a":8892,"t":"byte","b":[0,38,39,0,41,0,0,0]},{"a":8900,"t":"byte","b":[45,46,47,48]},{"a":8904,"l":"NOUN_TO_OBJECT_END","c":"$FF terminator for NOUN_TO_OBJECT_INDEX.","t":"byte","b":[255]},{"a":8905,"l":"OBJECT_DESCRIPTION_POINTERS","c":"One compressed object-description pointer for each of the 54 object-state slots.","t":"byte","b":[53,35,56,35,56,35,56,35]},{"a":8913,"t":"byte","b":[56,35,57,35,56,35,56,35]},{"a":8921,"t":"byte","b":[77,35,103,35,122,35,132,35]},{"a":8929,"t":"byte","b":[135,35,56,35,56,35,147,35]},{"a":8937,"t":"byte","b":[56,35,154,35,167,35,176,35]},{"a":8945,"t":"byte","b":[188,35,216,35,230,35,248,35]},{"a":8953,"t":"byte","b":[11,36,38,36,52,36,70,36]},{"a":8961,"t":"byte","b":[56,35,88,36,109,36,138,36]},{"a":8969,"t":"byte","b":[56,35,162,36,187,36,56,35]},{"a":8977,"t":"byte","b":[205,36,241,36,244,36,11,37]},{"a":8985,"t":"byte","b":[56,35,24,37,56,35,56,35]},{"a":8993,"t":"byte","b":[56,35,39,37,77,37,103,37]},{"a":9001,"t":"byte","b":[117,37,129,37,56,35,154,37]},{"a":9009,"t":"byte","b":[173,37,199,37]},{"a":9013,"l":"OBJECT_DESCRIPTION_00","c":"Compressed object description data for table index(es) $00; bounded by the next distinct pointer.","t":"byte","b":[6,162,46]},{"a":9016,"l":"OBJECT_DESCRIPTION_01","c":"Compressed object description data for table index(es) $01, $02, $03, $04, $06, $07, $0D, $0E, $10, $1C, $20, $23, $28, $2A, $2B, $2C, $32; bounded by the next distinct pointer.","t":"byte","b":[64]},{"a":9017,"l":"OBJECT_DESCRIPTION_05","c":"Compressed object description data for table index(es) $05; bounded by the next distinct pointer.","t":"byte","b":[0,130,128,76,117,99,107,100]},{"a":9025,"t":"byte","b":[114,97,103,111,110,64,0,216]},{"a":9033,"t":"byte","b":[64,0,217,64]},{"a":9037,"l":"OBJECT_DESCRIPTION_08","c":"Compressed object description data for table index(es) $08; bounded by the next distinct pointer.","t":"byte","b":[4,65,83,116,114,97,110,103]},{"a":9045,"t":"byte","b":[101,76,111,111,107,105,110,103]},{"a":9053,"t":"byte","b":[84,101,108,101,115,99,111,112]},{"a":9061,"t":"byte","b":[101,64]},{"a":9063,"l":"OBJECT_DESCRIPTION_09","c":"Compressed object description data for table index(es) $09; bounded by the next distinct pointer.","t":"byte","b":[4,65,83,112,97,114,107,108]},{"a":9071,"t":"byte","b":[105,110,103,67,114,121,115,116]},{"a":9079,"t":"byte","b":[97,108,64]},{"a":9082,"l":"OBJECT_DESCRIPTION_0A","c":"Compressed object description data for table index(es) $0A; bounded by the next distinct pointer.","t":"byte","b":[0,78,105,103,104,116,104,111]},{"a":9090,"t":"byte","b":[98,64]},{"a":9092,"l":"OBJECT_DESCRIPTION_0B","c":"Compressed object description data for table index(es) $0B; bounded by the next distinct pointer.","t":"byte","b":[0,215,64]},{"a":9095,"l":"OBJECT_DESCRIPTION_0C","c":"Compressed object description data for table index(es) $0C; bounded by the next distinct pointer.","t":"byte","b":[0,84,101,101,110,121,119,101]},{"a":9103,"t":"byte","b":[101,110,121,64]},{"a":9107,"l":"OBJECT_DESCRIPTION_0F","c":"Compressed object description data for table index(es) $0F; bounded by the next distinct pointer.","t":"byte","b":[4,161,70,111,111,100,64]},{"a":9114,"l":"OBJECT_DESCRIPTION_11","c":"Compressed object description data for table index(es) $11; bounded by the next distinct pointer.","t":"byte","b":[4,65,167,71,111,108,100,101]},{"a":9122,"t":"byte","b":[110,75,101,121,64]},{"a":9127,"l":"OBJECT_DESCRIPTION_12","c":"Compressed object description data for table index(es) $12; bounded by the next distinct pointer.","t":"byte","b":[4,65,166,75,110,105,102,101]},{"a":9135,"t":"byte","b":[64]},{"a":9136,"l":"OBJECT_DESCRIPTION_13","c":"Compressed object description data for table index(es) $13; bounded by the next distinct pointer.","t":"byte","b":[4,65,71,108,111,119,103,108]},{"a":9144,"t":"byte","b":[111,98,101,64]},{"a":9148,"l":"OBJECT_DESCRIPTION_14","c":"Compressed object description data for table index(es) $14; bounded by the next distinct pointer.","t":"byte","b":[4,65,110,69,110,111,114,109]},{"a":9156,"t":"byte","b":[111,117,115,83,116,105,99,107]},{"a":9164,"t":"byte","b":[121,83,112,105,100,101,114,115]},{"a":9172,"t":"byte","b":[87,101,98,64]},{"a":9176,"l":"OBJECT_DESCRIPTION_15","c":"Compressed object description data for table index(es) $15; bounded by the next distinct pointer.","t":"byte","b":[4,65,110,79,108,100,73,114]},{"a":9184,"t":"byte","b":[111,110,75,101,121,64]},{"a":9190,"l":"OBJECT_DESCRIPTION_16","c":"Compressed object description data for table index(es) $16; bounded by the next distinct pointer.","t":"byte","b":[4,65,110,65,110,99,105,101]},{"a":9198,"t":"byte","b":[110,116,80,97,100,108,111,99]},{"a":9206,"t":"byte","b":[107,64]},{"a":9208,"l":"OBJECT_DESCRIPTION_17","c":"Compressed object description data for table index(es) $17; bounded by the next distinct pointer.","t":"byte","b":[4,65,68,97,114,107,66,108]},{"a":9216,"t":"byte","b":[117,101,83,97,112,112,104,105]},{"a":9224,"t":"byte","b":[114,101,64]},{"a":9227,"l":"OBJECT_DESCRIPTION_18","c":"Compressed object description data for table index(es) $18; bounded by the next distinct pointer.","t":"byte","b":[4,65,66,114,105,108,108,105]},{"a":9235,"t":"byte","b":[97,110,116,69,103,103,83,105]},{"a":9243,"t":"byte","b":[122,101,100,68,105,97,109,111]},{"a":9251,"t":"byte","b":[110,100,64]},{"a":9254,"l":"OBJECT_DESCRIPTION_19","c":"Compressed object description data for table index(es) $19; bounded by the next distinct pointer.","t":"byte","b":[4,65,87,105,110,101,82,101]},{"a":9262,"t":"byte","b":[100,82,117,98,121,64]},{"a":9268,"l":"OBJECT_DESCRIPTION_1A","c":"Compressed object description data for table index(es) $1A; bounded by the next distinct pointer.","t":"byte","b":[4,65,66,108,97,99,107,86]},{"a":9276,"t":"byte","b":[101,108,118,101,116,67,97,112]},{"a":9284,"t":"byte","b":[101,64]},{"a":9286,"l":"OBJECT_DESCRIPTION_1B","c":"Compressed object description data for table index(es) $1B; bounded by the next distinct pointer.","t":"byte","b":[4,65,67,111,105,108,136,83]},{"a":9294,"t":"byte","b":[116,114,111,110,103,82,111,112]},{"a":9302,"t":"byte","b":[101,64]},{"a":9304,"l":"OBJECT_DESCRIPTION_1D","c":"Compressed object description data for table index(es) $1D; bounded by the next distinct pointer.","t":"byte","b":[4,65,84,104,105,99,107,75]},{"a":9312,"t":"byte","b":[110,111,98,98,108,121,66,114]},{"a":9320,"t":"byte","b":[97,110,99,104,64]},{"a":9325,"l":"OBJECT_DESCRIPTION_1E","c":"Compressed object description data for table index(es) $1E; bounded by the next distinct pointer.","t":"byte","b":[4,65,84,104,105,99,107,203]},{"a":9333,"t":"byte","b":[83,108,111,119,108,121,66,117]},{"a":9341,"t":"byte","b":[114,110,105,110,103,203,66,114]},{"a":9349,"t":"byte","b":[97,110,99,104,64]},{"a":9354,"l":"OBJECT_DESCRIPTION_1F","c":"Compressed object description data for table index(es) $1F; bounded by the next distinct pointer.","t":"byte","b":[4,65,166,74,97,103,103,101]},{"a":9362,"t":"byte","b":[100,70,114,97,103,109,101,110]},{"a":9370,"t":"byte","b":[116,136,71,108,97,115,115,64]},{"a":9378,"l":"OBJECT_DESCRIPTION_21","c":"Compressed object description data for table index(es) $21; bounded by the next distinct pointer.","t":"byte","b":[4,65,110,79,108,100,67,104]},{"a":9386,"t":"byte","b":[97,114,114,101,100,83,99,114]},{"a":9394,"t":"byte","b":[97,112,136,80,97,112,101,114]},{"a":9402,"t":"byte","b":[64]},{"a":9403,"l":"OBJECT_DESCRIPTION_22","c":"Compressed object description data for table index(es) $22; bounded by the next distinct pointer.","t":"byte","b":[4,65,166,80,105,101,99,101]},{"a":9411,"t":"byte","b":[79,102,76,101,97,116,104,101]},{"a":9419,"t":"byte","b":[114,64]},{"a":9421,"l":"OBJECT_DESCRIPTION_24","c":"Compressed object description data for table index(es) $24; bounded by the next distinct pointer.","t":"byte","b":[6,65,83,111,108,105,100,71]},{"a":9429,"t":"byte","b":[108,97,115,115,66,111,120,87]},{"a":9437,"t":"byte","b":[105,116,104,65,167,67,114,121]},{"a":9445,"t":"byte","b":[115,116,97,108,73,110,115,105]},{"a":9453,"t":"byte","b":[100,101,193,64]},{"a":9457,"l":"OBJECT_DESCRIPTION_25","c":"Compressed object description data for table index(es) $25; bounded by the next distinct pointer.","t":"byte","b":[0,218,64]},{"a":9460,"l":"OBJECT_DESCRIPTION_26","c":"Compressed object description data for table index(es) $26; bounded by the next distinct pointer.","t":"byte","b":[4,65,72,101,97,118,121,70]},{"a":9468,"t":"byte","b":[105,115,116,45,115,105,122,101]},{"a":9476,"t":"byte","b":[100,83,116,111,110,101,64]},{"a":9483,"l":"OBJECT_DESCRIPTION_27","c":"Compressed object description data for table index(es) $27; bounded by the next distinct pointer.","t":"byte","b":[6,65,83,104,105,110,121,65]},{"a":9491,"t":"byte","b":[112,112,108,101,64]},{"a":9496,"l":"OBJECT_DESCRIPTION_29","c":"Compressed object description data for table index(es) $29; bounded by the next distinct pointer.","t":"byte","b":[4,65,110,65,110,99,105,101]},{"a":9504,"t":"byte","b":[110,116,66,111,111,107,64]},{"a":9511,"l":"OBJECT_DESCRIPTION_2D","c":"Compressed object description data for table index(es) $2D; bounded by the next distinct pointer.","t":"byte","b":[6,65,110,79,108,100,82,117]},{"a":9519,"t":"byte","b":[115,116,121,84,105,110,87,105]},{"a":9527,"t":"byte","b":[116,104,65,83,116,97,110,103]},{"a":9535,"t":"byte","b":[101,83,121,109,98,111,108,157]},{"a":9543,"t":"byte","b":[128,83,105,100,101,64]},{"a":9549,"l":"OBJECT_DESCRIPTION_2E","c":"Compressed object description data for table index(es) $2E; bounded by the next distinct pointer.","t":"byte","b":[4,65,71,105,108,116,45,99]},{"a":9557,"t":"byte","b":[111,118,101,114,101,100,72,117]},{"a":9565,"t":"byte","b":[110,116,105,110,103,72,111,114]},{"a":9573,"t":"byte","b":[110,64]},{"a":9575,"l":"OBJECT_DESCRIPTION_2F","c":"Compressed object description data for table index(es) $2F; bounded by the next distinct pointer.","t":"byte","b":[4,65,166,66,114,111,119,110]},{"a":9583,"t":"byte","b":[80,111,117,99,104,64]},{"a":9589,"l":"OBJECT_DESCRIPTION_30","c":"Compressed object description data for table index(es) $30; bounded by the next distinct pointer.","t":"byte","b":[6,65,71,105,97,110,116,67]},{"a":9597,"t":"byte","b":[111,105,110,64]},{"a":9601,"l":"OBJECT_DESCRIPTION_31","c":"Compressed object description data for table index(es) $31; bounded by the next distinct pointer.","t":"byte","b":[4,65,84,104,105,99,107,70]},{"a":9609,"t":"byte","b":[111,103,83,119,105,114,108,105]},{"a":9617,"t":"byte","b":[110,103,65,114,111,117,110,100]},{"a":9625,"t":"byte","b":[64]},{"a":9626,"l":"OBJECT_DESCRIPTION_33","c":"Compressed object description data for table index(es) $33; bounded by the next distinct pointer.","t":"byte","b":[4,65,167,74,101,119,101,108]},{"a":9634,"t":"byte","b":[108,101,114,121,67,97,115,107]},{"a":9642,"t":"byte","b":[101,116,64]},{"a":9645,"l":"OBJECT_DESCRIPTION_34","c":"Compressed object description data for table index(es) $34; bounded by the next distinct pointer.","t":"byte","b":[5,140,161,79,108,100,80,108]},{"a":9653,"t":"byte","b":[97,110,107,115,76,121,105,110]},{"a":9661,"t":"byte","b":[103,157,128,71,114,111,117,110]},{"a":9669,"t":"byte","b":[100,64]},{"a":9671,"l":"OBJECT_DESCRIPTION_35","c":"Compressed object description data for table index(es) $35; bounded by the next distinct pointer.","t":"byte","b":[5,72,117,110,100,114,101,100]},{"a":9679,"t":"byte","b":[115,136,167,72,117,110,103,114]},{"a":9687,"t":"byte","b":[121,82,97,116,115,64]},{"a":9693,"l":"TOKEN_POINTERS_TABLE","c":"TOKEN_POINTERS_TABLE \u2014 94 little-endian pointers, one per compressed-text dictionary token.\nA prose byte with bit 7 set is a token reference: the renderer clears bit 7, doubles the\nremaining 0..93 id and reads the word at TOKEN_POINTERS_TABLE + 2*id. The pointer addresses a\ndictionary record, so ids $80-$DD are defined and $DE-$FF have no entry in this occupant.\nThe 94 pointers occupy $25DD-$2698; the records they address begin immediately afterwards at\n$2699 (WORD_THE_LC) and run to $28B8.","t":"byte","b":[153,38,157,38,164,38,171,38]},{"a":9701,"t":"byte","b":[177,38,180,38,185,38,188,38]},{"a":9709,"t":"byte","b":[195,38,198,38,204,38,211,38]},{"a":9717,"t":"byte","b":[215,38,219,38,222,38,226,38]},{"a":9725,"t":"byte","b":[232,38,242,38,247,38,1,39]},{"a":9733,"t":"byte","b":[7,39,17,39,22,39,32,39]},{"a":9741,"t":"byte","b":[36,39,40,39,44,39,48,39]},{"a":9749,"t":"byte","b":[54,39,57,39,60,39,63,39]},{"a":9757,"t":"byte","b":[70,39,78,39,83,39,89,39]},{"a":9765,"t":"byte","b":[92,39,97,39,105,39,111,39]},{"a":9773,"t":"byte","b":[117,39,125,39,130,39,133,39]},{"a":9781,"t":"byte","b":[138,39,143,39,148,39,159,39]},{"a":9789,"t":"byte","b":[167,39,176,39,181,39,188,39]},{"a":9797,"t":"byte","b":[196,39,201,39,207,39,211,39]},{"a":9805,"t":"byte","b":[218,39,223,39,226,39,230,39]},{"a":9813,"t":"byte","b":[234,39,240,39,249,39,254,39]},{"a":9821,"t":"byte","b":[5,40,8,40,11,40,16,40]},{"a":9829,"t":"byte","b":[23,40,35,40,40,40,42,40]},{"a":9837,"t":"byte","b":[48,40,53,40,59,40,68,40]},{"a":9845,"t":"byte","b":[70,40,75,40,80,40,85,40]},{"a":9853,"t":"byte","b":[92,40,101,40,103,40,109,40]},{"a":9861,"t":"byte","b":[114,40,119,40,122,40,130,40]},{"a":9869,"t":"byte","b":[140,40,149,40,155,40,161,40]},{"a":9877,"t":"byte","b":[169,40,181,40]},{"a":9881,"l":"WORD_THE_LC","c":"Compressed-text dictionary records, $2699-$28B8. Each record is one length byte followed by\nexactly that many ASCII characters, with no terminator and no padding; records are packed back\nto back and are reached only through TOKEN_POINTERS_TABLE ($25DD), never by scanning.\nThe dictionary stores case-sensitive duplicates because prose is emitted verbatim: \"the\"\n($2699) and \"The\" ($27CF), \"to\" ($26DB) and \"To\" ($2805), \"There\" ($26AB) and \"there\" ($2730),\n\"You\" ($26D3) and \"you\" ($28B5) are separate tokens. Labels ending _LC or _CAP mark the\nlower-case or capitalised member of such a pair.","t":"byte","b":[3,116,104,101]},{"a":9885,"l":"WORD_ATREYU","c":"Second record of the 94-entry prose dictionary at $2699-$28B8: length 6 followed by ASCII Atreyu. TOKEN_POINTERS_TABLE at $25DD addresses all records; each pointer equals the previous record end plus one. Remaining records through $28B8 use the same length-byte plus verbatim ASCII format; capitalization is retained.","t":"byte","b":[6,65,116,114,101,121,117]},{"a":9892,"l":"WORD_FALKOR","c":"Prose dictionary record: length $06, then 'Falkor' in ASCII, ending at $26AA. The next record begins at $26AB; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,70,97,108,107,111,114]},{"a":9899,"l":"WORD_THERE_CAP","c":"Prose dictionary record: length $05, then 'There' in ASCII, ending at $26B0. The next record begins at $26B1; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,84,104,101,114,101]},{"a":9905,"l":"WORD_IS","c":"Prose dictionary record: length $02, then 'is' in ASCII, ending at $26B3. The next record begins at $26B4; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,105,115]},{"a":9908,"l":"WORD_THAT","c":"Prose dictionary record: length $04, then 'that' in ASCII, ending at $26B8. The next record begins at $26B9; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,116,104,97,116]},{"a":9913,"l":"WORD_IN","c":"Prose dictionary record: length $02, then 'in' in ASCII, ending at $26BB. The next record begins at $26BC; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,105,110]},{"a":9916,"l":"WORD_STANDS","c":"Prose dictionary record: length $06, then 'stands' in ASCII, ending at $26C2. The next record begins at $26C3; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,115,116,97,110,100,115]},{"a":9923,"l":"WORD_OF","c":"Prose dictionary record: length $02, then 'of' in ASCII, ending at $26C5. The next record begins at $26C6; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,111,102]},{"a":9926,"l":"WORD_GREAT","c":"Prose dictionary record: length $05, then 'Great' in ASCII, ending at $26CB. The next record begins at $26CC; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,71,114,101,97,116]},{"a":9932,"l":"WORD_FOREST","c":"Prose dictionary record: length $06, then 'Forest' in ASCII, ending at $26D2. The next record begins at $26D3; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,70,111,114,101,115,116]},{"a":9939,"l":"WORD_YOU_CAP","c":"Prose dictionary record: length $03, then 'You' in ASCII, ending at $26D6. The next record begins at $26D7; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,89,111,117]},{"a":9943,"l":"WORD_ARE","c":"Prose dictionary record: length $03, then 'are' in ASCII, ending at $26DA. The next record begins at $26DB; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,97,114,101]},{"a":9947,"l":"WORD_TO_LC","c":"Prose dictionary record: length $02, then 'to' in ASCII, ending at $26DD. The next record begins at $26DE; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2]},{"a":9948,"l":"WORD_TO_LC_TEXT","c":"The two ASCII character bytes to belonging to the length-prefixed prose dictionary record at $26DB. The length byte is two; the next record begins at $26DE.","t":"byte","b":[116,111]},{"a":9950,"l":"WORD_OFF","c":"Prose dictionary record: length $03, then 'off' in ASCII, ending at $26E1. The next record begins at $26E2; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,111,102,102]},{"a":9954,"l":"WORD_NORTH","c":"Prose dictionary record: length $05, then 'north' in ASCII, ending at $26E7. The next record begins at $26E8; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,110,111,114,116,104]},{"a":9960,"l":"WORD_NORTHEAST","c":"Prose dictionary record: length $09, then 'northeast' in ASCII, ending at $26F1. The next record begins at $26F2; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[9,110,111,114,116,104,101,97]},{"a":9968,"t":"byte","b":[115,116]},{"a":9970,"l":"WORD_EAST","c":"Prose dictionary record: length $04, then 'east' in ASCII, ending at $26F6. The next record begins at $26F7; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,101,97,115,116]},{"a":9975,"l":"WORD_SOUTHEAST","c":"Prose dictionary record: length $09, then 'southeast' in ASCII, ending at $2700. The next record begins at $2701; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[9,115,111,117,116,104,101,97]},{"a":9983,"t":"byte","b":[115,116]},{"a":9985,"l":"WORD_SOUTH","c":"Prose dictionary record: length $05, then 'south' in ASCII, ending at $2706. The next record begins at $2707; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,115,111,117,116,104]},{"a":9991,"l":"WORD_SOUTHWEST","c":"Prose dictionary record: length $09, then 'southwest' in ASCII, ending at $2710. The next record begins at $2711; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[9,115,111,117,116,104,119,101]},{"a":9999,"t":"byte","b":[115,116]},{"a":10001,"l":"WORD_WEST","c":"Prose dictionary record: length $04, then 'west' in ASCII, ending at $2715. The next record begins at $2716; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,119,101,115,116]},{"a":10006,"l":"WORD_NORTHWEST","c":"Prose dictionary record: length $09, then 'northwest' in ASCII, ending at $271F. The next record begins at $2720; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[9,110,111,114,116,104,119,101]},{"a":10014,"t":"byte","b":[115,116]},{"a":10016,"l":"WORD_CAN","c":"Prose dictionary record: length $03, then 'can' in ASCII, ending at $2723. The next record begins at $2724; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,99,97,110]},{"a":10020,"l":"WORD_SEE","c":"Prose dictionary record: length $03, then 'see' in ASCII, ending at $2727. The next record begins at $2728; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,115,101,101]},{"a":10024,"l":"WORD_ALL","c":"Prose dictionary record: length $03, then 'all' in ASCII, ending at $272B. The next record begins at $272C; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,97,108,108]},{"a":10028,"l":"WORD_BUT","c":"Prose dictionary record: length $03, then 'but' in ASCII, ending at $272F. The next record begins at $2730; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,98,117,116]},{"a":10032,"l":"WORD_THERE","c":"Prose dictionary record: length $05, then 'there' in ASCII, ending at $2735. The next record begins at $2736; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,116,104,101,114,101]},{"a":10038,"l":"WORD_BE","c":"Prose dictionary record: length $02, then 'be' in ASCII, ending at $2738. The next record begins at $2739; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,98,101]},{"a":10041,"l":"WORD_ON","c":"Prose dictionary record: length $02, then 'on' in ASCII, ending at $273B. The next record begins at $273C; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,111,110]},{"a":10044,"l":"WORD_AT","c":"Prose dictionary record: length $02, then 'at' in ASCII, ending at $273E. The next record begins at $273F; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,97,116]},{"a":10047,"l":"WORD_SWAMPS","c":"Prose dictionary record: length $06, then 'Swamps' in ASCII, ending at $2745. The next record begins at $2746; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,83,119,97,109,112,115]},{"a":10054,"l":"WORD_SADNESS","c":"Prose dictionary record: length $07, then 'Sadness' in ASCII, ending at $274D. The next record begins at $274E; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,83,97,100,110,101,115,115]},{"a":10062,"l":"WORD_SOME","c":"Prose dictionary record: length $04, then 'some' in ASCII, ending at $2752. The next record begins at $2753; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,115,111,109,101]},{"a":10067,"l":"WORD_AURYN","c":"Prose dictionary record: length $05, then 'Auryn' in ASCII, ending at $2758. The next record begins at $2759; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,65,117,114,121,110]},{"a":10073,"l":"WORD_UP","c":"Prose dictionary record: length $02, then 'up' in ASCII, ending at $275B. The next record begins at $275C; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,117,112]},{"a":10076,"l":"WORD_DOWN","c":"Prose dictionary record: length $04, then 'down' in ASCII, ending at $2760. The next record begins at $2761; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,100,111,119,110]},{"a":10081,"l":"WORD_LEADING","c":"Prose dictionary record: length $07, then 'leading' in ASCII, ending at $2768. The next record begins at $2769; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,108,101,97,100,105,110,103]},{"a":10089,"l":"WORD_SMALL","c":"Prose dictionary record: length $05, then 'small' in ASCII, ending at $276E. The next record begins at $276F; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,115,109,97,108,108]},{"a":10095,"l":"WORD_LARGE","c":"Prose dictionary record: length $05, then 'large' in ASCII, ending at $2774. The next record begins at $2775; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,108,97,114,103,101]},{"a":10101,"l":"WORD_REMAINS","c":"Prose dictionary record: length $07, then 'remains' in ASCII, ending at $277C. The next record begins at $277D; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,114,101,109,97,105,110,115]},{"a":10109,"l":"WORD_THIS","c":"Prose dictionary record: length $04, then 'this' in ASCII, ending at $2781. The next record begins at $2782; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,116,104,105,115]},{"a":10114,"l":"WORD_AN","c":"Prose dictionary record: length $02, then 'an' in ASCII, ending at $2784. The next record begins at $2785; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,97,110]},{"a":10117,"l":"WORD_SIDE","c":"Prose dictionary record: length $04, then 'side' in ASCII, ending at $2789. The next record begins at $278A; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,115,105,100,101]},{"a":10122,"l":"WORD_HERE","c":"Prose dictionary record: length $04, then 'here' in ASCII, ending at $278E. The next record begins at $278F; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,104,101,114,101]},{"a":10127,"l":"WORD_SEEN","c":"Prose dictionary record: length $04, then 'seen' in ASCII, ending at $2793. The next record begins at $2794; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,115,101,101,110]},{"a":10132,"l":"WORD_SPOOK_CITY","c":"Prose dictionary record: length $0A, then 'Spook City' in ASCII, ending at $279E. The next record begins at $279F; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[10,83,112,111,111,107,32,67]},{"a":10140,"t":"byte","b":[105,116,121]},{"a":10143,"l":"WORD_NOTHING","c":"Prose dictionary record: length $07, then 'Nothing' in ASCII, ending at $27A6. The next record begins at $27A7; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,78,111,116,104,105,110,103]},{"a":10151,"l":"WORD_CORRIDOR","c":"Prose dictionary record: length $08, then 'corridor' in ASCII, ending at $27AF. The next record begins at $27B0; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[8,99,111,114,114,105,100,111]},{"a":10159,"t":"byte","b":[114]},{"a":10160,"l":"WORD_WELL","c":"Prose dictionary record: length $04, then 'well' in ASCII, ending at $27B4. The next record begins at $27B5; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,119,101,108,108]},{"a":10165,"l":"WORD_STAIRS","c":"Prose dictionary record: length $06, then 'stairs' in ASCII, ending at $27BB. The next record begins at $27BC; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,115,116,97,105,114,115]},{"a":10172,"l":"WORD_DUNGEON","c":"Prose dictionary record: length $07, then 'dungeon' in ASCII, ending at $27C3. The next record begins at $27C4; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,100,117,110,103,101,111,110]},{"a":10180,"l":"WORD_MAIN","c":"Prose dictionary record: length $04, then 'main' in ASCII, ending at $27C8. The next record begins at $27C9; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,109,97,105,110]},{"a":10185,"l":"WORD_EXITS","c":"Prose dictionary record: length $05, then 'exits' in ASCII, ending at $27CE. The next record begins at $27CF; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,101,120,105,116,115]},{"a":10191,"l":"WORD_THE","c":"Prose dictionary record: length $03, then 'The' in ASCII, ending at $27D2. The next record begins at $27D3; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,84,104,101]},{"a":10195,"l":"WORD_RUINED","c":"Prose dictionary record: length $06, then 'ruined' in ASCII, ending at $27D9. The next record begins at $27DA; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,114,117,105,110,101,100]},{"a":10202,"l":"WORD_ONLY","c":"Prose dictionary record: length $04, then 'only' in ASCII, ending at $27DE. The next record begins at $27DF; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,111,110,108,121]},{"a":10207,"l":"WORD_AS","c":"Prose dictionary record: length $02, then 'as' in ASCII, ending at $27E1. The next record begins at $27E2; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,97,115]},{"a":10210,"l":"WORD_AND","c":"Prose dictionary record: length $03, then 'and' in ASCII, ending at $27E5. The next record begins at $27E6; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,97,110,100]},{"a":10214,"l":"WORD_HAS","c":"Prose dictionary record: length $03, then 'has' in ASCII, ending at $27E9. The next record begins at $27EA; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,104,97,115]},{"a":10218,"l":"WORD_WHICH","c":"Prose dictionary record: length $05, then 'which' in ASCII, ending at $27EF. The next record begins at $27F0; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,119,104,105,99,104]},{"a":10224,"l":"WORD_PAINTING","c":"Prose dictionary record: length $08, then 'painting' in ASCII, ending at $27F8. The next record begins at $27F9; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[8,112,97,105,110,116,105,110]},{"a":10232,"t":"byte","b":[103]},{"a":10233,"l":"WORD_WALL","c":"Prose dictionary record: length $04, then 'wall' in ASCII, ending at $27FD. The next record begins at $27FE; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,119,97,108,108]},{"a":10238,"l":"WORD_CENTRE","c":"Prose dictionary record: length $06, then 'centre' in ASCII, ending at $2804. The next record begins at $2805; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,99,101,110,116,114,101]},{"a":10245,"l":"WORD_TO","c":"Prose dictionary record: length $02, then 'To' in ASCII, ending at $2807. The next record begins at $2808; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,84,111]},{"a":10248,"l":"WORD_IT","c":"Prose dictionary record: length $02, then 'it' in ASCII, ending at $280A. The next record begins at $280B; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,105,116]},{"a":10251,"l":"WORD_FROM","c":"Prose dictionary record: length $04, then 'from' in ASCII, ending at $280F. The next record begins at $2810; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,102,114,111,109]},{"a":10256,"l":"WORD_THOUGH","c":"Prose dictionary record: length $06, then 'though' in ASCII, ending at $2816. The next record begins at $2817; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,116,104,111,117,103,104]},{"a":10263,"l":"WORD_IVORY_TOWER","c":"Prose dictionary record: length $0B, then 'Ivory Tower' in ASCII, ending at $2822. The next record begins at $2823; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[11,73,118,111,114,121,32,84]},{"a":10271,"t":"byte","b":[111,119,101,114]},{"a":10275,"l":"WORD_DEEP","c":"Prose dictionary record: length $04, then 'deep' in ASCII, ending at $2827. The next record begins at $2828; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,100,101,101,112]},{"a":10280,"l":"WORD_A","c":"Prose dictionary record: length $01, then 'a' in ASCII, ending at $2829. The next record begins at $282A; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[1,97]},{"a":10282,"l":"WORD_TRACK","c":"Prose dictionary record: length $05, then 'track' in ASCII, ending at $282F. The next record begins at $2830; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,116,114,97,99,107]},{"a":10288,"l":"WORD_PATH","c":"Prose dictionary record: length $04, then 'path' in ASCII, ending at $2834. The next record begins at $2835; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,112,97,116,104]},{"a":10293,"l":"WORD_MORLA","c":"Prose dictionary record: length $05, then 'Morla' in ASCII, ending at $283A. The next record begins at $283B; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,77,111,114,108,97]},{"a":10299,"l":"WORD_FANTASIA","c":"Prose dictionary record: length $08, then 'Fantasia' in ASCII, ending at $2843. The next record begins at $2844; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[8,70,97,110,116,97,115,105]},{"a":10307,"t":"byte","b":[97,1,44]},{"a":10310,"l":"WORD_INTO","c":"Prose dictionary record: length $04, then 'into' in ASCII, ending at $284A. The next record begins at $284B; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,105,110,116,111]},{"a":10315,"l":"WORD_TINY","c":"Prose dictionary record: length $04, then 'tiny' in ASCII, ending at $284F. The next record begins at $2850; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,116,105,110,121]},{"a":10320,"l":"WORD_OPEN","c":"Prose dictionary record: length $04, then 'open' in ASCII, ending at $2854. The next record begins at $2855; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,111,112,101,110]},{"a":10325,"l":"WORD_CLOSED","c":"Prose dictionary record: length $06, then 'closed' in ASCII, ending at $285B. The next record begins at $285C; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[6,99,108,111,115,101,100]},{"a":10332,"l":"WORD_ENTRANCE","c":"Prose dictionary record: length $08, then 'entrance' in ASCII, ending at $2864. The next record begins at $2865; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[8,101,110,116,114,97,110,99]},{"a":10340,"t":"byte","b":[101,1,45]},{"a":10343,"l":"WORD_FLOOR","c":"Prose dictionary record: length $05, then 'floor' in ASCII, ending at $286C. The next record begins at $286D; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,102,108,111,111,114]},{"a":10349,"l":"WORD_ROOM","c":"Prose dictionary record: length $04, then 'room' in ASCII, ending at $2871. The next record begins at $2872; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,114,111,111,109]},{"a":10354,"l":"WORD_JUST","c":"Prose dictionary record: length $04, then 'just' in ASCII, ending at $2876. The next record begins at $2877; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[4,106,117,115,116]},{"a":10359,"l":"WORD_BY","c":"Prose dictionary record: length $02, then 'by' in ASCII, ending at $2879. The next record begins at $287A; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[2,98,121]},{"a":10362,"l":"WORD_EMPRESS","c":"Prose dictionary record: length $07, then 'Empress' in ASCII, ending at $2881. The next record begins at $2882; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,69,109,112,114,101,115,115]},{"a":10370,"l":"WORD_ROCKBITER","c":"Prose dictionary record: length $09, then 'Rockbiter' in ASCII, ending at $288B. The next record begins at $288C; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[9,82,111,99,107,98,105,116]},{"a":10378,"t":"byte","b":[101,114]},{"a":10380,"l":"WORD_ENGYWOOK","c":"Prose dictionary record: length $08, then 'Engywook' in ASCII, ending at $2894. The next record begins at $2895; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[8,69,110,103,121,119,111,111]},{"a":10388,"t":"byte","b":[107]},{"a":10389,"l":"WORD_URGLL","c":"Prose dictionary record: length $05, then 'Urgll' in ASCII, ending at $289A. The next record begins at $289B; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,85,114,103,108,108]},{"a":10395,"l":"WORD_ARTAX","c":"Prose dictionary record: length $05, then 'Artax' in ASCII, ending at $28A0. The next record begins at $28A1; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[5,65,114,116,97,120]},{"a":10401,"l":"WORD_BASTIAN","c":"Prose dictionary record: length $07, then 'Bastian' in ASCII, ending at $28A8. The next record begins at $28A9; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[7,66,97,115,116,105,97,110]},{"a":10409,"l":"WORD_NEVERENDING","c":"Prose dictionary record: length $0B, then 'Neverending' in ASCII, ending at $28B4. The next record begins at $28B5; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[11,78,101,118,101,114,101,110]},{"a":10417,"t":"byte","b":[100,105,110,103]},{"a":10421,"l":"WORD_YOU","c":"Prose dictionary record: length $03, then 'you' in ASCII, ending at $28B8. The next record begins at $28B9; TOKEN_POINTERS_TABLE indexes these packed, case-sensitive records.","t":"byte","b":[3,121,111,117]},{"a":10425,"l":"VISIBLE_OBJECT_RECORDS_PTR","c":"Pointer to the six runtime RoomGraphicRecord overlays at VISIBLE_OBJECT_RECORDS.","t":"word","b":[67,41],"d":[10563],"x":[1399]},{"a":10426,"t":"note","l":"a_28BA","c":"High byte $29 of VISIBLE_OBJECT_RECORDS_PTR, the little-endian pointer at $28B9 whose captured value is $2943. Low byte and pointer purpose are described at $28B9.","note":"inside the item at $28B9","x":[1404]},{"a":10427,"l":"DISK_LOAD_ADDR","c":"Start address of the serialized game-state block used by KERNAL LOAD/SAVE.","t":"word","b":[191,40],"d":[10431],"x":[1134,1175]},{"a":10428,"t":"note","l":"a_28BC","c":"High byte $28 of DISK_LOAD_ADDR, the little-endian pointer at $28BB whose captured value is $28BF. Low byte and pointer purpose are described at $28BB.","note":"inside the item at $28BB","x":[1137,1180]},{"a":10429,"l":"DISK_SAVE_END_ADDR","c":"Exclusive end address of the serialized game-state block used by KERNAL SAVE.","t":"word","b":[103,41],"d":[10599],"x":[1190]},{"a":10430,"t":"note","l":"a_28BE","c":"High byte $29 of DISK_SAVE_END_ADDR, the little-endian pointer at $28BD whose captured value is $2967. Low byte and pointer purpose are described at $28BD.","note":"inside the item at $28BD","x":[1193]},{"a":10431,"l":"OBJECT_LOCATIONS","c":"Per-object location/state array. Room ids place an object in that room; $FC means carried; $FD means absent or disabled.","t":"byte","b":[253,251,17,3,8,251,36,36],"x":[3746,3784,3883,4115,4243,4534,4550,4618,4632,5415,5632]},{"a":10439,"t":"byte","b":[37,253,3,2,2,253,253,0]},{"a":10447,"t":"byte","b":[253,72,65,51,70,57,253,107]},{"a":10455,"t":"byte","b":[107,107,13,48,1,24,253,253]},{"a":10463,"t":"byte","b":[122,47,0,253,23,6,25,42]},{"a":10471,"t":"byte","b":[253,44,253,253,253,66,31,75]},{"a":10479,"t":"byte","b":[253,51,35,107,46,57,0,0]},{"a":10487,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10495,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10503,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10511,"l":"OBJ_FLAGS","c":"Thirty-two mutable boolean/object flags used by action and condition bytecodes.","t":"byte","b":[0,0,1,0,0,0,1,1],"x":[4027,4037,4091,4224,4564,4576,5428,5440]},{"a":10519,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10527,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10535,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10543,"l":"OBJ_COUNTERS","c":"Sixteen mutable counters used by action and condition bytecodes.","t":"byte","b":[0,50,0,29,0,0,0,0],"x":[3874,3989,3997,4004,4012,4017,4458,4464,4588,4606]},{"a":10551,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":10559,"l":"CURRENT_ROOM","c":"Current global room id. Direction tables compare and replace this value; room text and scripts index from it.","t":"byte","b":[1],"x":[1057,1065,3699,3714,3728,3743,3781,3867,4235,4246,4257,4522,4537,5282,5407]},{"a":10560,"l":"CURRENT_PART_NO","c":"Zero-based game-part number.","t":"byte","b":[0],"x":[1045,1048,1089,1113,1151,1156,2911,5274,5402,5449]},{"a":10561,"l":"UNUSED_SAVE_STATE_2941","c":"Reserved byte in the serialized game-state block. INIT_GAME_STATE explicitly clears it, but no decoded instruction reads it or writes a nonzero value. It separates CURRENT_PART_NO from CURRENT_ROOM_GRAPHIC_ID.","t":"byte","b":[0],"x":[5376]},{"a":10562,"l":"CURRENT_ROOM_GRAPHIC_ID","c":"ROOM_GRAPHIC_TABLE record id for the currently displayed room illustration.","t":"byte","b":[3],"x":[1441,4264,4269,4404,5379]},{"a":10563,"l":"VISIBLE_OBJECT_RECORDS","c":"Six runtime RoomGraphicRecord overlays drawn on top of the base room illustration. A zero source-pointer high byte marks an unused record.\n[offcut 2963] Source pointer in the sixth visible graphic record. SCRIPT_SET_OBJECT_GRAPHIC points it at the selected object's $A560 graphics block or clears it.","t":"byte","b":[5,21,0],"x":[3804,3812,3832,3836,3900,3920,3926]},{"a":10566,"l":"a_2946","c":"Remaining fields of the first mutable RoomGraphicRecord at $2943 and five subsequent six-byte records. Each record holds height, width, destination row, destination column, then little-endian source pointer. Part-1 drawing and object-state routines rewrite these descriptors; the records end at $2966.","t":"byte","b":[0,4,4,5,35,0],"x":[5382]},{"a":10572,"l":"a_294C","c":"Destination-column byte of the second mutable room-graphic descriptor beginning at $2949, followed by that descriptor source pointer and four more six-byte records. The whole runtime descriptor array spans $2943-$2966.","t":"byte","b":[0,4,4,0,21,0],"x":[5385]},{"a":10578,"l":"VISIBLE_OBJECT_RECORD_2_COLUMN","c":"Column byte of runtime graphic descriptor 2 at $294F, followed by its source pointer and three more six-byte descriptors. The six-record mutable array ends at $2966.","t":"byte","b":[0,4,4,0,35,0],"x":[5388]},{"a":10584,"l":"a_2958","c":"Destination-column byte of runtime RoomGraphicRecord 3 beginning at $2955, followed by its source pointer and the final two six-byte descriptors through $2966.","t":"byte","b":[0,4,4,0,28,0],"x":[5391]},{"a":10590,"l":"a_295E","c":"High byte of the source pointer in visible graphic record 4 ($295B-$2960). The low byte is $295D; a zero high byte disables this overlay. INIT_GAME_STATE clears this field at $1512.","t":"byte","b":[0,4,4,5,28],"x":[5394]},{"a":10595,"l":"CURRENT_OBJECT_GRAPHIC_PTR","c":"Low byte of the source pointer in visible graphic record 5 ($2961-$2966). SCRIPT_SET_OBJECT_GRAPHIC writes the computed pointer low byte here at $1156, or clears it at $1146.","t":"byte","b":[0],"x":[4422,4438]},{"a":10596,"l":"a_2964","c":"High byte of the source pointer in visible graphic record 5 ($2961-$2966). SCRIPT_SET_OBJECT_GRAPHIC writes the computed pointer high byte here at $115B, or clears it at $1149. Width and height are the following bytes $2965/$2966.","t":"byte","b":[0,4,4],"x":[4425,4443,5397]},{"a":10599,"l":"SAVE_BLOCK_END","c":"Single pad byte at the exclusive end of the serialized save block.\nDISK_SAVE_END_ADDR ($28BD) holds $2967 and DISK_LOAD_ADDR ($28BB) holds $28BF, so KERNAL SAVE\n($FFD8, called at $04AC with the start address in the zero-page pair $FE/$FF and the end\naddress in X/Y) writes $28BF-$2966 inclusive - ending exactly on the last byte of\nVISIBLE_OBJECT_RECORDS[5]. Not bytecode; PART1_INIT_SCRIPT begins at the next byte.","t":"byte","b":[0]},{"a":10600,"l":"PART1_INIT_SCRIPT","c":"PART1_INIT_SCRIPT ($2968-$296D) \u2014 the captured part's load-time bytecode, selected by SETUP_CURRENT_ROOM through PART_INIT_SCRIPT_POINTERS[0]. INIT_GAME reaches it after initializing state.\n08 1B  print captured event text $1B\n10 04  select captured room illustration $04\n1A     print the continue prompt and wait for SPACE\nFF     end\nThe event and graphic operands resolve through tables in the same captured part occupant. A disk transition replaces this overlay range, so no claim about bytes or narrative in a later occupant is inferred from this copy.","t":"byte","b":[8,27,16,4,26]},{"a":10605,"l":"PART1_INIT_SCRIPT_END_MARKER","c":"Part-1 initialization-script terminator byte $FF, ending the script whose pointer is selected by the per-part initialization table.","t":"byte","b":[255]},{"a":10606,"l":"PART_INIT_SCRIPT_SLOT_1","c":"PART_INIT_SCRIPT_SLOT_1 ($296E-$297D) \u2014 captured bytecode-shaped transition slot addressed by PART_INIT_SCRIPT_POINTERS[1]. Its local structure is three `08 id / 10 id / 1A` beats followed by $FF.\nExecuting table slot 1 occurs only after a disk transition that replaces this overlay and its operand tables. Therefore the current bytes are classified structurally, but their noncaptured replacement bytes, text, pictures, and narrative meaning are deliberately out of scope.","t":"byte","b":[8,0,16,22,26,8,1,16]},{"a":10614,"t":"byte","b":[23,26,8,2,16,24,26,255]},{"a":10622,"l":"PART_INIT_SCRIPT_SLOT_2","c":"PART_INIT_SCRIPT_SLOT_2 ($297E-$2983) \u2014 captured bytecode-shaped transition slot addressed by PART_INIT_SCRIPT_POINTERS[2]. Its local structure is one `08 id / 10 id / 1A` beat followed by $FF.\nExecuting table slot 2 occurs only after a disk transition that replaces this overlay and its operand tables. Therefore the current bytes are classified structurally, but their noncaptured replacement bytes, text, pictures, and narrative meaning are deliberately out of scope.","t":"byte","b":[8,0,16,37,26,255]},{"a":10628,"l":"ACTION_SCRIPT_TABLE_PTR","c":"Pointer to ACTION_SCRIPT_POINTERS.","t":"word","b":[134,41],"d":[10630],"x":[5221]},{"a":10629,"t":"note","l":"a_2985","c":"High byte $29 of ACTION_SCRIPT_TABLE_PTR, the little-endian pointer at $2984 whose captured value is $2986. Low byte and pointer purpose are described at $2984.","note":"inside the item at $2984","x":[5228]},{"a":10630,"l":"ACTION_SCRIPT_POINTERS","c":"Seventy action-bytecode pointers indexed by VERB_RULE_TABLE pair position.\n[offcut 29a0] Action-script pointer selected by VERB_RULE_GET_ARTAX (pair index 13); points to ACTION_SCRIPT_GET_ARTAX at $2B55.\n[offcut 29a2] Action-script pointer selected by VERB_RULE_GET_FALKOR (pair index 14); points to ACTION_SCRIPT_GET_FALKOR at $2B6C.","t":"byte","b":[19,42,19,42,38,42,19,42]},{"a":10638,"t":"byte","b":[81,42,19,42,113,42,19,42]},{"a":10646,"t":"byte","b":[158,42,200,42,19,43,131,46]},{"a":10654,"t":"byte","b":[64,43]},{"a":10656,"l":"ACTION_SCRIPT_GET_ARTAX_PTR","c":"Action-script pointer for verb/noun rule pair 13 (GET ARTAX), little-endian $2B55. The following words continue ACTION_SCRIPT_POINTERS at $2986, indexed by matching rule pair; GET FALKOR is the next pointer, $2B6C.","t":"byte","b":[85,43]},{"a":10658,"l":"ACTION_SCRIPT_GET_FALKOR_PTR","c":"Action-script pointer 14, little-endian $2B6C, selected by the corresponding verb/noun rule pair. Following words continue the 70-entry table beginning at $2986.","t":"byte","b":[108,43,214,44,134,45,175,46]},{"a":10666,"t":"byte","b":[31,43,33,43,184,43,156,43]},{"a":10674,"t":"byte","b":[169,43,7,45,33,43,33,43]},{"a":10682,"t":"byte","b":[215,46,35,43,37,43,41,43]},{"a":10690,"t":"byte","b":[45,43]},{"a":10692,"l":"ACTION_SCRIPT_SAVE_PTR","c":"Action-script pointer 31, little-endian $2B51, selected by the corresponding verb/noun rule pair. Following words continue the 70-entry table beginning at $2986.","t":"byte","b":[81,43]},{"a":10694,"l":"ACTION_SCRIPT_LOAD_PTR","c":"Action-script pointer 32, little-endian $2B53, selected by the corresponding verb/noun rule pair. Following words continue the 70-entry table beginning at $2986.","t":"byte","b":[83,43,93,45,201,43,128,45]},{"a":10702,"t":"byte","b":[221,43,5,44,39,44,21,45]},{"a":10710,"t":"byte","b":[43,45,86,44,100,44,146,44]},{"a":10718,"t":"byte","b":[131,45,134,45,198,44,201,44]},{"a":10726,"t":"byte","b":[235,44,70,45,65,45,68,45]},{"a":10734,"t":"byte","b":[82,45,73,45,84,45,147,45]},{"a":10742,"t":"byte","b":[177,45,194,45,203,45,212,45]},{"a":10750,"t":"byte","b":[215,45,235,45,0,46,21,46]},{"a":10758,"t":"byte","b":[76,46,145,46,184,46,189,46]},{"a":10766,"t":"byte","b":[210,46,218,46]},{"a":10770,"l":"ACTION_SCRIPT_COUNT","c":"Number of valid action-script entries: 70 ($46).","t":"byte","b":[70],"x":[5181]},{"a":10771,"l":"ACTION_SCRIPT_00","c":"Action bytecode data for table index(es) $00, $01, $03, $05, $07; bounded by the next distinct pointer.","t":"byte","b":[0,254,134,1,13,3,254,130]},{"a":10779,"t":"byte","b":[0,1,37,250,254,130,1,1]},{"a":10787,"t":"byte","b":[5,250,255]},{"a":10790,"l":"ACTION_SCRIPT_02","c":"Action bytecode data for table index(es) $02; bounded by the next distinct pointer.","t":"byte","b":[137,74,131,11,8,19,7,254]},{"a":10798,"t":"byte","b":[137,122,131,19,8,7,7,254]},{"a":10806,"t":"byte","b":[137,81,131,20,17,2,7,254]},{"a":10814,"t":"byte","b":[0,254,134,1,13,3,254,130]},{"a":10822,"t":"byte","b":[0,1,37,250,254,130,1,1]},{"a":10830,"t":"byte","b":[5,250,255]},{"a":10833,"l":"ACTION_SCRIPT_04","c":"Action bytecode data for table index(es) $04; bounded by the next distinct pointer.","t":"byte","b":[137,39,131,5,136,200,8,19]},{"a":10841,"t":"byte","b":[26,20,254,137,39,129,0,8]},{"a":10849,"t":"byte","b":[20,16,12,26,0,7,254,137]},{"a":10857,"t":"byte","b":[39,8,19,26,20,254,0,255]},{"a":10865,"l":"ACTION_SCRIPT_06","c":"Action bytecode data for table index(es) $06; bounded by the next distinct pointer.","t":"byte","b":[137,70,134,20,130,12,17,2]},{"a":10873,"t":"byte","b":[7,254,137,73,131,16,17,2]},{"a":10881,"t":"byte","b":[7,254,137,75,131,11,8,19]},{"a":10889,"t":"byte","b":[7,254,0,254,134,1,13,3]},{"a":10897,"t":"byte","b":[254,130,0,1,37,250,254,130]},{"a":10905,"t":"byte","b":[1,1,5,250,255]},{"a":10910,"l":"ACTION_SCRIPT_08","c":"Action bytecode data for table index(es) $08; bounded by the next distinct pointer.","t":"byte","b":[137,70,134,20,130,13,17,2]},{"a":10918,"t":"byte","b":[7,254,137,58,131,14,17,2]},{"a":10926,"t":"byte","b":[7,254,137,55,5,7,254,0]},{"a":10934,"t":"byte","b":[254,134,1,13,3,254,130,0]},{"a":10942,"t":"byte","b":[1,37,250,254,130,1,1,5]},{"a":10950,"t":"byte","b":[250,255]},{"a":10952,"l":"ACTION_SCRIPT_09","c":"Action bytecode data for table index(es) $09; bounded by the next distinct pointer.","t":"byte","b":[137,8,134,4,8,13,7,254]},{"a":10960,"t":"byte","b":[137,8,135,4,130,0,17,26]},{"a":10968,"t":"byte","b":[7,254,137,8,135,4,130,1]},{"a":10976,"t":"byte","b":[17,26,7,254,137,46,134,52]},{"a":10984,"t":"byte","b":[17,55,7,254,137,46,6,7]},{"a":10992,"t":"byte","b":[254,137,46,129,19,5,7,254]},{"a":11000,"t":"byte","b":[137,59,131,14,17,2,7,254]},{"a":11008,"t":"byte","b":[0,254,134,1,13,3,254,130]},{"a":11016,"t":"byte","b":[1,1,5,250,254,130,0,1]},{"a":11024,"t":"byte","b":[37,250,255]},{"a":11027,"l":"ACTION_SCRIPT_0A","c":"Action bytecode data for table index(es) $0A; bounded by the next distinct pointer.","t":"byte","b":[9,254,130,0,17,20,254,130]},{"a":11035,"t":"byte","b":[1,17,21,255]},{"a":11039,"l":"ACTION_SCRIPT_12","c":"Action bytecode data for table index(es) $12; bounded by the next distinct pointer.","t":"byte","b":[3,255]},{"a":11041,"l":"ACTION_SCRIPT_13","c":"Action bytecode data for table index(es) $13, $18, $19; bounded by the next distinct pointer.","t":"byte","b":[2,255]},{"a":11043,"l":"ACTION_SCRIPT_1B","c":"Action bytecode data for table index(es) $1B; bounded by the next distinct pointer.","t":"byte","b":[10,255]},{"a":11045,"l":"ACTION_SCRIPT_1C","c":"Action bytecode data for table index(es) $1C; bounded by the next distinct pointer.","t":"byte","b":[11,17,31,255]},{"a":11049,"l":"ACTION_SCRIPT_1D","c":"Action bytecode data for table index(es) $1D; bounded by the next distinct pointer.","t":"byte","b":[12,17,31,255]},{"a":11053,"l":"ACTION_SCRIPT_1E","c":"Action bytecode data for table index(es) $1E; bounded by the next distinct pointer.","t":"byte","b":[15,255,128,16,25,66,3,7]},{"a":11061,"t":"byte","b":[254,128,35,25,85,3,7,254]},{"a":11069,"t":"byte","b":[17,8,255]},{"a":11072,"l":"ACTION_SCRIPT_0C","c":"Action bytecode data for table index(es) $0C; bounded by the next distinct pointer.","t":"byte","b":[128,17,25,67,3,7,254,128]},{"a":11080,"t":"byte","b":[21,25,71,3,7,254,17,8]},{"a":11088,"t":"byte","b":[255]},{"a":11089,"l":"ACTION_SCRIPT_SAVE_DISABLED","c":"ACTION_SCRIPT_SAVE_DISABLED \u2014 two-byte action script `12 FF` selected by VERB_RULE_SAVE. Opcode $12 dispatches to ACTION_SAVE_DISABLED, which immediately returns through SAVE_DISABLED_RTS.","t":"byte","b":[18,255]},{"a":11091,"l":"ACTION_SCRIPT_LOAD_DISABLED","c":"ACTION_SCRIPT_LOAD_DISABLED \u2014 two-byte action script `13 FF` selected by VERB_RULE_LOAD. Opcode $13 dispatches to ACTION_LOAD_DISABLED, which immediately returns through LOAD_DISABLED_RTS.","t":"byte","b":[19,255]},{"a":11093,"l":"ACTION_SCRIPT_GET_ARTAX","c":"Part-1 GET ARTAX action bytecode. In the successful room-$25 branch, bytes $17,$18 at $2B5E-$2B5F invoke SCRIPT_SET_OBJECT_GRAPHIC with direct slot index 24, rendering ICON_ARTAX at $B460. The later branches emit failure/status messages.","t":"byte","b":[128,37,131,0,5,0,6,1]},{"a":11101,"t":"byte","b":[17,20,23,24,7,254,128,37]},{"a":11109,"t":"byte","b":[17,3,7,254,17,22,255]},{"a":11116,"l":"ACTION_SCRIPT_GET_FALKOR","c":"Part-1 GET FALKOR action bytecode. Its successful branches include $17,$17 at $2B8F-$2B90: action opcode $17 (SCRIPT_SET_OBJECT_GRAPHIC) renders icon index $17, ICON_FALKOR at $B3C0. Dynamic execution of \"get falkor\" in room $21 reached this exact operand with SCRIPT_PC=$2B91.","t":"byte","b":[129,0,128,5,131,1,130,0]},{"a":11124,"t":"byte","b":[5,1,6,0,1,37,250,17]},{"a":11132,"t":"byte","b":[21,23,23,7,254,129,0,128]},{"a":11140,"t":"byte","b":[5,131,1,131,0,5,1,6]},{"a":11148,"t":"byte","b":[0,17,21,23,23,7,254,128]},{"a":11156,"t":"byte","b":[5,17,66,7,254,17,22,255]},{"a":11164,"l":"ACTION_SCRIPT_15","c":"Action bytecode data for table index(es) $15; bounded by the next distinct pointer.","t":"byte","b":[130,0,6,0,23,250,17,31]},{"a":11172,"t":"byte","b":[7,254,17,23,255]},{"a":11177,"l":"ACTION_SCRIPT_16","c":"Action bytecode data for table index(es) $16; bounded by the next distinct pointer.","t":"byte","b":[130,1,6,1,23,250,16,250]},{"a":11185,"t":"byte","b":[17,31,7,254,17,23,255]},{"a":11192,"l":"ACTION_SCRIPT_14","c":"Action bytecode data for table index(es) $14; bounded by the next distinct pointer.","t":"byte","b":[129,17,25,67,2,7,254,129]},{"a":11200,"t":"byte","b":[21,25,71,2,7,254,17,10]},{"a":11208,"t":"byte","b":[255]},{"a":11209,"l":"ACTION_SCRIPT_22","c":"Action bytecode data for table index(es) $22; bounded by the next distinct pointer.","t":"byte","b":[129,15,4,1,50,27,25,65]},{"a":11217,"t":"byte","b":[2,28,1,15,253,17,24,7]},{"a":11225,"t":"byte","b":[254,17,10,255]},{"a":11229,"l":"ACTION_SCRIPT_24","c":"Action bytecode data for table index(es) $24; bounded by the next distinct pointer.","t":"byte","b":[137,8,129,30,134,4,8,21]},{"a":11237,"t":"byte","b":[8,22,27,25,80,2,28,1]},{"a":11245,"t":"byte","b":[30,253,1,4,253,7,254,137]},{"a":11253,"t":"byte","b":[8,135,4,17,30,7,254,137]},{"a":11261,"t":"byte","b":[8,8,23,7,254,17,30,255]},{"a":11269,"l":"ACTION_SCRIPT_25","c":"Action bytecode data for table index(es) $25; bounded by the next distinct pointer.","t":"byte","b":[137,1,129,29,17,31,27,25]},{"a":11277,"t":"byte","b":[79,2,1,29,253,1,30,250]},{"a":11285,"t":"byte","b":[25,80,3,28,4,4,15,7]},{"a":11293,"t":"byte","b":[254,137,1,17,10,7,254,17]},{"a":11301,"t":"byte","b":[32,255]},{"a":11303,"l":"ACTION_SCRIPT_26","c":"Action bytecode data for table index(es) $26; bounded by the next distinct pointer.","t":"byte","b":[137,23,29,1,254,137,6,131]},{"a":11311,"t":"byte","b":[1,131,0,29,6,254,137,6]},{"a":11319,"t":"byte","b":[17,26,7,254,137,35,131,1]},{"a":11327,"t":"byte","b":[29,5,254,137,3,17,2,7]},{"a":11335,"t":"byte","b":[254,137,8,135,4,131,1,131]},{"a":11343,"t":"byte","b":[0,29,10,254,17,2,255]},{"a":11350,"l":"ACTION_SCRIPT_29","c":"Action bytecode data for table index(es) $29; bounded by the next distinct pointer.","t":"byte","b":[130,1,30,7,254,130,0,17]},{"a":11358,"t":"byte","b":[38,7,254,17,23,255]},{"a":11364,"l":"ACTION_SCRIPT_2A","c":"Action bytecode data for table index(es) $2A; bounded by the next distinct pointer.","t":"byte","b":[137,20,6,0,17,31,29,3]},{"a":11372,"t":"byte","b":[254,137,22,6,0,17,31,29]},{"a":11380,"t":"byte","b":[7,254,137,35,6,0,17,31]},{"a":11388,"t":"byte","b":[29,9,254,137,17,8,24,7]},{"a":11396,"t":"byte","b":[254,137,58,29,9,254,137,59]},{"a":11404,"t":"byte","b":[29,10,254,17,36,255]},{"a":11410,"l":"ACTION_SCRIPT_2B","c":"Action bytecode data for table index(es) $2B; bounded by the next distinct pointer.","t":"byte","b":[137,0,17,34,7,254,137,23]},{"a":11418,"t":"byte","b":[17,34,7,254,137,36,17,34]},{"a":11426,"t":"byte","b":[7,254,137,58,17,34,7,254]},{"a":11434,"t":"byte","b":[129,46,128,5,17,34,7,254]},{"a":11442,"t":"byte","b":[129,46,134,5,17,35,1,5]},{"a":11450,"t":"byte","b":[250,7,254,129,46,17,34,7]},{"a":11458,"t":"byte","b":[254,17,10,255]},{"a":11462,"l":"ACTION_SCRIPT_2E","c":"Action bytecode data for table index(es) $2E; bounded by the next distinct pointer.","t":"byte","b":[17,33,255]},{"a":11465,"l":"ACTION_SCRIPT_2F","c":"Action bytecode data for table index(es) $2F; bounded by the next distinct pointer.","t":"byte","b":[130,0,30,7,254,130,1,30]},{"a":11473,"t":"byte","b":[7,254,17,39,255]},{"a":11478,"l":"ACTION_SCRIPT_0F","c":"Action bytecode data for table index(es) $0F; bounded by the next distinct pointer.","t":"byte","b":[135,31,17,40,7,254,128,31]},{"a":11486,"t":"byte","b":[129,34,3,7,254,128,31,17]},{"a":11494,"t":"byte","b":[41,7,254,3,255]},{"a":11499,"l":"ACTION_SCRIPT_30","c":"Action bytecode data for table index(es) $30; bounded by the next distinct pointer.","t":"byte","b":[128,36,129,38,1,36,253,1]},{"a":11507,"t":"byte","b":[31,250,1,9,250,16,250,17]},{"a":11515,"t":"byte","b":[42,7,254,128,36,17,43,7]},{"a":11523,"t":"byte","b":[254,17,8,255]},{"a":11527,"l":"ACTION_SCRIPT_17","c":"Action bytecode data for table index(es) $17; bounded by the next distinct pointer.","t":"byte","b":[129,34,129,31,2,17,41,25]},{"a":11535,"t":"byte","b":[81,2,7,254,2,255]},{"a":11541,"l":"ACTION_SCRIPT_27","c":"Action bytecode data for table index(es) $27; bounded by the next distinct pointer.","t":"byte","b":[137,33,130,1,17,44,24,34]},{"a":11549,"t":"byte","b":[1,5,250,10,7,254,130,1]},{"a":11557,"t":"byte","b":[30,7,254,17,23,255]},{"a":11563,"l":"ACTION_SCRIPT_28","c":"Action bytecode data for table index(es) $28; bounded by the next distinct pointer.","t":"byte","b":[137,34,130,1,17,44,24,33]},{"a":11571,"t":"byte","b":[1,5,250,10,7,254,130,1]},{"a":11579,"t":"byte","b":[30,7,254,17,23,255]},{"a":11585,"l":"ACTION_SCRIPT_32","c":"Action bytecode data for table index(es) $32; bounded by the next distinct pointer.","t":"byte","b":[17,19,255]},{"a":11588,"l":"ACTION_SCRIPT_33","c":"Action bytecode data for table index(es) $33; bounded by the next distinct pointer.","t":"byte","b":[26,255]},{"a":11590,"l":"ACTION_SCRIPT_31","c":"Action bytecode data for table index(es) $31; bounded by the next distinct pointer.","t":"byte","b":[17,33,255]},{"a":11593,"l":"ACTION_SCRIPT_35","c":"Action bytecode data for table index(es) $35; bounded by the next distinct pointer.","t":"byte","b":[128,4,17,45,7,254,17,3]},{"a":11601,"t":"byte","b":[255]},{"a":11602,"l":"ACTION_SCRIPT_34","c":"Action bytecode data for table index(es) $34; bounded by the next distinct pointer.","t":"byte","b":[32,255]},{"a":11604,"l":"ACTION_SCRIPT_36","c":"Action bytecode data for table index(es) $36; bounded by the next distinct pointer.","t":"byte","b":[137,0,29,2,7,254,17,3]},{"a":11612,"t":"byte","b":[255]},{"a":11613,"l":"ACTION_SCRIPT_21","c":"Action bytecode data for table index(es) $21; bounded by the next distinct pointer.","t":"byte","b":[129,39,130,8,17,54,6,8]},{"a":11621,"t":"byte","b":[27,25,89,2,28,1,39,253]},{"a":11629,"t":"byte","b":[7,254,129,39,17,34,27,25]},{"a":11637,"t":"byte","b":[89,2,28,1,39,253,7,254]},{"a":11645,"t":"byte","b":[17,10,255]},{"a":11648,"l":"ACTION_SCRIPT_23","c":"Action bytecode data for table index(es) $23; bounded by the next distinct pointer.","t":"byte","b":[17,55,255]},{"a":11651,"l":"ACTION_SCRIPT_2C","c":"Action bytecode data for table index(es) $2C; bounded by the next distinct pointer.","t":"byte","b":[17,56,255]},{"a":11654,"l":"ACTION_SCRIPT_10","c":"Action bytecode data for table index(es) $10, $2D; bounded by the next distinct pointer.","t":"byte","b":[137,70,128,20,8,5,5,8]},{"a":11662,"t":"byte","b":[7,254,17,8,255]},{"a":11667,"l":"ACTION_SCRIPT_37","c":"Action bytecode data for table index(es) $37; bounded by the next distinct pointer.","t":"byte","b":[137,70,128,20,129,18,8,6]},{"a":11675,"t":"byte","b":[1,20,253,7,254,137,70,129]},{"a":11683,"t":"byte","b":[18,17,8,7,254,137,70,17]},{"a":11691,"t":"byte","b":[57,7,254,17,8,255]},{"a":11697,"l":"ACTION_SCRIPT_38","c":"Action bytecode data for table index(es) $38; bounded by the next distinct pointer.","t":"byte","b":[129,39,129,18,17,34,7,254]},{"a":11705,"t":"byte","b":[129,39,17,57,7,254,17,10]},{"a":11713,"t":"byte","b":[255]},{"a":11714,"l":"ACTION_SCRIPT_39","c":"Action bytecode data for table index(es) $39; bounded by the next distinct pointer.","t":"byte","b":[129,33,17,58,7,254,17,10]},{"a":11722,"t":"byte","b":[255]},{"a":11723,"l":"ACTION_SCRIPT_3A","c":"Action bytecode data for table index(es) $3A; bounded by the next distinct pointer.","t":"byte","b":[129,41,17,59,7,254,17,10]},{"a":11731,"t":"byte","b":[255]},{"a":11732,"l":"ACTION_SCRIPT_3B","c":"Action bytecode data for table index(es) $3B; bounded by the next distinct pointer.","t":"byte","b":[17,55,255]},{"a":11735,"l":"ACTION_SCRIPT_3C","c":"Action bytecode data for table index(es) $3C; bounded by the next distinct pointer.","t":"byte","b":[137,46,134,52,8,7,1,52]},{"a":11743,"t":"byte","b":[253,7,254,137,46,8,8,7]},{"a":11751,"t":"byte","b":[254,17,30,255]},{"a":11755,"l":"ACTION_SCRIPT_3D","c":"Action bytecode data for table index(es) $3D; bounded by the next distinct pointer.","t":"byte","b":[129,45,131,10,5,10,17,62]},{"a":11763,"t":"byte","b":[7,254,129,45,130,10,17,60]},{"a":11771,"t":"byte","b":[7,254,17,10,255]},{"a":11776,"l":"ACTION_SCRIPT_3E","c":"Action bytecode data for table index(es) $3E; bounded by the next distinct pointer.","t":"byte","b":[129,45,130,10,6,10,17,31]},{"a":11784,"t":"byte","b":[7,254,129,45,131,10,17,61]},{"a":11792,"t":"byte","b":[7,254,17,10,255]},{"a":11797,"l":"ACTION_SCRIPT_3F","c":"Action bytecode data for table index(es) $3F; bounded by the next distinct pointer.","t":"byte","b":[137,74,131,11,129,21,5,11]},{"a":11805,"t":"byte","b":[17,31,7,254,137,74,130,11]},{"a":11813,"t":"byte","b":[17,60,7,254,137,74,17,32]},{"a":11821,"t":"byte","b":[7,254,137,75,131,11,129,21]},{"a":11829,"t":"byte","b":[5,11,17,31,7,254,137,75]},{"a":11837,"t":"byte","b":[130,11,17,60,7,254,137,75]},{"a":11845,"t":"byte","b":[17,32,7,254,17,8,255]},{"a":11852,"l":"ACTION_SCRIPT_40","c":"Action bytecode data for table index(es) $40; bounded by the next distinct pointer.","t":"byte","b":[137,74,130,11,129,21,5,11]},{"a":11860,"t":"byte","b":[17,31,7,254,137,74,131,11]},{"a":11868,"t":"byte","b":[17,61,7,254,137,74,17,32]},{"a":11876,"t":"byte","b":[7,254,137,75,130,11,129,21]},{"a":11884,"t":"byte","b":[5,11,17,31,7,254,137,75]},{"a":11892,"t":"byte","b":[131,11,17,61,7,254,137,75]},{"a":11900,"t":"byte","b":[17,32,7,254,17,8,255]},{"a":11907,"l":"ACTION_SCRIPT_0B","c":"Action bytecode data for table index(es) $0B; bounded by the next distinct pointer.","t":"byte","b":[128,47,135,48,3,8,4,1]},{"a":11915,"t":"byte","b":[48,250,7,254,3,255]},{"a":11921,"l":"ACTION_SCRIPT_41","c":"Action bytecode data for table index(es) $41; bounded by the next distinct pointer.","t":"byte","b":[137,59,129,27,5,14,8,12]},{"a":11929,"t":"byte","b":[27,25,77,2,28,7,254,137]},{"a":11937,"t":"byte","b":[59,17,10,7,254,129,27,17]},{"a":11945,"t":"byte","b":[55,7,254,17,3,255]},{"a":11951,"l":"ACTION_SCRIPT_11","c":"Action bytecode data for table index(es) $11; bounded by the next distinct pointer.","t":"byte","b":[128,27,3,6,14,7,254,3]},{"a":11959,"t":"byte","b":[255]},{"a":11960,"l":"ACTION_SCRIPT_42","c":"Action bytecode data for table index(es) $42; bounded by the next distinct pointer.","t":"byte","b":[137,122,8,7,255]},{"a":11965,"l":"ACTION_SCRIPT_43","c":"Action bytecode data for table index(es) $43; bounded by the next distinct pointer.","t":"byte","b":[137,122,131,19,5,19,8,8]},{"a":11973,"t":"byte","b":[7,254,137,122,17,60,7,254]},{"a":11981,"t":"byte","b":[17,31,17,34,255]},{"a":11986,"l":"ACTION_SCRIPT_44","c":"Action bytecode data for table index(es) $44; bounded by the next distinct pointer.","t":"byte","b":[17,31,17,34,255]},{"a":11991,"l":"ACTION_SCRIPT_1A","c":"Action bytecode data for table index(es) $1A; bounded by the next distinct pointer.","t":"byte","b":[5,18,255]},{"a":11994,"l":"ACTION_SCRIPT_45","c":"Action bytecode data for table index(es) $45; bounded by the next distinct pointer.","t":"byte","b":[137,81,129,17,131,20,5,20]},{"a":12002,"t":"byte","b":[17,31,7,254,17,3,255,255]},{"a":12010,"t":"byte","b":[0,128,255,255,0,0,255,255]},{"a":12018,"t":"byte","b":[0,128,255,255,0,0,255,255]},{"a":12026,"t":"byte","b":[0,0,255,239,0,64]},{"a":12032,"l":"ROOM_TEXT_TABLE_PTR","c":"Pointer to ROOM_TEXT_POINTERS, indexed by room id relative to the current part base.","t":"word","b":[58,55],"d":[14138],"x":[2943]},{"a":12033,"t":"note","l":"a_2F01","c":"High byte $37 of ROOM_TEXT_TABLE_PTR, the little-endian pointer at $2F00 whose captured value is $373A. Low byte and pointer purpose are described at $2F00.","note":"inside the item at $2F00","x":[2950]},{"a":12034,"l":"EVENT_TEXT_TABLE_PTR","c":"Pointer to EVENT_TEXT_POINTERS used by the alternate compressed-text print path at $09D7.","t":"word","b":[164,48],"d":[12452],"x":[2548]},{"a":12035,"t":"note","l":"a_2F03","c":"High byte $30 of EVENT_TEXT_TABLE_PTR, the little-endian pointer at $2F02 whose captured value is $30A4. Low byte and pointer purpose are described at $2F02.","note":"inside the item at $2F02","x":[2555]},{"a":12036,"l":"ROOM_SCRIPT_TABLE_PTR","c":"Pointer to ROOM_SCRIPT_POINTERS, indexed by room id relative to the current part base.","t":"word","b":[75,47],"d":[12107],"x":[5307]},{"a":12037,"t":"note","l":"a_2F05","c":"High byte $2F of ROOM_SCRIPT_TABLE_PTR, the little-endian pointer at $2F04 whose captured value is $2F4B. Low byte and pointer purpose are described at $2F04.","note":"inside the item at $2F04","x":[5314]},{"a":12038,"l":"PART_GLOBAL_TURN_SCRIPT","c":"PART_GLOBAL_TURN_SCRIPT ($2F06-$2F4A) \u2014 the captured part's per-turn bytecode, run by PRINT_ROOM_DESCRIPTION between resident GLOBAL_TURN_SCRIPT and the current room script. Its fixed address follows the three part-local table pointers at $2F00-$2F05; the captured script terminates at $2F4A and ROOM_SCRIPT_POINTERS begins at $2F4B.\nThis captured copy drives the Gmork pursuit: it performs a one-shot setup through OBJ_FLAGS[2], arms OBJ_COUNTERS[3] to 30, consumes the lit-branch timer in OBJ_COUNTERS[4], advances pursuit on a comparison with VIC raster register $D012, emits event text at thresholds, and restarts when the counter expires. ACTION_SCRIPT_LIGHT_BRANCH at $2C05 initializes the branch timer consumed here. Replacement scripts at this logical address are outside the captured-occupant scope.","t":"byte","b":[131,2,5,2,1,1,251,4]},{"a":12046,"t":"byte","b":[3,30,254,134,30,14,4,254]},{"a":12054,"t":"byte","b":[134,30,132,4,8,22,25,80]},{"a":12062,"t":"byte","b":[2,1,30,253,254,134,1,136]},{"a":12070,"t":"byte","b":[50,14,3,254,134,1,133,3]},{"a":12078,"t":"byte","b":[10,14,3,8,3,16,10,254]},{"a":12086,"t":"byte","b":[134,1,133,3,1,8,4,16]},{"a":12094,"t":"byte","b":[10,254,134,1,132,3,8,5]},{"a":12102,"t":"byte","b":[16,10,26,20,255]},{"a":12107,"l":"ROOM_SCRIPT_POINTERS","c":"Forty-one room-entry/description bytecode pointers for the current part image.","t":"byte","b":[157,47,159,47,169,47,182,47]},{"a":12115,"t":"byte","b":[157,47,157,47,157,47,203,47]},{"a":12123,"t":"byte","b":[208,47,210,47,215,47,157,47]},{"a":12131,"t":"byte","b":[157,47,220,47,242,47,5,48]},{"a":12139,"t":"byte","b":[24,48,29,48,41,48,49,48]},{"a":12147,"t":"byte","b":[54,48,59,48,72,48,77,48]},{"a":12155,"t":"byte","b":[157,47,157,47,157,47,157,47]},{"a":12163,"t":"byte","b":[82,48,157,47,157,47,87,48]},{"a":12171,"t":"byte","b":[157,47,157,47,157,47,157,47]},{"a":12179,"t":"byte","b":[92,48,103,48,157,47,130,48]},{"a":12187,"t":"byte","b":[144,48]},{"a":12189,"l":"ROOM_SCRIPT_00","c":"Room bytecode data for table index(es) $00, $04, $05, $06, $0B, $0C, $18, $19, $1A, $1B, $1D, $1E, $20, $21, $22, $23, $26; bounded by the next distinct pointer.","t":"byte","b":[7,255]},{"a":12191,"l":"ROOM_SCRIPT_01","c":"Room bytecode data for table index(es) $01; bounded by the next distinct pointer.","t":"byte","b":[128,11,8,0,1,11,2,16]},{"a":12199,"t":"byte","b":[3,255]},{"a":12201,"l":"ROOM_SCRIPT_02","c":"Room bytecode data for table index(es) $02; bounded by the next distinct pointer.","t":"byte","b":[128,12,8,1,1,12,3,1]},{"a":12209,"t":"byte","b":[11,3,16,2,255]},{"a":12214,"l":"ROOM_SCRIPT_03","c":"Room bytecode data for table index(es) $03; bounded by the next distinct pointer.","t":"byte","b":[128,10,8,2,1,10,253,1]},{"a":12222,"t":"byte","b":[11,253,1,12,253,16,1,8]},{"a":12230,"t":"byte","b":[6,1,0,3,255]},{"a":12235,"l":"ROOM_SCRIPT_07","c":"Room bytecode data for table index(es) $07; bounded by the next distinct pointer.","t":"byte","b":[130,0,16,6,255]},{"a":12240,"l":"ROOM_SCRIPT_08","c":"Room bytecode data for table index(es) $08; bounded by the next distinct pointer.","t":"byte","b":[7,255]},{"a":12242,"l":"ROOM_SCRIPT_09","c":"Room bytecode data for table index(es) $09; bounded by the next distinct pointer.","t":"byte","b":[130,0,16,6,255]},{"a":12247,"l":"ROOM_SCRIPT_0A","c":"Room bytecode data for table index(es) $0A; bounded by the next distinct pointer.","t":"byte","b":[130,0,16,6,255]},{"a":12252,"l":"ROOM_SCRIPT_0D","c":"Room bytecode data for table index(es) $0D; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,254,13,2,254]},{"a":12260,"t":"byte","b":[133,2,1,8,11,254,133,2]},{"a":12268,"t":"byte","b":[3,8,12,26,20,255]},{"a":12274,"l":"ROOM_SCRIPT_0E","c":"Room bytecode data for table index(es) $0E; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,254,130,0,8]},{"a":12282,"t":"byte","b":[7,16,8,1,37,253,6,0]},{"a":12290,"t":"byte","b":[23,250,255]},{"a":12293,"l":"ROOM_SCRIPT_0F","c":"Room bytecode data for table index(es) $0F; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,254,130,0,8]},{"a":12301,"t":"byte","b":[7,16,8,1,37,253,6,0]},{"a":12309,"t":"byte","b":[23,250,255]},{"a":12312,"l":"ROOM_SCRIPT_10","c":"Room bytecode data for table index(es) $10; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,255]},{"a":12317,"l":"ROOM_SCRIPT_11","c":"Room bytecode data for table index(es) $11; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,254,131,3,5]},{"a":12325,"t":"byte","b":[3,8,10,255]},{"a":12329,"l":"ROOM_SCRIPT_12","c":"Room bytecode data for table index(es) $12; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,4,2,0,255]},{"a":12337,"l":"ROOM_SCRIPT_13","c":"Room bytecode data for table index(es) $13; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,255]},{"a":12342,"l":"ROOM_SCRIPT_14","c":"Room bytecode data for table index(es) $14; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,255]},{"a":12347,"l":"ROOM_SCRIPT_15","c":"Room bytecode data for table index(es) $15; bounded by the next distinct pointer.","t":"byte","b":[136,125,24,22,8,8,7,254]},{"a":12355,"t":"byte","b":[24,20,8,8,255]},{"a":12360,"l":"ROOM_SCRIPT_16","c":"Room bytecode data for table index(es) $16; bounded by the next distinct pointer.","t":"byte","b":[14,1,8,9,255]},{"a":12365,"l":"ROOM_SCRIPT_17","c":"Room bytecode data for table index(es) $17; bounded by the next distinct pointer.","t":"byte","b":[128,36,16,20,255]},{"a":12370,"l":"ROOM_SCRIPT_1C","c":"Room bytecode data for table index(es) $1C; bounded by the next distinct pointer.","t":"byte","b":[130,0,16,6,255]},{"a":12375,"l":"ROOM_SCRIPT_1F","c":"Room bytecode data for table index(es) $1F; bounded by the next distinct pointer.","t":"byte","b":[128,5,16,16,255]},{"a":12380,"l":"ROOM_SCRIPT_24","c":"Room bytecode data for table index(es) $24; bounded by the next distinct pointer.","t":"byte","b":[1,6,250,254,131,4,5,4]},{"a":12388,"t":"byte","b":[8,15,255]},{"a":12391,"l":"ROOM_SCRIPT_25","c":"Room bytecode data for table index(es) $25; bounded by the next distinct pointer.","t":"byte","b":[1,6,250,254,128,9,1,9]},{"a":12399,"t":"byte","b":[253,8,14,254,128,36,8,16]},{"a":12407,"t":"byte","b":[254,129,8,8,18,25,58,2]},{"a":12415,"t":"byte","b":[14,1,255]},{"a":12418,"l":"ROOM_SCRIPT_27","c":"Room bytecode data for table index(es) $27; bounded by the next distinct pointer.","t":"byte","b":[8,17,6,5,254,131,5,136]},{"a":12426,"t":"byte","b":[25,5,5,8,26,255]},{"a":12432,"l":"ROOM_SCRIPT_28","c":"Room bytecode data for table index(es) $28; bounded by the next distinct pointer.","t":"byte","b":[131,1,1,5,250,27,25,55]},{"a":12440,"t":"byte","b":[3,28,254,26,8,25,16,17]},{"a":12448,"t":"byte","b":[26,254,31,255]},{"a":12452,"l":"EVENT_TEXT_POINTERS","c":"Twenty-eight pointers to compressed narrative/event text blocks.","t":"byte","b":[220,48,32,49,140,49,238,49]},{"a":12460,"t":"byte","b":[54,50,101,50,163,50,187,50]},{"a":12468,"t":"byte","b":[224,50,6,51,26,51,127,51]},{"a":12476,"t":"byte","b":[161,51,192,51,229,51,134,52]},{"a":12484,"t":"byte","b":[243,52,35,53,62,53,123,53]},{"a":12492,"t":"byte","b":[189,53,198,53,225,53,254,53]},{"a":12500,"t":"byte","b":[33,54,62,54,189,54,210,54]},{"a":12508,"l":"EVENT_TEXT_00","c":"Event text data for table index(es) $00; bounded by the next distinct pointer.","t":"byte","b":[82,111,99,107,98,105,116,101]},{"a":12516,"t":"byte","b":[114,84,101,108,108,115,221,133]},{"a":12524,"t":"byte","b":[72,101,132,77,97,107,105,110]},{"a":12532,"t":"byte","b":[103,72,105,115,87,97,121,141]},{"a":12540,"t":"byte","b":[128,196,141,84,101,108,108,128]},{"a":12548,"t":"byte","b":[214,65,98,111,117,116,128,175]},{"a":12556,"t":"byte","b":[203,186,84,104,101,110,83,99]},{"a":12564,"t":"byte","b":[117,114,114,105,101,115,142,204]},{"a":12572,"t":"byte","b":[128,138,46,64]},{"a":12576,"l":"EVENT_TEXT_01","c":"Event text data for table index(es) $01; bounded by the next distinct pointer.","t":"byte","b":[84,101,101,110,121,119,101,101]},{"a":12584,"t":"byte","b":[110,121,132,134,198,66,105,103]},{"a":12592,"t":"byte","b":[80,97,110,105,99,66,101,99]},{"a":12600,"t":"byte","b":[97,117,115,101,72,105,115,76]},{"a":12608,"t":"byte","b":[97,110,100,187,65,108,114,101]},{"a":12616,"t":"byte","b":[97,100,121,66,101,101,110,65]},{"a":12624,"t":"byte","b":[108,109,111,115,116,84,111,116]},{"a":12632,"t":"byte","b":[97,108,108,121,67,111,110,115]},{"a":12640,"t":"byte","b":[117,109,101,100,213,128,175,186]},{"a":12648,"t":"byte","b":[72,101,186,215,68,105,115,97]},{"a":12656,"t":"byte","b":[112,112,101,97,114,204,128,138]},{"a":12664,"t":"byte","b":[87,105,116,104,111,117,116,87]},{"a":12672,"t":"byte","b":[97,105,116,105,110,103,70,111]},{"a":12680,"t":"byte","b":[114,221,46,64]},{"a":12684,"l":"EVENT_TEXT_02","c":"Event text data for table index(es) $02; bounded by the next distinct pointer.","t":"byte","b":[139,65,114,114,105,118,101,212]},{"a":12692,"t":"byte","b":[134,84,105,109,101,141,67,97]},{"a":12700,"t":"byte","b":[116,99,104,65,71,108,105,109]},{"a":12708,"t":"byte","b":[112,115,101,136,78,105,103,104]},{"a":12716,"t":"byte","b":[116,104,111,98,70,108,121,105]},{"a":12724,"t":"byte","b":[110,103,79,110,72,105,115,66]},{"a":12732,"t":"byte","b":[97,116,66,101,102,111,114,101]},{"a":12740,"t":"byte","b":[153,84,104,114,101,101,136,128]},{"a":12748,"t":"byte","b":[77,101,115,115,101,110,103,101]},{"a":12756,"t":"byte","b":[114,115,68,105,115,97,112,112]},{"a":12764,"t":"byte","b":[101,97,114,204,128,66,97,115]},{"a":12772,"t":"byte","b":[101,136,128,84,111,119,101,114]},{"a":12780,"t":"byte","b":[46,64]},{"a":12782,"l":"EVENT_TEXT_03","c":"Event text data for table index(es) $03; bounded by the next distinct pointer.","t":"byte","b":[71,109,111,114,107,203,128,71]},{"a":12790,"t":"byte","b":[114,101,97,116,87,111,108,102]},{"a":12798,"t":"byte","b":[203,132,71,97,105,110,105,110]},{"a":12806,"t":"byte","b":[103,79,110,221,46,83,111,109]},{"a":12814,"t":"byte","b":[101,116,105,109,101,115,221,84]},{"a":12822,"t":"byte","b":[104,105,110,107,221,151,72,101]},{"a":12830,"t":"byte","b":[97,114,72,105,109,134,128,68]},{"a":12838,"t":"byte","b":[105,115,116,97,110,99,101,66]},{"a":12846,"t":"byte","b":[101,104,105,110,100,221,46,64]},{"a":12854,"l":"EVENT_TEXT_04","c":"Event text data for table index(es) $04; bounded by the next distinct pointer.","t":"byte","b":[71,109,111,114,107,132,65,108]},{"a":12862,"t":"byte","b":[109,111,115,116,157,84,111,112]},{"a":12870,"t":"byte","b":[136,221,46,139,72,97,100,66]},{"a":12878,"t":"byte","b":[101,116,116,101,114,71,101,116]},{"a":12886,"t":"byte","b":[79,117,116,136,172,186,81,117]},{"a":12894,"t":"byte","b":[105,99,107,108,121,46,64]},{"a":12901,"l":"EVENT_TEXT_05","c":"Event text data for table index(es) $05; bounded by the next distinct pointer.","t":"byte","b":[71,109,111,114,107,187,67,97]},{"a":12909,"t":"byte","b":[117,103,104,116,85,112,87,105]},{"a":12917,"t":"byte","b":[116,104,221,186,67,111,110,115]},{"a":12925,"t":"byte","b":[117,109,101,100,221,134,128,83]},{"a":12933,"t":"byte","b":[97,109,101,87,97,121,133,202]},{"a":12941,"t":"byte","b":[87,105,108,108,78,111,119,66]},{"a":12949,"t":"byte","b":[101,67,111,110,115,117,109,101]},{"a":12957,"t":"byte","b":[100,213,128,175,46,64]},{"a":12963,"l":"EVENT_TEXT_06","c":"Event text data for table index(es) $06; bounded by the next distinct pointer.","t":"byte","b":[83,111,109,101,116,104,105,110]},{"a":12971,"t":"byte","b":[103,83,104,105,110,121,70,97]},{"a":12979,"t":"byte","b":[108,108,115,141,128,210,33,64]},{"a":12987,"l":"EVENT_TEXT_07","c":"Event text data for table index(es) $07; bounded by the next distinct pointer.","t":"byte","b":[182,160,132,84,111,111,83,116]},{"a":12995,"t":"byte","b":[114,111,110,103,70,111,114,65]},{"a":13003,"t":"byte","b":[114,116,97,120,186,72,101,83]},{"a":13011,"t":"byte","b":[105,110,107,115,204,128,83,119]},{"a":13019,"t":"byte","b":[97,109,112,33,64]},{"a":13024,"l":"EVENT_TEXT_08","c":"Event text data for table index(es) $08; bounded by the next distinct pointer.","t":"byte","b":[201,132,86,101,114,121,73,114]},{"a":13032,"t":"byte","b":[114,105,116,97,98,108,101,186]},{"a":13040,"t":"byte","b":[72,101,84,104,114,111,119,115]},{"a":13048,"t":"byte","b":[221,142,72,105,115,66,97,99]},{"a":13056,"t":"byte","b":[107,204,128,159,33,64]},{"a":13062,"l":"EVENT_TEXT_09","c":"Event text data for table index(es) $09; bounded by the next distinct pointer.","t":"byte","b":[182,160,132,83,97,112,112,105]},{"a":13070,"t":"byte","b":[110,103,89,111,117,114,87,105]},{"a":13078,"t":"byte","b":[108,108,33,64]},{"a":13082,"l":"EVENT_TEXT_0A","c":"Event text data for table index(es) $0A; bounded by the next distinct pointer.","t":"byte","b":[201,128,65,110,99,105,101,110]},{"a":13090,"t":"byte","b":[116,79,110,101,68,105,115,108]},{"a":13098,"t":"byte","b":[105,107,101,115,86,105,115,105]},{"a":13106,"t":"byte","b":[116,111,114,115,73,110,116,101]},{"a":13114,"t":"byte","b":[110,115,101,108,121,154,212,141]},{"a":13122,"t":"byte","b":[71,101,116,82,105,100,136,221]},{"a":13130,"t":"byte","b":[72,101,84,101,108,108,115,221]},{"a":13138,"t":"byte","b":[133,128,184,80,101,114,115,111]},{"a":13146,"t":"byte","b":[110,87,104,111,151,72,101,108]},{"a":13154,"t":"byte","b":[112,134,89,111,117,114,81,117]},{"a":13162,"t":"byte","b":[101,115,116,132,128,83,111,117]},{"a":13170,"t":"byte","b":[116,104,101,114,110,79,114,97]},{"a":13178,"t":"byte","b":[99,108,101,33,64]},{"a":13183,"l":"EVENT_TEXT_0B","c":"Event text data for table index(es) $0B; bounded by the next distinct pointer.","t":"byte","b":[84,104,105,115,81,117,105,99]},{"a":13191,"t":"byte","b":[107,115,97,110,100,132,69,118]},{"a":13199,"t":"byte","b":[101,110,83,116,105,99,107,105]},{"a":13207,"t":"byte","b":[101,114,84,104,97,110,128,159]},{"a":13215,"t":"byte","b":[46,64]},{"a":13217,"l":"EVENT_TEXT_0C","c":"Event text data for table index(es) $0C; bounded by the next distinct pointer.","t":"byte","b":[182,81,117,105,99,107,115,97]},{"a":13225,"t":"byte","b":[110,100,67,108,97,105,109,115]},{"a":13233,"t":"byte","b":[65,110,111,116,104,101,114,86]},{"a":13241,"t":"byte","b":[105,99,116,105,109,33,64]},{"a":13248,"l":"EVENT_TEXT_0D","c":"Event text data for table index(es) $0D; bounded by the next distinct pointer.","t":"byte","b":[182,208,141,128,84,117,110,110]},{"a":13256,"t":"byte","b":[101,108,132,66,108,111,99,107]},{"a":13264,"t":"byte","b":[101,100,213,83,104,97,114,112]},{"a":13272,"t":"byte","b":[84,104,111,114,110,66,117,115]},{"a":13280,"t":"byte","b":[104,101,115,33,64]},{"a":13285,"l":"EVENT_TEXT_0E","c":"Event text data for table index(es) $0E; bounded by the next distinct pointer.","t":"byte","b":[216,84,97,107,101,115,128,67]},{"a":13293,"t":"byte","b":[114,121,115,116,97,108,186,80]},{"a":13301,"t":"byte","b":[108,97,99,101,115,73,116,71]},{"a":13309,"t":"byte","b":[101,110,116,108,121,134,128,84]},{"a":13317,"t":"byte","b":[101,108,101,115,99,111,112,101]},{"a":13325,"t":"byte","b":[46,192,84,104,97,110,107,221]},{"a":13333,"t":"byte","b":[72,101,69,120,112,108,97,105]},{"a":13341,"t":"byte","b":[110,115,65,98,111,117,116,128]},{"a":13349,"t":"byte","b":[208,141,128,83,111,117,116,104]},{"a":13357,"t":"byte","b":[101,114,110,79,114,97,99,108]},{"a":13365,"t":"byte","b":[101,46,65,112,112,97,114,101]},{"a":13373,"t":"byte","b":[110,116,108,121,157,82,97,114]},{"a":13381,"t":"byte","b":[101,79,99,99,97,115,105,111]},{"a":13389,"t":"byte","b":[110,115,128,83,116,111,110,121]},{"a":13397,"t":"byte","b":[69,121,101,115,136,128,83,112]},{"a":13405,"t":"byte","b":[104,105,110,120,101,115,87,105]},{"a":13413,"t":"byte","b":[108,108,66,108,105,110,107,186]},{"a":13421,"t":"byte","b":[193,132,184,84,104,101,110,133]},{"a":13429,"t":"byte","b":[221,77,97,121,212,71,101,116]},{"a":13437,"t":"byte","b":[84,104,114,111,117,103,104,33]},{"a":13445,"t":"byte","b":[64]},{"a":13446,"l":"EVENT_TEXT_0F","c":"Event text data for table index(es) $0F; bounded by the next distinct pointer.","t":"byte","b":[216,128,71,110,111,109,105,99]},{"a":13454,"t":"byte","b":[132,198,71,114,101,97,116,69]},{"a":13462,"t":"byte","b":[120,112,101,114,116,157,128,79]},{"a":13470,"t":"byte","b":[114,97,99,108,101,186,72,101]},{"a":13478,"t":"byte","b":[83,97,121,115,133,72,101,87]},{"a":13486,"t":"byte","b":[105,108,108,84,101,108,108,221]},{"a":13494,"t":"byte","b":[72,111,119,141,71,101,116,84]},{"a":13502,"t":"byte","b":[104,114,111,117,103,104,128,208]},{"a":13510,"t":"byte","b":[83,97,102,101,108,121,73,102]},{"a":13518,"t":"byte","b":[221,151,70,105,110,100,72,105]},{"a":13526,"t":"byte","b":[109,65,78,101,119,67,114,121]},{"a":13534,"t":"byte","b":[115,116,97,108,70,111,114,72]},{"a":13542,"t":"byte","b":[105,115,84,101,108,101,115,99]},{"a":13550,"t":"byte","b":[111,112,101,46,64]},{"a":13555,"l":"EVENT_TEXT_10","c":"Event text data for table index(es) $10; bounded by the next distinct pointer.","t":"byte","b":[216,83,97,121,115,84,104,97]},{"a":13563,"t":"byte","b":[116,39,115,78,111,71,111,111]},{"a":13571,"t":"byte","b":[100,33,89,111,117,39,108,108]},{"a":13579,"t":"byte","b":[72,97,118,101,141,71,101,116]},{"a":13587,"t":"byte","b":[193,79,117,116,136,133,66,111]},{"a":13595,"t":"byte","b":[120,70,105,114,115,116,33,64]},{"a":13603,"l":"EVENT_TEXT_11","c":"Event text data for table index(es) $11; bounded by the next distinct pointer.","t":"byte","b":[73,72,111,112,101,221,75,110]},{"a":13611,"t":"byte","b":[111,119,87,104,97,116,89,111]},{"a":13619,"t":"byte","b":[117,39,114,101,68,111,105,110]},{"a":13627,"t":"byte","b":[103,33,64]},{"a":13630,"l":"EVENT_TEXT_12","c":"Event text data for table index(es) $12; bounded by the next distinct pointer.","t":"byte","b":[216,71,101,116,115,86,101,114]},{"a":13638,"t":"byte","b":[121,65,110,103,114,121,87,105]},{"a":13646,"t":"byte","b":[116,104,221,186,65,108,109,111]},{"a":13654,"t":"byte","b":[115,116,75,110,111,99,107,115]},{"a":13662,"t":"byte","b":[221,79,118,101,114,185,72,101]},{"a":13670,"t":"byte","b":[71,114,97,98,115,128,84,101]},{"a":13678,"t":"byte","b":[108,101,115,99,111,112,101,66]},{"a":13686,"t":"byte","b":[97,99,107,33,64]},{"a":13691,"l":"EVENT_TEXT_13","c":"Event text data for table index(es) $13; bounded by the next distinct pointer.","t":"byte","b":[70,105,114,101,121,66,111,108]},{"a":13699,"t":"byte","b":[116,115,66,117,114,115,116,70]},{"a":13707,"t":"byte","b":[111,114,116,104,194,128,83,112]},{"a":13715,"t":"byte","b":[104,105,110,120,101,115,69,121]},{"a":13723,"t":"byte","b":[101,115,186,129,68,105,115,97]},{"a":13731,"t":"byte","b":[112,112,101,97,114,115,134,170]},{"a":13739,"t":"byte","b":[69,110,111,114,109,111,117,115]},{"a":13747,"t":"byte","b":[70,105,114,101,98,97,108,108]},{"a":13755,"t":"byte","b":[33,64]},{"a":13757,"l":"EVENT_TEXT_14","c":"Event text data for table index(es) $14; bounded by the next distinct pointer.","t":"byte","b":[139,212,77,97,100,101,193,33]},{"a":13765,"t":"byte","b":[64]},{"a":13766,"l":"EVENT_TEXT_15","c":"Event text data for table index(es) $15; bounded by the next distinct pointer.","t":"byte","b":[182,66,117,115,104,101,115,66]},{"a":13774,"t":"byte","b":[108,97,122,101,66,114,105,101]},{"a":13782,"t":"byte","b":[102,108,121,186,140,71,111,110]},{"a":13790,"t":"byte","b":[101,33,64]},{"a":13793,"l":"EVENT_TEXT_16","c":"Event text data for table index(es) $16; bounded by the next distinct pointer.","t":"byte","b":[182,66,114,97,110,99,104,187]},{"a":13801,"t":"byte","b":[66,117,114,110,116,67,111,109]},{"a":13809,"t":"byte","b":[112,108,101,116,101,108,121,65]},{"a":13817,"t":"byte","b":[119,97,121,46,64]},{"a":13822,"l":"EVENT_TEXT_17","c":"Event text data for table index(es) $17; bounded by the next distinct pointer.","t":"byte","b":[139,72,97,118,101,110,39,116]},{"a":13830,"t":"byte","b":[71,111,116,65,110,121,116,104]},{"a":13838,"t":"byte","b":[105,110,103,141,76,105,103,104]},{"a":13846,"t":"byte","b":[116,84,104,101,109,87,105,116]},{"a":13854,"t":"byte","b":[104,33,64]},{"a":13857,"l":"EVENT_TEXT_18","c":"Event text data for table index(es) $18; bounded by the next distinct pointer.","t":"byte","b":[182,84,114,101,101,132,78,111]},{"a":13865,"t":"byte","b":[116,83,116,114,111,110,103,69]},{"a":13873,"t":"byte","b":[110,111,117,103,104,141,67,108]},{"a":13881,"t":"byte","b":[105,109,98,33,64]},{"a":13886,"l":"EVENT_TEXT_19","c":"Event text data for table index(es) $19; bounded by the next distinct pointer.","t":"byte","b":[182,83,105,110,103,105,110,103]},{"a":13894,"t":"byte","b":[86,111,105,99,101,136,128,83]},{"a":13902,"t":"byte","b":[111,117,116,104,101,114,110,79]},{"a":13910,"t":"byte","b":[114,97,99,108,101,70,105,108]},{"a":13918,"t":"byte","b":[108,115,128,65,105,114,46,73]},{"a":13926,"t":"byte","b":[116,84,101,108,108,115,221,133]},{"a":13934,"t":"byte","b":[141,70,105,110,100,128,83,97]},{"a":13942,"t":"byte","b":[118,105,111,117,114,136,202,221]},{"a":13950,"t":"byte","b":[77,117,115,116,76,111,111,107]},{"a":13958,"t":"byte","b":[66,101,121,111,110,100,128,67]},{"a":13966,"t":"byte","b":[111,110,102,105,110,101,115,136]},{"a":13974,"t":"byte","b":[169,87,111,114,108,100,33,203]},{"a":13982,"t":"byte","b":[186,83,111,129,70,108,105,101]},{"a":13990,"t":"byte","b":[115,142,157,130,141,67,111,110]},{"a":13998,"t":"byte","b":[116,105,110,117,101,72,105,115]},{"a":14006,"t":"byte","b":[81,117,101,115,116,46,64]},{"a":14013,"l":"EVENT_TEXT_1A","c":"Event text data for table index(es) $1A; bounded by the next distinct pointer.","t":"byte","b":[182,83,112,104,105,110,120,101]},{"a":14021,"t":"byte","b":[115,39,69,121,101,115,66,108]},{"a":14029,"t":"byte","b":[105,110,107,33,64]},{"a":14034,"l":"EVENT_TEXT_1B","c":"Event text data for table index(es) $1B; bounded by the next distinct pointer.","t":"byte","b":[67,97,105,114,111,110,128,80]},{"a":14042,"t":"byte","b":[104,121,115,105,99,105,97,110]},{"a":14050,"t":"byte","b":[69,120,112,108,97,105,110,115]},{"a":14058,"t":"byte","b":[141,128,71,97,116,104,101,114]},{"a":14066,"t":"byte","b":[101,100,80,101,111,112,108,101]},{"a":14074,"t":"byte","b":[115,136,202,84,104,101,105,114]},{"a":14082,"t":"byte","b":[78,101,101,100,70,111,114,65]},{"a":14090,"t":"byte","b":[71,114,101,97,116,72,101,114]},{"a":14098,"t":"byte","b":[111,141,83,97,118,101,84,104]},{"a":14106,"t":"byte","b":[101,109,194,128,175,87,104,105]},{"a":14114,"t":"byte","b":[99,104,132,68,101,115,116,114]},{"a":14122,"t":"byte","b":[111,121,105,110,103,84,104,101]},{"a":14130,"t":"byte","b":[105,114,76,97,110,100,33,64]},{"a":14138,"l":"ROOM_TEXT_POINTERS","c":"Forty-one pointers to compressed room-description text blocks.","t":"byte","b":[140,55,192,55,18,56,58,56]},{"a":14146,"t":"byte","b":[136,56,164,56,243,56,135,57]},{"a":14154,"t":"byte","b":[201,57,31,58,98,58,163,58]},{"a":14162,"t":"byte","b":[210,58,32,59,108,59,0,60]},{"a":14170,"t":"byte","b":[66,60,130,60,37,61,37,61]},{"a":14178,"t":"byte","b":[70,61,119,61,201,61,18,62]},{"a":14186,"t":"byte","b":[57,62,100,62,139,62,183,62]},{"a":14194,"t":"byte","b":[209,62,0,63,113,63,146,63]},{"a":14202,"t":"byte","b":[199,63,30,64,121,64,206,64]},{"a":14210,"t":"byte","b":[27,65,128,65,244,65,76,66]},{"a":14218,"t":"byte","b":[182,66]},{"a":14220,"l":"ROOM_TEXT_00","c":"Room text data for table index(es) $00; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,115,39]},{"a":14228,"t":"byte","b":[72,111,109,101,46,182,82,101]},{"a":14236,"t":"byte","b":[101,100,67,111,110,115,116,114]},{"a":14244,"t":"byte","b":[117,99,116,101,100,72,117,116]},{"a":14252,"t":"byte","b":[132,83,112,97,114,115,101,108]},{"a":14260,"t":"byte","b":[121,70,117,114,110,105,115,104]},{"a":14268,"t":"byte","b":[101,100,46,64]},{"a":14272,"l":"ROOM_TEXT_01","c":"Room text data for table index(es) $01; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,134]},{"a":14280,"t":"byte","b":[198,166,67,108,101,97,114,105]},{"a":14288,"t":"byte","b":[110,103,134,128,77,105,100,100]},{"a":14296,"t":"byte","b":[108,101,136,128,137,138,46,131]},{"a":14304,"t":"byte","b":[132,65,67,97,109,112,102,105]},{"a":14312,"t":"byte","b":[114,101,66,117,114,110,105,110]},{"a":14320,"t":"byte","b":[103,66,114,105,103,104,116,108]},{"a":14328,"t":"byte","b":[121,134,128,191,136,128,67,108]},{"a":14336,"t":"byte","b":[101,97,114,105,110,103,186,198]},{"a":14344,"t":"byte","b":[166,138,199,165,142,141,128,144]},{"a":14352,"t":"byte","b":[46,64]},{"a":14354,"l":"ROOM_TEXT_02","c":"Room text data for table index(es) $02; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,197,134,128,138]},{"a":14362,"t":"byte","b":[46,65,166,199,82,117,110,115]},{"a":14370,"t":"byte","b":[148,186,141,128,145,128,138,65]},{"a":14378,"t":"byte","b":[112,112,101,97,114,115,141,84]},{"a":14386,"t":"byte","b":[104,105,110,79,117,116,46,64]},{"a":14394,"l":"ROOM_TEXT_03","c":"Room text data for table index(es) $03; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,158]},{"a":14402,"t":"byte","b":[128,66,97,115,101,136,128,196]},{"a":14410,"t":"byte","b":[46,131,140,80,97,116,104,119]},{"a":14418,"t":"byte","b":[97,121,115,72,101,97,100,105]},{"a":14426,"t":"byte","b":[110,103,142,134,153,68,105,114]},{"a":14434,"t":"byte","b":[101,99,116,105,111,110,115,134]},{"a":14442,"t":"byte","b":[141,128,137,138,154,155,68,111]},{"a":14450,"t":"byte","b":[101,115,110,39,116,65,112,112]},{"a":14458,"t":"byte","b":[101,97,114,141,156,65,110,121]},{"a":14466,"t":"byte","b":[87,97,121,134,46,64]},{"a":14472,"l":"ROOM_TEXT_04","c":"Room text data for table index(es) $04; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,157,198,177,84]},{"a":14480,"t":"byte","b":[114,111,100,100,101,110,138,200]},{"a":14488,"t":"byte","b":[82,117,110,110,105,110,103,145]},{"a":14496,"t":"byte","b":[209,149,46,64]},{"a":14500,"l":"ROOM_TEXT_05","c":"Room text data for table index(es) $05; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,157]},{"a":14508,"t":"byte","b":[128,69,97,115,116,101,114,110]},{"a":14516,"t":"byte","b":[66,111,114,100,101,114,136,128]},{"a":14524,"t":"byte","b":[137,138,46,84,111,128,145,140]},{"a":14532,"t":"byte","b":[128,71,114,97,115,115,121,80]},{"a":14540,"t":"byte","b":[108,97,105,110,115,136,65,116]},{"a":14548,"t":"byte","b":[114,101,121,117,39,115,72,111]},{"a":14556,"t":"byte","b":[109,101,108,97,110,100,186,198]},{"a":14564,"t":"byte","b":[200,69,110,116,101,114,115,128]},{"a":14572,"t":"byte","b":[137,138,141,128,149,46,64]},{"a":14579,"l":"ROOM_TEXT_06","c":"Room text data for table index(es) $06; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,134]},{"a":14587,"t":"byte","b":[128,191,136,72,105,115,72,111]},{"a":14595,"t":"byte","b":[109,101,86,105,108,108,97,103]},{"a":14603,"t":"byte","b":[101,46,65,108,108,65,114,111]},{"a":14611,"t":"byte","b":[117,110,100,140,128,71,114,97]},{"a":14619,"t":"byte","b":[115,115,72,117,116,115,66,101]},{"a":14627,"t":"byte","b":[108,111,110,103,105,110,103,141]},{"a":14635,"t":"byte","b":[128,80,101,111,112,108,101,136]},{"a":14643,"t":"byte","b":[128,80,108,97,105,110,115,46]},{"a":14651,"t":"byte","b":[84,104,101,71,114,97,115,115]},{"a":14659,"t":"byte","b":[121,79,99,101,97,110,136,128]},{"a":14667,"t":"byte","b":[80,108,97,105,110,115,83,116]},{"a":14675,"t":"byte","b":[114,101,116,99,104,101,115,185]},{"a":14683,"t":"byte","b":[70,97,114,185,128,69,121,101]},{"a":14691,"t":"byte","b":[151,152,134,153,68,105,114,101]},{"a":14699,"t":"byte","b":[99,116,105,111,110,115,46,192]},{"a":14707,"t":"byte","b":[128,148,132,128,72,117,116,66]},{"a":14715,"t":"byte","b":[101,108,111,110,103,105,110,103]},{"a":14723,"t":"byte","b":[141,129,46,64]},{"a":14727,"l":"ROOM_TEXT_07","c":"Room text data for table index(es) $07; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,134,128,69,97]},{"a":14735,"t":"byte","b":[115,116,101,114,110,80,108,97]},{"a":14743,"t":"byte","b":[105,110,115,46,84,111,128,145]},{"a":14751,"t":"byte","b":[186,147,221,151,212,152,128,83]},{"a":14759,"t":"byte","b":[110,111,119,45,99,111,118,101]},{"a":14767,"t":"byte","b":[114,101,100,84,111,112,115,136]},{"a":14775,"t":"byte","b":[128,83,105,108,118,101,114,77]},{"a":14783,"t":"byte","b":[111,117,110,116,97,105,110,115]},{"a":14791,"t":"byte","b":[46,64]},{"a":14793,"l":"ROOM_TEXT_08","c":"Room text data for table index(es) $08; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,70,111,111,116,104]},{"a":14801,"t":"byte","b":[105,108,108,115,136,128,83,105]},{"a":14809,"t":"byte","b":[108,118,101,114,77,111,117,110]},{"a":14817,"t":"byte","b":[116,97,105,110,115,46,73,116]},{"a":14825,"t":"byte","b":[68,111,101,115,110,39,116,76]},{"a":14833,"t":"byte","b":[111,111,107,80,111,115,115,105]},{"a":14841,"t":"byte","b":[98,108,101,141,71,111,65,110]},{"a":14849,"t":"byte","b":[121,70,117,114,116,104,101,114]},{"a":14857,"t":"byte","b":[145,154,155,132,198,166,84,117]},{"a":14865,"t":"byte","b":[110,110,101,108,165,164,204,128]},{"a":14873,"t":"byte","b":[82,111,99,107,46,64]},{"a":14879,"l":"ROOM_TEXT_09","c":"Room text data for table index(es) $09; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,134,128,191,136]},{"a":14887,"t":"byte","b":[128,77,97,105,110,80,97,115]},{"a":14895,"t":"byte","b":[116,117,114,101,76,97,110,100]},{"a":14903,"t":"byte","b":[85,115,101,100,213,128,71,114]},{"a":14911,"t":"byte","b":[101,101,110,115,107,105,110,115]},{"a":14919,"t":"byte","b":[70,111,114,84,104,101,105,114]},{"a":14927,"t":"byte","b":[72,101,114,100,115,136,87,105]},{"a":14935,"t":"byte","b":[108,100,66,117,102,102,97,108]},{"a":14943,"t":"byte","b":[111,46,64]},{"a":14946,"l":"ROOM_TEXT_0A","c":"Room text data for table index(es) $0A; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,76,111,110,103,44]},{"a":14954,"t":"byte","b":[67,111,117,114,115,101,114,71]},{"a":14962,"t":"byte","b":[114,97,115,115,136,128,78,111]},{"a":14970,"t":"byte","b":[114,116,104,101,114,110,80,108]},{"a":14978,"t":"byte","b":[97,105,110,115,83,117,114,114]},{"a":14986,"t":"byte","b":[111,117,110,100,115,221,46,192]},{"a":14994,"t":"byte","b":[128,149,128,137,138,151,212,156]},{"a":15002,"t":"byte","b":[77,97,100,101,79,117,116,46]},{"a":15010,"t":"byte","b":[64]},{"a":15011,"l":"ROOM_TEXT_0B","c":"Room text data for table index(es) $0B; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,158]},{"a":15019,"t":"byte","b":[128,78,111,114,116,104,101,114]},{"a":15027,"t":"byte","b":[110,69,100,103,101,136,128,137]},{"a":15035,"t":"byte","b":[138,46,65,166,68,97,114,107]},{"a":15043,"t":"byte","b":[200,76,101,97,100,115,134,141]},{"a":15051,"t":"byte","b":[128,138,141,128,148,46,64]},{"a":15058,"l":"ROOM_TEXT_0C","c":"Room text data for table index(es) $0C; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,200,84,104,114,111]},{"a":15066,"t":"byte","b":[117,103,104,128,138,132,83,111]},{"a":15074,"t":"byte","b":[102,116,85,110,100,101,114,102]},{"a":15082,"t":"byte","b":[111,111,116,172,46,192,128,143]},{"a":15090,"t":"byte","b":[128,71,111,105,110,103,76,111]},{"a":15098,"t":"byte","b":[111,107,115,69,118,101,110,87]},{"a":15106,"t":"byte","b":[111,114,115,101,185,128,84,114]},{"a":15114,"t":"byte","b":[101,101,115,71,105,118,101,87]},{"a":15122,"t":"byte","b":[97,121,141,83,119,97,109,112]},{"a":15130,"t":"byte","b":[108,97,110,100,46,64]},{"a":15136,"l":"ROOM_TEXT_0D","c":"Room text data for table index(es) $0D; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,83,116,97,110]},{"a":15144,"t":"byte","b":[100,105,110,103,134,198,167,83]},{"a":15152,"t":"byte","b":[116,105,99,107,121,80,97,116]},{"a":15160,"t":"byte","b":[99,104,136,81,117,105,99,107]},{"a":15168,"t":"byte","b":[115,97,110,100,46,73,116,87]},{"a":15176,"t":"byte","b":[111,117,108,100,66,101,87,105]},{"a":15184,"t":"byte","b":[115,101,141,71,101,116,79,117]},{"a":15192,"t":"byte","b":[116,79,102,172,185,83,111,111]},{"a":15200,"t":"byte","b":[110,185,80,111,115,115,105,98]},{"a":15208,"t":"byte","b":[108,101,46,64]},{"a":15212,"l":"ROOM_TEXT_0E","c":"Room text data for table index(es) $0E; bounded by the next distinct pointer.","t":"byte","b":[82,111,116,116,105,110,103,86]},{"a":15220,"t":"byte","b":[101,103,101,116,97,116,105,111]},{"a":15228,"t":"byte","b":[110,70,105,108,108,115,128,67]},{"a":15236,"t":"byte","b":[111,108,100,44,68,97,110,107]},{"a":15244,"t":"byte","b":[65,105,114,87,105,116,104,70]},{"a":15252,"t":"byte","b":[111,117,108,83,119,97,109,112]},{"a":15260,"t":"byte","b":[71,97,115,185,129,135,157,128]},{"a":15268,"t":"byte","b":[83,111,117,116,104,101,114,110]},{"a":15276,"t":"byte","b":[66,111,114,100,101,114,136,128]},{"a":15284,"t":"byte","b":[159,136,160,46,131,132,170,79]},{"a":15292,"t":"byte","b":[118,101,114,112,111,119,101,114]},{"a":15300,"t":"byte","b":[105,110,103,70,101,101,108,105]},{"a":15308,"t":"byte","b":[110,103,136,68,101,115,112,97]},{"a":15316,"t":"byte","b":[105,114,65,98,111,117,116,169]},{"a":15324,"t":"byte","b":[80,108,97,99,101,46,192,128]},{"a":15332,"t":"byte","b":[143,84,104,105,110,103,115,68]},{"a":15340,"t":"byte","b":[111,110,39,116,76,111,111,107]},{"a":15348,"t":"byte","b":[77,117,99,104,66,101,116,116]},{"a":15356,"t":"byte","b":[101,114,46,64]},{"a":15360,"l":"ROOM_TEXT_0F","c":"Room text data for table index(es) $0F; bounded by the next distinct pointer.","t":"byte","b":[83,97,100,110,101,115,115,70]},{"a":15368,"t":"byte","b":[105,108,108,115,129,185,72,101]},{"a":15376,"t":"byte","b":[135,75,110,101,101,68,101,101]},{"a":15384,"t":"byte","b":[112,134,86,105,108,101,83,119]},{"a":15392,"t":"byte","b":[97,109,112,87,97,116,101,114]},{"a":15400,"t":"byte","b":[46,182,159,69,120,116,101,110]},{"a":15408,"t":"byte","b":[100,150,186,198,200,134,141,128]},{"a":15416,"t":"byte","b":[137,138,72,101,97,100,115,146]},{"a":15424,"t":"byte","b":[46,64]},{"a":15426,"l":"ROOM_TEXT_10","c":"Room text data for table index(es) $10; bounded by the next distinct pointer.","t":"byte","b":[83,119,97,109,112,87,97,116]},{"a":15434,"t":"byte","b":[101,114,83,111,97,107,115,129]},{"a":15442,"t":"byte","b":[65,115,72,101,135,157,128,69]},{"a":15450,"t":"byte","b":[97,115,116,101,114,110,66,111]},{"a":15458,"t":"byte","b":[114,100,101,114,136,128,159,136]},{"a":15466,"t":"byte","b":[160,46,192,128,149,151,156,173]},{"a":15474,"t":"byte","b":[198,167,87,105,116,104,101,114]},{"a":15482,"t":"byte","b":[101,100,84,114,101,101,46,64]},{"a":15490,"l":"ROOM_TEXT_11","c":"Room text data for table index(es) $11; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,72,97]},{"a":15498,"t":"byte","b":[110,103,115,157,141,128,66,114]},{"a":15506,"t":"byte","b":[97,110,99,104,101,115,136,170]},{"a":15514,"t":"byte","b":[79,108,100,87,105,116,104,101]},{"a":15522,"t":"byte","b":[114,101,100,84,114,101,101,133]},{"a":15530,"t":"byte","b":[83,111,109,101,104,111,119,77]},{"a":15538,"t":"byte","b":[97,110,97,103,101,115,141,83]},{"a":15546,"t":"byte","b":[117,114,118,105,118,101,134,128]},{"a":15554,"t":"byte","b":[83,119,97,109,112,46,192,128]},{"a":15562,"t":"byte","b":[143,155,132,170,69,110,111,114]},{"a":15570,"t":"byte","b":[109,111,117,115,77,111,117,110]},{"a":15578,"t":"byte","b":[100,136,69,97,114,116,104,133]},{"a":15586,"t":"byte","b":[65,108,109,111,115,116,76,111]},{"a":15594,"t":"byte","b":[111,107,115,78,97,116,117,114]},{"a":15602,"t":"byte","b":[97,108,154,78,111,116,81,117]},{"a":15610,"t":"byte","b":[105,116,101,46,65,108,108,65]},{"a":15618,"t":"byte","b":[114,111,117,110,100,129,128,160]},{"a":15626,"t":"byte","b":[72,97,110,103,115,68,101,115]},{"a":15634,"t":"byte","b":[112,101,114,97,116,101,108,121]},{"a":15642,"t":"byte","b":[141,128,68,97,109,112,65,105]},{"a":15650,"t":"byte","b":[114,46,64]},{"a":15653,"l":"ROOM_TEXT_12","c":"Room text data for table index(es) $12, $13; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,159,136,160,46,129]},{"a":15661,"t":"byte","b":[151,152,78,111,67,108,101,97]},{"a":15669,"t":"byte","b":[114,80,97,116,104,115,84,104]},{"a":15677,"t":"byte","b":[114,111,117,103,104,128,159,46]},{"a":15685,"t":"byte","b":[64]},{"a":15686,"l":"ROOM_TEXT_14","c":"Room text data for table index(es) $14; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,159,136,160,46,192]},{"a":15694,"t":"byte","b":[128,145,65,116,114,101,121,117]},{"a":15702,"t":"byte","b":[39,115,200,132,66,108,111,99]},{"a":15710,"t":"byte","b":[107,101,100,213,198,167,71,114]},{"a":15718,"t":"byte","b":[97,115,115,67,111,118,101,114]},{"a":15726,"t":"byte","b":[101,100,77,111,117,110,100,46]},{"a":15734,"t":"byte","b":[64]},{"a":15735,"l":"ROOM_TEXT_15","c":"Room text data for table index(es) $15; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,65]},{"a":15743,"t":"byte","b":[116,111,112,128,166,77,111,117]},{"a":15751,"t":"byte","b":[110,116,97,105,110,133,132,201]},{"a":15759,"t":"byte","b":[128,65,110,99,105,101,110,116]},{"a":15767,"t":"byte","b":[79,110,101,44,128,79,108,100]},{"a":15775,"t":"byte","b":[101,115,116,73,110,104,97,98]},{"a":15783,"t":"byte","b":[105,116,97,110,116,136,202,46]},{"a":15791,"t":"byte","b":[192,128,143,129,151,152,128,67]},{"a":15799,"t":"byte","b":[97,118,101,133,132,77,111,114]},{"a":15807,"t":"byte","b":[108,97,115,39,72,111,109,101]},{"a":15815,"t":"byte","b":[46,64]},{"a":15817,"l":"ROOM_TEXT_16","c":"Room text data for table index(es) $16; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,159,136,160,46,66]},{"a":15825,"t":"byte","b":[108,111,99,107,105,110,103,128]},{"a":15833,"t":"byte","b":[87,97,121,141,128,149,132,198]},{"a":15841,"t":"byte","b":[167,85,110,110,97,116,117,114]},{"a":15849,"t":"byte","b":[97,108,76,111,111,107,105,110]},{"a":15857,"t":"byte","b":[103,72,105,108,108,46,182,83]},{"a":15865,"t":"byte","b":[119,97,109,112,76,111,111,107]},{"a":15873,"t":"byte","b":[115,80,97,115,115,97,98,108]},{"a":15881,"t":"byte","b":[101,141,128,147,186,148,195,46]},{"a":15889,"t":"byte","b":[64]},{"a":15890,"l":"ROOM_TEXT_17","c":"Room text data for table index(es) $17; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,134]},{"a":15898,"t":"byte","b":[128,191,136,77,111,114,108,97]},{"a":15906,"t":"byte","b":[115,39,67,97,118,101,46,131]},{"a":15914,"t":"byte","b":[132,198,166,84,117,110,110,101]},{"a":15922,"t":"byte","b":[108,134,128,143,190,46,64]},{"a":15929,"l":"ROOM_TEXT_18","c":"Room text data for table index(es) $18; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,158]},{"a":15937,"t":"byte","b":[128,87,101,115,116,101,114,110]},{"a":15945,"t":"byte","b":[69,100,103,101,136,128,137,138]},{"a":15953,"t":"byte","b":[46,65,166,67,117,114,118,121]},{"a":15961,"t":"byte","b":[199,82,117,110,115,142,141,128]},{"a":15969,"t":"byte","b":[147,46,64]},{"a":15972,"l":"ROOM_TEXT_19","c":"Room text data for table index(es) $19; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,157,198,87,105]},{"a":15980,"t":"byte","b":[100,101,177,84,114,111,100,100]},{"a":15988,"t":"byte","b":[101,110,138,199,133,67,117,114]},{"a":15996,"t":"byte","b":[118,101,115,71,101,110,116,108]},{"a":16004,"t":"byte","b":[121,194,147,141,144,46,64]},{"a":16011,"l":"ROOM_TEXT_1A","c":"Room text data for table index(es) $1A; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,132,157]},{"a":16019,"t":"byte","b":[198,205,84,119,105,115,116,121]},{"a":16027,"t":"byte","b":[200,134,128,137,138,46,182,196]},{"a":16035,"t":"byte","b":[151,156,173,82,105,115,105,110]},{"a":16043,"t":"byte","b":[103,79,117,116,136,128,138,141]},{"a":16051,"t":"byte","b":[128,143,46,64]},{"a":16055,"l":"ROOM_TEXT_1B","c":"Room text data for table index(es) $1B; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,197,134,128,137]},{"a":16063,"t":"byte","b":[138,46,80,111,115,115,105,98]},{"a":16071,"t":"byte","b":[108,101,181,140,149,111,114,150]},{"a":16079,"t":"byte","b":[46,64]},{"a":16081,"l":"ROOM_TEXT_1C","c":"Room text data for table index(es) $1C; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,83,111,117,116,104]},{"a":16089,"t":"byte","b":[101,114,110,80,108,97,105,110]},{"a":16097,"t":"byte","b":[115,46,192,128,145,76,105,101]},{"a":16105,"t":"byte","b":[128,70,111,111,116,104,105,108]},{"a":16113,"t":"byte","b":[108,115,136,128,77,111,117,110]},{"a":16121,"t":"byte","b":[116,97,105,110,115,46,64]},{"a":16128,"l":"ROOM_TEXT_1D","c":"Room text data for table index(es) $1D; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,77,111,117,110,116]},{"a":16136,"t":"byte","b":[97,105,110,115,68,111,109,105]},{"a":16144,"t":"byte","b":[110,97,116,101,128,83,107,121]},{"a":16152,"t":"byte","b":[108,105,110,101,185,129,135,158]},{"a":16160,"t":"byte","b":[128,66,111,116,116,111,109,136]},{"a":16168,"t":"byte","b":[65,84,104,105,110,66,114,111]},{"a":16176,"t":"byte","b":[107,101,110,84,114,97,105,108]},{"a":16184,"t":"byte","b":[188,72,101,97,100,115,163,204]},{"a":16192,"t":"byte","b":[128,70,111,111,116,104,105,108]},{"a":16200,"t":"byte","b":[108,115,136,128,77,111,117,110]},{"a":16208,"t":"byte","b":[116,97,105,110,115,141,128,144]},{"a":16216,"t":"byte","b":[46,84,104,101,80,108,97,105]},{"a":16224,"t":"byte","b":[110,115,67,111,110,116,105,110]},{"a":16232,"t":"byte","b":[117,101,141,128,149,186,143,46]},{"a":16240,"t":"byte","b":[64]},{"a":16241,"l":"ROOM_TEXT_1E","c":"Room text data for table index(es) $1E; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,87,101,115,116,101]},{"a":16249,"t":"byte","b":[114,110,69,100,103,101,136,128]},{"a":16257,"t":"byte","b":[137,138,46,131,140,80,97,116]},{"a":16265,"t":"byte","b":[104,115,143,203,146,186,145,46]},{"a":16273,"t":"byte","b":[64]},{"a":16274,"l":"ROOM_TEXT_1F","c":"Room text data for table index(es) $1F; bounded by the next distinct pointer.","t":"byte","b":[84,104,114,101,101,83,101,112]},{"a":16282,"t":"byte","b":[97,114,97,116,101,138,80,97]},{"a":16290,"t":"byte","b":[116,104,115,77,101,101,116,158]},{"a":16298,"t":"byte","b":[169,166,67,108,101,97,114,105]},{"a":16306,"t":"byte","b":[110,103,46,84,104,101,121,76]},{"a":16314,"t":"byte","b":[101,97,100,142,141,128,144,203]},{"a":16322,"t":"byte","b":[143,186,149,46,64]},{"a":16327,"l":"ROOM_TEXT_20","c":"Room text data for table index(es) $20; bounded by the next distinct pointer.","t":"byte","b":[70,114,111,109,128,84,111,112]},{"a":16335,"t":"byte","b":[136,169,69,110,111,114,109,111]},{"a":16343,"t":"byte","b":[117,115,84,114,101,101,129,151]},{"a":16351,"t":"byte","b":[152,128,196,65,109,105,100,128]},{"a":16359,"t":"byte","b":[138,141,128,143,203,128,80,108]},{"a":16367,"t":"byte","b":[97,105,110,115,136,72,105,115]},{"a":16375,"t":"byte","b":[72,111,109,101,108,97,110,100]},{"a":16383,"t":"byte","b":[65]},{"a":16384,"t":"gap","n":30},{"a":16414,"l":"ROOM_TEXT_21","c":"Room text data for table index(es) $21; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,137,138,67,111,109]},{"a":16422,"t":"byte","b":[101,115,141,170,65,98,114,117]},{"a":16430,"t":"byte","b":[112,116,69,110,100,172,185,128]},{"a":16438,"t":"byte","b":[73,109,112,97,115,115,97,98]},{"a":16446,"t":"byte","b":[108,101,68,101,115,101,114,116]},{"a":16454,"t":"byte","b":[136,77,97,110,121,67,111,108]},{"a":16462,"t":"byte","b":[111,117,114,115,84,97,107,101]},{"a":16470,"t":"byte","b":[115,79,118,101,114,128,76,97]},{"a":16478,"t":"byte","b":[110,100,115,99,97,112,101,141]},{"a":16486,"t":"byte","b":[128,147,46,65,200,76,101,97]},{"a":16494,"t":"byte","b":[100,115,134,141,128,138,141,128]},{"a":16502,"t":"byte","b":[150,46,64]},{"a":16505,"l":"ROOM_TEXT_22","c":"Room text data for table index(es) $22; bounded by the next distinct pointer.","t":"byte","b":[89,111,117,140,83,116,97,110]},{"a":16513,"t":"byte","b":[100,105,110,103,134,198,166,87]},{"a":16521,"t":"byte","b":[111,111,100,87,104,105,99,104]},{"a":16529,"t":"byte","b":[82,117,110,115,65,108,111,110]},{"a":16537,"t":"byte","b":[103,128,83,111,117,116,104,101]},{"a":16545,"t":"byte","b":[114,110,66,111,114,100,101,114]},{"a":16553,"t":"byte","b":[136,128,68,101,115,101,114,116]},{"a":16561,"t":"byte","b":[136,77,97,110,121,67,111,108]},{"a":16569,"t":"byte","b":[111,117,114,115,46,182,184,82]},{"a":16577,"t":"byte","b":[101,97,108,69,120,105,116,132]},{"a":16585,"t":"byte","b":[141,128,145,46,64]},{"a":16590,"l":"ROOM_TEXT_23","c":"Room text data for table index(es) $23; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,158]},{"a":16598,"t":"byte","b":[128,66,97,115,101,136,170,69]},{"a":16606,"t":"byte","b":[110,111,114,109,111,117,115,84]},{"a":16614,"t":"byte","b":[114,101,101,46,131,132,198,84]},{"a":16622,"t":"byte","b":[114,97,105,108,204,128,87,111]},{"a":16630,"t":"byte","b":[111,100,141,128,149,186,198,166]},{"a":16638,"t":"byte","b":[80,97,118,101,100,200,76,105]},{"a":16646,"t":"byte","b":[110,101,100,87,105,116,104,80]},{"a":16654,"t":"byte","b":[101,98,98,108,101,115,165,142]},{"a":16662,"t":"byte","b":[141,128,147,46,64]},{"a":16667,"l":"ROOM_TEXT_24","c":"Room text data for table index(es) $24; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,71,110,111,109,105]},{"a":16675,"t":"byte","b":[99,115,39,72,111,117,115,101]},{"a":16683,"t":"byte","b":[46,182,205,72,111,117,115,101]},{"a":16691,"t":"byte","b":[132,128,72,111,109,101,136,216]},{"a":16699,"t":"byte","b":[186,217,203,87,104,111,140,128]},{"a":16707,"t":"byte","b":[184,73,110,104,97,98,105,116]},{"a":16715,"t":"byte","b":[97,110,116,115,136,128,76,97]},{"a":16723,"t":"byte","b":[110,100,115,136,128,147,46,84]},{"a":16731,"t":"byte","b":[104,114,111,117,103,104,170,79]},{"a":16739,"t":"byte","b":[112,101,110,105,110,103,141,128]},{"a":16747,"t":"byte","b":[145,151,156,173,198,83,116,114]},{"a":16755,"t":"byte","b":[97,110,103,101,77,97,99,104]},{"a":16763,"t":"byte","b":[105,110,101,46,64]},{"a":16768,"l":"ROOM_TEXT_25","c":"Room text data for table index(es) $25; bounded by the next distinct pointer.","t":"byte","b":[87,97,114,109,65,105,114,66]},{"a":16776,"t":"byte","b":[108,111,119,110,213,198,71,101]},{"a":16784,"t":"byte","b":[110,116,108,101,66,114,101,101]},{"a":16792,"t":"byte","b":[122,101,70,108,111,119,115,79]},{"a":16800,"t":"byte","b":[118,101,114,128,79,117,116,99]},{"a":16808,"t":"byte","b":[114,111,112,112,105,110,103,82]},{"a":16816,"t":"byte","b":[111,99,107,158,128,66,97,99]},{"a":16824,"t":"byte","b":[107,136,128,71,110,111,109,105]},{"a":16832,"t":"byte","b":[99,115,72,111,117,115,101,46]},{"a":16840,"t":"byte","b":[216,85,115,101,115,169,86,97]},{"a":16848,"t":"byte","b":[110,116,97,103,101,80,111,105]},{"a":16856,"t":"byte","b":[110,116,141,83,116,117,100,121]},{"a":16864,"t":"byte","b":[128,208,141,128,83,111,117,116]},{"a":16872,"t":"byte","b":[104,101,114,110,79,114,97,99]},{"a":16880,"t":"byte","b":[108,101,46,64]},{"a":16884,"l":"ROOM_TEXT_26","c":"Room text data for table index(es) $26; bounded by the next distinct pointer.","t":"byte","b":[83,116,101,101,112,84,104,114]},{"a":16892,"t":"byte","b":[101,97,116,101,110,105,110,103]},{"a":16900,"t":"byte","b":[67,108,105,102,102,115,70,111]},{"a":16908,"t":"byte","b":[114,109,65,86,97,108,108,101]},{"a":16916,"t":"byte","b":[121,133,132,71,117,97,114,100]},{"a":16924,"t":"byte","b":[101,100,213,84,119,111,77,101]},{"a":16932,"t":"byte","b":[110,97,99,105,110,103,83,112]},{"a":16940,"t":"byte","b":[104,105,110,120,101,115,141,128]},{"a":16948,"t":"byte","b":[147,186,207,142,141,128,143,213]},{"a":16956,"t":"byte","b":[69,110,103,121,119,111,111,107]},{"a":16964,"t":"byte","b":[115,39,72,111,109,101,46,64]},{"a":16972,"l":"ROOM_TEXT_27","c":"Room text data for table index(es) $27; bounded by the next distinct pointer.","t":"byte","b":[65,116,114,101,121,117,135,158]},{"a":16980,"t":"byte","b":[128,208,141,128,83,111,117,116]},{"a":16988,"t":"byte","b":[104,101,114,110,79,114,97,99]},{"a":16996,"t":"byte","b":[108,101,46,72,105,103,104,65]},{"a":17004,"t":"byte","b":[98,111,118,101,128,83,112,104]},{"a":17012,"t":"byte","b":[105,110,120,101,115,70,105,120]},{"a":17020,"t":"byte","b":[84,104,101,105,114,83,116,111]},{"a":17028,"t":"byte","b":[110,121,71,97,122,101,157,198]},{"a":17036,"t":"byte","b":[80,111,105,110,116,157,128,71]},{"a":17044,"t":"byte","b":[114,111,117,110,100,134,128,191]},{"a":17052,"t":"byte","b":[136,128,84,104,105,110,80,97]},{"a":17060,"t":"byte","b":[115,115,97,103,101,66,101,116]},{"a":17068,"t":"byte","b":[119,101,101,110,84,104,101,109]},{"a":17076,"t":"byte","b":[46,64]},{"a":17078,"l":"ROOM_TEXT_28","c":"Room text data for table index(es) $28; bounded by the next distinct pointer.","t":"byte","b":[84,104,101,71,114,101,97,116]},{"a":17086,"t":"byte","b":[77,105,114,114,111,114,46,73]},{"a":17094,"t":"byte","b":[110,128,77,105,114,114,111,114]},{"a":17102,"t":"byte","b":[129,151,152,219,82,101,97,100]},{"a":17110,"t":"byte","b":[105,110,103,128,220,83,116,111]},{"a":17118,"t":"byte","b":[114,121,46,64]},{"a":17122,"l":"PART_GRAPHICS_PREFIX_42E2","c":"PART_GRAPHICS_PREFIX_42E2 \u2014 30 captured bytes immediately before ROOM_PICTURE_BUFFER. They match the current PART1 PRG at file offsets $13E4-$1401 within the same contiguous load that supplies $4300 upward.\nThirty bytes are exactly one row of the game's interleaved multicolor-bitmap format for three character columns: 24 bitmap bytes, three screen bytes, and three colour bytes. No current RoomGraphicRecord points here and no decoded operand or recorded reference addresses the range. It is classified as a cropped or unused current-part graphics-prefix row; no comparison with replacement occupants is needed.","t":"byte","b":[46,64,9,245,9,201,8,249]},{"a":17130,"t":"byte","b":[8,252,156,201,156,251,251,251]},{"a":17138,"t":"byte","b":[8,252,252,12,249,248,11,104]},{"a":17146,"t":"byte","b":[60,63,63,60,3,48]},{"a":17152,"l":"ROOM_GFX_01","c":"ROOM_PICTURE_BUFFER ($4300) \u2014 base of the captured part's room-illustration payload and also ROOM_GFX_01, source for ROOM_GRAPHIC_TABLE[1]. Record 1 is 8 rows by 9 columns at character row 1, column 5, so it occupies 8*9*10 = 720 bytes.\nThe current captured chain is descriptors 1-20 and bytes $4300-$93E5; descriptor 0 is separate at $A100. The multipart loader can replace this logical buffer, but replacement payloads are absent and are not modeled.\nBLIT_ROOM_GRAPHIC processes one character row at a time. For width W it copies W*8 bitmap bytes to BITMAP_ROW_ADDR_TABLE[row]+column*8, W screen bytes to SCREEN_ROW_ADDR_TABLE[row]+column, and W colour bytes to COLOR_ROW_ADDR_TABLE[row]+column. Thus each cell costs eight bitmap bytes, one screen byte, and one colour byte.\nRASTER_SPLIT_PICTURE selects VIC bank 3, multicolor bitmap mode, screen matrix $CC00, bitmap $E000, and colour RAM $D800. Each two-bit pixel chooses $D021, the screen-byte high nybble, the screen-byte low nybble, or the colour-RAM low nybble. This explains both the interleaving and the ten-byte-per-cell stride.","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":17160,"t":"byte","b":[0,255,255,255,243,243,252,252]},{"a":17168,"t":"byte","b":[0,170,130,168,131,63,211,69]},{"a":17176,"t":"byte","b":[0,170,162,8,240,63,79,48]},{"a":17184,"t":"byte","b":[0,255,255,252,51,140,32,130]},{"a":17192,"t":"byte","b":[0,255,207,240,10,160,160,0]},{"a":17200,"t":"byte","b":[0,255,255,63,143,35,8,34]},{"a":17208,"t":"byte","b":[0,255,255,255,255,255,252,15]},{"a":17216,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":17224,"t":"byte","b":[116,141,235,235,105,137,121,120]},{"a":17232,"t":"byte","b":[120,251,107,249,249,251,59,251]},{"a":17240,"t":"byte","b":[251,107,42,42,42,40,42,42]},{"a":17248,"t":"byte","b":[32,12,163,163,163,141,61,51]},{"a":17256,"t":"byte","b":[255,253,58,10,239,206,54,253]},{"a":17264,"t":"byte","b":[37,239,222,236,115,204,224,191]},{"a":17272,"t":"byte","b":[171,191,32,32,128,34,0,0]},{"a":17280,"t":"byte","b":[128,0,240,195,204,252,12,35]},{"a":17288,"t":"byte","b":[170,240,240,0,0,252,15,179]},{"a":17296,"t":"byte","b":[12,192,63,15,12,3,3,0]},{"a":17304,"t":"byte","b":[128,12,252,252,252,60,60,252]},{"a":17312,"t":"byte","b":[252,60,43,235,190,235,41,235]},{"a":17320,"t":"byte","b":[43,121,137,249,57,57,249,248]},{"a":17328,"t":"byte","b":[185,105,251,251,50,50,50,8]},{"a":17336,"t":"byte","b":[10,10,10,40,255,243,243,255]},{"a":17344,"t":"byte","b":[207,240,255,207,238,170,170,160]},{"a":17352,"t":"byte","b":[10,170,168,162,240,48,192,240]},{"a":17360,"t":"byte","b":[0,192,242,204,51,3,12,16]},{"a":17368,"t":"byte","b":[96,168,170,42,3,60,195,0]},{"a":17376,"t":"byte","b":[147,80,100,147,224,234,240,252]},{"a":17384,"t":"byte","b":[195,12,255,15,48,224,192,32]},{"a":17392,"t":"byte","b":[32,128,40,128,60,60,12,12]},{"a":17400,"t":"byte","b":[12,12,0,0,9,239,41,226]},{"a":17408,"t":"byte","b":[40,40,43,233,152,251,137,110]},{"a":17416,"t":"byte","b":[249,249,57,249,251,139,63,63]},{"a":17424,"t":"byte","b":[63,63,60,63,63,63,243,255]},{"a":17432,"t":"byte","b":[252,51,204,204,240,240,252,207]},{"a":17440,"t":"byte","b":[3,0,0,0,0,0,93,87]},{"a":17448,"t":"byte","b":[80,0,0,0,48,14,202,73]},{"a":17456,"t":"byte","b":[26,5,0,5,26,90,77,124]},{"a":17464,"t":"byte","b":[128,0,0,0,128,128,40,32]},{"a":17472,"t":"byte","b":[128,0,0,0,0,240,0,0]},{"a":17480,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17488,"t":"byte","b":[0,0,0,0,0,0,116,141]},{"a":17496,"t":"byte","b":[123,152,40,130,121,137,143,249]},{"a":17504,"t":"byte","b":[249,57,242,249,41,104,242,242]},{"a":17512,"t":"byte","b":[15,15,15,15,15,35,35,35]},{"a":17520,"t":"byte","b":[240,240,240,192,192,0,0,0]},{"a":17528,"t":"byte","b":[0,65,65,68,36,36,42,10]},{"a":17536,"t":"byte","b":[195,254,186,170,26,9,9,6]},{"a":17544,"t":"byte","b":[249,89,105,154,186,15,15,64]},{"a":17552,"t":"byte","b":[252,245,245,223,211,1,3,12]},{"a":17560,"t":"byte","b":[28,220,92,124,240,192,0,0]},{"a":17568,"t":"byte","b":[0,0,192,192,192,0,0,0]},{"a":17576,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17584,"t":"byte","b":[139,118,130,40,143,137,143,248]},{"a":17592,"t":"byte","b":[143,249,57,107,243,242,242,50]},{"a":17600,"t":"byte","b":[242,185,60,60,60,51,63,60]},{"a":17608,"t":"byte","b":[63,63,192,192,192,0,0,128]},{"a":17616,"t":"byte","b":[128,128,15,3,3,3,3,0]},{"a":17624,"t":"byte","b":[0,0,23,23,23,116,116,113]},{"a":17632,"t":"byte","b":[80,48,80,69,0,0,5,235]},{"a":17640,"t":"byte","b":[63,0,60,62,14,2,2,168]},{"a":17648,"t":"byte","b":[160,2,0,0,0,192,192,192]},{"a":17656,"t":"byte","b":[192,0,0,0,0,0,0,0]},{"a":17664,"t":"byte","b":[0,2,0,0,12,12,12,12]},{"a":17672,"t":"byte","b":[48,60,129,59,129,32,143,114]},{"a":17680,"t":"byte","b":[131,155,130,251,249,2,104,242]},{"a":17688,"t":"byte","b":[248,50,248,251,63,63,63,63]},{"a":17696,"t":"byte","b":[63,63,63,63,204,243,255,243]},{"a":17704,"t":"byte","b":[255,252,255,255,0,0,192,0]},{"a":17712,"t":"byte","b":[48,192,192,2,51,15,3,48]},{"a":17720,"t":"byte","b":[50,60,60,60,5,85,245,245]},{"a":17728,"t":"byte","b":[15,128,160,138,15,191,252,48]},{"a":17736,"t":"byte","b":[0,0,80,16,0,0,0,0]},{"a":17744,"t":"byte","b":[0,0,0,0,0,48,195,60]},{"a":17752,"t":"byte","b":[51,15,15,3,252,252,60,252]},{"a":17760,"t":"byte","b":[252,252,252,252,129,116,134,121]},{"a":17768,"t":"byte","b":[137,152,129,121,129,251,251,59]},{"a":17776,"t":"byte","b":[242,242,82,105,107,251,63,60]},{"a":17784,"t":"byte","b":[50,10,42,42,42,0,192,32]},{"a":17792,"t":"byte","b":[160,168,170,170,170,0,3,3]},{"a":17800,"t":"byte","b":[3,3,15,255,255,0,60,63]},{"a":17808,"t":"byte","b":[143,163,163,168,42,0,15,51]},{"a":17816,"t":"byte","b":[0,48,0,64,21,0,16,0]},{"a":17824,"t":"byte","b":[16,2,0,0,0,0,0,0]},{"a":17832,"t":"byte","b":[192,0,0,0,0,0,0,0]},{"a":17840,"t":"byte","b":[0,0,0,0,0,0,252,0]},{"a":17848,"t":"byte","b":[0,0,0,0,0,0,118,134]},{"a":17856,"t":"byte","b":[116,134,40,146,31,137,249,251]},{"a":17864,"t":"byte","b":[251,102,242,249,111,242,255,139]},{"a":17872,"l":"ROOM_GFX_02","c":"ROOM_GFX_02 - ROOM_GRAPHIC_TABLE[2] source data, part 1. 10 rows x 12 columns blitted at\ncharacter row 0, column 4; 1200 bytes = 10 * 12 * 10. Renders as the bookshop owner in a top\nhat, which is one of the confirmations of the format. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,48,48,60,60,63,63,63]},{"a":17880,"t":"byte","b":[0,0,0,0,0,0,0,192]},{"a":17888,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17896,"t":"byte","b":[0,0,0,0,0,0,3,13]},{"a":17904,"t":"byte","b":[0,0,0,0,14,235,175,191]},{"a":17912,"t":"byte","b":[0,0,0,0,112,247,255,255]},{"a":17920,"t":"byte","b":[0,0,0,0,0,0,0,192]},{"a":17928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17936,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17944,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17968,"t":"byte","b":[116,141,123,139,104,141,116,120]},{"a":17976,"t":"byte","b":[120,141,100,173,171,107,249,242]},{"a":17984,"t":"byte","b":[114,50,242,249,105,249,249,121]},{"a":17992,"t":"byte","b":[42,42,42,42,42,42,42,42]},{"a":18000,"t":"byte","b":[160,168,170,170,170,170,170,170]},{"a":18008,"t":"byte","b":[0,0,1,3,135,143,31,29]},{"a":18016,"t":"byte","b":[58,235,175,175,190,190,186,186]},{"a":18024,"t":"byte","b":[87,93,127,253,253,253,253,253]},{"a":18032,"t":"byte","b":[234,170,170,170,170,170,170,170]},{"a":18040,"t":"byte","b":[64,64,64,80,80,80,84,84]},{"a":18048,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18064,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18072,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18080,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18088,"t":"byte","b":[43,235,43,232,41,226,36,120]},{"a":18096,"t":"byte","b":[137,237,36,231,121,105,248,18]},{"a":18104,"t":"byte","b":[56,248,249,249,103,105,249,9]},{"a":18112,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18120,"t":"byte","b":[255,252,252,252,252,252,252,252]},{"a":18128,"t":"byte","b":[20,81,65,65,64,64,64,64]},{"a":18136,"t":"byte","b":[234,234,250,250,254,254,63,63]},{"a":18144,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18152,"t":"byte","b":[255,255,191,191,175,175,171,168]},{"a":18160,"t":"byte","b":[84,85,85,85,85,80,5,85]},{"a":18168,"t":"byte","b":[0,0,0,192,192,63,192,0]},{"a":18176,"t":"byte","b":[0,0,0,0,0,204,0,0]},{"a":18184,"t":"byte","b":[0,0,0,0,0,0,192,192]},{"a":18192,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18200,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18208,"t":"byte","b":[4,239,36,232,36,232,40,232]},{"a":18216,"t":"byte","b":[152,237,36,232,251,59,251,242]},{"a":18224,"t":"byte","b":[56,98,249,242,50,242,249,201]},{"a":18232,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18240,"t":"byte","b":[252,252,252,252,252,255,255,255]},{"a":18248,"t":"byte","b":[192,192,192,192,192,48,48,140]},{"a":18256,"t":"byte","b":[15,15,3,3,0,0,0,0]},{"a":18264,"t":"byte","b":[234,234,250,248,195,207,15,63]},{"a":18272,"t":"byte","b":[83,79,63,255,252,252,240,240]},{"a":18280,"t":"byte","b":[252,240,207,0,0,0,0,170]},{"a":18288,"t":"byte","b":[0,0,252,3,0,0,40,170]},{"a":18296,"t":"byte","b":[0,0,0,3,195,204,60,48]},{"a":18304,"t":"byte","b":[192,192,192,0,0,0,0,0]},{"a":18312,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18320,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18328,"t":"byte","b":[116,141,123,156,200,141,121,137]},{"a":18336,"t":"byte","b":[143,143,143,249,59,107,242,242]},{"a":18344,"t":"byte","b":[130,50,50,242,2,98,249,248]},{"a":18352,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18360,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18368,"t":"byte","b":[242,242,252,252,255,255,255,255]},{"a":18376,"t":"byte","b":[0,0,192,192,51,51,143,143]},{"a":18384,"t":"byte","b":[63,255,255,255,252,252,240,240]},{"a":18392,"t":"byte","b":[194,194,9,9,9,37,37,37]},{"a":18400,"t":"byte","b":[213,85,85,87,95,92,94,93]},{"a":18408,"t":"byte","b":[170,170,190,255,62,62,122,190]},{"a":18416,"t":"byte","b":[192,80,112,64,240,192,240,112]},{"a":18424,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18432,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18440,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18448,"t":"byte","b":[129,118,130,123,139,137,143,248]},{"a":18456,"t":"byte","b":[143,152,137,121,251,43,59,242]},{"a":18464,"t":"byte","b":[2,98,249,249,41,63,255,15]},{"a":18472,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18480,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18488,"t":"byte","b":[255,255,255,255,255,255,252,252]},{"a":18496,"t":"byte","b":[197,197,21,21,21,21,85,84]},{"a":18504,"t":"byte","b":[192,192,192,0,0,0,0,2]},{"a":18512,"t":"byte","b":[15,15,15,15,15,15,15,15]},{"a":18520,"t":"byte","b":[85,87,85,85,85,85,85,85]},{"a":18528,"t":"byte","b":[213,127,255,253,253,253,247,247]},{"a":18536,"t":"byte","b":[80,220,84,84,76,252,124,92]},{"a":18544,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18552,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18568,"t":"byte","b":[129,48,129,32,137,114,131,155]},{"a":18576,"t":"byte","b":[130,146,129,114,11,107,251,59]},{"a":18584,"t":"byte","b":[50,56,57,56,57,255,57,57]},{"a":18592,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18600,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18608,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":18616,"t":"byte","b":[252,252,252,252,252,255,255,255]},{"a":18624,"t":"byte","b":[51,63,28,28,29,5,4,2]},{"a":18632,"t":"byte","b":[2,130,130,130,129,0,233,254]},{"a":18640,"t":"byte","b":[85,85,85,213,85,53,129,168]},{"a":18648,"t":"byte","b":[251,251,255,252,255,255,255,14]},{"a":18656,"t":"byte","b":[76,12,20,92,124,220,84,92]},{"a":18664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18688,"t":"byte","b":[129,116,129,118,143,152,129,121]},{"a":18696,"t":"byte","b":[129,118,129,116,59,59,59,50]},{"a":18704,"t":"byte","b":[249,63,57,56,57,57,105,249]},{"a":18712,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18720,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18728,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18736,"t":"byte","b":[63,140,160,170,170,170,170,170]},{"a":18744,"t":"byte","b":[14,14,202,241,241,240,197,197]},{"a":18752,"t":"byte","b":[255,191,111,91,246,255,15,160]},{"a":18760,"t":"byte","b":[233,186,186,186,174,174,171,171]},{"a":18768,"t":"byte","b":[193,252,255,255,255,254,253,251]},{"a":18776,"t":"byte","b":[240,160,33,69,141,207,203,75]},{"a":18784,"t":"byte","b":[0,192,48,48,60,143,143,79]},{"a":18792,"t":"byte","b":[0,0,0,0,0,0,0,192]},{"a":18800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":18808,"t":"byte","b":[116,141,116,139,40,146,31,137]},{"a":18816,"t":"byte","b":[249,143,116,141,251,251,59,242]},{"a":18824,"t":"byte","b":[251,255,104,255,248,107,251,249]},{"a":18832,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":18840,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":18848,"t":"byte","b":[255,255,255,255,255,255,255,252]},{"a":18856,"t":"byte","b":[85,85,85,84,83,79,63,255]},{"a":18864,"t":"byte","b":[202,42,42,128,170,170,170,170]},{"a":18872,"t":"byte","b":[255,255,255,255,15,240,252,255]},{"a":18880,"t":"byte","b":[14,83,84,84,84,85,21,5]},{"a":18888,"t":"byte","b":[251,128,21,85,85,20,17,20]},{"a":18896,"l":"ROOM_GFX_02_CONT_49D0","c":"Room illustration 2 continuation at source offset $0400: row 8, byte 64 of its 120-byte interleaved row. Descriptor $0C05 gives 10 rows by 12 cells; this source ends at $4A7F. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[204,194,8,162,170,2,130,170]},{"a":18904,"t":"byte","b":[21,197,197,49,49,193,49,49]},{"a":18912,"t":"byte","b":[192,240,240,252,252,255,255,255]},{"a":18920,"t":"byte","b":[0,0,0,0,0,0,0,64]},{"a":18928,"t":"byte","b":[52,141,52,189,50,189,40,73]},{"a":18936,"t":"byte","b":[52,189,52,189,107,251,251,98]},{"a":18944,"t":"byte","b":[251,242,175,50,105,244,251,101]},{"a":18952,"t":"byte","b":[42,42,42,42,42,42,42,0]},{"a":18960,"t":"byte","b":[170,170,170,170,170,168,168,0]},{"a":18968,"t":"byte","b":[161,133,133,21,21,85,85,0]},{"a":18976,"t":"byte","b":[170,170,170,170,170,170,170,0]},{"a":18984,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":18992,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":19000,"t":"byte","b":[195,243,207,207,243,243,252,0]},{"a":19008,"t":"byte","b":[63,143,163,160,160,168,168,0]},{"a":19016,"t":"byte","b":[40,138,128,32,40,138,170,0]},{"a":19024,"t":"byte","b":[143,143,19,19,20,132,160,0]},{"a":19032,"t":"byte","b":[170,170,170,170,170,170,170,0]},{"a":19040,"t":"byte","b":[128,160,160,168,168,168,168,0]},{"a":19048,"t":"byte","b":[123,139,43,178,116,141,116,130]},{"a":19056,"t":"byte","b":[116,36,123,139,245,245,101,245]},{"a":19064,"t":"byte","b":[242,98,242,244,117,251,245,245]},{"a":19072,"l":"ROOM_GFX_03","c":"ROOM_GFX_03 - ROOM_GRAPHIC_TABLE[3] source data, part 1. 8 rows x 12 columns blitted at\ncharacter row 1, column 4; 960 bytes = 8 * 12 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19080,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19088,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19096,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19104,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19112,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19120,"t":"byte","b":[0,0,0,0,0,0,60,187]},{"a":19128,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19136,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19144,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19152,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19160,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19168,"t":"byte","b":[116,141,123,139,104,141,124,120]},{"a":19176,"t":"byte","b":[120,141,100,173,139,107,249,242]},{"a":19184,"t":"byte","b":[50,242,251,137,105,105,249,249]},{"a":19192,"t":"byte","b":[0,0,48,60,43,58,26,47]},{"a":19200,"t":"byte","b":[0,0,0,0,0,192,192,176]},{"a":19208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19224,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19232,"t":"byte","b":[0,0,3,3,3,12,15,142]},{"a":19240,"t":"byte","b":[231,215,223,235,239,176,15,255]},{"a":19248,"t":"byte","b":[192,192,192,192,192,240,48,176]},{"a":19256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19264,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19272,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":19280,"t":"byte","b":[0,0,0,0,12,12,8,56]},{"a":19288,"t":"byte","b":[155,235,43,232,41,233,252,121]},{"a":19296,"t":"byte","b":[137,237,36,235,252,60,248,242]},{"a":19304,"t":"byte","b":[248,107,251,251,55,249,249,252]},{"a":19312,"t":"byte","b":[59,42,26,22,32,40,39,47]},{"a":19320,"t":"byte","b":[224,168,250,126,222,63,42,206]},{"a":19328,"t":"byte","b":[0,0,0,0,192,176,175,174]},{"a":19336,"t":"byte","b":[0,0,0,0,0,15,251,169]},{"a":19344,"t":"byte","b":[3,3,3,0,162,128,72,130]},{"a":19352,"t":"byte","b":[62,63,3,194,12,252,195,16]},{"a":19360,"t":"byte","b":[63,174,144,112,67,207,240,200]},{"a":19368,"t":"byte","b":[224,168,184,40,40,56,202,48]},{"a":19376,"t":"byte","b":[48,232,104,136,136,136,136,136]},{"a":19384,"t":"byte","b":[0,0,0,0,0,252,255,255]},{"a":19392,"t":"byte","b":[0,0,0,0,0,3,255,238]},{"a":19400,"t":"byte","b":[60,56,40,232,228,148,168,232]},{"a":19408,"t":"byte","b":[155,156,43,155,203,207,207,235]},{"a":19416,"t":"byte","b":[203,237,43,155,252,107,252,252]},{"a":19424,"t":"byte","b":[57,251,59,249,255,108,252,252]},{"a":19432,"t":"byte","b":[59,41,43,61,61,61,53,61]},{"a":19440,"t":"byte","b":[207,195,243,243,240,248,188,236]},{"a":19448,"t":"byte","b":[231,218,85,101,106,150,150,53]},{"a":19456,"t":"byte","b":[87,253,111,218,80,76,240,192]},{"a":19464,"t":"byte","b":[204,62,58,58,58,62,55,220]},{"a":19472,"t":"byte","b":[60,12,2,131,131,142,141,21]},{"a":19480,"t":"byte","b":[202,194,193,240,245,255,63,195]},{"a":19488,"t":"byte","b":[8,47,175,175,191,191,231,233]},{"a":19496,"t":"byte","b":[204,48,48,50,15,11,47,46]},{"a":19504,"t":"byte","b":[254,234,191,234,174,234,167,183]},{"a":19512,"t":"byte","b":[254,235,230,215,95,127,238,238]},{"a":19520,"t":"byte","b":[188,252,236,236,184,188,60,204]},{"a":19528,"t":"byte","b":[156,137,185,156,201,251,150,201]},{"a":19536,"t":"byte","b":[140,155,201,249,251,251,108,251]},{"a":19544,"t":"byte","b":[251,54,251,251,251,108,251,251]},{"a":19552,"t":"byte","b":[58,46,46,42,43,42,46,43]},{"a":19560,"t":"byte","b":[255,251,15,195,240,172,175,238]},{"a":19568,"t":"byte","b":[59,59,3,192,195,0,0,0]},{"a":19576,"t":"byte","b":[128,32,32,0,2,10,43,34]},{"a":19584,"t":"byte","b":[179,227,226,184,254,255,255,254]},{"a":19592,"t":"byte","b":[59,20,65,16,85,223,245,64]},{"a":19600,"t":"byte","b":[248,12,172,2,170,90,167,175]},{"a":19608,"t":"byte","b":[254,218,90,90,110,181,148,64]},{"a":19616,"t":"byte","b":[251,243,179,174,248,227,243,60]},{"a":19624,"t":"byte","b":[234,190,6,34,146,0,168,0]},{"a":19632,"t":"byte","b":[184,236,176,243,195,12,50,190]},{"a":19640,"t":"byte","b":[48,56,236,32,32,176,192,0]},{"a":19648,"t":"byte","b":[139,121,140,123,139,191,155,188]},{"a":19656,"t":"byte","b":[140,155,137,121,249,59,59,252]},{"a":19664,"t":"byte","b":[252,252,108,249,251,60,251,251]},{"a":19672,"t":"byte","b":[62,44,60,60,60,43,58,50]},{"a":19680,"t":"byte","b":[235,187,172,48,227,44,60,40]},{"a":19688,"t":"byte","b":[192,176,192,192,0,32,0,32]},{"a":19696,"t":"byte","b":[48,48,60,141,135,51,48,240]},{"a":19704,"t":"byte","b":[240,0,35,2,224,251,254,0]},{"a":19712,"t":"byte","b":[0,15,11,138,0,139,254,170]},{"a":19720,"t":"byte","b":[15,0,35,32,3,171,255,252]},{"a":19728,"t":"byte","b":[0,2,10,56,184,226,130,10]},{"a":19736,"t":"byte","b":[207,254,62,254,250,248,234,224]},{"a":19744,"t":"byte","b":[71,76,80,4,5,65,49,4]},{"a":19752,"t":"byte","b":[200,162,131,51,48,48,0,0]},{"a":19760,"t":"byte","b":[0,0,0,48,60,12,12,60]},{"a":19768,"t":"byte","b":[137,57,137,201,140,123,140,155]},{"a":19776,"t":"byte","b":[137,146,137,114,251,251,107,251]},{"a":19784,"t":"byte","b":[251,140,59,252,251,107,251,251]},{"a":19792,"t":"byte","b":[51,44,56,56,60,51,48,60]},{"a":19800,"t":"byte","b":[62,46,42,2,0,0,32,32]},{"a":19808,"t":"byte","b":[0,192,192,2,2,10,15,15]},{"a":19816,"t":"byte","b":[207,143,205,205,199,212,218,252]},{"a":19824,"t":"byte","b":[0,252,47,11,80,148,165,170]},{"a":19832,"t":"byte","b":[15,0,11,62,58,58,12,240]},{"a":19840,"t":"byte","b":[0,3,12,3,50,63,138,252]},{"a":19848,"t":"byte","b":[63,195,10,234,171,247,85,223]},{"a":19856,"t":"byte","b":[226,146,144,111,160,140,176,200]},{"a":19864,"t":"byte","b":[0,224,128,8,2,32,160,32]},{"a":19872,"t":"byte","b":[0,0,51,48,131,15,15,3]},{"a":19880,"t":"byte","b":[60,140,168,184,232,168,236,232]},{"a":19888,"t":"byte","b":[137,123,140,156,203,156,140,156]},{"a":19896,"t":"byte","b":[203,123,137,123,251,249,59,59]},{"a":19904,"t":"byte","b":[249,171,107,251,249,57,59,57]},{"a":19912,"t":"byte","b":[60,63,63,43,59,62,63,0]},{"a":19920,"t":"byte","b":[0,0,0,0,0,204,131,0]},{"a":19928,"t":"byte","b":[15,15,3,3,2,0,0,0]},{"a":19936,"t":"byte","b":[174,175,184,96,138,90,8,0]},{"a":19944,"t":"byte","b":[243,15,252,175,207,251,255,0]},{"a":19952,"t":"byte","b":[255,3,48,255,255,119,255,0]},{"a":19960,"t":"byte","b":[254,251,59,46,142,207,192,0]},{"a":19968,"t":"byte","b":[190,236,226,188,240,192,0,0]},{"a":19976,"t":"byte","b":[48,48,192,0,3,2,0,0]},{"a":19984,"t":"byte","b":[3,2,0,0,202,8,47,0]},{"a":19992,"t":"byte","b":[14,14,2,11,35,179,252,0]},{"a":20000,"t":"byte","b":[232,236,184,252,252,252,252,0]},{"a":20008,"t":"byte","b":[121,137,124,203,41,146,25,137]},{"a":20016,"t":"byte","b":[249,139,121,137,59,59,107,57]},{"a":20024,"t":"byte","b":[59,107,59,59,123,57,59,59]},{"a":20032,"l":"ROOM_GFX_04","c":"ROOM_GFX_04 - ROOM_GRAPHIC_TABLE[4] source data, part 1. 7 rows x 12 columns blitted at\ncharacter row 1, column 4; 840 bytes = 7 * 12 * 10. This is the picture on screen at the moment\nthe snapshot was taken: CURRENT_ROOM_GRAPHIC_ID ($2942) = 4. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,3,0,0,3]},{"a":20040,"t":"byte","b":[0,13,13,13,53,53,54,53]},{"a":20048,"t":"byte","b":[0,255,239,255,190,239,255,190]},{"a":20056,"t":"byte","b":[0,85,93,85,85,86,86,86]},{"a":20064,"t":"byte","b":[0,255,253,239,187,254,238,251]},{"a":20072,"t":"byte","b":[0,85,87,101,153,86,150,102]},{"a":20080,"t":"byte","b":[0,251,255,255,251,255,255,251]},{"a":20088,"t":"byte","b":[0,170,187,170,170,187,170,170]},{"a":20096,"t":"byte","b":[0,171,170,234,190,170,234,190]},{"a":20104,"t":"byte","b":[0,255,255,223,151,149,149,149]},{"a":20112,"t":"byte","b":[0,3,3,2,0,0,0,168]},{"a":20120,"t":"byte","b":[0,252,252,248,184,184,184,172]},{"a":20128,"t":"byte","b":[116,134,118,129,103,135,118,120]},{"a":20136,"t":"byte","b":[120,137,104,168,57,247,248,246]},{"a":20144,"t":"byte","b":[104,246,248,54,246,246,247,103]},{"a":20152,"t":"byte","b":[4,0,0,15,59,43,43,43]},{"a":20160,"t":"byte","b":[58,233,234,233,234,170,169,170]},{"a":20168,"t":"byte","b":[239,255,191,239,255,191,255,255]},{"a":20176,"t":"byte","b":[254,247,246,247,247,247,247,215]},{"a":20184,"t":"byte","b":[255,255,149,104,85,150,150,153]},{"a":20192,"t":"byte","b":[255,255,165,86,186,186,158,94]},{"a":20200,"t":"byte","b":[170,170,170,234,234,234,234,170]},{"a":20208,"t":"byte","b":[238,255,255,255,255,255,255,241]},{"a":20216,"t":"byte","b":[85,213,125,86,86,94,90,90]},{"a":20224,"t":"byte","b":[250,250,245,213,213,85,86,149]},{"a":20232,"t":"byte","b":[255,234,170,170,170,190,250,170]},{"a":20240,"t":"byte","b":[248,172,168,252,252,252,252,252]},{"a":20248,"t":"byte","b":[152,104,38,121,137,152,248,246]},{"a":20256,"t":"byte","b":[137,120,39,239,247,103,248,248]},{"a":20264,"t":"byte","b":[247,55,247,248,102,249,248,135]},{"a":20272,"t":"byte","b":[43,43,43,43,43,43,43,43]},{"a":20280,"t":"byte","b":[170,233,229,229,197,193,240,240]},{"a":20288,"t":"byte","b":[254,171,255,255,127,127,124,82]},{"a":20296,"t":"byte","b":[233,90,86,102,100,100,100,20]},{"a":20304,"t":"byte","b":[254,126,95,85,83,17,9,41]},{"a":20312,"t":"byte","b":[235,106,235,191,251,251,170,175]},{"a":20320,"t":"byte","b":[234,233,85,213,214,212,223,95]},{"a":20328,"t":"byte","b":[224,176,161,129,0,0,0,0]},{"a":20336,"t":"byte","b":[255,175,175,63,63,126,110,107]},{"a":20344,"t":"byte","b":[255,239,234,186,175,234,190,169]},{"a":20352,"t":"byte","b":[255,191,170,170,149,106,149,170]},{"a":20360,"t":"byte","b":[252,248,168,164,88,164,88,164]},{"a":20368,"t":"byte","b":[152,56,105,135,123,151,137,24]},{"a":20376,"t":"byte","b":[248,152,152,152,247,55,248,249]},{"a":20384,"t":"byte","b":[104,248,247,249,55,55,247,247]},{"a":20392,"t":"byte","b":[43,43,43,47,47,58,40,1]},{"a":20400,"t":"byte","b":[192,16,32,128,136,34,128,128]},{"a":20408,"t":"byte","b":[242,248,58,58,112,177,176,176]},{"a":20416,"t":"byte","b":[48,176,188,176,48,112,112,48]},{"a":20424,"t":"byte","b":[14,62,62,14,0,0,0,0]},{"a":20432,"t":"byte","b":[255,255,255,255,255,252,252,252]},{"a":20440,"t":"byte","b":[250,254,255,255,255,122,42,43]},{"a":20448,"t":"byte","b":[0,128,128,192,128,128,128,85]},{"a":20456,"t":"byte","b":[21,37,42,42,42,170,170,170]},{"a":20464,"t":"byte","b":[250,166,255,255,255,255,255,255]},{"a":20472,"t":"byte","b":[170,255,255,255,255,255,106,202]},{"a":20480,"t":"byte","b":[172,252,252,252,252,252,168,168]},{"a":20488,"t":"byte","b":[184,139,139,155,200,252,23,151]},{"a":20496,"t":"byte","b":[135,152,137,249,247,135,54,248]},{"a":20504,"t":"byte","b":[251,56,248,248,129,55,247,247]},{"a":20512,"t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":20520,"t":"byte","b":[240,176,146,156,159,159,135,197]},{"a":20528,"t":"byte","b":[51,48,80,80,80,88,168,165]},{"a":20536,"t":"byte","b":[48,0,0,60,63,63,253,165]},{"a":20544,"t":"byte","b":[0,1,1,23,95,255,87,102]},{"a":20552,"t":"byte","b":[240,240,224,160,176,243,243,179]},{"a":20560,"t":"byte","b":[21,58,54,9,42,42,22,21]},{"a":20568,"t":"byte","b":[250,106,85,245,127,85,85,255]},{"a":20576,"t":"byte","b":[170,170,255,255,85,255,255,85]},{"a":20584,"t":"byte","b":[255,234,169,150,90,169,86,106]},{"a":20592,"t":"byte","b":[106,162,122,248,110,186,123,238]},{"a":20600,"t":"byte","b":[168,168,168,168,168,40,168,136]},{"a":20608,"t":"byte","b":[132,252,137,123,139,183,152,135]},{"a":20616,"t":"byte","b":[151,152,137,121,251,59,251,248]},{"a":20624,"t":"byte","b":[119,104,98,249,248,55,247,245]},{"a":20632,"t":"byte","b":[3,2,8,0,0,0,0,0]},{"a":20640,"t":"byte","b":[201,250,250,126,31,15,0,64]},{"a":20648,"t":"byte","b":[85,94,126,214,154,0,32,3]},{"a":20656,"t":"byte","b":[250,250,58,58,59,48,48,0]},{"a":20664,"t":"byte","b":[69,197,197,61,1,3,0,0]},{"a":20672,"t":"byte","b":[239,253,127,247,93,91,170,160]},{"a":20680,"t":"byte","b":[21,213,255,85,85,255,2,34]},{"a":20688,"t":"byte","b":[255,255,85,255,255,81,145,160]},{"a":20696,"t":"byte","b":[85,87,255,86,86,254,250,90]},{"a":20704,"t":"byte","b":[253,85,191,63,188,60,16,48]},{"a":20712,"t":"byte","b":[235,102,166,90,233,213,28,28]},{"a":20720,"t":"byte","b":[236,224,128,76,36,4,4,68]},{"a":20728,"t":"byte","b":[143,88,139,200,140,139,143,159]},{"a":20736,"t":"byte","b":[139,155,151,139,251,251,103,251]},{"a":20744,"t":"byte","b":[251,57,249,248,249,104,251,249]},{"a":20752,"t":"byte","b":[0,48,12,8,0,0,0,0]},{"a":20760,"t":"byte","b":[35,128,0,0,0,0,0,0]},{"a":20768,"t":"byte","b":[3,0,0,2,0,0,0,0]},{"a":20776,"t":"byte","b":[56,12,12,4,1,1,0,0]},{"a":20784,"t":"byte","b":[2,0,0,0,0,0,0,0]},{"a":20792,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":20800,"t":"byte","b":[243,48,0,3,0,0,0,0]},{"a":20808,"t":"byte","b":[48,240,0,12,0,0,0,0]},{"a":20816,"t":"byte","b":[248,88,88,48,50,18,62,0]},{"a":20824,"t":"byte","b":[32,32,128,128,0,32,0,0]},{"a":20832,"t":"byte","b":[28,28,44,32,208,16,19,0]},{"a":20840,"t":"byte","b":[200,200,0,0,192,0,0,0]},{"a":20848,"t":"byte","b":[134,123,139,252,203,156,140,156]},{"a":20856,"t":"byte","b":[155,123,137,123,251,54,242,59]},{"a":20864,"t":"byte","b":[244,244,107,251,248,137,251,104]},{"a":20872,"l":"ROOM_GFX_05","c":"ROOM_GFX_05 - ROOM_GRAPHIC_TABLE[5] source data, part 1. 6 rows x 13 columns blitted at\ncharacter row 2, column 3; 780 bytes = 6 * 13 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,63,63,43,42,46,42,42]},{"a":20880,"t":"byte","b":[0,255,191,238,187,254,191,255]},{"a":20888,"t":"byte","b":[0,255,255,255,254,249,228,144]},{"a":20896,"t":"byte","b":[0,255,255,166,64,0,0,0]},{"a":20904,"t":"byte","b":[0,254,254,191,91,6,1,0]},{"a":20912,"t":"byte","b":[0,255,255,187,174,170,123,26]},{"a":20920,"t":"byte","b":[0,254,191,175,170,250,175,191]},{"a":20928,"t":"byte","b":[0,255,191,255,255,191,170,234]},{"a":20936,"t":"byte","b":[0,255,255,255,255,235,254,255]},{"a":20944,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":20952,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":20960,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":20968,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":20976,"t":"byte","b":[3,241,110,110,97,99,1,241]},{"a":20984,"t":"byte","b":[1,255,0,255,0,241,99,243]},{"a":20992,"t":"byte","b":[3,3,241,243,243,99,243,3]},{"a":21000,"t":"byte","b":[3,243,63,63,63,63,63,63]},{"a":21008,"t":"byte","b":[63,63,255,254,253,252,252,248]},{"a":21016,"t":"byte","b":[244,240,192,0,0,0,0,0]},{"a":21024,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":21032,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":21040,"t":"byte","b":[0,0,14,7,1,0,0,0]},{"a":21048,"t":"byte","b":[0,0,234,174,171,170,106,106]},{"a":21056,"t":"byte","b":[42,42,255,235,251,255,254,254]},{"a":21064,"t":"byte","b":[255,255,239,175,187,170,174,170]},{"a":21072,"t":"byte","b":[190,171,251,250,191,235,254,255]},{"a":21080,"t":"byte","b":[251,255,255,255,175,250,175,235]},{"a":21088,"t":"byte","b":[254,239,255,255,255,191,191,234]},{"a":21096,"t":"byte","b":[190,254,252,252,252,252,252,236]},{"a":21104,"t":"byte","b":[172,188,0,110,0,255,0,99]},{"a":21112,"t":"byte","b":[99,241,3,241,1,241,1,3]},{"a":21120,"t":"byte","b":[3,246,245,245,110,241,243,1]},{"a":21128,"t":"byte","b":[243,243,243,99,63,63,63,63]},{"a":21136,"t":"byte","b":[63,63,63,63,240,240,224,208]},{"a":21144,"t":"byte","b":[208,192,192,192,0,0,3,3]},{"a":21152,"t":"byte","b":[14,10,58,58,15,250,170,170]},{"a":21160,"t":"byte","b":[170,170,170,170,48,252,171,171]},{"a":21168,"t":"byte","b":[170,170,170,170,0,0,0,0]},{"a":21176,"t":"byte","b":[192,192,192,192,63,62,62,62]},{"a":21184,"t":"byte","b":[62,34,18,34,255,139,138,138]},{"a":21192,"t":"byte","b":[138,138,44,60,255,255,47,47]},{"a":21200,"t":"byte","b":[34,34,162,226,255,254,250,255]},{"a":21208,"t":"byte","b":[255,255,255,255,250,255,255,255]},{"a":21216,"t":"byte","b":[255,255,255,255,250,250,190,170]},{"a":21224,"t":"byte","b":[170,170,170,170,232,168,168,168]},{"a":21232,"t":"byte","b":[168,168,168,168,0,110,8,248]},{"a":21240,"t":"byte","b":[8,255,226,242,2,241,1,243]},{"a":21248,"t":"byte","b":[3,67,99,249,249,9,249,243]},{"a":21256,"t":"byte","b":[243,99,243,243,1,241,63,63]},{"a":21264,"t":"byte","b":[63,63,63,63,42,21,192,192]},{"a":21272,"t":"byte","b":[192,192,192,192,128,64,63,60]},{"a":21280,"t":"byte","b":[50,56,63,63,63,63,255,15]},{"a":21288,"t":"byte","b":[227,10,27,255,255,255,255,192]},{"a":21296,"t":"byte","b":[46,128,162,175,190,191,192,192]},{"a":21304,"t":"byte","b":[32,160,160,160,224,224,51,3]},{"a":21312,"t":"byte","b":[2,2,0,0,0,5,60,8]},{"a":21320,"t":"byte","b":[8,8,8,0,0,0,226,203]},{"a":21328,"t":"byte","b":[207,207,207,63,63,53,255,255]},{"a":21336,"t":"byte","b":[255,255,255,255,175,106,255,255]},{"a":21344,"t":"byte","b":[255,255,255,191,171,170,255,255]},{"a":21352,"t":"byte","b":[255,255,255,191,187,170,252,252]},{"a":21360,"t":"byte","b":[252,252,252,252,188,168,86,86]},{"a":21368,"t":"byte","b":[9,169,9,249,147,242,98,86]},{"a":21376,"t":"byte","b":[246,6,246,243,3,8,8,104]},{"a":21384,"t":"byte","b":[8,2,243,3,3,3,99,3]},{"a":21392,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":21400,"t":"byte","b":[192,192,192,192,224,240,208,64]},{"a":21408,"t":"byte","b":[58,58,58,62,62,14,10,10]},{"a":21416,"t":"byte","b":[255,254,254,243,212,127,255,208]},{"a":21424,"t":"byte","b":[250,186,186,58,250,238,170,58]},{"a":21432,"t":"byte","b":[224,224,224,224,224,192,192,128]},{"a":21440,"t":"byte","b":[15,15,15,15,15,15,15,15]},{"a":21448,"t":"byte","b":[252,255,255,255,255,255,255,255]},{"a":21456,"t":"byte","b":[15,15,143,143,79,79,31,31]},{"a":21464,"t":"byte","b":[254,255,255,255,255,255,255,255]},{"a":21472,"t":"byte","b":[235,255,255,255,255,255,255,255]},{"a":21480,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":21488,"t":"byte","b":[232,168,168,168,168,168,168,168]},{"a":21496,"t":"byte","b":[255,105,248,154,248,9,255,0]},{"a":21504,"t":"byte","b":[105,6,246,0,245,5,5,249]},{"a":21512,"t":"byte","b":[8,9,8,105,9,5,245,5]},{"a":21520,"t":"byte","b":[5,6,62,56,33,5,21,21]},{"a":21528,"t":"byte","b":[21,0,48,240,240,252,252,255]},{"a":21536,"t":"byte","b":[255,0,14,3,0,0,2,2]},{"a":21544,"t":"byte","b":[194,0,231,234,189,63,11,192]},{"a":21552,"t":"byte","b":[252,0,239,170,248,240,128,0]},{"a":21560,"t":"byte","b":[0,0,192,0,0,0,0,0]},{"a":21568,"t":"byte","b":[0,0,14,3,32,42,42,170]},{"a":21576,"t":"byte","b":[170,0,255,190,40,2,252,255]},{"a":21584,"t":"byte","b":[255,0,58,42,234,170,234,58]},{"a":21592,"t":"byte","b":[78,0,255,255,255,255,255,255]},{"a":21600,"t":"byte","b":[255,0,255,255,255,255,255,255]},{"a":21608,"t":"byte","b":[255,0,255,255,255,255,255,255]},{"a":21616,"t":"byte","b":[255,0,252,252,252,252,252,252]},{"a":21624,"t":"byte","b":[252,0,150,0,248,169,249,0]},{"a":21632,"t":"byte","b":[249,6,149,0,255,0,255,5]},{"a":21640,"t":"byte","b":[105,9,8,8,9,6,9,102]},{"a":21648,"t":"byte","b":[5,5,5,5]},{"a":21652,"l":"ROOM_GFX_06","c":"ROOM_GFX_06 - ROOM_GRAPHIC_TABLE[6] source data, part 1. 4 rows x 17 columns blitted at\ncharacter row 3, column 1; 680 bytes = 4 * 17 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":21660,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21668,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21676,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21684,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21692,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21700,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21708,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21716,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21724,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21732,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21740,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21748,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":21756,"t":"byte","b":[0,255,255,255,254,254,250,250]},{"a":21764,"t":"byte","b":[0,255,239,170,170,170,186,170]},{"a":21772,"t":"byte","b":[0,255,255,175,234,170,170,170]},{"a":21780,"t":"byte","b":[0,252,252,236,168,168,168,168]},{"a":21788,"t":"byte","b":[83,81,110,110,97,99,1,241]},{"a":21796,"t":"byte","b":[1,255,0,255,0,248,8,248]},{"a":21804,"t":"byte","b":[8,242,162,178,226,18,34,66]},{"a":21812,"t":"byte","b":[242,2,34,226,18,210,242,242]},{"a":21820,"t":"byte","b":[210,98,63,63,63,63,63,63]},{"a":21828,"t":"byte","b":[63,63,255,255,255,255,255,255]},{"a":21836,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":21844,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":21852,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":21860,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":21868,"t":"byte","b":[255,255,255,255,255,255,254,255]},{"a":21876,"t":"byte","b":[255,63,255,255,255,255,186,174]},{"a":21884,"t":"byte","b":[170,170,255,255,255,255,191,174]},{"a":21892,"t":"byte","b":[170,170,255,255,255,251,234,170]},{"a":21900,"t":"byte","b":[170,186,255,255,255,255,255,170]},{"a":21908,"t":"byte","b":[170,170,235,234,234,250,254,254]},{"a":21916,"t":"byte","b":[170,170,250,234,186,170,169,170]},{"a":21924,"t":"byte","b":[169,170,251,255,255,213,87,85]},{"a":21932,"t":"byte","b":[85,85,255,255,255,175,170,170]},{"a":21940,"t":"byte","b":[186,170,255,255,255,255,255,171]},{"a":21948,"t":"byte","b":[170,170,252,252,252,252,252,252]},{"a":21956,"t":"byte","b":[252,168,5,101,0,255,0,99]},{"a":21964,"t":"byte","b":[104,248,8,248,8,248,120,114]},{"a":21972,"t":"byte","b":[7,247,7,130,82,242,242,146]},{"a":21980,"t":"byte","b":[210,66,242,162,130,242,146,114]},{"a":21988,"t":"byte","b":[72,136,72,168,63,63,63,62]},{"a":21996,"t":"byte","b":[62,63,42,42,255,255,191,170]},{"a":22004,"t":"byte","b":[170,170,234,170,255,255,255,255]},{"a":22012,"t":"byte","b":[175,170,170,171,255,255,251,254]},{"a":22020,"t":"byte","b":[255,255,255,170,255,255,128,138]},{"a":22028,"t":"byte","b":[168,232,200,224,252,240,243,2]},{"a":22036,"t":"byte","b":[0,0,0,32,42,131,0,0]},{"a":22044,"t":"byte","b":[15,15,15,15,255,255,255,191]},{"a":22052,"t":"byte","b":[255,255,255,255,255,255,234,250]},{"a":22060,"t":"byte","b":[254,254,255,234,255,255,191,170]},{"a":22068,"t":"byte","b":[170,170,170,234,255,255,255,255]},{"a":22076,"t":"byte","b":[191,170,170,170,250,255,191,191]},{"a":22084,"t":"byte","b":[191,239,255,255,254,255,255,255]},{"a":22092,"t":"byte","b":[255,255,191,255,255,191,255,255]},{"a":22100,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":22108,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":22116,"t":"byte","b":[255,255,255,255,252,252,252,252]},{"a":22124,"t":"byte","b":[252,252,252,252,8,104,88,248]},{"a":22132,"t":"byte","b":[8,248,226,242,7,247,7,248]},{"a":22140,"t":"byte","b":[8,248,0,255,0,242,18,226]},{"a":22148,"t":"byte","b":[242,2,210,152,248,232,200,248]},{"a":22156,"t":"byte","b":[103,247,215,135,231,23,63,63]},{"a":22164,"t":"byte","b":[0,0,0,0,0,0,255,255]},{"a":22172,"t":"byte","b":[47,0,0,0,0,0,255,255]},{"a":22180,"t":"byte","b":[255,11,0,0,0,0,255,255]},{"a":22188,"t":"byte","b":[255,255,47,0,0,0,240,207]},{"a":22196,"t":"byte","b":[207,255,255,0,0,0,252,242]},{"a":22204,"t":"byte","b":[242,248,232,0,0,0,63,63]},{"a":22212,"t":"byte","b":[42,170,170,0,0,0,234,234]},{"a":22220,"t":"byte","b":[186,170,176,0,0,0,255,255]},{"a":22228,"t":"byte","b":[255,255,0,0,0,0,255,254]},{"a":22236,"t":"byte","b":[255,224,0,0,0,0,255,255]},{"a":22244,"t":"byte","b":[229,0,0,0,0,0,255,255]},{"a":22252,"t":"byte","b":[254,0,0,0,0,0,255,255]},{"a":22260,"t":"byte","b":[191,0,0,0,0,0,255,255]},{"a":22268,"t":"byte","b":[239,0,0,0,0,0,255,255]},{"a":22276,"t":"byte","b":[192,0,0,0,0,0,255,255]},{"a":22284,"t":"byte","b":[240,0,0,0,0,0,252,252]},{"a":22292,"t":"byte","b":[252,0,0,0,0,0,86,82]},{"a":22300,"t":"byte","b":[82,82,5,87,87,87,101,88]},{"a":22308,"t":"byte","b":[37,82,82,82,245,5,245,248]},{"a":22316,"t":"byte","b":[248,248,248,248,248,248,248,247]},{"a":22324,"t":"byte","b":[247,247,247,247,247,247,247,247]},{"a":22332,"l":"ROOM_GFX_07","c":"ROOM_GFX_07 - ROOM_GRAPHIC_TABLE[7] source data, part 1. 8 rows x 10 columns blitted at\ncharacter row 1, column 5; 800 bytes = 8 * 10 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":22340,"t":"byte","b":[0,85,85,85,85,85,85,85]},{"a":22348,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":22356,"t":"byte","b":[0,85,85,85,85,85,85,85]},{"a":22364,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":22372,"t":"byte","b":[0,85,85,85,85,85,85,85]},{"a":22380,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":22388,"t":"byte","b":[0,85,85,85,85,85,85,85]},{"a":22396,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":22404,"t":"byte","b":[0,84,84,84,84,84,84,84]},{"a":22412,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":22420,"t":"byte","b":[0,255,15,5,15,101,15,5]},{"a":22428,"t":"byte","b":[15,5,15,5,63,63,62,43]},{"a":22436,"t":"byte","b":[62,59,46,58,85,85,117,215]},{"a":22444,"t":"byte","b":[93,221,245,117,255,255,255,191]},{"a":22452,"t":"byte","b":[255,251,174,234,85,85,85,85]},{"a":22460,"t":"byte","b":[85,85,119,245,255,252,240,240]},{"a":22468,"t":"byte","b":[163,227,163,227,5,1,0,240]},{"a":22476,"t":"byte","b":[188,204,188,248,255,255,255,255]},{"a":22484,"t":"byte","b":[255,255,170,191,85,85,85,85]},{"a":22492,"t":"byte","b":[85,87,117,223,255,255,255,255]},{"a":22500,"t":"byte","b":[255,251,255,174,84,84,84,212]},{"a":22508,"t":"byte","b":[92,84,220,212,12,255,12,255]},{"a":22516,"t":"byte","b":[12,248,156,249,12,255,15,12]},{"a":22524,"t":"byte","b":[15,12,15,105,15,12,255,12]},{"a":22532,"t":"byte","b":[63,42,58,42,43,42,42,42]},{"a":22540,"t":"byte","b":[223,223,255,255,255,255,254,251]},{"a":22548,"t":"byte","b":[175,186,170,170,170,169,102,170]},{"a":22556,"t":"byte","b":[255,127,223,250,235,172,252,240]},{"a":22564,"t":"byte","b":[162,160,240,192,20,85,85,85]},{"a":22572,"t":"byte","b":[236,160,192,224,242,250,250,250]},{"a":22580,"t":"byte","b":[85,253,255,23,133,161,161,160]},{"a":22588,"t":"byte","b":[85,93,85,165,245,95,87,85]},{"a":22596,"t":"byte","b":[251,174,235,170,90,233,255,191]},{"a":22604,"t":"byte","b":[92,124,220,252,116,188,236,92]},{"a":22612,"t":"byte","b":[12,251,188,251,156,249,201,203]},{"a":22620,"t":"byte","b":[188,251,111,12,15,252,11,8]},{"a":22628,"t":"byte","b":[11,111,15,12,63,58,21,47]},{"a":22636,"t":"byte","b":[58,63,63,23,255,181,149,170]},{"a":22644,"t":"byte","b":[170,190,175,170,255,191,111,222]},{"a":22652,"t":"byte","b":[253,255,255,187,200,202,202,74]},{"a":22660,"t":"byte","b":[74,242,252,252,255,63,15,15]},{"a":22668,"t":"byte","b":[143,143,175,175,181,245,245,165]},{"a":22676,"t":"byte","b":[165,101,85,85,242,202,10,10]},{"a":22684,"t":"byte","b":[42,40,161,161,63,47,43,46]},{"a":22692,"t":"byte","b":[63,255,255,255,170,170,170,170]},{"a":22700,"t":"byte","b":[175,170,154,86,236,168,168,168]},{"a":22708,"t":"byte","b":[104,164,168,168,251,252,251,184]},{"a":22716,"t":"byte","b":[8,152,200,251,252,188,12,11]},{"a":22724,"t":"byte","b":[108,12,9,247,9,12,11,111]},{"a":22732,"t":"byte","b":[63,47,58,59,42,42,42,42]},{"a":22740,"t":"byte","b":[250,251,175,171,186,175,170,170]},{"a":22748,"t":"byte","b":[254,255,127,95,215,245,253,255]},{"a":22756,"t":"byte","b":[188,235,255,255,255,127,85,255]},{"a":22764,"t":"byte","b":[163,12,63,63,63,79,48,63]},{"a":22772,"t":"byte","b":[168,2,170,170,170,170,0,10]},{"a":22780,"t":"byte","b":[243,15,141,143,143,63,143,143]},{"a":22788,"t":"byte","b":[250,239,187,255,255,255,255,253]},{"a":22796,"t":"byte","b":[215,127,255,255,255,255,239,170]},{"a":22804,"t":"byte","b":[232,188,168,168,168,164,148,84]},{"a":22812,"t":"byte","b":[188,188,251,251,200,249,249,191]},{"a":22820,"t":"byte","b":[251,188,255,15,12,12,105,8]},{"a":22828,"t":"byte","b":[12,252,12,15,47,43,42,42]},{"a":22836,"t":"byte","b":[42,42,26,42,255,255,191,170]},{"a":22844,"t":"byte","b":[171,170,170,175,255,255,255,191]},{"a":22852,"t":"byte","b":[239,171,154,174,255,252,232,168]},{"a":22860,"t":"byte","b":[232,188,168,191,42,170,170,170]},{"a":22868,"t":"byte","b":[168,168,168,248,10,10,10,10]},{"a":22876,"t":"byte","b":[242,241,214,242,143,161,161,161]},{"a":22884,"t":"byte","b":[175,253,175,161,250,191,170,170]},{"a":22892,"t":"byte","b":[175,255,223,191,255,255,254,186]},{"a":22900,"t":"byte","b":[169,154,106,170,252,232,164,88]},{"a":22908,"t":"byte","b":[104,168,168,168,27,11,27,43]},{"a":22916,"t":"byte","b":[249,201,185,251,252,252,12,12]},{"a":22924,"t":"byte","b":[12,12,12,11,108,12,11,11]},{"a":22932,"t":"byte","b":[63,62,63,43,63,63,47,42]},{"a":22940,"t":"byte","b":[186,230,255,250,234,251,254,191]},{"a":22948,"t":"byte","b":[235,191,255,234,170,166,255,191]},{"a":22956,"t":"byte","b":[255,242,210,127,82,242,255,114]},{"a":22964,"t":"byte","b":[254,94,83,114,75,74,127,78]},{"a":22972,"t":"byte","b":[252,250,190,232,127,239,246,239]},{"a":22980,"t":"byte","b":[252,168,252,254,60,58,60,60]},{"a":22988,"t":"byte","b":[169,186,170,170,90,85,105,101]},{"a":22996,"t":"byte","b":[93,255,254,191,247,255,85,213]},{"a":23004,"t":"byte","b":[252,252,188,172,252,168,252,236]},{"a":23012,"t":"byte","b":[251,27,27,185,155,28,252,203]},{"a":23020,"t":"byte","b":[193,11,12,108,12,12,252,11]},{"a":23028,"t":"byte","b":[9,1,107,12,62,47,63,50]},{"a":23036,"t":"byte","b":[63,10,47,0,254,255,127,221]},{"a":23044,"t":"byte","b":[63,255,223,0,255,250,138,168]},{"a":23052,"t":"byte","b":[6,170,138,0,192,192,240,240]},{"a":23060,"t":"byte","b":[207,63,243,0,15,62,195,204]},{"a":23068,"t":"byte","b":[63,255,207,0,171,162,10,184]},{"a":23076,"t":"byte","b":[40,234,174,0,0,192,48,240]},{"a":23084,"t":"byte","b":[207,63,243,0,42,43,34,128]},{"a":23092,"t":"byte","b":[138,170,136,0,238,251,253,223]},{"a":23100,"t":"byte","b":[252,207,223,0,252,236,104,136]},{"a":23108,"t":"byte","b":[168,152,104,0,1,28,27,249]},{"a":23116,"t":"byte","b":[1,251,207,251,28,27,251,107]},{"a":23124,"t":"byte","b":[252,251,11,1,251,241,11,252]},{"a":23132,"l":"ROOM_GFX_08","c":"ROOM_GFX_08 - ROOM_GRAPHIC_TABLE[8] source data, part 1. 8 rows x 19 columns blitted at\ncharacter row 1, column 1; 1520 bytes = 8 * 19 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23140,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23148,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23156,"t":"byte","b":[0,0,0,0,0,0,0,64]},{"a":23164,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23172,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23180,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23188,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23196,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23204,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23212,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23220,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23228,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23236,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23244,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23252,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23260,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23268,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23276,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23284,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":23292,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":23300,"t":"byte","b":[0,255,0,223,37,159,245,15]},{"a":23308,"t":"byte","b":[165,239,133,175,149,245,245,245]},{"a":23316,"t":"byte","b":[101,245,229,53,69,245,0,0]},{"a":23324,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23332,"t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":23340,"t":"byte","b":[3,3,3,3,3,0,80,80]},{"a":23348,"t":"byte","b":[212,20,53,4,14,10,0,0]},{"a":23356,"t":"byte","b":[0,0,0,0,240,239,0,0]},{"a":23364,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23372,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23380,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23388,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23396,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23404,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23412,"t":"byte","b":[3,3,2,2,0,0,15,252]},{"a":23420,"t":"byte","b":[192,0,0,0,128,64,252,2]},{"a":23428,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23436,"t":"byte","b":[192,48,48,48,12,12,0,0]},{"a":23444,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23452,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23460,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23468,"t":"byte","b":[0,0,0,0,0,0,12,255]},{"a":23476,"t":"byte","b":[12,241,15,248,156,249,12,255]},{"a":23484,"t":"byte","b":[0,251,139,249,0,255,0,255]},{"a":23492,"t":"byte","b":[0,255,252,251,251,225,249,255]},{"a":23500,"t":"byte","b":[252,255,252,245,12,252,252,249]},{"a":23508,"t":"byte","b":[245,245,245,69,0,0,0,0]},{"a":23516,"t":"byte","b":[0,0,0,3,0,0,0,0]},{"a":23524,"t":"byte","b":[0,3,63,245,0,0,14,55]},{"a":23532,"t":"byte","b":[11,254,249,232,3,3,3,130]},{"a":23540,"t":"byte","b":[43,10,128,128,170,234,174,234]},{"a":23548,"t":"byte","b":[236,238,252,240,240,156,167,103]},{"a":23556,"t":"byte","b":[153,166,85,89,0,0,0,0]},{"a":23564,"t":"byte","b":[192,112,94,87,0,0,0,0]},{"a":23572,"t":"byte","b":[0,0,168,136,0,0,0,0]},{"a":23580,"t":"byte","b":[0,0,0,85,0,0,0,0]},{"a":23588,"t":"byte","b":[0,0,0,168,0,0,0,0]},{"a":23596,"t":"byte","b":[0,0,12,255,0,0,0,0]},{"a":23604,"t":"byte","b":[0,0,0,194,252,252,47,62]},{"a":23612,"t":"byte","b":[15,15,175,175,0,0,0,192]},{"a":23620,"t":"byte","b":[176,176,200,42,3,3,3,3]},{"a":23628,"t":"byte","b":[0,0,3,3,0,0,0,0]},{"a":23636,"t":"byte","b":[252,171,170,170,0,0,0,0]},{"a":23644,"t":"byte","b":[0,192,188,191,0,0,0,0]},{"a":23652,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23660,"t":"byte","b":[0,0,0,0,12,251,191,251]},{"a":23668,"t":"byte","b":[156,188,203,203,188,251,12,249]},{"a":23676,"t":"byte","b":[9,249,0,249,10,255,0,255]},{"a":23684,"t":"byte","b":[65,241,252,251,241,241,255,31]},{"a":23692,"t":"byte","b":[252,251,251,248,248,249,250,249]},{"a":23700,"t":"byte","b":[245,245,21,55,29,29,61,63]},{"a":23708,"t":"byte","b":[55,55,102,102,149,153,153,186]},{"a":23716,"t":"byte","b":[221,221,119,86,87,223,223,123]},{"a":23724,"t":"byte","b":[123,218,4,1,64,64,69,93]},{"a":23732,"t":"byte","b":[77,221,51,3,195,3,35,3]},{"a":23740,"t":"byte","b":[0,204,229,223,240,243,204,192]},{"a":23748,"t":"byte","b":[255,63,214,245,255,63,61,253]},{"a":23756,"t":"byte","b":[255,255,234,122,214,189,239,251]},{"a":23764,"t":"byte","b":[255,175,255,255,254,127,151,169]},{"a":23772,"t":"byte","b":[186,175,85,85,85,86,85,213]},{"a":23780,"t":"byte","b":[249,191,255,255,239,255,255,255]},{"a":23788,"t":"byte","b":[253,214,58,250,234,234,202,82]},{"a":23796,"t":"byte","b":[84,80,240,255,255,255,195,3]},{"a":23804,"t":"byte","b":[40,168,186,143,131,143,131,163]},{"a":23812,"t":"byte","b":[160,168,207,239,175,175,175,175]},{"a":23820,"t":"byte","b":[175,15,255,255,255,255,63,255]},{"a":23828,"t":"byte","b":[255,207,239,235,251,255,255,255]},{"a":23836,"t":"byte","b":[255,252,192,192,240,240,252,14]},{"a":23844,"t":"byte","b":[0,18,0,0,0,0,0,168]},{"a":23852,"t":"byte","b":[168,168,251,252,251,184,9,252]},{"a":23860,"t":"byte","b":[207,27,28,188,252,137,251,9]},{"a":23868,"t":"byte","b":[248,0,250,139,251,252,251,252]},{"a":23876,"t":"byte","b":[252,251,11,251,252,251,241,251]},{"a":23884,"t":"byte","b":[251,233,248,249,249,249,249,245]},{"a":23892,"t":"byte","b":[26,38,42,41,41,41,38,38]},{"a":23900,"t":"byte","b":[109,105,91,89,89,85,21,81]},{"a":23908,"t":"byte","b":[216,254,244,234,184,184,160,34]},{"a":23916,"t":"byte","b":[206,142,15,47,47,175,190,190]},{"a":23924,"t":"byte","b":[242,242,178,176,188,172,188,188]},{"a":23932,"t":"byte","b":[15,195,176,172,235,250,250,254]},{"a":23940,"t":"byte","b":[250,255,60,3,192,252,171,174]},{"a":23948,"t":"byte","b":[87,85,21,71,23,1,64,88]},{"a":23956,"t":"byte","b":[254,255,175,170,234,138,42,1]},{"a":23964,"t":"byte","b":[91,146,144,80,20,64,0,20]},{"a":23972,"t":"byte","b":[159,191,60,48,0,8,40,168]},{"a":23980,"t":"byte","b":[192,0,0,0,0,0,0,0]},{"a":23988,"t":"byte","b":[1,1,0,0,0,0,0,0]},{"a":23996,"t":"byte","b":[48,0,2,8,10,2,0,0]},{"a":24004,"t":"byte","b":[15,12,0,128,128,0,0,0]},{"a":24012,"t":"byte","b":[192,192,192,192,0,0,0,0]},{"a":24020,"t":"byte","b":[240,50,2,0,0,2,6,26]},{"a":24028,"t":"byte","b":[254,252,252,255,63,255,255,255]},{"a":24036,"t":"byte","b":[60,48,60,0,0,0,0,0]},{"a":24044,"t":"byte","b":[188,188,251,251,203,252,252,185]},{"a":24052,"t":"byte","b":[251,188,251,155,185,180,244,0]},{"a":24060,"t":"byte","b":[120,11,245,255,255,252,252,249]},{"a":24068,"t":"byte","b":[251,251,252,252,1,248,248,245]},{"a":24076,"t":"byte","b":[249,249,249,249,248,251,58,42]},{"a":24084,"t":"byte","b":[34,32,0,8,40,40,40,40]},{"a":24092,"t":"byte","b":[8,8,2,34,162,171,34,2]},{"a":24100,"t":"byte","b":[139,171,191,254,234,150,190,250]},{"a":24108,"t":"byte","b":[250,234,233,230,234,234,248,226]},{"a":24116,"t":"byte","b":[162,224,160,224,129,129,63,47]},{"a":24124,"t":"byte","b":[42,0,0,192,243,243,85,90]},{"a":24132,"t":"byte","b":[160,0,0,5,85,85,176,192]},{"a":24140,"t":"byte","b":[0,0,10,170,170,106,0,4]},{"a":24148,"t":"byte","b":[0,0,255,255,255,239,3,15]},{"a":24156,"l":"ROOM_GFX_08_CONT_5E5C","c":"Room illustration 8 continuation at source offset $0400: row 5, byte 74 of its 190-byte interleaved row. Descriptor $0C29 gives 8 rows by 19 cells; this source ends at $604B. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[0,0,0,195,255,254,239,190]},{"a":24164,"t":"byte","b":[255,15,240,191,255,189,0,0]},{"a":24172,"t":"byte","b":[0,0,0,0,0,0,0,32]},{"a":24180,"t":"byte","b":[40,43,44,48,0,0,0,0]},{"a":24188,"t":"byte","b":[0,8,0,0,0,0,60,50]},{"a":24196,"t":"byte","b":[193,1,0,0,0,0,0,255]},{"a":24204,"t":"byte","b":[190,234,170,42,40,0,234,170]},{"a":24212,"t":"byte","b":[168,128,0,0,0,0,252,192]},{"a":24220,"t":"byte","b":[0,0,0,0,0,9,0,0]},{"a":24228,"t":"byte","b":[0,0,0,0,0,172,27,11]},{"a":24236,"t":"byte","b":[155,155,105,201,185,27,241,241]},{"a":24244,"t":"byte","b":[97,9,251,11,135,8,248,182]},{"a":24252,"t":"byte","b":[251,252,252,252,252,251,251,76]},{"a":24260,"t":"byte","b":[249,251,251,251,245,246,245,251]},{"a":24268,"t":"byte","b":[247,247,248,246,42,2,0,48]},{"a":24276,"t":"byte","b":[63,63,55,63,170,170,0,0]},{"a":24284,"t":"byte","b":[204,255,209,124,250,234,10,0]},{"a":24292,"t":"byte","b":[64,68,0,0,85,85,80,0]},{"a":24300,"t":"byte","b":[0,192,0,0,64,0,0,0]},{"a":24308,"t":"byte","b":[0,0,0,0,242,0,0,0]},{"a":24316,"t":"byte","b":[0,0,0,0,239,123,7,0]},{"a":24324,"t":"byte","b":[0,0,0,0,187,170,86,80]},{"a":24332,"t":"byte","b":[0,0,0,0,239,251,255,7]},{"a":24340,"t":"byte","b":[0,0,0,0,234,170,165,64]},{"a":24348,"t":"byte","b":[0,0,0,0,237,255,255,93]},{"a":24356,"t":"byte","b":[0,0,0,0,0,0,192,192]},{"a":24364,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24372,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24380,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24388,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24396,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24404,"t":"byte","b":[0,0,0,0,13,59,215,255]},{"a":24412,"t":"byte","b":[45,11,2,0,236,172,188,180]},{"a":24420,"t":"byte","b":[252,192,0,12,27,27,107,185]},{"a":24428,"t":"byte","b":[155,27,97,107,97,107,97,11]},{"a":24436,"t":"byte","b":[107,107,255,0,0,246,111,246]},{"a":24444,"t":"byte","b":[246,249,246,252,70,251,241,251]},{"a":24452,"t":"byte","b":[241,251,246,69,245,245,245,245]},{"a":24460,"t":"byte","b":[251,139,47,62,0,0,0,0]},{"a":24468,"t":"byte","b":[0,0,243,0,0,48,0,0]},{"a":24476,"t":"byte","b":[0,0,192,15,0,0,0,0]},{"a":24484,"t":"byte","b":[0,0,0,0,0,12,0,192]},{"a":24492,"t":"byte","b":[12,0,48,60,15,0,0,0]},{"a":24500,"t":"byte","b":[12,0,0,0,0,15,0,0]},{"a":24508,"t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":24516,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24524,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24532,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24540,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24548,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24556,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24564,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24572,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24580,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24588,"t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":24596,"t":"byte","b":[14,0,0,0,3,6,25,213]},{"a":24604,"t":"byte","b":[89,0,4,60,236,108,88,164]},{"a":24612,"t":"byte","b":[164,0,1,28,27,249,1,251]},{"a":24620,"t":"byte","b":[207,251,28,27,6,245,5,245]},{"a":24628,"t":"byte","b":[0,255,11,251,191,246,246,70]},{"a":24636,"t":"byte","b":[246,246,246,246,241,251,76,245]},{"a":24644,"t":"byte","b":[246,246,246,245,245,70,246,246]},{"a":24652,"l":"ROOM_GFX_09","c":"ROOM_GFX_09 - ROOM_GRAPHIC_TABLE[9] source data, part 1. 9 rows x 11 columns blitted at\ncharacter row 1, column 4; 990 bytes = 9 * 11 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24660,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24668,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24676,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24684,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24692,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24700,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24708,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24716,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24724,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24732,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24740,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":24748,"t":"byte","b":[0,255,0,79,69,79,213,223]},{"a":24756,"t":"byte","b":[245,143,165,223,69,181,0,0]},{"a":24764,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24772,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24780,"t":"byte","b":[0,0,0,14,58,56,0,0]},{"a":24788,"t":"byte","b":[0,0,63,240,0,15,0,0]},{"a":24796,"t":"byte","b":[0,0,254,14,242,2,0,0]},{"a":24804,"t":"byte","b":[1,7,159,159,79,115,0,252]},{"a":24812,"t":"byte","b":[87,69,80,69,5,4,0,0]},{"a":24820,"t":"byte","b":[64,144,148,132,132,128,0,0]},{"a":24828,"t":"byte","b":[0,0,0,250,192,60,0,0]},{"a":24836,"t":"byte","b":[0,0,0,0,192,188,0,0]},{"a":24844,"t":"byte","b":[0,0,0,0,0,0,12,255]},{"a":24852,"t":"byte","b":[9,241,8,248,156,249,8,248]},{"a":24860,"t":"byte","b":[0,255,252,143,9,233,89,15]},{"a":24868,"t":"byte","b":[44,255,249,165,0,0,0,0]},{"a":24876,"t":"byte","b":[0,0,0,0,0,1,1,7]},{"a":24884,"t":"byte","b":[7,7,7,26,176,192,192,0]},{"a":24892,"t":"byte","b":[1,4,16,19,240,0,0,0]},{"a":24900,"t":"byte","b":[128,0,255,255,4,4,19,19]},{"a":24908,"t":"byte","b":[16,0,0,64,206,206,12,50]},{"a":24916,"t":"byte","b":[50,192,60,12,3,12,12,3]},{"a":24924,"t":"byte","b":[207,207,255,51,194,194,130,138]},{"a":24932,"t":"byte","b":[138,203,255,251,3,0,0,0]},{"a":24940,"t":"byte","b":[42,0,42,63,12,175,15,12]},{"a":24948,"t":"byte","b":[195,242,240,131,0,0,128,128]},{"a":24956,"t":"byte","b":[128,64,128,64,12,248,143,248]},{"a":24964,"t":"byte","b":[156,185,203,207,185,248,137,191]},{"a":24972,"t":"byte","b":[105,249,169,47,255,41,57,200]},{"a":24980,"t":"byte","b":[249,165,0,0,0,0,0,0]},{"a":24988,"t":"byte","b":[0,0,30,24,20,24,27,27]},{"a":24996,"t":"byte","b":[27,107,15,48,48,194,66,80]},{"a":25004,"t":"byte","b":[117,112,0,0,12,130,130,130]},{"a":25012,"t":"byte","b":[85,0,128,32,0,192,193,1]},{"a":25020,"t":"byte","b":[9,40,64,17,84,124,240,172]},{"a":25028,"t":"byte","b":[163,111,63,12,3,63,192,255]},{"a":25036,"t":"byte","b":[63,243,255,255,252,50,242,10]},{"a":25044,"t":"byte","b":[149,213,0,0,204,192,192,128]},{"a":25052,"t":"byte","b":[73,65,48,0,0,144,147,131]},{"a":25060,"t":"byte","b":[252,83,192,192,192,192,192,64]},{"a":25068,"t":"byte","b":[64,0,251,248,134,142,249,248]},{"a":25076,"t":"byte","b":[207,143,152,158,245,44,233,137]},{"a":25084,"t":"byte","b":[79,6,137,249,249,15,104,201]},{"a":25092,"t":"byte","b":[0,0,0,0,0,0,3,3]},{"a":25100,"t":"byte","b":[249,233,249,230,234,222,116,186]},{"a":25108,"t":"byte","b":[63,60,207,195,176,188,175,235]},{"a":25116,"t":"byte","b":[204,48,192,0,243,3,255,250]},{"a":25124,"t":"byte","b":[48,32,252,207,239,190,162,201]},{"a":25132,"t":"byte","b":[112,167,46,7,19,223,28,250]},{"a":25140,"t":"byte","b":[63,207,12,207,63,51,195,15]},{"a":25148,"t":"byte","b":[191,138,190,190,42,60,59,179]},{"a":25156,"t":"byte","b":[192,208,217,217,86,118,53,241]},{"a":25164,"t":"byte","b":[59,15,179,234,143,83,220,23]},{"a":25172,"t":"byte","b":[0,64,64,128,128,144,144,32]},{"a":25180,"t":"byte","b":[188,152,248,248,248,249,252,185]},{"a":25188,"t":"byte","b":[248,143,249,47,47,249,9,249]},{"a":25196,"t":"byte","b":[184,73,8,169,249,5,15,14]},{"a":25204,"t":"byte","b":[14,14,15,14,13,15,234,138]},{"a":25212,"t":"byte","b":[121,206,188,15,241,191,63,119]},{"a":25220,"t":"byte","b":[192,255,145,117,0,212,241,197]},{"a":25228,"t":"byte","b":[4,21,17,84,65,5,15,138]},{"a":25236,"t":"byte","b":[168,10,170,128,34,168,8,34]},{"a":25244,"t":"byte","b":[162,0,34,138,0,0,130,34]},{"a":25252,"t":"byte","b":[2,130,34,0,0,0,239,238]},{"a":25260,"t":"byte","b":[239,170,40,2,0,0,205,15]},{"a":25268,"t":"byte","b":[143,60,207,204,3,0,194,224]},{"a":25276,"t":"byte","b":[240,176,188,142,143,42,48,240]},{"a":25284,"t":"byte","b":[240,240,48,64,64,64,152,159]},{"a":25292,"t":"byte","b":[159,155,105,201,185,25,248,249]},{"a":25300,"t":"byte","b":[133,175,72,200,168,248,171,220]},{"a":25308,"t":"byte","b":[136,73,56,153,3,3,2,0]},{"a":25316,"t":"byte","b":[0,0,0,0,57,65,60,195]},{"a":25324,"t":"byte","b":[252,240,192,192,48,255,40,128]},{"a":25332,"t":"byte","b":[0,0,0,0,234,168,0,0]},{"a":25340,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25348,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25356,"t":"byte","b":[0,0,0,3,0,0,0,14]},{"a":25364,"t":"byte","b":[58,218,237,230,0,0,0,0]},{"a":25372,"t":"byte","b":[192,224,176,186,0,0,0,0]},{"a":25380,"t":"byte","b":[0,0,0,192,12,12,3,3]},{"a":25388,"t":"byte","b":[3,3,3,12,192,64,64,192]},{"a":25396,"t":"byte","b":[192,0,0,0,24,143,105,185]},{"a":25404,"t":"byte","b":[155,27,248,105,97,107,133,255]},{"a":25412,"t":"byte","b":[249,248,248,44,72,249,248,249]},{"a":25420,"t":"byte","b":[249,249,0,0,0,0,0,0]},{"a":25428,"t":"byte","b":[0,3,0,0,0,15,57,215]},{"a":25436,"t":"byte","b":[98,10,0,0,3,12,162,67]},{"a":25444,"t":"byte","b":[77,84,0,63,240,18,194,8]},{"a":25452,"t":"byte","b":[48,34,15,175,168,234,46,0]},{"a":25460,"t":"byte","b":[131,192,254,243,227,139,204,195]},{"a":25468,"t":"byte","b":[3,15,252,176,195,48,48,0]},{"a":25476,"t":"byte","b":[0,0,61,35,15,12,3,0]},{"a":25484,"t":"byte","b":[0,0,251,142,27,87,4,0]},{"a":25492,"t":"byte","b":[204,60,192,232,178,85,65,0]},{"a":25500,"t":"byte","b":[2,8,0,0,0,0,0,0]},{"a":25508,"t":"byte","b":[0,0,1,249,159,249,8,248]},{"a":25516,"t":"byte","b":[200,249,143,137,6,249,248,72]},{"a":25524,"t":"byte","b":[248,249,249,249,248,249,79,245]},{"a":25532,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25540,"t":"byte","b":[3,0,0,0,0,0,0,0]},{"a":25548,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25556,"t":"byte","b":[2,8,0,0,0,0,0,0]},{"a":25564,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25572,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25580,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25588,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25596,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25604,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25612,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25620,"t":"byte","b":[5,245,5,105,11,252,12,251]},{"a":25628,"t":"byte","b":[191,246,5,246,249,246,245,245]},{"a":25636,"t":"byte","b":[245,69,245,245,245,246]},{"a":25642,"l":"ROOM_GFX_10","c":"ROOM_GFX_10 - ROOM_GRAPHIC_TABLE[10] source data, part 1. 8 rows x 19 columns blitted at\ncharacter row 1, column 1; 1520 bytes = 8 * 19 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,63,63,60,48,60,60,60]},{"a":25650,"t":"byte","b":[0,63,63,63,243,51,207,207]},{"a":25658,"t":"byte","b":[0,207,207,243,243,252,194,42]},{"a":25666,"t":"byte","b":[0,242,202,202,42,42,160,163]},{"a":25674,"t":"byte","b":[0,200,2,202,202,32,170,170]},{"a":25682,"t":"byte","b":[0,63,255,255,255,255,255,15]},{"a":25690,"t":"byte","b":[0,252,255,63,195,252,255,255]},{"a":25698,"t":"byte","b":[0,255,15,243,207,207,63,63]},{"a":25706,"t":"byte","b":[0,255,255,255,252,252,255,255]},{"a":25714,"t":"byte","b":[0,207,243,252,255,255,63,207]},{"a":25722,"t":"byte","b":[0,252,252,48,204,255,255,207]},{"a":25730,"t":"byte","b":[0,243,243,15,63,63,15,195]},{"a":25738,"t":"byte","b":[0,252,252,51,195,243,243,207]},{"a":25746,"t":"byte","b":[0,243,207,207,240,242,242,202]},{"a":25754,"t":"byte","b":[0,242,202,42,170,168,163,143]},{"a":25762,"t":"byte","b":[0,202,202,42,42,170,170,138]},{"a":25770,"t":"byte","b":[0,60,51,207,207,240,240,240]},{"a":25778,"t":"byte","b":[0,207,192,12,60,0,15,255]},{"a":25786,"t":"byte","b":[0,252,12,48,252,252,60,252]},{"a":25794,"t":"byte","b":[0,255,9,249,5,255,0,255]},{"a":25802,"t":"byte","b":[0,255,0,255,0,249,9,245]},{"a":25810,"t":"byte","b":[0,255,0,105,5,5,245,9]},{"a":25818,"t":"byte","b":[5,5,101,5,5,245,5,5]},{"a":25826,"t":"byte","b":[5,101,9,5,245,5,60,48]},{"a":25834,"t":"byte","b":[48,60,0,0,15,15,243,252]},{"a":25842,"t":"byte","b":[252,194,202,10,42,42,42,170]},{"a":25850,"t":"byte","b":[42,162,130,136,162,162,194,202]},{"a":25858,"t":"byte","b":[192,192,202,2,0,10,252,243]},{"a":25866,"t":"byte","b":[0,3,195,252,3,252,243,255]},{"a":25874,"t":"byte","b":[255,15,240,255,63,195,255,255]},{"a":25882,"t":"byte","b":[255,255,255,252,255,255,195,252]},{"a":25890,"t":"byte","b":[255,255,192,63,255,255,255,63]},{"a":25898,"t":"byte","b":[207,0,255,255,255,195,207,243]},{"a":25906,"t":"byte","b":[243,51,15,195,243,240,243,252]},{"a":25914,"t":"byte","b":[243,255,255,255,255,255,200,10]},{"a":25922,"t":"byte","b":[242,252,252,255,60,195,207,15]},{"a":25930,"t":"byte","b":[63,63,143,35,40,40,202,10]},{"a":25938,"t":"byte","b":[42,42,34,34,42,162,202,202]},{"a":25946,"t":"byte","b":[42,42,0,255,255,3,63,63]},{"a":25954,"t":"byte","b":[48,202,10,170,34,128,192,3]},{"a":25962,"t":"byte","b":[15,63,15,131,140,12,255,15]},{"a":25970,"t":"byte","b":[243,255,255,255,195,60,252,252]},{"a":25978,"t":"byte","b":[252,252,252,252,252,252,12,249]},{"a":25986,"t":"byte","b":[9,245,8,248,156,249,8,248]},{"a":25994,"t":"byte","b":[0,249,137,249,5,249,9,255]},{"a":26002,"t":"byte","b":[0,9,5,111,9,5,5,5]},{"a":26010,"t":"byte","b":[5,5,101,5,5,5,5,9]},{"a":26018,"t":"byte","b":[5,101,5,5,15,15,51,51]},{"a":26026,"t":"byte","b":[63,15,3,51,255,255,255,255]},{"a":26034,"t":"byte","b":[255,255,255,255,195,60,240,200]},{"a":26042,"t":"byte","b":[200,42,42,42,48,63,207,240]},{"a":26050,"t":"byte","b":[255,15,254,2,255,63,250,58]},{"a":26058,"t":"byte","b":[202,162,170,138,255,255,255,255]},{"a":26066,"t":"byte","b":[190,187,171,2,255,255,255,255]},{"a":26074,"t":"byte","b":[251,251,235,239,252,255,255,255]},{"a":26082,"t":"byte","b":[255,255,175,191,60,255,255,255]},{"a":26090,"t":"byte","b":[255,239,250,250,12,192,248,255]},{"a":26098,"t":"byte","b":[254,190,174,174,255,59,63,14]},{"a":26106,"t":"byte","b":[18,20,133,129,255,255,255,190]},{"a":26114,"t":"byte","b":[191,59,47,15,192,252,255,255]},{"a":26122,"t":"byte","b":[191,187,186,174,168,40,42,42]},{"a":26130,"t":"byte","b":[42,42,34,42,50,60,63,63]},{"a":26138,"t":"byte","b":[63,61,61,61,163,143,15,15]},{"a":26146,"t":"byte","b":[7,19,19,20,12,12,207,207]},{"a":26154,"t":"byte","b":[243,163,163,184,255,255,63,63]},{"a":26162,"t":"byte","b":[63,255,251,251,252,252,252,252]},{"a":26170,"t":"byte","b":[252,252,188,236,12,248,133,246]},{"a":26178,"t":"byte","b":[150,182,198,198,182,246,150,246]},{"a":26186,"t":"byte","b":[6,249,105,105,6,246,6,9]},{"a":26194,"t":"byte","b":[9,9,5,101,5,5,5,5]},{"a":26202,"t":"byte","b":[5,5,101,5,5,5,5,5]},{"a":26210,"t":"byte","b":[5,101,48,63,63,63,63,63]},{"a":26218,"t":"byte","b":[63,63,63,51,51,51,3,3]},{"a":26226,"t":"byte","b":[48,12,44,44,46,46,74,74]},{"a":26234,"t":"byte","b":[64,85,236,172,40,40,128,21]},{"a":26242,"t":"byte","b":[80,74,204,60,195,60,255,15]},{"a":26250,"t":"byte","b":[240,60,255,255,207,63,255,63]},{"a":26258,"t":"byte","b":[255,63,255,255,255,255,255,255]},{"a":26266,"t":"byte","b":[255,255,234,234,255,255,255,255]},{"a":26274,"t":"byte","b":[255,255,239,239,239,255,255,255]},{"a":26282,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26290,"t":"byte","b":[255,255,240,252,252,252,255,252]},{"a":26298,"t":"byte","b":[242,9,163,160,168,40,10,10]},{"a":26306,"t":"byte","b":[66,84,255,255,255,255,63,0]},{"a":26314,"t":"byte","b":[162,4,34,42,34,34,34,162]},{"a":26322,"t":"byte","b":[162,162,59,58,59,63,63,15]},{"a":26330,"t":"byte","b":[79,67,63,207,206,63,207,48]},{"a":26338,"t":"byte","b":[63,207,12,42,138,170,170,170]},{"a":26346,"t":"byte","b":[170,170,239,42,42,170,170,170]},{"a":26354,"t":"byte","b":[170,170,252,252,252,252,252,252]},{"a":26362,"t":"byte","b":[252,252,251,248,150,150,249,248]},{"a":26370,"t":"byte","b":[207,133,149,158,190,233,233,9]},{"a":26378,"t":"byte","b":[149,5,246,134,251,9,9,5]},{"a":26386,"t":"byte","b":[5,6,6,102,6,6,6,6]},{"a":26394,"t":"byte","b":[6,6,101,6,6,5,5,6]},{"a":26402,"t":"byte","b":[63,63,60,60,60,60,15,63]},{"a":26410,"t":"byte","b":[85,81,80,85,85,69,85,69]},{"a":26418,"t":"byte","b":[252,194,6,42,42,42,42,42]},{"a":26426,"t":"byte","b":[63,255,172,252,255,255,255,255]},{"a":26434,"t":"byte","b":[194,32,132,48,255,255,255,255]},{"a":26442,"t":"byte","b":[192,191,170,32,5,85,85,85]},{"a":26450,"t":"byte","b":[255,63,128,42,192,240,252,241]},{"a":26458,"t":"byte","b":[255,0,170,21,85,21,85,85]},{"a":26466,"t":"byte","b":[255,255,0,170,85,85,85,85]},{"a":26474,"t":"byte","b":[252,194,41,149,85,84,85,85]},{"a":26482,"t":"byte","b":[251,170,170,42,170,168,138,168]},{"a":26490,"t":"byte","b":[187,139,224,40,162,136,2,160]},{"a":26498,"t":"byte","b":[244,19,17,5,20,85,21,20]},{"a":26506,"t":"byte","b":[63,143,96,26,149,85,80,0]},{"a":26514,"t":"byte","b":[242,242,50,66,0,50,50,242]},{"a":26522,"t":"byte","b":[255,255,255,15,243,255,255,255]},{"a":26530,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26538,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26546,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":26554,"t":"byte","b":[188,152,230,254,190,107,190,190]},{"a":26562,"t":"byte","b":[190,190,251,155,185,190,230,0]},{"a":26570,"t":"byte","b":[120,11,245,9,111,9,6,246]},{"a":26578,"t":"byte","b":[14,6,6,102,6,14,254,14]},{"a":26586,"t":"byte","b":[9,9,102,6,6,246,21,21]},{"a":26594,"t":"byte","b":[21,21,21,21,21,21,64,80]},{"a":26602,"t":"byte","b":[80,64,68,68,5,5,63,63]},{"a":26610,"t":"byte","b":[254,63,63,63,63,63,255,255]},{"a":26618,"t":"byte","b":[255,235,255,255,255,255,85,85]},{"a":26626,"t":"byte","b":[85,85,0,63,64,81,255,255]},{"a":26634,"t":"byte","b":[240,202,40,131,60,240,241,197]},{"a":26642,"t":"byte","b":[21,85,21,5,1,48,255,255]},{"a":26650,"t":"byte","b":[255,255,255,255,255,252,255,255]},{"a":26658,"t":"byte","b":[252,243,240,200,42,170,255,255]},{"a":26666,"l":"ROOM_GFX_10_CONT_682A","c":"Room illustration 10 continuation at source offset $0400: row 5, byte 74 of its 190-byte interleaved row. Descriptor $0C35 gives 8 rows by 19 cells; this source ends at $6A19. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[255,255,15,0,128,168,255,243]},{"a":26674,"t":"byte","b":[255,204,63,60,60,60,192,0]},{"a":26682,"t":"byte","b":[12,0,2,0,3,128,128,0]},{"a":26690,"t":"byte","b":[63,255,255,63,143,143,0,60]},{"a":26698,"t":"byte","b":[143,140,143,163,160,168,242,48]},{"a":26706,"t":"byte","b":[60,204,207,51,252,60,255,255]},{"a":26714,"t":"byte","b":[255,63,143,163,160,168,255,255]},{"a":26722,"t":"byte","b":[255,255,255,255,255,255,170,170]},{"a":26730,"t":"byte","b":[170,170,170,170,170,170,252,252]},{"a":26738,"t":"byte","b":[252,252,252,252,252,252,152,159]},{"a":26746,"t":"byte","b":[158,158,105,203,185,25,246,246]},{"a":26754,"t":"byte","b":[133,6,251,6,134,9,248,182]},{"a":26762,"t":"byte","b":[251,15,8,6,102,11,6,246]},{"a":26770,"t":"byte","b":[11,11,11,107,11,6,249,9]},{"a":26778,"t":"byte","b":[6,6,101,6,63,63,15,15]},{"a":26786,"t":"byte","b":[63,63,63,63,63,51,51,252]},{"a":26794,"t":"byte","b":[252,252,252,252,133,160,170,170]},{"a":26802,"t":"byte","b":[170,10,162,42,255,255,63,143]},{"a":26810,"t":"byte","b":[143,163,163,168,255,255,255,255]},{"a":26818,"t":"byte","b":[255,255,255,255,8,35,15,255]},{"a":26826,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26834,"t":"byte","b":[255,255,255,255,1]},{"a":26839,"l":"ROOM_GFX_10_ROW6_BITMAP_TAIL","c":"Continuation of room illustration 10 ($642A-$6A19), 8 rows by 19 cells. This begins at byte 57 of source row 6 (row base $689E), within cell index 7 bitmap scanline bytes. The following $6906 bytes remain in the same interleaved image, ending at $6A19; this label marks a ledger span boundary rather than another picture.","t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":26847,"t":"byte","b":[85,85,85,85,85,85,64,85]},{"a":26855,"t":"byte","b":[85,85,85,85,85,85,0,202]},{"a":26863,"t":"byte","b":[202,240,255,255,255,255,63,15]},{"a":26871,"t":"byte","b":[160,42,194,252,255,255,255,5]},{"a":26879,"t":"byte","b":[5,161,168,10,80,85,85,84]},{"a":26887,"t":"byte","b":[84,80,83,16,80,67,0,255]},{"a":26895,"t":"byte","b":[255,252,252,243,240,60,0,60]},{"a":26903,"t":"byte","b":[63,255,255,255,15,60,207,255]},{"a":26911,"t":"byte","b":[63,3,168,170,170,34,0,170]},{"a":26919,"t":"byte","b":[170,170,10,242,242,252,60,252]},{"a":26927,"t":"byte","b":[252,252,252,252,252,252,252,24]},{"a":26935,"t":"byte","b":[143,105,185,155,27,248,105,97]},{"a":26943,"t":"byte","b":[107,139,11,107,107,255,0,9]},{"a":26951,"t":"byte","b":[246,95,9,9,8,6,6,102]},{"a":26959,"t":"byte","b":[6,8,9,9,246,6,245,249]},{"a":26967,"t":"byte","b":[249,105,102,249,246,15,15,51]},{"a":26975,"t":"byte","b":[63,63,15,15,0,168,168,170]},{"a":26983,"t":"byte","b":[170,170,168,160,0,4,0,0]},{"a":26991,"t":"byte","b":[1,4,0,0,0,168,168,168]},{"a":26999,"t":"byte","b":[170,42,10,10,0,255,63,0]},{"a":27007,"t":"byte","b":[0,0,10,130,0,255,194,40]},{"a":27015,"t":"byte","b":[0,0,0,160,0,255,15,128]},{"a":27023,"t":"byte","b":[160,0,0,0,0,255,252,2]},{"a":27031,"t":"byte","b":[8,0,0,0,0,60,240,0]},{"a":27039,"t":"byte","b":[0,0,0,0,0,128,0,32]},{"a":27047,"t":"byte","b":[160,0,0,0,0,12,3,0]},{"a":27055,"t":"byte","b":[0,0,0,12,0,0,0,3]},{"a":27063,"t":"byte","b":[12,3,0,0,0,0,0,0]},{"a":27071,"t":"byte","b":[192,240,0,0,0,0,0,0]},{"a":27079,"t":"byte","b":[240,0,3,0,0,0,48,0]},{"a":27087,"t":"byte","b":[0,0,192,0,0,0,0,0]},{"a":27095,"t":"byte","b":[0,0,0,192,0,15,8,34]},{"a":27103,"t":"byte","b":[0,0,0,0,0,200,8,138]},{"a":27111,"t":"byte","b":[160,0,0,0,0,252,252,60]},{"a":27119,"t":"byte","b":[0,0,0,0,0,1,249,159]},{"a":27127,"t":"byte","b":[249,9,249,201,249,143,137,6]},{"a":27135,"t":"byte","b":[245,5,245,0,255,9,249,191]},{"a":27143,"t":"byte","b":[9,248,248,248,102,246,246,102]},{"a":27151,"t":"byte","b":[249,175,105,249,249,249,9,249]},{"a":27159,"t":"byte","b":[246,6,246]},{"a":27162,"l":"ROOM_GFX_11","c":"ROOM_GFX_11 - ROOM_GRAPHIC_TABLE[11] source data, part 1. 10 rows x 11 columns blitted at\ncharacter row 0, column 4; 1100 bytes = 10 * 11 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27170,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27178,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27186,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27194,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27202,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27210,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27218,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27226,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27234,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27242,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27250,"t":"byte","b":[0,255,200,247,2,255,8,248]},{"a":27258,"t":"byte","b":[156,249,14,98,242,242,8,8]},{"a":27266,"t":"byte","b":[242,242,2,98,242,242,0,0]},{"a":27274,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27282,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27290,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27298,"t":"byte","b":[0,0,0,0,15,48,0,0]},{"a":27306,"t":"byte","b":[0,0,0,240,15,160,0,0]},{"a":27314,"t":"byte","b":[0,0,0,0,3,252,0,0]},{"a":27322,"t":"byte","b":[0,0,0,60,195,20,0,0]},{"a":27330,"t":"byte","b":[0,0,0,0,192,48,0,0]},{"a":27338,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27346,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27354,"t":"byte","b":[0,0,0,0,0,0,120,120]},{"a":27362,"t":"byte","b":[120,39,201,152,152,146,129,248]},{"a":27370,"t":"byte","b":[206,242,2,242,241,97,241,241]},{"a":27378,"t":"byte","b":[241,2,242,242,0,0,48,60]},{"a":27386,"t":"byte","b":[44,47,47,47,0,0,0,0]},{"a":27394,"t":"byte","b":[0,0,0,0,0,3,12,12]},{"a":27402,"t":"byte","b":[50,50,202,202,202,42,170,170]},{"a":27410,"t":"byte","b":[170,170,170,170,255,255,252,252]},{"a":27418,"t":"byte","b":[252,242,242,242,50,50,252,252]},{"a":27426,"t":"byte","b":[252,255,255,255,255,255,255,255]},{"a":27434,"t":"byte","b":[255,63,63,63,200,242,252,252]},{"a":27442,"t":"byte","b":[255,255,255,255,0,0,192,192]},{"a":27450,"t":"byte","b":[48,60,140,140,0,0,0,0]},{"a":27458,"t":"byte","b":[0,0,0,3,0,0,12,12]},{"a":27466,"t":"byte","b":[60,60,252,252,12,40,121,249]},{"a":27474,"t":"byte","b":[193,121,184,241,137,249,152,107]},{"a":27482,"t":"byte","b":[103,241,81,41,1,249,137,97]},{"a":27490,"t":"byte","b":[252,92,62,62,47,47,63,59]},{"a":27498,"t":"byte","b":[46,46,0,194,194,66,114,248]},{"a":27506,"t":"byte","b":[120,120,202,42,42,42,42,170]},{"a":27514,"t":"byte","b":[170,170,255,255,255,255,255,255]},{"a":27522,"t":"byte","b":[255,252,143,143,143,163,168,160]},{"a":27530,"t":"byte","b":[15,252,255,255,255,255,252,204]},{"a":27538,"t":"byte","b":[3,0,202,202,202,42,170,42]},{"a":27546,"t":"byte","b":[194,252,255,255,255,255,255,255]},{"a":27554,"t":"byte","b":[255,255,140,163,163,163,163,168]},{"a":27562,"t":"byte","b":[168,168,3,15,15,48,51,141]},{"a":27570,"t":"byte","b":[141,141,252,248,168,188,124,112]},{"a":27578,"t":"byte","b":[76,76,251,193,41,114,137,120]},{"a":27586,"t":"byte","b":[137,120,121,177,184,12,11,241]},{"a":27594,"t":"byte","b":[249,97,241,241,57,1,252,252]},{"a":27602,"t":"byte","b":[55,63,51,39,41,42,37,37]},{"a":27610,"t":"byte","b":[232,232,232,248,232,40,40,42]},{"a":27618,"t":"byte","b":[255,255,255,255,255,255,255,63]},{"a":27626,"t":"byte","b":[242,242,200,200,202,40,40,40]},{"a":27634,"t":"byte","b":[192,0,0,252,3,163,143,131]},{"a":27642,"t":"byte","b":[0,0,0,0,3,3,171,171]},{"a":27650,"t":"byte","b":[15,3,0,252,3,40,200,8]},{"a":27658,"t":"byte","b":[63,63,143,143,143,163,163,163]},{"a":27666,"t":"byte","b":[252,252,252,252,252,252,252,242]},{"a":27674,"t":"byte","b":[14,61,61,52,54,48,2,6]},{"a":27682,"t":"byte","b":[232,96,200,8,56,28,100,212]},{"a":27690,"t":"byte","b":[185,123,114,241,120,134,184,177]},{"a":27698,"t":"byte","b":[28,185,188,252,252,105,249,193]},{"a":27706,"t":"byte","b":[1,241,249,249,108,249,63,15]},{"a":27714,"t":"byte","b":[63,63,21,31,31,31,63,63]},{"a":27722,"t":"byte","b":[63,63,143,143,179,243,63,63]},{"a":27730,"t":"byte","b":[63,143,15,15,3,131,60,60]},{"a":27738,"t":"byte","b":[140,140,140,160,162,160,188,188]},{"a":27746,"t":"byte","b":[188,188,188,172,129,133,236,236]},{"a":27754,"t":"byte","b":[236,220,220,220,87,87,248,248]},{"a":27762,"t":"byte","b":[248,232,232,168,10,72,242,242]},{"a":27770,"t":"byte","b":[202,202,202,42,42,42,240,240]},{"a":27778,"t":"byte","b":[240,194,194,192,32,0,59,59]},{"a":27786,"t":"byte","b":[11,73,124,24,24,24,104,108]},{"a":27794,"t":"byte","b":[104,104,168,172,188,188,152,137]},{"a":27802,"t":"byte","b":[235,41,25,198,25,233,252,139]},{"a":27810,"t":"byte","b":[139,203,11,249,241,248,97,248]},{"a":27818,"t":"byte","b":[1,9,9,252,58,58,58,62]},{"a":27826,"t":"byte","b":[14,14,35,35,243,207,202,206]},{"a":27834,"t":"byte","b":[203,243,243,252,192,192,192,240]},{"a":27842,"t":"byte","b":[192,192,193,21,142,139,43,43]},{"a":27850,"t":"byte","b":[43,163,163,207,62,78,83,83]},{"a":27858,"t":"byte","b":[83,19,14,14,255,255,254,254]},{"a":27866,"t":"byte","b":[254,254,255,255,82,79,59,59]},{"a":27874,"t":"byte","b":[43,35,67,67,200,136,160,160]},{"a":27882,"t":"byte","b":[160,40,42,202,0,0,3,0]},{"a":27890,"t":"byte","b":[3,51,3,131,46,172,128,21]},{"a":27898,"t":"byte","b":[5,21,141,174,188,124,124,220]},{"a":27906,"t":"byte","b":[220,244,196,140,27,169,154,105]},{"a":27914,"t":"byte","b":[156,225,25,233,107,203,139,249]},{"a":27922,"t":"byte","b":[11,107,248,241,12,248,248,12]},{"a":27930,"t":"byte","b":[104,252,51,32,32,44,47,47]},{"a":27938,"t":"byte","b":[58,63,168,232,168,168,40,40]},{"a":27946,"t":"byte","b":[42,8,58,224,172,234,250,255]},{"a":27954,"t":"byte","b":[60,67,143,143,143,15,207,207]},{"a":27962,"t":"byte","b":[139,139,58,58,58,42,58,42]},{"a":27970,"t":"byte","b":[10,42,255,255,255,255,255,255]},{"a":27978,"t":"byte","b":[255,255,114,114,114,82,114,82]},{"a":27986,"t":"byte","b":[82,82,202,200,200,194,139,143]},{"a":27994,"t":"byte","b":[140,143,96,24,152,88,104,168]},{"a":28002,"t":"byte","b":[163,15,59,165,255,253,241,213]},{"a":28010,"t":"byte","b":[149,106,60,56,120,56,56,40]},{"a":28018,"t":"byte","b":[60,44,9,107,184,105,156,251]},{"a":28026,"t":"byte","b":[200,249,137,185,184,251,249,249]},{"a":28034,"t":"byte","b":[248,1,252,241,8,252,252,12]},{"a":28042,"t":"byte","b":[63,63,15,47,35,48,48,60]},{"a":28050,"t":"byte","b":[12,207,195,243,51,204,48,0]},{"a":28058,"t":"byte","b":[202,40,32,42,192,0,48,204]},{"a":28066,"t":"byte","b":[143,15,131,3,4,1,4,85]},{"a":28074,"t":"byte","b":[15,15,3,131,51,207,255,255]},{"a":28082,"t":"byte","b":[255,255,255,255,255,255,255,207]},{"a":28090,"t":"byte","b":[242,242,242,202,240,255,255,255]},{"a":28098,"t":"byte","b":[207,192,12,35,128,170,168,170]},{"a":28106,"t":"byte","b":[202,242,18,80,0,0,136,170]},{"a":28114,"t":"byte","b":[224,20,0,7,15,175,255,245]},{"a":28122,"t":"byte","b":[248,40,232,188,120,64,72,88]},{"a":28130,"t":"byte","b":[9,245,9,201,8,249,8,252]},{"a":28138,"t":"byte","b":[156,201,156,251,251,251,8,252]},{"a":28146,"t":"byte","b":[252,12,249,248,11,104,60,63]},{"a":28154,"t":"byte","b":[63,60,3,48,3,0,192,48]},{"a":28162,"t":"byte","b":[3,0,3,48,12,0,50,242]},{"a":28170,"t":"byte","b":[10,202,42,42,234,0,255,255]},{"a":28178,"t":"byte","b":[255,255,255,255,255,0,255,255]},{"a":28186,"l":"ROOM_GFX_11_CONT_6E1A","c":"Room illustration 11 continuation at source offset $0400: row 9, byte 34 of its 110-byte interleaved row. Descriptor $0C3B gives 10 rows by 11 cells; this source ends at $6E65. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[255,255,255,255,255,0,207,11]},{"a":28194,"t":"byte","b":[175,207,207,227,255,0,170,170]},{"a":28202,"t":"byte","b":[170,170,170,170,170,0,170,170]},{"a":28210,"t":"byte","b":[170,170,170,170,170,0,252,255]},{"a":28218,"t":"byte","b":[255,255,255,255,255,0,250,200]},{"a":28226,"t":"byte","b":[160,170,170,170,170,0,56,248]},{"a":28234,"t":"byte","b":[188,56,40,136,136,0,6,246]},{"a":28242,"t":"byte","b":[12,251,5,249,12,252,11,252]},{"a":28250,"t":"byte","b":[12,251,107,251,252,252,12,245]},{"a":28258,"t":"byte","b":[245,12,251,251]},{"a":28262,"l":"ROOM_GFX_12","c":"ROOM_GFX_12 - ROOM_GRAPHIC_TABLE[12] source data, part 1. 5 rows x 12 columns blitted at\ncharacter row 3, column 4; 600 bytes = 5 * 12 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,48,0,0,0]},{"a":28270,"t":"byte","b":[0,0,3,3,192,48,0,0]},{"a":28278,"t":"byte","b":[0,3,3,206,14,14,3,14]},{"a":28286,"t":"byte","b":[0,255,255,175,175,171,235,250]},{"a":28294,"t":"byte","b":[0,234,254,250,250,250,192,0]},{"a":28302,"t":"byte","b":[0,0,0,195,192,240,255,255]},{"a":28310,"t":"byte","b":[0,192,192,0,0,3,252,194]},{"a":28318,"t":"byte","b":[0,3,3,15,63,255,63,143]},{"a":28326,"t":"byte","b":[0,240,240,255,252,252,240,192]},{"a":28334,"t":"byte","b":[0,0,192,0,0,3,12,0]},{"a":28342,"t":"byte","b":[0,0,0,48,240,0,0,0]},{"a":28350,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28358,"t":"byte","b":[0,255,200,247,2,255,8,248]},{"a":28366,"t":"byte","b":[156,249,14,255,242,242,98,248]},{"a":28374,"t":"byte","b":[248,2,242,242,242,98,242,245]},{"a":28382,"t":"byte","b":[12,0,3,14,57,57,57,57]},{"a":28390,"t":"byte","b":[0,240,188,111,91,90,86,85]},{"a":28398,"t":"byte","b":[57,229,229,249,249,254,255,191]},{"a":28406,"t":"byte","b":[254,190,191,175,171,186,254,95]},{"a":28414,"t":"byte","b":[0,0,0,0,63,63,143,160]},{"a":28422,"t":"byte","b":[10,0,5,22,21,149,21,85]},{"a":28430,"t":"byte","b":[20,4,80,164,165,89,85,85]},{"a":28438,"t":"byte","b":[240,255,255,3,40,42,74,66]},{"a":28446,"t":"byte","b":[0,80,68,84,0,192,255,255]},{"a":28454,"t":"byte","b":[0,0,0,0,0,255,252,192]},{"a":28462,"t":"byte","b":[0,0,0,3,63,192,0,0]},{"a":28470,"t":"byte","b":[0,0,0,0,192,48,0,0]},{"a":28478,"t":"byte","b":[120,120,120,39,199,152,152,146]},{"a":28486,"t":"byte","b":[129,248,206,158,242,2,242,248]},{"a":28494,"t":"byte","b":[168,110,254,248,2,242,2,242]},{"a":28502,"t":"byte","b":[58,14,14,3,3,0,0,0]},{"a":28510,"t":"byte","b":[255,255,191,175,171,106,106,22]},{"a":28518,"t":"byte","b":[234,122,122,126,94,90,95,215]},{"a":28526,"t":"byte","b":[254,240,202,202,202,202,240,191]},{"a":28534,"t":"byte","b":[232,35,79,3,252,255,252,0]},{"a":28542,"t":"byte","b":[234,170,175,224,197,16,10,170]},{"a":28550,"t":"byte","b":[255,175,255,48,15,243,252,255]},{"a":28558,"t":"byte","b":[204,207,63,255,255,255,252,60]},{"a":28566,"t":"byte","b":[240,60,140,143,131,40,170,154]},{"a":28574,"t":"byte","b":[0,63,204,0,15,252,2,170]},{"a":28582,"t":"byte","b":[0,0,15,255,192,21,69,81]},{"a":28590,"t":"byte","b":[12,252,252,252,252,60,140,160]},{"a":28598,"t":"byte","b":[8,40,114,248,199,121,184,254]},{"a":28606,"t":"byte","b":[137,249,152,249,242,167,8,242]},{"a":28614,"t":"byte","b":[248,8,105,249,130,2,242,242]},{"a":28622,"t":"byte","b":[48,0,0,15,62,58,63,3]},{"a":28630,"t":"byte","b":[58,14,14,15,255,191,175,170]},{"a":28638,"t":"byte","b":[235,250,250,254,126,127,95,95]},{"a":28646,"t":"byte","b":[250,254,254,127,95,95,87,215]},{"a":28654,"t":"byte","b":[252,242,242,242,114,114,82,82]},{"a":28662,"t":"byte","b":[255,255,252,242,198,197,197,197]},{"a":28670,"t":"byte","b":[255,192,41,170,106,106,90,154]},{"a":28678,"t":"byte","b":[195,0,165,149,165,102,85,101]},{"a":28686,"t":"byte","b":[250,47,74,208,85,87,87,95]},{"a":28694,"t":"byte","b":[255,252,194,42,170,170,165,85]},{"a":28702,"t":"byte","b":[200,42,239,255,255,255,255,127]},{"a":28710,"t":"byte","b":[32,204,252,92,84,84,84,84]},{"a":28718,"t":"byte","b":[248,248,39,114,137,120,135,120]},{"a":28726,"t":"byte","b":[121,120,114,137,242,178,104,248]},{"a":28734,"t":"byte","b":[2,9,9,249,248,249,104,242]},{"a":28742,"t":"byte","b":[0,0,3,15,62,62,63,0]},{"a":28750,"t":"byte","b":[234,250,250,170,106,150,169,0]},{"a":28758,"t":"byte","b":[251,255,127,87,213,85,214,0]},{"a":28766,"t":"byte","b":[250,234,174,168,168,234,170,0]},{"a":28774,"t":"byte","b":[242,66,8,170,170,0,85,0]},{"a":28782,"t":"byte","b":[202,202,9,202,202,42,154,0]},{"a":28790,"t":"byte","b":[251,255,255,255,255,239,255,0]},{"a":28798,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":28806,"t":"byte","b":[239,191,255,255,255,251,255,0]},{"a":28814,"t":"byte","b":[255,254,255,250,255,255,255,0]},{"a":28822,"t":"byte","b":[250,254,191,255,254,254,250,0]},{"a":28830,"t":"byte","b":[252,252,252,252,252,252,252,0]},{"a":28838,"t":"byte","b":[184,120,114,247,121,135,184,188]},{"a":28846,"t":"byte","b":[24,184,104,155,2,2,248,8]},{"a":28854,"t":"byte","b":[8,9,103,7,7,247,7,8]},{"a":28862,"l":"ROOM_GFX_13","c":"ROOM_GFX_13 - ROOM_GRAPHIC_TABLE[13] source data, part 1. 8 rows x 10 columns blitted at\ncharacter row 1, column 5; 800 bytes = 8 * 10 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28870,"t":"byte","b":[0,0,0,3,12,3,15,43]},{"a":28878,"t":"byte","b":[0,63,15,143,3,163,168,168]},{"a":28886,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":28894,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":28902,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":28910,"t":"byte","b":[0,255,255,255,255,255,255,192]},{"a":28918,"t":"byte","b":[0,255,255,255,255,255,3,160]},{"a":28926,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":28934,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":28942,"t":"byte","b":[0,248,201,247,2,255,8,249]},{"a":28950,"t":"byte","b":[156,249,242,9,6,246,246,246]},{"a":28958,"t":"byte","b":[102,246,246,6,0,0,0,0]},{"a":28966,"t":"byte","b":[0,0,0,0,58,32,236,206]},{"a":28974,"t":"byte","b":[10,15,2,8,168,140,128,188]},{"a":28982,"t":"byte","b":[168,44,160,8,63,63,15,15]},{"a":28990,"t":"byte","b":[3,3,0,0,255,255,255,255]},{"a":28998,"t":"byte","b":[252,242,202,2,255,252,252,243]},{"a":29006,"t":"byte","b":[242,50,130,194,26,170,170,170]},{"a":29014,"t":"byte","b":[170,170,170,170,84,213,213,213]},{"a":29022,"t":"byte","b":[245,245,213,85,63,63,15,15]},{"a":29030,"t":"byte","b":[15,0,47,171,252,252,252,252]},{"a":29038,"t":"byte","b":[252,252,60,60,120,120,120,39]},{"a":29046,"t":"byte","b":[200,152,152,146,137,248,242,249]},{"a":29054,"t":"byte","b":[105,246,246,6,241,248,246,102]},{"a":29062,"t":"byte","b":[0,0,0,0,0,12,63,63]},{"a":29070,"t":"byte","b":[11,206,240,252,63,207,51,243]},{"a":29078,"t":"byte","b":[172,248,130,2,2,2,130,128]},{"a":29086,"t":"byte","b":[128,170,168,168,168,168,168,168]},{"a":29094,"t":"byte","b":[188,3,252,188,124,65,1,65]},{"a":29102,"t":"byte","b":[130,194,128,0,0,0,2,3]},{"a":29110,"t":"byte","b":[171,172,176,178,179,184,170,178]},{"a":29118,"t":"byte","b":[63,15,3,129,1,1,49,241]},{"a":29126,"t":"byte","b":[172,179,179,176,128,128,64,64]},{"a":29134,"t":"byte","b":[252,252,252,252,252,60,60,12]},{"a":29142,"t":"byte","b":[12,40,121,249,177,121,184,184]},{"a":29150,"t":"byte","b":[41,249,249,249,248,97,249,248]},{"a":29158,"t":"byte","b":[9,249,246,246,63,63,63,15]},{"a":29166,"t":"byte","b":[51,60,63,63,252,255,255,255]},{"a":29174,"t":"byte","b":[255,255,15,192,160,160,168,170]},{"a":29182,"t":"byte","b":[170,10,162,168,252,252,252,50]},{"a":29190,"t":"byte","b":[196,196,196,196,3,131,3,3]},{"a":29198,"t":"byte","b":[252,0,5,84,2,2,3,0]},{"a":29206,"t":"byte","b":[5,1,1,1,162,138,10,60]},{"a":29214,"t":"byte","b":[255,67,67,83,242,2,10,10]},{"a":29222,"t":"byte","b":[42,170,106,106,192,192,192,192]},{"a":29230,"t":"byte","b":[2,2,10,10,192,240,252,252]},{"a":29238,"t":"byte","b":[252,252,252,252,251,193,41,139]},{"a":29246,"t":"byte","b":[143,200,201,203,121,177,249,249]},{"a":29254,"t":"byte","b":[1,249,251,169,107,249,251,9]},{"a":29262,"t":"byte","b":[42,40,40,42,34,42,10,2]},{"a":29270,"t":"byte","b":[63,255,255,255,255,255,252,242]},{"a":29278,"t":"byte","b":[3,252,242,243,252,252,192,0]},{"a":29286,"t":"byte","b":[62,251,191,255,0,0,0,0]},{"a":29294,"t":"byte","b":[163,140,240,0,0,0,0,0]},{"a":29302,"t":"byte","b":[3,3,15,3,3,12,2,2]},{"a":29310,"t":"byte","b":[235,255,255,255,207,0,64,64]},{"a":29318,"t":"byte","b":[212,84,84,208,0,0,0,0]},{"a":29326,"t":"byte","b":[15,15,15,15,63,51,243,51]},{"a":29334,"t":"byte","b":[160,32,32,32,8,136,136,136]},{"a":29342,"t":"byte","b":[185,127,120,248,120,137,146,177]},{"a":29350,"t":"byte","b":[28,185,12,249,201,105,249,252]},{"a":29358,"t":"byte","b":[252,12,249,204,0,0,1,7]},{"a":29366,"t":"byte","b":[15,15,1,15,0,0,192,242]},{"a":29374,"t":"byte","b":[241,50,225,194,192,240,2,1]},{"a":29382,"t":"byte","b":[0,0,64,48,0,0,128,96]},{"a":29390,"t":"byte","b":[144,100,152,100,0,0,0,0]},{"a":29398,"t":"byte","b":[0,0,0,0,15,15,15,15]},{"a":29406,"t":"byte","b":[60,60,60,252,0,3,15,143]},{"a":29414,"t":"byte","b":[131,131,131,32,63,240,204,240]},{"a":29422,"t":"byte","b":[240,252,252,60,51,60,60,12]},{"a":29430,"t":"byte","b":[12,60,63,15,204,192,192,240]},{"a":29438,"t":"byte","b":[48,48,0,192,152,41,146,41]},{"a":29446,"t":"byte","b":[25,198,25,233,252,139,244,244]},{"a":29454,"t":"byte","b":[255,1,248,249,98,98,249,169]},{"a":29462,"t":"byte","b":[15,15,15,15,14,14,12,12]},{"a":29470,"t":"byte","b":[201,198,201,198,201,198,200,130]},{"a":29478,"t":"byte","b":[48,76,76,60,76,44,174,158]},{"a":29486,"t":"byte","b":[184,236,184,236,184,224,10,66]},{"a":29494,"t":"byte","b":[0,1,1,1,0,21,69,85]},{"a":29502,"t":"byte","b":[252,252,0,252,207,240,204,0]},{"a":29510,"t":"byte","b":[49,0,2,0,0,0,3,3]},{"a":29518,"t":"byte","b":[192,0,42,161,9,153,168,169]},{"a":29526,"t":"byte","b":[0,0,192,240,60,252,243,243]},{"a":29534,"t":"byte","b":[240,48,0,48,0,0,60,60]},{"a":29542,"t":"byte","b":[25,41,152,137,156,225,27,152]},{"a":29550,"t":"byte","b":[107,203,4,244,255,98,241,249]},{"a":29558,"t":"byte","b":[168,11,249,249,8,0,0,32]},{"a":29566,"t":"byte","b":[0,34,3,0,3,3,35,147]},{"a":29574,"t":"byte","b":[97,152,102,0,141,162,170,168]},{"a":29582,"t":"byte","b":[173,108,35,0,168,170,58,202]},{"a":29590,"t":"byte","b":[168,1,85,0,84,20,68,0]},{"a":29598,"t":"byte","b":[3,255,255,0,192,192,0,1]},{"a":29606,"t":"byte","b":[86,90,85,0,0,0,0,192]},{"a":29614,"t":"byte","b":[240,242,250,0,234,255,3,0]},{"a":29622,"t":"byte","b":[80,85,85,0,66,10,74,36]},{"a":29630,"t":"byte","b":[0,192,255,0,40,32,32,0]},{"a":29638,"t":"byte","b":[0,0,0,0,9,146,152,249]},{"a":29646,"t":"byte","b":[156,251,207,249,137,185,242,248]},{"a":29654,"t":"byte","b":[111,248,255,105,251,248,255,252]},{"a":29662,"l":"ROOM_GFX_14","c":"ROOM_GFX_14 - ROOM_GRAPHIC_TABLE[14] source data, part 1. 7 rows x 15 columns blitted at\ncharacter row 2, column 2; 1050 bytes = 7 * 15 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29670,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29678,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29686,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29694,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29702,"t":"byte","b":[0,0,0,0,0,0,0,214]},{"a":29710,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29718,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29726,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29734,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29742,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29750,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29758,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29766,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29774,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29782,"t":"byte","b":[0,248,201,247,2,251,8,249]},{"a":29790,"t":"byte","b":[156,249,14,255,0,249,9,242]},{"a":29798,"t":"byte","b":[9,6,246,198,102,246,246,6]},{"a":29806,"t":"byte","b":[6,245,53,101,245,245,0,0]},{"a":29814,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29822,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29830,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29838,"t":"byte","b":[0,0,0,0,0,0,3,2]},{"a":29846,"t":"byte","b":[2,2,3,0,0,0,194,66]},{"a":29854,"t":"byte","b":[64,64,211,125,28,7,192,128]},{"a":29862,"t":"byte","b":[128,128,64,0,0,172,0,0]},{"a":29870,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29878,"t":"byte","b":[0,0,0,0,3,12,0,0]},{"a":29886,"t":"byte","b":[0,0,0,255,0,0,0,0]},{"a":29894,"t":"byte","b":[0,0,0,192,48,12,0,0]},{"a":29902,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29910,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29918,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29926,"t":"byte","b":[0,0,0,0,0,0,120,120]},{"a":29934,"t":"byte","b":[120,39,207,97,111,146,137,248]},{"a":29942,"t":"byte","b":[206,158,150,105,185,2,105,249]},{"a":29950,"t":"byte","b":[246,6,15,11,248,11,107,251]},{"a":29958,"t":"byte","b":[245,5,5,245,0,0,0,0]},{"a":29966,"t":"byte","b":[0,0,3,63,0,0,0,0]},{"a":29974,"t":"byte","b":[0,15,255,238,0,0,0,2]},{"a":29982,"t":"byte","b":[14,143,207,135,0,0,248,190]},{"a":29990,"t":"byte","b":[191,191,255,255,0,0,0,0]},{"a":29998,"t":"byte","b":[0,64,80,85,50,204,204,84]},{"a":30006,"t":"byte","b":[84,2,86,18,95,5,12,3]},{"a":30014,"t":"byte","b":[3,48,112,66,64,208,112,53]},{"a":30022,"t":"byte","b":[29,196,196,4,240,195,204,0]},{"a":30030,"t":"byte","b":[48,192,192,194,243,48,51,51]},{"a":30038,"t":"byte","b":[51,51,51,51,195,252,12,171]},{"a":30046,"t":"byte","b":[86,1,0,0,192,192,192,48]},{"a":30054,"t":"byte","b":[204,206,205,204,0,0,0,0]},{"a":30062,"t":"byte","b":[0,252,170,2,0,0,0,0]},{"a":30070,"t":"byte","b":[0,0,240,175,0,0,0,0]},{"a":30078,"t":"byte","b":[0,0,0,0,12,40,185,249]},{"a":30086,"t":"byte","b":[177,43,177,184,47,249,62,62]},{"a":30094,"t":"byte","b":[3,241,233,9,9,8,8,9]},{"a":30102,"t":"byte","b":[255,15,15,11,11,11,11,254]},{"a":30110,"t":"byte","b":[3,5,63,59,63,63,63,63]},{"a":30118,"t":"byte","b":[63,63,239,171,175,186,170,168]},{"a":30126,"t":"byte","b":[163,163,142,131,99,99,83,88]},{"a":30134,"t":"byte","b":[88,104,221,211,223,183,190,170]},{"a":30142,"t":"byte","b":[168,42,192,64,76,64,0,0]},{"a":30150,"t":"byte","b":[0,0,12,12,12,12,12,12]},{"a":30158,"t":"byte","b":[51,51,233,234,234,202,212,193]},{"a":30166,"t":"byte","b":[0,252,200,200,200,2,0,85]},{"a":30174,"t":"byte","b":[0,0,192,194,255,208,82,66]},{"a":30182,"t":"byte","b":[3,0,17,64,0,0,252,248]},{"a":30190,"t":"byte","b":[232,160,0,64,21,0,192,240]},{"a":30198,"t":"byte","b":[60,13,204,206,206,205,207,48]},{"a":30206,"t":"byte","b":[0,0,255,255,255,170,0,0]},{"a":30214,"t":"byte","b":[0,255,255,255,255,170,0,0]},{"a":30222,"t":"byte","b":[0,64,85,85,95,240,128,128]},{"a":30230,"t":"byte","b":[128,32,47,42,8,0,2,2]},{"a":30238,"t":"byte","b":[0,0,255,170,0,0,32,32]},{"a":30246,"t":"byte","b":[32,5,10,9,5,21,0,0]},{"a":30254,"t":"byte","b":[0,84,85,85,85,101,0,0]},{"a":30262,"t":"byte","b":[0,0,64,84,84,244,0,0]},{"a":30270,"t":"byte","b":[0,0,0,0,0,0,152,41]},{"a":30278,"t":"byte","b":[159,137,248,207,27,235,252,139]},{"a":30286,"t":"byte","b":[139,251,251,249,134,2,4,8]},{"a":30294,"t":"byte","b":[15,251,11,15,15,11,15,15]},{"a":30302,"t":"byte","b":[245,5,11,5,15,32,26,25]},{"a":30310,"t":"byte","b":[34,32,34,0,84,3,253,125]},{"a":30318,"t":"byte","b":[243,243,3,0,255,255,170,170]},{"a":30326,"t":"byte","b":[255,243,243,0,0,255,170,170]},{"a":30334,"t":"byte","b":[255,60,195,0,250,234,170,170]},{"a":30342,"t":"byte","b":[255,15,252,0,0,255,255,170]},{"a":30350,"t":"byte","b":[162,138,40,0,0,0,255,255]},{"a":30358,"t":"byte","b":[255,255,171,0,0,0,255,255]},{"a":30366,"t":"byte","b":[255,202,226,0,0,15,255,255]},{"a":30374,"t":"byte","b":[255,250,160,0,3,255,255,254]},{"a":30382,"t":"byte","b":[170,162,160,0,255,255,255,170]},{"a":30390,"t":"byte","b":[138,40,170,0,85,85,98,168]},{"a":30398,"t":"byte","b":[168,170,162,0,236,171,170,138]},{"a":30406,"t":"byte","b":[42,34,10,0,101,81,149,165]},{"a":30414,"t":"byte","b":[169,168,170,0,0,0,64,80]},{"a":30422,"t":"byte","b":[148,164,136,0,251,41,159,143]},{"a":30430,"t":"byte","b":[159,235,27,155,107,203,139,251]},{"a":30438,"t":"byte","b":[107,251,251,2,11,11,11,11]},{"a":30446,"t":"byte","b":[15,255,15,15,15,111,245,255]},{"a":30454,"t":"byte","b":[5,245,0,63,63,63,63,63]},{"a":30462,"t":"byte","b":[63,63,255,255,255,170,0,0]},{"a":30470,"t":"byte","b":[0,255,255,255,255,170,0,0]},{"a":30478,"t":"byte","b":[0,64,85,85,95,240,128,128]},{"a":30486,"t":"byte","b":[128,32,47,42,8,0,2,2]},{"a":30494,"t":"byte","b":[0,0,255,170,0,0,32,32]},{"a":30502,"t":"byte","b":[32,5,10,9,5,21,0,0]},{"a":30510,"t":"byte","b":[0,84,85,85,85,101,0,0]},{"a":30518,"t":"byte","b":[0,0,64,84,84,244,0,0]},{"a":30526,"t":"byte","b":[0,0,0,0,0,0,152,41]},{"a":30534,"t":"byte","b":[159,137,248,207,27,235,252,139]},{"a":30542,"t":"byte","b":[139,251,251,249,134,2,4,8]},{"a":30550,"t":"byte","b":[15,251,11,15,15,11,15,15]},{"a":30558,"t":"byte","b":[245,5,11,5,15,32,26,25]},{"a":30566,"t":"byte","b":[34,32,34,0,84,3,253,125]},{"a":30574,"t":"byte","b":[243,243,3,0,255,255,170,170]},{"a":30582,"t":"byte","b":[255,243,243,0,0,255,170,170]},{"a":30590,"t":"byte","b":[255,60,195,0,250,234,170,170]},{"a":30598,"t":"byte","b":[255,15,252,0,0,255,255,170]},{"a":30606,"t":"byte","b":[162,138,40,0,0,0,255,255]},{"a":30614,"t":"byte","b":[255,255,171,0,0,0,255,255]},{"a":30622,"t":"byte","b":[255,202,226,0,0,15,255,255]},{"a":30630,"t":"byte","b":[255,250,160,0,3,255,255,254]},{"a":30638,"t":"byte","b":[170,162,160,0,255,255,255,170]},{"a":30646,"t":"byte","b":[138,40,170,0,85,85,98,168]},{"a":30654,"t":"byte","b":[168,170,162,0,236,171,170,138]},{"a":30662,"t":"byte","b":[42,34,10,0,101,81,149,165]},{"a":30670,"t":"byte","b":[169,168,170,0,0,0,64,80]},{"a":30678,"t":"byte","b":[148,164,136,0,251,41,159,143]},{"a":30686,"l":"ROOM_GFX_14_CONT_77DE","c":"Room illustration 14 continuation at source offset $0400: row 6, byte 124 of its 150-byte interleaved row. Descriptor $0C4D gives 7 rows by 15 cells; this source ends at $77F7. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[159,235,27,155,107,203,139,251]},{"a":30694,"t":"byte","b":[107,251,251,2,11,11,11,11]},{"a":30702,"t":"byte","b":[15,255,15,15,15,111,245,255]},{"a":30710,"t":"byte","b":[5,245]},{"a":30712,"l":"ROOM_GFX_15","c":"ROOM_GFX_15 - ROOM_GRAPHIC_TABLE[15] source data, part 1. 9 rows x 10 columns blitted at\ncharacter row 1, column 5; 900 bytes = 9 * 10 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":30720,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":30728,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":30736,"t":"byte","b":[0,255,255,255,255,255,250,233]},{"a":30744,"t":"byte","b":[0,255,255,255,255,255,191,107]},{"a":30752,"t":"byte","b":[0,255,255,255,255,255,251,166]},{"a":30760,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":30768,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":30776,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":30784,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":30792,"t":"byte","b":[0,248,201,241,241,241,8,249]},{"a":30800,"t":"byte","b":[156,249,110,254,254,14,254,254]},{"a":30808,"t":"byte","b":[254,110,254,254,63,63,63,63]},{"a":30816,"t":"byte","b":[63,63,63,63,255,255,255,255]},{"a":30824,"t":"byte","b":[255,255,254,246,255,254,249,249]},{"a":30832,"t":"byte","b":[229,149,85,149,234,170,170,170]},{"a":30840,"t":"byte","b":[170,169,169,89,170,170,170,170]},{"a":30848,"t":"byte","b":[255,85,85,85,254,255,255,255]},{"a":30856,"t":"byte","b":[95,151,165,169,234,250,127,85]},{"a":30864,"t":"byte","b":[85,85,85,85,255,255,255,191]},{"a":30872,"t":"byte","b":[107,86,85,85,255,255,255,255]},{"a":30880,"t":"byte","b":[255,191,127,191,252,252,252,252]},{"a":30888,"t":"byte","b":[252,252,252,252,120,241,241,191]},{"a":30896,"t":"byte","b":[207,188,254,241,31,248,254,254]},{"a":30904,"t":"byte","b":[254,97,107,255,241,14,254,254]},{"a":30912,"t":"byte","b":[63,63,63,63,63,43,42,42]},{"a":30920,"t":"byte","b":[250,250,234,170,170,169,169,169]},{"a":30928,"t":"byte","b":[253,253,252,124,92,156,156,156]},{"a":30936,"t":"byte","b":[230,3,0,0,0,0,0,0]},{"a":30944,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":30952,"t":"byte","b":[254,255,255,255,255,215,85,85]},{"a":30960,"t":"byte","b":[255,117,126,126,122,122,122,154]},{"a":30968,"t":"byte","b":[127,127,159,167,167,167,159,159]},{"a":30976,"t":"byte","b":[175,175,175,171,171,171,171,170]},{"a":30984,"t":"byte","b":[252,252,252,252,252,244,244,244]},{"a":30992,"t":"byte","b":[15,191,188,251,177,155,188,188]},{"a":31000,"t":"byte","b":[47,249,110,254,255,252,12,252]},{"a":31008,"t":"byte","b":[255,111,254,254,21,21,21,21]},{"a":31016,"t":"byte","b":[21,21,21,23,250,249,249,249]},{"a":31024,"t":"byte","b":[249,249,248,241,224,224,196,21]},{"a":31032,"t":"byte","b":[21,21,69,81,0,0,0,4]},{"a":31040,"t":"byte","b":[85,85,85,85,255,255,63,79]},{"a":31048,"t":"byte","b":[83,83,83,79,255,235,170,170]},{"a":31056,"t":"byte","b":[235,127,255,255,85,117,85,85]},{"a":31064,"t":"byte","b":[85,149,149,165,111,111,111,110]},{"a":31072,"t":"byte","b":[110,110,110,105,170,170,170,170]},{"a":31080,"t":"byte","b":[170,234,234,234,252,252,252,252]},{"a":31088,"t":"byte","b":[252,252,172,188,248,203,139,140]},{"a":31096,"t":"byte","b":[143,200,203,203,47,188,108,111]},{"a":31104,"t":"byte","b":[252,249,12,251,255,95,107,255]},{"a":31112,"t":"byte","b":[63,63,63,63,59,58,63,63]},{"a":31120,"t":"byte","b":[242,242,242,242,242,242,116,125]},{"a":31128,"t":"byte","b":[130,2,50,60,50,138,138,10]},{"a":31136,"t":"byte","b":[255,255,255,3,252,255,255,207]},{"a":31144,"t":"byte","b":[143,33,33,33,33,33,35,35]},{"a":31152,"t":"byte","b":[254,185,101,85,85,85,223,255]},{"a":31160,"t":"byte","b":[254,254,94,94,250,234,234,250]},{"a":31168,"t":"byte","b":[255,251,251,255,255,255,255,255]},{"a":31176,"t":"byte","b":[234,122,121,89,106,106,102,171]},{"a":31184,"t":"byte","b":[232,232,104,168,168,168,168,168]},{"a":31192,"t":"byte","b":[188,200,120,249,152,156,140,191]},{"a":31200,"t":"byte","b":[207,191,15,255,252,248,107,251]},{"a":31208,"t":"byte","b":[251,12,251,252,63,45,41,57]},{"a":31216,"t":"byte","b":[63,63,63,63,231,127,95,149]},{"a":31224,"t":"byte","b":[149,149,169,105,240,241,241,241]},{"a":31232,"t":"byte","b":[177,161,161,161,0,170,170,154]},{"a":31240,"t":"byte","b":[138,138,138,138,225,33,33,35]},{"a":31248,"t":"byte","b":[35,35,143,79,255,255,255,253]},{"a":31256,"t":"byte","b":[85,85,85,85,175,191,250,255]},{"a":31264,"t":"byte","b":[255,255,255,253,255,255,237,255]},{"a":31272,"t":"byte","b":[245,213,213,85,87,87,86,157]},{"a":31280,"t":"byte","b":[191,107,171,154,252,188,124,124]},{"a":31288,"t":"byte","b":[124,124,108,108,188,251,159,137]},{"a":31296,"t":"byte","b":[184,207,251,251,252,188,95,108]},{"a":31304,"t":"byte","b":[252,255,252,11,252,220,107,255]},{"a":31312,"t":"byte","b":[61,31,23,53,31,21,21,21]},{"a":31320,"t":"byte","b":[250,149,107,191,170,235,255,255]},{"a":31328,"t":"byte","b":[224,224,161,161,225,161,161,133]},{"a":31336,"t":"byte","b":[207,195,195,195,195,195,195,195]},{"a":31344,"t":"byte","b":[79,79,79,74,74,75,74,74]},{"a":31352,"t":"byte","b":[255,255,254,170,170,234,255,170]},{"a":31360,"t":"byte","b":[250,234,170,170,170,255,234,170]},{"a":31368,"t":"byte","b":[249,175,190,186,250,255,170,170]},{"a":31376,"t":"byte","b":[189,255,253,255,85,255,255,255]},{"a":31384,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":31392,"t":"byte","b":[251,188,159,143,159,239,31,191]},{"a":31400,"t":"byte","b":[203,203,60,15,252,105,108,252]},{"a":31408,"t":"byte","b":[172,60,15,15,63,63,63,63]},{"a":31416,"t":"byte","b":[58,63,42,42,255,255,255,255]},{"a":31424,"t":"byte","b":[191,175,170,171,197,197,197,224]},{"a":31432,"t":"byte","b":[250,255,255,255,130,18,18,255]},{"a":31440,"t":"byte","b":[255,85,85,85,79,79,79,43]},{"a":31448,"t":"byte","b":[170,255,255,255,85,213,85,87]},{"a":31456,"t":"byte","b":[93,87,223,127,170,250,171,234]},{"a":31464,"t":"byte","b":[170,175,255,239,85,119,213,213]},{"a":31472,"t":"byte","b":[255,255,255,213,254,254,170,170]},{"a":31480,"t":"byte","b":[255,255,255,191,252,252,168,232]},{"a":31488,"t":"byte","b":[172,172,168,252,1,145,156,249]},{"a":31496,"t":"byte","b":[156,251,207,249,143,177,15,255]},{"a":31504,"t":"byte","b":[255,252,111,241,241,97,241,255]},{"a":31512,"t":"byte","b":[63,59,43,43,42,42,42,0]},{"a":31520,"t":"byte","b":[215,255,213,255,85,85,85,0]},{"a":31528,"t":"byte","b":[250,255,255,234,255,255,170,0]},{"a":31536,"t":"byte","b":[250,170,170,255,171,255,255,0]},{"a":31544,"t":"byte","b":[255,170,170,170,255,255,255,0]},{"a":31552,"t":"byte","b":[215,255,255,255,87,85,85,0]},{"a":31560,"t":"byte","b":[250,250,255,254,234,170,170,0]},{"a":31568,"t":"byte","b":[85,245,255,85,85,85,85,0]},{"a":31576,"t":"byte","b":[254,255,170,170,255,255,255,0]},{"a":31584,"t":"byte","b":[252,188,188,172,252,252,252,0]},{"a":31592,"t":"byte","b":[15,245,15,193,1,249,15,252]},{"a":31600,"t":"byte","b":[145,193,241,241,241,111,255,241]},{"a":31608,"t":"byte","b":[97,241,255,111]},{"a":31612,"l":"ROOM_GFX_16","c":"ROOM_GFX_16 - ROOM_GRAPHIC_TABLE[16] source data, part 1. 10 rows x 17 columns blitted at\ncharacter row 0, column 1; 1700 bytes = 10 * 17 * 10. Renders as Falkor's head, one of the\nconfirmations of the format. See ROOM_GRAPHIC_TABLE ($0BF9) and ROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31620,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31628,"t":"byte","b":[0,0,0,0,0,0,0,58]},{"a":31636,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31644,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31652,"t":"byte","b":[0,0,0,0,0,0,1,5]},{"a":31660,"t":"byte","b":[0,0,0,0,0,255,255,255]},{"a":31668,"t":"byte","b":[0,0,0,0,21,85,87,85]},{"a":31676,"t":"byte","b":[0,0,0,0,255,249,230,109]},{"a":31684,"t":"byte","b":[0,0,0,0,80,229,175,250]},{"a":31692,"t":"byte","b":[0,0,0,0,0,0,240,175]},{"a":31700,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31708,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31716,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31724,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31732,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31740,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31748,"t":"byte","b":[0,255,14,249,5,255,0,255]},{"a":31756,"t":"byte","b":[156,249,14,255,0,249,9,245]},{"a":31764,"t":"byte","b":[0,9,102,255,6,6,246,255]},{"a":31772,"t":"byte","b":[12,111,108,255,5,5,245,245]},{"a":31780,"t":"byte","b":[9,101,0,0,0,0,0,0]},{"a":31788,"t":"byte","b":[0,0,0,0,0,0,1,1]},{"a":31796,"t":"byte","b":[1,3,249,246,251,248,240,240]},{"a":31804,"t":"byte","b":[192,192,240,124,124,124,113,82]},{"a":31812,"t":"byte","b":[18,18,0,0,0,0,192,240]},{"a":31820,"t":"byte","b":[188,175,5,5,21,21,22,29]},{"a":31828,"t":"byte","b":[29,29,254,255,238,250,233,145]},{"a":31836,"t":"byte","b":[68,3,127,234,250,168,34,132]},{"a":31844,"t":"byte","b":[23,80,251,150,0,175,2,84]},{"a":31852,"t":"byte","b":[1,0,239,127,255,95,151,165]},{"a":31860,"t":"byte","b":[41,201,250,255,255,255,127,255]},{"a":31868,"t":"byte","b":[223,119,240,160,91,214,85,85]},{"a":31876,"t":"byte","b":[93,213,3,47,189,249,150,101]},{"a":31884,"t":"byte","b":[154,90,192,240,172,171,171,106]},{"a":31892,"t":"byte","b":[86,74,0,0,0,0,0,192]},{"a":31900,"t":"byte","b":[188,111,0,0,0,0,0,0]},{"a":31908,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31916,"t":"byte","b":[0,0,12,249,150,249,6,248]},{"a":31924,"t":"byte","b":[156,249,140,248,206,158,150,105]},{"a":31932,"t":"byte","b":[185,249,9,246,1,255,254,15]},{"a":31940,"t":"byte","b":[105,255,204,15,249,249,203,111]},{"a":31948,"t":"byte","b":[254,206,5,245,0,0,0,0]},{"a":31956,"t":"byte","b":[0,0,0,2,15,14,62,58]},{"a":31964,"t":"byte","b":[58,91,91,105,202,45,189,117]},{"a":31972,"t":"byte","b":[118,117,245,217,200,200,114,92]},{"a":31980,"t":"byte","b":[85,85,102,101,171,234,58,14]},{"a":31988,"t":"byte","b":[65,85,223,127,117,85,164,170]},{"a":31996,"t":"byte","b":[170,235,219,123,143,5,20,23]},{"a":32004,"t":"byte","b":[128,188,108,103,192,8,200,22]},{"a":32012,"t":"byte","b":[252,255,63,255,0,227,239,60]},{"a":32020,"t":"byte","b":[1,85,84,85,49,33,10,35]},{"a":32028,"t":"byte","b":[144,79,63,247,245,250,189,171]},{"a":32036,"t":"byte","b":[26,134,155,89,254,191,239,126]},{"a":32044,"t":"byte","b":[159,94,87,156,252,243,176,240]},{"a":32052,"t":"byte","b":[240,176,252,252,10,128,0,0]},{"a":32060,"t":"byte","b":[0,3,0,0,171,201,162,14]},{"a":32068,"t":"byte","b":[10,40,35,202,192,128,192,112]},{"a":32076,"t":"byte","b":[108,91,103,87,0,0,0,0]},{"a":32084,"t":"byte","b":[0,0,0,192,12,251,206,206]},{"a":32092,"t":"byte","b":[198,182,230,46,241,248,152,251]},{"a":32100,"t":"byte","b":[11,249,233,155,6,150,97,255]},{"a":32108,"t":"byte","b":[233,251,14,15,255,9,108,255]},{"a":32116,"t":"byte","b":[57,249,11,251,206,110,3,3]},{"a":32124,"t":"byte","b":[15,15,63,62,62,56,229,229]},{"a":32132,"t":"byte","b":[21,53,141,139,2,0,233,166]},{"a":32140,"t":"byte","b":[166,170,233,233,170,42,251,191]},{"a":32148,"t":"byte","b":[250,238,254,238,255,238,95,123]},{"a":32156,"t":"byte","b":[190,126,111,214,154,90,175,165]},{"a":32164,"t":"byte","b":[235,106,123,218,102,158,235,185]},{"a":32172,"t":"byte","b":[165,85,233,85,233,229,255,255]},{"a":32180,"t":"byte","b":[191,235,174,190,170,169,255,239]},{"a":32188,"t":"byte","b":[171,186,234,154,170,169,250,255]},{"a":32196,"t":"byte","b":[254,251,170,173,165,165,235,235]},{"a":32204,"t":"byte","b":[234,250,222,94,102,98,228,253]},{"a":32212,"t":"byte","b":[238,171,171,170,168,106,232,10]},{"a":32220,"t":"byte","b":[122,46,174,174,179,171,3,0]},{"a":32228,"t":"byte","b":[128,192,176,176,128,176,13,5]},{"a":32236,"t":"byte","b":[7,1,13,48,0,0,254,214]},{"a":32244,"t":"byte","b":[222,127,255,223,255,61,192,0]},{"a":32252,"t":"byte","b":[192,128,128,176,172,216,251,251]},{"a":32260,"t":"byte","b":[236,158,203,235,198,188,188,188]},{"a":32268,"t":"byte","b":[185,249,249,9,149,190,158,172]},{"a":32276,"t":"byte","b":[12,15,252,222,102,251,175,31]},{"a":32284,"t":"byte","b":[15,255,88,107,251,171,41,11]},{"a":32292,"t":"byte","b":[36,32,16,16,4,4,1,0]},{"a":32300,"t":"byte","b":[15,3,0,0,0,0,0,160]},{"a":32308,"t":"byte","b":[202,0,0,0,0,0,0,0]},{"a":32316,"t":"byte","b":[255,255,15,3,0,0,0,0]},{"a":32324,"t":"byte","b":[245,233,169,185,170,170,42,10]},{"a":32332,"t":"byte","b":[234,219,93,87,87,182,87,85]},{"a":32340,"t":"byte","b":[119,217,175,166,174,166,110,118]},{"a":32348,"t":"byte","b":[250,171,118,233,185,235,170,171]},{"a":32356,"t":"byte","b":[255,255,183,238,121,186,234,231]},{"a":32364,"t":"byte","b":[118,217,85,90,212,106,229,22]},{"a":32372,"t":"byte","b":[142,182,79,35,168,8,32,136]},{"a":32380,"t":"byte","b":[21,85,85,102,153,165,37,165]},{"a":32388,"t":"byte","b":[105,41,38,70,105,138,38,74]},{"a":32396,"t":"byte","b":[192,112,244,252,117,253,212,244]},{"a":32404,"t":"byte","b":[0,12,3,0,0,0,0,0]},{"a":32412,"t":"byte","b":[255,59,255,255,63,63,12,3]},{"a":32420,"t":"byte","b":[228,244,252,252,252,252,252,232]},{"a":32428,"t":"byte","b":[188,155,236,242,188,190,188,188]},{"a":32436,"t":"byte","b":[191,185,107,155,185,190,230,11]},{"a":32444,"t":"byte","b":[235,246,103,247,12,254,118,6]},{"a":32452,"t":"byte","b":[246,12,255,9,245,85,9,251]},{"a":32460,"t":"byte","b":[9,249,0,0,0,0,0,0]},{"a":32468,"t":"byte","b":[0,0,15,0,0,0,0,128]},{"a":32476,"t":"byte","b":[160,169,192,60,3,0,0,42]},{"a":32484,"t":"byte","b":[169,129,0,0,192,60,128,149]},{"a":32492,"t":"byte","b":[146,138,0,0,0,0,0,190]},{"a":32500,"t":"byte","b":[60,204,87,85,5,5,0,128]},{"a":32508,"t":"byte","b":[32,248,93,103,217,246,255,63]},{"a":32516,"t":"byte","b":[0,0,250,94,169,119,255,192]},{"a":32524,"t":"byte","b":[0,0,126,232,160,128,0,0]},{"a":32532,"t":"byte","b":[0,1,56,63,15,63,207,3]},{"a":32540,"t":"byte","b":[204,192,240,2,128,32,0,128]},{"a":32548,"t":"byte","b":[32,128,14,14,2,2,10,11]},{"a":32556,"t":"byte","b":[9,37,126,191,143,202,118,137]},{"a":32564,"t":"byte","b":[103,178,251,187,170,126,154,171]},{"a":32572,"t":"byte","b":[222,90,0,192,192,192,192,192]},{"a":32580,"t":"byte","b":[0,192,242,51,15,12,3,0]},{"a":32588,"t":"byte","b":[0,0,252,236,236,252,184,60]},{"a":32596,"t":"byte","b":[56,252,152,39,114,39,194,194]},{"a":32604,"t":"byte","b":[182,107,252,249,139,251,251,249]},{"a":32612,"t":"byte","b":[134,9,251,255,235,11,251,7]},{"a":32620,"t":"byte","b":[8,108,252,235,11,249,9,9]},{"a":32628,"t":"byte","b":[107,107,251,105,0,0,3,3]},{"a":32636,"l":"ROOM_GFX_16_CONT_7F7C","c":"Room illustration 16 continuation at source offset $0400: row 6, byte 4 of its 170-byte interleaved row. Descriptor $0C59 gives 10 rows by 17 cells; this source ends at $821F. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[12,12,12,15,252,63,151,21]},{"a":32644,"t":"byte","b":[41,170,170,42,63,254,234,168]},{"a":32652,"t":"byte","b":[161,85,84,64,138,163,15,189]},{"a":32660,"t":"byte","b":[181,52,208,208,0,175,255,253]},{"a":32668,"t":"byte","b":[0,0,0,255,12,163,152,2]},{"a":32676,"t":"byte","b":[0,0,0,160,0,195,60,128]},{"a":32684,"t":"byte","b":[162,42,40,0,0,48,2,42]},{"a":32692,"t":"byte","b":[168,160,0,1,15,252,251,206]},{"a":32700,"t":"byte","b":[50,11,56,224,44,136,40,176]},{"a":32708,"t":"byte","b":[224,50,2,2,32,128,32,128]},{"a":32716,"t":"byte","b":[128,0,128,0,45,38,45,38]},{"a":32724,"t":"byte","b":[58,39,218,170,232,136,160,248]},{"a":32732,"t":"byte","b":[160,160,160,192,189,181,173,39]},{"a":32740,"t":"byte","b":[47,45,11,9,224,224,248,186]},{"a":32748,"t":"byte","b":[250,254,239,255,60,3,0,0]},{"a":32756,"t":"byte","b":[0,0,195,192,188,168,40,232]},{"a":32764,"t":"byte","b":[32,8,204,200]},{"a":32768,"l":"ROOM_GFX_16_CONT_8000","c":"Room illustration 16 continuation at source offset $0484: row 6, byte 136 of its 170-byte interleaved row. Descriptor $0C59 gives 10 rows by 17 cells; this source ends at $821F. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[24,169,154,105,108,107,251,155]},{"a":32776,"t":"byte","b":[105,107,139,251,107,251,251,0]},{"a":32784,"t":"byte","b":[9,12,7,7,108,11,7,7]},{"a":32792,"t":"byte","b":[7,11,9,245,105,249,252,9]},{"a":32800,"t":"byte","b":[11,251,15,3,0,0,0,0]},{"a":32808,"t":"byte","b":[0,0,192,255,191,42,0,6]},{"a":32816,"t":"byte","b":[0,0,63,250,224,130,10,104]},{"a":32824,"t":"byte","b":[1,0,195,0,0,192,0,0]},{"a":32832,"t":"byte","b":[249,0,232,176,40,128,32,0]},{"a":32840,"t":"byte","b":[137,110,60,203,12,51,0,0]},{"a":32848,"t":"byte","b":[0,252,0,0,243,0,192,0]},{"a":32856,"t":"byte","b":[0,128,56,203,0,0,0,0]},{"a":32864,"t":"byte","b":[0,0,192,176,3,12,0,0]},{"a":32872,"t":"byte","b":[0,0,12,0,192,0,0,0]},{"a":32880,"t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":32888,"t":"byte","b":[3,3,235,222,251,206,239,255]},{"a":32896,"t":"byte","b":[142,203,192,192,192,192,192,240]},{"a":32904,"t":"byte","b":[240,227,14,10,62,53,58,57]},{"a":32912,"t":"byte","b":[42,54,238,251,127,191,235,95]},{"a":32920,"t":"byte","b":[251,102,192,0,192,0,192,192]},{"a":32928,"t":"byte","b":[240,240,60,0,0,12,0,0]},{"a":32936,"t":"byte","b":[0,0,1,107,107,105,155,246]},{"a":32944,"t":"byte","b":[201,249,137,137,6,249,9,140]},{"a":32952,"t":"byte","b":[251,255,9,252,252,12,251,246]},{"a":32960,"t":"byte","b":[11,11,251,251,107,11,251,251]},{"a":32968,"t":"byte","b":[11,249,251,11,0,0,0,0]},{"a":32976,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32984,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32992,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33000,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33008,"t":"byte","b":[0,0,0,0,235,0,0,0]},{"a":33016,"t":"byte","b":[0,0,0,0,232,191,2,0]},{"a":33024,"t":"byte","b":[0,0,0,0,128,234,128,0]},{"a":33032,"t":"byte","b":[0,0,0,0,84,65,0,0]},{"a":33040,"t":"byte","b":[0,0,0,0,51,192,0,0]},{"a":33048,"t":"byte","b":[0,0,0,0,0,0,12,0]},{"a":33056,"t":"byte","b":[0,0,0,3,63,47,255,239]},{"a":33064,"t":"byte","b":[62,250,62,11,240,176,240,240]},{"a":33072,"t":"byte","b":[179,195,193,3,234,233,218,170]},{"a":33080,"t":"byte","b":[233,154,233,166,234,89,250,219]},{"a":33088,"t":"byte","b":[122,218,118,215,192,192,192,192]},{"a":33096,"t":"byte","b":[240,240,240,240,0,0,0,0]},{"a":33104,"t":"byte","b":[0,0,0,0,5,245,5,105]},{"a":33112,"t":"byte","b":[11,249,9,251,191,246,5,249]},{"a":33120,"t":"byte","b":[201,140,201,255,0,246,9,246]},{"a":33128,"t":"byte","b":[245,5,251,251,9,245,251,251]},{"a":33136,"t":"byte","b":[107,251,251,111,251,245,0,0]},{"a":33144,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33152,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33160,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33168,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33176,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33192,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33200,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":33224,"t":"byte","b":[0,0,0,0,0,0,48,0]},{"a":33232,"t":"byte","b":[0,0,0,0,0,0,15,15]},{"a":33240,"t":"byte","b":[14,2,3,3,0,0,255,253]},{"a":33248,"t":"byte","b":[183,245,223,191,167,0,237,153]},{"a":33256,"t":"byte","b":[229,158,218,155,103,0,240,176]},{"a":33264,"t":"byte","b":[172,172,172,172,108,0,0,0]},{"a":33272,"t":"byte","b":[0,0,0,0,0,0,6,246]},{"a":33280,"t":"byte","b":[5,251,5,251,12,252,11,245]},{"a":33288,"t":"byte","b":[0,255,12,251,252,201,0,245]},{"a":33296,"t":"byte","b":[5,102,5,251,245,5,245,245]},{"a":33304,"t":"byte","b":[12,245,251,11,108,248,251,101]},{"a":33312,"l":"ROOM_GFX_17","c":"ROOM_GFX_17 - ROOM_GRAPHIC_TABLE[17] source data, part 1. 6 rows x 16 columns blitted at\ncharacter row 2, column 2; 960 bytes = 6 * 16 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,21,21,21,21,21,21,21]},{"a":33320,"t":"byte","b":[0,254,255,255,255,255,255,255]},{"a":33328,"t":"byte","b":[0,234,186,175,170,170,170,170]},{"a":33336,"t":"byte","b":[0,255,255,175,250,255,255,255]},{"a":33344,"t":"byte","b":[0,255,255,255,255,191,234,255]},{"a":33352,"t":"byte","b":[0,85,117,87,85,85,213,117]},{"a":33360,"t":"byte","b":[0,255,171,170,234,170,175,170]},{"a":33368,"t":"byte","b":[0,255,255,175,170,170,170,174]},{"a":33376,"t":"byte","b":[0,255,254,250,234,170,170,171]},{"a":33384,"t":"byte","b":[0,255,175,171,170,186,238,171]},{"a":33392,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":33400,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":33408,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":33416,"t":"byte","b":[0,170,170,170,170,170,170,170]},{"a":33424,"t":"byte","b":[0,170,170,170,170,170,170,170]},{"a":33432,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":33440,"t":"byte","b":[195,91,140,251,251,195,124,124]},{"a":33448,"t":"byte","b":[252,172,113,230,233,91,91,236]},{"a":33456,"t":"byte","b":[254,252,107,252,252,139,107,251]},{"a":33464,"t":"byte","b":[251,107,251,251,251,110,110,251]},{"a":33472,"t":"byte","b":[61,23,21,21,21,21,21,21]},{"a":33480,"t":"byte","b":[255,159,229,250,255,255,255,255]},{"a":33488,"t":"byte","b":[255,255,255,191,104,218,245,255]},{"a":33496,"t":"byte","b":[255,191,255,255,63,131,168,106]},{"a":33504,"t":"byte","b":[255,255,255,191,255,255,0,170]},{"a":33512,"t":"byte","b":[254,255,255,223,255,255,255,15]},{"a":33520,"t":"byte","b":[255,255,239,255,127,215,253,255]},{"a":33528,"t":"byte","b":[254,255,127,255,253,255,127,95]},{"a":33536,"t":"byte","b":[238,186,170,171,170,90,165,169]},{"a":33544,"t":"byte","b":[250,255,255,255,239,255,255,195]},{"a":33552,"t":"byte","b":[87,95,255,255,255,255,252,242]},{"a":33560,"t":"byte","b":[234,250,254,254,250,192,0,20]},{"a":33568,"t":"byte","b":[255,255,255,255,255,255,63,63]},{"a":33576,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":33584,"t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":33592,"t":"byte","b":[168,168,168,168,168,168,168,168]},{"a":33600,"t":"byte","b":[193,251,191,191,127,251,251,251]},{"a":33608,"t":"byte","b":[252,107,191,139,19,227,191,251]},{"a":33616,"t":"byte","b":[251,252,252,108,252,252,108,252]},{"a":33624,"t":"byte","b":[251,252,108,252,251,107,254,245]},{"a":33632,"t":"byte","b":[63,63,63,63,63,63,63,58]},{"a":33640,"t":"byte","b":[255,255,255,255,255,234,174,191]},{"a":33648,"t":"byte","b":[255,255,255,255,255,255,191,171]},{"a":33656,"t":"byte","b":[233,254,255,255,255,255,255,255]},{"a":33664,"t":"byte","b":[255,255,171,86,85,85,85,85]},{"a":33672,"t":"byte","b":[240,255,255,255,175,91,86,86]},{"a":33680,"t":"byte","b":[255,3,168,170,170,170,170,234]},{"a":33688,"t":"byte","b":[235,254,0,170,170,170,170,170]},{"a":33696,"t":"byte","b":[255,255,63,140,160,168,168,170]},{"a":33704,"t":"byte","b":[60,63,63,246,213,253,245,63]},{"a":33712,"t":"byte","b":[202,10,138,160,232,122,87,85]},{"a":33720,"t":"byte","b":[60,60,48,128,162,2,84,149]},{"a":33728,"t":"byte","b":[63,15,143,143,21,197,5,161]},{"a":33736,"t":"byte","b":[255,255,255,255,254,170,170,170]},{"a":33744,"t":"byte","b":[255,255,255,255,170,170,170,187]},{"a":33752,"t":"byte","b":[252,252,252,252,252,188,188,172]},{"a":33760,"t":"byte","b":[107,107,139,251,203,203,111,143]},{"a":33768,"t":"byte","b":[31,188,191,249,207,44,236,236]},{"a":33776,"t":"byte","b":[252,252,108,252,255,255,108,252]},{"a":33784,"t":"byte","b":[252,111,140,104,251,251,107,251]},{"a":33792,"t":"byte","b":[58,58,42,42,42,42,42,42]},{"a":33800,"t":"byte","b":[255,255,255,254,251,251,239,238]},{"a":33808,"t":"byte","b":[251,254,255,191,239,251,251,251]},{"a":33816,"t":"byte","b":[255,191,191,191,175,239,175,191]},{"a":33824,"t":"byte","b":[255,254,251,238,171,175,239,251]},{"a":33832,"t":"byte","b":[239,191,255,175,251,255,255,255]},{"a":33840,"t":"byte","b":[234,218,246,125,127,127,119,119]},{"a":33848,"t":"byte","b":[255,255,255,255,255,159,149,135]},{"a":33856,"t":"byte","b":[255,255,255,255,255,239,191,63]},{"a":33864,"t":"byte","b":[206,207,243,240,197,197,4,18]},{"a":33872,"t":"byte","b":[234,250,238,63,64,23,95,127]},{"a":33880,"t":"byte","b":[251,254,235,142,41,170,170,170]},{"a":33888,"t":"byte","b":[232,168,170,170,170,168,170,168]},{"a":33896,"t":"byte","b":[255,63,143,163,35,163,40,40]},{"a":33904,"t":"byte","b":[221,117,245,253,95,87,85,21]},{"a":33912,"t":"byte","b":[236,236,188,252,252,252,252,168]},{"a":33920,"t":"byte","b":[92,91,251,43,91,107,207,203]},{"a":33928,"t":"byte","b":[124,156,203,207,239,239,207,236]},{"a":33936,"t":"byte","b":[107,252,252,108,252,252,123,111]},{"a":33944,"t":"byte","b":[255,255,111,251,251,124,107,251]},{"a":33952,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":33960,"t":"byte","b":[239,251,251,254,255,255,255,255]},{"a":33968,"t":"byte","b":[250,171,175,250,170,170,170,170]},{"a":33976,"t":"byte","b":[234,234,250,174,175,170,170,170]},{"a":33984,"t":"byte","b":[251,254,255,255,191,191,235,251]},{"a":33992,"t":"byte","b":[255,190,235,255,255,255,255,255]},{"a":34000,"t":"byte","b":[234,170,171,175,191,191,175,171]},{"a":34008,"t":"byte","b":[224,241,197,197,197,201,242,242]},{"a":34016,"t":"byte","b":[255,255,240,255,255,251,254,190]},{"a":34024,"t":"byte","b":[50,12,163,0,79,83,100,105]},{"a":34032,"t":"byte","b":[255,171,86,1,80,82,82,24]},{"a":34040,"t":"byte","b":[255,255,254,174,90,5,160,170]},{"a":34048,"t":"byte","b":[85,117,233,149,149,228,169,10]},{"a":34056,"t":"byte","b":[85,85,85,85,213,85,5,64]},{"a":34064,"t":"byte","b":[202,242,242,204,204,252,252,60]},{"a":34072,"t":"byte","b":[168,168,168,168,168,168,168,168]},{"a":34080,"t":"byte","b":[228,107,108,172,171,171,28,252]},{"a":34088,"t":"byte","b":[28,252,188,188,251,242,236,236]},{"a":34096,"t":"byte","b":[252,252,139,107,252,252,107,107]},{"a":34104,"t":"byte","b":[255,251,255,111,252,252,111,245]},{"a":34112,"t":"byte","b":[63,63,63,63,63,63,63,0]},{"a":34120,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":34128,"t":"byte","b":[255,255,255,255,255,254,254,0]},{"a":34136,"t":"byte","b":[255,255,235,190,190,254,251,0]},{"a":34144,"t":"byte","b":[250,254,254,254,190,254,254,0]},{"a":34152,"t":"byte","b":[255,191,191,191,191,191,255,0]},{"a":34160,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":34168,"t":"byte","b":[252,254,254,191,190,170,170,0]},{"a":34176,"t":"byte","b":[58,204,240,245,245,253,255,0]},{"a":34184,"t":"byte","b":[223,204,204,0,191,175,255,0]},{"a":34192,"t":"byte","b":[62,57,249,249,62,143,163,0]},{"a":34200,"t":"byte","b":[63,79,83,115,195,143,63,0]},{"a":34208,"t":"byte","b":[240,255,255,255,239,250,255,0]},{"a":34216,"t":"byte","b":[229,0,170,170,170,170,234,0]},{"a":34224,"t":"byte","b":[2,42,186,174,171,171,171,0]},{"a":34232,"t":"byte","b":[168,168,168,168,168,168,168,0]},{"a":34240,"t":"byte","b":[150,111,251,107,91,43,129,140]},{"a":34248,"t":"byte","b":[191,251,252,251,107,252,172,236]},{"a":34256,"t":"byte","b":[108,252,252,108,252,252,252,107]},{"a":34264,"t":"byte","b":[252,252,107,252,252,251,107,245]},{"a":34272,"l":"ROOM_GFX_18","c":"ROOM_GFX_18 - ROOM_GRAPHIC_TABLE[18] source data, part 1. 10 rows x 8 columns blitted at\ncharacter row 0, column 6; 800 bytes = 10 * 8 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,62,63,63,63,63,63,63]},{"a":34280,"t":"byte","b":[0,255,159,105,86,85,86,85]},{"a":34288,"t":"byte","b":[0,234,254,255,255,127,238,127]},{"a":34296,"t":"byte","b":[0,250,250,175,171,186,254,254]},{"a":34304,"t":"byte","b":[0,255,255,254,238,186,250,191]},{"a":34312,"t":"byte","b":[0,255,255,255,191,191,170,171]},{"a":34320,"t":"byte","b":[0,255,255,251,254,255,255,255]},{"a":34328,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":34336,"t":"byte","b":[200,88,129,243,241,193,113,122]},{"a":34344,"t":"byte","b":[101,243,243,97,99,243,243,243]},{"a":34352,"t":"byte","b":[63,62,63,63,63,63,63,63]},{"a":34360,"t":"byte","b":[255,255,159,231,255,253,253,250]},{"a":34368,"t":"byte","b":[234,106,110,122,218,234,234,118]},{"a":34376,"t":"byte","b":[234,254,255,255,255,255,255,251]},{"a":34384,"t":"byte","b":[255,191,235,255,255,251,255,255]},{"a":34392,"t":"byte","b":[254,250,255,255,255,255,239,251]},{"a":34400,"t":"byte","b":[255,187,190,238,233,245,230,233]},{"a":34408,"t":"byte","b":[248,228,228,212,148,84,148,100]},{"a":34416,"t":"byte","b":[200,104,131,225,113,113,88,86]},{"a":34424,"t":"byte","b":[101,245,245,99,99,243,243,99]},{"a":34432,"t":"byte","b":[63,63,63,62,61,25,23,61]},{"a":34440,"t":"byte","b":[255,255,251,118,219,253,110,102]},{"a":34448,"t":"byte","b":[125,127,190,251,175,93,151,127]},{"a":34456,"t":"byte","b":[255,191,175,111,87,86,91,91]},{"a":34464,"t":"byte","b":[255,255,191,239,254,250,191,190]},{"a":34472,"t":"byte","b":[255,255,255,255,255,255,189,189]},{"a":34480,"t":"byte","b":[230,218,218,218,106,150,170,154]},{"a":34488,"t":"byte","b":[252,248,252,252,252,252,188,236]},{"a":34496,"t":"byte","b":[104,104,134,88,113,129,101,198]},{"a":34504,"t":"byte","b":[101,101,245,243,99,243,243,245]},{"a":34512,"t":"byte","b":[59,38,22,41,42,38,28,50]},{"a":34520,"t":"byte","b":[248,120,225,79,141,143,135,31]},{"a":34528,"t":"byte","b":[255,254,255,237,190,151,248,35]},{"a":34536,"t":"byte","b":[255,238,253,238,191,253,55,253]},{"a":34544,"t":"byte","b":[235,251,255,255,255,253,253,255]},{"a":34552,"t":"byte","b":[231,213,165,229,101,85,103,149]},{"a":34560,"t":"byte","b":[235,236,241,241,236,248,232,187]},{"a":34568,"t":"byte","b":[252,188,56,44,72,76,16,20]},{"a":34576,"t":"byte","b":[134,89,134,104,81,88,150,149]},{"a":34584,"t":"byte","b":[117,102,245,245,99,246,245,118]},{"a":34592,"t":"byte","b":[15,15,63,63,63,63,63,63]},{"a":34600,"t":"byte","b":[62,40,1,5,85,80,81,81]},{"a":34608,"t":"byte","b":[19,78,79,56,42,75,76,81]},{"a":34616,"t":"byte","b":[250,234,170,105,138,54,211,77]},{"a":34624,"t":"byte","b":[191,109,175,110,93,174,150,169]},{"a":34632,"t":"byte","b":[254,122,122,168,165,161,224,200]},{"a":34640,"t":"byte","b":[238,50,74,16,69,81,80,151]},{"a":34648,"t":"byte","b":[40,40,40,40,168,168,168,40]},{"a":34656,"t":"byte","b":[236,149,150,150,88,150,150,185]},{"a":34664,"t":"byte","b":[249,102,245,245,243,101,245,248]},{"a":34672,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":34680,"t":"byte","b":[243,243,243,243,195,200,203,192]},{"a":34688,"t":"byte","b":[255,240,243,243,243,243,243,243]},{"a":34696,"t":"byte","b":[48,242,235,200,204,192,192,195]},{"a":34704,"t":"byte","b":[255,44,147,56,204,116,48,8]},{"a":34712,"t":"byte","b":[230,202,26,202,2,242,2,74]},{"a":34720,"t":"byte","b":[62,62,60,60,60,63,60,60]},{"a":34728,"t":"byte","b":[60,60,60,252,60,60,60,252]},{"a":34736,"t":"byte","b":[236,101,126,166,88,89,245,248]},{"a":34744,"t":"byte","b":[249,105,249,249,102,246,249,249]},{"a":34752,"t":"byte","b":[21,21,21,21,21,21,21,21]},{"a":34760,"t":"byte","b":[192,8,8,200,200,200,192,3]},{"a":34768,"t":"byte","b":[243,243,203,243,243,243,242,240]},{"a":34776,"t":"byte","b":[195,192,204,204,204,203,51,132]},{"a":34784,"t":"byte","b":[60,12,192,32,175,130,195,144]},{"a":34792,"t":"byte","b":[15,15,51,51,51,51,48,72]},{"a":34800,"t":"byte","b":[40,40,40,40,40,40,40,40]},{"a":34808,"t":"byte","b":[168,168,168,168,168,168,168,168]},{"a":34816,"t":"byte","b":[158,21,21,101,101,101,185,201]},{"a":34824,"t":"byte","b":[242,137,105,249,73,105,247,247]},{"a":34832,"t":"byte","b":[63,63,63,63,63,60,48,8]},{"a":34840,"t":"byte","b":[12,143,143,131,163,163,163,40]},{"a":34848,"t":"byte","b":[15,80,170,107,90,165,106,218]},{"a":34856,"t":"byte","b":[59,191,238,127,221,247,223,10]},{"a":34864,"t":"byte","b":[239,67,0,0,0,0,0,0]},{"a":34872,"t":"byte","b":[236,239,186,172,186,171,226,84]},{"a":34880,"t":"byte","b":[224,138,40,195,61,117,149,89]},{"a":34888,"t":"byte","b":[252,252,12,140,76,16,72,216]},{"a":34896,"t":"byte","b":[230,249,101,150,91,181,89,86]},{"a":34904,"t":"byte","b":[105,102,105,101,102,102,198,105]},{"a":34912,"t":"byte","b":[63,63,42,43,47,46,43,58]},{"a":34920,"t":"byte","b":[194,190,254,170,255,107,218,245]},{"a":34928,"t":"byte","b":[234,248,172,251,192,5,21,22]},{"a":34936,"t":"byte","b":[56,161,161,33,132,196,132,132]},{"a":34944,"t":"byte","b":[195,191,255,255,255,255,255,255]},{"a":34952,"t":"byte","b":[62,74,64,64,4,4,20,19]},{"a":34960,"t":"byte","b":[63,58,165,153,37,43,62,73]},{"a":34968,"t":"byte","b":[232,232,172,172,188,244,92,184]},{"a":34976,"t":"byte","b":[133,149,246,139,56,139,101,150]},{"a":34984,"t":"byte","b":[102,102,101,111,105,111,105,101]},{"a":34992,"t":"byte","b":[59,43,58,40,40,1,21,0]},{"a":35000,"t":"byte","b":[252,0,42,149,165,170,170,0]},{"a":35008,"t":"byte","b":[62,255,255,190,250,250,254,0]},{"a":35016,"t":"byte","b":[225,168,184,252,252,252,241,0]},{"a":35024,"t":"byte","b":[0,243,255,48,207,255,195,0]},{"a":35032,"t":"byte","b":[163,15,31,21,21,133,133,0]},{"a":35040,"t":"byte","b":[240,252,191,255,191,235,170,0]},{"a":35048,"t":"byte","b":[232,44,40,60,76,72,80,0]},{"a":35056,"t":"byte","b":[182,251,95,139,56,248,63,182]},{"a":35064,"t":"byte","b":[101,102,107,111,105,107,107,101]},{"a":35072,"l":"ROOM_GFX_19","c":"ROOM_GFX_19 - ROOM_GRAPHIC_TABLE[19] source data, part 1. 9 rows x 16 columns blitted at\ncharacter row 1, column 2; 1440 bytes = 9 * 16 * 10. See ROOM_GRAPHIC_TABLE ($0BF9) and\nROOM_PICTURE_BUFFER ($4300).","t":"byte","b":[0,63,63,42,42,42,42,42]},{"a":35080,"t":"byte","b":[0,255,255,170,171,170,170,170]},{"a":35088,"t":"byte","b":[0,255,255,255,170,170,170,170]},{"a":35096,"t":"byte","b":[0,255,255,250,170,171,170,170]},{"a":35104,"t":"byte","b":[0,255,255,175,190,255,250,170]},{"a":35112,"t":"byte","b":[0,255,251,175,191,170,170,170]},{"a":35120,"t":"byte","b":[0,239,255,255,170,170,170,170]},{"a":35128,"t":"byte","b":[0,255,251,235,170,170,170,170]},{"a":35136,"t":"byte","b":[0,255,255,255,255,170,187,175]},{"a":35144,"t":"byte","b":[0,255,255,255,239,255,255,255]},{"a":35152,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":35160,"t":"byte","b":[0,85,85,85,85,85,87,95]},{"a":35168,"t":"byte","b":[0,85,85,85,85,85,213,213]},{"a":35176,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":35184,"t":"byte","b":[0,255,252,252,252,252,242,242]},{"a":35192,"t":"byte","b":[0,60,252,252,252,232,236,172]},{"a":35200,"t":"byte","b":[195,83,131,243,243,195,115,115]},{"a":35208,"t":"byte","b":[243,163,122,234,233,91,91,236]},{"a":35216,"t":"byte","b":[206,110,110,110,110,110,110,206]},{"a":35224,"t":"byte","b":[110,110,110,107,107,110,126,107]},{"a":35232,"t":"byte","b":[63,58,42,42,42,42,42,42]},{"a":35240,"t":"byte","b":[250,174,171,191,191,170,170,170]},{"a":35248,"t":"byte","b":[255,254,170,170,170,255,255,255]},{"a":35256,"t":"byte","b":[191,255,255,250,170,170,170,170]},{"a":35264,"t":"byte","b":[255,255,254,170,170,175,170,186]},{"a":35272,"t":"byte","b":[255,170,191,255,255,254,170,170]},{"a":35280,"t":"byte","b":[234,234,170,170,171,255,254,234]},{"a":35288,"t":"byte","b":[255,255,255,255,191,191,255,253]},{"a":35296,"t":"byte","b":[255,255,255,255,255,255,175,171]},{"a":35304,"t":"byte","b":[255,191,175,191,187,255,170,170]},{"a":35312,"t":"byte","b":[255,255,255,255,255,255,189,169]},{"a":35320,"t":"byte","b":[234,170,170,170,170,170,170,170]},{"a":35328,"t":"byte","b":[250,250,250,254,255,255,255,255]},{"a":35336,"t":"byte","b":[85,85,85,85,85,213,213,252]},{"a":35344,"t":"byte","b":[242,242,206,198,198,5,21,85]},{"a":35352,"t":"byte","b":[232,104,168,160,128,136,8,168]},{"a":35360,"t":"byte","b":[193,97,131,225,113,113,83,97]},{"a":35368,"t":"byte","b":[230,99,179,139,126,234,191,251]},{"a":35376,"t":"byte","b":[99,99,113,99,99,99,97,99]},{"a":35384,"t":"byte","b":[99,126,110,110,107,107,110,108]},{"a":35392,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":35400,"t":"byte","b":[255,255,255,255,250,234,170,170]},{"a":35408,"t":"byte","b":[255,255,255,255,255,191,191,175]},{"a":35416,"t":"byte","b":[255,255,255,255,255,254,250,250]},{"a":35424,"t":"byte","b":[170,170,170,190,254,255,255,255]},{"a":35432,"t":"byte","b":[170,171,170,170,169,165,165,101]},{"a":35440,"t":"byte","b":[255,255,175,175,171,171,170,170]},{"a":35448,"t":"byte","b":[250,250,234,234,170,170,170,170]},{"a":35456,"t":"byte","b":[254,254,255,255,255,255,255,255]},{"a":35464,"t":"byte","b":[255,255,255,191,191,175,165,165]},{"a":35472,"t":"byte","b":[254,254,250,234,170,170,170,170]},{"a":35480,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":35488,"t":"byte","b":[255,255,255,255,255,255,252,243]},{"a":35496,"t":"byte","b":[252,195,207,14,59,43,191,191]},{"a":35504,"t":"byte","b":[255,175,191,255,255,255,243,195]},{"a":35512,"t":"byte","b":[252,252,252,252,236,236,236,252]},{"a":35520,"t":"byte","b":[104,110,142,84,113,225,110,198]},{"a":35528,"t":"byte","b":[19,182,155,232,232,44,236,236]},{"a":35536,"t":"byte","b":[97,97,97,97,116,99,99,99]},{"a":35544,"t":"byte","b":[102,99,99,123,107,107,107,107]},{"a":35552,"t":"byte","b":[63,62,42,42,42,21,21,21]},{"a":35560,"t":"byte","b":[255,255,255,255,255,127,95,85]},{"a":35568,"t":"byte","b":[254,255,255,253,245,213,85,85]},{"a":35576,"t":"byte","b":[234,234,170,170,170,170,170,170]},{"a":35584,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":35592,"t":"byte","b":[234,254,255,255,253,245,213,85]},{"a":35600,"t":"byte","b":[254,250,234,170,170,170,170,170]},{"a":35608,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":35616,"t":"byte","b":[255,255,255,254,250,186,170,170]},{"a":35624,"t":"byte","b":[234,170,170,170,170,170,170,170]},{"a":35632,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":35640,"t":"byte","b":[255,255,255,255,255,255,255,254]},{"a":35648,"t":"byte","b":[243,206,138,43,47,47,44,48]},{"a":35656,"t":"byte","b":[234,234,42,40,32,34,162,2]},{"a":35664,"t":"byte","b":[207,63,57,43,239,175,159,191]},{"a":35672,"t":"byte","b":[252,252,252,252,252,252,252,12]},{"a":35680,"t":"byte","b":[94,89,65,100,81,110,150,149]},{"a":35688,"t":"byte","b":[203,235,156,108,236,235,207,232]},{"a":35696,"t":"byte","b":[97,254,254,97,244,244,254,102]},{"a":35704,"t":"byte","b":[246,246,107,251,251,252,107,251]},{"a":35712,"t":"byte","b":[63,59,63,63,63,63,63,63]},{"a":35720,"t":"byte","b":[171,238,170,170,170,166,170,170]},{"a":35728,"t":"byte","b":[250,239,255,255,255,215,255,255]},{"a":35736,"t":"byte","b":[255,254,90,106,106,170,85,154]},{"a":35744,"t":"byte","b":[250,170,170,170,170,170,170,106]},{"a":35752,"t":"byte","b":[170,170,170,170,170,170,170,170]},{"a":35760,"t":"byte","b":[170,170,170,170,170,171,191,255]},{"a":35768,"t":"byte","b":[245,213,85,85,85,85,85,85]},{"a":35776,"t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":35784,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":35792,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":35800,"t":"byte","b":[84,92,114,70,75,75,79,7]},{"a":35808,"t":"byte","b":[243,195,207,15,182,22,23,63]},{"a":35816,"t":"byte","b":[62,59,39,55,43,63,63,63]},{"a":35824,"t":"byte","b":[232,232,162,162,163,143,190,186]},{"a":35832,"t":"byte","b":[60,252,232,236,236,236,232,248]},{"a":35840,"t":"byte","b":[228,101,100,86,86,150,150,185]},{"a":35848,"t":"byte","b":[183,232,24,191,252,252,235,236]},{"a":35856,"t":"byte","b":[245,244,245,100,100,245,251,102]},{"a":35864,"t":"byte","b":[245,251,251,108,251,251,108,251]},{"a":35872,"t":"byte","b":[63,63,63,46,63,63,63,31]},{"a":35880,"t":"byte","b":[170,170,170,170,170,170,170,175]},{"a":35888,"t":"byte","b":[255,255,255,255,255,250,175,255]},{"a":35896,"t":"byte","b":[255,255,255,254,169,255,255,255]},{"a":35904,"t":"byte","b":[85,85,85,255,90,85,154,85]},{"a":35912,"t":"byte","b":[85,87,95,191,255,255,87,85]},{"a":35920,"t":"byte","b":[255,255,252,252,252,252,252,255]},{"a":35928,"t":"byte","b":[255,15,3,3,131,131,131,3]},{"a":35936,"t":"byte","b":[255,255,255,255,255,255,240,197]},{"a":35944,"t":"byte","b":[255,255,255,255,255,252,0,168]},{"a":35952,"t":"byte","b":[255,252,242,202,40,172,252,240]},{"a":35960,"t":"byte","b":[63,188,179,3,63,191,191,191]},{"a":35968,"t":"byte","b":[48,195,207,43,47,191,191,175]},{"a":35976,"t":"byte","b":[63,255,255,255,255,251,219,235]},{"a":35984,"t":"byte","b":[239,252,252,252,240,243,243,203]},{"a":35992,"t":"byte","b":[248,248,232,236,172,188,252,252]},{"a":36000,"t":"byte","b":[150,101,115,179,91,83,245,248]},{"a":36008,"t":"byte","b":[201,108,236,236,108,252,172,236]},{"a":36016,"t":"byte","b":[101,243,245,133,99,251,251,107]},{"a":36024,"t":"byte","b":[251,251,139,107,251,251,107,107]},{"a":36032,"t":"byte","b":[54,26,38,57,42,31,30,46]},{"a":36040,"t":"byte","b":[190,186,190,158,167,171,154,170]},{"a":36048,"t":"byte","b":[186,186,170,170,170,94,165,169]},{"a":36056,"t":"byte","b":[170,170,170,170,170,170,234,90]},{"a":36064,"t":"byte","b":[170,171,170,170,170,170,170,170]},{"a":36072,"t":"byte","b":[175,186,170,170,170,170,170,168]},{"a":36080,"t":"byte","b":[252,242,242,242,196,196,196,197]},{"a":36088,"t":"byte","b":[163,168,168,168,168,168,168,1]},{"a":36096,"l":"ROOM_GFX_19_CONT_8D00","c":"Room illustration 19 continuation at source offset $0400: row 6, byte 64 of its 160-byte interleaved row. Descriptor $0C6B gives 9 rows by 16 cells; this source ends at $8E9F. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[255,255,255,255,255,252,252,252]},{"a":36104,"t":"byte","b":[252,242,200,0,34,130,137,5]},{"a":36112,"t":"byte","b":[243,14,26,111,127,124,188,129]},{"a":36120,"t":"byte","b":[232,226,138,11,43,43,110,122]},{"a":36128,"t":"byte","b":[58,170,234,234,234,234,170,162]},{"a":36136,"t":"byte","b":[239,255,255,255,255,255,255,188]},{"a":36144,"t":"byte","b":[15,47,46,47,46,46,46,46]},{"a":36152,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":36160,"t":"byte","b":[149,101,53,53,101,101,137,201]},{"a":36168,"t":"byte","b":[184,251,252,251,235,44,155,234]},{"a":36176,"t":"byte","b":[102,99,249,254,107,251,245,139]},{"a":36184,"t":"byte","b":[108,252,123,108,252,251,108,251]},{"a":36192,"t":"byte","b":[63,63,63,42,39,63,63,63]},{"a":36200,"t":"byte","b":[255,255,234,159,255,255,255,255]},{"a":36208,"t":"byte","b":[170,175,246,170,170,170,170,170]},{"a":36216,"t":"byte","b":[250,218,170,170,170,170,170,170]},{"a":36224,"t":"byte","b":[85,85,85,85,84,82,14,43]},{"a":36232,"t":"byte","b":[242,194,22,24,160,100,150,126]},{"a":36240,"t":"byte","b":[240,252,252,252,252,252,252,252]},{"a":36248,"t":"byte","b":[252,252,2,252,252,204,204,204]},{"a":36256,"t":"byte","b":[255,252,252,252,255,255,255,255]},{"a":36264,"t":"byte","b":[58,251,251,248,60,128,128,131]},{"a":36272,"t":"byte","b":[14,58,58,54,170,149,255,255]},{"a":36280,"t":"byte","b":[234,234,170,170,170,170,170,170]},{"a":36288,"t":"byte","b":[202,5,58,63,3,3,192,255]},{"a":36296,"t":"byte","b":[232,168,162,162,162,162,34,34]},{"a":36304,"t":"byte","b":[251,219,219,107,103,107,111,111]},{"a":36312,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":36320,"t":"byte","b":[19,227,229,229,91,188,89,92]},{"a":36328,"t":"byte","b":[248,140,207,43,252,155,207,232]},{"a":36336,"t":"byte","b":[245,245,99,243,252,111,252,57]},{"a":36344,"t":"byte","b":[140,107,107,108,107,108,107,107]},{"a":36352,"t":"byte","b":[42,42,42,42,42,42,42,0]},{"a":36360,"t":"byte","b":[170,170,170,170,170,170,170,0]},{"a":36368,"t":"byte","b":[255,255,255,255,252,252,242,0]},{"a":36376,"t":"byte","b":[252,242,201,37,149,150,89,0]},{"a":36384,"t":"byte","b":[238,186,171,174,172,242,136,0]},{"a":36392,"t":"byte","b":[188,188,194,42,171,11,172,0]},{"a":36400,"t":"byte","b":[252,252,252,252,252,50,10,0]},{"a":36408,"t":"byte","b":[68,68,68,68,68,16,68,0]},{"a":36416,"t":"byte","b":[255,255,255,255,255,0,0,0]},{"a":36424,"t":"byte","b":[252,255,255,255,255,255,0,0]},{"a":36432,"t":"byte","b":[255,63,143,143,160,170,170,0]},{"a":36440,"t":"byte","b":[255,63,63,43,255,63,63,0]},{"a":36448,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":36456,"t":"byte","b":[243,195,207,207,10,59,250,0]},{"a":36464,"t":"byte","b":[237,237,237,229,213,213,213,0]},{"a":36472,"t":"byte","b":[252,252,252,252,252,252,252,0]},{"a":36480,"t":"byte","b":[133,149,252,188,59,139,105,150]},{"a":36488,"t":"byte","b":[130,42,44,236,232,236,191,232]},{"a":36496,"t":"byte","b":[102,102,101,101,108,108,108,101]},{"a":36504,"t":"byte","b":[108,108,107,107,251,107,108,107]},{"a":36512,"l":"ROOM_GFX_20","c":"ROOM_GFX_20 \u2014 ROOM_GRAPHIC_TABLE[20] source payload in the captured part. It is 9 rows by 15 columns, blitted at character row 1, column 2: 9*15*10 = 1,350 bytes. This is the final captured-part graphics record and ends at $93E5. No captured-part descriptor or decoded operand reaches the following $93E6-$967F span.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36528,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36536,"t":"byte","b":[0,0,0,0,0,0,0,63]},{"a":36544,"t":"byte","b":[0,0,0,0,0,0,0,255]},{"a":36552,"t":"byte","b":[0,0,0,0,0,0,0,186]},{"a":36560,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":36568,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":36576,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":36584,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":36592,"t":"byte","b":[0,0,0,0,0,0,0,238]},{"a":36600,"t":"byte","b":[0,0,0,0,0,0,0,248]},{"a":36608,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36632,"t":"byte","b":[195,83,131,243,243,195,115,115]},{"a":36640,"t":"byte","b":[243,163,113,230,233,91,91,110]},{"a":36648,"t":"byte","b":[110,110,97,97,97,110,110,110]},{"a":36656,"t":"byte","b":[110,99,97,107,110,110,0,0]},{"a":36664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36672,"t":"byte","b":[0,0,0,2,10,10,0,3]},{"a":36680,"t":"byte","b":[14,56,224,128,192,255,191,205]},{"a":36688,"t":"byte","b":[13,13,13,13,13,170,186,0]},{"a":36696,"t":"byte","b":[0,0,0,0,0,170,170,0]},{"a":36704,"t":"byte","b":[0,0,0,0,0,170,255,0]},{"a":36712,"t":"byte","b":[0,0,0,0,0,255,170,0]},{"a":36720,"t":"byte","b":[0,0,0,0,0,170,255,0]},{"a":36728,"t":"byte","b":[0,0,0,0,0,255,255,0]},{"a":36736,"t":"byte","b":[0,0,0,0,0,255,255,0]},{"a":36744,"t":"byte","b":[0,0,0,0,0,255,249,126]},{"a":36752,"t":"byte","b":[115,96,144,144,144,255,0,192]},{"a":36760,"t":"byte","b":[176,108,27,6,1,87,0,0]},{"a":36768,"t":"byte","b":[0,0,0,192,128,192,0,0]},{"a":36776,"t":"byte","b":[0,0,0,0,0,0,193,97]},{"a":36784,"t":"byte","b":[133,97,113,113,83,97,230,99]},{"a":36792,"t":"byte","b":[179,99,19,227,191,99,99,97]},{"a":36800,"t":"byte","b":[101,101,99,97,99,97,97,97]},{"a":36808,"t":"byte","b":[97,102,102,110,0,0,0,0]},{"a":36816,"t":"byte","b":[0,0,0,0,13,13,13,9]},{"a":36824,"t":"byte","b":[13,9,13,9,250,0,0,0]},{"a":36832,"t":"byte","b":[0,0,0,3,255,0,6,6]},{"a":36840,"t":"byte","b":[6,6,6,6,255,0,0,0]},{"a":36848,"t":"byte","b":[0,0,0,0,255,0,0,0]},{"a":36856,"t":"byte","b":[0,0,0,0,255,0,0,2]},{"a":36864,"t":"byte","b":[0,0,0,0,255,0,0,0]},{"a":36872,"t":"byte","b":[128,32,40,41,255,0,0,0]},{"a":36880,"t":"byte","b":[0,0,0,0,255,0,0,0]},{"a":36888,"t":"byte","b":[0,0,0,0,255,0,0,0]},{"a":36896,"t":"byte","b":[0,0,0,0,255,0,144,144]},{"a":36904,"t":"byte","b":[144,144,144,147,255,2,3,3]},{"a":36912,"t":"byte","b":[3,3,3,3,192,192,192,192]},{"a":36920,"t":"byte","b":[192,192,192,192,0,0,0,0]},{"a":36928,"t":"byte","b":[0,0,0,0,104,111,138,86]},{"a":36936,"t":"byte","b":[113,225,97,129,19,182,155,99]},{"a":36944,"t":"byte","b":[236,44,236,97,97,97,106,106]},{"a":36952,"t":"byte","b":[106,106,106,106,106,106,106,106]},{"a":36960,"t":"byte","b":[102,107,0,0,0,0,0,0]},{"a":36968,"t":"byte","b":[0,0,14,14,14,14,14,14]},{"a":36976,"t":"byte","b":[14,14,192,252,255,191,191,127]},{"a":36984,"t":"byte","b":[119,149,201,201,59,9,15,79]},{"a":36992,"t":"byte","b":[75,75,0,0,0,0,0,0]},{"a":37000,"t":"byte","b":[128,160,0,0,0,0,0,0]},{"a":37008,"t":"byte","b":[0,0,0,0,3,2,2,14]},{"a":37016,"t":"byte","b":[10,10,229,237,237,127,127,127]},{"a":37024,"t":"byte","b":[255,127,192,192,160,236,216,216]},{"a":37032,"t":"byte","b":[214,86,0,0,0,0,0,0]},{"a":37040,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":37048,"t":"byte","b":[0,0,210,208,208,208,208,208]},{"a":37056,"t":"byte","b":[208,208,3,131,131,163,35,43]},{"a":37064,"t":"byte","b":[11,11,192,192,192,192,192,192]},{"a":37072,"t":"byte","b":[192,192,0,0,0,0,0,0]},{"a":37080,"t":"byte","b":[0,0,94,86,246,47,81,110]},{"a":37088,"t":"byte","b":[151,24,113,235,156,98,226,235]},{"a":37096,"t":"byte","b":[207,97,111,98,97,100,100,104]},{"a":37104,"t":"byte","b":[103,104,102,107,99,106,102,107]},{"a":37112,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":37120,"t":"byte","b":[249,249,249,249,249,249,249,249]},{"a":37128,"t":"byte","b":[230,237,217,251,251,118,254,126]},{"a":37136,"t":"byte","b":[201,201,201,249,249,249,249,185]},{"a":37144,"t":"byte","b":[234,186,190,170,171,170,170,85]},{"a":37152,"t":"byte","b":[255,255,255,255,255,191,239,85]},{"a":37160,"t":"byte","b":[202,58,41,41,37,38,16,5]},{"a":37168,"t":"byte","b":[250,255,239,203,18,40,105,90]},{"a":37176,"t":"byte","b":[235,235,235,187,123,187,3,164]},{"a":37184,"t":"byte","b":[63,191,47,63,59,63,63,133]},{"a":37192,"t":"byte","b":[255,255,255,255,255,255,255,165]},{"a":37200,"t":"byte","b":[228,228,228,228,229,229,229,229]},{"a":37208,"t":"byte","b":[14,14,2,2,2,2,2,194]},{"a":37216,"t":"byte","b":[234,234,234,234,234,234,234,234]},{"a":37224,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":37232,"t":"byte","b":[228,111,111,175,162,161,23,135]},{"a":37240,"t":"byte","b":[23,161,58,38,250,242,235,98]},{"a":37248,"t":"byte","b":[242,242,162,97,242,82,97,248]},{"a":37256,"t":"byte","b":[242,162,97,242,86,98,63,63]},{"a":37264,"t":"byte","b":[63,63,63,63,63,63,249,249]},{"a":37272,"t":"byte","b":[249,249,249,249,249,249,233,233]},{"a":37280,"t":"byte","b":[235,235,234,234,234,186,249,229]},{"a":37288,"t":"byte","b":[228,231,231,151,147,175,255,0]},{"a":37296,"t":"byte","b":[170,170,170,170,170,170,255,0]},{"a":37304,"t":"byte","b":[170,168,168,168,168,164,50,60]},{"a":37312,"t":"byte","b":[63,223,215,223,247,247,234,234]},{"a":37320,"t":"byte","b":[59,140,161,173,173,173,227,141]},{"a":37328,"t":"byte","b":[63,245,255,117,213,117,202,192]},{"a":37336,"t":"byte","b":[21,197,197,197,197,133,255,0]},{"a":37344,"t":"byte","b":[170,170,170,170,170,170,250,254]},{"a":37352,"t":"byte","b":[30,94,94,87,87,87,194,194]},{"a":37360,"t":"byte","b":[242,254,254,254,254,254,234,234]},{"a":37368,"t":"byte","b":[234,234,234,234,234,234,252,252]},{"a":37376,"t":"byte","b":[252,252,252,252,252,252,150,111]},{"a":37384,"t":"byte","b":[242,97,95,47,129,135,129,242]},{"a":37392,"t":"byte","b":[239,242,106,242,172,98,242,166]},{"a":37400,"t":"byte","b":[143,102,246,87,97,247,168,130]},{"a":37408,"t":"byte","b":[97,98,246,242,63,63,63,63]},{"a":37416,"t":"byte","b":[63,63,63,63,249,249,249,249]},{"a":37424,"t":"byte","b":[249,249,249,249,239,237,173,169]},{"a":37432,"t":"byte","b":[169,166,166,166,250,126,78,78]},{"a":37440,"t":"byte","b":[111,107,43,43,255,254,254,255]},{"a":37448,"t":"byte","b":[255,255,255,255,252,252,255,255]},{"a":37456,"t":"byte","b":[255,255,191,191,237,89,25,22]},{"a":37464,"t":"byte","b":[134,160,168,170,226,140,204,31]},{"a":37472,"t":"byte","b":[21,255,255,0,249,229,215,23]},{"a":37480,"t":"byte","b":[28,67,207,63,197,197,21,21]},{"a":37488,"t":"byte","b":[213,253,255,255,85,85,85,85]},{"a":37496,"t":"byte","b":[85,85,213,245,87,85,85,85]},{"a":37504,"t":"byte","b":[85,85,85,85,254,126,126,125]},{"a":37512,"t":"byte","b":[126,158,158,157,213,213,213,213]},{"a":37520,"t":"byte","b":[213,213,213,213,252,252,252,252]},{"a":37528,"t":"byte","b":[252,252,252,252,149,111,22,111]},{"a":37536,"l":"ROOM_GFX_20_CONT_92A0","c":"Room illustration 20 continuation at source offset $0400: row 6, byte 124 of its 150-byte interleaved row. Descriptor $0C71 gives 9 rows by 15 cells; this source ends at $93E5. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[98,111,130,247,135,251,252,251]},{"a":37544,"t":"byte","b":[31,44,155,242,98,242,241,111]},{"a":37552,"t":"byte","b":[242,247,248,98,242,242,113,98]},{"a":37560,"t":"byte","b":[246,2,63,63,63,63,63,63]},{"a":37568,"t":"byte","b":[63,63,249,249,249,249,249,249]},{"a":37576,"t":"byte","b":[249,249,251,239,236,237,237,188]},{"a":37584,"t":"byte","b":[191,255,255,255,255,255,255,255]},{"a":37592,"t":"byte","b":[191,170,234,234,186,170,174,170]},{"a":37600,"t":"byte","b":[170,85,234,250,250,254,255,255]},{"a":37608,"t":"byte","b":[255,85,255,255,255,255,255,170]},{"a":37616,"t":"byte","b":[170,85,255,255,255,255,250,170]},{"a":37624,"t":"byte","b":[170,85,255,255,255,255,85,85]},{"a":37632,"t":"byte","b":[85,170,255,255,255,186,170,170]},{"a":37640,"t":"byte","b":[170,85,250,250,234,170,170,170]},{"a":37648,"t":"byte","b":[170,85,255,255,255,255,255,255]},{"a":37656,"t":"byte","b":[255,154,127,93,95,95,95,87]},{"a":37664,"t":"byte","b":[87,223,234,234,234,234,234,234]},{"a":37672,"t":"byte","b":[234,234,252,252,252,252,252,252]},{"a":37680,"t":"byte","b":[252,252,19,111,241,230,111,98]},{"a":37688,"t":"byte","b":[111,111,254,239,239,225,252,146]},{"a":37696,"t":"byte","b":[207,242,98,246,15,97,255,2]},{"a":37704,"t":"byte","b":[98,242,2,114,255,241,6,98]},{"a":37712,"t":"byte","b":[63,63,63,63,63,63,63,0]},{"a":37720,"t":"byte","b":[246,244,244,253,255,255,255,0]},{"a":37728,"t":"byte","b":[170,0,0,255,85,85,85,0]},{"a":37736,"t":"byte","b":[170,0,0,255,85,85,85,0]},{"a":37744,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37752,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37760,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37768,"t":"byte","b":[255,0,0,85,170,170,170,0]},{"a":37776,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37784,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37792,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37800,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37808,"t":"byte","b":[255,0,0,170,85,85,85,0]},{"a":37816,"t":"byte","b":[234,250,62,91,170,170,170,0]},{"a":37824,"t":"byte","b":[252,252,252,252,252,252,252,0]},{"a":37832,"t":"byte","b":[133,159,44,44,41,41,41,146]},{"a":37840,"t":"byte","b":[41,41,41,41,41,146,191,98]},{"a":37848,"t":"byte","b":[98,105,105,255,111,111,111,111]},{"a":37856,"t":"byte","b":[111,111,111,97,102,242]},{"a":37862,"l":"ROOM_GFX_BUFFER_SLACK_93E6","c":"ROOM_GFX_BUFFER_SLACK_93E6 \u2014 initialized graphics-like residue after the captured part's final valid payload at $93E5. No captured-part RoomGraphicRecord, decoded instruction operand, pointer-table entry, or recorded reference reaches $93E6-$967F. It is retained and typed as inactive captured bytes rather than attributed to a noncaptured occupant.","t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":37870,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":37878,"t":"byte","b":[255,255,0,0,255,255,0,16]},{"a":37886,"t":"byte","b":[255,255,255,255,0,0,255,255]},{"a":37894,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37902,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37910,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37918,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37926,"t":"byte","b":[0,32,255,255,0,0,255,255]},{"a":37934,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37942,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37950,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37958,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37966,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37974,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37982,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37990,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":37998,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38006,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38014,"t":"byte","b":[0,0,191,255,0,0,255,255]},{"a":38022,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38030,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38038,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38046,"t":"byte","b":[0,0,255,255,0,0,255,223]},{"a":38054,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38062,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38070,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38078,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38086,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38094,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38102,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38110,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38118,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38126,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38134,"t":"byte","b":[0,0,255,255,0,0,255,239]},{"a":38142,"t":"byte","b":[0,0,0,0,255,255,0,0]},{"a":38150,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38158,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38166,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38174,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38182,"t":"byte","b":[255,223,0,0,255,255,0,0]},{"a":38190,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38198,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38206,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38214,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38222,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38230,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38238,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38246,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38254,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38262,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38270,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38278,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38286,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38294,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38302,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38310,"t":"byte","b":[255,223,0,0,255,255,0,0]},{"a":38318,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38326,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38334,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38342,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38350,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38358,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38366,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38374,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38382,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":38390,"t":"byte","b":[255,255,0,0,255,255,0,16]},{"a":38398,"t":"byte","b":[255,255,239,239,0,0,255,255]},{"a":38406,"t":"byte","b":[0,0,255,239,0,0,255,239]},{"a":38414,"t":"byte","b":[0,0,255,239,0,0,255,239]},{"a":38422,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38430,"t":"byte","b":[0,0,255,239,0,0,255,239]},{"a":38438,"t":"byte","b":[0,32,255,255,0,0,255,255]},{"a":38446,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38454,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38462,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38470,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38478,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38486,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38494,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38502,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38510,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38518,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":38526,"t":"byte","b":[0,0]},{"a":38528,"l":"ROOM_GFX_BUFFER_SLACK_9680","c":"Inactive initialized room-buffer residue. The alternating $00/$FF pattern lies beyond the captured part's final RoomGraphicRecord, and no decoded instruction operand, pointer-table entry, or recorded reference addresses this range.","t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38536,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38544,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38552,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38560,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38568,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38576,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38584,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38592,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38600,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38608,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38616,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38624,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38632,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38640,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38648,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":38656,"l":"LOAD_NEXT_GAME_PART","c":"LOAD_NEXT_GAME_PART ($9700)\nPurpose: The runtime multipart loader, copied here from staging by ENTER_GAMEPLAY_DISPLAY. It puts the machine into a KERNAL-friendly state, blanks the display, names the next part file, runs the custom fast loader, then restores gameplay display, timer and interrupt state and advances the filename digit for the following call.\nInputs: None in registers. The inline five-byte filename at $9735 currently reads PART2; the drive must hold the disk.\nOutputs: The named part is loaded over the overlay region; the inline filename's last digit is incremented so a later call requests the next part; the VIC display is re-enabled with a medium grey border, CIA 1 timer A is stopped, CIA 1 interrupt control is written with $10, $D01A is set to $F1 and $01 is returned to $36. Executable code occupies $9700-$9761; $9762-$98FF is installed tail and fill with no consumer.\nAssumptions: Entered with interrupts about to be disabled by its own SEI. It sets $01=$37 so KERNAL ROM is visible for SETNAM, and leaves $01=$36 on exit, which is the gameplay configuration in which $A000-$BFFF is RAM. The filename increment is unconditional, so the routine is single-use per part in the order PART2, PART3, ...\nClobbers: A, X, Y, flags, KERNAL zero-page bytes $B9, $BA, $C3 and $FD, the inline filename byte at $9739, and the display, timer and interrupt state listed above.\nHardware changes: Executes SEI. Writes the 6510 port $01 ($37 then $36). Writes VIC-II $D011 (blank then enable), $D020 border, $D01A interrupt enable, $D019 interrupt latch. Writes CIA 2 interrupt control $DD0D and CIA 1 timer A control $DC0E and interrupt control $DC0D. Calls KERNAL SETNAM ($FFBD) and drives the serial bus through the custom loader.","s":"Prevent IRQ activity while replacing the current game part.","t":"code","b":[120],"m":"sei","x":[1107,1843]},{"a":38657,"l":"LOAD_PART_SELECT_KERNAL_MAP","s":"Select normal C64 ROM and I/O mapping for KERNAL calls.","t":"code","b":[169,55],"m":"lda","o":"#$37"},{"a":38659,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":38661,"s":"Blank the VIC display during disk loading.","t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":38663,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":38666,"s":"Use black border while loading.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38668,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":38671,"t":"code","b":[141,13,221],"m":"sta","o":"cia2_interrupt"},{"a":38674,"s":"Stop CIA1 timer A.","t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":38677,"s":"Disable VIC interrupt sources.","t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":38680,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":38683,"t":"code","b":[133,253],"m":"sta","oa":253,"o":"FASTLOADER_ZP_FLAG"},{"a":38685,"t":"code","b":[133,185],"m":"sta","oa":185,"o":"SA_SECONDARY_ADDRESS"},{"a":38687,"t":"code","b":[133,195],"m":"sta","oa":195,"o":"MEMUSS_LOAD_ADDRESS"},{"a":38689,"s":"KERNAL device number 8.","t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":38691,"t":"code","b":[133,186],"m":"sta","oa":186,"o":"FA_DEVICE_NUMBER"},{"a":38693,"s":"Filename length is five bytes.","t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":38695,"s":"Filename pointer low byte = <PART_FILENAME.","t":"code","b":[162,53],"m":"ldx","o":"#$35"},{"a":38696,"t":"note","l":"PART_FILENAME_POINTER_LOW_OPERAND","c":"Immediate operand $35 of LDX #$35 at $9727, selecting low byte of the inline PART filename for KERNAL SETNAM. Retained title-player code also calls execution address $9728, but that call belongs to the previous music occupant; this byte is an operand in the installed gameplay loader.","note":"inside the item at $9727","x":[40628]},{"a":38697,"s":"Filename pointer high byte = >PART_FILENAME.","t":"code","b":[160,151],"m":"ldy","o":"#$97"},{"a":38699,"s":"KERNAL SETNAM(\"PART2\").","t":"code","b":[32,189,255],"m":"jsr","oa":65469,"o":"KERNAL_SETNAM"},{"a":38702,"l":"PART_LOADER_CLD_BEFORE_CALL","c":"Clear decimal mode immediately before JSR RUN_FASTLOADER at $972F. The preceding filename setup falls through here. A retained title-player call to the same address targets the earlier music occupant, which the gameplay loader replaced.","t":"code","b":[216],"m":"cld","x":[40358]},{"a":38703,"s":"Swap in and execute the custom fast loader.","t":"code","b":[32,160,3],"m":"jsr","oa":928,"o":"RUN_FASTLOADER"},{"a":38706,"s":"Skip over the inline mutable filename.","t":"code","b":[76,58,151],"m":"jmp","oa":38714,"o":"LOAD_PART_RESTORE_STATE"},{"a":38708,"t":"note","l":"PART_LOADER_RESUME_JUMP_HIGH_OPERAND","c":"High operand $97 of JMP $973A at $9732 in the installed gameplay loader. The retained title player calls this address in its earlier occupant; it is not an entry instruction in the captured loader.","note":"inside the item at $9732","x":[40634]},{"a":38709,"l":"PART_FILENAME","c":"Mutable five-byte part filename, initially PART2; the loader increments its final digit after each use.","t":"byte","b":[80,65,82,84]},{"a":38713,"l":"a_9739","c":"Mutable final digit of the five-byte PART filename at $9735, incremented by $975A after loading. Following code restores display, CIA and IRQ settings, then returns at $9761; bytes after that belong to the installed loader image tail.","t":"byte","b":[50],"x":[38746]},{"a":38714,"l":"LOAD_PART_RESTORE_STATE","c":"Continuation of LOAD_NEXT_GAME_PART after its inline five-byte filename: enables the display with D011=$3B, sets border $0C, restores VIC interrupt configuration and CIA control, increments the filename digit, sets processor port $36, and returns at $9761.","s":"Custom load returned; restore display and interrupt state.","t":"code","b":[120],"m":"sei","x":[38706]},{"a":38715,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":38717,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":38720,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":38723,"s":"Re-enable the VIC display.","t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":38725,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":38728,"t":"code","b":[173,14,220],"m":"lda","o":"cia1_control_a"},{"a":38731,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":38733,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":38736,"s":"Re-enable VIC raster interrupts.","t":"code","b":[169,241],"m":"lda","o":"#$F1"},{"a":38738,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":38741,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":38743,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":38746,"s":"Advance PART2 to PART3 (and so on) for the next load.","t":"code","b":[238,57,151],"m":"inc","oa":38713,"o":"a_9739"},{"a":38749,"s":"Return to the game-standard $36 memory map.","t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":38751,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":38753,"t":"code","b":[96],"m":"rts"},{"a":38754,"l":"DISK_LOADER_IMAGE_UNUSED_TAIL","c":"DISK_LOADER_IMAGE_UNUSED_TAIL \u2014 non-executed tail of the fixed two-page loader image installed at $9700-$98FF. LOAD_NEXT_GAME_PART returns at $9761; INSTALL_DISK_LOADER copies this tail only because it moves two complete pages. No branch, call, decoded table entry, or recorded reference treats $9762-$98FF as executable or consumed data.","t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":38762,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":38770,"t":"byte","b":[0,215,0,0,0,0,0,0]},{"a":38778,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38786,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38794,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38802,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38810,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38818,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38826,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38834,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38842,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38850,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38858,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38866,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38874,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38882,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38890,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38898,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":38906,"t":"byte","b":[0,0,0,0,0,0]},{"a":38912,"l":"f_9800","c":"Second installed loader-image page, copied from $C100 by $0736/$0739 before staging memory is reused for saved display pixels. The captured page contains the installed tail bytes; this label identifies the copied region, not an executable routine.","t":"byte","b":[255,255,0,0,0,0,255,255],"x":[1849]},{"a":38920,"t":"byte","b":[255,255,0,0,0,0,255,255]},{"a":38928,"t":"byte","b":[255,255,0,0,0,0,255,255]},{"a":38936,"t":"byte","b":[255,255,0,0,0,0,255,255]},{"a":38944,"t":"byte","b":[255,255,0,0,0,0,255,255]},{"a":38952,"t":"byte","b":[255,255,0,0,0,0,255,255]},{"a":38960,"t":"byte","b":[255,255,0,8,0,0,255,255]},{"a":38968,"t":"byte","b":[255,255,0,0,0,0,255,255]},{"a":38976,"t":"gap","n":192},{"a":39168,"l":"EXCLUDED_TITLE_MUSIC_BYTES","c":"Excluded title-stage SID-player tail, parameter records, and residual state retained in the gameplay snapshot. It is inactive after the gameplay transition.","t":"byte","b":[198,29,76,209,152,160,1,177]},{"a":39176,"t":"byte","b":[16,170,200,177,16,157,243,158]},{"a":39184,"t":"byte","b":[76,169,151,151,152,169,152,161]},{"a":39192,"t":"byte","b":[150,185,152,191,152,197,152,203]},{"a":39200,"t":"byte","b":[152,209,152,239,152,161,150,161]},{"a":39208,"t":"byte","b":[150,161,150,5,153,161,150,220]},{"a":39216,"t":"byte","b":[152,174,29,240,208,1,96,216]},{"a":39224,"t":"byte","b":[24,174,31,240,172,32,240,173]},{"a":39232,"t":"byte","b":[14,240,41,4,240,32,152,134]},{"a":39240,"t":"byte","b":[24,5,24,240,25,173,12,240]},{"a":39248,"t":"byte","b":[240,23,206,12,240,173,14,240]},{"a":39256,"t":"byte","b":[41,2,240,10,138,109,6,240]},{"a":39264,"t":"byte","b":[170,152,109,7,240,168,76,227]},{"a":39272,"t":"byte","b":[153,173,39,240,240,6,206,39]},{"a":39280,"t":"byte","b":[240,76,227,153,173,13,240,141]},{"a":39288,"t":"byte","b":[39,240,173,35,240,240,16,138]},{"a":39296,"t":"byte","b":[109,0,240,170,152,109,1,240]},{"a":39304,"t":"byte","b":[168,206,35,240,76,227,153,173]},{"a":39312,"t":"byte","b":[36,240,240,16,138,109,2,240]},{"a":39320,"t":"byte","b":[170,152,109,3,240,168,206,36]},{"a":39328,"t":"byte","b":[240,76,227,153,173,37,240,240]},{"a":39336,"t":"byte","b":[16,138,109,4,240,170,152,109]},{"a":39344,"t":"byte","b":[5,240,168,206,37,240,76,227]},{"a":39352,"t":"byte","b":[153,173,38,240,240,16,138,109]},{"a":39360,"t":"byte","b":[6,240,170,152,109,7,240,168]},{"a":39368,"t":"byte","b":[206,38,240,76,227,153,173,14]},{"a":39376,"t":"byte","b":[240,41,129,240,14,16,6,32]},{"a":39384,"t":"byte","b":[71,151,76,122,153,32,83,151]},{"a":39392,"t":"byte","b":[76,122,153,142,0,212,140,1]},{"a":39400,"t":"byte","b":[212,142,31,240,140,32,240,174]},{"a":39408,"t":"byte","b":[33,240,172,34,240,173,23,240]},{"a":39416,"t":"byte","b":[41,4,240,92,173,21,240,240]},{"a":39424,"t":"byte","b":[6,206,21,240,76,88,154,173]},{"a":39432,"t":"byte","b":[42,240,240,6,206,42,240,76]},{"a":39440,"t":"byte","b":[88,154,173,22,240,141,42,240]},{"a":39448,"t":"byte","b":[24,173,40,240,240,16,138,109]},{"a":39456,"t":"byte","b":[15,240,170,152,109,16,240,168]},{"a":39464,"t":"byte","b":[206,40,240,76,88,154,173,41]},{"a":39472,"t":"byte","b":[240,240,16,138,109,17,240,170]},{"a":39480,"t":"byte","b":[152,109,18,240,168,206,41,240]},{"a":39488,"t":"byte","b":[76,88,154,173,23,240,41,129]},{"a":39496,"t":"byte","b":[240,14,16,6,32,9,151,76]},{"a":39504,"t":"byte","b":[25,154,32,21,151,76,25,154]},{"a":39512,"t":"byte","b":[142,33,240,140,34,240,142,2]},{"a":39520,"t":"byte","b":[212,140,3,212,173,30,240,208]},{"a":39528,"t":"byte","b":[20,206,29,240,208,28,162,6]},{"a":39536,"t":"byte","b":[157,0,212,202,16,250,169,8]},{"a":39544,"t":"byte","b":[5,25,133,25,96,206,30,240]},{"a":39552,"t":"byte","b":[208,8,173,28,240,41,254,141]},{"a":39560,"t":"byte","b":[4,212,96,0,165,25,41,2]},{"a":39568,"t":"byte","b":[240,4,198,27,240,14,76,13]},{"a":39576,"t":"byte","b":[156,169,3,24,101,18,133,18]},{"a":39584,"t":"byte","b":[144,2,230,19,160,0,177,18]},{"a":39592,"t":"byte","b":[16,28,41,127,170,189,239,155]},{"a":39600,"t":"byte","b":[141,196,154,189,240,155,141,197]},{"a":39608,"t":"byte","b":[154,200,177,18,133,22,200,177]},{"a":39616,"t":"byte","b":[18,133,23,76,192,155,201,96]},{"a":39624,"t":"byte","b":[240,16,201,95,240,3,109,154]},{"a":39632,"t":"byte","b":[159,133,24,173,129,240,41,2]},{"a":39640,"t":"byte","b":[208,9,76,83,155,165,25,41]},{"a":39648,"t":"byte","b":[16,240,247,160,34,162,3,185]},{"a":39656,"t":"byte","b":[71,159,224,3,208,5,41,240]},{"a":39664,"t":"byte","b":[13,130,240,157,21,212,136,202]},{"a":39672,"t":"byte","b":[16,237,160,28,162,2,169,0]},{"a":39680,"t":"byte","b":[157,11,212,185,71,159,157,11]},{"a":39688,"t":"byte","b":[212,136,202,16,241,141,71,240]},{"a":39696,"t":"byte","b":[173,85,159,141,57,240,240,11]},{"a":39704,"t":"byte","b":[160,14,185,71,159,153,43,240]},{"a":39712,"t":"byte","b":[136,16,247,166,24,188,142,240]},{"a":39720,"t":"byte","b":[189,234,240,170,142,69,240,140]},{"a":39728,"t":"byte","b":[70,240,142,7,212,140,8,212]},{"a":39736,"t":"byte","b":[32,120,151,174,95,159,172,96]},{"a":39744,"t":"byte","b":[159,142,9,212,140,10,212,174]},{"a":39752,"t":"byte","b":[100,159,172,101,159,142,72,240]},{"a":39760,"t":"byte","b":[140,73,240,160,1,177,18,170]},{"a":39768,"t":"byte","b":[189,105,159,133,27,169,2,24]},{"a":39776,"t":"byte","b":[101,18,133,18,144,2,230,19]},{"a":39784,"t":"byte","b":[76,13,156,166,30,232,134,30]},{"a":39792,"t":"byte","b":[189,122,159,133,18,189,138,159]},{"a":39800,"t":"byte","b":[133,19,76,164,154,160,4,162]},{"a":39808,"t":"byte","b":[30,177,22,157,71,159,202,136]},{"a":39816,"t":"byte","b":[16,247,76,153,154,160,34,162]},{"a":39824,"t":"byte","b":[34,208,238,160,50,162,50,208]},{"a":39832,"t":"byte","b":[232,160,14,162,14,208,226,160]},{"a":39840,"t":"byte","b":[10,162,25,208,220,160,3,177]},{"a":39848,"t":"byte","b":[18,141,154,159,166,22,134,18]},{"a":39856,"t":"byte","b":[166,23,134,19,76,164,154,169]},{"a":39864,"t":"byte","b":[154,72,169,152,72,108,22,0]},{"a":39872,"t":"byte","b":[169,3,166,30,24,101,18,157]},{"a":39880,"t":"byte","b":[122,159,165,19,105,0,157,138]},{"a":39888,"t":"byte","b":[159,198,30,76,172,155,160,1]},{"a":39896,"t":"byte","b":[177,18,170,200,177,18,157,71]},{"a":39904,"t":"byte","b":[159,76,153,154,160,3,177,18]},{"a":39912,"t":"byte","b":[141,154,159,169,4,208,211,107]},{"a":39920,"t":"byte","b":[155,125,155,161,150,141,155,153]},{"a":39928,"t":"byte","b":[155,159,155,161,150,172,155,192]},{"a":39936,"t":"byte","b":[155,147,155,161,150,228,155,214]},{"a":39944,"t":"byte","b":[155,165,155,183,155,174,72,240]},{"a":39952,"t":"byte","b":[208,1,96,216,24,174,74,240]},{"a":39960,"t":"byte","b":[172,75,240,173,57,240,41,4]},{"a":39968,"t":"byte","b":[240,32,152,134,24,5,24,240]},{"a":39976,"t":"byte","b":[25,173,55,240,240,23,206,55]},{"a":39984,"t":"byte","b":[240,173,57,240,41,2,240,10]},{"a":39992,"t":"byte","b":[138,109,49,240,170,152,109,50]},{"a":40000,"t":"byte","b":[240,168,76,191,156,173,82,240]},{"a":40008,"t":"byte","b":[240,6,206,82,240,76,191,156]},{"a":40016,"t":"byte","b":[173,56,240,141,82,240,173,78]},{"a":40024,"t":"byte","b":[240,240,16,138,109,43,240,170]},{"a":40032,"t":"byte","b":[152,109,44,240,168,206,78,240]},{"a":40040,"t":"byte","b":[76,191,156,173,79,240,240,16]},{"a":40048,"t":"byte","b":[138,109,45,240,170,152,109,46]},{"a":40056,"t":"byte","b":[240,168,206,79,240,76,191,156]},{"a":40064,"t":"byte","b":[173,80,240,240,16,138,109,47]},{"a":40072,"t":"byte","b":[240,170,152,109,48,240,168,206]},{"a":40080,"t":"byte","b":[80,240,76,191,156,173,81,240]},{"a":40088,"t":"byte","b":[240,16,138,109,49,240,170,152]},{"a":40096,"t":"byte","b":[109,50,240,168,206,81,240,76]},{"a":40104,"t":"byte","b":[191,156,173,57,240,41,129,240]},{"a":40112,"t":"byte","b":[14,16,6,32,114,151,76,86]},{"a":40120,"t":"byte","b":[156,32,126,151,76,86,156,142]},{"a":40128,"t":"byte","b":[7,212,140,8,212,142,74,240]},{"a":40136,"t":"byte","b":[140,75,240,173,73,240,208,20]},{"a":40144,"t":"byte","b":[206,72,240,208,28,162,6,157]},{"a":40152,"t":"byte","b":[7,212,202,16,250,169,16,5]},{"a":40160,"t":"byte","b":[25,133,25,96,206,73,240,208]},{"a":40168,"t":"byte","b":[8,173,71,240,41,254,141,11]},{"a":40176,"t":"byte","b":[212,96,165,25,41,4,240,4]},{"a":40184,"t":"byte","b":[198,28,240,14]},{"a":40188,"l":"j_9CFC","t":"byte","b":[76,77,158],"x":[40394]},{"a":40191,"l":"TITLE_MUSIC_ADVANCE_COMMAND","c":"Retained title-player command advance: add three to stream pointer $14/$15, read the next opcode and dispatch. Bit 7 selects a command: opcode&$7F indexes the interleaved pointer bases $9E31/$9E32, whose selected address patches JMP operands $9D2D/$9D2E. Read two following stream bytes into $16/$17. This is a previous-phase player fragment: its calls into $97xx target bytes replaced by the gameplay disk loader.","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[40428]},{"a":40193,"t":"code","b":[24],"m":"clc"},{"a":40194,"t":"code","b":[101,20],"m":"adc","oa":20,"o":"zpa_14"},{"a":40196,"t":"code","b":[133,20],"m":"sta","oa":20,"o":"zpa_14"},{"a":40198,"t":"code","b":[144,2],"m":"bcc","oa":40202,"o":"b_9D0A"},{"a":40200,"t":"code","b":[230,21],"m":"inc","oa":21,"o":"zpa_15"},{"a":40202,"l":"b_9D0A","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[40198,40412,40452]},{"a":40204,"t":"code","b":[177,20],"m":"lda","oa":20,"o":"(zpa_14),y"},{"a":40206,"t":"code","b":[170],"m":"tax"},{"a":40207,"t":"code","b":[16,30],"m":"bpl","oa":40239,"o":"TITLE_MUSIC_NOTE_COMMAND"},{"a":40209,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":40211,"t":"code","b":[170],"m":"tax"},{"a":40212,"t":"code","b":[134,32],"m":"stx","oa":32,"o":"zpa_20"},{"a":40214,"t":"code","b":[189,49,158],"m":"lda","oa":40497,"o":"TITLE_MUSIC_COMMAND_HANDLERS,x"},{"a":40217,"t":"code","b":[141,45,157],"m":"sta","oa":40237,"o":"TITLE_MUSIC_DISPATCH_OPERAND"},{"a":40220,"t":"code","b":[189,50,158],"m":"lda","oa":40498,"o":"TITLE_MUSIC_HANDLER_HIGH_BASE,x"},{"a":40223,"t":"code","b":[141,46,157],"m":"sta","oa":40238,"o":"a_9D2E"},{"a":40226,"t":"code","b":[200],"m":"iny"},{"a":40227,"t":"code","b":[177,20],"m":"lda","oa":20,"o":"(zpa_14),y"},{"a":40229,"t":"code","b":[133,22],"m":"sta","oa":22,"o":"zpa_16"},{"a":40231,"t":"code","b":[200],"m":"iny"},{"a":40232,"t":"code","b":[177,20],"m":"lda","oa":20,"o":"(zpa_14),y"},{"a":40234,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"zpa_17"},{"a":40236,"t":"code","b":[76,16,158],"m":"jmp","oa":40464,"o":"TITLE_MUSIC_PUSH_STREAM"},{"a":40237,"t":"note","l":"TITLE_MUSIC_DISPATCH_OPERAND","c":"Low/high operand bytes of the self-modified JMP at $9D2C. $9D19/$9D1F replace them from the handler-word table for each bit-7 music command. This alias is inside the JMP instruction, not executable entry code.","note":"inside the item at $9D2C","x":[40217]},{"a":40238,"t":"note","l":"a_9D2E","c":"High operand byte of the patched JMP at $9D2C. $9D1F writes the selected title-music handler high byte from interleaved table base $9E32,X; low operand $9D2D is patched by $9D19. This is an operand alias rather than an execution entry.","note":"inside the item at $9D2C","x":[40223]},{"a":40239,"l":"TITLE_MUSIC_NOTE_COMMAND","c":"Nonnegative music opcode path: $60 skips note setup; $5F bypasses the ADC of transpose byte $9FEE. Otherwise store the resulting note index in $18. Depending on flags $F081/$19, configure SID filter registers $D415-$D418 and voice-3 pulse/control $D410-$D412, load voice frequency from split tables $F08E/$F0EA, and initialize saved pulse/modulation counters. Ends by fetching a duration at $9DB5.","t":"code","b":[201,96],"m":"cmp","o":"#$60","x":[40207]},{"a":40241,"t":"code","b":[240,16],"m":"beq","oa":40259,"o":"b_9D43"},{"a":40243,"t":"code","b":[201,95],"m":"cmp","o":"#$5F"},{"a":40245,"t":"code","b":[240,3],"m":"beq","oa":40250,"o":"b_9D3A"},{"a":40247,"t":"code","b":[109,238,159],"m":"adc","oa":40942,"o":"TITLE_MUSIC_TRANSPOSE"},{"a":40250,"l":"b_9D3A","t":"code","b":[133,24],"m":"sta","oa":24,"o":"zpa_18","x":[40245]},{"a":40252,"t":"code","b":[173,129,240],"m":"lda","oa":61569,"o":"a_F081"},{"a":40255,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":40257,"t":"code","b":[208,9],"m":"bne","oa":40268,"o":"b_9D4C"},{"a":40259,"l":"b_9D43","t":"code","b":[76,181,157],"m":"jmp","oa":40373,"o":"TITLE_MUSIC_LOAD_DURATION","x":[40241,40266]},{"a":40262,"t":"code","b":[165,25],"m":"lda","oa":25,"o":"zpa_19"},{"a":40264,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":40266,"t":"code","b":[240,247],"m":"beq","oa":40259,"o":"b_9D43"},{"a":40268,"l":"b_9D4C","t":"code","b":[160,34],"m":"ldy","o":"#$22","x":[40257]},{"a":40270,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":40272,"l":"b_9D50","t":"code","b":[185,155,159],"m":"lda","oa":40859,"o":"TITLE_MUSIC_PARAMETER_RECORD,y","x":[40289]},{"a":40275,"t":"code","b":[224,3],"m":"cpx","o":"#$03"},{"a":40277,"t":"code","b":[208,5],"m":"bne","oa":40284,"o":"b_9D5C"},{"a":40279,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":40281,"t":"code","b":[13,130,240],"m":"ora","oa":61570,"o":"a_F082"},{"a":40284,"l":"b_9D5C","t":"code","b":[157,21,212],"m":"sta","o":"sid_filter_cutoff_lo,x","x":[40277]},{"a":40287,"t":"code","b":[136],"m":"dey"},{"a":40288,"t":"code","b":[202],"m":"dex"},{"a":40289,"t":"code","b":[16,237],"m":"bpl","oa":40272,"o":"b_9D50"},{"a":40291,"t":"code","b":[160,28],"m":"ldy","o":"#$1C"},{"a":40293,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":40295,"l":"b_9D67","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[40308]},{"a":40297,"t":"code","b":[157,18,212],"m":"sta","o":"sid_v3_control,x"},{"a":40300,"t":"code","b":[185,155,159],"m":"lda","oa":40859,"o":"TITLE_MUSIC_PARAMETER_RECORD,y"},{"a":40303,"t":"code","b":[157,18,212],"m":"sta","o":"sid_v3_control,x"},{"a":40306,"t":"code","b":[136],"m":"dey"},{"a":40307,"t":"code","b":[202],"m":"dex"},{"a":40308,"t":"code","b":[16,241],"m":"bpl","oa":40295,"o":"b_9D67"},{"a":40310,"t":"code","b":[141,114,240],"m":"sta","oa":61554,"o":"a_F072"},{"a":40313,"t":"code","b":[173,178,159],"m":"lda","oa":40882,"o":"TITLE_MUSIC_MODULATION_FLAGS"},{"a":40316,"t":"code","b":[141,109,240],"m":"sta","oa":61549,"o":"a_F06D"},{"a":40319,"t":"code","b":[240,11],"m":"beq","oa":40332,"o":"b_9D8C"},{"a":40321,"t":"code","b":[160,10],"m":"ldy","o":"#$0A"},{"a":40323,"l":"b_9D83","t":"code","b":[185,170,159],"m":"lda","oa":40874,"o":"TITLE_MUSIC_MODULATION_PARAMETERS,y","x":[40330]},{"a":40326,"t":"code","b":[153,101,240],"m":"sta","oa":61541,"o":"f_F065,y"},{"a":40329,"t":"code","b":[136],"m":"dey"},{"a":40330,"t":"code","b":[16,247],"m":"bpl","oa":40323,"o":"b_9D83"},{"a":40332,"l":"b_9D8C","t":"code","b":[166,24],"m":"ldx","oa":24,"o":"zpa_18","x":[40319]},{"a":40334,"t":"code","b":[188,142,240],"m":"ldy","oa":61582,"o":"f_F08E,x"},{"a":40337,"t":"code","b":[189,234,240],"m":"lda","oa":61674,"o":"f_F0EA,x"},{"a":40340,"t":"code","b":[141,14,212],"m":"sta","o":"sid_v3_freq_lo"},{"a":40343,"t":"code","b":[140,15,212],"m":"sty","o":"sid_v3_freq_hi"},{"a":40346,"t":"code","b":[174,179,159],"m":"ldx","oa":40883,"o":"TITLE_MUSIC_PULSE_LOW"},{"a":40349,"t":"code","b":[172,180,159],"m":"ldy","oa":40884,"o":"TITLE_MUSIC_PULSE_HIGH"},{"a":40352,"t":"code","b":[142,16,212],"m":"stx","o":"sid_v3_pulse_lo"},{"a":40355,"t":"code","b":[140,17,212],"m":"sty","o":"sid_v3_pulse_hi"},{"a":40358,"t":"code","b":[32,46,151],"m":"jsr","oa":38702,"o":"PART_LOADER_CLD_BEFORE_CALL"},{"a":40361,"t":"code","b":[174,184,159],"m":"ldx","oa":40888,"o":"TITLE_MUSIC_COUNTER_FIRST"},{"a":40364,"t":"code","b":[172,185,159],"m":"ldy","oa":40889,"o":"TITLE_MUSIC_COUNTER_SECOND"},{"a":40367,"t":"code","b":[142,115,240],"m":"stx","oa":61555,"o":"a_F073"},{"a":40370,"t":"code","b":[140,116,240],"m":"sty","oa":61556,"o":"a_F074"},{"a":40373,"l":"TITLE_MUSIC_LOAD_DURATION","c":"Read stream operand at offset 1; use it as index into duration table $9FBD and store the selected value in $1C. Advance stream pointer $14/$15 by two and jump to $9CFC. This continuation belongs to the retained title music player.","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[40259]},{"a":40375,"t":"code","b":[177,20],"m":"lda","oa":20,"o":"(zpa_14),y"},{"a":40377,"t":"code","b":[170],"m":"tax"},{"a":40378,"t":"code","b":[189,189,159],"m":"lda","oa":40893,"o":"TITLE_MUSIC_DURATION_VALUES,x"},{"a":40381,"t":"code","b":[133,28],"m":"sta","oa":28,"o":"zpa_1C"},{"a":40383,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":40385,"t":"code","b":[24],"m":"clc"},{"a":40386,"t":"code","b":[101,20],"m":"adc","oa":20,"o":"zpa_14"},{"a":40388,"t":"code","b":[133,20],"m":"sta","oa":20,"o":"zpa_14"},{"a":40390,"t":"code","b":[144,2],"m":"bcc","oa":40394,"o":"b_9DCA"},{"a":40392,"t":"code","b":[230,21],"m":"inc","oa":21,"o":"zpa_15"},{"a":40394,"l":"b_9DCA","t":"code","b":[76,252,156],"m":"jmp","oa":40188,"o":"j_9CFC","x":[40390]},{"a":40397,"l":"TITLE_MUSIC_POP_STREAM","c":"Increment stream-stack index $1F, restore its pointer from split low/high arrays $9FCE/$9FDE and continue at the opcode read $9D0A.","t":"code","b":[166,31],"m":"ldx","oa":31,"o":"zpa_1F"},{"a":40399,"t":"code","b":[232],"m":"inx"},{"a":40400,"t":"code","b":[134,31],"m":"stx","oa":31,"o":"zpa_1F"},{"a":40402,"t":"code","b":[189,206,159],"m":"lda","oa":40910,"o":"TITLE_MUSIC_STREAM_STACK_LOW,x"},{"a":40405,"t":"code","b":[133,20],"m":"sta","oa":20,"o":"zpa_14"},{"a":40407,"t":"code","b":[189,222,159],"m":"lda","oa":40926,"o":"TITLE_MUSIC_STREAM_STACK_HIGH,x"},{"a":40410,"t":"code","b":[133,21],"m":"sta","oa":21,"o":"zpa_15"},{"a":40412,"t":"code","b":[76,10,157],"m":"jmp","oa":40202,"o":"b_9D0A"},{"a":40415,"l":"TITLE_MUSIC_COPY_PARAMETERS","c":"Copy 35 bytes from ($16),Y, Y=$22 down to zero, into player parameter storage $9F9B,X. The entry at $9DEF starts with Y=$0F and X=$32, copying 16 bytes to the higher parameter subset through the same loop. Both return to the three-byte command advance $9CFF.","t":"code","b":[160,34],"m":"ldy","o":"#$22"},{"a":40417,"t":"code","b":[162,34],"m":"ldx","o":"#$22"},{"a":40419,"l":"b_9DE3","t":"code","b":[177,22],"m":"lda","oa":22,"o":"(zpa_16),y","x":[40426,40435]},{"a":40421,"t":"code","b":[157,155,159],"m":"sta","oa":40859,"o":"TITLE_MUSIC_PARAMETER_RECORD,x"},{"a":40424,"t":"code","b":[202],"m":"dex"},{"a":40425,"t":"code","b":[136],"m":"dey"},{"a":40426,"t":"code","b":[16,247],"m":"bpl","oa":40419,"o":"b_9DE3"},{"a":40428,"t":"code","b":[76,255,156],"m":"jmp","oa":40191,"o":"TITLE_MUSIC_ADVANCE_COMMAND"},{"a":40431,"t":"code","b":[160,15],"m":"ldy","o":"#$0F"},{"a":40433,"t":"code","b":[162,50],"m":"ldx","o":"#$32"},{"a":40435,"t":"code","b":[208,238],"m":"bne","oa":40419,"o":"b_9DE3"},{"a":40437,"l":"TITLE_MUSIC_SET_TRANSPOSE_AND_JUMP","c":"Read offset 3 of current stream into transpose byte $9FEE, then replace stream pointer $14/$15 with operand pointer $16/$17 and resume opcode decoding at $9D0A.","t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":40439,"t":"code","b":[177,20],"m":"lda","oa":20,"o":"(zpa_14),y"},{"a":40441,"t":"code","b":[141,238,159],"m":"sta","oa":40942,"o":"TITLE_MUSIC_TRANSPOSE"},{"a":40444,"l":"j_9DFC","t":"code","b":[166,22],"m":"ldx","oa":22,"o":"zpa_16","x":[40483]},{"a":40446,"t":"code","b":[134,20],"m":"stx","oa":20,"o":"zpa_14"},{"a":40448,"t":"code","b":[166,23],"m":"ldx","oa":23,"o":"zpa_17"},{"a":40450,"t":"code","b":[134,21],"m":"stx","oa":21,"o":"zpa_15"},{"a":40452,"t":"code","b":[76,10,157],"m":"jmp","oa":40202,"o":"b_9D0A"},{"a":40455,"l":"TITLE_MUSIC_CALL_INDIRECT","c":"Push $9CFE as a return address and JMP ($0016). The called code returns to $9CFF via RTS; the two stack bytes are a return-address-minus-one pair, not another stream pointer.","t":"code","b":[169,156],"m":"lda","o":"#$9C"},{"a":40457,"t":"code","b":[72],"m":"pha"},{"a":40458,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":40460,"t":"code","b":[72],"m":"pha"},{"a":40461,"t":"code","b":[108,22,0],"m":"jmp","oa":22,"o":"(zpa_16)"},{"a":40464,"l":"TITLE_MUSIC_PUSH_STREAM","c":"Save current pointer+3 into split arrays $9FCE/$9FDE at stack index $1F, decrement the index, and switch to operand pointer $16/$17 through $9DFC. The entry at $9E26 sets transpose from stream offset 3 and saves pointer+4 through the same addition/storage path.","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[40236]},{"a":40466,"l":"b_9E12","t":"code","b":[166,31],"m":"ldx","oa":31,"o":"zpa_1F","x":[40495]},{"a":40468,"t":"code","b":[24],"m":"clc"},{"a":40469,"t":"code","b":[101,20],"m":"adc","oa":20,"o":"zpa_14"},{"a":40471,"t":"code","b":[157,206,159],"m":"sta","oa":40910,"o":"TITLE_MUSIC_STREAM_STACK_LOW,x"},{"a":40474,"t":"code","b":[165,21],"m":"lda","oa":21,"o":"zpa_15"},{"a":40476,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":40478,"t":"code","b":[157,222,159],"m":"sta","oa":40926,"o":"TITLE_MUSIC_STREAM_STACK_HIGH,x"},{"a":40481,"t":"code","b":[198,31],"m":"dec","oa":31,"o":"zpa_1F"},{"a":40483,"t":"code","b":[76,252,157],"m":"jmp","oa":40444,"o":"j_9DFC"},{"a":40486,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":40488,"t":"code","b":[177,20],"m":"lda","oa":20,"o":"(zpa_14),y"},{"a":40490,"t":"code","b":[141,238,159],"m":"sta","oa":40942,"o":"TITLE_MUSIC_TRANSPOSE"},{"a":40493,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":40495,"t":"code","b":[208,225],"m":"bne","oa":40466,"o":"b_9E12"},{"a":40497,"l":"TITLE_MUSIC_COMMAND_HANDLERS","c":"Fourteen interleaved little-endian handler words used by the retained title-player opcode dispatch at $9D16/$9D1C. The dispatcher masks bit 7 but does not double X, so valid command bytes select even offsets. Stored targets: $9DCD, $96A1, $96A1, $9DDF, $96A1, $96A1, $9DEF, $9DFC, $9E10, $96A1, $96A1, $9E26, $96A1, $9DF5.","t":"word","b":[205,157,161,150,161,150,223,157],"d":[40397,38561,38561,40415],"x":[40214]},{"a":40498,"t":"note","l":"TITLE_MUSIC_HANDLER_HIGH_BASE","c":"Indexed high-byte base for the 14 interleaved handler words at $9E31-$9E4C. $9D1C reads this base with the same even X used by the low-byte read, then patches JMP high operand $9D2E.","note":"inside the item at $9E31","x":[40220]},{"a":40505,"t":"word","b":[161,150,161,150,239,157,252,157],"d":[38561,38561,40431,40444]},{"a":40513,"t":"word","b":[16,158,161,150,161,150,38,158],"d":[40464,38561,38561,40486]},{"a":40521,"t":"word","b":[161,150,245,157],"d":[38561,40437]},{"a":40525,"l":"TITLE_MUSIC_UPDATE_PULSE","c":"Retained voice-3 pulse/modulation tick. If $F073 is zero, return. Start from saved pulse $F077/$F078; flags and counters $F06D/$F06B/$F080 select delayed additions of 16-bit deltas $F065/$F066 or $F067/$F068. Store updated pulse to saved state and SID $D410/$D411. Counters $F073/$F074 eventually clear the voice-3 registers or remove its gate bit. Calls into $9728/$9734 belong to the previous title occupant, replaced by the gameplay loader.","t":"code","b":[174,115,240],"m":"ldx","oa":61555,"o":"a_F073"},{"a":40528,"t":"code","b":[208,3],"m":"bne","oa":40533,"o":"b_9E55"},{"a":40530,"t":"code","b":[76,242,158],"m":"jmp","oa":40690,"o":"r_9EF2"},{"a":40533,"l":"b_9E55","t":"code","b":[216],"m":"cld","x":[40528]},{"a":40534,"t":"code","b":[24],"m":"clc"},{"a":40535,"t":"code","b":[174,119,240],"m":"ldx","oa":61559,"o":"a_F077"},{"a":40538,"t":"code","b":[172,120,240],"m":"ldy","oa":61560,"o":"a_F078"},{"a":40541,"t":"code","b":[173,109,240],"m":"lda","oa":61549,"o":"a_F06D"},{"a":40544,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":40546,"t":"code","b":[240,92],"m":"beq","oa":40640,"o":"b_9EC0"},{"a":40548,"t":"code","b":[173,107,240],"m":"lda","oa":61547,"o":"a_F06B"},{"a":40551,"t":"code","b":[240,6],"m":"beq","oa":40559,"o":"b_9E6F"},{"a":40553,"t":"code","b":[206,107,240],"m":"dec","oa":61547,"o":"a_F06B"},{"a":40556,"t":"code","b":[76,192,158],"m":"jmp","oa":40640,"o":"b_9EC0"},{"a":40559,"l":"b_9E6F","t":"code","b":[173,128,240],"m":"lda","oa":61568,"o":"a_F080","x":[40551]},{"a":40562,"t":"code","b":[240,6],"m":"beq","oa":40570,"o":"b_9E7A"},{"a":40564,"t":"code","b":[206,128,240],"m":"dec","oa":61568,"o":"a_F080"},{"a":40567,"t":"code","b":[76,192,158],"m":"jmp","oa":40640,"o":"b_9EC0"},{"a":40570,"l":"b_9E7A","t":"code","b":[173,108,240],"m":"lda","oa":61548,"o":"a_F06C","x":[40562]},{"a":40573,"t":"code","b":[141,128,240],"m":"sta","oa":61568,"o":"a_F080"},{"a":40576,"t":"code","b":[24],"m":"clc"},{"a":40577,"l":"j_9E81","t":"code","b":[173,126,240],"m":"lda","oa":61566,"o":"a_F07E","x":[40631,40637]},{"a":40580,"t":"code","b":[240,16],"m":"beq","oa":40598,"o":"b_9E96"},{"a":40582,"t":"code","b":[138],"m":"txa"},{"a":40583,"t":"code","b":[109,101,240],"m":"adc","oa":61541,"o":"f_F065"},{"a":40586,"t":"code","b":[170],"m":"tax"},{"a":40587,"t":"code","b":[152],"m":"tya"},{"a":40588,"t":"code","b":[109,102,240],"m":"adc","oa":61542,"o":"a_F066"},{"a":40591,"t":"code","b":[168],"m":"tay"},{"a":40592,"t":"code","b":[206,126,240],"m":"dec","oa":61566,"o":"a_F07E"},{"a":40595,"t":"code","b":[76,192,158],"m":"jmp","oa":40640,"o":"b_9EC0"},{"a":40598,"l":"b_9E96","t":"code","b":[173,127,240],"m":"lda","oa":61567,"o":"a_F07F","x":[40580]},{"a":40601,"t":"code","b":[240,16],"m":"beq","oa":40619,"o":"b_9EAB"},{"a":40603,"t":"code","b":[138],"m":"txa"},{"a":40604,"t":"code","b":[109,103,240],"m":"adc","oa":61543,"o":"a_F067"},{"a":40607,"t":"code","b":[170],"m":"tax"},{"a":40608,"t":"code","b":[152],"m":"tya"},{"a":40609,"t":"code","b":[109,104,240],"m":"adc","oa":61544,"o":"a_F068"},{"a":40612,"t":"code","b":[168],"m":"tay"},{"a":40613,"t":"code","b":[206,127,240],"m":"dec","oa":61567,"o":"a_F07F"},{"a":40616,"t":"code","b":[76,192,158],"m":"jmp","oa":40640,"o":"b_9EC0"},{"a":40619,"l":"b_9EAB","t":"code","b":[173,109,240],"m":"lda","oa":61549,"o":"a_F06D","x":[40601]},{"a":40622,"t":"code","b":[41,129],"m":"and","o":"#$81"},{"a":40624,"t":"code","b":[240,14],"m":"beq","oa":40640,"o":"b_9EC0"},{"a":40626,"t":"code","b":[16,6],"m":"bpl","oa":40634,"o":"b_9EBA"},{"a":40628,"t":"code","b":[32,40,151],"m":"jsr","oa":38696,"o":"PART_FILENAME_POINTER_LOW_OPERAND"},{"a":40631,"t":"code","b":[76,129,158],"m":"jmp","oa":40577,"o":"j_9E81"},{"a":40634,"l":"b_9EBA","t":"code","b":[32,52,151],"m":"jsr","oa":38708,"o":"PART_LOADER_RESUME_JUMP_HIGH_OPERAND","x":[40626]},{"a":40637,"t":"code","b":[76,129,158],"m":"jmp","oa":40577,"o":"j_9E81"},{"a":40640,"l":"b_9EC0","t":"code","b":[142,119,240],"m":"stx","oa":61559,"o":"a_F077","x":[40546,40556,40567,40595,40616,40624]},{"a":40643,"t":"code","b":[140,120,240],"m":"sty","oa":61560,"o":"a_F078"},{"a":40646,"t":"code","b":[142,16,212],"m":"stx","o":"sid_v3_pulse_lo"},{"a":40649,"t":"code","b":[140,17,212],"m":"sty","o":"sid_v3_pulse_hi"},{"a":40652,"t":"code","b":[173,116,240],"m":"lda","oa":61556,"o":"a_F074"},{"a":40655,"t":"code","b":[208,20],"m":"bne","oa":40677,"o":"b_9EE5"},{"a":40657,"t":"code","b":[206,115,240],"m":"dec","oa":61555,"o":"a_F073"},{"a":40660,"t":"code","b":[208,28],"m":"bne","oa":40690,"o":"r_9EF2"},{"a":40662,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":40664,"l":"b_9ED8","t":"code","b":[157,14,212],"m":"sta","o":"sid_v3_freq_lo,x","x":[40668]},{"a":40667,"t":"code","b":[202],"m":"dex"},{"a":40668,"t":"code","b":[16,250],"m":"bpl","oa":40664,"o":"b_9ED8"},{"a":40670,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":40672,"t":"code","b":[5,25],"m":"ora","oa":25,"o":"zpa_19"},{"a":40674,"t":"code","b":[133,25],"m":"sta","oa":25,"o":"zpa_19"},{"a":40676,"t":"code","b":[96],"m":"rts"},{"a":40677,"l":"b_9EE5","t":"code","b":[206,116,240],"m":"dec","oa":61556,"o":"a_F074","x":[40655]},{"a":40680,"t":"code","b":[208,8],"m":"bne","oa":40690,"o":"r_9EF2"},{"a":40682,"t":"code","b":[173,114,240],"m":"lda","oa":61554,"o":"a_F072"},{"a":40685,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":40687,"t":"code","b":[141,18,212],"m":"sta","o":"sid_v3_control"},{"a":40690,"l":"r_9EF2","t":"code","b":[96],"m":"rts","x":[40530,40660,40680]},{"a":40691,"t":"gap","n":168},{"a":40859,"l":"TITLE_MUSIC_PARAMETER_RECORD","c":"Retained mutable title-player parameter record. The command at $9DDF copies 35 bytes from its operand pointer to $9F9B-$9FBD; the $9DEF entry copies a further 16-byte subset into offsets $23-$32. Consumers $9D50/$9D6C select filter and voice-3 pulse/control bytes; fields from $9FAA onward are described separately.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[40272,40300,40421]},{"a":40867,"t":"byte","b":[0,0,0,0,0,0,0]},{"a":40874,"l":"TITLE_MUSIC_MODULATION_PARAMETERS","c":"Eleven retained modulation-parameter bytes copied by $9D81-$9D8A from $9FAA-$9FB4 to $F065-$F06F. These supply two 16-bit pulse deltas and state/flags used by the title tick. The following aliases identify individual fields of this same record.","t":"byte","b":[70,0,0,0,30,0,0,0],"x":[40323]},{"a":40882,"l":"TITLE_MUSIC_MODULATION_FLAGS","c":"Flags byte read at $9D79 into $F06D. It is also byte 8 of the eleven-byte modulation copy, reaching the same destination. The tick tests bits $04 and $81 to select delayed pulse updates and reload paths.","t":"byte","b":[5],"x":[40313]},{"a":40883,"l":"TITLE_MUSIC_PULSE_LOW","c":"Initial voice-3 pulse low byte, loaded by $9D9A and written to SID $D410 at $9DA0.","t":"byte","b":[0],"x":[40346]},{"a":40884,"l":"TITLE_MUSIC_PULSE_HIGH","c":"Initial voice-3 pulse high byte, loaded by $9D9D and written to SID $D411 at $9DA3. Bytes through $9FB7 continue the retained parameter record; no separate consumer for those remaining bytes is established here.","t":"byte","b":[5,65,51,138],"x":[40349]},{"a":40888,"l":"TITLE_MUSIC_COUNTER_FIRST","c":"Initial title-player counter copied to $F073 by $9DA9/$9DAF. The pulse tick returns while zero and decrements it after the second counter has reached zero; expiry silences voice 3.","t":"byte","b":[60],"x":[40361]},{"a":40889,"l":"TITLE_MUSIC_COUNTER_SECOND","c":"Initial second title-player counter copied to $F074 by $9DAC/$9DB2. It is decremented in the pulse tick and its expiry clears the voice-3 gate through $F072 & $FE. Bytes through $9FBC are retained record tail.","t":"byte","b":[30,0,0,0],"x":[40364]},{"a":40893,"l":"TITLE_MUSIC_DURATION_VALUES","c":"Seventeen stored duration values at $9FBD-$9FCD: 15,6,12,18,24,30,36,42,48,54,60,108,72,1,84,3,96. $9DBA indexes this base with the stream duration operand and writes the result to $1C; that instruction performs no bounds check.","t":"byte","b":[15,6,12,18,24,30,36,42],"x":[40378]},{"a":40901,"t":"byte","b":[48,54,60,108,72,1,84,3]},{"a":40909,"t":"byte","b":[96]},{"a":40910,"l":"TITLE_MUSIC_STREAM_STACK_LOW","c":"Sixteen low bytes of retained title-player stream return pointers. $9E17 saves pointer low at index $1F; $9DD2 restores it after incrementing that index. Matching high bytes begin at $9FDE.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[40402,40471]},{"a":40918,"t":"byte","b":[0,0,0,0,0,25,41,199]},{"a":40926,"l":"TITLE_MUSIC_STREAM_STACK_HIGH","c":"Sixteen high bytes paired by index with $9FCE-$9FDD. $9E1E stores the carry-adjusted pointer high byte and $9DD7 restores it; the next byte $9FEE is the transpose field.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[40407,40478]},{"a":40934,"t":"byte","b":[0,0,0,0,0,247,247,246]},{"a":40942,"l":"TITLE_MUSIC_TRANSPOSE","c":"Retained title-player note transpose, captured $24. $9D37 adds it to a note index; command entries $9DF5/$9E26 replace it from stream offset 3. This is the last byte of the original parameter/player-data span.","t":"byte","b":[36],"x":[40247,40441,40490]},{"a":40943,"l":"BOOT_UNPACKED_IMAGE_TRAILER","c":"Seventeen-byte tail of the boot-decompressed image. A live store watch stopped at relocated boot PC $0184 immediately after STA ($39),Y at $0182; destination pointer $39/$3A was $9FEF and Y=0. The trailer is $0A, six zero bytes, $44,$0D, followed by ASCII /MONITOR. This establishes its producer; its meaning or a later consumer has not been established.","t":"byte","b":[10,0,0,0,0,0,0,68]},{"a":40951,"t":"byte","b":[13,47,77,79,78,73,84,79]},{"a":40959,"t":"byte","b":[82]},{"a":40960,"l":"ZERO_PAGE_BACKUP","c":"ZERO_PAGE_BACKUP ($A000-$A0FF) - the game's shadow copy of zero page, swapped in and out\naround KERNAL calls by SWAP_ZERO_PAGE_AND_BACKUP ($053C).\nThe game keeps its own working variables in zero page, which the KERNAL also uses. Rather\nthan saving individual locations, $053C exchanges the two 256-byte images wholesale: for each\nindex it loads the live byte, loads the backup byte, writes the backup value live, and writes\nthe live value into the backup. One routine therefore serves both directions - calling it\ntwice restores the original state - and there is no separate \"restore\" entry point.\n053C  LDY #$FF\n053E  LDA $0000,Y     ; live zero-page byte\n0541  TAX\n0542  LDA $A000,Y     ; corresponding backup byte\n0545  STA $0000,Y     ; backup -> live\n0548  TXA\n0549  STA $A000,Y     ; live -> backup\n054C  DEY\n054D  CPY #$01        ; stop before index $01\n054F  BNE $053E\nC64 SPECIFIC, AND THE REASON FOR THE ODD LOOP BOUND: the loop runs Y = $FF down to $02 and\ndeliberately never touches $0000 and $0001. On a 6510 those two addresses are not RAM but the\nCPU's on-chip I/O port - $0001 is the bank-select register that decides whether BASIC, KERNAL,\nI/O or RAM is visible at $A000-$BFFF and $D000-$FFFF, and $0000 is its data-direction\nregister. Swapping a stale value into $0001 would change the memory map underneath the\nrunning code, most likely unmapping the very routine performing the swap. Banking is managed\nseparately, by explicit stores to $01 (see $975D, which restores the game's standard $36 map\nafter a disk load).\nNote the backup lives at $A000-$BFFF RAM, i.e. underneath the BASIC ROM image, which is\nexactly the region the $01 value chosen by this game leaves as RAM.\nThe instruction operands establish the $A000 base. Ghidra records an `abs,Y` reference one byte above the base, so operand inspection is required. Byte evidence agrees: aligning $A000 with $0000 matches 198 of 256 captured bytes, against 80 when aligned at $A001. The 58 differences are expected because the backup is a prior zero-page snapshot, not a live mirror.","t":"byte","b":[255,255,0,170,177,145,179,34],"x":[1346,1353,1717]},{"a":40968,"t":"byte","b":[0,0,0,76,0,0,0,4]},{"a":40976,"t":"byte","b":[0,0,0,0,6,119,25,22]},{"a":40984,"t":"byte","b":[0,10,118,163,0,0,0,0]},{"a":40992,"t":"byte","b":[0,0,64,163,179,189,0,0]},{"a":41000,"t":"byte","b":[0,0,0,1,8,24,8,24]},{"a":41008,"t":"byte","b":[8,24,8,0,128,0,0,0]},{"a":41016,"t":"byte","b":[128,10,255,10,0,17,8,0]},{"a":41024,"t":"byte","b":[0,0,8,0,0,0,0,36]},{"a":41032,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41040,"t":"byte","b":[0,0,0,3,76,0,0,0]},{"a":41048,"t":"byte","b":[22,7,1,7,0,0,0,0]},{"a":41056,"t":"byte","b":[0,143,0,0,119,6,0,0]},{"a":41064,"t":"byte","b":[0,143,238,12,0,0,0,0]},{"a":41072,"t":"byte","b":[0,10,163,230,122,208,2,230]},{"a":41080,"t":"byte","b":[123,173,6,2,201,58,176,10]},{"a":41088,"t":"byte","b":[201,32,240,239,56,233,48,56]},{"a":41096,"t":"byte","b":[233,208,96,128,79,199,82,88]},{"a":41104,"t":"byte","b":[64,255,0,0,80,255,0,0]},{"a":41112,"t":"byte","b":[0,0,3,0,0,0,0,0]},{"a":41120,"t":"byte","b":[0,21,175,80,255,0,0,0]},{"a":41128,"t":"byte","b":[0,0,0,0,240,4,0,151]},{"a":41136,"t":"byte","b":[200,216,3,2,0,0,0,5]},{"a":41144,"t":"byte","b":[0,96,8,53,151,0,0,0]},{"a":41152,"t":"byte","b":[7,41,136,0,47,1,0,0]},{"a":41160,"t":"byte","b":[8,5,8,1,1,15,32,0]},{"a":41168,"t":"byte","b":[0,0,4,0,0,39,0,147]},{"a":41176,"t":"byte","b":[0,132,132,132,132,132,132,132]},{"a":41184,"t":"byte","b":[133,133,133,133,133,133,134,134]},{"a":41192,"t":"byte","b":[134,134,134,134,134,135,135,135]},{"a":41200,"t":"byte","b":[135,135,135,0,216,129,235,0]},{"a":41208,"t":"byte","b":[0,0,0,0,0,0,255,32]},{"a":41216,"l":"ROOM_GFX_00","c":"ROOM_GFX_00 - ROOM_GRAPHIC_TABLE[0] source data, part 1. 8 rows x 14 columns blitted at\ncharacter row 1, column 3; 1120 bytes = 8 * 14 * 10 (8 bitmap + 1 screen-code + 1 colour byte\nper character cell, interleaved one character row at a time).\nThis is the only record whose data does NOT live in the $4300 picture buffer, so unlike records\n1-20 it is not overwritten when a new part loads. See the plate at ROOM_GRAPHIC_TABLE ($0BF9)\nfor the record layout and at ROOM_PICTURE_BUFFER ($4300) for the multicolor bitmap format.","t":"byte","b":[0,51,63,63,63,60,63,63]},{"a":41224,"t":"byte","b":[0,255,207,255,255,255,255,240]},{"a":41232,"t":"byte","b":[0,255,252,255,255,255,0,170]},{"a":41240,"t":"byte","b":[0,252,255,255,255,255,3,168]},{"a":41248,"t":"byte","b":[0,255,255,255,207,60,252,60]},{"a":41256,"t":"byte","b":[0,252,195,15,48,0,0,0]},{"a":41264,"t":"byte","b":[0,0,255,15,0,48,204,207]},{"a":41272,"t":"byte","b":[0,63,207,243,252,188,42,201]},{"a":41280,"t":"byte","b":[0,255,204,255,255,252,63,143]},{"a":41288,"t":"byte","b":[0,255,243,255,255,252,255,255]},{"a":41296,"t":"byte","b":[0,255,255,255,207,255,255,255]},{"a":41304,"t":"byte","b":[0,255,63,255,255,252,255,255]},{"a":41312,"t":"byte","b":[0,255,255,255,63,63,255,255]},{"a":41320,"t":"byte","b":[0,252,252,60,252,252,252,252]},{"a":41328,"t":"byte","b":[116,141,123,139,100,141,116,120]},{"a":41336,"t":"byte","b":[120,141,100,173,116,141,105,249]},{"a":41344,"t":"byte","b":[9,57,249,249,121,105,249,249]},{"a":41352,"t":"byte","b":[57,249,249,121,63,63,60,50]},{"a":41360,"t":"byte","b":[50,8,8,8,202,40,128,0]},{"a":41368,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41376,"t":"byte","b":[0,0,0,0,3,0,0,0]},{"a":41384,"t":"byte","b":[0,0,0,0,194,60,3,3]},{"a":41392,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41400,"t":"byte","b":[0,0,0,0,207,3,3,0]},{"a":41408,"t":"byte","b":[0,0,0,0,242,242,190,174]},{"a":41416,"t":"byte","b":[174,234,234,249,202,202,202,202]},{"a":41424,"t":"byte","b":[114,114,114,114,63,243,252,255]},{"a":41432,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":41440,"t":"byte","b":[252,252,252,240,255,255,63,207]},{"a":41448,"t":"byte","b":[254,62,62,207,255,255,254,165]},{"a":41456,"t":"byte","b":[149,149,149,154,252,252,188,188]},{"a":41464,"t":"byte","b":[188,252,252,252,43,235,36,237]},{"a":41472,"t":"byte","b":[41,237,36,120,137,237,36,231]},{"a":41480,"t":"byte","b":[24,225,57,57,244,107,59,61]},{"a":41488,"t":"byte","b":[57,57,55,249,105,57,57,57]},{"a":41496,"t":"byte","b":[48,48,48,0,0,0,0,0]},{"a":41504,"t":"byte","b":[0,0,0,0,3,12,48,48]},{"a":41512,"t":"byte","b":[0,0,192,192,0,0,0,0]},{"a":41520,"t":"byte","b":[0,0,0,0,0,3,0,0]},{"a":41528,"t":"byte","b":[0,0,0,0,0,192,63,252]},{"a":41536,"t":"byte","b":[0,0,0,0,0,3,3,3]},{"a":41544,"t":"byte","b":[0,0,0,0,60,255,251,235]},{"a":41552,"t":"byte","b":[250,62,63,15,0,0,207,143]},{"a":41560,"t":"byte","b":[225,133,69,5,21,85,85,81]},{"a":41568,"t":"byte","b":[255,63,255,255,255,255,255,255]},{"a":41576,"t":"byte","b":[252,252,252,204,252,252,252,252]},{"a":41584,"t":"byte","b":[207,227,163,160,160,162,162,162]},{"a":41592,"t":"byte","b":[235,251,254,250,254,63,63,143]},{"a":41600,"t":"byte","b":[232,104,168,108,92,220,252,216]},{"a":41608,"t":"byte","b":[4,239,36,237,36,239,40,232]},{"a":41616,"t":"byte","b":[152,237,36,232,39,129,59,59]},{"a":41624,"t":"byte","b":[59,59,43,105,57,57,55,57]},{"a":41632,"t":"byte","b":[57,121,105,57,0,0,0,0]},{"a":41640,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41648,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41656,"t":"byte","b":[0,15,0,0,63,255,255,255]},{"a":41664,"t":"byte","b":[60,192,42,26,240,202,202,42]},{"a":41672,"t":"byte","b":[170,10,64,96,19,84,92,240]},{"a":41680,"t":"byte","b":[192,0,0,0,254,251,0,0]},{"a":41688,"t":"byte","b":[0,0,0,2,194,0,0,0]},{"a":41696,"t":"byte","b":[2,9,85,85,200,42,41,165]},{"a":41704,"t":"byte","b":[149,85,85,85,255,63,131,104]},{"a":41712,"t":"byte","b":[86,85,85,85,252,252,252,60]},{"a":41720,"t":"byte","b":[128,104,86,85,243,243,34,40]},{"a":41728,"t":"byte","b":[138,10,66,84,202,194,194,200]},{"a":41736,"t":"byte","b":[136,137,134,162,92,156,148,164]},{"a":41744,"t":"byte","b":[168,40,40,8,116,141,116,156]},{"a":41752,"t":"byte","b":[201,141,121,137,143,143,143,249]},{"a":41760,"t":"byte","b":[201,121,100,61,59,59,59,57]},{"a":41768,"t":"byte","b":[136,103,57,57,57,56,63,129]},{"a":41776,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41784,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41792,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41800,"t":"byte","b":[250,250,250,234,250,62,14,0]},{"a":41808,"t":"byte","b":[248,250,250,234,232,224,0,0]},{"a":41816,"t":"byte","b":[0,0,192,0,3,15,63,255]},{"a":41824,"t":"byte","b":[15,23,85,85,149,169,170,170]},{"a":41832,"t":"byte","b":[234,126,151,169,170,170,170,170]},{"a":41840,"t":"byte","b":[85,85,213,189,107,86,85,85]},{"a":41848,"t":"byte","b":[234,190,175,191,107,214,189,175]},{"a":41856,"t":"byte","b":[85,127,255,255,246,88,160,130]},{"a":41864,"t":"byte","b":[252,248,224,130,8,40,168,160]},{"a":41872,"t":"byte","b":[255,255,63,63,207,207,51,51]},{"a":41880,"t":"byte","b":[12,48,48,56,56,204,252,252]},{"a":41888,"t":"byte","b":[129,118,129,124,139,118,139,248]},{"a":41896,"t":"byte","b":[143,152,137,121,129,108,49,134]},{"a":41904,"t":"byte","b":[97,57,60,59,57,57,137,111]},{"a":41912,"t":"byte","b":[63,63,57,57,0,0,0,0]},{"a":41920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41936,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":41944,"t":"byte","b":[0,0,0,0,3,3,3,0]},{"a":41952,"t":"byte","b":[0,0,0,0,255,255,255,255]},{"a":41960,"t":"byte","b":[15,0,0,0,255,255,253,213]},{"a":41968,"t":"byte","b":[245,255,15,0,255,255,255,255]},{"a":41976,"t":"byte","b":[255,255,175,169,85,87,87,94]},{"a":41984,"t":"byte","b":[122,232,160,128,250,232,160,129]},{"a":41992,"t":"byte","b":[5,21,5,4,15,63,255,252]},{"a":42000,"t":"byte","b":[240,192,0,0,240,195,0,15]},{"a":42008,"t":"byte","b":[15,63,255,255,12,12,0,3]},{"a":42016,"t":"byte","b":[192,192,240,192,252,252,60,60]},{"a":42024,"t":"byte","b":[204,204,48,48,129,48,129,32]},{"a":42032,"t":"byte","b":[129,114,131,155,130,146,129,114]},{"a":42040,"t":"byte","b":[129,32,49,52,49,128,107,59]},{"a":42048,"t":"byte","b":[59,56,63,63,137,105,57,57]},{"a":42056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42064,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42072,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42080,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42088,"t":"byte","b":[0,12,15,3,0,0,0,0]},{"a":42096,"t":"byte","b":[0,14,62,254,254,60,60,49]},{"a":42104,"t":"byte","b":[0,0,64,67,79,79,63,252]},{"a":42112,"t":"byte","b":[15,0,8,160,130,8,8,32]},{"a":42120,"t":"byte","b":[0,0,15,48,192,15,15,255]},{"a":42128,"t":"byte","b":[48,192,3,255,63,255,255,255]},{"a":42136,"t":"byte","b":[48,3,255,255,255,255,255,243]},{"a":42144,"t":"byte","b":[15,240,255,255,255,255,255,255]},{"a":42152,"t":"byte","b":[252,255,15,240,255,255,255,255]},{"a":42160,"t":"byte","b":[12,12,192,192,12,240,252,252]},{"a":42168,"t":"byte","b":[129,116,129,118,129,152,129,121]},{"a":42176,"t":"byte","b":[129,118,129,116,129,118,49,52]},{"a":42184,"t":"byte","b":[49,54,59,251,105,59,57,57]},{"a":42192,"t":"byte","b":[57,249,249,105,0,0,0,0]},{"a":42200,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42224,"t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":42232,"t":"byte","b":[15,0,0,0,15,255,240,192]},{"a":42240,"l":"ROOM_GFX_00_CONT_A500","c":"Room illustration 0 continuation at source offset $0400: row 7, byte 44 of its 140-byte interleaved row. Descriptor $0BF9 gives 8 rows by 14 cells; this source ends at $A55F. Native $05BF output was checked against all bitmap, screen and colour bytes for this record.","t":"byte","b":[3,12,0,0,192,3,12,48]},{"a":42248,"t":"byte","b":[195,15,63,0,192,15,63,255]},{"a":42256,"t":"byte","b":[255,255,255,0,63,3,252,255]},{"a":42264,"t":"byte","b":[255,255,255,0,255,255,63,195]},{"a":42272,"t":"byte","b":[252,255,255,0,252,255,255,255]},{"a":42280,"t":"byte","b":[63,195,252,0,255,255,255,255]},{"a":42288,"t":"byte","b":[255,255,63,0,255,255,255,255]},{"a":42296,"t":"byte","b":[255,255,255,0,252,252,252,252]},{"a":42304,"t":"byte","b":[252,252,252,0,116,141,116,141]},{"a":42312,"t":"byte","b":[116,141,116,141,116,141,116,141]},{"a":42320,"t":"byte","b":[116,141,244,61,244,253,57,249]},{"a":42328,"t":"byte","b":[249,249,105,249,249,105,249,249]},{"a":42336,"l":"ICON_00","c":"OBJECT_ICON_TABLE ($A560-$BBDF, 5760 bytes) - 36 fixed 160-byte slots originally allocated\nto inventory and scripted-scene icons, laid out back to back with no header.\nADDRESSING\nCALC_OBJECT_GRAPHIC_PTR ($0F70) computes the slot address as $A560 + $A0 * CURRENT_OBJECT_INDEX\nby repeated addition, leaving it in GRAPHIC_RECORD_PTR ($5A/$5B). For normal inventory icons the index is the position at which the resolver at $15E3 found the\nparsed noun key inside NOUN_TO_OBJECT_INDEX ($22A4). SCRIPT_SET_OBJECT_GRAPHIC ($113D) instead\nreads an icon index directly from action bytecode, so a scripted scene can select a slot that no\nparsed noun can reach. NOUN_TO_OBJECT_INDEX holds 36 entries before its $FF terminator at $22C8,\nand 36 * 160 = 5760 lands the last byte on $BBDF, immediately below SAVED_BITMAP ($BC00). Table\nextent and slot stride therefore corroborate each other.\nPAYLOAD FORMAT - identical to a RoomGraphicRecord payload with width = 4 cells and\nheight = 4 character rows. The source stream is interleaved per character row:\n32 bytes  bitmap      (4 cells x 8 scanlines)\n4 bytes  screen matrix\n4 bytes  colour RAM\n------------------------------------------------\n40 bytes per character row, 4 rows = 160 bytes per icon\nBLIT_ROOM_GRAPHIC ($05BF) / COPY_BLIT_ROW ($0676) scatter those three spans to three different\ndestinations, which is why they are interleaved rather than stored as three flat planes.\nC64 DISPLAY SEMANTICS (for a reader fluent in 6510 but not in VIC-II)\nThe picture band runs in multicolor bitmap mode: RASTER_SPLIT_PICTURE ($A7E3) sets $D011=$3B\n(BMM=1, bitmap mode), $D016=$D8 (MCM=1, multicolor), $D018=$38 (video matrix $CC00, bitmap\n$E000, both inside VIC bank 3) and $D021=$00. In that mode the VIC consumes TWO bitmap bits per\npixel, so horizontal resolution halves - each 8x8 cell is 4 double-wide pixels across - and the\ncolour of a pixel is selected by the bit pair:\n00 -> background register $D021\n01 -> high nybble of that cell's screen-matrix byte\n10 -> low  nybble of that cell's screen-matrix byte\n11 -> low  nybble of that cell's colour-RAM byte\nHence the 4 screen bytes and 4 colour bytes per row: they carry three of the four palette\nentries for the four cells in that row. An icon is 32 x 32 screen pixels (16 double-wide\nmulticolor pixels wide).\nWHERE THEY ARE DRAWN\nVISIBLE_OBJECT_RECORDS ($2943) is six 6-byte RoomGraphicRecords, all with height=4 width=4, at\n(row 0, col 21), (0,28), (0,35), (5,21), (5,28), (5,35) - a 3x2 inventory grid to the right of\nthe room illustration, which occupies columns 3-16. SHOW_OBJECT_ICON ($0F3A) scans those six\nrecords for one whose source_ptr high byte is zero, writes the computed icon address into it,\nand calls RENDER_ROOM_GRAPHICS ($0570) to repaint the band.\nSCRIPTED, UNUSED, AND OVERWRITTEN SLOTS\nPart 1's NOUN_TO_OBJECT_INDEX holds 0 at positions 4, 5, 23, 24, 27, 29, 30 and 31. Because\nthe normal noun resolver searches linearly and position 0 legitimately holds key 0 (noun \"aur\"\nnot make every such graphics slot dead: action opcode $17 reads the following byte as a slot\nindex directly.\nSlot 23 is Falkor. Dynamic execution of \"get falkor\" in part 1 at room $21 selected verb-rule\npair 14 and ACTION_SCRIPT_GET_FALKOR; bytes $17,$17 at $2B8F-$2B90 made\nSCRIPT_SET_OBJECT_GRAPHIC cache index $17 and COPY_BLIT_ROW read from $B3C0.\nSlot 24 is Artax. Vocabulary entry \"art\" has noun id $57, VERB_RULE_GET_ARTAX is pair 13\n($15,$57), its pointer selects ACTION_SCRIPT_GET_ARTAX at $2B55, and that script's successful\nroom-$25 branch contains $17,$18 at $2B5E-$2B5F. The horse artwork therefore has a direct,\nunambiguous code identity even though it is not selected by ordinary noun-to-icon mapping.\nSlot 27 is unused crucifix artwork. The image is a Latin cross and vocabulary entry \"cru\" has\nnoun id $5A, but the corresponding resolver key $28 is absent from NOUN_TO_OBJECT_INDEX.\nCURRENT_OBJECT_INDEX has only two writers: the noun resolver at $15FB and direct script action\n$17 at $114F. No action bytecode contains the required direct pair $17,$1B, and no decoded instruction or recorded reference reads $B640-$B6DF. The artwork is resident,\nrecognisable abandoned content, not a live part-specific remap.\nThe build reuses otherwise unreachable slot ranges:\nslot  4  $A7E0-$A87F  active gameplay raster handlers through $A847; artwork tail at $A848\nslot  5  $A880-$A91F  temporary startup IRQ code through $A892, active system-handoff\nroutines through $A8DE, and artwork tail at $A8DF\nslots 29-31 $B780-$B95F  excluded intro data through $B906 and artwork tail at $B907\nThe exact boundaries $A7E0 = $A560 + 4*160 and $B780 = $A560 + 29*160 corroborate the slot arithmetic. The startup IRQ at $A880-$A892 is typed and described as code; the intro text/data remain a separate retained occupant.\nDecoding each 160-byte slot with the interleaved multicolor rule above yields 36 recognisable\nadventure objects, and they match the game's own three-letter noun stems: slot 0 (noun key $00,\nobject id $32, stem \"aur\") renders as the two-serpent AURYN amulet; \"kni\" is a dagger, \"web\" a\nspider web, \"dia\" a faceted diamond, \"app\" an apple, \"coi\" a coin, and so on. Verified against\nthe retained gameplay image over $0000-$CFFF apart from the CPU port at $0000/$0001.","t":"byte","b":[0,0,0,0,2,11,15,15]},{"a":42344,"t":"byte","b":[0,0,0,3,159,158,3,0]},{"a":42352,"t":"byte","b":[0,0,0,192,254,127,239,3]},{"a":42360,"t":"byte","b":[0,0,0,0,0,128,192,224]},{"a":42368,"t":"byte","b":[233,151,121,233,135,108,60,60]},{"a":42376,"t":"byte","b":[24,40,36,36,19,19,12,1]},{"a":42384,"t":"byte","b":[0,0,2,242,202,201,5,65]},{"a":42392,"t":"byte","b":[0,168,148,68,65,12,12,51]},{"a":42400,"t":"byte","b":[224,240,240,224,240,224,224,176]},{"a":42408,"t":"byte","b":[151,151,151,231,108,108,252,188]},{"a":42416,"t":"byte","b":[14,58,56,40,40,40,40,40]},{"a":42424,"t":"byte","b":[144,167,35,207,255,252,240,0]},{"a":42432,"t":"byte","b":[255,58,207,192,16,165,42,10]},{"a":42440,"t":"byte","b":[128,192,32,96,96,160,128,48]},{"a":42448,"t":"byte","b":[231,151,151,151,89,108,92,92]},{"a":42456,"t":"byte","b":[60,47,47,11,2,0,0,0]},{"a":42464,"t":"byte","b":[0,0,15,255,245,47,0,0]},{"a":42472,"t":"byte","b":[0,3,3,159,156,0,0,0]},{"a":42480,"t":"byte","b":[240,192,192,0,0,0,0,0]},{"a":42488,"t":"byte","b":[233,25,151,232,87,247,108,12]},{"a":42496,"l":"ICON_01","c":"ICON_01 - telescope (dark barrel with a pale lens, drawn on a diagonal). Slot 1 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; layout and VIC-II semantics are on\nthe plate at $A560. NOUN_TO_OBJECT_INDEX[1] = $08, i.e. parser object id $3A, vocabulary stem\n\"tel\".","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42504,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42512,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42528,"t":"byte","b":[232,88,232,232,136,104,56,56]},{"a":42536,"t":"byte","b":[34,42,12,10,12,16,28,12]},{"a":42544,"t":"byte","b":[0,0,0,15,191,60,243,204]},{"a":42552,"t":"byte","b":[0,0,0,0,128,128,165,172]},{"a":42560,"t":"byte","b":[0,0,0,0,0,0,0,80]},{"a":42568,"t":"byte","b":[111,95,235,232,91,107,247,104]},{"a":42576,"t":"byte","b":[12,12,15,60,48,48,0,0]},{"a":42584,"t":"byte","b":[243,63,63,204,12,12,48,0]},{"a":42592,"t":"byte","b":[39,129,128,128,32,32,8,0]},{"a":42600,"t":"byte","b":[240,92,0,0,0,0,0,0]},{"a":42608,"t":"byte","b":[232,88,235,232,91,107,87,87]},{"a":42616,"t":"byte","b":[63,63,12,0,0,0,0,0]},{"a":42624,"t":"byte","b":[255,255,0,0,0,0,0,0]},{"a":42632,"t":"byte","b":[255,255,3,0,0,0,0,0]},{"a":42640,"t":"byte","b":[192,192,0,0,0,0,0,0]},{"a":42648,"t":"byte","b":[232,88,232,232,91,251,107,11]},{"a":42656,"l":"ICON_02","c":"ICON_02 - crystal (pale elongated shard). Slot 2 of OBJECT_ICON_TABLE: 4x4-cell multicolor\npayload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[2] = $09, parser object id\n$3B, vocabulary stem \"cry\".","t":"byte","b":[0,60,62,15,15,3,3,2]},{"a":42664,"t":"byte","b":[0,0,0,64,176,180,236,236]},{"a":42672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42688,"t":"byte","b":[232,129,232,232,119,103,104,56]},{"a":42696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42704,"t":"byte","b":[249,123,126,254,223,127,55,23]},{"a":42712,"t":"byte","b":[0,0,64,192,144,176,176,228]},{"a":42720,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42728,"t":"byte","b":[232,129,129,232,88,103,247,88]},{"a":42736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42744,"t":"byte","b":[14,5,3,1,0,0,0,0]},{"a":42752,"t":"byte","b":[220,244,116,181,221,159,55,55]},{"a":42760,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42768,"t":"byte","b":[232,134,24,232,88,87,103,88]},{"a":42776,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42784,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42792,"t":"byte","b":[45,13,11,3,0,0,0,0]},{"a":42800,"t":"byte","b":[192,192,112,112,252,28,0,0]},{"a":42808,"t":"byte","b":[232,232,24,24,88,248,103,7]},{"a":42816,"l":"ICON_03","c":"ICON_03 - food (brown drawstring sack). Slot 3 of OBJECT_ICON_TABLE: 4x4-cell multicolor\npayload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[3] = $0F, parser object id\n$41, vocabulary stem \"foo\".\nThe next slot boundary, $A7E0 = $A560 + 4*160, is where the raster-split IRQ code begins.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42824,"t":"byte","b":[0,0,0,40,184,174,46,42]},{"a":42832,"t":"byte","b":[0,0,0,128,160,234,174,250]},{"a":42840,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42848,"t":"byte","b":[232,232,232,232,88,87,103,168]},{"a":42856,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42864,"t":"byte","b":[11,11,10,1,10,15,174,185]},{"a":42872,"t":"byte","b":[224,168,224,64,128,168,234,190]},{"a":42880,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":42888,"t":"byte","b":[232,104,104,232,88,103,247,88]},{"a":42896,"t":"byte","b":[2,3,2,3,2,3,2,2]},{"a":42904,"t":"byte","b":[228,160,228,228,224,145,133,133]},{"a":42912,"t":"byte","b":[187,174,107,106,107,46,43,46]},{"a":42920,"t":"byte","b":[128,160,224,224,224,160,224,192]},{"a":42928,"t":"byte","b":[232,152,152,232,87,87,103,87]},{"a":42936,"t":"byte","b":[2,2,0,0,0,0,0,0]},{"a":42944,"t":"byte","b":[160,243,170,174,43,10,0,0]},{"a":42952,"t":"byte","b":[111,107,166,150,104,96,128,0]},{"a":42960,"t":"byte","b":[128,128,128,0,0,0,0,0]},{"a":42968,"t":"byte","b":[232,232,152,232,88,249,103,104]},{"a":42976,"l":"RASTER_IRQ_DISPATCH","c":"RASTER_IRQ_DISPATCH ($A7E0)\nPurpose: The gameplay interrupt handler, installed in the KERNAL RAM vector CINV. A CLC followed by a BCC whose offset byte at $A7E2 is self-modified selects one of the three raster-split phase bodies, so successive interrupts cycle picture, text and bottom.\nInputs: The offset byte at $A7E2 holds $00, $27 or $52, selecting $A7E3, $A80A or $A835 respectively. The KERNAL's hardware IRQ entry at $FF48 has already pushed A, X, Y and the status register.\nOutputs: The selected phase reprograms the VIC, arms the next raster compare, rewrites the offset byte for the following interrupt, acknowledges the VIC interrupt latch and chains to the KERNAL epilogue at $EA81, which pulls the registers and executes RTI.\nAssumptions: Requires $01=$36 or another configuration in which $A000-$BFFF reads as RAM; banking BASIC back in while this vector is live would vector the interrupt into ROM. It relies entirely on the KERNAL prologue for register preservation, so it must never be entered by a foreground JSR.\nClobbers: A and flags within the handler; the interrupted A, X, Y, status, stack context and program counter are all restored by the KERNAL epilogue. The offset byte at $A7E2 is rewritten every interrupt.\nHardware changes: Through the selected phase: VIC-II $D011, $D016, $D018, $D021, $D012 and $D019. CINV itself is not modified here.","s":"force carry clear so the BCC below is always taken","t":"code","b":[24],"m":"clc"},{"a":42977,"s":"computed branch: offset byte @ $A7E2 selects the active split body","t":"code","b":[144,0],"m":"bcc","oa":42979,"o":"RASTER_SPLIT_PICTURE"},{"a":42978,"t":"note","l":"IRQ_SPLIT_STATE","c":"Self-modified BCC displacement in RASTER_IRQ_DISPATCH: $00 selects picture body $A7E3, $27 selects text body $A80A, and $52 selects bottom body $A835. Each phase writes the displacement needed for the next phase.","note":"inside the item at $A7E1","x":[43006,43049,43068]},{"a":42979,"l":"RASTER_SPLIT_PICTURE","c":"RASTER_SPLIT_PICTURE ($A7E3)\nPurpose: Phase body for the top band. Switches the VIC-II into multicolor bitmap mode for the room illustration, arms the next split at raster line 130, selects the text phase for the following interrupt, then acknowledges and returns through the KERNAL epilogue.\nInputs: Entered from the dispatcher with offset $00, on the interrupt armed for raster line 49. The KERNAL register-save frame is present.\nOutputs: Background colour black; screen matrix at $CC00 and bitmap at $E000 within VIC bank 3; bitmap mode on; multicolor on; next compare at line 130; dispatch offset set to $27. The interrupted CPU state is restored by the epilogue at $EA81.\nAssumptions: VIC bank 3 has already been selected through CIA 2 port A by the earlier phase; this handler only programs the in-bank pointers. The routine falls through into its acknowledge tail at $A801 rather than jumping.\nClobbers: A and flags; the offset byte at $A7E2. The interrupted registers are preserved by the KERNAL frame.\nHardware changes: Writes VIC-II $D021 = $00 (black background), $D018 = $38 (screen $CC00, bitmap $E000), $D011 = $3B (BMM set, 25 rows, display enabled, Y scroll 3), $D016 = $D8 (MCM set, 40 columns), $D012 = $82 (line 130), then reads and rewrites $D019 to acknowledge.","s":"A=$00 (black)","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[42977]},{"a":42981,"s":"$D021 background color = black (behind the bitmap)","t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":42984,"s":"A=$38: screen matrix @ $CC00, bitmap @ $E000 (VIC bank 3)","t":"code","b":[169,56],"m":"lda","o":"#$38"},{"a":42986,"s":"$D018 VIC memory pointers","t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":42989,"s":"A=$3B: BITMAP mode on (BMM=1), 25 rows, display on, Yscroll=3","t":"code","b":[169,59],"m":"lda","o":"#$3B"},{"a":42991,"s":"$D011 VIC control reg 1","t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":42994,"s":"A=$D8: MULTICOLOR on (MCM=1), 40 cols, Xscroll=0","t":"code","b":[169,216],"m":"lda","o":"#$D8"},{"a":42996,"s":"$D016 VIC control reg 2","t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":42999,"s":"A=$82 (130) = next raster line (picture/text boundary)","t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":43001,"s":"$D012 arm next raster IRQ at line 130","t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":43004,"s":"A=$27 = branch offset selecting RASTER_SPLIT_TEXT next","t":"code","b":[169,39],"m":"lda","o":"#$27"},{"a":43006,"s":"patch RASTER_DISPATCH_OFS (self-modify the BCC at $A7E1)","t":"code","b":[141,226,167],"m":"sta","oa":42978,"o":"IRQ_SPLIT_STATE"},{"a":43009,"l":"RASTER_ACK_TAIL","c":"Tail of RASTER_SPLIT_PICTURE (reached by fall-through): acknowledge the VIC raster IRQ\nlatch and chain to the KERNAL IRQ epilogue at $EA81 (pull registers, RTI).","s":"read VIC IRQ latch","t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":43012,"s":"acknowledge/clear VIC raster IRQ ($D019)","t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":43015,"s":"chain to KERNAL IRQ epilogue ($EA81)","t":"code","b":[76,129,234],"m":"jmp","oa":60033,"o":"j_EA81"},{"a":43018,"l":"RASTER_SPLIT_TEXT_DELAY","c":"RASTER_SPLIT_TEXT_DELAY ($A80A)\nPurpose: Phase body for the middle band, entered eight CPU cycles early. The dispatcher's $27 offset lands on four NOPs, which delay the register writes so that the picture-to-text transition happens at the intended horizontal position; the body then switches the VIC-II back to hires text, arms line 138 and selects the bottom phase.\nInputs: Entered from the dispatcher with offset $27, on the interrupt armed for raster line 130. The KERNAL register-save frame is present.\nOutputs: Eight cycles consumed, then: background medium grey; screen matrix $CC00 and character generator $F800; text mode; multicolor off; next compare at line 138; dispatch offset set to $52; interrupt acknowledged; return through $EA81.\nAssumptions: The delay exists because the interrupt is only line-accurate, not cycle-accurate; without it the mode change would land inside the visible part of the line. The character generator at $F800 is RAM that only the VIC-II can see, since the CPU has KERNAL ROM there under $01=$36.\nClobbers: A and flags; the offset byte at $A7E2. The interrupted registers are preserved by the KERNAL frame.\nHardware changes: Writes VIC-II $D021 = $0C (medium grey), $D018 = $3E (screen $CC00, charset $F800), $D011 = $1B (text mode, 25 rows, display enabled, Y scroll 3), $D016 = $C8 (40 columns, multicolor off), $D012 = $8A (line 138), then reads and rewrites $D019 to acknowledge.","t":"code","b":[234],"m":"nop"},{"a":43019,"t":"code","b":[234],"m":"nop"},{"a":43020,"t":"code","b":[234],"m":"nop"},{"a":43021,"t":"code","b":[234],"m":"nop"},{"a":43022,"l":"RASTER_IRQ_SPLIT_MID","c":"Runs at raster line 130. Switches the VIC back to standard text mode for the text area\n(screen @ $CC00, charset @ $F800), arms the next split at raster line 138, patches the\ndispatch to select RASTER_SPLIT_BOTTOM next, then acknowledges the IRQ and chains to $EA81.","s":"A=$0C = medium-gray","t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":43024,"s":"$D021 background/screen color = medium-gray","t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":43027,"s":"A=$3E: screen at $CC00, charset at $F800","t":"code","b":[169,62],"m":"lda","o":"#$3E"},{"a":43029,"s":"$D018 VIC memory pointers","t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":43032,"s":"A=$1B: text mode, 25 rows, display on, Yscroll=3","t":"code","b":[169,27],"m":"lda","o":"#$1B"},{"a":43034,"s":"$D011 VIC control reg 1","t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":43037,"s":"A=$C8: 40 cols, multicolor off, Xscroll=0","t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":43039,"s":"$D016 VIC control reg 2","t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":43042,"s":"A=$8A (138) = next raster compare line","t":"code","b":[169,138],"m":"lda","o":"#$8A"},{"a":43044,"s":"$D012 arm next raster IRQ at line 138","t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":43047,"s":"A=$52 = branch offset selecting RASTER_SPLIT_BOTTOM next","t":"code","b":[169,82],"m":"lda","o":"#$52"},{"a":43049,"s":"patch RASTER_DISPATCH_OFS (self-modify the BCC at $A7E1)","t":"code","b":[141,226,167],"m":"sta","oa":42978,"o":"IRQ_SPLIT_STATE"},{"a":43052,"s":"read VIC IRQ latch","t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":43055,"s":"acknowledge/clear VIC raster IRQ ($D019)","t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":43058,"s":"chain to KERNAL IRQ epilogue ($EA81)","t":"code","b":[76,129,234],"m":"jmp","oa":60033,"o":"j_EA81"},{"a":43061,"l":"RASTER_IRQ_SPLIT_TOP","c":"RASTER_SPLIT_BOTTOM ($A835)\nPurpose: Phase body for the bottom boundary. It changes no display register: it simply arms the next compare back at raster line 49 and selects the picture phase, restarting the three-phase cycle for the next frame.\nInputs: Entered from the dispatcher with offset $52, on the interrupt armed for raster line 138. The KERNAL register-save frame is present.\nOutputs: Next compare at line 49; dispatch offset reset to $00; interrupt acknowledged; return through $EA81.\nAssumptions: Because the text mode set at line 130 must persist to the bottom of the screen, this phase deliberately leaves $D011, $D016, $D018 and $D021 alone. Its only job is to close the cycle.\nClobbers: A and flags; the offset byte at $A7E2. The interrupted registers are preserved by the KERNAL frame.\nHardware changes: Writes VIC-II $D012 = $31 (line 49), then reads and rewrites $D019 to acknowledge.","s":"A=$31 (49) = next raster line (restart cycle at top of picture)","t":"code","b":[169,49],"m":"lda","o":"#$31"},{"a":43063,"s":"$D012 arm next raster IRQ at line 49","t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":43066,"s":"A=$00 = branch offset selecting RASTER_SPLIT_PICTURE next","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":43068,"s":"patch RASTER_DISPATCH_OFS (self-modify the BCC at $A7E1)","t":"code","b":[141,226,167],"m":"sta","oa":42978,"o":"IRQ_SPLIT_STATE"},{"a":43071,"s":"read VIC IRQ latch","t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":43074,"s":"acknowledge/clear VIC raster IRQ ($D019)","t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":43077,"s":"chain to KERNAL IRQ epilogue ($EA81)","t":"code","b":[76,129,234],"m":"jmp","oa":60033,"o":"j_EA81"},{"a":43080,"l":"ICON_SLOT_04_ARTWORK_TAIL","c":"ICON_SLOT_04_ARTWORK_TAIL ($A848-$A87F, 56 bytes) - the surviving tail of OBJECT_ICON_TABLE\nslot 4.\nSlot 4 spans $A7E0-$A87F ($A560 + 4*160). Its first 104 bytes were overwritten by the\nraster-split IRQ handlers at $A7E0-$A847; these 56 bytes are what is left of the icon that\noriginally occupied the slot. Slot 4 is dead - NOUN_TO_OBJECT_INDEX[4] is 0 and the resolver's\nlinear search always stops at index 0 first - so nothing ever reads them.\nEvidence that this is artwork and not padding: the bytes are 8-byte multicolor bitmap cells of\nthe same character as the live icons (runs of $FC, $3F, $E8, $6F), and they are near-identical\nto ICON_SLOT_05_ARTWORK_TAIL at the same offset within its slot ($A848 is slot4+104, $A8E8 is\nslot5+104, and both read FC FC FC FC FC FC 00 FC ...). Slots 4 and 5 therefore once held two\nclosely related icons.","t":"byte","b":[252,252,252,252,252,252,0,252]},{"a":43088,"t":"byte","b":[232,230,21,232,111,101,111,111]},{"a":43096,"t":"byte","b":[63,63,63,63,63,63,63,0]},{"a":43104,"t":"byte","b":[8,8,2,10,74,96,255,0]},{"a":43112,"t":"byte","b":[168,168,8,160,162,6,255,0]},{"a":43120,"t":"byte","b":[252,252,252,252,252,172,232,0]},{"a":43128,"t":"byte","b":[232,86,101,229,111,111,111,111]},{"a":43136,"l":"TEMPORARY_PART1_RASTER_IRQ","c":"Temporary pre-command-loop raster IRQ: select RAM under KERNAL with $01=$35, call $9695, restore $01=$36, acknowledge the VIC raster interrupt by writing $01 to $D019, and tail-jump to the KERNAL IRQ epilogue $EA81. The setup at $069B installs this vector; $070F later replaces it with $A7E0. Controlled source execution verifies both banking values, acknowledgement and tail target with $9695 hooked; no separate claim about that callee\u2019s effect is made.","t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":43138,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":43140,"t":"code","b":[32,149,150],"m":"jsr","oa":38549,"o":"$9695"},{"a":43143,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":43145,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":43147,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":43149,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":43152,"t":"code","b":[76,129,234],"m":"jmp","oa":60033,"o":"j_EA81"},{"a":43155,"l":"RESTORE_SYSTEM_TO_BASIC","c":"RESTORE_SYSTEM_TO_BASIC ($A893)\nPurpose: Hand the machine back to the KERNAL and BASIC ROMs in a state a stock C64 can survive: select a ROM-visible memory map, zero the low RAM pages, rebuild the KERNAL indirect vector block, re-run BASIC's vector and zero-page initialisation, and restore the stock IRQ handler.\nInputs: None. Physically located inside a dead object-icon slot, which is why it survives in the icon table region.\nOutputs: $01 = $36; $0002-$0101, $0200-$02FF and $0300-$03FF zeroed (the STA $0002,Y loop runs Y=$00..$FF, so it spills two bytes into the stack page); $B2/$B3 = $033C (the cassette-buffer pointer) and $C2 = 3; the 32-byte KERNAL default vector table copied from $FD30 to $0314-$0333; BASIC's indirect vectors and zero page reinitialised through KERNAL $E453 and $E3BF; CINV ($0314/$0315) = $EA31.\nAssumptions: $01 must be set first, because everything afterwards reads KERNAL ROM. Note the consequence for its own neighbourhood: with $36 selected, $A000-$BFFF still reads as RAM, so this code and the icon table around it remain reachable, while $E000-$FFFF is ROM, which is why the game's own character set at $F800 becomes invisible to the CPU though the VIC-II still sees it. No resident caller is recorded in the captured occupant.\nClobbers: A, X, Y, flags, the whole of zero page and pages 2 and 3, and BASIC's workspace. X is destroyed by the KERNAL calls to $E453 and $E3BF.\nHardware changes: Writes the 6510 port $01. Rewrites the KERNAL RAM vector block $0314-$0333 including CINV. Calls KERNAL $E453 and $E3BF. Does not itself touch VIC-II, SID or CIA registers, but restoring CINV to $EA31 hands interrupt-driven keyboard scanning and jiffy timing back to the KERNAL.","t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":43157,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"C64_CPU_PROCESSOR_PORT"},{"a":43159,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":43161,"t":"code","b":[168],"m":"tay"},{"a":43162,"l":"RESTORE_BASIC_ZERO_LOOP","t":"code","b":[153,2,0],"m":"sta","oa":2,"o":"SCRATCH_BYTE,y","x":[43172]},{"a":43165,"t":"code","b":[153,0,2],"m":"sta","oa":512,"o":"BASIC_INPUT_BUFFER,y"},{"a":43168,"t":"code","b":[153,0,3],"m":"sta","oa":768,"o":"BASIC_VECTORS,y"},{"a":43171,"t":"code","b":[200],"m":"iny"},{"a":43172,"t":"code","b":[208,244],"m":"bne","oa":43162,"o":"RESTORE_BASIC_ZERO_LOOP"},{"a":43174,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":43176,"t":"code","b":[133,178],"m":"sta","oa":178,"o":"TAPE1_CASSETTE_BUFFER_PTR"},{"a":43178,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":43180,"t":"code","b":[133,179],"m":"sta","oa":179,"o":"zpa_B3"},{"a":43182,"t":"code","b":[133,194],"m":"sta","oa":194,"o":"zpa_C2"},{"a":43184,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":43186,"l":"RESTORE_BASIC_VECTOR_COPY_LOOP","t":"code","b":[185,48,253],"m":"lda","oa":64816,"o":"TEXT_FONT_CELLS_166_255,y","x":[43193]},{"a":43189,"t":"code","b":[153,20,3],"m":"sta","oa":788,"o":"C64_WORKSPACE_IRQ_RAM_VECTOR,y"},{"a":43192,"t":"code","b":[136],"m":"dey"},{"a":43193,"t":"code","b":[16,247],"m":"bpl","oa":43186,"o":"RESTORE_BASIC_VECTOR_COPY_LOOP"},{"a":43195,"t":"code","b":[32,83,228],"m":"jsr","oa":58451,"o":"s_E453"},{"a":43198,"t":"code","b":[32,191,227],"m":"jsr","oa":58303,"o":"s_E3BF"},{"a":43201,"t":"code","b":[169,49],"m":"lda","o":"#$31"},{"a":43203,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"C64_WORKSPACE_IRQ_RAM_VECTOR"},{"a":43206,"t":"code","b":[169,234],"m":"lda","o":"#$EA"},{"a":43208,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"IRQ_VECTOR_HIGH_BYTE"},{"a":43211,"t":"code","b":[96],"m":"rts"},{"a":43212,"l":"INSTALL_GAME_IRQ","c":"INSTALL_GAME_IRQ ($A8CC)\nPurpose: Point the KERNAL RAM interrupt vector at the game's raster-split dispatcher and stop CIA 1 from raising its own interrupt. The exact inverse of the tail of RESTORE_SYSTEM_TO_BASIC.\nInputs: None. Also located inside a dead object-icon slot.\nOutputs: CINV ($0314/$0315) = $A7E0; CIA 1's FLAG interrupt mask cleared; any latched CIA 1 interrupt request discarded.\nAssumptions: Requires $01=$36 so that $A7E0 is the game's handler in RAM rather than BASIC ROM, and requires the raster source and initial compare to have been configured already. No resident caller is recorded, but CINV holds $A7E0 in the captured state, proving this routine or an equivalent loader path ran before capture.\nClobbers: A and flags.\nHardware changes: Writes the KERNAL RAM IRQ vector at $0314/$0315. Writes $10 to CIA 1 interrupt control $DC0D: with bit 7 clear the one bits are cleared, so this clears the FLAG mask and leaves the other sources alone. Then reads $DC0D, whose read side reports and clears the pending latch and releases the IRQ line, guaranteeing no stale CIA request fires when interrupts are re-enabled.","t":"code","b":[169,224],"m":"lda","o":"#$E0"},{"a":43214,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"C64_WORKSPACE_IRQ_RAM_VECTOR"},{"a":43217,"t":"code","b":[169,167],"m":"lda","o":"#$A7"},{"a":43219,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"IRQ_VECTOR_HIGH_BYTE"},{"a":43222,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":43224,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":43227,"t":"code","b":[173,13,220],"m":"lda","o":"cia1_interrupt"},{"a":43230,"t":"code","b":[96],"m":"rts"},{"a":43231,"l":"ICON_SLOT_05_ARTWORK_TAIL","c":"ICON_SLOT_05_ARTWORK_TAIL ($A8DF-$A91F, 65 bytes) \u2014 surviving tail of OBJECT_ICON_TABLE slot 5.\nSlot 5 spans $A880-$A91F ($A560 + 5*160). Its first 19 bytes are the temporary startup IRQ, typed and described as code; the next 76 bytes contain the active system-handoff routines RESTORE_SYSTEM_TO_BASIC ($A893-$A8CB) and INSTALL_GAME_IRQ ($A8CC-$A8DE). These final 65 bytes are the remains of the overwritten icon. Slot 5 is unreachable through ordinary noun resolution because NOUN_TO_OBJECT_INDEX[5] is 0 behind the valid zero at index 0.\nICON_06 resumes exactly at the next slot boundary, $A920.","t":"byte","b":[12,84,116,116,84,36,80,84]},{"a":43239,"t":"byte","b":[116,252,252,252,252,252,252,0]},{"a":43247,"t":"byte","b":[252,232,232,145,232,111,102,111]},{"a":43255,"t":"byte","b":[111,63,63,63,63,63,63,63]},{"a":43263,"t":"byte","b":[0,12,12,3,15,143,176,85]},{"a":43271,"t":"byte","b":[0,168,168,8,160,163,11,85]},{"a":43279,"t":"byte","b":[0,252,252,252,252,252,92,212]},{"a":43287,"t":"byte","b":[0,232,245,249,37,111,102,98]},{"a":43295,"t":"byte","b":[127]},{"a":43296,"l":"ICON_06","c":"ICON_06 - gold key (large bow, short bit). Slot 6 of OBJECT_ICON_TABLE: 4x4-cell multicolor\npayload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[6] = $11, parser object id\n$43, vocabulary stem \"gol\".\nThis is the first intact slot after the two code-bearing holes (slots 4 and 5); it starts\nexactly on the slot boundary $A560 + 6*160.","t":"byte","b":[0,0,3,15,15,63,63,63]},{"a":43304,"t":"byte","b":[0,255,255,254,234,228,208,192]},{"a":43312,"t":"byte","b":[0,252,255,255,175,111,31,15]},{"a":43320,"t":"byte","b":[0,0,0,192,192,240,240,240]},{"a":43328,"t":"byte","b":[232,152,152,232,103,103,103,103]},{"a":43336,"t":"byte","b":[63,63,31,23,5,10,0,0]},{"a":43344,"t":"byte","b":[192,224,248,255,160,139,75,11]},{"a":43352,"t":"byte","b":[15,47,191,255,58,138,132,128]},{"a":43360,"t":"byte","b":[240,240,208,80,128,128,0,0]},{"a":43368,"t":"byte","b":[137,152,152,137,103,103,103,103]},{"a":43376,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43384,"t":"byte","b":[11,11,27,27,27,27,27,27]},{"a":43392,"t":"byte","b":[128,128,144,144,144,144,155,155]},{"a":43400,"t":"byte","b":[0,0,0,0,0,0,240,224]},{"a":43408,"t":"byte","b":[232,152,152,232,104,103,103,103]},{"a":43416,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43424,"t":"byte","b":[27,27,27,27,11,2,0,0]},{"a":43432,"t":"byte","b":[155,155,155,154,144,0,0,0]},{"a":43440,"t":"byte","b":[192,192,240,160,0,0,0,0]},{"a":43448,"t":"byte","b":[232,152,152,232,104,103,103,103]},{"a":43456,"l":"ICON_07","c":"ICON_07 - knife (white blade, dark hilt, on a diagonal). Slot 7 of OBJECT_ICON_TABLE: 4x4-cell\nmulticolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[7] = $12, parser\nobject id $44, vocabulary stem \"kni\".","t":"byte","b":[0,0,10,37,43,47,47,11]},{"a":43464,"t":"byte","b":[0,0,0,0,192,192,240,240]},{"a":43472,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43480,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43488,"t":"byte","b":[31,232,232,232,98,98,104,104]},{"a":43496,"t":"byte","b":[18,18,18,48,4,12,1,3]},{"a":43504,"t":"byte","b":[252,252,255,191,191,46,47,11]},{"a":43512,"t":"byte","b":[0,0,0,0,192,192,224,96]},{"a":43520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43528,"t":"byte","b":[207,95,31,88,107,98,98,104]},{"a":43536,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43544,"t":"byte","b":[74,194,16,50,0,0,0,0]},{"a":43552,"t":"byte","b":[240,192,12,56,251,251,60,60]},{"a":43560,"t":"byte","b":[0,0,0,0,0,0,192,192]},{"a":43568,"t":"byte","b":[232,207,225,232,104,107,111,111]},{"a":43576,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43584,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43592,"t":"byte","b":[14,3,3,0,0,0,0,0]},{"a":43600,"t":"byte","b":[0,112,112,252,44,0,0,0]},{"a":43608,"t":"byte","b":[232,232,225,27,104,120,111,111]},{"a":43616,"l":"ICON_08","c":"ICON_08 \u2014 green domed toadstool / glowing lamp on a stem. Slot 8 of OBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[8] = $13, parser object id $45, vocabulary stem \"glo\".","t":"byte","b":[0,0,48,12,0,3,11,11]},{"a":43624,"t":"byte","b":[0,64,0,5,91,95,95,91]},{"a":43632,"t":"byte","b":[0,4,0,64,148,213,213,149]},{"a":43640,"t":"byte","b":[0,0,48,192,0,0,64,64]},{"a":43648,"t":"byte","b":[229,215,215,88,109,97,97,109]},{"a":43656,"t":"byte","b":[21,21,21,21,21,21,21,5]},{"a":43664,"t":"byte","b":[255,255,95,85,85,85,85,85]},{"a":43672,"t":"byte","b":[253,253,213,85,85,85,85,85]},{"a":43680,"t":"byte","b":[80,80,80,80,80,80,80,64]},{"a":43688,"t":"byte","b":[88,88,88,88,109,109,173,109]},{"a":43696,"t":"byte","b":[11,2,0,0,0,0,0,0]},{"a":43704,"t":"byte","b":[191,175,250,15,32,46,10,0]},{"a":43712,"t":"byte","b":[250,235,188,192,32,160,128,0]},{"a":43720,"t":"byte","b":[128,0,0,0,0,0,0,0]},{"a":43728,"t":"byte","b":[229,230,230,229,102,101,101,102]},{"a":43736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43744,"t":"byte","b":[11,0,11,0,59,59,0,0]},{"a":43752,"t":"byte","b":[192,0,192,0,240,240,0,0]},{"a":43760,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43768,"t":"byte","b":[232,229,232,232,101,102,102,101]},{"a":43776,"l":"ICON_09","c":"ICON_09 - spider web (blue-violet strands filling the cell). Slot 9 of OBJECT_ICON_TABLE:\n4x4-cell multicolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[9] = $14,\nparser object id $46, reached by either of the vocabulary stems \"web\" and \"spi\".","t":"byte","b":[0,0,0,0,60,3,3,3]},{"a":43784,"t":"byte","b":[0,0,0,0,63,192,0,2]},{"a":43792,"t":"byte","b":[0,32,32,32,128,176,140,3]},{"a":43800,"t":"byte","b":[0,0,0,12,12,12,48,48]},{"a":43808,"t":"byte","b":[88,94,94,88,107,123,107,107]},{"a":43816,"t":"byte","b":[3,51,5,12,12,12,3,3]},{"a":43824,"t":"byte","b":[1,1,219,68,4,19,16,16]},{"a":43832,"t":"byte","b":[0,0,67,115,28,4,196,193]},{"a":43840,"t":"byte","b":[192,240,12,0,192,48,48,84]},{"a":43848,"t":"byte","b":[232,225,232,232,107,107,107,107]},{"a":43856,"t":"byte","b":[3,1,4,4,13,3,3,12]},{"a":43864,"t":"byte","b":[71,193,48,205,48,1,71,16]},{"a":43872,"t":"byte","b":[84,1,67,193,125,1,65,17]},{"a":43880,"t":"byte","b":[48,48,48,48,0,240,12,48]},{"a":43888,"t":"byte","b":[232,232,232,232,107,107,107,107]},{"a":43896,"t":"byte","b":[12,51,48,0,40,2,0,0]},{"a":43904,"t":"byte","b":[16,19,211,4,5,68,52,0]},{"a":43912,"t":"byte","b":[200,6,17,16,112,12,3,0]},{"a":43920,"t":"byte","b":[48,48,48,64,16,4,0,0]},{"a":43928,"t":"byte","b":[94,232,225,232,107,107,107,107]},{"a":43936,"l":"ICON_10","c":"ICON_10 - iron key (dark ring bow and long shank). Slot 10 of OBJECT_ICON_TABLE: 4x4-cell\nmulticolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[10] = $15, parser\nobject id $47, vocabulary stem \"iro\".","t":"byte","b":[0,0,3,3,15,12,60,44]},{"a":43944,"t":"byte","b":[0,0,240,240,60,12,12,62]},{"a":43952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":43968,"t":"byte","b":[91,235,232,232,89,137,104,248]},{"a":43976,"t":"byte","b":[44,47,10,15,3,0,0,0]},{"a":43984,"t":"byte","b":[50,240,204,60,139,11,2,2]},{"a":43992,"t":"byte","b":[0,0,0,0,0,0,192,192]},{"a":44000,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44008,"t":"byte","b":[91,235,232,232,105,41,89,104]},{"a":44016,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44024,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44032,"t":"byte","b":[176,176,44,44,11,11,2,14]},{"a":44040,"t":"byte","b":[0,0,0,0,0,0,192,192]},{"a":44048,"t":"byte","b":[88,232,235,232,248,104,89,9]},{"a":44056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44064,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44072,"t":"byte","b":[60,47,11,8,0,0,0,0]},{"a":44080,"t":"byte","b":[176,176,44,44,0,0,0,0]},{"a":44088,"t":"byte","b":[88,232,235,235,104,248,249,105]},{"a":44096,"l":"ICON_11_ANCIENT_PADLOCK","c":"ICON_11_ANCIENT_PADLOCK \u2014 the ancient padlock inventory icon. Slot 11 of OBJECT_ICON_TABLE is a 4x4-cell multicolor payload of 160 bytes; it renders as a grey U-shaped padlock with a dark body and gold highlights.\nThe identification is independently consistent with the ordered object-description table: entry 11 is \"An Ancient Padlock.\" NOUN_TO_OBJECT_INDEX[11] = $16 and parser object id $48. That id is intentionally absent from part 1's three-letter vocabulary because the padlock is manipulated by scripted object identity rather than a part-1 noun stem.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44104,"t":"byte","b":[0,0,0,3,15,62,248,224]},{"a":44112,"t":"byte","b":[0,0,0,192,240,172,43,11]},{"a":44120,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44128,"t":"byte","b":[232,233,233,232,88,91,107,88]},{"a":44136,"t":"byte","b":[0,0,3,15,15,15,15,15]},{"a":44144,"t":"byte","b":[224,0,252,250,11,236,176,176]},{"a":44152,"t":"byte","b":[11,0,63,251,240,62,10,10]},{"a":44160,"t":"byte","b":[0,0,192,240,240,240,240,176]},{"a":44168,"t":"byte","b":[232,233,137,233,251,107,219,251]},{"a":44176,"t":"byte","b":[14,63,62,63,63,63,63,63]},{"a":44184,"t":"byte","b":[176,172,232,172,188,188,188,188]},{"a":44192,"t":"byte","b":[10,42,43,42,42,43,43,43]},{"a":44200,"t":"byte","b":[240,188,188,252,252,252,252,188]},{"a":44208,"t":"byte","b":[233,233,137,233,251,11,123,107]},{"a":44216,"t":"byte","b":[15,3,3,0,0,0,0,0]},{"a":44224,"t":"byte","b":[168,238,254,255,15,0,0,0]},{"a":44232,"t":"byte","b":[42,171,171,255,240,0,0,0]},{"a":44240,"t":"byte","b":[188,240,192,0,0,0,0,0]},{"a":44248,"t":"byte","b":[232,233,137,233,107,91,251,123]},{"a":44256,"l":"ICON_12","c":"ICON_12 - sapphire (blue-violet faceted gem). Slot 12 of OBJECT_ICON_TABLE: 4x4-cell multicolor\npayload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[12] = $17, parser object id\n$49, vocabulary stem \"sap\".","t":"byte","b":[0,0,0,0,0,0,3,3]},{"a":44264,"t":"byte","b":[0,0,32,40,168,170,170,170]},{"a":44272,"t":"byte","b":[0,0,0,0,0,0,128,128]},{"a":44280,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44288,"t":"byte","b":[88,225,225,232,97,101,245,248]},{"a":44296,"t":"byte","b":[2,2,11,10,10,10,42,42]},{"a":44304,"t":"byte","b":[174,171,239,251,251,254,254,251]},{"a":44312,"t":"byte","b":[16,100,100,105,217,218,218,118]},{"a":44320,"t":"byte","b":[0,0,0,0,0,64,144,176]},{"a":44328,"t":"byte","b":[94,49,22,22,97,110,245,133]},{"a":44336,"t":"byte","b":[63,7,7,7,1,1,1,0]},{"a":44344,"t":"byte","b":[85,170,171,175,174,174,174,122]},{"a":44352,"t":"byte","b":[93,186,186,186,234,235,236,236]},{"a":44360,"t":"byte","b":[172,240,176,192,192,0,0,0]},{"a":44368,"t":"byte","b":[83,86,22,230,110,84,149,101]},{"a":44376,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44384,"t":"byte","b":[235,59,59,63,15,12,0,0]},{"a":44392,"t":"byte","b":[48,192,192,0,0,0,0,0]},{"a":44400,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44408,"t":"byte","b":[88,230,232,232,248,101,101,168]},{"a":44416,"l":"ICON_13","c":"ICON_13 - ruby (red-brown faceted gem). Slot 13 of OBJECT_ICON_TABLE: 4x4-cell multicolor\npayload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[13] = $19, parser object id\n$4B, vocabulary stem \"rub\".\nNote the table is not monotonic here: entry 13 is $19 and entry 14 is $18, so \"rub\" resolves to\nthis slot and \"dia\" to the next one.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44424,"t":"byte","b":[0,0,0,0,0,3,58,38]},{"a":44432,"t":"byte","b":[0,0,0,60,43,254,254,171]},{"a":44440,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44448,"t":"byte","b":[232,26,234,232,81,98,2,248]},{"a":44456,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44464,"t":"byte","b":[57,62,58,58,62,62,254,254]},{"a":44472,"t":"byte","b":[126,250,250,186,186,186,170,184]},{"a":44480,"t":"byte","b":[0,0,0,64,64,64,64,64]},{"a":44488,"t":"byte","b":[232,26,18,38,3,242,106,101]},{"a":44496,"t":"byte","b":[3,3,15,15,15,15,15,15]},{"a":44504,"t":"byte","b":[254,254,62,62,63,62,62,63]},{"a":44512,"t":"byte","b":[239,255,252,236,251,252,252,252]},{"a":44520,"t":"byte","b":[64,64,64,64,64,64,64,64]},{"a":44528,"t":"byte","b":[101,74,106,37,114,98,82,246]},{"a":44536,"t":"byte","b":[15,12,15,15,3,0,0,0]},{"a":44544,"t":"byte","b":[21,5,80,85,64,0,0,0]},{"a":44552,"t":"byte","b":[252,252,195,63,255,60,0,0]},{"a":44560,"t":"byte","b":[192,192,0,0,0,0,0,0]},{"a":44568,"t":"byte","b":[232,38,232,232,242,245,114,98]},{"a":44576,"l":"ICON_14","c":"ICON_14 - diamond (white and pale-blue faceted stone). Slot 14 of OBJECT_ICON_TABLE: 4x4-cell\nmulticolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[14] = $18, parser\nobject id $4A, vocabulary stem \"dia\".","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44584,"t":"byte","b":[0,0,0,0,0,0,0,15]},{"a":44592,"t":"byte","b":[0,0,0,0,0,0,0,224]},{"a":44600,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44608,"t":"byte","b":[232,229,230,88,81,241,97,120]},{"a":44616,"t":"byte","b":[0,0,3,3,3,3,3,3]},{"a":44624,"t":"byte","b":[51,192,60,51,143,173,189,191]},{"a":44632,"t":"byte","b":[212,53,253,241,193,193,193,193]},{"a":44640,"t":"byte","b":[0,0,192,192,192,192,192,192]},{"a":44648,"t":"byte","b":[232,54,110,94,97,241,161,246]},{"a":44656,"t":"byte","b":[3,0,0,0,0,0,0,0]},{"a":44664,"t":"byte","b":[255,255,63,15,2,0,0,0]},{"a":44672,"t":"byte","b":[61,245,20,208,64,0,0,0]},{"a":44680,"t":"byte","b":[192,0,0,0,0,0,0,0]},{"a":44688,"t":"byte","b":[101,70,101,94,1,97,81,86]},{"a":44696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44704,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44712,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44720,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":44728,"t":"byte","b":[232,230,232,88,104,165,245,104]},{"a":44736,"l":"ICON_15","c":"ICON_15 - cloak / cape (brown hooded garment on a dark-red ground). Slot 15 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560.\nNOUN_TO_OBJECT_INDEX[15] = $1A, parser object id $4C, vocabulary stem \"cap\".","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":44744,"t":"byte","b":[0,255,255,255,243,240,195,206]},{"a":44752,"t":"byte","b":[0,255,255,207,15,51,51,35]},{"a":44760,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":44768,"t":"byte","b":[232,231,231,232,162,82,242,242]},{"a":44776,"t":"byte","b":[63,63,63,63,63,63,60,60]},{"a":44784,"t":"byte","b":[206,204,204,12,48,48,48,48]},{"a":44792,"t":"byte","b":[35,48,48,48,48,48,48,12]},{"a":44800,"t":"byte","b":[252,252,252,252,252,252,252,60]},{"a":44808,"t":"byte","b":[232,231,231,232,242,98,2,66]},{"a":44816,"t":"byte","b":[60,60,60,60,48,48,48,48]},{"a":44824,"t":"byte","b":[48,48,48,48,48,48,48,48]},{"a":44832,"t":"byte","b":[12,12,12,12,12,48,48,48]},{"a":44840,"t":"byte","b":[60,60,60,60,60,60,60,60]},{"a":44848,"t":"byte","b":[232,232,232,232,98,82,242,98]},{"a":44856,"t":"byte","b":[48,48,51,60,63,63,63,0]},{"a":44864,"t":"byte","b":[48,48,192,0,0,255,255,0]},{"a":44872,"t":"byte","b":[48,48,12,3,0,255,255,0]},{"a":44880,"t":"byte","b":[60,60,60,60,252,252,252,0]},{"a":44888,"t":"byte","b":[232,232,232,232,114,242,162,242]},{"a":44896,"l":"ICON_16","c":"ICON_16 - rope (gold coil). Slot 16 of OBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160\nbytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[16] = $1B, parser object id $4D, vocabulary\nstem \"rop\".","t":"byte","b":[0,0,0,3,2,3,11,12]},{"a":44904,"t":"byte","b":[0,0,0,0,0,0,2,14]},{"a":44912,"t":"byte","b":[0,0,0,0,14,239,240,0]},{"a":44920,"t":"byte","b":[0,0,0,0,192,224,176,32]},{"a":44928,"t":"byte","b":[88,232,232,232,103,55,87,103]},{"a":44936,"t":"byte","b":[8,12,8,12,8,12,8,12]},{"a":44944,"t":"byte","b":[44,176,192,128,128,195,131,130]},{"a":44952,"t":"byte","b":[0,0,239,178,240,160,236,200]},{"a":44960,"t":"byte","b":[60,40,12,200,136,204,136,204]},{"a":44968,"t":"byte","b":[88,232,232,232,39,103,7,39]},{"a":44976,"t":"byte","b":[8,14,3,2,15,8,12,8]},{"a":44984,"t":"byte","b":[194,51,34,51,15,8,14,0]},{"a":44992,"t":"byte","b":[44,48,32,176,194,238,240,128]},{"a":45000,"t":"byte","b":[136,204,136,204,200,12,56,176]},{"a":45008,"t":"byte","b":[88,88,88,88,103,7,7,103]},{"a":45016,"t":"byte","b":[12,8,12,8,14,3,0,0]},{"a":45024,"t":"byte","b":[0,0,59,188,192,0,0,0]},{"a":45032,"t":"byte","b":[0,3,139,236,48,0,0,0]},{"a":45040,"t":"byte","b":[224,128,0,0,0,0,0,0]},{"a":45048,"t":"byte","b":[232,232,232,232,87,103,247,87]},{"a":45056,"l":"ICON_17","c":"ICON_17 - brand / bar-shaped implement, drawn upright on a light-grey ground (colour-RAM value 15). Slot 17 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560.\nNOUN_TO_OBJECT_INDEX[17] = $1D, parser object id $4F, vocabulary stem \"bra\".","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":45064,"t":"byte","b":[0,255,240,192,194,192,192,192]},{"a":45072,"t":"byte","b":[0,255,63,15,15,15,15,15]},{"a":45080,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":45088,"t":"byte","b":[232,225,232,232,255,111,95,95]},{"a":45096,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":45104,"t":"byte","b":[192,240,242,248,248,250,248,250]},{"a":45112,"t":"byte","b":[15,63,191,191,191,191,191,191]},{"a":45120,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":45128,"t":"byte","b":[232,233,233,232,95,191,143,111]},{"a":45136,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":45144,"t":"byte","b":[250,248,250,254,254,254,254,254]},{"a":45152,"t":"byte","b":[191,191,191,191,191,191,191,191]},{"a":45160,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":45168,"t":"byte","b":[88,89,89,88,111,255,15,143]},{"a":45176,"t":"byte","b":[63,63,63,63,63,63,63,0]},{"a":45184,"t":"byte","b":[254,254,254,254,254,254,255,0]},{"a":45192,"t":"byte","b":[191,191,191,255,255,255,255,0]},{"a":45200,"t":"byte","b":[252,252,252,252,252,252,252,0]},{"a":45208,"t":"byte","b":[232,233,233,232,95,95,111,95]},{"a":45216,"l":"ICON_18","c":"ICON_18 - burning torch (gold flame over a dark shaft). Slot 18 of OBJECT_ICON_TABLE: 4x4-cell\nmulticolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[18] = $1E, parser\nobject id $50, vocabulary stem \"bur\".","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45224,"t":"byte","b":[0,0,0,0,0,0,8,0]},{"a":45232,"t":"byte","b":[0,128,192,0,128,192,194,130]},{"a":45240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45248,"t":"byte","b":[88,232,232,232,88,104,247,88]},{"a":45256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45264,"t":"byte","b":[8,8,8,2,3,3,10,10]},{"a":45272,"t":"byte","b":[226,128,162,184,168,48,184,232]},{"a":45280,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45288,"t":"byte","b":[88,232,232,232,104,199,55,104]},{"a":45296,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45304,"t":"byte","b":[8,14,46,47,43,59,58,46]},{"a":45312,"t":"byte","b":[248,224,236,252,254,238,206,172]},{"a":45320,"t":"byte","b":[0,0,128,128,0,0,0,0]},{"a":45328,"t":"byte","b":[88,232,232,232,88,103,103,88]},{"a":45336,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45344,"t":"byte","b":[6,3,3,3,3,3,3,0]},{"a":45352,"t":"byte","b":[248,48,48,48,240,48,240,0]},{"a":45360,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45368,"t":"byte","b":[232,135,232,232,248,249,169,104]},{"a":45376,"l":"ICON_19","c":"ICON_19 - framed oval / locket (white oval inside a border, on a dark-red ground). Slot 19 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560.\nNOUN_TO_OBJECT_INDEX[19] = $1F, parser object id $51, vocabulary stem \"fra\".","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":45384,"t":"byte","b":[0,85,85,85,109,111,183,181]},{"a":45392,"t":"byte","b":[0,170,170,170,170,170,170,234]},{"a":45400,"t":"byte","b":[0,252,252,252,252,252,252,252]},{"a":45408,"t":"byte","b":[232,37,226,232,82,191,111,98]},{"a":45416,"t":"byte","b":[21,22,22,27,27,27,45,41]},{"a":45424,"t":"byte","b":[182,230,218,154,154,154,154,152]},{"a":45432,"t":"byte","b":[186,174,174,171,171,171,43,42]},{"a":45440,"t":"byte","b":[168,168,168,168,168,168,168,232]},{"a":45448,"t":"byte","b":[37,18,226,226,143,111,191,63]},{"a":45456,"t":"byte","b":[30,39,39,39,41,41,41,1]},{"a":45464,"t":"byte","b":[32,8,8,8,200,200,200,192]},{"a":45472,"t":"byte","b":[10,10,2,3,3,3,14,12]},{"a":45480,"t":"byte","b":[232,232,232,168,168,168,168,0]},{"a":45488,"t":"byte","b":[82,81,82,82,95,95,143,255]},{"a":45496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45504,"t":"byte","b":[176,176,176,44,11,0,0,0]},{"a":45512,"t":"byte","b":[48,48,192,192,0,0,0,0]},{"a":45520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":45528,"t":"byte","b":[232,37,226,232,98,95,95,98]},{"a":45536,"l":"ICON_20","c":"ICON_20 - paper (stack of brown parchment sheets on a grey ground). Slot 20 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560.\nNOUN_TO_OBJECT_INDEX[20] = $21, parser object id $53, vocabulary stem \"pap\".","t":"byte","b":[0,63,63,60,60,50,50,50]},{"a":45544,"t":"byte","b":[0,255,15,83,84,84,101,169]},{"a":45552,"t":"byte","b":[0,255,255,51,255,60,3,168]},{"a":45560,"t":"byte","b":[0,252,252,252,252,60,252,252]},{"a":45568,"t":"byte","b":[233,152,233,88,108,252,92,108]},{"a":45576,"t":"byte","b":[49,49,49,49,49,49,48,54]},{"a":45584,"t":"byte","b":[170,47,56,136,162,170,42,40]},{"a":45592,"t":"byte","b":[169,234,190,142,163,174,185,57]},{"a":45600,"t":"byte","b":[60,140,140,140,172,172,140,140]},{"a":45608,"t":"byte","b":[152,232,152,89,252,103,55,172]},{"a":45616,"t":"byte","b":[54,58,56,58,56,58,58,58]},{"a":45624,"t":"byte","b":[160,170,42,138,170,10,168,170]},{"a":45632,"t":"byte","b":[139,162,42,160,162,32,170,170]},{"a":45640,"t":"byte","b":[76,156,156,156,156,156,156,156]},{"a":45648,"t":"byte","b":[152,88,120,152,108,92,89,108]},{"a":45656,"t":"byte","b":[56,54,53,49,60,60,63,0]},{"a":45664,"t":"byte","b":[42,168,149,85,80,3,15,0]},{"a":45672,"t":"byte","b":[130,170,165,83,63,204,255,0]},{"a":45680,"t":"byte","b":[124,124,252,60,252,252,252,0]},{"a":45688,"t":"byte","b":[152,152,152,152,252,172,108,92]},{"a":45696,"l":"ICON_21","c":"ICON_21 - leather (stretched animal hide, splayed). Slot 21 of OBJECT_ICON_TABLE: 4x4-cell\nmulticolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[21] = $22, parser\nobject id $54, vocabulary stem \"lea\".","t":"byte","b":[0,0,0,0,0,48,60,15]},{"a":45704,"t":"byte","b":[0,0,0,3,3,3,15,255]},{"a":45712,"t":"byte","b":[0,0,0,192,192,192,240,255]},{"a":45720,"t":"byte","b":[0,0,0,0,0,12,60,240]},{"a":45728,"t":"byte","b":[232,232,232,232,9,105,89,249]},{"a":45736,"t":"byte","b":[15,3,3,3,3,0,0,0]},{"a":45744,"t":"byte","b":[254,254,191,238,254,255,255,255]},{"a":45752,"t":"byte","b":[255,255,254,251,239,191,191,191]},{"a":45760,"t":"byte","b":[240,192,192,192,192,0,0,0]},{"a":45768,"t":"byte","b":[232,232,232,232,105,169,57,105]},{"a":45776,"t":"byte","b":[0,0,0,0,0,3,3,15]},{"a":45784,"t":"byte","b":[255,254,255,254,255,254,254,254]},{"a":45792,"t":"byte","b":[191,255,255,255,191,191,191,255]},{"a":45800,"t":"byte","b":[0,0,0,0,0,192,192,240]},{"a":45808,"t":"byte","b":[232,232,232,232,105,249,89,249]},{"a":45816,"t":"byte","b":[15,15,15,63,63,60,48,0]},{"a":45824,"t":"byte","b":[255,255,207,3,0,0,0,0]},{"a":45832,"t":"byte","b":[191,255,243,192,0,0,0,0]},{"a":45840,"t":"byte","b":[240,240,240,252,252,60,12,0]},{"a":45848,"t":"byte","b":[232,232,232,232,89,89,105,89]},{"a":45856,"l":"ICON_22","c":"ICON_22 - box (small object inside a white frame). Slot 22 of OBJECT_ICON_TABLE: 4x4-cell\nmulticolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[22] = $24, parser\nobject id $56, vocabulary stem \"box\".","t":"byte","b":[0,0,0,0,42,44,35,35]},{"a":45864,"t":"byte","b":[0,0,0,0,187,0,255,0]},{"a":45872,"t":"byte","b":[0,0,0,0,255,0,255,0]},{"a":45880,"t":"byte","b":[0,0,0,0,240,52,244,52]},{"a":45888,"t":"byte","b":[225,145,121,233,255,111,95,63]},{"a":45896,"t":"byte","b":[51,51,35,35,51,51,51,51]},{"a":45904,"t":"byte","b":[0,20,105,170,170,170,234,62]},{"a":45912,"t":"byte","b":[0,0,0,64,144,164,232,188]},{"a":45920,"t":"byte","b":[52,52,52,52,52,52,52,52]},{"a":45928,"t":"byte","b":[145,23,23,231,95,120,104,95]},{"a":45936,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":45944,"t":"byte","b":[3,0,0,0,0,0,0,0]},{"a":45952,"t":"byte","b":[192,0,0,0,0,0,0,0]},{"a":45960,"t":"byte","b":[56,56,56,56,56,56,56,56]},{"a":45968,"t":"byte","b":[231,151,151,158,255,104,88,95]},{"a":45976,"t":"byte","b":[63,1,0,0,0,0,0,0]},{"a":45984,"t":"byte","b":[255,170,0,0,0,0,0,0]},{"a":45992,"t":"byte","b":[255,170,0,0,0,0,0,0]},{"a":46000,"t":"byte","b":[244,84,0,0,0,0,0,0]},{"a":46008,"t":"byte","b":[233,30,158,232,111,111,111,111]},{"a":46016,"l":"ICON_FALKOR","c":"Falkor object/scene graphic. Slot 23 of OBJECT_ICON_TABLE: a 4x4-cell, 160-byte\ninterleaved multicolor payload whose long pale body on blue initially resembles a serpent; in\ngame context it depicts Falkor, the luckdragon.\nDYNAMIC PROOF: during part 1, command \"get falkor\" in room $21 selected verb-rule pair 14\n(verb $15, noun $37) and ACTION_SCRIPT_GET_FALKOR. At script bytes $2B8F-$2B90, action opcode\n$17 passed operand $17 to SCRIPT_SET_OBJECT_GRAPHIC ($113D). At the COPY_BLIT_ROW read\n($0678), CURRENT_OBJECT_INDEX was $17, GRAPHIC_RECORD_PTR and BLIT_SOURCE_PTR were both $B3C0,\nand the call stack returned through the action VM's self-modified call at $1699.\nNOUN_TO_OBJECT_INDEX[23] is zero, so ordinary noun resolution cannot select this index; the\naction script deliberately supplies the graphics index directly. This is a scene graphic, not\nan unreachable inventory-noun slot.","t":"byte","b":[0,63,63,63,63,63,63,63]},{"a":46024,"t":"byte","b":[0,85,85,85,85,86,106,105]},{"a":46032,"t":"byte","b":[0,170,170,170,248,207,255,252]},{"a":46040,"t":"byte","b":[0,252,252,252,60,44,44,236]},{"a":46048,"t":"byte","b":[232,111,230,239,246,110,111,86]},{"a":46056,"t":"byte","b":[21,21,21,22,22,26,26,26]},{"a":46064,"t":"byte","b":[86,106,170,170,166,105,154,150]},{"a":46072,"t":"byte","b":[163,170,191,255,255,191,239,255]},{"a":46080,"t":"byte","b":[248,168,168,168,168,168,168,168]},{"a":46088,"t":"byte","b":[111,111,239,230,94,126,102,82]},{"a":46096,"t":"byte","b":[47,47,46,47,47,47,43,43]},{"a":46104,"t":"byte","b":[149,149,149,101,101,89,166,105]},{"a":46112,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":46120,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":46128,"t":"byte","b":[230,111,235,232,175,254,102,246]},{"a":46136,"t":"byte","b":[63,63,63,63,63,63,63,0]},{"a":46144,"t":"byte","b":[149,105,90,85,85,85,85,0]},{"a":46152,"t":"byte","b":[170,170,234,254,175,170,170,0]},{"a":46160,"t":"byte","b":[168,168,168,168,168,248,168,0]},{"a":46168,"t":"byte","b":[232,111,230,230,102,110,111,111]},{"a":46176,"l":"ICON_ARTAX","c":"Artax scripted-scene graphic. Slot 24 of OBJECT_ICON_TABLE: a 4x4-cell,\n160-byte interleaved multicolor payload depicting a dark horse on open brown ground.\nSTATIC IDENTITY PROOF: VOCAB_ARTAX at $1C2A is stem \"art\", noun id $57.\nVERB_RULE_GET_ARTAX at $19BA is pair 13 ($15 GET, $57 ARTAX), whose pointer at $29A0 selects\nACTION_SCRIPT_GET_ARTAX at $2B55. Its successful room-$25 branch contains action bytes\n$17,$18 at $2B5E-$2B5F; opcode $17 is SCRIPT_SET_OBJECT_GRAPHIC and operand $18 is slot 24,\nwhose address is $A560 + 24*$A0 = $B460. This scripted path bypasses NOUN_TO_OBJECT_INDEX.","t":"byte","b":[0,63,55,63,61,29,21,53]},{"a":46184,"t":"byte","b":[0,223,255,247,245,85,87,85]},{"a":46192,"t":"byte","b":[0,247,93,255,215,95,117,85]},{"a":46200,"t":"byte","b":[0,252,116,252,124,252,84,116]},{"a":46208,"t":"byte","b":[138,138,143,143,87,247,103,87]},{"a":46216,"t":"byte","b":[21,21,21,21,21,21,21,21]},{"a":46224,"t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":46232,"t":"byte","b":[85,85,85,85,84,84,80,64]},{"a":46240,"t":"byte","b":[84,84,84,84,84,20,4,4]},{"a":46248,"t":"byte","b":[140,143,143,139,95,123,107,95]},{"a":46256,"t":"byte","b":[42,32,32,42,42,42,40,34]},{"a":46264,"t":"byte","b":[170,128,0,128,0,2,138,42]},{"a":46272,"t":"byte","b":[0,2,2,2,2,136,162,168]},{"a":46280,"t":"byte","b":[168,168,168,168,168,168,40,40]},{"a":46288,"t":"byte","b":[200,200,200,232,175,255,111,247]},{"a":46296,"t":"byte","b":[21,21,0,0,0,0,0,0]},{"a":46304,"t":"byte","b":[85,85,0,0,0,0,0,0]},{"a":46312,"t":"byte","b":[85,85,0,0,0,0,0,0]},{"a":46320,"t":"byte","b":[84,84,0,0,0,0,0,0]},{"a":46328,"t":"byte","b":[143,130,143,135,108,108,108,98]},{"a":46336,"l":"ICON_25","c":"ICON_25 - stone (grey boulder). Slot 25 of OBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160\nbytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[25] = $26, parser object id $58, vocabulary\nstem \"sto\".","t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":46344,"t":"byte","b":[0,3,63,159,166,125,181,127]},{"a":46352,"t":"byte","b":[0,192,192,192,124,172,212,255]},{"a":46360,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46368,"t":"byte","b":[232,207,207,232,91,251,107,88]},{"a":46376,"t":"byte","b":[3,3,3,3,15,15,0,3]},{"a":46384,"t":"byte","b":[254,190,250,255,251,231,213,93]},{"a":46392,"t":"byte","b":[191,191,183,175,175,171,107,235]},{"a":46400,"t":"byte","b":[0,0,0,0,0,0,0,192]},{"a":46408,"t":"byte","b":[232,201,201,232,91,91,123,107]},{"a":46416,"t":"byte","b":[3,14,15,53,61,12,15,3]},{"a":46424,"t":"byte","b":[169,165,165,149,213,253,255,207]},{"a":46432,"t":"byte","b":[85,87,119,127,95,127,253,241]},{"a":46440,"t":"byte","b":[128,176,176,160,224,128,176,176]},{"a":46448,"t":"byte","b":[207,159,152,233,171,251,107,251]},{"a":46456,"t":"byte","b":[3,3,0,0,0,0,0,0]},{"a":46464,"t":"byte","b":[255,192,0,0,0,0,0,0]},{"a":46472,"t":"byte","b":[207,255,252,0,0,0,0,0]},{"a":46480,"t":"byte","b":[192,192,0,0,0,0,0,0]},{"a":46488,"t":"byte","b":[232,232,152,232,107,107,107,107]},{"a":46496,"l":"ICON_26","c":"ICON_26 - apple (red fruit with green leaves and a highlight). Slot 26 of OBJECT_ICON_TABLE:\n4x4-cell multicolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[26] = $27,\nparser object id $59, vocabulary stem \"app\".","t":"byte","b":[0,0,12,15,15,3,3,0]},{"a":46504,"t":"byte","b":[0,0,0,0,192,240,252,1]},{"a":46512,"t":"byte","b":[0,0,10,42,170,168,160,0]},{"a":46520,"t":"byte","b":[0,0,0,192,0,0,0,0]},{"a":46528,"t":"byte","b":[232,40,21,232,245,85,200,101]},{"a":46536,"t":"byte","b":[0,0,3,1,13,13,13,13]},{"a":46544,"t":"byte","b":[34,168,81,102,87,125,190,154]},{"a":46552,"t":"byte","b":[42,10,85,166,89,86,102,101]},{"a":46560,"t":"byte","b":[0,64,80,112,124,92,92,252]},{"a":46568,"t":"byte","b":[88,82,82,88,82,113,104,82]},{"a":46576,"t":"byte","b":[15,13,15,15,15,3,3,0]},{"a":46584,"t":"byte","b":[90,90,90,154,170,166,170,170]},{"a":46592,"t":"byte","b":[169,106,106,170,105,170,170,170]},{"a":46600,"t":"byte","b":[124,124,124,252,252,240,240,192]},{"a":46608,"t":"byte","b":[88,82,82,88,98,88,88,162]},{"a":46616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46624,"t":"byte","b":[42,2,0,0,0,0,0,0]},{"a":46632,"t":"byte","b":[170,160,0,0,0,0,0,0]},{"a":46640,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46648,"t":"byte","b":[232,82,98,229,95,104,104,15]},{"a":46656,"l":"UNUSED_ICON_CRUCIFIX","c":"Unused crucifix artwork. Slot 27 of OBJECT_ICON_TABLE: a finished 4x4-cell,\n160-byte interleaved multicolor payload depicting a gold Latin cross on black.\nThe intended noun is recoverable: VOCAB_CRUCIFIX at $1C36 is stem \"cru\", noun id $5A. The\nnormal icon resolver subtracts the object-id base $32, so it would need key $28 in\nNOUN_TO_OBJECT_INDEX, but that key is absent and slot 27 contains zero. The only writers of\nCURRENT_OBJECT_INDEX are the noun resolver ($15FB) and SCRIPT_SET_OBJECT_GRAPHIC ($114F).\nNo action bytecode in the initialized program contains the direct opcode/operand pair $17,$1B\nneeded to select slot 27. No decoded instruction or recorded reference reads $B640-$B6DF. This is recognisable abandoned inventory artwork, not a\nlive part-specific icon.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46664,"t":"byte","b":[0,0,1,8,12,3,15,13]},{"a":46672,"t":"byte","b":[0,0,128,48,48,192,240,112]},{"a":46680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46688,"t":"byte","b":[232,23,23,232,111,88,248,111]},{"a":46696,"t":"byte","b":[0,0,0,10,9,9,9,10]},{"a":46704,"t":"byte","b":[13,13,13,253,85,170,170,254]},{"a":46712,"t":"byte","b":[176,176,176,191,149,106,170,191]},{"a":46720,"t":"byte","b":[0,0,0,160,96,224,224,160]},{"a":46728,"t":"byte","b":[24,23,23,24,87,8,104,103]},{"a":46736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46744,"t":"byte","b":[11,11,11,11,9,9,9,11]},{"a":46752,"t":"byte","b":[176,176,176,176,176,176,176,176]},{"a":46760,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46768,"t":"byte","b":[232,24,151,232,95,103,88,95]},{"a":46776,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46784,"t":"byte","b":[13,13,14,13,14,15,15,0]},{"a":46792,"t":"byte","b":[176,176,176,176,176,240,240,0]},{"a":46800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":46808,"t":"byte","b":[232,23,247,37,111,24,8,111]},{"a":46816,"l":"ICON_28","c":"ICON_28 \u2014 book (patterned brown cover with a central boss). Slot 28 of OBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[28] = $29, parser object id $5B, vocabulary stem \"boo\".\nThis is the last intact slot before the excluded intro-data range, which begins at slot 29: $B780 = $A560 + 29*160.","t":"byte","b":[0,0,51,28,51,31,48,31]},{"a":46824,"t":"byte","b":[0,0,69,69,21,21,85,85]},{"a":46832,"t":"byte","b":[0,0,85,85,85,85,85,165]},{"a":46840,"t":"byte","b":[0,0,60,48,204,204,240,252]},{"a":46848,"t":"byte","b":[134,152,152,232,249,87,103,249]},{"a":46856,"t":"byte","b":[34,26,34,42,18,26,42,34]},{"a":46864,"t":"byte","b":[85,86,86,89,85,102,101,165]},{"a":46872,"t":"byte","b":[165,89,89,86,165,89,85,165]},{"a":46880,"t":"byte","b":[168,168,168,168,168,104,104,88]},{"a":46888,"t":"byte","b":[137,152,152,137,119,103,87,87]},{"a":46896,"t":"byte","b":[47,35,63,51,47,35,63,51]},{"a":46904,"t":"byte","b":[101,102,85,89,86,86,85,85]},{"a":46912,"t":"byte","b":[85,89,165,86,89,89,165,165]},{"a":46920,"t":"byte","b":[188,188,252,252,252,252,252,252]},{"a":46928,"t":"byte","b":[232,152,152,232,89,167,103,89]},{"a":46936,"t":"byte","b":[47,48,47,51,44,51,0,0]},{"a":46944,"t":"byte","b":[85,85,21,21,69,69,0,0]},{"a":46952,"t":"byte","b":[85,85,85,85,85,85,0,0]},{"a":46960,"t":"byte","b":[252,240,204,204,48,60,0,0]},{"a":46968,"t":"byte","b":[232,152,152,232,105,135,39,105]},{"a":46976,"l":"EXCLUDED_INTRO_DATA","c":"Excluded intro text/artwork bytes retained exactly from the gameplay snapshot. This pre-game data is not decoded or structurally modeled.","t":"byte","b":[134,183,93,184,214,170,255,11],"x":[5523]},{"a":46984,"t":"byte","b":[92,32,32,32,32,32,32,32]},{"a":46992,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47000,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47008,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47016,"t":"byte","b":[32,32,32,32,32,32,32,93]},{"a":47024,"t":"byte","b":[255,2,32,32,32,32,32,32]},{"a":47032,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47040,"t":"byte","b":[32,32,32,199,200,151,152,139]},{"a":47048,"t":"byte","b":[140,60,32,32,32,32,32,32]},{"a":47056,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47064,"t":"byte","b":[32,32,32,201,202,153,154,141]},{"a":47072,"t":"byte","b":[142,60,60,60,32,32,32,32]},{"a":47080,"t":"byte","b":[32,32,32,32,32,175,176,139]},{"a":47088,"t":"byte","b":[140,207,208,139,140,191,192,139]},{"a":47096,"t":"byte","b":[140,175,176,135,136,155,156,175]},{"a":47104,"t":"byte","b":[176,147,148,60,32,32,32,32]},{"a":47112,"t":"byte","b":[32,32,32,32,32,177,178,141]},{"a":47120,"t":"byte","b":[142,209,210,141,142,193,194,141]},{"a":47128,"t":"byte","b":[142,177,178,137,138,157,158,177]},{"a":47136,"t":"byte","b":[178,149,150,60,60,60,32,32]},{"a":47144,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47152,"t":"byte","b":[32,32,32,32,32,195,196,199]},{"a":47160,"t":"byte","b":[200,179,180,191,192,219,220,60]},{"a":47168,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47176,"t":"byte","b":[32,32,32,32,32,32,32,197]},{"a":47184,"t":"byte","b":[198,201,202,181,182,193,194,221]},{"a":47192,"t":"byte","b":[222,60,60,60,64,7,60,32]},{"a":47200,"t":"byte","b":[32,32,32,71,97,109,101,32]},{"a":47208,"t":"byte","b":[68,101,115,105,103,110,60,32]},{"a":47216,"t":"byte","b":[32,32,32,38,32,80,114,111]},{"a":47224,"t":"byte","b":[103,114,97,109,109,105,110,103]},{"a":47232,"t":"byte","b":[32,32,66,121,32,32,73,97]},{"a":47240,"t":"byte","b":[110,32,87,101,97,116,104,101]},{"a":47248,"t":"byte","b":[114,98,117,114,110,60,60,32]},{"a":47256,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47264,"t":"byte","b":[71,114,97,112,104,105,99,115]},{"a":47272,"t":"byte","b":[32,32,66,121,32,32,83,116]},{"a":47280,"t":"byte","b":[101,118,101,32,67,97,105,110]},{"a":47288,"t":"byte","b":[60,60,32,32,32,32,32,32]},{"a":47296,"t":"byte","b":[32,32,32,32,32,32,77,117]},{"a":47304,"t":"byte","b":[115,105,99,32,32,66,121,32]},{"a":47312,"t":"byte","b":[32,77,97,114,116,105,110,32]},{"a":47320,"t":"byte","b":[71,97,108,119,97,121,60,60]},{"a":47328,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":47336,"t":"byte","b":[32,32,67,114,97,99,107,101]},{"a":47344,"t":"byte","b":[100,32,32,66,121,32,32,67]},{"a":47352,"t":"byte","b":[32,67,32,83,32,73,110,32]},{"a":47360,"t":"byte","b":[49,57,56,54,32,32,11]},{"a":47367,"l":"ICON_SLOT_31_ARTWORK_TAIL","c":"ICON_SLOT_31_ARTWORK_TAIL ($B907-$B95F, 89 bytes) \u2014 surviving tail of OBJECT_ICON_TABLE slot 31.\nSlot 31 spans $B8C0-$B95F ($A560 + 31*160). Its first 71 bytes overlap the excluded intro-data range ending at $B906; these final 89 bytes are the icon tail. Slots 29-31 are unreachable through ordinary noun resolution because their NOUN_TO_OBJECT_INDEX entries are zero behind the valid zero at index 0.\nICON_32 resumes exactly at the next slot boundary, $B960.","t":"byte","b":[64,168,167,168,168,87,88,215]},{"a":47375,"t":"byte","b":[199,2,0,3,0,0,0,0]},{"a":47383,"t":"byte","b":[0,3,14,162,2,136,35,3]},{"a":47391,"t":"byte","b":[2,2,0,46,0,136,32,0]},{"a":47399,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":47407,"t":"byte","b":[0,232,232,232,232,7,103,7]},{"a":47415,"t":"byte","b":[57,11,3,0,2,0,0,0]},{"a":47423,"t":"byte","b":[0,140,12,8,8,224,0,0]},{"a":47431,"t":"byte","b":[0,142,195,192,195,60,0,0]},{"a":47439,"t":"byte","b":[0,128,0,0,0,0,0,0]},{"a":47447,"t":"byte","b":[0,87,232,231,232,104,7,88]},{"a":47455,"t":"byte","b":[105]},{"a":47456,"l":"ICON_32","c":"ICON_32 \u2014 tin (grey cylindrical can with ribbed rim). Slot 32 of OBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[32] = $2D, parser object id $5F, vocabulary stem \"tin\".\nThis is the first intact slot after the excluded intro-data block in dead slots 29-31.","t":"byte","b":[0,0,0,0,0,3,2,3]},{"a":47464,"t":"byte","b":[0,0,0,15,240,138,250,175]},{"a":47472,"t":"byte","b":[0,0,0,240,15,162,175,250]},{"a":47480,"t":"byte","b":[0,0,0,0,0,192,128,192]},{"a":47488,"t":"byte","b":[91,235,235,235,108,108,124,108]},{"a":47496,"t":"byte","b":[3,3,3,2,3,2,3,3]},{"a":47504,"t":"byte","b":[117,127,127,255,254,250,250,254]},{"a":47512,"t":"byte","b":[170,250,255,254,127,90,91,126]},{"a":47520,"t":"byte","b":[192,192,192,192,192,192,192,192]},{"a":47528,"t":"byte","b":[89,159,249,232,108,108,108,108]},{"a":47536,"t":"byte","b":[3,3,3,3,2,3,3,2]},{"a":47544,"t":"byte","b":[251,254,238,239,251,254,254,235]},{"a":47552,"t":"byte","b":[229,181,185,245,229,191,189,235]},{"a":47560,"t":"byte","b":[192,192,192,192,192,192,192,192]},{"a":47568,"t":"byte","b":[89,239,159,232,108,108,108,108]},{"a":47576,"t":"byte","b":[3,2,2,3,0,0,0,0]},{"a":47584,"t":"byte","b":[255,255,191,175,250,15,0,0]},{"a":47592,"t":"byte","b":[254,254,250,250,175,240,0,0]},{"a":47600,"t":"byte","b":[192,192,192,192,0,0,0,0]},{"a":47608,"t":"byte","b":[89,233,233,235,108,252,252,108]},{"a":47616,"l":"ICON_33","c":"ICON_33 - horn (curved brown drinking/hunting horn with a gold band). Slot 33 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560.\nNOUN_TO_OBJECT_INDEX[33] = $2E, parser object id $60, vocabulary stem \"hor\".","t":"byte","b":[0,12,60,60,63,48,50,8]},{"a":47624,"t":"byte","b":[0,0,0,168,2,0,0,192]},{"a":47632,"t":"byte","b":[0,0,0,0,240,12,3,3]},{"a":47640,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":47648,"t":"byte","b":[232,236,233,232,103,104,108,104]},{"a":47656,"t":"byte","b":[8,8,10,8,10,10,2,2]},{"a":47664,"t":"byte","b":[192,192,48,240,60,255,255,255]},{"a":47672,"t":"byte","b":[8,8,2,2,8,80,64,63]},{"a":47680,"t":"byte","b":[0,0,0,0,0,0,0,128]},{"a":47688,"t":"byte","b":[232,233,140,231,107,104,103,104]},{"a":47696,"t":"byte","b":[3,3,3,0,0,0,0,2]},{"a":47704,"t":"byte","b":[252,252,242,242,242,50,76,3]},{"a":47712,"t":"byte","b":[253,244,208,208,208,208,208,208]},{"a":47720,"t":"byte","b":[224,48,12,12,12,12,12,12]},{"a":47728,"t":"byte","b":[236,199,137,231,104,104,167,104]},{"a":47736,"t":"byte","b":[12,12,3,3,0,0,0,0]},{"a":47744,"t":"byte","b":[0,0,0,0,192,63,0,0]},{"a":47752,"t":"byte","b":[244,13,32,128,128,0,0,0]},{"a":47760,"t":"byte","b":[48,240,0,0,0,0,0,0]},{"a":47768,"t":"byte","b":[232,233,140,233,108,252,247,200]},{"a":47776,"l":"ICON_34","c":"ICON_34 - pouch (brown gathered bag). Slot 34 of OBJECT_ICON_TABLE: 4x4-cell multicolor\npayload, 160 bytes; see the plate at $A560. NOUN_TO_OBJECT_INDEX[34] = $2F, parser object id\n$61, vocabulary stem \"pou\".","t":"byte","b":[0,0,0,0,0,48,12,12]},{"a":47784,"t":"byte","b":[0,0,207,243,44,59,62,15]},{"a":47792,"t":"byte","b":[0,0,60,195,63,239,188,240]},{"a":47800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":47808,"t":"byte","b":[88,232,232,232,105,105,105,104]},{"a":47816,"t":"byte","b":[3,0,3,3,12,12,48,3]},{"a":47824,"t":"byte","b":[15,243,12,60,60,255,236,227]},{"a":47832,"t":"byte","b":[240,48,240,204,204,252,255,255]},{"a":47840,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":47848,"t":"byte","b":[94,56,22,22,105,105,105,137]},{"a":47856,"t":"byte","b":[3,3,3,15,15,15,15,3]},{"a":47864,"t":"byte","b":[190,190,255,187,171,235,238,255]},{"a":47872,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":47880,"t":"byte","b":[0,192,192,240,240,240,240,240]},{"a":47888,"t":"byte","b":[83,88,22,230,105,169,169,105]},{"a":47896,"t":"byte","b":[3,3,0,0,0,0,0,0]},{"a":47904,"t":"byte","b":[255,255,255,63,0,0,0,0]},{"a":47912,"t":"byte","b":[255,255,255,240,0,0,0,0]},{"a":47920,"t":"byte","b":[240,192,0,0,0,0,0,0]},{"a":47928,"t":"byte","b":[88,230,232,232,249,105,249,249]},{"a":47936,"l":"ICON_35","c":"ICON_35 - coin (gold disc with a spiral device and a milled edge). Slot 35 of\nOBJECT_ICON_TABLE: 4x4-cell multicolor payload, 160 bytes; see the plate at $A560.\nNOUN_TO_OBJECT_INDEX[35] = $30, parser object id $62, vocabulary stem \"coi\".\nThis is the LAST slot: it ends at $BBDF, and NOUN_TO_OBJECT_INDEX's $FF terminator at $22C8\nconfirms there is no slot 36.","t":"byte","b":[0,0,0,0,0,0,0,3]},{"a":47944,"t":"byte","b":[0,0,0,0,3,62,235,190]},{"a":47952,"t":"byte","b":[0,0,0,0,240,175,90,181]},{"a":47960,"t":"byte","b":[0,0,0,0,0,0,192,176]},{"a":47968,"t":"byte","b":[232,24,24,232,103,103,103,103]},{"a":47976,"t":"byte","b":[3,14,14,46,46,46,14,14]},{"a":47984,"t":"byte","b":[187,254,251,237,183,154,250,251]},{"a":47992,"t":"byte","b":[253,171,255,123,94,222,251,187]},{"a":48000,"t":"byte","b":[112,108,108,236,236,236,236,172]},{"a":48008,"t":"byte","b":[232,24,24,24,103,103,103,103]},{"a":48016,"t":"byte","b":[6,39,41,33,2,8,8,0]},{"a":48024,"t":"byte","b":[187,181,173,107,86,149,137,136]},{"a":48032,"t":"byte","b":[175,251,123,218,175,85,88,136]},{"a":48040,"t":"byte","b":[236,188,184,240,72,128,160,128]},{"a":48048,"t":"byte","b":[24,24,24,24,167,103,167,167]},{"a":48056,"t":"byte","b":[2,0,0,0,0,0,0,0]},{"a":48064,"t":"byte","b":[204,204,12,0,0,0,0,0]},{"a":48072,"t":"byte","b":[136,138,160,0,0,0,0,0]},{"a":48080,"t":"byte","b":[128,0,0,0,0,0,0,0]},{"a":48088,"t":"byte","b":[232,38,232,232,242,200,242,98]},{"a":48096,"l":"ICON_TABLE_ALIGNMENT_RESIDUE","c":"ICON_TABLE_ALIGNMENT_RESIDUE ($BBE0-$BBFF, 32 bytes) \u2014 shipped non-addressed tail between OBJECT_ICON_TABLE and SAVED_BITMAP at the page boundary $BC00.\nICON_35 ends at $BBDF; another 160-byte icon cannot fit before the independently established picture buffer at $BC00. The 32 bytes are repeating $00,$00,$FF,$FF bitmap-like residue with two $00,$10,$FF,$FF variants and final $17. They are present in the decompressed release image, so they are not snapshot corruption. No resident instruction encodes this range and no recorded reference reaches it. Classification: inert alignment/artwork residue, excluded from the 36-slot icon table.","t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":48104,"t":"byte","b":[0,0,255,255,0,16,255,255]},{"a":48112,"t":"byte","b":[0,0,255,255,0,0,255,255]},{"a":48120,"t":"byte","b":[0,0,255,255,0,16,255,23]},{"a":48128,"t":"gap","n":5120},{"a":48128,"t":"note","l":"SAVED_BITMAP","c":"Packed gameplay bitmap bytes restored to $E000 by RESTORE_GAMEPLAY_DISPLAY.","note":"outside the tracked image"},{"a":51328,"t":"note","l":"SAVED_SCREEN","c":"Packed gameplay screen-code bytes restored to $CC00 by RESTORE_GAMEPLAY_DISPLAY.","note":"outside the tracked image"},{"a":51728,"t":"note","l":"SAVED_COLOR","c":"Packed gameplay color bytes restored to $D800 by RESTORE_GAMEPLAY_DISPLAY.","note":"outside the tracked image"},{"a":52128,"t":"note","l":"INPUT_TEXT_BUFFER","c":"INPUT_TEXT_BUFFER ($CBA0-$CBF0, 81 bytes) \u2014 the player's PETSCII command line, space-padded one byte per character.\nREAD_INPUT ($0806) points $0E/$0F here, blanks all 81 bytes to $20, appends characters at INPUT_LEN ($0026), and caps input at 78 characters. PARSE_INPUT ($122F) points $0A/$0B to the same base and scans words; INPUT_LEN provides the bound, so there is no terminator.\nThe buffer occupies part of the 96-byte gap after SAVED_COLOR and before SCREEN_RAM. Snapshot bytes are twelve repetitions of FF FF 00 00 00 00 FF FF, the same load-image fill as DISK_LOADER_IMAGE_UNUSED_TAIL ($9762). They are pre-input residue: INIT_GAME was waiting for SPACE, and READ_INPUT replaces the entire region before use.","note":"outside the tracked image"},{"a":52209,"t":"note","l":"UNUSED_CBF1","c":"$CBF1-$CBFF - 15 bytes of padding between INPUT_TEXT_BUFFER, which ends at $CBF0, and\nSCREEN_RAM at $CC00. Never written or read by the program.","note":"outside the tracked image"},{"a":52224,"t":"note","l":"SCREEN_RAM","c":"One-kilobyte text screen RAM used by the renderer and clear routine.","note":"outside the tracked image","x":[931,939,945]},{"a":53248,"l":"BOOT_FIXUP_POINTERS","c":"Retained boot-decompressor repair pointers, eight high-byte-first pairs: $AB82, $9BEE, $675D, $66E4, $66C2, $66BF, $264B, $25F3. Before Part 1 starts, boot code at $081D/$0820 copies $7E95-$7F94 into hidden RAM $D000-$D0FF with processor port $38. Its relocated loop at $014F-$015F stores the first byte into $FE and the second into $FD, then decrements the pointed byte with DCP ($FD,X), X=0. All eight targets changed $D4 to $D3 in the live boot check. These boot-phase instructions are overwritten in the Part-1 image; this table remains as residue.","s":"Non-fill RAM beneath I/O; consumer and ownership remain unresolved.","t":"byte","b":[171,130,155,238,103,93,102,228]},{"a":53256,"t":"byte","b":[102,194,102,191,38,75,37,243]},{"a":53264,"l":"BOOT_PAGE_COPY_UNUSED_TAIL","c":"Remaining 240 bytes of the boot copy from $7EA5-$7F94 to hidden RAM $D010-$D0FF. The relocated repair loop executes eight times and consumes only the preceding 16 pointer bytes. These bytes are retained copy residue, rather than more repair entries. Bank-conditioned read/store watches observed no access to this page while the title loaded Part 1 and reached its command prompt; no claim about other commands or parts follows from that observation.","t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53272,"t":"byte","b":[0,255,255,253,255,0,0,0]},{"a":53280,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53288,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53296,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53304,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53312,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53320,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53328,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53336,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53344,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53352,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53360,"t":"byte","b":[128,255,255,255,255,0,0,0]},{"a":53368,"t":"byte","b":[0,255,255,255,255,0,4,0]},{"a":53376,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53384,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53392,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53400,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53408,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53416,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53424,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53432,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53440,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53448,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53456,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53464,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53472,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53480,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53488,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53496,"t":"byte","b":[0,255,255,255,255,0,0,0]},{"a":53504,"t":"gap","n":2816},{"a":56320,"l":"PARKED_LOADER_ENTRY","c":"Parked code executed at $CC00 after $03A6 exchanges four pages. Sets $C4=$2F, writes $DD00=$14, and calls KERNAL address $F4A2 until carry clears. The paired BCS $CC10 / BCC $CC1A skips the intervening JSR $CC2B for either carry value. It then loads X from $9739, copies $CBF5+X to $2F01, executes SEI/CLD and returns. The old custom receive path below is not reached through that call in these captured bytes.","t":"byte","b":[169,47,133,196,169,20,141,0],"x":[942,949]},{"a":56328,"t":"byte","b":[221,173,0,221,234,234,169,0]},{"a":56336,"t":"byte","b":[32,162,244,176,251,144,3,32]},{"a":56344,"t":"byte","b":[43,204,174,57,151,189,245,203]},{"a":56352,"t":"byte","b":[141,1,47,120,216,96]},{"a":56358,"l":"PARKED_LOADER_TRAILER_BYTES","c":"Five bytes after the parked entry RTS: $37,$34,$31,$00,$00 (ASCII 741 and two zeros). The following receiver entry is at parked $DC2B / execution $CC2B. No role beyond this placement is established.","t":"byte","b":[55,52,49,0,0]},{"a":56363,"l":"PARKED_LOADER_MATCH_HEADER","c":"Execution $CC2B: receives a header via $CC56, decrements border colour, and compares ($BB),Y with $2F41,Y using Y=4. A mismatch retries the header. On a match, loads Y from $2F3E, sets $AE=Y-1 and destination low $C3=0; sets upper bound $AF=$2F3F+$27, then calls the receive-to-memory routine $CC6A.","t":"byte","b":[32,86,204,206,32,208,160,4]},{"a":56371,"t":"byte","b":[177,187,217,65,47,208,241,172]},{"a":56379,"t":"byte","b":[62,47,136,132,174,169,0,133]},{"a":56387,"t":"byte","b":[195,24,173,63,47,105,39,133]},{"a":56395,"t":"byte","b":[175,234,234,234,234,234,234,32]},{"a":56403,"t":"byte","b":[106,204,96]},{"a":56406,"l":"PARKED_LOADER_READ_HEADER","c":"Execution $CC56: synchronize at $CC8A; if returned A=0 retry. Read bytes through $CCAF into $2F3C,Y, incrementing Y until $C0, then branch to $CC87 for CLD/CLV/RTS. Uses the Y left by the synchronization routine, rather than initializing a separate header index here.","t":"byte","b":[32,138,204,201,0,240,249,32]},{"a":56414,"t":"byte","b":[175,204,153,60,47,200,192,192]},{"a":56422,"t":"byte","b":[208,245,240,29]},{"a":56426,"l":"PARKED_LOADER_READ_PAYLOAD","c":"Execution $CC6A: synchronize, then read each byte through $CCAF and store at ($C3),Y. Increment the $C3/$C4 destination pointer and compare it with $AE/$AF using CMP low byte followed by SBC high byte; repeat while carry is clear. Write $D011=$0B, clear decimal/overflow flags and return. Preserve the literal Y-indexed store when interpreting destinations.","t":"byte","b":[32,138,204,32,175,204,145,195]},{"a":56434,"t":"byte","b":[230,195,208,2,230,196,165,195]},{"a":56442,"t":"byte","b":[197,174,165,196,229,175,144,235]},{"a":56450,"t":"byte","b":[169,11,141,17,208,216,184,96]},{"a":56458,"l":"PARKED_LOADER_SYNC","c":"Execution $CC8A: call timer/display setup $CCCE, shift carry bits from $CCBC into $BD until $BD=$02, then set Y=9. Read bytes with $CCAF, reject repeated $02 values and compare Y with $BD; mismatches restart the bit search. Consume the remaining counted bytes and return with Y=0.","t":"byte","b":[234,234,234,32,206,204,32,188]},{"a":56466,"t":"byte","b":[204,38,189,165,189,201,2,208]},{"a":56474,"t":"byte","b":[245,160,9,32,175,204,201,2]},{"a":56482,"t":"byte","b":[240,249,196,189,208,232,32,175]},{"a":56490,"t":"byte","b":[204,136,208,246,96]},{"a":56495,"l":"PARKED_LOADER_READ_BYTE","c":"Execution $CCAF: X=7, call the bit routine $CCBC and ROL $BD eight times while decrementing X through zero. Return the assembled $BD byte in A; Y is unchanged.","t":"byte","b":[162,7,32,188,204,38,189,202]},{"a":56503,"t":"byte","b":[16,248,165,189,96]},{"a":56508,"l":"PARKED_LOADER_READ_BIT","c":"Execution $CCBC: wait for bit $10 in CIA1 interrupt-control register $DC0D. Read CIA2 interrupt-control $DD0D and compare with $02, leaving that comparison carry for the caller. Write $19 to CIA2 timer-B control $DD0F and return. Hardware addresses here are evaluated after relocation to $CCxx, not as physical RAM addresses of this parked image.","t":"byte","b":[169,16,44,13,220,240,251,173]},{"a":56516,"t":"byte","b":[13,221,201,2,169,25,141,15]},{"a":56524,"t":"byte","b":[221,96]},{"a":56526,"l":"PARKED_LOADER_TIMER_SETUP","c":"Execution $CCCE: set $D011=$0B, CIA2 timer-B latch $DD06/$DD07=$010C, execute SEI and set processor port $01=$07. Set Y=0 before returning. $07 has LORAM, HIRAM and CHAREN set, leaving I/O and the BASIC/KERNAL ROMs visible; caller code executes from ordinary $CCxx RAM; the parked copy itself is under I/O.","t":"byte","b":[169,11,141,17,208,169,12,141]},{"a":56534,"t":"byte","b":[6,221,160,1,140,7,221,169]},{"a":56542,"t":"byte","b":[7,120,133,1,136,96]},{"a":56548,"t":"gap","n":6940},{"a":63488,"l":"gameplay_character_set","c":"Gameplay character set at $F800: 256 glyphs of eight bytes, read by the VIC in the text band. RASTER_SPLIT_TEXT at $A80A writes $D018=$3E with VIC bank $C000, selecting this RAM beneath KERNAL ROM. This lower half contains glyphs 0\u2013127, including ordinary text and the upper tiles of the enlarged capitals. The fresh font does not match either half of the machine character ROM.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63504,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63512,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63528,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63536,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63544,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63552,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63568,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63576,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63584,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63592,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63600,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63608,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63632,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63640,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63648,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63656,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63704,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63712,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63720,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63728,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63744,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63752,"t":"byte","b":[112,48,48,48,24,0,48,48]},{"a":63760,"t":"byte","b":[54,54,18,36,0,0,0,0]},{"a":63768,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63776,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63784,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63792,"t":"byte","b":[112,136,112,32,88,128,140,120]},{"a":63800,"t":"byte","b":[24,24,8,16,0,0,0,0]},{"a":63808,"t":"byte","b":[3,3,4,12,12,12,14,7]},{"a":63816,"t":"byte","b":[96,96,16,24,24,24,56,112]},{"a":63824,"t":"byte","b":[60,66,153,161,161,153,66,60]},{"a":63832,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63840,"t":"byte","b":[0,0,0,0,48,48,16,32]},{"a":63848,"t":"byte","b":[0,0,0,0,255,0,0,0]},{"a":63856,"t":"byte","b":[0,0,0,0,48,48,0,0]},{"a":63864,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63872,"t":"byte","b":[62,69,73,73,127,62,0,0]},{"a":63880,"t":"byte","b":[8,56,8,8,28,62,0,0]},{"a":63888,"t":"byte","b":[62,67,115,38,24,127,0,0]},{"a":63896,"t":"byte","b":[62,65,30,65,127,62,0,0]},{"a":63904,"t":"byte","b":[14,28,45,127,12,30,0,0]},{"a":63912,"t":"byte","b":[63,32,126,3,67,62,0,0]},{"a":63920,"t":"byte","b":[63,64,126,67,67,62,0,0]},{"a":63928,"t":"byte","b":[127,97,18,4,24,60,0,0]},{"a":63936,"t":"byte","b":[62,65,62,65,127,62,0,0]},{"a":63944,"t":"byte","b":[62,67,63,3,67,62,0,0]},{"a":63952,"t":"byte","b":[0,24,24,0,24,24,0,0]},{"a":63960,"t":"byte","b":[0,24,24,0,24,24,8,0]},{"a":63968,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63976,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":63984,"t":"byte","b":[0,96,192,120,14,120,192,96]},{"a":63992,"t":"byte","b":[62,67,3,6,24,0,24,24]},{"a":64000,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64008,"t":"byte","b":[62,85,54,44,66,66,226,231]},{"a":64016,"t":"byte","b":[124,166,120,44,98,99,99,254]},{"a":64024,"t":"byte","b":[60,67,131,132,128,193,127,62]},{"a":64032,"t":"byte","b":[124,162,113,41,33,33,127,254]},{"a":64040,"t":"byte","b":[255,33,62,56,36,33,127,255]},{"a":64048,"t":"byte","b":[255,33,62,56,36,32,112,248]},{"a":64056,"t":"byte","b":[60,70,128,128,135,130,254,127]},{"a":64064,"t":"byte","b":[231,166,100,60,38,37,102,231]},{"a":64072,"t":"byte","b":[60,34,12,12,12,12,38,28]},{"a":64080,"t":"byte","b":[126,99,38,6,6,70,255,126]},{"a":64088,"t":"byte","b":[103,172,112,108,102,102,102,243]},{"a":64096,"t":"byte","b":[240,96,96,98,98,193,159,126]},{"a":64104,"t":"byte","b":[126,153,126,153,153,153,153,219]},{"a":64112,"t":"byte","b":[126,161,97,98,98,100,103,246]},{"a":64120,"t":"byte","b":[60,66,140,129,129,195,255,126]},{"a":64128,"t":"byte","b":[252,98,105,111,110,96,96,240]},{"a":64136,"t":"byte","b":[60,66,129,129,129,223,114,28]},{"a":64144,"t":"byte","b":[254,67,67,92,76,70,70,199]},{"a":64152,"t":"byte","b":[126,225,112,28,70,195,255,126]},{"a":64160,"t":"byte","b":[255,153,90,24,24,24,24,60]},{"a":64168,"t":"byte","b":[231,166,102,86,206,134,254,127]},{"a":64176,"t":"byte","b":[99,147,101,105,49,50,28,24]},{"a":64184,"t":"byte","b":[66,129,189,153,153,153,255,102]},{"a":64192,"t":"byte","b":[231,201,114,60,56,76,134,199]},{"a":64200,"t":"byte","b":[195,161,98,52,24,24,24,60]},{"a":64208,"t":"byte","b":[255,195,38,12,25,50,99,255]},{"a":64216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64224,"t":"byte","b":[252,240,224,192,128,128,0,0]},{"a":64232,"t":"byte","b":[63,15,7,3,1,1,0,0]},{"a":64240,"t":"byte","b":[0,0,128,128,192,224,240,252]},{"a":64248,"t":"byte","b":[0,0,1,1,3,7,15,63]},{"a":64256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64264,"t":"byte","b":[0,0,62,102,102,102,63,0]},{"a":64272,"t":"byte","b":[112,48,62,51,51,51,126,0]},{"a":64280,"t":"byte","b":[0,0,62,96,96,97,62,0]},{"a":64288,"t":"byte","b":[7,6,62,102,102,102,63,0]},{"a":64296,"t":"byte","b":[0,0,62,99,127,96,62,0]},{"a":64304,"t":"byte","b":[14,24,126,24,24,24,60,0]},{"a":64312,"t":"byte","b":[0,0,63,102,102,63,131,126]},{"a":64320,"t":"byte","b":[112,48,62,51,51,51,115,0]},{"a":64328,"t":"byte","b":[12,0,28,12,12,76,63,0]},{"a":64336,"t":"byte","b":[3,0,15,3,3,67,67,62]},{"a":64344,"t":"byte","b":[112,48,55,50,60,50,119,0]},{"a":64352,"t":"byte","b":[56,24,24,24,56,89,62,0]},{"a":64360,"t":"byte","b":[0,0,246,127,107,99,99,0]},{"a":64368,"t":"byte","b":[0,0,110,51,51,51,115,0]},{"a":64376,"t":"byte","b":[0,0,62,99,99,99,62,0]},{"a":64384,"t":"byte","b":[0,0,126,51,51,62,48,112]},{"a":64392,"t":"byte","b":[0,0,63,102,102,62,7,6]},{"a":64400,"t":"byte","b":[0,0,119,59,48,48,112,0]},{"a":64408,"t":"byte","b":[0,0,62,97,62,67,62,0]},{"a":64416,"t":"byte","b":[112,48,124,48,48,49,30,0]},{"a":64424,"t":"byte","b":[0,0,103,103,102,102,63,0]},{"a":64432,"t":"byte","b":[0,0,99,51,27,14,6,0]},{"a":64440,"t":"byte","b":[0,0,227,99,107,127,54,0]},{"a":64448,"t":"byte","b":[0,0,115,30,14,30,115,0]},{"a":64456,"t":"byte","b":[0,0,103,102,102,63,131,126]},{"a":64464,"t":"byte","b":[0,0,127,78,28,57,127,0]},{"a":64472,"t":"byte","b":[63,127,70,44,28,24,24,48]},{"a":64480,"t":"byte","b":[254,255,51,54,60,24,56,120]},{"a":64488,"t":"byte","b":[48,105,103,192,208,248,248,112]},{"a":64496,"t":"byte","b":[216,140,12,12,12,12,30,63]},{"a":64504,"t":"byte","b":[127,255,156,92,60,31,28,28]},{"a":64512,"l":"gameplay_character_set_upper","c":"Upper half of the $F800 gameplay character set: glyphs 128\u2013255 at eight bytes each, including additional tiles used by the enlarged-capital printer. Its glyph index is (address-$F800)/8. The VIC can read this RAM while CPU port $36 exposes KERNAL ROM to the CPU; it is authored display data, not the ROM bytes the CPU reads here.","t":"byte","b":[240,252,12,6,6,12,252,60]},{"a":64520,"t":"byte","b":[28,28,28,28,28,63,127,248]},{"a":64528,"t":"byte","b":[14,7,3,3,7,30,254,248]},{"a":64536,"t":"byte","b":[3,15,24,48,97,96,224,224]},{"a":64544,"t":"byte","b":[224,248,28,6,142,126,60,0]},{"a":64552,"t":"byte","b":[224,224,224,112,124,63,31,7]},{"a":64560,"t":"byte","b":[0,0,0,1,7,255,254,248]},{"a":64568,"t":"byte","b":[127,252,156,124,28,30,29,28]},{"a":64576,"t":"byte","b":[224,56,12,6,6,3,3,3]},{"a":64584,"t":"byte","b":[28,28,28,28,28,63,127,248]},{"a":64592,"t":"byte","b":[3,3,7,7,15,126,254,248]},{"a":64600,"t":"byte","b":[255,127,56,56,56,60,63,59]},{"a":64608,"t":"byte","b":[252,254,2,4,0,0,56,240]},{"a":64616,"t":"byte","b":[57,56,56,56,56,63,127,248]},{"a":64624,"t":"byte","b":[224,0,0,0,1,135,255,126]},{"a":64632,"t":"byte","b":[255,127,56,56,56,60,63,59]},{"a":64640,"t":"byte","b":[254,255,2,4,0,0,56,240]},{"a":64648,"t":"byte","b":[57,56,56,56,56,56,124,254]},{"a":64656,"t":"byte","b":[224,0,0,0,0,0,0,0]},{"a":64664,"t":"byte","b":[7,28,48,96,96,192,192,192]},{"a":64672,"t":"byte","b":[224,124,14,14,28,112,192,64]},{"a":64680,"t":"byte","b":[192,192,224,224,120,127,63,15]},{"a":64688,"t":"byte","b":[0,0,15,6,6,254,254,255]},{"a":64696,"t":"byte","b":[252,120,176,176,112,62,49,63]},{"a":64704,"t":"byte","b":[63,30,12,12,12,12,12,252]},{"a":64712,"t":"byte","b":[63,48,48,48,48,48,120,252]},{"a":64720,"t":"byte","b":[252,140,124,14,13,13,30,63]},{"a":64728,"t":"byte","b":[3,7,3,1,0,0,0,0]},{"a":64736,"t":"byte","b":[254,3,62,28,28,28,28,28]},{"a":64744,"t":"byte","b":[0,0,0,2,6,7,7,3]},{"a":64752,"t":"byte","b":[28,28,28,28,30,255,254,252]},{"a":64760,"t":"byte","b":[63,120,112,56,8,16,0,0]},{"a":64768,"t":"byte","b":[254,3,62,28,28,28,28,28]},{"a":64776,"t":"byte","b":[0,0,32,96,248,255,127,31]},{"a":64784,"t":"byte","b":[28,28,28,28,62,255,254,248]},{"a":64792,"t":"byte","b":[124,216,152,88,56,28,27,25]},{"a":64800,"t":"byte","b":[30,14,12,24,48,96,192,192]},{"a":64808,"t":"byte","b":[24,24,24,24,24,24,60,126]},{"a":64816,"l":"TEXT_FONT_CELLS_166_255","c":"Final 90 eight-byte character-set cells, indexes 166-255, of the authored 256-cell font at $F800-$FFFF. The text raster phase selects this RAM character set with $D018=$3E at $A80A. These 720 bytes are glyph bitmap data; the field boundary at $FD30 begins cell 166.","t":"byte","b":[224,112,56,60,29,31,31,14],"x":[43186]},{"a":64824,"t":"byte","b":[127,62,28,28,28,28,28,28]},{"a":64832,"t":"byte","b":[0,0,0,0,0,0,12,28]},{"a":64840,"t":"byte","b":[28,28,28,28,28,112,135,127]},{"a":64848,"t":"byte","b":[24,8,30,6,126,255,255,14]},{"a":64856,"t":"byte","b":[126,207,219,113,57,55,113,97]},{"a":64864,"t":"byte","b":[126,251,223,142,156,238,142,142]},{"a":64872,"t":"byte","b":[123,97,225,193,193,193,227,119]},{"a":64880,"t":"byte","b":[134,135,135,135,135,135,207,238]},{"a":64888,"t":"byte","b":[127,220,220,92,60,28,31,29]},{"a":64896,"t":"byte","b":[240,124,30,15,7,7,7,134]},{"a":64904,"t":"byte","b":[29,28,28,28,28,28,62,127]},{"a":64912,"t":"byte","b":[140,24,48,96,96,126,63,25]},{"a":64920,"t":"byte","b":[3,12,24,48,48,96,96,225]},{"a":64928,"t":"byte","b":[192,48,24,44,44,102,198,135]},{"a":64936,"t":"byte","b":[227,230,228,116,120,63,31,7]},{"a":64944,"t":"byte","b":[7,7,7,14,30,252,248,224]},{"a":64952,"t":"byte","b":[255,120,56,56,56,57,59,63]},{"a":64960,"t":"byte","b":[224,120,28,14,7,7,7,143]},{"a":64968,"t":"byte","b":[63,59,56,56,56,56,124,254]},{"a":64976,"t":"byte","b":[254,252,240,0,0,0,0,0]},{"a":64984,"t":"byte","b":[3,12,24,48,48,96,96,225]},{"a":64992,"t":"byte","b":[192,48,24,44,44,70,198,135]},{"a":65000,"t":"byte","b":[227,230,228,116,120,63,31,7]},{"a":65008,"t":"byte","b":[7,7,7,14,240,252,254,195]},{"a":65016,"t":"byte","b":[127,184,184,120,56,56,63,56]},{"a":65024,"t":"byte","b":[240,124,30,14,12,56,240,240]},{"a":65032,"t":"byte","b":[56,56,56,56,56,56,124,254]},{"a":65040,"t":"byte","b":[56,56,28,28,28,28,30,15]},{"a":65048,"t":"byte","b":[31,120,96,112,56,14,3,0]},{"a":65056,"t":"byte","b":[248,60,24,16,0,0,128,224]},{"a":65064,"t":"byte","b":[0,60,126,114,248,255,127,31]},{"a":65072,"t":"byte","b":[56,14,7,7,15,255,254,248]},{"a":65080,"t":"byte","b":[63,113,121,57,49,65,1,1]},{"a":65088,"t":"byte","b":[254,199,207,206,198,193,192,192]},{"a":65096,"t":"byte","b":[1,1,1,1,1,1,3,7]},{"a":65104,"t":"byte","b":[192,192,192,192,192,192,224,240]},{"a":65112,"t":"byte","b":[62,78,70,60,15,24,48,96]},{"a":65120,"t":"byte","b":[31,30,28,28,28,220,60,28]},{"a":65128,"t":"byte","b":[224,224,224,112,124,63,31,7]},{"a":65136,"t":"byte","b":[28,28,28,28,60,252,254,143]},{"a":65144,"t":"byte","b":[252,198,124,112,59,56,28,28]},{"a":65152,"t":"byte","b":[14,31,55,199,7,6,6,4]},{"a":65160,"t":"byte","b":[14,14,7,7,3,3,1,1]},{"a":65168,"t":"byte","b":[12,8,24,16,240,224,192,128]},{"a":65176,"t":"byte","b":[112,232,224,224,232,119,113,113]},{"a":65184,"t":"byte","b":[6,11,3,3,30,230,134,134]},{"a":65192,"t":"byte","b":[113,115,114,62,62,62,28,28]},{"a":65200,"t":"byte","b":[134,198,70,108,44,60,24,24]},{"a":65208,"t":"byte","b":[124,194,237,112,56,28,14,7]},{"a":65216,"t":"byte","b":[15,119,134,12,24,48,96,192]},{"a":65224,"t":"byte","b":[3,3,6,12,24,48,112,124]},{"a":65232,"t":"byte","b":[128,192,224,112,56,28,14,31]},{"a":65240,"t":"byte","b":[124,194,237,112,56,28,14,7]},{"a":65248,"t":"byte","b":[7,63,198,12,24,48,96,192]},{"a":65256,"t":"byte","b":[3,1,1,1,1,1,3,7]},{"a":65264,"t":"byte","b":[192,192,192,192,192,192,224,240]},{"a":65272,"t":"byte","b":[127,120,24,6,6,8,0,1]},{"a":65280,"t":"byte","b":[255,63,14,28,56,112,224,192]},{"a":65288,"t":"byte","b":[3,7,14,28,62,127,255,255]},{"a":65296,"t":"byte","b":[128,2,12,12,3,255,255,254]},{"a":65304,"t":"byte","b":[152,104,38,121,137,152,248,246]},{"a":65312,"t":"byte","b":[137,120,39,239,247,103,248,248]},{"a":65320,"t":"byte","b":[247,55,247,248,102,249,248,135]},{"a":65328,"t":"byte","b":[43,43,43,43,43,43,43,43]},{"a":65336,"t":"byte","b":[170,233,229,229,197,193,240,240]},{"a":65344,"t":"byte","b":[254,171,255,255,127,127,124,82]},{"a":65352,"t":"byte","b":[233,90,86,102,100,100,100,20]},{"a":65360,"t":"byte","b":[254,126,95,85,83,17,9,41]},{"a":65368,"t":"byte","b":[235,106,235,191,251,251,170,175]},{"a":65376,"t":"byte","b":[234,233,85,213,214,212,223,95]},{"a":65384,"t":"byte","b":[224,176,161,129,0,0,0,0]},{"a":65392,"t":"byte","b":[255,175,175,63,63,126,110,107]},{"a":65400,"t":"byte","b":[255,239,234,186,175,234,190,169]},{"a":65408,"t":"byte","b":[255,191,170,170,149,106,149,170]},{"a":65416,"t":"byte","b":[252,248,168,164,88,164,88,164]},{"a":65424,"t":"byte","b":[152,56,105,135,123,151,137,24],"x":[1701]},{"a":65432,"t":"byte","b":[248,152,152,152,247,55,248]},{"a":65439,"l":"KERNAL_SCNKEY","t":"byte","b":[249,104,248,247,249,55,55,247],"x":[1362,2123]},{"a":65447,"t":"byte","b":[247,43,43,43,47,47,58,40]},{"a":65455,"t":"byte","b":[1,192,16,32,128,136,34,128]},{"a":65463,"t":"byte","b":[128,242,248]},{"a":65466,"l":"KERNAL_SETLFS","t":"byte","b":[58,58,112],"x":[1298]},{"a":65469,"l":"KERNAL_SETNAM","t":"byte","b":[177,176,176,48,176,188,176,48],"x":[1309,38699]},{"a":65477,"t":"byte","b":[112,112,48,14,62,62,14,0]},{"a":65485,"t":"byte","b":[0,0,0,255,255,255,255,255]},{"a":65493,"l":"KERNAL_LOAD","t":"byte","b":[252,252,252],"x":[1140]},{"a":65496,"l":"KERNAL_SAVE","t":"byte","b":[250,254,255,255,255,122,42,43],"x":[1196]},{"a":65504,"t":"byte","b":[0,128,128,192]},{"a":65508,"l":"KERNAL_GETIN","t":"byte","b":[128,128,128,85,21,37,42,42],"x":[1365,2126]},{"a":65516,"t":"byte","b":[42,170,170,170,250,166,255,255]},{"a":65524,"t":"byte","b":[255,255,255,255,170,255,255,255]},{"a":65532,"t":"byte","b":[255,255,172,119]}]}