{"schema":1,"platform":"c64","game":"gauntlet","title":"Gauntlet","build":"","symbols_sha256":"dbe1c6513e71077862005f7d0e5ba2fa18bb60437f0672b7ba83c298b3684dcb","snapshot":{"file":"work/play-level1.vsf","sha256":"bbb7728b9ea5c4831706b76b55a4d5a90ebd47b3d164008b6ff45fe22656cc24"},"index":[{"a":2560,"n":"level_length","k":"variable","len":1,"c":true},{"a":2561,"n":"level_flags","k":"variable","len":1,"c":true},{"a":2562,"n":"level_colour","k":"variable","len":1,"c":true},{"a":2563,"n":"level_wall_bytes","k":"variable","len":1,"c":true},{"a":2564,"n":"level_walls","k":"variable","len":1,"c":true},{"a":2565,"n":"level_walls_2","k":"table","len":9,"c":true},{"a":2574,"n":"level_objects","k":"table","len":67,"c":true},{"a":4096,"n":"datatitle","k":"table","len":169,"c":true},{"a":4265,"n":"datatitle_bit_operand","k":"table","len":339,"c":true},{"a":5000,"n":"pinn_jumps","k":"routine","len":9,"c":true},{"a":5009,"n":"pinn_receive_many","k":"routine","len":21,"c":true},{"a":5016,"n":"b_1398","k":"branch","len":1,"c":false},{"a":5029,"n":"r_13A5","k":"branch","len":1,"c":false},{"a":5030,"n":"pinn_send","k":"routine","len":132,"c":true},{"a":5090,"n":"b_13E2","k":"branch","len":1,"c":false},{"a":5112,"n":"b_13F8","k":"branch","len":1,"c":false},{"a":5123,"n":"b_1403","k":"branch","len":1,"c":false},{"a":5134,"n":"j_140E","k":"branch","len":1,"c":false},{"a":5148,"n":"b_141C","k":"branch","len":1,"c":false},{"a":5162,"n":"pinn_send_byte","k":"routine","len":94,"c":true},{"a":5199,"n":"b_144F","k":"branch","len":1,"c":false},{"a":5212,"n":"b_145C","k":"branch","len":1,"c":false},{"a":5256,"n":"pinn_delay","k":"routine","len":6,"c":true},{"a":5258,"n":"b_148A","k":"branch","len":1,"c":false},{"a":5262,"n":"pinn_arg","k":"routine","len":11,"c":true},{"a":5273,"n":"pinn_receive","k":"routine","len":3,"c":true},{"a":5276,"n":"pinn_receive_to","k":"routine","len":133,"c":true},{"a":5310,"n":"b_14BE","k":"branch","len":1,"c":false},{"a":5344,"n":"b_14E0","k":"branch","len":1,"c":false},{"a":5356,"n":"b_14EC","k":"branch","len":1,"c":false},{"a":5367,"n":"b_14F7","k":"branch","len":1,"c":false},{"a":5378,"n":"j_1502","k":"branch","len":1,"c":false},{"a":5395,"n":"b_1513","k":"branch","len":1,"c":false},{"a":5409,"n":"pinn_receive_byte","k":"routine","len":67,"c":true},{"a":5424,"n":"b_1530","k":"branch","len":1,"c":false},{"a":5431,"n":"j_1537","k":"branch","len":1,"c":false},{"a":5446,"n":"b_1546","k":"branch","len":1,"c":false},{"a":5476,"n":"pinn_delay_rx","k":"routine","len":6,"c":true},{"a":5478,"n":"b_1566","k":"branch","len":1,"c":false},{"a":5482,"n":"pinn_delay_long","k":"routine","len":9,"c":true},{"a":5484,"n":"b_156C","k":"branch","len":1,"c":false},{"a":5491,"n":"pinn_tail","k":"table","len":141,"c":true},{"a":18432,"n":"font_maze_a","k":"table","len":8,"c":true},{"a":18440,"n":"font_maze_a_walls","k":"table","len":360,"c":true},{"a":18800,"n":"font_maze_a_hidden","k":"table","len":656,"c":true},{"a":19456,"n":"font_maze_a_monsters","k":"table","len":1024,"c":true},{"a":20480,"n":"font_maze_b","k":"table","len":8,"c":true},{"a":20488,"n":"font_maze_b_walls","k":"table","len":360,"c":true},{"a":20848,"n":"font_maze_b_hidden","k":"table","len":656,"c":true},{"a":21504,"n":"font_maze_b_monsters","k":"table","len":1024,"c":true},{"a":22528,"n":"font_maze_c","k":"table","len":8,"c":true},{"a":22536,"n":"font_maze_c_walls","k":"table","len":360,"c":true},{"a":22896,"n":"font_maze_c_hidden","k":"table","len":656,"c":true},{"a":23552,"n":"font_maze_c_monsters","k":"table","len":1024,"c":true},{"a":24576,"n":"font_panel","k":"table","len":1024,"c":true},{"a":25600,"n":"font_panel_hi","k":"table","len":104,"c":true},{"a":25704,"n":"style_block_b","k":"table","len":280,"c":true},{"a":25984,"n":"potion_pictures","k":"table","len":640,"c":true},{"a":26624,"n":"sprite_shapes","k":"table","len":1024,"c":true},{"a":27648,"n":"sprite_shapes_2","k":"table","len":512,"c":true},{"a":28160,"n":"fireball_shapes","k":"table","len":256,"c":true},{"a":28416,"n":"fireball_shapes_2","k":"table","len":256,"c":true},{"a":28672,"n":"player1_shapes","k":"table","len":32,"c":true},{"a":28704,"n":"player1_shapes_2","k":"table","len":992,"c":true},{"a":29696,"n":"player1_frames_3","k":"table","len":256,"c":true},{"a":29952,"n":"player1_frames_3b","k":"table","len":256,"c":true},{"a":30208,"n":"player1_shots","k":"table","len":256,"c":true},{"a":30464,"n":"player1_shots_2","k":"table","len":256,"c":true},{"a":30720,"n":"player2_sprites","k":"table","len":1024,"c":true},{"a":31744,"n":"player2_shapes_2","k":"table","len":512,"c":true},{"a":32256,"n":"player2_shots","k":"table","len":256,"c":true},{"a":32512,"n":"player2_shots_2","k":"table","len":256,"c":true},{"a":32768,"n":"game_entry","k":"routine","len":3,"c":true},{"a":32771,"n":"entry_pad","k":"table","len":16,"c":true},{"a":32787,"n":"startup","k":"routine","len":126,"c":true},{"a":32827,"n":"b_803B","k":"branch","len":1,"c":false},{"a":32913,"n":"game_start","k":"routine","len":20,"c":true},{"a":32933,"n":"level_begin","k":"routine","len":123,"c":true},{"a":33056,"n":"treasure_loop","k":"routine","len":107,"c":true},{"a":33102,"n":"b_814E","k":"branch","len":1,"c":false},{"a":33125,"n":"b_8165","k":"branch","len":1,"c":false},{"a":33134,"n":"b_816E","k":"branch","len":1,"c":false},{"a":33143,"n":"b_8177","k":"branch","len":1,"c":false},{"a":33154,"n":"b_8182","k":"branch","len":1,"c":false},{"a":33163,"n":"play_loop","k":"routine","len":23,"c":true},{"a":33186,"n":"loop_scroll_check","k":"routine","len":82,"c":true},{"a":33233,"n":"b_81D1","k":"branch","len":1,"c":false},{"a":33242,"n":"b_81DA","k":"branch","len":1,"c":false},{"a":33251,"n":"b_81E3","k":"branch","len":1,"c":false},{"a":33262,"n":"b_81EE","k":"branch","len":1,"c":false},{"a":33268,"n":"wait_frame_40","k":"routine","len":16,"c":true},{"a":33284,"n":"level_reset_vars","k":"routine","len":67,"c":true},{"a":33351,"n":"frame_count","k":"variable","len":1,"c":true},{"a":33352,"n":"frame_count_2","k":"variable","len":1,"c":true},{"a":33353,"n":"tune_wanted","k":"variable","len":1,"c":true},{"a":33354,"n":"monster_cur","k":"variable","len":1,"c":true},{"a":33355,"n":"pass_count","k":"variable","len":1,"c":true},{"a":33356,"n":"mask_dummy_1","k":"variable","len":1,"c":true},{"a":33357,"n":"mask_dummy_2","k":"variable","len":1,"c":true},{"a":33358,"n":"monster_count","k":"variable","len":2,"c":true},{"a":33360,"n":"screen_front","k":"variable","len":1,"c":true},{"a":33361,"n":"font_select","k":"variable","len":1,"c":true},{"a":33362,"n":"d011_copy","k":"variable","len":1,"c":true},{"a":33363,"n":"font_timer","k":"variable","len":1,"c":true},{"a":33364,"n":"font_step","k":"variable","len":1,"c":true},{"a":33365,"n":"font_cycle","k":"table","len":5,"c":true},{"a":33370,"n":"d022_colour","k":"variable","len":1,"c":true},{"a":33371,"n":"scratch","k":"variable","len":1,"c":true},{"a":33372,"n":"scratch_2","k":"variable","len":1,"c":true},{"a":33373,"n":"scratch_3","k":"variable","len":1,"c":true},{"a":33374,"n":"blocked_dirs","k":"variable","len":1,"c":true},{"a":33375,"n":"redraw_due","k":"variable","len":1,"c":true},{"a":33376,"n":"redraw_due_2","k":"variable","len":1,"c":true},{"a":33377,"n":"freeze_copy","k":"variable","len":1,"c":true},{"a":33378,"n":"scroll_done","k":"variable","len":1,"c":true},{"a":33379,"n":"idle_scroll_count","k":"variable","len":1,"c":true},{"a":33380,"n":"main_go","k":"variable","len":1,"c":true},{"a":33381,"n":"pad_8265","k":"variable","len":1,"c":true},{"a":33382,"n":"scroll_x_units","k":"variable","len":1,"c":true},{"a":33383,"n":"scroll_y_units","k":"variable","len":1,"c":true},{"a":33384,"n":"irq_entry","k":"routine","len":17,"c":true},{"a":33401,"n":"irq_exit","k":"routine","len":6,"c":true},{"a":33407,"n":"nmi_rti","k":"routine","len":1,"c":true},{"a":33408,"n":"irq_install","k":"routine","len":59,"c":true},{"a":33467,"n":"irq_kernal","k":"routine","len":69,"c":true},{"a":33536,"n":"clear_screens","k":"routine","len":43,"c":true},{"a":33539,"n":"b_8303","k":"branch","len":1,"c":false},{"a":33579,"n":"panel_columns","k":"variable","len":2,"c":true},{"a":33581,"n":"panel_misc","k":"variable","len":2,"c":true},{"a":33583,"n":"panel_potion_end","k":"variable","len":2,"c":true},{"a":33585,"n":"hero_names","k":"table","len":64,"c":true},{"a":33649,"n":"panel_legend","k":"table","len":16,"c":true},{"a":33665,"n":"panel_start_digits","k":"table","len":16,"c":true},{"a":33681,"n":"panel_blank_row","k":"table","len":16,"c":true},{"a":33697,"n":"panel_press_fire","k":"table","len":16,"c":true},{"a":33713,"n":"panel_press_fire_2","k":"table","len":16,"c":true},{"a":33729,"n":"panel_press_fire_3","k":"table","len":16,"c":true},{"a":33745,"n":"panel_press_fire_4","k":"table","len":16,"c":true},{"a":33761,"n":"panel_press_fire_alt","k":"table","len":80,"c":true},{"a":33841,"n":"panel_draw_players","k":"routine","len":48,"c":true},{"a":33846,"n":"b_8436","k":"branch","len":1,"c":false},{"a":33888,"n":"b_8460","k":"branch","len":1,"c":false},{"a":33889,"n":"hero_name_ptr","k":"routine","len":1,"c":true},{"a":33890,"n":"hero_name_ptr_hi","k":"routine","len":64,"c":true},{"a":33928,"n":"b_8488","k":"branch","len":1,"c":false},{"a":33954,"n":"panel_press_fire_draw","k":"routine","len":53,"c":true},{"a":33959,"n":"b_84A7","k":"branch","len":1,"c":false},{"a":33973,"n":"b_84B5","k":"branch","len":1,"c":false},{"a":34001,"n":"b_84D1","k":"branch","len":1,"c":false},{"a":34007,"n":"panel_colours","k":"routine","len":77,"c":true},{"a":34024,"n":"b_84E8","k":"branch","len":1,"c":false},{"a":34047,"n":"b_84FF","k":"branch","len":1,"c":false},{"a":34070,"n":"b_8516","k":"branch","len":1,"c":false},{"a":34084,"n":"mask_y","k":"table","len":4,"c":true},{"a":34088,"n":"mask_first_line","k":"variable","len":1,"c":true},{"a":34089,"n":"mask_lines","k":"table","len":4,"c":true},{"a":34093,"n":"mask_band","k":"variable","len":1,"c":true},{"a":34094,"n":"sprites_init_masks","k":"routine","len":75,"c":true},{"a":34169,"n":"raster_frame","k":"routine","len":211,"c":true},{"a":34181,"n":"b_8585","k":"branch","len":1,"c":false},{"a":34218,"n":"b_85AA","k":"branch","len":1,"c":false},{"a":34221,"n":"b_85AD","k":"branch","len":1,"c":false},{"a":34254,"n":"b_85CE","k":"branch","len":1,"c":false},{"a":34293,"n":"b_85F5","k":"branch","len":1,"c":false},{"a":34299,"n":"b_85FB","k":"branch","len":1,"c":false},{"a":34301,"n":"b_85FD","k":"branch","len":1,"c":false},{"a":34346,"n":"b_862A","k":"branch","len":1,"c":false},{"a":34353,"n":"b_8631","k":"branch","len":1,"c":false},{"a":34380,"n":"raster_toggle","k":"variable","len":1,"c":true},{"a":34381,"n":"frame_tasks","k":"routine","len":22,"c":true},{"a":34403,"n":"raster_masks","k":"routine","len":72,"c":true},{"a":34415,"n":"b_866F","k":"branch","len":1,"c":false},{"a":34451,"n":"b_8693","k":"branch","len":1,"c":false},{"a":34475,"n":"raster_arm","k":"routine","len":56,"c":true},{"a":34531,"n":"unused_wait","k":"table","len":6,"c":true},{"a":34537,"n":"scroll_limit","k":"routine","len":69,"c":true},{"a":34560,"n":"b_8700","k":"branch","len":1,"c":false},{"a":34575,"n":"b_870F","k":"branch","len":1,"c":false},{"a":34590,"n":"b_871E","k":"branch","len":1,"c":false},{"a":34605,"n":"r_872D","k":"branch","len":1,"c":false},{"a":34606,"n":"scroll_decide","k":"routine","len":169,"c":true},{"a":34626,"n":"b_8742","k":"branch","len":1,"c":false},{"a":34639,"n":"b_874F","k":"branch","len":1,"c":false},{"a":34644,"n":"r_8754","k":"branch","len":1,"c":false},{"a":34645,"n":"b_8755","k":"branch","len":1,"c":false},{"a":34656,"n":"b_8760","k":"branch","len":1,"c":false},{"a":34667,"n":"j_876B","k":"branch","len":1,"c":false},{"a":34707,"n":"b_8793","k":"branch","len":1,"c":false},{"a":34729,"n":"b_87A9","k":"branch","len":1,"c":false},{"a":34774,"n":"r_87D6","k":"branch","len":1,"c":false},{"a":34775,"n":"keys_scan","k":"routine","len":28,"c":true},{"a":34787,"n":"b_87E3","k":"branch","len":1,"c":false},{"a":34803,"n":"unused_keys_any","k":"table","len":30,"c":true},{"a":34833,"n":"key_rows","k":"table","len":16,"c":true},{"a":34849,"n":"keys_state","k":"variable","len":1,"c":true},{"a":34850,"n":"keys_row6","k":"table","len":5,"c":true},{"a":34855,"n":"keys_row1","k":"variable","len":1,"c":true},{"a":34856,"n":"keys_row0","k":"table","len":6,"c":true},{"a":34862,"n":"scroll_fine_y","k":"variable","len":1,"c":true},{"a":34863,"n":"scroll_fine_x","k":"variable","len":1,"c":true},{"a":34864,"n":"scroll_steps","k":"variable","len":1,"c":true},{"a":34865,"n":"map_x","k":"variable","len":1,"c":true},{"a":34866,"n":"map_x_prev","k":"variable","len":1,"c":true},{"a":34867,"n":"map_y","k":"variable","len":1,"c":true},{"a":34868,"n":"map_y_prev","k":"variable","len":1,"c":true},{"a":34871,"n":"scroll_dir","k":"variable","len":1,"c":true},{"a":34872,"n":"scroll_dir_extra","k":"variable","len":1,"c":true},{"a":34873,"n":"scroll_dir_last","k":"variable","len":1,"c":true},{"a":34874,"n":"scroll_step","k":"routine","len":85,"c":true},{"a":34888,"n":"b_8848","k":"branch","len":1,"c":false},{"a":34897,"n":"b_8851","k":"branch","len":1,"c":false},{"a":34906,"n":"b_885A","k":"branch","len":1,"c":false},{"a":34915,"n":"b_8863","k":"branch","len":1,"c":false},{"a":34924,"n":"b_886C","k":"branch","len":1,"c":false},{"a":34933,"n":"b_8875","k":"branch","len":1,"c":false},{"a":34942,"n":"b_887E","k":"branch","len":1,"c":false},{"a":34950,"n":"b_8886","k":"branch","len":1,"c":false},{"a":34959,"n":"scroll_left","k":"routine","len":38,"c":true},{"a":34976,"n":"b_88A0","k":"branch","len":1,"c":false},{"a":34996,"n":"r_88B4","k":"branch","len":1,"c":false},{"a":34997,"n":"scroll_right","k":"routine","len":38,"c":true},{"a":35014,"n":"b_88C6","k":"branch","len":1,"c":false},{"a":35034,"n":"r_88DA","k":"branch","len":1,"c":false},{"a":35035,"n":"scroll_down_right","k":"routine","len":53,"c":true},{"a":35061,"n":"b_88F5","k":"branch","len":1,"c":false},{"a":35087,"n":"r_890F","k":"branch","len":1,"c":false},{"a":35088,"n":"scroll_up_right","k":"routine","len":57,"c":true},{"a":35114,"n":"b_892A","k":"branch","len":1,"c":false},{"a":35144,"n":"r_8948","k":"branch","len":1,"c":false},{"a":35145,"n":"scroll_up","k":"routine","len":38,"c":true},{"a":35162,"n":"b_895A","k":"branch","len":1,"c":false},{"a":35182,"n":"r_896E","k":"branch","len":1,"c":false},{"a":35183,"n":"scroll_down","k":"routine","len":38,"c":true},{"a":35200,"n":"b_8980","k":"branch","len":1,"c":false},{"a":35220,"n":"r_8994","k":"branch","len":1,"c":false},{"a":35221,"n":"scroll_up_left","k":"routine","len":53,"c":true},{"a":35247,"n":"b_89AF","k":"branch","len":1,"c":false},{"a":35273,"n":"r_89C9","k":"branch","len":1,"c":false},{"a":35274,"n":"scroll_down_left","k":"routine","len":57,"c":true},{"a":35300,"n":"b_89E4","k":"branch","len":1,"c":false},{"a":35330,"n":"r_8A02","k":"branch","len":1,"c":false},{"a":35331,"n":"diag_y","k":"table","len":8,"c":true},{"a":35339,"n":"maze_draw","k":"routine","len":110,"c":true},{"a":35363,"n":"b_8A23","k":"branch","len":1,"c":false},{"a":35409,"n":"b_8A51","k":"branch","len":1,"c":false},{"a":35435,"n":"b_8A6B","k":"branch","len":1,"c":false},{"a":35448,"n":"b_8A78","k":"branch","len":1,"c":false},{"a":35449,"n":"copy_col_wrap","k":"routine","len":3,"c":true},{"a":35452,"n":"copy_src_lo","k":"routine","len":1,"c":true},{"a":35453,"n":"copy_src_hi","k":"routine","len":5,"c":true},{"a":35458,"n":"copy_src2_lo","k":"routine","len":1,"c":true},{"a":35459,"n":"copy_rows","k":"routine","len":116,"c":true},{"a":35575,"n":"maze_draw_4400","k":"routine","len":86,"c":true},{"a":35621,"n":"b_8B25","k":"branch","len":1,"c":false},{"a":35647,"n":"b_8B3F","k":"branch","len":1,"c":false},{"a":35660,"n":"b_8B4C","k":"branch","len":1,"c":false},{"a":35661,"n":"copy_col_wrap_b","k":"routine","len":3,"c":true},{"a":35664,"n":"copy_src_lo_b","k":"routine","len":1,"c":true},{"a":35665,"n":"copy_src_hi_b","k":"routine","len":5,"c":true},{"a":35670,"n":"copy_src2_lo_b","k":"routine","len":1,"c":true},{"a":35671,"n":"copy_rows_b","k":"routine","len":116,"c":true},{"a":35787,"n":"maze_row_ops","k":"table","len":20,"c":true},{"a":35807,"n":"wait_raster","k":"routine","len":28,"c":true},{"a":35808,"n":"b_8BE0","k":"branch","len":1,"c":false},{"a":35819,"n":"b_8BEB","k":"branch","len":1,"c":false},{"a":35824,"n":"b_8BF0","k":"branch","len":1,"c":false},{"a":35829,"n":"b_8BF5","k":"branch","len":1,"c":false},{"a":35835,"n":"maze_colours","k":"routine","len":3,"c":true},{"a":35837,"n":"b_8BFD","k":"branch","len":1,"c":false},{"a":35838,"n":"colour_col_wrap","k":"routine","len":3,"c":true},{"a":35841,"n":"colour_src_lo","k":"routine","len":1,"c":true},{"a":35842,"n":"colour_src_hi","k":"routine","len":5,"c":true},{"a":35847,"n":"colour_src2_lo","k":"routine","len":1,"c":true},{"a":35848,"n":"colour_rows","k":"routine","len":116,"c":true},{"a":35964,"n":"panel_flash","k":"routine","len":65,"c":true},{"a":35996,"n":"b_8C9C","k":"branch","len":1,"c":false},{"a":36005,"n":"b_8CA5","k":"branch","len":1,"c":false},{"a":36025,"n":"b_8CB9","k":"branch","len":1,"c":false},{"a":36028,"n":"r_8CBC","k":"branch","len":1,"c":false},{"a":36029,"n":"unused_wait_fire","k":"table","len":8,"c":true},{"a":36037,"n":"maze_style","k":"routine","len":23,"c":true},{"a":36059,"n":"b_8CDB","k":"branch","len":1,"c":false},{"a":36060,"n":"style_src_lo","k":"routine","len":1,"c":true},{"a":36061,"n":"style_src_hi","k":"routine","len":42,"c":true},{"a":36088,"n":"b_8CF8","k":"branch","len":1,"c":false},{"a":36096,"n":"b_8D00","k":"branch","len":1,"c":false},{"a":36103,"n":"maze_style_colours","k":"table","len":6,"c":true},{"a":36109,"n":"maze_style_src","k":"variable","len":1,"c":true},{"a":36110,"n":"maze_style_src_hi","k":"table","len":9,"c":true},{"a":36119,"n":"cia_timers_start","k":"routine","len":28,"c":true},{"a":36147,"n":"unused_zero_8D33","k":"table","len":205,"c":true},{"a":36352,"n":"map_wrap_x","k":"variable","len":1,"c":true},{"a":36353,"n":"map_wrap_x_1","k":"variable","len":1,"c":true},{"a":36354,"n":"map_wrap_x_2","k":"table","len":110,"c":true},{"a":36464,"n":"map_row_lo","k":"table","len":32,"c":true},{"a":36496,"n":"map_row_hi","k":"table","len":30,"c":true},{"a":36526,"n":"stick_index_base","k":"variable","len":2,"c":true},{"a":36528,"n":"stick_p1","k":"variable","len":1,"c":true},{"a":36529,"n":"stick_p2","k":"variable","len":1,"c":true},{"a":36530,"n":"dir_p1","k":"variable","len":1,"c":true},{"a":36531,"n":"dir_p2","k":"variable","len":1,"c":true},{"a":36532,"n":"maze_restore","k":"routine","len":42,"c":true},{"a":36574,"n":"teleport_add","k":"routine","len":28,"c":true},{"a":36602,"n":"teleport_use","k":"routine","len":118,"c":true},{"a":36657,"n":"b_8F31","k":"branch","len":1,"c":false},{"a":36676,"n":"b_8F44","k":"branch","len":1,"c":false},{"a":36698,"n":"b_8F5A","k":"branch","len":1,"c":false},{"a":36714,"n":"b_8F6A","k":"branch","len":1,"c":false},{"a":36717,"n":"b_8F6D","k":"branch","len":1,"c":false},{"a":36720,"n":"teleport_sort","k":"routine","len":89,"c":true},{"a":36723,"n":"b_8F73","k":"branch","len":1,"c":false},{"a":36733,"n":"b_8F7D","k":"branch","len":1,"c":false},{"a":36753,"n":"b_8F91","k":"branch","len":1,"c":false},{"a":36758,"n":"j_8F96","k":"branch","len":1,"c":false},{"a":36800,"n":"b_8FC0","k":"branch","len":1,"c":false},{"a":36809,"n":"teleport_place","k":"routine","len":117,"c":true},{"a":36811,"n":"b_8FCB","k":"branch","len":1,"c":false},{"a":36834,"n":"b_8FE2","k":"branch","len":1,"c":false},{"a":36849,"n":"b_8FF1","k":"branch","len":1,"c":false},{"a":36858,"n":"b_8FFA","k":"branch","len":1,"c":false},{"a":36926,"n":"teleport_count","k":"variable","len":1,"c":true},{"a":36927,"n":"teleport_aim_x","k":"variable","len":1,"c":true},{"a":36928,"n":"teleport_aim_y","k":"variable","len":1,"c":true},{"a":36929,"n":"teleport_dist","k":"variable","len":1,"c":true},{"a":36930,"n":"teleport_dist_1","k":"table","len":15,"c":true},{"a":36945,"n":"teleport_x","k":"variable","len":1,"c":true},{"a":36946,"n":"teleport_x_1","k":"table","len":15,"c":true},{"a":36961,"n":"teleport_y","k":"variable","len":1,"c":true},{"a":36962,"n":"teleport_y_1","k":"table","len":15,"c":true},{"a":36977,"n":"player_moved","k":"variable","len":2,"c":true},{"a":36979,"n":"sort_swapped","k":"variable","len":1,"c":true},{"a":36980,"n":"teleport_free","k":"routine","len":129,"c":true},{"a":37056,"n":"b_90C0","k":"branch","len":1,"c":false},{"a":37059,"n":"b_90C3","k":"branch","len":1,"c":false},{"a":37109,"n":"unused_zero_90F5","k":"table","len":9,"c":true},{"a":37118,"n":"tile_x","k":"variable","len":1,"c":true},{"a":37119,"n":"tile_y","k":"variable","len":1,"c":true},{"a":37120,"n":"player_screen_x","k":"variable","len":1,"c":true},{"a":37121,"n":"player2_screen_x","k":"variable","len":1,"c":true},{"a":37122,"n":"player_screen_y","k":"variable","len":1,"c":true},{"a":37123,"n":"player2_screen_y","k":"variable","len":1,"c":true},{"a":37124,"n":"player_world_x","k":"variable","len":1,"c":true},{"a":37125,"n":"player2_world_x","k":"variable","len":1,"c":true},{"a":37126,"n":"player_world_y","k":"variable","len":1,"c":true},{"a":37127,"n":"player2_world_y","k":"variable","len":1,"c":true},{"a":37128,"n":"probe_x","k":"variable","len":1,"c":true},{"a":37129,"n":"probe_y","k":"variable","len":1,"c":true},{"a":37132,"n":"player_loop","k":"variable","len":1,"c":true},{"a":37133,"n":"player_cur","k":"variable","len":1,"c":true},{"a":37135,"n":"start_x","k":"variable","len":1,"c":true},{"a":37136,"n":"start_y","k":"variable","len":1,"c":true},{"a":37137,"n":"sprites_on","k":"variable","len":1,"c":true},{"a":37138,"n":"player_under","k":"variable","len":2,"c":true},{"a":37140,"n":"hero_colours","k":"table","len":4,"c":true},{"a":37144,"n":"hero_sprite_colours","k":"variable","len":2,"c":true},{"a":37146,"n":"hero_index_base","k":"variable","len":2,"c":true},{"a":37148,"n":"player_hero","k":"variable","len":1,"c":true},{"a":37149,"n":"player2_hero","k":"variable","len":1,"c":true},{"a":37150,"n":"exit_wait_p1","k":"variable","len":1,"c":true},{"a":37151,"n":"exit_wait_p2","k":"variable","len":1,"c":true},{"a":37152,"n":"player_state","k":"variable","len":1,"c":true},{"a":37153,"n":"player2_state","k":"variable","len":1,"c":true},{"a":37154,"n":"player_other","k":"variable","len":1,"c":true},{"a":37155,"n":"player2_other","k":"variable","len":1,"c":true},{"a":37156,"n":"player_anim","k":"variable","len":2,"c":true},{"a":37158,"n":"player_facing","k":"variable","len":1,"c":true},{"a":37159,"n":"player2_facing","k":"variable","len":1,"c":true},{"a":37160,"n":"anim_frames","k":"table","len":4,"c":true},{"a":37164,"n":"player_shapes","k":"variable","len":1,"c":true},{"a":37165,"n":"player2_shapes","k":"variable","len":1,"c":true},{"a":37166,"n":"facing_of_dir","k":"table","len":16,"c":true},{"a":37182,"n":"sprite_x","k":"variable","len":1,"c":true},{"a":37183,"n":"sprite3_x","k":"variable","len":1,"c":true},{"a":37184,"n":"sprite4_x","k":"variable","len":1,"c":true},{"a":37185,"n":"sprite5_x","k":"variable","len":1,"c":true},{"a":37186,"n":"player_sprite_x","k":"variable","len":1,"c":true},{"a":37187,"n":"player2_sprite_x","k":"variable","len":1,"c":true},{"a":37188,"n":"sprite_y","k":"variable","len":1,"c":true},{"a":37189,"n":"sprite3_y","k":"variable","len":1,"c":true},{"a":37190,"n":"sprite4_y","k":"variable","len":1,"c":true},{"a":37191,"n":"sprite5_y","k":"variable","len":1,"c":true},{"a":37192,"n":"player_sprite_y","k":"variable","len":1,"c":true},{"a":37193,"n":"player2_sprite_y","k":"variable","len":1,"c":true},{"a":37194,"n":"sprite_x_high","k":"table","len":4,"c":true},{"a":37198,"n":"player_x_high","k":"variable","len":2,"c":true},{"a":37200,"n":"sprite_x_bits","k":"table","len":6,"c":true},{"a":37206,"n":"sprite_ptrs","k":"variable","len":1,"c":true},{"a":37207,"n":"sprite3_ptr","k":"variable","len":1,"c":true},{"a":37208,"n":"sprite4_ptr","k":"variable","len":2,"c":true},{"a":37212,"n":"players_sprites","k":"routine","len":112,"c":true},{"a":37217,"n":"b_9161","k":"branch","len":1,"c":false},{"a":37232,"n":"b_9170","k":"branch","len":1,"c":false},{"a":37250,"n":"b_9182","k":"branch","len":1,"c":false},{"a":37261,"n":"b_918D","k":"branch","len":1,"c":false},{"a":37307,"n":"b_91BB","k":"branch","len":1,"c":false},{"a":37324,"n":"sprites_place","k":"routine","len":168,"c":true},{"a":37400,"n":"b_9218","k":"branch","len":1,"c":false},{"a":37408,"n":"b_9220","k":"branch","len":1,"c":false},{"a":37416,"n":"b_9228","k":"branch","len":1,"c":false},{"a":37492,"n":"players_walk","k":"routine","len":71,"c":true},{"a":37497,"n":"b_9279","k":"branch","len":1,"c":false},{"a":37518,"n":"b_928E","k":"branch","len":1,"c":false},{"a":37531,"n":"b_929B","k":"branch","len":1,"c":false},{"a":37544,"n":"b_92A8","k":"branch","len":1,"c":false},{"a":37557,"n":"b_92B5","k":"branch","len":1,"c":false},{"a":37563,"n":"unused_92BB","k":"table","len":4,"c":true},{"a":37567,"n":"players_screen_pos","k":"routine","len":26,"c":true},{"a":37569,"n":"b_92C1","k":"branch","len":1,"c":false},{"a":37593,"n":"scroll_edges","k":"routine","len":69,"c":true},{"a":37611,"n":"b_92EB","k":"branch","len":1,"c":false},{"a":37626,"n":"b_92FA","k":"branch","len":1,"c":false},{"a":37646,"n":"b_930E","k":"branch","len":1,"c":false},{"a":37661,"n":"r_931D","k":"branch","len":1,"c":false},{"a":37662,"n":"players_keep_close","k":"routine","len":219,"c":true},{"a":37678,"n":"b_932E","k":"branch","len":1,"c":false},{"a":37718,"n":"b_9356","k":"branch","len":1,"c":false},{"a":37734,"n":"b_9366","k":"branch","len":1,"c":false},{"a":37768,"n":"b_9388","k":"branch","len":1,"c":false},{"a":37784,"n":"b_9398","k":"branch","len":1,"c":false},{"a":37812,"n":"b_93B4","k":"branch","len":1,"c":false},{"a":37828,"n":"b_93C4","k":"branch","len":1,"c":false},{"a":37856,"n":"b_93E0","k":"branch","len":1,"c":false},{"a":37872,"n":"b_93F0","k":"branch","len":1,"c":false},{"a":37880,"n":"r_93F8","k":"branch","len":1,"c":false},{"a":37881,"n":"players_move","k":"routine","len":118,"c":true},{"a":37886,"n":"b_93FE","k":"branch","len":1,"c":false},{"a":37945,"n":"b_9439","k":"branch","len":1,"c":false},{"a":37958,"n":"b_9446","k":"branch","len":1,"c":false},{"a":37993,"n":"b_9469","k":"branch","len":1,"c":false},{"a":37999,"n":"block_dirs","k":"routine","len":75,"c":true},{"a":38013,"n":"b_947D","k":"branch","len":1,"c":false},{"a":38065,"n":"b_94B1","k":"branch","len":1,"c":false},{"a":38068,"n":"b_94B4","k":"branch","len":1,"c":false},{"a":38074,"n":"ring_exit","k":"variable","len":1,"c":true},{"a":38075,"n":"tile_blocks","k":"routine","len":68,"c":true},{"a":38122,"n":"b_94EA","k":"branch","len":1,"c":false},{"a":38128,"n":"b_94F0","k":"branch","len":1,"c":false},{"a":38133,"n":"b_94F5","k":"branch","len":1,"c":false},{"a":38142,"n":"r_94FE","k":"branch","len":1,"c":false},{"a":38143,"n":"ring_dir_bits","k":"table","len":8,"c":true},{"a":38151,"n":"dir_of_ring","k":"table","len":8,"c":true},{"a":38159,"n":"ring_stick","k":"table","len":8,"c":true},{"a":38167,"n":"tile_ring","k":"routine","len":51,"c":true},{"a":38218,"n":"tile_addr","k":"routine","len":25,"c":true},{"a":38243,"n":"unused_9563","k":"table","len":34,"c":true},{"a":38277,"n":"level_place_players","k":"routine","len":179,"c":true},{"a":38292,"n":"b_9594","k":"branch","len":1,"c":false},{"a":38303,"n":"b_959F","k":"branch","len":1,"c":false},{"a":38330,"n":"b_95BA","k":"branch","len":1,"c":false},{"a":38341,"n":"b_95C5","k":"branch","len":1,"c":false},{"a":38355,"n":"b_95D3","k":"branch","len":1,"c":false},{"a":38372,"n":"b_95E4","k":"branch","len":1,"c":false},{"a":38404,"n":"b_9604","k":"branch","len":1,"c":false},{"a":38447,"n":"b_962F","k":"branch","len":1,"c":false},{"a":38456,"n":"scroll_follow","k":"routine","len":61,"c":true},{"a":38461,"n":"b_963D","k":"branch","len":1,"c":false},{"a":38485,"n":"b_9655","k":"branch","len":1,"c":false},{"a":38494,"n":"b_965E","k":"branch","len":1,"c":false},{"a":38503,"n":"b_9667","k":"branch","len":1,"c":false},{"a":38511,"n":"b_966F","k":"branch","len":1,"c":false},{"a":38517,"n":"follow_left","k":"routine","len":32,"c":true},{"a":38539,"n":"r_968B","k":"branch","len":1,"c":false},{"a":38540,"n":"b_968C","k":"branch","len":1,"c":false},{"a":38549,"n":"follow_right","k":"routine","len":32,"c":true},{"a":38571,"n":"r_96AB","k":"branch","len":1,"c":false},{"a":38572,"n":"b_96AC","k":"branch","len":1,"c":false},{"a":38581,"n":"follow_up","k":"routine","len":32,"c":true},{"a":38603,"n":"r_96CB","k":"branch","len":1,"c":false},{"a":38604,"n":"b_96CC","k":"branch","len":1,"c":false},{"a":38613,"n":"follow_down","k":"routine","len":32,"c":true},{"a":38635,"n":"r_96EB","k":"branch","len":1,"c":false},{"a":38636,"n":"b_96EC","k":"branch","len":1,"c":false},{"a":38645,"n":"cell_addr","k":"routine","len":25,"c":true},{"a":38670,"n":"player_step","k":"routine","len":117,"c":true},{"a":38719,"n":"b_973F","k":"branch","len":1,"c":false},{"a":38746,"n":"b_975A","k":"branch","len":1,"c":false},{"a":38755,"n":"b_9763","k":"branch","len":1,"c":false},{"a":38787,"n":"cells_free","k":"routine","len":23,"c":true},{"a":38809,"n":"r_9799","k":"branch","len":1,"c":false},{"a":38810,"n":"cell_mark","k":"routine","len":17,"c":true},{"a":38827,"n":"cell_clear","k":"routine","len":17,"c":true},{"a":38844,"n":"dir_dx","k":"table","len":16,"c":true},{"a":38860,"n":"dir_dy","k":"table","len":16,"c":true},{"a":38876,"n":"teleport_cell_x","k":"variable","len":1,"c":true},{"a":38877,"n":"teleport_cell_y","k":"variable","len":1,"c":true},{"a":38878,"n":"unused_97DE","k":"table","len":16,"c":true},{"a":38894,"n":"power_bits","k":"table","len":6,"c":true},{"a":38900,"n":"bits_table","k":"variable","len":2,"c":true},{"a":38902,"n":"clear_masks","k":"table","len":6,"c":true},{"a":38908,"n":"bits_table_hi","k":"variable","len":2,"c":true},{"a":38910,"n":"player_leaves","k":"routine","len":40,"c":true},{"a":38950,"n":"drop_tile","k":"routine","len":130,"c":true},{"a":38991,"n":"b_984F","k":"branch","len":1,"c":false},{"a":39080,"n":"exit_check","k":"routine","len":51,"c":true},{"a":39130,"n":"r_98DA","k":"branch","len":1,"c":false},{"a":39131,"n":"level_name","k":"variable","len":2,"c":true},{"a":39133,"n":"level_name_text","k":"table","len":6,"c":true},{"a":39139,"n":"level_digit_1","k":"variable","len":1,"c":true},{"a":39140,"n":"level_digit_2","k":"variable","len":1,"c":true},{"a":39141,"n":"level_digit_3","k":"variable","len":1,"c":true},{"a":39142,"n":"file_names","k":"table","len":12,"c":true},{"a":39154,"n":"name_plyrs","k":"table","len":9,"c":true},{"a":39163,"n":"name_objdis","k":"table","len":6,"c":true},{"a":39169,"n":"name_dittidata","k":"table","len":13,"c":true},{"a":39182,"n":"name_datatreasure","k":"table","len":16,"c":true},{"a":39198,"n":"name_player","k":"table","len":12,"c":true},{"a":39210,"n":"name_gaunt_chr","k":"table","len":15,"c":true},{"a":39225,"n":"file_loads","k":"variable","len":1,"c":true},{"a":39226,"n":"file_loads_hi","k":"table","len":15,"c":true},{"a":39241,"n":"file_name_lengths","k":"table","len":8,"c":true},{"a":39249,"n":"file_last","k":"variable","len":1,"c":true},{"a":39250,"n":"file_name_ptrs","k":"variable","len":1,"c":true},{"a":39251,"n":"file_name_ptrs_hi","k":"table","len":17,"c":true},{"a":39268,"n":"load_files","k":"routine","len":4,"c":true},{"a":39272,"n":"load_level_file","k":"routine","len":67,"c":true},{"a":39274,"n":"b_996A","k":"branch","len":1,"c":false},{"a":39339,"n":"load_status","k":"variable","len":1,"c":true},{"a":39340,"n":"unused_99AC","k":"table","len":32,"c":true},{"a":39372,"n":"level_file","k":"variable","len":1,"c":true},{"a":39373,"n":"level_number","k":"variable","len":1,"c":true},{"a":39374,"n":"level8_file","k":"variable","len":1,"c":true},{"a":39375,"n":"level_start","k":"routine","len":91,"c":true},{"a":39378,"n":"b_99D2","k":"branch","len":1,"c":false},{"a":39391,"n":"b_99DF","k":"branch","len":1,"c":false},{"a":39452,"n":"b_9A1C","k":"branch","len":1,"c":false},{"a":39466,"n":"arg_9A2A","k":"variable","len":2,"c":true},{"a":39468,"n":"level_start_text","k":"routine","len":3,"c":true},{"a":39471,"n":"arg_9A2F","k":"variable","len":2,"c":true},{"a":39473,"n":"level_start_end","k":"routine","len":10,"c":true},{"a":39483,"n":"level_messages","k":"routine","len":20,"c":true},{"a":39503,"n":"arg_9A4F","k":"variable","len":2,"c":true},{"a":39505,"n":"level_messages_2","k":"routine","len":10,"c":true},{"a":39515,"n":"arg_9A5B","k":"variable","len":2,"c":true},{"a":39517,"n":"level_messages_end","k":"routine","len":1,"c":true},{"a":39518,"n":"str_level","k":"variable","len":1,"c":true},{"a":39519,"n":"str_level_colour","k":"table","len":20,"c":true},{"a":39539,"n":"str_level_lower","k":"variable","len":1,"c":true},{"a":39540,"n":"str_level_lower_colour","k":"table","len":20,"c":true},{"a":39560,"n":"str_shots_hurt","k":"table","len":30,"c":true},{"a":39590,"n":"str_shots_stun","k":"table","len":30,"c":true},{"a":39620,"n":"level_pick","k":"routine","len":58,"c":true},{"a":39635,"n":"b_9AD3","k":"branch","len":1,"c":false},{"a":39650,"n":"b_9AE2","k":"branch","len":1,"c":false},{"a":39661,"n":"b_9AED","k":"branch","len":1,"c":false},{"a":39678,"n":"level_name_digits","k":"routine","len":18,"c":true},{"a":39696,"n":"level_digits_sprites","k":"routine","len":92,"c":true},{"a":39788,"n":"exit_targets","k":"routine","len":60,"c":true},{"a":39800,"n":"b_9B78","k":"branch","len":1,"c":false},{"a":39813,"n":"b_9B85","k":"branch","len":1,"c":false},{"a":39823,"n":"j_9B8F","k":"branch","len":1,"c":false},{"a":39834,"n":"b_9B9A","k":"branch","len":1,"c":false},{"a":39844,"n":"b_9BA4","k":"branch","len":1,"c":false},{"a":39848,"n":"exit_choice","k":"variable","len":1,"c":true},{"a":39850,"n":"exit_choice_p2","k":"variable","len":1,"c":true},{"a":39851,"n":"exit_choice_l4","k":"routine","len":25,"c":true},{"a":39869,"n":"b_9BBD","k":"branch","len":1,"c":false},{"a":39876,"n":"exit_choice_l1","k":"routine","len":43,"c":true},{"a":39894,"n":"b_9BD6","k":"branch","len":1,"c":false},{"a":39912,"n":"b_9BE8","k":"branch","len":1,"c":false},{"a":39919,"n":"level_intro","k":"routine","len":27,"c":true},{"a":39934,"n":"b_9BFE","k":"branch","len":1,"c":false},{"a":39946,"n":"heroes_load_shapes","k":"routine","len":36,"c":true},{"a":39952,"n":"b_9C10","k":"branch","len":1,"c":false},{"a":39982,"n":"hero_copy_shapes","k":"routine","len":41,"c":true},{"a":40008,"n":"b_9C48","k":"branch","len":1,"c":false},{"a":40023,"n":"hero_shape_pages","k":"table","len":4,"c":true},{"a":40027,"n":"player_shape_pages","k":"variable","len":2,"c":true},{"a":40029,"n":"hero_copy_chars","k":"routine","len":37,"c":true},{"a":40051,"n":"b_9C73","k":"branch","len":1,"c":false},{"a":40066,"n":"hero_gfx_pages","k":"table","len":4,"c":true},{"a":40070,"n":"player_gfx_pages","k":"variable","len":2,"c":true},{"a":40072,"n":"shapes_to_1C00","k":"routine","len":30,"c":true},{"a":40074,"n":"b_9C8A","k":"branch","len":1,"c":false},{"a":40102,"n":"shapes_from_1800","k":"routine","len":30,"c":true},{"a":40104,"n":"b_9CA8","k":"branch","len":1,"c":false},{"a":40132,"n":"shapes_7400_to_6E00","k":"routine","len":18,"c":true},{"a":40134,"n":"b_9CC6","k":"branch","len":1,"c":false},{"a":40150,"n":"pad_9CD6","k":"variable","len":1,"c":true},{"a":40151,"n":"power_armour","k":"routine","len":3,"c":true},{"a":40154,"n":"power_carry","k":"routine","len":3,"c":true},{"a":40157,"n":"power_magic","k":"routine","len":3,"c":true},{"a":40160,"n":"power_shot","k":"routine","len":3,"c":true},{"a":40163,"n":"power_speed","k":"routine","len":3,"c":true},{"a":40166,"n":"power_fight","k":"routine","len":42,"c":true},{"a":40192,"n":"b_9D00","k":"branch","len":1,"c":false},{"a":40207,"n":"r_9D0F","k":"branch","len":1,"c":false},{"a":40208,"n":"power_apply","k":"routine","len":231,"c":true},{"a":40273,"n":"b_9D51","k":"branch","len":1,"c":false},{"a":40302,"n":"b_9D6E","k":"branch","len":1,"c":false},{"a":40338,"n":"b_9D92","k":"branch","len":1,"c":false},{"a":40374,"n":"b_9DB6","k":"branch","len":1,"c":false},{"a":40403,"n":"b_9DD3","k":"branch","len":1,"c":false},{"a":40438,"n":"r_9DF6","k":"branch","len":1,"c":false},{"a":40439,"n":"power_tables","k":"table","len":4,"c":true},{"a":40443,"n":"power_shot_lo","k":"table","len":4,"c":true},{"a":40447,"n":"power_fight_hi","k":"table","len":4,"c":true},{"a":40451,"n":"power_fight_lo","k":"table","len":4,"c":true},{"a":40455,"n":"base_shot_hi","k":"table","len":4,"c":true},{"a":40459,"n":"base_shot_lo","k":"table","len":4,"c":true},{"a":40463,"n":"base_fight_hi","k":"table","len":4,"c":true},{"a":40467,"n":"base_fight_lo","k":"table","len":4,"c":true},{"a":40471,"n":"armoured_damage","k":"table","len":4,"c":true},{"a":40475,"n":"armoured_damage_2","k":"table","len":4,"c":true},{"a":40479,"n":"armoured_damage_3","k":"table","len":4,"c":true},{"a":40483,"n":"armoured_damage_4","k":"table","len":4,"c":true},{"a":40487,"n":"armoured_damage_5","k":"table","len":4,"c":true},{"a":40491,"n":"armoured_damage_6","k":"table","len":4,"c":true},{"a":40495,"n":"base_damage","k":"table","len":4,"c":true},{"a":40499,"n":"base_damage_2","k":"table","len":4,"c":true},{"a":40503,"n":"base_damage_3","k":"table","len":4,"c":true},{"a":40507,"n":"base_damage_4","k":"table","len":4,"c":true},{"a":40511,"n":"base_damage_5","k":"table","len":4,"c":true},{"a":40515,"n":"base_damage_6","k":"table","len":6,"c":true},{"a":40521,"n":"damage_taken","k":"table","len":4,"c":true},{"a":40525,"n":"damage_taken_2","k":"variable","len":2,"c":true},{"a":40527,"n":"damage_taken_3","k":"table","len":6,"c":true},{"a":40533,"n":"damage_taken_4","k":"table","len":4,"c":true},{"a":40537,"n":"damage_taken_5","k":"table","len":4,"c":true},{"a":40541,"n":"damage_taken_6","k":"variable","len":2,"c":true},{"a":40543,"n":"player_powers","k":"variable","len":2,"c":true},{"a":40545,"n":"power_index","k":"variable","len":1,"c":true},{"a":40546,"n":"power_message","k":"routine","len":37,"c":true},{"a":40583,"n":"arg_9E87","k":"variable","len":2,"c":true},{"a":40585,"n":"power_message_2","k":"routine","len":6,"c":true},{"a":40591,"n":"arg_9E8F","k":"variable","len":1,"c":true},{"a":40592,"n":"power_name_hi","k":"variable","len":1,"c":true},{"a":40593,"n":"power_message_3","k":"routine","len":12,"c":true},{"a":40605,"n":"power_names","k":"variable","len":1,"c":true},{"a":40606,"n":"power_names_hi","k":"table","len":11,"c":true},{"a":40617,"n":"str_powers","k":"table","len":14,"c":true},{"a":40631,"n":"str_extra_carry","k":"table","len":24,"c":true},{"a":40655,"n":"str_extra_magic","k":"table","len":19,"c":true},{"a":40674,"n":"str_extra_shot_power","k":"table","len":18,"c":true},{"a":40692,"n":"str_extra_shot_speed","k":"table","len":18,"c":true},{"a":40710,"n":"str_extra_fight","k":"table","len":19,"c":true},{"a":40729,"n":"str_now_has","k":"table","len":9,"c":true},{"a":40738,"n":"poison","k":"routine","len":64,"c":true},{"a":40746,"n":"b_9F2A","k":"branch","len":1,"c":false},{"a":40754,"n":"b_9F32","k":"branch","len":1,"c":false},{"a":40758,"n":"j_9F36","k":"branch","len":1,"c":false},{"a":40802,"n":"poison_health","k":"routine","len":13,"c":true},{"a":40815,"n":"poison_pick","k":"table","len":8,"c":true},{"a":40823,"n":"power_icon_cols","k":"table","len":6,"c":true},{"a":40829,"n":"power_reset","k":"routine","len":19,"c":true},{"a":40848,"n":"power_reset_call","k":"routine","len":1,"c":true},{"a":40849,"n":"power_reset_target","k":"routine","len":1,"c":true},{"a":40850,"n":"power_reset_target_hi","k":"routine","len":4,"c":true},{"a":40854,"n":"power_resets","k":"variable","len":1,"c":true},{"a":40855,"n":"power_resets_hi","k":"table","len":11,"c":true},{"a":40866,"n":"power_reset_armour","k":"routine","len":37,"c":true},{"a":40903,"n":"power_reset_carry","k":"routine","len":6,"c":true},{"a":40909,"n":"power_reset_magic","k":"routine","len":13,"c":true},{"a":40922,"n":"power_reset_shot","k":"routine","len":13,"c":true},{"a":40935,"n":"power_reset_speed","k":"routine","len":6,"c":true},{"a":40941,"n":"power_reset_fight","k":"routine","len":13,"c":true},{"a":40954,"n":"magic_tables","k":"table","len":4,"c":true},{"a":40958,"n":"magic_power_hi","k":"variable","len":2,"c":true},{"a":40960,"n":"magic_tables_a000","k":"variable","len":2,"c":true},{"a":40962,"n":"magic_base_lo","k":"table","len":4,"c":true},{"a":40966,"n":"magic_base_hi","k":"table","len":4,"c":true},{"a":40970,"n":"magic_vs_generators","k":"variable","len":2,"c":true},{"a":40972,"n":"magic_value","k":"variable","len":2,"c":true},{"a":40974,"n":"magic_vs_monsters","k":"variable","len":2,"c":true},{"a":40976,"n":"magic_value_2","k":"variable","len":2,"c":true},{"a":40978,"n":"player_powers_reset","k":"routine","len":36,"c":true},{"a":41014,"n":"tune_tick","k":"routine","len":3,"c":true},{"a":41017,"n":"tune_start","k":"routine","len":3,"c":true},{"a":41020,"n":"tune_on","k":"variable","len":1,"c":true},{"a":41021,"n":"tune_voices","k":"variable","len":1,"c":true},{"a":41022,"n":"tune_voice1_hi","k":"variable","len":2,"c":true},{"a":41024,"n":"tune_voice1_rest","k":"table","len":6,"c":true},{"a":41030,"n":"tune_voice1_count","k":"variable","len":1,"c":true},{"a":41031,"n":"tune_voice2","k":"variable","len":1,"c":true},{"a":41032,"n":"tune_voice2_hi","k":"variable","len":2,"c":true},{"a":41034,"n":"tune_voice2_rest","k":"table","len":6,"c":true},{"a":41040,"n":"tune_voice2_count","k":"variable","len":1,"c":true},{"a":41041,"n":"tune_voice3","k":"variable","len":1,"c":true},{"a":41042,"n":"tune_voice3_hi","k":"variable","len":2,"c":true},{"a":41044,"n":"tune_voice3_rest","k":"table","len":6,"c":true},{"a":41050,"n":"tune_voice3_count","k":"variable","len":1,"c":true},{"a":41051,"n":"tune_volume","k":"variable","len":1,"c":true},{"a":41052,"n":"tune_init","k":"routine","len":97,"c":true},{"a":41060,"n":"b_A064","k":"branch","len":1,"c":false},{"a":41149,"n":"tune_skip","k":"routine","len":15,"c":true},{"a":41163,"n":"r_A0CB","k":"branch","len":1,"c":false},{"a":41164,"n":"tune_play","k":"routine","len":172,"c":true},{"a":41170,"n":"b_A0D2","k":"branch","len":1,"c":false},{"a":41190,"n":"b_A0E6","k":"branch","len":1,"c":false},{"a":41225,"n":"b_A109","k":"branch","len":1,"c":false},{"a":41243,"n":"b_A11B","k":"branch","len":1,"c":false},{"a":41280,"n":"b_A140","k":"branch","len":1,"c":false},{"a":41300,"n":"b_A154","k":"branch","len":1,"c":false},{"a":41335,"n":"r_A177","k":"branch","len":1,"c":false},{"a":41336,"n":"tune_command","k":"routine","len":233,"c":true},{"a":41349,"n":"b_A185","k":"branch","len":1,"c":false},{"a":41354,"n":"j_A18A","k":"branch","len":1,"c":false},{"a":41366,"n":"b_A196","k":"branch","len":1,"c":false},{"a":41383,"n":"b_A1A7","k":"branch","len":1,"c":false},{"a":41393,"n":"b_A1B1","k":"branch","len":1,"c":false},{"a":41407,"n":"b_A1BF","k":"branch","len":1,"c":false},{"a":41417,"n":"b_A1C9","k":"branch","len":1,"c":false},{"a":41427,"n":"b_A1D3","k":"branch","len":1,"c":false},{"a":41446,"n":"b_A1E6","k":"branch","len":1,"c":false},{"a":41468,"n":"b_A1FC","k":"branch","len":1,"c":false},{"a":41497,"n":"b_A219","k":"branch","len":1,"c":false},{"a":41517,"n":"b_A22D","k":"branch","len":1,"c":false},{"a":41521,"n":"j_A231","k":"branch","len":1,"c":false},{"a":41542,"n":"b_A246","k":"branch","len":1,"c":false},{"a":41548,"n":"b_A24C","k":"branch","len":1,"c":false},{"a":41563,"n":"b_A25B","k":"branch","len":1,"c":false},{"a":41569,"n":"tune_pad_1","k":"variable","len":1,"c":true},{"a":41570,"n":"tune_reg_write","k":"routine","len":8,"c":true},{"a":41578,"n":"tune_pad_2","k":"variable","len":1,"c":true},{"a":41579,"n":"tune_note","k":"routine","len":39,"c":true},{"a":41618,"n":"stream_next","k":"routine","len":12,"c":true},{"a":41629,"n":"r_A29D","k":"branch","len":1,"c":false},{"a":41630,"n":"note_freqs","k":"variable","len":1,"c":true},{"a":41631,"n":"note_freqs_hi","k":"table","len":191,"c":true},{"a":41822,"n":"hidden_potion_place","k":"routine","len":23,"c":true},{"a":41844,"n":"b_A374","k":"branch","len":1,"c":false},{"a":41845,"n":"hidden_glyph_src","k":"routine","len":27,"c":true},{"a":41871,"n":"r_A38F","k":"branch","len":1,"c":false},{"a":41872,"n":"extras_place","k":"routine","len":75,"c":true},{"a":41897,"n":"b_A3A9","k":"branch","len":1,"c":false},{"a":41911,"n":"b_A3B7","k":"branch","len":1,"c":false},{"a":41914,"n":"b_A3BA","k":"branch","len":1,"c":false},{"a":41925,"n":"b_A3C5","k":"branch","len":1,"c":false},{"a":41935,"n":"b_A3CF","k":"branch","len":1,"c":false},{"a":41946,"n":"r_A3DA","k":"branch","len":1,"c":false},{"a":41947,"n":"extras_count","k":"variable","len":1,"c":true},{"a":41948,"n":"extras_chance","k":"variable","len":1,"c":true},{"a":41949,"n":"random_place","k":"routine","len":93,"c":true},{"a":42042,"n":"hidden_kind","k":"variable","len":1,"c":true},{"a":42045,"n":"random","k":"routine","len":26,"c":true},{"a":42054,"n":"b_A446","k":"branch","len":1,"c":false},{"a":42071,"n":"hidden_potion_roll","k":"routine","len":32,"c":true},{"a":42103,"n":"arg_A477","k":"variable","len":2,"c":true},{"a":42105,"n":"hidden_potion_end","k":"routine","len":1,"c":true},{"a":42106,"n":"str_hidden_potion","k":"table","len":24,"c":true},{"a":42130,"n":"game_over_check","k":"routine","len":26,"c":true},{"a":42151,"n":"b_A4A7","k":"branch","len":1,"c":false},{"a":42156,"n":"game_reset","k":"routine","len":116,"c":true},{"a":42272,"n":"wait_first_player","k":"routine","len":74,"c":true},{"a":42278,"n":"j_A526","k":"branch","len":1,"c":false},{"a":42280,"n":"b_A528","k":"branch","len":1,"c":false},{"a":42293,"n":"b_A535","k":"branch","len":1,"c":false},{"a":42346,"n":"players_join","k":"routine","len":26,"c":true},{"a":42356,"n":"b_A574","k":"branch","len":1,"c":false},{"a":42368,"n":"b_A580","k":"branch","len":1,"c":false},{"a":42371,"n":"r_A583","k":"branch","len":1,"c":false},{"a":42372,"n":"join_beside","k":"routine","len":88,"c":true},{"a":42398,"n":"b_A59E","k":"branch","len":1,"c":false},{"a":42460,"n":"join_spot","k":"routine","len":26,"c":true},{"a":42466,"n":"b_A5E2","k":"branch","len":1,"c":false},{"a":42481,"n":"b_A5F1","k":"branch","len":1,"c":false},{"a":42486,"n":"join_test","k":"routine","len":46,"c":true},{"a":42532,"n":"join_offsets","k":"variable","len":1,"c":true},{"a":42533,"n":"join_offsets_x","k":"table","len":4,"c":true},{"a":42537,"n":"player_mark","k":"routine","len":19,"c":true},{"a":42556,"n":"leave_timers","k":"routine","len":87,"c":true},{"a":42558,"n":"b_A63E","k":"branch","len":1,"c":false},{"a":42639,"n":"b_A68F","k":"branch","len":1,"c":false},{"a":42643,"n":"unused_side2","k":"table","len":8,"c":true},{"a":42651,"n":"arg_A69B","k":"variable","len":2,"c":true},{"a":42659,"n":"arg_A6A3","k":"variable","len":2,"c":true},{"a":42667,"n":"arg_A6AB","k":"variable","len":2,"c":true},{"a":42669,"n":"unused_side2_wait","k":"table","len":33,"c":true},{"a":42702,"n":"str_insert_side2","k":"table","len":23,"c":true},{"a":42725,"n":"str_press_space","k":"table","len":22,"c":true},{"a":42747,"n":"str_to_continue","k":"table","len":18,"c":true},{"a":42765,"n":"shots_fire","k":"routine","len":11,"c":true},{"a":42776,"n":"shot_fire","k":"routine","len":80,"c":true},{"a":42808,"n":"b_A738","k":"branch","len":1,"c":false},{"a":42855,"n":"r_A767","k":"branch","len":1,"c":false},{"a":42856,"n":"shots_move","k":"routine","len":87,"c":true},{"a":42858,"n":"b_A76A","k":"branch","len":1,"c":false},{"a":42875,"n":"b_A77B","k":"branch","len":1,"c":false},{"a":42904,"n":"b_A798","k":"branch","len":1,"c":false},{"a":42932,"n":"b_A7B4","k":"branch","len":1,"c":false},{"a":42936,"n":"b_A7B8","k":"branch","len":1,"c":false},{"a":42943,"n":"rock_fly","k":"routine","len":92,"c":true},{"a":42981,"n":"r_A7E5","k":"branch","len":1,"c":false},{"a":42982,"n":"b_A7E6","k":"branch","len":1,"c":false},{"a":43007,"n":"b_A7FF","k":"branch","len":1,"c":false},{"a":43014,"n":"b_A806","k":"branch","len":1,"c":false},{"a":43028,"n":"b_A814","k":"branch","len":1,"c":false},{"a":43035,"n":"shot_sprite","k":"routine","len":57,"c":true},{"a":43077,"n":"b_A845","k":"branch","len":1,"c":false},{"a":43092,"n":"shot_type","k":"variable","len":1,"c":true},{"a":43093,"n":"shot_type_1","k":"variable","len":1,"c":true},{"a":43094,"n":"shot_type_2","k":"variable","len":1,"c":true},{"a":43095,"n":"shot_type_3","k":"variable","len":1,"c":true},{"a":43096,"n":"shot_dir","k":"table","len":4,"c":true},{"a":43100,"n":"shot_x","k":"table","len":4,"c":true},{"a":43104,"n":"shot_y","k":"table","len":4,"c":true},{"a":43108,"n":"shot_owner","k":"table","len":20,"c":true},{"a":43128,"n":"shot_shapes","k":"table","len":4,"c":true},{"a":43132,"n":"axe_spin","k":"table","len":8,"c":true},{"a":43140,"n":"shots_hit_tiles","k":"routine","len":54,"c":true},{"a":43142,"n":"b_A886","k":"branch","len":1,"c":false},{"a":43190,"n":"b_A8B6","k":"branch","len":1,"c":false},{"a":43194,"n":"shot_tile","k":"routine","len":116,"c":true},{"a":43236,"n":"r_A8E4","k":"branch","len":1,"c":false},{"a":43237,"n":"b_A8E5","k":"branch","len":1,"c":false},{"a":43240,"n":"b_A8E8","k":"branch","len":1,"c":false},{"a":43250,"n":"b_A8F2","k":"branch","len":1,"c":false},{"a":43254,"n":"b_A8F6","k":"branch","len":1,"c":false},{"a":43278,"n":"j_A90E","k":"branch","len":1,"c":false},{"a":43296,"n":"b_A920","k":"branch","len":1,"c":false},{"a":43299,"n":"b_A923","k":"branch","len":1,"c":false},{"a":43310,"n":"shot_clear","k":"routine","len":15,"c":true},{"a":43325,"n":"shot_cell_x","k":"table","len":4,"c":true},{"a":43329,"n":"shot_cell_y","k":"table","len":4,"c":true},{"a":43333,"n":"shot_hits_monster","k":"routine","len":201,"c":true},{"a":43356,"n":"b_A95C","k":"branch","len":1,"c":false},{"a":43376,"n":"b_A970","k":"branch","len":1,"c":false},{"a":43404,"n":"b_A98C","k":"branch","len":1,"c":false},{"a":43407,"n":"b_A98F","k":"branch","len":1,"c":false},{"a":43409,"n":"b_A991","k":"branch","len":1,"c":false},{"a":43433,"n":"b_A9A9","k":"branch","len":1,"c":false},{"a":43492,"n":"b_A9E4","k":"branch","len":1,"c":false},{"a":43528,"n":"b_AA08","k":"branch","len":1,"c":false},{"a":43532,"n":"b_AA0C","k":"branch","len":1,"c":false},{"a":43534,"n":"monster_cell_x","k":"variable","len":1,"c":true},{"a":43535,"n":"monster_cell_y","k":"variable","len":1,"c":true},{"a":43536,"n":"shots_hit_monsters","k":"routine","len":30,"c":true},{"a":43545,"n":"b_AA19","k":"branch","len":1,"c":false},{"a":43551,"n":"b_AA1F","k":"branch","len":1,"c":false},{"a":43565,"n":"r_AA2D","k":"branch","len":1,"c":false},{"a":43566,"n":"fireball_fire","k":"routine","len":73,"c":true},{"a":43579,"n":"b_AA3B","k":"branch","len":1,"c":false},{"a":43635,"n":"b_AA73","k":"branch","len":1,"c":false},{"a":43639,"n":"rock_throw","k":"routine","len":69,"c":true},{"a":43704,"n":"b_AAB8","k":"branch","len":1,"c":false},{"a":43708,"n":"shot_colours","k":"variable","len":1,"c":true},{"a":43709,"n":"shot_colour_1","k":"variable","len":1,"c":true},{"a":43710,"n":"shot_colour_2","k":"variable","len":1,"c":true},{"a":43711,"n":"shot_colour_3","k":"variable","len":1,"c":true},{"a":43712,"n":"shots_hit_players","k":"routine","len":76,"c":true},{"a":43714,"n":"b_AAC2","k":"branch","len":1,"c":false},{"a":43716,"n":"b_AAC4","k":"branch","len":1,"c":false},{"a":43739,"n":"b_AADB","k":"branch","len":1,"c":false},{"a":43781,"n":"b_AB05","k":"branch","len":1,"c":false},{"a":43788,"n":"rock_path","k":"routine","len":213,"c":true},{"a":43806,"n":"b_AB1E","k":"branch","len":1,"c":false},{"a":43823,"n":"b_AB2F","k":"branch","len":1,"c":false},{"a":43842,"n":"b_AB42","k":"branch","len":1,"c":false},{"a":43864,"n":"b_AB58","k":"branch","len":1,"c":false},{"a":43866,"n":"b_AB5A","k":"branch","len":1,"c":false},{"a":43892,"n":"j_AB74","k":"branch","len":1,"c":false},{"a":43905,"n":"b_AB81","k":"branch","len":1,"c":false},{"a":43911,"n":"b_AB87","k":"branch","len":1,"c":false},{"a":43925,"n":"j_AB95","k":"branch","len":1,"c":false},{"a":43938,"n":"b_ABA2","k":"branch","len":1,"c":false},{"a":43961,"n":"b_ABB9","k":"branch","len":1,"c":false},{"a":43983,"n":"b_ABCF","k":"branch","len":1,"c":false},{"a":43999,"n":"b_ABDF","k":"branch","len":1,"c":false},{"a":44001,"n":"rock_work","k":"variable","len":1,"c":true},{"a":44002,"n":"rock_dx_half","k":"variable","len":1,"c":true},{"a":44003,"n":"rock_dy","k":"variable","len":1,"c":true},{"a":44004,"n":"rock_dy_half","k":"variable","len":1,"c":true},{"a":44005,"n":"rock_long","k":"variable","len":1,"c":true},{"a":44006,"n":"rock_short","k":"variable","len":1,"c":true},{"a":44007,"n":"rock_steps","k":"variable","len":2,"c":true},{"a":44009,"n":"rock_half","k":"variable","len":2,"c":true},{"a":44011,"n":"rock_step_x","k":"variable","len":2,"c":true},{"a":44013,"n":"rock_step_y","k":"variable","len":2,"c":true},{"a":44015,"n":"rock_swapped","k":"variable","len":1,"c":true},{"a":44016,"n":"shot_score","k":"routine","len":39,"c":true},{"a":44050,"n":"b_AC12","k":"branch","len":1,"c":false},{"a":44055,"n":"score_generator","k":"routine","len":39,"c":true},{"a":44089,"n":"b_AC39","k":"branch","len":1,"c":false},{"a":44094,"n":"shot_hits_player","k":"routine","len":88,"c":true},{"a":44121,"n":"b_AC59","k":"branch","len":1,"c":false},{"a":44134,"n":"b_AC66","k":"branch","len":1,"c":false},{"a":44137,"n":"b_AC69","k":"branch","len":1,"c":false},{"a":44168,"n":"b_AC88","k":"branch","len":1,"c":false},{"a":44177,"n":"b_AC91","k":"branch","len":1,"c":false},{"a":44182,"n":"players_frozen","k":"routine","len":21,"c":true},{"a":44184,"n":"b_AC98","k":"branch","len":1,"c":false},{"a":44199,"n":"b_ACA7","k":"branch","len":1,"c":false},{"a":44203,"n":"shot_power_gen","k":"variable","len":2,"c":true},{"a":44205,"n":"shot_power","k":"variable","len":2,"c":true},{"a":44207,"n":"gen_thresholds","k":"table","len":15,"c":true},{"a":44222,"n":"shot_damage","k":"variable","len":2,"c":true},{"a":44224,"n":"shot_damage_base","k":"variable","len":2,"c":true},{"a":44226,"n":"shot_speed","k":"variable","len":2,"c":true},{"a":44228,"n":"shot_speed_base","k":"table","len":4,"c":true},{"a":44232,"n":"fight_power","k":"variable","len":2,"c":true},{"a":44234,"n":"fight_damage","k":"variable","len":2,"c":true},{"a":44236,"n":"fight_damage_base","k":"variable","len":2,"c":true},{"a":44238,"n":"fight_generator","k":"routine","len":69,"c":true},{"a":44282,"n":"b_ACFA","k":"branch","len":1,"c":false},{"a":44301,"n":"b_AD0D","k":"branch","len":1,"c":false},{"a":44307,"n":"fight_rate","k":"table","len":3,"c":true},{"a":44310,"n":"death_points","k":"routine","len":16,"c":true},{"a":44326,"n":"death_index","k":"variable","len":1,"c":true},{"a":44327,"n":"death_score","k":"variable","len":1,"c":true},{"a":44328,"n":"death_scores","k":"table","len":8,"c":true},{"a":44336,"n":"potion_shot","k":"routine","len":31,"c":true},{"a":44348,"n":"b_AD3C","k":"branch","len":1,"c":false},{"a":44366,"n":"r_AD4E","k":"branch","len":1,"c":false},{"a":44367,"n":"magic_generator","k":"routine","len":56,"c":true},{"a":44400,"n":"b_AD70","k":"branch","len":1,"c":false},{"a":44402,"n":"b_AD72","k":"branch","len":1,"c":false},{"a":44423,"n":"treasure_clock","k":"routine","len":44,"c":true},{"a":44458,"n":"b_ADAA","k":"branch","len":1,"c":false},{"a":44463,"n":"b_ADAF","k":"branch","len":1,"c":false},{"a":44466,"n":"r_ADB2","k":"branch","len":1,"c":false},{"a":44467,"n":"treasure_tick","k":"variable","len":1,"c":true},{"a":44468,"n":"treasure_time","k":"variable","len":1,"c":true},{"a":44469,"n":"treasure_clock_set","k":"routine","len":25,"c":true},{"a":44494,"n":"treasure_units","k":"table","len":16,"c":true},{"a":44510,"n":"treasure_tens","k":"table","len":16,"c":true},{"a":44526,"n":"treasure_times","k":"table","len":16,"c":true},{"a":44542,"n":"treasure_end","k":"routine","len":62,"c":true},{"a":44549,"n":"b_AE05","k":"branch","len":1,"c":false},{"a":44559,"n":"b_AE0F","k":"branch","len":1,"c":false},{"a":44604,"n":"treasure_result","k":"routine","len":32,"c":true},{"a":44613,"n":"b_AE45","k":"branch","len":1,"c":false},{"a":44636,"n":"arg_AE5C","k":"variable","len":2,"c":true},{"a":44638,"n":"treasure_result_none","k":"routine","len":6,"c":true},{"a":44644,"n":"arg_AE64","k":"variable","len":2,"c":true},{"a":44646,"n":"treasure_result_rows","k":"routine","len":32,"c":true},{"a":44656,"n":"b_AE70","k":"branch","len":1,"c":false},{"a":44678,"n":"treasure_result_bcd","k":"routine","len":54,"c":true},{"a":44732,"n":"arg_AEBC","k":"variable","len":2,"c":true},{"a":44734,"n":"treasure_result_got","k":"routine","len":6,"c":true},{"a":44740,"n":"arg_AEC4","k":"variable","len":2,"c":true},{"a":44742,"n":"treasure_result_end","k":"routine","len":10,"c":true},{"a":44752,"n":"hero_name_ptrs","k":"variable","len":1,"c":true},{"a":44753,"n":"hero_name_ptrs_hi","k":"table","len":7,"c":true},{"a":44760,"n":"str_hero_names","k":"table","len":10,"c":true},{"a":44770,"n":"str_valkyrie","k":"table","len":10,"c":true},{"a":44780,"n":"str_wizard","k":"table","len":8,"c":true},{"a":44788,"n":"str_elf","k":"table","len":6,"c":true},{"a":44794,"n":"str_treasures","k":"variable","len":1,"c":true},{"a":44795,"n":"str_treasures_colour","k":"table","len":13,"c":true},{"a":44808,"n":"treasures_digit_1","k":"variable","len":1,"c":true},{"a":44809,"n":"treasures_digit_2","k":"variable","len":1,"c":true},{"a":44810,"n":"str_bonus","k":"variable","len":1,"c":true},{"a":44811,"n":"str_bonus_colour","k":"table","len":9,"c":true},{"a":44820,"n":"bonus_digit_1","k":"variable","len":1,"c":true},{"a":44821,"n":"bonus_digit_2","k":"table","len":3,"c":true},{"a":44824,"n":"str_no_bonus","k":"variable","len":1,"c":true},{"a":44825,"n":"str_no_bonus_colour","k":"table","len":9,"c":true},{"a":44834,"n":"str_you_lose","k":"variable","len":1,"c":true},{"a":44835,"n":"str_you_lose_colour","k":"table","len":21,"c":true},{"a":44856,"n":"escaped","k":"variable","len":1,"c":true},{"a":44857,"n":"escaped_p2","k":"variable","len":1,"c":true},{"a":44858,"n":"treasures_got","k":"variable","len":1,"c":true},{"a":44859,"n":"treasures_got_p2","k":"variable","len":1,"c":true},{"a":44860,"n":"rooms_countdown","k":"variable","len":1,"c":true},{"a":44861,"n":"text_rows","k":"variable","len":1,"c":true},{"a":44862,"n":"text_rows_colour_hi","k":"table","len":3,"c":true},{"a":44865,"n":"text_rows_screen","k":"variable","len":1,"c":true},{"a":44866,"n":"text_rows_screen_hi","k":"table","len":3,"c":true},{"a":44869,"n":"wait_64_frames","k":"routine","len":11,"c":true},{"a":44874,"n":"b_AF4A","k":"branch","len":1,"c":false},{"a":44880,"n":"sprites_hide_digits","k":"routine","len":21,"c":true},{"a":44901,"n":"screen_clear","k":"routine","len":13,"c":true},{"a":44914,"n":"text_screen","k":"routine","len":119,"c":true},{"a":44965,"n":"b_AFA5","k":"branch","len":1,"c":false},{"a":44974,"n":"b_AFAE","k":"branch","len":1,"c":false},{"a":44999,"n":"b_AFC7","k":"branch","len":1,"c":false},{"a":45033,"n":"text_row_players","k":"routine","len":10,"c":true},{"a":45043,"n":"text_row","k":"routine","len":21,"c":true},{"a":45064,"n":"print_centred","k":"routine","len":104,"c":true},{"a":45148,"n":"b_B05C","k":"branch","len":1,"c":false},{"a":45168,"n":"text_next_row","k":"routine","len":27,"c":true},{"a":45195,"n":"print_colour","k":"variable","len":1,"c":true},{"a":45196,"n":"to_digits","k":"routine","len":28,"c":true},{"a":45203,"n":"b_B093","k":"branch","len":1,"c":false},{"a":45212,"n":"b_B09C","k":"branch","len":1,"c":false},{"a":45221,"n":"b_B0A5","k":"branch","len":1,"c":false},{"a":45224,"n":"treasure_intro","k":"routine","len":14,"c":true},{"a":45238,"n":"arg_B0B6","k":"variable","len":2,"c":true},{"a":45240,"n":"treasure_intro_2","k":"routine","len":6,"c":true},{"a":45246,"n":"arg_B0BE","k":"variable","len":2,"c":true},{"a":45248,"n":"treasure_intro_3","k":"routine","len":3,"c":true},{"a":45251,"n":"arg_B0C3","k":"variable","len":2,"c":true},{"a":45253,"n":"treasure_intro_4","k":"routine","len":12,"c":true},{"a":45265,"n":"treasure_start","k":"routine","len":45,"c":true},{"a":45309,"n":"r_B0FD","k":"branch","len":1,"c":false},{"a":45310,"n":"treasure_tune_due","k":"variable","len":1,"c":true},{"a":45311,"n":"str_treasure_room","k":"table","len":18,"c":true},{"a":45329,"n":"str_treasure_room_top","k":"table","len":28,"c":true},{"a":45357,"n":"str_treasure_room_bottom","k":"table","len":28,"c":true},{"a":45385,"n":"text_rows_down","k":"routine","len":7,"c":true},{"a":45392,"n":"print_hero_name","k":"routine","len":20,"c":true},{"a":45412,"n":"arg_B164","k":"variable","len":1,"c":true},{"a":45413,"n":"hero_name_arg_hi","k":"variable","len":1,"c":true},{"a":45414,"n":"print_hero_name_end","k":"routine","len":4,"c":true},{"a":45418,"n":"generators_run","k":"routine","len":163,"c":true},{"a":45438,"n":"b_B17E","k":"branch","len":1,"c":false},{"a":45457,"n":"r_B191","k":"branch","len":1,"c":false},{"a":45458,"n":"b_B192","k":"branch","len":1,"c":false},{"a":45470,"n":"b_B19E","k":"branch","len":1,"c":false},{"a":45482,"n":"b_B1AA","k":"branch","len":1,"c":false},{"a":45522,"n":"b_B1D2","k":"branch","len":1,"c":false},{"a":45538,"n":"b_B1E2","k":"branch","len":1,"c":false},{"a":45564,"n":"b_B1FC","k":"branch","len":1,"c":false},{"a":45581,"n":"gen_spot","k":"routine","len":35,"c":true},{"a":45616,"n":"monster_spawn","k":"routine","len":74,"c":true},{"a":45627,"n":"b_B23B","k":"branch","len":1,"c":false},{"a":45689,"n":"r_B279","k":"branch","len":1,"c":false},{"a":45690,"n":"monster_kinds","k":"table","len":15,"c":true},{"a":45705,"n":"gen_dx","k":"table","len":8,"c":true},{"a":45713,"n":"gen_dy","k":"table","len":8,"c":true},{"a":45721,"n":"gen_kind","k":"variable","len":1,"c":true},{"a":45722,"n":"tile_cur_x","k":"variable","len":1,"c":true},{"a":45723,"n":"tile_cur_y","k":"variable","len":1,"c":true},{"a":45724,"n":"gen_cols_left","k":"variable","len":1,"c":true},{"a":45725,"n":"gen_rows_left","k":"variable","len":1,"c":true},{"a":45726,"n":"pad_B29E","k":"variable","len":1,"c":true},{"a":45727,"n":"trap_spring","k":"routine","len":43,"c":true},{"a":45737,"n":"b_B2A9","k":"branch","len":1,"c":false},{"a":45750,"n":"b_B2B6","k":"branch","len":1,"c":false},{"a":45757,"n":"b_B2BD","k":"branch","len":1,"c":false},{"a":45763,"n":"b_B2C3","k":"branch","len":1,"c":false},{"a":45770,"n":"trap_wall_gone","k":"routine","len":138,"c":true},{"a":45804,"n":"b_B2EC","k":"branch","len":1,"c":false},{"a":45838,"n":"b_B30E","k":"branch","len":1,"c":false},{"a":45866,"n":"b_B32A","k":"branch","len":1,"c":false},{"a":45900,"n":"b_B34C","k":"branch","len":1,"c":false},{"a":45908,"n":"wall_unjoin","k":"routine","len":23,"c":true},{"a":45925,"n":"b_B365","k":"branch","len":1,"c":false},{"a":45930,"n":"r_B36A","k":"branch","len":1,"c":false},{"a":45931,"n":"wall_join_masks","k":"table","len":4,"c":true},{"a":45935,"n":"doors_open_step","k":"routine","len":13,"c":true},{"a":45948,"n":"door_step","k":"routine","len":205,"c":true},{"a":45971,"n":"r_B393","k":"branch","len":1,"c":false},{"a":45972,"n":"b_B394","k":"branch","len":1,"c":false},{"a":45975,"n":"b_B397","k":"branch","len":1,"c":false},{"a":45978,"n":"b_B39A","k":"branch","len":1,"c":false},{"a":45981,"n":"b_B39D","k":"branch","len":1,"c":false},{"a":46000,"n":"b_B3B0","k":"branch","len":1,"c":false},{"a":46011,"n":"b_B3BB","k":"branch","len":1,"c":false},{"a":46018,"n":"b_B3C2","k":"branch","len":1,"c":false},{"a":46024,"n":"j_B3C8","k":"branch","len":1,"c":false},{"a":46043,"n":"b_B3DB","k":"branch","len":1,"c":false},{"a":46054,"n":"b_B3E6","k":"branch","len":1,"c":false},{"a":46061,"n":"b_B3ED","k":"branch","len":1,"c":false},{"a":46067,"n":"j_B3F3","k":"branch","len":1,"c":false},{"a":46086,"n":"b_B406","k":"branch","len":1,"c":false},{"a":46097,"n":"b_B411","k":"branch","len":1,"c":false},{"a":46104,"n":"b_B418","k":"branch","len":1,"c":false},{"a":46110,"n":"j_B41E","k":"branch","len":1,"c":false},{"a":46129,"n":"b_B431","k":"branch","len":1,"c":false},{"a":46140,"n":"b_B43C","k":"branch","len":1,"c":false},{"a":46147,"n":"b_B443","k":"branch","len":1,"c":false},{"a":46153,"n":"door_left","k":"routine","len":27,"c":true},{"a":46180,"n":"door_right","k":"routine","len":27,"c":true},{"a":46207,"n":"door_up","k":"routine","len":22,"c":true},{"a":46226,"n":"b_B492","k":"branch","len":1,"c":false},{"a":46229,"n":"door_down","k":"routine","len":22,"c":true},{"a":46248,"n":"b_B4A8","k":"branch","len":1,"c":false},{"a":46251,"n":"door_clear","k":"routine","len":45,"c":true},{"a":46296,"n":"door_is_door","k":"routine","len":11,"c":true},{"a":46306,"n":"r_B4E2","k":"branch","len":1,"c":false},{"a":46307,"n":"door_pos","k":"variable","len":1,"c":true},{"a":46308,"n":"door_pos_hi","k":"variable","len":1,"c":true},{"a":46309,"n":"door_pos_2","k":"variable","len":1,"c":true},{"a":46310,"n":"door_pos_2_hi","k":"variable","len":1,"c":true},{"a":46311,"n":"door_state","k":"variable","len":2,"c":true},{"a":46313,"n":"door_state_p2","k":"variable","len":1,"c":true},{"a":46314,"n":"cell_blank","k":"routine","len":45,"c":true},{"a":46359,"n":"tile_draw","k":"routine","len":64,"c":true},{"a":46423,"n":"idle_timer","k":"routine","len":42,"c":true},{"a":46452,"n":"b_B574","k":"branch","len":1,"c":false},{"a":46464,"n":"r_B580","k":"branch","len":1,"c":false},{"a":46465,"n":"idle_doors_open","k":"routine","len":27,"c":true},{"a":46492,"n":"idle_walls_exit","k":"routine","len":23,"c":true},{"a":46515,"n":"tiles_replace","k":"routine","len":64,"c":true},{"a":46527,"n":"b_B5BF","k":"branch","len":1,"c":false},{"a":46552,"n":"b_B5D8","k":"branch","len":1,"c":false},{"a":46562,"n":"b_B5E2","k":"branch","len":1,"c":false},{"a":46570,"n":"b_B5EA","k":"branch","len":1,"c":false},{"a":46579,"n":"tile_redraw","k":"routine","len":100,"c":true},{"a":46679,"n":"idle_lo","k":"variable","len":1,"c":true},{"a":46680,"n":"idle_hi","k":"variable","len":1,"c":true},{"a":46681,"n":"idle_new","k":"variable","len":1,"c":true},{"a":46682,"n":"idle_stage","k":"variable","len":1,"c":true},{"a":46683,"n":"idle_count","k":"variable","len":1,"c":true},{"a":46684,"n":"idle_reload","k":"variable","len":1,"c":true},{"a":46685,"n":"idle_second","k":"variable","len":1,"c":true},{"a":46687,"n":"panel_dirty","k":"variable","len":1,"c":true},{"a":46688,"n":"wall_limit","k":"variable","len":1,"c":true},{"a":46689,"n":"hands_full","k":"variable","len":1,"c":true},{"a":46690,"n":"tile_touched","k":"variable","len":1,"c":true},{"a":46691,"n":"keys_held","k":"variable","len":1,"c":true},{"a":46692,"n":"keys_held_p2","k":"variable","len":1,"c":true},{"a":46693,"n":"potions_held","k":"variable","len":1,"c":true},{"a":46694,"n":"potions_held_p2","k":"variable","len":1,"c":true},{"a":46695,"n":"carry_limit","k":"variable","len":2,"c":true},{"a":46697,"n":"amulet_time","k":"variable","len":2,"c":true},{"a":46699,"n":"freeze_p1","k":"variable","len":1,"c":true},{"a":46700,"n":"freeze_p2","k":"variable","len":1,"c":true},{"a":46701,"n":"facing_hold","k":"variable","len":1,"c":true},{"a":46702,"n":"facing_hold_p2","k":"variable","len":1,"c":true},{"a":46703,"n":"exit_count","k":"variable","len":2,"c":true},{"a":46705,"n":"touch_check","k":"routine","len":51,"c":true},{"a":46709,"n":"b_B675","k":"branch","len":1,"c":false},{"a":46737,"n":"b_B691","k":"branch","len":1,"c":false},{"a":46750,"n":"b_B69E","k":"branch","len":1,"c":false},{"a":46756,"n":"touch_note","k":"routine","len":22,"c":true},{"a":46778,"n":"pickups","k":"routine","len":70,"c":true},{"a":46783,"n":"b_B6BF","k":"branch","len":1,"c":false},{"a":46829,"n":"b_B6ED","k":"branch","len":1,"c":false},{"a":46835,"n":"b_B6F3","k":"branch","len":1,"c":false},{"a":46839,"n":"b_B6F7","k":"branch","len":1,"c":false},{"a":46842,"n":"b_B6FA","k":"branch","len":1,"c":false},{"a":46848,"n":"teleport_try","k":"routine","len":17,"c":true},{"a":46864,"n":"r_B710","k":"branch","len":1,"c":false},{"a":46865,"n":"pickup_take","k":"routine","len":86,"c":true},{"a":46951,"n":"pickup_jump","k":"routine","len":1,"c":true},{"a":46952,"n":"pickup_target","k":"routine","len":1,"c":true},{"a":46953,"n":"pickup_target_hi","k":"routine","len":1,"c":true},{"a":46954,"n":"exit_enter","k":"routine","len":40,"c":true},{"a":46993,"n":"r_B791","k":"branch","len":1,"c":false},{"a":46994,"n":"trap_set","k":"routine","len":19,"c":true},{"a":47013,"n":"poison_eaten","k":"routine","len":31,"c":true},{"a":47044,"n":"arg_B7C4","k":"variable","len":1,"c":true},{"a":47045,"n":"poison_name_hi","k":"variable","len":1,"c":true},{"a":47046,"n":"poison_eaten_2","k":"routine","len":6,"c":true},{"a":47052,"n":"arg_B7CC","k":"variable","len":2,"c":true},{"a":47054,"n":"poison_eaten_3","k":"routine","len":6,"c":true},{"a":47060,"n":"arg_B7D4","k":"variable","len":2,"c":true},{"a":47062,"n":"poison_eaten_4","k":"routine","len":15,"c":true},{"a":47077,"n":"str_poisoned","k":"table","len":21,"c":true},{"a":47098,"n":"str_poisoned_food","k":"table","len":16,"c":true},{"a":47114,"n":"exits_animate","k":"routine","len":10,"c":true},{"a":47124,"n":"trap_wait","k":"routine","len":32,"c":true},{"a":47155,"n":"r_B833","k":"branch","len":1,"c":false},{"a":47156,"n":"trap_pending","k":"variable","len":1,"c":true},{"a":47157,"n":"pickup_routines","k":"variable","len":1,"c":true},{"a":47158,"n":"pickup_routines_hi","k":"table","len":29,"c":true},{"a":47187,"n":"pickup_sounds","k":"table","len":15,"c":true},{"a":47202,"n":"door_unlock","k":"routine","len":47,"c":true},{"a":47249,"n":"score_100","k":"routine","len":23,"c":true},{"a":47250,"n":"j_B892","k":"branch","len":1,"c":false},{"a":47272,"n":"food_eat","k":"routine","len":13,"c":true},{"a":47285,"n":"potion_take","k":"routine","len":24,"c":true},{"a":47309,"n":"amulet_take","k":"routine","len":13,"c":true},{"a":47322,"n":"unused_potion_take","k":"table","len":24,"c":true},{"a":47346,"n":"key_take","k":"routine","len":24,"c":true},{"a":47370,"n":"potion_drop","k":"routine","len":17,"c":true},{"a":47387,"n":"chest_take","k":"routine","len":12,"c":true},{"a":47399,"n":"score_index_base","k":"routine","len":2,"c":true},{"a":47400,"n":"r_B928","k":"branch","len":1,"c":false},{"a":47401,"n":"score_lo","k":"variable","len":1,"c":true},{"a":47402,"n":"score_lo_p2","k":"variable","len":1,"c":true},{"a":47403,"n":"score_mid","k":"variable","len":1,"c":true},{"a":47404,"n":"score_mid_p2","k":"variable","len":1,"c":true},{"a":47405,"n":"score_hi","k":"variable","len":1,"c":true},{"a":47406,"n":"score_hi_p2","k":"variable","len":1,"c":true},{"a":47407,"n":"health_lo","k":"variable","len":1,"c":true},{"a":47408,"n":"health_lo_p2","k":"variable","len":1,"c":true},{"a":47409,"n":"health_hi","k":"variable","len":1,"c":true},{"a":47410,"n":"health_hi_p2","k":"variable","len":1,"c":true},{"a":47411,"n":"health_tick","k":"routine","len":68,"c":true},{"a":47413,"n":"b_B935","k":"branch","len":1,"c":false},{"a":47428,"n":"b_B944","k":"branch","len":1,"c":false},{"a":47463,"n":"b_B967","k":"branch","len":1,"c":false},{"a":47478,"n":"r_B976","k":"branch","len":1,"c":false},{"a":47479,"n":"deaths","k":"routine","len":28,"c":true},{"a":47481,"n":"b_B979","k":"branch","len":1,"c":false},{"a":47500,"n":"b_B98C","k":"branch","len":1,"c":false},{"a":47507,"n":"amulet_flash","k":"routine","len":61,"c":true},{"a":47509,"n":"b_B995","k":"branch","len":1,"c":false},{"a":47538,"n":"b_B9B2","k":"branch","len":1,"c":false},{"a":47550,"n":"b_B9BE","k":"branch","len":1,"c":false},{"a":47564,"n":"b_B9CC","k":"branch","len":1,"c":false},{"a":47568,"n":"panel_update","k":"routine","len":19,"c":true},{"a":47586,"n":"r_B9E2","k":"branch","len":1,"c":false},{"a":47587,"n":"panel_digits","k":"routine","len":131,"c":true},{"a":47593,"n":"b_B9E9","k":"branch","len":1,"c":false},{"a":47718,"n":"magic_debounce","k":"variable","len":1,"c":true},{"a":47719,"n":"magic_keys","k":"routine","len":62,"c":true},{"a":47750,"n":"b_BA86","k":"branch","len":1,"c":false},{"a":47780,"n":"r_BAA4","k":"branch","len":1,"c":false},{"a":47781,"n":"magic_use","k":"routine","len":40,"c":true},{"a":47814,"n":"r_BAC6","k":"branch","len":1,"c":false},{"a":47815,"n":"b_BAC7","k":"branch","len":1,"c":false},{"a":47821,"n":"blast_owner","k":"variable","len":1,"c":true},{"a":47822,"n":"exit_spin","k":"routine","len":88,"c":true},{"a":47893,"n":"b_BB15","k":"branch","len":1,"c":false},{"a":47909,"n":"r_BB25","k":"branch","len":1,"c":false},{"a":47910,"n":"spin_facings","k":"table","len":8,"c":true},{"a":47918,"n":"monsters_run","k":"routine","len":92,"c":true},{"a":47973,"n":"b_BB65","k":"branch","len":1,"c":false},{"a":48001,"n":"b_BB81","k":"branch","len":1,"c":false},{"a":48006,"n":"b_BB86","k":"branch","len":1,"c":false},{"a":48009,"n":"r_BB89","k":"branch","len":1,"c":false},{"a":48010,"n":"monsters_left","k":"variable","len":1,"c":true},{"a":48011,"n":"monster_step","k":"routine","len":16,"c":true},{"a":48024,"n":"b_BB98","k":"branch","len":1,"c":false},{"a":48026,"n":"r_BB9A","k":"branch","len":1,"c":false},{"a":48027,"n":"blast_hit","k":"routine","len":56,"c":true},{"a":48044,"n":"b_BBAC","k":"branch","len":1,"c":false},{"a":48057,"n":"b_BBB9","k":"branch","len":1,"c":false},{"a":48058,"n":"b_BBBA","k":"branch","len":1,"c":false},{"a":48072,"n":"b_BBC8","k":"branch","len":1,"c":false},{"a":48083,"n":"monster_on_screen","k":"routine","len":36,"c":true},{"a":48119,"n":"unused_sec","k":"variable","len":1,"c":true},{"a":48120,"n":"monster_on_screen_out","k":"routine","len":1,"c":true},{"a":48121,"n":"monster_attack","k":"routine","len":162,"c":true},{"a":48141,"n":"b_BC0D","k":"branch","len":1,"c":false},{"a":48152,"n":"b_BC18","k":"branch","len":1,"c":false},{"a":48172,"n":"b_BC2C","k":"branch","len":1,"c":false},{"a":48174,"n":"b_BC2E","k":"branch","len":1,"c":false},{"a":48187,"n":"b_BC3B","k":"branch","len":1,"c":false},{"a":48201,"n":"b_BC49","k":"branch","len":1,"c":false},{"a":48222,"n":"b_BC5E","k":"branch","len":1,"c":false},{"a":48265,"n":"b_BC89","k":"branch","len":1,"c":false},{"a":48283,"n":"death_drain","k":"routine","len":44,"c":true},{"a":48310,"n":"b_BCB6","k":"branch","len":1,"c":false},{"a":48327,"n":"monster_remove","k":"routine","len":35,"c":true},{"a":48362,"n":"ghost_diagonal","k":"routine","len":28,"c":true},{"a":48374,"n":"b_BCF6","k":"branch","len":1,"c":false},{"a":48376,"n":"b_BCF8","k":"branch","len":1,"c":false},{"a":48388,"n":"b_BD04","k":"branch","len":1,"c":false},{"a":48390,"n":"monster_move","k":"routine","len":175,"c":true},{"a":48431,"n":"b_BD2F","k":"branch","len":1,"c":false},{"a":48465,"n":"b_BD51","k":"branch","len":1,"c":false},{"a":48493,"n":"b_BD6D","k":"branch","len":1,"c":false},{"a":48520,"n":"b_BD88","k":"branch","len":1,"c":false},{"a":48539,"n":"j_BD9B","k":"branch","len":1,"c":false},{"a":48545,"n":"j_BDA1","k":"branch","len":1,"c":false},{"a":48565,"n":"unused_clear_flag","k":"table","len":10,"c":true},{"a":48575,"n":"cell_ptrs","k":"routine","len":31,"c":true},{"a":48606,"n":"monster_tile_ptr","k":"routine","len":14,"c":true},{"a":48620,"n":"monster_next","k":"routine","len":31,"c":true},{"a":48651,"n":"monster_cells_free","k":"routine","len":15,"c":true},{"a":48666,"n":"cells_empty","k":"routine","len":83,"c":true},{"a":48684,"n":"b_BE2C","k":"branch","len":1,"c":false},{"a":48726,"n":"b_BE56","k":"branch","len":1,"c":false},{"a":48749,"n":"monster_next_slot","k":"variable","len":1,"c":true},{"a":48750,"n":"cell_pos_x","k":"variable","len":1,"c":true},{"a":48751,"n":"cell_pos_y","k":"variable","len":1,"c":true},{"a":48752,"n":"mon_dy","k":"table","len":16,"c":true},{"a":48768,"n":"mon_dx","k":"table","len":16,"c":true},{"a":48784,"n":"monster_aim","k":"routine","len":195,"c":true},{"a":48786,"n":"b_BE92","k":"branch","len":1,"c":false},{"a":48824,"n":"b_BEB8","k":"branch","len":1,"c":false},{"a":48854,"n":"b_BED6","k":"branch","len":1,"c":false},{"a":48861,"n":"b_BEDD","k":"branch","len":1,"c":false},{"a":48893,"n":"b_BEFD","k":"branch","len":1,"c":false},{"a":48908,"n":"b_BF0C","k":"branch","len":1,"c":false},{"a":48916,"n":"b_BF14","k":"branch","len":1,"c":false},{"a":48926,"n":"b_BF1E","k":"branch","len":1,"c":false},{"a":48934,"n":"b_BF26","k":"branch","len":1,"c":false},{"a":48975,"n":"b_BF4F","k":"branch","len":1,"c":false},{"a":48979,"n":"monster_target","k":"routine","len":43,"c":true},{"a":48995,"n":"b_BF63","k":"branch","len":1,"c":false},{"a":49005,"n":"b_BF6D","k":"branch","len":1,"c":false},{"a":49014,"n":"b_BF76","k":"branch","len":1,"c":false},{"a":49022,"n":"target_of","k":"table","len":3,"c":true},{"a":49025,"n":"target_far","k":"variable","len":1,"c":true},{"a":49026,"n":"target_player","k":"variable","len":1,"c":true},{"a":49027,"n":"target_dx","k":"variable","len":2,"c":true},{"a":49029,"n":"target_dy","k":"variable","len":2,"c":true},{"a":49031,"n":"target_dist","k":"variable","len":1,"c":true},{"a":49032,"n":"target_dist_p2","k":"variable","len":1,"c":true},{"a":49033,"n":"target_stick","k":"variable","len":1,"c":true},{"a":49034,"n":"flee_flip","k":"variable","len":1,"c":true},{"a":49035,"n":"stick_dirs","k":"table","len":16,"c":true},{"a":49051,"n":"monster_facings","k":"table","len":15,"c":true},{"a":49066,"n":"monster_facing_new","k":"variable","len":1,"c":true},{"a":49067,"n":"wrap_delta","k":"routine","len":16,"c":true},{"a":49075,"n":"r_BFB3","k":"branch","len":1,"c":false},{"a":49076,"n":"b_BFB4","k":"branch","len":1,"c":false},{"a":49083,"n":"monster_turn","k":"routine","len":22,"c":true},{"a":49105,"n":"turn_call","k":"routine","len":1,"c":true},{"a":49106,"n":"turn_target","k":"routine","len":1,"c":true},{"a":49107,"n":"turn_target_hi","k":"routine","len":30,"c":true},{"a":49119,"n":"b_BFDF","k":"branch","len":1,"c":false},{"a":49122,"n":"j_BFE2","k":"branch","len":1,"c":false},{"a":49137,"n":"attack_flag","k":"variable","len":1,"c":true},{"a":49138,"n":"turn_routines","k":"variable","len":1,"c":true},{"a":49139,"n":"turn_routines_hi","k":"table","len":7,"c":true},{"a":49146,"n":"pad_BFFA","k":"table","len":6,"c":true},{"a":49152,"n":"unused_C000","k":"table","len":14,"c":true},{"a":49166,"n":"monsters_draw_all","k":"routine","len":53,"c":true},{"a":49181,"n":"b_C01D","k":"branch","len":1,"c":false},{"a":49218,"n":"r_C042","k":"branch","len":1,"c":false},{"a":49219,"n":"turn_up_left","k":"routine","len":193,"c":true},{"a":49259,"n":"b_C06B","k":"branch","len":1,"c":false},{"a":49275,"n":"b_C07B","k":"branch","len":1,"c":false},{"a":49297,"n":"b_C091","k":"branch","len":1,"c":false},{"a":49300,"n":"b_C094","k":"branch","len":1,"c":false},{"a":49334,"n":"b_C0B6","k":"branch","len":1,"c":false},{"a":49353,"n":"b_C0C9","k":"branch","len":1,"c":false},{"a":49378,"n":"b_C0E2","k":"branch","len":1,"c":false},{"a":49389,"n":"b_C0ED","k":"branch","len":1,"c":false},{"a":49409,"n":"b_C101","k":"branch","len":1,"c":false},{"a":49412,"n":"turn_alt_ul","k":"variable","len":1,"c":true},{"a":49413,"n":"turn_up_right","k":"routine","len":190,"c":true},{"a":49450,"n":"b_C12A","k":"branch","len":1,"c":false},{"a":49466,"n":"b_C13A","k":"branch","len":1,"c":false},{"a":49488,"n":"b_C150","k":"branch","len":1,"c":false},{"a":49491,"n":"b_C153","k":"branch","len":1,"c":false},{"a":49518,"n":"b_C16E","k":"branch","len":1,"c":false},{"a":49544,"n":"b_C188","k":"branch","len":1,"c":false},{"a":49569,"n":"b_C1A1","k":"branch","len":1,"c":false},{"a":49580,"n":"b_C1AC","k":"branch","len":1,"c":false},{"a":49600,"n":"b_C1C0","k":"branch","len":1,"c":false},{"a":49603,"n":"turn_alt_ur","k":"variable","len":1,"c":true},{"a":49604,"n":"turn_down_left","k":"routine","len":185,"c":true},{"a":49642,"n":"b_C1EA","k":"branch","len":1,"c":false},{"a":49657,"n":"b_C1F9","k":"branch","len":1,"c":false},{"a":49678,"n":"b_C20E","k":"branch","len":1,"c":false},{"a":49681,"n":"b_C211","k":"branch","len":1,"c":false},{"a":49717,"n":"b_C235","k":"branch","len":1,"c":false},{"a":49726,"n":"b_C23E","k":"branch","len":1,"c":false},{"a":49745,"n":"b_C251","k":"branch","len":1,"c":false},{"a":49763,"n":"b_C263","k":"branch","len":1,"c":false},{"a":49786,"n":"b_C27A","k":"branch","len":1,"c":false},{"a":49789,"n":"turn_alt_dl","k":"variable","len":1,"c":true},{"a":49790,"n":"turn_down_right","k":"routine","len":182,"c":true},{"a":49825,"n":"b_C2A1","k":"branch","len":1,"c":false},{"a":49840,"n":"b_C2B0","k":"branch","len":1,"c":false},{"a":49861,"n":"b_C2C5","k":"branch","len":1,"c":false},{"a":49864,"n":"b_C2C8","k":"branch","len":1,"c":false},{"a":49900,"n":"b_C2EC","k":"branch","len":1,"c":false},{"a":49909,"n":"b_C2F5","k":"branch","len":1,"c":false},{"a":49928,"n":"b_C308","k":"branch","len":1,"c":false},{"a":49946,"n":"b_C31A","k":"branch","len":1,"c":false},{"a":49969,"n":"b_C331","k":"branch","len":1,"c":false},{"a":49972,"n":"turn_alt_dr","k":"variable","len":1,"c":true},{"a":49973,"n":"turn_probe","k":"routine","len":33,"c":true},{"a":50005,"n":"r_C355","k":"branch","len":1,"c":false},{"a":50006,"n":"pad_C356","k":"variable","len":1,"c":true},{"a":50007,"n":"probe_cell_x","k":"variable","len":1,"c":true},{"a":50008,"n":"probe_cell_y","k":"variable","len":1,"c":true},{"a":50009,"n":"monster_facing","k":"variable","len":1,"c":true},{"a":50010,"n":"monster_unplot","k":"routine","len":15,"c":true},{"a":50025,"n":"cell_unplot","k":"routine","len":67,"c":true},{"a":50041,"n":"b_C379","k":"branch","len":1,"c":false},{"a":50092,"n":"monster_hits","k":"routine","len":73,"c":true},{"a":50152,"n":"b_C3E8","k":"branch","len":1,"c":false},{"a":50156,"n":"b_C3EC","k":"branch","len":1,"c":false},{"a":50165,"n":"monster_damage","k":"table","len":6,"c":true},{"a":50171,"n":"ghost_damage","k":"table","len":6,"c":true},{"a":50177,"n":"unused_C401","k":"table","len":11,"c":true},{"a":50188,"n":"dead_p1","k":"variable","len":1,"c":true},{"a":50189,"n":"dead_p2","k":"variable","len":1,"c":true},{"a":50190,"n":"unused_C40E","k":"table","len":27,"c":true},{"a":50217,"n":"blast_monster","k":"routine","len":34,"c":true},{"a":50248,"n":"b_C448","k":"branch","len":1,"c":false},{"a":50251,"n":"monster_kill","k":"routine","len":83,"c":true},{"a":50304,"n":"b_C480","k":"branch","len":1,"c":false},{"a":50334,"n":"monster_shoot","k":"routine","len":69,"c":true},{"a":50351,"n":"b_C4AF","k":"branch","len":1,"c":false},{"a":50381,"n":"b_C4CD","k":"branch","len":1,"c":false},{"a":50394,"n":"b_C4DA","k":"branch","len":1,"c":false},{"a":50399,"n":"b_C4DF","k":"branch","len":1,"c":false},{"a":50402,"n":"r_C4E2","k":"branch","len":1,"c":false},{"a":50403,"n":"fire_dist","k":"variable","len":1,"c":true},{"a":50404,"n":"lobber_shoot","k":"routine","len":22,"c":true},{"a":50425,"n":"r_C4F9","k":"branch","len":1,"c":false},{"a":50426,"n":"fight_back","k":"routine","len":84,"c":true},{"a":50481,"n":"b_C531","k":"branch","len":1,"c":false},{"a":50484,"n":"b_C534","k":"branch","len":1,"c":false},{"a":50486,"n":"b_C536","k":"branch","len":1,"c":false},{"a":50490,"n":"j_C53A","k":"branch","len":1,"c":false},{"a":50510,"n":"b_C54E","k":"routine","len":11,"c":true},{"a":50521,"n":"fight_score","k":"routine","len":35,"c":true},{"a":50551,"n":"b_C577","k":"branch","len":1,"c":false},{"a":50556,"n":"facing_stick","k":"table","len":8,"c":true},{"a":50564,"n":"ghost_touch","k":"routine","len":52,"c":true},{"a":50609,"n":"b_C5B1","k":"branch","len":1,"c":false},{"a":50616,"n":"display_off","k":"routine","len":17,"c":true},{"a":50633,"n":"display_on","k":"routine","len":17,"c":true},{"a":50650,"n":"vic_bank","k":"routine","len":27,"c":true},{"a":50677,"n":"vic_screen","k":"routine","len":21,"c":true},{"a":50698,"n":"vic_font","k":"routine","len":18,"c":true},{"a":50716,"n":"unused_bitmap_on","k":"table","len":9,"c":true},{"a":50725,"n":"level_build","k":"routine","len":93,"c":true},{"a":50748,"n":"j_C63C","k":"branch","len":1,"c":false},{"a":50758,"n":"b_C646","k":"branch","len":1,"c":false},{"a":50786,"n":"b_C662","k":"branch","len":1,"c":false},{"a":50806,"n":"b_C676","k":"branch","len":1,"c":false},{"a":50812,"n":"b_C67C","k":"branch","len":1,"c":false},{"a":50818,"n":"grid_clear","k":"routine","len":19,"c":true},{"a":50821,"n":"b_C685","k":"branch","len":1,"c":false},{"a":50837,"n":"grid_top_wall","k":"routine","len":11,"c":true},{"a":50841,"n":"b_C699","k":"branch","len":1,"c":false},{"a":50848,"n":"grid_left_wall","k":"routine","len":40,"c":true},{"a":50867,"n":"b_C6B3","k":"branch","len":1,"c":false},{"a":50887,"n":"r_C6C7","k":"branch","len":1,"c":false},{"a":50888,"n":"wall_same_kind","k":"routine","len":17,"c":true},{"a":50905,"n":"wall_start","k":"routine","len":49,"c":true},{"a":50954,"n":"wall_run","k":"routine","len":69,"c":true},{"a":50981,"n":"b_C725","k":"branch","len":1,"c":false},{"a":50987,"n":"b_C72B","k":"branch","len":1,"c":false},{"a":50991,"n":"b_C72F","k":"branch","len":1,"c":false},{"a":51023,"n":"wall_plot","k":"routine","len":40,"c":true},{"a":51063,"n":"wall_join","k":"routine","len":3,"c":true},{"a":51066,"n":"wall_join_down","k":"routine","len":3,"c":true},{"a":51069,"n":"wall_join_right","k":"routine","len":3,"c":true},{"a":51072,"n":"wall_join_up","k":"routine","len":92,"c":true},{"a":51088,"n":"b_C790","k":"branch","len":1,"c":false},{"a":51117,"n":"b_C7AD","k":"branch","len":1,"c":false},{"a":51122,"n":"r_C7B2","k":"branch","len":1,"c":false},{"a":51123,"n":"b_C7B3","k":"branch","len":1,"c":false},{"a":51130,"n":"b_C7BA","k":"branch","len":1,"c":false},{"a":51153,"n":"b_C7D1","k":"branch","len":1,"c":false},{"a":51163,"n":"r_C7DB","k":"branch","len":1,"c":false},{"a":51164,"n":"wall_neighbour","k":"routine","len":95,"c":true},{"a":51210,"n":"b_C80A","k":"branch","len":1,"c":false},{"a":51239,"n":"b_C827","k":"branch","len":1,"c":false},{"a":51257,"n":"b_C839","k":"branch","len":1,"c":false},{"a":51259,"n":"objects_place","k":"routine","len":169,"c":true},{"a":51327,"n":"b_C87F","k":"branch","len":1,"c":false},{"a":51347,"n":"b_C893","k":"branch","len":1,"c":false},{"a":51367,"n":"b_C8A7","k":"branch","len":1,"c":false},{"a":51372,"n":"b_C8AC","k":"branch","len":1,"c":false},{"a":51381,"n":"b_C8B5","k":"branch","len":1,"c":false},{"a":51396,"n":"b_C8C4","k":"branch","len":1,"c":false},{"a":51399,"n":"b_C8C7","k":"branch","len":1,"c":false},{"a":51407,"n":"j_C8CF","k":"branch","len":1,"c":false},{"a":51415,"n":"b_C8D7","k":"branch","len":1,"c":false},{"a":51427,"n":"r_C8E3","k":"branch","len":1,"c":false},{"a":51428,"n":"objects_left","k":"routine","len":9,"c":true},{"a":51434,"n":"b_C8EA","k":"branch","len":1,"c":false},{"a":51437,"n":"place_tile","k":"routine","len":57,"c":true},{"a":51466,"n":"b_C90A","k":"branch","len":1,"c":false},{"a":51473,"n":"b_C911","k":"branch","len":1,"c":false},{"a":51480,"n":"b_C918","k":"branch","len":1,"c":false},{"a":51488,"n":"b_C920","k":"branch","len":1,"c":false},{"a":51494,"n":"monster_from_level","k":"routine","len":100,"c":true},{"a":51562,"n":"b_C96A","k":"branch","len":1,"c":false},{"a":51594,"n":"start_here","k":"routine","len":39,"c":true},{"a":51633,"n":"wall_unjoin_side","k":"routine","len":3,"c":true},{"a":51636,"n":"wall_unjoin_down","k":"routine","len":3,"c":true},{"a":51639,"n":"wall_unjoin_right","k":"routine","len":3,"c":true},{"a":51642,"n":"wall_unjoin_up","k":"routine","len":45,"c":true},{"a":51650,"n":"b_C9C2","k":"branch","len":1,"c":false},{"a":51681,"n":"b_C9E1","k":"branch","len":1,"c":false},{"a":51686,"n":"r_C9E6","k":"branch","len":1,"c":false},{"a":51687,"n":"wall_steps","k":"variable","len":1,"c":true},{"a":51688,"n":"wall_steps_hi","k":"table","len":15,"c":true},{"a":51703,"n":"wall_join_bits","k":"variable","len":1,"c":true},{"a":51704,"n":"wall_join_bits_opp","k":"table","len":7,"c":true},{"a":51711,"n":"wall_bytes_left","k":"variable","len":1,"c":true},{"a":51712,"n":"level_exits","k":"variable","len":1,"c":true},{"a":51713,"n":"tiles_x","k":"variable","len":1,"c":true},{"a":51714,"n":"tiles_y","k":"variable","len":1,"c":true},{"a":51715,"n":"wall_kind","k":"variable","len":1,"c":true},{"a":51716,"n":"wall_hidden","k":"variable","len":1,"c":true},{"a":51717,"n":"wall_neighbour_hidden","k":"variable","len":1,"c":true},{"a":51718,"n":"wall_side_hidden","k":"variable","len":1,"c":true},{"a":51719,"n":"wall_tiles","k":"table","len":8,"c":true},{"a":51727,"n":"wall_kind_by_dir","k":"table","len":4,"c":true},{"a":51731,"n":"repeat_count","k":"variable","len":1,"c":true},{"a":51732,"n":"object_tile","k":"variable","len":1,"c":true},{"a":51733,"n":"tile_col","k":"variable","len":1,"c":true},{"a":51734,"n":"tile_row","k":"variable","len":1,"c":true},{"a":51735,"n":"tile_at","k":"routine","len":43,"c":true},{"a":51778,"n":"tile_ptrs","k":"routine","len":61,"c":true},{"a":51839,"n":"monster_draw","k":"routine","len":84,"c":true},{"a":51851,"n":"b_CA8B","k":"branch","len":1,"c":false},{"a":51910,"n":"b_CAC6","k":"branch","len":1,"c":false},{"a":51923,"n":"tile_plot","k":"routine","len":27,"c":true},{"a":51950,"n":"monster_colour_wrapped","k":"routine","len":84,"c":true},{"a":51962,"n":"b_CAFA","k":"branch","len":1,"c":false},{"a":52021,"n":"b_CB35","k":"branch","len":1,"c":false},{"a":52034,"n":"colour_plot","k":"routine","len":27,"c":true},{"a":52061,"n":"monster_colour","k":"routine","len":84,"c":true},{"a":52073,"n":"b_CB69","k":"branch","len":1,"c":false},{"a":52116,"n":"b_CB94","k":"branch","len":1,"c":false},{"a":52128,"n":"b_CBA0","k":"branch","len":1,"c":false},{"a":52145,"n":"sorcerer_hide","k":"routine","len":17,"c":true},{"a":52162,"n":"grid_draw","k":"routine","len":36,"c":true},{"a":52170,"n":"b_CBCA","k":"branch","len":1,"c":false},{"a":52198,"n":"exits_pick_one","k":"routine","len":76,"c":true},{"a":52206,"n":"b_CBEE","k":"branch","len":1,"c":false},{"a":52244,"n":"b_CC14","k":"branch","len":1,"c":false},{"a":52265,"n":"b_CC29","k":"branch","len":1,"c":false},{"a":52274,"n":"exits_special","k":"routine","len":46,"c":true},{"a":52285,"n":"b_CC3D","k":"branch","len":1,"c":false},{"a":52297,"n":"b_CC49","k":"branch","len":1,"c":false},{"a":52307,"n":"b_CC53","k":"branch","len":1,"c":false},{"a":52311,"n":"b_CC57","k":"branch","len":1,"c":false},{"a":52319,"n":"r_CC5F","k":"branch","len":1,"c":false},{"a":52320,"n":"deaths_first","k":"routine","len":31,"c":true},{"a":52331,"n":"j_CC6B","k":"branch","len":1,"c":false},{"a":52338,"n":"b_CC72","k":"branch","len":1,"c":false},{"a":52346,"n":"b_CC7A","k":"branch","len":1,"c":false},{"a":52350,"n":"r_CC7E","k":"branch","len":1,"c":false},{"a":52351,"n":"is_death","k":"routine","len":8,"c":true},{"a":52359,"n":"death_to_front","k":"routine","len":63,"c":true},{"a":52422,"n":"unused_jmp","k":"table","len":3,"c":true},{"a":52425,"n":"sfx_voice1","k":"variable","len":1,"c":true},{"a":52426,"n":"sfx_voice2","k":"variable","len":1,"c":true},{"a":52427,"n":"sfx_voice3","k":"variable","len":1,"c":true},{"a":52428,"n":"sfx_playing","k":"table","len":3,"c":true},{"a":52431,"n":"sfx_step_a","k":"variable","len":1,"c":true},{"a":52432,"n":"sfx_step_b","k":"variable","len":1,"c":true},{"a":52433,"n":"sfx_voice","k":"variable","len":1,"c":true},{"a":52434,"n":"pad_CCD2","k":"variable","len":1,"c":true},{"a":52435,"n":"sfx_play","k":"routine","len":164,"c":true},{"a":52462,"n":"b_CCEE","k":"branch","len":1,"c":false},{"a":52487,"n":"b_CD07","k":"branch","len":1,"c":false},{"a":52490,"n":"b_CD0A","k":"branch","len":1,"c":false},{"a":52516,"n":"b_CD24","k":"branch","len":1,"c":false},{"a":52541,"n":"b_CD3D","k":"branch","len":1,"c":false},{"a":52544,"n":"b_CD40","k":"branch","len":1,"c":false},{"a":52570,"n":"b_CD5A","k":"branch","len":1,"c":false},{"a":52595,"n":"b_CD73","k":"branch","len":1,"c":false},{"a":52598,"n":"r_CD76","k":"branch","len":1,"c":false},{"a":52599,"n":"sfx_reset","k":"routine","len":32,"c":true},{"a":52614,"n":"b_CD86","k":"branch","len":1,"c":false},{"a":52621,"n":"b_CD8D","k":"branch","len":1,"c":false},{"a":52631,"n":"unused_sid_setup","k":"table","len":43,"c":true},{"a":52674,"n":"sid_init","k":"table","len":25,"c":true},{"a":52699,"n":"sfx_start","k":"routine","len":108,"c":true},{"a":52723,"n":"b_CDF3","k":"branch","len":1,"c":false},{"a":52735,"n":"b_CDFF","k":"branch","len":1,"c":false},{"a":52749,"n":"b_CE0D","k":"branch","len":1,"c":false},{"a":52760,"n":"b_CE18","k":"branch","len":1,"c":false},{"a":52766,"n":"j_CE1E","k":"branch","len":1,"c":false},{"a":52807,"n":"sfx_note","k":"routine","len":62,"c":true},{"a":52841,"n":"b_CE69","k":"branch","len":1,"c":false},{"a":52869,"n":"unused_border","k":"table","len":23,"c":true},{"a":52892,"n":"sound_wait","k":"routine","len":14,"c":true},{"a":52895,"n":"b_CE9F","k":"branch","len":1,"c":false},{"a":52906,"n":"sfx_wait","k":"routine","len":14,"c":true},{"a":52920,"n":"leftover_CEB8","k":"table","len":325,"c":true},{"a":53245,"n":"heroes_loaded","k":"variable","len":1,"c":true},{"a":53246,"n":"selected_heroes","k":"variable","len":2,"c":true},{"a":57344,"n":"music_play","k":"routine","len":3,"c":true},{"a":57347,"n":"music_init","k":"routine","len":27,"c":true},{"a":57354,"n":"j_E00A","k":"branch","len":1,"c":false},{"a":57364,"n":"b_E014","k":"branch","len":1,"c":false},{"a":57373,"n":"r_E01D","k":"branch","len":1,"c":false},{"a":57374,"n":"music_frame","k":"routine","len":119,"c":true},{"a":57394,"n":"b_E032","k":"branch","len":1,"c":false},{"a":57405,"n":"j_E03D","k":"branch","len":1,"c":false},{"a":57438,"n":"b_E05E","k":"branch","len":1,"c":false},{"a":57443,"n":"b_E063","k":"branch","len":1,"c":false},{"a":57459,"n":"j_E073","k":"branch","len":1,"c":false},{"a":57493,"n":"music_cmd_lo","k":"routine","len":1,"c":true},{"a":57494,"n":"music_cmd_hi","k":"routine","len":80,"c":true},{"a":57501,"n":"b_E09D","k":"branch","len":1,"c":false},{"a":57518,"n":"b_E0AE","k":"branch","len":1,"c":false},{"a":57526,"n":"b_E0B6","k":"branch","len":1,"c":false},{"a":57534,"n":"b_E0BE","k":"branch","len":1,"c":false},{"a":57542,"n":"b_E0C6","k":"branch","len":1,"c":false},{"a":57550,"n":"b_E0CE","k":"branch","len":1,"c":false},{"a":57573,"n":"r_E0E5","k":"branch","len":1,"c":false},{"a":57574,"n":"music_note_step","k":"routine","len":254,"c":true},{"a":57615,"n":"b_E10F","k":"branch","len":1,"c":false},{"a":57618,"n":"b_E112","k":"branch","len":1,"c":false},{"a":57664,"n":"b_E140","k":"branch","len":1,"c":false},{"a":57682,"n":"j_E152","k":"branch","len":1,"c":false},{"a":57699,"n":"b_E163","k":"branch","len":1,"c":false},{"a":57734,"n":"b_E186","k":"branch","len":1,"c":false},{"a":57758,"n":"b_E19E","k":"branch","len":1,"c":false},{"a":57764,"n":"j_E1A4","k":"branch","len":1,"c":false},{"a":57818,"n":"b_E1DA","k":"branch","len":1,"c":false},{"a":57827,"n":"r_E1E3","k":"branch","len":1,"c":false},{"a":57828,"n":"music_setup","k":"routine","len":87,"c":true},{"a":57835,"n":"b_E1EB","k":"branch","len":1,"c":false},{"a":57852,"n":"b_E1FC","k":"branch","len":1,"c":false},{"a":57882,"n":"b_E21A","k":"branch","len":1,"c":false},{"a":57915,"n":"music_stop","k":"routine","len":5,"c":true},{"a":57920,"n":"music_silence","k":"routine","len":16,"c":true},{"a":57922,"n":"b_E242","k":"branch","len":1,"c":false},{"a":57936,"n":"music_cmd_volume","k":"routine","len":4,"c":true},{"a":57940,"n":"music_cmd_ctrl","k":"routine","len":4,"c":true},{"a":57944,"n":"music_cmd_ad","k":"routine","len":4,"c":true},{"a":57948,"n":"music_cmd_sr","k":"routine","len":4,"c":true},{"a":57952,"n":"music_cmd_repeat_a","k":"routine","len":40,"c":true},{"a":57969,"n":"b_E271","k":"branch","len":1,"c":false},{"a":57988,"n":"b_E284","k":"branch","len":1,"c":false},{"a":57992,"n":"music_cmd_mark_a","k":"routine","len":11,"c":true},{"a":58003,"n":"music_cmd_repeat_b","k":"routine","len":40,"c":true},{"a":58020,"n":"b_E2A4","k":"branch","len":1,"c":false},{"a":58039,"n":"b_E2B7","k":"branch","len":1,"c":false},{"a":58043,"n":"music_cmd_mark_b","k":"routine","len":11,"c":true},{"a":58054,"n":"music_cmd_transpose","k":"routine","len":4,"c":true},{"a":58058,"n":"music_cmd_vib_speed","k":"routine","len":4,"c":true},{"a":58062,"n":"music_cmd_slide_hi","k":"routine","len":4,"c":true},{"a":58066,"n":"music_cmd_slide_lo","k":"routine","len":4,"c":true},{"a":58070,"n":"music_cmd_pulse","k":"routine","len":4,"c":true},{"a":58074,"n":"music_cmd_gate_time","k":"routine","len":15,"c":true},{"a":58085,"n":"b_E2E5","k":"branch","len":1,"c":false},{"a":58089,"n":"music_cmd_arp_a","k":"routine","len":4,"c":true},{"a":58093,"n":"music_cmd_wave","k":"routine","len":15,"c":true},{"a":58104,"n":"b_E2F8","k":"branch","len":1,"c":false},{"a":58108,"n":"music_cmd_effect","k":"routine","len":4,"c":true},{"a":58112,"n":"music_cmd_slide","k":"routine","len":4,"c":true},{"a":58116,"n":"music_cmd_pulse_sweep","k":"routine","len":4,"c":true},{"a":58120,"n":"music_cmd_slide_delay","k":"routine","len":4,"c":true},{"a":58124,"n":"music_cmd_vib_depth","k":"routine","len":17,"c":true},{"a":58141,"n":"music_cmd_sweep_len","k":"routine","len":4,"c":true},{"a":58145,"n":"music_cmd_resonance","k":"routine","len":4,"c":true},{"a":58149,"n":"music_cmd_tempo_reset","k":"routine","len":4,"c":true},{"a":58153,"n":"music_cmd_transpose_add","k":"routine","len":8,"c":true},{"a":58161,"n":"music_cmd_volume_add","k":"routine","len":8,"c":true},{"a":58169,"n":"music_cmd_arp_2","k":"routine","len":4,"c":true},{"a":58173,"n":"music_cmd_tempo","k":"routine","len":16,"c":true},{"a":58189,"n":"music_cmd_arp_1","k":"routine","len":4,"c":true},{"a":58193,"n":"music_cmd_fine","k":"routine","len":4,"c":true},{"a":58197,"n":"music_cmd_sweep_rate","k":"routine","len":4,"c":true},{"a":58201,"n":"music_cmd_length_add","k":"routine","len":8,"c":true},{"a":58209,"n":"music_slide_start","k":"routine","len":15,"c":true},{"a":58223,"n":"r_E36F","k":"branch","len":1,"c":false},{"a":58224,"n":"music_vibrato","k":"routine","len":75,"c":true},{"a":58266,"n":"b_E39A","k":"branch","len":1,"c":false},{"a":58279,"n":"b_E3A7","k":"branch","len":1,"c":false},{"a":58283,"n":"b_E3AB","k":"branch","len":1,"c":false},{"a":58298,"n":"r_E3BA","k":"branch","len":1,"c":false},{"a":58299,"n":"music_waveform","k":"routine","len":54,"c":true},{"a":58318,"n":"b_E3CE","k":"branch","len":1,"c":false},{"a":58335,"n":"b_E3DF","k":"branch","len":1,"c":false},{"a":58338,"n":"b_E3E2","k":"branch","len":1,"c":false},{"a":58344,"n":"b_E3E8","k":"branch","len":1,"c":false},{"a":58347,"n":"b_E3EB","k":"branch","len":1,"c":false},{"a":58353,"n":"music_arpeggio","k":"routine","len":51,"c":true},{"a":58364,"n":"b_E3FC","k":"branch","len":1,"c":false},{"a":58379,"n":"b_E40B","k":"branch","len":1,"c":false},{"a":58397,"n":"j_E41D","k":"branch","len":1,"c":false},{"a":58401,"n":"b_E421","k":"branch","len":1,"c":false},{"a":58404,"n":"music_pulse_sweep","k":"routine","len":77,"c":true},{"a":58415,"n":"b_E42F","k":"branch","len":1,"c":false},{"a":58432,"n":"b_E440","k":"branch","len":1,"c":false},{"a":58447,"n":"b_E44F","k":"branch","len":1,"c":false},{"a":58450,"n":"b_E452","k":"branch","len":1,"c":false},{"a":58453,"n":"j_E455","k":"branch","len":1,"c":false},{"a":58477,"n":"b_E46D","k":"branch","len":1,"c":false},{"a":58481,"n":"music_pulse_up","k":"routine","len":21,"c":true},{"a":58502,"n":"music_pulse_down","k":"routine","len":25,"c":true},{"a":58520,"n":"j_E498","k":"branch","len":1,"c":false},{"a":58526,"n":"r_E49E","k":"branch","len":1,"c":false},{"a":58527,"n":"music_slide","k":"routine","len":87,"c":true},{"a":58551,"n":"b_E4B7","k":"branch","len":1,"c":false},{"a":58566,"n":"b_E4C6","k":"branch","len":1,"c":false},{"a":58574,"n":"b_E4CE","k":"branch","len":1,"c":false},{"a":58589,"n":"b_E4DD","k":"branch","len":1,"c":false},{"a":58604,"n":"b_E4EC","k":"branch","len":1,"c":false},{"a":58614,"n":"music_slide_up","k":"routine","len":19,"c":true},{"a":58633,"n":"music_slide_down","k":"routine","len":31,"c":true},{"a":58649,"n":"j_E519","k":"branch","len":1,"c":false},{"a":58655,"n":"b_E51F","k":"branch","len":1,"c":false},{"a":58664,"n":"music_freq_out","k":"routine","len":13,"c":true},{"a":58677,"n":"music_freq","k":"routine","len":66,"c":true},{"a":58679,"n":"j_E537","k":"branch","len":1,"c":false},{"a":58689,"n":"b_E541","k":"branch","len":1,"c":false},{"a":58709,"n":"b_E555","k":"branch","len":1,"c":false},{"a":58737,"n":"r_E571","k":"branch","len":1,"c":false},{"a":58738,"n":"b_E572","k":"branch","len":1,"c":false},{"a":58743,"n":"music_next","k":"routine","len":12,"c":true},{"a":58754,"n":"r_E582","k":"branch","len":1,"c":false},{"a":58755,"n":"music_pad","k":"variable","len":1,"c":true},{"a":58756,"n":"music_state","k":"variable","len":1,"c":true},{"a":58757,"n":"music_tempo_voice","k":"variable","len":1,"c":true},{"a":58758,"n":"music_voice_freq_hi","k":"variable","len":1,"c":true},{"a":58759,"n":"music_voice_freq_lo","k":"variable","len":1,"c":true},{"a":58760,"n":"music_voice_ctrl","k":"variable","len":1,"c":true},{"a":58761,"n":"music_voice_arp_limit","k":"variable","len":1,"c":true},{"a":58762,"n":"music_voice_arp_a","k":"variable","len":1,"c":true},{"a":58763,"n":"music_voice_wave","k":"variable","len":1,"c":true},{"a":58764,"n":"music_voice_effect","k":"table","len":14,"c":true},{"a":58778,"n":"music_stream_base_hi","k":"variable","len":1,"c":true},{"a":58779,"n":"music_tempo_frac","k":"variable","len":1,"c":true},{"a":58780,"n":"music_tempo","k":"variable","len":1,"c":true},{"a":58781,"n":"music_tempo_reset","k":"variable","len":1,"c":true},{"a":58782,"n":"music_slide_mode","k":"table","len":3,"c":true},{"a":58785,"n":"music_target_hi","k":"table","len":3,"c":true},{"a":58788,"n":"music_target_lo","k":"table","len":3,"c":true},{"a":58791,"n":"music_slide_delay","k":"table","len":3,"c":true},{"a":58794,"n":"music_note_frames","k":"table","len":3,"c":true},{"a":58797,"n":"music_sweep_max","k":"table","len":3,"c":true},{"a":58800,"n":"music_sweep_step","k":"table","len":3,"c":true},{"a":58803,"n":"music_arp_phase","k":"table","len":3,"c":true},{"a":58806,"n":"music_arp_1","k":"table","len":3,"c":true},{"a":58809,"n":"music_arp_2","k":"table","len":3,"c":true},{"a":58812,"n":"music_arp2_lo","k":"table","len":3,"c":true},{"a":58815,"n":"music_arp2_hi","k":"table","len":3,"c":true},{"a":58818,"n":"music_tick","k":"table","len":3,"c":true},{"a":58821,"n":"music_ticks","k":"table","len":3,"c":true},{"a":58824,"n":"music_fine","k":"table","len":3,"c":true},{"a":58827,"n":"music_sweep_rate","k":"table","len":3,"c":true},{"a":58830,"n":"music_note_long","k":"table","len":3,"c":true},{"a":58833,"n":"music_sweep_count","k":"table","len":3,"c":true},{"a":58836,"n":"music_sweep_phase","k":"table","len":3,"c":true},{"a":58839,"n":"music_vib_dir","k":"table","len":3,"c":true},{"a":58842,"n":"music_vib_hi","k":"table","len":3,"c":true},{"a":58845,"n":"music_vib_lo","k":"table","len":3,"c":true},{"a":58848,"n":"music_repeat_a_on","k":"table","len":3,"c":true},{"a":58851,"n":"music_repeat_b_on","k":"table","len":3,"c":true},{"a":58854,"n":"music_transpose","k":"table","len":3,"c":true},{"a":58857,"n":"music_slide_lo","k":"table","len":3,"c":true},{"a":58860,"n":"music_slide_hi","k":"table","len":3,"c":true},{"a":58863,"n":"music_sr","k":"table","len":3,"c":true},{"a":58866,"n":"music_ctrl","k":"table","len":3,"c":true},{"a":58869,"n":"music_pulse","k":"table","len":3,"c":true},{"a":58872,"n":"music_ad","k":"table","len":3,"c":true},{"a":58875,"n":"music_vib_step","k":"table","len":3,"c":true},{"a":58878,"n":"music_repeat_a_left","k":"table","len":3,"c":true},{"a":58881,"n":"music_repeat_b_left","k":"table","len":3,"c":true},{"a":58884,"n":"music_mark_a_lo","k":"table","len":3,"c":true},{"a":58887,"n":"music_mark_a_hi","k":"table","len":3,"c":true},{"a":58890,"n":"music_mark_b_lo","k":"table","len":3,"c":true},{"a":58893,"n":"music_mark_b_hi","k":"table","len":3,"c":true},{"a":58896,"n":"music_work","k":"variable","len":2,"c":true},{"a":58898,"n":"music_freq_hi","k":"variable","len":1,"c":true},{"a":58899,"n":"music_freq_lo","k":"variable","len":1,"c":true},{"a":58900,"n":"music_note_count","k":"table","len":3,"c":true},{"a":58903,"n":"music_stream_hi","k":"table","len":3,"c":true},{"a":58906,"n":"music_stream_lo","k":"table","len":3,"c":true},{"a":58909,"n":"music_sweep_len","k":"table","len":3,"c":true},{"a":58912,"n":"music_voice_offsets","k":"variable","len":2,"c":true},{"a":58914,"n":"music_wave_table","k":"table","len":6,"c":true},{"a":58920,"n":"music_freq_table","k":"variable","len":1,"c":true},{"a":58921,"n":"music_freq_table_lo","k":"table","len":23,"c":true},{"a":58944,"n":"music_gate_time","k":"variable","len":1,"c":true},{"a":58945,"n":"music_gate_time_2","k":"variable","len":1,"c":true},{"a":58946,"n":"music_gate_time_3","k":"variable","len":1,"c":true},{"a":58947,"n":"music_commands","k":"variable","len":1,"c":true},{"a":58948,"n":"music_commands_hi","k":"table","len":65,"c":true},{"a":59013,"n":"sid_shadow","k":"variable","len":1,"c":true},{"a":59014,"n":"sid_shadow_freq_hi","k":"variable","len":1,"c":true},{"a":59015,"n":"sid_shadow_pw_lo","k":"variable","len":1,"c":true},{"a":59016,"n":"sid_shadow_pw_hi","k":"variable","len":1,"c":true},{"a":59017,"n":"sid_shadow_ctrl","k":"variable","len":1,"c":true},{"a":59018,"n":"sid_shadow_ad","k":"variable","len":1,"c":true},{"a":59019,"n":"sid_shadow_sr","k":"table","len":15,"c":true},{"a":59034,"n":"music_tempo_count","k":"variable","len":1,"c":true},{"a":59035,"n":"music_tempo_whole","k":"variable","len":1,"c":true},{"a":59036,"n":"sid_shadow_res","k":"variable","len":1,"c":true},{"a":59037,"n":"sid_shadow_vol","k":"variable","len":1,"c":true},{"a":59038,"n":"music_on","k":"variable","len":1,"c":true},{"a":59039,"n":"music_file_tail","k":"table","len":66,"c":true},{"a":59392,"n":"tune_treasure","k":"table","len":256,"c":true},{"a":59648,"n":"tune_treasure_2","k":"table","len":190,"c":true},{"a":59904,"n":"tune_jingle","k":"table","len":153,"c":true},{"a":61440,"n":"sfx_table","k":"variable","len":1,"c":true},{"a":61441,"n":"sfx_table_hi","k":"table","len":35,"c":true},{"a":61476,"n":"sfx_streams","k":"table","len":220,"c":true},{"a":61696,"n":"sfx_streams_2","k":"table","len":256,"c":true},{"a":61952,"n":"sfx_streams_3","k":"table","len":256,"c":true},{"a":62208,"n":"sfx_streams_4","k":"table","len":235,"c":true},{"a":62443,"n":"sfx_tail","k":"table","len":21,"c":true},{"a":62464,"n":"tile_chars","k":"table","len":256,"c":true},{"a":62720,"n":"tile_chars_2","k":"table","len":256,"c":true},{"a":62976,"n":"tile_colours","k":"table","len":4,"c":true},{"a":62980,"n":"tile_colours_walls","k":"table","len":200,"c":true},{"a":63180,"n":"tile_colours_cracked","k":"table","len":52,"c":true},{"a":63232,"n":"tile_colours_monsters","k":"table","len":256,"c":true},{"a":65530,"n":"hw_vectors","k":"table","len":6,"c":true}],"records":[{"a":0,"t":"gap","n":2560,"x":[33445,40591,47044]},{"a":0,"t":"note","l":"start","note":"outside the tracked image","x":[33445,40591,47044]},{"a":2560,"l":"level_length","c":"Level 1's file as it loads into the level buffer ($0A00, file LEVEL 001): the file's length less 2 ($4F), with bit 7 of $0A02 as its ninth bit. A longer level file fills more of the buffer.","t":"byte","b":[79],"x":[51287]},{"a":2561,"l":"level_flags","c":"The level header's flags: bit 7 the maze wraps left and right, bit 6 top and bottom, bit 0 shots hurt the other player, bit 1 they stun, bit 2 only one exit (at random), bits 3-5 the maze's look (maze_style). Level 1 has none.","t":"byte","b":[0],"x":[36037,37593,37626,38285,38296,38323,38334,39493,39505,44109,44121,50848,52198]},{"a":2562,"l":"level_colour","c":"The level header's wall colour in bits 3-5 (maze_style_colours) and the length's ninth bit in bit 7.","t":"byte","b":[6],"x":[36074,51278]},{"a":2563,"l":"level_wall_bytes","c":"How many bytes of wall commands follow the header ($0A in level 1).","t":"byte","b":[10],"x":[50737,51264,51291]},{"a":2564,"l":"level_walls","c":"Level 1's wall commands ($0A04-$0A0D): a pair starts a line at a tile (kind in the first byte's top three bits, column and row in the low five), each byte after it extends the line (direction in the top three bits, length - 1 in the low five).","t":"byte","b":[233],"x":[50888,50905,50956]},{"a":2565,"l":"level_walls_2","c":"The second byte of the wall commands, which wall_same_kind and wall_start read as a pair with the first.","t":"byte","b":[254,8,67,19,142,149,80,73],"x":[50896,50920]},{"a":2573,"t":"byte","b":[95]},{"a":2574,"l":"level_objects","c":"Level 1's objects ($0A0E-$0A50): run-length coded tiles from the top-left of the grid (a byte from $80 skips tiles, a smaller one is a tile, repeated when the byte after it is below $13); tiles from $40 are monsters, $3F the players' start.","t":"byte","b":[181,34,131,34,130,56,130,63]},{"a":2582,"t":"byte","b":[133,19,172,21,252,34,130,34]},{"a":2590,"t":"byte","b":[130,34,178,21,255,207,64,129]},{"a":2598,"t":"byte","b":[64,129,64,166,66,13,144,66]},{"a":2606,"t":"byte","b":[13,144,66,13,144,66,13,190]},{"a":2614,"t":"byte","b":[31,154,33,153,33,186,19,139]},{"a":2622,"t":"byte","b":[21,135,32,145,33,153,33,195]},{"a":2630,"t":"byte","b":[33,132,54,128,31,140,33,140]},{"a":2638,"t":"byte","b":[55,0,30]},{"a":2641,"t":"gap","n":1455},{"a":4096,"l":"datatitle","c":"The file DATATITLE 244, left at $1000 by the title and selection programs (which load it at $6400 and move it): tune data for the music player at $E000, the title music, 18 seconds long. The play program never plays it; the BIT instructions at $9CE2 (power_shot) and $AC65, which hide a load from the code before them, read its byte at $10A9 and the value goes unused.","t":"byte","b":[64,0,132,0,1,15,0,1]},{"a":4104,"t":"byte","b":[5,105,3,65,2,24,10,44]},{"a":4112,"t":"byte","b":[5,104,4,2,14,20,20,6]},{"a":4120,"t":"byte","b":[17,0,147,8,150,8,152,8]},{"a":4128,"t":"byte","b":[152,8,150,8,152,16,152,8]},{"a":4136,"t":"byte","b":[16,10,17,0,147,8,150,8]},{"a":4144,"t":"byte","b":[152,8,152,8,150,8,152,16]},{"a":4152,"t":"byte","b":[152,8,27,253,16,4,0,1]},{"a":4160,"t":"byte","b":[0,1,30,1,0,1,20,6]},{"a":4168,"t":"byte","b":[3,65,4,2,14,150,2,53]},{"a":4176,"t":"byte","b":[11,30,10,67,0,8,17,0]},{"a":4184,"t":"byte","b":[174,8,176,8,169,8,171,8]},{"a":4192,"t":"byte","b":[164,16,164,16,16,3,0,32]},{"a":4200,"t":"byte","b":[171,8,176,8,183,8,181,40]},{"a":4208,"t":"byte","b":[181,16,183,72,186,40,186,16]},{"a":4216,"t":"byte","b":[188,72,190,40,190,16,191,80]},{"a":4224,"t":"byte","b":[17,1,0,254,16,255,0,1]},{"a":4232,"t":"byte","b":[0,1,3,0,2,53,10,67]},{"a":4240,"t":"byte","b":[4,1,14,50,20,6,32,30]},{"a":4248,"t":"byte","b":[17,0,147,8,150,8,152,8]},{"a":4256,"t":"byte","b":[152,8,150,8,152,16,152,8]},{"a":4264,"t":"byte","b":[16]},{"a":4265,"l":"datatitle_bit_operand","c":"A byte inside DATATITLE whose address is also the operand of the BITs at $9CE2 and $AC65, which hide an instruction; those BITs read it and nothing uses the result. The tune data goes on.","t":"byte","b":[3,147,8,150,8,152,8,152],"x":[40162,44133]},{"a":4273,"t":"byte","b":[8,176,255,150,8,3,65,4]},{"a":4281,"t":"byte","b":[2,14,40,3,65,167,8,171]},{"a":4289,"t":"byte","b":[8,179,8,178,40,178,16,179]},{"a":4297,"t":"byte","b":[16,3,17,2,31,13,20,179]},{"a":4305,"t":"byte","b":[56,6,2,15,1,8,1,3]},{"a":4313,"t":"byte","b":[65,2,53,182,40,8,0,15]},{"a":4321,"t":"byte","b":[0,182,16,184,72,186,40,186]},{"a":4329,"t":"byte","b":[16,187,80,17,1,0,254,16]},{"a":4337,"t":"byte","b":[255,0,1,164,2,1,32,1]},{"a":4345,"t":"byte","b":[32,49,128,51,51,50,51,50]},{"a":4353,"t":"byte","b":[51,50,50,51,50,51,50,51]},{"a":4361,"t":"byte","b":[50,51,51,51,50,51,51,51]},{"a":4369,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4377,"t":"byte","b":[51,51,51,50,51,50,51,50]},{"a":4385,"t":"byte","b":[50,51,50,51,51,48,51,50]},{"a":4393,"t":"byte","b":[51,50,51,51,51,51,51,51]},{"a":4401,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4409,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4417,"t":"byte","b":[51,51,51,50,51,50,51,51]},{"a":4425,"t":"byte","b":[50,51,50,48,51,50,51,51]},{"a":4433,"t":"byte","b":[50,48,50,50,51,50,51,50]},{"a":4441,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4449,"t":"byte","b":[51,51,50,51,51,51,51,51]},{"a":4457,"t":"byte","b":[51,51,51,50,51,51,51,51]},{"a":4465,"t":"byte","b":[51,51,50,51,50,51,51,50]},{"a":4473,"t":"byte","b":[51,50,51,50,51,50,51,50]},{"a":4481,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4489,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4497,"t":"byte","b":[51,51,51,50,51,51,50,51]},{"a":4505,"t":"byte","b":[50,51,50,51,51,51,48,51]},{"a":4513,"t":"byte","b":[50,51,50,51,51,50,48,51]},{"a":4521,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4529,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4537,"t":"byte","b":[51,50,50,51,50,51,50,50]},{"a":4545,"t":"byte","b":[51,50,51,51,51,51,48,51]},{"a":4553,"t":"byte","b":[50,51,50,51,50,51,51,50]},{"a":4561,"t":"byte","b":[51,50,51,51,51,51,51,51]},{"a":4569,"t":"byte","b":[51,51,51,51,51,51,51,51]},{"a":4577,"t":"byte","b":[51,51,50,51,51,51,51,51]},{"a":4585,"t":"byte","b":[51,51,51,50,51,50,51,51]},{"a":4593,"t":"byte","b":[48,51,51,51,51,51,51,51]},{"a":4601,"t":"byte","b":[51,51,51]},{"a":4604,"t":"gap","n":396},{"a":5000,"l":"pinn_jumps","c":"The file PINN232 5000: a cable link for moving memory between this machine and another through the user port, called from BASIC (SYS 5000 receives a block, SYS 5003 receives several, SYS 5006 sends one). The game loads it with its other files and never calls it; it looks like a tool the developers used and left on the disk. Three JMPs: 5000, 5003, 5006.","t":"code","b":[76,153,20],"m":"jmp","oa":5273,"o":"pinn_receive"},{"a":5003,"t":"code","b":[76,145,19],"m":"jmp","oa":5009,"o":"pinn_receive_many"},{"a":5006,"t":"code","b":[76,166,19],"m":"jmp","oa":5030,"o":"pinn_send"},{"a":5009,"l":"pinn_receive_many","c":"SYS 5003,n: receives n blocks, each to the address its own header gives.","t":"code","b":[32,142,20],"m":"jsr","oa":5262,"o":"pinn_arg","x":[5003]},{"a":5012,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":5014,"t":"code","b":[240,13],"m":"beq","oa":5029,"o":"r_13A5"},{"a":5016,"l":"b_1398","t":"code","b":[72],"m":"pha","x":[5027]},{"a":5017,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5019,"t":"code","b":[168],"m":"tay"},{"a":5020,"t":"code","b":[32,156,20],"m":"jsr","oa":5276,"o":"pinn_receive_to"},{"a":5023,"t":"code","b":[104],"m":"pla"},{"a":5024,"t":"code","b":[56],"m":"sec"},{"a":5025,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":5027,"t":"code","b":[208,243],"m":"bne","oa":5016,"o":"b_1398"},{"a":5029,"l":"r_13A5","t":"code","b":[96],"m":"rts","x":[5014]},{"a":5030,"l":"pinn_send","c":"SYS 5006,address,length: sends the block: a nine-byte header from $0402 (its first byte 3, then the length and the address), then the bytes, with the screen blanked and interrupts off; the border colour changes with each byte.","t":"code","b":[32,142,20],"m":"jsr","oa":5262,"o":"pinn_arg","x":[5006]},{"a":5033,"t":"code","b":[141,5,4],"m":"sta","oa":1029,"o":"a_0405"},{"a":5036,"t":"code","b":[140,6,4],"m":"sty","oa":1030,"o":"a_0406"},{"a":5039,"t":"code","b":[32,142,20],"m":"jsr","oa":5262,"o":"pinn_arg"},{"a":5042,"t":"code","b":[141,3,4],"m":"sta","oa":1027,"o":"a_0403"},{"a":5045,"t":"code","b":[140,4,4],"m":"sty","oa":1028,"o":"a_0404"},{"a":5048,"t":"code","b":[120],"m":"sei"},{"a":5049,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":5051,"t":"code","b":[141,2,4],"m":"sta","oa":1026,"o":"a_0402"},{"a":5054,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":5057,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":5059,"t":"code","b":[141,13,4],"m":"sta","oa":1037,"o":"a_040D"},{"a":5062,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":5065,"t":"code","b":[173,32,208],"m":"lda","o":"vic_border"},{"a":5068,"t":"code","b":[72],"m":"pha"},{"a":5069,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":5072,"t":"code","b":[41,239],"m":"and","o":"#$EF"},{"a":5074,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5077,"t":"code","b":[32,106,21],"m":"jsr","oa":5482,"o":"pinn_delay_long"},{"a":5080,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":5082,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":5084,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":5086,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":5088,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5090,"l":"b_13E2","t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y","x":[5098]},{"a":5092,"t":"code","b":[32,42,20],"m":"jsr","oa":5162,"o":"pinn_send_byte"},{"a":5095,"t":"code","b":[200],"m":"iny"},{"a":5096,"t":"code","b":[192,9],"m":"cpy","o":"#$09"},{"a":5098,"t":"code","b":[208,246],"m":"bne","oa":5090,"o":"b_13E2"},{"a":5100,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5102,"t":"code","b":[173,5,4],"m":"lda","oa":1029,"o":"a_0405"},{"a":5105,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":5107,"t":"code","b":[173,6,4],"m":"lda","oa":1030,"o":"a_0406"},{"a":5110,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":5112,"l":"b_13F8","t":"code","b":[173,3,4],"m":"lda","oa":1027,"o":"a_0403","x":[5141,5145]},{"a":5115,"t":"code","b":[240,6],"m":"beq","oa":5123,"o":"b_1403"},{"a":5117,"t":"code","b":[206,3,4],"m":"dec","oa":1027,"o":"a_0403"},{"a":5120,"t":"code","b":[76,14,20],"m":"jmp","oa":5134,"o":"j_140E"},{"a":5123,"l":"b_1403","t":"code","b":[206,3,4],"m":"dec","oa":1027,"o":"a_0403","x":[5115]},{"a":5126,"t":"code","b":[173,4,4],"m":"lda","oa":1028,"o":"a_0404"},{"a":5129,"t":"code","b":[240,17],"m":"beq","oa":5148,"o":"b_141C"},{"a":5131,"t":"code","b":[206,4,4],"m":"dec","oa":1028,"o":"a_0404"},{"a":5134,"l":"j_140E","t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y","x":[5120]},{"a":5136,"t":"code","b":[32,42,20],"m":"jsr","oa":5162,"o":"pinn_send_byte"},{"a":5139,"t":"code","b":[230,251],"m":"inc","oa":251,"o":"zpa_FB"},{"a":5141,"t":"code","b":[208,225],"m":"bne","oa":5112,"o":"b_13F8"},{"a":5143,"t":"code","b":[230,252],"m":"inc","oa":252,"o":"zpa_FC"},{"a":5145,"t":"code","b":[76,248,19],"m":"jmp","oa":5112,"o":"b_13F8"},{"a":5148,"l":"b_141C","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1","x":[5129]},{"a":5151,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":5153,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5156,"t":"code","b":[104],"m":"pla"},{"a":5157,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":5160,"t":"code","b":[88],"m":"cli"},{"a":5161,"t":"code","b":[96],"m":"rts"},{"a":5162,"l":"pinn_send_byte","c":"Sends one byte, inverted, as a frame of bits: each bit is put on CIA 2 port A bit 2 (user port PA2) after the other side has signalled on port B bit 6, with a short delay between bits; the border colour steps on.","t":"code","b":[73,255],"m":"eor","o":"#$FF","x":[5092,5136]},{"a":5164,"t":"code","b":[72],"m":"pha"},{"a":5165,"t":"code","b":[173,13,4],"m":"lda","oa":1037,"o":"a_040D"},{"a":5168,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":5171,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":5173,"t":"code","b":[141,11,4],"m":"sta","oa":1035,"o":"a_040B"},{"a":5176,"t":"code","b":[24],"m":"clc"},{"a":5177,"t":"code","b":[104],"m":"pla"},{"a":5178,"t":"code","b":[42],"m":"rol","o":"a"},{"a":5179,"t":"code","b":[46,11,4],"m":"rol","oa":1035,"o":"a_040B"},{"a":5182,"t":"code","b":[42],"m":"rol","o":"a"},{"a":5183,"t":"code","b":[46,11,4],"m":"rol","oa":1035,"o":"a_040B"},{"a":5186,"t":"code","b":[141,12,4],"m":"sta","oa":1036,"o":"a_040C"},{"a":5189,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":5191,"t":"code","b":[141,3,221],"m":"sta","o":"cia2_ddr_b"},{"a":5194,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":5196,"t":"code","b":[141,2,221],"m":"sta","o":"cia2_ddr_a"},{"a":5199,"l":"b_144F","t":"code","b":[44,1,221],"m":"bit","o":"cia2_port_b","x":[5202]},{"a":5202,"t":"code","b":[80,251],"m":"bvc","oa":5199,"o":"b_144F"},{"a":5204,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":5207,"t":"code","b":[41,251],"m":"and","o":"#$FB"},{"a":5209,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":5212,"l":"b_145C","t":"code","b":[32,136,20],"m":"jsr","oa":5256,"o":"pinn_delay","x":[5235]},{"a":5215,"t":"code","b":[173,12,4],"m":"lda","oa":1036,"o":"a_040C"},{"a":5218,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":5220,"t":"code","b":[77,13,4],"m":"eor","oa":1037,"o":"a_040D"},{"a":5223,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":5226,"t":"code","b":[78,11,4],"m":"lsr","oa":1035,"o":"a_040B"},{"a":5229,"t":"code","b":[110,12,4],"m":"ror","oa":1036,"o":"a_040C"},{"a":5232,"t":"code","b":[173,11,4],"m":"lda","oa":1035,"o":"a_040B"},{"a":5235,"t":"code","b":[208,231],"m":"bne","oa":5212,"o":"b_145C"},{"a":5237,"t":"code","b":[32,136,20],"m":"jsr","oa":5256,"o":"pinn_delay"},{"a":5240,"t":"code","b":[173,13,4],"m":"lda","oa":1037,"o":"a_040D"},{"a":5243,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":5246,"t":"code","b":[32,136,20],"m":"jsr","oa":5256,"o":"pinn_delay"},{"a":5249,"t":"code","b":[32,136,20],"m":"jsr","oa":5256,"o":"pinn_delay"},{"a":5252,"t":"code","b":[238,32,208],"m":"inc","o":"vic_border"},{"a":5255,"t":"code","b":[96],"m":"rts"},{"a":5256,"l":"pinn_delay","c":"A short delay (12 loops) between bits.","t":"code","b":[162,12],"m":"ldx","o":"#$0C","x":[5212,5237,5246,5249]},{"a":5258,"l":"b_148A","t":"code","b":[202],"m":"dex","x":[5259]},{"a":5259,"t":"code","b":[208,253],"m":"bne","oa":5258,"o":"b_148A"},{"a":5261,"t":"code","b":[96],"m":"rts"},{"a":5262,"l":"pinn_arg","c":"Takes a number from the BASIC statement into A (low byte, from $65) and Y (high, from $64), by calling two BASIC ROM routines, $AE86 and $BC9B. What those do was not checked here: the snapshot holds the RAM beneath the ROM, where the game has its own code.","t":"code","b":[32,134,174],"m":"jsr","oa":44678,"o":"treasure_result_bcd","x":[5009,5030,5039,5273]},{"a":5265,"t":"code","b":[32,155,188],"m":"jsr","oa":48283,"o":"death_drain"},{"a":5268,"t":"code","b":[165,101],"m":"lda","oa":101,"o":"zpa_65"},{"a":5270,"t":"code","b":[164,100],"m":"ldy","oa":100,"o":"zpa_64"},{"a":5272,"t":"code","b":[96],"m":"rts"},{"a":5273,"l":"pinn_receive","c":"SYS 5000,address: receives a block. The nine-byte header comes first, into $0402; a non-zero address from the statement replaces the header's; then the bytes, to that address, with the screen blanked and interrupts off.","t":"code","b":[32,142,20],"m":"jsr","oa":5262,"o":"pinn_arg","x":[5000]},{"a":5276,"l":"pinn_receive_to","c":"The block receive for an address in A/Y (pinn_receive_many calls it with 0, the header's own address).","t":"code","b":[141,0,4],"m":"sta","oa":1024,"o":"a_0400","x":[5020]},{"a":5279,"t":"code","b":[140,1,4],"m":"sty","oa":1025,"o":"a_0401"},{"a":5282,"t":"code","b":[120],"m":"sei"},{"a":5283,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":5285,"t":"code","b":[141,2,4],"m":"sta","oa":1026,"o":"a_0402"},{"a":5288,"t":"code","b":[173,32,208],"m":"lda","o":"vic_border"},{"a":5291,"t":"code","b":[72],"m":"pha"},{"a":5292,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":5295,"t":"code","b":[41,239],"m":"and","o":"#$EF"},{"a":5297,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5300,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":5302,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":5304,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":5306,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":5308,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5310,"l":"b_14BE","t":"code","b":[32,33,21],"m":"jsr","oa":5409,"o":"pinn_receive_byte","x":[5321]},{"a":5313,"t":"code","b":[173,11,4],"m":"lda","oa":1035,"o":"a_040B"},{"a":5316,"t":"code","b":[145,251],"m":"sta","oa":251,"o":"(zpa_FB),y"},{"a":5318,"t":"code","b":[200],"m":"iny"},{"a":5319,"t":"code","b":[192,9],"m":"cpy","o":"#$09"},{"a":5321,"t":"code","b":[208,243],"m":"bne","oa":5310,"o":"b_14BE"},{"a":5323,"t":"code","b":[173,0,4],"m":"lda","oa":1024,"o":"a_0400"},{"a":5326,"t":"code","b":[13,1,4],"m":"ora","oa":1025,"o":"a_0401"},{"a":5329,"t":"code","b":[240,13],"m":"beq","oa":5344,"o":"b_14E0"},{"a":5331,"t":"code","b":[173,0,4],"m":"lda","oa":1024,"o":"a_0400"},{"a":5334,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":5336,"t":"code","b":[145,251],"m":"sta","oa":251,"o":"(zpa_FB),y"},{"a":5338,"t":"code","b":[200],"m":"iny"},{"a":5339,"t":"code","b":[173,1,4],"m":"lda","oa":1025,"o":"a_0401"},{"a":5342,"t":"code","b":[145,251],"m":"sta","oa":251,"o":"(zpa_FB),y"},{"a":5344,"l":"b_14E0","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[5329]},{"a":5346,"t":"code","b":[173,5,4],"m":"lda","oa":1029,"o":"a_0405"},{"a":5349,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":5351,"t":"code","b":[173,6,4],"m":"lda","oa":1030,"o":"a_0406"},{"a":5354,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":5356,"l":"b_14EC","t":"code","b":[173,3,4],"m":"lda","oa":1027,"o":"a_0403","x":[5388,5392]},{"a":5359,"t":"code","b":[240,6],"m":"beq","oa":5367,"o":"b_14F7"},{"a":5361,"t":"code","b":[206,3,4],"m":"dec","oa":1027,"o":"a_0403"},{"a":5364,"t":"code","b":[76,2,21],"m":"jmp","oa":5378,"o":"j_1502"},{"a":5367,"l":"b_14F7","t":"code","b":[206,3,4],"m":"dec","oa":1027,"o":"a_0403","x":[5359]},{"a":5370,"t":"code","b":[173,4,4],"m":"lda","oa":1028,"o":"a_0404"},{"a":5373,"t":"code","b":[240,20],"m":"beq","oa":5395,"o":"b_1513"},{"a":5375,"t":"code","b":[206,4,4],"m":"dec","oa":1028,"o":"a_0404"},{"a":5378,"l":"j_1502","t":"code","b":[32,33,21],"m":"jsr","oa":5409,"o":"pinn_receive_byte","x":[5364]},{"a":5381,"t":"code","b":[173,11,4],"m":"lda","oa":1035,"o":"a_040B"},{"a":5384,"t":"code","b":[145,251],"m":"sta","oa":251,"o":"(zpa_FB),y"},{"a":5386,"t":"code","b":[230,251],"m":"inc","oa":251,"o":"zpa_FB"},{"a":5388,"t":"code","b":[208,222],"m":"bne","oa":5356,"o":"b_14EC"},{"a":5390,"t":"code","b":[230,252],"m":"inc","oa":252,"o":"zpa_FC"},{"a":5392,"t":"code","b":[76,236,20],"m":"jmp","oa":5356,"o":"b_14EC"},{"a":5395,"l":"b_1513","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1","x":[5373]},{"a":5398,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":5400,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5403,"t":"code","b":[104],"m":"pla"},{"a":5404,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":5407,"t":"code","b":[88],"m":"cli"},{"a":5408,"t":"code","b":[96],"m":"rts"},{"a":5409,"l":"pinn_receive_byte","c":"Receives one byte: raises the handshake on port B bit 1, waits for the start bit on port B bit 0, then shifts in the bits from port B bit 0 into $040B, and inverts the result; the border colour steps on.","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[5310,5378]},{"a":5411,"t":"code","b":[141,3,221],"m":"sta","o":"cia2_ddr_b"},{"a":5414,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":5416,"t":"code","b":[141,1,221],"m":"sta","o":"cia2_port_b"},{"a":5419,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":5421,"t":"code","b":[141,11,4],"m":"sta","oa":1035,"o":"a_040B"},{"a":5424,"l":"b_1530","t":"code","b":[173,1,221],"m":"lda","o":"cia2_port_b","x":[5429]},{"a":5427,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":5429,"t":"code","b":[240,249],"m":"beq","oa":5424,"o":"b_1530"},{"a":5431,"l":"j_1537","t":"code","b":[32,100,21],"m":"jsr","oa":5476,"o":"pinn_delay_rx","x":[5443]},{"a":5434,"t":"code","b":[173,1,221],"m":"lda","o":"cia2_port_b"},{"a":5437,"t":"code","b":[106],"m":"ror","o":"a"},{"a":5438,"t":"code","b":[110,11,4],"m":"ror","oa":1035,"o":"a_040B"},{"a":5441,"t":"code","b":[176,3],"m":"bcs","oa":5446,"o":"b_1546"},{"a":5443,"t":"code","b":[76,55,21],"m":"jmp","oa":5431,"o":"j_1537"},{"a":5446,"l":"b_1546","t":"code","b":[173,1,221],"m":"lda","o":"cia2_port_b","x":[5441]},{"a":5449,"t":"code","b":[41,253],"m":"and","o":"#$FD"},{"a":5451,"t":"code","b":[141,1,221],"m":"sta","o":"cia2_port_b"},{"a":5454,"t":"code","b":[32,100,21],"m":"jsr","oa":5476,"o":"pinn_delay_rx"},{"a":5457,"t":"code","b":[173,1,221],"m":"lda","o":"cia2_port_b"},{"a":5460,"t":"code","b":[106],"m":"ror","o":"a"},{"a":5461,"t":"code","b":[110,11,4],"m":"ror","oa":1035,"o":"a_040B"},{"a":5464,"t":"code","b":[173,11,4],"m":"lda","oa":1035,"o":"a_040B"},{"a":5467,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":5469,"t":"code","b":[141,11,4],"m":"sta","oa":1035,"o":"a_040B"},{"a":5472,"t":"code","b":[238,32,208],"m":"inc","o":"vic_border"},{"a":5475,"t":"code","b":[96],"m":"rts"},{"a":5476,"l":"pinn_delay_rx","c":"A short delay (13 loops) between received bits.","t":"code","b":[162,13],"m":"ldx","o":"#$0D","x":[5431,5454,5484]},{"a":5478,"l":"b_1566","t":"code","b":[202],"m":"dex","x":[5479]},{"a":5479,"t":"code","b":[208,253],"m":"bne","oa":5478,"o":"b_1566"},{"a":5481,"t":"code","b":[96],"m":"rts"},{"a":5482,"l":"pinn_delay_long","c":"A longer delay (256 short ones) before a block is sent.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[5077]},{"a":5484,"l":"b_156C","t":"code","b":[32,100,21],"m":"jsr","oa":5476,"o":"pinn_delay_rx","x":[5488]},{"a":5487,"t":"code","b":[136],"m":"dey"},{"a":5488,"t":"code","b":[208,250],"m":"bne","oa":5484,"o":"b_156C"},{"a":5490,"t":"code","b":[96],"m":"rts"},{"a":5491,"l":"pinn_tail","c":"The rest of the file PINN232 5000 after its code: 141 bytes in the pattern of unwritten memory, saved with it.","t":"byte","b":[235,0,255,0,239,0,255,0]},{"a":5499,"t":"byte","b":[243,16,244,0,243,0,255,0]},{"a":5507,"t":"byte","b":[255,64,255,0,255,0,255,0]},{"a":5515,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":5523,"t":"byte","b":[255,192,191,0,127,0,255,0]},{"a":5531,"t":"byte","b":[255,64,127,0,255,0,255,0]},{"a":5539,"t":"byte","b":[255,0,255,0,191,0,255,0]},{"a":5547,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":5555,"t":"byte","b":[255,64,255,64,191,0,255,0]},{"a":5563,"t":"byte","b":[255,64,191,46,255,0,255,0]},{"a":5571,"t":"byte","b":[255,0,255,0,251,0,255,0]},{"a":5579,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":5587,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":5595,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":5603,"t":"byte","b":[255,0,255,0,231,0,255,0]},{"a":5611,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":5619,"t":"byte","b":[255,0,255,0,255,0,255,32]},{"a":5627,"t":"byte","b":[255,0,255,236,0]},{"a":5632,"t":"gap","n":12800},{"a":18432,"l":"font_maze_a","c":"The first of the three maze fonts (font select 2, from the file GAUNT CHR $4800): 256 multicolour glyphs. $00 is the floor and $01-$5A the maze's other pieces (the walls' brick joins, doors, treasure, food, potions, keys, generators, the trap, the transporter, the exits), four glyphs to a tile (tile_chars). $5B looks like floor and marks a cell as occupied (cell_mark). The rest are the monsters, four glyphs to a facing: the lobber $5C-$5F (one picture for every facing), ghosts $60-$7F, grunts $80-$9F, demons $A0-$BF, sorcerers $C0-$DF, Death $E0-$FF. panel_flash cycles the three fonts, which differ in the monsters' glyphs and in the transporter ($34-$37), the trap ($38-$3B) and two of the treasure chest's glyphs ($1A, $1B), so all of these animate at once.","t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":18440,"l":"font_maze_a_walls","c":"Glyphs 1-12 of the first maze font, which maze_style rewrites per level from one of the style blocks at $6408-$6567 (the walls' look).","t":"byte","b":[63,195,206,206,206,3,254,254],"x":[36062]},{"a":18448,"t":"byte","b":[252,252,171,171,171,255,186,186]},{"a":18456,"t":"byte","b":[255,252,171,168,171,252,187,184]},{"a":18464,"t":"byte","b":[254,3,206,206,206,3,254,254]},{"a":18472,"t":"byte","b":[186,252,171,168,171,252,187,184]},{"a":18480,"t":"byte","b":[186,207,14,206,206,3,254,254]},{"a":18488,"t":"byte","b":[187,252,171,168,171,252,187,184]},{"a":18496,"t":"byte","b":[187,255,171,171,171,255,186,186]},{"a":18504,"t":"byte","b":[254,255,171,171,171,255,186,186]},{"a":18512,"t":"byte","b":[254,12,195,204,192,204,48,204]},{"a":18520,"t":"byte","b":[186,204,3,204,0,204,48,204]},{"a":18528,"t":"byte","b":[187,204,3,204,0,204,51,204]},{"a":18536,"t":"byte","b":[85,85,85,64,191,204,204,221]},{"a":18544,"t":"byte","b":[85,81,92,51,243,115,76,80]},{"a":18552,"t":"byte","b":[87,95,111,115,116,86,87,85]},{"a":18560,"t":"byte","b":[204,60,48,112,193,197,21,85]},{"a":18568,"t":"byte","b":[235,170,136,162,251,107,124,66]},{"a":18576,"t":"byte","b":[65,104,222,109,154,229,106,247]},{"a":18584,"t":"byte","b":[47,171,139,170,227,235,188,230]},{"a":18592,"t":"byte","b":[187,181,225,44,58,58,185,217]},{"a":18600,"t":"byte","b":[64,191,191,239,192,138,170,254]},{"a":18608,"t":"byte","b":[0,248,248,236,48,200,168,204]},{"a":18616,"t":"byte","b":[250,250,250,255,239,191,191,112]},{"a":18624,"t":"byte","b":[140,140,188,252,236,248,248,3]},{"a":18632,"t":"byte","b":[85,80,127,255,254,64,113,118]},{"a":18640,"t":"byte","b":[85,1,240,252,253,1,241,113]},{"a":18648,"t":"byte","b":[113,125,114,127,127,101,89,85]},{"a":18656,"t":"byte","b":[177,113,49,241,245,149,89,85]},{"a":18664,"t":"byte","b":[0,119,37,37,37,37,39,0]},{"a":18672,"t":"byte","b":[0,12,28,60,108,126,12,0]},{"a":18680,"t":"byte","b":[0,60,102,60,102,102,60,0]},{"a":18688,"t":"byte","b":[0,116,66,97,66,68,116,0]},{"a":18696,"t":"byte","b":[0,87,146,18,146,82,82,0]},{"a":18704,"t":"byte","b":[85,86,87,127,119,127,123,123]},{"a":18712,"t":"byte","b":[85,85,85,81,81,193,240,240]},{"a":18720,"t":"byte","b":[115,124,115,127,127,127,95,85]},{"a":18728,"t":"byte","b":[48,241,49,241,245,245,213,85]},{"a":18736,"t":"byte","b":[85,81,76,60,63,79,95,95]},{"a":18744,"t":"byte","b":[85,85,85,21,5,193,224,230]},{"a":18752,"t":"byte","b":[95,95,87,87,145,100,89,86]},{"a":18760,"t":"byte","b":[170,166,166,150,83,7,23,23]},{"a":18768,"t":"byte","b":[91,93,95,95,95,95,127,111]},{"a":18776,"t":"byte","b":[85,85,85,85,85,85,212,240]},{"a":18784,"t":"byte","b":[251,255,255,255,255,255,127,95]},{"a":18792,"t":"byte","b":[240,240,240,240,240,241,197,85]},{"a":18800,"l":"font_maze_a_hidden","c":"Glyphs $2E and $2F of the first maze font, which hidden_potion_place rewrites with the hidden potion's picture.","t":"byte","b":[126,121,121,121,126,95,87,85],"x":[41847]},{"a":18808,"t":"byte","b":[188,108,108,108,188,241,213,85]},{"a":18816,"t":"byte","b":[85,85,87,87,92,92,92,92]},{"a":18824,"t":"byte","b":[85,85,197,49,93,92,87,87]},{"a":18832,"t":"byte","b":[92,251,170,139,163,139,237,85]},{"a":18840,"t":"byte","b":[71,93,241,21,21,85,85,85]},{"a":18848,"t":"byte","b":[127,191,190,238,238,254,254,234]},{"a":18856,"t":"byte","b":[245,249,249,237,237,253,253,173]},{"a":18864,"t":"byte","b":[234,254,254,238,238,190,191,127]},{"a":18872,"t":"byte","b":[173,253,253,237,237,249,249,245]},{"a":18880,"t":"byte","b":[85,85,85,85,87,117,85,117]},{"a":18888,"t":"byte","b":[85,85,85,85,117,85,93,213]},{"a":18896,"t":"byte","b":[87,117,85,93,85,85,85,85]},{"a":18904,"t":"byte","b":[93,85,93,213,85,85,85,85]},{"a":18912,"t":"byte","b":[85,85,85,0,239,239,234,239]},{"a":18920,"t":"byte","b":[85,85,85,0,255,255,170,255]},{"a":18928,"t":"byte","b":[191,191,191,85,85,85,85,85]},{"a":18936,"t":"byte","b":[255,255,255,85,85,85,85,85]},{"a":18944,"t":"byte","b":[127,255,254,254,254,254,254,254]},{"a":18952,"t":"byte","b":[253,239,171,171,235,175,171,171]},{"a":18960,"t":"byte","b":[255,255,255,255,255,255,255,127]},{"a":18968,"t":"byte","b":[175,255,255,255,255,255,255,253]},{"a":18976,"t":"byte","b":[127,255,254,254,254,126,255,254]},{"a":18984,"t":"byte","b":[253,175,239,171,187,175,171,175]},{"a":18992,"t":"byte","b":[255,255,255,127,255,247,223,119]},{"a":19000,"t":"byte","b":[191,255,255,255,255,253,223,245]},{"a":19008,"t":"byte","b":[125,255,254,127,127,255,127,255]},{"a":19016,"t":"byte","b":[253,191,175,175,239,189,175,187]},{"a":19024,"t":"byte","b":[127,95,127,221,127,247,223,119]},{"a":19032,"t":"byte","b":[239,255,255,253,253,95,247,85]},{"a":19040,"t":"byte","b":[181,181,181,181,181,181,165,245]},{"a":19048,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":19056,"t":"byte","b":[181,181,181,181,181,181,181,181]},{"a":19064,"t":"byte","b":[95,95,95,95,95,95,95,90]},{"a":19072,"t":"byte","b":[85,86,87,95,119,127,127,127]},{"a":19080,"t":"byte","b":[85,85,85,81,81,193,240,240]},{"a":19088,"t":"byte","b":[33,33,161,172,120,91,94,66]},{"a":19096,"t":"byte","b":[85,180,186,234,99,104,126,90]},{"a":19104,"t":"byte","b":[85,20,195,190,51,177,241,206]},{"a":19112,"t":"byte","b":[122,236,167,187,221,85,85,85]},{"a":19120,"t":"byte","b":[241,33,236,120,89,93,85,85]},{"a":19128,"t":"byte","b":[64,191,191,239,240,202,170,246]},{"a":19136,"t":"byte","b":[0,248,248,236,60,192,168,76]},{"a":19144,"t":"byte","b":[64,191,191,239,248,254,250,242]},{"a":19152,"t":"byte","b":[0,248,248,236,60,204,140,12]},{"a":19160,"t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":19168,"t":"byte","b":[85,85,85,229,217,217,152,152]},{"a":19176,"t":"byte","b":[91,91,111,92,92,85,85,85]},{"a":19184,"t":"byte","b":[236,192,192,193,197,85,85,85]},{"a":19192,"t":"byte","b":[85,85,85,87,87,87,86,86]},{"a":19200,"t":"byte","b":[69,129,165,133,178,226,106,122]},{"a":19208,"t":"byte","b":[84,88,104,24,200,136,136,188]},{"a":19216,"t":"byte","b":[90,94,86,86,86,86,87,87]},{"a":19224,"t":"byte","b":[245,197,197,197,197,197,213,85]},{"a":19232,"t":"byte","b":[84,88,90,104,108,110,110,106]},{"a":19240,"t":"byte","b":[85,21,85,84,6,134,138,136]},{"a":19248,"t":"byte","b":[122,122,122,122,106,107,175,189]},{"a":19256,"t":"byte","b":[233,161,181,213,21,21,21,85]},{"a":19264,"t":"byte","b":[85,85,85,85,85,85,86,86]},{"a":19272,"t":"byte","b":[85,80,106,175,129,241,177,177]},{"a":19280,"t":"byte","b":[86,75,170,170,170,235,125,85]},{"a":19288,"t":"byte","b":[177,177,197,197,197,176,187,173]},{"a":19296,"t":"byte","b":[85,85,69,128,188,175,110,106]},{"a":19304,"t":"byte","b":[85,85,85,85,21,1,240,188]},{"a":19312,"t":"byte","b":[122,121,90,107,108,104,120,93]},{"a":19320,"t":"byte","b":[108,136,217,85,85,85,85,85]},{"a":19328,"t":"byte","b":[85,87,87,86,86,86,90,90]},{"a":19336,"t":"byte","b":[21,21,21,5,197,197,129,177]},{"a":19344,"t":"byte","b":[106,105,174,182,129,165,149,213]},{"a":19352,"t":"byte","b":[188,104,136,216,88,104,88,93]},{"a":19360,"t":"byte","b":[85,85,81,98,170,186,182,137]},{"a":19368,"t":"byte","b":[85,84,4,140,188,188,189,177]},{"a":19376,"t":"byte","b":[218,94,86,85,84,90,86,86]},{"a":19384,"t":"byte","b":[177,181,133,133,133,149,21,85]},{"a":19392,"t":"byte","b":[85,64,172,251,91,95,94,90]},{"a":19400,"t":"byte","b":[85,85,21,21,21,5,197,197]},{"a":19408,"t":"byte","b":[90,90,91,86,86,66,170,107]},{"a":19416,"t":"byte","b":[193,240,255,255,255,190,105,85]},{"a":19424,"t":"byte","b":[85,85,85,85,69,133,130,162]},{"a":19432,"t":"byte","b":[69,129,161,97,113,177,177,177]},{"a":19440,"t":"byte","b":[98,106,90,86,86,85,85,85]},{"a":19448,"t":"byte","b":[177,177,241,240,252,188,191,247]},{"a":19456,"l":"font_maze_a_monsters","c":"The first maze font's glyphs $80-$FF: grunts, demons, sorcerers and Death, frame one.","t":"byte","b":[84,80,80,80,100,170,250,250]},{"a":19464,"t":"byte","b":[85,17,16,31,107,171,189,188]},{"a":19472,"t":"byte","b":[186,240,80,90,95,85,85,85]},{"a":19480,"t":"byte","b":[172,61,5,133,213,85,85,85]},{"a":19488,"t":"byte","b":[84,80,80,112,113,122,90,79]},{"a":19496,"t":"byte","b":[85,17,16,15,15,79,157,221]},{"a":19504,"t":"byte","b":[67,99,90,83,87,87,85,85]},{"a":19512,"t":"byte","b":[212,236,189,241,197,213,85,85]},{"a":19520,"t":"byte","b":[84,80,80,100,105,106,106,111]},{"a":19528,"t":"byte","b":[85,17,192,48,207,207,191,189]},{"a":19536,"t":"byte","b":[95,79,78,119,93,95,95,85]},{"a":19544,"t":"byte","b":[116,148,241,245,197,21,85,85]},{"a":19552,"t":"byte","b":[84,80,83,96,163,171,250,254]},{"a":19560,"t":"byte","b":[85,17,16,192,16,240,48,144]},{"a":19568,"t":"byte","b":[251,47,47,117,124,125,85,85]},{"a":19576,"t":"byte","b":[240,240,241,197,85,85,85,85]},{"a":19584,"t":"byte","b":[84,80,92,99,172,175,235,250]},{"a":19592,"t":"byte","b":[85,17,192,36,232,232,172,172]},{"a":19600,"t":"byte","b":[250,144,244,255,255,253,49,69]},{"a":19608,"t":"byte","b":[188,44,60,253,213,85,85,85]},{"a":19616,"t":"byte","b":[84,80,83,92,83,95,246,254]},{"a":19624,"t":"byte","b":[85,17,0,16,36,168,188,188]},{"a":19632,"t":"byte","b":[252,252,2,93,92,85,85,85]},{"a":19640,"t":"byte","b":[60,44,252,116,209,245,85,85]},{"a":19648,"t":"byte","b":[84,80,92,112,76,222,250,251]},{"a":19656,"t":"byte","b":[85,17,16,0,144,160,160,224]},{"a":19664,"t":"byte","b":[255,51,71,94,94,93,87,85]},{"a":19672,"t":"byte","b":[224,192,192,225,65,197,213,85]},{"a":19680,"t":"byte","b":[84,80,80,80,113,122,122,95]},{"a":19688,"t":"byte","b":[85,17,0,16,32,164,164,128]},{"a":19696,"t":"byte","b":[95,95,123,124,87,95,85,85]},{"a":19704,"t":"byte","b":[0,32,145,5,21,85,85,85]},{"a":19712,"t":"byte","b":[85,93,95,127,127,127,127,127]},{"a":19720,"t":"byte","b":[20,48,240,252,244,244,223,95]},{"a":19728,"t":"byte","b":[247,247,247,247,207,195,87,85]},{"a":19736,"t":"byte","b":[255,255,255,127,115,199,213,85]},{"a":19744,"t":"byte","b":[85,87,95,125,125,247,207,207]},{"a":19752,"t":"byte","b":[85,85,116,255,255,247,253,255]},{"a":19760,"t":"byte","b":[79,127,125,124,83,87,87,85]},{"a":19768,"t":"byte","b":[127,119,244,220,240,193,5,85]},{"a":19776,"t":"byte","b":[85,85,85,64,255,127,253,253]},{"a":19784,"t":"byte","b":[85,85,85,17,48,244,252,255]},{"a":19792,"t":"byte","b":[245,255,255,255,195,80,84,85]},{"a":19800,"t":"byte","b":[239,252,240,127,220,193,1,85]},{"a":19808,"t":"byte","b":[85,85,85,84,125,125,127,255]},{"a":19816,"t":"byte","b":[85,85,85,0,252,255,119,255]},{"a":19824,"t":"byte","b":[223,247,247,255,243,241,112,113]},{"a":19832,"t":"byte","b":[248,188,240,0,204,252,241,85]},{"a":19840,"t":"byte","b":[85,117,115,247,247,247,199,253]},{"a":19848,"t":"byte","b":[85,93,204,127,127,127,115,127]},{"a":19856,"t":"byte","b":[127,123,127,124,112,124,95,87]},{"a":19864,"t":"byte","b":[252,236,252,60,12,60,241,197]},{"a":19872,"t":"byte","b":[85,85,85,84,127,245,221,255]},{"a":19880,"t":"byte","b":[85,85,85,1,116,124,252,247]},{"a":19888,"t":"byte","b":[239,254,207,240,115,127,95,85]},{"a":19896,"t":"byte","b":[223,223,255,223,207,207,28,92]},{"a":19904,"t":"byte","b":[85,85,85,84,92,95,127,255]},{"a":19912,"t":"byte","b":[85,85,85,64,255,244,85,127]},{"a":19920,"t":"byte","b":[251,63,15,255,119,83,85,85]},{"a":19928,"t":"byte","b":[87,127,255,255,195,0,85,85]},{"a":19936,"t":"byte","b":[85,85,92,127,127,255,223,247]},{"a":19944,"t":"byte","b":[85,197,241,124,92,95,215,243]},{"a":19952,"t":"byte","b":[253,253,127,127,95,87,85,85]},{"a":19960,"t":"byte","b":[240,244,124,28,65,193,197,85]},{"a":19968,"t":"byte","b":[86,90,90,90,90,90,126,126]},{"a":19976,"t":"byte","b":[149,162,170,168,172,172,188,188]},{"a":19984,"t":"byte","b":[114,115,115,111,95,95,95,85]},{"a":19992,"t":"byte","b":[252,240,240,241,241,197,21,85]},{"a":20000,"t":"byte","b":[86,90,90,90,90,122,122,122]},{"a":20008,"t":"byte","b":[149,161,160,160,160,190,254,252]},{"a":20016,"t":"byte","b":[123,127,111,111,95,95,92,85]},{"a":20024,"t":"byte","b":[240,192,240,240,240,241,85,85]},{"a":20032,"t":"byte","b":[86,90,90,90,90,90,123,123]},{"a":20040,"t":"byte","b":[149,161,176,176,176,224,240,240]},{"a":20048,"t":"byte","b":[127,95,95,95,95,95,85,85]},{"a":20056,"t":"byte","b":[56,200,240,240,240,240,193,85]},{"a":20064,"t":"byte","b":[86,90,90,90,90,91,95,95]},{"a":20072,"t":"byte","b":[149,161,224,240,240,160,160,224]},{"a":20080,"t":"byte","b":[92,92,92,95,95,87,87,85]},{"a":20088,"t":"byte","b":[240,240,224,160,224,241,197,85]},{"a":20096,"t":"byte","b":[86,90,91,91,91,126,126,126]},{"a":20104,"t":"byte","b":[149,161,160,238,238,188,188,188]},{"a":20112,"t":"byte","b":[110,111,111,111,111,171,159,85]},{"a":20120,"t":"byte","b":[252,252,240,240,241,197,5,85]},{"a":20128,"t":"byte","b":[86,90,94,95,95,90,90,90]},{"a":20136,"t":"byte","b":[149,161,160,160,160,240,252,236]},{"a":20144,"t":"byte","b":[107,111,95,95,95,95,87,85]},{"a":20152,"t":"byte","b":[236,240,240,240,193,197,21,85]},{"a":20160,"t":"byte","b":[86,90,90,94,94,107,107,91]},{"a":20168,"t":"byte","b":[149,161,160,160,160,160,224,240]},{"a":20176,"t":"byte","b":[95,95,95,95,95,95,87,85]},{"a":20184,"t":"byte","b":[240,176,128,240,240,241,197,85]},{"a":20192,"t":"byte","b":[86,90,90,90,90,94,95,95]},{"a":20200,"t":"byte","b":[149,161,160,160,160,160,160,160]},{"a":20208,"t":"byte","b":[95,95,95,90,94,95,87,85]},{"a":20216,"t":"byte","b":[240,48,48,48,240,241,197,85]},{"a":20224,"t":"byte","b":[87,92,112,112,112,204,195,0]},{"a":20232,"t":"byte","b":[87,223,48,51,51,195,3,12]},{"a":20240,"t":"byte","b":[12,51,240,112,112,95,85,85]},{"a":20248,"t":"byte","b":[252,48,49,49,53,213,85,85]},{"a":20256,"t":"byte","b":[93,115,192,192,192,207,112,192]},{"a":20264,"t":"byte","b":[85,69,193,207,243,193,12,48]},{"a":20272,"t":"byte","b":[112,207,192,192,192,115,93,85]},{"a":20280,"t":"byte","b":[193,193,193,197,213,85,85,85]},{"a":20288,"t":"byte","b":[93,115,192,195,115,207,192,192]},{"a":20296,"t":"byte","b":[85,69,65,1,1,1,255,3]},{"a":20304,"t":"byte","b":[207,115,204,192,192,192,115,93]},{"a":20312,"t":"byte","b":[252,0,193,193,197,213,85,85]},{"a":20320,"t":"byte","b":[87,92,112,112,114,95,112,112]},{"a":20328,"t":"byte","b":[85,209,0,128,192,240,48,240]},{"a":20336,"t":"byte","b":[124,127,112,112,112,92,87,85]},{"a":20344,"t":"byte","b":[48,12,204,49,53,213,85,85]},{"a":20352,"t":"byte","b":[87,92,112,112,75,127,195,192]},{"a":20360,"t":"byte","b":[85,209,48,48,140,195,3,51]},{"a":20368,"t":"byte","b":[12,3,48,48,48,63,245,213]},{"a":20376,"t":"byte","b":[243,51,60,49,53,213,85,85]},{"a":20384,"t":"byte","b":[85,87,84,86,87,95,112,195]},{"a":20392,"t":"byte","b":[213,52,12,12,140,240,12,3]},{"a":20400,"t":"byte","b":[207,252,92,92,92,87,85,85]},{"a":20408,"t":"byte","b":[51,243,51,12,13,53,213,85]},{"a":20416,"t":"byte","b":[85,85,85,85,255,192,207,119]},{"a":20424,"t":"byte","b":[117,205,3,195,204,243,3,51]},{"a":20432,"t":"byte","b":[87,85,87,87,87,87,85,85]},{"a":20440,"t":"byte","b":[51,243,51,51,12,0,205,117]},{"a":20448,"t":"byte","b":[85,87,92,92,92,87,92,92]},{"a":20456,"t":"byte","b":[213,48,12,12,12,204,48,12]},{"a":20464,"t":"byte","b":[92,92,92,95,92,87,85,85]},{"a":20472,"t":"byte","b":[240,204,204,12,13,53,213,245]},{"a":20480,"l":"font_maze_b","c":"The second maze font (font select 4): the same walls and floor, with the monsters, the transporter, the trap and the chest's glyphs $1A-$1B in their second frame.","t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":20488,"l":"font_maze_b_walls","c":"Glyphs 1-12 of the second maze font, rewritten by maze_style.","t":"byte","b":[63,195,206,206,206,3,254,254],"x":[36065]},{"a":20496,"t":"byte","b":[252,252,171,171,171,255,186,186]},{"a":20504,"t":"byte","b":[255,252,171,168,171,252,187,184]},{"a":20512,"t":"byte","b":[254,3,206,206,206,3,254,254]},{"a":20520,"t":"byte","b":[186,252,171,168,171,252,187,184]},{"a":20528,"t":"byte","b":[186,207,14,206,206,3,254,254]},{"a":20536,"t":"byte","b":[187,252,171,168,171,252,187,184]},{"a":20544,"t":"byte","b":[187,255,171,171,171,255,186,186]},{"a":20552,"t":"byte","b":[254,255,171,171,171,255,186,186]},{"a":20560,"t":"byte","b":[254,12,195,204,192,204,48,204]},{"a":20568,"t":"byte","b":[186,204,3,204,0,204,48,204]},{"a":20576,"t":"byte","b":[187,204,3,204,0,204,51,204]},{"a":20584,"t":"byte","b":[85,85,85,64,191,204,204,221]},{"a":20592,"t":"byte","b":[85,81,92,51,243,115,76,80]},{"a":20600,"t":"byte","b":[87,95,111,115,116,86,87,85]},{"a":20608,"t":"byte","b":[204,60,48,112,193,197,21,85]},{"a":20616,"t":"byte","b":[235,170,136,162,251,107,124,66]},{"a":20624,"t":"byte","b":[65,104,222,109,154,229,106,247]},{"a":20632,"t":"byte","b":[47,171,139,170,227,235,188,230]},{"a":20640,"t":"byte","b":[187,181,225,44,58,58,185,217]},{"a":20648,"t":"byte","b":[64,191,191,239,192,138,170,254]},{"a":20656,"t":"byte","b":[0,248,248,236,48,200,168,204]},{"a":20664,"t":"byte","b":[250,250,250,255,239,191,191,112]},{"a":20672,"t":"byte","b":[140,140,188,252,236,248,248,3]},{"a":20680,"t":"byte","b":[85,80,127,255,254,64,113,118]},{"a":20688,"t":"byte","b":[85,1,240,252,253,1,49,113]},{"a":20696,"t":"byte","b":[113,121,114,127,127,101,89,85]},{"a":20704,"t":"byte","b":[177,113,49,241,245,149,89,85]},{"a":20712,"t":"byte","b":[0,119,37,37,37,37,39,0]},{"a":20720,"t":"byte","b":[0,12,28,60,108,126,12,0]},{"a":20728,"t":"byte","b":[0,60,102,60,102,102,60,0]},{"a":20736,"t":"byte","b":[0,116,66,97,66,68,116,0]},{"a":20744,"t":"byte","b":[0,87,146,18,146,82,82,0]},{"a":20752,"t":"byte","b":[85,86,87,127,119,127,123,123]},{"a":20760,"t":"byte","b":[85,85,85,81,81,193,240,240]},{"a":20768,"t":"byte","b":[115,124,115,127,127,127,95,85]},{"a":20776,"t":"byte","b":[48,241,49,241,245,245,213,85]},{"a":20784,"t":"byte","b":[85,81,76,60,63,79,95,95]},{"a":20792,"t":"byte","b":[85,85,85,21,5,193,224,230]},{"a":20800,"t":"byte","b":[95,95,87,87,145,100,89,86]},{"a":20808,"t":"byte","b":[170,166,166,150,83,7,23,23]},{"a":20816,"t":"byte","b":[91,93,95,95,95,95,127,111]},{"a":20824,"t":"byte","b":[85,85,85,85,85,85,212,240]},{"a":20832,"t":"byte","b":[251,255,255,255,255,255,127,95]},{"a":20840,"t":"byte","b":[240,240,240,240,240,241,197,85]},{"a":20848,"l":"font_maze_b_hidden","c":"The hidden potion's glyphs in the second maze font.","t":"byte","b":[126,121,121,121,126,95,87,85],"x":[41850]},{"a":20856,"t":"byte","b":[188,108,108,108,188,241,213,85]},{"a":20864,"t":"byte","b":[85,85,87,87,92,92,92,92]},{"a":20872,"t":"byte","b":[85,85,197,49,93,92,87,87]},{"a":20880,"t":"byte","b":[92,251,170,139,163,139,237,85]},{"a":20888,"t":"byte","b":[71,93,241,21,21,85,85,85]},{"a":20896,"t":"byte","b":[127,191,191,255,254,254,254,250]},{"a":20904,"t":"byte","b":[245,249,249,253,253,253,253,189]},{"a":20912,"t":"byte","b":[250,254,254,254,255,191,191,127]},{"a":20920,"t":"byte","b":[189,253,253,253,253,249,249,245]},{"a":20928,"t":"byte","b":[85,85,93,85,213,85,213,93]},{"a":20936,"t":"byte","b":[85,85,213,93,85,87,213,87]},{"a":20944,"t":"byte","b":[213,85,213,85,117,87,85,85]},{"a":20952,"t":"byte","b":[213,87,85,87,85,117,85,85]},{"a":20960,"t":"byte","b":[85,85,85,0,239,239,234,239]},{"a":20968,"t":"byte","b":[85,85,85,0,255,255,170,255]},{"a":20976,"t":"byte","b":[191,191,191,85,85,85,85,85]},{"a":20984,"t":"byte","b":[255,255,255,85,85,85,85,85]},{"a":20992,"t":"byte","b":[127,255,254,254,254,254,254,254]},{"a":21000,"t":"byte","b":[253,239,171,171,235,175,171,171]},{"a":21008,"t":"byte","b":[255,255,255,255,255,255,255,127]},{"a":21016,"t":"byte","b":[175,255,255,255,255,255,255,253]},{"a":21024,"t":"byte","b":[127,255,254,254,254,126,255,254]},{"a":21032,"t":"byte","b":[253,175,239,171,187,175,171,175]},{"a":21040,"t":"byte","b":[255,255,255,127,255,247,223,119]},{"a":21048,"t":"byte","b":[191,255,255,255,255,253,223,245]},{"a":21056,"t":"byte","b":[125,255,254,127,127,255,127,255]},{"a":21064,"t":"byte","b":[253,191,175,175,239,189,175,187]},{"a":21072,"t":"byte","b":[127,95,127,221,127,247,223,119]},{"a":21080,"t":"byte","b":[239,255,255,253,253,95,247,85]},{"a":21088,"t":"byte","b":[181,181,181,181,181,181,165,245]},{"a":21096,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":21104,"t":"byte","b":[181,181,181,181,181,181,181,181]},{"a":21112,"t":"byte","b":[95,95,95,95,95,95,95,90]},{"a":21120,"t":"byte","b":[85,86,87,95,119,127,127,127]},{"a":21128,"t":"byte","b":[85,85,85,81,81,193,240,240]},{"a":21136,"t":"byte","b":[33,33,161,172,120,91,94,66]},{"a":21144,"t":"byte","b":[85,180,186,234,99,104,126,90]},{"a":21152,"t":"byte","b":[85,20,195,190,51,177,241,206]},{"a":21160,"t":"byte","b":[122,236,167,187,221,85,85,85]},{"a":21168,"t":"byte","b":[241,33,236,120,89,93,85,85]},{"a":21176,"t":"byte","b":[64,191,191,239,240,202,170,246]},{"a":21184,"t":"byte","b":[0,248,248,236,60,192,168,76]},{"a":21192,"t":"byte","b":[64,191,191,239,248,254,250,242]},{"a":21200,"t":"byte","b":[0,248,248,236,60,204,140,12]},{"a":21208,"t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":21216,"t":"byte","b":[85,85,101,233,217,217,152,164]},{"a":21224,"t":"byte","b":[91,91,91,92,85,85,85,85]},{"a":21232,"t":"byte","b":[192,192,192,193,197,85,85,85]},{"a":21240,"t":"byte","b":[85,85,85,87,87,87,86,86]},{"a":21248,"t":"byte","b":[85,69,129,165,130,178,174,106]},{"a":21256,"t":"byte","b":[88,104,88,24,200,136,172,188]},{"a":21264,"t":"byte","b":[90,94,86,86,86,86,95,95]},{"a":21272,"t":"byte","b":[245,197,197,197,197,197,197,21]},{"a":21280,"t":"byte","b":[81,96,105,108,108,110,110,106]},{"a":21288,"t":"byte","b":[85,85,84,88,8,136,136,184]},{"a":21296,"t":"byte","b":[122,122,122,106,106,235,173,189]},{"a":21304,"t":"byte","b":[237,161,181,213,21,21,85,85]},{"a":21312,"t":"byte","b":[85,85,85,85,85,85,86,86]},{"a":21320,"t":"byte","b":[85,87,122,233,177,241,177,177]},{"a":21328,"t":"byte","b":[66,187,170,170,234,123,93,85]},{"a":21336,"t":"byte","b":[177,177,197,197,192,191,185,237]},{"a":21344,"t":"byte","b":[85,85,69,240,172,239,110,106]},{"a":21352,"t":"byte","b":[85,85,85,85,21,0,252,188]},{"a":21360,"t":"byte","b":[122,121,90,91,108,106,127,85]},{"a":21368,"t":"byte","b":[104,136,213,85,21,85,85,85]},{"a":21376,"t":"byte","b":[85,87,87,87,86,86,94,90]},{"a":21384,"t":"byte","b":[21,21,21,5,197,193,128,188]},{"a":21392,"t":"byte","b":[122,105,238,182,133,129,165,149]},{"a":21400,"t":"byte","b":[188,120,152,216,104,88,92,85]},{"a":21408,"t":"byte","b":[85,81,113,238,170,186,182,217]},{"a":21416,"t":"byte","b":[84,84,12,140,188,189,177,177]},{"a":21424,"t":"byte","b":[90,94,86,85,87,90,86,91]},{"a":21432,"t":"byte","b":[177,181,133,133,133,213,21,85]},{"a":21440,"t":"byte","b":[81,96,236,123,91,95,94,90]},{"a":21448,"t":"byte","b":[85,85,21,21,21,5,197,197]},{"a":21456,"t":"byte","b":[90,90,91,86,86,226,106,91]},{"a":21464,"t":"byte","b":[192,243,255,255,254,185,101,85]},{"a":21472,"t":"byte","b":[85,85,87,87,85,197,134,130]},{"a":21480,"t":"byte","b":[85,5,177,177,113,177,177,177]},{"a":21488,"t":"byte","b":[178,106,106,86,87,85,85,85]},{"a":21496,"t":"byte","b":[177,177,240,252,252,191,255,247]},{"a":21504,"l":"font_maze_b_monsters","c":"The second maze font's glyphs $80-$FF: grunts, demons, sorcerers and Death, frame two.","t":"byte","b":[85,84,80,80,164,170,234,250]},{"a":21512,"t":"byte","b":[85,85,17,16,79,171,171,189]},{"a":21520,"t":"byte","b":[90,80,80,90,95,95,95,85]},{"a":21528,"t":"byte","b":[188,44,61,149,21,21,85,85]},{"a":21536,"t":"byte","b":[85,84,80,112,113,122,90,71]},{"a":21544,"t":"byte","b":[85,85,17,16,15,79,159,191]},{"a":21552,"t":"byte","b":[67,99,91,70,112,85,85,85]},{"a":21560,"t":"byte","b":[253,220,176,240,204,61,117,85]},{"a":21568,"t":"byte","b":[85,84,80,100,105,106,106,126]},{"a":21576,"t":"byte","b":[85,85,17,192,48,204,255,127]},{"a":21584,"t":"byte","b":[95,79,78,91,119,81,85,85]},{"a":21592,"t":"byte","b":[125,116,208,241,193,49,245,85]},{"a":21600,"t":"byte","b":[85,84,80,163,160,235,235,254]},{"a":21608,"t":"byte","b":[85,85,17,0,192,16,240,60]},{"a":21616,"t":"byte","b":[233,183,103,61,199,95,87,87]},{"a":21624,"t":"byte","b":[220,240,241,241,81,197,213,85]},{"a":21632,"t":"byte","b":[85,84,80,172,163,236,239,235]},{"a":21640,"t":"byte","b":[85,85,17,192,36,232,232,172]},{"a":21648,"t":"byte","b":[186,252,252,255,51,79,95,85]},{"a":21656,"t":"byte","b":[188,60,60,44,60,61,85,85]},{"a":21664,"t":"byte","b":[85,84,80,83,92,83,95,246]},{"a":21672,"t":"byte","b":[85,85,1,16,36,168,184,248]},{"a":21680,"t":"byte","b":[243,243,243,5,124,85,85,85]},{"a":21688,"t":"byte","b":[176,192,84,112,252,125,117,85]},{"a":21696,"t":"byte","b":[85,84,80,92,112,78,94,250]},{"a":21704,"t":"byte","b":[85,85,17,0,144,160,160,240]},{"a":21712,"t":"byte","b":[247,243,14,95,124,85,85,85]},{"a":21720,"t":"byte","b":[224,192,192,96,240,252,125,85]},{"a":21728,"t":"byte","b":[85,84,80,80,81,90,90,95]},{"a":21736,"t":"byte","b":[85,85,1,16,36,172,172,128]},{"a":21744,"t":"byte","b":[127,237,253,116,93,85,85,85]},{"a":21752,"t":"byte","b":[0,32,144,0,48,252,125,85]},{"a":21760,"t":"byte","b":[85,93,95,127,127,255,255,247]},{"a":21768,"t":"byte","b":[20,48,240,252,244,244,223,95]},{"a":21776,"t":"byte","b":[247,215,247,207,95,87,87,85]},{"a":21784,"t":"byte","b":[255,255,255,127,115,199,213,85]},{"a":21792,"t":"byte","b":[95,127,119,247,253,207,95,95]},{"a":21800,"t":"byte","b":[85,85,116,255,255,247,253,255]},{"a":21808,"t":"byte","b":[95,127,125,124,83,87,87,85]},{"a":21816,"t":"byte","b":[127,119,244,220,240,193,5,85]},{"a":21824,"t":"byte","b":[85,84,95,127,245,127,253,253]},{"a":21832,"t":"byte","b":[85,1,197,193,240,244,252,255]},{"a":21840,"t":"byte","b":[245,255,255,255,195,80,84,85]},{"a":21848,"t":"byte","b":[239,255,244,127,220,193,1,85]},{"a":21856,"t":"byte","b":[85,85,85,84,125,125,127,255]},{"a":21864,"t":"byte","b":[85,80,252,255,255,255,116,252]},{"a":21872,"t":"byte","b":[223,247,247,255,243,241,112,113]},{"a":21880,"t":"byte","b":[248,188,252,64,220,252,241,85]},{"a":21888,"t":"byte","b":[85,113,243,247,247,247,199,253]},{"a":21896,"t":"byte","b":[92,92,255,127,127,115,112,124]},{"a":21904,"t":"byte","b":[127,123,127,124,124,95,87,85]},{"a":21912,"t":"byte","b":[252,236,252,60,60,241,197,85]},{"a":21920,"t":"byte","b":[85,85,85,84,127,245,221,255]},{"a":21928,"t":"byte","b":[85,85,85,1,116,127,247,223]},{"a":21936,"t":"byte","b":[239,254,223,241,119,127,95,85]},{"a":21944,"t":"byte","b":[223,255,223,223,204,193,21,85]},{"a":21952,"t":"byte","b":[85,85,85,84,92,95,127,255]},{"a":21960,"t":"byte","b":[85,85,85,64,255,244,85,127]},{"a":21968,"t":"byte","b":[251,255,31,253,117,80,85,85]},{"a":21976,"t":"byte","b":[247,253,95,87,3,0,85,85]},{"a":21984,"t":"byte","b":[85,85,92,127,255,223,247,253]},{"a":21992,"t":"byte","b":[85,197,241,124,92,95,215,243]},{"a":22000,"t":"byte","b":[253,127,95,95,87,85,85,85]},{"a":22008,"t":"byte","b":[240,116,124,220,193,197,85,85]},{"a":22016,"t":"byte","b":[86,90,90,90,90,90,126,126]},{"a":22024,"t":"byte","b":[150,170,168,172,172,172,188,188]},{"a":22032,"t":"byte","b":[114,115,115,175,159,95,85,85]},{"a":22040,"t":"byte","b":[240,240,241,241,241,241,241,85]},{"a":22048,"t":"byte","b":[86,90,90,90,90,122,122,250]},{"a":22056,"t":"byte","b":[149,161,160,160,162,190,255,252]},{"a":22064,"t":"byte","b":[251,223,159,159,95,87,85,85]},{"a":22072,"t":"byte","b":[240,192,240,240,240,241,197,85]},{"a":22080,"t":"byte","b":[86,90,90,90,90,90,123,123]},{"a":22088,"t":"byte","b":[149,161,176,176,176,224,240,252]},{"a":22096,"t":"byte","b":[127,111,95,95,95,127,127,85]},{"a":22104,"t":"byte","b":[206,242,240,240,240,192,193,85]},{"a":22112,"t":"byte","b":[86,90,90,90,90,91,95,95]},{"a":22120,"t":"byte","b":[149,161,224,240,240,160,160,224]},{"a":22128,"t":"byte","b":[95,92,92,127,127,127,124,85]},{"a":22136,"t":"byte","b":[240,240,252,56,40,57,85,85]},{"a":22144,"t":"byte","b":[86,90,91,91,91,94,126,126]},{"a":22152,"t":"byte","b":[149,161,174,238,236,188,188,188]},{"a":22160,"t":"byte","b":[126,111,111,111,111,111,169,149]},{"a":22168,"t":"byte","b":[252,240,240,240,240,240,113,69]},{"a":22176,"t":"byte","b":[86,90,94,95,95,90,90,90]},{"a":22184,"t":"byte","b":[149,161,160,160,188,252,248,200]},{"a":22192,"t":"byte","b":[123,191,167,95,95,95,95,95]},{"a":22200,"t":"byte","b":[240,240,240,240,192,193,5,21]},{"a":22208,"t":"byte","b":[86,90,90,94,94,187,187,91]},{"a":22216,"t":"byte","b":[149,161,160,160,160,160,224,240]},{"a":22224,"t":"byte","b":[95,95,95,95,127,127,127,92]},{"a":22232,"t":"byte","b":[48,224,236,252,192,193,5,85]},{"a":22240,"t":"byte","b":[86,90,90,90,90,94,95,95]},{"a":22248,"t":"byte","b":[149,161,160,160,160,160,160,224]},{"a":22256,"t":"byte","b":[83,95,95,126,127,127,92,85]},{"a":22264,"t":"byte","b":[192,192,176,188,252,1,5,85]},{"a":22272,"t":"byte","b":[87,92,112,112,112,204,195,0]},{"a":22280,"t":"byte","b":[87,223,48,51,51,195,3,12]},{"a":22288,"t":"byte","b":[12,243,112,112,112,115,93,85]},{"a":22296,"t":"byte","b":[252,48,49,53,213,85,85,85]},{"a":22304,"t":"byte","b":[93,115,192,192,192,207,112,192]},{"a":22312,"t":"byte","b":[85,69,193,207,243,193,12,48]},{"a":22320,"t":"byte","b":[112,207,192,192,192,124,87,85]},{"a":22328,"t":"byte","b":[193,193,193,49,53,213,85,85]},{"a":22336,"t":"byte","b":[93,115,192,195,115,207,192,192]},{"a":22344,"t":"byte","b":[85,69,65,1,1,1,255,3]},{"a":22352,"t":"byte","b":[207,115,204,192,192,112,92,87]},{"a":22360,"t":"byte","b":[252,0,193,193,49,53,245,85]},{"a":22368,"t":"byte","b":[87,92,112,112,114,95,112,112]},{"a":22376,"t":"byte","b":[85,209,0,128,192,240,48,240]},{"a":22384,"t":"byte","b":[124,127,112,112,92,92,87,85]},{"a":22392,"t":"byte","b":[48,12,204,49,49,53,213,85]},{"a":22400,"t":"byte","b":[87,92,112,112,75,127,195,192]},{"a":22408,"t":"byte","b":[85,209,48,48,140,195,3,51]},{"a":22416,"t":"byte","b":[12,3,48,48,48,51,253,213]},{"a":22424,"t":"byte","b":[243,51,51,61,213,85,85,85]},{"a":22432,"t":"byte","b":[85,87,84,86,87,95,112,195]},{"a":22440,"t":"byte","b":[213,52,12,12,140,240,12,3]},{"a":22448,"t":"byte","b":[207,252,92,112,112,95,85,85]},{"a":22456,"t":"byte","b":[51,243,51,51,13,245,85,85]},{"a":22464,"t":"byte","b":[85,85,85,85,255,192,207,119]},{"a":22472,"t":"byte","b":[117,205,3,195,204,243,3,51]},{"a":22480,"t":"byte","b":[87,85,87,87,92,95,85,85]},{"a":22488,"t":"byte","b":[51,243,51,51,15,3,243,93]},{"a":22496,"t":"byte","b":[85,87,92,92,92,87,92,92]},{"a":22504,"t":"byte","b":[213,48,12,12,12,204,48,12]},{"a":22512,"t":"byte","b":[92,92,124,115,92,87,85,85]},{"a":22520,"t":"byte","b":[240,204,204,12,3,3,205,245]},{"a":22528,"l":"font_maze_c","c":"The third maze font (font select 6): the monsters, the transporter, the trap and the chest's glyphs $1A-$1B in their third frame.","t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":22536,"l":"font_maze_c_walls","c":"Glyphs 1-12 of the third maze font, rewritten by maze_style.","t":"byte","b":[63,195,206,206,206,3,254,254],"x":[36068]},{"a":22544,"t":"byte","b":[252,252,171,171,171,255,186,186]},{"a":22552,"t":"byte","b":[255,252,171,168,171,252,187,184]},{"a":22560,"t":"byte","b":[254,3,206,206,206,3,254,254]},{"a":22568,"t":"byte","b":[186,252,171,168,171,252,187,184]},{"a":22576,"t":"byte","b":[186,207,14,206,206,3,254,254]},{"a":22584,"t":"byte","b":[187,252,171,168,171,252,187,184]},{"a":22592,"t":"byte","b":[187,255,171,171,171,255,186,186]},{"a":22600,"t":"byte","b":[254,255,171,171,171,255,186,186]},{"a":22608,"t":"byte","b":[254,12,195,204,192,204,48,204]},{"a":22616,"t":"byte","b":[186,204,3,204,0,204,48,204]},{"a":22624,"t":"byte","b":[187,204,3,204,0,204,51,204]},{"a":22632,"t":"byte","b":[85,85,85,64,191,204,204,221]},{"a":22640,"t":"byte","b":[85,81,92,51,243,115,76,80]},{"a":22648,"t":"byte","b":[87,95,111,115,116,86,87,85]},{"a":22656,"t":"byte","b":[204,60,48,112,193,197,21,85]},{"a":22664,"t":"byte","b":[235,170,136,162,251,107,124,66]},{"a":22672,"t":"byte","b":[65,104,222,109,154,229,106,247]},{"a":22680,"t":"byte","b":[47,171,139,170,227,235,188,230]},{"a":22688,"t":"byte","b":[187,181,225,44,58,58,185,217]},{"a":22696,"t":"byte","b":[64,191,191,239,192,138,170,254]},{"a":22704,"t":"byte","b":[0,248,248,236,48,200,168,204]},{"a":22712,"t":"byte","b":[250,250,250,255,239,191,191,112]},{"a":22720,"t":"byte","b":[140,140,188,252,236,248,248,3]},{"a":22728,"t":"byte","b":[85,80,127,255,254,64,113,118]},{"a":22736,"t":"byte","b":[85,1,240,252,253,1,177,113]},{"a":22744,"t":"byte","b":[113,113,114,127,127,101,89,85]},{"a":22752,"t":"byte","b":[177,113,49,241,245,149,89,85]},{"a":22760,"t":"byte","b":[0,119,37,37,37,37,39,0]},{"a":22768,"t":"byte","b":[0,12,28,60,108,126,12,0]},{"a":22776,"t":"byte","b":[0,60,102,60,102,102,60,0]},{"a":22784,"t":"byte","b":[0,116,66,97,66,68,116,0]},{"a":22792,"t":"byte","b":[0,87,146,18,146,82,82,0]},{"a":22800,"t":"byte","b":[85,86,87,127,119,127,123,123]},{"a":22808,"t":"byte","b":[85,85,85,81,81,193,240,240]},{"a":22816,"t":"byte","b":[115,124,115,127,127,127,95,85]},{"a":22824,"t":"byte","b":[48,241,49,241,245,245,213,85]},{"a":22832,"t":"byte","b":[85,81,76,60,63,79,95,95]},{"a":22840,"t":"byte","b":[85,85,85,21,5,193,224,230]},{"a":22848,"t":"byte","b":[95,95,87,87,145,100,89,86]},{"a":22856,"t":"byte","b":[170,166,166,150,83,7,23,23]},{"a":22864,"t":"byte","b":[91,93,95,95,95,95,127,111]},{"a":22872,"t":"byte","b":[85,85,85,85,85,85,212,240]},{"a":22880,"t":"byte","b":[251,255,255,255,255,255,127,95]},{"a":22888,"t":"byte","b":[240,240,240,240,240,241,197,85]},{"a":22896,"l":"font_maze_c_hidden","c":"The hidden potion's glyphs in the third maze font.","t":"byte","b":[126,121,121,121,126,95,87,85],"x":[41853]},{"a":22904,"t":"byte","b":[188,108,108,108,188,241,213,85]},{"a":22912,"t":"byte","b":[85,85,87,87,92,92,92,92]},{"a":22920,"t":"byte","b":[85,85,197,49,93,92,87,87]},{"a":22928,"t":"byte","b":[92,251,170,139,163,139,237,85]},{"a":22936,"t":"byte","b":[71,93,241,21,21,85,85,85]},{"a":22944,"t":"byte","b":[126,190,190,238,238,250,254,170]},{"a":22952,"t":"byte","b":[245,249,249,237,237,189,253,169]},{"a":22960,"t":"byte","b":[170,254,250,238,238,190,190,126]},{"a":22968,"t":"byte","b":[169,253,189,237,237,249,249,245]},{"a":22976,"t":"byte","b":[85,85,85,85,85,85,85,93]},{"a":22984,"t":"byte","b":[85,85,85,85,85,85,213,85]},{"a":22992,"t":"byte","b":[85,87,85,85,85,85,85,85]},{"a":23000,"t":"byte","b":[117,85,85,85,85,85,85,85]},{"a":23008,"t":"byte","b":[85,85,85,0,239,239,234,239]},{"a":23016,"t":"byte","b":[85,85,85,0,255,255,170,255]},{"a":23024,"t":"byte","b":[191,191,191,85,85,85,85,85]},{"a":23032,"t":"byte","b":[255,255,255,85,85,85,85,85]},{"a":23040,"t":"byte","b":[127,255,254,254,254,254,254,254]},{"a":23048,"t":"byte","b":[253,239,171,171,235,175,171,171]},{"a":23056,"t":"byte","b":[255,255,255,255,255,255,255,127]},{"a":23064,"t":"byte","b":[175,255,255,255,255,255,255,253]},{"a":23072,"t":"byte","b":[127,255,254,254,254,126,255,254]},{"a":23080,"t":"byte","b":[253,175,239,171,187,175,171,175]},{"a":23088,"t":"byte","b":[255,255,255,127,255,247,223,119]},{"a":23096,"t":"byte","b":[191,255,255,255,255,253,223,245]},{"a":23104,"t":"byte","b":[125,255,254,127,127,255,127,255]},{"a":23112,"t":"byte","b":[253,191,175,175,239,189,175,187]},{"a":23120,"t":"byte","b":[127,95,127,221,127,247,223,119]},{"a":23128,"t":"byte","b":[239,255,255,253,253,95,247,85]},{"a":23136,"t":"byte","b":[181,181,181,181,181,181,165,245]},{"a":23144,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":23152,"t":"byte","b":[181,181,181,181,181,181,181,181]},{"a":23160,"t":"byte","b":[95,95,95,95,95,95,95,90]},{"a":23168,"t":"byte","b":[85,86,87,95,119,127,127,127]},{"a":23176,"t":"byte","b":[85,85,85,81,81,193,240,240]},{"a":23184,"t":"byte","b":[33,33,161,172,120,91,94,66]},{"a":23192,"t":"byte","b":[85,180,186,234,99,104,126,90]},{"a":23200,"t":"byte","b":[85,20,195,190,51,177,241,206]},{"a":23208,"t":"byte","b":[122,236,167,187,221,85,85,85]},{"a":23216,"t":"byte","b":[241,33,236,120,89,93,85,85]},{"a":23224,"t":"byte","b":[64,191,191,239,240,202,170,246]},{"a":23232,"t":"byte","b":[0,248,248,236,60,192,168,76]},{"a":23240,"t":"byte","b":[64,191,191,239,248,254,250,242]},{"a":23248,"t":"byte","b":[0,248,248,236,60,204,140,12]},{"a":23256,"t":"byte","b":[85,85,85,85,85,85,85,85]},{"a":23264,"t":"byte","b":[85,85,85,213,229,217,152,152]},{"a":23272,"t":"byte","b":[91,111,83,92,92,85,85,85]},{"a":23280,"t":"byte","b":[232,192,193,197,85,85,85,85]},{"a":23288,"t":"byte","b":[85,85,85,87,87,87,86,86]},{"a":23296,"t":"byte","b":[81,96,105,97,98,98,106,122]},{"a":23304,"t":"byte","b":[85,84,88,40,200,136,136,168]},{"a":23312,"t":"byte","b":[90,94,86,86,86,87,85,85]},{"a":23320,"t":"byte","b":[245,197,197,197,197,193,245,213]},{"a":23328,"t":"byte","b":[84,86,90,89,104,110,110,106]},{"a":23336,"t":"byte","b":[85,21,85,85,4,134,134,142]},{"a":23344,"t":"byte","b":[122,122,122,122,122,107,235,237]},{"a":23352,"t":"byte","b":[234,169,181,213,21,21,21,85]},{"a":23360,"t":"byte","b":[85,85,85,85,85,85,86,86]},{"a":23368,"t":"byte","b":[85,81,113,172,187,254,177,177]},{"a":23376,"t":"byte","b":[86,75,234,170,170,171,253,85]},{"a":23384,"t":"byte","b":[177,177,197,197,133,128,189,169]},{"a":23392,"t":"byte","b":[85,85,69,192,188,175,238,106]},{"a":23400,"t":"byte","b":[85,85,85,85,21,5,193,176]},{"a":23408,"t":"byte","b":[122,89,122,107,109,97,97,117]},{"a":23416,"t":"byte","b":[108,184,200,89,85,85,85,85]},{"a":23424,"t":"byte","b":[85,85,87,86,86,94,90,122]},{"a":23432,"t":"byte","b":[85,21,5,197,197,193,177,176]},{"a":23440,"t":"byte","b":[106,237,182,178,165,133,213,85]},{"a":23448,"t":"byte","b":[188,104,136,216,88,88,104,89]},{"a":23456,"t":"byte","b":[85,85,81,114,234,170,182,137]},{"a":23464,"t":"byte","b":[85,85,5,128,191,188,188,189]},{"a":23472,"t":"byte","b":[154,94,86,85,84,95,86,86]},{"a":23480,"t":"byte","b":[177,181,133,133,133,149,213,85]},{"a":23488,"t":"byte","b":[85,65,124,171,251,95,94,90]},{"a":23496,"t":"byte","b":[85,85,85,21,21,5,197,197]},{"a":23504,"t":"byte","b":[90,90,91,86,86,66,250,106]},{"a":23512,"t":"byte","b":[193,240,252,255,255,238,217,85]},{"a":23520,"t":"byte","b":[85,85,85,85,81,97,98,98]},{"a":23528,"t":"byte","b":[133,177,225,97,113,177,177,177]},{"a":23536,"t":"byte","b":[110,122,90,86,86,87,85,85]},{"a":23544,"t":"byte","b":[177,177,241,241,240,188,191,253]},{"a":23552,"l":"font_maze_c_monsters","c":"The third maze font's glyphs $80-$FF: grunts, demons, sorcerers and Death, frame three.","t":"byte","b":[85,84,80,80,100,170,250,250]},{"a":23560,"t":"byte","b":[85,84,31,15,107,169,172,172]},{"a":23568,"t":"byte","b":[250,240,176,250,87,87,87,85]},{"a":23576,"t":"byte","b":[189,5,5,133,197,197,213,85]},{"a":23584,"t":"byte","b":[85,84,80,112,225,234,234,139]},{"a":23592,"t":"byte","b":[81,80,31,15,15,77,157,252]},{"a":23600,"t":"byte","b":[195,96,90,69,95,127,125,85]},{"a":23608,"t":"byte","b":[244,236,252,68,13,21,85,85]},{"a":23616,"t":"byte","b":[85,84,96,164,169,234,234,159]},{"a":23624,"t":"byte","b":[85,85,16,207,63,207,252,124]},{"a":23632,"t":"byte","b":[255,79,78,87,124,253,245,85]},{"a":23640,"t":"byte","b":[116,240,241,209,113,85,85,85]},{"a":23648,"t":"byte","b":[85,84,80,99,96,171,171,190]},{"a":23656,"t":"byte","b":[85,85,17,0,192,0,240,252]},{"a":23664,"t":"byte","b":[59,15,99,124,252,241,117,85]},{"a":23672,"t":"byte","b":[252,252,253,49,241,85,85,85]},{"a":23680,"t":"byte","b":[85,84,80,92,99,172,175,235]},{"a":23688,"t":"byte","b":[85,85,1,232,40,236,236,172]},{"a":23696,"t":"byte","b":[250,240,144,252,252,253,253,49]},{"a":23704,"t":"byte","b":[157,17,113,241,241,241,245,85]},{"a":23712,"t":"byte","b":[85,84,80,83,92,243,255,254]},{"a":23720,"t":"byte","b":[85,85,1,16,36,172,172,172]},{"a":23728,"t":"byte","b":[253,48,70,85,87,95,95,87]},{"a":23736,"t":"byte","b":[120,252,60,112,204,197,21,85]},{"a":23744,"t":"byte","b":[85,84,80,92,240,206,254,250]},{"a":23752,"t":"byte","b":[85,85,17,0,144,160,160,240]},{"a":23760,"t":"byte","b":[55,65,80,91,95,127,124,93]},{"a":23768,"t":"byte","b":[208,240,176,208,113,21,85,85]},{"a":23776,"t":"byte","b":[85,84,80,240,241,250,58,79]},{"a":23784,"t":"byte","b":[85,85,1,16,32,160,160,128]},{"a":23792,"t":"byte","b":[95,95,82,95,93,127,124,93]},{"a":23800,"t":"byte","b":[192,224,208,1,197,21,85,85]},{"a":23808,"t":"byte","b":[85,93,95,127,127,127,127,127]},{"a":23816,"t":"byte","b":[20,48,240,252,247,247,223,127]},{"a":23824,"t":"byte","b":[247,247,247,247,207,195,87,85]},{"a":23832,"t":"byte","b":[255,255,255,115,113,197,213,85]},{"a":23840,"t":"byte","b":[85,87,95,125,125,247,207,207]},{"a":23848,"t":"byte","b":[85,85,116,255,255,247,255,247]},{"a":23856,"t":"byte","b":[79,127,125,124,80,85,85,85]},{"a":23864,"t":"byte","b":[116,220,208,112,209,213,85,85]},{"a":23872,"t":"byte","b":[85,85,85,64,253,127,253,253]},{"a":23880,"t":"byte","b":[85,85,85,17,48,244,252,255]},{"a":23888,"t":"byte","b":[255,255,245,213,64,80,84,85]},{"a":23896,"t":"byte","b":[239,240,240,127,28,1,1,85]},{"a":23904,"t":"byte","b":[85,85,85,84,125,221,223,247]},{"a":23912,"t":"byte","b":[85,85,85,0,252,255,119,255]},{"a":23920,"t":"byte","b":[247,255,247,247,115,83,84,85]},{"a":23928,"t":"byte","b":[248,188,240,0,12,252,241,85]},{"a":23936,"t":"byte","b":[113,241,243,255,247,199,71,125]},{"a":23944,"t":"byte","b":[85,93,204,127,127,127,115,127]},{"a":23952,"t":"byte","b":[127,123,127,112,112,112,92,87]},{"a":23960,"t":"byte","b":[252,236,252,12,12,12,49,197]},{"a":23968,"t":"byte","b":[85,85,93,127,253,245,221,255]},{"a":23976,"t":"byte","b":[85,85,1,0,244,252,244,215]},{"a":23984,"t":"byte","b":[239,254,207,192,243,127,95,85]},{"a":23992,"t":"byte","b":[223,223,255,223,207,207,28,92]},{"a":24000,"t":"byte","b":[85,85,85,87,92,95,127,255]},{"a":24008,"t":"byte","b":[85,64,252,255,244,212,85,127]},{"a":24016,"t":"byte","b":[251,15,15,255,127,83,85,85]},{"a":24024,"t":"byte","b":[87,127,255,255,195,0,85,85]},{"a":24032,"t":"byte","b":[85,85,92,127,127,255,223,247]},{"a":24040,"t":"byte","b":[245,252,252,127,95,95,211,240]},{"a":24048,"t":"byte","b":[253,253,127,127,95,87,85,85]},{"a":24056,"t":"byte","b":[240,244,124,28,65,193,197,85]},{"a":24064,"t":"byte","b":[86,90,90,90,90,90,126,126]},{"a":24072,"t":"byte","b":[149,161,162,170,168,172,188,188]},{"a":24080,"t":"byte","b":[126,127,95,95,95,95,95,87]},{"a":24088,"t":"byte","b":[252,252,240,240,193,197,21,85]},{"a":24096,"t":"byte","b":[86,90,90,90,90,122,122,122]},{"a":24104,"t":"byte","b":[149,161,160,160,160,188,254,254]},{"a":24112,"t":"byte","b":[123,127,95,95,95,95,95,92]},{"a":24120,"t":"byte","b":[192,240,240,240,241,197,21,85]},{"a":24128,"t":"byte","b":[86,90,90,90,90,90,123,123]},{"a":24136,"t":"byte","b":[149,161,176,176,176,224,240,240]},{"a":24144,"t":"byte","b":[95,95,127,127,127,95,85,85]},{"a":24152,"t":"byte","b":[48,56,200,192,252,252,125,85]},{"a":24160,"t":"byte","b":[86,90,90,90,90,91,95,83]},{"a":24168,"t":"byte","b":[149,161,224,240,240,160,160,224]},{"a":24176,"t":"byte","b":[83,83,92,87,87,85,85,85]},{"a":24184,"t":"byte","b":[240,160,160,192,240,241,245,85]},{"a":24192,"t":"byte","b":[86,90,91,91,91,126,126,126]},{"a":24200,"t":"byte","b":[149,161,160,236,238,190,188,188]},{"a":24208,"t":"byte","b":[110,111,111,111,171,159,95,92]},{"a":24216,"t":"byte","b":[252,252,252,240,193,197,21,85]},{"a":24224,"t":"byte","b":[86,90,94,95,95,90,90,90]},{"a":24232,"t":"byte","b":[149,161,160,160,160,240,240,252]},{"a":24240,"t":"byte","b":[91,95,95,127,127,124,85,85]},{"a":24248,"t":"byte","b":[188,176,204,252,241,5,85,85]},{"a":24256,"t":"byte","b":[86,90,90,94,94,91,91,91]},{"a":24264,"t":"byte","b":[149,161,160,160,160,160,224,240]},{"a":24272,"t":"byte","b":[95,94,126,127,127,85,85,85]},{"a":24280,"t":"byte","b":[48,240,192,48,252,252,85,85]},{"a":24288,"t":"byte","b":[86,90,90,90,90,94,95,95]},{"a":24296,"t":"byte","b":[149,161,160,160,160,160,160,160]},{"a":24304,"t":"byte","b":[95,92,107,91,87,87,85,85]},{"a":24312,"t":"byte","b":[240,240,240,240,252,253,245,245]},{"a":24320,"t":"byte","b":[87,92,112,112,112,204,195,0]},{"a":24328,"t":"byte","b":[87,223,48,51,51,195,3,12]},{"a":24336,"t":"byte","b":[12,51,48,240,92,87,85,85]},{"a":24344,"t":"byte","b":[252,48,49,49,49,53,213,85]},{"a":24352,"t":"byte","b":[93,115,192,192,192,207,112,192]},{"a":24360,"t":"byte","b":[85,69,193,207,243,193,12,48]},{"a":24368,"t":"byte","b":[112,207,192,192,195,204,117,85]},{"a":24376,"t":"byte","b":[193,193,49,53,213,85,85,85]},{"a":24384,"t":"byte","b":[93,115,192,195,115,207,192,192]},{"a":24392,"t":"byte","b":[85,69,65,1,1,1,255,3]},{"a":24400,"t":"byte","b":[207,115,204,192,192,192,195,125]},{"a":24408,"t":"byte","b":[252,0,193,49,53,213,85,85]},{"a":24416,"t":"byte","b":[87,92,112,112,114,95,112,112]},{"a":24424,"t":"byte","b":[85,209,0,128,192,240,48,240]},{"a":24432,"t":"byte","b":[124,127,112,112,95,85,85,85]},{"a":24440,"t":"byte","b":[48,12,204,49,13,245,85,85]},{"a":24448,"t":"byte","b":[87,92,112,112,75,127,195,192]},{"a":24456,"t":"byte","b":[85,209,48,48,140,195,3,51]},{"a":24464,"t":"byte","b":[12,3,48,48,60,55,245,213]},{"a":24472,"t":"byte","b":[243,60,48,48,49,53,213,85]},{"a":24480,"t":"byte","b":[85,87,84,86,87,95,112,195]},{"a":24488,"t":"byte","b":[213,52,12,12,140,240,12,3]},{"a":24496,"t":"byte","b":[207,252,92,92,87,87,87,85]},{"a":24504,"t":"byte","b":[51,243,60,12,13,5,53,213]},{"a":24512,"t":"byte","b":[85,85,85,85,255,192,207,119]},{"a":24520,"t":"byte","b":[117,205,3,195,204,243,3,51]},{"a":24528,"t":"byte","b":[87,85,87,87,92,92,95,85]},{"a":24536,"t":"byte","b":[51,243,51,51,12,12,53,213]},{"a":24544,"t":"byte","b":[85,87,92,92,92,87,92,92]},{"a":24552,"t":"byte","b":[213,48,12,12,12,204,48,12]},{"a":24560,"t":"byte","b":[92,92,124,115,112,95,85,85]},{"a":24568,"t":"byte","b":[240,204,204,12,12,205,117,245]},{"a":24576,"l":"font_panel","c":"The panel and message font (font select 8 at $6000, hires): glyph n draws ASCII n + $20 for letters and digits; its own glyphs are the inventory icons ($01-$0F), SCORE ($1A-$1F), ELF ($3B-$3E), the GAUNTLET logo ($40-$6F), WARRIOR ($70-$77), and the big letters of the LEVEL and TREASURE ROOM titles (top halves from $C1, bottom halves from $E1).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24584,"t":"byte","b":[0,24,24,24,24,0,24,24]},{"a":24592,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24600,"t":"byte","b":[0,60,102,60,24,30,24,30]},{"a":24608,"t":"byte","b":[0,24,24,24,52,122,122,52]},{"a":24616,"t":"byte","b":[0,6,12,24,240,112,88,128]},{"a":24624,"t":"byte","b":[0,32,16,32,16,32,16,8]},{"a":24632,"t":"byte","b":[42,170,169,185,231,222,252,120]},{"a":24640,"t":"byte","b":[0,146,254,242,226,68,76,56]},{"a":24648,"t":"byte","b":[0,56,68,186,186,186,68,56]},{"a":24656,"t":"byte","b":[66,90,90,153,52,122,122,52]},{"a":24664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24688,"t":"byte","b":[0,0,0,0,0,24,24,0]},{"a":24696,"t":"byte","b":[6,12,24,48,96,192,128,0]},{"a":24704,"t":"byte","b":[0,124,198,198,198,198,254,124]},{"a":24712,"t":"byte","b":[0,24,56,24,24,24,126,126]},{"a":24720,"t":"byte","b":[0,60,102,6,60,96,126,126]},{"a":24728,"t":"byte","b":[0,60,102,12,6,102,126,60]},{"a":24736,"t":"byte","b":[0,28,60,108,204,254,12,30]},{"a":24744,"t":"byte","b":[0,126,96,124,6,102,126,60]},{"a":24752,"t":"byte","b":[0,60,96,124,102,102,126,60]},{"a":24760,"t":"byte","b":[0,126,102,6,12,24,24,24]},{"a":24768,"t":"byte","b":[0,60,102,60,102,102,126,60]},{"a":24776,"t":"byte","b":[0,60,102,62,6,102,126,60]},{"a":24784,"t":"byte","b":[0,7,12,12,7,0,15,7]},{"a":24792,"t":"byte","b":[0,135,204,24,152,220,207,135]},{"a":24800,"t":"byte","b":[0,135,204,24,24,28,207,135]},{"a":24808,"t":"byte","b":[0,143,198,102,103,230,207,143]},{"a":24816,"t":"byte","b":[0,207,102,102,199,198,111,111]},{"a":24824,"t":"byte","b":[0,224,32,128,128,32,224,224]},{"a":24832,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24840,"t":"byte","b":[0,24,60,102,126,102,102,102]},{"a":24848,"t":"byte","b":[0,252,102,124,102,102,254,252]},{"a":24856,"t":"byte","b":[0,60,102,192,192,224,126,60]},{"a":24864,"t":"byte","b":[0,248,108,102,102,110,252,248]},{"a":24872,"t":"byte","b":[0,254,98,104,120,98,254,254]},{"a":24880,"t":"byte","b":[0,254,98,104,120,104,96,240]},{"a":24888,"t":"byte","b":[0,60,102,192,206,230,126,62]},{"a":24896,"t":"byte","b":[0,102,102,126,102,102,102,102]},{"a":24904,"t":"byte","b":[0,126,24,24,24,24,126,126]},{"a":24912,"t":"byte","b":[0,30,12,12,12,204,252,120]},{"a":24920,"t":"byte","b":[0,230,102,108,120,108,230,230]},{"a":24928,"t":"byte","b":[0,240,96,96,96,98,254,254]},{"a":24936,"t":"byte","b":[0,198,238,254,254,214,198,198]},{"a":24944,"t":"byte","b":[0,198,230,246,222,206,198,198]},{"a":24952,"t":"byte","b":[0,56,108,198,198,238,124,56]},{"a":24960,"t":"byte","b":[0,252,102,102,124,96,240,240]},{"a":24968,"t":"byte","b":[0,56,108,198,198,250,236,118]},{"a":24976,"t":"byte","b":[0,252,102,102,124,108,246,246]},{"a":24984,"t":"byte","b":[0,60,102,96,60,6,126,60]},{"a":24992,"t":"byte","b":[0,126,90,24,24,24,60,60]},{"a":25000,"t":"byte","b":[0,102,102,102,102,102,126,60]},{"a":25008,"t":"byte","b":[0,102,102,102,102,126,60,24]},{"a":25016,"t":"byte","b":[0,198,198,214,254,254,238,198]},{"a":25024,"t":"byte","b":[0,198,108,56,56,108,198,198]},{"a":25032,"t":"byte","b":[0,102,102,102,60,24,60,60]},{"a":25040,"t":"byte","b":[0,254,204,24,48,98,254,254]},{"a":25048,"t":"byte","b":[0,7,3,3,3,3,7,7]},{"a":25056,"t":"byte","b":[0,247,19,67,195,19,247,247]},{"a":25064,"t":"byte","b":[0,143,6,6,7,38,230,239]},{"a":25072,"t":"byte","b":[0,224,32,128,128,128,0,0]},{"a":25080,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25088,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25096,"t":"byte","b":[7,24,35,68,72,136,136,143]},{"a":25104,"t":"byte","b":[252,7,196,79,146,226,4,252]},{"a":25112,"t":"byte","b":[0,255,1,57,73,73,137,249]},{"a":25120,"t":"byte","b":[0,255,24,159,145,33,33,33]},{"a":25128,"t":"byte","b":[0,239,40,46,34,34,34,34]},{"a":25136,"t":"byte","b":[0,252,2,113,72,68,68,66]},{"a":25144,"t":"byte","b":[0,255,128,142,202,166,94,66]},{"a":25152,"t":"byte","b":[0,255,1,113,82,100,120,64]},{"a":25160,"t":"byte","b":[0,255,129,231,36,36,36,36]},{"a":25168,"t":"byte","b":[0,7,4,4,4,4,4,4]},{"a":25176,"t":"byte","b":[0,255,0,255,128,134,138,244]},{"a":25184,"t":"byte","b":[0,255,0,207,72,72,73,73]},{"a":25192,"t":"byte","b":[0,240,16,144,160,160,64,128]},{"a":25200,"t":"byte","b":[128,143,72,68,35,24,7,0]},{"a":25208,"t":"byte","b":[4,228,36,36,228,4,228,36]},{"a":25216,"t":"byte","b":[1,249,137,137,137,137,137,143]},{"a":25224,"t":"byte","b":[33,33,33,18,140,65,34,28]},{"a":25232,"t":"byte","b":[34,34,34,46,50,134,138,114]},{"a":25240,"t":"byte","b":[66,66,66,90,102,74,18,35]},{"a":25248,"t":"byte","b":[66,66,66,66,66,66,66,195]},{"a":25256,"t":"byte","b":[64,64,64,64,64,64,64,192]},{"a":25264,"t":"byte","b":[36,36,36,36,36,231,128,255]},{"a":25272,"t":"byte","b":[4,28,44,76,148,20,36,231]},{"a":25280,"t":"byte","b":[4,232,185,130,133,249,2,254]},{"a":25288,"t":"byte","b":[72,72,200,201,74,76,65,66]},{"a":25296,"t":"byte","b":[0,0,0,128,64,128,0,0]},{"a":25304,"t":"byte","b":[37,38,36,72,144,160,192,0]},{"a":25312,"t":"byte","b":[2,4,9,10,4,0,0,0]},{"a":25320,"t":"byte","b":[64,128,0,0,0,0,0,0]},{"a":25328,"t":"byte","b":[0,0,0,1,2,2,3,0]},{"a":25336,"t":"byte","b":[68,72,144,32,64,128,0,0]},{"a":25344,"t":"byte","b":[0,0,3,7,14,29,59,55]},{"a":25352,"t":"byte","b":[15,255,240,143,127,255,255,1]},{"a":25360,"t":"byte","b":[240,255,15,241,254,255,255,192]},{"a":25368,"t":"byte","b":[0,0,192,224,112,184,220,236]},{"a":25376,"t":"byte","b":[119,111,111,111,223,223,223,223]},{"a":25384,"t":"byte","b":[109,109,109,109,109,125,131,255]},{"a":25392,"t":"byte","b":[190,177,156,230,134,190,129,255]},{"a":25400,"t":"byte","b":[238,246,246,246,251,251,251,251]},{"a":25408,"t":"byte","b":[220,217,218,218,106,106,105,116]},{"a":25416,"t":"byte","b":[16,198,9,201,73,73,198,16]},{"a":25424,"t":"byte","b":[136,43,42,42,42,34,59,128]},{"a":25432,"t":"byte","b":[59,155,219,91,86,214,150,46]},{"a":25440,"t":"byte","b":[55,59,29,14,7,3,0,0]},{"a":25448,"t":"byte","b":[255,254,252,126,141,240,255,15]},{"a":25456,"t":"byte","b":[255,127,63,126,177,15,255,240]},{"a":25464,"t":"byte","b":[236,220,184,112,224,192,0,0]},{"a":25472,"t":"byte","b":[0,24,24,26,31,31,29,24]},{"a":25480,"t":"byte","b":[0,195,199,204,207,204,204,204]},{"a":25488,"t":"byte","b":[0,15,134,198,199,198,207,207]},{"a":25496,"t":"byte","b":[0,199,99,99,195,195,103,103]},{"a":25504,"t":"byte","b":[0,227,48,48,224,96,179,179]},{"a":25512,"t":"byte","b":[0,241,195,198,198,199,243,241]},{"a":25520,"t":"byte","b":[0,199,99,51,51,115,231,199]},{"a":25528,"t":"byte","b":[0,224,48,48,224,96,176,176]},{"a":25536,"t":"byte","b":[0,0,98,54,28,56,108,70]},{"a":25544,"t":"byte","b":[0,24,24,24,24,0,24,24]},{"a":25552,"t":"byte","b":[0,0,0,126,0,126,0,0]},{"a":25560,"t":"byte","b":[0,0,24,24,0,24,24,8]},{"a":25568,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25576,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25584,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25592,"t":"byte","b":[0,0,0,0,0,0,0,240]},{"a":25600,"l":"font_panel_hi","c":"The panel font's glyphs $80-$FF; maze_style takes its wall styles from here ($6408, $6468, $6508) and hidden_potion_place its potion pictures ($6580).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25608,"t":"byte","b":[255,254,254,255,254,254,254,255]},{"a":25616,"t":"byte","b":[255,186,238,171,238,186,238,171]},{"a":25624,"t":"byte","b":[255,187,239,168,239,187,239,168]},{"a":25632,"t":"byte","b":[254,254,254,255,254,254,254,255]},{"a":25640,"t":"byte","b":[238,187,239,168,239,187,239,168]},{"a":25648,"t":"byte","b":[238,254,254,255,254,254,254,255]},{"a":25656,"t":"byte","b":[239,187,239,168,239,187,239,168]},{"a":25664,"t":"byte","b":[239,186,238,171,238,186,238,171]},{"a":25672,"t":"byte","b":[254,186,238,171,238,186,238,171]},{"a":25680,"t":"byte","b":[254,255,243,252,243,207,51,252]},{"a":25688,"t":"byte","b":[238,207,51,252,51,207,51,252]},{"a":25696,"t":"byte","b":[239,207,51,252,51,207,51,252]},{"a":25704,"l":"style_block_b","c":"One of maze_style's 96-byte wall styles.","t":"byte","b":[63,195,206,206,206,3,254,254],"x":[36059]},{"a":25712,"t":"byte","b":[252,252,171,171,171,255,186,186]},{"a":25720,"t":"byte","b":[255,252,171,168,171,252,187,184]},{"a":25728,"t":"byte","b":[254,3,206,206,206,3,254,254]},{"a":25736,"t":"byte","b":[186,252,171,168,171,252,187,184]},{"a":25744,"t":"byte","b":[186,207,14,206,206,3,254,254]},{"a":25752,"t":"byte","b":[187,252,171,168,171,252,187,184]},{"a":25760,"t":"byte","b":[187,255,171,171,171,255,186,186]},{"a":25768,"t":"byte","b":[254,255,171,171,171,255,186,186]},{"a":25776,"t":"byte","b":[254,12,195,204,192,204,48,204]},{"a":25784,"t":"byte","b":[186,204,3,204,0,204,48,204]},{"a":25792,"t":"byte","b":[187,204,3,204,0,204,51,204]},{"a":25800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25808,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25816,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25824,"t":"byte","b":[6,12,24,48,24,12,6,0]},{"a":25832,"t":"byte","b":[0,0,126,0,0,126,0,0]},{"a":25840,"t":"byte","b":[96,48,24,12,24,48,96,0]},{"a":25848,"t":"byte","b":[0,60,102,12,24,0,24,0]},{"a":25856,"t":"byte","b":[0,60,102,110,110,96,62,0]},{"a":25864,"t":"byte","b":[255,254,254,254,254,254,254,254]},{"a":25872,"t":"byte","b":[255,170,170,170,170,170,170,170]},{"a":25880,"t":"byte","b":[255,168,171,168,171,168,171,168]},{"a":25888,"t":"byte","b":[254,254,254,254,254,254,254,254]},{"a":25896,"t":"byte","b":[170,168,171,168,171,168,171,168]},{"a":25904,"t":"byte","b":[170,254,254,254,254,254,254,254]},{"a":25912,"t":"byte","b":[171,168,171,168,171,168,171,168]},{"a":25920,"t":"byte","b":[171,170,170,170,170,170,170,170]},{"a":25928,"t":"byte","b":[254,170,170,170,170,170,170,170]},{"a":25936,"t":"byte","b":[254,252,243,252,243,204,51,204]},{"a":25944,"t":"byte","b":[170,204,51,204,51,204,51,204]},{"a":25952,"t":"byte","b":[171,204,51,204,51,204,51,204]},{"a":25960,"t":"byte","b":[85,86,87,87,95,119,127,127]},{"a":25968,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25976,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":25984,"l":"potion_pictures","c":"The six special potions' pictures, 16 bytes (two glyphs) each, for hidden_potion_place.","t":"byte","b":[223,212,219,219,219,219,116,95],"x":[41844]},{"a":25992,"t":"byte","b":[48,48,48,48,48,49,197,85]},{"a":26000,"t":"byte","b":[250,230,238,235,234,255,127,95]},{"a":26008,"t":"byte","b":[240,240,176,176,176,241,197,85]},{"a":26016,"t":"byte","b":[250,250,250,234,234,250,127,95]},{"a":26024,"t":"byte","b":[240,240,240,176,176,241,197,85]},{"a":26032,"t":"byte","b":[228,251,219,219,219,244,127,95]},{"a":26040,"t":"byte","b":[240,48,48,48,48,241,197,85]},{"a":26048,"t":"byte","b":[251,239,251,254,251,254,127,95]},{"a":26056,"t":"byte","b":[240,240,240,240,240,241,197,85]},{"a":26064,"t":"byte","b":[255,254,251,207,15,63,127,95]},{"a":26072,"t":"byte","b":[176,240,240,240,240,241,197,85]},{"a":26080,"t":"byte","b":[0,64,96,48,24,12,6,0]},{"a":26088,"t":"byte","b":[0,120,24,24,24,24,120,0]},{"a":26096,"t":"byte","b":[0,8,28,54,99,0,0,0]},{"a":26104,"t":"byte","b":[0,0,0,0,0,0,255,0]},{"a":26112,"t":"byte","b":[0,32,184,184,184,184,32,0]},{"a":26120,"t":"byte","b":[170,191,174,46,46,46,46,46]},{"a":26128,"t":"byte","b":[128,128,128,0,0,0,0,0]},{"a":26136,"t":"byte","b":[170,191,174,46,46,46,46,47]},{"a":26144,"t":"byte","b":[168,248,184,40,0,40,184,248]},{"a":26152,"t":"byte","b":[168,184,184,184,46,46,46,46]},{"a":26160,"t":"byte","b":[168,184,184,184,224,224,224,224]},{"a":26168,"t":"byte","b":[10,47,190,184,184,184,184,184]},{"a":26176,"t":"byte","b":[128,224,248,184,184,184,184,184]},{"a":26184,"t":"byte","b":[170,191,187,187,171,11,11,11]},{"a":26192,"t":"byte","b":[168,248,184,184,168,128,128,128]},{"a":26200,"t":"byte","b":[170,191,186,184,184,184,186,191]},{"a":26208,"t":"byte","b":[128,224,248,184,184,184,248,224]},{"a":26216,"t":"byte","b":[10,47,190,184,184,190,191,47]},{"a":26224,"t":"byte","b":[128,224,248,184,168,0,128,224]},{"a":26232,"t":"byte","b":[10,47,190,184,184,184,184,186]},{"a":26240,"t":"byte","b":[128,224,248,184,184,184,184,184]},{"a":26248,"t":"byte","b":[168,184,184,184,184,184,184,184]},{"a":26256,"t":"byte","b":[168,184,184,184,184,184,184,184]},{"a":26264,"t":"byte","b":[170,191,187,187,187,187,186,184]},{"a":26272,"t":"byte","b":[168,248,184,184,184,184,184,184]},{"a":26280,"t":"byte","b":[170,191,186,173,1,3,2,6]},{"a":26288,"t":"byte","b":[168,248,184,184,184,184,236,228]},{"a":26296,"t":"byte","b":[122,239,190,187,185,185,190,239]},{"a":26304,"t":"byte","b":[180,236,248,184,184,184,248,236]},{"a":26312,"t":"byte","b":[122,239,190,187,185,185,187,190]},{"a":26320,"t":"byte","b":[180,236,248,184,184,184,184,248]},{"a":26328,"t":"byte","b":[120,96,120,96,126,24,30,0]},{"a":26336,"t":"byte","b":[0,24,60,126,24,24,24,0]},{"a":26344,"t":"byte","b":[0,24,24,24,126,60,24,0]},{"a":26352,"t":"byte","b":[0,24,48,126,48,24,0,0]},{"a":26360,"t":"byte","b":[0,24,12,126,12,24,0,0]},{"a":26368,"t":"byte","b":[0,32,184,184,184,184,32,0]},{"a":26376,"t":"byte","b":[46,46,46,46,46,174,191,170]},{"a":26384,"t":"byte","b":[0,0,0,0,40,184,248,168]},{"a":26392,"t":"byte","b":[46,46,46,46,46,174,191,170]},{"a":26400,"t":"byte","b":[184,40,0,0,40,184,248,168]},{"a":26408,"t":"byte","b":[46,46,11,11,11,11,11,10]},{"a":26416,"t":"byte","b":[224,224,128,128,128,128,128,128]},{"a":26424,"t":"byte","b":[184,184,184,184,184,190,47,10]},{"a":26432,"t":"byte","b":[184,184,184,184,184,248,224,128]},{"a":26440,"t":"byte","b":[11,11,11,11,11,43,47,42]},{"a":26448,"t":"byte","b":[128,128,128,128,128,160,224,160]},{"a":26456,"t":"byte","b":[186,184,184,184,184,184,184,168]},{"a":26464,"t":"byte","b":[248,184,184,184,184,184,184,168]},{"a":26472,"t":"byte","b":[11,2,0,168,184,190,47,10]},{"a":26480,"t":"byte","b":[248,248,184,184,184,248,224,128]},{"a":26488,"t":"byte","b":[191,186,184,184,184,184,184,168]},{"a":26496,"t":"byte","b":[248,184,184,184,184,184,184,168]},{"a":26504,"t":"byte","b":[184,184,184,184,184,190,47,10]},{"a":26512,"t":"byte","b":[184,184,184,184,184,248,184,168]},{"a":26520,"t":"byte","b":[184,184,184,184,184,184,184,168]},{"a":26528,"t":"byte","b":[184,184,184,184,184,184,184,168]},{"a":26536,"t":"byte","b":[2,11,11,11,11,11,11,10]},{"a":26544,"t":"byte","b":[224,128,128,128,128,128,128,128]},{"a":26552,"t":"byte","b":[239,190,185,185,187,190,239,122]},{"a":26560,"t":"byte","b":[236,248,184,184,184,248,236,180]},{"a":26568,"t":"byte","b":[239,122,0,169,187,190,239,122]},{"a":26576,"t":"byte","b":[248,184,184,184,184,248,236,180]},{"a":26584,"t":"byte","b":[0,24,60,126,126,24,60,0]},{"a":26592,"t":"byte","b":[24,24,24,24,24,24,24,24]},{"a":26600,"t":"byte","b":[0,126,120,124,110,102,6,0]},{"a":26608,"t":"byte","b":[8,24,56,120,56,24,8,0]},{"a":26616,"t":"byte","b":[16,24,28,30,28,24,16,224]},{"a":26624,"l":"sprite_shapes","c":"Sprite shapes $A0-$BF (in video bank 1): $A0 the solid block the side masks use, $A1 a short bar, $A2-$AB the digits 0-9 (the level number and the treasure clock), $AC-$AF a lobbed rock rising, $B0-$B5 growing clouds, $B6-$B7 striped bars, $B8-$BF a fireball in eight directions.","t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26632,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26640,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26648,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26656,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26664,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26672,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26680,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26688,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26696,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":26704,"t":"byte","b":[255,255,255,255,255,0,0,0]},{"a":26712,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26720,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26728,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26744,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26752,"t":"byte","b":[15,240,0,58,172,0,235,235]},{"a":26760,"t":"byte","b":[0,236,59,0,236,59,0,236]},{"a":26768,"t":"byte","b":[59,0,236,59,0,236,59,0]},{"a":26776,"t":"byte","b":[236,59,0,236,59,0,236,59]},{"a":26784,"t":"byte","b":[0,236,59,0,236,59,0,235]},{"a":26792,"t":"byte","b":[235,0,58,172,0,15,240,0]},{"a":26800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26808,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":26816,"t":"byte","b":[3,192,0,14,192,0,58,192]},{"a":26824,"t":"byte","b":[0,58,192,0,62,192,0,14]},{"a":26832,"t":"byte","b":[192,0,14,192,0,14,192,0]},{"a":26840,"t":"byte","b":[14,192,0,14,192,0,14,192]},{"a":26848,"t":"byte","b":[0,14,192,0,14,192,0,62]},{"a":26856,"t":"byte","b":[240,0,58,176,0,63,240,0]},{"a":26864,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26872,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":26880,"t":"byte","b":[15,192,0,58,176,0,235,172]},{"a":26888,"t":"byte","b":[0,236,236,0,252,236,0,0]},{"a":26896,"t":"byte","b":[236,0,0,236,0,3,176,0]},{"a":26904,"t":"byte","b":[14,176,0,58,192,0,59,0]},{"a":26912,"t":"byte","b":[0,236,0,0,236,60,0,239]},{"a":26920,"t":"byte","b":[236,0,234,172,0,255,252,0]},{"a":26928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26936,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":26944,"t":"byte","b":[15,192,0,58,176,0,235,172]},{"a":26952,"t":"byte","b":[0,236,236,0,252,236,0,0]},{"a":26960,"t":"byte","b":[236,0,0,236,0,3,176,0]},{"a":26968,"t":"byte","b":[3,176,0,0,236,0,0,236]},{"a":26976,"t":"byte","b":[0,252,236,0,236,236,0,235]},{"a":26984,"t":"byte","b":[172,0,58,176,0,15,192,0]},{"a":26992,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27000,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27008,"t":"byte","b":[0,240,0,0,240,0,3,176]},{"a":27016,"t":"byte","b":[0,3,176,0,14,176,0,14]},{"a":27024,"t":"byte","b":[176,0,59,176,0,59,176,0]},{"a":27032,"t":"byte","b":[239,188,0,234,172,0,255,188]},{"a":27040,"t":"byte","b":[0,3,176,0,3,176,0,15]},{"a":27048,"t":"byte","b":[188,0,14,172,0,15,252,0]},{"a":27056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27064,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27072,"t":"byte","b":[255,252,0,234,172,0,239,236]},{"a":27080,"t":"byte","b":[0,236,60,0,236,0,0,236]},{"a":27088,"t":"byte","b":[0,0,239,192,0,234,176,0]},{"a":27096,"t":"byte","b":[239,172,0,240,236,0,0,236]},{"a":27104,"t":"byte","b":[0,252,236,0,236,236,0,235]},{"a":27112,"t":"byte","b":[172,0,58,176,0,15,192,0]},{"a":27120,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27128,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27136,"t":"byte","b":[15,192,0,58,176,0,235,172]},{"a":27144,"t":"byte","b":[0,236,236,0,236,252,0,236]},{"a":27152,"t":"byte","b":[0,0,239,192,0,234,176,0]},{"a":27160,"t":"byte","b":[239,172,0,236,236,0,236,236]},{"a":27168,"t":"byte","b":[0,236,236,0,236,236,0,235]},{"a":27176,"t":"byte","b":[172,0,58,176,0,15,192,0]},{"a":27184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27192,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27200,"t":"byte","b":[255,252,0,234,172,0,239,236]},{"a":27208,"t":"byte","b":[0,240,236,0,0,236,0,0]},{"a":27216,"t":"byte","b":[236,0,3,176,0,3,176,0]},{"a":27224,"t":"byte","b":[3,176,0,14,192,0,14,192]},{"a":27232,"t":"byte","b":[0,14,192,0,14,192,0,14]},{"a":27240,"t":"byte","b":[192,0,14,192,0,15,192,0]},{"a":27248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27256,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27264,"t":"byte","b":[15,192,0,58,176,0,235,172]},{"a":27272,"t":"byte","b":[0,236,236,0,236,236,0,236]},{"a":27280,"t":"byte","b":[236,0,235,172,0,58,176,0]},{"a":27288,"t":"byte","b":[58,176,0,235,172,0,236,236]},{"a":27296,"t":"byte","b":[0,236,236,0,236,236,0,235]},{"a":27304,"t":"byte","b":[172,0,58,176,0,15,192,0]},{"a":27312,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27320,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27328,"t":"byte","b":[15,192,0,58,176,0,235,172]},{"a":27336,"t":"byte","b":[0,236,236,0,236,236,0,236]},{"a":27344,"t":"byte","b":[236,0,236,236,0,235,236,0]},{"a":27352,"t":"byte","b":[58,172,0,15,236,0,0,236]},{"a":27360,"t":"byte","b":[0,252,236,0,236,236,0,235]},{"a":27368,"t":"byte","b":[172,0,58,176,0,15,192,0]},{"a":27376,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27384,"t":"byte","b":[0,0,0,0,0,0,0,132]},{"a":27392,"t":"byte","b":[17,0,0,33,0,0,40,0]},{"a":27400,"t":"byte","b":[0,190,0,0,40,0,0,72]},{"a":27408,"t":"byte","b":[0,0,72,0,0,4,0,0]},{"a":27416,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27424,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27432,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27440,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27448,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27456,"t":"byte","b":[0,0,0,32,0,0,180,0]},{"a":27464,"t":"byte","b":[0,164,0,0,164,0,0,152]},{"a":27472,"t":"byte","b":[0,0,32,0,0,0,0,0]},{"a":27480,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27488,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27504,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27512,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27520,"t":"byte","b":[0,0,0,36,0,0,182,0]},{"a":27528,"t":"byte","b":[0,230,0,0,166,0,0,150]},{"a":27536,"t":"byte","b":[0,0,24,0,0,0,0,0]},{"a":27544,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27552,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27568,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27576,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27584,"t":"byte","b":[40,0,0,170,0,0,230,0]},{"a":27592,"t":"byte","b":[0,230,0,0,166,0,0,166]},{"a":27600,"t":"byte","b":[0,0,150,0,0,40,0,0]},{"a":27608,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27632,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27640,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27648,"l":"sprite_shapes_2","c":"Shapes $B0-$BF: the clouds, the bars and (from $6E00) the fireball, which the start-up copied there from $7400.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27656,"t":"byte","b":[0,1,64,0,6,144,0,26]},{"a":27664,"t":"byte","b":[64,0,25,80,0,25,144,0]},{"a":27672,"t":"byte","b":[22,144,0,6,80,0,1,64]},{"a":27680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27704,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27712,"t":"byte","b":[0,0,0,0,0,0,5,0]},{"a":27720,"t":"byte","b":[0,26,64,0,22,144,0,42]},{"a":27728,"t":"byte","b":[80,0,41,84,0,41,164,0]},{"a":27736,"t":"byte","b":[22,164,0,6,148,0,10,84]},{"a":27744,"t":"byte","b":[0,6,64,0,1,64,0,0]},{"a":27752,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27760,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27768,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27776,"t":"byte","b":[0,0,0,5,80,0,26,144]},{"a":27784,"t":"byte","b":[0,26,144,0,86,80,0,106]},{"a":27792,"t":"byte","b":[84,0,105,148,0,105,100,0]},{"a":27800,"t":"byte","b":[101,164,0,22,164,0,2,84]},{"a":27808,"t":"byte","b":[0,6,64,0,10,64,0,5]},{"a":27816,"t":"byte","b":[64,0,0,0,0,0,0,0]},{"a":27824,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27832,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27840,"t":"byte","b":[5,64,0,26,148,0,26,148]},{"a":27848,"t":"byte","b":[0,90,84,0,86,80,0,165]},{"a":27856,"t":"byte","b":[84,0,169,148,0,169,148,0]},{"a":27864,"t":"byte","b":[166,100,0,149,164,0,86,164]},{"a":27872,"t":"byte","b":[0,41,164,0,26,148,0,5]},{"a":27880,"t":"byte","b":[144,0,1,80,0,0,0,0]},{"a":27888,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27896,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27904,"t":"byte","b":[6,80,0,26,164,0,90,164]},{"a":27912,"t":"byte","b":[0,150,149,0,166,85,0,165]},{"a":27920,"t":"byte","b":[101,0,169,165,0,165,148,0]},{"a":27928,"t":"byte","b":[165,101,0,149,105,0,85,169]},{"a":27936,"t":"byte","b":[0,105,169,0,41,165,0,41]},{"a":27944,"t":"byte","b":[149,0,25,84,0,5,64,0]},{"a":27952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27960,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":27968,"t":"byte","b":[6,144,0,26,164,0,90,164]},{"a":27976,"t":"byte","b":[0,150,149,0,166,89,0,149]},{"a":27984,"t":"byte","b":[105,0,154,101,0,153,84,0]},{"a":27992,"t":"byte","b":[166,89,0,150,105,0,86,105]},{"a":28000,"t":"byte","b":[0,101,105,0,105,169,0,41]},{"a":28008,"t":"byte","b":[165,0,41,148,0,21,64,0]},{"a":28016,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28024,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28032,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28040,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28048,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28056,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28064,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28072,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28080,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28088,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28096,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28104,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28112,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28120,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28128,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28136,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28144,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":28152,"t":"byte","b":[0,255,0,255,0,255,152,35]},{"a":28160,"l":"fireball_shapes","c":"The fireball's eight shapes ($B8-$BF), copied here from the font file at load (shapes_7400_to_6E00).","t":"byte","b":[125,0,0,175,0,0,106,0],"x":[40137]},{"a":28168,"t":"byte","b":[0,105,0,0,89,0,0,101]},{"a":28176,"t":"byte","b":[0,0,21,0,0,68,0,0]},{"a":28184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28192,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28200,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28216,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28224,"t":"byte","b":[30,0,0,107,0,0,90,0]},{"a":28232,"t":"byte","b":[0,37,0,0,85,0,0,84]},{"a":28240,"t":"byte","b":[0,0,20,0,0,80,0,0]},{"a":28248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28264,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28272,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28280,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28288,"t":"byte","b":[0,0,0,85,0,0,91,0]},{"a":28296,"t":"byte","b":[0,171,0,0,90,0,0,85]},{"a":28304,"t":"byte","b":[0,0,21,0,0,0,0,0]},{"a":28312,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28320,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28328,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28336,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28344,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28352,"t":"byte","b":[84,0,0,84,0,0,84,0]},{"a":28360,"t":"byte","b":[0,101,0,0,89,0,0,106]},{"a":28368,"t":"byte","b":[0,0,111,0,0,29,0,0]},{"a":28376,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28384,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28392,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28400,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28408,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28416,"l":"fireball_shapes_2","c":"The last four fireball shapes.","t":"byte","b":[20,0,0,20,0,0,85,0],"x":[40143]},{"a":28424,"t":"byte","b":[0,101,0,0,89,0,0,105]},{"a":28432,"t":"byte","b":[0,0,109,0,0,116,0,0]},{"a":28440,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28448,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28456,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28464,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28472,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28480,"t":"byte","b":[5,0,0,21,0,0,21,0]},{"a":28488,"t":"byte","b":[0,89,0,0,100,0,0,165]},{"a":28496,"t":"byte","b":[0,0,229,0,0,116,0,0]},{"a":28504,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28512,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28528,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28536,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28544,"t":"byte","b":[0,0,0,101,0,0,185,0]},{"a":28552,"t":"byte","b":[0,233,0,0,229,0,0,89]},{"a":28560,"t":"byte","b":[0,0,21,0,0,1,0,0]},{"a":28568,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28576,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28584,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28592,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28600,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28608,"t":"byte","b":[116,0,0,228,0,0,164,0]},{"a":28616,"t":"byte","b":[0,101,0,0,89,0,0,85]},{"a":28624,"t":"byte","b":[0,0,21,0,0,5,0,0]},{"a":28632,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28640,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28648,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28656,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28664,"t":"byte","b":[0,0,0,0,0,0,0,135]},{"a":28672,"l":"player1_shapes","c":"Player one's hero's sprite shapes $C0-$DF, copied from PLYRS.SPR at load (hero_copy_chars): $C0-$D7 walking, eight facings in three frames (anim_frames 0, 8, 16), and $D8-$DF the hero's shot in eight directions (put back from $1800 at each level start).","t":"byte","b":[2,0,0,10,140,0,10,140]},{"a":28680,"t":"byte","b":[0,10,140,0,26,156,0,22]},{"a":28688,"t":"byte","b":[92,0,21,80,0,37,96,0]},{"a":28696,"t":"byte","b":[6,64,0,10,128,0,10,128]},{"a":28704,"l":"player1_shapes_2","c":"The hero's shapes from $C0 + 32 bytes on: the rest of the first walking frames.","t":"byte","b":[0,8,128,0,4,64,0,8]},{"a":28712,"t":"byte","b":[128,0,0,0,0,0,0,0]},{"a":28720,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28728,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28736,"t":"byte","b":[2,128,0,10,128,0,10,176]},{"a":28744,"t":"byte","b":[0,10,240,0,11,176,0,27]},{"a":28752,"t":"byte","b":[176,0,23,80,0,22,112,0]},{"a":28760,"t":"byte","b":[42,112,0,10,64,0,10,128]},{"a":28768,"t":"byte","b":[0,6,128,0,4,64,0,0]},{"a":28776,"t":"byte","b":[80,0,0,64,0,0,0,0]},{"a":28784,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28792,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28800,"t":"byte","b":[10,0,0,42,0,0,43,0]},{"a":28808,"t":"byte","b":[0,239,0,0,255,0,0,255]},{"a":28816,"t":"byte","b":[0,0,230,128,0,22,64,0]},{"a":28824,"t":"byte","b":[29,64,0,25,128,0,27,0]},{"a":28832,"t":"byte","b":[0,6,0,0,5,0,0,4]},{"a":28840,"t":"byte","b":[0,0,5,0,0,0,0,0]},{"a":28848,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28856,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28864,"t":"byte","b":[10,0,0,42,0,0,45,0]},{"a":28872,"t":"byte","b":[0,253,0,0,253,0,0,254]},{"a":28880,"t":"byte","b":[128,0,25,64,0,26,64,0]},{"a":28888,"t":"byte","b":[53,64,0,21,128,0,30,0]},{"a":28896,"t":"byte","b":[0,41,0,0,25,128,0,26]},{"a":28904,"t":"byte","b":[64,0,4,0,0,0,0,0]},{"a":28912,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28928,"t":"byte","b":[2,0,0,58,128,0,53,64]},{"a":28936,"t":"byte","b":[0,53,64,0,57,128,0,54]},{"a":28944,"t":"byte","b":[96,0,21,80,0,25,80,0]},{"a":28952,"t":"byte","b":[58,96,0,21,96,0,21,96]},{"a":28960,"t":"byte","b":[0,58,128,0,8,128,0,4]},{"a":28968,"t":"byte","b":[64,0,0,64,0,0,0,0]},{"a":28976,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28984,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":28992,"t":"byte","b":[50,128,0,62,160,0,61,96]},{"a":29000,"t":"byte","b":[0,61,96,0,13,160,0,6]},{"a":29008,"t":"byte","b":[88,0,5,88,0,13,152,0]},{"a":29016,"t":"byte","b":[5,88,0,5,88,0,1,160]},{"a":29024,"t":"byte","b":[0,1,16,0,1,16,0,6]},{"a":29032,"t":"byte","b":[16,0,0,96,0,0,0,0]},{"a":29040,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29048,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29056,"t":"byte","b":[48,160,0,63,168,0,63,104]},{"a":29064,"t":"byte","b":[0,60,104,0,4,168,0,6]},{"a":29072,"t":"byte","b":[84,0,14,84,0,12,148,0]},{"a":29080,"t":"byte","b":[5,88,0,5,80,0,0,160]},{"a":29088,"t":"byte","b":[0,0,144,0,0,144,0,0]},{"a":29096,"t":"byte","b":[144,0,0,80,0,0,0,0]},{"a":29104,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29112,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29120,"t":"byte","b":[2,128,0,14,160,0,14,160]},{"a":29128,"t":"byte","b":[0,14,160,0,2,160,0,13]},{"a":29136,"t":"byte","b":[96,0,14,80,0,21,80,0]},{"a":29144,"t":"byte","b":[21,96,0,2,160,0,1,160]},{"a":29152,"t":"byte","b":[0,1,32,0,1,32,0,5]},{"a":29160,"t":"byte","b":[0,0,1,0,0,0,0,0]},{"a":29168,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29176,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29184,"t":"byte","b":[2,0,0,10,128,0,10,140]},{"a":29192,"t":"byte","b":[0,10,140,0,26,156,0,22]},{"a":29200,"t":"byte","b":[92,0,37,92,0,5,80,0]},{"a":29208,"t":"byte","b":[6,96,0,10,128,0,10,128]},{"a":29216,"t":"byte","b":[0,8,128,0,4,128,0,4]},{"a":29224,"t":"byte","b":[0,0,8,0,0,0,0,0]},{"a":29232,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29248,"t":"byte","b":[2,128,0,10,128,0,10,192]},{"a":29256,"t":"byte","b":[0,10,240,0,10,176,0,27]},{"a":29264,"t":"byte","b":[128,0,23,64,0,39,80,0]},{"a":29272,"t":"byte","b":[10,112,0,10,96,0,10,160]},{"a":29280,"t":"byte","b":[0,22,144,0,24,24,0,4]},{"a":29288,"t":"byte","b":[16,0,0,0,0,0,0,0]},{"a":29296,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29304,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29312,"t":"byte","b":[10,0,0,42,0,0,58,192]},{"a":29320,"t":"byte","b":[0,63,192,0,63,192,0,58]},{"a":29328,"t":"byte","b":[192,0,38,128,0,38,64,0]},{"a":29336,"t":"byte","b":[29,64,0,21,128,0,22,0]},{"a":29344,"t":"byte","b":[0,41,0,0,25,0,0,1]},{"a":29352,"t":"byte","b":[0,0,1,64,0,0,0,0]},{"a":29360,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29368,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29376,"t":"byte","b":[10,0,0,42,0,0,229,0]},{"a":29384,"t":"byte","b":[0,253,0,0,253,0,0,254]},{"a":29392,"t":"byte","b":[0,0,29,128,0,26,64,0]},{"a":29400,"t":"byte","b":[149,64,0,85,128,0,106,0]},{"a":29408,"t":"byte","b":[0,38,0,0,38,0,0,38]},{"a":29416,"t":"byte","b":[0,0,6,0,0,1,0,0]},{"a":29424,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29432,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29440,"t":"byte","b":[50,0,0,58,128,0,53,64]},{"a":29448,"t":"byte","b":[0,53,64,0,57,128,0,22]},{"a":29456,"t":"byte","b":[96,0,21,80,0,58,80,0]},{"a":29464,"t":"byte","b":[21,80,0,25,96,0,58,160]},{"a":29472,"t":"byte","b":[0,10,128,0,8,128,0,4]},{"a":29480,"t":"byte","b":[0,0,4,0,0,4,0,0]},{"a":29488,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29504,"t":"byte","b":[14,128,0,14,160,0,13,96]},{"a":29512,"t":"byte","b":[0,13,96,0,13,160,0,6]},{"a":29520,"t":"byte","b":[88,0,5,152,0,57,88,0]},{"a":29528,"t":"byte","b":[21,96,0,25,160,0,10,160]},{"a":29536,"t":"byte","b":[0,9,40,0,6,4,0,4]},{"a":29544,"t":"byte","b":[4,0,0,0,0,0,0,0]},{"a":29552,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29568,"t":"byte","b":[12,160,0,15,168,0,15,104]},{"a":29576,"t":"byte","b":[0,15,104,0,5,168,0,6]},{"a":29584,"t":"byte","b":[84,0,14,84,0,56,148,0]},{"a":29592,"t":"byte","b":[21,88,0,25,104,0,0,168]},{"a":29600,"t":"byte","b":[0,0,152,0,1,132,0,0]},{"a":29608,"t":"byte","b":[4,0,0,24,0,0,0,0]},{"a":29616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29632,"t":"byte","b":[2,128,0,2,160,0,14,160]},{"a":29640,"t":"byte","b":[0,14,160,0,10,160,0,45]},{"a":29648,"t":"byte","b":[96,0,89,80,0,101,80,0]},{"a":29656,"t":"byte","b":[5,96,0,2,160,0,1,128]},{"a":29664,"t":"byte","b":[0,1,64,0,2,64,0,0]},{"a":29672,"t":"byte","b":[64,0,1,128,0,0,0,0]},{"a":29680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29696,"l":"player1_frames_3","c":"Shapes $D0-$D7, the hero's third walking frame.","t":"byte","b":[2,12,0,10,140,0,10,140],"x":[40134]},{"a":29704,"t":"byte","b":[0,10,172,0,26,156,0,22]},{"a":29712,"t":"byte","b":[80,0,21,96,0,21,64,0]},{"a":29720,"t":"byte","b":[38,64,0,10,128,0,10,128]},{"a":29728,"t":"byte","b":[0,8,128,0,8,64,0,0]},{"a":29736,"t":"byte","b":[64,0,0,128,0,0,0,0]},{"a":29744,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29752,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29760,"t":"byte","b":[2,128,0,10,128,0,10,160]},{"a":29768,"t":"byte","b":[0,10,252,0,10,236,0,26]},{"a":29776,"t":"byte","b":[236,0,21,80,0,22,112,0]},{"a":29784,"t":"byte","b":[26,96,0,42,128,0,10,64]},{"a":29792,"t":"byte","b":[0,2,96,0,1,64,0,1]},{"a":29800,"t":"byte","b":[128,0,1,64,0,0,0,0]},{"a":29808,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29816,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29824,"t":"byte","b":[10,0,0,42,0,0,46,0]},{"a":29832,"t":"byte","b":[0,47,0,0,63,0,0,254]},{"a":29840,"t":"byte","b":[0,0,246,128,0,246,64,0]},{"a":29848,"t":"byte","b":[57,64,0,25,128,0,27,0]},{"a":29856,"t":"byte","b":[0,38,0,0,26,64,0,24]},{"a":29864,"t":"byte","b":[0,0,4,0,0,0,0,0]},{"a":29872,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29880,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29888,"t":"byte","b":[10,0,0,42,0,0,61,0]},{"a":29896,"t":"byte","b":[0,61,0,0,253,128,0,250]},{"a":29904,"t":"byte","b":[64,0,249,64,0,25,64,0]},{"a":29912,"t":"byte","b":[22,64,0,37,128,0,25,128]},{"a":29920,"t":"byte","b":[0,98,128,0,96,64,0,16]},{"a":29928,"t":"byte","b":[80,0,0,64,0,0,0,0]},{"a":29936,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29944,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":29952,"l":"player1_frames_3b","c":"Shapes $D4-$D7.","t":"byte","b":[2,0,0,10,128,0,53,64],"x":[40140]},{"a":29960,"t":"byte","b":[0,53,64,0,57,128,0,54]},{"a":29968,"t":"byte","b":[96,0,53,80,0,25,80,0]},{"a":29976,"t":"byte","b":[26,96,0,57,96,0,21,96]},{"a":29984,"t":"byte","b":[0,25,128,0,8,128,0,0]},{"a":29992,"t":"byte","b":[64,0,0,64,0,0,64,0]},{"a":30000,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30008,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30016,"t":"byte","b":[2,128,0,50,160,0,61,96]},{"a":30024,"t":"byte","b":[0,61,96,0,61,160,0,14]},{"a":30032,"t":"byte","b":[88,0,5,84,0,5,100,0]},{"a":30040,"t":"byte","b":[13,148,0,5,88,0,6,96]},{"a":30048,"t":"byte","b":[0,0,160,0,0,104,0,0]},{"a":30056,"t":"byte","b":[64,0,0,64,0,1,128,0]},{"a":30064,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30072,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30080,"t":"byte","b":[192,160,0,255,168,0,255,104]},{"a":30088,"t":"byte","b":[0,63,104,0,4,168,0,6]},{"a":30096,"t":"byte","b":[84,0,14,84,0,11,148,0]},{"a":30104,"t":"byte","b":[1,84,0,1,148,0,0,168]},{"a":30112,"t":"byte","b":[0,0,104,0,0,68,0,0]},{"a":30120,"t":"byte","b":[64,0,1,64,0,0,0,0]},{"a":30128,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30136,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30144,"t":"byte","b":[2,128,0,62,160,0,62,160]},{"a":30152,"t":"byte","b":[0,62,160,0,10,160,0,13]},{"a":30160,"t":"byte","b":[96,0,14,80,0,5,80,0]},{"a":30168,"t":"byte","b":[6,80,0,2,160,0,1,160]},{"a":30176,"t":"byte","b":[0,5,36,0,4,8,0,20]},{"a":30184,"t":"byte","b":[0,0,4,0,0,0,0,0]},{"a":30192,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30200,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30208,"l":"player1_shots","c":"Shapes $D8-$DF: player one's hero's shot in eight directions, put here from $1800 at each level start (shapes_from_1800); the end of exit_spin shows them as the player shrinking into the exit.","t":"byte","b":[215,0,0,235,0,0,235,0],"x":[40074,40107]},{"a":30216,"t":"byte","b":[0,215,0,0,20,0,0,20]},{"a":30224,"t":"byte","b":[0,0,20,0,0,20,0,0]},{"a":30232,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30264,"t":"byte","b":[0,0,0,0,0,0,0,138]},{"a":30272,"t":"byte","b":[12,0,0,56,0,0,57,0]},{"a":30280,"t":"byte","b":[0,42,0,0,27,0,0,27]},{"a":30288,"t":"byte","b":[0,0,92,0,0,64,0,0]},{"a":30296,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30304,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30312,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30320,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30328,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30336,"t":"byte","b":[15,0,0,10,0,0,10,0]},{"a":30344,"t":"byte","b":[0,89,0,0,86,0,0,10]},{"a":30352,"t":"byte","b":[0,0,10,0,0,15,0,0]},{"a":30360,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30368,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30376,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30384,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30392,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30400,"t":"byte","b":[64,0,0,64,0,0,19,0]},{"a":30408,"t":"byte","b":[0,23,0,0,6,0,0,234]},{"a":30416,"t":"byte","b":[0,0,233,0,0,48,0,0]},{"a":30424,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30432,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30440,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30448,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30456,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30464,"l":"player1_shots_2","c":"The last four of player one's shot shapes.","t":"byte","b":[20,0,0,20,0,0,20,0],"x":[40080,40113]},{"a":30472,"t":"byte","b":[0,20,0,0,215,0,0,235]},{"a":30480,"t":"byte","b":[0,0,235,0,0,215,0,0]},{"a":30488,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30504,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30512,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30520,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30528,"t":"byte","b":[1,0,0,1,0,0,196,0]},{"a":30536,"t":"byte","b":[0,228,0,0,160,0,0,171]},{"a":30544,"t":"byte","b":[0,0,107,0,0,12,0,0]},{"a":30552,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30568,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30576,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30584,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30592,"t":"byte","b":[240,0,0,160,0,0,160,0]},{"a":30600,"t":"byte","b":[0,85,0,0,85,0,0,160]},{"a":30608,"t":"byte","b":[0,0,160,0,0,240,0,0]},{"a":30616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30632,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30640,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30648,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30656,"t":"byte","b":[48,0,0,44,0,0,108,0]},{"a":30664,"t":"byte","b":[0,104,0,0,228,0,0,228]},{"a":30672,"t":"byte","b":[0,0,53,0,0,1,0,0]},{"a":30680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30704,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30712,"t":"byte","b":[0,0,0,0,0,0,0,130]},{"a":30720,"l":"player2_sprites","c":"Player two's hero's sprite shapes $E0-$FF, laid out like player one's: $E0-$F7 walking, $F8-$FF the shot.","t":"byte","b":[8,0,0,11,72,0,47,204]},{"a":30728,"t":"byte","b":[0,47,200,0,175,200,0,159]},{"a":30736,"t":"byte","b":[200,0,23,88,0,23,84,0]},{"a":30744,"t":"byte","b":[10,148,0,10,144,0,6,128]},{"a":30752,"t":"byte","b":[0,4,64,0,12,192,0,4]},{"a":30760,"t":"byte","b":[64,0,0,0,0,0,0,0]},{"a":30768,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30776,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30784,"t":"byte","b":[0,0,0,3,192,0,15,192]},{"a":30792,"t":"byte","b":[0,15,224,0,15,224,0,15]},{"a":30800,"t":"byte","b":[200,0,13,104,0,5,160,0]},{"a":30808,"t":"byte","b":[5,128,0,9,128,0,6,128]},{"a":30816,"t":"byte","b":[0,4,64,0,4,192,0,0]},{"a":30824,"t":"byte","b":[80,0,0,192,0,0,0,0]},{"a":30832,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30840,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30848,"t":"byte","b":[0,0,0,3,192,0,15,224]},{"a":30856,"t":"byte","b":[0,15,96,0,15,96,0,15]},{"a":30864,"t":"byte","b":[96,0,5,160,0,6,160,0]},{"a":30872,"t":"byte","b":[6,128,0,5,168,0,10,0]},{"a":30880,"t":"byte","b":[0,5,0,0,7,0,0,1]},{"a":30888,"t":"byte","b":[0,0,3,192,0,0,0,0]},{"a":30896,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30904,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30912,"t":"byte","b":[0,0,0,7,64,0,15,192]},{"a":30920,"t":"byte","b":[0,13,64,0,13,64,0,13]},{"a":30928,"t":"byte","b":[72,0,22,152,0,26,168,0]},{"a":30936,"t":"byte","b":[26,160,0,26,160,0,10,64]},{"a":30944,"t":"byte","b":[0,6,128,0,12,160,0,4]},{"a":30952,"t":"byte","b":[96,0,15,0,0,0,0,0]},{"a":30960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30968,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":30976,"t":"byte","b":[0,0,0,7,64,0,15,192]},{"a":30984,"t":"byte","b":[0,13,192,0,85,64,0,69]},{"a":30992,"t":"byte","b":[80,0,73,144,0,74,144,0]},{"a":31000,"t":"byte","b":[138,144,0,138,144,0,138,168]},{"a":31008,"t":"byte","b":[0,134,160,0,132,64,0,140]},{"a":31016,"t":"byte","b":[192,0,128,0,0,0,0,0]},{"a":31024,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31032,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31040,"t":"byte","b":[0,0,0,15,192,0,15,192]},{"a":31048,"t":"byte","b":[0,5,192,0,5,192,0,5]},{"a":31056,"t":"byte","b":[192,0,2,128,0,5,64,0]},{"a":31064,"t":"byte","b":[10,64,0,10,128,0,42,128]},{"a":31072,"t":"byte","b":[0,42,128,0,2,128,0,4]},{"a":31080,"t":"byte","b":[64,0,3,0,0,0,0,0]},{"a":31088,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31096,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31104,"t":"byte","b":[0,0,0,15,0,0,15,192]},{"a":31112,"t":"byte","b":[0,7,192,0,7,192,0,7]},{"a":31120,"t":"byte","b":[192,0,2,208,0,41,208,0]},{"a":31128,"t":"byte","b":[41,144,0,9,128,0,10,128]},{"a":31136,"t":"byte","b":[0,10,64,0,11,64,0,1]},{"a":31144,"t":"byte","b":[0,0,15,0,0,0,0,0]},{"a":31152,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31160,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31168,"t":"byte","b":[0,0,0,15,0,0,47,192]},{"a":31176,"t":"byte","b":[0,47,192,0,47,192,0,47]},{"a":31184,"t":"byte","b":[192,0,53,208,0,37,208,0]},{"a":31192,"t":"byte","b":[38,128,0,38,128,0,42,128]},{"a":31200,"t":"byte","b":[0,44,64,0,4,192,0,12]},{"a":31208,"t":"byte","b":[64,0,0,0,0,0,0,0]},{"a":31216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31224,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31232,"t":"byte","b":[10,0,0,43,64,0,175,204]},{"a":31240,"t":"byte","b":[0,175,200,0,31,200,0,31]},{"a":31248,"t":"byte","b":[200,0,13,88,0,13,88,0]},{"a":31256,"t":"byte","b":[10,148,0,10,148,0,6,144]},{"a":31264,"t":"byte","b":[0,4,64,0,4,0,0,12]},{"a":31272,"t":"byte","b":[0,0,4,0,0,12,0,0]},{"a":31280,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31288,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31296,"t":"byte","b":[0,0,0,3,64,0,15,192]},{"a":31304,"t":"byte","b":[0,15,224,0,15,224,0,15]},{"a":31312,"t":"byte","b":[224,0,13,96,0,5,160,0]},{"a":31320,"t":"byte","b":[6,128,0,6,128,0,6,160]},{"a":31328,"t":"byte","b":[0,20,80,0,52,48,0,12]},{"a":31336,"t":"byte","b":[28,0,0,48,0,0,0,0]},{"a":31344,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31352,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31360,"t":"byte","b":[0,0,0,3,224,0,15,224]},{"a":31368,"t":"byte","b":[0,15,96,0,15,96,0,15]},{"a":31376,"t":"byte","b":[96,0,5,160,0,22,128,0]},{"a":31384,"t":"byte","b":[22,128,0,6,160,0,2,128]},{"a":31392,"t":"byte","b":[0,52,64,0,12,192,0,0]},{"a":31400,"t":"byte","b":[112,0,0,208,0,0,0,0]},{"a":31408,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31416,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31424,"t":"byte","b":[0,0,0,7,64,0,15,192]},{"a":31432,"t":"byte","b":[0,13,64,0,13,64,0,13]},{"a":31440,"t":"byte","b":[64,0,22,152,0,90,168,0]},{"a":31448,"t":"byte","b":[106,160,0,106,160,0,10,64]},{"a":31456,"t":"byte","b":[0,6,128,0,7,128,0,1]},{"a":31464,"t":"byte","b":[0,0,3,192,0,0,0,0]},{"a":31472,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31480,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31488,"t":"byte","b":[0,0,0,7,64,0,15,192]},{"a":31496,"t":"byte","b":[0,93,192,0,85,64,0,69]},{"a":31504,"t":"byte","b":[64,0,73,144,0,138,144,0]},{"a":31512,"t":"byte","b":[138,144,0,138,144,0,138,144]},{"a":31520,"t":"byte","b":[0,138,168,0,134,160,0,140]},{"a":31528,"t":"byte","b":[0,0,4,0,0,12,0,0]},{"a":31536,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31544,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31552,"t":"byte","b":[0,0,0,15,192,0,15,192]},{"a":31560,"t":"byte","b":[0,5,192,0,5,192,0,5]},{"a":31568,"t":"byte","b":[192,0,2,128,0,5,64,0]},{"a":31576,"t":"byte","b":[10,64,0,42,128,0,42,128]},{"a":31584,"t":"byte","b":[0,42,128,0,10,128,0,4]},{"a":31592,"t":"byte","b":[64,0,48,0,0,0,0,0]},{"a":31600,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31608,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31616,"t":"byte","b":[0,0,0,15,0,0,15,192]},{"a":31624,"t":"byte","b":[0,7,192,0,7,192,0,7]},{"a":31632,"t":"byte","b":[192,0,10,208,0,9,212,0]},{"a":31640,"t":"byte","b":[9,144,0,9,128,0,10,128]},{"a":31648,"t":"byte","b":[0,10,64,0,61,192,0,0]},{"a":31656,"t":"byte","b":[112,0,0,192,0,0,0,0]},{"a":31664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31680,"t":"byte","b":[0,0,0,15,0,0,15,192]},{"a":31688,"t":"byte","b":[0,47,192,0,47,192,0,63]},{"a":31696,"t":"byte","b":[192,0,37,208,0,37,208,0]},{"a":31704,"t":"byte","b":[38,144,0,42,128,0,42,0]},{"a":31712,"t":"byte","b":[0,5,0,0,3,0,0,13]},{"a":31720,"t":"byte","b":[0,0,3,0,0,0,0,0]},{"a":31728,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31744,"l":"player2_shapes_2","c":"Shapes $F0-$F7: player two's third walking frame.","t":"byte","b":[0,8,0,11,72,0,47,204]},{"a":31752,"t":"byte","b":[0,47,200,0,47,200,0,175]},{"a":31760,"t":"byte","b":[200,0,149,212,0,149,212,0]},{"a":31768,"t":"byte","b":[22,144,0,26,128,0,6,128]},{"a":31776,"t":"byte","b":[0,4,64,0,0,64,0,0]},{"a":31784,"t":"byte","b":[192,0,0,64,0,0,192,0]},{"a":31792,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31808,"t":"byte","b":[0,0,0,3,192,0,15,192]},{"a":31816,"t":"byte","b":[0,15,192,0,15,226,0,15]},{"a":31824,"t":"byte","b":[202,0,13,104,0,5,96,0]},{"a":31832,"t":"byte","b":[5,80,0,9,64,0,2,128]},{"a":31840,"t":"byte","b":[0,1,144,0,1,64,0,3]},{"a":31848,"t":"byte","b":[0,0,1,64,0,3,0,0]},{"a":31856,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31864,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31872,"t":"byte","b":[0,0,0,3,192,0,15,192]},{"a":31880,"t":"byte","b":[0,15,96,0,15,96,0,15]},{"a":31888,"t":"byte","b":[96,0,5,160,0,9,160,0]},{"a":31896,"t":"byte","b":[9,160,0,9,170,0,6,64]},{"a":31904,"t":"byte","b":[0,5,64,0,12,208,0,12]},{"a":31912,"t":"byte","b":[0,0,3,0,0,0,0,0]},{"a":31920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31936,"t":"byte","b":[0,0,0,7,64,0,15,192]},{"a":31944,"t":"byte","b":[0,13,64,0,13,72,0,13]},{"a":31952,"t":"byte","b":[72,0,6,152,0,22,168,0]},{"a":31960,"t":"byte","b":[26,160,0,22,160,0,6,128]},{"a":31968,"t":"byte","b":[0,6,128,0,52,160,0,16]},{"a":31976,"t":"byte","b":[104,0,12,8,0,0,0,0]},{"a":31984,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":31992,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32000,"t":"byte","b":[0,0,0,7,64,0,15,192]},{"a":32008,"t":"byte","b":[0,13,192,0,21,64,0,85]},{"a":32016,"t":"byte","b":[80,0,73,144,0,74,144,0]},{"a":32024,"t":"byte","b":[74,144,0,138,168,0,134,160]},{"a":32032,"t":"byte","b":[0,128,64,0,128,64,0,128]},{"a":32040,"t":"byte","b":[192,0,128,64,0,128,192,0]},{"a":32048,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32064,"t":"byte","b":[0,0,0,15,192,0,15,192]},{"a":32072,"t":"byte","b":[0,5,192,0,5,192,0,5]},{"a":32080,"t":"byte","b":[192,0,2,128,0,5,64,0]},{"a":32088,"t":"byte","b":[10,160,0,10,160,0,42,160]},{"a":32096,"t":"byte","b":[0,162,160,0,130,144,0,1]},{"a":32104,"t":"byte","b":[0,0,3,0,0,12,0,0]},{"a":32112,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32120,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32128,"t":"byte","b":[0,0,0,15,0,0,15,192]},{"a":32136,"t":"byte","b":[0,7,192,0,7,192,0,7]},{"a":32144,"t":"byte","b":[208,0,2,208,0,233,208,0]},{"a":32152,"t":"byte","b":[169,144,0,9,128,0,10,128]},{"a":32160,"t":"byte","b":[0,10,16,0,9,208,0,56]},{"a":32168,"t":"byte","b":[0,0,12,0,0,0,0,0]},{"a":32176,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32192,"t":"byte","b":[0,0,0,143,0,0,175,192]},{"a":32200,"t":"byte","b":[0,47,192,0,15,192,0,47]},{"a":32208,"t":"byte","b":[192,0,37,208,0,53,192,0]},{"a":32216,"t":"byte","b":[38,128,0,38,128,0,38,128]},{"a":32224,"t":"byte","b":[0,44,192,0,32,80,0,0]},{"a":32232,"t":"byte","b":[112,0,0,0,0,0,0,0]},{"a":32240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32256,"l":"player2_shots","c":"Shapes $F8-$FF: player two's shot in eight directions.","t":"byte","b":[48,0,0,48,0,0,48,0],"x":[40086,40119]},{"a":32264,"t":"byte","b":[0,48,0,0,48,0,0,168]},{"a":32272,"t":"byte","b":[0,0,16,0,0,32,0,0]},{"a":32280,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32288,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32296,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32304,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32312,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32320,"t":"byte","b":[3,0,0,3,0,0,12,0]},{"a":32328,"t":"byte","b":[0,140,0,0,160,0,0,104]},{"a":32336,"t":"byte","b":[0,0,152,0,0,128,0,0]},{"a":32344,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32352,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32360,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32368,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32376,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32384,"t":"byte","b":[0,0,0,0,0,0,32,0]},{"a":32392,"t":"byte","b":[0,175,0,0,111,0,0,32]},{"a":32400,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32408,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32416,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32424,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32432,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32440,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32448,"t":"byte","b":[128,0,0,152,0,0,104,0]},{"a":32456,"t":"byte","b":[0,160,0,0,140,0,0,12]},{"a":32464,"t":"byte","b":[0,0,3,0,0,3,0,0]},{"a":32472,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32480,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32488,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32504,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32512,"l":"player2_shots_2","c":"The last four of player two's shot shapes.","t":"byte","b":[32,0,0,16,0,0,168,0],"x":[40092,40125]},{"a":32520,"t":"byte","b":[0,48,0,0,48,0,0,48]},{"a":32528,"t":"byte","b":[0,0,48,0,0,48,0,0]},{"a":32536,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32544,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32552,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32568,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32576,"t":"byte","b":[2,0,0,38,0,0,41,0]},{"a":32584,"t":"byte","b":[0,10,0,0,50,0,0,48]},{"a":32592,"t":"byte","b":[0,0,192,0,0,192,0,0]},{"a":32600,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32608,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32616,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32632,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32640,"t":"byte","b":[0,0,0,0,0,0,8,0]},{"a":32648,"t":"byte","b":[0,250,0,0,249,0,0,8]},{"a":32656,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32696,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32704,"t":"byte","b":[192,0,0,192,0,0,48,0]},{"a":32712,"t":"byte","b":[0,50,0,0,10,0,0,41]},{"a":32720,"t":"byte","b":[0,0,38,0,0,2,0,0]},{"a":32728,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32744,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32752,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32760,"t":"byte","b":[0,0,0,0,0,0,0,142]},{"a":32768,"l":"game_entry","c":"The game's entry, where the selection program's JMP $8000 lands: a jump over thirteen zero bytes to the start-up at $8013.","t":"code","b":[76,19,128],"m":"jmp","oa":32787,"o":"startup"},{"a":32771,"l":"entry_pad","c":"Thirteen zero bytes between the entry jump and the start-up; nothing in the game reads them.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32779,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":32787,"l":"startup","c":"The start-up, run once after the hand-over. Turns the music player off, sets level_number to 1 and installs the interrupts. Unless the files are already in (heroes_loaded), hands the interrupts to the KERNAL, blanks the screen, loads all eight files (load_files), takes the interrupts back and picks level 8's file at random. Then starts CIA 1's timers, blanks the screen, copies the heroes' graphics (heroes_load_shapes), clears the screens, starts the tune player, resets the sound effects, starts the side masks, resets the game (game_reset), waits, sets multicolour text, video bank 1 and screen $4000, calls vic_font with 8 (which its AND #$07 turns into character base 0, $4000: the panel's font, $6000, is set each frame by the raster interrupt at $8623), colours the panel, sets the treasure-room countdown to 5, shows the screen, and falls into game_start.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[32768]},{"a":32789,"t":"code","b":[141,158,230],"m":"sta","oa":59038,"o":"music_on"},{"a":32792,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":32794,"t":"code","b":[141,205,153],"m":"sta","oa":39373,"o":"level_number"},{"a":32797,"t":"code","b":[32,128,130],"m":"jsr","oa":33408,"o":"irq_install"},{"a":32800,"t":"code","b":[173,253,207],"m":"lda","oa":53245,"o":"heroes_loaded"},{"a":32803,"t":"code","b":[208,22],"m":"bne","oa":32827,"o":"b_803B"},{"a":32805,"t":"code","b":[32,187,130],"m":"jsr","oa":33467,"o":"irq_kernal"},{"a":32808,"t":"code","b":[32,184,197],"m":"jsr","oa":50616,"o":"display_off"},{"a":32811,"t":"code","b":[32,100,153],"m":"jsr","oa":39268,"o":"load_files"},{"a":32814,"t":"code","b":[32,128,130],"m":"jsr","oa":33408,"o":"irq_install"},{"a":32817,"t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random"},{"a":32820,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":32822,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":32824,"t":"code","b":[141,206,153],"m":"sta","oa":39374,"o":"level8_file"},{"a":32827,"l":"b_803B","t":"code","b":[32,23,141],"m":"jsr","oa":36119,"o":"cia_timers_start","x":[32803]},{"a":32830,"t":"code","b":[32,184,197],"m":"jsr","oa":50616,"o":"display_off"},{"a":32833,"t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40"},{"a":32836,"t":"code","b":[32,10,156],"m":"jsr","oa":39946,"o":"heroes_load_shapes"},{"a":32839,"t":"code","b":[32,0,131],"m":"jsr","oa":33536,"o":"clear_screens"},{"a":32842,"t":"code","b":[32,57,160],"m":"jsr","oa":41017,"o":"tune_start"},{"a":32845,"t":"code","b":[32,119,205],"m":"jsr","oa":52599,"o":"sfx_reset"},{"a":32848,"t":"code","b":[32,46,133],"m":"jsr","oa":34094,"o":"sprites_init_masks"},{"a":32851,"t":"code","b":[32,172,164],"m":"jsr","oa":42156,"o":"game_reset"},{"a":32854,"t":"code","b":[32,69,175],"m":"jsr","oa":44869,"o":"wait_64_frames"},{"a":32857,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":32860,"t":"code","b":[41,208],"m":"and","o":"#$D0"},{"a":32862,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":32864,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":32867,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":32869,"t":"code","b":[141,95,182],"m":"sta","oa":46687,"o":"panel_dirty"},{"a":32872,"t":"code","b":[32,218,197],"m":"jsr","oa":50650,"o":"vic_bank"},{"a":32875,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32877,"t":"code","b":[32,245,197],"m":"jsr","oa":50677,"o":"vic_screen"},{"a":32880,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":32882,"t":"code","b":[32,10,198],"m":"jsr","oa":50698,"o":"vic_font"},{"a":32885,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32887,"t":"code","b":[141,80,130],"m":"sta","oa":33360,"o":"screen_front"},{"a":32890,"t":"code","b":[32,215,132],"m":"jsr","oa":34007,"o":"panel_colours"},{"a":32893,"t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40"},{"a":32896,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":32898,"t":"code","b":[141,60,175],"m":"sta","oa":44860,"o":"rooms_countdown"},{"a":32901,"t":"code","b":[32,201,197],"m":"jsr","oa":50633,"o":"display_on"},{"a":32904,"t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40"},{"a":32907,"t":"code","b":[32,0,131],"m":"jsr","oa":33536,"o":"clear_screens"},{"a":32910,"t":"code","b":[32,101,175],"m":"jsr","oa":44901,"o":"screen_clear"},{"a":32913,"l":"game_start","c":"A new game: clears the screens, counts from level 1, waits for a first player to press fire (wait_first_player), draws the panel and its digits, and goes on to the first level (level_begin). game_over_check comes back here when every player is gone.","t":"code","b":[32,0,131],"m":"jsr","oa":33536,"o":"clear_screens","x":[42153]},{"a":32916,"t":"code","b":[32,101,175],"m":"jsr","oa":44901,"o":"screen_clear"},{"a":32919,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":32921,"t":"code","b":[141,205,153],"m":"sta","oa":39373,"o":"level_number"},{"a":32924,"t":"code","b":[32,32,165],"m":"jsr","oa":42272,"o":"wait_first_player"},{"a":32927,"t":"code","b":[32,49,132],"m":"jsr","oa":33841,"o":"panel_draw_players"},{"a":32930,"t":"code","b":[32,208,185],"m":"jsr","oa":47568,"o":"panel_update"},{"a":32933,"l":"level_begin","c":"Starts a level: no scroll, the pass counter cleared, the screen cleared; loads the level (level_start), builds it (level_build), picks the exits (exits_pick_one), moves Death to the front (deaths_first), draws the grid, sets the special exits, draws the monsters, hides a potion and scatters the extras, places the screen and players (level_place_players), restores the heroes' shapes (shapes_from_1800), sets the fine scrolls and the screens, draws the maze, moves the monsters once, waits for line $70 and plays sound 3; then runs the treasure-room loop ($8120) for a treasure room or the play loop ($818B) for any other level.","t":"code","b":[169,15],"m":"lda","o":"#$0F","x":[33122,33160,33265]},{"a":32935,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":32938,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32940,"t":"code","b":[141,75,130],"m":"sta","oa":33355,"o":"pass_count"},{"a":32943,"t":"code","b":[32,101,175],"m":"jsr","oa":44901,"o":"screen_clear"},{"a":32946,"t":"code","b":[32,207,153],"m":"jsr","oa":39375,"o":"level_start"},{"a":32949,"t":"code","b":[32,37,198],"m":"jsr","oa":50725,"o":"level_build"},{"a":32952,"t":"code","b":[32,230,203],"m":"jsr","oa":52198,"o":"exits_pick_one"},{"a":32955,"t":"code","b":[32,96,204],"m":"jsr","oa":52320,"o":"deaths_first"},{"a":32958,"t":"code","b":[32,194,203],"m":"jsr","oa":52162,"o":"grid_draw"},{"a":32961,"t":"code","b":[32,50,204],"m":"jsr","oa":52274,"o":"exits_special"},{"a":32964,"t":"code","b":[32,14,192],"m":"jsr","oa":49166,"o":"monsters_draw_all"},{"a":32967,"t":"code","b":[32,94,163],"m":"jsr","oa":41822,"o":"hidden_potion_place"},{"a":32970,"t":"code","b":[32,144,163],"m":"jsr","oa":41872,"o":"extras_place"},{"a":32973,"t":"code","b":[32,133,149],"m":"jsr","oa":38277,"o":"level_place_players"},{"a":32976,"t":"code","b":[32,166,156],"m":"jsr","oa":40102,"o":"shapes_from_1800"},{"a":32979,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":32981,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":32984,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":32987,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":32989,"t":"code","b":[141,48,136],"m":"sta","oa":34864,"o":"scroll_steps"},{"a":32992,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32994,"t":"code","b":[141,80,130],"m":"sta","oa":33360,"o":"screen_front"},{"a":32997,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":32999,"t":"code","b":[141,81,130],"m":"sta","oa":33361,"o":"font_select"},{"a":33002,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":33005,"t":"code","b":[41,112],"m":"and","o":"#$70"},{"a":33007,"t":"code","b":[9,7],"m":"ora","o":"#$07"},{"a":33009,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":33012,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":33014,"t":"code","b":[133,255],"m":"sta","oa":255,"o":"zpa_FF"},{"a":33016,"t":"code","b":[32,80,175],"m":"jsr","oa":44880,"o":"sprites_hide_digits"},{"a":33019,"t":"code","b":[32,11,138],"m":"jsr","oa":35339,"o":"maze_draw"},{"a":33022,"t":"code","b":[32,251,139],"m":"jsr","oa":35835,"o":"maze_colours"},{"a":33025,"t":"code","b":[32,46,187],"m":"jsr","oa":47918,"o":"monsters_run"},{"a":33028,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":33030,"t":"code","b":[141,100,130],"m":"sta","oa":33380,"o":"main_go"},{"a":33033,"t":"code","b":[141,98,130],"m":"sta","oa":33378,"o":"scroll_done"},{"a":33036,"t":"code","b":[169,112],"m":"lda","o":"#$70"},{"a":33038,"t":"code","b":[32,223,139],"m":"jsr","oa":35807,"o":"wait_raster"},{"a":33041,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":33043,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":33046,"t":"code","b":[32,4,130],"m":"jsr","oa":33284,"o":"level_reset_vars"},{"a":33049,"t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file"},{"a":33052,"t":"code","b":[201,118],"m":"cmp","o":"#$76"},{"a":33054,"t":"code","b":[144,107],"m":"bcc","oa":33163,"o":"play_loop"},{"a":33056,"l":"treasure_loop","c":"One pass of a treasure room: waits for line $40, redraws the maze and its colours, counts the pass ($824B), fires and moves the shots against tiles, players and monsters, and on a pass with no change of scroll starts the room's tune (treasure_start), the pickups and the panel; then joins, the amulet, the clock (treasure_clock) and the leave timers. When the clock runs out the room ends (treasure_end); when every player in it has left by its exit, the next level begins.","t":"code","b":[169,64],"m":"lda","o":"#$40","x":[33132,33141,33151]},{"a":33058,"t":"code","b":[32,223,139],"m":"jsr","oa":35807,"o":"wait_raster"},{"a":33061,"t":"code","b":[32,11,138],"m":"jsr","oa":35339,"o":"maze_draw"},{"a":33064,"t":"code","b":[32,251,139],"m":"jsr","oa":35835,"o":"maze_colours"},{"a":33067,"t":"code","b":[238,75,130],"m":"inc","oa":33355,"o":"pass_count"},{"a":33070,"t":"code","b":[32,13,167],"m":"jsr","oa":42765,"o":"shots_fire"},{"a":33073,"t":"code","b":[32,132,168],"m":"jsr","oa":43140,"o":"shots_hit_tiles"},{"a":33076,"t":"code","b":[32,192,170],"m":"jsr","oa":43712,"o":"shots_hit_players"},{"a":33079,"t":"code","b":[32,16,170],"m":"jsr","oa":43536,"o":"shots_hit_monsters"},{"a":33082,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":33085,"t":"code","b":[205,57,136],"m":"cmp","oa":34873,"o":"scroll_dir_last"},{"a":33088,"t":"code","b":[141,57,136],"m":"sta","oa":34873,"o":"scroll_dir_last"},{"a":33091,"t":"code","b":[208,9],"m":"bne","oa":33102,"o":"b_814E"},{"a":33093,"t":"code","b":[32,209,176],"m":"jsr","oa":45265,"o":"treasure_start"},{"a":33096,"t":"code","b":[32,186,182],"m":"jsr","oa":46778,"o":"pickups"},{"a":33099,"t":"code","b":[32,208,185],"m":"jsr","oa":47568,"o":"panel_update"},{"a":33102,"l":"b_814E","t":"code","b":[32,106,165],"m":"jsr","oa":42346,"o":"players_join","x":[33091]},{"a":33105,"t":"code","b":[32,147,185],"m":"jsr","oa":47507,"o":"amulet_flash"},{"a":33108,"t":"code","b":[32,135,173],"m":"jsr","oa":44423,"o":"treasure_clock"},{"a":33111,"t":"code","b":[32,60,166],"m":"jsr","oa":42556,"o":"leave_timers"},{"a":33114,"t":"code","b":[173,180,173],"m":"lda","oa":44468,"o":"treasure_time"},{"a":33117,"t":"code","b":[208,6],"m":"bne","oa":33125,"o":"b_8165"},{"a":33119,"t":"code","b":[32,254,173],"m":"jsr","oa":44542,"o":"treasure_end"},{"a":33122,"t":"code","b":[76,165,128],"m":"jmp","oa":32933,"o":"level_begin"},{"a":33125,"l":"b_8165","t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state","x":[33117]},{"a":33128,"t":"code","b":[240,4],"m":"beq","oa":33134,"o":"b_816E"},{"a":33130,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":33132,"t":"code","b":[240,178],"m":"beq","oa":33056,"o":"treasure_loop"},{"a":33134,"l":"b_816E","t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state","x":[33128]},{"a":33137,"t":"code","b":[240,4],"m":"beq","oa":33143,"o":"b_8177"},{"a":33139,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":33141,"t":"code","b":[240,169],"m":"beq","oa":33056,"o":"treasure_loop"},{"a":33143,"l":"b_8177","t":"code","b":[173,30,145],"m":"lda","oa":37150,"o":"exit_wait_p1","x":[33137]},{"a":33146,"t":"code","b":[13,31,145],"m":"ora","oa":37151,"o":"exit_wait_p2"},{"a":33149,"t":"code","b":[240,3],"m":"beq","oa":33154,"o":"b_8182"},{"a":33151,"t":"code","b":[76,32,129],"m":"jmp","oa":33056,"o":"treasure_loop"},{"a":33154,"l":"b_8182","t":"code","b":[32,146,164],"m":"jsr","oa":42130,"o":"game_over_check","x":[33149]},{"a":33157,"t":"code","b":[32,254,173],"m":"jsr","oa":44542,"o":"treasure_end"},{"a":33160,"t":"code","b":[76,165,128],"m":"jmp","oa":32933,"o":"level_begin"},{"a":33163,"l":"play_loop","c":"One pass of an ordinary level: waits for line $40, redraws the maze and its colours, counts the pass ($824B), fires the players' shots, and on a pass with no change of scroll: the shots against tiles, players and monsters, the magic keys, the generators, the monsters, a pending trap, the pickups, the doors, the panel, the amulet, the idle timer, joining players and the leave timers. While a player in the game has not left, it loops; then game_over_check, and the next level.","t":"code","b":[169,64],"m":"lda","o":"#$40","x":[33054,33240,33249,33259]},{"a":33165,"t":"code","b":[32,223,139],"m":"jsr","oa":35807,"o":"wait_raster"},{"a":33168,"t":"code","b":[32,11,138],"m":"jsr","oa":35339,"o":"maze_draw"},{"a":33171,"t":"code","b":[32,251,139],"m":"jsr","oa":35835,"o":"maze_colours"},{"a":33174,"t":"code","b":[238,75,130],"m":"inc","oa":33355,"o":"pass_count"},{"a":33177,"t":"code","b":[32,13,167],"m":"jsr","oa":42765,"o":"shots_fire"},{"a":33180,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":33183,"t":"code","b":[205,57,136],"m":"cmp","oa":34873,"o":"scroll_dir_last"},{"a":33186,"l":"loop_scroll_check","c":"Part of the play loop (the scroll test). Its address is also the operand of a BIT at $CE68 that hides an instruction, which is why it carries a symbol.","t":"code","b":[141,57,136],"m":"sta","oa":34873,"o":"scroll_dir_last","x":[52840]},{"a":33189,"t":"code","b":[208,42],"m":"bne","oa":33233,"o":"b_81D1"},{"a":33191,"t":"code","b":[32,132,168],"m":"jsr","oa":43140,"o":"shots_hit_tiles"},{"a":33194,"t":"code","b":[32,192,170],"m":"jsr","oa":43712,"o":"shots_hit_players"},{"a":33197,"t":"code","b":[32,16,170],"m":"jsr","oa":43536,"o":"shots_hit_monsters"},{"a":33200,"t":"code","b":[32,103,186],"m":"jsr","oa":47719,"o":"magic_keys"},{"a":33203,"t":"code","b":[32,106,177],"m":"jsr","oa":45418,"o":"generators_run"},{"a":33206,"t":"code","b":[32,46,187],"m":"jsr","oa":47918,"o":"monsters_run"},{"a":33209,"t":"code","b":[32,20,184],"m":"jsr","oa":47124,"o":"trap_wait"},{"a":33212,"t":"code","b":[32,186,182],"m":"jsr","oa":46778,"o":"pickups"},{"a":33215,"t":"code","b":[32,111,179],"m":"jsr","oa":45935,"o":"doors_open_step"},{"a":33218,"t":"code","b":[32,208,185],"m":"jsr","oa":47568,"o":"panel_update"},{"a":33221,"t":"code","b":[32,147,185],"m":"jsr","oa":47507,"o":"amulet_flash"},{"a":33224,"t":"code","b":[32,87,181],"m":"jsr","oa":46423,"o":"idle_timer"},{"a":33227,"t":"code","b":[32,106,165],"m":"jsr","oa":42346,"o":"players_join"},{"a":33230,"t":"code","b":[32,60,166],"m":"jsr","oa":42556,"o":"leave_timers"},{"a":33233,"l":"b_81D1","t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state","x":[33189]},{"a":33236,"t":"code","b":[240,4],"m":"beq","oa":33242,"o":"b_81DA"},{"a":33238,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":33240,"t":"code","b":[240,177],"m":"beq","oa":33163,"o":"play_loop"},{"a":33242,"l":"b_81DA","t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state","x":[33236]},{"a":33245,"t":"code","b":[240,4],"m":"beq","oa":33251,"o":"b_81E3"},{"a":33247,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":33249,"t":"code","b":[240,168],"m":"beq","oa":33163,"o":"play_loop"},{"a":33251,"l":"b_81E3","t":"code","b":[173,30,145],"m":"lda","oa":37150,"o":"exit_wait_p1","x":[33245]},{"a":33254,"t":"code","b":[13,31,145],"m":"ora","oa":37151,"o":"exit_wait_p2"},{"a":33257,"t":"code","b":[240,3],"m":"beq","oa":33262,"o":"b_81EE"},{"a":33259,"t":"code","b":[76,139,129],"m":"jmp","oa":33163,"o":"play_loop"},{"a":33262,"l":"b_81EE","t":"code","b":[32,146,164],"m":"jsr","oa":42130,"o":"game_over_check","x":[33257]},{"a":33265,"t":"code","b":[76,165,128],"m":"jmp","oa":32933,"o":"level_begin"},{"a":33268,"l":"wait_frame_40","c":"Sets the frame flag $8264 and waits for raster line $40 (wait_raster); clears $8248. Used between steps of the start-up and screen changes to let a frame pass.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[32833,32893,32904,39934,44962,45026,45029]},{"a":33270,"t":"code","b":[141,100,130],"m":"sta","oa":33380,"o":"main_go"},{"a":33273,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":33275,"t":"code","b":[32,223,139],"m":"jsr","oa":35807,"o":"wait_raster"},{"a":33278,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33280,"t":"code","b":[141,72,130],"m":"sta","oa":33352,"o":"frame_count_2"},{"a":33283,"t":"code","b":[96],"m":"rts"},{"a":33284,"l":"level_reset_vars","c":"Resets per-level state before play starts: all sprites enabled in the copy $9111, the two players' status bytes $9120/$9121 cleared of bits 6 and 7, $912C/$912D set to $C0/$E0, and the counters at $B66B/$B66C, $AF38-$AF3B, $B4E7, $B4E9 and $B65A cleared; $B65B is reloaded from $B65C.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[33046]},{"a":33286,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":33289,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":33292,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":33294,"t":"code","b":[141,32,145],"m":"sta","oa":37152,"o":"player_state"},{"a":33297,"t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state"},{"a":33300,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":33302,"t":"code","b":[141,33,145],"m":"sta","oa":37153,"o":"player2_state"},{"a":33305,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":33307,"t":"code","b":[141,44,145],"m":"sta","oa":37164,"o":"player_shapes"},{"a":33310,"t":"code","b":[169,224],"m":"lda","o":"#$E0"},{"a":33312,"t":"code","b":[141,45,145],"m":"sta","oa":37165,"o":"player2_shapes"},{"a":33315,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33317,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":33320,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":33323,"t":"code","b":[141,58,175],"m":"sta","oa":44858,"o":"treasures_got"},{"a":33326,"t":"code","b":[141,59,175],"m":"sta","oa":44859,"o":"treasures_got_p2"},{"a":33329,"t":"code","b":[141,231,180],"m":"sta","oa":46311,"o":"door_state"},{"a":33332,"t":"code","b":[141,233,180],"m":"sta","oa":46313,"o":"door_state_p2"},{"a":33335,"t":"code","b":[141,56,175],"m":"sta","oa":44856,"o":"escaped"},{"a":33338,"t":"code","b":[141,57,175],"m":"sta","oa":44857,"o":"escaped_p2"},{"a":33341,"t":"code","b":[141,90,182],"m":"sta","oa":46682,"o":"idle_stage"},{"a":33344,"t":"code","b":[173,92,182],"m":"lda","oa":46684,"o":"idle_reload"},{"a":33347,"t":"code","b":[141,91,182],"m":"sta","oa":46683,"o":"idle_count"},{"a":33350,"t":"code","b":[96],"m":"rts"},{"a":33351,"l":"frame_count","c":"Counted up by the raster interrupt every frame; wait_64_frames waits on it, and routines use it to run every fourth or 64th frame.","t":"byte","b":[96],"x":[34197,34211,35996,36119,36125,42882,42943,42990,44871,44874]},{"a":33352,"l":"frame_count_2","c":"A second frame counter, cleared by wait_frame_40.","t":"byte","b":[192],"x":[33280,34200]},{"a":33353,"l":"tune_wanted","c":"Set while the tune player should run from the raster interrupt (level_intro, treasure_start).","t":"byte","b":[1],"x":[34285,39928,44586,45285,52902]},{"a":33354,"l":"monster_cur","c":"The monster slot being handled.","t":"byte","b":[25],"x":[42466,42474,43635,43651,43704,48011,48044,48195,48217,48260,48323,48357,48413,48450,48493,48545,48651,50010,50269,50428]},{"a":33355,"l":"pass_count","c":"Counts the main loop's passes in a level; monsters_run, generators_run and others use its low bits to spread their work over passes.","t":"byte","b":[103],"x":[32940,33067,33174,38755,45431,47953,47967,47995]},{"a":33356,"l":"mask_dummy_1","c":"Counted up every frame by the raster interrupt; exit_enter clears $824C,x (this and the next byte) for a player going into an exit.","t":"byte","b":[160],"x":[34254,46985]},{"a":33357,"l":"mask_dummy_2","c":"Counted up every frame with $824C.","t":"byte","b":[160],"x":[34257]},{"a":33358,"l":"monster_count","c":"The index of the last monster in the table ($FF for none): up to $BF, 192 monsters.","t":"byte","b":[62,0],"x":[43460,43487,43536,43551,43558,45446,45616,45628,47934,47960,47981,47988,48035,48058,48065,48225,48252,48327,48354,49174,50272,50299,51261,51498,51501,52320,52331]},{"a":33360,"l":"screen_front","c":"The screen being shown, as $D018's high nibble: $00 for $4000, $10 for $4400.","t":"byte","b":[16],"x":[32887,32994,34520,35404,35616,36534,45012]},{"a":33361,"l":"font_select","c":"The maze font, as $D018's bits 1-3: 2, 4 or 6 ($4800, $5000, $5800), cycled by panel_flash; 8 for the panel font at $6000 on the message screens.","t":"byte","b":[2],"x":[32999,34523,35964,35993,36545,45020]},{"a":33362,"l":"d011_copy","c":"The value raster_arm writes to $D011 (with the fine scroll ORed in); display_on and display_off set its bit 4.","t":"byte","b":[16],"x":[34492,50616,50621,50633,50638]},{"a":33363,"l":"font_timer","c":"panel_flash's countdown between font changes.","t":"byte","b":[36],"x":[35971,35974]},{"a":33364,"l":"font_step","c":"panel_flash's step through the font cycle.","t":"byte","b":[60],"x":[35981,35984]},{"a":33365,"l":"font_cycle","c":"The maze font selects panel_flash cycles through: 2 4 2 6 (then a spare 0).","t":"byte","b":[2,4,2,6,0],"x":[35990]},{"a":33370,"l":"d022_colour","c":"The maze's second colour ($D022), dark grey $0B, white during a potion's blast.","t":"byte","b":[11],"x":[34248,48029,48079]},{"a":33371,"l":"scratch","c":"A work byte many routines use.","t":"byte","b":[128],"x":[36676,36699,36984,37001,37022,37039,37100,37105,40168,40176,40216,40276,40305,40341,40377,40406,42009,42021,43257,43268,43448,43457,44241,44269,44367,44380,44688,44698,45196,46161,46169,46188,46196,46272,46280,48130,48824,48855,48895,48910,48913,48928,48931,48939,49119,50579,50654,50670,50683,50691,50701,50709,50893,50901,50917,50930,51515,51520,51524,51528,51545,51559,51562,51565,51573]},{"a":33372,"l":"scratch_2","c":"A second work byte.","t":"byte","b":[0],"x":[41911,41916,41941,43721,43728,43731,43734,43744,43752,43762,43770,44139,44147,48801,48808,48831,48838,50118,50122,50454,50464,50474,50575]},{"a":33373,"l":"scratch_3","c":"A third work byte (direction bits in the scroll and wall tests).","t":"byte","b":[192],"x":[34545,34560,37239,37265,37924,37981,38018,38054,38060,46712]},{"a":33374,"l":"blocked_dirs","c":"The directions the walls block for the player being moved (block_dirs).","t":"byte","b":[0],"x":[37972,38006,38057,38133,38139]},{"a":33375,"l":"redraw_due","c":"Raised when the screen has scrolled a whole cell; the raster interrupt then lets the main loop redraw ($8264).","t":"byte","b":[0],"x":[34227,34237,34623,34990,35028,35078,35135,35176,35214,35264,35321]},{"a":33376,"l":"redraw_due_2","c":"Read and cleared with redraw_due by the raster interrupt; nothing in the traced code sets it.","t":"byte","b":[0],"x":[34230,34240]},{"a":33377,"l":"freeze_copy","c":"A copy of freeze_p1 taken when the players are read.","t":"byte","b":[0],"x":[34670]},{"a":33378,"l":"scroll_done","c":"Set when a coarse scroll step has finished; scroll_decide waits on it.","t":"byte","b":[1],"x":[33033,34639,34771,34973,35011,35058,35111,35159,35197,35244,35297]},{"a":33379,"l":"idle_scroll_count","c":"scroll_decide's countdown while nothing scrolls.","t":"byte","b":[8],"x":[34613,34616,34626,34633]},{"a":33380,"l":"main_go","c":"The raster interrupt's go-ahead for the main loop (wait_raster waits on it).","t":"byte","b":[0],"x":[33030,33270,34157,34245,35808,35815,47976]},{"a":33381,"l":"pad_8265","c":"A spare byte after main_go.","t":"byte","b":[0]},{"a":33382,"l":"scroll_x_units","c":"The scroll's X in 2-pixel units: the world X of the screen's left edge.","t":"byte","b":[0],"x":[34965,35003,35041,35100,35233,35286,37573,38312,38382,42317,42407,43039]},{"a":33383,"l":"scroll_y_units","c":"The scroll's Y in 2-pixel units.","t":"byte","b":[0],"x":[35044,35103,35151,35189,35236,35289,37583,38350,38398,42333,42422,43062]},{"a":33384,"l":"irq_entry","c":"The hardware IRQ handler ($FFFE). Saves A, X and Y; when the video chip reports a raster interrupt it jumps through $0314 to whichever raster handler the chain has installed (raster_masks, raster_frame); any other interrupt returns at once through irq_exit.","t":"code","b":[72],"m":"pha"},{"a":33385,"t":"code","b":[138],"m":"txa"},{"a":33386,"t":"code","b":[72],"m":"pha"},{"a":33387,"t":"code","b":[152],"m":"tya"},{"a":33388,"t":"code","b":[72],"m":"pha"},{"a":33389,"t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":33392,"t":"code","b":[41,129],"m":"and","o":"#$81"},{"a":33394,"t":"code","b":[201,129],"m":"cmp","o":"#$81"},{"a":33396,"t":"code","b":[208,3],"m":"bne","oa":33401,"o":"irq_exit"},{"a":33398,"t":"code","b":[108,20,3],"m":"jmp","oa":788,"o":"(p_0314)"},{"a":33401,"l":"irq_exit","c":"Common exit of every interrupt handler: restores Y, X and A and returns from the interrupt.","t":"code","b":[104],"m":"pla","x":[33396,34178,34296,34377,34412,34448,34472]},{"a":33402,"t":"code","b":[168],"m":"tay"},{"a":33403,"t":"code","b":[104],"m":"pla"},{"a":33404,"t":"code","b":[170],"m":"tax"},{"a":33405,"t":"code","b":[104],"m":"pla"},{"a":33406,"t":"code","b":[64],"m":"rti"},{"a":33407,"l":"nmi_rti","c":"The NMI handler ($FFFA): a bare RTI, so RESTORE does nothing during play.","t":"code","b":[64],"m":"rti"},{"a":33408,"l":"irq_install","c":"Installs the game's own interrupt handling: masks both CIAs' interrupts and acknowledges them, points the hardware IRQ vector $FFFE at irq_entry ($8268) and the NMI vector $FFFA at nmi_rti ($827F), sets the processor port to $35 (RAM at $A000 and $E000, I/O at $D000), enables the raster interrupt, starts the mask-sprite chain (sprites_init_masks), re-enables interrupts and restarts CIA 1's timers (cia_timers_start). Called twice by the start-up and from $99FD.","t":"code","b":[120],"m":"sei","x":[32797,32814,39421]},{"a":33409,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":33411,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":33414,"t":"code","b":[141,13,221],"m":"sta","o":"cia2_interrupt"},{"a":33417,"t":"code","b":[173,13,221],"m":"lda","o":"cia2_interrupt"},{"a":33420,"t":"code","b":[173,13,220],"m":"lda","o":"cia1_interrupt"},{"a":33423,"t":"code","b":[169,104],"m":"lda","o":"#$68"},{"a":33425,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":33428,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":33430,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":33433,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":33435,"t":"code","b":[141,250,255],"m":"sta","oa":65530,"o":"hw_vectors"},{"a":33438,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":33440,"t":"code","b":[141,251,255],"m":"sta","oa":65531,"o":"$FFFB"},{"a":33443,"t":"code","b":[169,47],"m":"lda","o":"#$2F"},{"a":33445,"t":"code","b":[133,0],"m":"sta","oa":0,"o":"start"},{"a":33447,"t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":33449,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zpa_01"},{"a":33451,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":33453,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":33456,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":33459,"t":"code","b":[32,46,133],"m":"jsr","oa":34094,"o":"sprites_init_masks"},{"a":33462,"t":"code","b":[88],"m":"cli"},{"a":33463,"t":"code","b":[32,23,141],"m":"jsr","oa":36119,"o":"cia_timers_start"},{"a":33466,"t":"code","b":[96],"m":"rts"},{"a":33467,"l":"irq_kernal","c":"Hands interrupts back to the KERNAL before a disk load: masks both CIAs, stops their timers, sets CIA 1's timer A latch to $4025, disables the raster interrupt and every sprite, clears the sprite-enable copy $9111, points $0314 at the KERNAL's $EA31 and banks the KERNAL ROM in ($01 = $36). irq_install undoes it.","t":"code","b":[120],"m":"sei","x":[32805,39400]},{"a":33468,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":33470,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":33473,"t":"code","b":[141,13,221],"m":"sta","o":"cia2_interrupt"},{"a":33476,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":33478,"t":"code","b":[142,14,220],"m":"stx","o":"cia1_control_a"},{"a":33481,"t":"code","b":[142,14,221],"m":"stx","o":"cia2_control_a"},{"a":33484,"t":"code","b":[142,15,220],"m":"stx","o":"cia1_control_b"},{"a":33487,"t":"code","b":[142,15,221],"m":"stx","o":"cia2_control_b"},{"a":33490,"t":"code","b":[202],"m":"dex"},{"a":33491,"t":"code","b":[142,13,221],"m":"stx","o":"cia2_interrupt"},{"a":33494,"t":"code","b":[169,37],"m":"lda","o":"#$25"},{"a":33496,"t":"code","b":[141,4,220],"m":"sta","o":"cia1_timer_a_lo"},{"a":33499,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":33501,"t":"code","b":[141,5,220],"m":"sta","o":"cia1_timer_a_hi"},{"a":33504,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33506,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":33509,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":33512,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":33515,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":33517,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":33520,"t":"code","b":[169,49],"m":"lda","o":"#$31"},{"a":33522,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"p_0314"},{"a":33525,"t":"code","b":[169,234],"m":"lda","o":"#$EA"},{"a":33527,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"a_0315"},{"a":33530,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":33532,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zpa_01"},{"a":33534,"t":"code","b":[88],"m":"cli"},{"a":33535,"t":"code","b":[96],"m":"rts"},{"a":33536,"l":"clear_screens","c":"Fills colour RAM ($D800-$DBFF) and both screens ($4000-$47FF) with zero.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[32839,32907,32913]},{"a":33538,"t":"code","b":[152],"m":"tya"},{"a":33539,"l":"b_8303","t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y","x":[33576]},{"a":33542,"t":"code","b":[153,0,217],"m":"sta","o":"$D900,y"},{"a":33545,"t":"code","b":[153,0,218],"m":"sta","o":"$DA00,y"},{"a":33548,"t":"code","b":[153,0,219],"m":"sta","o":"$DB00,y"},{"a":33551,"t":"code","b":[153,0,64],"m":"sta","oa":16384,"o":"f_4000,y"},{"a":33554,"t":"code","b":[153,0,65],"m":"sta","oa":16640,"o":"f_4100,y"},{"a":33557,"t":"code","b":[153,0,66],"m":"sta","oa":16896,"o":"f_4200,y"},{"a":33560,"t":"code","b":[153,0,67],"m":"sta","oa":17152,"o":"f_4300,y"},{"a":33563,"t":"code","b":[153,0,68],"m":"sta","oa":17408,"o":"f_4400,y"},{"a":33566,"t":"code","b":[153,0,69],"m":"sta","oa":17664,"o":"f_4500,y"},{"a":33569,"t":"code","b":[153,0,70],"m":"sta","oa":17920,"o":"f_4600,y"},{"a":33572,"t":"code","b":[153,0,71],"m":"sta","oa":18176,"o":"f_4700,y"},{"a":33575,"t":"code","b":[200],"m":"iny"},{"a":33576,"t":"code","b":[208,217],"m":"bne","oa":33539,"o":"b_8303"},{"a":33578,"t":"code","b":[96],"m":"rts"},{"a":33579,"l":"panel_columns","c":"The last column of each player's panel block in the panel rows: $0F for player one, $1F for player two.","t":"byte","b":[15,31],"x":[33882,33967]},{"a":33581,"l":"panel_misc","c":"Four bytes beside panel_columns: $00 $10 $0F $1F. $832D,x is read by $A655 and $B9E9, and $832F by $B90D.","t":"byte","b":[0,16],"x":[40261,40290,40326,40362,40391,40427,40792,42581,47240,47350,47593]},{"a":33583,"l":"panel_potion_end","c":"The column of the first potion icon in each player's block ($0F and $1F): potion_take puts a new potion's icon at $439C + this less the potions already held, so icons fill leftwards from here, and potion_drop clears the last one.","t":"byte","b":[15,31],"x":[47285,47373]},{"a":33585,"l":"hero_names","c":"The status panel's text, ASCII with the panel font's own glyphs: four sixteen-byte rows of hero names, in hero order 0 Warrior (glyphs $90-$97, drawn as one word), 1 Valkyrie, 2 Wizard, 3 Elf (glyphs $5B-$5E). panel_draw_players picks the row with the hero number times sixteen.","t":"byte","b":[32,32,32,32,144,145,146,147],"x":[33888]},{"a":33593,"t":"byte","b":[148,149,150,151,32,32,32,32]},{"a":33601,"t":"byte","b":[32,32,32,32,86,65,76,75]},{"a":33609,"t":"byte","b":[89,82,73,69,32,32,32,32]},{"a":33617,"t":"byte","b":[32,32,32,32,32,87,73,90]},{"a":33625,"t":"byte","b":[65,82,68,32,32,32,32,32]},{"a":33633,"t":"byte","b":[32,32,32,32,32,32,91,92]},{"a":33641,"t":"byte","b":[93,94,32,32,32,32,32,32]},{"a":33649,"l":"panel_legend","c":"\" SCORE  HEALTH \": the SCORE word is the panel font's glyphs $3A-$3F.","t":"byte","b":[32,58,59,60,61,62,63,32],"x":[33897]},{"a":33657,"t":"byte","b":[32,72,69,65,76,84,72,32]},{"a":33665,"l":"panel_start_digits","c":"\" 000000   2000 \": the score and health a player starts with, as the panel shows them.","t":"byte","b":[32,48,48,48,48,48,48,32],"x":[33906]},{"a":33673,"t":"byte","b":[32,32,50,48,48,48,32,32]},{"a":33681,"l":"panel_blank_row","c":"Sixteen spaces, the panel's fourth row.","t":"byte","b":[32,32,32,32,32,32,32,32],"x":[33915]},{"a":33689,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":33697,"l":"panel_press_fire","c":"The four rows panel_press_fire_draw puts in an empty player's block, as glyph numbers: the GAUNTLET logo (glyphs $41-$5F) and \"PRESS FIRE\" ($30 $32 $25 $33 $33, $26 $29 $32 $25).","t":"byte","b":[0,65,66,67,68,69,70,71],"x":[33973]},{"a":33705,"t":"byte","b":[72,73,74,75,76,77,0,0]},{"a":33713,"l":"panel_press_fire_2","c":"The second row of panel_press_fire: the logo's lower half.","t":"byte","b":[0,78,79,80,81,82,83,84],"x":[33979]},{"a":33721,"t":"byte","b":[85,86,87,88,89,90,0,0]},{"a":33729,"l":"panel_press_fire_3","c":"The third row of panel_press_fire: the logo's tail.","t":"byte","b":[0,0,91,0,0,92,93,0],"x":[33985]},{"a":33737,"t":"byte","b":[0,0,0,94,95,0,0,0]},{"a":33745,"l":"panel_press_fire_4","c":"The fourth row of panel_press_fire: \"PRESS FIRE\".","t":"byte","b":[0,0,48,50,37,51,51,0],"x":[33991]},{"a":33753,"t":"byte","b":[0,38,41,50,37,0,0,0]},{"a":33761,"l":"panel_press_fire_alt","c":"Eighty bytes after panel_press_fire: the same logo and PRESS FIRE rows again, with $40 in place of $00 and $20. Nothing in the traced code reads them.","t":"byte","b":[64,64,65,66,67,68,69,70]},{"a":33769,"t":"byte","b":[71,72,73,74,75,76,77,64]},{"a":33777,"t":"byte","b":[64,64,64,64,64,64,78,79]},{"a":33785,"t":"byte","b":[80,81,82,83,84,85,86,87]},{"a":33793,"t":"byte","b":[88,89,90,64,64,64,64,64]},{"a":33801,"t":"byte","b":[64,64,94,95,64,64,92,93]},{"a":33809,"t":"byte","b":[64,64,64,64,94,95,64,64]},{"a":33817,"t":"byte","b":[64,64,64,64,64,64,64,80]},{"a":33825,"t":"byte","b":[82,69,83,83,64,64,70,73]},{"a":33833,"t":"byte","b":[82,69,64,64,64,64,64,64]},{"a":33841,"l":"panel_draw_players","c":"Draws the status panel for each player who is in the game ($9120,x not zero) and whose pair $B663,x/$B665,x is zero: four rows of sixteen characters from the hero's name row (hero_names, sixteen bytes per hero, chosen by $911C,x), the SCORE/HEALTH legend, the starting digits and a blank row, each byte less $20 (the panel font draws ASCII less $20), into the panel at $4324 + the player's column ($832B,x: $0F for player one, $1F for player two). Then points sprites 2-7 at shape $A1 ($43FA-$43FF).","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[32927,42448]},{"a":33843,"t":"code","b":[141,13,145],"m":"sta","oa":37133,"o":"player_cur"},{"a":33846,"l":"b_8436","t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur","x":[33931]},{"a":33849,"t":"code","b":[189,99,182],"m":"lda","oa":46691,"o":"keys_held,x"},{"a":33852,"t":"code","b":[29,101,182],"m":"ora","oa":46693,"o":"potions_held,x"},{"a":33855,"t":"code","b":[208,71],"m":"bne","oa":33928,"o":"b_8488"},{"a":33857,"t":"code","b":[189,28,145],"m":"lda","oa":37148,"o":"player_hero,x"},{"a":33860,"t":"code","b":[10],"m":"asl","o":"a"},{"a":33861,"t":"code","b":[10],"m":"asl","o":"a"},{"a":33862,"t":"code","b":[10],"m":"asl","o":"a"},{"a":33863,"t":"code","b":[10],"m":"asl","o":"a"},{"a":33864,"t":"code","b":[24],"m":"clc"},{"a":33865,"t":"code","b":[105,49],"m":"adc","o":"#$31"},{"a":33867,"t":"code","b":[141,97,132],"m":"sta","oa":33889,"o":"hero_name_ptr"},{"a":33870,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33872,"t":"code","b":[105,131],"m":"adc","o":"#$83"},{"a":33874,"t":"code","b":[141,98,132],"m":"sta","oa":33890,"o":"hero_name_ptr_hi"},{"a":33877,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":33880,"t":"code","b":[240,46],"m":"beq","oa":33928,"o":"b_8488"},{"a":33882,"t":"code","b":[189,43,131],"m":"lda","oa":33579,"o":"panel_columns,x"},{"a":33885,"t":"code","b":[170],"m":"tax"},{"a":33886,"t":"code","b":[160,15],"m":"ldy","o":"#$0F"},{"a":33888,"l":"b_8460","t":"code","b":[185,49,131],"m":"lda","oa":33585,"o":"hero_names,y","x":[33926]},{"a":33889,"t":"note","l":"hero_name_ptr","c":"The low byte of the hero_names address in panel_draw_players' first LDA, rewritten with the hero's row.","note":"inside the item at $8460","x":[33867]},{"a":33890,"t":"note","l":"hero_name_ptr_hi","c":"The high byte of that address, rewritten too; the rest of panel_draw_players' copy loop follows.","note":"inside the item at $8460","x":[33874]},{"a":33891,"t":"code","b":[56],"m":"sec"},{"a":33892,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":33894,"t":"code","b":[157,36,67],"m":"sta","oa":17188,"o":"f_4324,x"},{"a":33897,"t":"code","b":[185,113,131],"m":"lda","oa":33649,"o":"panel_legend,y"},{"a":33900,"t":"code","b":[56],"m":"sec"},{"a":33901,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":33903,"t":"code","b":[157,76,67],"m":"sta","oa":17228,"o":"f_434C,x"},{"a":33906,"t":"code","b":[185,129,131],"m":"lda","oa":33665,"o":"panel_start_digits,y"},{"a":33909,"t":"code","b":[56],"m":"sec"},{"a":33910,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":33912,"t":"code","b":[157,116,67],"m":"sta","oa":17268,"o":"f_4374,x"},{"a":33915,"t":"code","b":[185,145,131],"m":"lda","oa":33681,"o":"panel_blank_row,y"},{"a":33918,"t":"code","b":[56],"m":"sec"},{"a":33919,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":33921,"t":"code","b":[157,156,67],"m":"sta","oa":17308,"o":"f_439C,x"},{"a":33924,"t":"code","b":[202],"m":"dex"},{"a":33925,"t":"code","b":[136],"m":"dey"},{"a":33926,"t":"code","b":[16,216],"m":"bpl","oa":33888,"o":"b_8460"},{"a":33928,"l":"b_8488","t":"code","b":[206,13,145],"m":"dec","oa":37133,"o":"player_cur","x":[33855,33880]},{"a":33931,"t":"code","b":[16,169],"m":"bpl","oa":33846,"o":"b_8436"},{"a":33933,"t":"code","b":[169,161],"m":"lda","o":"#$A1"},{"a":33935,"t":"code","b":[141,250,67],"m":"sta","oa":17402,"o":"a_43FA"},{"a":33938,"t":"code","b":[141,251,67],"m":"sta","oa":17403,"o":"a_43FB"},{"a":33941,"t":"code","b":[141,252,67],"m":"sta","oa":17404,"o":"a_43FC"},{"a":33944,"t":"code","b":[141,253,67],"m":"sta","oa":17405,"o":"a_43FD"},{"a":33947,"t":"code","b":[141,254,67],"m":"sta","oa":17406,"o":"a_43FE"},{"a":33950,"t":"code","b":[141,255,67],"m":"sta","oa":17407,"o":"a_43FF"},{"a":33953,"t":"code","b":[96],"m":"rts"},{"a":33954,"l":"panel_press_fire_draw","c":"For each player not in the game ($9120,x zero), copies panel_press_fire's four rows of sixteen glyphs into that player's block of the panel (column from panel_columns).","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[42272,42631]},{"a":33956,"t":"code","b":[141,13,145],"m":"sta","oa":37133,"o":"player_cur"},{"a":33959,"l":"b_84A7","t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur","x":[34004]},{"a":33962,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":33965,"t":"code","b":[208,34],"m":"bne","oa":34001,"o":"b_84D1"},{"a":33967,"t":"code","b":[189,43,131],"m":"lda","oa":33579,"o":"panel_columns,x"},{"a":33970,"t":"code","b":[170],"m":"tax"},{"a":33971,"t":"code","b":[160,15],"m":"ldy","o":"#$0F"},{"a":33973,"l":"b_84B5","t":"code","b":[185,161,131],"m":"lda","oa":33697,"o":"panel_press_fire,y","x":[33999]},{"a":33976,"t":"code","b":[157,36,67],"m":"sta","oa":17188,"o":"f_4324,x"},{"a":33979,"t":"code","b":[185,177,131],"m":"lda","oa":33713,"o":"panel_press_fire_2,y"},{"a":33982,"t":"code","b":[157,76,67],"m":"sta","oa":17228,"o":"f_434C,x"},{"a":33985,"t":"code","b":[185,193,131],"m":"lda","oa":33729,"o":"panel_press_fire_3,y"},{"a":33988,"t":"code","b":[157,116,67],"m":"sta","oa":17268,"o":"f_4374,x"},{"a":33991,"t":"code","b":[185,209,131],"m":"lda","oa":33745,"o":"panel_press_fire_4,y"},{"a":33994,"t":"code","b":[157,156,67],"m":"sta","oa":17308,"o":"f_439C,x"},{"a":33997,"t":"code","b":[202],"m":"dex"},{"a":33998,"t":"code","b":[136],"m":"dey"},{"a":33999,"t":"code","b":[16,228],"m":"bpl","oa":33973,"o":"b_84B5"},{"a":34001,"l":"b_84D1","t":"code","b":[206,13,145],"m":"dec","oa":37133,"o":"player_cur","x":[33965]},{"a":34004,"t":"code","b":[16,209],"m":"bpl","oa":33959,"o":"b_84A7"},{"a":34006,"t":"code","b":[96],"m":"rts"},{"a":34007,"l":"panel_colours","c":"Sets the maze's background colours ($D021 black, $D022 dark grey $0B, $D023 white) and colours each active player's panel block with the hero's colour (hero_colours, $9114) in colour RAM $DB20-$DBBF; sets the sprite multicolours ($D025 light red $0A, $D026 white).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[32890,42275,42634]},{"a":34009,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":34012,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":34014,"t":"code","b":[141,34,208],"m":"sta","o":"vic_background1"},{"a":34017,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34019,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":34022,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":34024,"l":"b_84E8","t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state","x":[34071]},{"a":34027,"t":"code","b":[208,18],"m":"bne","oa":34047,"o":"b_84FF"},{"a":34029,"t":"code","b":[174,28,145],"m":"ldx","oa":37148,"o":"player_hero"},{"a":34032,"t":"code","b":[189,20,145],"m":"lda","oa":37140,"o":"hero_colours,x"},{"a":34035,"t":"code","b":[153,32,219],"m":"sta","o":"$DB20,y"},{"a":34038,"t":"code","b":[153,72,219],"m":"sta","o":"$DB48,y"},{"a":34041,"t":"code","b":[153,112,219],"m":"sta","o":"$DB70,y"},{"a":34044,"t":"code","b":[153,152,219],"m":"sta","o":"$DB98,y"},{"a":34047,"l":"b_84FF","t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state","x":[34027]},{"a":34050,"t":"code","b":[208,18],"m":"bne","oa":34070,"o":"b_8516"},{"a":34052,"t":"code","b":[174,29,145],"m":"ldx","oa":37149,"o":"player2_hero"},{"a":34055,"t":"code","b":[189,20,145],"m":"lda","oa":37140,"o":"hero_colours,x"},{"a":34058,"t":"code","b":[153,52,219],"m":"sta","o":"$DB34,y"},{"a":34061,"t":"code","b":[153,92,219],"m":"sta","o":"$DB5C,y"},{"a":34064,"t":"code","b":[153,132,219],"m":"sta","o":"$DB84,y"},{"a":34067,"t":"code","b":[153,172,219],"m":"sta","o":"$DBAC,y"},{"a":34070,"l":"b_8516","t":"code","b":[136],"m":"dey","x":[34050]},{"a":34071,"t":"code","b":[16,207],"m":"bpl","oa":34024,"o":"b_84E8"},{"a":34073,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34075,"t":"code","b":[141,38,208],"m":"sta","o":"vic_sprite_mc1"},{"a":34078,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":34080,"t":"code","b":[141,37,208],"m":"sta","o":"vic_sprite_mc0"},{"a":34083,"t":"code","b":[96],"m":"rts"},{"a":34084,"l":"mask_y","c":"The Y position of the two side-mask sprites in each of the four raster bands: $2E, $58, $82, $AC.","t":"byte","b":[46,88,130,172],"x":[34425]},{"a":34088,"l":"mask_first_line","c":"The raster line of the first mask band, $2A.","t":"byte","b":[42],"x":[34486]},{"a":34089,"l":"mask_lines","c":"The raster line of each next mask band's interrupt: $54, $7E, $A0, $CB; the last is where raster_frame takes over.","t":"byte","b":[84,126,160,203],"x":[34419]},{"a":34093,"l":"mask_band","c":"Which of the four mask bands raster_masks is on (0-3).","t":"byte","b":[0],"x":[34147,34416,34435,34454]},{"a":34094,"l":"sprites_init_masks","c":"Sets up the two black side masks: sprites 0 and 1 in colour 0 at X $1F and $138, stretched vertically, both pointing at the solid shape $A0 ($6800) in either screen ($43F8/$43F9, $47F8/$47F9); enables the sprites in $9111; arms CIA 1's interrupts, waits for a frame and starts the raster chain (raster_arm).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[32848,33459]},{"a":34096,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":34099,"t":"code","b":[141,40,208],"m":"sta","o":"vic_sprite1_colour"},{"a":34102,"t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":34104,"t":"code","b":[141,248,67],"m":"sta","oa":17400,"o":"a_43F8"},{"a":34107,"t":"code","b":[141,249,67],"m":"sta","oa":17401,"o":"a_43F9"},{"a":34110,"t":"code","b":[141,248,71],"m":"sta","oa":18424,"o":"a_47F8"},{"a":34113,"t":"code","b":[141,249,71],"m":"sta","oa":18425,"o":"a_47F9"},{"a":34116,"t":"code","b":[173,17,145],"m":"lda","oa":37137,"o":"sprites_on"},{"a":34119,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":34122,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":34124,"t":"code","b":[141,23,208],"m":"sta","o":"vic_sprite_expand_y"},{"a":34127,"t":"code","b":[169,31],"m":"lda","o":"#$1F"},{"a":34129,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":34132,"t":"code","b":[169,56],"m":"lda","o":"#$38"},{"a":34134,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":34137,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":34140,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":34142,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":34145,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34147,"t":"code","b":[141,45,133],"m":"sta","oa":34093,"o":"mask_band"},{"a":34150,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":34152,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":34155,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34157,"t":"code","b":[141,100,130],"m":"sta","oa":33380,"o":"main_go"},{"a":34160,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":34162,"t":"code","b":[32,223,139],"m":"jsr","oa":35807,"o":"wait_raster"},{"a":34165,"t":"code","b":[32,171,134],"m":"jsr","oa":34475,"o":"raster_arm"},{"a":34168,"t":"code","b":[96],"m":"rts"},{"a":34169,"l":"raster_frame","c":"The raster handler that follows the mask bands, entered on alternate interrupts through $864C. On one: acknowledges, steps the frame counters $8247/$8248, calls $B933 on every 64th frame or whenever $C40C/$C40D is not zero, then $B977 and frame_tasks; raises the main loop's flag $8264 and resets $D022 from $825A when a coarse scroll step has finished ($825F/$8260); re-arms the chain (raster_arm); calls $92BF, $915C and $91CC; restores the colours $D021/$D023; calls $A036 when $8249 is set, and $CCD3. On the other (b_85FB): waits for line $CF, blanks the display, turns off the sprites and their colours, switches $D018 to the panel ($08: screen $4000, font $6000), and at line $D6 sets 25-row text mode and 40-column hires ($D016 $18) for the status panel; then asks for line $F8.","t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":34172,"t":"code","b":[41,129],"m":"and","o":"#$81"},{"a":34174,"t":"code","b":[201,129],"m":"cmp","o":"#$81"},{"a":34176,"t":"code","b":[240,3],"m":"beq","oa":34181,"o":"b_8585"},{"a":34178,"t":"code","b":[76,121,130],"m":"jmp","oa":33401,"o":"irq_exit"},{"a":34181,"l":"b_8585","t":"code","b":[216],"m":"cld","x":[34176]},{"a":34182,"t":"code","b":[173,76,134],"m":"lda","oa":34380,"o":"raster_toggle"},{"a":34185,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":34187,"t":"code","b":[141,76,134],"m":"sta","oa":34380,"o":"raster_toggle"},{"a":34190,"t":"code","b":[208,107],"m":"bne","oa":34299,"o":"b_85FB"},{"a":34192,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":34194,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":34197,"t":"code","b":[238,71,130],"m":"inc","oa":33351,"o":"frame_count"},{"a":34200,"t":"code","b":[238,72,130],"m":"inc","oa":33352,"o":"frame_count_2"},{"a":34203,"t":"code","b":[173,12,196],"m":"lda","oa":50188,"o":"dead_p1"},{"a":34206,"t":"code","b":[13,13,196],"m":"ora","oa":50189,"o":"dead_p2"},{"a":34209,"t":"code","b":[208,7],"m":"bne","oa":34218,"o":"b_85AA"},{"a":34211,"t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count"},{"a":34214,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":34216,"t":"code","b":[208,3],"m":"bne","oa":34221,"o":"b_85AD"},{"a":34218,"l":"b_85AA","t":"code","b":[32,51,185],"m":"jsr","oa":47411,"o":"health_tick","x":[34209]},{"a":34221,"l":"b_85AD","t":"code","b":[32,119,185],"m":"jsr","oa":47479,"o":"deaths","x":[34216]},{"a":34224,"t":"code","b":[32,77,134],"m":"jsr","oa":34381,"o":"frame_tasks"},{"a":34227,"t":"code","b":[173,95,130],"m":"lda","oa":33375,"o":"redraw_due"},{"a":34230,"t":"code","b":[13,96,130],"m":"ora","oa":33376,"o":"redraw_due_2"},{"a":34233,"t":"code","b":[240,19],"m":"beq","oa":34254,"o":"b_85CE"},{"a":34235,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34237,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":34240,"t":"code","b":[141,96,130],"m":"sta","oa":33376,"o":"redraw_due_2"},{"a":34243,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34245,"t":"code","b":[141,100,130],"m":"sta","oa":33380,"o":"main_go"},{"a":34248,"t":"code","b":[173,90,130],"m":"lda","oa":33370,"o":"d022_colour"},{"a":34251,"t":"code","b":[141,34,208],"m":"sta","o":"vic_background1"},{"a":34254,"l":"b_85CE","t":"code","b":[238,76,130],"m":"inc","oa":33356,"o":"mask_dummy_1","x":[34233]},{"a":34257,"t":"code","b":[238,77,130],"m":"inc","oa":33357,"o":"mask_dummy_2"},{"a":34260,"t":"code","b":[32,10,184],"m":"jsr","oa":47114,"o":"exits_animate"},{"a":34263,"t":"code","b":[32,171,134],"m":"jsr","oa":34475,"o":"raster_arm"},{"a":34266,"t":"code","b":[32,191,146],"m":"jsr","oa":37567,"o":"players_screen_pos"},{"a":34269,"t":"code","b":[32,92,145],"m":"jsr","oa":37212,"o":"players_sprites"},{"a":34272,"t":"code","b":[32,204,145],"m":"jsr","oa":37324,"o":"sprites_place"},{"a":34275,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34277,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":34280,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34282,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":34285,"t":"code","b":[173,73,130],"m":"lda","oa":33353,"o":"tune_wanted"},{"a":34288,"t":"code","b":[240,3],"m":"beq","oa":34293,"o":"b_85F5"},{"a":34290,"t":"code","b":[32,54,160],"m":"jsr","oa":41014,"o":"tune_tick"},{"a":34293,"l":"b_85F5","t":"code","b":[32,211,204],"m":"jsr","oa":52435,"o":"sfx_play","x":[34288]},{"a":34296,"t":"code","b":[76,121,130],"m":"jmp","oa":33401,"o":"irq_exit"},{"a":34299,"l":"b_85FB","t":"code","b":[169,207],"m":"lda","o":"#$CF","x":[34190]},{"a":34301,"l":"b_85FD","t":"code","b":[205,18,208],"m":"cmp","o":"vic_raster","x":[34304]},{"a":34304,"t":"code","b":[208,251],"m":"bne","oa":34301,"o":"b_85FD"},{"a":34306,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":34308,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":34311,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34313,"t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour"},{"a":34316,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":34319,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34321,"t":"code","b":[141,41,208],"m":"sta","o":"vic_sprite2_colour"},{"a":34324,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":34327,"t":"code","b":[141,43,208],"m":"sta","o":"vic_sprite4_colour"},{"a":34330,"t":"code","b":[141,44,208],"m":"sta","o":"vic_sprite5_colour"},{"a":34333,"t":"code","b":[141,45,208],"m":"sta","o":"vic_sprite6_colour"},{"a":34336,"t":"code","b":[141,46,208],"m":"sta","o":"vic_sprite7_colour"},{"a":34339,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":34341,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":34344,"t":"code","b":[169,214],"m":"lda","o":"#$D6"},{"a":34346,"l":"b_862A","t":"code","b":[205,18,208],"m":"cmp","o":"vic_raster","x":[34349]},{"a":34349,"t":"code","b":[208,251],"m":"bne","oa":34346,"o":"b_862A"},{"a":34351,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":34353,"l":"b_8631","t":"code","b":[202],"m":"dex","x":[34354]},{"a":34354,"t":"code","b":[16,253],"m":"bpl","oa":34353,"o":"b_8631"},{"a":34356,"t":"code","b":[234],"m":"nop"},{"a":34357,"t":"code","b":[169,31],"m":"lda","o":"#$1F"},{"a":34359,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":34362,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":34364,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":34367,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":34369,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":34372,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":34374,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":34377,"t":"code","b":[76,121,130],"m":"jmp","oa":33401,"o":"irq_exit"},{"a":34380,"l":"raster_toggle","c":"Toggled by raster_frame on each entry: 0 runs the frame work, 1 the panel split.","t":"byte","b":[1],"x":[34182,34187]},{"a":34381,"l":"frame_tasks","c":"The work done once a frame from the raster interrupt: panel_flash $8C7C, $9274, $A768, $92D9, scroll_step, scroll_decide, scroll_limit.","t":"code","b":[32,124,140],"m":"jsr","oa":35964,"o":"panel_flash","x":[34224]},{"a":34384,"t":"code","b":[32,116,146],"m":"jsr","oa":37492,"o":"players_walk"},{"a":34387,"t":"code","b":[32,104,167],"m":"jsr","oa":42856,"o":"shots_move"},{"a":34390,"t":"code","b":[32,217,146],"m":"jsr","oa":37593,"o":"scroll_edges"},{"a":34393,"t":"code","b":[32,58,136],"m":"jsr","oa":34874,"o":"scroll_step"},{"a":34396,"t":"code","b":[32,46,135],"m":"jsr","oa":34606,"o":"scroll_decide"},{"a":34399,"t":"code","b":[32,233,134],"m":"jsr","oa":34537,"o":"scroll_limit"},{"a":34402,"t":"code","b":[96],"m":"rts"},{"a":34403,"l":"raster_masks","c":"Raster handler for the side masks: moves sprites 0 and 1 to the next band's Y (mask_y) and asks for the next band's line (mask_lines); after the fourth band points $0314 at raster_frame.","t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":34406,"t":"code","b":[41,129],"m":"and","o":"#$81"},{"a":34408,"t":"code","b":[201,129],"m":"cmp","o":"#$81"},{"a":34410,"t":"code","b":[240,3],"m":"beq","oa":34415,"o":"b_866F"},{"a":34412,"t":"code","b":[76,121,130],"m":"jmp","oa":33401,"o":"irq_exit"},{"a":34415,"l":"b_866F","t":"code","b":[216],"m":"cld","x":[34410]},{"a":34416,"t":"code","b":[174,45,133],"m":"ldx","oa":34093,"o":"mask_band"},{"a":34419,"t":"code","b":[189,41,133],"m":"lda","oa":34089,"o":"mask_lines,x"},{"a":34422,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":34425,"t":"code","b":[189,36,133],"m":"lda","oa":34084,"o":"mask_y,x"},{"a":34428,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":34431,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":34434,"t":"code","b":[232],"m":"inx"},{"a":34435,"t":"code","b":[142,45,133],"m":"stx","oa":34093,"o":"mask_band"},{"a":34438,"t":"code","b":[224,4],"m":"cpx","o":"#$04"},{"a":34440,"t":"code","b":[240,9],"m":"beq","oa":34451,"o":"b_8693"},{"a":34442,"t":"code","b":[170],"m":"tax"},{"a":34443,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":34445,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":34448,"t":"code","b":[76,121,130],"m":"jmp","oa":33401,"o":"irq_exit"},{"a":34451,"l":"b_8693","t":"code","b":[120],"m":"sei","x":[34440]},{"a":34452,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34454,"t":"code","b":[141,45,133],"m":"sta","oa":34093,"o":"mask_band"},{"a":34457,"t":"code","b":[169,121],"m":"lda","o":"#$79"},{"a":34459,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"p_0314"},{"a":34462,"t":"code","b":[169,133],"m":"lda","o":"#$85"},{"a":34464,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"a_0315"},{"a":34467,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":34469,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":34472,"t":"code","b":[76,121,130],"m":"jmp","oa":33401,"o":"irq_exit"},{"a":34475,"l":"raster_arm","c":"Starts the frame's raster chain: points $0314 at raster_masks, asks for line mask_first_line, sets $D011 from $8252 and the vertical scroll $882E, $D016 to multicolour with the horizontal scroll $882F, enables the raster interrupt, and sets $D018 from the screen in front ($8250) and the maze font ($8251).","t":"code","b":[120],"m":"sei","x":[34165,34263]},{"a":34476,"t":"code","b":[169,99],"m":"lda","o":"#$63"},{"a":34478,"t":"code","b":[141,20,3],"m":"sta","oa":788,"o":"p_0314"},{"a":34481,"t":"code","b":[169,134],"m":"lda","o":"#$86"},{"a":34483,"t":"code","b":[141,21,3],"m":"sta","oa":789,"o":"a_0315"},{"a":34486,"t":"code","b":[173,40,133],"m":"lda","oa":34088,"o":"mask_first_line"},{"a":34489,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":34492,"t":"code","b":[173,82,130],"m":"lda","oa":33362,"o":"d011_copy"},{"a":34495,"t":"code","b":[13,46,136],"m":"ora","oa":34862,"o":"scroll_fine_y"},{"a":34498,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":34501,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":34503,"t":"code","b":[13,47,136],"m":"ora","oa":34863,"o":"scroll_fine_x"},{"a":34506,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":34509,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34511,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":34514,"t":"code","b":[13,26,208],"m":"ora","o":"vic_irq_enable"},{"a":34517,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":34520,"t":"code","b":[173,80,130],"m":"lda","oa":33360,"o":"screen_front"},{"a":34523,"t":"code","b":[13,81,130],"m":"ora","oa":33361,"o":"font_select"},{"a":34526,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":34529,"t":"code","b":[88],"m":"cli"},{"a":34530,"t":"code","b":[96],"m":"rts"},{"a":34531,"l":"unused_wait","c":"Six bytes no traced code reaches: SEI, JSR wait_frame_40, CLI, RTS.","t":"byte","b":[120,32,244,129,88,96]},{"a":34537,"l":"scroll_limit","c":"Stops the screen scrolling in a direction the two players disagree on: with both sticks' direction bits ($8EB2, $8EB3) XORed, a vertical (or horizontal) pair that differs in both bits marks that axis as not to scroll in scroll_dir ($8837 bits 0-1 or 2-3 set).","t":"code","b":[173,178,142],"m":"lda","oa":36530,"o":"dir_p1","x":[34399]},{"a":34540,"t":"code","b":[77,179,142],"m":"eor","oa":36531,"o":"dir_p2"},{"a":34543,"t":"code","b":[73,15],"m":"eor","o":"#$0F"},{"a":34545,"t":"code","b":[141,93,130],"m":"sta","oa":33373,"o":"scratch_3"},{"a":34548,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":34550,"t":"code","b":[208,8],"m":"bne","oa":34560,"o":"b_8700"},{"a":34552,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":34555,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":34557,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":34560,"l":"b_8700","t":"code","b":[173,93,130],"m":"lda","oa":33373,"o":"scratch_3","x":[34550]},{"a":34563,"t":"code","b":[41,12],"m":"and","o":"#$0C"},{"a":34565,"t":"code","b":[208,8],"m":"bne","oa":34575,"o":"b_870F"},{"a":34567,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":34570,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":34572,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":34575,"l":"b_870F","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[34565]},{"a":34578,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":34580,"t":"code","b":[208,8],"m":"bne","oa":34590,"o":"b_871E"},{"a":34582,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":34585,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":34587,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":34590,"l":"b_871E","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[34580]},{"a":34593,"t":"code","b":[41,12],"m":"and","o":"#$0C"},{"a":34595,"t":"code","b":[208,8],"m":"bne","oa":34605,"o":"r_872D"},{"a":34597,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":34600,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":34602,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":34605,"l":"r_872D","t":"code","b":[96],"m":"rts","x":[34595]},{"a":34606,"l":"scroll_decide","c":"Decides this frame's scrolling and reads the players. With no scroll asked (scroll_dir $0F) it counts $8263 down, raising $825F every fourth frame, and reads the players every eighth. With a scroll asked it returns until the coarse step in progress is done ($8262), adjusts the vertical fine scroll on the diagonals 9 and 6, then reads the players: notes the map position ($8831/$8833 into $8832/$8834), scans the keyboard (keys_scan), takes player one's stick from $8821 and player two's from $DC00 into $8EB0/$8EB1, and their direction into $8EB2/$8EB3 ($0F while fire is held, ORed with $B66B/$B66C); then calls $AC96, $931E, $93F9 and $9638 with scroll_dir reset to $0F. $8262 is cleared while either player pushes a direction.","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[34396]},{"a":34609,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":34611,"t":"code","b":[208,26],"m":"bne","oa":34639,"o":"b_874F"},{"a":34613,"t":"code","b":[206,99,130],"m":"dec","oa":33379,"o":"idle_scroll_count"},{"a":34616,"t":"code","b":[173,99,130],"m":"lda","oa":33379,"o":"idle_scroll_count"},{"a":34619,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":34621,"t":"code","b":[208,3],"m":"bne","oa":34626,"o":"b_8742"},{"a":34623,"t":"code","b":[238,95,130],"m":"inc","oa":33375,"o":"redraw_due"},{"a":34626,"l":"b_8742","t":"code","b":[173,99,130],"m":"lda","oa":33379,"o":"idle_scroll_count","x":[34621]},{"a":34629,"t":"code","b":[208,13],"m":"bne","oa":34644,"o":"r_8754"},{"a":34631,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":34633,"t":"code","b":[141,99,130],"m":"sta","oa":33379,"o":"idle_scroll_count"},{"a":34636,"t":"code","b":[76,107,135],"m":"jmp","oa":34667,"o":"j_876B"},{"a":34639,"l":"b_874F","t":"code","b":[173,98,130],"m":"lda","oa":33378,"o":"scroll_done","x":[34611]},{"a":34642,"t":"code","b":[208,1],"m":"bne","oa":34645,"o":"b_8755"},{"a":34644,"l":"r_8754","t":"code","b":[96],"m":"rts","x":[34629]},{"a":34645,"l":"b_8755","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[34642]},{"a":34648,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":34650,"t":"code","b":[240,4],"m":"beq","oa":34656,"o":"b_8760"},{"a":34652,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":34654,"t":"code","b":[208,11],"m":"bne","oa":34667,"o":"j_876B"},{"a":34656,"l":"b_8760","t":"code","b":[173,46,136],"m":"lda","oa":34862,"o":"scroll_fine_y","x":[34650]},{"a":34659,"t":"code","b":[24],"m":"clc"},{"a":34660,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":34662,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":34664,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":34667,"l":"j_876B","t":"code","b":[173,107,182],"m":"lda","oa":46699,"o":"freeze_p1","x":[34636,34654]},{"a":34670,"t":"code","b":[141,97,130],"m":"sta","oa":33377,"o":"freeze_copy"},{"a":34673,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":34675,"t":"code","b":[141,48,136],"m":"sta","oa":34864,"o":"scroll_steps"},{"a":34678,"t":"code","b":[173,49,136],"m":"lda","oa":34865,"o":"map_x"},{"a":34681,"t":"code","b":[141,50,136],"m":"sta","oa":34866,"o":"map_x_prev"},{"a":34684,"t":"code","b":[173,51,136],"m":"lda","oa":34867,"o":"map_y"},{"a":34687,"t":"code","b":[141,52,136],"m":"sta","oa":34868,"o":"map_y_prev"},{"a":34690,"t":"code","b":[32,215,135],"m":"jsr","oa":34775,"o":"keys_scan"},{"a":34693,"t":"code","b":[173,33,136],"m":"lda","oa":34849,"o":"keys_state"},{"a":34696,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":34698,"t":"code","b":[141,176,142],"m":"sta","oa":36528,"o":"stick_p1"},{"a":34701,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":34703,"t":"code","b":[176,2],"m":"bcs","oa":34707,"o":"b_8793"},{"a":34705,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":34707,"l":"b_8793","t":"code","b":[41,15],"m":"and","o":"#$0F","x":[34703]},{"a":34709,"t":"code","b":[13,107,182],"m":"ora","oa":46699,"o":"freeze_p1"},{"a":34712,"t":"code","b":[141,178,142],"m":"sta","oa":36530,"o":"dir_p1"},{"a":34715,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":34718,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":34720,"t":"code","b":[141,177,142],"m":"sta","oa":36529,"o":"stick_p2"},{"a":34723,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":34725,"t":"code","b":[176,2],"m":"bcs","oa":34729,"o":"b_87A9"},{"a":34727,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":34729,"l":"b_87A9","t":"code","b":[41,15],"m":"and","o":"#$0F","x":[34725]},{"a":34731,"t":"code","b":[13,108,182],"m":"ora","oa":46700,"o":"freeze_p2"},{"a":34734,"t":"code","b":[141,179,142],"m":"sta","oa":36531,"o":"dir_p2"},{"a":34737,"t":"code","b":[32,150,172],"m":"jsr","oa":44182,"o":"players_frozen"},{"a":34740,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34742,"t":"code","b":[141,56,136],"m":"sta","oa":34872,"o":"scroll_dir_extra"},{"a":34745,"t":"code","b":[32,30,147],"m":"jsr","oa":37662,"o":"players_keep_close"},{"a":34748,"t":"code","b":[32,249,147],"m":"jsr","oa":37881,"o":"players_move"},{"a":34751,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":34753,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":34756,"t":"code","b":[32,56,150],"m":"jsr","oa":38456,"o":"scroll_follow"},{"a":34759,"t":"code","b":[173,179,142],"m":"lda","oa":36531,"o":"dir_p2"},{"a":34762,"t":"code","b":[45,178,142],"m":"and","oa":36530,"o":"dir_p1"},{"a":34765,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":34767,"t":"code","b":[240,5],"m":"beq","oa":34774,"o":"r_87D6"},{"a":34769,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34771,"t":"code","b":[141,98,130],"m":"sta","oa":33378,"o":"scroll_done"},{"a":34774,"l":"r_87D6","t":"code","b":[96],"m":"rts","x":[34767]},{"a":34775,"l":"keys_scan","c":"Reads the whole keyboard matrix: each of the eight rows (key_rows) is driven low on CIA 1 port A and its columns read from port B into keys_state ($8821-$8828).","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[34690]},{"a":34777,"t":"code","b":[141,2,220],"m":"sta","o":"cia1_ddr_a"},{"a":34780,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34782,"t":"code","b":[141,3,220],"m":"sta","o":"cia1_ddr_b"},{"a":34785,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":34787,"l":"b_87E3","t":"code","b":[185,17,136],"m":"lda","oa":34833,"o":"key_rows,y","x":[34800]},{"a":34790,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":34793,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":34796,"t":"code","b":[153,33,136],"m":"sta","oa":34849,"o":"keys_state,y"},{"a":34799,"t":"code","b":[136],"m":"dey"},{"a":34800,"t":"code","b":[16,241],"m":"bpl","oa":34787,"o":"b_87E3"},{"a":34802,"t":"code","b":[96],"m":"rts"},{"a":34803,"l":"unused_keys_any","c":"Thirty bytes no traced code reaches: LDA $8821, ORA each of the next seven rows, AND #$1F, STA $8EB1, RTS.","t":"byte","b":[173,33,136,13,34,136,13,35]},{"a":34811,"t":"byte","b":[136,13,36,136,13,37,136,13]},{"a":34819,"t":"byte","b":[38,136,13,39,136,13,40,136]},{"a":34827,"t":"byte","b":[41,31,141,177,142,96]},{"a":34833,"l":"key_rows","c":"The row-select bytes for keys_scan ($7F to $FE), then the eight single-bit masks $01-$80.","t":"byte","b":[127,191,223,239,247,251,253,254],"x":[34787]},{"a":34841,"t":"byte","b":[1,2,4,8,16,32,64,128]},{"a":34849,"l":"keys_state","c":"The keyboard matrix as keys_scan last read it, one byte per row (row 7 first, $8821 = the row with SPACE; $8828 = row 0 with F1). The player-one joystick also shows in $8821.","t":"byte","b":[255],"x":[34693,34796,47731]},{"a":34850,"l":"keys_row6","c":"keys_state's byte for keyboard row 6 (right SHIFT among them), the magic test's check against joystick one.","t":"byte","b":[255,255,255,255,255],"x":[47738]},{"a":34855,"l":"keys_row1","c":"keys_state's byte for keyboard row 1 (the 4 and Z keys), the check against joystick one for player two's magic keys.","t":"byte","b":[255],"x":[47766]},{"a":34856,"l":"keys_row0","c":"keys_state's byte for keyboard row 0: F1, F3, F5, F7, player two's magic keys.","t":"byte","b":[255,0,0,0,0,0],"x":[47757]},{"a":34862,"l":"scroll_fine_y","c":"The vertical fine scroll, even values 0-6, ORed into $D011.","t":"byte","b":[4],"x":[32984,34495,34656,34664,34950,34955,35047,35050,35069,35091,35097,35126,35145,35148,35162,35167,35183,35186,35200,35205,35224,35230,35255,35277,35283,35312,44903]},{"a":34863,"l":"scroll_fine_x","c":"The horizontal fine scroll, even values 0-6, ORed into $D016.","t":"byte","b":[4],"x":[32981,34503,34959,34962,34976,34981,34997,35000,35014,35019,35035,35038,35061,35066,35088,35094,35114,35119,35221,35227,35247,35252,35274,35280,35300,35305,44908]},{"a":34864,"l":"scroll_steps","c":"Counts the 2-pixel steps of the scroll in progress; at zero the coarse step is done ($8262 raised).","t":"byte","b":[8],"x":[32989,34675,34968,35006,35053,35106,35154,35192,35239,35292]},{"a":34865,"l":"map_x","c":"The maze map column at the screen's left edge (0-63).","t":"byte","b":[0],"x":[34678,34993,35031,35081,35138,35267,35324,35339,35344,36980,38304,45475,48088]},{"a":34866,"l":"map_x_prev","c":"map_x as it was when the scroll began.","t":"byte","b":[0],"x":[34681,37598,37611,38307]},{"a":34867,"l":"map_y","c":"The maze map row at the screen's top (0-63).","t":"byte","b":[0],"x":[34684,35084,35141,35179,35217,35270,35327,35367,35579,37018,38342,45458,48105]},{"a":34868,"l":"map_y_prev","c":"map_y as it was when the scroll began.","t":"byte","b":[0],"x":[34687,37633,37646,38345]},{"a":34869,"c":"Two bytes between map_y_prev and scroll_dir that no instruction refers to: $24 $14, as gauntprog loads them.","t":"byte","b":[36,20]},{"a":34871,"l":"scroll_dir","c":"The direction the screen scrolls in this frame, as joystick bits (active low): $0F is none.","t":"byte","b":[15],"x":[32935,33082,33180,34552,34557,34567,34572,34575,34582,34587,34590,34597,34602,34606,34645,34753,34874,37603,37608,37618,37623,37638,37643,37653,37658,37793,37798,37812,37817,37837,37842,37856,37861,38531,38536,38540,38545,38563,38568,38572,38577,38595,38600,38604,38609,38627,38632,38636,38641,44965]},{"a":34872,"l":"scroll_dir_extra","c":"ORed into scroll_dir by scroll_step; cleared each time the players are read.","t":"byte","b":[0],"x":[34742,34877]},{"a":34873,"l":"scroll_dir_last","c":"scroll_dir as the main loop last saw it; the loop skips the slower work on a frame whose direction changed.","t":"byte","b":[15],"x":[33085,33088,33183,33186]},{"a":34874,"l":"scroll_step","c":"Moves the screen 2 pixels in the direction scroll_dir gives: one of eight routines (up, down, left, right and the diagonals) adjusts the fine scrolls, the counters $8266/$8267 and the steps left; when a fine scroll wraps it moves map_x or map_y by one and raises $825F so that the main loop redraws the maze.","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[34393]},{"a":34877,"t":"code","b":[13,56,136],"m":"ora","oa":34872,"o":"scroll_dir_extra"},{"a":34880,"t":"code","b":[72],"m":"pha"},{"a":34881,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":34883,"t":"code","b":[208,3],"m":"bne","oa":34888,"o":"b_8848"},{"a":34885,"t":"code","b":[32,73,137],"m":"jsr","oa":35145,"o":"scroll_up"},{"a":34888,"l":"b_8848","t":"code","b":[104],"m":"pla","x":[34883]},{"a":34889,"t":"code","b":[72],"m":"pha"},{"a":34890,"t":"code","b":[201,13],"m":"cmp","o":"#$0D"},{"a":34892,"t":"code","b":[208,3],"m":"bne","oa":34897,"o":"b_8851"},{"a":34894,"t":"code","b":[32,111,137],"m":"jsr","oa":35183,"o":"scroll_down"},{"a":34897,"l":"b_8851","t":"code","b":[104],"m":"pla","x":[34892]},{"a":34898,"t":"code","b":[72],"m":"pha"},{"a":34899,"t":"code","b":[201,7],"m":"cmp","o":"#$07"},{"a":34901,"t":"code","b":[208,3],"m":"bne","oa":34906,"o":"b_885A"},{"a":34903,"t":"code","b":[32,181,136],"m":"jsr","oa":34997,"o":"scroll_right"},{"a":34906,"l":"b_885A","t":"code","b":[104],"m":"pla","x":[34901]},{"a":34907,"t":"code","b":[72],"m":"pha"},{"a":34908,"t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":34910,"t":"code","b":[208,3],"m":"bne","oa":34915,"o":"b_8863"},{"a":34912,"t":"code","b":[32,143,136],"m":"jsr","oa":34959,"o":"scroll_left"},{"a":34915,"l":"b_8863","t":"code","b":[104],"m":"pla","x":[34910]},{"a":34916,"t":"code","b":[72],"m":"pha"},{"a":34917,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":34919,"t":"code","b":[208,3],"m":"bne","oa":34924,"o":"b_886C"},{"a":34921,"t":"code","b":[32,202,137],"m":"jsr","oa":35274,"o":"scroll_down_left"},{"a":34924,"l":"b_886C","t":"code","b":[104],"m":"pla","x":[34919]},{"a":34925,"t":"code","b":[72],"m":"pha"},{"a":34926,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":34928,"t":"code","b":[208,3],"m":"bne","oa":34933,"o":"b_8875"},{"a":34930,"t":"code","b":[32,219,136],"m":"jsr","oa":35035,"o":"scroll_down_right"},{"a":34933,"l":"b_8875","t":"code","b":[104],"m":"pla","x":[34928]},{"a":34934,"t":"code","b":[72],"m":"pha"},{"a":34935,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":34937,"t":"code","b":[208,3],"m":"bne","oa":34942,"o":"b_887E"},{"a":34939,"t":"code","b":[32,16,137],"m":"jsr","oa":35088,"o":"scroll_up_right"},{"a":34942,"l":"b_887E","t":"code","b":[104],"m":"pla","x":[34937]},{"a":34943,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":34945,"t":"code","b":[208,3],"m":"bne","oa":34950,"o":"b_8886"},{"a":34947,"t":"code","b":[32,149,137],"m":"jsr","oa":35221,"o":"scroll_up_left"},{"a":34950,"l":"b_8886","t":"code","b":[173,46,136],"m":"lda","oa":34862,"o":"scroll_fine_y","x":[34945]},{"a":34953,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":34955,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":34958,"t":"code","b":[96],"m":"rts"},{"a":34959,"l":"scroll_left","c":"Fine scroll X up by 2; when it wraps to 6 the map moves one column (map_x down).","t":"code","b":[238,47,136],"m":"inc","oa":34863,"o":"scroll_fine_x","x":[34912]},{"a":34962,"t":"code","b":[238,47,136],"m":"inc","oa":34863,"o":"scroll_fine_x"},{"a":34965,"t":"code","b":[206,102,130],"m":"dec","oa":33382,"o":"scroll_x_units"},{"a":34968,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":34971,"t":"code","b":[208,3],"m":"bne","oa":34976,"o":"b_88A0"},{"a":34973,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":34976,"l":"b_88A0","t":"code","b":[173,47,136],"m":"lda","oa":34863,"o":"scroll_fine_x","x":[34971]},{"a":34979,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":34981,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":34984,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":34986,"t":"code","b":[208,8],"m":"bne","oa":34996,"o":"r_88B4"},{"a":34988,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":34990,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":34993,"t":"code","b":[206,49,136],"m":"dec","oa":34865,"o":"map_x"},{"a":34996,"l":"r_88B4","t":"code","b":[96],"m":"rts","x":[34986]},{"a":34997,"l":"scroll_right","c":"Fine scroll X down by 2; when it wraps to 0 the map moves one column (map_x up).","t":"code","b":[206,47,136],"m":"dec","oa":34863,"o":"scroll_fine_x","x":[34903]},{"a":35000,"t":"code","b":[206,47,136],"m":"dec","oa":34863,"o":"scroll_fine_x"},{"a":35003,"t":"code","b":[238,102,130],"m":"inc","oa":33382,"o":"scroll_x_units"},{"a":35006,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35009,"t":"code","b":[208,3],"m":"bne","oa":35014,"o":"b_88C6"},{"a":35011,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35014,"l":"b_88C6","t":"code","b":[173,47,136],"m":"lda","oa":34863,"o":"scroll_fine_x","x":[35009]},{"a":35017,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35019,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":35022,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":35024,"t":"code","b":[208,8],"m":"bne","oa":35034,"o":"r_88DA"},{"a":35026,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35028,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35031,"t":"code","b":[238,49,136],"m":"inc","oa":34865,"o":"map_x"},{"a":35034,"l":"r_88DA","t":"code","b":[96],"m":"rts","x":[35024]},{"a":35035,"l":"scroll_down_right","c":"Both fine scrolls down by 2; at 0 the map moves right and down.","t":"code","b":[206,47,136],"m":"dec","oa":34863,"o":"scroll_fine_x","x":[34930]},{"a":35038,"t":"code","b":[206,47,136],"m":"dec","oa":34863,"o":"scroll_fine_x"},{"a":35041,"t":"code","b":[238,102,130],"m":"inc","oa":33382,"o":"scroll_x_units"},{"a":35044,"t":"code","b":[238,103,130],"m":"inc","oa":33383,"o":"scroll_y_units"},{"a":35047,"t":"code","b":[206,46,136],"m":"dec","oa":34862,"o":"scroll_fine_y"},{"a":35050,"t":"code","b":[206,46,136],"m":"dec","oa":34862,"o":"scroll_fine_y"},{"a":35053,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35056,"t":"code","b":[208,3],"m":"bne","oa":35061,"o":"b_88F5"},{"a":35058,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35061,"l":"b_88F5","t":"code","b":[173,47,136],"m":"lda","oa":34863,"o":"scroll_fine_x","x":[35056]},{"a":35064,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35066,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":35069,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":35072,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":35074,"t":"code","b":[208,11],"m":"bne","oa":35087,"o":"r_890F"},{"a":35076,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35078,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35081,"t":"code","b":[238,49,136],"m":"inc","oa":34865,"o":"map_x"},{"a":35084,"t":"code","b":[238,51,136],"m":"inc","oa":34867,"o":"map_y"},{"a":35087,"l":"r_890F","t":"code","b":[96],"m":"rts","x":[35074]},{"a":35088,"l":"scroll_up_right","c":"X fine scroll down and Y up; at 0 the map moves right and up (Y from diag_y).","t":"code","b":[206,47,136],"m":"dec","oa":34863,"o":"scroll_fine_x","x":[34939]},{"a":35091,"t":"code","b":[238,46,136],"m":"inc","oa":34862,"o":"scroll_fine_y"},{"a":35094,"t":"code","b":[206,47,136],"m":"dec","oa":34863,"o":"scroll_fine_x"},{"a":35097,"t":"code","b":[238,46,136],"m":"inc","oa":34862,"o":"scroll_fine_y"},{"a":35100,"t":"code","b":[238,102,130],"m":"inc","oa":33382,"o":"scroll_x_units"},{"a":35103,"t":"code","b":[206,103,130],"m":"dec","oa":33383,"o":"scroll_y_units"},{"a":35106,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35109,"t":"code","b":[208,3],"m":"bne","oa":35114,"o":"b_892A"},{"a":35111,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35114,"l":"b_892A","t":"code","b":[173,47,136],"m":"lda","oa":34863,"o":"scroll_fine_x","x":[35109]},{"a":35117,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35119,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":35122,"t":"code","b":[170],"m":"tax"},{"a":35123,"t":"code","b":[189,3,138],"m":"lda","oa":35331,"o":"diag_y,x"},{"a":35126,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":35129,"t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":35131,"t":"code","b":[208,11],"m":"bne","oa":35144,"o":"r_8948"},{"a":35133,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35135,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35138,"t":"code","b":[238,49,136],"m":"inc","oa":34865,"o":"map_x"},{"a":35141,"t":"code","b":[206,51,136],"m":"dec","oa":34867,"o":"map_y"},{"a":35144,"l":"r_8948","t":"code","b":[96],"m":"rts","x":[35131]},{"a":35145,"l":"scroll_up","c":"Fine scroll Y up by 2; at 6 the map moves up a row.","t":"code","b":[238,46,136],"m":"inc","oa":34862,"o":"scroll_fine_y","x":[34885]},{"a":35148,"t":"code","b":[238,46,136],"m":"inc","oa":34862,"o":"scroll_fine_y"},{"a":35151,"t":"code","b":[206,103,130],"m":"dec","oa":33383,"o":"scroll_y_units"},{"a":35154,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35157,"t":"code","b":[208,3],"m":"bne","oa":35162,"o":"b_895A"},{"a":35159,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35162,"l":"b_895A","t":"code","b":[173,46,136],"m":"lda","oa":34862,"o":"scroll_fine_y","x":[35157]},{"a":35165,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35167,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":35170,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":35172,"t":"code","b":[208,8],"m":"bne","oa":35182,"o":"r_896E"},{"a":35174,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35176,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35179,"t":"code","b":[206,51,136],"m":"dec","oa":34867,"o":"map_y"},{"a":35182,"l":"r_896E","t":"code","b":[96],"m":"rts","x":[35172]},{"a":35183,"l":"scroll_down","c":"Fine scroll Y down by 2; at 0 the map moves down a row.","t":"code","b":[206,46,136],"m":"dec","oa":34862,"o":"scroll_fine_y","x":[34894]},{"a":35186,"t":"code","b":[206,46,136],"m":"dec","oa":34862,"o":"scroll_fine_y"},{"a":35189,"t":"code","b":[238,103,130],"m":"inc","oa":33383,"o":"scroll_y_units"},{"a":35192,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35195,"t":"code","b":[208,3],"m":"bne","oa":35200,"o":"b_8980"},{"a":35197,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35200,"l":"b_8980","t":"code","b":[173,46,136],"m":"lda","oa":34862,"o":"scroll_fine_y","x":[35195]},{"a":35203,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35205,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":35208,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":35210,"t":"code","b":[208,8],"m":"bne","oa":35220,"o":"r_8994"},{"a":35212,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35214,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35217,"t":"code","b":[238,51,136],"m":"inc","oa":34867,"o":"map_y"},{"a":35220,"l":"r_8994","t":"code","b":[96],"m":"rts","x":[35210]},{"a":35221,"l":"scroll_up_left","c":"Both fine scrolls up by 2; at 6 the map moves left and up.","t":"code","b":[238,47,136],"m":"inc","oa":34863,"o":"scroll_fine_x","x":[34947]},{"a":35224,"t":"code","b":[238,46,136],"m":"inc","oa":34862,"o":"scroll_fine_y"},{"a":35227,"t":"code","b":[238,47,136],"m":"inc","oa":34863,"o":"scroll_fine_x"},{"a":35230,"t":"code","b":[238,46,136],"m":"inc","oa":34862,"o":"scroll_fine_y"},{"a":35233,"t":"code","b":[206,102,130],"m":"dec","oa":33382,"o":"scroll_x_units"},{"a":35236,"t":"code","b":[206,103,130],"m":"dec","oa":33383,"o":"scroll_y_units"},{"a":35239,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35242,"t":"code","b":[208,3],"m":"bne","oa":35247,"o":"b_89AF"},{"a":35244,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35247,"l":"b_89AF","t":"code","b":[173,47,136],"m":"lda","oa":34863,"o":"scroll_fine_x","x":[35242]},{"a":35250,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35252,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":35255,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":35258,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":35260,"t":"code","b":[208,11],"m":"bne","oa":35273,"o":"r_89C9"},{"a":35262,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35264,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35267,"t":"code","b":[206,49,136],"m":"dec","oa":34865,"o":"map_x"},{"a":35270,"t":"code","b":[206,51,136],"m":"dec","oa":34867,"o":"map_y"},{"a":35273,"l":"r_89C9","t":"code","b":[96],"m":"rts","x":[35260]},{"a":35274,"l":"scroll_down_left","c":"X fine scroll up and Y down; at 6 the map moves left and down (Y from diag_y).","t":"code","b":[238,47,136],"m":"inc","oa":34863,"o":"scroll_fine_x","x":[34921]},{"a":35277,"t":"code","b":[206,46,136],"m":"dec","oa":34862,"o":"scroll_fine_y"},{"a":35280,"t":"code","b":[238,47,136],"m":"inc","oa":34863,"o":"scroll_fine_x"},{"a":35283,"t":"code","b":[206,46,136],"m":"dec","oa":34862,"o":"scroll_fine_y"},{"a":35286,"t":"code","b":[206,102,130],"m":"dec","oa":33382,"o":"scroll_x_units"},{"a":35289,"t":"code","b":[238,103,130],"m":"inc","oa":33383,"o":"scroll_y_units"},{"a":35292,"t":"code","b":[206,48,136],"m":"dec","oa":34864,"o":"scroll_steps"},{"a":35295,"t":"code","b":[208,3],"m":"bne","oa":35300,"o":"b_89E4"},{"a":35297,"t":"code","b":[238,98,130],"m":"inc","oa":33378,"o":"scroll_done"},{"a":35300,"l":"b_89E4","t":"code","b":[173,47,136],"m":"lda","oa":34863,"o":"scroll_fine_x","x":[35295]},{"a":35303,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":35305,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":35308,"t":"code","b":[170],"m":"tax"},{"a":35309,"t":"code","b":[189,3,138],"m":"lda","oa":35331,"o":"diag_y,x"},{"a":35312,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":35315,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":35317,"t":"code","b":[208,11],"m":"bne","oa":35330,"o":"r_8A02"},{"a":35319,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":35321,"t":"code","b":[141,95,130],"m":"sta","oa":33375,"o":"redraw_due"},{"a":35324,"t":"code","b":[206,49,136],"m":"dec","oa":34865,"o":"map_x"},{"a":35327,"t":"code","b":[238,51,136],"m":"inc","oa":34867,"o":"map_y"},{"a":35330,"l":"r_8A02","t":"code","b":[96],"m":"rts","x":[35317]},{"a":35331,"l":"diag_y","c":"The vertical fine scroll that goes with each horizontal one on a diagonal step: 7 7 5 5 3 3 1 1.","t":"byte","b":[7,7,5,5,3,3,1,1],"x":[35123,35309]},{"a":35339,"l":"maze_draw","c":"Redraws the maze into the screen behind the one on show and swaps them: works out the map address of the top-left cell ($2000 + map_y x 64 + map_x), rewrites the operands of twenty LDA/STA pairs (one per screen row, offsets from maze_row_ops), and copies 33 columns of 20 rows from the 64 x 64 map to the screen at column 3; the map wraps at its edges through map_wrap_x. Draws into $4000 or $4400 by $FF, flipping it, and sets $8250 so that the raster chain shows the new screen.","t":"code","b":[173,49,136],"m":"lda","oa":34865,"o":"map_x","x":[33019,33061,33168,36562]},{"a":35342,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":35344,"t":"code","b":[141,49,136],"m":"sta","oa":34865,"o":"map_x"},{"a":35347,"t":"code","b":[141,121,138],"m":"sta","oa":35449,"o":"copy_col_wrap"},{"a":35350,"t":"code","b":[141,77,139],"m":"sta","oa":35661,"o":"copy_col_wrap_b"},{"a":35353,"t":"code","b":[141,254,139],"m":"sta","oa":35838,"o":"colour_col_wrap"},{"a":35356,"t":"code","b":[165,255],"m":"lda","oa":255,"o":"zpa_FF"},{"a":35358,"t":"code","b":[240,3],"m":"beq","oa":35363,"o":"b_8A23"},{"a":35360,"t":"code","b":[76,247,138],"m":"jmp","oa":35575,"o":"maze_draw_4400"},{"a":35363,"l":"b_8A23","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[35358]},{"a":35365,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":35367,"t":"code","b":[173,51,136],"m":"lda","oa":34867,"o":"map_y"},{"a":35370,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":35372,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35373,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":35375,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35376,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":35378,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":35380,"t":"code","b":[141,2,140],"m":"sta","oa":35842,"o":"colour_src_hi"},{"a":35383,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":35385,"t":"code","b":[141,125,138],"m":"sta","oa":35453,"o":"copy_src_hi"},{"a":35388,"t":"code","b":[165,251],"m":"lda","oa":251,"o":"zpa_FB"},{"a":35390,"t":"code","b":[141,124,138],"m":"sta","oa":35452,"o":"copy_src_lo"},{"a":35393,"t":"code","b":[141,1,140],"m":"sta","oa":35841,"o":"colour_src_lo"},{"a":35396,"t":"code","b":[165,255],"m":"lda","oa":255,"o":"zpa_FF"},{"a":35398,"t":"code","b":[73,4],"m":"eor","o":"#$04"},{"a":35400,"t":"code","b":[133,255],"m":"sta","oa":255,"o":"zpa_FF"},{"a":35402,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":35404,"t":"code","b":[141,80,130],"m":"sta","oa":33360,"o":"screen_front"},{"a":35407,"t":"code","b":[162,19],"m":"ldx","o":"#$13"},{"a":35409,"l":"b_8A51","t":"code","b":[188,203,139],"m":"ldy","oa":35787,"o":"maze_row_ops,x","x":[35444]},{"a":35412,"t":"code","b":[185,1,140],"m":"lda","oa":35841,"o":"colour_src_lo,y"},{"a":35415,"t":"code","b":[24],"m":"clc"},{"a":35416,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":35418,"t":"code","b":[153,7,140],"m":"sta","oa":35847,"o":"colour_src2_lo,y"},{"a":35421,"t":"code","b":[153,130,138],"m":"sta","oa":35458,"o":"copy_src2_lo,y"},{"a":35424,"t":"code","b":[185,2,140],"m":"lda","oa":35842,"o":"colour_src_hi,y"},{"a":35427,"t":"code","b":[144,6],"m":"bcc","oa":35435,"o":"b_8A6B"},{"a":35429,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35431,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":35433,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":35435,"l":"b_8A6B","t":"code","b":[153,8,140],"m":"sta","oa":35848,"o":"colour_rows,y","x":[35427]},{"a":35438,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":35440,"t":"code","b":[153,131,138],"m":"sta","oa":35459,"o":"copy_rows,y"},{"a":35443,"t":"code","b":[202],"m":"dex"},{"a":35444,"t":"code","b":[208,219],"m":"bne","oa":35409,"o":"b_8A51"},{"a":35446,"t":"code","b":[162,32],"m":"ldx","o":"#$20"},{"a":35448,"l":"b_8A78","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[35572]},{"a":35449,"t":"note","l":"copy_col_wrap","c":"The operand of maze_draw's LDY map_wrap_x,X, rewritten with map_x so that the copy starts at the screen's left column.","note":"inside the item at $8A78","x":[35347]},{"a":35451,"t":"code","b":[185,0,48],"m":"lda","oa":12288,"o":"f_3000,y"},{"a":35452,"t":"note","l":"copy_src_lo","c":"The low byte of the first row's source in maze_draw's copy loop (the character map at $3000).","note":"inside the item at $8A7B","x":[35390]},{"a":35453,"t":"note","l":"copy_src_hi","c":"The high byte of that source, then the first row's STA.","note":"inside the item at $8A7B","x":[35385]},{"a":35454,"t":"code","b":[157,3,64],"m":"sta","oa":16387,"o":"f_4003,x"},{"a":35457,"t":"code","b":[185,64,48],"m":"lda","oa":12352,"o":"f_3040,y"},{"a":35458,"t":"note","l":"copy_src2_lo","c":"The second row's source operand, low byte; each row's pair of operands is rewritten by maze_draw through maze_row_ops.","note":"inside the item at $8A81","x":[35421]},{"a":35459,"t":"note","l":"copy_rows","c":"The rest of maze_draw's unrolled copy into the screen at $4000: twenty rows of LDA/STA pairs.","note":"inside the item at $8A81","x":[35440]},{"a":35460,"t":"code","b":[157,43,64],"m":"sta","oa":16427,"o":"f_402B,x"},{"a":35463,"t":"code","b":[185,128,48],"m":"lda","oa":12416,"o":"f_3080,y"},{"a":35466,"t":"code","b":[157,83,64],"m":"sta","oa":16467,"o":"f_4053,x"},{"a":35469,"t":"code","b":[185,192,48],"m":"lda","oa":12480,"o":"f_30C0,y"},{"a":35472,"t":"code","b":[157,123,64],"m":"sta","oa":16507,"o":"f_407B,x"},{"a":35475,"t":"code","b":[185,0,49],"m":"lda","oa":12544,"o":"f_3100,y"},{"a":35478,"t":"code","b":[157,163,64],"m":"sta","oa":16547,"o":"f_40A3,x"},{"a":35481,"t":"code","b":[185,64,49],"m":"lda","oa":12608,"o":"f_3140,y"},{"a":35484,"t":"code","b":[157,203,64],"m":"sta","oa":16587,"o":"f_40CB,x"},{"a":35487,"t":"code","b":[185,128,49],"m":"lda","oa":12672,"o":"f_3180,y"},{"a":35490,"t":"code","b":[157,243,64],"m":"sta","oa":16627,"o":"f_40F3,x"},{"a":35493,"t":"code","b":[185,192,49],"m":"lda","oa":12736,"o":"f_31C0,y"},{"a":35496,"t":"code","b":[157,27,65],"m":"sta","oa":16667,"o":"f_411B,x"},{"a":35499,"t":"code","b":[185,0,50],"m":"lda","oa":12800,"o":"f_3200,y"},{"a":35502,"t":"code","b":[157,67,65],"m":"sta","oa":16707,"o":"f_4143,x"},{"a":35505,"t":"code","b":[185,64,50],"m":"lda","oa":12864,"o":"f_3240,y"},{"a":35508,"t":"code","b":[157,107,65],"m":"sta","oa":16747,"o":"f_416B,x"},{"a":35511,"t":"code","b":[185,128,50],"m":"lda","oa":12928,"o":"f_3280,y"},{"a":35514,"t":"code","b":[157,147,65],"m":"sta","oa":16787,"o":"f_4193,x"},{"a":35517,"t":"code","b":[185,192,50],"m":"lda","oa":12992,"o":"f_32C0,y"},{"a":35520,"t":"code","b":[157,187,65],"m":"sta","oa":16827,"o":"f_41BB,x"},{"a":35523,"t":"code","b":[185,0,51],"m":"lda","oa":13056,"o":"f_3300,y"},{"a":35526,"t":"code","b":[157,227,65],"m":"sta","oa":16867,"o":"f_41E3,x"},{"a":35529,"t":"code","b":[185,64,51],"m":"lda","oa":13120,"o":"f_3340,y"},{"a":35532,"t":"code","b":[157,11,66],"m":"sta","oa":16907,"o":"f_420B,x"},{"a":35535,"t":"code","b":[185,128,51],"m":"lda","oa":13184,"o":"f_3380,y"},{"a":35538,"t":"code","b":[157,51,66],"m":"sta","oa":16947,"o":"f_4233,x"},{"a":35541,"t":"code","b":[185,192,51],"m":"lda","oa":13248,"o":"f_33C0,y"},{"a":35544,"t":"code","b":[157,91,66],"m":"sta","oa":16987,"o":"f_425B,x"},{"a":35547,"t":"code","b":[185,0,52],"m":"lda","oa":13312,"o":"f_3400,y"},{"a":35550,"t":"code","b":[157,131,66],"m":"sta","oa":17027,"o":"f_4283,x"},{"a":35553,"t":"code","b":[185,64,52],"m":"lda","oa":13376,"o":"f_3440,y"},{"a":35556,"t":"code","b":[157,171,66],"m":"sta","oa":17067,"o":"f_42AB,x"},{"a":35559,"t":"code","b":[185,128,52],"m":"lda","oa":13440,"o":"f_3480,y"},{"a":35562,"t":"code","b":[157,211,66],"m":"sta","oa":17107,"o":"f_42D3,x"},{"a":35565,"t":"code","b":[185,192,52],"m":"lda","oa":13504,"o":"f_34C0,y"},{"a":35568,"t":"code","b":[157,251,66],"m":"sta","oa":17147,"o":"f_42FB,x"},{"a":35571,"t":"code","b":[202],"m":"dex"},{"a":35572,"t":"code","b":[16,130],"m":"bpl","oa":35448,"o":"b_8A78"},{"a":35574,"t":"code","b":[96],"m":"rts"},{"a":35575,"l":"maze_draw_4400","c":"The second half of maze_draw: the same copy into the screen at $4400.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[35360]},{"a":35577,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":35579,"t":"code","b":[173,51,136],"m":"lda","oa":34867,"o":"map_y"},{"a":35582,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":35584,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35585,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":35587,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35588,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":35590,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":35592,"t":"code","b":[141,2,140],"m":"sta","oa":35842,"o":"colour_src_hi"},{"a":35595,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":35597,"t":"code","b":[141,81,139],"m":"sta","oa":35665,"o":"copy_src_hi_b"},{"a":35600,"t":"code","b":[165,251],"m":"lda","oa":251,"o":"zpa_FB"},{"a":35602,"t":"code","b":[141,80,139],"m":"sta","oa":35664,"o":"copy_src_lo_b"},{"a":35605,"t":"code","b":[141,1,140],"m":"sta","oa":35841,"o":"colour_src_lo"},{"a":35608,"t":"code","b":[165,255],"m":"lda","oa":255,"o":"zpa_FF"},{"a":35610,"t":"code","b":[73,4],"m":"eor","o":"#$04"},{"a":35612,"t":"code","b":[133,255],"m":"sta","oa":255,"o":"zpa_FF"},{"a":35614,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":35616,"t":"code","b":[141,80,130],"m":"sta","oa":33360,"o":"screen_front"},{"a":35619,"t":"code","b":[162,19],"m":"ldx","o":"#$13"},{"a":35621,"l":"b_8B25","t":"code","b":[188,203,139],"m":"ldy","oa":35787,"o":"maze_row_ops,x","x":[35656]},{"a":35624,"t":"code","b":[185,1,140],"m":"lda","oa":35841,"o":"colour_src_lo,y"},{"a":35627,"t":"code","b":[24],"m":"clc"},{"a":35628,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":35630,"t":"code","b":[153,7,140],"m":"sta","oa":35847,"o":"colour_src2_lo,y"},{"a":35633,"t":"code","b":[153,86,139],"m":"sta","oa":35670,"o":"copy_src2_lo_b,y"},{"a":35636,"t":"code","b":[185,2,140],"m":"lda","oa":35842,"o":"colour_src_hi,y"},{"a":35639,"t":"code","b":[144,6],"m":"bcc","oa":35647,"o":"b_8B3F"},{"a":35641,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35643,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":35645,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":35647,"l":"b_8B3F","t":"code","b":[153,8,140],"m":"sta","oa":35848,"o":"colour_rows,y","x":[35639]},{"a":35650,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":35652,"t":"code","b":[153,87,139],"m":"sta","oa":35671,"o":"copy_rows_b,y"},{"a":35655,"t":"code","b":[202],"m":"dex"},{"a":35656,"t":"code","b":[208,219],"m":"bne","oa":35621,"o":"b_8B25"},{"a":35658,"t":"code","b":[162,32],"m":"ldx","o":"#$20"},{"a":35660,"l":"b_8B4C","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[35784]},{"a":35661,"t":"note","l":"copy_col_wrap_b","c":"The same column operand in the copy into the screen at $4400.","note":"inside the item at $8B4C","x":[35350]},{"a":35663,"t":"code","b":[185,0,48],"m":"lda","oa":12288,"o":"f_3000,y"},{"a":35664,"t":"note","l":"copy_src_lo_b","c":"The first row's source, low byte, for the $4400 copy.","note":"inside the item at $8B4F","x":[35602]},{"a":35665,"t":"note","l":"copy_src_hi_b","c":"Its high byte.","note":"inside the item at $8B4F","x":[35597]},{"a":35666,"t":"code","b":[157,3,68],"m":"sta","oa":17411,"o":"f_4403,x"},{"a":35669,"t":"code","b":[185,64,48],"m":"lda","oa":12352,"o":"f_3040,y"},{"a":35670,"t":"note","l":"copy_src2_lo_b","c":"The second row's source, low byte, for the $4400 copy.","note":"inside the item at $8B55","x":[35633]},{"a":35671,"t":"note","l":"copy_rows_b","c":"The rest of the unrolled copy into the screen at $4400.","note":"inside the item at $8B55","x":[35652]},{"a":35672,"t":"code","b":[157,43,68],"m":"sta","oa":17451,"o":"f_442B,x"},{"a":35675,"t":"code","b":[185,128,48],"m":"lda","oa":12416,"o":"f_3080,y"},{"a":35678,"t":"code","b":[157,83,68],"m":"sta","oa":17491,"o":"f_4453,x"},{"a":35681,"t":"code","b":[185,192,48],"m":"lda","oa":12480,"o":"f_30C0,y"},{"a":35684,"t":"code","b":[157,123,68],"m":"sta","oa":17531,"o":"f_447B,x"},{"a":35687,"t":"code","b":[185,0,49],"m":"lda","oa":12544,"o":"f_3100,y"},{"a":35690,"t":"code","b":[157,163,68],"m":"sta","oa":17571,"o":"f_44A3,x"},{"a":35693,"t":"code","b":[185,64,49],"m":"lda","oa":12608,"o":"f_3140,y"},{"a":35696,"t":"code","b":[157,203,68],"m":"sta","oa":17611,"o":"f_44CB,x"},{"a":35699,"t":"code","b":[185,128,49],"m":"lda","oa":12672,"o":"f_3180,y"},{"a":35702,"t":"code","b":[157,243,68],"m":"sta","oa":17651,"o":"f_44F3,x"},{"a":35705,"t":"code","b":[185,192,49],"m":"lda","oa":12736,"o":"f_31C0,y"},{"a":35708,"t":"code","b":[157,27,69],"m":"sta","oa":17691,"o":"f_451B,x"},{"a":35711,"t":"code","b":[185,0,50],"m":"lda","oa":12800,"o":"f_3200,y"},{"a":35714,"t":"code","b":[157,67,69],"m":"sta","oa":17731,"o":"f_4543,x"},{"a":35717,"t":"code","b":[185,64,50],"m":"lda","oa":12864,"o":"f_3240,y"},{"a":35720,"t":"code","b":[157,107,69],"m":"sta","oa":17771,"o":"f_456B,x"},{"a":35723,"t":"code","b":[185,128,50],"m":"lda","oa":12928,"o":"f_3280,y"},{"a":35726,"t":"code","b":[157,147,69],"m":"sta","oa":17811,"o":"f_4593,x"},{"a":35729,"t":"code","b":[185,192,50],"m":"lda","oa":12992,"o":"f_32C0,y"},{"a":35732,"t":"code","b":[157,187,69],"m":"sta","oa":17851,"o":"f_45BB,x"},{"a":35735,"t":"code","b":[185,0,51],"m":"lda","oa":13056,"o":"f_3300,y"},{"a":35738,"t":"code","b":[157,227,69],"m":"sta","oa":17891,"o":"f_45E3,x"},{"a":35741,"t":"code","b":[185,64,51],"m":"lda","oa":13120,"o":"f_3340,y"},{"a":35744,"t":"code","b":[157,11,70],"m":"sta","oa":17931,"o":"f_460B,x"},{"a":35747,"t":"code","b":[185,128,51],"m":"lda","oa":13184,"o":"f_3380,y"},{"a":35750,"t":"code","b":[157,51,70],"m":"sta","oa":17971,"o":"f_4633,x"},{"a":35753,"t":"code","b":[185,192,51],"m":"lda","oa":13248,"o":"f_33C0,y"},{"a":35756,"t":"code","b":[157,91,70],"m":"sta","oa":18011,"o":"f_465B,x"},{"a":35759,"t":"code","b":[185,0,52],"m":"lda","oa":13312,"o":"f_3400,y"},{"a":35762,"t":"code","b":[157,131,70],"m":"sta","oa":18051,"o":"f_4683,x"},{"a":35765,"t":"code","b":[185,64,52],"m":"lda","oa":13376,"o":"f_3440,y"},{"a":35768,"t":"code","b":[157,171,70],"m":"sta","oa":18091,"o":"f_46AB,x"},{"a":35771,"t":"code","b":[185,128,52],"m":"lda","oa":13440,"o":"f_3480,y"},{"a":35774,"t":"code","b":[157,211,70],"m":"sta","oa":18131,"o":"f_46D3,x"},{"a":35777,"t":"code","b":[185,192,52],"m":"lda","oa":13504,"o":"f_34C0,y"},{"a":35780,"t":"code","b":[157,251,70],"m":"sta","oa":18171,"o":"f_46FB,x"},{"a":35783,"t":"code","b":[202],"m":"dex"},{"a":35784,"t":"code","b":[16,130],"m":"bpl","oa":35660,"o":"b_8B4C"},{"a":35786,"t":"code","b":[96],"m":"rts"},{"a":35787,"l":"maze_row_ops","c":"The offset of each row's LDA/STA pair inside the copy loops, $72 down to $00 in sixes; maze_draw rewrites each pair's operands through it.","t":"byte","b":[114,108,102,96,90,84,78,72],"x":[35409,35621]},{"a":35795,"t":"byte","b":[66,60,54,48,42,36,30,24]},{"a":35803,"t":"byte","b":[18,12,6,0]},{"a":35807,"l":"wait_raster","c":"Waits for the raster interrupt's flag $8264, clears it, then waits until the beam is on the line in A (in the top 256 lines).","t":"code","b":[72],"m":"pha","x":[33038,33058,33165,33275,34162]},{"a":35808,"l":"b_8BE0","t":"code","b":[173,100,130],"m":"lda","oa":33380,"o":"main_go","x":[35811]},{"a":35811,"t":"code","b":[240,251],"m":"beq","oa":35808,"o":"b_8BE0"},{"a":35813,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":35815,"t":"code","b":[141,100,130],"m":"sta","oa":33380,"o":"main_go"},{"a":35818,"t":"code","b":[104],"m":"pla"},{"a":35819,"l":"b_8BEB","t":"code","b":[44,17,208],"m":"bit","o":"vic_control1","x":[35822]},{"a":35822,"t":"code","b":[48,251],"m":"bmi","oa":35819,"o":"b_8BEB"},{"a":35824,"l":"b_8BF0","t":"code","b":[44,18,208],"m":"bit","o":"vic_raster","x":[35827]},{"a":35827,"t":"code","b":[48,251],"m":"bmi","oa":35824,"o":"b_8BF0"},{"a":35829,"l":"b_8BF5","t":"code","b":[205,18,208],"m":"cmp","o":"vic_raster","x":[35832]},{"a":35832,"t":"code","b":[208,251],"m":"bne","oa":35829,"o":"b_8BF5"},{"a":35834,"t":"code","b":[96],"m":"rts"},{"a":35835,"l":"maze_colours","c":"Copies the colour of each visible maze cell into colour RAM: the same 33 x 20 window as maze_draw, read from the colour map at $2000 + offset (the operands are set by maze_draw) into $D803 onward.","t":"code","b":[162,32],"m":"ldx","o":"#$20","x":[33022,33064,33171,36565]},{"a":35837,"l":"b_8BFD","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[35961]},{"a":35838,"t":"note","l":"colour_col_wrap","c":"The column operand in maze_colours' LDY map_wrap_x,X.","note":"inside the item at $8BFD","x":[35353]},{"a":35840,"t":"code","b":[185,0,32],"m":"lda","oa":8192,"o":"f_2000,y"},{"a":35841,"t":"note","l":"colour_src_lo","c":"The low byte of the first row's source in maze_colours (the colour map at $2000).","note":"inside the item at $8C00","x":[35393,35412,35605,35624]},{"a":35842,"t":"note","l":"colour_src_hi","c":"The high byte of maze_colours' first source address, in the colour map.","note":"inside the item at $8C00","x":[35380,35424,35592,35636]},{"a":35843,"t":"code","b":[157,3,216],"m":"sta","o":"$D803,x"},{"a":35846,"t":"code","b":[185,64,32],"m":"lda","oa":8256,"o":"f_2040,y"},{"a":35847,"t":"note","l":"colour_src2_lo","c":"The second row's source operand, low byte.","note":"inside the item at $8C06","x":[35418,35630]},{"a":35848,"t":"note","l":"colour_rows","c":"The rest of maze_colours' unrolled copy into colour RAM: twenty rows.","note":"inside the item at $8C06","x":[35435,35647]},{"a":35849,"t":"code","b":[157,43,216],"m":"sta","o":"$D82B,x"},{"a":35852,"t":"code","b":[185,128,32],"m":"lda","oa":8320,"o":"f_2080,y"},{"a":35855,"t":"code","b":[157,83,216],"m":"sta","o":"$D853,x"},{"a":35858,"t":"code","b":[185,192,32],"m":"lda","oa":8384,"o":"f_20C0,y"},{"a":35861,"t":"code","b":[157,123,216],"m":"sta","o":"$D87B,x"},{"a":35864,"t":"code","b":[185,0,33],"m":"lda","oa":8448,"o":"f_2100,y"},{"a":35867,"t":"code","b":[157,163,216],"m":"sta","o":"$D8A3,x"},{"a":35870,"t":"code","b":[185,64,33],"m":"lda","oa":8512,"o":"f_2140,y"},{"a":35873,"t":"code","b":[157,203,216],"m":"sta","o":"$D8CB,x"},{"a":35876,"t":"code","b":[185,128,33],"m":"lda","oa":8576,"o":"f_2180,y"},{"a":35879,"t":"code","b":[157,243,216],"m":"sta","o":"$D8F3,x"},{"a":35882,"t":"code","b":[185,192,33],"m":"lda","oa":8640,"o":"f_21C0,y"},{"a":35885,"t":"code","b":[157,27,217],"m":"sta","o":"$D91B,x"},{"a":35888,"t":"code","b":[185,0,34],"m":"lda","oa":8704,"o":"f_2200,y"},{"a":35891,"t":"code","b":[157,67,217],"m":"sta","o":"$D943,x"},{"a":35894,"t":"code","b":[185,64,34],"m":"lda","oa":8768,"o":"f_2240,y"},{"a":35897,"t":"code","b":[157,107,217],"m":"sta","o":"$D96B,x"},{"a":35900,"t":"code","b":[185,128,34],"m":"lda","oa":8832,"o":"f_2280,y"},{"a":35903,"t":"code","b":[157,147,217],"m":"sta","o":"$D993,x"},{"a":35906,"t":"code","b":[185,192,34],"m":"lda","oa":8896,"o":"f_22C0,y"},{"a":35909,"t":"code","b":[157,187,217],"m":"sta","o":"$D9BB,x"},{"a":35912,"t":"code","b":[185,0,35],"m":"lda","oa":8960,"o":"f_2300,y"},{"a":35915,"t":"code","b":[157,227,217],"m":"sta","o":"$D9E3,x"},{"a":35918,"t":"code","b":[185,64,35],"m":"lda","oa":9024,"o":"f_2340,y"},{"a":35921,"t":"code","b":[157,11,218],"m":"sta","o":"$DA0B,x"},{"a":35924,"t":"code","b":[185,128,35],"m":"lda","oa":9088,"o":"f_2380,y"},{"a":35927,"t":"code","b":[157,51,218],"m":"sta","o":"$DA33,x"},{"a":35930,"t":"code","b":[185,192,35],"m":"lda","oa":9152,"o":"f_23C0,y"},{"a":35933,"t":"code","b":[157,91,218],"m":"sta","o":"$DA5B,x"},{"a":35936,"t":"code","b":[185,0,36],"m":"lda","oa":9216,"o":"f_2400,y"},{"a":35939,"t":"code","b":[157,131,218],"m":"sta","o":"$DA83,x"},{"a":35942,"t":"code","b":[185,64,36],"m":"lda","oa":9280,"o":"f_2440,y"},{"a":35945,"t":"code","b":[157,171,218],"m":"sta","o":"$DAAB,x"},{"a":35948,"t":"code","b":[185,128,36],"m":"lda","oa":9344,"o":"f_2480,y"},{"a":35951,"t":"code","b":[157,211,218],"m":"sta","o":"$DAD3,x"},{"a":35954,"t":"code","b":[185,192,36],"m":"lda","oa":9408,"o":"f_24C0,y"},{"a":35957,"t":"code","b":[157,251,218],"m":"sta","o":"$DAFB,x"},{"a":35960,"t":"code","b":[202],"m":"dex"},{"a":35961,"t":"code","b":[16,130],"m":"bpl","oa":35837,"o":"b_8BFD"},{"a":35963,"t":"code","b":[96],"m":"rts"},{"a":35964,"l":"panel_flash","c":"While the maze font select $8251 is below 8: every eighth call steps $8254 and sets $8251 from panel_font_cycle ($8255: 2 4 2 6), so the maze's characters change font in a four-step cycle; and every fourth frame ($8247) advances the animation step $9124,x (0-3) of each player whose direction bits are not $0F.","t":"code","b":[173,81,130],"m":"lda","oa":33361,"o":"font_select","x":[34381]},{"a":35967,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":35969,"t":"code","b":[176,57],"m":"bcs","oa":36028,"o":"r_8CBC"},{"a":35971,"t":"code","b":[206,83,130],"m":"dec","oa":33363,"o":"font_timer"},{"a":35974,"t":"code","b":[173,83,130],"m":"lda","oa":33363,"o":"font_timer"},{"a":35977,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":35979,"t":"code","b":[208,15],"m":"bne","oa":35996,"o":"b_8C9C"},{"a":35981,"t":"code","b":[238,84,130],"m":"inc","oa":33364,"o":"font_step"},{"a":35984,"t":"code","b":[173,84,130],"m":"lda","oa":33364,"o":"font_step"},{"a":35987,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":35989,"t":"code","b":[170],"m":"tax"},{"a":35990,"t":"code","b":[189,85,130],"m":"lda","oa":33365,"o":"font_cycle,x"},{"a":35993,"t":"code","b":[141,81,130],"m":"sta","oa":33361,"o":"font_select"},{"a":35996,"l":"b_8C9C","t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count","x":[35979]},{"a":35999,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":36001,"t":"code","b":[208,25],"m":"bne","oa":36028,"o":"r_8CBC"},{"a":36003,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":36005,"l":"b_8CA5","t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x","x":[36026]},{"a":36008,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":36010,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":36012,"t":"code","b":[240,11],"m":"beq","oa":36025,"o":"b_8CB9"},{"a":36014,"t":"code","b":[254,36,145],"m":"inc","oa":37156,"o":"player_anim,x"},{"a":36017,"t":"code","b":[189,36,145],"m":"lda","oa":37156,"o":"player_anim,x"},{"a":36020,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":36022,"t":"code","b":[157,36,145],"m":"sta","oa":37156,"o":"player_anim,x"},{"a":36025,"l":"b_8CB9","t":"code","b":[202],"m":"dex","x":[36012]},{"a":36026,"t":"code","b":[16,233],"m":"bpl","oa":36005,"o":"b_8CA5"},{"a":36028,"l":"r_8CBC","t":"code","b":[96],"m":"rts","x":[35969,36001]},{"a":36029,"l":"unused_wait_fire","c":"Eight bytes no traced code reaches: wait while bit 4 of $DC01 (player one's fire) is high.","t":"byte","b":[173,1,220,41,16,208,249,96]},{"a":36037,"l":"maze_style","c":"Chooses the maze's look from the level header: bits 3-5 of $0A01 pick a 96-byte block of glyphs (from maze_style_src: $6468, $6408 or $6508) copied into the three fonts at $4808, $5008 and $5808; bits 3-5 of $0A02 pick a colour (maze_style_colours) written over $F604-$F643 and $F6CC-$F6D7.","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[50725]},{"a":36040,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":36042,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36043,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36044,"t":"code","b":[168],"m":"tay"},{"a":36045,"t":"code","b":[185,13,141],"m":"lda","oa":36109,"o":"maze_style_src,y"},{"a":36048,"t":"code","b":[141,220,140],"m":"sta","oa":36060,"o":"style_src_lo"},{"a":36051,"t":"code","b":[185,14,141],"m":"lda","oa":36110,"o":"maze_style_src_hi,y"},{"a":36054,"t":"code","b":[141,221,140],"m":"sta","oa":36061,"o":"style_src_hi"},{"a":36057,"t":"code","b":[160,95],"m":"ldy","o":"#$5F"},{"a":36059,"l":"b_8CDB","t":"code","b":[185,104,100],"m":"lda","oa":25704,"o":"style_block_b,y","x":[36072]},{"a":36060,"t":"note","l":"style_src_lo","c":"The low byte of maze_style's glyph source, rewritten from maze_style_src.","note":"inside the item at $8CDB","x":[36048]},{"a":36061,"t":"note","l":"style_src_hi","c":"Its high byte; the rest of maze_style follows.","note":"inside the item at $8CDB","x":[36054]},{"a":36062,"t":"code","b":[153,8,72],"m":"sta","oa":18440,"o":"font_maze_a_walls,y"},{"a":36065,"t":"code","b":[153,8,80],"m":"sta","oa":20488,"o":"font_maze_b_walls,y"},{"a":36068,"t":"code","b":[153,8,88],"m":"sta","oa":22536,"o":"font_maze_c_walls,y"},{"a":36071,"t":"code","b":[136],"m":"dey"},{"a":36072,"t":"code","b":[16,241],"m":"bpl","oa":36059,"o":"b_8CDB"},{"a":36074,"t":"code","b":[173,2,10],"m":"lda","oa":2562,"o":"level_colour"},{"a":36077,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":36079,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36080,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36081,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36082,"t":"code","b":[168],"m":"tay"},{"a":36083,"t":"code","b":[185,7,141],"m":"lda","oa":36103,"o":"maze_style_colours,y"},{"a":36086,"t":"code","b":[160,63],"m":"ldy","o":"#$3F"},{"a":36088,"l":"b_8CF8","t":"code","b":[153,4,246],"m":"sta","oa":62980,"o":"tile_colours_walls,y","x":[36092]},{"a":36091,"t":"code","b":[136],"m":"dey"},{"a":36092,"t":"code","b":[16,250],"m":"bpl","oa":36088,"o":"b_8CF8"},{"a":36094,"t":"code","b":[160,11],"m":"ldy","o":"#$0B"},{"a":36096,"l":"b_8D00","t":"code","b":[153,204,246],"m":"sta","oa":63180,"o":"tile_colours_cracked,y","x":[36100]},{"a":36099,"t":"code","b":[136],"m":"dey"},{"a":36100,"t":"code","b":[16,250],"m":"bpl","oa":36096,"o":"b_8D00"},{"a":36102,"t":"code","b":[96],"m":"rts"},{"a":36103,"l":"maze_style_colours","c":"Six colours for maze_style: $0A $0D $0E $0C $0F $0B.","t":"byte","b":[10,13,14,12,15,11],"x":[36083]},{"a":36109,"l":"maze_style_src","c":"Five addresses for maze_style's glyph copy: $6468, $6408, $6508, $6408, $6508.","t":"byte","b":[104],"x":[36045]},{"a":36110,"l":"maze_style_src_hi","c":"The high bytes of maze_style_src's addresses (read as the second of each pair).","t":"byte","b":[100,8,100,8,101,8,100,8],"x":[36051]},{"a":36118,"t":"byte","b":[101]},{"a":36119,"l":"cia_timers_start","c":"Starts CIA 1's timers as a free-running pair: timer A loaded from the frame counter $8247 (both bytes) and run continuously ($DC0E = $01), timer B counting timer A's underflows ($DC0F = $41); writing $03 to $DC0D turns both timers' interrupts off. Several routines read the timers as a source of random numbers ($AA77, $ADB5, $B1E2, $C4F1, $C970, $C97B, $CBEE).","t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count","x":[32827,33463]},{"a":36122,"t":"code","b":[141,4,220],"m":"sta","o":"cia1_timer_a_lo"},{"a":36125,"t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count"},{"a":36128,"t":"code","b":[141,5,220],"m":"sta","o":"cia1_timer_a_hi"},{"a":36131,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":36133,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":36136,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":36138,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":36141,"t":"code","b":[169,65],"m":"lda","o":"#$41"},{"a":36143,"t":"code","b":[141,15,220],"m":"sta","o":"cia1_control_b"},{"a":36146,"t":"code","b":[96],"m":"rts"},{"a":36147,"l":"unused_zero_8D33","c":"205 zero bytes before map_wrap_x.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36155,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36163,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36171,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36179,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36187,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36195,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36203,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36211,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36219,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36227,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36235,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36243,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36251,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36259,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36267,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36275,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36283,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36291,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36299,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36307,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36315,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36323,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36331,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36339,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":36347,"t":"byte","b":[0,0,0,0,0]},{"a":36352,"l":"map_wrap_x","c":"0 to 63 then 0 to 47: a map column plus an offset, wrapped to the map's width, for maze_draw, maze_colours and the routines that look up map cells.","t":"byte","b":[0],"x":[35448,35660,35837,48697,48726,49311,49353,49507,49692,49767,49928,50052,50079,51879,51910,51990,52021,52087,52116]},{"a":36353,"l":"map_wrap_x_1","c":"map_wrap_x read one column on.","t":"byte","b":[1],"x":[48702,48732,49318,49502,49745,49933,50057,50086,51885,51916,51996,52027,52092,52122]},{"a":36354,"l":"map_wrap_x_2","c":"map_wrap_x read two columns on.","t":"byte","b":[2,3,4,5,6,7,8,9],"x":[49323,49518,49544,49750,49875,49950]},{"a":36362,"t":"byte","b":[10,11,12,13,14,15,16,17]},{"a":36370,"t":"byte","b":[18,19,20,21,22,23,24,25]},{"a":36378,"t":"byte","b":[26,27,28,29,30,31,32,33]},{"a":36386,"t":"byte","b":[34,35,36,37,38,39,40,41]},{"a":36394,"t":"byte","b":[42,43,44,45,46,47,48,49]},{"a":36402,"t":"byte","b":[50,51,52,53,54,55,56,57]},{"a":36410,"t":"byte","b":[58,59,60,61,62,63,0,1]},{"a":36418,"t":"byte","b":[2,3,4,5,6,7,8,9]},{"a":36426,"t":"byte","b":[10,11,12,13,14,15,16,17]},{"a":36434,"t":"byte","b":[18,19,20,21,22,23,24,25]},{"a":36442,"t":"byte","b":[26,27,28,29,30,31,32,33]},{"a":36450,"t":"byte","b":[34,35,36,37,38,39,40,41]},{"a":36458,"t":"byte","b":[42,43,44,45,46,47]},{"a":36464,"l":"map_row_lo","c":"The low byte of the address of row n (0-31) of a 32 x 32 grid at $0C00-$0FFF: $00 $20 ... $E0, four times.","t":"byte","b":[0,32,64,96,128,160,192,224],"x":[37086,38230,38963,42018,42515,43171,45493,50926]},{"a":36472,"t":"byte","b":[0,32,64,96,128,160,192,224]},{"a":36480,"t":"byte","b":[0,32,64,96,128,160,192,224]},{"a":36488,"t":"byte","b":[0,32,64,96,128,160,192,224]},{"a":36496,"l":"map_row_hi","c":"The high byte to go with map_row_lo: $0C for rows 0-7, $0D, $0E, $0F.","t":"byte","b":[12,12,12,12,12,12,12,12],"x":[37091,38235,38968,42026,42520,43176,45498,50935]},{"a":36504,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":36512,"t":"byte","b":[14,14,14,14,14,14,14,14]},{"a":36520,"t":"byte","b":[15,15,15,15,15,15]},{"a":36526,"l":"stick_index_base","c":"Two bytes read as stick_p1/stick_p2 by code that indexes with the shot slot (2 or 3): $8EAE + 2 is stick_p1.","t":"byte","b":[15,15],"x":[42790]},{"a":36528,"l":"stick_p1","c":"Player one's stick and fire as last read: the low five bits of keys_state's first byte ($8821, keyboard row 7, where port 1's stick also shows), $1F when nothing is pressed.","t":"byte","b":[31],"x":[34698,36602,36607,36819,37247,39090,42280,42361,44191,50459,50471]},{"a":36529,"l":"stick_p2","c":"Player two's stick and fire, from $DC00.","t":"byte","b":[31],"x":[34720]},{"a":36530,"l":"dir_p1","c":"Player one's direction bits (low four, active low) ORed with $B66B; $0F while fire is held, so a player firing does not move.","t":"byte","b":[15],"x":[34537,34712,34762,36005,37505,37518,37531,37544,37699,37704,37707,37712,37718,37723,37726,37731,37749,37754,37757,37762,37768,37773,37776,37781,37801,37806,37820,37825,37845,37850,37864,37869,37921,37975,37978,38474,38673,38751,44196,47129]},{"a":36531,"l":"dir_p2","c":"Player two's direction bits, ORed with $B66C; $0F while fire is held.","t":"byte","b":[15],"x":[34540,34734,34759,47132]},{"a":36532,"l":"maze_restore","c":"Puts the maze back after a message screen (power_message, poison_eaten): shows the screen at $4000 and the maze font, lets both players move, sets $D011's scroll to 7, redraws the maze and its colours, and enables every sprite.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[40601,47073]},{"a":36534,"t":"code","b":[141,80,130],"m":"sta","oa":33360,"o":"screen_front"},{"a":36537,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":36540,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":36543,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":36545,"t":"code","b":[141,81,130],"m":"sta","oa":33361,"o":"font_select"},{"a":36548,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":36551,"t":"code","b":[41,112],"m":"and","o":"#$70"},{"a":36553,"t":"code","b":[9,7],"m":"ora","o":"#$07"},{"a":36555,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":36558,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":36560,"t":"code","b":[133,255],"m":"sta","oa":255,"o":"zpa_FF"},{"a":36562,"t":"code","b":[32,11,138],"m":"jsr","oa":35339,"o":"maze_draw"},{"a":36565,"t":"code","b":[32,251,139],"m":"jsr","oa":35835,"o":"maze_colours"},{"a":36568,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":36570,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":36573,"t":"code","b":[96],"m":"rts"},{"a":36574,"l":"teleport_add","c":"Adds a transporter to the list of those on screen: its map cell ($B29A, $B29B) times four, kept below $80, into teleport_x/teleport_y at the next free slot (teleport_count, which it increments). Called from $B1CC.","t":"code","b":[173,62,144],"m":"lda","oa":36926,"o":"teleport_count","x":[45516]},{"a":36577,"t":"code","b":[168],"m":"tay"},{"a":36578,"t":"code","b":[238,62,144],"m":"inc","oa":36926,"o":"teleport_count"},{"a":36581,"t":"code","b":[173,154,178],"m":"lda","oa":45722,"o":"tile_cur_x"},{"a":36584,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36585,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36586,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":36588,"t":"code","b":[153,81,144],"m":"sta","oa":36945,"o":"teleport_x,y"},{"a":36591,"t":"code","b":[173,155,178],"m":"lda","oa":45723,"o":"tile_cur_y"},{"a":36594,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36595,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36596,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":36598,"t":"code","b":[153,97,144],"m":"sta","oa":36961,"o":"teleport_y,y"},{"a":36601,"t":"code","b":[96],"m":"rts"},{"a":36602,"l":"teleport_use","c":"Sends player X ($910D) through a transporter. A stick held still, or a direction whose facing (facing_of_dir) is odd, returns 1 and does nothing; otherwise the point eight units ahead of the player in the pushed direction (dir_dx/dir_dy) is the aim, which is how the stick steers the jump. With fewer than two transporters on screen it returns 2. Otherwise it measures each transporter's distance from the aim (the sum of the two differences, through $BFAB), sorts the list nearest first (teleport_sort), and tries them in order (teleport_place), returning 3 if none had room.","t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x","x":[46861]},{"a":36605,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":36607,"t":"code","b":[221,176,142],"m":"cmp","oa":36528,"o":"stick_p1,x"},{"a":36610,"t":"code","b":[240,102],"m":"beq","oa":36714,"o":"b_8F6A"},{"a":36612,"t":"code","b":[168],"m":"tay"},{"a":36613,"t":"code","b":[185,46,145],"m":"lda","oa":37166,"o":"facing_of_dir,y"},{"a":36616,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36617,"t":"code","b":[176,95],"m":"bcs","oa":36714,"o":"b_8F6A"},{"a":36619,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":36622,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":36624,"t":"code","b":[24],"m":"clc"},{"a":36625,"t":"code","b":[121,188,151],"m":"adc","oa":38844,"o":"dir_dx,y"},{"a":36628,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36629,"t":"code","b":[141,63,144],"m":"sta","oa":36927,"o":"teleport_aim_x"},{"a":36632,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":36635,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":36637,"t":"code","b":[24],"m":"clc"},{"a":36638,"t":"code","b":[121,204,151],"m":"adc","oa":38860,"o":"dir_dy,y"},{"a":36641,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36642,"t":"code","b":[141,64,144],"m":"sta","oa":36928,"o":"teleport_aim_y"},{"a":36645,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":36647,"t":"code","b":[141,65,144],"m":"sta","oa":36929,"o":"teleport_dist"},{"a":36650,"t":"code","b":[172,62,144],"m":"ldy","oa":36926,"o":"teleport_count"},{"a":36653,"t":"code","b":[192,2],"m":"cpy","o":"#$02"},{"a":36655,"t":"code","b":[144,60],"m":"bcc","oa":36717,"o":"b_8F6D"},{"a":36657,"l":"b_8F31","t":"code","b":[173,63,144],"m":"lda","oa":36927,"o":"teleport_aim_x","x":[36706]},{"a":36660,"t":"code","b":[56],"m":"sec"},{"a":36661,"t":"code","b":[249,81,144],"m":"sbc","oa":36945,"o":"teleport_x,y"},{"a":36664,"t":"code","b":[32,171,191],"m":"jsr","oa":49067,"o":"wrap_delta"},{"a":36667,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":36669,"t":"code","b":[144,5],"m":"bcc","oa":36676,"o":"b_8F44"},{"a":36671,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":36673,"t":"code","b":[24],"m":"clc"},{"a":36674,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":36676,"l":"b_8F44","t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch","x":[36669]},{"a":36679,"t":"code","b":[173,64,144],"m":"lda","oa":36928,"o":"teleport_aim_y"},{"a":36682,"t":"code","b":[56],"m":"sec"},{"a":36683,"t":"code","b":[249,97,144],"m":"sbc","oa":36961,"o":"teleport_y,y"},{"a":36686,"t":"code","b":[32,171,191],"m":"jsr","oa":49067,"o":"wrap_delta"},{"a":36689,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":36691,"t":"code","b":[144,5],"m":"bcc","oa":36698,"o":"b_8F5A"},{"a":36693,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":36695,"t":"code","b":[24],"m":"clc"},{"a":36696,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":36698,"l":"b_8F5A","t":"code","b":[24],"m":"clc","x":[36691]},{"a":36699,"t":"code","b":[109,91,130],"m":"adc","oa":33371,"o":"scratch"},{"a":36702,"t":"code","b":[153,65,144],"m":"sta","oa":36929,"o":"teleport_dist,y"},{"a":36705,"t":"code","b":[136],"m":"dey"},{"a":36706,"t":"code","b":[16,205],"m":"bpl","oa":36657,"o":"b_8F31"},{"a":36708,"t":"code","b":[32,112,143],"m":"jsr","oa":36720,"o":"teleport_sort"},{"a":36711,"t":"code","b":[76,201,143],"m":"jmp","oa":36809,"o":"teleport_place"},{"a":36714,"l":"b_8F6A","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[36610,36617]},{"a":36716,"t":"code","b":[96],"m":"rts"},{"a":36717,"l":"b_8F6D","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[36655]},{"a":36719,"t":"code","b":[96],"m":"rts"},{"a":36720,"l":"teleport_sort","c":"Bubble-sorts the transporter list by distance (teleport_dist), keeping each entry's X and Y with it; two at the same distance are swapped when bit 0 of $B92F,x is set, which breaks ties by chance.","t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur","x":[36708]},{"a":36723,"l":"b_8F73","t":"code","b":[172,62,144],"m":"ldy","oa":36926,"o":"teleport_count","x":[36806]},{"a":36726,"t":"code","b":[136],"m":"dey"},{"a":36727,"t":"code","b":[136],"m":"dey"},{"a":36728,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36730,"t":"code","b":[141,115,144],"m":"sta","oa":36979,"o":"sort_swapped"},{"a":36733,"l":"b_8F7D","t":"code","b":[185,65,144],"m":"lda","oa":36929,"o":"teleport_dist,y","x":[36801]},{"a":36736,"t":"code","b":[217,66,144],"m":"cmp","oa":36930,"o":"teleport_dist_1,y"},{"a":36739,"t":"code","b":[144,59],"m":"bcc","oa":36800,"o":"b_8FC0"},{"a":36741,"t":"code","b":[208,10],"m":"bne","oa":36753,"o":"b_8F91"},{"a":36743,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":36746,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":36748,"t":"code","b":[240,50],"m":"beq","oa":36800,"o":"b_8FC0"},{"a":36750,"t":"code","b":[76,150,143],"m":"jmp","oa":36758,"o":"j_8F96"},{"a":36753,"l":"b_8F91","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[36741]},{"a":36755,"t":"code","b":[141,115,144],"m":"sta","oa":36979,"o":"sort_swapped"},{"a":36758,"l":"j_8F96","t":"code","b":[185,65,144],"m":"lda","oa":36929,"o":"teleport_dist,y","x":[36750]},{"a":36761,"t":"code","b":[72],"m":"pha"},{"a":36762,"t":"code","b":[185,66,144],"m":"lda","oa":36930,"o":"teleport_dist_1,y"},{"a":36765,"t":"code","b":[153,65,144],"m":"sta","oa":36929,"o":"teleport_dist,y"},{"a":36768,"t":"code","b":[104],"m":"pla"},{"a":36769,"t":"code","b":[153,66,144],"m":"sta","oa":36930,"o":"teleport_dist_1,y"},{"a":36772,"t":"code","b":[185,81,144],"m":"lda","oa":36945,"o":"teleport_x,y"},{"a":36775,"t":"code","b":[72],"m":"pha"},{"a":36776,"t":"code","b":[185,82,144],"m":"lda","oa":36946,"o":"teleport_x_1,y"},{"a":36779,"t":"code","b":[153,81,144],"m":"sta","oa":36945,"o":"teleport_x,y"},{"a":36782,"t":"code","b":[104],"m":"pla"},{"a":36783,"t":"code","b":[153,82,144],"m":"sta","oa":36946,"o":"teleport_x_1,y"},{"a":36786,"t":"code","b":[185,97,144],"m":"lda","oa":36961,"o":"teleport_y,y"},{"a":36789,"t":"code","b":[72],"m":"pha"},{"a":36790,"t":"code","b":[185,98,144],"m":"lda","oa":36962,"o":"teleport_y_1,y"},{"a":36793,"t":"code","b":[153,97,144],"m":"sta","oa":36961,"o":"teleport_y,y"},{"a":36796,"t":"code","b":[104],"m":"pla"},{"a":36797,"t":"code","b":[153,98,144],"m":"sta","oa":36962,"o":"teleport_y_1,y"},{"a":36800,"l":"b_8FC0","t":"code","b":[136],"m":"dey","x":[36739,36748]},{"a":36801,"t":"code","b":[16,186],"m":"bpl","oa":36733,"o":"b_8F7D"},{"a":36803,"t":"code","b":[173,115,144],"m":"lda","oa":36979,"o":"sort_swapped"},{"a":36806,"t":"code","b":[208,171],"m":"bne","oa":36723,"o":"b_8F73"},{"a":36808,"t":"code","b":[96],"m":"rts"},{"a":36809,"l":"teleport_place","c":"Tries the sorted transporters from the list's second entry on, skipping any at distance 0, and for each tries the eight cells around it, starting from the player's facing (teleport_free): the first free one gets the player. The player's map position is moved there (the old cells cleared and the new marked, through cell_addr), the pointer pair $C0/$C1 + 2X set from $8E/$8F, and sound $0B started ($CDDB).","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[36711]},{"a":36811,"l":"b_8FCB","t":"code","b":[185,65,144],"m":"lda","oa":36929,"o":"teleport_dist,y","x":[36853]},{"a":36814,"t":"code","b":[240,33],"m":"beq","oa":36849,"o":"b_8FF1"},{"a":36816,"t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur"},{"a":36819,"t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x"},{"a":36822,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":36824,"t":"code","b":[170],"m":"tax"},{"a":36825,"t":"code","b":[189,46,145],"m":"lda","oa":37166,"o":"facing_of_dir,x"},{"a":36828,"t":"code","b":[170],"m":"tax"},{"a":36829,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":36831,"t":"code","b":[141,0,202],"m":"sta","oa":51712,"o":"level_exits"},{"a":36834,"l":"b_8FE2","t":"code","b":[32,116,144],"m":"jsr","oa":36980,"o":"teleport_free","x":[36847]},{"a":36837,"t":"code","b":[240,19],"m":"beq","oa":36858,"o":"b_8FFA"},{"a":36839,"t":"code","b":[232],"m":"inx"},{"a":36840,"t":"code","b":[138],"m":"txa"},{"a":36841,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":36843,"t":"code","b":[170],"m":"tax"},{"a":36844,"t":"code","b":[206,0,202],"m":"dec","oa":51712,"o":"level_exits"},{"a":36847,"t":"code","b":[16,241],"m":"bpl","oa":36834,"o":"b_8FE2"},{"a":36849,"l":"b_8FF1","t":"code","b":[200],"m":"iny","x":[36814]},{"a":36850,"t":"code","b":[204,62,144],"m":"cpy","oa":36926,"o":"teleport_count"},{"a":36853,"t":"code","b":[144,212],"m":"bcc","oa":36811,"o":"b_8FCB"},{"a":36855,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":36857,"t":"code","b":[96],"m":"rts"},{"a":36858,"l":"b_8FFA","t":"code","b":[189,124,197],"m":"lda","oa":50556,"o":"facing_stick,x","x":[36837]},{"a":36861,"t":"code","b":[170],"m":"tax"},{"a":36862,"t":"code","b":[185,81,144],"m":"lda","oa":36945,"o":"teleport_x,y"},{"a":36865,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36866,"t":"code","b":[24],"m":"clc"},{"a":36867,"t":"code","b":[125,188,151],"m":"adc","oa":38844,"o":"dir_dx,x"},{"a":36870,"t":"code","b":[72],"m":"pha"},{"a":36871,"t":"code","b":[185,97,144],"m":"lda","oa":36961,"o":"teleport_y,y"},{"a":36874,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36875,"t":"code","b":[24],"m":"clc"},{"a":36876,"t":"code","b":[125,204,151],"m":"adc","oa":38860,"o":"dir_dy,x"},{"a":36879,"t":"code","b":[72],"m":"pha"},{"a":36880,"t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur"},{"a":36883,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":36886,"t":"code","b":[141,8,145],"m":"sta","oa":37128,"o":"probe_x"},{"a":36889,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":36892,"t":"code","b":[141,9,145],"m":"sta","oa":37129,"o":"probe_y"},{"a":36895,"t":"code","b":[32,245,150],"m":"jsr","oa":38645,"o":"cell_addr"},{"a":36898,"t":"code","b":[32,171,151],"m":"jsr","oa":38827,"o":"cell_clear"},{"a":36901,"t":"code","b":[104],"m":"pla"},{"a":36902,"t":"code","b":[157,6,145],"m":"sta","oa":37126,"o":"player_world_y,x"},{"a":36905,"t":"code","b":[104],"m":"pla"},{"a":36906,"t":"code","b":[157,4,145],"m":"sta","oa":37124,"o":"player_world_x,x"},{"a":36909,"t":"code","b":[138],"m":"txa"},{"a":36910,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36911,"t":"code","b":[170],"m":"tax"},{"a":36912,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":36914,"t":"code","b":[149,192],"m":"sta","oa":192,"o":"zpf_C0,x"},{"a":36916,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":36918,"t":"code","b":[149,193],"m":"sta","oa":193,"o":"zpf_C1,x"},{"a":36920,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":36922,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":36925,"t":"code","b":[96],"m":"rts"},{"a":36926,"l":"teleport_count","c":"How many transporters teleport_add has listed this pass (at most sixteen).","t":"byte","b":[0],"x":[36574,36578,36650,36723,36850,45440]},{"a":36927,"l":"teleport_aim_x","c":"The aim point's X for teleport_use.","t":"byte","b":[0],"x":[36629,36657]},{"a":36928,"l":"teleport_aim_y","c":"The aim point's Y.","t":"byte","b":[0],"x":[36642,36679]},{"a":36929,"l":"teleport_dist","c":"The distance of each listed transporter from the aim, sixteen bytes ($9041 is the slot before the first, set to $FF).","t":"byte","b":[0],"x":[36647,36702,36733,36758,36765,36811]},{"a":36930,"l":"teleport_dist_1","c":"teleport_dist from its second slot, as the sort reads it.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[36736,36762,36769]},{"a":36938,"t":"byte","b":[0,0,0,0,0,0,0]},{"a":36945,"l":"teleport_x","c":"Each listed transporter's map X times four.","t":"byte","b":[0],"x":[36588,36661,36772,36779,36862,36987,37061]},{"a":36946,"l":"teleport_x_1","c":"teleport_x from its second slot, as the sort reads it.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[36776,36783]},{"a":36954,"t":"byte","b":[0,0,0,0,0,0,0]},{"a":36961,"l":"teleport_y","c":"Each listed transporter's map Y times four.","t":"byte","b":[0],"x":[36598,36683,36786,36793,36871,37025,37073]},{"a":36962,"l":"teleport_y_1","c":"teleport_y from its second slot.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[36790,36797]},{"a":36970,"t":"byte","b":[0,0,0,0,0,0,0]},{"a":36977,"l":"player_moved","c":"Cleared for each player when its move is checked (player_move); read by $98D7 and $B708.","t":"byte","b":[0,0],"x":[37891,39127,46856]},{"a":36979,"l":"sort_swapped","c":"Set by teleport_sort when a pass swapped two entries.","t":"byte","b":[0],"x":[36730,36755,36803]},{"a":36980,"l":"teleport_free","c":"Checks the cell in direction X around transporter Y ($B289,x and $B291,x give the offsets): returns $FF when the cell is off the screen (not two or more columns in, or not below column $40 / row $28 on screen), otherwise the byte of the tile grid there (through map_row_lo/map_row_hi), with $8E/$8F pointing at it; zero is free.","t":"code","b":[173,49,136],"m":"lda","oa":34865,"o":"map_x","x":[36834]},{"a":36983,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36984,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":36987,"t":"code","b":[185,81,144],"m":"lda","oa":36945,"o":"teleport_x,y"},{"a":36990,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36991,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36992,"t":"code","b":[24],"m":"clc"},{"a":36993,"t":"code","b":[125,137,178],"m":"adc","oa":45705,"o":"gen_dx,x"},{"a":36996,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":36998,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36999,"t":"code","b":[10],"m":"asl","o":"a"},{"a":37000,"t":"code","b":[56],"m":"sec"},{"a":37001,"t":"code","b":[237,91,130],"m":"sbc","oa":33371,"o":"scratch"},{"a":37004,"t":"code","b":[32,171,191],"m":"jsr","oa":49067,"o":"wrap_delta"},{"a":37007,"t":"code","b":[141,220,151],"m":"sta","oa":38876,"o":"teleport_cell_x"},{"a":37010,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":37012,"t":"code","b":[144,42],"m":"bcc","oa":37056,"o":"b_90C0"},{"a":37014,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":37016,"t":"code","b":[176,38],"m":"bcs","oa":37056,"o":"b_90C0"},{"a":37018,"t":"code","b":[173,51,136],"m":"lda","oa":34867,"o":"map_y"},{"a":37021,"t":"code","b":[10],"m":"asl","o":"a"},{"a":37022,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":37025,"t":"code","b":[185,97,144],"m":"lda","oa":36961,"o":"teleport_y,y"},{"a":37028,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37029,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37030,"t":"code","b":[24],"m":"clc"},{"a":37031,"t":"code","b":[125,145,178],"m":"adc","oa":45713,"o":"gen_dy,x"},{"a":37034,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":37036,"t":"code","b":[10],"m":"asl","o":"a"},{"a":37037,"t":"code","b":[10],"m":"asl","o":"a"},{"a":37038,"t":"code","b":[56],"m":"sec"},{"a":37039,"t":"code","b":[237,91,130],"m":"sbc","oa":33371,"o":"scratch"},{"a":37042,"t":"code","b":[32,171,191],"m":"jsr","oa":49067,"o":"wrap_delta"},{"a":37045,"t":"code","b":[141,221,151],"m":"sta","oa":38877,"o":"teleport_cell_y"},{"a":37048,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":37050,"t":"code","b":[144,4],"m":"bcc","oa":37056,"o":"b_90C0"},{"a":37052,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":37054,"t":"code","b":[144,3],"m":"bcc","oa":37059,"o":"b_90C3"},{"a":37056,"l":"b_90C0","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[37012,37016,37050]},{"a":37058,"t":"code","b":[96],"m":"rts"},{"a":37059,"l":"b_90C3","t":"code","b":[152],"m":"tya","x":[37054]},{"a":37060,"t":"code","b":[72],"m":"pha"},{"a":37061,"t":"code","b":[185,81,144],"m":"lda","oa":36945,"o":"teleport_x,y"},{"a":37064,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37065,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37066,"t":"code","b":[24],"m":"clc"},{"a":37067,"t":"code","b":[125,137,178],"m":"adc","oa":45705,"o":"gen_dx,x"},{"a":37070,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":37072,"t":"code","b":[72],"m":"pha"},{"a":37073,"t":"code","b":[185,97,144],"m":"lda","oa":36961,"o":"teleport_y,y"},{"a":37076,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37077,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37078,"t":"code","b":[24],"m":"clc"},{"a":37079,"t":"code","b":[125,145,178],"m":"adc","oa":45713,"o":"gen_dy,x"},{"a":37082,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":37084,"t":"code","b":[168],"m":"tay"},{"a":37085,"t":"code","b":[104],"m":"pla"},{"a":37086,"t":"code","b":[25,112,142],"m":"ora","oa":36464,"o":"map_row_lo,y"},{"a":37089,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":37091,"t":"code","b":[185,144,142],"m":"lda","oa":36496,"o":"map_row_hi,y"},{"a":37094,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":37096,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37098,"t":"code","b":[177,142],"m":"lda","oa":142,"o":"(zpa_8E),y"},{"a":37100,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":37103,"t":"code","b":[104],"m":"pla"},{"a":37104,"t":"code","b":[168],"m":"tay"},{"a":37105,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":37108,"t":"code","b":[96],"m":"rts"},{"a":37109,"l":"unused_zero_90F5","c":"Nine zero bytes before the player table.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":37117,"t":"byte","b":[0]},{"a":37118,"l":"tile_x","c":"Work: the tile column (map X / 8) of the player being checked.","t":"byte","b":[2],"x":[37909,38175,38193,38199,38224]},{"a":37119,"l":"tile_y","c":"Work: the tile row.","t":"byte","b":[3],"x":[37918,38169,38181,38187,38205,38211,38218]},{"a":37120,"l":"player_screen_x","c":"Each player's X on screen, in 2-pixel units (0 at the play area's left, $78 at its right): the world X less the scroll ($8266).","t":"byte","b":[24],"x":[37284,37515,37528,37576,37684,37688,37784,38385,38517,38524,38549,38556,42238,42320,42410]},{"a":37121,"l":"player2_screen_x","c":"Player two's screen X.","t":"byte","b":[0],"x":[42241]},{"a":37122,"l":"player_screen_y","c":"Each player's Y on screen, in 2-pixel units (0 to $48).","t":"byte","b":[16],"x":[37274,37541,37554,37586,37734,37738,37828,38401,38581,38588,38613,38620,42244,42336,42425,42818]},{"a":37123,"l":"player2_screen_y","c":"Player two's screen Y.","t":"byte","b":[96],"x":[42247]},{"a":37124,"l":"player_world_x","c":"Each player's X in the maze, in 2-pixel units (a maze cell is four).","t":"byte","b":[24],"x":[36619,36883,36906,37512,37525,37569,37903,38378,38681,38722,38763,38957,39004,42226,42313,42403,42486,42537,42824,43747,48797]},{"a":37125,"l":"player2_world_x","c":"Player two's maze X.","t":"byte","b":[0],"x":[42229]},{"a":37126,"l":"player_world_y","c":"Each player's Y in the maze.","t":"byte","b":[16],"x":[36632,36889,36902,37538,37551,37579,37912,38394,38691,38728,38769,38950,39012,42232,42329,42418,42500,42543,43765,48827]},{"a":37127,"l":"player2_world_y","c":"Player two's maze Y.","t":"byte","b":[96],"x":[42235]},{"a":37128,"l":"probe_x","c":"Work: a world X for cell_addr.","t":"byte","b":[24],"x":[36886,38645,38688,38725,38766,39009,42540]},{"a":37129,"l":"probe_y","c":"Work: a world Y for cell_addr.","t":"byte","b":[16],"x":[36892,38652,38698,38731,38772,39017,42546]},{"a":37130,"c":"Two bytes between probe_y and player_loop that no instruction refers to; zero as loaded.","t":"byte","b":[0,0]},{"a":37132,"l":"player_loop","c":"Loop counter over the two players, 1 then 0.","t":"byte","b":[255],"x":[37214,37217,37301,37318,37494,37497,37557,37664,37678,37872,37883,37886,37993,38458,38461,38511,38670,38719,38746,38760,39080,39122,46737,46759]},{"a":37133,"l":"player_cur","c":"The player being handled.","t":"byte","b":[255],"x":[33843,33846,33928,33956,33959,34001,36720,36816,36880,40571,44604,44701,46780,46783,46791,46842,46948,46954]},{"a":37134,"c":"A byte between player_cur and start_x that no instruction refers to; zero as loaded.","t":"byte","b":[0]},{"a":37135,"l":"start_x","c":"The players' starting tile column, from the level.","t":"byte","b":[3],"x":[38277,38372,42307,51602]},{"a":37136,"l":"start_y","c":"The players' starting tile row.","t":"byte","b":[2],"x":[38315,38388,42323,51613,51619,51623,51627]},{"a":37137,"l":"sprites_on","c":"The sprite-enable byte the raster handler writes to $D015.","t":"byte","b":[255],"x":[33286,33509,34116,36570,37444,39758,45015,47529,47532,47541,47544,47553,47556,47868,47874]},{"a":37138,"l":"player_under","c":"What each player's cells held before the player stood on them; $36 is checked by player_step.","t":"byte","b":[0,0],"x":[38709,38742,38783,46740]},{"a":37140,"l":"hero_colours","c":"The panel colour of each hero: red, cyan, yellow, green (Warrior, Valkyrie, Wizard, Elf).","t":"byte","b":[2,3,7,5],"x":[34032,34055,44621,44659]},{"a":37144,"l":"hero_sprite_colours","c":"Each hero's sprite colour, the same four.","t":"byte","b":[2,3],"x":[37453,37465,39767]},{"a":37146,"l":"hero_index_base","c":"Two bytes read as player_hero by code that indexes with the shot slot (2 or 3).","t":"byte","b":[7,5],"x":[42830]},{"a":37148,"l":"player_hero","c":"Player one's hero (0 Warrior, 1 Valkyrie, 2 Wizard, 3 Elf); $911D is player two's.","t":"byte","b":[0],"x":[33857,34029,37450,39764,39985,40029,40208,40845,40978,44618,44656,45392,47016]},{"a":37149,"l":"player2_hero","c":"Player two's hero.","t":"byte","b":[1],"x":[34052,37462]},{"a":37150,"l":"exit_wait_p1","c":"While this or $911F is non-zero the main loop keeps running the level, even when every player in the game has bit 6 of its state set.","t":"byte","b":[0],"x":[33143,33251,38917,42142,42566,42596,42781,44118,44184,47420,47425]},{"a":37151,"l":"exit_wait_p2","c":"See exit_wait_p1.","t":"byte","b":[0],"x":[33146,33254,42145]},{"a":37152,"l":"player_state","c":"Player one's state: 0 not in the game. The main loop runs the level while a player in the game has bit 6 clear. With bit 7 set, players_sprites holds the walking step still and players_move and scroll_follow skip the player.","t":"byte","b":[1],"x":[33125,33233,33289,33294,33877,33962,34024,37222,37500,37667,37894,38355,38423,38464,38912,42136,42193,42300,42346,42356,42430,42558,44607,45033,45423,46786,46851,46957,46964,47316,47413,47509,47561,47587,47724,47822,47860,47865,47926,48786,48997]},{"a":37153,"l":"player2_state","c":"Player two's state.","t":"byte","b":[0],"x":[33134,33242,33297,33302,34047,37670,38364,38427,42139,42196,42349,45037,45426,47750,47929,49005]},{"a":37154,"l":"player_other","c":"For each player, the index of the other player (or itself in a one-player game), set by level_place_players.","t":"byte","b":[0],"x":[37681,38409,38439,38471,38922,42304,42436,42442,47879]},{"a":37155,"l":"player2_other","c":"Player two's other-player link.","t":"byte","b":[1],"x":[38420,38444,38927,47884]},{"a":37156,"l":"player_anim","c":"Each player's walking animation step, 0-3 (panel_flash advances it).","t":"byte","b":[0,0],"x":[36014,36017,36022,37229,42805]},{"a":37158,"l":"player_facing","c":"Each player's facing, 0-7.","t":"byte","b":[4],"x":[37258,37261,38449]},{"a":37159,"l":"player2_facing","c":"Player two's facing.","t":"byte","b":[4],"x":[38452]},{"a":37160,"l":"anim_frames","c":"The shape offset of each walking step: 0, 8, 0, 16.","t":"byte","b":[0,8,0,16],"x":[37232]},{"a":37164,"l":"player_shapes","c":"The first sprite shape of player one's hero ($C0, at $7000); $912D is player two's ($E0, $7800).","t":"byte","b":[192],"x":[33307,37236,47851,47857,47900,47906]},{"a":37165,"l":"player2_shapes","c":"Player two's first shape.","t":"byte","b":[224],"x":[33312]},{"a":37166,"l":"facing_of_dir","c":"The facing (0-7) for each value of the direction bits; $80 for the impossible ones and none, which keep the old facing.","t":"byte","b":[0,0,0,0,0,3,1,2],"x":[36613,36825,37253,42800]},{"a":37174,"t":"byte","b":[0,5,7,6,0,4,0,128]},{"a":37182,"l":"sprite_x","c":"Shadow of sprite X positions for sprites 2-7, written to the chip by sprites_place.","t":"byte","b":[0],"x":[37324,39732,43048,43082,43315,44882,45293]},{"a":37183,"l":"sprite3_x","c":"Sprite 3's X (a shot slot, or a digit).","t":"byte","b":[0],"x":[37330,39737,44885,45298]},{"a":37184,"l":"sprite4_x","c":"Sprite 4's X.","t":"byte","b":[0],"x":[37336,39742,44888]},{"a":37185,"l":"sprite5_x","c":"Sprite 5's X.","t":"byte","b":[0],"x":[37342]},{"a":37186,"l":"player_sprite_x","c":"Sprites 6 and 7's X: the players, from player_screen_x.","t":"byte","b":[100],"x":[37291,37309,37348]},{"a":37187,"l":"player2_sprite_x","c":"Sprite 7's X: player two.","t":"byte","b":[0],"x":[37354]},{"a":37188,"l":"sprite_y","c":"Shadow Y positions for sprites 2-7.","t":"byte","b":[0],"x":[37360,39747,43073,43088,43321,44891,45303]},{"a":37189,"l":"sprite3_y","c":"Sprite 3's Y.","t":"byte","b":[0],"x":[37366,39750,44894,45306]},{"a":37190,"l":"sprite4_y","c":"Sprite 4's Y.","t":"byte","b":[0],"x":[37372,39753,44897,44936]},{"a":37191,"l":"sprite5_y","c":"Sprite 5's Y.","t":"byte","b":[0],"x":[37378,44939]},{"a":37192,"l":"player_sprite_y","c":"The players' sprite Y.","t":"byte","b":[83],"x":[37281,37312,37384,44942]},{"a":37193,"l":"player2_sprite_y","c":"Sprite 7's Y.","t":"byte","b":[0],"x":[37390,44945]},{"a":37194,"l":"sprite_x_high","c":"The X high bit of sprites 2-7, one byte each (non-zero for set).","t":"byte","b":[0,0,0,0],"x":[37400,43055,43085,43318]},{"a":37198,"l":"player_x_high","c":"The players' X high bits (sprites 6 and 7).","t":"byte","b":[0,0],"x":[37298,37315]},{"a":37200,"l":"sprite_x_bits","c":"The $D010 bit of sprites 2-7: $04 to $80.","t":"byte","b":[4,8,16,32,64,128],"x":[37405]},{"a":37206,"l":"sprite_ptrs","c":"The shape numbers of sprites 2-5.","t":"byte","b":[162],"x":[37416,39727,42815,42889,42901,42997,43004,43025,43619,43687,44446,44458,44484]},{"a":37207,"l":"sprite3_ptr","c":"Sprite 3's shape (the treasure clock's units digit, or the shot in slot 1).","t":"byte","b":[162],"x":[39718,44436,44463,44478]},{"a":37208,"l":"sprite4_ptr","c":"Sprite 4's shape; $9159 is sprite 5's.","t":"byte","b":[163,0],"x":[39709]},{"a":37210,"t":"gap","n":2},{"a":37212,"l":"players_sprites","c":"For each player in the game: picks the shape (hero base player_shapes + walking step through anim_frames, the step held still when bit 7 of the state is set, + the facing, which is updated from the stick unless $B66D,x holds a direction of its own), writes it to sprite pointer 6 or 7 in both screens, and works out the sprite's X ($34 + 2 x screen X, with the high bit) and Y ($33 + 2 x screen Y). A player not in the game gets X and Y 0.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[34269]},{"a":37214,"t":"code","b":[141,12,145],"m":"sta","oa":37132,"o":"player_loop"},{"a":37217,"l":"b_9161","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[37304,37321]},{"a":37220,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37222,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":37225,"t":"code","b":[240,80],"m":"beq","oa":37307,"o":"b_91BB"},{"a":37227,"t":"code","b":[48,3],"m":"bmi","oa":37232,"o":"b_9170"},{"a":37229,"t":"code","b":[188,36,145],"m":"ldy","oa":37156,"o":"player_anim,x"},{"a":37232,"l":"b_9170","t":"code","b":[185,40,145],"m":"lda","oa":37160,"o":"anim_frames,y","x":[37227]},{"a":37235,"t":"code","b":[24],"m":"clc"},{"a":37236,"t":"code","b":[125,44,145],"m":"adc","oa":37164,"o":"player_shapes,x"},{"a":37239,"t":"code","b":[141,93,130],"m":"sta","oa":33373,"o":"scratch_3"},{"a":37242,"t":"code","b":[189,109,182],"m":"lda","oa":46701,"o":"facing_hold,x"},{"a":37245,"t":"code","b":[208,3],"m":"bne","oa":37250,"o":"b_9182"},{"a":37247,"t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x"},{"a":37250,"l":"b_9182","t":"code","b":[41,15],"m":"and","o":"#$0F","x":[37245]},{"a":37252,"t":"code","b":[168],"m":"tay"},{"a":37253,"t":"code","b":[185,46,145],"m":"lda","oa":37166,"o":"facing_of_dir,y"},{"a":37256,"t":"code","b":[48,3],"m":"bmi","oa":37261,"o":"b_918D"},{"a":37258,"t":"code","b":[157,38,145],"m":"sta","oa":37158,"o":"player_facing,x"},{"a":37261,"l":"b_918D","t":"code","b":[189,38,145],"m":"lda","oa":37158,"o":"player_facing,x","x":[37256]},{"a":37264,"t":"code","b":[24],"m":"clc"},{"a":37265,"t":"code","b":[109,93,130],"m":"adc","oa":33373,"o":"scratch_3"},{"a":37268,"t":"code","b":[157,254,67],"m":"sta","oa":17406,"o":"a_43FE,x"},{"a":37271,"t":"code","b":[157,254,71],"m":"sta","oa":18430,"o":"f_47FE,x"},{"a":37274,"t":"code","b":[189,2,145],"m":"lda","oa":37122,"o":"player_screen_y,x"},{"a":37277,"t":"code","b":[10],"m":"asl","o":"a"},{"a":37278,"t":"code","b":[24],"m":"clc"},{"a":37279,"t":"code","b":[105,51],"m":"adc","o":"#$33"},{"a":37281,"t":"code","b":[157,72,145],"m":"sta","oa":37192,"o":"player_sprite_y,x"},{"a":37284,"t":"code","b":[189,0,145],"m":"lda","oa":37120,"o":"player_screen_x,x"},{"a":37287,"t":"code","b":[10],"m":"asl","o":"a"},{"a":37288,"t":"code","b":[24],"m":"clc"},{"a":37289,"t":"code","b":[105,52],"m":"adc","o":"#$34"},{"a":37291,"t":"code","b":[157,66,145],"m":"sta","oa":37186,"o":"player_sprite_x,x"},{"a":37294,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":37296,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":37298,"t":"code","b":[157,78,145],"m":"sta","oa":37198,"o":"player_x_high,x"},{"a":37301,"t":"code","b":[206,12,145],"m":"dec","oa":37132,"o":"player_loop"},{"a":37304,"t":"code","b":[16,167],"m":"bpl","oa":37217,"o":"b_9161"},{"a":37306,"t":"code","b":[96],"m":"rts"},{"a":37307,"l":"b_91BB","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[37225]},{"a":37309,"t":"code","b":[157,66,145],"m":"sta","oa":37186,"o":"player_sprite_x,x"},{"a":37312,"t":"code","b":[157,72,145],"m":"sta","oa":37192,"o":"player_sprite_y,x"},{"a":37315,"t":"code","b":[157,78,145],"m":"sta","oa":37198,"o":"player_x_high,x"},{"a":37318,"t":"code","b":[206,12,145],"m":"dec","oa":37132,"o":"player_loop"},{"a":37321,"t":"code","b":[16,150],"m":"bpl","oa":37217,"o":"b_9161"},{"a":37323,"t":"code","b":[96],"m":"rts"},{"a":37324,"l":"sprites_place","c":"Writes the shadow positions of sprites 2-7 to the video chip with their X high bits, the pointers of sprites 2-5, clears the X expansion of sprites 2-7, sets them multicolour, enables the sprites from sprites_on, colours sprites 4 and 6 with player one's hero colour and 5 and 7 with player two's, sprites 2 and 3 from $AABC/$AABD, and sets the sprite multicolour $D026 white.","t":"code","b":[173,62,145],"m":"lda","oa":37182,"o":"sprite_x","x":[34272]},{"a":37327,"t":"code","b":[141,4,208],"m":"sta","o":"vic_sprite2_x"},{"a":37330,"t":"code","b":[173,63,145],"m":"lda","oa":37183,"o":"sprite3_x"},{"a":37333,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":37336,"t":"code","b":[173,64,145],"m":"lda","oa":37184,"o":"sprite4_x"},{"a":37339,"t":"code","b":[141,8,208],"m":"sta","o":"vic_sprite4_x"},{"a":37342,"t":"code","b":[173,65,145],"m":"lda","oa":37185,"o":"sprite5_x"},{"a":37345,"t":"code","b":[141,10,208],"m":"sta","o":"vic_sprite5_x"},{"a":37348,"t":"code","b":[173,66,145],"m":"lda","oa":37186,"o":"player_sprite_x"},{"a":37351,"t":"code","b":[141,12,208],"m":"sta","o":"vic_sprite6_x"},{"a":37354,"t":"code","b":[173,67,145],"m":"lda","oa":37187,"o":"player2_sprite_x"},{"a":37357,"t":"code","b":[141,14,208],"m":"sta","o":"vic_sprite7_x"},{"a":37360,"t":"code","b":[173,68,145],"m":"lda","oa":37188,"o":"sprite_y"},{"a":37363,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":37366,"t":"code","b":[173,69,145],"m":"lda","oa":37189,"o":"sprite3_y"},{"a":37369,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":37372,"t":"code","b":[173,70,145],"m":"lda","oa":37190,"o":"sprite4_y"},{"a":37375,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":37378,"t":"code","b":[173,71,145],"m":"lda","oa":37191,"o":"sprite5_y"},{"a":37381,"t":"code","b":[141,11,208],"m":"sta","o":"vic_sprite5_y"},{"a":37384,"t":"code","b":[173,72,145],"m":"lda","oa":37192,"o":"player_sprite_y"},{"a":37387,"t":"code","b":[141,13,208],"m":"sta","o":"vic_sprite6_y"},{"a":37390,"t":"code","b":[173,73,145],"m":"lda","oa":37193,"o":"player2_sprite_y"},{"a":37393,"t":"code","b":[141,15,208],"m":"sta","o":"vic_sprite7_y"},{"a":37396,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":37398,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":37400,"l":"b_9218","t":"code","b":[188,74,145],"m":"ldy","oa":37194,"o":"sprite_x_high,x","x":[37409]},{"a":37403,"t":"code","b":[240,3],"m":"beq","oa":37408,"o":"b_9220"},{"a":37405,"t":"code","b":[29,80,145],"m":"ora","oa":37200,"o":"sprite_x_bits,x"},{"a":37408,"l":"b_9220","t":"code","b":[202],"m":"dex","x":[37403]},{"a":37409,"t":"code","b":[16,245],"m":"bpl","oa":37400,"o":"b_9218"},{"a":37411,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":37414,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":37416,"l":"b_9228","t":"code","b":[189,86,145],"m":"lda","oa":37206,"o":"sprite_ptrs,x","x":[37426]},{"a":37419,"t":"code","b":[157,250,67],"m":"sta","oa":17402,"o":"a_43FA,x"},{"a":37422,"t":"code","b":[157,250,71],"m":"sta","oa":18426,"o":"f_47FA,x"},{"a":37425,"t":"code","b":[202],"m":"dex"},{"a":37426,"t":"code","b":[16,244],"m":"bpl","oa":37416,"o":"b_9228"},{"a":37428,"t":"code","b":[173,29,208],"m":"lda","o":"vic_sprite_expand_x"},{"a":37431,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":37433,"t":"code","b":[141,29,208],"m":"sta","o":"vic_sprite_expand_x"},{"a":37436,"t":"code","b":[173,28,208],"m":"lda","o":"vic_sprite_multicolour"},{"a":37439,"t":"code","b":[9,252],"m":"ora","o":"#$FC"},{"a":37441,"t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour"},{"a":37444,"t":"code","b":[173,17,145],"m":"lda","oa":37137,"o":"sprites_on"},{"a":37447,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":37450,"t":"code","b":[174,28,145],"m":"ldx","oa":37148,"o":"player_hero"},{"a":37453,"t":"code","b":[189,24,145],"m":"lda","oa":37144,"o":"hero_sprite_colours,x"},{"a":37456,"t":"code","b":[141,43,208],"m":"sta","o":"vic_sprite4_colour"},{"a":37459,"t":"code","b":[141,45,208],"m":"sta","o":"vic_sprite6_colour"},{"a":37462,"t":"code","b":[174,29,145],"m":"ldx","oa":37149,"o":"player2_hero"},{"a":37465,"t":"code","b":[189,24,145],"m":"lda","oa":37144,"o":"hero_sprite_colours,x"},{"a":37468,"t":"code","b":[141,44,208],"m":"sta","o":"vic_sprite5_colour"},{"a":37471,"t":"code","b":[141,46,208],"m":"sta","o":"vic_sprite7_colour"},{"a":37474,"t":"code","b":[173,188,170],"m":"lda","oa":43708,"o":"shot_colours"},{"a":37477,"t":"code","b":[141,41,208],"m":"sta","o":"vic_sprite2_colour"},{"a":37480,"t":"code","b":[173,189,170],"m":"lda","oa":43709,"o":"shot_colour_1"},{"a":37483,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":37486,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":37488,"t":"code","b":[141,38,208],"m":"sta","o":"vic_sprite_mc1"},{"a":37491,"t":"code","b":[96],"m":"rts"},{"a":37492,"l":"players_walk","c":"Moves each player in the game one unit along each axis its direction bits ask for, in the maze and on the screen together.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[34384]},{"a":37494,"t":"code","b":[141,12,145],"m":"sta","oa":37132,"o":"player_loop"},{"a":37497,"l":"b_9279","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[37560]},{"a":37500,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":37503,"t":"code","b":[240,52],"m":"beq","oa":37557,"o":"b_92B5"},{"a":37505,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37508,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":37510,"t":"code","b":[208,6],"m":"bne","oa":37518,"o":"b_928E"},{"a":37512,"t":"code","b":[222,4,145],"m":"dec","oa":37124,"o":"player_world_x,x"},{"a":37515,"t":"code","b":[222,0,145],"m":"dec","oa":37120,"o":"player_screen_x,x"},{"a":37518,"l":"b_928E","t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x","x":[37510]},{"a":37521,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":37523,"t":"code","b":[208,6],"m":"bne","oa":37531,"o":"b_929B"},{"a":37525,"t":"code","b":[254,4,145],"m":"inc","oa":37124,"o":"player_world_x,x"},{"a":37528,"t":"code","b":[254,0,145],"m":"inc","oa":37120,"o":"player_screen_x,x"},{"a":37531,"l":"b_929B","t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x","x":[37523]},{"a":37534,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":37536,"t":"code","b":[208,6],"m":"bne","oa":37544,"o":"b_92A8"},{"a":37538,"t":"code","b":[222,6,145],"m":"dec","oa":37126,"o":"player_world_y,x"},{"a":37541,"t":"code","b":[222,2,145],"m":"dec","oa":37122,"o":"player_screen_y,x"},{"a":37544,"l":"b_92A8","t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x","x":[37536]},{"a":37547,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":37549,"t":"code","b":[208,6],"m":"bne","oa":37557,"o":"b_92B5"},{"a":37551,"t":"code","b":[254,6,145],"m":"inc","oa":37126,"o":"player_world_y,x"},{"a":37554,"t":"code","b":[254,2,145],"m":"inc","oa":37122,"o":"player_screen_y,x"},{"a":37557,"l":"b_92B5","t":"code","b":[206,12,145],"m":"dec","oa":37132,"o":"player_loop","x":[37503,37549]},{"a":37560,"t":"code","b":[16,191],"m":"bpl","oa":37497,"o":"b_9279"},{"a":37562,"t":"code","b":[96],"m":"rts"},{"a":37563,"l":"unused_92BB","c":"Four bytes no traced code reaches: 2 1 0 3.","t":"byte","b":[2,1,0,3]},{"a":37567,"l":"players_screen_pos","c":"Each player's screen position is its maze position less the scroll offsets $8266/$8267.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[34266]},{"a":37569,"l":"b_92C1","t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x","x":[37590]},{"a":37572,"t":"code","b":[56],"m":"sec"},{"a":37573,"t":"code","b":[237,102,130],"m":"sbc","oa":33382,"o":"scroll_x_units"},{"a":37576,"t":"code","b":[157,0,145],"m":"sta","oa":37120,"o":"player_screen_x,x"},{"a":37579,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":37582,"t":"code","b":[56],"m":"sec"},{"a":37583,"t":"code","b":[237,103,130],"m":"sbc","oa":33383,"o":"scroll_y_units"},{"a":37586,"t":"code","b":[157,2,145],"m":"sta","oa":37122,"o":"player_screen_y,x"},{"a":37589,"t":"code","b":[202],"m":"dex"},{"a":37590,"t":"code","b":[16,233],"m":"bpl","oa":37569,"o":"b_92C1"},{"a":37592,"t":"code","b":[96],"m":"rts"},{"a":37593,"l":"scroll_edges","c":"Stops the screen scrolling past the map's edges: unless bit 7 of the level header $0A01 is set (the maze wraps left and right), no scrolling left at column 0 or right at column $20; unless bit 6 is set (it wraps top and bottom), none up at row 0 or down at row $2E.","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[34390]},{"a":37596,"t":"code","b":[48,28],"m":"bmi","oa":37626,"o":"b_92FA"},{"a":37598,"t":"code","b":[173,50,136],"m":"lda","oa":34866,"o":"map_x_prev"},{"a":37601,"t":"code","b":[208,8],"m":"bne","oa":37611,"o":"b_92EB"},{"a":37603,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":37606,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":37608,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37611,"l":"b_92EB","t":"code","b":[173,50,136],"m":"lda","oa":34866,"o":"map_x_prev","x":[37601]},{"a":37614,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":37616,"t":"code","b":[208,8],"m":"bne","oa":37626,"o":"b_92FA"},{"a":37618,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":37621,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":37623,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37626,"l":"b_92FA","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[37596,37616]},{"a":37629,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":37631,"t":"code","b":[208,28],"m":"bne","oa":37661,"o":"r_931D"},{"a":37633,"t":"code","b":[173,52,136],"m":"lda","oa":34868,"o":"map_y_prev"},{"a":37636,"t":"code","b":[208,8],"m":"bne","oa":37646,"o":"b_930E"},{"a":37638,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":37641,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":37643,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37646,"l":"b_930E","t":"code","b":[173,52,136],"m":"lda","oa":34868,"o":"map_y_prev","x":[37636]},{"a":37649,"t":"code","b":[201,46],"m":"cmp","o":"#$2E"},{"a":37651,"t":"code","b":[208,8],"m":"bne","oa":37661,"o":"r_931D"},{"a":37653,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":37656,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":37658,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37661,"l":"r_931D","t":"code","b":[96],"m":"rts","x":[37631,37651]},{"a":37662,"l":"players_keep_close","c":"Keeps the two players on one screen and the screen inside its edges: a player $78 units right or left of the other may not move further away, nor $48 above or below; a player at the play area's left or right edge (screen X 0 or $78) or top or bottom (Y 0 or $48) may not move further, and the screen stops scrolling that way.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[34745]},{"a":37664,"t":"code","b":[141,12,145],"m":"sta","oa":37132,"o":"player_loop"},{"a":37667,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":37670,"t":"code","b":[13,33,145],"m":"ora","oa":37153,"o":"player2_state"},{"a":37673,"t":"code","b":[208,3],"m":"bne","oa":37678,"o":"b_932E"},{"a":37675,"t":"code","b":[76,248,147],"m":"jmp","oa":37880,"o":"r_93F8"},{"a":37678,"l":"b_932E","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[37673,37877]},{"a":37681,"t":"code","b":[188,34,145],"m":"ldy","oa":37154,"o":"player_other,x"},{"a":37684,"t":"code","b":[189,0,145],"m":"lda","oa":37120,"o":"player_screen_x,x"},{"a":37687,"t":"code","b":[56],"m":"sec"},{"a":37688,"t":"code","b":[249,0,145],"m":"sbc","oa":37120,"o":"player_screen_x,y"},{"a":37691,"t":"code","b":[201,120],"m":"cmp","o":"#$78"},{"a":37693,"t":"code","b":[240,23],"m":"beq","oa":37718,"o":"b_9356"},{"a":37695,"t":"code","b":[201,136],"m":"cmp","o":"#$88"},{"a":37697,"t":"code","b":[208,35],"m":"bne","oa":37734,"o":"b_9366"},{"a":37699,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37702,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":37704,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37707,"t":"code","b":[185,178,142],"m":"lda","oa":36530,"o":"dir_p1,y"},{"a":37710,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":37712,"t":"code","b":[153,178,142],"m":"sta","oa":36530,"o":"dir_p1,y"},{"a":37715,"t":"code","b":[76,102,147],"m":"jmp","oa":37734,"o":"b_9366"},{"a":37718,"l":"b_9356","t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x","x":[37693]},{"a":37721,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":37723,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37726,"t":"code","b":[185,178,142],"m":"lda","oa":36530,"o":"dir_p1,y"},{"a":37729,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":37731,"t":"code","b":[153,178,142],"m":"sta","oa":36530,"o":"dir_p1,y"},{"a":37734,"l":"b_9366","t":"code","b":[189,2,145],"m":"lda","oa":37122,"o":"player_screen_y,x","x":[37697,37715]},{"a":37737,"t":"code","b":[56],"m":"sec"},{"a":37738,"t":"code","b":[249,2,145],"m":"sbc","oa":37122,"o":"player_screen_y,y"},{"a":37741,"t":"code","b":[201,72],"m":"cmp","o":"#$48"},{"a":37743,"t":"code","b":[240,23],"m":"beq","oa":37768,"o":"b_9388"},{"a":37745,"t":"code","b":[201,184],"m":"cmp","o":"#$B8"},{"a":37747,"t":"code","b":[208,35],"m":"bne","oa":37784,"o":"b_9398"},{"a":37749,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37752,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":37754,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37757,"t":"code","b":[185,178,142],"m":"lda","oa":36530,"o":"dir_p1,y"},{"a":37760,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":37762,"t":"code","b":[153,178,142],"m":"sta","oa":36530,"o":"dir_p1,y"},{"a":37765,"t":"code","b":[76,152,147],"m":"jmp","oa":37784,"o":"b_9398"},{"a":37768,"l":"b_9388","t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x","x":[37743]},{"a":37771,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":37773,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37776,"t":"code","b":[185,178,142],"m":"lda","oa":36530,"o":"dir_p1,y"},{"a":37779,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":37781,"t":"code","b":[153,178,142],"m":"sta","oa":36530,"o":"dir_p1,y"},{"a":37784,"l":"b_9398","t":"code","b":[189,0,145],"m":"lda","oa":37120,"o":"player_screen_x,x","x":[37747,37765]},{"a":37787,"t":"code","b":[240,23],"m":"beq","oa":37812,"o":"b_93B4"},{"a":37789,"t":"code","b":[201,120],"m":"cmp","o":"#$78"},{"a":37791,"t":"code","b":[208,35],"m":"bne","oa":37828,"o":"b_93C4"},{"a":37793,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":37796,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":37798,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37801,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37804,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":37806,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37809,"t":"code","b":[76,196,147],"m":"jmp","oa":37828,"o":"b_93C4"},{"a":37812,"l":"b_93B4","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[37787]},{"a":37815,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":37817,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37820,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37823,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":37825,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37828,"l":"b_93C4","t":"code","b":[189,2,145],"m":"lda","oa":37122,"o":"player_screen_y,x","x":[37791,37809]},{"a":37831,"t":"code","b":[240,23],"m":"beq","oa":37856,"o":"b_93E0"},{"a":37833,"t":"code","b":[201,72],"m":"cmp","o":"#$48"},{"a":37835,"t":"code","b":[208,35],"m":"bne","oa":37872,"o":"b_93F0"},{"a":37837,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":37840,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":37842,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37845,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37848,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":37850,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37853,"t":"code","b":[76,240,147],"m":"jmp","oa":37872,"o":"b_93F0"},{"a":37856,"l":"b_93E0","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[37831]},{"a":37859,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":37861,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":37864,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37867,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":37869,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37872,"l":"b_93F0","t":"code","b":[206,12,145],"m":"dec","oa":37132,"o":"player_loop","x":[37835,37853]},{"a":37875,"t":"code","b":[48,3],"m":"bmi","oa":37880,"o":"r_93F8"},{"a":37877,"t":"code","b":[76,46,147],"m":"jmp","oa":37678,"o":"b_932E"},{"a":37880,"l":"r_93F8","t":"code","b":[96],"m":"rts","x":[37675,37875]},{"a":37881,"l":"players_move","c":"For each player in the game with bit 7 of its state clear: notes its tile, chooses the wall rules for tile_blocks (the limit $B660 is $13, or $11 when $B663,x is non-zero and neither $B4E7 nor $B4E9 is set; $B661 is set when $B663,x + $B665,x reaches $B667,x), gathers the eight tiles around it (tile_ring), takes the blocked directions out of the stick (block_dirs), then runs $B671, player_step and $98A8.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[34748]},{"a":37883,"t":"code","b":[141,12,145],"m":"sta","oa":37132,"o":"player_loop"},{"a":37886,"l":"b_93FE","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[37996]},{"a":37889,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":37891,"t":"code","b":[157,113,144],"m":"sta","oa":36977,"o":"player_moved,x"},{"a":37894,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":37897,"t":"code","b":[48,94],"m":"bmi","oa":37993,"o":"b_9469"},{"a":37899,"t":"code","b":[240,92],"m":"beq","oa":37993,"o":"b_9469"},{"a":37901,"t":"code","b":[138],"m":"txa"},{"a":37902,"t":"code","b":[72],"m":"pha"},{"a":37903,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":37906,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37907,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37908,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37909,"t":"code","b":[141,254,144],"m":"sta","oa":37118,"o":"tile_x"},{"a":37912,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":37915,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37916,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37917,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":37918,"t":"code","b":[141,255,144],"m":"sta","oa":37119,"o":"tile_y"},{"a":37921,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":37924,"t":"code","b":[141,93,130],"m":"sta","oa":33373,"o":"scratch_3"},{"a":37927,"t":"code","b":[189,99,182],"m":"lda","oa":46691,"o":"keys_held,x"},{"a":37930,"t":"code","b":[72],"m":"pha"},{"a":37931,"t":"code","b":[24],"m":"clc"},{"a":37932,"t":"code","b":[125,101,182],"m":"adc","oa":46693,"o":"potions_held,x"},{"a":37935,"t":"code","b":[221,103,182],"m":"cmp","oa":46695,"o":"carry_limit,x"},{"a":37938,"t":"code","b":[162,19],"m":"ldx","o":"#$13"},{"a":37940,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37942,"t":"code","b":[144,1],"m":"bcc","oa":37945,"o":"b_9439"},{"a":37944,"t":"code","b":[200],"m":"iny"},{"a":37945,"l":"b_9439","t":"code","b":[104],"m":"pla","x":[37942]},{"a":37946,"t":"code","b":[240,10],"m":"beq","oa":37958,"o":"b_9446"},{"a":37948,"t":"code","b":[173,231,180],"m":"lda","oa":46311,"o":"door_state"},{"a":37951,"t":"code","b":[13,233,180],"m":"ora","oa":46313,"o":"door_state_p2"},{"a":37954,"t":"code","b":[208,2],"m":"bne","oa":37958,"o":"b_9446"},{"a":37956,"t":"code","b":[162,17],"m":"ldx","o":"#$11"},{"a":37958,"l":"b_9446","t":"code","b":[142,96,182],"m":"stx","oa":46688,"o":"wall_limit","x":[37946,37954]},{"a":37961,"t":"code","b":[140,97,182],"m":"sty","oa":46689,"o":"hands_full"},{"a":37964,"t":"code","b":[32,23,149],"m":"jsr","oa":38167,"o":"tile_ring"},{"a":37967,"t":"code","b":[32,111,148],"m":"jsr","oa":37999,"o":"block_dirs"},{"a":37970,"t":"code","b":[104],"m":"pla"},{"a":37971,"t":"code","b":[170],"m":"tax"},{"a":37972,"t":"code","b":[173,94,130],"m":"lda","oa":33374,"o":"blocked_dirs"},{"a":37975,"t":"code","b":[29,178,142],"m":"ora","oa":36530,"o":"dir_p1,x"},{"a":37978,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":37981,"t":"code","b":[141,93,130],"m":"sta","oa":33373,"o":"scratch_3"},{"a":37984,"t":"code","b":[32,113,182],"m":"jsr","oa":46705,"o":"touch_check"},{"a":37987,"t":"code","b":[32,14,151],"m":"jsr","oa":38670,"o":"player_step"},{"a":37990,"t":"code","b":[32,168,152],"m":"jsr","oa":39080,"o":"exit_check"},{"a":37993,"l":"b_9469","t":"code","b":[206,12,145],"m":"dec","oa":37132,"o":"player_loop","x":[37897,37899]},{"a":37996,"t":"code","b":[16,144],"m":"bpl","oa":37886,"o":"b_93FE"},{"a":37998,"t":"code","b":[96],"m":"rts"},{"a":37999,"l":"block_dirs","c":"Works out which directions the walls around the player block: for each of the eight neighbours whose direction matches the stick (dir_of_ring), and for a diagonal its two sides too, ORs the direction's bit into $825E when tile_blocks says so; the result is added to the player's direction bits.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[37967]},{"a":38001,"t":"code","b":[141,186,148],"m":"sta","oa":38074,"o":"ring_exit"},{"a":38004,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38006,"t":"code","b":[141,94,130],"m":"sta","oa":33374,"o":"blocked_dirs"},{"a":38009,"t":"code","b":[162,14],"m":"ldx","o":"#$0E"},{"a":38011,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":38013,"l":"b_947D","t":"code","b":[185,7,149],"m":"lda","oa":38151,"o":"dir_of_ring,y","x":[38071]},{"a":38016,"t":"code","b":[240,47],"m":"beq","oa":38065,"o":"b_94B1"},{"a":38018,"t":"code","b":[205,93,130],"m":"cmp","oa":33373,"o":"scratch_3"},{"a":38021,"t":"code","b":[208,45],"m":"bne","oa":38068,"o":"b_94B4"},{"a":38023,"t":"code","b":[138],"m":"txa"},{"a":38024,"t":"code","b":[72],"m":"pha"},{"a":38025,"t":"code","b":[152],"m":"tya"},{"a":38026,"t":"code","b":[72],"m":"pha"},{"a":38027,"t":"code","b":[202],"m":"dex"},{"a":38028,"t":"code","b":[202],"m":"dex"},{"a":38029,"t":"code","b":[138],"m":"txa"},{"a":38030,"t":"code","b":[41,14],"m":"and","o":"#$0E"},{"a":38032,"t":"code","b":[170],"m":"tax"},{"a":38033,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38034,"t":"code","b":[168],"m":"tay"},{"a":38035,"t":"code","b":[32,187,148],"m":"jsr","oa":38075,"o":"tile_blocks"},{"a":38038,"t":"code","b":[138],"m":"txa"},{"a":38039,"t":"code","b":[24],"m":"clc"},{"a":38040,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":38042,"t":"code","b":[41,14],"m":"and","o":"#$0E"},{"a":38044,"t":"code","b":[170],"m":"tax"},{"a":38045,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38046,"t":"code","b":[168],"m":"tay"},{"a":38047,"t":"code","b":[32,187,148],"m":"jsr","oa":38075,"o":"tile_blocks"},{"a":38050,"t":"code","b":[104],"m":"pla"},{"a":38051,"t":"code","b":[168],"m":"tay"},{"a":38052,"t":"code","b":[104],"m":"pla"},{"a":38053,"t":"code","b":[170],"m":"tax"},{"a":38054,"t":"code","b":[173,93,130],"m":"lda","oa":33373,"o":"scratch_3"},{"a":38057,"t":"code","b":[13,94,130],"m":"ora","oa":33374,"o":"blocked_dirs"},{"a":38060,"t":"code","b":[205,93,130],"m":"cmp","oa":33373,"o":"scratch_3"},{"a":38063,"t":"code","b":[208,3],"m":"bne","oa":38068,"o":"b_94B4"},{"a":38065,"l":"b_94B1","t":"code","b":[32,187,148],"m":"jsr","oa":38075,"o":"tile_blocks","x":[38016]},{"a":38068,"l":"b_94B4","t":"code","b":[202],"m":"dex","x":[38021,38063]},{"a":38069,"t":"code","b":[202],"m":"dex"},{"a":38070,"t":"code","b":[136],"m":"dey"},{"a":38071,"t":"code","b":[16,196],"m":"bpl","oa":38013,"o":"b_947D"},{"a":38073,"t":"code","b":[96],"m":"rts"},{"a":38074,"l":"ring_exit","c":"The ring index of the last neighbouring tile from $20-$2E or $30 that tile_blocks met, or $FF.","t":"byte","b":[255],"x":[38001,38122,39083,39100]},{"a":38075,"l":"tile_blocks","c":"Tests the neighbour tile at ($B0,X), bit 7 ignored, and ORs its direction into $825E when it blocks: 0, $2F, $31 and $36 never block; a tile below the limit $B660 blocks; $16, $17 and $1F block only while $B661 is set; $30 and above block; $13-$1F (but those three) do not; $20-$2E and $30 block and have their ring index noted in ring_exit.","t":"code","b":[161,176],"m":"lda","oa":176,"o":"(zpp_B0,x)","x":[38035,38047,38065]},{"a":38077,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":38079,"t":"code","b":[240,61],"m":"beq","oa":38142,"o":"r_94FE"},{"a":38081,"t":"code","b":[201,48],"m":"cmp","o":"#$30"},{"a":38083,"t":"code","b":[240,37],"m":"beq","oa":38122,"o":"b_94EA"},{"a":38085,"t":"code","b":[201,49],"m":"cmp","o":"#$31"},{"a":38087,"t":"code","b":[240,53],"m":"beq","oa":38142,"o":"r_94FE"},{"a":38089,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":38091,"t":"code","b":[240,49],"m":"beq","oa":38142,"o":"r_94FE"},{"a":38093,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":38095,"t":"code","b":[240,45],"m":"beq","oa":38142,"o":"r_94FE"},{"a":38097,"t":"code","b":[205,96,182],"m":"cmp","oa":46688,"o":"wall_limit"},{"a":38100,"t":"code","b":[144,31],"m":"bcc","oa":38133,"o":"b_94F5"},{"a":38102,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":38104,"t":"code","b":[240,22],"m":"beq","oa":38128,"o":"b_94F0"},{"a":38106,"t":"code","b":[201,22],"m":"cmp","o":"#$16"},{"a":38108,"t":"code","b":[240,18],"m":"beq","oa":38128,"o":"b_94F0"},{"a":38110,"t":"code","b":[201,23],"m":"cmp","o":"#$17"},{"a":38112,"t":"code","b":[240,14],"m":"beq","oa":38128,"o":"b_94F0"},{"a":38114,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":38116,"t":"code","b":[176,15],"m":"bcs","oa":38133,"o":"b_94F5"},{"a":38118,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":38120,"t":"code","b":[144,20],"m":"bcc","oa":38142,"o":"r_94FE"},{"a":38122,"l":"b_94EA","t":"code","b":[142,186,148],"m":"stx","oa":38074,"o":"ring_exit","x":[38083]},{"a":38125,"t":"code","b":[76,245,148],"m":"jmp","oa":38133,"o":"b_94F5"},{"a":38128,"l":"b_94F0","t":"code","b":[173,97,182],"m":"lda","oa":46689,"o":"hands_full","x":[38104,38108,38112]},{"a":38131,"t":"code","b":[240,9],"m":"beq","oa":38142,"o":"r_94FE"},{"a":38133,"l":"b_94F5","t":"code","b":[173,94,130],"m":"lda","oa":33374,"o":"blocked_dirs","x":[38100,38116,38125]},{"a":38136,"t":"code","b":[25,255,148],"m":"ora","oa":38143,"o":"ring_dir_bits,y"},{"a":38139,"t":"code","b":[141,94,130],"m":"sta","oa":33374,"o":"blocked_dirs"},{"a":38142,"l":"r_94FE","t":"code","b":[96],"m":"rts","x":[38079,38087,38091,38095,38120,38131]},{"a":38143,"l":"ring_dir_bits","c":"The direction bit each neighbour blocks.","t":"byte","b":[2,2,8,8,1,1,4,4],"x":[38136]},{"a":38151,"l":"dir_of_ring","c":"The stick value each diagonal neighbour answers (0 for the straight ones).","t":"byte","b":[0,5,0,6,0,10,0,9],"x":[38013]},{"a":38159,"l":"ring_stick","c":"The stick value (active low) pointing at each of the eight neighbours.","t":"byte","b":[13,5,7,6,14,10,11,9],"x":[39095,46709]},{"a":38167,"l":"tile_ring","c":"Fills the pointers $B0-$BF with the addresses in the tile grid of the eight tiles around (tile_x, tile_y), clockwise from below.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[37964]},{"a":38169,"t":"code","b":[238,255,144],"m":"inc","oa":37119,"o":"tile_y"},{"a":38172,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38175,"t":"code","b":[238,254,144],"m":"inc","oa":37118,"o":"tile_x"},{"a":38178,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38181,"t":"code","b":[206,255,144],"m":"dec","oa":37119,"o":"tile_y"},{"a":38184,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38187,"t":"code","b":[206,255,144],"m":"dec","oa":37119,"o":"tile_y"},{"a":38190,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38193,"t":"code","b":[206,254,144],"m":"dec","oa":37118,"o":"tile_x"},{"a":38196,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38199,"t":"code","b":[206,254,144],"m":"dec","oa":37118,"o":"tile_x"},{"a":38202,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38205,"t":"code","b":[238,255,144],"m":"inc","oa":37119,"o":"tile_y"},{"a":38208,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38211,"t":"code","b":[238,255,144],"m":"inc","oa":37119,"o":"tile_y"},{"a":38214,"t":"code","b":[32,74,149],"m":"jsr","oa":38218,"o":"tile_addr"},{"a":38217,"t":"code","b":[96],"m":"rts"},{"a":38218,"l":"tile_addr","c":"Stores the tile grid address of (tile_x, tile_y), wrapped to 32, at $B0,X and steps X by two.","t":"code","b":[173,255,144],"m":"lda","oa":37119,"o":"tile_y","x":[38172,38178,38184,38190,38196,38202,38208,38214]},{"a":38221,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":38223,"t":"code","b":[168],"m":"tay"},{"a":38224,"t":"code","b":[173,254,144],"m":"lda","oa":37118,"o":"tile_x"},{"a":38227,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":38229,"t":"code","b":[24],"m":"clc"},{"a":38230,"t":"code","b":[121,112,142],"m":"adc","oa":36464,"o":"map_row_lo,y"},{"a":38233,"t":"code","b":[149,176],"m":"sta","oa":176,"o":"zpp_B0,x"},{"a":38235,"t":"code","b":[185,144,142],"m":"lda","oa":36496,"o":"map_row_hi,y"},{"a":38238,"t":"code","b":[149,177],"m":"sta","oa":177,"o":"zpf_B1,x"},{"a":38240,"t":"code","b":[232],"m":"inx"},{"a":38241,"t":"code","b":[232],"m":"inx"},{"a":38242,"t":"code","b":[96],"m":"rts"},{"a":38243,"l":"unused_9563","c":"34 bytes no traced code reaches: sets player one's maze position from the scroll (map_x x 8 + $80, map_y x 8 + $38) for both players.","t":"byte","b":[173,49,136,10,10,10,24,105]},{"a":38251,"t":"byte","b":[128,141,4,145,24,105,16,141]},{"a":38259,"t":"byte","b":[5,145,173,51,136,10,10,10]},{"a":38267,"t":"byte","b":[24,105,56,141,6,145,141,7]},{"a":38275,"t":"byte","b":[145,96]},{"a":38277,"l":"level_place_players","c":"Places the screen and the players at the level's start: the scroll from the starting tile (start_x less 8, start_y less 5, held inside the map unless the header lets it wrap), each player in the game at the start tile (in 2-pixel units, and on screen), the other-player links (player_other), $C40C/$C40D cleared and both facings 4. With both players in the game, player one is placed by $A584 instead.","t":"code","b":[173,15,145],"m":"lda","oa":37135,"o":"start_x","x":[32973]},{"a":38280,"t":"code","b":[56],"m":"sec"},{"a":38281,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":38283,"t":"code","b":[176,7],"m":"bcs","oa":38292,"o":"b_9594"},{"a":38285,"t":"code","b":[44,1,10],"m":"bit","oa":2561,"o":"level_flags"},{"a":38288,"t":"code","b":[48,2],"m":"bmi","oa":38292,"o":"b_9594"},{"a":38290,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38292,"l":"b_9594","t":"code","b":[201,17],"m":"cmp","o":"#$11","x":[38283,38288]},{"a":38294,"t":"code","b":[144,7],"m":"bcc","oa":38303,"o":"b_959F"},{"a":38296,"t":"code","b":[44,1,10],"m":"bit","oa":2561,"o":"level_flags"},{"a":38299,"t":"code","b":[48,2],"m":"bmi","oa":38303,"o":"b_959F"},{"a":38301,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":38303,"l":"b_959F","t":"code","b":[10],"m":"asl","o":"a","x":[38294,38299]},{"a":38304,"t":"code","b":[141,49,136],"m":"sta","oa":34865,"o":"map_x"},{"a":38307,"t":"code","b":[141,50,136],"m":"sta","oa":34866,"o":"map_x_prev"},{"a":38310,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38311,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38312,"t":"code","b":[141,102,130],"m":"sta","oa":33382,"o":"scroll_x_units"},{"a":38315,"t":"code","b":[173,16,145],"m":"lda","oa":37136,"o":"start_y"},{"a":38318,"t":"code","b":[56],"m":"sec"},{"a":38319,"t":"code","b":[233,5],"m":"sbc","o":"#$05"},{"a":38321,"t":"code","b":[176,7],"m":"bcs","oa":38330,"o":"b_95BA"},{"a":38323,"t":"code","b":[44,1,10],"m":"bit","oa":2561,"o":"level_flags"},{"a":38326,"t":"code","b":[112,2],"m":"bvs","oa":38330,"o":"b_95BA"},{"a":38328,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38330,"l":"b_95BA","t":"code","b":[201,24],"m":"cmp","o":"#$18","x":[38321,38326]},{"a":38332,"t":"code","b":[144,7],"m":"bcc","oa":38341,"o":"b_95C5"},{"a":38334,"t":"code","b":[44,1,10],"m":"bit","oa":2561,"o":"level_flags"},{"a":38337,"t":"code","b":[112,2],"m":"bvs","oa":38341,"o":"b_95C5"},{"a":38339,"t":"code","b":[169,23],"m":"lda","o":"#$17"},{"a":38341,"l":"b_95C5","t":"code","b":[10],"m":"asl","o":"a","x":[38332,38337]},{"a":38342,"t":"code","b":[141,51,136],"m":"sta","oa":34867,"o":"map_y"},{"a":38345,"t":"code","b":[141,52,136],"m":"sta","oa":34868,"o":"map_y_prev"},{"a":38348,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38349,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38350,"t":"code","b":[141,103,130],"m":"sta","oa":33383,"o":"scroll_y_units"},{"a":38353,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":38355,"l":"b_95D3","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[38405]},{"a":38358,"t":"code","b":[240,44],"m":"beq","oa":38404,"o":"b_9604"},{"a":38360,"t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":38362,"t":"code","b":[208,8],"m":"bne","oa":38372,"o":"b_95E4"},{"a":38364,"t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state"},{"a":38367,"t":"code","b":[240,3],"m":"beq","oa":38372,"o":"b_95E4"},{"a":38369,"t":"code","b":[76,132,165],"m":"jmp","oa":42372,"o":"join_beside"},{"a":38372,"l":"b_95E4","t":"code","b":[173,15,145],"m":"lda","oa":37135,"o":"start_x","x":[38362,38367]},{"a":38375,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38376,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38377,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38378,"t":"code","b":[157,4,145],"m":"sta","oa":37124,"o":"player_world_x,x"},{"a":38381,"t":"code","b":[56],"m":"sec"},{"a":38382,"t":"code","b":[237,102,130],"m":"sbc","oa":33382,"o":"scroll_x_units"},{"a":38385,"t":"code","b":[157,0,145],"m":"sta","oa":37120,"o":"player_screen_x,x"},{"a":38388,"t":"code","b":[173,16,145],"m":"lda","oa":37136,"o":"start_y"},{"a":38391,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38392,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38393,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38394,"t":"code","b":[157,6,145],"m":"sta","oa":37126,"o":"player_world_y,x"},{"a":38397,"t":"code","b":[56],"m":"sec"},{"a":38398,"t":"code","b":[237,103,130],"m":"sbc","oa":33383,"o":"scroll_y_units"},{"a":38401,"t":"code","b":[157,2,145],"m":"sta","oa":37122,"o":"player_screen_y,x"},{"a":38404,"l":"b_9604","t":"code","b":[202],"m":"dex","x":[38358]},{"a":38405,"t":"code","b":[16,204],"m":"bpl","oa":38355,"o":"b_95D3"},{"a":38407,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38409,"t":"code","b":[141,34,145],"m":"sta","oa":37154,"o":"player_other"},{"a":38412,"t":"code","b":[141,12,196],"m":"sta","oa":50188,"o":"dead_p1"},{"a":38415,"t":"code","b":[141,13,196],"m":"sta","oa":50189,"o":"dead_p2"},{"a":38418,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":38420,"t":"code","b":[141,35,145],"m":"sta","oa":37155,"o":"player2_other"},{"a":38423,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":38426,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38427,"t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state"},{"a":38430,"t":"code","b":[42],"m":"rol","o":"a"},{"a":38431,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":38433,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":38435,"t":"code","b":[208,10],"m":"bne","oa":38447,"o":"b_962F"},{"a":38437,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":38439,"t":"code","b":[141,34,145],"m":"sta","oa":37154,"o":"player_other"},{"a":38442,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38444,"t":"code","b":[141,35,145],"m":"sta","oa":37155,"o":"player2_other"},{"a":38447,"l":"b_962F","t":"code","b":[169,4],"m":"lda","o":"#$04","x":[38435]},{"a":38449,"t":"code","b":[141,38,145],"m":"sta","oa":37158,"o":"player_facing"},{"a":38452,"t":"code","b":[141,39,145],"m":"sta","oa":37159,"o":"player2_facing"},{"a":38455,"t":"code","b":[96],"m":"rts"},{"a":38456,"l":"scroll_follow","c":"For each player alive: lets the screen scroll left only while the player is in the left part of the play area (X below $41) and the other is not near the right edge ($71), right only while X is $38 or more and the other is not at the left (9); likewise up (Y below $29, the other below $39) and down (Y $20 or more, the other 8 or more).","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[34756]},{"a":38458,"t":"code","b":[141,12,145],"m":"sta","oa":37132,"o":"player_loop"},{"a":38461,"l":"b_963D","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[38514]},{"a":38464,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":38467,"t":"code","b":[48,42],"m":"bmi","oa":38511,"o":"b_966F"},{"a":38469,"t":"code","b":[240,40],"m":"beq","oa":38511,"o":"b_966F"},{"a":38471,"t":"code","b":[188,34,145],"m":"ldy","oa":37154,"o":"player_other,x"},{"a":38474,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":38477,"t":"code","b":[72],"m":"pha"},{"a":38478,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":38480,"t":"code","b":[208,3],"m":"bne","oa":38485,"o":"b_9655"},{"a":38482,"t":"code","b":[32,117,150],"m":"jsr","oa":38517,"o":"follow_left"},{"a":38485,"l":"b_9655","t":"code","b":[104],"m":"pla","x":[38480]},{"a":38486,"t":"code","b":[72],"m":"pha"},{"a":38487,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":38489,"t":"code","b":[208,3],"m":"bne","oa":38494,"o":"b_965E"},{"a":38491,"t":"code","b":[32,149,150],"m":"jsr","oa":38549,"o":"follow_right"},{"a":38494,"l":"b_965E","t":"code","b":[104],"m":"pla","x":[38489]},{"a":38495,"t":"code","b":[72],"m":"pha"},{"a":38496,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":38498,"t":"code","b":[208,3],"m":"bne","oa":38503,"o":"b_9667"},{"a":38500,"t":"code","b":[32,181,150],"m":"jsr","oa":38581,"o":"follow_up"},{"a":38503,"l":"b_9667","t":"code","b":[104],"m":"pla","x":[38498]},{"a":38504,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":38506,"t":"code","b":[208,3],"m":"bne","oa":38511,"o":"b_966F"},{"a":38508,"t":"code","b":[32,213,150],"m":"jsr","oa":38613,"o":"follow_down"},{"a":38511,"l":"b_966F","t":"code","b":[206,12,145],"m":"dec","oa":37132,"o":"player_loop","x":[38467,38469,38506]},{"a":38514,"t":"code","b":[16,201],"m":"bpl","oa":38461,"o":"b_963D"},{"a":38516,"t":"code","b":[96],"m":"rts"},{"a":38517,"l":"follow_left","c":"scroll_follow's test for a player pushing left.","t":"code","b":[189,0,145],"m":"lda","oa":37120,"o":"player_screen_x,x","x":[38482]},{"a":38520,"t":"code","b":[201,65],"m":"cmp","o":"#$41"},{"a":38522,"t":"code","b":[176,15],"m":"bcs","oa":38539,"o":"r_968B"},{"a":38524,"t":"code","b":[185,0,145],"m":"lda","oa":37120,"o":"player_screen_x,y"},{"a":38527,"t":"code","b":[201,113],"m":"cmp","o":"#$71"},{"a":38529,"t":"code","b":[176,9],"m":"bcs","oa":38540,"o":"b_968C"},{"a":38531,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":38534,"t":"code","b":[41,11],"m":"and","o":"#$0B"},{"a":38536,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38539,"l":"r_968B","t":"code","b":[96],"m":"rts","x":[38522]},{"a":38540,"l":"b_968C","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[38529]},{"a":38543,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":38545,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38548,"t":"code","b":[96],"m":"rts"},{"a":38549,"l":"follow_right","c":"scroll_follow's test for a player pushing right.","t":"code","b":[189,0,145],"m":"lda","oa":37120,"o":"player_screen_x,x","x":[38491]},{"a":38552,"t":"code","b":[201,56],"m":"cmp","o":"#$38"},{"a":38554,"t":"code","b":[144,15],"m":"bcc","oa":38571,"o":"r_96AB"},{"a":38556,"t":"code","b":[185,0,145],"m":"lda","oa":37120,"o":"player_screen_x,y"},{"a":38559,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":38561,"t":"code","b":[144,9],"m":"bcc","oa":38572,"o":"b_96AC"},{"a":38563,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":38566,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":38568,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38571,"l":"r_96AB","t":"code","b":[96],"m":"rts","x":[38554]},{"a":38572,"l":"b_96AC","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[38561]},{"a":38575,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":38577,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38580,"t":"code","b":[96],"m":"rts"},{"a":38581,"l":"follow_up","c":"scroll_follow's test for a player pushing up.","t":"code","b":[189,2,145],"m":"lda","oa":37122,"o":"player_screen_y,x","x":[38500]},{"a":38584,"t":"code","b":[201,41],"m":"cmp","o":"#$29"},{"a":38586,"t":"code","b":[176,15],"m":"bcs","oa":38603,"o":"r_96CB"},{"a":38588,"t":"code","b":[185,2,145],"m":"lda","oa":37122,"o":"player_screen_y,y"},{"a":38591,"t":"code","b":[201,57],"m":"cmp","o":"#$39"},{"a":38593,"t":"code","b":[176,9],"m":"bcs","oa":38604,"o":"b_96CC"},{"a":38595,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":38598,"t":"code","b":[41,14],"m":"and","o":"#$0E"},{"a":38600,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38603,"l":"r_96CB","t":"code","b":[96],"m":"rts","x":[38586]},{"a":38604,"l":"b_96CC","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[38593]},{"a":38607,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":38609,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38612,"t":"code","b":[96],"m":"rts"},{"a":38613,"l":"follow_down","c":"scroll_follow's test for a player pushing down.","t":"code","b":[189,2,145],"m":"lda","oa":37122,"o":"player_screen_y,x","x":[38508]},{"a":38616,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":38618,"t":"code","b":[144,15],"m":"bcc","oa":38635,"o":"r_96EB"},{"a":38620,"t":"code","b":[185,2,145],"m":"lda","oa":37122,"o":"player_screen_y,y"},{"a":38623,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":38625,"t":"code","b":[144,9],"m":"bcc","oa":38636,"o":"b_96EC"},{"a":38627,"t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir"},{"a":38630,"t":"code","b":[41,13],"m":"and","o":"#$0D"},{"a":38632,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38635,"l":"r_96EB","t":"code","b":[96],"m":"rts","x":[38618]},{"a":38636,"l":"b_96EC","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[38625]},{"a":38639,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":38641,"t":"code","b":[141,55,136],"m":"sta","oa":34871,"o":"scroll_dir"},{"a":38644,"t":"code","b":[96],"m":"rts"},{"a":38645,"l":"cell_addr","c":"Points $94/$95 at the character map cell under (probe_x, probe_y): $3000 + (Y / 4) x 64 + X / 4.","t":"code","b":[173,8,145],"m":"lda","oa":37128,"o":"probe_x","x":[36895,38701,38734,38775,39020,42549]},{"a":38648,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":38650,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"zpa_94"},{"a":38652,"t":"code","b":[173,9,145],"m":"lda","oa":37129,"o":"probe_y"},{"a":38655,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":38657,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38658,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38659,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38660,"t":"code","b":[102,148],"m":"ror","oa":148,"o":"zpa_94"},{"a":38662,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38663,"t":"code","b":[102,148],"m":"ror","oa":148,"o":"zpa_94"},{"a":38665,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":38667,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"zpa_95"},{"a":38669,"t":"code","b":[96],"m":"rts"},{"a":38670,"l":"player_step","c":"Moves player X by its direction if the four character cells it would cover are free (cells_free): the new cells are marked (unless player_under is $36), the old ones cleared and player_under reset; a blocked move sets the direction to none. A player standing still has its cells marked again while $824B is non-zero.","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[37987]},{"a":38673,"t":"code","b":[189,178,142],"m":"lda","oa":36530,"o":"dir_p1,x"},{"a":38676,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":38678,"t":"code","b":[240,75],"m":"beq","oa":38755,"o":"b_9763"},{"a":38680,"t":"code","b":[168],"m":"tay"},{"a":38681,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":38684,"t":"code","b":[24],"m":"clc"},{"a":38685,"t":"code","b":[121,188,151],"m":"adc","oa":38844,"o":"dir_dx,y"},{"a":38688,"t":"code","b":[141,8,145],"m":"sta","oa":37128,"o":"probe_x"},{"a":38691,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":38694,"t":"code","b":[24],"m":"clc"},{"a":38695,"t":"code","b":[121,204,151],"m":"adc","oa":38860,"o":"dir_dy,y"},{"a":38698,"t":"code","b":[141,9,145],"m":"sta","oa":37129,"o":"probe_y"},{"a":38701,"t":"code","b":[32,245,150],"m":"jsr","oa":38645,"o":"cell_addr"},{"a":38704,"t":"code","b":[32,131,151],"m":"jsr","oa":38787,"o":"cells_free"},{"a":38707,"t":"code","b":[144,37],"m":"bcc","oa":38746,"o":"b_975A"},{"a":38709,"t":"code","b":[189,18,145],"m":"lda","oa":37138,"o":"player_under,x"},{"a":38712,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":38714,"t":"code","b":[240,3],"m":"beq","oa":38719,"o":"b_973F"},{"a":38716,"t":"code","b":[32,154,151],"m":"jsr","oa":38810,"o":"cell_mark"},{"a":38719,"l":"b_973F","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[38714]},{"a":38722,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":38725,"t":"code","b":[141,8,145],"m":"sta","oa":37128,"o":"probe_x"},{"a":38728,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":38731,"t":"code","b":[141,9,145],"m":"sta","oa":37129,"o":"probe_y"},{"a":38734,"t":"code","b":[32,245,150],"m":"jsr","oa":38645,"o":"cell_addr"},{"a":38737,"t":"code","b":[32,171,151],"m":"jsr","oa":38827,"o":"cell_clear"},{"a":38740,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38742,"t":"code","b":[157,18,145],"m":"sta","oa":37138,"o":"player_under,x"},{"a":38745,"t":"code","b":[96],"m":"rts"},{"a":38746,"l":"b_975A","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[38707,38758]},{"a":38749,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":38751,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":38754,"t":"code","b":[96],"m":"rts"},{"a":38755,"l":"b_9763","t":"code","b":[173,75,130],"m":"lda","oa":33355,"o":"pass_count","x":[38678]},{"a":38758,"t":"code","b":[240,242],"m":"beq","oa":38746,"o":"b_975A"},{"a":38760,"t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop"},{"a":38763,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":38766,"t":"code","b":[141,8,145],"m":"sta","oa":37128,"o":"probe_x"},{"a":38769,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":38772,"t":"code","b":[141,9,145],"m":"sta","oa":37129,"o":"probe_y"},{"a":38775,"t":"code","b":[32,245,150],"m":"jsr","oa":38645,"o":"cell_addr"},{"a":38778,"t":"code","b":[32,154,151],"m":"jsr","oa":38810,"o":"cell_mark"},{"a":38781,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38783,"t":"code","b":[157,18,145],"m":"sta","oa":37138,"o":"player_under,x"},{"a":38786,"t":"code","b":[96],"m":"rts"},{"a":38787,"l":"cells_free","c":"Carry set when all four character map cells at ($94) (two across, two down) are $5A or less, which nothing solid uses.","t":"code","b":[169,90],"m":"lda","o":"#$5A","x":[38704]},{"a":38789,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38791,"t":"code","b":[209,148],"m":"cmp","oa":148,"o":"(zpa_94),y"},{"a":38793,"t":"code","b":[144,14],"m":"bcc","oa":38809,"o":"r_9799"},{"a":38795,"t":"code","b":[200],"m":"iny"},{"a":38796,"t":"code","b":[209,148],"m":"cmp","oa":148,"o":"(zpa_94),y"},{"a":38798,"t":"code","b":[144,9],"m":"bcc","oa":38809,"o":"r_9799"},{"a":38800,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":38802,"t":"code","b":[209,148],"m":"cmp","oa":148,"o":"(zpa_94),y"},{"a":38804,"t":"code","b":[200],"m":"iny"},{"a":38805,"t":"code","b":[144,2],"m":"bcc","oa":38809,"o":"r_9799"},{"a":38807,"t":"code","b":[209,148],"m":"cmp","oa":148,"o":"(zpa_94),y"},{"a":38809,"l":"r_9799","t":"code","b":[96],"m":"rts","x":[38793,38798,38805]},{"a":38810,"l":"cell_mark","c":"Writes $5B into the four character map cells at ($94), marking them occupied.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[38716,38778,42552]},{"a":38812,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":38814,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38816,"t":"code","b":[200],"m":"iny"},{"a":38817,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38819,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":38821,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38823,"t":"code","b":[200],"m":"iny"},{"a":38824,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38826,"t":"code","b":[96],"m":"rts"},{"a":38827,"l":"cell_clear","c":"Writes zero into the four character map cells at ($94).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[36898,38737]},{"a":38829,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38831,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38833,"t":"code","b":[200],"m":"iny"},{"a":38834,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38836,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":38838,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38840,"t":"code","b":[200],"m":"iny"},{"a":38841,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38843,"t":"code","b":[96],"m":"rts"},{"a":38844,"l":"dir_dx","c":"The X step of each direction value: 8 for right, $F8 for left.","t":"byte","b":[0,0,0,0,0,8,8,8],"x":[36625,36867,38685]},{"a":38852,"t":"byte","b":[0,248,248,248,0,0,0,0]},{"a":38860,"l":"dir_dy","c":"The Y step of each direction value.","t":"byte","b":[0,0,0,0,0,8,248,0],"x":[36638,36876,38695]},{"a":38868,"t":"byte","b":[0,8,248,0,0,8,248,0]},{"a":38876,"l":"teleport_cell_x","c":"Work: the screen column teleport_free computed.","t":"byte","b":[0],"x":[37007]},{"a":38877,"l":"teleport_cell_y","c":"Work: the screen row.","t":"byte","b":[0],"x":[37045]},{"a":38878,"l":"unused_97DE","c":"Sixteen bytes, $10-$19 and $21-$26; nothing in the traced code reads them, by name or through an index of up to 16.","t":"byte","b":[16,17,18,19,20,21,22,23]},{"a":38886,"t":"byte","b":[24,25,33,34,35,36,37,38]},{"a":38894,"l":"power_bits","c":"The bytes with one bit set, $01 $02 $04 $08 $10 $20, then $40 $80 (bits_table): poison reads the bit of the power it tries from here ($9F40, Y from poison_pick), and clear_masks beside it takes the power away.","t":"byte","b":[1,2,4,8,16,32],"x":[40768]},{"a":38900,"l":"bits_table","c":"$40 $80 then the bytes with one bit clear ($FE ... $DF), read by $B9A6 and $B9BE.","t":"byte","b":[64,128],"x":[47526,47550]},{"a":38902,"l":"clear_masks","c":"The bytes with one bit clear for bits 0-5, used to take a power away (poison).","t":"byte","b":[254,253,251,247,239,223],"x":[40776]},{"a":38908,"l":"bits_table_hi","c":"$BF and $7F, the last two one-bit-clear bytes.","t":"byte","b":[191,127],"x":[47538,47871]},{"a":38910,"l":"player_leaves","c":"Takes player X out of play: its state is cleared, its leave timer ($911E,x) set to 60 frames, the two players unlinked (player_other), a tile dropped where it stood (drop_tile), $B65F raised and sound $0F started. Called from $B964, $B989 and $BCB3.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[47460,47497,48307]},{"a":38912,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":38915,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":38917,"t":"code","b":[157,30,145],"m":"sta","oa":37150,"o":"exit_wait_p1,x"},{"a":38920,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38922,"t":"code","b":[141,34,145],"m":"sta","oa":37154,"o":"player_other"},{"a":38925,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":38927,"t":"code","b":[141,35,145],"m":"sta","oa":37155,"o":"player2_other"},{"a":38930,"t":"code","b":[32,38,152],"m":"jsr","oa":38950,"o":"drop_tile"},{"a":38933,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":38936,"t":"code","b":[138],"m":"txa"},{"a":38937,"t":"code","b":[72],"m":"pha"},{"a":38938,"t":"code","b":[152],"m":"tya"},{"a":38939,"t":"code","b":[72],"m":"pha"},{"a":38940,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":38942,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":38945,"t":"code","b":[104],"m":"pla"},{"a":38946,"t":"code","b":[168],"m":"tay"},{"a":38947,"t":"code","b":[104],"m":"pla"},{"a":38948,"t":"code","b":[170],"m":"tax"},{"a":38949,"t":"code","b":[96],"m":"rts"},{"a":38950,"l":"drop_tile","c":"Puts a tile in the tile grid at player X's tile, and its four characters and colours into the maps: tile $1F when $B663,x is non-zero, otherwise $22, or $13 on a treasure-room level ($99CC $76 or more). The characters come from tile_chars ($F400 + tile x 4), the colour from $F600 + tile x 4.","t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x","x":[38930]},{"a":38953,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38954,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38955,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38956,"t":"code","b":[168],"m":"tay"},{"a":38957,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":38960,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38961,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38962,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":38963,"t":"code","b":[25,112,142],"m":"ora","oa":36464,"o":"map_row_lo,y"},{"a":38966,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"zpa_94"},{"a":38968,"t":"code","b":[185,144,142],"m":"lda","oa":36496,"o":"map_row_hi,y"},{"a":38971,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"zpa_95"},{"a":38973,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":38975,"t":"code","b":[189,99,182],"m":"lda","oa":46691,"o":"keys_held,x"},{"a":38978,"t":"code","b":[208,11],"m":"bne","oa":38991,"o":"b_984F"},{"a":38980,"t":"code","b":[160,34],"m":"ldy","o":"#$22"},{"a":38982,"t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file"},{"a":38985,"t":"code","b":[201,118],"m":"cmp","o":"#$76"},{"a":38987,"t":"code","b":[144,2],"m":"bcc","oa":38991,"o":"b_984F"},{"a":38989,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":38991,"l":"b_984F","t":"code","b":[152],"m":"tya","x":[38978,38987]},{"a":38992,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38994,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":38996,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38997,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38998,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"zpa_96"},{"a":39000,"t":"code","b":[169,244],"m":"lda","o":"#$F4"},{"a":39002,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"zpa_97"},{"a":39004,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":39007,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":39009,"t":"code","b":[141,8,145],"m":"sta","oa":37128,"o":"probe_x"},{"a":39012,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":39015,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":39017,"t":"code","b":[141,9,145],"m":"sta","oa":37129,"o":"probe_y"},{"a":39020,"t":"code","b":[32,245,150],"m":"jsr","oa":38645,"o":"cell_addr"},{"a":39023,"t":"code","b":[165,148],"m":"lda","oa":148,"o":"zpa_94"},{"a":39025,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"zpa_98"},{"a":39027,"t":"code","b":[165,149],"m":"lda","oa":149,"o":"zpa_95"},{"a":39029,"t":"code","b":[41,47],"m":"and","o":"#$2F"},{"a":39031,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"zpa_99"},{"a":39033,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39035,"t":"code","b":[177,150],"m":"lda","oa":150,"o":"(zpa_96),y"},{"a":39037,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":39039,"t":"code","b":[200],"m":"iny"},{"a":39040,"t":"code","b":[177,150],"m":"lda","oa":150,"o":"(zpa_96),y"},{"a":39042,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":39044,"t":"code","b":[200],"m":"iny"},{"a":39045,"t":"code","b":[177,150],"m":"lda","oa":150,"o":"(zpa_96),y"},{"a":39047,"t":"code","b":[72],"m":"pha"},{"a":39048,"t":"code","b":[200],"m":"iny"},{"a":39049,"t":"code","b":[177,150],"m":"lda","oa":150,"o":"(zpa_96),y"},{"a":39051,"t":"code","b":[160,65],"m":"ldy","o":"#$41"},{"a":39053,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":39055,"t":"code","b":[136],"m":"dey"},{"a":39056,"t":"code","b":[104],"m":"pla"},{"a":39057,"t":"code","b":[145,148],"m":"sta","oa":148,"o":"(zpa_94),y"},{"a":39059,"t":"code","b":[230,151],"m":"inc","oa":151,"o":"zpa_97"},{"a":39061,"t":"code","b":[230,151],"m":"inc","oa":151,"o":"zpa_97"},{"a":39063,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39065,"t":"code","b":[177,150],"m":"lda","oa":150,"o":"(zpa_96),y"},{"a":39067,"t":"code","b":[145,152],"m":"sta","oa":152,"o":"(zpa_98),y"},{"a":39069,"t":"code","b":[200],"m":"iny"},{"a":39070,"t":"code","b":[145,152],"m":"sta","oa":152,"o":"(zpa_98),y"},{"a":39072,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":39074,"t":"code","b":[145,152],"m":"sta","oa":152,"o":"(zpa_98),y"},{"a":39076,"t":"code","b":[200],"m":"iny"},{"a":39077,"t":"code","b":[145,152],"m":"sta","oa":152,"o":"(zpa_98),y"},{"a":39079,"t":"code","b":[96],"m":"rts"},{"a":39080,"l":"exit_check","c":"Sets player_moved for player X when the neighbour tile_blocks noted (ring_exit) is in the direction the stick points and the tile there is $30.","t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop","x":[37990]},{"a":39083,"t":"code","b":[173,186,148],"m":"lda","oa":38074,"o":"ring_exit"},{"a":39086,"t":"code","b":[48,42],"m":"bmi","oa":39130,"o":"r_98DA"},{"a":39088,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":39089,"t":"code","b":[168],"m":"tay"},{"a":39090,"t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x"},{"a":39093,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":39095,"t":"code","b":[217,15,149],"m":"cmp","oa":38159,"o":"ring_stick,y"},{"a":39098,"t":"code","b":[208,30],"m":"bne","oa":39130,"o":"r_98DA"},{"a":39100,"t":"code","b":[172,186,148],"m":"ldy","oa":38074,"o":"ring_exit"},{"a":39103,"t":"code","b":[138],"m":"txa"},{"a":39104,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39105,"t":"code","b":[170],"m":"tax"},{"a":39106,"t":"code","b":[185,176,0],"m":"lda","oa":176,"o":"zpp_B0,y"},{"a":39109,"t":"code","b":[149,192],"m":"sta","oa":192,"o":"zpf_C0,x"},{"a":39111,"t":"code","b":[185,177,0],"m":"lda","oa":177,"o":"zpf_B1,y"},{"a":39114,"t":"code","b":[149,193],"m":"sta","oa":193,"o":"zpf_C1,x"},{"a":39116,"t":"code","b":[161,192],"m":"lda","oa":192,"o":"(zpf_C0,x)"},{"a":39118,"t":"code","b":[201,48],"m":"cmp","o":"#$30"},{"a":39120,"t":"code","b":[208,8],"m":"bne","oa":39130,"o":"r_98DA"},{"a":39122,"t":"code","b":[174,12,145],"m":"ldx","oa":37132,"o":"player_loop"},{"a":39125,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":39127,"t":"code","b":[157,113,144],"m":"sta","oa":36977,"o":"player_moved,x"},{"a":39130,"l":"r_98DA","t":"code","b":[96],"m":"rts","x":[39086,39098,39120]},{"a":39131,"l":"level_name","c":"The file name the level loader asks for: two bytes, then \"LEVEL nnn\" with the three digits at $98E3-$98E5 (set by level_name_digits).","t":"byte","b":[0,0],"x":[46743]},{"a":39133,"l":"level_name_text","c":"\"LEVEL \" before the three digits.","t":"byte","b":[76,69,86,69,76,32],"x":[39250]},{"a":39139,"l":"level_digit_1","c":"The level file's hundreds digit, as ASCII.","t":"byte","b":[48],"x":[39692]},{"a":39140,"l":"level_digit_2","c":"The tens digit.","t":"byte","b":[48],"x":[39688]},{"a":39141,"l":"level_digit_3","c":"The units digit.","t":"byte","b":[49],"x":[39684]},{"a":39142,"l":"file_names","c":"The other seven file names, one after another without separators: PINN232 5000, PLYRS.SPR, OBJDIS, DITTIDATA 146, DATATREASURE 446, PLAYER-$E000, GAUNT CHR $4800.","t":"byte","b":[80,73,78,78,50,51,50,32],"x":[39252]},{"a":39150,"t":"byte","b":[53,48,48,48]},{"a":39154,"l":"name_plyrs","c":"\"PLYRS.SPR\".","t":"byte","b":[80,76,89,82,83,46,83,80],"x":[39254]},{"a":39162,"t":"byte","b":[82]},{"a":39163,"l":"name_objdis","c":"\"OBJDIS\".","t":"byte","b":[79,66,74,68,73,83],"x":[39256]},{"a":39169,"l":"name_dittidata","c":"\"DITTIDATA 146\".","t":"byte","b":[68,73,84,84,73,68,65,84],"x":[39258]},{"a":39177,"t":"byte","b":[65,32,49,52,54]},{"a":39182,"l":"name_datatreasure","c":"\"DATATREASURE 446\".","t":"byte","b":[68,65,84,65,84,82,69,65],"x":[39260]},{"a":39190,"t":"byte","b":[83,85,82,69,32,52,52,54]},{"a":39198,"l":"name_player","c":"\"PLAYER-$E000\".","t":"byte","b":[80,76,65,89,69,82,45,36],"x":[39262]},{"a":39206,"t":"byte","b":[69,48,48,48]},{"a":39210,"l":"name_gaunt_chr","c":"\"GAUNT CHR $4800\".","t":"byte","b":[71,65,85,78,84,32,67,72],"x":[39264]},{"a":39218,"t":"byte","b":[82,32,36,52,56,48,48]},{"a":39225,"l":"file_loads","c":"Where each of the eight files is loaded, low byte then high: $0A00 (the level), $1388, $2000, $F000, $EA00, $E800, $E000, $4800.","t":"byte","b":[0],"x":[39266,39290]},{"a":39226,"l":"file_loads_hi","c":"The high bytes of file_loads, read as the second byte of each pair.","t":"byte","b":[10,136,19,0,32,0,240,0],"x":[39294]},{"a":39234,"t":"byte","b":[234,0,232,0,224,0,72]},{"a":39241,"l":"file_name_lengths","c":"The length of each file's name: 9, 12, 9, 6, 13, 16, 12, 15.","t":"byte","b":[9,12,9,6,13,16,12,15],"x":[39298]},{"a":39249,"l":"file_last","c":"The number of the last file load_files loads: 7, all eight.","t":"byte","b":[7],"x":[39268]},{"a":39250,"l":"file_name_ptrs","c":"The address of each file's name, the level's first ($98DD).","t":"addr","b":[221,152],"oa":39133,"o":"level_name_text","x":[39302]},{"a":39251,"t":"note","l":"file_name_ptrs_hi","c":"The high bytes of file_name_ptrs.","note":"inside the item at $9952","x":[39306]},{"a":39252,"t":"addr","b":[230,152],"oa":39142,"o":"file_names"},{"a":39254,"t":"addr","b":[242,152],"oa":39154,"o":"name_plyrs"},{"a":39256,"t":"addr","b":[251,152],"oa":39163,"o":"name_objdis"},{"a":39258,"t":"addr","b":[1,153],"oa":39169,"o":"name_dittidata"},{"a":39260,"t":"addr","b":[14,153],"oa":39182,"o":"name_datatreasure"},{"a":39262,"t":"addr","b":[30,153],"oa":39198,"o":"name_player"},{"a":39264,"t":"addr","b":[42,153],"oa":39210,"o":"name_gaunt_chr"},{"a":39266,"t":"addr","b":[57,153],"oa":39225,"o":"file_loads"},{"a":39268,"l":"load_files","c":"Loads files 7 down to 0 of the table (file_names) from disk with the KERNAL: SETLFS (file $20, device 8, secondary 0, so each file goes to the address the table gives), SETNAM, LOAD to file_loads, CLOSE; the status of the last load (the carry) is kept in load_status. The BIT at $9967 hides the LDX #$00 of the second entry, load_level_file ($9968), which loads file 0, the level, alone.","t":"code","b":[174,81,153],"m":"ldx","oa":39249,"o":"file_last","x":[32811]},{"a":39271,"t":"code","b":[44,162,0],"m":"bit","oa":162,"o":"a_00A2"},{"a":39272,"t":"note","l":"load_level_file","c":"Loads file 0, the level, alone: load_files from its second entry.","note":"inside the item at $9967","x":[39411]},{"a":39274,"l":"b_996A","t":"code","b":[138],"m":"txa","x":[39336]},{"a":39275,"t":"code","b":[72],"m":"pha"},{"a":39276,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":39278,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":39280,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39282,"t":"code","b":[32,186,255],"m":"jsr","oa":65466,"o":"KERNAL_SETLFS"},{"a":39285,"t":"code","b":[104],"m":"pla"},{"a":39286,"t":"code","b":[72],"m":"pha"},{"a":39287,"t":"code","b":[170],"m":"tax"},{"a":39288,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39289,"t":"code","b":[168],"m":"tay"},{"a":39290,"t":"code","b":[185,57,153],"m":"lda","oa":39225,"o":"file_loads,y"},{"a":39293,"t":"code","b":[72],"m":"pha"},{"a":39294,"t":"code","b":[185,58,153],"m":"lda","oa":39226,"o":"file_loads_hi,y"},{"a":39297,"t":"code","b":[72],"m":"pha"},{"a":39298,"t":"code","b":[189,73,153],"m":"lda","oa":39241,"o":"file_name_lengths,x"},{"a":39301,"t":"code","b":[72],"m":"pha"},{"a":39302,"t":"code","b":[185,82,153],"m":"lda","oa":39250,"o":"file_name_ptrs,y"},{"a":39305,"t":"code","b":[170],"m":"tax"},{"a":39306,"t":"code","b":[185,83,153],"m":"lda","oa":39251,"o":"file_name_ptrs_hi,y"},{"a":39309,"t":"code","b":[168],"m":"tay"},{"a":39310,"t":"code","b":[104],"m":"pla"},{"a":39311,"t":"code","b":[32,189,255],"m":"jsr","oa":65469,"o":"KERNAL_SETNAM"},{"a":39314,"t":"code","b":[104],"m":"pla"},{"a":39315,"t":"code","b":[168],"m":"tay"},{"a":39316,"t":"code","b":[104],"m":"pla"},{"a":39317,"t":"code","b":[170],"m":"tax"},{"a":39318,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39320,"t":"code","b":[32,213,255],"m":"jsr","oa":65493,"o":"KERNAL_LOAD"},{"a":39323,"t":"code","b":[8],"m":"php"},{"a":39324,"t":"code","b":[104],"m":"pla"},{"a":39325,"t":"code","b":[141,171,153],"m":"sta","oa":39339,"o":"load_status"},{"a":39328,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":39330,"t":"code","b":[32,195,255],"m":"jsr","oa":65475,"o":"KERNAL_CLOSE"},{"a":39333,"t":"code","b":[104],"m":"pla"},{"a":39334,"t":"code","b":[170],"m":"tax"},{"a":39335,"t":"code","b":[202],"m":"dex"},{"a":39336,"t":"code","b":[16,192],"m":"bpl","oa":39274,"o":"b_996A"},{"a":39338,"t":"code","b":[96],"m":"rts"},{"a":39339,"l":"load_status","c":"The processor status after the last LOAD; level_start reloads while its carry (an error) is set.","t":"byte","b":[112],"x":[39325,39414]},{"a":39340,"l":"unused_99AC","c":"32 bytes no traced code reaches: stores \"BOB \" at $033C-$033F, then a fire-button test on $DC00 returning the carry.","t":"byte","b":[169,66,141,60,3,169,79,141]},{"a":39348,"t":"byte","b":[61,3,169,66,141,62,3,169]},{"a":39356,"t":"byte","b":[32,141,63,3,96,173,0,220]},{"a":39364,"t":"byte","b":[41,16,240,2,24,96,56,96]},{"a":39372,"l":"level_file","c":"The number of the level file in play (1-128): the first seven levels are files 1-7, later ones a file picked at random (level_pick); files from $76 (118) up are treasure rooms.","t":"byte","b":[1],"x":[33049,38982,39391,39435,39678,39844,41872,42076,47390]},{"a":39373,"l":"level_number","c":"The level counter the player sees, one ahead of the level in play once it has loaded; level_pick uses it.","t":"byte","b":[2],"x":[32794,32921,39378,39429,39646,39650,39696,39788,39834,39869,39912,41879,52274]},{"a":39374,"l":"level8_file","c":"The file level 8 uses, chosen at random at start-up ($0A + a random 0-63).","t":"byte","b":[51],"x":[32824,39657,39674]},{"a":39375,"l":"level_start","c":"Starts the next level: runs $CE9C, picks the file (level_number below 8: the same number; else level_pick, which can give a treasure room), applies the exits that skip levels (exit_targets), writes the file name's digits, hands interrupts to the KERNAL, loads the level file (again until no error), takes the interrupts back, stops the music, counts the level and runs $ADB5. For a treasure room it then runs $B0A8, $A457 and level_intro; otherwise it clears the screen ($AF65), shows \"LEVEL\" and the number in sprites (level_digits_sprites), prints the level's messages (level_messages), and runs $A457 and level_intro.","t":"code","b":[32,156,206],"m":"jsr","oa":52892,"o":"sound_wait","x":[32946]},{"a":39378,"l":"b_99D2","t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number","x":[39419]},{"a":39381,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":39383,"t":"code","b":[144,6],"m":"bcc","oa":39391,"o":"b_99DF"},{"a":39385,"t":"code","b":[32,196,154],"m":"jsr","oa":39620,"o":"level_pick"},{"a":39388,"t":"code","b":[206,60,175],"m":"dec","oa":44860,"o":"rooms_countdown"},{"a":39391,"l":"b_99DF","t":"code","b":[141,204,153],"m":"sta","oa":39372,"o":"level_file","x":[39383]},{"a":39394,"t":"code","b":[32,108,155],"m":"jsr","oa":39788,"o":"exit_targets"},{"a":39397,"t":"code","b":[32,254,154],"m":"jsr","oa":39678,"o":"level_name_digits"},{"a":39400,"t":"code","b":[32,187,130],"m":"jsr","oa":33467,"o":"irq_kernal"},{"a":39403,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":39405,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39407,"t":"code","b":[24],"m":"clc"},{"a":39408,"t":"code","b":[32,240,255],"m":"jsr","oa":65520,"o":"KERNAL_PLOT"},{"a":39411,"t":"code","b":[32,104,153],"m":"jsr","oa":39272,"o":"load_level_file"},{"a":39414,"t":"code","b":[173,171,153],"m":"lda","oa":39339,"o":"load_status"},{"a":39417,"t":"code","b":[72],"m":"pha"},{"a":39418,"t":"code","b":[40],"m":"plp"},{"a":39419,"t":"code","b":[176,213],"m":"bcs","oa":39378,"o":"b_99D2"},{"a":39421,"t":"code","b":[32,128,130],"m":"jsr","oa":33408,"o":"irq_install"},{"a":39424,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39426,"t":"code","b":[141,158,230],"m":"sta","oa":59038,"o":"music_on"},{"a":39429,"t":"code","b":[238,205,153],"m":"inc","oa":39373,"o":"level_number"},{"a":39432,"t":"code","b":[32,181,173],"m":"jsr","oa":44469,"o":"treasure_clock_set"},{"a":39435,"t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file"},{"a":39438,"t":"code","b":[201,118],"m":"cmp","o":"#$76"},{"a":39440,"t":"code","b":[144,10],"m":"bcc","oa":39452,"o":"b_9A1C"},{"a":39442,"t":"code","b":[32,168,176],"m":"jsr","oa":45224,"o":"treasure_intro"},{"a":39445,"t":"code","b":[32,87,164],"m":"jsr","oa":42071,"o":"hidden_potion_roll"},{"a":39448,"t":"code","b":[32,239,155],"m":"jsr","oa":39919,"o":"level_intro"},{"a":39451,"t":"code","b":[96],"m":"rts"},{"a":39452,"l":"b_9A1C","t":"code","b":[32,101,175],"m":"jsr","oa":44901,"o":"screen_clear","x":[39440]},{"a":39455,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":39457,"t":"code","b":[32,243,175],"m":"jsr","oa":45043,"o":"text_row"},{"a":39460,"t":"code","b":[32,16,155],"m":"jsr","oa":39696,"o":"level_digits_sprites"},{"a":39463,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":39466,"l":"arg_9A2A","c":"The address of the string the call before prints (print_centred's argument): str_level at $9A5E, the top half of the big LEVEL title.","t":"addr","b":[94,154],"oa":39518,"o":"str_level"},{"a":39468,"l":"level_start_text","c":"level_start goes on after the first string's argument: prints the bottom half of LEVEL, the level's messages, then $A457 and level_intro.","t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":39471,"l":"arg_9A2F","c":"The address of the string the call before prints (print_centred's argument): str_level_lower at $9A73, the bottom half of the big LEVEL title.","t":"addr","b":[115,154],"oa":39539,"o":"str_level_lower"},{"a":39473,"l":"level_start_end","c":"level_start goes on after the bottom half of LEVEL: the level's messages, $A457 and level_intro.","t":"code","b":[32,59,154],"m":"jsr","oa":39483,"o":"level_messages"},{"a":39476,"t":"code","b":[32,87,164],"m":"jsr","oa":42071,"o":"hidden_potion_roll"},{"a":39479,"t":"code","b":[32,239,155],"m":"jsr","oa":39919,"o":"level_intro"},{"a":39482,"t":"code","b":[96],"m":"rts"},{"a":39483,"l":"level_messages","c":"Prints the level's messages from row 10 of the text screen: \"SHOTS NOW HURT OTHER PLAYERS\" when bit 0 of the level header $0A01 is set, \"SHOTS NOW STUN OTHER PLAYERS\" when bit 1 is.","t":"code","b":[162,2],"m":"ldx","o":"#$02","x":[39473,45256]},{"a":39485,"t":"code","b":[32,243,175],"m":"jsr","oa":45043,"o":"text_row"},{"a":39488,"t":"code","b":[162,10],"m":"ldx","o":"#$0A"},{"a":39490,"t":"code","b":[32,73,177],"m":"jsr","oa":45385,"o":"text_rows_down"},{"a":39493,"t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags"},{"a":39496,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":39498,"t":"code","b":[240,5],"m":"beq","oa":39505,"o":"level_messages_2"},{"a":39500,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":39503,"l":"arg_9A4F","c":"The address of the string the call before prints (print_centred's argument): str_shots_hurt at $9A88, \"SHOTS NOW HURT OTHER PLAYERS\".","t":"addr","b":[136,154],"oa":39560,"o":"str_shots_hurt"},{"a":39505,"l":"level_messages_2","c":"level_messages goes on after its first string: the \"stun\" test and message.","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[39498]},{"a":39508,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":39510,"t":"code","b":[240,5],"m":"beq","oa":39517,"o":"level_messages_end"},{"a":39512,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":39515,"l":"arg_9A5B","c":"The address of the string the call before prints (print_centred's argument): str_shots_stun at $9AA6, \"SHOTS NOW STUN OTHER PLAYERS\".","t":"addr","b":[166,154],"oa":39590,"o":"str_shots_stun"},{"a":39517,"l":"level_messages_end","c":"level_messages' return.","t":"code","b":[96],"m":"rts","x":[39510]},{"a":39518,"l":"str_level","c":"The level screen's two lines, each a length, a colour and the characters ($13 long, colour $0A): \"LEVEL :\" in the big glyphs $E1-$E6 for the top half and $01-$06 for the bottom; the number beside it is drawn with sprites.","t":"byte","b":[19],"x":[39466]},{"a":39519,"l":"str_level_colour","c":"The LEVEL title's colour byte, rewritten with player one's hero colour.","t":"byte","b":[10,225,226,227,228,229,230,227],"x":[39781]},{"a":39527,"t":"byte","b":[228,225,226,32,224,32,32,32]},{"a":39535,"t":"byte","b":[32,32,32,32]},{"a":39539,"l":"str_level_lower","c":"The bottom half of the LEVEL title.","t":"byte","b":[19],"x":[39471]},{"a":39540,"l":"str_level_lower_colour","c":"The bottom half's colour byte, rewritten the same way.","t":"byte","b":[10,1,2,3,4,5,6,3],"x":[39784]},{"a":39548,"t":"byte","b":[4,1,2,32,0,32,32,32]},{"a":39556,"t":"byte","b":[32,32,32,32]},{"a":39560,"l":"str_shots_hurt","c":"\"SHOTS NOW HURT OTHER PLAYERS\" ($1C long, colour 1).","t":"byte","b":[28,1,83,72,79,84,83,32],"x":[39503]},{"a":39568,"t":"byte","b":[78,79,87,32,72,85,82,84]},{"a":39576,"t":"byte","b":[32,79,84,72,69,82,32,80]},{"a":39584,"t":"byte","b":[76,65,89,69,82,83]},{"a":39590,"l":"str_shots_stun","c":"\"SHOTS NOW STUN OTHER PLAYERS\".","t":"byte","b":[28,1,83,72,79,84,83,32],"x":[39515]},{"a":39598,"t":"byte","b":[78,79,87,32,83,84,85,78]},{"a":39606,"t":"byte","b":[32,79,84,72,69,82,32,80]},{"a":39614,"t":"byte","b":[76,65,89,69,82,83]},{"a":39620,"l":"level_pick","c":"Picks the level file for a level from 8 on. A countdown ($AF3C) runs out every four to seven levels; then a treasure room is chosen at random ($76-$80) and level_number is put back by one, so the treasure room does not count as a level. Otherwise level 8 is level8_file and every later level a random file from 8 to $75.","t":"code","b":[173,60,175],"m":"lda","oa":44860,"o":"rooms_countdown","x":[39385,39841]},{"a":39623,"t":"code","b":[208,25],"m":"bne","oa":39650,"o":"b_9AE2"},{"a":39625,"t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random"},{"a":39628,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":39630,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":39632,"t":"code","b":[141,60,175],"m":"sta","oa":44860,"o":"rooms_countdown"},{"a":39635,"l":"b_9AD3","t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random","x":[39642]},{"a":39638,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":39640,"t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":39642,"t":"code","b":[176,247],"m":"bcs","oa":39635,"o":"b_9AD3"},{"a":39644,"t":"code","b":[105,118],"m":"adc","o":"#$76"},{"a":39646,"t":"code","b":[206,205,153],"m":"dec","oa":39373,"o":"level_number"},{"a":39649,"t":"code","b":[96],"m":"rts"},{"a":39650,"l":"b_9AE2","t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number","x":[39623]},{"a":39653,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":39655,"t":"code","b":[208,4],"m":"bne","oa":39661,"o":"b_9AED"},{"a":39657,"t":"code","b":[173,206,153],"m":"lda","oa":39374,"o":"level8_file"},{"a":39660,"t":"code","b":[96],"m":"rts"},{"a":39661,"l":"b_9AED","t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random","x":[39655,39668,39672]},{"a":39664,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":39666,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":39668,"t":"code","b":[144,247],"m":"bcc","oa":39661,"o":"b_9AED"},{"a":39670,"t":"code","b":[201,118],"m":"cmp","o":"#$76"},{"a":39672,"t":"code","b":[176,243],"m":"bcs","oa":39661,"o":"b_9AED"},{"a":39674,"t":"code","b":[141,206,153],"m":"sta","oa":39374,"o":"level8_file"},{"a":39677,"t":"code","b":[96],"m":"rts"},{"a":39678,"l":"level_name_digits","c":"Writes level_file as three ASCII digits into the file name (level_digit_1-3).","t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file","x":[39397]},{"a":39681,"t":"code","b":[32,140,176],"m":"jsr","oa":45196,"o":"to_digits"},{"a":39684,"t":"code","b":[141,229,152],"m":"sta","oa":39141,"o":"level_digit_3"},{"a":39687,"t":"code","b":[152],"m":"tya"},{"a":39688,"t":"code","b":[141,228,152],"m":"sta","oa":39140,"o":"level_digit_2"},{"a":39691,"t":"code","b":[138],"m":"txa"},{"a":39692,"t":"code","b":[141,227,152],"m":"sta","oa":39139,"o":"level_digit_1"},{"a":39695,"t":"code","b":[96],"m":"rts"},{"a":39696,"l":"level_digits_sprites","c":"Shows the level number (level_number less one) as three sprites: sprites 2-4 at X $D0, $E4, $F8, Y $6E, with the digit shapes $A2-$AB; colours them and the LEVEL title in player one's hero colour.","t":"code","b":[172,205,153],"m":"ldy","oa":39373,"o":"level_number","x":[39460]},{"a":39699,"t":"code","b":[136],"m":"dey"},{"a":39700,"t":"code","b":[152],"m":"tya"},{"a":39701,"t":"code","b":[32,140,176],"m":"jsr","oa":45196,"o":"to_digits"},{"a":39704,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":39706,"t":"code","b":[24],"m":"clc"},{"a":39707,"t":"code","b":[105,162],"m":"adc","o":"#$A2"},{"a":39709,"t":"code","b":[141,88,145],"m":"sta","oa":37208,"o":"sprite4_ptr"},{"a":39712,"t":"code","b":[152],"m":"tya"},{"a":39713,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":39715,"t":"code","b":[24],"m":"clc"},{"a":39716,"t":"code","b":[105,162],"m":"adc","o":"#$A2"},{"a":39718,"t":"code","b":[141,87,145],"m":"sta","oa":37207,"o":"sprite3_ptr"},{"a":39721,"t":"code","b":[138],"m":"txa"},{"a":39722,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":39724,"t":"code","b":[24],"m":"clc"},{"a":39725,"t":"code","b":[105,162],"m":"adc","o":"#$A2"},{"a":39727,"t":"code","b":[141,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs"},{"a":39730,"t":"code","b":[169,208],"m":"lda","o":"#$D0"},{"a":39732,"t":"code","b":[141,62,145],"m":"sta","oa":37182,"o":"sprite_x"},{"a":39735,"t":"code","b":[169,228],"m":"lda","o":"#$E4"},{"a":39737,"t":"code","b":[141,63,145],"m":"sta","oa":37183,"o":"sprite3_x"},{"a":39740,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":39742,"t":"code","b":[141,64,145],"m":"sta","oa":37184,"o":"sprite4_x"},{"a":39745,"t":"code","b":[169,110],"m":"lda","o":"#$6E"},{"a":39747,"t":"code","b":[141,68,145],"m":"sta","oa":37188,"o":"sprite_y"},{"a":39750,"t":"code","b":[141,69,145],"m":"sta","oa":37189,"o":"sprite3_y"},{"a":39753,"t":"code","b":[141,70,145],"m":"sta","oa":37190,"o":"sprite4_y"},{"a":39756,"t":"code","b":[169,28],"m":"lda","o":"#$1C"},{"a":39758,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":39761,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":39764,"t":"code","b":[174,28,145],"m":"ldx","oa":37148,"o":"player_hero"},{"a":39767,"t":"code","b":[189,24,145],"m":"lda","oa":37144,"o":"hero_sprite_colours,x"},{"a":39770,"t":"code","b":[141,188,170],"m":"sta","oa":43708,"o":"shot_colours"},{"a":39773,"t":"code","b":[141,189,170],"m":"sta","oa":43709,"o":"shot_colour_1"},{"a":39776,"t":"code","b":[141,190,170],"m":"sta","oa":43710,"o":"shot_colour_2"},{"a":39779,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":39781,"t":"code","b":[141,95,154],"m":"sta","oa":39519,"o":"str_level_colour"},{"a":39784,"t":"code","b":[141,116,154],"m":"sta","oa":39540,"o":"str_level_lower_colour"},{"a":39787,"t":"code","b":[96],"m":"rts"},{"a":39788,"l":"exit_targets","c":"The exits that jump ahead: after level 1 (level_number 2), an exit at tile grid address $0C3F leads to level 8 and one at $0FFF to level 4; after level 4 (level_number 5) one at $0E3F leads to level 8. The exit each player took is in $C0/$C1 and $C2/$C3, and the level goes to the higher of the two choices.","t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number","x":[39394]},{"a":39791,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":39793,"t":"code","b":[240,18],"m":"beq","oa":39813,"o":"b_9B85"},{"a":39795,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":39797,"t":"code","b":[240,1],"m":"beq","oa":39800,"o":"b_9B78"},{"a":39799,"t":"code","b":[96],"m":"rts"},{"a":39800,"l":"b_9B78","t":"code","b":[162,2],"m":"ldx","o":"#$02","x":[39797]},{"a":39802,"t":"code","b":[32,171,155],"m":"jsr","oa":39851,"o":"exit_choice_l4"},{"a":39805,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":39807,"t":"code","b":[32,171,155],"m":"jsr","oa":39851,"o":"exit_choice_l4"},{"a":39810,"t":"code","b":[76,143,155],"m":"jmp","oa":39823,"o":"j_9B8F"},{"a":39813,"l":"b_9B85","t":"code","b":[162,2],"m":"ldx","o":"#$02","x":[39793]},{"a":39815,"t":"code","b":[32,196,155],"m":"jsr","oa":39876,"o":"exit_choice_l1"},{"a":39818,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":39820,"t":"code","b":[32,196,155],"m":"jsr","oa":39876,"o":"exit_choice_l1"},{"a":39823,"l":"j_9B8F","t":"code","b":[173,168,155],"m":"lda","oa":39848,"o":"exit_choice","x":[39810]},{"a":39826,"t":"code","b":[205,170,155],"m":"cmp","oa":39850,"o":"exit_choice_p2"},{"a":39829,"t":"code","b":[176,3],"m":"bcs","oa":39834,"o":"b_9B9A"},{"a":39831,"t":"code","b":[173,170,155],"m":"lda","oa":39850,"o":"exit_choice_p2"},{"a":39834,"l":"b_9B9A","t":"code","b":[141,205,153],"m":"sta","oa":39373,"o":"level_number","x":[39829]},{"a":39837,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":39839,"t":"code","b":[144,3],"m":"bcc","oa":39844,"o":"b_9BA4"},{"a":39841,"t":"code","b":[32,196,154],"m":"jsr","oa":39620,"o":"level_pick"},{"a":39844,"l":"b_9BA4","t":"code","b":[141,204,153],"m":"sta","oa":39372,"o":"level_file","x":[39839]},{"a":39847,"t":"code","b":[96],"m":"rts"},{"a":39848,"l":"exit_choice","c":"The level each player's exit chose (two bytes, $9BA8 and $9BAA).","t":"byte","b":[0],"x":[39823,39865,39872,39890,39908,39915]},{"a":39849,"c":"The byte between the two players' choices, never used: exit_choice,X is written with X 0 or 2, the player's offset into the positions at $C0.","t":"byte","b":[0]},{"a":39850,"l":"exit_choice_p2","c":"Player two's choice.","t":"byte","b":[0],"x":[39826,39831]},{"a":39851,"l":"exit_choice_l4","c":"Player X's choice after level 4: 8 for the exit at $0E3F, otherwise the next level.","t":"code","b":[181,192],"m":"lda","oa":192,"o":"zpf_C0,x","x":[39802,39807]},{"a":39853,"t":"code","b":[201,63],"m":"cmp","o":"#$3F"},{"a":39855,"t":"code","b":[208,12],"m":"bne","oa":39869,"o":"b_9BBD"},{"a":39857,"t":"code","b":[181,193],"m":"lda","oa":193,"o":"zpf_C1,x"},{"a":39859,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":39861,"t":"code","b":[208,6],"m":"bne","oa":39869,"o":"b_9BBD"},{"a":39863,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":39865,"t":"code","b":[157,168,155],"m":"sta","oa":39848,"o":"exit_choice,x"},{"a":39868,"t":"code","b":[96],"m":"rts"},{"a":39869,"l":"b_9BBD","t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number","x":[39855,39861]},{"a":39872,"t":"code","b":[157,168,155],"m":"sta","oa":39848,"o":"exit_choice,x"},{"a":39875,"t":"code","b":[96],"m":"rts"},{"a":39876,"l":"exit_choice_l1","c":"Player X's choice after level 1: 8 for the exit at $0C3F, 4 for the one at $0FFF, otherwise the next level.","t":"code","b":[181,192],"m":"lda","oa":192,"o":"zpf_C0,x","x":[39815,39820]},{"a":39878,"t":"code","b":[201,63],"m":"cmp","o":"#$3F"},{"a":39880,"t":"code","b":[208,12],"m":"bne","oa":39894,"o":"b_9BD6"},{"a":39882,"t":"code","b":[181,193],"m":"lda","oa":193,"o":"zpf_C1,x"},{"a":39884,"t":"code","b":[201,12],"m":"cmp","o":"#$0C"},{"a":39886,"t":"code","b":[208,6],"m":"bne","oa":39894,"o":"b_9BD6"},{"a":39888,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":39890,"t":"code","b":[157,168,155],"m":"sta","oa":39848,"o":"exit_choice,x"},{"a":39893,"t":"code","b":[96],"m":"rts"},{"a":39894,"l":"b_9BD6","t":"code","b":[181,192],"m":"lda","oa":192,"o":"zpf_C0,x","x":[39880,39886]},{"a":39896,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":39898,"t":"code","b":[208,12],"m":"bne","oa":39912,"o":"b_9BE8"},{"a":39900,"t":"code","b":[181,193],"m":"lda","oa":193,"o":"zpf_C1,x"},{"a":39902,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":39904,"t":"code","b":[208,6],"m":"bne","oa":39912,"o":"b_9BE8"},{"a":39906,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":39908,"t":"code","b":[157,168,155],"m":"sta","oa":39848,"o":"exit_choice,x"},{"a":39911,"t":"code","b":[96],"m":"rts"},{"a":39912,"l":"b_9BE8","t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number","x":[39898,39904]},{"a":39915,"t":"code","b":[157,168,155],"m":"sta","oa":39848,"o":"exit_choice,x"},{"a":39918,"t":"code","b":[96],"m":"rts"},{"a":39919,"l":"level_intro","c":"Plays the level jingle: starts tune 0 of the music data at $EA00 with the player at $E000 (music_init), sets the music flags ($8249, $E69E), then calls the player once a frame (wait_frame_40, music_play) until the tune clears $E69E.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[39448,39479]},{"a":39921,"t":"code","b":[162,234],"m":"ldx","o":"#$EA"},{"a":39923,"t":"code","b":[32,3,224],"m":"jsr","oa":57347,"o":"music_init"},{"a":39926,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":39928,"t":"code","b":[141,73,130],"m":"sta","oa":33353,"o":"tune_wanted"},{"a":39931,"t":"code","b":[141,158,230],"m":"sta","oa":59038,"o":"music_on"},{"a":39934,"l":"b_9BFE","t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40","x":[39943]},{"a":39937,"t":"code","b":[32,0,224],"m":"jsr","oa":57344,"o":"music_play"},{"a":39940,"t":"code","b":[173,158,230],"m":"lda","oa":59038,"o":"music_on"},{"a":39943,"t":"code","b":[208,245],"m":"bne","oa":39934,"o":"b_9BFE"},{"a":39945,"t":"code","b":[96],"m":"rts"},{"a":39946,"l":"heroes_load_shapes","c":"Once per game ($CFFD): sets up each player's hero graphics for the heroes chosen on the selection screen ($CFFE/$CFFF): copies 512 bytes per player from the hero's block at $7000-$77FF to $1800/$1A00 (hero_copy_shapes), $7400-$75FF to $6E00 (shapes_7400_to_6E00), 2 KB per player from the hero's block of PLYRS.SPR at $2000-$3FFF to $7000/$7800 (hero_copy_chars: the players' sprite shapes, which player_shapes points at), and four pages to $1C00 (shapes_to_1C00).","t":"code","b":[173,253,207],"m":"lda","oa":53245,"o":"heroes_loaded","x":[32836]},{"a":39949,"t":"code","b":[240,1],"m":"beq","oa":39952,"o":"b_9C10"},{"a":39951,"t":"code","b":[96],"m":"rts"},{"a":39952,"l":"b_9C10","t":"code","b":[238,253,207],"m":"inc","oa":53245,"o":"heroes_loaded","x":[39949]},{"a":39955,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":39957,"t":"code","b":[32,46,156],"m":"jsr","oa":39982,"o":"hero_copy_shapes"},{"a":39960,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":39962,"t":"code","b":[32,46,156],"m":"jsr","oa":39982,"o":"hero_copy_shapes"},{"a":39965,"t":"code","b":[32,196,156],"m":"jsr","oa":40132,"o":"shapes_7400_to_6E00"},{"a":39968,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":39970,"t":"code","b":[32,93,156],"m":"jsr","oa":40029,"o":"hero_copy_chars"},{"a":39973,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":39975,"t":"code","b":[32,93,156],"m":"jsr","oa":40029,"o":"hero_copy_chars"},{"a":39978,"t":"code","b":[32,136,156],"m":"jsr","oa":40072,"o":"shapes_to_1C00"},{"a":39981,"t":"code","b":[96],"m":"rts"},{"a":39982,"l":"hero_copy_shapes","c":"Copies 512 bytes for player X from its hero's block ($7000, $7200, $7400 or $7600) to $1800 or $1A00; sets player_hero,x from the selection.","t":"code","b":[189,254,207],"m":"lda","oa":53246,"o":"selected_heroes,x","x":[39957,39962]},{"a":39985,"t":"code","b":[157,28,145],"m":"sta","oa":37148,"o":"player_hero,x"},{"a":39988,"t":"code","b":[168],"m":"tay"},{"a":39989,"t":"code","b":[185,87,156],"m":"lda","oa":40023,"o":"hero_shape_pages,y"},{"a":39992,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":39994,"t":"code","b":[189,91,156],"m":"lda","oa":40027,"o":"player_shape_pages,x"},{"a":39997,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":39999,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40001,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":40003,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":40005,"t":"code","b":[168],"m":"tay"},{"a":40006,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":40008,"l":"b_9C48","t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y","x":[40013,40020]},{"a":40010,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":40012,"t":"code","b":[200],"m":"iny"},{"a":40013,"t":"code","b":[208,249],"m":"bne","oa":40008,"o":"b_9C48"},{"a":40015,"t":"code","b":[230,248],"m":"inc","oa":248,"o":"zpa_F8"},{"a":40017,"t":"code","b":[230,252],"m":"inc","oa":252,"o":"zpa_FC"},{"a":40019,"t":"code","b":[202],"m":"dex"},{"a":40020,"t":"code","b":[16,242],"m":"bpl","oa":40008,"o":"b_9C48"},{"a":40022,"t":"code","b":[96],"m":"rts"},{"a":40023,"l":"hero_shape_pages","c":"The page of each hero's shapes: $70, $72, $74, $76.","t":"byte","b":[112,114,116,118],"x":[39989]},{"a":40027,"l":"player_shape_pages","c":"Where each player's copy goes: $18, $1A.","t":"byte","b":[24,26],"x":[39994]},{"a":40029,"l":"hero_copy_chars","c":"Copies 2 KB for player X from its hero's block of PLYRS.SPR ($2000, $2800, $3000 or $3800) to $7000 or $7800, where the player's sprite shapes are read ($912C).","t":"code","b":[188,28,145],"m":"ldy","oa":37148,"o":"player_hero,x","x":[39970,39975]},{"a":40032,"t":"code","b":[185,130,156],"m":"lda","oa":40066,"o":"hero_gfx_pages,y"},{"a":40035,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":40037,"t":"code","b":[189,134,156],"m":"lda","oa":40070,"o":"player_gfx_pages,x"},{"a":40040,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":40042,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40044,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":40046,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":40048,"t":"code","b":[168],"m":"tay"},{"a":40049,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":40051,"l":"b_9C73","t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y","x":[40056,40063]},{"a":40053,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":40055,"t":"code","b":[200],"m":"iny"},{"a":40056,"t":"code","b":[208,249],"m":"bne","oa":40051,"o":"b_9C73"},{"a":40058,"t":"code","b":[230,248],"m":"inc","oa":248,"o":"zpa_F8"},{"a":40060,"t":"code","b":[230,252],"m":"inc","oa":252,"o":"zpa_FC"},{"a":40062,"t":"code","b":[202],"m":"dex"},{"a":40063,"t":"code","b":[16,242],"m":"bpl","oa":40051,"o":"b_9C73"},{"a":40065,"t":"code","b":[96],"m":"rts"},{"a":40066,"l":"hero_gfx_pages","c":"The page of each hero's 2 KB block: $20, $28, $30, $38.","t":"byte","b":[32,40,48,56],"x":[40032]},{"a":40070,"l":"player_gfx_pages","c":"Each player's destination: $70, $78.","t":"byte","b":[112,120],"x":[40037]},{"a":40072,"l":"shapes_to_1C00","c":"Copies $7600-$76FF, $7700-$77FF, $7E00-$7EFF and $7F00-$7FFF to $1C00-$1FFF.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[39978]},{"a":40074,"l":"b_9C8A","t":"code","b":[185,0,118],"m":"lda","oa":30208,"o":"player1_shots,y","x":[40099]},{"a":40077,"t":"code","b":[153,0,28],"m":"sta","oa":7168,"o":"f_1C00,y"},{"a":40080,"t":"code","b":[185,0,119],"m":"lda","oa":30464,"o":"player1_shots_2,y"},{"a":40083,"t":"code","b":[153,0,29],"m":"sta","oa":7424,"o":"f_1D00,y"},{"a":40086,"t":"code","b":[185,0,126],"m":"lda","oa":32256,"o":"player2_shots,y"},{"a":40089,"t":"code","b":[153,0,30],"m":"sta","oa":7680,"o":"f_1E00,y"},{"a":40092,"t":"code","b":[185,0,127],"m":"lda","oa":32512,"o":"player2_shots_2,y"},{"a":40095,"t":"code","b":[153,0,31],"m":"sta","oa":7936,"o":"f_1F00,y"},{"a":40098,"t":"code","b":[200],"m":"iny"},{"a":40099,"t":"code","b":[208,229],"m":"bne","oa":40074,"o":"b_9C8A"},{"a":40101,"t":"code","b":[96],"m":"rts"},{"a":40102,"l":"shapes_from_1800","c":"Copies $1800-$1BFF back to $7600, $7700, $7E00 and $7F00.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[32976]},{"a":40104,"l":"b_9CA8","t":"code","b":[185,0,24],"m":"lda","oa":6144,"o":"f_1800,y","x":[40129]},{"a":40107,"t":"code","b":[153,0,118],"m":"sta","oa":30208,"o":"player1_shots,y"},{"a":40110,"t":"code","b":[185,0,25],"m":"lda","oa":6400,"o":"f_1900,y"},{"a":40113,"t":"code","b":[153,0,119],"m":"sta","oa":30464,"o":"player1_shots_2,y"},{"a":40116,"t":"code","b":[185,0,26],"m":"lda","oa":6656,"o":"f_1A00,y"},{"a":40119,"t":"code","b":[153,0,126],"m":"sta","oa":32256,"o":"player2_shots,y"},{"a":40122,"t":"code","b":[185,0,27],"m":"lda","oa":6912,"o":"f_1B00,y"},{"a":40125,"t":"code","b":[153,0,127],"m":"sta","oa":32512,"o":"player2_shots_2,y"},{"a":40128,"t":"code","b":[200],"m":"iny"},{"a":40129,"t":"code","b":[208,229],"m":"bne","oa":40104,"o":"b_9CA8"},{"a":40131,"t":"code","b":[96],"m":"rts"},{"a":40132,"l":"shapes_7400_to_6E00","c":"Copies $7400-$75FF to $6E00-$6FFF.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[39965]},{"a":40134,"l":"b_9CC6","t":"code","b":[185,0,116],"m":"lda","oa":29696,"o":"player1_frames_3,y","x":[40147]},{"a":40137,"t":"code","b":[153,0,110],"m":"sta","oa":28160,"o":"fireball_shapes,y"},{"a":40140,"t":"code","b":[185,0,117],"m":"lda","oa":29952,"o":"player1_frames_3b,y"},{"a":40143,"t":"code","b":[153,0,111],"m":"sta","oa":28416,"o":"fireball_shapes_2,y"},{"a":40146,"t":"code","b":[200],"m":"iny"},{"a":40147,"t":"code","b":[208,241],"m":"bne","oa":40134,"o":"b_9CC6"},{"a":40149,"t":"code","b":[96],"m":"rts"},{"a":40150,"l":"pad_9CD6","c":"A zero byte before the special potions' entries.","t":"byte","b":[0]},{"a":40151,"l":"power_armour","c":"The six special potions' entry points, reached through the pickup table ($B835): each loads its power's bit (1 armour, 2 carrying, 4 magic, 8 shot power, $10 shot speed, $20 fight power), the BIT instructions hiding the other loads. A power the player lacks is added to its powers (player_powers), applied (power_apply) and announced (power_message); one it already has is picked up as an ordinary potion when there is room ($B8B5).","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[47173]},{"a":40153,"t":"code","b":[44,169,2],"m":"bit","oa":681,"o":"a_02A9"},{"a":40154,"t":"note","l":"power_carry","c":"Entry for the carrying potion (bit 2).","note":"inside the item at $9CD9","x":[47175]},{"a":40156,"t":"code","b":[44,169,4],"m":"bit","oa":1193,"o":"a_04A9"},{"a":40157,"t":"note","l":"power_magic","c":"Entry for the magic potion (bit 4).","note":"inside the item at $9CDC","x":[47177]},{"a":40159,"t":"code","b":[44,169,8],"m":"bit","oa":2217,"o":"a_08A9"},{"a":40160,"t":"note","l":"power_shot","c":"Entry for the shot-power potion (bit 8).","note":"inside the item at $9CDF","x":[47179]},{"a":40162,"t":"code","b":[44,169,16],"m":"bit","oa":4265,"o":"datatitle_bit_operand"},{"a":40163,"t":"note","l":"power_speed","c":"Entry for the shot-speed potion (bit $10).","note":"inside the item at $9CE2","x":[47181]},{"a":40165,"t":"code","b":[44,169,32],"m":"bit","oa":8361,"o":"a_20A9"},{"a":40166,"t":"note","l":"power_fight","c":"Entry for the fight-power potion (bit $20).","note":"inside the item at $9CE5","x":[47183]},{"a":40168,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":40171,"t":"code","b":[61,95,158],"m":"and","oa":40543,"o":"player_powers,x"},{"a":40174,"t":"code","b":[208,16],"m":"bne","oa":40192,"o":"b_9D00"},{"a":40176,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40179,"t":"code","b":[29,95,158],"m":"ora","oa":40543,"o":"player_powers,x"},{"a":40182,"t":"code","b":[157,95,158],"m":"sta","oa":40543,"o":"player_powers,x"},{"a":40185,"t":"code","b":[32,16,157],"m":"jsr","oa":40208,"o":"power_apply"},{"a":40188,"t":"code","b":[32,98,158],"m":"jsr","oa":40546,"o":"power_message"},{"a":40191,"t":"code","b":[96],"m":"rts"},{"a":40192,"l":"b_9D00","t":"code","b":[189,99,182],"m":"lda","oa":46691,"o":"keys_held,x","x":[40174]},{"a":40195,"t":"code","b":[24],"m":"clc"},{"a":40196,"t":"code","b":[125,101,182],"m":"adc","oa":46693,"o":"potions_held,x"},{"a":40199,"t":"code","b":[221,103,182],"m":"cmp","oa":46695,"o":"carry_limit,x"},{"a":40202,"t":"code","b":[176,3],"m":"bcs","oa":40207,"o":"r_9D0F"},{"a":40204,"t":"code","b":[76,181,184],"m":"jmp","oa":47285,"o":"potion_take"},{"a":40207,"l":"r_9D0F","t":"code","b":[96],"m":"rts","x":[40202]},{"a":40208,"l":"power_apply","c":"Gives player X the power in $825B, by hero, and draws its icon in the panel: armour lowers the six damage values (damage_taken) to armoured_damage's; carrying sets the carry limit ($B667,x) to 15; magic raises the potion strength ($A010/$A00C) from $9FFE/$9FFA; shot power and fight power raise $ACAD/$ACC0 and $ACC8/$ACCC; shot speed sets $ACC4 to 8. Notes the power's number in power_index for the message.","t":"code","b":[188,28,145],"m":"ldy","oa":37148,"o":"player_hero,x","x":[40185]},{"a":40211,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40213,"t":"code","b":[141,97,158],"m":"sta","oa":40545,"o":"power_index"},{"a":40216,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40219,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":40221,"t":"code","b":[240,50],"m":"beq","oa":40273,"o":"b_9D51"},{"a":40223,"t":"code","b":[185,23,158],"m":"lda","oa":40471,"o":"armoured_damage,y"},{"a":40226,"t":"code","b":[157,73,158],"m":"sta","oa":40521,"o":"damage_taken,x"},{"a":40229,"t":"code","b":[185,27,158],"m":"lda","oa":40475,"o":"armoured_damage_2,y"},{"a":40232,"t":"code","b":[157,77,158],"m":"sta","oa":40525,"o":"damage_taken_2,x"},{"a":40235,"t":"code","b":[185,31,158],"m":"lda","oa":40479,"o":"armoured_damage_3,y"},{"a":40238,"t":"code","b":[157,79,158],"m":"sta","oa":40527,"o":"damage_taken_3,x"},{"a":40241,"t":"code","b":[185,35,158],"m":"lda","oa":40483,"o":"armoured_damage_4,y"},{"a":40244,"t":"code","b":[157,85,158],"m":"sta","oa":40533,"o":"damage_taken_4,x"},{"a":40247,"t":"code","b":[185,39,158],"m":"lda","oa":40487,"o":"armoured_damage_5,y"},{"a":40250,"t":"code","b":[157,89,158],"m":"sta","oa":40537,"o":"damage_taken_5,x"},{"a":40253,"t":"code","b":[185,43,158],"m":"lda","oa":40491,"o":"armoured_damage_6,y"},{"a":40256,"t":"code","b":[157,93,158],"m":"sta","oa":40541,"o":"damage_taken_6,x"},{"a":40259,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":40261,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":40264,"t":"code","b":[153,36,67],"m":"sta","oa":17188,"o":"f_4324,y"},{"a":40267,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":40269,"t":"code","b":[153,36,219],"m":"sta","o":"$DB24,y"},{"a":40272,"t":"code","b":[96],"m":"rts"},{"a":40273,"l":"b_9D51","t":"code","b":[238,97,158],"m":"inc","oa":40545,"o":"power_index","x":[40221]},{"a":40276,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40279,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":40281,"t":"code","b":[240,19],"m":"beq","oa":40302,"o":"b_9D6E"},{"a":40283,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":40285,"t":"code","b":[157,103,182],"m":"sta","oa":46695,"o":"carry_limit,x"},{"a":40288,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":40290,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":40293,"t":"code","b":[153,37,67],"m":"sta","oa":17189,"o":"f_4325,y"},{"a":40296,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":40298,"t":"code","b":[153,37,219],"m":"sta","o":"$DB25,y"},{"a":40301,"t":"code","b":[96],"m":"rts"},{"a":40302,"l":"b_9D6E","t":"code","b":[238,97,158],"m":"inc","oa":40545,"o":"power_index","x":[40281]},{"a":40305,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40308,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":40310,"t":"code","b":[240,26],"m":"beq","oa":40338,"o":"b_9D92"},{"a":40312,"t":"code","b":[185,254,159],"m":"lda","oa":40958,"o":"magic_power_hi,y"},{"a":40315,"t":"code","b":[157,16,160],"m":"sta","oa":40976,"o":"magic_value_2,x"},{"a":40318,"t":"code","b":[185,250,159],"m":"lda","oa":40954,"o":"magic_tables,y"},{"a":40321,"t":"code","b":[157,12,160],"m":"sta","oa":40972,"o":"magic_value,x"},{"a":40324,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":40326,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":40329,"t":"code","b":[153,38,67],"m":"sta","oa":17190,"o":"f_4326,y"},{"a":40332,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":40334,"t":"code","b":[153,38,219],"m":"sta","o":"$DB26,y"},{"a":40337,"t":"code","b":[96],"m":"rts"},{"a":40338,"l":"b_9D92","t":"code","b":[238,97,158],"m":"inc","oa":40545,"o":"power_index","x":[40310]},{"a":40341,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40344,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":40346,"t":"code","b":[240,26],"m":"beq","oa":40374,"o":"b_9DB6"},{"a":40348,"t":"code","b":[185,247,157],"m":"lda","oa":40439,"o":"power_tables,y"},{"a":40351,"t":"code","b":[157,173,172],"m":"sta","oa":44205,"o":"shot_power,x"},{"a":40354,"t":"code","b":[185,251,157],"m":"lda","oa":40443,"o":"power_shot_lo,y"},{"a":40357,"t":"code","b":[157,192,172],"m":"sta","oa":44224,"o":"shot_damage_base,x"},{"a":40360,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":40362,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":40365,"t":"code","b":[153,49,67],"m":"sta","oa":17201,"o":"f_4331,y"},{"a":40368,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":40370,"t":"code","b":[153,49,219],"m":"sta","o":"$DB31,y"},{"a":40373,"t":"code","b":[96],"m":"rts"},{"a":40374,"l":"b_9DB6","t":"code","b":[238,97,158],"m":"inc","oa":40545,"o":"power_index","x":[40346]},{"a":40377,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40380,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":40382,"t":"code","b":[240,19],"m":"beq","oa":40403,"o":"b_9DD3"},{"a":40384,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":40386,"t":"code","b":[157,196,172],"m":"sta","oa":44228,"o":"shot_speed_base,x"},{"a":40389,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":40391,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":40394,"t":"code","b":[153,50,67],"m":"sta","oa":17202,"o":"f_4332,y"},{"a":40397,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":40399,"t":"code","b":[153,50,219],"m":"sta","o":"$DB32,y"},{"a":40402,"t":"code","b":[96],"m":"rts"},{"a":40403,"l":"b_9DD3","t":"code","b":[238,97,158],"m":"inc","oa":40545,"o":"power_index","x":[40382]},{"a":40406,"t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch"},{"a":40409,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":40411,"t":"code","b":[240,25],"m":"beq","oa":40438,"o":"r_9DF6"},{"a":40413,"t":"code","b":[185,255,157],"m":"lda","oa":40447,"o":"power_fight_hi,y"},{"a":40416,"t":"code","b":[157,200,172],"m":"sta","oa":44232,"o":"fight_power,x"},{"a":40419,"t":"code","b":[185,3,158],"m":"lda","oa":40451,"o":"power_fight_lo,y"},{"a":40422,"t":"code","b":[157,204,172],"m":"sta","oa":44236,"o":"fight_damage_base,x"},{"a":40425,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":40427,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":40430,"t":"code","b":[153,51,67],"m":"sta","oa":17203,"o":"f_4333,y"},{"a":40433,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":40435,"t":"code","b":[153,51,219],"m":"sta","o":"$DB33,y"},{"a":40438,"l":"r_9DF6","t":"code","b":[96],"m":"rts","x":[40411]},{"a":40439,"l":"power_tables","c":"The per-hero values the powers set, four bytes (one per hero) each: shot power $9DF7/$9DFB, fight power $9DFF/$9E03, base shot $9E07/$9E0B, base fight $9E0F/$9E13, armoured damage $9E17-$9E2B.","t":"byte","b":[3,2,3,2],"x":[40348]},{"a":40443,"l":"power_shot_lo","c":"The shot-power potion's second value by hero ($ACC0).","t":"byte","b":[192,128,192,128],"x":[40354]},{"a":40447,"l":"power_fight_hi","c":"The fight-power potion's values by hero ($ACC8).","t":"byte","b":[3,2,1,1],"x":[40413]},{"a":40451,"l":"power_fight_lo","c":"Its second values ($ACCC).","t":"byte","b":[192,128,64,64],"x":[40419]},{"a":40455,"l":"base_shot_hi","c":"The heroes' base shot power ($ACAD).","t":"byte","b":[2,1,2,1],"x":[40922]},{"a":40459,"l":"base_shot_lo","c":"The heroes' base shot damage ($ACC0).","t":"byte","b":[128,64,128,64],"x":[40928]},{"a":40463,"l":"base_fight_hi","c":"The heroes' base fight power ($ACC8).","t":"byte","b":[2,1,0,0],"x":[40941]},{"a":40467,"l":"base_fight_lo","c":"The heroes' base fight damage ($ACCC).","t":"byte","b":[128,128,64,64],"x":[40947]},{"a":40471,"l":"armoured_damage","c":"The damage each monster kind does to an armoured hero, six tables of four (one value per hero) at $9E17, $9E1B, $9E1F, $9E23, $9E27, $9E2B.","t":"byte","b":[3,2,4,4],"x":[40223]},{"a":40475,"l":"armoured_damage_2","c":"The second armoured damage table, by hero.","t":"byte","b":[7,6,9,8],"x":[40229]},{"a":40479,"l":"armoured_damage_3","c":"The third armoured damage table, by hero.","t":"byte","b":[6,4,8,8],"x":[40235]},{"a":40483,"l":"armoured_damage_4","c":"The fourth armoured damage table, by hero.","t":"byte","b":[20,18,24,22],"x":[40241]},{"a":40487,"l":"armoured_damage_5","c":"The fifth armoured damage table, by hero.","t":"byte","b":[9,6,18,18],"x":[40247]},{"a":40491,"l":"armoured_damage_6","c":"The sixth.","t":"byte","b":[33,24,39,36],"x":[40253]},{"a":40495,"l":"base_damage","c":"The damage each of six monster kinds does to each hero without armour: six tables of four at $9E2F, $9E33, $9E37, $9E3B, $9E3F, $9E43 (for the first: Warrior 4, Valkyrie 3, Wizard 5, Elf 5).","t":"byte","b":[4,3,5,5],"x":[40866]},{"a":40499,"l":"base_damage_2","c":"The second base damage table, by hero.","t":"byte","b":[8,6,16,9],"x":[40872]},{"a":40503,"l":"base_damage_3","c":"The third base damage table, by hero.","t":"byte","b":[8,6,16,9],"x":[40878]},{"a":40507,"l":"base_damage_4","c":"The fourth base damage table, by hero.","t":"byte","b":[22,18,32,24],"x":[40884]},{"a":40511,"l":"base_damage_5","c":"The fifth base damage table, by hero.","t":"byte","b":[18,9,21,21],"x":[40890]},{"a":40515,"l":"base_damage_6","c":"The sixth, then two spare bytes.","t":"byte","b":[36,24,48,39,5,5],"x":[40896]},{"a":40521,"l":"damage_taken","c":"The damage each of six monster kinds does to each player, copied from base_damage by hero at the start (power_reset_armour) and from armoured_damage by the armour potion: pairs at $9E49, $9E4D, $9E4F, $9E55, $9E59, $9E5D.","t":"byte","b":[4,5,16,16],"x":[40226,40869]},{"a":40525,"l":"damage_taken_2","c":"The second damage_taken pair.","t":"byte","b":[8,16],"x":[40232,40875]},{"a":40527,"l":"damage_taken_3","c":"The third pair, then four spare bytes.","t":"byte","b":[8,5,5,5,16,16],"x":[40238,40881]},{"a":40533,"l":"damage_taken_4","c":"The fourth pair.","t":"byte","b":[22,16,5,5],"x":[40244,40887]},{"a":40537,"l":"damage_taken_5","c":"The fifth pair.","t":"byte","b":[18,5,16,16],"x":[40250,40893]},{"a":40541,"l":"damage_taken_6","c":"The sixth pair.","t":"byte","b":[36,16],"x":[40256,40899]},{"a":40543,"l":"player_powers","c":"Each player's special powers, one bit each (1 armour, 2 carrying, 4 magic, 8 shot power, $10 shot speed, $20 fight power).","t":"byte","b":[0,0],"x":[40171,40179,40182,40738,40771,40779,40782,41010]},{"a":40545,"l":"power_index","c":"Which power power_apply gave (0-5), for power_message.","t":"byte","b":[0],"x":[40213,40273,40302,40338,40374,40403,40546]},{"a":40546,"l":"power_message","c":"Announces a special potion: clears the text screen ($AF72), prints the hero's name and \"NOW HAS\" and the power's name (its inline pointer set from power_names), plays sound $10, waits ($AF45) and puts the maze back ($8EB4).","t":"code","b":[173,97,158],"m":"lda","oa":40545,"o":"power_index","x":[40188]},{"a":40549,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40550,"t":"code","b":[168],"m":"tay"},{"a":40551,"t":"code","b":[185,157,158],"m":"lda","oa":40605,"o":"power_names,y"},{"a":40554,"t":"code","b":[141,143,158],"m":"sta","oa":40591,"o":"arg_9E8F"},{"a":40557,"t":"code","b":[185,158,158],"m":"lda","oa":40606,"o":"power_names_hi,y"},{"a":40560,"t":"code","b":[141,144,158],"m":"sta","oa":40592,"o":"power_name_hi"},{"a":40563,"t":"code","b":[32,114,175],"m":"jsr","oa":44914,"o":"text_screen"},{"a":40566,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":40568,"t":"code","b":[32,243,175],"m":"jsr","oa":45043,"o":"text_row"},{"a":40571,"t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur"},{"a":40574,"t":"code","b":[32,80,177],"m":"jsr","oa":45392,"o":"print_hero_name"},{"a":40577,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":40580,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":40583,"l":"arg_9E87","c":"The address of the string the call before prints (print_centred's argument): str_powers + 112 at $9F19, \"NOW HAS\".","t":"addr","b":[25,159],"oa":40729,"o":"str_now_has"},{"a":40585,"l":"power_message_2","c":"power_message goes on after printing \"NOW HAS\": the next row, the power's name.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":40588,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":40591,"l":"arg_9E8F","c":"The address of the string the call before prints (print_centred's argument); the code rewrites it before the call.","t":"addr","b":[0,0],"oa":0,"o":"start","x":[40554]},{"a":40592,"t":"note","l":"power_name_hi","c":"The high byte of the power's name in the argument, rewritten from power_names.","note":"inside the item at $9E8F","x":[40560]},{"a":40593,"l":"power_message_3","c":"power_message goes on after the power's name: the sound, the wait and the maze.","t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":40595,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":40598,"t":"code","b":[32,69,175],"m":"jsr","oa":44869,"o":"wait_64_frames"},{"a":40601,"t":"code","b":[32,180,142],"m":"jsr","oa":36532,"o":"maze_restore"},{"a":40604,"t":"code","b":[96],"m":"rts"},{"a":40605,"l":"power_names","c":"The address of each power's message.","t":"addr","b":[169,158],"oa":40617,"o":"str_powers","x":[40551]},{"a":40606,"t":"note","l":"power_names_hi","c":"The high bytes of power_names.","note":"inside the item at $9E9D","x":[40557]},{"a":40607,"t":"addr","b":[183,158],"oa":40631,"o":"str_extra_carry"},{"a":40609,"t":"addr","b":[207,158],"oa":40655,"o":"str_extra_magic"},{"a":40611,"t":"addr","b":[226,158],"oa":40674,"o":"str_extra_shot_power"},{"a":40613,"t":"addr","b":[244,158],"oa":40692,"o":"str_extra_shot_speed"},{"a":40615,"t":"addr","b":[6,159],"oa":40710,"o":"str_extra_fight"},{"a":40617,"l":"str_powers","c":"The six messages, each a length, a colour and the text: EXTRA ARMOUR, EXTRA CARRYING ABILITY, EXTRA MAGIC POWER, EXTRA SHOT POWER, EXTRA SHOT SPEED, EXTRA FIGHT POWER; then \"NOW HAS\" ($9F1A).","t":"byte","b":[12,1,69,88,84,82,65,32],"x":[40605]},{"a":40625,"t":"byte","b":[65,82,77,79,85,82]},{"a":40631,"l":"str_extra_carry","c":"\"EXTRA CARRYING ABILITY\".","t":"byte","b":[22,1,69,88,84,82,65,32],"x":[40607]},{"a":40639,"t":"byte","b":[67,65,82,82,89,73,78,71]},{"a":40647,"t":"byte","b":[32,65,66,73,76,73,84,89]},{"a":40655,"l":"str_extra_magic","c":"\"EXTRA MAGIC POWER\".","t":"byte","b":[17,1,69,88,84,82,65,32],"x":[40609]},{"a":40663,"t":"byte","b":[77,65,71,73,67,32,80,79]},{"a":40671,"t":"byte","b":[87,69,82]},{"a":40674,"l":"str_extra_shot_power","c":"\"EXTRA SHOT POWER\".","t":"byte","b":[16,1,69,88,84,82,65,32],"x":[40611]},{"a":40682,"t":"byte","b":[83,72,79,84,32,80,79,87]},{"a":40690,"t":"byte","b":[69,82]},{"a":40692,"l":"str_extra_shot_speed","c":"\"EXTRA SHOT SPEED\".","t":"byte","b":[16,1,69,88,84,82,65,32],"x":[40613]},{"a":40700,"t":"byte","b":[83,72,79,84,32,83,80,69]},{"a":40708,"t":"byte","b":[69,68]},{"a":40710,"l":"str_extra_fight","c":"\"EXTRA FIGHT POWER\".","t":"byte","b":[17,1,69,88,84,82,65,32],"x":[40615]},{"a":40718,"t":"byte","b":[70,73,71,72,84,32,80,79]},{"a":40726,"t":"byte","b":[87,69,82]},{"a":40729,"l":"str_now_has","c":"\"NOW HAS\".","t":"byte","b":[7,1,78,79,87,32,72,65],"x":[40583]},{"a":40737,"t":"byte","b":[83]},{"a":40738,"l":"poison","c":"The poison's effect on player X. A player with no special power loses a potion if it carries any (potion_drop, when potions_held is not zero) and 100 health (poison_health). A player with powers loses one, picked at random among those it has (its bit cleared, its base value restored with power_reset, its icon wiped from the panel), and nothing else here.","t":"code","b":[189,95,158],"m":"lda","oa":40543,"o":"player_powers,x","x":[47062]},{"a":40741,"t":"code","b":[240,3],"m":"beq","oa":40746,"o":"b_9F2A"},{"a":40743,"t":"code","b":[76,54,159],"m":"jmp","oa":40758,"o":"j_9F36"},{"a":40746,"l":"b_9F2A","t":"code","b":[189,101,182],"m":"lda","oa":46693,"o":"potions_held,x","x":[40741]},{"a":40749,"t":"code","b":[240,3],"m":"beq","oa":40754,"o":"b_9F32"},{"a":40751,"t":"code","b":[32,10,185],"m":"jsr","oa":47370,"o":"potion_drop"},{"a":40754,"l":"b_9F32","t":"code","b":[32,98,159],"m":"jsr","oa":40802,"o":"poison_health","x":[40749]},{"a":40757,"t":"code","b":[96],"m":"rts"},{"a":40758,"l":"j_9F36","t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random","x":[40743,40774]},{"a":40761,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":40763,"t":"code","b":[168],"m":"tay"},{"a":40764,"t":"code","b":[185,111,159],"m":"lda","oa":40815,"o":"poison_pick,y"},{"a":40767,"t":"code","b":[168],"m":"tay"},{"a":40768,"t":"code","b":[185,238,151],"m":"lda","oa":38894,"o":"power_bits,y"},{"a":40771,"t":"code","b":[61,95,158],"m":"and","oa":40543,"o":"player_powers,x"},{"a":40774,"t":"code","b":[240,238],"m":"beq","oa":40758,"o":"j_9F36"},{"a":40776,"t":"code","b":[185,246,151],"m":"lda","oa":38902,"o":"clear_masks,y"},{"a":40779,"t":"code","b":[61,95,158],"m":"and","oa":40543,"o":"player_powers,x"},{"a":40782,"t":"code","b":[157,95,158],"m":"sta","oa":40543,"o":"player_powers,x"},{"a":40785,"t":"code","b":[32,125,159],"m":"jsr","oa":40829,"o":"power_reset"},{"a":40788,"t":"code","b":[185,119,159],"m":"lda","oa":40823,"o":"power_icon_cols,y"},{"a":40791,"t":"code","b":[24],"m":"clc"},{"a":40792,"t":"code","b":[125,45,131],"m":"adc","oa":33581,"o":"panel_misc,x"},{"a":40795,"t":"code","b":[168],"m":"tay"},{"a":40796,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40798,"t":"code","b":[153,36,67],"m":"sta","oa":17188,"o":"f_4324,y"},{"a":40801,"t":"code","b":[96],"m":"rts"},{"a":40802,"l":"poison_health","c":"Takes one from the hundreds byte of player X's health ($B931,x) with decimal mode off and no test for a borrow, and raises $B65F: from $20 it leaves $1F, from $00 it leaves $FF.","t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x","x":[40754]},{"a":40805,"t":"code","b":[56],"m":"sec"},{"a":40806,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":40808,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":40811,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":40814,"t":"code","b":[96],"m":"rts"},{"a":40815,"l":"poison_pick","c":"The power poison tries for each random 0-7: 0 1 2 3 4 5 2 4.","t":"byte","b":[0,1,2,3,4,5,2,4],"x":[40764]},{"a":40823,"l":"power_icon_cols","c":"Each power's icon column in the panel block: 0 1 2 13 14 15.","t":"byte","b":[0,1,2,13,14,15],"x":[40788]},{"a":40829,"l":"power_reset","c":"Puts power Y of player X back to the hero's base value through the routine power_resets names (its JSR at $9F90 rewritten).","t":"code","b":[152],"m":"tya","x":[40785]},{"a":40830,"t":"code","b":[72],"m":"pha"},{"a":40831,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40832,"t":"code","b":[168],"m":"tay"},{"a":40833,"t":"code","b":[185,150,159],"m":"lda","oa":40854,"o":"power_resets,y"},{"a":40836,"t":"code","b":[141,145,159],"m":"sta","oa":40849,"o":"power_reset_target"},{"a":40839,"t":"code","b":[185,151,159],"m":"lda","oa":40855,"o":"power_resets_hi,y"},{"a":40842,"t":"code","b":[141,146,159],"m":"sta","oa":40850,"o":"power_reset_target_hi"},{"a":40845,"t":"code","b":[188,28,145],"m":"ldy","oa":37148,"o":"player_hero,x"},{"a":40848,"l":"power_reset_call","c":"The JSR power_reset rewrites with the routine for the power.","t":"code","b":[32,144,159],"m":"jsr","oa":40848,"o":"power_reset_call","x":[40848]},{"a":40849,"t":"note","l":"power_reset_target","c":"Its target, low byte.","note":"inside the item at $9F90","x":[40836]},{"a":40850,"t":"note","l":"power_reset_target_hi","c":"Its target, high byte; then power_reset's return.","note":"inside the item at $9F90","x":[40842]},{"a":40851,"t":"code","b":[104],"m":"pla"},{"a":40852,"t":"code","b":[168],"m":"tay"},{"a":40853,"t":"code","b":[96],"m":"rts"},{"a":40854,"l":"power_resets","c":"The six routines that set a power to its base value.","t":"addr","b":[162,159],"oa":40866,"o":"power_reset_armour","x":[40833]},{"a":40855,"t":"note","l":"power_resets_hi","c":"The high bytes of power_resets.","note":"inside the item at $9F96","x":[40839]},{"a":40856,"t":"addr","b":[199,159],"oa":40903,"o":"power_reset_carry"},{"a":40858,"t":"addr","b":[205,159],"oa":40909,"o":"power_reset_magic"},{"a":40860,"t":"addr","b":[218,159],"oa":40922,"o":"power_reset_shot"},{"a":40862,"t":"addr","b":[231,159],"oa":40935,"o":"power_reset_speed"},{"a":40864,"t":"addr","b":[237,159],"oa":40941,"o":"power_reset_fight"},{"a":40866,"l":"power_reset_armour","c":"Copies the hero's six base damage values into damage_taken for player X.","t":"code","b":[185,47,158],"m":"lda","oa":40495,"o":"base_damage,y","x":[40854,40981]},{"a":40869,"t":"code","b":[157,73,158],"m":"sta","oa":40521,"o":"damage_taken,x"},{"a":40872,"t":"code","b":[185,51,158],"m":"lda","oa":40499,"o":"base_damage_2,y"},{"a":40875,"t":"code","b":[157,77,158],"m":"sta","oa":40525,"o":"damage_taken_2,x"},{"a":40878,"t":"code","b":[185,55,158],"m":"lda","oa":40503,"o":"base_damage_3,y"},{"a":40881,"t":"code","b":[157,79,158],"m":"sta","oa":40527,"o":"damage_taken_3,x"},{"a":40884,"t":"code","b":[185,59,158],"m":"lda","oa":40507,"o":"base_damage_4,y"},{"a":40887,"t":"code","b":[157,85,158],"m":"sta","oa":40533,"o":"damage_taken_4,x"},{"a":40890,"t":"code","b":[185,63,158],"m":"lda","oa":40511,"o":"base_damage_5,y"},{"a":40893,"t":"code","b":[157,89,158],"m":"sta","oa":40537,"o":"damage_taken_5,x"},{"a":40896,"t":"code","b":[185,67,158],"m":"lda","oa":40515,"o":"base_damage_6,y"},{"a":40899,"t":"code","b":[157,93,158],"m":"sta","oa":40541,"o":"damage_taken_6,x"},{"a":40902,"t":"code","b":[96],"m":"rts"},{"a":40903,"l":"power_reset_carry","c":"Sets player X's carry limit to 10.","t":"code","b":[169,10],"m":"lda","o":"#$0A","x":[40856,40984]},{"a":40905,"t":"code","b":[157,103,182],"m":"sta","oa":46695,"o":"carry_limit,x"},{"a":40908,"t":"code","b":[96],"m":"rts"},{"a":40909,"l":"power_reset_magic","c":"Sets the potion strength $A010/$A00C from the hero's base ($A006/$A002).","t":"code","b":[185,6,160],"m":"lda","oa":40966,"o":"magic_base_hi,y","x":[40858,40987]},{"a":40912,"t":"code","b":[157,16,160],"m":"sta","oa":40976,"o":"magic_value_2,x"},{"a":40915,"t":"code","b":[185,2,160],"m":"lda","oa":40962,"o":"magic_base_lo,y"},{"a":40918,"t":"code","b":[157,12,160],"m":"sta","oa":40972,"o":"magic_value,x"},{"a":40921,"t":"code","b":[96],"m":"rts"},{"a":40922,"l":"power_reset_shot","c":"Sets shot power $ACAD/$ACC0 from $9E07/$9E0B.","t":"code","b":[185,7,158],"m":"lda","oa":40455,"o":"base_shot_hi,y","x":[40860,40990]},{"a":40925,"t":"code","b":[157,173,172],"m":"sta","oa":44205,"o":"shot_power,x"},{"a":40928,"t":"code","b":[185,11,158],"m":"lda","oa":40459,"o":"base_shot_lo,y"},{"a":40931,"t":"code","b":[157,192,172],"m":"sta","oa":44224,"o":"shot_damage_base,x"},{"a":40934,"t":"code","b":[96],"m":"rts"},{"a":40935,"l":"power_reset_speed","c":"Sets $ACC4 to 0.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[40862,40993]},{"a":40937,"t":"code","b":[157,196,172],"m":"sta","oa":44228,"o":"shot_speed_base,x"},{"a":40940,"t":"code","b":[96],"m":"rts"},{"a":40941,"l":"power_reset_fight","c":"Sets fight power $ACC8/$ACCC from $9E0F/$9E13.","t":"code","b":[185,15,158],"m":"lda","oa":40463,"o":"base_fight_hi,y","x":[40864,40996]},{"a":40944,"t":"code","b":[157,200,172],"m":"sta","oa":44232,"o":"fight_power,x"},{"a":40947,"t":"code","b":[185,19,158],"m":"lda","oa":40467,"o":"base_fight_lo,y"},{"a":40950,"t":"code","b":[157,204,172],"m":"sta","oa":44236,"o":"fight_damage_base,x"},{"a":40953,"t":"code","b":[96],"m":"rts"},{"a":40954,"l":"magic_tables","c":"The magic values by hero: with the power $9FFA/$9FFE, without it $A002/$A006; then $A00A, the potion strengths $A00C and $A010, and $A00E, per player.","t":"byte","b":[3,2,3,2],"x":[40318]},{"a":40958,"l":"magic_power_hi","c":"The magic potion's second value by hero.","t":"byte","b":[192,128],"x":[40312]},{"a":40960,"l":"magic_tables_a000","c":"The last two bytes of the magic tables ($C0 $80, part of $9FFE), then the per-player values from $A002.","t":"byte","b":[192,128]},{"a":40962,"l":"magic_base_lo","c":"The heroes' base magic, first value ($A00C).","t":"byte","b":[2,1,3,1],"x":[40915]},{"a":40966,"l":"magic_base_hi","c":"The heroes' base magic, second value ($A010).","t":"byte","b":[128,64,192,64],"x":[40909]},{"a":40970,"l":"magic_vs_generators","c":"Each player's magic against generators ($A00A,x, used by magic_generator).","t":"byte","b":[1,1],"x":[44375]},{"a":40972,"l":"magic_value","c":"Each player's magic value (set by hero and the magic potion).","t":"byte","b":[2,1],"x":[40321,40918]},{"a":40974,"l":"magic_vs_monsters","c":"Each player's magic damage to monsters (blast_monster).","t":"byte","b":[64,64],"x":[50238]},{"a":40976,"l":"magic_value_2","c":"Each player's second magic value.","t":"byte","b":[128,64],"x":[40315,40912]},{"a":40978,"l":"player_powers_reset","c":"Sets every power of player X to its hero's base (the six power_reset routines) and clears $C40C,x, $B663,x, $B665,x and player_powers.","t":"code","b":[188,28,145],"m":"ldy","oa":37148,"o":"player_hero,x","x":[42339,42628]},{"a":40981,"t":"code","b":[32,162,159],"m":"jsr","oa":40866,"o":"power_reset_armour"},{"a":40984,"t":"code","b":[32,199,159],"m":"jsr","oa":40903,"o":"power_reset_carry"},{"a":40987,"t":"code","b":[32,205,159],"m":"jsr","oa":40909,"o":"power_reset_magic"},{"a":40990,"t":"code","b":[32,218,159],"m":"jsr","oa":40922,"o":"power_reset_shot"},{"a":40993,"t":"code","b":[32,231,159],"m":"jsr","oa":40935,"o":"power_reset_speed"},{"a":40996,"t":"code","b":[32,237,159],"m":"jsr","oa":40941,"o":"power_reset_fight"},{"a":40999,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41001,"t":"code","b":[157,12,196],"m":"sta","oa":50188,"o":"dead_p1,x"},{"a":41004,"t":"code","b":[157,99,182],"m":"sta","oa":46691,"o":"keys_held,x"},{"a":41007,"t":"code","b":[157,101,182],"m":"sta","oa":46693,"o":"potions_held,x"},{"a":41010,"t":"code","b":[157,95,158],"m":"sta","oa":40543,"o":"player_powers,x"},{"a":41013,"t":"code","b":[96],"m":"rts"},{"a":41014,"l":"tune_tick","c":"Entry for the raster interrupt's call when $8249 is set: jumps to tune_play.","t":"code","b":[76,204,160],"m":"jmp","oa":41164,"o":"tune_play","x":[34290]},{"a":41017,"l":"tune_start","c":"Entry that starts a tune: jumps to tune_init.","t":"code","b":[76,92,160],"m":"jmp","oa":41052,"o":"tune_init","x":[32842,44594,45277]},{"a":41020,"l":"tune_on","c":"Non-zero while the tune player has a tune to play; command $1E clears it.","t":"byte","b":[0],"x":[41141,41164,41464,44583,45288,52702,52895]},{"a":41021,"l":"tune_voices","c":"The tune player's state, ten bytes per voice at $A03D, $A047 and $A051: the stream pointer (bytes 0-1), the high byte of a long count (3), the loop mark (4-5), the loop count (6), the voice's control byte (7), the loop flag (8, bit 7) and the frames left on the note or rest (9).","t":"byte","b":[4],"x":[41060,41069,41150,41155,41198,41217]},{"a":41022,"l":"tune_voice1_hi","c":"Voice 1's stream pointer, high byte.","t":"byte","b":[255,0],"x":[41072,41160,41203,41222]},{"a":41024,"l":"tune_voice1_rest","c":"Voice 1's long-count byte, loop mark, loop count and control byte.","t":"byte","b":[0,0,0,0,0,0],"x":[41175,41180]},{"a":41030,"l":"tune_voice1_count","c":"Voice 1's frames left on its note.","t":"byte","b":[1],"x":[41130,41170,41185]},{"a":41031,"l":"tune_voice2","c":"Voice 2's stream pointer.","t":"byte","b":[225],"x":[41083,41253,41272]},{"a":41032,"l":"tune_voice2_hi","c":"Voice 2's stream pointer, high byte.","t":"byte","b":[255,0],"x":[41089,41258,41277]},{"a":41034,"l":"tune_voice2_rest","c":"Voice 2's other state bytes.","t":"byte","b":[0,0,0,0,0,0],"x":[41230,41235]},{"a":41040,"l":"tune_voice2_count","c":"Voice 2's frames left.","t":"byte","b":[1],"x":[41133,41225,41240]},{"a":41041,"l":"tune_voice3","c":"Voice 3's stream pointer.","t":"byte","b":[2],"x":[41098,41308,41327]},{"a":41042,"l":"tune_voice3_hi","c":"Voice 3's stream pointer, high byte.","t":"byte","b":[255,0],"x":[41104,41313,41332]},{"a":41044,"l":"tune_voice3_rest","c":"Voice 3's other state bytes.","t":"byte","b":[0,0,0,0,0,0],"x":[41285,41290]},{"a":41050,"l":"tune_voice3_count","c":"Voice 3's frames left.","t":"byte","b":[1],"x":[41136,41280,41295]},{"a":41051,"l":"tune_volume","c":"The volume and filter byte last written to $D418, for command $1B.","t":"byte","b":[0],"x":[41374,41554,41560]},{"a":41052,"l":"tune_init","c":"Starts a tune whose header is at A (low) and X (high): clears the 30 bytes of voice state, takes the three voices' stream addresses from the header's three offsets (each added to the header's address), steps each pointer past its first command, sets each voice's countdown to 1, clears tune_on (its caller sets it to start the tune: treasure_start at $B0E8) and points $84/$85 at the SID ($D400).","t":"code","b":[72],"m":"pha","x":[41017]},{"a":41053,"t":"code","b":[138],"m":"txa"},{"a":41054,"t":"code","b":[72],"m":"pha"},{"a":41055,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41057,"t":"code","b":[168],"m":"tay"},{"a":41058,"t":"code","b":[162,30],"m":"ldx","o":"#$1E"},{"a":41060,"l":"b_A064","t":"code","b":[157,61,160],"m":"sta","oa":41021,"o":"tune_voices,x","x":[41064]},{"a":41063,"t":"code","b":[202],"m":"dex"},{"a":41064,"t":"code","b":[16,250],"m":"bpl","oa":41060,"o":"b_A064"},{"a":41066,"t":"code","b":[104],"m":"pla"},{"a":41067,"t":"code","b":[170],"m":"tax"},{"a":41068,"t":"code","b":[104],"m":"pla"},{"a":41069,"t":"code","b":[141,61,160],"m":"sta","oa":41021,"o":"tune_voices"},{"a":41072,"t":"code","b":[142,62,160],"m":"stx","oa":41022,"o":"tune_voice1_hi"},{"a":41075,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"zpa_80"},{"a":41077,"t":"code","b":[134,129],"m":"stx","oa":129,"o":"zpa_81"},{"a":41079,"t":"code","b":[72],"m":"pha"},{"a":41080,"t":"code","b":[24],"m":"clc"},{"a":41081,"t":"code","b":[113,128],"m":"adc","oa":128,"o":"(zpa_80),y"},{"a":41083,"t":"code","b":[141,71,160],"m":"sta","oa":41031,"o":"tune_voice2"},{"a":41086,"t":"code","b":[138],"m":"txa"},{"a":41087,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41089,"t":"code","b":[141,72,160],"m":"sta","oa":41032,"o":"tune_voice2_hi"},{"a":41092,"t":"code","b":[104],"m":"pla"},{"a":41093,"t":"code","b":[200],"m":"iny"},{"a":41094,"t":"code","b":[200],"m":"iny"},{"a":41095,"t":"code","b":[24],"m":"clc"},{"a":41096,"t":"code","b":[113,128],"m":"adc","oa":128,"o":"(zpa_80),y"},{"a":41098,"t":"code","b":[141,81,160],"m":"sta","oa":41041,"o":"tune_voice3"},{"a":41101,"t":"code","b":[138],"m":"txa"},{"a":41102,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41104,"t":"code","b":[141,82,160],"m":"sta","oa":41042,"o":"tune_voice3_hi"},{"a":41107,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":41109,"t":"code","b":[32,189,160],"m":"jsr","oa":41149,"o":"tune_skip"},{"a":41112,"t":"code","b":[32,189,160],"m":"jsr","oa":41149,"o":"tune_skip"},{"a":41115,"t":"code","b":[162,10],"m":"ldx","o":"#$0A"},{"a":41117,"t":"code","b":[32,189,160],"m":"jsr","oa":41149,"o":"tune_skip"},{"a":41120,"t":"code","b":[32,189,160],"m":"jsr","oa":41149,"o":"tune_skip"},{"a":41123,"t":"code","b":[162,20],"m":"ldx","o":"#$14"},{"a":41125,"t":"code","b":[32,189,160],"m":"jsr","oa":41149,"o":"tune_skip"},{"a":41128,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":41130,"t":"code","b":[141,70,160],"m":"sta","oa":41030,"o":"tune_voice1_count"},{"a":41133,"t":"code","b":[141,80,160],"m":"sta","oa":41040,"o":"tune_voice2_count"},{"a":41136,"t":"code","b":[141,90,160],"m":"sta","oa":41050,"o":"tune_voice3_count"},{"a":41139,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41141,"t":"code","b":[141,60,160],"m":"sta","oa":41020,"o":"tune_on"},{"a":41144,"t":"code","b":[169,212],"m":"lda","o":"#$D4"},{"a":41146,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"zpa_85"},{"a":41148,"t":"code","b":[96],"m":"rts"},{"a":41149,"l":"tune_skip","c":"Adds two to voice X's stream pointer.","t":"code","b":[24],"m":"clc","x":[41109,41112,41117,41120,41125]},{"a":41150,"t":"code","b":[189,61,160],"m":"lda","oa":41021,"o":"tune_voices,x"},{"a":41153,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":41155,"t":"code","b":[157,61,160],"m":"sta","oa":41021,"o":"tune_voices,x"},{"a":41158,"t":"code","b":[144,3],"m":"bcc","oa":41163,"o":"r_A0CB"},{"a":41160,"t":"code","b":[254,62,160],"m":"inc","oa":41022,"o":"tune_voice1_hi,x"},{"a":41163,"l":"r_A0CB","t":"code","b":[96],"m":"rts","x":[41158]},{"a":41164,"l":"tune_play","c":"Plays one frame of the tune when tune_on is set: for each of the three voices counts its note down ($A046, $A050, $A05A, with a second byte for long notes) and, when it runs out, reads the voice's next commands (tune_command) with $82/$83 at its state and $84 at its SID registers (0, 7, $0E).","t":"code","b":[173,60,160],"m":"lda","oa":41020,"o":"tune_on","x":[41014]},{"a":41167,"t":"code","b":[208,1],"m":"bne","oa":41170,"o":"b_A0D2"},{"a":41169,"t":"code","b":[96],"m":"rts"},{"a":41170,"l":"b_A0D2","t":"code","b":[206,70,160],"m":"dec","oa":41030,"o":"tune_voice1_count","x":[41167]},{"a":41173,"t":"code","b":[208,50],"m":"bne","oa":41225,"o":"b_A109"},{"a":41175,"t":"code","b":[173,64,160],"m":"lda","oa":41024,"o":"tune_voice1_rest"},{"a":41178,"t":"code","b":[240,10],"m":"beq","oa":41190,"o":"b_A0E6"},{"a":41180,"t":"code","b":[206,64,160],"m":"dec","oa":41024,"o":"tune_voice1_rest"},{"a":41183,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":41185,"t":"code","b":[141,70,160],"m":"sta","oa":41030,"o":"tune_voice1_count"},{"a":41188,"t":"code","b":[208,35],"m":"bne","oa":41225,"o":"b_A109"},{"a":41190,"l":"b_A0E6","t":"code","b":[169,61],"m":"lda","o":"#$3D","x":[41178]},{"a":41192,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"zpa_82"},{"a":41194,"t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":41196,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"zpa_83"},{"a":41198,"t":"code","b":[173,61,160],"m":"lda","oa":41021,"o":"tune_voices"},{"a":41201,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"zpa_80"},{"a":41203,"t":"code","b":[173,62,160],"m":"lda","oa":41022,"o":"tune_voice1_hi"},{"a":41206,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"zpa_81"},{"a":41208,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":41210,"t":"code","b":[134,132],"m":"stx","oa":132,"o":"zpa_84"},{"a":41212,"t":"code","b":[32,120,161],"m":"jsr","oa":41336,"o":"tune_command"},{"a":41215,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"zpa_80"},{"a":41217,"t":"code","b":[141,61,160],"m":"sta","oa":41021,"o":"tune_voices"},{"a":41220,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"zpa_81"},{"a":41222,"t":"code","b":[141,62,160],"m":"sta","oa":41022,"o":"tune_voice1_hi"},{"a":41225,"l":"b_A109","t":"code","b":[206,80,160],"m":"dec","oa":41040,"o":"tune_voice2_count","x":[41173,41188]},{"a":41228,"t":"code","b":[208,50],"m":"bne","oa":41280,"o":"b_A140"},{"a":41230,"t":"code","b":[173,74,160],"m":"lda","oa":41034,"o":"tune_voice2_rest"},{"a":41233,"t":"code","b":[240,8],"m":"beq","oa":41243,"o":"b_A11B"},{"a":41235,"t":"code","b":[206,74,160],"m":"dec","oa":41034,"o":"tune_voice2_rest"},{"a":41238,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":41240,"t":"code","b":[141,80,160],"m":"sta","oa":41040,"o":"tune_voice2_count"},{"a":41243,"l":"b_A11B","t":"code","b":[208,35],"m":"bne","oa":41280,"o":"b_A140","x":[41233]},{"a":41245,"t":"code","b":[169,71],"m":"lda","o":"#$47"},{"a":41247,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"zpa_82"},{"a":41249,"t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":41251,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"zpa_83"},{"a":41253,"t":"code","b":[173,71,160],"m":"lda","oa":41031,"o":"tune_voice2"},{"a":41256,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"zpa_80"},{"a":41258,"t":"code","b":[173,72,160],"m":"lda","oa":41032,"o":"tune_voice2_hi"},{"a":41261,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"zpa_81"},{"a":41263,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":41265,"t":"code","b":[134,132],"m":"stx","oa":132,"o":"zpa_84"},{"a":41267,"t":"code","b":[32,120,161],"m":"jsr","oa":41336,"o":"tune_command"},{"a":41270,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"zpa_80"},{"a":41272,"t":"code","b":[141,71,160],"m":"sta","oa":41031,"o":"tune_voice2"},{"a":41275,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"zpa_81"},{"a":41277,"t":"code","b":[141,72,160],"m":"sta","oa":41032,"o":"tune_voice2_hi"},{"a":41280,"l":"b_A140","t":"code","b":[206,90,160],"m":"dec","oa":41050,"o":"tune_voice3_count","x":[41228,41243]},{"a":41283,"t":"code","b":[208,50],"m":"bne","oa":41335,"o":"r_A177"},{"a":41285,"t":"code","b":[173,84,160],"m":"lda","oa":41044,"o":"tune_voice3_rest"},{"a":41288,"t":"code","b":[240,10],"m":"beq","oa":41300,"o":"b_A154"},{"a":41290,"t":"code","b":[206,84,160],"m":"dec","oa":41044,"o":"tune_voice3_rest"},{"a":41293,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":41295,"t":"code","b":[141,90,160],"m":"sta","oa":41050,"o":"tune_voice3_count"},{"a":41298,"t":"code","b":[208,35],"m":"bne","oa":41335,"o":"r_A177"},{"a":41300,"l":"b_A154","t":"code","b":[169,81],"m":"lda","o":"#$51","x":[41288]},{"a":41302,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"zpa_82"},{"a":41304,"t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":41306,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"zpa_83"},{"a":41308,"t":"code","b":[173,81,160],"m":"lda","oa":41041,"o":"tune_voice3"},{"a":41311,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"zpa_80"},{"a":41313,"t":"code","b":[173,82,160],"m":"lda","oa":41042,"o":"tune_voice3_hi"},{"a":41316,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"zpa_81"},{"a":41318,"t":"code","b":[162,14],"m":"ldx","o":"#$0E"},{"a":41320,"t":"code","b":[134,132],"m":"stx","oa":132,"o":"zpa_84"},{"a":41322,"t":"code","b":[32,120,161],"m":"jsr","oa":41336,"o":"tune_command"},{"a":41325,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"zpa_80"},{"a":41327,"t":"code","b":[141,81,160],"m":"sta","oa":41041,"o":"tune_voice3"},{"a":41330,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"zpa_81"},{"a":41332,"t":"code","b":[141,82,160],"m":"sta","oa":41042,"o":"tune_voice3_hi"},{"a":41335,"l":"r_A177","t":"code","b":[96],"m":"rts","x":[41283,41298]},{"a":41336,"l":"tune_command","c":"Reads one two-byte command from the voice's stream at ($80) and acts on it. A first byte with bit 7 set is a note: its number less $80 picks the frequency (note_freqs), the second byte is its length in frames, and the gate is cleared and set again from the voice's control byte. 0: a rest of the given length, the gate cleared. 1: volume and filter ($D418). 2, 3, 4, $0A: the value goes to the voice's register 5 (attack/decay), its control byte (kept, and written to register 4), register 3 (pulse width high) or register 6 (sustain/release). $19: a long rest, the value less one into the high count byte. $1E: the end, every gate off and tune_on cleared. $11: marks a loop start. $10: loops back to the mark the given number of times. $1B: adds the value to the volume. Commands that set a register go straight on to the next; a note or a rest ends the voice's work for the frame.","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[41212,41267,41322,41380,41494,41539,41545,41566,41575]},{"a":41338,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(zpa_80),y"},{"a":41340,"t":"code","b":[170],"m":"tax"},{"a":41341,"t":"code","b":[136],"m":"dey"},{"a":41342,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(zpa_80),y"},{"a":41344,"t":"code","b":[16,3],"m":"bpl","oa":41349,"o":"b_A185"},{"a":41346,"t":"code","b":[76,107,162],"m":"jmp","oa":41579,"o":"tune_note"},{"a":41349,"l":"b_A185","t":"code","b":[208,15],"m":"bne","oa":41366,"o":"b_A196","x":[41344]},{"a":41351,"t":"code","b":[138],"m":"txa"},{"a":41352,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":41354,"l":"j_A18A","t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y","x":[41443]},{"a":41356,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41358,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41360,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41362,"t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next"},{"a":41365,"t":"code","b":[96],"m":"rts"},{"a":41366,"l":"b_A196","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[41349]},{"a":41368,"t":"code","b":[208,13],"m":"bne","oa":41383,"o":"b_A1A7"},{"a":41370,"t":"code","b":[138],"m":"txa"},{"a":41371,"t":"code","b":[141,24,212],"m":"sta","o":"sid_filter_mode_volume"},{"a":41374,"t":"code","b":[141,91,160],"m":"sta","oa":41051,"o":"tune_volume"},{"a":41377,"t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next"},{"a":41380,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"tune_command"},{"a":41383,"l":"b_A1A7","t":"code","b":[201,2],"m":"cmp","o":"#$02","x":[41368]},{"a":41385,"t":"code","b":[208,6],"m":"bne","oa":41393,"o":"b_A1B1"},{"a":41387,"t":"code","b":[138],"m":"txa"},{"a":41388,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":41390,"t":"code","b":[76,98,162],"m":"jmp","oa":41570,"o":"tune_reg_write"},{"a":41393,"l":"b_A1B1","t":"code","b":[201,3],"m":"cmp","o":"#$03","x":[41385]},{"a":41395,"t":"code","b":[208,10],"m":"bne","oa":41407,"o":"b_A1BF"},{"a":41397,"t":"code","b":[138],"m":"txa"},{"a":41398,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":41400,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41402,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41404,"t":"code","b":[76,98,162],"m":"jmp","oa":41570,"o":"tune_reg_write"},{"a":41407,"l":"b_A1BF","t":"code","b":[201,4],"m":"cmp","o":"#$04","x":[41395]},{"a":41409,"t":"code","b":[208,6],"m":"bne","oa":41417,"o":"b_A1C9"},{"a":41411,"t":"code","b":[138],"m":"txa"},{"a":41412,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":41414,"t":"code","b":[76,98,162],"m":"jmp","oa":41570,"o":"tune_reg_write"},{"a":41417,"l":"b_A1C9","t":"code","b":[201,10],"m":"cmp","o":"#$0A","x":[41409]},{"a":41419,"t":"code","b":[208,6],"m":"bne","oa":41427,"o":"b_A1D3"},{"a":41421,"t":"code","b":[138],"m":"txa"},{"a":41422,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":41424,"t":"code","b":[76,98,162],"m":"jmp","oa":41570,"o":"tune_reg_write"},{"a":41427,"l":"b_A1D3","t":"code","b":[201,25],"m":"cmp","o":"#$19","x":[41419]},{"a":41429,"t":"code","b":[208,15],"m":"bne","oa":41446,"o":"b_A1E6"},{"a":41431,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":41433,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41435,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41437,"t":"code","b":[138],"m":"txa"},{"a":41438,"t":"code","b":[56],"m":"sec"},{"a":41439,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":41441,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":41443,"t":"code","b":[76,138,161],"m":"jmp","oa":41354,"o":"j_A18A"},{"a":41446,"l":"b_A1E6","t":"code","b":[201,30],"m":"cmp","o":"#$1E","x":[41429]},{"a":41448,"t":"code","b":[208,18],"m":"bne","oa":41468,"o":"b_A1FC"},{"a":41450,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41452,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41454,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41456,"t":"code","b":[160,11],"m":"ldy","o":"#$0B"},{"a":41458,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41460,"t":"code","b":[160,18],"m":"ldy","o":"#$12"},{"a":41462,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41464,"t":"code","b":[141,60,160],"m":"sta","oa":41020,"o":"tune_on"},{"a":41467,"t":"code","b":[96],"m":"rts"},{"a":41468,"l":"b_A1FC","t":"code","b":[201,17],"m":"cmp","o":"#$11","x":[41448]},{"a":41470,"t":"code","b":[208,25],"m":"bne","oa":41497,"o":"b_A219"},{"a":41472,"t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next"},{"a":41475,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"zpa_80"},{"a":41477,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41479,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41481,"t":"code","b":[200],"m":"iny"},{"a":41482,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"zpa_81"},{"a":41484,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41486,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":41488,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(zpa_82),y"},{"a":41490,"t":"code","b":[9,128],"m":"ora","o":"#$80"},{"a":41492,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41494,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"tune_command"},{"a":41497,"l":"b_A219","t":"code","b":[201,16],"m":"cmp","o":"#$10","x":[41470]},{"a":41499,"t":"code","b":[208,47],"m":"bne","oa":41548,"o":"b_A24C"},{"a":41501,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":41503,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(zpa_82),y"},{"a":41505,"t":"code","b":[16,10],"m":"bpl","oa":41517,"o":"b_A22D"},{"a":41507,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":41509,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41511,"t":"code","b":[138],"m":"txa"},{"a":41512,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":41514,"t":"code","b":[76,49,162],"m":"jmp","oa":41521,"o":"j_A231"},{"a":41517,"l":"b_A22D","t":"code","b":[160,6],"m":"ldy","o":"#$06","x":[41505]},{"a":41519,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(zpa_82),y"},{"a":41521,"l":"j_A231","t":"code","b":[56],"m":"sec","x":[41514]},{"a":41522,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":41524,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41526,"t":"code","b":[240,14],"m":"beq","oa":41542,"o":"b_A246"},{"a":41528,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41530,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(zpa_82),y"},{"a":41532,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"zpa_80"},{"a":41534,"t":"code","b":[200],"m":"iny"},{"a":41535,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(zpa_82),y"},{"a":41537,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"zpa_81"},{"a":41539,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"tune_command"},{"a":41542,"l":"b_A246","t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next","x":[41526]},{"a":41545,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"tune_command"},{"a":41548,"l":"b_A24C","t":"code","b":[201,27],"m":"cmp","o":"#$1B","x":[41499]},{"a":41550,"t":"code","b":[208,11],"m":"bne","oa":41563,"o":"b_A25B"},{"a":41552,"t":"code","b":[24],"m":"clc"},{"a":41553,"t":"code","b":[138],"m":"txa"},{"a":41554,"t":"code","b":[109,91,160],"m":"adc","oa":41051,"o":"tune_volume"},{"a":41557,"t":"code","b":[141,24,212],"m":"sta","o":"sid_filter_mode_volume"},{"a":41560,"t":"code","b":[141,91,160],"m":"sta","oa":41051,"o":"tune_volume"},{"a":41563,"l":"b_A25B","t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next","x":[41550]},{"a":41566,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"tune_command"},{"a":41569,"l":"tune_pad_1","c":"An RTS byte no code reaches.","t":"byte","b":[96]},{"a":41570,"l":"tune_reg_write","c":"tune_command's common tail for the commands that set a register: writes the value, steps on and reads the next command.","t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y","x":[41390,41404,41414,41424]},{"a":41572,"t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next"},{"a":41575,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"tune_command"},{"a":41578,"l":"tune_pad_2","c":"A second RTS byte, after tune_reg_write, that no code reaches.","t":"byte","b":[96]},{"a":41579,"l":"tune_note","c":"Plays a note: sets the voice's frequency from note_freqs, keeps its length, clears the gate and then writes the control byte.","t":"code","b":[10],"m":"asl","o":"a","x":[41346]},{"a":41580,"t":"code","b":[170],"m":"tax"},{"a":41581,"t":"code","b":[189,158,162],"m":"lda","oa":41630,"o":"note_freqs,x"},{"a":41584,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41586,"t":"code","b":[189,159,162],"m":"lda","oa":41631,"o":"note_freqs_hi,x"},{"a":41589,"t":"code","b":[200],"m":"iny"},{"a":41590,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41592,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":41594,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(zpa_80),y"},{"a":41596,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":41598,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(zpa_82),y"},{"a":41600,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41602,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41604,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41606,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":41608,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(zpa_82),y"},{"a":41610,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":41612,"t":"code","b":[145,132],"m":"sta","oa":132,"o":"(zpa_84),y"},{"a":41614,"t":"code","b":[32,146,162],"m":"jsr","oa":41618,"o":"stream_next"},{"a":41617,"t":"code","b":[96],"m":"rts"},{"a":41618,"l":"stream_next","c":"Steps the stream pointer $80/$81 past one two-byte command.","t":"code","b":[165,128],"m":"lda","oa":128,"o":"zpa_80","x":[41362,41377,41472,41542,41563,41572,41614]},{"a":41620,"t":"code","b":[24],"m":"clc"},{"a":41621,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":41623,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"zpa_80"},{"a":41625,"t":"code","b":[144,2],"m":"bcc","oa":41629,"o":"r_A29D"},{"a":41627,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"zpa_81"},{"a":41629,"l":"r_A29D","t":"code","b":[96],"m":"rts","x":[41625]},{"a":41630,"l":"note_freqs","c":"The tune player's note table: 96 SID frequencies, two bytes each (low first), from $010C up a semitone a step.","t":"byte","b":[12],"x":[41581]},{"a":41631,"l":"note_freqs_hi","c":"note_freqs read from its second byte (the high bytes).","t":"byte","b":[1,28,1,45,1,62,1,81],"x":[41586]},{"a":41639,"t":"byte","b":[1,102,1,123,1,145,1,169]},{"a":41647,"t":"byte","b":[1,195,1,221,1,250,1,24]},{"a":41655,"t":"byte","b":[2,56,2,90,2,125,2,163]},{"a":41663,"t":"byte","b":[2,204,2,246,2,35,3,83]},{"a":41671,"t":"byte","b":[3,134,3,227,3,244,3,48]},{"a":41679,"t":"byte","b":[4,112,4,180,4,251,4,71]},{"a":41687,"t":"byte","b":[5,152,5,237,5,71,6,167]},{"a":41695,"t":"byte","b":[6,12,7,119,7,233,7,97]},{"a":41703,"t":"byte","b":[8,225,8,104,9,247,9,143]},{"a":41711,"t":"byte","b":[10,48,11,218,11,143,12,78]},{"a":41719,"t":"byte","b":[13,24,14,239,14,210,15,195]},{"a":41727,"t":"byte","b":[16,195,17,209,18,239,19,31]},{"a":41735,"t":"byte","b":[21,96,22,181,23,30,25,156]},{"a":41743,"t":"byte","b":[26,49,28,223,29,165,31,135]},{"a":41751,"t":"byte","b":[33,134,35,162,37,223,39,62]},{"a":41759,"t":"byte","b":[42,193,44,107,47,60,50,57]},{"a":41767,"t":"byte","b":[53,99,56,190,59,75,63,15]},{"a":41775,"t":"byte","b":[67,12,71,69,75,191,79,125]},{"a":41783,"t":"byte","b":[84,131,89,214,94,121,100,115]},{"a":41791,"t":"byte","b":[106,199,112,124,119,151,126,30]},{"a":41799,"t":"byte","b":[134,24,142,138,150,126,159,250]},{"a":41807,"t":"byte","b":[168,6,179,172,189,243,200,230]},{"a":41815,"t":"byte","b":[212,143,225,248,238,46,253]},{"a":41822,"l":"hidden_potion_place","c":"For a level that has a hidden potion (hidden_kind 0-5 but not 4): copies its 16-byte graphic from $6580 + 16 x kind into the three maze fonts at $4970, $5170 and $5970, turns the kind into its tile ($19 + kind) and puts it in a random free place (random_place).","t":"code","b":[173,58,164],"m":"lda","oa":42042,"o":"hidden_kind","x":[32967]},{"a":41825,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":41827,"t":"code","b":[176,42],"m":"bcs","oa":41871,"o":"r_A38F"},{"a":41829,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":41831,"t":"code","b":[240,38],"m":"beq","oa":41871,"o":"r_A38F"},{"a":41833,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41834,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41835,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41836,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41837,"t":"code","b":[9,128],"m":"ora","o":"#$80"},{"a":41839,"t":"code","b":[141,117,163],"m":"sta","oa":41845,"o":"hidden_glyph_src"},{"a":41842,"t":"code","b":[160,15],"m":"ldy","o":"#$0F"},{"a":41844,"l":"b_A374","t":"code","b":[185,128,101],"m":"lda","oa":25984,"o":"potion_pictures,y","x":[41857]},{"a":41845,"t":"note","l":"hidden_glyph_src","c":"The low byte of hidden_potion_place's LDA $6580,Y, rewritten with the potion's 16-byte block.","note":"inside the item at $A374","x":[41839]},{"a":41847,"t":"code","b":[153,112,73],"m":"sta","oa":18800,"o":"font_maze_a_hidden,y"},{"a":41850,"t":"code","b":[153,112,81],"m":"sta","oa":20848,"o":"font_maze_b_hidden,y"},{"a":41853,"t":"code","b":[153,112,89],"m":"sta","oa":22896,"o":"font_maze_c_hidden,y"},{"a":41856,"t":"code","b":[136],"m":"dey"},{"a":41857,"t":"code","b":[16,241],"m":"bpl","oa":41844,"o":"b_A374"},{"a":41859,"t":"code","b":[173,58,164],"m":"lda","oa":42042,"o":"hidden_kind"},{"a":41862,"t":"code","b":[24],"m":"clc"},{"a":41863,"t":"code","b":[105,25],"m":"adc","o":"#$19"},{"a":41865,"t":"code","b":[141,58,164],"m":"sta","oa":42042,"o":"hidden_kind"},{"a":41868,"t":"code","b":[32,221,163],"m":"jsr","oa":41949,"o":"random_place"},{"a":41871,"l":"r_A38F","t":"code","b":[96],"m":"rts","x":[41827,41831]},{"a":41872,"l":"extras_place","c":"From level 8 on (and not in a treasure room): puts a random 1 to N extra objects in random free places, N being 4 for levels 8-31, 8 for 32-63, 12 for 64-95 and 16 from 96 (bits 2-3 of level_number / 8, plus 4). Each is tile $14, or $15 when the count left is a multiple of four, or $31 when a random byte is below extras_chance ($19, about one in ten).","t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file","x":[32970]},{"a":41875,"t":"code","b":[201,118],"m":"cmp","o":"#$76"},{"a":41877,"t":"code","b":[176,67],"m":"bcs","oa":41946,"o":"r_A3DA"},{"a":41879,"t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number"},{"a":41882,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":41884,"t":"code","b":[144,60],"m":"bcc","oa":41946,"o":"r_A3DA"},{"a":41886,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":41887,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":41888,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":41889,"t":"code","b":[41,12],"m":"and","o":"#$0C"},{"a":41891,"t":"code","b":[24],"m":"clc"},{"a":41892,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":41894,"t":"code","b":[141,219,163],"m":"sta","oa":41947,"o":"extras_count"},{"a":41897,"l":"b_A3A9","t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random","x":[41902,41909]},{"a":41900,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":41902,"t":"code","b":[240,249],"m":"beq","oa":41897,"o":"b_A3A9"},{"a":41904,"t":"code","b":[205,219,163],"m":"cmp","oa":41947,"o":"extras_count"},{"a":41907,"t":"code","b":[240,2],"m":"beq","oa":41911,"o":"b_A3B7"},{"a":41909,"t":"code","b":[176,242],"m":"bcs","oa":41897,"o":"b_A3A9"},{"a":41911,"l":"b_A3B7","t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2","x":[41907]},{"a":41914,"l":"b_A3BA","t":"code","b":[160,20],"m":"ldy","o":"#$14","x":[41944]},{"a":41916,"t":"code","b":[173,92,130],"m":"lda","oa":33372,"o":"scratch_2"},{"a":41919,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":41921,"t":"code","b":[208,2],"m":"bne","oa":41925,"o":"b_A3C5"},{"a":41923,"t":"code","b":[160,21],"m":"ldy","o":"#$15"},{"a":41925,"l":"b_A3C5","t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random","x":[41921]},{"a":41928,"t":"code","b":[205,220,163],"m":"cmp","oa":41948,"o":"extras_chance"},{"a":41931,"t":"code","b":[176,2],"m":"bcs","oa":41935,"o":"b_A3CF"},{"a":41933,"t":"code","b":[160,49],"m":"ldy","o":"#$31"},{"a":41935,"l":"b_A3CF","t":"code","b":[140,58,164],"m":"sty","oa":42042,"o":"hidden_kind","x":[41931]},{"a":41938,"t":"code","b":[32,221,163],"m":"jsr","oa":41949,"o":"random_place"},{"a":41941,"t":"code","b":[206,92,130],"m":"dec","oa":33372,"o":"scratch_2"},{"a":41944,"t":"code","b":[208,224],"m":"bne","oa":41914,"o":"b_A3BA"},{"a":41946,"l":"r_A3DA","t":"code","b":[96],"m":"rts","x":[41877,41884]},{"a":41947,"l":"extras_count","c":"The most extra objects extras_place puts in this level.","t":"byte","b":[0],"x":[41894,41904]},{"a":41948,"l":"extras_chance","c":"$19: the random number below which an extra object is $31.","t":"byte","b":[25],"x":[41928]},{"a":41949,"l":"random_place","c":"Puts the object in hidden_kind somewhere free: picks random cell positions ($BE6E, $BE6F) until the place is free ($BDBF, $BE1A), flashing the border while it looks, then draws the object's characters and colours into the maps from tile_chars (via $CAD3 and $CB42) and writes the object into the tile grid.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[41868,41938,41979]},{"a":41951,"t":"code","b":[141,241,191],"m":"sta","oa":49137,"o":"attack_flag"},{"a":41954,"t":"code","b":[238,32,208],"m":"inc","o":"vic_border"},{"a":41957,"t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random"},{"a":41960,"t":"code","b":[41,124],"m":"and","o":"#$7C"},{"a":41962,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":41965,"t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random"},{"a":41968,"t":"code","b":[41,124],"m":"and","o":"#$7C"},{"a":41970,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":41973,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":41976,"t":"code","b":[32,26,190],"m":"jsr","oa":48666,"o":"cells_empty"},{"a":41979,"t":"code","b":[208,224],"m":"bne","oa":41949,"o":"random_place"},{"a":41981,"t":"code","b":[173,58,164],"m":"lda","oa":42042,"o":"hidden_kind"},{"a":41984,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41985,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41986,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":41988,"t":"code","b":[133,253],"m":"sta","oa":253,"o":"zpa_FD"},{"a":41990,"t":"code","b":[169,244],"m":"lda","o":"#$F4"},{"a":41992,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":41994,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":41996,"t":"code","b":[133,254],"m":"sta","oa":254,"o":"zpa_FE"},{"a":41998,"t":"code","b":[32,211,202],"m":"jsr","oa":51923,"o":"tile_plot"},{"a":42001,"t":"code","b":[32,66,203],"m":"jsr","oa":52034,"o":"colour_plot"},{"a":42004,"t":"code","b":[173,110,190],"m":"lda","oa":48750,"o":"cell_pos_x"},{"a":42007,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42008,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42009,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":42012,"t":"code","b":[173,111,190],"m":"lda","oa":48751,"o":"cell_pos_y"},{"a":42015,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42016,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42017,"t":"code","b":[168],"m":"tay"},{"a":42018,"t":"code","b":[185,112,142],"m":"lda","oa":36464,"o":"map_row_lo,y"},{"a":42021,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":42024,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":42026,"t":"code","b":[185,144,142],"m":"lda","oa":36496,"o":"map_row_hi,y"},{"a":42029,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":42031,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":42033,"t":"code","b":[140,32,208],"m":"sty","o":"vic_border"},{"a":42036,"t":"code","b":[173,58,164],"m":"lda","oa":42042,"o":"hidden_kind"},{"a":42039,"t":"code","b":[145,142],"m":"sta","oa":142,"o":"(zpa_8E),y"},{"a":42041,"t":"code","b":[96],"m":"rts"},{"a":42042,"l":"hidden_kind","c":"The object being placed: the hidden potion's kind (0-5), or the tile of an extra object; $FF for none.","t":"byte","b":[255],"x":[41822,41859,41865,41935,41981,42036,42073,42088]},{"a":42043,"c":"Two bytes between hidden_kind and random that no instruction refers to; zero as loaded.","t":"byte","b":[0,0]},{"a":42045,"l":"random","c":"A random byte in A: an additive generator over the four zero-page bytes $26-$29, each having the previous byte's old value added with the carry (the first gets $29), returning $26. Seeded from the raster line when a player joins (wait_first_player).","t":"code","b":[152],"m":"tya","x":[32817,39625,39635,39661,40758,41897,41925,41957,41965,42083]},{"a":42046,"t":"code","b":[72],"m":"pha"},{"a":42047,"t":"code","b":[138],"m":"txa"},{"a":42048,"t":"code","b":[72],"m":"pha"},{"a":42049,"t":"code","b":[24],"m":"clc"},{"a":42050,"t":"code","b":[160,41],"m":"ldy","o":"#$29"},{"a":42052,"t":"code","b":[162,252],"m":"ldx","o":"#$FC"},{"a":42054,"l":"b_A446","t":"code","b":[152],"m":"tya","x":[42062]},{"a":42055,"t":"code","b":[180,42],"m":"ldy","oa":42,"o":"zpf_2A,x"},{"a":42057,"t":"code","b":[117,42],"m":"adc","oa":42,"o":"zpf_2A,x"},{"a":42059,"t":"code","b":[149,42],"m":"sta","oa":42,"o":"zpf_2A,x"},{"a":42061,"t":"code","b":[232],"m":"inx"},{"a":42062,"t":"code","b":[208,246],"m":"bne","oa":42054,"o":"b_A446"},{"a":42064,"t":"code","b":[104],"m":"pla"},{"a":42065,"t":"code","b":[170],"m":"tax"},{"a":42066,"t":"code","b":[104],"m":"pla"},{"a":42067,"t":"code","b":[168],"m":"tay"},{"a":42068,"t":"code","b":[165,38],"m":"lda","oa":38,"o":"zpa_26"},{"a":42070,"t":"code","b":[96],"m":"rts"},{"a":42071,"l":"hidden_potion_roll","c":"At the start of a level from file 8 on: a random 0-15 into hidden_kind; below 6, the level gets a hidden potion of that kind and \"FIND THE HIDDEN POTION\" is printed. The placing routine skips kind 4, which keeps the message.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[39445,39476]},{"a":42073,"t":"code","b":[141,58,164],"m":"sta","oa":42042,"o":"hidden_kind"},{"a":42076,"t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file"},{"a":42079,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":42081,"t":"code","b":[144,22],"m":"bcc","oa":42105,"o":"hidden_potion_end"},{"a":42083,"t":"code","b":[32,61,164],"m":"jsr","oa":42045,"o":"random"},{"a":42086,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":42088,"t":"code","b":[141,58,164],"m":"sta","oa":42042,"o":"hidden_kind"},{"a":42091,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":42093,"t":"code","b":[176,10],"m":"bcs","oa":42105,"o":"hidden_potion_end"},{"a":42095,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":42097,"t":"code","b":[32,243,175],"m":"jsr","oa":45043,"o":"text_row"},{"a":42100,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":42103,"l":"arg_A477","c":"The address of the string the call before prints (print_centred's argument): str_hidden_potion at $A47A, \"FIND THE HIDDEN POTION\".","t":"addr","b":[122,164],"oa":42106,"o":"str_hidden_potion"},{"a":42105,"l":"hidden_potion_end","c":"hidden_potion_roll's return.","t":"code","b":[96],"m":"rts","x":[42081,42093]},{"a":42106,"l":"str_hidden_potion","c":"\"FIND THE HIDDEN POTION\", length $16, colour 1.","t":"byte","b":[22,1,70,73,78,68,32,84],"x":[42103]},{"a":42114,"t":"byte","b":[72,69,32,72,73,68,68,69]},{"a":42122,"t":"byte","b":[78,32,80,79,84,73,79,78]},{"a":42130,"l":"game_over_check","c":"Raises $B65F and runs $B9D0; when no player is in the game and both leave timers have run out, drops the main loop's return address and goes back to the start-up's wait for players (j_8091): the game is over.","t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty","x":[33154,33262]},{"a":42133,"t":"code","b":[32,208,185],"m":"jsr","oa":47568,"o":"panel_update"},{"a":42136,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":42139,"t":"code","b":[13,33,145],"m":"ora","oa":37153,"o":"player2_state"},{"a":42142,"t":"code","b":[13,30,145],"m":"ora","oa":37150,"o":"exit_wait_p1"},{"a":42145,"t":"code","b":[13,31,145],"m":"ora","oa":37151,"o":"exit_wait_p2"},{"a":42148,"t":"code","b":[240,1],"m":"beq","oa":42151,"o":"b_A4A7"},{"a":42150,"t":"code","b":[96],"m":"rts"},{"a":42151,"l":"b_A4A7","t":"code","b":[104],"m":"pla","x":[42148]},{"a":42152,"t":"code","b":[104],"m":"pla"},{"a":42153,"t":"code","b":[76,145,128],"m":"jmp","oa":32913,"o":"game_start"},{"a":42156,"l":"game_reset","c":"Clears what a new game starts without: the border, both players' $B663-$B666 and $B66D/$B66E, the four shot slots, both players' states, the counters $B929-$B930 and $B65A, and the players' position bytes ($9100-$9107); sets $B65B to $1E, $B931/$B932 to $20 and both freeze masks ($B66B/$B66C) to $0F.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[32851]},{"a":42158,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":42161,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"zpa_02"},{"a":42163,"t":"code","b":[141,99,182],"m":"sta","oa":46691,"o":"keys_held"},{"a":42166,"t":"code","b":[141,100,182],"m":"sta","oa":46692,"o":"keys_held_p2"},{"a":42169,"t":"code","b":[141,101,182],"m":"sta","oa":46693,"o":"potions_held"},{"a":42172,"t":"code","b":[141,102,182],"m":"sta","oa":46694,"o":"potions_held_p2"},{"a":42175,"t":"code","b":[141,109,182],"m":"sta","oa":46701,"o":"facing_hold"},{"a":42178,"t":"code","b":[141,110,182],"m":"sta","oa":46702,"o":"facing_hold_p2"},{"a":42181,"t":"code","b":[141,84,168],"m":"sta","oa":43092,"o":"shot_type"},{"a":42184,"t":"code","b":[141,85,168],"m":"sta","oa":43093,"o":"shot_type_1"},{"a":42187,"t":"code","b":[141,86,168],"m":"sta","oa":43094,"o":"shot_type_2"},{"a":42190,"t":"code","b":[141,87,168],"m":"sta","oa":43095,"o":"shot_type_3"},{"a":42193,"t":"code","b":[141,32,145],"m":"sta","oa":37152,"o":"player_state"},{"a":42196,"t":"code","b":[141,33,145],"m":"sta","oa":37153,"o":"player2_state"},{"a":42199,"t":"code","b":[141,47,185],"m":"sta","oa":47407,"o":"health_lo"},{"a":42202,"t":"code","b":[141,48,185],"m":"sta","oa":47408,"o":"health_lo_p2"},{"a":42205,"t":"code","b":[141,41,185],"m":"sta","oa":47401,"o":"score_lo"},{"a":42208,"t":"code","b":[141,42,185],"m":"sta","oa":47402,"o":"score_lo_p2"},{"a":42211,"t":"code","b":[141,43,185],"m":"sta","oa":47403,"o":"score_mid"},{"a":42214,"t":"code","b":[141,44,185],"m":"sta","oa":47404,"o":"score_mid_p2"},{"a":42217,"t":"code","b":[141,45,185],"m":"sta","oa":47405,"o":"score_hi"},{"a":42220,"t":"code","b":[141,46,185],"m":"sta","oa":47406,"o":"score_hi_p2"},{"a":42223,"t":"code","b":[141,90,182],"m":"sta","oa":46682,"o":"idle_stage"},{"a":42226,"t":"code","b":[141,4,145],"m":"sta","oa":37124,"o":"player_world_x"},{"a":42229,"t":"code","b":[141,5,145],"m":"sta","oa":37125,"o":"player2_world_x"},{"a":42232,"t":"code","b":[173,6,145],"m":"lda","oa":37126,"o":"player_world_y"},{"a":42235,"t":"code","b":[141,7,145],"m":"sta","oa":37127,"o":"player2_world_y"},{"a":42238,"t":"code","b":[141,0,145],"m":"sta","oa":37120,"o":"player_screen_x"},{"a":42241,"t":"code","b":[141,1,145],"m":"sta","oa":37121,"o":"player2_screen_x"},{"a":42244,"t":"code","b":[141,2,145],"m":"sta","oa":37122,"o":"player_screen_y"},{"a":42247,"t":"code","b":[141,3,145],"m":"sta","oa":37123,"o":"player2_screen_y"},{"a":42250,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":42252,"t":"code","b":[141,91,182],"m":"sta","oa":46683,"o":"idle_count"},{"a":42255,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":42257,"t":"code","b":[141,49,185],"m":"sta","oa":47409,"o":"health_hi"},{"a":42260,"t":"code","b":[141,50,185],"m":"sta","oa":47410,"o":"health_hi_p2"},{"a":42263,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":42265,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":42268,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":42271,"t":"code","b":[96],"m":"rts"},{"a":42272,"l":"wait_first_player","c":"The start of a game: draws the empty panels and their colours, then waits until a fire button is pressed (stick_p1/stick_p2), seeds the random generator from the raster line, puts that player in the game at the start tile (player_join), sets its powers (player_powers_reset) and marks its cells.","t":"code","b":[32,162,132],"m":"jsr","oa":33954,"o":"panel_press_fire_draw","x":[32924]},{"a":42275,"t":"code","b":[32,215,132],"m":"jsr","oa":34007,"o":"panel_colours"},{"a":42278,"l":"j_A526","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[42290]},{"a":42280,"l":"b_A528","t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x","x":[42288]},{"a":42283,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":42285,"t":"code","b":[240,6],"m":"beq","oa":42293,"o":"b_A535"},{"a":42287,"t":"code","b":[202],"m":"dex"},{"a":42288,"t":"code","b":[16,246],"m":"bpl","oa":42280,"o":"b_A528"},{"a":42290,"t":"code","b":[76,38,165],"m":"jmp","oa":42278,"o":"j_A526"},{"a":42293,"l":"b_A535","t":"code","b":[173,18,208],"m":"lda","o":"vic_raster","x":[42285]},{"a":42296,"t":"code","b":[133,38],"m":"sta","oa":38,"o":"zpa_26"},{"a":42298,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":42300,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":42303,"t":"code","b":[138],"m":"txa"},{"a":42304,"t":"code","b":[157,34,145],"m":"sta","oa":37154,"o":"player_other,x"},{"a":42307,"t":"code","b":[173,15,145],"m":"lda","oa":37135,"o":"start_x"},{"a":42310,"t":"code","b":[10],"m":"asl","o":"a"},{"a":42311,"t":"code","b":[10],"m":"asl","o":"a"},{"a":42312,"t":"code","b":[10],"m":"asl","o":"a"},{"a":42313,"t":"code","b":[157,4,145],"m":"sta","oa":37124,"o":"player_world_x,x"},{"a":42316,"t":"code","b":[56],"m":"sec"},{"a":42317,"t":"code","b":[237,102,130],"m":"sbc","oa":33382,"o":"scroll_x_units"},{"a":42320,"t":"code","b":[157,0,145],"m":"sta","oa":37120,"o":"player_screen_x,x"},{"a":42323,"t":"code","b":[173,16,145],"m":"lda","oa":37136,"o":"start_y"},{"a":42326,"t":"code","b":[10],"m":"asl","o":"a"},{"a":42327,"t":"code","b":[10],"m":"asl","o":"a"},{"a":42328,"t":"code","b":[10],"m":"asl","o":"a"},{"a":42329,"t":"code","b":[157,6,145],"m":"sta","oa":37126,"o":"player_world_y,x"},{"a":42332,"t":"code","b":[56],"m":"sec"},{"a":42333,"t":"code","b":[237,103,130],"m":"sbc","oa":33383,"o":"scroll_y_units"},{"a":42336,"t":"code","b":[157,2,145],"m":"sta","oa":37122,"o":"player_screen_y,x"},{"a":42339,"t":"code","b":[32,18,160],"m":"jsr","oa":40978,"o":"player_powers_reset"},{"a":42342,"t":"code","b":[32,41,166],"m":"jsr","oa":42537,"o":"player_mark"},{"a":42345,"t":"code","b":[96],"m":"rts"},{"a":42346,"l":"players_join","c":"During play, a player not in the game who presses fire joins (join_beside), as long as somebody is playing.","t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state","x":[33102,33227]},{"a":42349,"t":"code","b":[13,33,145],"m":"ora","oa":37153,"o":"player2_state"},{"a":42352,"t":"code","b":[240,17],"m":"beq","oa":42371,"o":"r_A583"},{"a":42354,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":42356,"l":"b_A574","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[42369]},{"a":42359,"t":"code","b":[208,7],"m":"bne","oa":42368,"o":"b_A580"},{"a":42361,"t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x"},{"a":42364,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":42366,"t":"code","b":[240,4],"m":"beq","oa":42372,"o":"join_beside"},{"a":42368,"l":"b_A580","t":"code","b":[202],"m":"dex","x":[42359]},{"a":42369,"t":"code","b":[16,241],"m":"bpl","oa":42356,"o":"b_A574"},{"a":42371,"l":"r_A583","t":"code","b":[96],"m":"rts","x":[42352]},{"a":42372,"l":"join_beside","c":"Puts player X in beside the other player: tries the four places next to it (join_spot); with none free, plays sound $0D and leaves; otherwise places X there, links the two (player_other), marks its cells, redraws the panel and clears both freeze masks.","t":"code","b":[169,15],"m":"lda","o":"#$0F","x":[38369,42366]},{"a":42374,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":42377,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":42380,"t":"code","b":[32,220,165],"m":"jsr","oa":42460,"o":"join_spot"},{"a":42383,"t":"code","b":[144,13],"m":"bcc","oa":42398,"o":"b_A59E"},{"a":42385,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42387,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":42390,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":42393,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":42395,"t":"code","b":[76,219,205],"m":"jmp","oa":52699,"o":"sfx_start"},{"a":42398,"l":"b_A59E","t":"code","b":[173,154,178],"m":"lda","oa":45722,"o":"tile_cur_x","x":[42383]},{"a":42401,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":42403,"t":"code","b":[157,4,145],"m":"sta","oa":37124,"o":"player_world_x,x"},{"a":42406,"t":"code","b":[56],"m":"sec"},{"a":42407,"t":"code","b":[237,102,130],"m":"sbc","oa":33382,"o":"scroll_x_units"},{"a":42410,"t":"code","b":[157,0,145],"m":"sta","oa":37120,"o":"player_screen_x,x"},{"a":42413,"t":"code","b":[173,155,178],"m":"lda","oa":45723,"o":"tile_cur_y"},{"a":42416,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":42418,"t":"code","b":[157,6,145],"m":"sta","oa":37126,"o":"player_world_y,x"},{"a":42421,"t":"code","b":[56],"m":"sec"},{"a":42422,"t":"code","b":[237,103,130],"m":"sbc","oa":33383,"o":"scroll_y_units"},{"a":42425,"t":"code","b":[157,2,145],"m":"sta","oa":37122,"o":"player_screen_y,x"},{"a":42428,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":42430,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":42433,"t":"code","b":[138],"m":"txa"},{"a":42434,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":42436,"t":"code","b":[157,34,145],"m":"sta","oa":37154,"o":"player_other,x"},{"a":42439,"t":"code","b":[168],"m":"tay"},{"a":42440,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":42442,"t":"code","b":[153,34,145],"m":"sta","oa":37154,"o":"player_other,y"},{"a":42445,"t":"code","b":[32,41,166],"m":"jsr","oa":42537,"o":"player_mark"},{"a":42448,"t":"code","b":[32,49,132],"m":"jsr","oa":33841,"o":"panel_draw_players"},{"a":42451,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42453,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":42456,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":42459,"t":"code","b":[96],"m":"rts"},{"a":42460,"l":"join_spot","c":"Tries the four places next to the other player, above, left, below and right (join_offsets, y = 3 down to 0): carry clear for the first free one, its position in $B29A/$B29B.","t":"code","b":[138],"m":"txa","x":[42380]},{"a":42461,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":42463,"t":"code","b":[170],"m":"tax"},{"a":42464,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":42466,"l":"b_A5E2","t":"code","b":[140,74,130],"m":"sty","oa":33354,"o":"monster_cur","x":[42478]},{"a":42469,"t":"code","b":[32,246,165],"m":"jsr","oa":42486,"o":"join_test"},{"a":42472,"t":"code","b":[144,7],"m":"bcc","oa":42481,"o":"b_A5F1"},{"a":42474,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":42477,"t":"code","b":[136],"m":"dey"},{"a":42478,"t":"code","b":[16,242],"m":"bpl","oa":42466,"o":"b_A5E2"},{"a":42480,"t":"code","b":[56],"m":"sec"},{"a":42481,"l":"b_A5F1","t":"code","b":[138],"m":"txa","x":[42472]},{"a":42482,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":42484,"t":"code","b":[170],"m":"tax"},{"a":42485,"t":"code","b":[96],"m":"rts"},{"a":42486,"l":"join_test","c":"Looks at the tile grid beside the other player in direction Y; carry clear when that tile is 0.","t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x","x":[42469]},{"a":42489,"t":"code","b":[24],"m":"clc"},{"a":42490,"t":"code","b":[121,37,166],"m":"adc","oa":42533,"o":"join_offsets_x,y"},{"a":42493,"t":"code","b":[141,154,178],"m":"sta","oa":45722,"o":"tile_cur_x"},{"a":42496,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42497,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42498,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42499,"t":"code","b":[72],"m":"pha"},{"a":42500,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":42503,"t":"code","b":[24],"m":"clc"},{"a":42504,"t":"code","b":[121,36,166],"m":"adc","oa":42532,"o":"join_offsets,y"},{"a":42507,"t":"code","b":[141,155,178],"m":"sta","oa":45723,"o":"tile_cur_y"},{"a":42510,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42511,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42512,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":42513,"t":"code","b":[168],"m":"tay"},{"a":42514,"t":"code","b":[104],"m":"pla"},{"a":42515,"t":"code","b":[25,112,142],"m":"ora","oa":36464,"o":"map_row_lo,y"},{"a":42518,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":42520,"t":"code","b":[185,144,142],"m":"lda","oa":36496,"o":"map_row_hi,y"},{"a":42523,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":42525,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":42527,"t":"code","b":[177,142],"m":"lda","oa":142,"o":"(zpa_8E),y"},{"a":42529,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":42531,"t":"code","b":[96],"m":"rts"},{"a":42532,"l":"join_offsets","c":"Five bytes read as overlapping pairs, Y offset from $A624,y and X from $A625,y: y = 3 above ($F8, 0), 2 left (0, $F8), 1 below (8, 0), 0 right (0, 8).","t":"byte","b":[0],"x":[42504]},{"a":42533,"l":"join_offsets_x","c":"join_offsets read as X offsets.","t":"byte","b":[8,0,248,0],"x":[42490]},{"a":42537,"l":"player_mark","c":"Marks player X's four character cells occupied.","t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x","x":[42342,42445]},{"a":42540,"t":"code","b":[141,8,145],"m":"sta","oa":37128,"o":"probe_x"},{"a":42543,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":42546,"t":"code","b":[141,9,145],"m":"sta","oa":37129,"o":"probe_y"},{"a":42549,"t":"code","b":[32,245,150],"m":"jsr","oa":38645,"o":"cell_addr"},{"a":42552,"t":"code","b":[32,154,151],"m":"jsr","oa":38810,"o":"cell_mark"},{"a":42555,"t":"code","b":[96],"m":"rts"},{"a":42556,"l":"leave_timers","c":"For each player not in the game with its leave timer running: raises $B65F, zeroes the panel's health ($B92F, $B931) and puts glyph $10 over its digits; when the timer runs out, resets the player's counters, health $B931 to $20 and powers, and puts \"PRESS FIRE\" in its panel.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[33111,33230]},{"a":42558,"l":"b_A63E","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[42640]},{"a":42561,"t":"code","b":[208,76],"m":"bne","oa":42639,"o":"b_A68F"},{"a":42563,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":42566,"t":"code","b":[189,30,145],"m":"lda","oa":37150,"o":"exit_wait_p1,x"},{"a":42569,"t":"code","b":[240,68],"m":"beq","oa":42639,"o":"b_A68F"},{"a":42571,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42573,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":42576,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":42579,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":42581,"t":"code","b":[188,45,131],"m":"ldy","oa":33581,"o":"panel_misc,x"},{"a":42584,"t":"code","b":[153,126,67],"m":"sta","oa":17278,"o":"f_437E,y"},{"a":42587,"t":"code","b":[153,127,67],"m":"sta","oa":17279,"o":"f_437F,y"},{"a":42590,"t":"code","b":[153,128,67],"m":"sta","oa":17280,"o":"f_4380,y"},{"a":42593,"t":"code","b":[153,129,67],"m":"sta","oa":17281,"o":"f_4381,y"},{"a":42596,"t":"code","b":[222,30,145],"m":"dec","oa":37150,"o":"exit_wait_p1,x"},{"a":42599,"t":"code","b":[208,38],"m":"bne","oa":42639,"o":"b_A68F"},{"a":42601,"t":"code","b":[138],"m":"txa"},{"a":42602,"t":"code","b":[72],"m":"pha"},{"a":42603,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42605,"t":"code","b":[157,12,196],"m":"sta","oa":50188,"o":"dead_p1,x"},{"a":42608,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":42611,"t":"code","b":[157,41,185],"m":"sta","oa":47401,"o":"score_lo,x"},{"a":42614,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":42617,"t":"code","b":[157,45,185],"m":"sta","oa":47405,"o":"score_hi,x"},{"a":42620,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":42622,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":42625,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":42628,"t":"code","b":[32,18,160],"m":"jsr","oa":40978,"o":"player_powers_reset"},{"a":42631,"t":"code","b":[32,162,132],"m":"jsr","oa":33954,"o":"panel_press_fire_draw"},{"a":42634,"t":"code","b":[32,215,132],"m":"jsr","oa":34007,"o":"panel_colours"},{"a":42637,"t":"code","b":[104],"m":"pla"},{"a":42638,"t":"code","b":[170],"m":"tax"},{"a":42639,"l":"b_A68F","t":"code","b":[202],"m":"dex","x":[42561,42569,42599]},{"a":42640,"t":"code","b":[16,172],"m":"bpl","oa":42558,"o":"b_A63E"},{"a":42642,"t":"code","b":[96],"m":"rts"},{"a":42643,"l":"unused_side2","c":"Code and text no traced code reaches: prints \"INSERT SIDE 2 OF DISK\", \"THEN PRESS SPACE BAR\", \"TO CONTINUE GAME\", clears bit 5 of $01 (the cassette motor line), waits for $DC01 bit 4 to be pressed and released, sets the bit again and redraws. A leftover of a two-sided release; the strings are at $A6CE, $A6E5 and $A6FB.","t":"byte","b":[162,0,32,243,175,32,8,176]},{"a":42651,"l":"arg_A69B","c":"The address of the string the call before prints (print_centred's argument): unused_side2 + 59 at $A6CE, \"INSERT SIDE 2 OF DISK\".","t":"addr","b":[206,166],"oa":42702,"o":"str_insert_side2"},{"a":42653,"c":"jsr text_next_row ($B070), then jsr print_centred ($B008) with the second string's address after it (arg_A6A3).","t":"byte","b":[32,112,176,32,8,176]},{"a":42659,"l":"arg_A6A3","c":"The address of the string the call before prints (print_centred's argument): unused_side2 + 82 at $A6E5, \"THEN PRESS SPACE BAR\".","t":"addr","b":[229,166],"oa":42725,"o":"str_press_space"},{"a":42661,"c":"jsr text_next_row, then jsr print_centred with the third string's address after it (arg_A6AB).","t":"byte","b":[32,112,176,32,8,176]},{"a":42667,"l":"arg_A6AB","c":"The address of the string the call before prints (print_centred's argument): unused_side2 + 104 at $A6FB, \"TO CONTINUE GAME\".","t":"addr","b":[251,166],"oa":42747,"o":"str_to_continue"},{"a":42669,"l":"unused_side2_wait","c":"The rest of unused_side2's code: clears bit 5 of $01, waits for $DC01 bit 4 to be pressed and released, sets the bit again, clears the screen and waits; no traced code reaches it.","t":"byte","b":[165,1,41,223,133,1,173,1]},{"a":42677,"t":"byte","b":[220,41,16,208,249,173,1,220]},{"a":42685,"t":"byte","b":[41,16,240,249,165,1,9,32]},{"a":42693,"t":"byte","b":[133,1,32,101,175,32,69,175]},{"a":42701,"t":"byte","b":[96]},{"a":42702,"l":"str_insert_side2","c":"\"INSERT SIDE 2 OF DISK\".","t":"byte","b":[21,1,73,78,83,69,82,84],"x":[42651]},{"a":42710,"t":"byte","b":[32,83,73,68,69,32,50,32]},{"a":42718,"t":"byte","b":[79,70,32,68,73,83,75]},{"a":42725,"l":"str_press_space","c":"\"THEN PRESS SPACE BAR\".","t":"byte","b":[20,1,84,72,69,78,32,80],"x":[42659]},{"a":42733,"t":"byte","b":[82,69,83,83,32,83,80,65]},{"a":42741,"t":"byte","b":[67,69,32,66,65,82]},{"a":42747,"l":"str_to_continue","c":"\"TO CONTINUE GAME\".","t":"byte","b":[16,1,84,79,32,67,79,78],"x":[42667]},{"a":42755,"t":"byte","b":[84,73,78,85,69,32,71,65]},{"a":42763,"t":"byte","b":[77,69]},{"a":42765,"l":"shots_fire","c":"Fires the players' shots: shot slots 3 and 2 (player two's and player one's) through shot_fire.","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[33070,33177]},{"a":42767,"t":"code","b":[32,24,167],"m":"jsr","oa":42776,"o":"shot_fire"},{"a":42770,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":42772,"t":"code","b":[32,24,167],"m":"jsr","oa":42776,"o":"shot_fire"},{"a":42775,"t":"code","b":[96],"m":"rts"},{"a":42776,"l":"shot_fire","c":"Fires shot slot X (2 or 3, the player X - 2) when the slot is free, the player is in the game with a state below 4, and its fire bit is pressed (stick_p1/p2 below $10): the shot's direction is the stick's facing, or the walking step when the stick is centred, its sprite shape the direction plus the hero's base ($A878,x), its position the player's; the slot is set to the hero's shot type + 1 ($911A,x + 1), the sprite placed (shot_sprite), sound 4 started, and $B65B reloaded from $B65C.","t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x","x":[42767,42772]},{"a":42779,"t":"code","b":[208,74],"m":"bne","oa":42855,"o":"r_A767"},{"a":42781,"t":"code","b":[189,30,145],"m":"lda","oa":37150,"o":"exit_wait_p1,x"},{"a":42784,"t":"code","b":[240,69],"m":"beq","oa":42855,"o":"r_A767"},{"a":42786,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":42788,"t":"code","b":[176,65],"m":"bcs","oa":42855,"o":"r_A767"},{"a":42790,"t":"code","b":[189,174,142],"m":"lda","oa":36526,"o":"stick_index_base,x"},{"a":42793,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":42795,"t":"code","b":[176,58],"m":"bcs","oa":42855,"o":"r_A767"},{"a":42797,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":42799,"t":"code","b":[168],"m":"tay"},{"a":42800,"t":"code","b":[185,46,145],"m":"lda","oa":37166,"o":"facing_of_dir,y"},{"a":42803,"t":"code","b":[16,3],"m":"bpl","oa":42808,"o":"b_A738"},{"a":42805,"t":"code","b":[189,36,145],"m":"lda","oa":37156,"o":"player_anim,x"},{"a":42808,"l":"b_A738","t":"code","b":[157,88,168],"m":"sta","oa":43096,"o":"shot_dir,x","x":[42803]},{"a":42811,"t":"code","b":[168],"m":"tay"},{"a":42812,"t":"code","b":[29,120,168],"m":"ora","oa":43128,"o":"shot_shapes,x"},{"a":42815,"t":"code","b":[157,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs,x"},{"a":42818,"t":"code","b":[189,2,145],"m":"lda","oa":37122,"o":"player_screen_y,x"},{"a":42821,"t":"code","b":[157,92,168],"m":"sta","oa":43100,"o":"shot_x,x"},{"a":42824,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":42827,"t":"code","b":[157,96,168],"m":"sta","oa":43104,"o":"shot_y,x"},{"a":42830,"t":"code","b":[188,26,145],"m":"ldy","oa":37146,"o":"hero_index_base,x"},{"a":42833,"t":"code","b":[200],"m":"iny"},{"a":42834,"t":"code","b":[152],"m":"tya"},{"a":42835,"t":"code","b":[157,84,168],"m":"sta","oa":43092,"o":"shot_type,x"},{"a":42838,"t":"code","b":[32,27,168],"m":"jsr","oa":43035,"o":"shot_sprite"},{"a":42841,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":42843,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":42846,"t":"code","b":[172,90,182],"m":"ldy","oa":46682,"o":"idle_stage"},{"a":42849,"t":"code","b":[185,92,182],"m":"lda","oa":46684,"o":"idle_reload,y"},{"a":42852,"t":"code","b":[141,91,182],"m":"sta","oa":46683,"o":"idle_count"},{"a":42855,"l":"r_A767","t":"code","b":[96],"m":"rts","x":[42779,42784,42788,42795]},{"a":42856,"l":"shots_move","c":"Moves the four shot slots each frame: a slot holding 6 goes to $A7BF; others step along their direction (X by $BE80,y at $A7A1, Y by $BE70,y at $A7AB, the index raised by shot_speed $ACC2,x for a fast shot), with the shape turning every fourth frame for type 1, and their sprite is placed again; a slot with bit 7 set goes to $A92E.","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[34387]},{"a":42858,"l":"b_A76A","t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x","x":[42933,42940]},{"a":42861,"t":"code","b":[48,73],"m":"bmi","oa":42936,"o":"b_A7B8"},{"a":42863,"t":"code","b":[240,67],"m":"beq","oa":42932,"o":"b_A7B4"},{"a":42865,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":42867,"t":"code","b":[208,6],"m":"bne","oa":42875,"o":"b_A77B"},{"a":42869,"t":"code","b":[32,191,167],"m":"jsr","oa":42943,"o":"rock_fly"},{"a":42872,"t":"code","b":[76,180,167],"m":"jmp","oa":42932,"o":"b_A7B4"},{"a":42875,"l":"b_A77B","t":"code","b":[188,88,168],"m":"ldy","oa":43096,"o":"shot_dir,x","x":[42867]},{"a":42878,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":42880,"t":"code","b":[208,22],"m":"bne","oa":42904,"o":"b_A798"},{"a":42882,"t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count"},{"a":42885,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":42887,"t":"code","b":[208,15],"m":"bne","oa":42904,"o":"b_A798"},{"a":42889,"t":"code","b":[189,86,145],"m":"lda","oa":37206,"o":"sprite_ptrs,x"},{"a":42892,"t":"code","b":[24],"m":"clc"},{"a":42893,"t":"code","b":[121,124,168],"m":"adc","oa":43132,"o":"axe_spin,y"},{"a":42896,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":42898,"t":"code","b":[29,120,168],"m":"ora","oa":43128,"o":"shot_shapes,x"},{"a":42901,"t":"code","b":[157,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs,x"},{"a":42904,"l":"b_A798","t":"code","b":[152],"m":"tya","x":[42880,42887]},{"a":42905,"t":"code","b":[29,194,172],"m":"ora","oa":44226,"o":"shot_speed,x"},{"a":42908,"t":"code","b":[168],"m":"tay"},{"a":42909,"t":"code","b":[189,92,168],"m":"lda","oa":43100,"o":"shot_x,x"},{"a":42912,"t":"code","b":[24],"m":"clc"},{"a":42913,"t":"code","b":[121,128,190],"m":"adc","oa":48768,"o":"mon_dx,y"},{"a":42916,"t":"code","b":[157,92,168],"m":"sta","oa":43100,"o":"shot_x,x"},{"a":42919,"t":"code","b":[189,96,168],"m":"lda","oa":43104,"o":"shot_y,x"},{"a":42922,"t":"code","b":[24],"m":"clc"},{"a":42923,"t":"code","b":[121,112,190],"m":"adc","oa":48752,"o":"mon_dy,y"},{"a":42926,"t":"code","b":[157,96,168],"m":"sta","oa":43104,"o":"shot_y,x"},{"a":42929,"t":"code","b":[32,27,168],"m":"jsr","oa":43035,"o":"shot_sprite"},{"a":42932,"l":"b_A7B4","t":"code","b":[202],"m":"dex","x":[42863,42872]},{"a":42933,"t":"code","b":[16,179],"m":"bpl","oa":42858,"o":"b_A76A"},{"a":42935,"t":"code","b":[96],"m":"rts"},{"a":42936,"l":"b_A7B8","t":"code","b":[32,46,169],"m":"jsr","oa":43310,"o":"shot_clear","x":[42861]},{"a":42939,"t":"code","b":[202],"m":"dex"},{"a":42940,"t":"code","b":[16,172],"m":"bpl","oa":42858,"o":"b_A76A"},{"a":42942,"t":"code","b":[96],"m":"rts"},{"a":42943,"l":"rock_fly","c":"Moves a lobbed rock (shot type 6) every fourth frame: steps its position by its per-step offsets ($ABEB, $ABED), counts its steps down ($ABE7) and ends it at zero (shot_clear); in the first half of the flight it rises (Y up two units a step, its shape stepping towards $AF), in the second it falls (Y down two units, the shape $AD-$AF by height).","t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count","x":[42869]},{"a":42946,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":42948,"t":"code","b":[208,31],"m":"bne","oa":42981,"o":"r_A7E5"},{"a":42950,"t":"code","b":[189,92,168],"m":"lda","oa":43100,"o":"shot_x,x"},{"a":42953,"t":"code","b":[56],"m":"sec"},{"a":42954,"t":"code","b":[253,235,171],"m":"sbc","oa":44011,"o":"rock_step_x,x"},{"a":42957,"t":"code","b":[157,92,168],"m":"sta","oa":43100,"o":"shot_x,x"},{"a":42960,"t":"code","b":[189,96,168],"m":"lda","oa":43104,"o":"shot_y,x"},{"a":42963,"t":"code","b":[56],"m":"sec"},{"a":42964,"t":"code","b":[253,237,171],"m":"sbc","oa":44013,"o":"rock_step_y,x"},{"a":42967,"t":"code","b":[157,96,168],"m":"sta","oa":43104,"o":"shot_y,x"},{"a":42970,"t":"code","b":[32,27,168],"m":"jsr","oa":43035,"o":"shot_sprite"},{"a":42973,"t":"code","b":[222,231,171],"m":"dec","oa":44007,"o":"rock_steps,x"},{"a":42976,"t":"code","b":[208,4],"m":"bne","oa":42982,"o":"b_A7E6"},{"a":42978,"t":"code","b":[32,46,169],"m":"jsr","oa":43310,"o":"shot_clear"},{"a":42981,"l":"r_A7E5","t":"code","b":[96],"m":"rts","x":[42948]},{"a":42982,"l":"b_A7E6","t":"code","b":[189,231,171],"m":"lda","oa":44007,"o":"rock_steps,x","x":[42976]},{"a":42985,"t":"code","b":[221,233,171],"m":"cmp","oa":44009,"o":"rock_half,x"},{"a":42988,"t":"code","b":[144,24],"m":"bcc","oa":43014,"o":"b_A806"},{"a":42990,"t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count"},{"a":42993,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":42995,"t":"code","b":[208,10],"m":"bne","oa":43007,"o":"b_A7FF"},{"a":42997,"t":"code","b":[189,86,145],"m":"lda","oa":37206,"o":"sprite_ptrs,x"},{"a":43000,"t":"code","b":[201,175],"m":"cmp","o":"#$AF"},{"a":43002,"t":"code","b":[240,3],"m":"beq","oa":43007,"o":"b_A7FF"},{"a":43004,"t":"code","b":[254,86,145],"m":"inc","oa":37206,"o":"sprite_ptrs,x"},{"a":43007,"l":"b_A7FF","t":"code","b":[222,96,168],"m":"dec","oa":43104,"o":"shot_y,x","x":[42995,43002]},{"a":43010,"t":"code","b":[222,96,168],"m":"dec","oa":43104,"o":"shot_y,x"},{"a":43013,"t":"code","b":[96],"m":"rts"},{"a":43014,"l":"b_A806","t":"code","b":[189,231,171],"m":"lda","oa":44007,"o":"rock_steps,x","x":[42988]},{"a":43017,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":43019,"t":"code","b":[176,7],"m":"bcs","oa":43028,"o":"b_A814"},{"a":43021,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43022,"t":"code","b":[24],"m":"clc"},{"a":43023,"t":"code","b":[105,173],"m":"adc","o":"#$AD"},{"a":43025,"t":"code","b":[157,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs,x"},{"a":43028,"l":"b_A814","t":"code","b":[254,96,168],"m":"inc","oa":43104,"o":"shot_y,x","x":[43019]},{"a":43031,"t":"code","b":[254,96,168],"m":"inc","oa":43104,"o":"shot_y,x"},{"a":43034,"t":"code","b":[96],"m":"rts"},{"a":43035,"l":"shot_sprite","c":"Places shot slot X's sprite from its maze position: X on screen = (shot X - scroll) x 2 + $38 with the high bit, Y = (shot Y - scroll) x 2 + $37. A shot off the left of the screen or below row $50 is ended instead.","t":"code","b":[189,92,168],"m":"lda","oa":43100,"o":"shot_x,x","x":[42838,42929,42970]},{"a":43038,"t":"code","b":[56],"m":"sec"},{"a":43039,"t":"code","b":[237,102,130],"m":"sbc","oa":33382,"o":"scroll_x_units"},{"a":43042,"t":"code","b":[48,33],"m":"bmi","oa":43077,"o":"b_A845"},{"a":43044,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43045,"t":"code","b":[24],"m":"clc"},{"a":43046,"t":"code","b":[105,56],"m":"adc","o":"#$38"},{"a":43048,"t":"code","b":[157,62,145],"m":"sta","oa":37182,"o":"sprite_x,x"},{"a":43051,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":43053,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":43055,"t":"code","b":[157,74,145],"m":"sta","oa":37194,"o":"sprite_x_high,x"},{"a":43058,"t":"code","b":[189,96,168],"m":"lda","oa":43104,"o":"shot_y,x"},{"a":43061,"t":"code","b":[56],"m":"sec"},{"a":43062,"t":"code","b":[237,103,130],"m":"sbc","oa":33383,"o":"scroll_y_units"},{"a":43065,"t":"code","b":[201,80],"m":"cmp","o":"#$50"},{"a":43067,"t":"code","b":[176,8],"m":"bcs","oa":43077,"o":"b_A845"},{"a":43069,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43070,"t":"code","b":[24],"m":"clc"},{"a":43071,"t":"code","b":[105,55],"m":"adc","o":"#$37"},{"a":43073,"t":"code","b":[157,68,145],"m":"sta","oa":37188,"o":"sprite_y,x"},{"a":43076,"t":"code","b":[96],"m":"rts"},{"a":43077,"l":"b_A845","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[43042,43067]},{"a":43079,"t":"code","b":[157,84,168],"m":"sta","oa":43092,"o":"shot_type,x"},{"a":43082,"t":"code","b":[157,62,145],"m":"sta","oa":37182,"o":"sprite_x,x"},{"a":43085,"t":"code","b":[157,74,145],"m":"sta","oa":37194,"o":"sprite_x_high,x"},{"a":43088,"t":"code","b":[157,68,145],"m":"sta","oa":37188,"o":"sprite_y,x"},{"a":43091,"t":"code","b":[96],"m":"rts"},{"a":43092,"l":"shot_type","c":"Each of the four shot slots' contents: 0 empty; 1-4 a player's shot (the hero + 1; slots 2 and 3); 5 a monster's fireball and 6 a lobbed rock (slots 0 and 1); bit 7 set ends it.","t":"byte","b":[0],"x":[42181,42776,42835,42858,43079,43142,43312,43362,43568,43574,43589,43692,43716,43853,43859,44098,44924]},{"a":43093,"l":"shot_type_1","c":"Shot slot 1's contents.","t":"byte","b":[0],"x":[42184,44927]},{"a":43094,"l":"shot_type_2","c":"Shot slot 2's contents (player one's shot).","t":"byte","b":[0],"x":[42187,44930]},{"a":43095,"l":"shot_type_3","c":"Shot slot 3's contents (player two's shot).","t":"byte","b":[0],"x":[42190,44933]},{"a":43096,"l":"shot_dir","c":"Each shot's direction (0-7).","t":"byte","b":[0,0,0,0],"x":[42808,42875,43614]},{"a":43100,"l":"shot_x","c":"Each shot's maze X.","t":"byte","b":[0,0,0,0],"x":[42821,42909,42916,42950,42957,43035,43161,43627,43665,43739]},{"a":43104,"l":"shot_y","c":"Each shot's maze Y.","t":"byte","b":[0,0,0,0],"x":[42827,42919,42926,42960,42967,43007,43010,43028,43031,43058,43151,43632,43658,43757]},{"a":43108,"l":"shot_owner","c":"For a monster's shot (slots 0 and 1), the monster's slot in the monster table; $A866/$A867 are $FF for the players' slots. Then sixteen bytes no traced code reads by name, a pattern of direction steps: 0 4 4 4 0 $FC $FC $FC $FC $FC 0 4 4 4 0 $FC.","t":"byte","b":[0,0,255,255,0,4,4,4],"x":[43357,43601,43677]},{"a":43116,"t":"byte","b":[0,252,252,252,252,252,0,4]},{"a":43124,"t":"byte","b":[4,4,0,252]},{"a":43128,"l":"shot_shapes","c":"The first sprite shape of each slot's shots: $B8, $B8 (monsters), $D8, $F8 (players: within each player's block of shapes).","t":"byte","b":[184,184,216,248],"x":[42812,42898]},{"a":43132,"l":"axe_spin","c":"How the Warrior's thrown axe turns every fourth frame, by direction: -1 or +1 to its shape.","t":"byte","b":[255,255,1,1,1,255,255,255],"x":[42893]},{"a":43140,"l":"shots_hit_tiles","c":"For each shot in flight (not a rock): works out its tile and its 4-unit cell ($A93D, $A941) and what the shot does to the tile there (shot_tile).","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[33073,33191]},{"a":43142,"l":"b_A886","t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x","x":[43191]},{"a":43145,"t":"code","b":[240,43],"m":"beq","oa":43190,"o":"b_A8B6"},{"a":43147,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":43149,"t":"code","b":[240,39],"m":"beq","oa":43190,"o":"b_A8B6"},{"a":43151,"t":"code","b":[189,96,168],"m":"lda","oa":43104,"o":"shot_y,x"},{"a":43154,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43155,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43156,"t":"code","b":[157,65,169],"m":"sta","oa":43329,"o":"shot_cell_y,x"},{"a":43159,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43160,"t":"code","b":[168],"m":"tay"},{"a":43161,"t":"code","b":[189,92,168],"m":"lda","oa":43100,"o":"shot_x,x"},{"a":43164,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43165,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43166,"t":"code","b":[157,61,169],"m":"sta","oa":43325,"o":"shot_cell_x,x"},{"a":43169,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43170,"t":"code","b":[24],"m":"clc"},{"a":43171,"t":"code","b":[121,112,142],"m":"adc","oa":36464,"o":"map_row_lo,y"},{"a":43174,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":43176,"t":"code","b":[185,144,142],"m":"lda","oa":36496,"o":"map_row_hi,y"},{"a":43179,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":43181,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":43183,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":43185,"t":"code","b":[177,140],"m":"lda","oa":140,"o":"(zpa_8C),y"},{"a":43187,"t":"code","b":[32,186,168],"m":"jsr","oa":43194,"o":"shot_tile"},{"a":43190,"l":"b_A8B6","t":"code","b":[202],"m":"dex","x":[43145,43149]},{"a":43191,"t":"code","b":[16,205],"m":"bpl","oa":43142,"o":"b_A886"},{"a":43193,"t":"code","b":[96],"m":"rts"},{"a":43194,"l":"shot_tile","c":"What a shot does to the tile it reaches. Floor: nothing. Tiles $14 (the jug) and $16 (the blue potion), the special potions $19-$1E and the jug $31 are destroyed with the shot ($AD30, the tile cleared, $B4EA). Walls, doors, the chest, $15, $17 and $32 stop the shot. $18, $1F, $2F, $30 and the exit $36 let it fly on. A generator ($20-$2E) loses the shot's power ($ACAB,x) from its value; below the threshold for its kind ($ACAF) it is destroyed ($AC17 scores, then as above); otherwise it is redrawn ($B517) and a player's shot scores ($AC17). A crumbling wall ($33-$35) moves one stage on, and the stage after $35 is cleared away.","t":"code","b":[41,127],"m":"and","o":"#$7F","x":[43187]},{"a":43196,"t":"code","b":[240,38],"m":"beq","oa":43236,"o":"r_A8E4"},{"a":43198,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":43200,"t":"code","b":[240,38],"m":"beq","oa":43240,"o":"b_A8E8"},{"a":43202,"t":"code","b":[201,22],"m":"cmp","o":"#$16"},{"a":43204,"t":"code","b":[240,34],"m":"beq","oa":43240,"o":"b_A8E8"},{"a":43206,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":43208,"t":"code","b":[144,40],"m":"bcc","oa":43250,"o":"b_A8F2"},{"a":43210,"t":"code","b":[240,24],"m":"beq","oa":43236,"o":"r_A8E4"},{"a":43212,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":43214,"t":"code","b":[240,20],"m":"beq","oa":43236,"o":"r_A8E4"},{"a":43216,"t":"code","b":[144,22],"m":"bcc","oa":43240,"o":"b_A8E8"},{"a":43218,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":43220,"t":"code","b":[144,32],"m":"bcc","oa":43254,"o":"b_A8F6"},{"a":43222,"t":"code","b":[201,49],"m":"cmp","o":"#$31"},{"a":43224,"t":"code","b":[144,10],"m":"bcc","oa":43236,"o":"r_A8E4"},{"a":43226,"t":"code","b":[240,12],"m":"beq","oa":43240,"o":"b_A8E8"},{"a":43228,"t":"code","b":[201,51],"m":"cmp","o":"#$33"},{"a":43230,"t":"code","b":[144,18],"m":"bcc","oa":43250,"o":"b_A8F2"},{"a":43232,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":43234,"t":"code","b":[144,63],"m":"bcc","oa":43299,"o":"b_A923"},{"a":43236,"l":"r_A8E4","t":"code","b":[96],"m":"rts","x":[43196,43210,43214,43224]},{"a":43237,"l":"b_A8E5","t":"code","b":[32,23,172],"m":"jsr","oa":44055,"o":"score_generator","x":[43276]},{"a":43240,"l":"b_A8E8","t":"code","b":[32,48,173],"m":"jsr","oa":44336,"o":"potion_shot","x":[43200,43204,43216,43226,43305]},{"a":43243,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":43245,"t":"code","b":[145,140],"m":"sta","oa":140,"o":"(zpa_8C),y"},{"a":43247,"t":"code","b":[32,234,180],"m":"jsr","oa":46314,"o":"cell_blank"},{"a":43250,"l":"b_A8F2","t":"code","b":[32,46,169],"m":"jsr","oa":43310,"o":"shot_clear","x":[43208,43230,43296]},{"a":43253,"t":"code","b":[96],"m":"rts"},{"a":43254,"l":"b_A8F6","t":"code","b":[56],"m":"sec","x":[43220]},{"a":43255,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":43257,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":43260,"t":"code","b":[177,140],"m":"lda","oa":140,"o":"(zpa_8C),y"},{"a":43262,"t":"code","b":[56],"m":"sec"},{"a":43263,"t":"code","b":[253,171,172],"m":"sbc","oa":44203,"o":"shot_power_gen,x"},{"a":43266,"t":"code","b":[145,140],"m":"sta","oa":140,"o":"(zpa_8C),y"},{"a":43268,"t":"code","b":[172,91,130],"m":"ldy","oa":33371,"o":"scratch"},{"a":43271,"t":"code","b":[217,175,172],"m":"cmp","oa":44207,"o":"gen_thresholds,y"},{"a":43274,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":43276,"t":"code","b":[144,215],"m":"bcc","oa":43237,"o":"b_A8E5"},{"a":43278,"l":"j_A90E","t":"code","b":[164,140],"m":"ldy","oa":140,"o":"zpa_8C","x":[43307]},{"a":43280,"t":"code","b":[132,142],"m":"sty","oa":142,"o":"zpa_8E"},{"a":43282,"t":"code","b":[164,141],"m":"ldy","oa":141,"o":"zpa_8D"},{"a":43284,"t":"code","b":[132,143],"m":"sty","oa":143,"o":"zpa_8F"},{"a":43286,"t":"code","b":[32,23,181],"m":"jsr","oa":46359,"o":"tile_draw"},{"a":43289,"t":"code","b":[224,2],"m":"cpx","o":"#$02"},{"a":43291,"t":"code","b":[144,3],"m":"bcc","oa":43296,"o":"b_A920"},{"a":43293,"t":"code","b":[32,23,172],"m":"jsr","oa":44055,"o":"score_generator"},{"a":43296,"l":"b_A920","t":"code","b":[76,242,168],"m":"jmp","oa":43250,"o":"b_A8F2","x":[43291]},{"a":43299,"l":"b_A923","t":"code","b":[105,1],"m":"adc","o":"#$01","x":[43234]},{"a":43301,"t":"code","b":[145,140],"m":"sta","oa":140,"o":"(zpa_8C),y"},{"a":43303,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":43305,"t":"code","b":[240,189],"m":"beq","oa":43240,"o":"b_A8E8"},{"a":43307,"t":"code","b":[76,14,169],"m":"jmp","oa":43278,"o":"j_A90E"},{"a":43310,"l":"shot_clear","c":"Empties shot slot X and hides its sprite.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[42936,42978,43250,43409,43778]},{"a":43312,"t":"code","b":[157,84,168],"m":"sta","oa":43092,"o":"shot_type,x"},{"a":43315,"t":"code","b":[157,62,145],"m":"sta","oa":37182,"o":"sprite_x,x"},{"a":43318,"t":"code","b":[157,74,145],"m":"sta","oa":37194,"o":"sprite_x_high,x"},{"a":43321,"t":"code","b":[157,68,145],"m":"sta","oa":37188,"o":"sprite_y,x"},{"a":43324,"t":"code","b":[96],"m":"rts"},{"a":43325,"l":"shot_cell_x","c":"Each shot's X in 4-unit cells, for the monster test.","t":"byte","b":[0,0,0,0],"x":[43166,43376]},{"a":43329,"l":"shot_cell_y","c":"Each shot's Y in cells.","t":"byte","b":[0,0,0,0],"x":[43156,43390]},{"a":43333,"l":"shot_hits_monster","c":"Tests monster Y (unless bit 3 of its flags, $0640, is set) against every shot in flight but its own and a rock still rising: a shot within one cell either way hits it and ends. A monster with strength ($0580) $C0 or more, Death, is not hurt: a player's shot adds 1 to the low byte of the score (decimal) and shows it ($AD16). Otherwise the strength drops by the shot's power ($ACBE,x) and the shot scores (shot_score); a monster left with less than nothing is taken off the map ($BDBF, $C35A with its position) and out of the table, the last monster moving into its slot and the count ($824E) going down; carry set.","t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y","x":[43545]},{"a":43336,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":43338,"t":"code","b":[208,67],"m":"bne","oa":43407,"o":"b_A98F"},{"a":43340,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":43343,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43344,"t":"code","b":[141,15,170],"m":"sta","oa":43535,"o":"monster_cell_y"},{"a":43347,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":43350,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43351,"t":"code","b":[141,14,170],"m":"sta","oa":43534,"o":"monster_cell_x"},{"a":43354,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":43356,"l":"b_A95C","t":"code","b":[152],"m":"tya","x":[43405]},{"a":43357,"t":"code","b":[221,100,168],"m":"cmp","oa":43108,"o":"shot_owner,x"},{"a":43360,"t":"code","b":[240,42],"m":"beq","oa":43404,"o":"b_A98C"},{"a":43362,"t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x"},{"a":43365,"t":"code","b":[240,37],"m":"beq","oa":43404,"o":"b_A98C"},{"a":43367,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":43369,"t":"code","b":[208,5],"m":"bne","oa":43376,"o":"b_A970"},{"a":43371,"t":"code","b":[189,231,171],"m":"lda","oa":44007,"o":"rock_steps,x"},{"a":43374,"t":"code","b":[208,28],"m":"bne","oa":43404,"o":"b_A98C"},{"a":43376,"l":"b_A970","t":"code","b":[189,61,169],"m":"lda","oa":43325,"o":"shot_cell_x,x","x":[43369]},{"a":43379,"t":"code","b":[56],"m":"sec"},{"a":43380,"t":"code","b":[237,14,170],"m":"sbc","oa":43534,"o":"monster_cell_x"},{"a":43383,"t":"code","b":[24],"m":"clc"},{"a":43384,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43386,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":43388,"t":"code","b":[176,14],"m":"bcs","oa":43404,"o":"b_A98C"},{"a":43390,"t":"code","b":[189,65,169],"m":"lda","oa":43329,"o":"shot_cell_y,x"},{"a":43393,"t":"code","b":[56],"m":"sec"},{"a":43394,"t":"code","b":[237,15,170],"m":"sbc","oa":43535,"o":"monster_cell_y"},{"a":43397,"t":"code","b":[24],"m":"clc"},{"a":43398,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43400,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":43402,"t":"code","b":[144,5],"m":"bcc","oa":43409,"o":"b_A991"},{"a":43404,"l":"b_A98C","t":"code","b":[202],"m":"dex","x":[43360,43365,43374,43388]},{"a":43405,"t":"code","b":[16,205],"m":"bpl","oa":43356,"o":"b_A95C"},{"a":43407,"l":"b_A98F","t":"code","b":[24],"m":"clc","x":[43338]},{"a":43408,"t":"code","b":[96],"m":"rts"},{"a":43409,"l":"b_A991","t":"code","b":[32,46,169],"m":"jsr","oa":43310,"o":"shot_clear","x":[43402]},{"a":43412,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":43415,"t":"code","b":[201,192],"m":"cmp","o":"#$C0"},{"a":43417,"t":"code","b":[176,73],"m":"bcs","oa":43492,"o":"b_A9E4"},{"a":43419,"t":"code","b":[56],"m":"sec"},{"a":43420,"t":"code","b":[253,190,172],"m":"sbc","oa":44222,"o":"shot_damage,x"},{"a":43423,"t":"code","b":[144,8],"m":"bcc","oa":43433,"o":"b_A9A9"},{"a":43425,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":43428,"t":"code","b":[32,240,171],"m":"jsr","oa":44016,"o":"shot_score"},{"a":43431,"t":"code","b":[24],"m":"clc"},{"a":43432,"t":"code","b":[96],"m":"rts"},{"a":43433,"l":"b_A9A9","t":"code","b":[32,240,171],"m":"jsr","oa":44016,"o":"shot_score","x":[43423]},{"a":43436,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":43439,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":43442,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":43445,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":43448,"t":"code","b":[140,91,130],"m":"sty","oa":33371,"o":"scratch"},{"a":43451,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":43454,"t":"code","b":[32,90,195],"m":"jsr","oa":50010,"o":"monster_unplot"},{"a":43457,"t":"code","b":[172,91,130],"m":"ldy","oa":33371,"o":"scratch"},{"a":43460,"t":"code","b":[174,78,130],"m":"ldx","oa":33358,"o":"monster_count"},{"a":43463,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":43466,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":43469,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":43472,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":43475,"t":"code","b":[189,128,5],"m":"lda","oa":1408,"o":"f_0580,x"},{"a":43478,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":43481,"t":"code","b":[189,64,6],"m":"lda","oa":1600,"o":"f_0640,x"},{"a":43484,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":43487,"t":"code","b":[206,78,130],"m":"dec","oa":33358,"o":"monster_count"},{"a":43490,"t":"code","b":[56],"m":"sec"},{"a":43491,"t":"code","b":[96],"m":"rts"},{"a":43492,"l":"b_A9E4","t":"code","b":[224,2],"m":"cpx","o":"#$02","x":[43417]},{"a":43494,"t":"code","b":[144,36],"m":"bcc","oa":43532,"o":"b_AA0C"},{"a":43496,"t":"code","b":[202],"m":"dex"},{"a":43497,"t":"code","b":[202],"m":"dex"},{"a":43498,"t":"code","b":[248],"m":"sed"},{"a":43499,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":43502,"t":"code","b":[24],"m":"clc"},{"a":43503,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43505,"t":"code","b":[157,41,185],"m":"sta","oa":47401,"o":"score_lo,x"},{"a":43508,"t":"code","b":[144,18],"m":"bcc","oa":43528,"o":"b_AA08"},{"a":43510,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":43513,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":43515,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":43518,"t":"code","b":[144,8],"m":"bcc","oa":43528,"o":"b_AA08"},{"a":43520,"t":"code","b":[189,45,185],"m":"lda","oa":47405,"o":"score_hi,x"},{"a":43523,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":43525,"t":"code","b":[157,45,185],"m":"sta","oa":47405,"o":"score_hi,x"},{"a":43528,"l":"b_AA08","t":"code","b":[216],"m":"cld","x":[43508,43518]},{"a":43529,"t":"code","b":[32,22,173],"m":"jsr","oa":44310,"o":"death_points"},{"a":43532,"l":"b_AA0C","t":"code","b":[24],"m":"clc","x":[43494]},{"a":43533,"t":"code","b":[96],"m":"rts"},{"a":43534,"l":"monster_cell_x","c":"Work: the tested monster's X / 2.","t":"byte","b":[62],"x":[43351,43380]},{"a":43535,"l":"monster_cell_y","c":"Work: the tested monster's Y / 2.","t":"byte","b":[40],"x":[43344,43394]},{"a":43536,"l":"shots_hit_monsters","c":"Runs shot_hits_monster for every monster in the table (0 to $824E, while it has any), not stepping on after a removal.","t":"code","b":[172,78,130],"m":"ldy","oa":33358,"o":"monster_count","x":[33079,33197]},{"a":43539,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":43541,"t":"code","b":[240,22],"m":"beq","oa":43565,"o":"r_AA2D"},{"a":43543,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":43545,"l":"b_AA19","t":"code","b":[32,69,169],"m":"jsr","oa":43333,"o":"shot_hits_monster","x":[43561,43563]},{"a":43548,"t":"code","b":[176,1],"m":"bcs","oa":43551,"o":"b_AA1F"},{"a":43550,"t":"code","b":[200],"m":"iny"},{"a":43551,"l":"b_AA1F","t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count","x":[43548]},{"a":43554,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":43556,"t":"code","b":[240,7],"m":"beq","oa":43565,"o":"r_AA2D"},{"a":43558,"t":"code","b":[204,78,130],"m":"cpy","oa":33358,"o":"monster_count"},{"a":43561,"t":"code","b":[144,238],"m":"bcc","oa":43545,"o":"b_AA19"},{"a":43563,"t":"code","b":[240,236],"m":"beq","oa":43545,"o":"b_AA19"},{"a":43565,"l":"r_AA2D","t":"code","b":[96],"m":"rts","x":[43541,43556]},{"a":43566,"l":"fireball_fire","c":"A demon (monster Y) shoots: with slot 1 or 0 free, puts a fireball (type 5) in it at the demon's place, heading the demon's facing (its strength's low three bits), shape $B8 + the direction, colour 7; marks the demon as having shot (bit 5 of its flags).","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[50399]},{"a":43568,"t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x"},{"a":43571,"t":"code","b":[240,6],"m":"beq","oa":43579,"o":"b_AA3B"},{"a":43573,"t":"code","b":[202],"m":"dex"},{"a":43574,"t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x"},{"a":43577,"t":"code","b":[208,56],"m":"bne","oa":43635,"o":"b_AA73"},{"a":43579,"l":"b_AA3B","t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y","x":[43571]},{"a":43582,"t":"code","b":[72],"m":"pha"},{"a":43583,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":43586,"t":"code","b":[72],"m":"pha"},{"a":43587,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":43589,"t":"code","b":[157,84,168],"m":"sta","oa":43092,"o":"shot_type,x"},{"a":43592,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":43595,"t":"code","b":[9,32],"m":"ora","o":"#$20"},{"a":43597,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":43600,"t":"code","b":[152],"m":"tya"},{"a":43601,"t":"code","b":[157,100,168],"m":"sta","oa":43108,"o":"shot_owner,x"},{"a":43604,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":43606,"t":"code","b":[157,188,170],"m":"sta","oa":43708,"o":"shot_colours,x"},{"a":43609,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":43612,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":43614,"t":"code","b":[157,88,168],"m":"sta","oa":43096,"o":"shot_dir,x"},{"a":43617,"t":"code","b":[9,184],"m":"ora","o":"#$B8"},{"a":43619,"t":"code","b":[157,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs,x"},{"a":43622,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":43624,"t":"code","b":[168],"m":"tay"},{"a":43625,"t":"code","b":[104],"m":"pla"},{"a":43626,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43627,"t":"code","b":[157,92,168],"m":"sta","oa":43100,"o":"shot_x,x"},{"a":43630,"t":"code","b":[104],"m":"pla"},{"a":43631,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43632,"t":"code","b":[157,96,168],"m":"sta","oa":43104,"o":"shot_y,x"},{"a":43635,"l":"b_AA73","t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur","x":[43577]},{"a":43638,"t":"code","b":[96],"m":"rts"},{"a":43639,"l":"rock_throw","c":"A lobber (monster $824A) throws a rock about one time in eight (CIA 1 timer A's low bits): when the rock's path to its target works out (rock_path), a rock (type 6, shape $AD, colour 7) starts at the lobber, which is marked as having thrown (bit 5 of its flags), and sound $0C plays.","t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo","x":[50422]},{"a":43642,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":43644,"t":"code","b":[208,58],"m":"bne","oa":43704,"o":"b_AAB8"},{"a":43646,"t":"code","b":[32,12,171],"m":"jsr","oa":43788,"o":"rock_path"},{"a":43649,"t":"code","b":[176,53],"m":"bcs","oa":43704,"o":"b_AAB8"},{"a":43651,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":43654,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":43657,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43658,"t":"code","b":[157,96,168],"m":"sta","oa":43104,"o":"shot_y,x"},{"a":43661,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":43664,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43665,"t":"code","b":[157,92,168],"m":"sta","oa":43100,"o":"shot_x,x"},{"a":43668,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":43671,"t":"code","b":[9,32],"m":"ora","o":"#$20"},{"a":43673,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":43676,"t":"code","b":[152],"m":"tya"},{"a":43677,"t":"code","b":[157,100,168],"m":"sta","oa":43108,"o":"shot_owner,x"},{"a":43680,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":43682,"t":"code","b":[157,188,170],"m":"sta","oa":43708,"o":"shot_colours,x"},{"a":43685,"t":"code","b":[169,173],"m":"lda","o":"#$AD"},{"a":43687,"t":"code","b":[157,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs,x"},{"a":43690,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":43692,"t":"code","b":[157,84,168],"m":"sta","oa":43092,"o":"shot_type,x"},{"a":43695,"t":"code","b":[138],"m":"txa"},{"a":43696,"t":"code","b":[72],"m":"pha"},{"a":43697,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":43699,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":43702,"t":"code","b":[104],"m":"pla"},{"a":43703,"t":"code","b":[170],"m":"tax"},{"a":43704,"l":"b_AAB8","t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur","x":[43644,43649]},{"a":43707,"t":"code","b":[96],"m":"rts"},{"a":43708,"l":"shot_colours","c":"The colour of sprites 2-5: the shots in slots 0-3, and the level digits.","t":"byte","b":[2],"x":[37474,39770,43606,43682,44950]},{"a":43709,"l":"shot_colour_1","c":"Slot 1's colour.","t":"byte","b":[2],"x":[37480,39773,44953]},{"a":43710,"l":"shot_colour_2","c":"Slot 2's colour.","t":"byte","b":[2],"x":[39776,44956]},{"a":43711,"l":"shot_colour_3","c":"Slot 3's colour.","t":"byte","b":[6],"x":[44959]},{"a":43712,"l":"shots_hit_players","c":"For each player and each shot in flight that is not the player's own: a shot in the same 8-unit square as the player hits it ($AC3E) and ends.","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[33076,33194]},{"a":43714,"l":"b_AAC2","t":"code","b":[162,3],"m":"ldx","o":"#$03","x":[43785]},{"a":43716,"l":"b_AAC4","t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x","x":[43782]},{"a":43719,"t":"code","b":[240,60],"m":"beq","oa":43781,"o":"b_AB05"},{"a":43721,"t":"code","b":[140,92,130],"m":"sty","oa":33372,"o":"scratch_2"},{"a":43724,"t":"code","b":[224,2],"m":"cpx","o":"#$02"},{"a":43726,"t":"code","b":[144,11],"m":"bcc","oa":43739,"o":"b_AADB"},{"a":43728,"t":"code","b":[238,92,130],"m":"inc","oa":33372,"o":"scratch_2"},{"a":43731,"t":"code","b":[238,92,130],"m":"inc","oa":33372,"o":"scratch_2"},{"a":43734,"t":"code","b":[236,92,130],"m":"cpx","oa":33372,"o":"scratch_2"},{"a":43737,"t":"code","b":[240,42],"m":"beq","oa":43781,"o":"b_AB05"},{"a":43739,"l":"b_AADB","t":"code","b":[189,92,168],"m":"lda","oa":43100,"o":"shot_x,x","x":[43726]},{"a":43742,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":43744,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":43747,"t":"code","b":[185,4,145],"m":"lda","oa":37124,"o":"player_world_x,y"},{"a":43750,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":43752,"t":"code","b":[205,92,130],"m":"cmp","oa":33372,"o":"scratch_2"},{"a":43755,"t":"code","b":[208,24],"m":"bne","oa":43781,"o":"b_AB05"},{"a":43757,"t":"code","b":[189,96,168],"m":"lda","oa":43104,"o":"shot_y,x"},{"a":43760,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":43762,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":43765,"t":"code","b":[185,6,145],"m":"lda","oa":37126,"o":"player_world_y,y"},{"a":43768,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":43770,"t":"code","b":[205,92,130],"m":"cmp","oa":33372,"o":"scratch_2"},{"a":43773,"t":"code","b":[208,6],"m":"bne","oa":43781,"o":"b_AB05"},{"a":43775,"t":"code","b":[32,62,172],"m":"jsr","oa":44094,"o":"shot_hits_player"},{"a":43778,"t":"code","b":[32,46,169],"m":"jsr","oa":43310,"o":"shot_clear"},{"a":43781,"l":"b_AB05","t":"code","b":[202],"m":"dex","x":[43719,43737,43755,43773]},{"a":43782,"t":"code","b":[16,188],"m":"bpl","oa":43716,"o":"b_AAC4"},{"a":43784,"t":"code","b":[136],"m":"dey"},{"a":43785,"t":"code","b":[16,183],"m":"bpl","oa":43714,"o":"b_AAC2"},{"a":43787,"t":"code","b":[96],"m":"rts"},{"a":43788,"l":"rock_path","c":"Works out a lobbed rock's flight for slot X from its distance to the target ($BF83, $BF85): the longer axis decides the number of steps (1-7, at most 15 for the height count), the step on each axis in two-unit moves with the signs put back, and the half-way count for the arc; carry set when both monster slots are busy or the target is too far.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[43646]},{"a":43790,"t":"code","b":[141,239,171],"m":"sta","oa":44015,"o":"rock_swapped"},{"a":43793,"t":"code","b":[189,133,191],"m":"lda","oa":49029,"o":"target_dy,x"},{"a":43796,"t":"code","b":[141,227,171],"m":"sta","oa":44003,"o":"rock_dy"},{"a":43799,"t":"code","b":[16,5],"m":"bpl","oa":43806,"o":"b_AB1E"},{"a":43801,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":43803,"t":"code","b":[24],"m":"clc"},{"a":43804,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43806,"l":"b_AB1E","t":"code","b":[74],"m":"lsr","o":"a","x":[43799]},{"a":43807,"t":"code","b":[141,228,171],"m":"sta","oa":44004,"o":"rock_dy_half"},{"a":43810,"t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x"},{"a":43813,"t":"code","b":[141,225,171],"m":"sta","oa":44001,"o":"rock_work"},{"a":43816,"t":"code","b":[16,5],"m":"bpl","oa":43823,"o":"b_AB2F"},{"a":43818,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":43820,"t":"code","b":[24],"m":"clc"},{"a":43821,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43823,"l":"b_AB2F","t":"code","b":[74],"m":"lsr","o":"a","x":[43816]},{"a":43824,"t":"code","b":[141,226,171],"m":"sta","oa":44002,"o":"rock_dx_half"},{"a":43827,"t":"code","b":[172,228,171],"m":"ldy","oa":44004,"o":"rock_dy_half"},{"a":43830,"t":"code","b":[205,228,171],"m":"cmp","oa":44004,"o":"rock_dy_half"},{"a":43833,"t":"code","b":[176,7],"m":"bcs","oa":43842,"o":"b_AB42"},{"a":43835,"t":"code","b":[238,239,171],"m":"inc","oa":44015,"o":"rock_swapped"},{"a":43838,"t":"code","b":[152],"m":"tya"},{"a":43839,"t":"code","b":[172,226,171],"m":"ldy","oa":44002,"o":"rock_dx_half"},{"a":43842,"l":"b_AB42","t":"code","b":[10],"m":"asl","o":"a","x":[43833]},{"a":43843,"t":"code","b":[141,229,171],"m":"sta","oa":44005,"o":"rock_long"},{"a":43846,"t":"code","b":[152],"m":"tya"},{"a":43847,"t":"code","b":[10],"m":"asl","o":"a"},{"a":43848,"t":"code","b":[141,230,171],"m":"sta","oa":44006,"o":"rock_short"},{"a":43851,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":43853,"t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x"},{"a":43856,"t":"code","b":[240,8],"m":"beq","oa":43866,"o":"b_AB5A"},{"a":43858,"t":"code","b":[202],"m":"dex"},{"a":43859,"t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x"},{"a":43862,"t":"code","b":[240,2],"m":"beq","oa":43866,"o":"b_AB5A"},{"a":43864,"l":"b_AB58","t":"code","b":[56],"m":"sec","x":[43880]},{"a":43865,"t":"code","b":[96],"m":"rts"},{"a":43866,"l":"b_AB5A","t":"code","b":[172,229,171],"m":"ldy","oa":44005,"o":"rock_long","x":[43856,43862]},{"a":43869,"t":"code","b":[136],"m":"dey"},{"a":43870,"t":"code","b":[152],"m":"tya"},{"a":43871,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43872,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43873,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43874,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43875,"t":"code","b":[168],"m":"tay"},{"a":43876,"t":"code","b":[200],"m":"iny"},{"a":43877,"t":"code","b":[152],"m":"tya"},{"a":43878,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":43880,"t":"code","b":[176,238],"m":"bcs","oa":43864,"o":"b_AB58"},{"a":43882,"t":"code","b":[157,235,171],"m":"sta","oa":44011,"o":"rock_step_x,x"},{"a":43885,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43886,"t":"code","b":[24],"m":"clc"},{"a":43887,"t":"code","b":[109,229,171],"m":"adc","oa":44005,"o":"rock_long"},{"a":43890,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":43892,"l":"j_AB74","t":"code","b":[200],"m":"iny","x":[43902]},{"a":43893,"t":"code","b":[221,235,171],"m":"cmp","oa":44011,"o":"rock_step_x,x"},{"a":43896,"t":"code","b":[144,7],"m":"bcc","oa":43905,"o":"b_AB81"},{"a":43898,"t":"code","b":[56],"m":"sec"},{"a":43899,"t":"code","b":[253,235,171],"m":"sbc","oa":44011,"o":"rock_step_x,x"},{"a":43902,"t":"code","b":[76,116,171],"m":"jmp","oa":43892,"o":"j_AB74"},{"a":43905,"l":"b_AB81","t":"code","b":[192,16],"m":"cpy","o":"#$10","x":[43896]},{"a":43907,"t":"code","b":[144,2],"m":"bcc","oa":43911,"o":"b_AB87"},{"a":43909,"t":"code","b":[160,15],"m":"ldy","o":"#$0F"},{"a":43911,"l":"b_AB87","t":"code","b":[152],"m":"tya","x":[43907]},{"a":43912,"t":"code","b":[157,231,171],"m":"sta","oa":44007,"o":"rock_steps,x"},{"a":43915,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":43916,"t":"code","b":[157,233,171],"m":"sta","oa":44009,"o":"rock_half,x"},{"a":43919,"t":"code","b":[24],"m":"clc"},{"a":43920,"t":"code","b":[109,230,171],"m":"adc","oa":44006,"o":"rock_short"},{"a":43923,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":43925,"l":"j_AB95","t":"code","b":[200],"m":"iny","x":[43935]},{"a":43926,"t":"code","b":[221,231,171],"m":"cmp","oa":44007,"o":"rock_steps,x"},{"a":43929,"t":"code","b":[144,7],"m":"bcc","oa":43938,"o":"b_ABA2"},{"a":43931,"t":"code","b":[56],"m":"sec"},{"a":43932,"t":"code","b":[253,231,171],"m":"sbc","oa":44007,"o":"rock_steps,x"},{"a":43935,"t":"code","b":[76,149,171],"m":"jmp","oa":43925,"o":"j_AB95"},{"a":43938,"l":"b_ABA2","t":"code","b":[152],"m":"tya","x":[43929]},{"a":43939,"t":"code","b":[157,237,171],"m":"sta","oa":44013,"o":"rock_step_y,x"},{"a":43942,"t":"code","b":[173,239,171],"m":"lda","oa":44015,"o":"rock_swapped"},{"a":43945,"t":"code","b":[240,14],"m":"beq","oa":43961,"o":"b_ABB9"},{"a":43947,"t":"code","b":[189,235,171],"m":"lda","oa":44011,"o":"rock_step_x,x"},{"a":43950,"t":"code","b":[72],"m":"pha"},{"a":43951,"t":"code","b":[189,237,171],"m":"lda","oa":44013,"o":"rock_step_y,x"},{"a":43954,"t":"code","b":[157,235,171],"m":"sta","oa":44011,"o":"rock_step_x,x"},{"a":43957,"t":"code","b":[104],"m":"pla"},{"a":43958,"t":"code","b":[157,237,171],"m":"sta","oa":44013,"o":"rock_step_y,x"},{"a":43961,"l":"b_ABB9","t":"code","b":[30,235,171],"m":"asl","oa":44011,"o":"rock_step_x,x","x":[43945]},{"a":43964,"t":"code","b":[30,237,171],"m":"asl","oa":44013,"o":"rock_step_y,x"},{"a":43967,"t":"code","b":[173,225,171],"m":"lda","oa":44001,"o":"rock_work"},{"a":43970,"t":"code","b":[16,11],"m":"bpl","oa":43983,"o":"b_ABCF"},{"a":43972,"t":"code","b":[189,235,171],"m":"lda","oa":44011,"o":"rock_step_x,x"},{"a":43975,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":43977,"t":"code","b":[24],"m":"clc"},{"a":43978,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43980,"t":"code","b":[157,235,171],"m":"sta","oa":44011,"o":"rock_step_x,x"},{"a":43983,"l":"b_ABCF","t":"code","b":[173,227,171],"m":"lda","oa":44003,"o":"rock_dy","x":[43970]},{"a":43986,"t":"code","b":[16,11],"m":"bpl","oa":43999,"o":"b_ABDF"},{"a":43988,"t":"code","b":[189,237,171],"m":"lda","oa":44013,"o":"rock_step_y,x"},{"a":43991,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":43993,"t":"code","b":[24],"m":"clc"},{"a":43994,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":43996,"t":"code","b":[157,237,171],"m":"sta","oa":44013,"o":"rock_step_y,x"},{"a":43999,"l":"b_ABDF","t":"code","b":[24],"m":"clc","x":[43986]},{"a":44000,"t":"code","b":[96],"m":"rts"},{"a":44001,"l":"rock_work","c":"rock_path's work bytes: the two distances with their signs ($ABE1-$ABE6), the step count and its half for each slot ($ABE7, $ABE9), the per-step X and Y moves ($ABEB, $ABED), and whether the axes were swapped ($ABEF).","t":"byte","b":[0],"x":[43813,43967]},{"a":44002,"l":"rock_dx_half","c":"rock_path's X distance, halved.","t":"byte","b":[0],"x":[43824,43839]},{"a":44003,"l":"rock_dy","c":"rock_path's Y distance, signed.","t":"byte","b":[0],"x":[43796,43983]},{"a":44004,"l":"rock_dy_half","c":"The Y distance, halved.","t":"byte","b":[0],"x":[43807,43827,43830]},{"a":44005,"l":"rock_long","c":"The longer of the two, doubled.","t":"byte","b":[0],"x":[43843,43866,43887]},{"a":44006,"l":"rock_short","c":"The shorter, doubled.","t":"byte","b":[0],"x":[43848,43920]},{"a":44007,"l":"rock_steps","c":"Each rock slot's steps left.","t":"byte","b":[0,0],"x":[42973,42982,43014,43371,43912,43926,43932]},{"a":44009,"l":"rock_half","c":"Each rock slot's half-way step.","t":"byte","b":[0,0],"x":[42985,43916]},{"a":44011,"l":"rock_step_x","c":"Each rock slot's X move per step.","t":"byte","b":[0,0],"x":[42954,43882,43893,43899,43947,43954,43961,43972,43980]},{"a":44013,"l":"rock_step_y","c":"Each rock slot's Y move per step.","t":"byte","b":[0,0],"x":[42964,43939,43951,43958,43964,43988,43996]},{"a":44015,"l":"rock_swapped","c":"Set when the X and Y axes were swapped.","t":"byte","b":[0],"x":[43790,43835,43942]},{"a":44016,"l":"shot_score","c":"Adds 5 (decimal) to the score of the player whose shot slot X is (2 or 3; monsters' shots score nothing), carrying through the three score bytes ($B929/$B92B/$B92D, $B92A/$B92C/$B92E), and raises $B65F to redraw the panel.","t":"code","b":[224,2],"m":"cpx","o":"#$02","x":[43428,43433]},{"a":44018,"t":"code","b":[144,30],"m":"bcc","oa":44050,"o":"b_AC12"},{"a":44020,"t":"code","b":[248],"m":"sed"},{"a":44021,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":44023,"t":"code","b":[24],"m":"clc"},{"a":44024,"t":"code","b":[125,39,185],"m":"adc","oa":47399,"o":"score_index_base,x"},{"a":44027,"t":"code","b":[157,39,185],"m":"sta","oa":47399,"o":"score_index_base,x"},{"a":44030,"t":"code","b":[144,18],"m":"bcc","oa":44050,"o":"b_AC12"},{"a":44032,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":44035,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":44037,"t":"code","b":[157,41,185],"m":"sta","oa":47401,"o":"score_lo,x"},{"a":44040,"t":"code","b":[144,8],"m":"bcc","oa":44050,"o":"b_AC12"},{"a":44042,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":44045,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":44047,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":44050,"l":"b_AC12","t":"code","b":[216],"m":"cld","x":[44018,44030,44040]},{"a":44051,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":44054,"t":"code","b":[96],"m":"rts"},{"a":44055,"l":"score_generator","c":"Adds 10 (decimal) to the score of the player whose shot or blow slot X is (2 or 3; nothing for X below 2), carrying through the score bytes, and raises $B65F to redraw the panel.","t":"code","b":[224,2],"m":"cpx","o":"#$02","x":[43237,43293,44298,44397,44402,50248]},{"a":44057,"t":"code","b":[144,30],"m":"bcc","oa":44089,"o":"b_AC39"},{"a":44059,"t":"code","b":[248],"m":"sed"},{"a":44060,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":44062,"t":"code","b":[24],"m":"clc"},{"a":44063,"t":"code","b":[125,39,185],"m":"adc","oa":47399,"o":"score_index_base,x"},{"a":44066,"t":"code","b":[157,39,185],"m":"sta","oa":47399,"o":"score_index_base,x"},{"a":44069,"t":"code","b":[144,18],"m":"bcc","oa":44089,"o":"b_AC39"},{"a":44071,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":44074,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":44076,"t":"code","b":[157,41,185],"m":"sta","oa":47401,"o":"score_lo,x"},{"a":44079,"t":"code","b":[144,8],"m":"bcc","oa":44089,"o":"b_AC39"},{"a":44081,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":44084,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":44086,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":44089,"l":"b_AC39","t":"code","b":[216],"m":"cld","x":[44057,44069,44079]},{"a":44090,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":44093,"t":"code","b":[96],"m":"rts"},{"a":44094,"l":"shot_hits_player","c":"What a shot does to player Y it hits. A fireball (type 5) takes 10 health and a rock (type 6) 3, subtracted in decimal from the player's health ($B92F/$B931). A player's shot: on a level whose header sets bit 1 (\"shots now stun\") the player is frozen ($911E,y = 5); with bit 0 (\"shots now hurt\") it loses the shot's damage ($ACBE,x) / 4. A player whose health goes below zero gets $C40C,x raised. Raises $B65F and plays sound 8.","t":"code","b":[152],"m":"tya","x":[43775]},{"a":44095,"t":"code","b":[72],"m":"pha"},{"a":44096,"t":"code","b":[138],"m":"txa"},{"a":44097,"t":"code","b":[72],"m":"pha"},{"a":44098,"t":"code","b":[189,84,168],"m":"lda","oa":43092,"o":"shot_type,x"},{"a":44101,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":44103,"t":"code","b":[240,29],"m":"beq","oa":44134,"o":"b_AC66"},{"a":44105,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":44107,"t":"code","b":[240,28],"m":"beq","oa":44137,"o":"b_AC69"},{"a":44109,"t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags"},{"a":44112,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":44114,"t":"code","b":[240,5],"m":"beq","oa":44121,"o":"b_AC59"},{"a":44116,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":44118,"t":"code","b":[153,30,145],"m":"sta","oa":37150,"o":"exit_wait_p1,y"},{"a":44121,"l":"b_AC59","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[44114]},{"a":44124,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":44126,"t":"code","b":[240,49],"m":"beq","oa":44177,"o":"b_AC91"},{"a":44128,"t":"code","b":[189,190,172],"m":"lda","oa":44222,"o":"shot_damage,x"},{"a":44131,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":44132,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":44133,"t":"code","b":[44,169,16],"m":"bit","oa":4265,"o":"datatitle_bit_operand"},{"a":44136,"t":"code","b":[44,169,3],"m":"bit","oa":937,"o":"a_03A9"},{"a":44139,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":44142,"t":"code","b":[248],"m":"sed"},{"a":44143,"t":"code","b":[185,47,185],"m":"lda","oa":47407,"o":"health_lo,y"},{"a":44146,"t":"code","b":[56],"m":"sec"},{"a":44147,"t":"code","b":[237,92,130],"m":"sbc","oa":33372,"o":"scratch_2"},{"a":44150,"t":"code","b":[153,47,185],"m":"sta","oa":47407,"o":"health_lo,y"},{"a":44153,"t":"code","b":[185,49,185],"m":"lda","oa":47409,"o":"health_hi,y"},{"a":44156,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":44158,"t":"code","b":[153,49,185],"m":"sta","oa":47409,"o":"health_hi,y"},{"a":44161,"t":"code","b":[176,5],"m":"bcs","oa":44168,"o":"b_AC88"},{"a":44163,"t":"code","b":[152],"m":"tya"},{"a":44164,"t":"code","b":[170],"m":"tax"},{"a":44165,"t":"code","b":[254,12,196],"m":"inc","oa":50188,"o":"dead_p1,x"},{"a":44168,"l":"b_AC88","t":"code","b":[216],"m":"cld","x":[44161]},{"a":44169,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":44172,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":44174,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":44177,"l":"b_AC91","t":"code","b":[104],"m":"pla","x":[44126]},{"a":44178,"t":"code","b":[170],"m":"tax"},{"a":44179,"t":"code","b":[104],"m":"pla"},{"a":44180,"t":"code","b":[168],"m":"tay"},{"a":44181,"t":"code","b":[96],"m":"rts"},{"a":44182,"l":"players_frozen","c":"While a player's leave timer ($911E,x) runs, its stick reads as nothing pressed and its direction as none.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[34737]},{"a":44184,"l":"b_AC98","t":"code","b":[189,30,145],"m":"lda","oa":37150,"o":"exit_wait_p1,x","x":[44200]},{"a":44187,"t":"code","b":[240,10],"m":"beq","oa":44199,"o":"b_ACA7"},{"a":44189,"t":"code","b":[169,31],"m":"lda","o":"#$1F"},{"a":44191,"t":"code","b":[157,176,142],"m":"sta","oa":36528,"o":"stick_p1,x"},{"a":44194,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":44196,"t":"code","b":[157,178,142],"m":"sta","oa":36530,"o":"dir_p1,x"},{"a":44199,"l":"b_ACA7","t":"code","b":[202],"m":"dex","x":[44187]},{"a":44200,"t":"code","b":[16,238],"m":"bpl","oa":44184,"o":"b_AC98"},{"a":44202,"t":"code","b":[96],"m":"rts"},{"a":44203,"l":"shot_power_gen","c":"The power of a shot against generators, by shot slot: slots 0 and 1 (monsters' shots) 1; slots 2 and 3 are the players' ($ACAD).","t":"byte","b":[1,1],"x":[43263]},{"a":44205,"l":"shot_power","c":"Each player's shot power against generators (shot slots 2 and 3), set by hero and by the shot-power potion.","t":"byte","b":[2,1],"x":[40351,40925]},{"a":44207,"l":"gen_thresholds","c":"For each generator tile ($20-$2E, three per kind, the strongest last), the value below which a hit destroys it: $20 $20 $20 $23 $23 $23 ... $2C $2C $2C. A hit lowers the tile's value, so a strong generator is first knocked down to a weaker one.","t":"byte","b":[32,32,32,35,35,35,38,38],"x":[43271,44272,44383]},{"a":44215,"t":"byte","b":[38,41,41,41,44,44,44]},{"a":44222,"l":"shot_damage","c":"A shot's damage to monsters by shot slot: $40 for the monsters' slots 0 and 1; slots 2 and 3 are the players' ($ACC0).","t":"byte","b":[64,64],"x":[43420,44128]},{"a":44224,"l":"shot_damage_base","c":"Each player's shot damage to monsters, set by hero and by the shot-power potion.","t":"byte","b":[128,64],"x":[40357,40931]},{"a":44226,"l":"shot_speed","c":"A shot's speed by slot, added to its direction to pick its step from $BE70/$BE80: 0 for slots 0 and 1; slots 2 and 3 are the players' ($ACC4).","t":"byte","b":[0,0],"x":[42905]},{"a":44228,"l":"shot_speed_base","c":"Each player's shot speed: 0, or 8 with the shot-speed potion; then two bytes of 1.","t":"byte","b":[0,0,1,1],"x":[40386,40937]},{"a":44232,"l":"fight_power","c":"Each player's hand-to-hand power against generators.","t":"byte","b":[2,1],"x":[40416,40944,44264]},{"a":44234,"l":"fight_damage","c":"Hand-to-hand damage to monsters by slot ($40, $40); the players' are at $ACCC.","t":"byte","b":[64,64],"x":[50497]},{"a":44236,"l":"fight_damage_base","c":"Each player's hand-to-hand damage, set by hero and by the fight-power potion.","t":"byte","b":[128,64],"x":[40422,40950]},{"a":44238,"l":"fight_generator","c":"A player pushing into a generator (tile in A, $20-$2E) fights it: on every fourth call (fight_rate), the generator's value drops by the player's fight power ($ACC8); below its threshold it is cleared. Either way it is redrawn ($B517) and the player scores (score_generator).","t":"code","b":[56],"m":"sec","x":[46823]},{"a":44239,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":44241,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":44244,"t":"code","b":[72],"m":"pha"},{"a":44245,"t":"code","b":[152],"m":"tya"},{"a":44246,"t":"code","b":[72],"m":"pha"},{"a":44247,"t":"code","b":[138],"m":"txa"},{"a":44248,"t":"code","b":[72],"m":"pha"},{"a":44249,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":44250,"t":"code","b":[168],"m":"tay"},{"a":44251,"t":"code","b":[222,19,173],"m":"dec","oa":44307,"o":"fight_rate,x"},{"a":44254,"t":"code","b":[208,45],"m":"bne","oa":44301,"o":"b_AD0D"},{"a":44256,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":44258,"t":"code","b":[157,19,173],"m":"sta","oa":44307,"o":"fight_rate,x"},{"a":44261,"t":"code","b":[161,192],"m":"lda","oa":192,"o":"(zpf_C0,x)"},{"a":44263,"t":"code","b":[56],"m":"sec"},{"a":44264,"t":"code","b":[249,200,172],"m":"sbc","oa":44232,"o":"fight_power,y"},{"a":44267,"t":"code","b":[129,192],"m":"sta","oa":192,"o":"(zpf_C0,x)"},{"a":44269,"t":"code","b":[172,91,130],"m":"ldy","oa":33371,"o":"scratch"},{"a":44272,"t":"code","b":[217,175,172],"m":"cmp","oa":44207,"o":"gen_thresholds,y"},{"a":44275,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":44277,"t":"code","b":[176,3],"m":"bcs","oa":44282,"o":"b_ACFA"},{"a":44279,"t":"code","b":[152],"m":"tya"},{"a":44280,"t":"code","b":[129,192],"m":"sta","oa":192,"o":"(zpf_C0,x)"},{"a":44282,"l":"b_ACFA","t":"code","b":[180,192],"m":"ldy","oa":192,"o":"zpf_C0,x","x":[44277]},{"a":44284,"t":"code","b":[132,142],"m":"sty","oa":142,"o":"zpa_8E"},{"a":44286,"t":"code","b":[180,193],"m":"ldy","oa":193,"o":"zpf_C1,x"},{"a":44288,"t":"code","b":[132,143],"m":"sty","oa":143,"o":"zpa_8F"},{"a":44290,"t":"code","b":[32,23,181],"m":"jsr","oa":46359,"o":"tile_draw"},{"a":44293,"t":"code","b":[138],"m":"txa"},{"a":44294,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":44295,"t":"code","b":[170],"m":"tax"},{"a":44296,"t":"code","b":[232],"m":"inx"},{"a":44297,"t":"code","b":[232],"m":"inx"},{"a":44298,"t":"code","b":[32,23,172],"m":"jsr","oa":44055,"o":"score_generator"},{"a":44301,"l":"b_AD0D","t":"code","b":[104],"m":"pla","x":[44254]},{"a":44302,"t":"code","b":[170],"m":"tax"},{"a":44303,"t":"code","b":[104],"m":"pla"},{"a":44304,"t":"code","b":[168],"m":"tay"},{"a":44305,"t":"code","b":[104],"m":"pla"},{"a":44306,"t":"code","b":[96],"m":"rts"},{"a":44307,"l":"fight_rate","c":"The countdown fight_generator uses per player, from 4.","t":"byte","b":[1,1,1],"x":[44251,44258]},{"a":44310,"l":"death_points","c":"After a hit on Death, takes the next value of death_scores (cycling through eight) into $AD27, which $C489 reads.","t":"code","b":[173,38,173],"m":"lda","oa":44326,"o":"death_index","x":[43529]},{"a":44313,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":44315,"t":"code","b":[170],"m":"tax"},{"a":44316,"t":"code","b":[189,40,173],"m":"lda","oa":44328,"o":"death_scores,x"},{"a":44319,"t":"code","b":[141,39,173],"m":"sta","oa":44327,"o":"death_score"},{"a":44322,"t":"code","b":[238,38,173],"m":"inc","oa":44326,"o":"death_index"},{"a":44325,"t":"code","b":[96],"m":"rts"},{"a":44326,"l":"death_index","c":"Counts Death hits, for death_points.","t":"byte","b":[0],"x":[44310,44322]},{"a":44327,"l":"death_score","c":"The value death_points last chose.","t":"byte","b":[16],"x":[44319,50313]},{"a":44328,"l":"death_scores","c":"Eight values death_points cycles through: $40 $80 $60 $50 $70 $30 $20 $10.","t":"byte","b":[64,128,96,80,112,48,32,16],"x":[44316]},{"a":44336,"l":"potion_shot","c":"A shot destroyed tile A: for tile $16 or $18-$1E it sets $BACD, which sets off a potion's effect ($BACE), and plays sound 5.","t":"code","b":[201,22],"m":"cmp","o":"#$16","x":[43240]},{"a":44338,"t":"code","b":[240,8],"m":"beq","oa":44348,"o":"b_AD3C"},{"a":44340,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":44342,"t":"code","b":[144,22],"m":"bcc","oa":44366,"o":"r_AD4E"},{"a":44344,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":44346,"t":"code","b":[176,18],"m":"bcs","oa":44366,"o":"r_AD4E"},{"a":44348,"l":"b_AD3C","t":"code","b":[138],"m":"txa","x":[44338]},{"a":44349,"t":"code","b":[72],"m":"pha"},{"a":44350,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":44352,"t":"code","b":[141,205,186],"m":"sta","oa":47821,"o":"blast_owner"},{"a":44355,"t":"code","b":[152],"m":"tya"},{"a":44356,"t":"code","b":[72],"m":"pha"},{"a":44357,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":44359,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":44362,"t":"code","b":[104],"m":"pla"},{"a":44363,"t":"code","b":[168],"m":"tay"},{"a":44364,"t":"code","b":[104],"m":"pla"},{"a":44365,"t":"code","b":[170],"m":"tax"},{"a":44366,"l":"r_AD4E","t":"code","b":[96],"m":"rts","x":[44342,44346]},{"a":44367,"l":"magic_generator","c":"A potion's blast on the generator at ($8E),y (kind in A): its value drops by the player's magic ($A00A,x); below the threshold it is destroyed (scored, cleared, $B4EA), otherwise redrawn ($B517) and scored.","t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch","x":[45535]},{"a":44370,"t":"code","b":[152],"m":"tya"},{"a":44371,"t":"code","b":[72],"m":"pha"},{"a":44372,"t":"code","b":[177,142],"m":"lda","oa":142,"o":"(zpa_8E),y"},{"a":44374,"t":"code","b":[56],"m":"sec"},{"a":44375,"t":"code","b":[253,10,160],"m":"sbc","oa":40970,"o":"magic_vs_generators,x"},{"a":44378,"t":"code","b":[145,142],"m":"sta","oa":142,"o":"(zpa_8E),y"},{"a":44380,"t":"code","b":[172,91,130],"m":"ldy","oa":33371,"o":"scratch"},{"a":44383,"t":"code","b":[217,175,172],"m":"cmp","oa":44207,"o":"gen_thresholds,y"},{"a":44386,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":44388,"t":"code","b":[144,12],"m":"bcc","oa":44402,"o":"b_AD72"},{"a":44390,"t":"code","b":[32,23,181],"m":"jsr","oa":46359,"o":"tile_draw"},{"a":44393,"t":"code","b":[224,2],"m":"cpx","o":"#$02"},{"a":44395,"t":"code","b":[144,3],"m":"bcc","oa":44400,"o":"b_AD70"},{"a":44397,"t":"code","b":[32,23,172],"m":"jsr","oa":44055,"o":"score_generator"},{"a":44400,"l":"b_AD70","t":"code","b":[104],"m":"pla","x":[44395]},{"a":44401,"t":"code","b":[96],"m":"rts"},{"a":44402,"l":"b_AD72","t":"code","b":[32,23,172],"m":"jsr","oa":44055,"o":"score_generator","x":[44388]},{"a":44405,"t":"code","b":[104],"m":"pla"},{"a":44406,"t":"code","b":[168],"m":"tay"},{"a":44407,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":44409,"t":"code","b":[145,142],"m":"sta","oa":142,"o":"(zpa_8E),y"},{"a":44411,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":44413,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":44415,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":44417,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":44419,"t":"code","b":[32,234,180],"m":"jsr","oa":46314,"o":"cell_blank"},{"a":44422,"t":"code","b":[96],"m":"rts"},{"a":44423,"l":"treasure_clock","c":"In a treasure room, every twelfth call takes a second off the clock ($ADB4) and the units digit sprite ($9157, shapes $A2-$AB) down by one, the tens digit ($9156) too when the units pass 0.","t":"code","b":[206,179,173],"m":"dec","oa":44467,"o":"treasure_tick","x":[33108]},{"a":44426,"t":"code","b":[16,38],"m":"bpl","oa":44466,"o":"r_ADB2"},{"a":44428,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":44430,"t":"code","b":[141,179,173],"m":"sta","oa":44467,"o":"treasure_tick"},{"a":44433,"t":"code","b":[206,180,173],"m":"dec","oa":44468,"o":"treasure_time"},{"a":44436,"t":"code","b":[173,87,145],"m":"lda","oa":37207,"o":"sprite3_ptr"},{"a":44439,"t":"code","b":[56],"m":"sec"},{"a":44440,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":44442,"t":"code","b":[201,162],"m":"cmp","o":"#$A2"},{"a":44444,"t":"code","b":[176,17],"m":"bcs","oa":44463,"o":"b_ADAF"},{"a":44446,"t":"code","b":[173,86,145],"m":"lda","oa":37206,"o":"sprite_ptrs"},{"a":44449,"t":"code","b":[56],"m":"sec"},{"a":44450,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":44452,"t":"code","b":[201,162],"m":"cmp","o":"#$A2"},{"a":44454,"t":"code","b":[176,2],"m":"bcs","oa":44458,"o":"b_ADAA"},{"a":44456,"t":"code","b":[169,171],"m":"lda","o":"#$AB"},{"a":44458,"l":"b_ADAA","t":"code","b":[141,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs","x":[44454]},{"a":44461,"t":"code","b":[169,171],"m":"lda","o":"#$AB"},{"a":44463,"l":"b_ADAF","t":"code","b":[141,87,145],"m":"sta","oa":37207,"o":"sprite3_ptr","x":[44444]},{"a":44466,"l":"r_ADB2","t":"code","b":[96],"m":"rts","x":[44426]},{"a":44467,"l":"treasure_tick","c":"Counts the calls to treasure_clock between seconds, from $0B.","t":"byte","b":[9],"x":[44423,44430,46423,46430]},{"a":44468,"l":"treasure_time","c":"The seconds left in a treasure room; at zero the room ends (the main loop's test at $815A).","t":"byte","b":[28],"x":[33114,44433,44490,46967]},{"a":44469,"l":"treasure_clock_set","c":"Picks a treasure room's time at random (CIA 1 timer A's low bits): from treasure_times, 20 to 30 seconds, with the two digit sprites to match.","t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo","x":[39432,45253]},{"a":44472,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":44474,"t":"code","b":[170],"m":"tax"},{"a":44475,"t":"code","b":[189,206,173],"m":"lda","oa":44494,"o":"treasure_units,x"},{"a":44478,"t":"code","b":[141,87,145],"m":"sta","oa":37207,"o":"sprite3_ptr"},{"a":44481,"t":"code","b":[189,222,173],"m":"lda","oa":44510,"o":"treasure_tens,x"},{"a":44484,"t":"code","b":[141,86,145],"m":"sta","oa":37206,"o":"sprite_ptrs"},{"a":44487,"t":"code","b":[189,238,173],"m":"lda","oa":44526,"o":"treasure_times,x"},{"a":44490,"t":"code","b":[141,180,173],"m":"sta","oa":44468,"o":"treasure_time"},{"a":44493,"t":"code","b":[96],"m":"rts"},{"a":44494,"l":"treasure_units","c":"The units digit's sprite shape for each of the sixteen random times.","t":"byte","b":[162,164,166,168,170,162,163,165],"x":[44475]},{"a":44502,"t":"byte","b":[167,169,171,162,163,164,165,166]},{"a":44510,"l":"treasure_tens","c":"The tens digit's shape.","t":"byte","b":[164,164,164,164,164,165,164,164],"x":[44481]},{"a":44518,"t":"byte","b":[164,164,164,164,164,164,164,164]},{"a":44526,"l":"treasure_times","c":"The sixteen times: 20 22 24 26 28 30 21 23 25 27 29 20 21 22 23 24.","t":"byte","b":[20,22,24,26,28,30,21,23],"x":[44487]},{"a":44534,"t":"byte","b":[25,27,29,20,21,22,23,24]},{"a":44542,"l":"treasure_end","c":"The end of a treasure room: plays sound $10 and waits for it (sfx_wait), clears the takings of a player who did not escape ($AF38/$AF3A), clears the screen, prints each player's result (treasure_result), turns the tune player off (tune_on, tune_wanted $8249 and treasure_tune_due $B0FE cleared) and rewinds the treasure tune at $E800 (tune_init, which leaves it off until treasure_start turns it on), runs $CD77 and waits.","t":"code","b":[169,16],"m":"lda","o":"#$10","x":[33119,33157]},{"a":44544,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":44547,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":44549,"l":"b_AE05","t":"code","b":[189,56,175],"m":"lda","oa":44856,"o":"escaped,x","x":[44560]},{"a":44552,"t":"code","b":[208,5],"m":"bne","oa":44559,"o":"b_AE0F"},{"a":44554,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":44556,"t":"code","b":[157,58,175],"m":"sta","oa":44858,"o":"treasures_got,x"},{"a":44559,"l":"b_AE0F","t":"code","b":[202],"m":"dex","x":[44552]},{"a":44560,"t":"code","b":[16,243],"m":"bpl","oa":44549,"o":"b_AE05"},{"a":44562,"t":"code","b":[32,101,175],"m":"jsr","oa":44901,"o":"screen_clear"},{"a":44565,"t":"code","b":[32,233,175],"m":"jsr","oa":45033,"o":"text_row_players"},{"a":44568,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":44570,"t":"code","b":[32,60,174],"m":"jsr","oa":44604,"o":"treasure_result"},{"a":44573,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":44575,"t":"code","b":[32,60,174],"m":"jsr","oa":44604,"o":"treasure_result"},{"a":44578,"t":"code","b":[32,170,206],"m":"jsr","oa":52906,"o":"sfx_wait"},{"a":44581,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":44583,"t":"code","b":[141,60,160],"m":"sta","oa":41020,"o":"tune_on"},{"a":44586,"t":"code","b":[141,73,130],"m":"sta","oa":33353,"o":"tune_wanted"},{"a":44589,"t":"code","b":[141,254,176],"m":"sta","oa":45310,"o":"treasure_tune_due"},{"a":44592,"t":"code","b":[162,232],"m":"ldx","o":"#$E8"},{"a":44594,"t":"code","b":[32,57,160],"m":"jsr","oa":41017,"o":"tune_start"},{"a":44597,"t":"code","b":[32,119,205],"m":"jsr","oa":52599,"o":"sfx_reset"},{"a":44600,"t":"code","b":[32,69,175],"m":"jsr","oa":44869,"o":"wait_64_frames"},{"a":44603,"t":"code","b":[96],"m":"rts"},{"a":44604,"l":"treasure_result","c":"Prints player X's result in its hero colour: with nothing collected, \"NO BONUS\" and \"LOOKS LIKE YOU LOSE!\"; otherwise \"TREASURES nn\" and \"BONUS nn00\", the count ($AF3A) added in decimal to the score's middle byte, a hundred points a treasure.","t":"code","b":[142,13,145],"m":"stx","oa":37133,"o":"player_cur","x":[44570,44575]},{"a":44607,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":44610,"t":"code","b":[208,1],"m":"bne","oa":44613,"o":"b_AE45"},{"a":44612,"t":"code","b":[96],"m":"rts"},{"a":44613,"l":"b_AE45","t":"code","b":[189,58,175],"m":"lda","oa":44858,"o":"treasures_got,x","x":[44610]},{"a":44616,"t":"code","b":[208,38],"m":"bne","oa":44656,"o":"b_AE70"},{"a":44618,"t":"code","b":[188,28,145],"m":"ldy","oa":37148,"o":"player_hero,x"},{"a":44621,"t":"code","b":[185,20,145],"m":"lda","oa":37140,"o":"hero_colours,y"},{"a":44624,"t":"code","b":[141,25,175],"m":"sta","oa":44825,"o":"str_no_bonus_colour"},{"a":44627,"t":"code","b":[141,35,175],"m":"sta","oa":44835,"o":"str_you_lose_colour"},{"a":44630,"t":"code","b":[32,80,177],"m":"jsr","oa":45392,"o":"print_hero_name"},{"a":44633,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":44636,"l":"arg_AE5C","c":"The address of the string the call before prints (print_centred's argument): str_treasures + 30 at $AF18, \"NO BONUS\".","t":"addr","b":[24,175],"oa":44824,"o":"str_no_bonus"},{"a":44638,"l":"treasure_result_none","c":"treasure_result goes on after \"NO BONUS\": \"LOOKS LIKE YOU LOSE!\" and the rows below.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44641,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":44644,"l":"arg_AE64","c":"The address of the string the call before prints (print_centred's argument): str_treasures + 40 at $AF22, \"LOOKS LIKE YOU LOSE!\".","t":"addr","b":[34,175],"oa":44834,"o":"str_you_lose"},{"a":44646,"l":"treasure_result_rows","c":"treasure_result's rows after its strings.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44649,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44652,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44655,"t":"code","b":[96],"m":"rts"},{"a":44656,"l":"b_AE70","t":"code","b":[188,28,145],"m":"ldy","oa":37148,"o":"player_hero,x","x":[44616]},{"a":44659,"t":"code","b":[185,20,145],"m":"lda","oa":37140,"o":"hero_colours,y"},{"a":44662,"t":"code","b":[141,251,174],"m":"sta","oa":44795,"o":"str_treasures_colour"},{"a":44665,"t":"code","b":[141,11,175],"m":"sta","oa":44811,"o":"str_bonus_colour"},{"a":44668,"t":"code","b":[189,58,175],"m":"lda","oa":44858,"o":"treasures_got,x"},{"a":44671,"t":"code","b":[32,140,176],"m":"jsr","oa":45196,"o":"to_digits"},{"a":44674,"t":"code","b":[140,8,175],"m":"sty","oa":44808,"o":"treasures_digit_1"},{"a":44677,"t":"code","b":[141,9,175],"m":"sta","oa":44809,"o":"treasures_digit_2"},{"a":44678,"t":"note","l":"treasure_result_bcd","c":"Part of treasure_result: turns the treasure count's digits into one decimal byte and adds it to the score. Its address is also where pinn232 calls the BASIC ROM ($AE86), which the snapshot shows as this RAM beneath.","note":"inside the item at $AE85","x":[5262]},{"a":44680,"t":"code","b":[140,20,175],"m":"sty","oa":44820,"o":"bonus_digit_1"},{"a":44683,"t":"code","b":[141,21,175],"m":"sta","oa":44821,"o":"bonus_digit_2"},{"a":44686,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":44688,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":44691,"t":"code","b":[152],"m":"tya"},{"a":44692,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":44694,"t":"code","b":[10],"m":"asl","o":"a"},{"a":44695,"t":"code","b":[10],"m":"asl","o":"a"},{"a":44696,"t":"code","b":[10],"m":"asl","o":"a"},{"a":44697,"t":"code","b":[10],"m":"asl","o":"a"},{"a":44698,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":44701,"t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur"},{"a":44704,"t":"code","b":[248],"m":"sed"},{"a":44705,"t":"code","b":[24],"m":"clc"},{"a":44706,"t":"code","b":[125,43,185],"m":"adc","oa":47403,"o":"score_mid,x"},{"a":44709,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":44712,"t":"code","b":[189,45,185],"m":"lda","oa":47405,"o":"score_hi,x"},{"a":44715,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":44717,"t":"code","b":[157,45,185],"m":"sta","oa":47405,"o":"score_hi,x"},{"a":44720,"t":"code","b":[216],"m":"cld"},{"a":44721,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":44723,"t":"code","b":[141,95,182],"m":"sta","oa":46687,"o":"panel_dirty"},{"a":44726,"t":"code","b":[32,80,177],"m":"jsr","oa":45392,"o":"print_hero_name"},{"a":44729,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":44732,"l":"arg_AEBC","c":"The address of the string the call before prints (print_centred's argument): str_treasures at $AEFA, \"TREASURES\" and the count.","t":"addr","b":[250,174],"oa":44794,"o":"str_treasures"},{"a":44734,"l":"treasure_result_got","c":"treasure_result goes on after \"TREASURES nn\": the BONUS line.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44737,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":44740,"l":"arg_AEC4","c":"The address of the string the call before prints (print_centred's argument): the BONUS line at $AF0A, \"BONUS\" and the bonus.","t":"addr","b":[10,175],"oa":44810,"o":"str_bonus"},{"a":44742,"l":"treasure_result_end","c":"treasure_result's last rows.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44745,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44748,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":44751,"t":"code","b":[96],"m":"rts"},{"a":44752,"l":"hero_name_ptrs","c":"The address of each hero's name for the message screens.","t":"addr","b":[216,174],"oa":44760,"o":"str_hero_names","x":[45397,47021]},{"a":44753,"t":"note","l":"hero_name_ptrs_hi","c":"The high bytes of hero_name_ptrs.","note":"inside the item at $AED0","x":[45403,47027]},{"a":44754,"t":"addr","b":[226,174],"oa":44770,"o":"str_valkyrie"},{"a":44756,"t":"addr","b":[236,174],"oa":44780,"o":"str_wizard"},{"a":44758,"t":"addr","b":[244,174],"oa":44788,"o":"str_elf"},{"a":44760,"l":"str_hero_names","c":"The four heroes' names for the message screens, each a length, a colour and the glyphs: WARRIOR ($90-$97), VALKYRIE, WIZARD, ELF ($5B-$5E).","t":"byte","b":[8,2,144,145,146,147,148,149],"x":[44752,45412]},{"a":44768,"t":"byte","b":[150,151]},{"a":44770,"l":"str_valkyrie","c":"\"VALKYRIE\" for the message screens.","t":"byte","b":[8,3,86,65,76,75,89,82],"x":[44754]},{"a":44778,"t":"byte","b":[73,69]},{"a":44780,"l":"str_wizard","c":"\"WIZARD\".","t":"byte","b":[6,7,87,73,90,65,82,68],"x":[44756]},{"a":44788,"l":"str_elf","c":"\"ELF\", in the panel font's own glyphs.","t":"byte","b":[4,5,91,92,93,94],"x":[44758]},{"a":44794,"l":"str_treasures","c":"\"TREASURES \" and two digits ($AF08/$AF09), then \"BONUS \" and digits ($AF14), \"NO BONUS\" ($AF18) and \"LOOKS LIKE YOU LOSE!\" ($AF22): each a length, a colour and the text.","t":"byte","b":[14],"x":[44732]},{"a":44795,"l":"str_treasures_colour","c":"The TREASURES line's colour byte, set to the hero's colour.","t":"byte","b":[3,84,82,69,65,83,85,82],"x":[44662]},{"a":44803,"t":"byte","b":[69,83,32,152,32]},{"a":44808,"l":"treasures_digit_1","c":"The count's tens digit.","t":"byte","b":[48],"x":[44674]},{"a":44809,"l":"treasures_digit_2","c":"The count's units digit.","t":"byte","b":[48],"x":[44677]},{"a":44810,"l":"str_bonus","c":"The BONUS line: length and colour.","t":"byte","b":[12],"x":[44740]},{"a":44811,"l":"str_bonus_colour","c":"Its colour byte, set to the hero's colour, then \"BONUS\".","t":"byte","b":[3,66,79,78,85,83,32,154],"x":[44665]},{"a":44819,"t":"byte","b":[32]},{"a":44820,"l":"bonus_digit_1","c":"The bonus's first digit.","t":"byte","b":[48],"x":[44680]},{"a":44821,"l":"bonus_digit_2","c":"The bonus's second digit, then \"00\".","t":"byte","b":[48,48,48],"x":[44683]},{"a":44824,"l":"str_no_bonus","c":"\"NO BONUS\": length and colour.","t":"byte","b":[8],"x":[44636]},{"a":44825,"l":"str_no_bonus_colour","c":"Its colour byte, then the text.","t":"byte","b":[3,78,79,32,66,79,78,85],"x":[44624]},{"a":44833,"t":"byte","b":[83]},{"a":44834,"l":"str_you_lose","c":"\"LOOKS LIKE YOU LOSE!\": length and colour.","t":"byte","b":[20],"x":[44644]},{"a":44835,"l":"str_you_lose_colour","c":"The colour byte of \"LOOKS LIKE YOU LOSE!\", set to the hero's colour, then its text.","t":"byte","b":[3,76,79,79,75,83,32,76],"x":[44627]},{"a":44843,"t":"byte","b":[73,75,69,32,89,79,85,32]},{"a":44851,"t":"byte","b":[76,79,83,69,33]},{"a":44856,"l":"escaped","c":"Set for a player who leaves a treasure room through its exit, from the time left ($ADB4).","t":"byte","b":[0],"x":[33335,44549,46970]},{"a":44857,"l":"escaped_p2","c":"Player two's escape flag.","t":"byte","b":[0],"x":[33338]},{"a":44858,"l":"treasures_got","c":"The treasures each player picked up in a treasure room.","t":"byte","b":[0],"x":[33323,44556,44613,44668,47387]},{"a":44859,"l":"treasures_got_p2","c":"Player two's treasures.","t":"byte","b":[0],"x":[33326]},{"a":44860,"l":"rooms_countdown","c":"Levels left before the next treasure room (level_pick).","t":"byte","b":[5],"x":[32898,39388,39620,39632]},{"a":44861,"l":"text_rows","c":"The rows text_row can choose for the message screens, colour RAM then screen: X = 0 colour $D918 and screen $4118, X = 2 colour $D878 and screen $4078.","t":"byte","b":[24],"x":[45053]},{"a":44862,"l":"text_rows_colour_hi","c":"The colour row addresses' high bytes.","t":"byte","b":[217,120,216],"x":[45058]},{"a":44865,"l":"text_rows_screen","c":"The screen row addresses, low byte first.","t":"byte","b":[24],"x":[45043]},{"a":44866,"l":"text_rows_screen_hi","c":"Their high bytes.","t":"byte","b":[65,120,64],"x":[45048]},{"a":44869,"l":"wait_64_frames","c":"Sets the frame counter $8247 to $C0 and waits until it comes round to zero: 64 frames.","t":"code","b":[169,192],"m":"lda","o":"#$C0","x":[32854,40598,44600,47070]},{"a":44871,"t":"code","b":[141,71,130],"m":"sta","oa":33351,"o":"frame_count"},{"a":44874,"l":"b_AF4A","t":"code","b":[173,71,130],"m":"lda","oa":33351,"o":"frame_count","x":[44877]},{"a":44877,"t":"code","b":[208,251],"m":"bne","oa":44874,"o":"b_AF4A"},{"a":44879,"t":"code","b":[96],"m":"rts"},{"a":44880,"l":"sprites_hide_digits","c":"Puts sprites 2-4 at X and Y 0.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[33016,44911]},{"a":44882,"t":"code","b":[141,62,145],"m":"sta","oa":37182,"o":"sprite_x"},{"a":44885,"t":"code","b":[141,63,145],"m":"sta","oa":37183,"o":"sprite3_x"},{"a":44888,"t":"code","b":[141,64,145],"m":"sta","oa":37184,"o":"sprite4_x"},{"a":44891,"t":"code","b":[141,68,145],"m":"sta","oa":37188,"o":"sprite_y"},{"a":44894,"t":"code","b":[141,69,145],"m":"sta","oa":37189,"o":"sprite3_y"},{"a":44897,"t":"code","b":[141,70,145],"m":"sta","oa":37190,"o":"sprite4_y"},{"a":44900,"t":"code","b":[96],"m":"rts"},{"a":44901,"l":"screen_clear","c":"Puts the scroll back to its rest position (fine Y 7, X 0), hides the digit sprites, then text_screen.","t":"code","b":[169,7],"m":"lda","o":"#$07","x":[32910,32916,32943,39452,44562,45224]},{"a":44903,"t":"code","b":[141,46,136],"m":"sta","oa":34862,"o":"scroll_fine_y"},{"a":44906,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":44908,"t":"code","b":[141,47,136],"m":"sta","oa":34863,"o":"scroll_fine_x"},{"a":44911,"t":"code","b":[32,80,175],"m":"jsr","oa":44880,"o":"sprites_hide_digits"},{"a":44914,"l":"text_screen","c":"Turns the screen over to text: freezes both players, empties the four shot slots, hides sprites 4-7, colours sprites 2-5 blue (6), waits for the scrolling to stop, clears the screen at $4000 and its colour, shows it with no sprites, and sets the panel font (font select 8, $C60A).","t":"code","b":[169,15],"m":"lda","o":"#$0F","x":[40563,47033]},{"a":44916,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":44919,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":44922,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":44924,"t":"code","b":[141,84,168],"m":"sta","oa":43092,"o":"shot_type"},{"a":44927,"t":"code","b":[141,85,168],"m":"sta","oa":43093,"o":"shot_type_1"},{"a":44930,"t":"code","b":[141,86,168],"m":"sta","oa":43094,"o":"shot_type_2"},{"a":44933,"t":"code","b":[141,87,168],"m":"sta","oa":43095,"o":"shot_type_3"},{"a":44936,"t":"code","b":[141,70,145],"m":"sta","oa":37190,"o":"sprite4_y"},{"a":44939,"t":"code","b":[141,71,145],"m":"sta","oa":37191,"o":"sprite5_y"},{"a":44942,"t":"code","b":[141,72,145],"m":"sta","oa":37192,"o":"player_sprite_y"},{"a":44945,"t":"code","b":[141,73,145],"m":"sta","oa":37193,"o":"player2_sprite_y"},{"a":44948,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":44950,"t":"code","b":[141,188,170],"m":"sta","oa":43708,"o":"shot_colours"},{"a":44953,"t":"code","b":[141,189,170],"m":"sta","oa":43709,"o":"shot_colour_1"},{"a":44956,"t":"code","b":[141,190,170],"m":"sta","oa":43710,"o":"shot_colour_2"},{"a":44959,"t":"code","b":[141,191,170],"m":"sta","oa":43711,"o":"shot_colour_3"},{"a":44962,"t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40"},{"a":44965,"l":"b_AFA5","t":"code","b":[173,55,136],"m":"lda","oa":34871,"o":"scroll_dir","x":[44970]},{"a":44968,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":44970,"t":"code","b":[208,249],"m":"bne","oa":44965,"o":"b_AFA5"},{"a":44972,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":44974,"l":"b_AFAE","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[44995]},{"a":44976,"t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y"},{"a":44979,"t":"code","b":[153,0,217],"m":"sta","o":"$D900,y"},{"a":44982,"t":"code","b":[153,0,218],"m":"sta","o":"$DA00,y"},{"a":44985,"t":"code","b":[153,0,64],"m":"sta","oa":16384,"o":"f_4000,y"},{"a":44988,"t":"code","b":[153,0,65],"m":"sta","oa":16640,"o":"f_4100,y"},{"a":44991,"t":"code","b":[153,0,66],"m":"sta","oa":16896,"o":"f_4200,y"},{"a":44994,"t":"code","b":[200],"m":"iny"},{"a":44995,"t":"code","b":[208,233],"m":"bne","oa":44974,"o":"b_AFAE"},{"a":44997,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":44999,"l":"b_AFC7","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[45008]},{"a":45001,"t":"code","b":[153,0,67],"m":"sta","oa":17152,"o":"f_4300,y"},{"a":45004,"t":"code","b":[153,0,219],"m":"sta","o":"$DB00,y"},{"a":45007,"t":"code","b":[136],"m":"dey"},{"a":45008,"t":"code","b":[16,245],"m":"bpl","oa":44999,"o":"b_AFC7"},{"a":45010,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":45012,"t":"code","b":[141,80,130],"m":"sta","oa":33360,"o":"screen_front"},{"a":45015,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":45018,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":45020,"t":"code","b":[141,81,130],"m":"sta","oa":33361,"o":"font_select"},{"a":45023,"t":"code","b":[32,10,198],"m":"jsr","oa":50698,"o":"vic_font"},{"a":45026,"t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40"},{"a":45029,"t":"code","b":[32,244,129],"m":"jsr","oa":33268,"o":"wait_frame_40"},{"a":45032,"t":"code","b":[96],"m":"rts"},{"a":45033,"l":"text_row_players","c":"Picks the message screen's first row by the number of players in the game (two players start higher), then text_row.","t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state","x":[44565]},{"a":45036,"t":"code","b":[24],"m":"clc"},{"a":45037,"t":"code","b":[109,33,145],"m":"adc","oa":37153,"o":"player2_state"},{"a":45040,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":45042,"t":"code","b":[170],"m":"tax"},{"a":45043,"l":"text_row","c":"Points $8C/$8D at a row of the message screen and $8E/$8F at its colour (text_rows, entry X).","t":"code","b":[189,65,175],"m":"lda","oa":44865,"o":"text_rows_screen,x","x":[39457,39485,40568,42097,45229,47038]},{"a":45046,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":45048,"t":"code","b":[189,66,175],"m":"lda","oa":44866,"o":"text_rows_screen_hi,x"},{"a":45051,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":45053,"t":"code","b":[189,61,175],"m":"lda","oa":44861,"o":"text_rows,x"},{"a":45056,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45058,"t":"code","b":[189,62,175],"m":"lda","oa":44862,"o":"text_rows_colour_hi,x"},{"a":45061,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45063,"t":"code","b":[96],"m":"rts"},{"a":45064,"l":"print_centred","c":"Prints a string centred on the row at $8C/$8D (colour at $8E/$8F). The string's address is the two bytes after the JSR, which this routine skips on return. A string is a length, a colour and the characters; each character is written less $20 (the font's own order) and its colour beside it; the row pointers then move down a row (text_next_row).","t":"code","b":[104],"m":"pla","x":[39463,39468,39500,39512,40580,40588,42100,44633,44641,44729,44737,45235,45243,45248,45409,47041,47049,47057]},{"a":45065,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":45067,"t":"code","b":[24],"m":"clc"},{"a":45068,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":45070,"t":"code","b":[170],"m":"tax"},{"a":45071,"t":"code","b":[104],"m":"pla"},{"a":45072,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":45074,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":45076,"t":"code","b":[72],"m":"pha"},{"a":45077,"t":"code","b":[138],"m":"txa"},{"a":45078,"t":"code","b":[72],"m":"pha"},{"a":45079,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":45081,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":45083,"t":"code","b":[72],"m":"pha"},{"a":45084,"t":"code","b":[200],"m":"iny"},{"a":45085,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":45087,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":45089,"t":"code","b":[104],"m":"pla"},{"a":45090,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":45092,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":45094,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":45096,"t":"code","b":[56],"m":"sec"},{"a":45097,"t":"code","b":[241,251],"m":"sbc","oa":251,"o":"(zpa_FB),y"},{"a":45099,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":45100,"t":"code","b":[72],"m":"pha"},{"a":45101,"t":"code","b":[24],"m":"clc"},{"a":45102,"t":"code","b":[101,140],"m":"adc","oa":140,"o":"zpa_8C"},{"a":45104,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":45106,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":45108,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":45110,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":45112,"t":"code","b":[104],"m":"pla"},{"a":45113,"t":"code","b":[24],"m":"clc"},{"a":45114,"t":"code","b":[101,142],"m":"adc","oa":142,"o":"zpa_8E"},{"a":45116,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":45118,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":45120,"t":"code","b":[101,143],"m":"adc","oa":143,"o":"zpa_8F"},{"a":45122,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":45124,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":45126,"t":"code","b":[170],"m":"tax"},{"a":45127,"t":"code","b":[200],"m":"iny"},{"a":45128,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":45130,"t":"code","b":[141,139,176],"m":"sta","oa":45195,"o":"print_colour"},{"a":45133,"t":"code","b":[165,251],"m":"lda","oa":251,"o":"zpa_FB"},{"a":45135,"t":"code","b":[24],"m":"clc"},{"a":45136,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":45138,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":45140,"t":"code","b":[165,252],"m":"lda","oa":252,"o":"zpa_FC"},{"a":45142,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":45144,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":45146,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":45148,"l":"b_B05C","t":"code","b":[200],"m":"iny","x":[45162]},{"a":45149,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":45151,"t":"code","b":[56],"m":"sec"},{"a":45152,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":45154,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":45156,"t":"code","b":[173,139,176],"m":"lda","oa":45195,"o":"print_colour"},{"a":45159,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":45161,"t":"code","b":[202],"m":"dex"},{"a":45162,"t":"code","b":[208,240],"m":"bne","oa":45148,"o":"b_B05C"},{"a":45164,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":45167,"t":"code","b":[96],"m":"rts"},{"a":45168,"l":"text_next_row","c":"Moves the text row pointers $8C/$8D and $8E/$8F down one row (40 bytes).","t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C","x":[40577,40585,44638,44646,44649,44652,44734,44742,44745,44748,45164,45232,45240,45385,45414,47046,47054]},{"a":45170,"t":"code","b":[24],"m":"clc"},{"a":45171,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":45173,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":45175,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":45177,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":45179,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":45181,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":45183,"t":"code","b":[24],"m":"clc"},{"a":45184,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":45186,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45188,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":45190,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":45192,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45194,"t":"code","b":[96],"m":"rts"},{"a":45195,"l":"print_colour","c":"The colour print_centred is writing in.","t":"byte","b":[10],"x":[45130,45156]},{"a":45196,"l":"to_digits","c":"Turns the number in A (0-255) into three ASCII digits: hundreds in X, tens in Y, units in A.","t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch","x":[39681,39701,44671]},{"a":45199,"t":"code","b":[162,48],"m":"ldx","o":"#$30"},{"a":45201,"t":"code","b":[160,48],"m":"ldy","o":"#$30"},{"a":45203,"l":"b_B093","t":"code","b":[201,100],"m":"cmp","o":"#$64","x":[45210]},{"a":45205,"t":"code","b":[144,5],"m":"bcc","oa":45212,"o":"b_B09C"},{"a":45207,"t":"code","b":[233,100],"m":"sbc","o":"#$64"},{"a":45209,"t":"code","b":[232],"m":"inx"},{"a":45210,"t":"code","b":[208,247],"m":"bne","oa":45203,"o":"b_B093"},{"a":45212,"l":"b_B09C","t":"code","b":[201,10],"m":"cmp","o":"#$0A","x":[45205,45219]},{"a":45214,"t":"code","b":[144,5],"m":"bcc","oa":45221,"o":"b_B0A5"},{"a":45216,"t":"code","b":[233,10],"m":"sbc","o":"#$0A"},{"a":45218,"t":"code","b":[200],"m":"iny"},{"a":45219,"t":"code","b":[208,247],"m":"bne","oa":45212,"o":"b_B09C"},{"a":45221,"l":"b_B0A5","t":"code","b":[9,48],"m":"ora","o":"#$30","x":[45214]},{"a":45223,"t":"code","b":[96],"m":"rts"},{"a":45224,"l":"treasure_intro","c":"The start of a treasure room: clears the screen, prints \"YOU HAVE FOUND A\" and the two rows of big letters \"TREASURE ROOM\", sets the clock (treasure_clock_set), prints the level's messages and asks for the treasure tune (treasure_tune_due).","t":"code","b":[32,101,175],"m":"jsr","oa":44901,"o":"screen_clear","x":[39442]},{"a":45227,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":45229,"t":"code","b":[32,243,175],"m":"jsr","oa":45043,"o":"text_row"},{"a":45232,"t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":45235,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":45238,"l":"arg_B0B6","c":"The address of the string the call before prints (print_centred's argument): str_treasure_room at $B0FF, \"YOU HAVE FOUND A\".","t":"addr","b":[255,176],"oa":45311,"o":"str_treasure_room"},{"a":45240,"l":"treasure_intro_2","c":"treasure_intro goes on after its first string: the big letters.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":45243,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":45246,"l":"arg_B0BE","c":"The address of the string the call before prints (print_centred's argument): the top half of the big TREASURE ROOM at $B111.","t":"addr","b":[17,177],"oa":45329,"o":"str_treasure_room_top"},{"a":45248,"l":"treasure_intro_3","c":"After the top half of the big letters: the bottom half.","t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":45251,"l":"arg_B0C3","c":"The address of the string the call before prints (print_centred's argument): the bottom half of the big TREASURE ROOM at $B12D.","t":"addr","b":[45,177],"oa":45357,"o":"str_treasure_room_bottom"},{"a":45253,"l":"treasure_intro_4","c":"After the strings: the clock, the messages and the tune flag.","t":"code","b":[32,181,173],"m":"jsr","oa":44469,"o":"treasure_clock_set"},{"a":45256,"t":"code","b":[32,59,154],"m":"jsr","oa":39483,"o":"level_messages"},{"a":45259,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":45261,"t":"code","b":[141,254,176],"m":"sta","oa":45310,"o":"treasure_tune_due"},{"a":45264,"t":"code","b":[96],"m":"rts"},{"a":45265,"l":"treasure_start","c":"On the first pass of a treasure room: starts the tune at $E800 with the tune player (tune_start), runs $CD77, turns the tune on, and puts the clock's two digit sprites at X $A8 and $BC, Y $36.","t":"code","b":[173,254,176],"m":"lda","oa":45310,"o":"treasure_tune_due","x":[33093]},{"a":45268,"t":"code","b":[240,39],"m":"beq","oa":45309,"o":"r_B0FD"},{"a":45270,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":45272,"t":"code","b":[141,254,176],"m":"sta","oa":45310,"o":"treasure_tune_due"},{"a":45275,"t":"code","b":[162,232],"m":"ldx","o":"#$E8"},{"a":45277,"t":"code","b":[32,57,160],"m":"jsr","oa":41017,"o":"tune_start"},{"a":45280,"t":"code","b":[32,119,205],"m":"jsr","oa":52599,"o":"sfx_reset"},{"a":45283,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":45285,"t":"code","b":[141,73,130],"m":"sta","oa":33353,"o":"tune_wanted"},{"a":45288,"t":"code","b":[141,60,160],"m":"sta","oa":41020,"o":"tune_on"},{"a":45291,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":45293,"t":"code","b":[141,62,145],"m":"sta","oa":37182,"o":"sprite_x"},{"a":45296,"t":"code","b":[169,188],"m":"lda","o":"#$BC"},{"a":45298,"t":"code","b":[141,63,145],"m":"sta","oa":37183,"o":"sprite3_x"},{"a":45301,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":45303,"t":"code","b":[141,68,145],"m":"sta","oa":37188,"o":"sprite_y"},{"a":45306,"t":"code","b":[141,69,145],"m":"sta","oa":37189,"o":"sprite3_y"},{"a":45309,"l":"r_B0FD","t":"code","b":[96],"m":"rts","x":[45268]},{"a":45310,"l":"treasure_tune_due","c":"Set by treasure_intro; treasure_start clears it once it has started the tune.","t":"byte","b":[0],"x":[44589,45261,45265,45272]},{"a":45311,"l":"str_treasure_room","c":"\"YOU HAVE FOUND A\" ($10 long, colour 1), then the big \"TREASURE ROOM\" in two rows of the font's large-letter glyphs ($E3-$F4 for the top halves at $B111, $03-$14 for the bottom at $B12D), $1A long, colour $0E.","t":"byte","b":[16,1,89,79,85,32,72,65],"x":[45238]},{"a":45319,"t":"byte","b":[86,69,32,70,79,85,78,68]},{"a":45327,"t":"byte","b":[32,65]},{"a":45329,"l":"str_treasure_room_top","c":"The top half of the big \"TREASURE ROOM\".","t":"byte","b":[26,14,233,234,235,236,227,228],"x":[45246]},{"a":45337,"t":"byte","b":[239,240,237,238,241,242,235,236]},{"a":45345,"t":"byte","b":[227,228,32,32,235,236,231,232]},{"a":45353,"t":"byte","b":[231,232,243,244]},{"a":45357,"l":"str_treasure_room_bottom","c":"The bottom half.","t":"byte","b":[26,14,9,10,11,12,3,4],"x":[45251]},{"a":45365,"t":"byte","b":[15,16,13,14,17,18,11,12]},{"a":45373,"t":"byte","b":[3,4,32,32,11,12,7,8]},{"a":45381,"t":"byte","b":[7,8,19,20]},{"a":45385,"l":"text_rows_down","c":"Moves the text row pointers down X + 1 rows.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row","x":[39490,45389]},{"a":45388,"t":"code","b":[202],"m":"dex"},{"a":45389,"t":"code","b":[16,250],"m":"bpl","oa":45385,"o":"text_rows_down"},{"a":45391,"t":"code","b":[96],"m":"rts"},{"a":45392,"l":"print_hero_name","c":"Prints player X's hero's name (from hero_name_ptrs, by writing the address into its own call's argument at $B164) and moves down a row.","t":"code","b":[189,28,145],"m":"lda","oa":37148,"o":"player_hero,x","x":[40574,44630,44726]},{"a":45395,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45396,"t":"code","b":[168],"m":"tay"},{"a":45397,"t":"code","b":[185,208,174],"m":"lda","oa":44752,"o":"hero_name_ptrs,y"},{"a":45400,"t":"code","b":[141,100,177],"m":"sta","oa":45412,"o":"arg_B164"},{"a":45403,"t":"code","b":[185,209,174],"m":"lda","oa":44753,"o":"hero_name_ptrs_hi,y"},{"a":45406,"t":"code","b":[141,101,177],"m":"sta","oa":45413,"o":"hero_name_arg_hi"},{"a":45409,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":45412,"l":"arg_B164","c":"print_hero_name's argument: the address of the hero's name, rewritten from hero_name_ptrs before the call.","t":"addr","b":[216,174],"oa":44760,"o":"str_hero_names","x":[45400]},{"a":45413,"t":"note","l":"hero_name_arg_hi","c":"The high byte of print_hero_name's argument.","note":"inside the item at $B164","x":[45406]},{"a":45414,"l":"print_hero_name_end","c":"print_hero_name goes on after its string: next row and return.","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":45417,"t":"code","b":[96],"m":"rts"},{"a":45418,"l":"generators_run","c":"Every eighth pass (while somebody plays, or at once while a potion's blast is under way, $BACD), with fewer than 192 monsters: looks at the 16 x 10 tiles on screen (from map_x / 2, map_y / 2). A transporter ($30) is added to the list (teleport_add). A generator ($20-$2E) is hit by the blast if there is one (magic_generator), and picks a random direction (the CIA 1 timers mixed): if the cell that way is free (gen_spot), a monster of its kind comes out there (monster_spawn).","t":"code","b":[173,205,186],"m":"lda","oa":47821,"o":"blast_owner","x":[33203]},{"a":45421,"t":"code","b":[208,15],"m":"bne","oa":45438,"o":"b_B17E"},{"a":45423,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":45426,"t":"code","b":[13,33,145],"m":"ora","oa":37153,"o":"player2_state"},{"a":45429,"t":"code","b":[240,26],"m":"beq","oa":45457,"o":"r_B191"},{"a":45431,"t":"code","b":[173,75,130],"m":"lda","oa":33355,"o":"pass_count"},{"a":45434,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":45436,"t":"code","b":[208,19],"m":"bne","oa":45457,"o":"r_B191"},{"a":45438,"l":"b_B17E","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[45421]},{"a":45440,"t":"code","b":[141,62,144],"m":"sta","oa":36926,"o":"teleport_count"},{"a":45443,"t":"code","b":[141,241,191],"m":"sta","oa":49137,"o":"attack_flag"},{"a":45446,"t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count"},{"a":45449,"t":"code","b":[201,192],"m":"cmp","o":"#$C0"},{"a":45451,"t":"code","b":[144,5],"m":"bcc","oa":45458,"o":"b_B192"},{"a":45453,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":45455,"t":"code","b":[240,1],"m":"beq","oa":45458,"o":"b_B192"},{"a":45457,"l":"r_B191","t":"code","b":[96],"m":"rts","x":[45429,45436]},{"a":45458,"l":"b_B192","t":"code","b":[173,51,136],"m":"lda","oa":34867,"o":"map_y","x":[45451,45455]},{"a":45461,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":45462,"t":"code","b":[141,155,178],"m":"sta","oa":45723,"o":"tile_cur_y"},{"a":45465,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":45467,"t":"code","b":[141,157,178],"m":"sta","oa":45725,"o":"gen_rows_left"},{"a":45470,"l":"b_B19E","t":"code","b":[169,15],"m":"lda","o":"#$0F","x":[45578]},{"a":45472,"t":"code","b":[141,156,178],"m":"sta","oa":45724,"o":"gen_cols_left"},{"a":45475,"t":"code","b":[173,49,136],"m":"lda","oa":34865,"o":"map_x"},{"a":45478,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":45479,"t":"code","b":[141,154,178],"m":"sta","oa":45722,"o":"tile_cur_x"},{"a":45482,"l":"b_B1AA","t":"code","b":[173,155,178],"m":"lda","oa":45723,"o":"tile_cur_y","x":[45570]},{"a":45485,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45487,"t":"code","b":[170],"m":"tax"},{"a":45488,"t":"code","b":[173,154,178],"m":"lda","oa":45722,"o":"tile_cur_x"},{"a":45491,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45493,"t":"code","b":[29,112,142],"m":"ora","oa":36464,"o":"map_row_lo,x"},{"a":45496,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45498,"t":"code","b":[189,144,142],"m":"lda","oa":36496,"o":"map_row_hi,x"},{"a":45501,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45503,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":45505,"t":"code","b":[177,142],"m":"lda","oa":142,"o":"(zpa_8E),y"},{"a":45507,"t":"code","b":[56],"m":"sec"},{"a":45508,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":45510,"t":"code","b":[144,52],"m":"bcc","oa":45564,"o":"b_B1FC"},{"a":45512,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":45514,"t":"code","b":[208,6],"m":"bne","oa":45522,"o":"b_B1D2"},{"a":45516,"t":"code","b":[32,222,142],"m":"jsr","oa":36574,"o":"teleport_add"},{"a":45519,"t":"code","b":[76,252,177],"m":"jmp","oa":45564,"o":"b_B1FC"},{"a":45522,"l":"b_B1D2","t":"code","b":[201,15],"m":"cmp","o":"#$0F","x":[45514]},{"a":45524,"t":"code","b":[176,38],"m":"bcs","oa":45564,"o":"b_B1FC"},{"a":45526,"t":"code","b":[141,153,178],"m":"sta","oa":45721,"o":"gen_kind"},{"a":45529,"t":"code","b":[174,205,186],"m":"ldx","oa":47821,"o":"blast_owner"},{"a":45532,"t":"code","b":[240,4],"m":"beq","oa":45538,"o":"b_B1E2"},{"a":45534,"t":"code","b":[202],"m":"dex"},{"a":45535,"t":"code","b":[32,79,173],"m":"jsr","oa":44367,"o":"magic_generator"},{"a":45538,"l":"b_B1E2","t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo","x":[45532]},{"a":45541,"t":"code","b":[109,5,220],"m":"adc","o":"cia1_timer_a_hi"},{"a":45544,"t":"code","b":[109,6,220],"m":"adc","o":"cia1_timer_b_lo"},{"a":45547,"t":"code","b":[109,7,220],"m":"adc","o":"cia1_timer_b_hi"},{"a":45550,"t":"code","b":[77,5,220],"m":"eor","o":"cia1_timer_a_hi"},{"a":45553,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":45555,"t":"code","b":[170],"m":"tax"},{"a":45556,"t":"code","b":[32,13,178],"m":"jsr","oa":45581,"o":"gen_spot"},{"a":45559,"t":"code","b":[208,3],"m":"bne","oa":45564,"o":"b_B1FC"},{"a":45561,"t":"code","b":[32,48,178],"m":"jsr","oa":45616,"o":"monster_spawn"},{"a":45564,"l":"b_B1FC","t":"code","b":[238,154,178],"m":"inc","oa":45722,"o":"tile_cur_x","x":[45510,45519,45524,45559]},{"a":45567,"t":"code","b":[206,156,178],"m":"dec","oa":45724,"o":"gen_cols_left"},{"a":45570,"t":"code","b":[16,166],"m":"bpl","oa":45482,"o":"b_B1AA"},{"a":45572,"t":"code","b":[238,155,178],"m":"inc","oa":45723,"o":"tile_cur_y"},{"a":45575,"t":"code","b":[206,157,178],"m":"dec","oa":45725,"o":"gen_rows_left"},{"a":45578,"t":"code","b":[16,146],"m":"bpl","oa":45470,"o":"b_B19E"},{"a":45580,"t":"code","b":[96],"m":"rts"},{"a":45581,"l":"gen_spot","c":"Works out the cell beside the generator in direction X (gen_dx, gen_dy) as a position in $BE6E/$BE6F and asks whether it is free ($BDBF, $BE1A).","t":"code","b":[189,137,178],"m":"lda","oa":45705,"o":"gen_dx,x","x":[45556]},{"a":45584,"t":"code","b":[24],"m":"clc"},{"a":45585,"t":"code","b":[109,154,178],"m":"adc","oa":45722,"o":"tile_cur_x"},{"a":45588,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45590,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45591,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45592,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":45595,"t":"code","b":[189,145,178],"m":"lda","oa":45713,"o":"gen_dy,x"},{"a":45598,"t":"code","b":[24],"m":"clc"},{"a":45599,"t":"code","b":[109,155,178],"m":"adc","oa":45723,"o":"tile_cur_y"},{"a":45602,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45604,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45605,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45606,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":45609,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":45612,"t":"code","b":[32,26,190],"m":"jsr","oa":48666,"o":"cells_empty"},{"a":45615,"t":"code","b":[96],"m":"rts"},{"a":45616,"l":"monster_spawn","c":"Adds a monster to the table (unless it holds 192): its position from the generator's tile and the direction, its kind byte (monster_kinds for the generator's tile, ORed with the direction as its facing) in $0580, its flags cleared; then marks it in the maps ($BDDE) and draws it ($CAD3, $CB42).","t":"code","b":[172,78,130],"m":"ldy","oa":33358,"o":"monster_count","x":[45561]},{"a":45619,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":45621,"t":"code","b":[240,4],"m":"beq","oa":45627,"o":"b_B23B"},{"a":45623,"t":"code","b":[192,191],"m":"cpy","o":"#$BF"},{"a":45625,"t":"code","b":[176,62],"m":"bcs","oa":45689,"o":"r_B279"},{"a":45627,"l":"b_B23B","t":"code","b":[200],"m":"iny","x":[45621]},{"a":45628,"t":"code","b":[140,78,130],"m":"sty","oa":33358,"o":"monster_count"},{"a":45631,"t":"code","b":[173,154,178],"m":"lda","oa":45722,"o":"tile_cur_x"},{"a":45634,"t":"code","b":[24],"m":"clc"},{"a":45635,"t":"code","b":[125,137,178],"m":"adc","oa":45705,"o":"gen_dx,x"},{"a":45638,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45640,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45641,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":45644,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45645,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":45648,"t":"code","b":[173,155,178],"m":"lda","oa":45723,"o":"tile_cur_y"},{"a":45651,"t":"code","b":[24],"m":"clc"},{"a":45652,"t":"code","b":[125,145,178],"m":"adc","oa":45713,"o":"gen_dy,x"},{"a":45655,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45657,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45658,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":45661,"t":"code","b":[10],"m":"asl","o":"a"},{"a":45662,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":45665,"t":"code","b":[138],"m":"txa"},{"a":45666,"t":"code","b":[174,153,178],"m":"ldx","oa":45721,"o":"gen_kind"},{"a":45669,"t":"code","b":[29,122,178],"m":"ora","oa":45690,"o":"monster_kinds,x"},{"a":45672,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":45675,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":45677,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":45680,"t":"code","b":[32,222,189],"m":"jsr","oa":48606,"o":"monster_tile_ptr"},{"a":45683,"t":"code","b":[32,211,202],"m":"jsr","oa":51923,"o":"tile_plot"},{"a":45686,"t":"code","b":[32,66,203],"m":"jsr","oa":52034,"o":"colour_plot"},{"a":45689,"l":"r_B279","t":"code","b":[96],"m":"rts","x":[45625]},{"a":45690,"l":"monster_kinds","c":"The monster byte for each generator tile $20-$2E: the level in bits 6-7 ($00, $40, $80) and the kind in bits 3-5, so three tiles to a kind: ghosts $20-$22, then four more kinds.","t":"byte","b":[0,64,128,8,72,136,16,80],"x":[45669]},{"a":45698,"t":"byte","b":[144,24,88,152,32,96,160]},{"a":45705,"l":"gen_dx","c":"The X step for each of the eight directions: 0 1 1 1 0 -1 -1 -1.","t":"byte","b":[0,1,1,1,0,255,255,255],"x":[36993,37067,45581,45635]},{"a":45713,"l":"gen_dy","c":"The Y step: -1 -1 0 1 1 1 0 -1.","t":"byte","b":[255,255,0,1,1,1,0,255],"x":[37031,37079,45595,45652]},{"a":45721,"l":"gen_kind","c":"The generator being run, its tile less $20.","t":"byte","b":[0],"x":[45526,45666]},{"a":45722,"l":"tile_cur_x","c":"The tile column being looked at (generators_run, teleport_add, join_beside).","t":"byte","b":[16],"x":[36581,42398,42493,45479,45488,45564,45585,45631]},{"a":45723,"l":"tile_cur_y","c":"The tile row being looked at.","t":"byte","b":[10],"x":[36591,42413,42507,45462,45482,45572,45599,45648]},{"a":45724,"l":"gen_cols_left","c":"generators_run's column counter.","t":"byte","b":[255],"x":[45472,45567]},{"a":45725,"l":"gen_rows_left","c":"generators_run's row counter.","t":"byte","b":[255],"x":[45467,45575]},{"a":45726,"l":"pad_B29E","c":"A zero byte after the generator scan's counters.","t":"byte","b":[0]},{"a":45727,"l":"trap_spring","c":"A trap's effect: goes through the whole tile grid ($0C00-$0FFF), clearing every trap tile ($2F) and every tile with bit 7 set (the walls a trap takes away), each with its neighbours' brick joins put right (trap_wall_gone), and blanking their cells (cell_blank).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[47141]},{"a":45729,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":45731,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":45733,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":45735,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":45737,"l":"b_B2A9","t":"code","b":[161,140],"m":"lda","oa":140,"o":"(zpa_8C,x)","x":[45767]},{"a":45739,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":45741,"t":"code","b":[208,7],"m":"bne","oa":45750,"o":"b_B2B6"},{"a":45743,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":45745,"t":"code","b":[129,140],"m":"sta","oa":140,"o":"(zpa_8C,x)"},{"a":45747,"t":"code","b":[32,234,180],"m":"jsr","oa":46314,"o":"cell_blank"},{"a":45750,"l":"b_B2B6","t":"code","b":[201,128],"m":"cmp","o":"#$80","x":[45741]},{"a":45752,"t":"code","b":[144,3],"m":"bcc","oa":45757,"o":"b_B2BD"},{"a":45754,"t":"code","b":[32,202,178],"m":"jsr","oa":45770,"o":"trap_wall_gone"},{"a":45757,"l":"b_B2BD","t":"code","b":[230,140],"m":"inc","oa":140,"o":"zpa_8C","x":[45752]},{"a":45759,"t":"code","b":[208,2],"m":"bne","oa":45763,"o":"b_B2C3"},{"a":45761,"t":"code","b":[230,141],"m":"inc","oa":141,"o":"zpa_8D"},{"a":45763,"l":"b_B2C3","t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D","x":[45759]},{"a":45765,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":45767,"t":"code","b":[144,224],"m":"bcc","oa":45737,"o":"b_B2A9"},{"a":45769,"t":"code","b":[96],"m":"rts"},{"a":45770,"l":"trap_wall_gone","c":"Removes the wall at ($8C) whose low bits say which sides it joins (bit 0 above, 1 right, 2 below, 3 left): the wall on each of those sides has the matching join taken out of its shape (wall_unjoin), then the tile is cleared and its cells blanked.","t":"code","b":[41,127],"m":"and","o":"#$7F","x":[45754]},{"a":45772,"t":"code","b":[141,3,202],"m":"sta","oa":51715,"o":"wall_kind"},{"a":45775,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":45777,"t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind"},{"a":45780,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":45782,"t":"code","b":[240,20],"m":"beq","oa":45804,"o":"b_B2EC"},{"a":45784,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":45786,"t":"code","b":[56],"m":"sec"},{"a":45787,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":45789,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45791,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":45793,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":45795,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":45797,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":45799,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45801,"t":"code","b":[32,84,179],"m":"jsr","oa":45908,"o":"wall_unjoin"},{"a":45804,"l":"b_B2EC","t":"code","b":[200],"m":"iny","x":[45782]},{"a":45805,"t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind"},{"a":45808,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":45810,"t":"code","b":[240,26],"m":"beq","oa":45838,"o":"b_B30E"},{"a":45812,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":45814,"t":"code","b":[72],"m":"pha"},{"a":45815,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":45817,"t":"code","b":[141,4,202],"m":"sta","oa":51716,"o":"wall_hidden"},{"a":45820,"t":"code","b":[104],"m":"pla"},{"a":45821,"t":"code","b":[24],"m":"clc"},{"a":45822,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":45824,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45826,"t":"code","b":[13,4,202],"m":"ora","oa":51716,"o":"wall_hidden"},{"a":45829,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45831,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":45833,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45835,"t":"code","b":[32,84,179],"m":"jsr","oa":45908,"o":"wall_unjoin"},{"a":45838,"l":"b_B30E","t":"code","b":[200],"m":"iny","x":[45810]},{"a":45839,"t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind"},{"a":45842,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":45844,"t":"code","b":[240,20],"m":"beq","oa":45866,"o":"b_B32A"},{"a":45846,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":45848,"t":"code","b":[24],"m":"clc"},{"a":45849,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":45851,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45853,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":45855,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":45857,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":45859,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":45861,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45863,"t":"code","b":[32,84,179],"m":"jsr","oa":45908,"o":"wall_unjoin"},{"a":45866,"l":"b_B32A","t":"code","b":[200],"m":"iny","x":[45844]},{"a":45867,"t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind"},{"a":45870,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":45872,"t":"code","b":[240,26],"m":"beq","oa":45900,"o":"b_B34C"},{"a":45874,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":45876,"t":"code","b":[72],"m":"pha"},{"a":45877,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":45879,"t":"code","b":[141,4,202],"m":"sta","oa":51716,"o":"wall_hidden"},{"a":45882,"t":"code","b":[104],"m":"pla"},{"a":45883,"t":"code","b":[56],"m":"sec"},{"a":45884,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":45886,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":45888,"t":"code","b":[13,4,202],"m":"ora","oa":51716,"o":"wall_hidden"},{"a":45891,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":45893,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":45895,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":45897,"t":"code","b":[32,84,179],"m":"jsr","oa":45908,"o":"wall_unjoin"},{"a":45900,"l":"b_B34C","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[45872]},{"a":45902,"t":"code","b":[129,140],"m":"sta","oa":140,"o":"(zpa_8C,x)"},{"a":45904,"t":"code","b":[32,234,180],"m":"jsr","oa":46314,"o":"cell_blank"},{"a":45907,"t":"code","b":[96],"m":"rts"},{"a":45908,"l":"wall_unjoin","c":"Takes the join Y (wall_join_masks) out of the wall tile at ($8E), if it is a plain wall ($01-$0F); a wall left with no joins becomes $10; then redraws it (tile_draw).","t":"code","b":[161,142],"m":"lda","oa":142,"o":"(zpa_8E,x)","x":[45801,45835,45863,45897]},{"a":45910,"t":"code","b":[240,18],"m":"beq","oa":45930,"o":"r_B36A"},{"a":45912,"t":"code","b":[48,16],"m":"bmi","oa":45930,"o":"r_B36A"},{"a":45914,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":45916,"t":"code","b":[176,12],"m":"bcs","oa":45930,"o":"r_B36A"},{"a":45918,"t":"code","b":[57,107,179],"m":"and","oa":45931,"o":"wall_join_masks,y"},{"a":45921,"t":"code","b":[208,2],"m":"bne","oa":45925,"o":"b_B365"},{"a":45923,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":45925,"l":"b_B365","t":"code","b":[129,142],"m":"sta","oa":142,"o":"(zpa_8E,x)","x":[45921]},{"a":45927,"t":"code","b":[32,23,181],"m":"jsr","oa":46359,"o":"tile_draw"},{"a":45930,"l":"r_B36A","t":"code","b":[96],"m":"rts","x":[45910,45912,45916]},{"a":45931,"l":"wall_join_masks","c":"The masks wall_unjoin uses for the four sides: $0B $07 $0E $0D.","t":"byte","b":[11,7,14,13],"x":[45918]},{"a":45935,"l":"doors_open_step","c":"Runs the two door-opening processes (door_state $B4E7 and $B4E9, here as X 0 and 2), one step each per pass. A key starts both from the same door (door_unlock), spreading in different directions.","t":"code","b":[162,2],"m":"ldx","o":"#$02","x":[33215]},{"a":45937,"t":"code","b":[32,124,179],"m":"jsr","oa":45948,"o":"door_step"},{"a":45940,"t":"code","b":[32,124,179],"m":"jsr","oa":45948,"o":"door_step"},{"a":45943,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":45945,"t":"code","b":[32,124,179],"m":"jsr","oa":45948,"o":"door_step"},{"a":45948,"l":"door_step","c":"One step of a door opening: the state (8-11) says which way the opening is spreading; the door tile next to it that way (or across) is cleared and drawn as floor (door_clear), and the process moves on to it; with no door left that way it turns or stops. Bit 7 alternates the two directions it tries.","t":"code","b":[189,231,180],"m":"lda","oa":46311,"o":"door_state,x","x":[45937,45940,45945]},{"a":45951,"t":"code","b":[240,18],"m":"beq","oa":45971,"o":"r_B393"},{"a":45953,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":45955,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":45957,"t":"code","b":[240,13],"m":"beq","oa":45972,"o":"b_B394"},{"a":45959,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":45961,"t":"code","b":[240,12],"m":"beq","oa":45975,"o":"b_B397"},{"a":45963,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":45965,"t":"code","b":[240,11],"m":"beq","oa":45978,"o":"b_B39A"},{"a":45967,"t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":45969,"t":"code","b":[240,10],"m":"beq","oa":45981,"o":"b_B39D"},{"a":45971,"l":"r_B393","t":"code","b":[96],"m":"rts","x":[45951]},{"a":45972,"l":"b_B394","t":"code","b":[76,200,179],"m":"jmp","oa":46024,"o":"j_B3C8","x":[45957]},{"a":45975,"l":"b_B397","t":"code","b":[76,243,179],"m":"jmp","oa":46067,"o":"j_B3F3","x":[45961]},{"a":45978,"l":"b_B39A","t":"code","b":[76,30,180],"m":"jmp","oa":46110,"o":"j_B41E","x":[45965]},{"a":45981,"l":"b_B39D","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[45969]},{"a":45983,"t":"code","b":[32,149,180],"m":"jsr","oa":46229,"o":"door_down"},{"a":45986,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":45989,"t":"code","b":[208,9],"m":"bne","oa":46000,"o":"b_B3B0"},{"a":45991,"t":"code","b":[32,171,180],"m":"jsr","oa":46251,"o":"door_clear"},{"a":45994,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":45996,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":45999,"t":"code","b":[96],"m":"rts"},{"a":46000,"l":"b_B3B0","t":"code","b":[32,73,180],"m":"jsr","oa":46153,"o":"door_left","x":[45989]},{"a":46003,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46006,"t":"code","b":[208,3],"m":"bne","oa":46011,"o":"b_B3BB"},{"a":46008,"t":"code","b":[76,171,180],"m":"jmp","oa":46251,"o":"door_clear"},{"a":46011,"l":"b_B3BB","t":"code","b":[189,231,180],"m":"lda","oa":46311,"o":"door_state,x","x":[46006]},{"a":46014,"t":"code","b":[48,2],"m":"bmi","oa":46018,"o":"b_B3C2"},{"a":46016,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":46018,"l":"b_B3C2","t":"code","b":[73,130],"m":"eor","o":"#$82","x":[46014]},{"a":46020,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46023,"t":"code","b":[96],"m":"rts"},{"a":46024,"l":"j_B3C8","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[45972]},{"a":46026,"t":"code","b":[32,73,180],"m":"jsr","oa":46153,"o":"door_left"},{"a":46029,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46032,"t":"code","b":[208,9],"m":"bne","oa":46043,"o":"b_B3DB"},{"a":46034,"t":"code","b":[32,171,180],"m":"jsr","oa":46251,"o":"door_clear"},{"a":46037,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":46039,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46042,"t":"code","b":[96],"m":"rts"},{"a":46043,"l":"b_B3DB","t":"code","b":[32,127,180],"m":"jsr","oa":46207,"o":"door_up","x":[46032]},{"a":46046,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46049,"t":"code","b":[208,3],"m":"bne","oa":46054,"o":"b_B3E6"},{"a":46051,"t":"code","b":[76,171,180],"m":"jmp","oa":46251,"o":"door_clear"},{"a":46054,"l":"b_B3E6","t":"code","b":[189,231,180],"m":"lda","oa":46311,"o":"door_state,x","x":[46049]},{"a":46057,"t":"code","b":[48,2],"m":"bmi","oa":46061,"o":"b_B3ED"},{"a":46059,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":46061,"l":"b_B3ED","t":"code","b":[73,130],"m":"eor","o":"#$82","x":[46057]},{"a":46063,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46066,"t":"code","b":[96],"m":"rts"},{"a":46067,"l":"j_B3F3","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[45975]},{"a":46069,"t":"code","b":[32,127,180],"m":"jsr","oa":46207,"o":"door_up"},{"a":46072,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46075,"t":"code","b":[208,9],"m":"bne","oa":46086,"o":"b_B406"},{"a":46077,"t":"code","b":[32,171,180],"m":"jsr","oa":46251,"o":"door_clear"},{"a":46080,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":46082,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46085,"t":"code","b":[96],"m":"rts"},{"a":46086,"l":"b_B406","t":"code","b":[32,100,180],"m":"jsr","oa":46180,"o":"door_right","x":[46075]},{"a":46089,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46092,"t":"code","b":[208,3],"m":"bne","oa":46097,"o":"b_B411"},{"a":46094,"t":"code","b":[76,171,180],"m":"jmp","oa":46251,"o":"door_clear"},{"a":46097,"l":"b_B411","t":"code","b":[189,231,180],"m":"lda","oa":46311,"o":"door_state,x","x":[46092]},{"a":46100,"t":"code","b":[48,2],"m":"bmi","oa":46104,"o":"b_B418"},{"a":46102,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":46104,"l":"b_B418","t":"code","b":[73,130],"m":"eor","o":"#$82","x":[46100]},{"a":46106,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46109,"t":"code","b":[96],"m":"rts"},{"a":46110,"l":"j_B41E","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[45978]},{"a":46112,"t":"code","b":[32,100,180],"m":"jsr","oa":46180,"o":"door_right"},{"a":46115,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46118,"t":"code","b":[208,9],"m":"bne","oa":46129,"o":"b_B431"},{"a":46120,"t":"code","b":[32,171,180],"m":"jsr","oa":46251,"o":"door_clear"},{"a":46123,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":46125,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46128,"t":"code","b":[96],"m":"rts"},{"a":46129,"l":"b_B431","t":"code","b":[32,149,180],"m":"jsr","oa":46229,"o":"door_down","x":[46118]},{"a":46132,"t":"code","b":[32,216,180],"m":"jsr","oa":46296,"o":"door_is_door"},{"a":46135,"t":"code","b":[208,3],"m":"bne","oa":46140,"o":"b_B43C"},{"a":46137,"t":"code","b":[76,171,180],"m":"jmp","oa":46251,"o":"door_clear"},{"a":46140,"l":"b_B43C","t":"code","b":[189,231,180],"m":"lda","oa":46311,"o":"door_state,x","x":[46135]},{"a":46143,"t":"code","b":[48,2],"m":"bmi","oa":46147,"o":"b_B443"},{"a":46145,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":46147,"l":"b_B443","t":"code","b":[73,130],"m":"eor","o":"#$82","x":[46143]},{"a":46149,"t":"code","b":[157,231,180],"m":"sta","oa":46311,"o":"door_state,x"},{"a":46152,"t":"code","b":[96],"m":"rts"},{"a":46153,"l":"door_left","c":"Points $8E/$8F at the tile left of the door process's tile ($B4E3).","t":"code","b":[189,227,180],"m":"lda","oa":46307,"o":"door_pos,x","x":[46000,46026]},{"a":46156,"t":"code","b":[56],"m":"sec"},{"a":46157,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":46159,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46161,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":46164,"t":"code","b":[189,227,180],"m":"lda","oa":46307,"o":"door_pos,x"},{"a":46167,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46169,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":46172,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":46174,"t":"code","b":[189,228,180],"m":"lda","oa":46308,"o":"door_pos_hi,x"},{"a":46177,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":46179,"t":"code","b":[96],"m":"rts"},{"a":46180,"l":"door_right","c":"Points $8E/$8F at the tile to the right.","t":"code","b":[189,227,180],"m":"lda","oa":46307,"o":"door_pos,x","x":[46086,46112]},{"a":46183,"t":"code","b":[24],"m":"clc"},{"a":46184,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":46186,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46188,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":46191,"t":"code","b":[189,227,180],"m":"lda","oa":46307,"o":"door_pos,x"},{"a":46194,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46196,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":46199,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":46201,"t":"code","b":[189,228,180],"m":"lda","oa":46308,"o":"door_pos_hi,x"},{"a":46204,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":46206,"t":"code","b":[96],"m":"rts"},{"a":46207,"l":"door_up","c":"Points $8E/$8F at the tile above, wrapping within the grid.","t":"code","b":[189,227,180],"m":"lda","oa":46307,"o":"door_pos,x","x":[46043,46069]},{"a":46210,"t":"code","b":[56],"m":"sec"},{"a":46211,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":46213,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":46215,"t":"code","b":[189,228,180],"m":"lda","oa":46308,"o":"door_pos_hi,x"},{"a":46218,"t":"code","b":[176,6],"m":"bcs","oa":46226,"o":"b_B492"},{"a":46220,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":46222,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":46224,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":46226,"l":"b_B492","t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F","x":[46218]},{"a":46228,"t":"code","b":[96],"m":"rts"},{"a":46229,"l":"door_down","c":"Points $8E/$8F at the tile below.","t":"code","b":[189,227,180],"m":"lda","oa":46307,"o":"door_pos,x","x":[45983,46129]},{"a":46232,"t":"code","b":[24],"m":"clc"},{"a":46233,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":46235,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":46237,"t":"code","b":[189,228,180],"m":"lda","oa":46308,"o":"door_pos_hi,x"},{"a":46240,"t":"code","b":[144,6],"m":"bcc","oa":46248,"o":"b_B4A8"},{"a":46242,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":46244,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":46246,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":46248,"l":"b_B4A8","t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F","x":[46240]},{"a":46250,"t":"code","b":[96],"m":"rts"},{"a":46251,"l":"door_clear","c":"Clears the tile at ($8E) (writes Y, 0), makes it the process's position and blanks its four character cells ($C369).","t":"code","b":[152],"m":"tya","x":[45991,46008,46034,46051,46077,46094,46120,46137]},{"a":46252,"t":"code","b":[145,142],"m":"sta","oa":142,"o":"(zpa_8E),y"},{"a":46254,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":46256,"t":"code","b":[157,228,180],"m":"sta","oa":46308,"o":"door_pos_hi,x"},{"a":46259,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":46261,"t":"code","b":[157,227,180],"m":"sta","oa":46307,"o":"door_pos,x"},{"a":46264,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46266,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46267,"t":"code","b":[38,143],"m":"rol","oa":143,"o":"zpa_8F"},{"a":46269,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46270,"t":"code","b":[38,143],"m":"rol","oa":143,"o":"zpa_8F"},{"a":46272,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":46275,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":46277,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46279,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46280,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":46283,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":46285,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":46287,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":46289,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":46291,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":46293,"t":"code","b":[76,105,195],"m":"jmp","oa":50025,"o":"cell_unplot"},{"a":46296,"l":"door_is_door","c":"Zero flag set when the tile at ($8E) is a door ($11 or $12).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[45986,46003,46029,46046,46072,46089,46115,46132]},{"a":46298,"t":"code","b":[177,142],"m":"lda","oa":142,"o":"(zpa_8E),y"},{"a":46300,"t":"code","b":[201,17],"m":"cmp","o":"#$11"},{"a":46302,"t":"code","b":[240,2],"m":"beq","oa":46306,"o":"r_B4E2"},{"a":46304,"t":"code","b":[201,18],"m":"cmp","o":"#$12"},{"a":46306,"l":"r_B4E2","t":"code","b":[96],"m":"rts","x":[46302]},{"a":46307,"l":"door_pos","c":"The tile address each door process has reached (two bytes for each).","t":"byte","b":[0],"x":[46153,46164,46180,46191,46207,46229,46261,47208]},{"a":46308,"l":"door_pos_hi","c":"The first door process's tile address, high byte.","t":"byte","b":[0],"x":[46174,46201,46215,46237,46256,47217]},{"a":46309,"l":"door_pos_2","c":"The second door process's tile address.","t":"byte","b":[0],"x":[47211]},{"a":46310,"l":"door_pos_2_hi","c":"The high byte of the second door process's tile address.","t":"byte","b":[0],"x":[47220]},{"a":46311,"l":"door_state","c":"The first door process: 0 none, 8-11 the direction it is spreading in, bit 7 which of two it tries next.","t":"byte","b":[0,0],"x":[33329,37948,45948,45996,46011,46020,46039,46054,46063,46082,46097,46106,46125,46140,46149,47225]},{"a":46313,"l":"door_state_p2","c":"The second door process.","t":"byte","b":[0],"x":[33332,37951,47230]},{"a":46314,"l":"cell_blank","c":"Writes zero into the four character map cells of the tile at ($8C) in the tile grid: the tile's graphics are gone.","t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D","x":[43247,44419,45747,45904]},{"a":46316,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":46318,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":46320,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":46322,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":46324,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46326,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46327,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46329,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46330,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46332,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46334,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":46336,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46338,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46339,"t":"code","b":[5,247],"m":"ora","oa":247,"o":"zpa_F7"},{"a":46341,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46343,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":46345,"t":"code","b":[152],"m":"tya"},{"a":46346,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46348,"t":"code","b":[200],"m":"iny"},{"a":46349,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46351,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":46353,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46355,"t":"code","b":[200],"m":"iny"},{"a":46356,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46358,"t":"code","b":[96],"m":"rts"},{"a":46359,"l":"tile_draw","c":"Draws tile A at tile grid address ($8E) into the character map: its four characters from tile_chars ($F400 + tile x 4).","t":"code","b":[10],"m":"asl","o":"a","x":[43286,44290,44390,45927]},{"a":46360,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46361,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":46363,"t":"code","b":[169,244],"m":"lda","o":"#$F4"},{"a":46365,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":46367,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":46369,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":46371,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":46373,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":46375,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":46377,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46379,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46380,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46382,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46383,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46385,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46387,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":46389,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46391,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46392,"t":"code","b":[5,247],"m":"ora","oa":247,"o":"zpa_F7"},{"a":46394,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46396,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":46398,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46400,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46402,"t":"code","b":[200],"m":"iny"},{"a":46403,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46405,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46407,"t":"code","b":[200],"m":"iny"},{"a":46408,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46410,"t":"code","b":[72],"m":"pha"},{"a":46411,"t":"code","b":[200],"m":"iny"},{"a":46412,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46414,"t":"code","b":[160,65],"m":"ldy","o":"#$41"},{"a":46416,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46418,"t":"code","b":[136],"m":"dey"},{"a":46419,"t":"code","b":[104],"m":"pla"},{"a":46420,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46422,"t":"code","b":[96],"m":"rts"},{"a":46423,"l":"idle_timer","c":"Every twelfth pass (a game second) counts down $B65B. In stage 0, when it runs out, the doors open (idle_doors_open). In stage 1, after the next count, every wall becomes an exit (idle_walls_exit). A player firing puts the count back ($A75E), so it measures time without shooting.","t":"code","b":[206,179,173],"m":"dec","oa":44467,"o":"treasure_tick","x":[33224]},{"a":46426,"t":"code","b":[16,36],"m":"bpl","oa":46464,"o":"r_B580"},{"a":46428,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":46430,"t":"code","b":[141,179,173],"m":"sta","oa":44467,"o":"treasure_tick"},{"a":46433,"t":"code","b":[173,90,182],"m":"lda","oa":46682,"o":"idle_stage"},{"a":46436,"t":"code","b":[208,14],"m":"bne","oa":46452,"o":"b_B574"},{"a":46438,"t":"code","b":[206,91,182],"m":"dec","oa":46683,"o":"idle_count"},{"a":46441,"t":"code","b":[208,21],"m":"bne","oa":46464,"o":"r_B580"},{"a":46443,"t":"code","b":[173,93,182],"m":"lda","oa":46685,"o":"idle_second"},{"a":46446,"t":"code","b":[141,91,182],"m":"sta","oa":46683,"o":"idle_count"},{"a":46449,"t":"code","b":[76,129,181],"m":"jmp","oa":46465,"o":"idle_doors_open"},{"a":46452,"l":"b_B574","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[46436]},{"a":46454,"t":"code","b":[208,8],"m":"bne","oa":46464,"o":"r_B580"},{"a":46456,"t":"code","b":[206,91,182],"m":"dec","oa":46683,"o":"idle_count"},{"a":46459,"t":"code","b":[208,3],"m":"bne","oa":46464,"o":"r_B580"},{"a":46461,"t":"code","b":[32,156,181],"m":"jsr","oa":46492,"o":"idle_walls_exit"},{"a":46464,"l":"r_B580","t":"code","b":[96],"m":"rts","x":[46426,46441,46454,46459]},{"a":46465,"l":"idle_doors_open","c":"The first stage: tiles from $11 to $12 (the doors) and every key become floor; plays sound $0E.","t":"code","b":[169,17],"m":"lda","o":"#$11","x":[46449]},{"a":46467,"t":"code","b":[141,87,182],"m":"sta","oa":46679,"o":"idle_lo"},{"a":46470,"t":"code","b":[169,19],"m":"lda","o":"#$13"},{"a":46472,"t":"code","b":[141,88,182],"m":"sta","oa":46680,"o":"idle_hi"},{"a":46475,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":46477,"t":"code","b":[141,89,182],"m":"sta","oa":46681,"o":"idle_new"},{"a":46480,"t":"code","b":[238,90,182],"m":"inc","oa":46682,"o":"idle_stage"},{"a":46483,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":46485,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":46488,"t":"code","b":[32,179,181],"m":"jsr","oa":46515,"o":"tiles_replace"},{"a":46491,"t":"code","b":[96],"m":"rts"},{"a":46492,"l":"idle_walls_exit","c":"The second stage: tiles from $01 to $10 (the walls), the crumbling walls $33-$35 and the keys become exits ($36); plays sound $10.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[46461]},{"a":46494,"t":"code","b":[141,87,182],"m":"sta","oa":46679,"o":"idle_lo"},{"a":46497,"t":"code","b":[169,17],"m":"lda","o":"#$11"},{"a":46499,"t":"code","b":[141,88,182],"m":"sta","oa":46680,"o":"idle_hi"},{"a":46502,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":46504,"t":"code","b":[141,89,182],"m":"sta","oa":46681,"o":"idle_new"},{"a":46507,"t":"code","b":[238,90,182],"m":"inc","oa":46682,"o":"idle_stage"},{"a":46510,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":46512,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":46515,"l":"tiles_replace","c":"Replaces every tile in the grid in the range idle_lo to idle_hi less one, and every key, by idle_new, and draws each one (tile_redraw); when idle_new is not zero the crumbling walls too.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[46488]},{"a":46517,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":46519,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":46521,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":46523,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":46525,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":46527,"l":"b_B5BF","t":"code","b":[177,142],"m":"lda","oa":142,"o":"(zpa_8E),y","x":[46571,46576]},{"a":46529,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":46531,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":46533,"t":"code","b":[240,27],"m":"beq","oa":46562,"o":"b_B5E2"},{"a":46535,"t":"code","b":[44,89,182],"m":"bit","oa":46681,"o":"idle_new"},{"a":46538,"t":"code","b":[240,12],"m":"beq","oa":46552,"o":"b_B5D8"},{"a":46540,"t":"code","b":[201,51],"m":"cmp","o":"#$33"},{"a":46542,"t":"code","b":[240,18],"m":"beq","oa":46562,"o":"b_B5E2"},{"a":46544,"t":"code","b":[201,52],"m":"cmp","o":"#$34"},{"a":46546,"t":"code","b":[240,14],"m":"beq","oa":46562,"o":"b_B5E2"},{"a":46548,"t":"code","b":[201,53],"m":"cmp","o":"#$35"},{"a":46550,"t":"code","b":[240,10],"m":"beq","oa":46562,"o":"b_B5E2"},{"a":46552,"l":"b_B5D8","t":"code","b":[205,87,182],"m":"cmp","oa":46679,"o":"idle_lo","x":[46538]},{"a":46555,"t":"code","b":[144,13],"m":"bcc","oa":46570,"o":"b_B5EA"},{"a":46557,"t":"code","b":[205,88,182],"m":"cmp","oa":46680,"o":"idle_hi"},{"a":46560,"t":"code","b":[176,8],"m":"bcs","oa":46570,"o":"b_B5EA"},{"a":46562,"l":"b_B5E2","t":"code","b":[173,89,182],"m":"lda","oa":46681,"o":"idle_new","x":[46533,46542,46546,46550]},{"a":46565,"t":"code","b":[145,142],"m":"sta","oa":142,"o":"(zpa_8E),y"},{"a":46567,"t":"code","b":[32,243,181],"m":"jsr","oa":46579,"o":"tile_redraw"},{"a":46570,"l":"b_B5EA","t":"code","b":[200],"m":"iny","x":[46555,46560]},{"a":46571,"t":"code","b":[208,210],"m":"bne","oa":46527,"o":"b_B5BF"},{"a":46573,"t":"code","b":[230,143],"m":"inc","oa":143,"o":"zpa_8F"},{"a":46575,"t":"code","b":[202],"m":"dex"},{"a":46576,"t":"code","b":[16,205],"m":"bpl","oa":46527,"o":"b_B5BF"},{"a":46578,"t":"code","b":[96],"m":"rts"},{"a":46579,"l":"tile_redraw","c":"Draws tile A at grid position Y of the page at $8F into the character map ($3000) and the colour map ($2000), characters from $F400 and colours from $F600 + tile x 4.","t":"code","b":[10],"m":"asl","o":"a","x":[46567]},{"a":46580,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46581,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":46583,"t":"code","b":[133,253],"m":"sta","oa":253,"o":"zpa_FD"},{"a":46585,"t":"code","b":[169,244],"m":"lda","o":"#$F4"},{"a":46587,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":46589,"t":"code","b":[169,246],"m":"lda","o":"#$F6"},{"a":46591,"t":"code","b":[133,254],"m":"sta","oa":254,"o":"zpa_FE"},{"a":46593,"t":"code","b":[152],"m":"tya"},{"a":46594,"t":"code","b":[72],"m":"pha"},{"a":46595,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":46597,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":46599,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":46601,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":46603,"t":"code","b":[152],"m":"tya"},{"a":46604,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46606,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46607,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46609,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46610,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46612,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46614,"t":"code","b":[152],"m":"tya"},{"a":46615,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46617,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46618,"t":"code","b":[5,247],"m":"ora","oa":247,"o":"zpa_F7"},{"a":46620,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46622,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":46624,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":46626,"t":"code","b":[41,47],"m":"and","o":"#$2F"},{"a":46628,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":46630,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":46632,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46634,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46636,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":46638,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":46640,"t":"code","b":[200],"m":"iny"},{"a":46641,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46643,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46645,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":46647,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":46649,"t":"code","b":[200],"m":"iny"},{"a":46650,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46652,"t":"code","b":[72],"m":"pha"},{"a":46653,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":46655,"t":"code","b":[72],"m":"pha"},{"a":46656,"t":"code","b":[200],"m":"iny"},{"a":46657,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":46659,"t":"code","b":[72],"m":"pha"},{"a":46660,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":46662,"t":"code","b":[160,65],"m":"ldy","o":"#$41"},{"a":46664,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":46666,"t":"code","b":[104],"m":"pla"},{"a":46667,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46669,"t":"code","b":[136],"m":"dey"},{"a":46670,"t":"code","b":[104],"m":"pla"},{"a":46671,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":46673,"t":"code","b":[104],"m":"pla"},{"a":46674,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46676,"t":"code","b":[104],"m":"pla"},{"a":46677,"t":"code","b":[168],"m":"tay"},{"a":46678,"t":"code","b":[96],"m":"rts"},{"a":46679,"l":"idle_lo","c":"The lowest tile tiles_replace replaces.","t":"byte","b":[17],"x":[46467,46494,46552]},{"a":46680,"l":"idle_hi","c":"One above the highest.","t":"byte","b":[19],"x":[46472,46499,46557]},{"a":46681,"l":"idle_new","c":"What it puts in their place.","t":"byte","b":[0],"x":[46477,46504,46535,46562]},{"a":46682,"l":"idle_stage","c":"The idle timer's stage: 0, 1, then 2 when both have happened.","t":"byte","b":[1],"x":[33341,42223,42846,46433,46480,46507,50510]},{"a":46683,"l":"idle_count","c":"The idle timer's count, in game seconds.","t":"byte","b":[129],"x":[33347,42252,42852,46438,46446,46456,50516]},{"a":46684,"l":"idle_reload","c":"The count a shot puts back ($1E, 30 seconds).","t":"byte","b":[30],"x":[33344,42849,50513]},{"a":46685,"l":"idle_second","c":"The count for the second stage ($96, 150).","t":"byte","b":[150],"x":[46443]},{"a":46686,"c":"The count a shot puts back once the walls have become exits (idle_stage 2): $FF, though nothing counts down in that stage.","t":"byte","b":[255]},{"a":46687,"l":"panel_dirty","c":"Raised by anything that changes what the panel shows; the panel is redrawn while it is non-zero.","t":"byte","b":[3],"x":[32869,38933,40811,42130,42563,42625,44051,44090,44169,44723,47268,47467,47503,47568,47580,48310,50153,50328,50552,50610]},{"a":46688,"l":"wall_limit","c":"The tile below which tile_blocks treats a tile as a wall: $13, or $11 for a player with keys.","t":"byte","b":[19],"x":[37958,38097]},{"a":46689,"l":"hands_full","c":"Set when the player's keys and potions together reach the carrying limit: tile_blocks then lets keys and potions block the way like walls.","t":"byte","b":[0],"x":[37961,38128]},{"a":46690,"l":"tile_touched","c":"The tile the player is picking up.","t":"byte","b":[0],"x":[46800,46913]},{"a":46691,"l":"keys_held","c":"The keys each player carries.","t":"byte","b":[0],"x":[33849,37927,38975,40192,41004,42163,47233,47236,47346,47364]},{"a":46692,"l":"keys_held_p2","c":"Player two's keys.","t":"byte","b":[0],"x":[42166]},{"a":46693,"l":"potions_held","c":"The potions each player carries.","t":"byte","b":[0],"x":[33852,37932,40196,40746,41007,42169,47289,47303,47370,47377,47786]},{"a":46694,"l":"potions_held_p2","c":"Player two's potions.","t":"byte","b":[0],"x":[42172]},{"a":46695,"l":"carry_limit","c":"Each player's limit of keys and potions together: 10, 15 with the carrying potion.","t":"byte","b":[10,10],"x":[37935,40199,40285,40905]},{"a":46697,"l":"amulet_time","c":"Each player's amulet countdown: set to $FF when it picks one up (amulet_take); while it runs the player's sprite flashes and its state is 3 (amulet_flash).","t":"byte","b":[0,0],"x":[47311,47516,47521]},{"a":46699,"l":"freeze_p1","c":"ORed into player one's direction: $0F holds the player still (message screens, traps), 0 lets it move.","t":"byte","b":[0],"x":[33317,34667,34709,36537,42265,42374,42387,42453,44916,46975,47001,47146]},{"a":46700,"l":"freeze_p2","c":"Player two's.","t":"byte","b":[0],"x":[33320,34731,36540,42268,42377,42390,42456,44919,47004,47149]},{"a":46701,"l":"facing_hold","c":"A joystick direction that overrides the stick's for each player, a direction code as the stick gives it (not a facing 0-7): exit_spin stores its spin_facings values here ($BAE3, from $BB26), and players_sprites reads it at $917A in place of the stick and turns it into a facing through facing_of_dir.","t":"byte","b":[0],"x":[37242,42175,47843,47889]},{"a":46702,"l":"facing_hold_p2","c":"Player two's facing override.","t":"byte","b":[0],"x":[42178]},{"a":46703,"l":"exit_count","c":"Set to $30 for a player who steps into an exit ($B784); read by $BAD7.","t":"byte","b":[0,0],"x":[46980,47831,47846,47893]},{"a":46705,"l":"touch_check","c":"Notes what player X is about to touch: of the eight tiles around it (pointers $B0-$BF), the one in the direction it pushes, if it is $11 or above, or $2F, $31 or $36; the tile goes into player_under and level_name,y, and its grid address into $C0/$C1 + 2X (touch_note).","t":"code","b":[162,14],"m":"ldx","o":"#$0E","x":[37984]},{"a":46707,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":46709,"l":"b_B675","t":"code","b":[185,15,149],"m":"lda","oa":38159,"o":"ring_stick,y","x":[46753]},{"a":46712,"t":"code","b":[205,93,130],"m":"cmp","oa":33373,"o":"scratch_3"},{"a":46715,"t":"code","b":[208,33],"m":"bne","oa":46750,"o":"b_B69E"},{"a":46717,"t":"code","b":[161,176],"m":"lda","oa":176,"o":"(zpp_B0,x)"},{"a":46719,"t":"code","b":[240,29],"m":"beq","oa":46750,"o":"b_B69E"},{"a":46721,"t":"code","b":[201,49],"m":"cmp","o":"#$31"},{"a":46723,"t":"code","b":[240,12],"m":"beq","oa":46737,"o":"b_B691"},{"a":46725,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":46727,"t":"code","b":[240,8],"m":"beq","oa":46737,"o":"b_B691"},{"a":46729,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":46731,"t":"code","b":[240,4],"m":"beq","oa":46737,"o":"b_B691"},{"a":46733,"t":"code","b":[201,17],"m":"cmp","o":"#$11"},{"a":46735,"t":"code","b":[144,13],"m":"bcc","oa":46750,"o":"b_B69E"},{"a":46737,"l":"b_B691","t":"code","b":[172,12,145],"m":"ldy","oa":37132,"o":"player_loop","x":[46723,46727,46731]},{"a":46740,"t":"code","b":[153,18,145],"m":"sta","oa":37138,"o":"player_under,y"},{"a":46743,"t":"code","b":[153,219,152],"m":"sta","oa":39131,"o":"level_name,y"},{"a":46746,"t":"code","b":[32,164,182],"m":"jsr","oa":46756,"o":"touch_note"},{"a":46749,"t":"code","b":[96],"m":"rts"},{"a":46750,"l":"b_B69E","t":"code","b":[202],"m":"dex","x":[46715,46719,46735]},{"a":46751,"t":"code","b":[202],"m":"dex"},{"a":46752,"t":"code","b":[136],"m":"dey"},{"a":46753,"t":"code","b":[16,210],"m":"bpl","oa":46709,"o":"b_B675"},{"a":46755,"t":"code","b":[96],"m":"rts"},{"a":46756,"l":"touch_note","c":"Copies the grid address of neighbour X into the player's $C0/$C1 pair.","t":"code","b":[72],"m":"pha","x":[46746]},{"a":46757,"t":"code","b":[152],"m":"tya"},{"a":46758,"t":"code","b":[72],"m":"pha"},{"a":46759,"t":"code","b":[173,12,145],"m":"lda","oa":37132,"o":"player_loop"},{"a":46762,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46763,"t":"code","b":[168],"m":"tay"},{"a":46764,"t":"code","b":[181,176],"m":"lda","oa":176,"o":"zpp_B0,x"},{"a":46766,"t":"code","b":[153,192,0],"m":"sta","oa":192,"o":"zpf_C0,y"},{"a":46769,"t":"code","b":[181,177],"m":"lda","oa":177,"o":"zpf_B1,x"},{"a":46771,"t":"code","b":[153,193,0],"m":"sta","oa":193,"o":"zpf_C1,y"},{"a":46774,"t":"code","b":[104],"m":"pla"},{"a":46775,"t":"code","b":[168],"m":"tay"},{"a":46776,"t":"code","b":[104],"m":"pla"},{"a":46777,"t":"code","b":[96],"m":"rts"},{"a":46778,"l":"pickups","c":"For each player in the game, acts on the tile it touched: a transporter ($30) goes to teleport_try, a generator ($20-$2E) to fight_generator, the exit ($36) to pickup_take; anything else (below $20, or $2F and above) is cleared from the grid and goes to pickup_take.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[33096,33212]},{"a":46780,"t":"code","b":[141,13,145],"m":"sta","oa":37133,"o":"player_cur"},{"a":46783,"l":"b_B6BF","t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur","x":[46845]},{"a":46786,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":46789,"t":"code","b":[240,51],"m":"beq","oa":46842,"o":"b_B6FA"},{"a":46791,"t":"code","b":[173,13,145],"m":"lda","oa":37133,"o":"player_cur"},{"a":46794,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46795,"t":"code","b":[170],"m":"tax"},{"a":46796,"t":"code","b":[161,192],"m":"lda","oa":192,"o":"(zpf_C0,x)"},{"a":46798,"t":"code","b":[240,42],"m":"beq","oa":46842,"o":"b_B6FA"},{"a":46800,"t":"code","b":[141,98,182],"m":"sta","oa":46690,"o":"tile_touched"},{"a":46803,"t":"code","b":[201,49],"m":"cmp","o":"#$31"},{"a":46805,"t":"code","b":[240,28],"m":"beq","oa":46835,"o":"b_B6F3"},{"a":46807,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":46809,"t":"code","b":[240,28],"m":"beq","oa":46839,"o":"b_B6F7"},{"a":46811,"t":"code","b":[201,48],"m":"cmp","o":"#$30"},{"a":46813,"t":"code","b":[240,14],"m":"beq","oa":46829,"o":"b_B6ED"},{"a":46815,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":46817,"t":"code","b":[144,16],"m":"bcc","oa":46835,"o":"b_B6F3"},{"a":46819,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":46821,"t":"code","b":[176,12],"m":"bcs","oa":46835,"o":"b_B6F3"},{"a":46823,"t":"code","b":[32,206,172],"m":"jsr","oa":44238,"o":"fight_generator"},{"a":46826,"t":"code","b":[76,250,182],"m":"jmp","oa":46842,"o":"b_B6FA"},{"a":46829,"l":"b_B6ED","t":"code","b":[32,0,183],"m":"jsr","oa":46848,"o":"teleport_try","x":[46813]},{"a":46832,"t":"code","b":[76,250,182],"m":"jmp","oa":46842,"o":"b_B6FA"},{"a":46835,"l":"b_B6F3","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[46805,46817,46821]},{"a":46837,"t":"code","b":[129,192],"m":"sta","oa":192,"o":"(zpf_C0,x)"},{"a":46839,"l":"b_B6F7","t":"code","b":[32,17,183],"m":"jsr","oa":46865,"o":"pickup_take","x":[46809]},{"a":46842,"l":"b_B6FA","t":"code","b":[206,13,145],"m":"dec","oa":37133,"o":"player_cur","x":[46789,46798,46826,46832]},{"a":46845,"t":"code","b":[16,192],"m":"bpl","oa":46783,"o":"b_B6BF"},{"a":46847,"t":"code","b":[96],"m":"rts"},{"a":46848,"l":"teleport_try","c":"Uses the transporter when the player is in the game and pushed into it this pass (player_moved).","t":"code","b":[138],"m":"txa","x":[46829]},{"a":46849,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":46850,"t":"code","b":[170],"m":"tax"},{"a":46851,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":46854,"t":"code","b":[240,8],"m":"beq","oa":46864,"o":"r_B710"},{"a":46856,"t":"code","b":[189,113,144],"m":"lda","oa":36977,"o":"player_moved,x"},{"a":46859,"t":"code","b":[240,3],"m":"beq","oa":46864,"o":"r_B710"},{"a":46861,"t":"code","b":[32,250,142],"m":"jsr","oa":36602,"o":"teleport_use"},{"a":46864,"l":"r_B710","t":"code","b":[96],"m":"rts","x":[46854,46859]},{"a":46865,"l":"pickup_take","c":"Picks up the tile in tile_touched for player X/2. The exit ($36) takes the player out of the level (exit_enter); otherwise the tile's cells are blanked and: a trap ($2F) springs (trap_set); the jug $31 is poison (poison_eaten); anything else from $11 runs the routine pickup_routines gives for it (its JMP at $B767 rewritten) after the sound pickup_sounds gives.","t":"code","b":[201,54],"m":"cmp","o":"#$36","x":[46839]},{"a":46867,"t":"code","b":[240,85],"m":"beq","oa":46954,"o":"exit_enter"},{"a":46869,"t":"code","b":[181,193],"m":"lda","oa":193,"o":"zpf_C1,x"},{"a":46871,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":46873,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":46875,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":46877,"t":"code","b":[181,192],"m":"lda","oa":192,"o":"zpf_C0,x"},{"a":46879,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":46881,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46882,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46884,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46885,"t":"code","b":[38,248],"m":"rol","oa":248,"o":"zpa_F8"},{"a":46887,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46889,"t":"code","b":[181,192],"m":"lda","oa":192,"o":"zpf_C0,x"},{"a":46891,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":46893,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46894,"t":"code","b":[5,247],"m":"ora","oa":247,"o":"zpa_F7"},{"a":46896,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":46898,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":46900,"t":"code","b":[152],"m":"tya"},{"a":46901,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46903,"t":"code","b":[200],"m":"iny"},{"a":46904,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46906,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":46908,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46910,"t":"code","b":[200],"m":"iny"},{"a":46911,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":46913,"t":"code","b":[173,98,182],"m":"lda","oa":46690,"o":"tile_touched"},{"a":46916,"t":"code","b":[201,47],"m":"cmp","o":"#$2F"},{"a":46918,"t":"code","b":[240,74],"m":"beq","oa":46994,"o":"trap_set"},{"a":46920,"t":"code","b":[201,49],"m":"cmp","o":"#$31"},{"a":46922,"t":"code","b":[240,89],"m":"beq","oa":47013,"o":"poison_eaten"},{"a":46924,"t":"code","b":[56],"m":"sec"},{"a":46925,"t":"code","b":[233,17],"m":"sbc","o":"#$11"},{"a":46927,"t":"code","b":[170],"m":"tax"},{"a":46928,"t":"code","b":[10],"m":"asl","o":"a"},{"a":46929,"t":"code","b":[168],"m":"tay"},{"a":46930,"t":"code","b":[185,53,184],"m":"lda","oa":47157,"o":"pickup_routines,y"},{"a":46933,"t":"code","b":[141,104,183],"m":"sta","oa":46952,"o":"pickup_target"},{"a":46936,"t":"code","b":[185,54,184],"m":"lda","oa":47158,"o":"pickup_routines_hi,y"},{"a":46939,"t":"code","b":[141,105,183],"m":"sta","oa":46953,"o":"pickup_target_hi"},{"a":46942,"t":"code","b":[189,83,184],"m":"lda","oa":47187,"o":"pickup_sounds,x"},{"a":46945,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":46948,"t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur"},{"a":46951,"l":"pickup_jump","c":"The JMP rewritten by pickup_take with the pickup's routine.","t":"code","b":[76,103,183],"m":"jmp","oa":46951,"o":"pickup_jump","x":[46951]},{"a":46952,"t":"note","l":"pickup_target","c":"The low byte of pickup_jump's JMP, rewritten with the pickup's routine.","note":"inside the item at $B767","x":[46933]},{"a":46953,"t":"note","l":"pickup_target_hi","c":"The high byte of pickup_jump's target.","note":"inside the item at $B767","x":[46939]},{"a":46954,"l":"exit_enter","c":"Player X steps into an exit: its state gets bit 7 (leaving), its escape time is noted ($AF38 = treasure_time), it is frozen, exit_count set to $30 for the spin into the exit, $824C cleared and sound 6 started.","t":"code","b":[174,13,145],"m":"ldx","oa":37133,"o":"player_cur","x":[46867]},{"a":46957,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":46960,"t":"code","b":[48,31],"m":"bmi","oa":46993,"o":"r_B791"},{"a":46962,"t":"code","b":[9,128],"m":"ora","o":"#$80"},{"a":46964,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":46967,"t":"code","b":[173,180,173],"m":"lda","oa":44468,"o":"treasure_time"},{"a":46970,"t":"code","b":[157,56,175],"m":"sta","oa":44856,"o":"escaped,x"},{"a":46973,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":46975,"t":"code","b":[157,107,182],"m":"sta","oa":46699,"o":"freeze_p1,x"},{"a":46978,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":46980,"t":"code","b":[157,111,182],"m":"sta","oa":46703,"o":"exit_count,x"},{"a":46983,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":46985,"t":"code","b":[157,76,130],"m":"sta","oa":33356,"o":"mask_dummy_1,x"},{"a":46988,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":46990,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":46993,"l":"r_B791","t":"code","b":[96],"m":"rts","x":[46960]},{"a":46994,"l":"trap_set","c":"A trap: sets trap_pending, freezes both players and plays sound $10; the trap springs (trap_spring) when both sticks are let go (trap_wait).","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[46918]},{"a":46996,"t":"code","b":[141,52,184],"m":"sta","oa":47156,"o":"trap_pending"},{"a":46999,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":47001,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":47004,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":47007,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":47009,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":47012,"t":"code","b":[96],"m":"rts"},{"a":47013,"l":"poison_eaten","c":"The poison: clears the screen, prints the hero's name, \"HAS JUST EATEN SOME\" and \"POISONED FOOD!\", applies the poison (poison), plays sound $10, waits and puts the maze back.","t":"code","b":[138],"m":"txa","x":[46922]},{"a":47014,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47015,"t":"code","b":[170],"m":"tax"},{"a":47016,"t":"code","b":[189,28,145],"m":"lda","oa":37148,"o":"player_hero,x"},{"a":47019,"t":"code","b":[10],"m":"asl","o":"a"},{"a":47020,"t":"code","b":[168],"m":"tay"},{"a":47021,"t":"code","b":[185,208,174],"m":"lda","oa":44752,"o":"hero_name_ptrs,y"},{"a":47024,"t":"code","b":[141,196,183],"m":"sta","oa":47044,"o":"arg_B7C4"},{"a":47027,"t":"code","b":[185,209,174],"m":"lda","oa":44753,"o":"hero_name_ptrs_hi,y"},{"a":47030,"t":"code","b":[141,197,183],"m":"sta","oa":47045,"o":"poison_name_hi"},{"a":47033,"t":"code","b":[32,114,175],"m":"jsr","oa":44914,"o":"text_screen"},{"a":47036,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":47038,"t":"code","b":[32,243,175],"m":"jsr","oa":45043,"o":"text_row"},{"a":47041,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":47044,"l":"arg_B7C4","c":"poison_eaten's first argument: the address of the hero's name, rewritten from hero_name_ptrs before the call.","t":"addr","b":[0,0],"oa":0,"o":"start","x":[47024]},{"a":47045,"t":"note","l":"poison_name_hi","c":"The high byte of poison_eaten's first argument, the hero's name.","note":"inside the item at $B7C4","x":[47030]},{"a":47046,"l":"poison_eaten_2","c":"poison_eaten goes on after the hero's name: \"HAS JUST EATEN SOME\".","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":47049,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":47052,"l":"arg_B7CC","c":"The address of the string the call before prints (print_centred's argument): str_poisoned at $B7E5, \"HAS JUST EATEN SOME\".","t":"addr","b":[229,183],"oa":47077,"o":"str_poisoned"},{"a":47054,"l":"poison_eaten_3","c":"After it: \"POISONED FOOD!\".","t":"code","b":[32,112,176],"m":"jsr","oa":45168,"o":"text_next_row"},{"a":47057,"t":"code","b":[32,8,176],"m":"jsr","oa":45064,"o":"print_centred"},{"a":47060,"l":"arg_B7D4","c":"The address of the string the call before prints (print_centred's argument): str_poisoned + 21 at $B7FA, \"POISONED FOOD\".","t":"addr","b":[250,183],"oa":47098,"o":"str_poisoned_food"},{"a":47062,"l":"poison_eaten_4","c":"After the strings: the poison's effect, the sound, the wait and the maze.","t":"code","b":[32,34,159],"m":"jsr","oa":40738,"o":"poison"},{"a":47065,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":47067,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":47070,"t":"code","b":[32,69,175],"m":"jsr","oa":44869,"o":"wait_64_frames"},{"a":47073,"t":"code","b":[32,180,142],"m":"jsr","oa":36532,"o":"maze_restore"},{"a":47076,"t":"code","b":[96],"m":"rts"},{"a":47077,"l":"str_poisoned","c":"\"HAS JUST EATEN SOME\" ($13 long, colour 1) and \"POISONED FOOD!\" ($0D, at $B7FA).","t":"byte","b":[19,1,72,65,83,32,74,85],"x":[47052]},{"a":47085,"t":"byte","b":[83,84,32,69,65,84,69,78]},{"a":47093,"t":"byte","b":[32,83,79,77,69]},{"a":47098,"l":"str_poisoned_food","c":"\"POISONED FOOD!\".","t":"byte","b":[13,1,80,79,73,83,79,78],"x":[47060]},{"a":47106,"t":"byte","b":[69,68,32,70,79,79,68,33]},{"a":47114,"l":"exits_animate","c":"Runs exit_spin for both players.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[34260]},{"a":47116,"t":"code","b":[32,206,186],"m":"jsr","oa":47822,"o":"exit_spin"},{"a":47119,"t":"code","b":[202],"m":"dex"},{"a":47120,"t":"code","b":[32,206,186],"m":"jsr","oa":47822,"o":"exit_spin"},{"a":47123,"t":"code","b":[96],"m":"rts"},{"a":47124,"l":"trap_wait","c":"When a trap is pending and neither player pushes a direction: springs it (trap_spring), lets both players move again and clears the trap.","t":"code","b":[173,52,184],"m":"lda","oa":47156,"o":"trap_pending","x":[33209]},{"a":47127,"t":"code","b":[240,26],"m":"beq","oa":47155,"o":"r_B833"},{"a":47129,"t":"code","b":[173,178,142],"m":"lda","oa":36530,"o":"dir_p1"},{"a":47132,"t":"code","b":[45,179,142],"m":"and","oa":36531,"o":"dir_p2"},{"a":47135,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":47137,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":47139,"t":"code","b":[208,14],"m":"bne","oa":47155,"o":"r_B833"},{"a":47141,"t":"code","b":[32,159,178],"m":"jsr","oa":45727,"o":"trap_spring"},{"a":47144,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47146,"t":"code","b":[141,107,182],"m":"sta","oa":46699,"o":"freeze_p1"},{"a":47149,"t":"code","b":[141,108,182],"m":"sta","oa":46700,"o":"freeze_p2"},{"a":47152,"t":"code","b":[141,52,184],"m":"sta","oa":47156,"o":"trap_pending"},{"a":47155,"l":"r_B833","t":"code","b":[96],"m":"rts","x":[47127,47139]},{"a":47156,"l":"trap_pending","c":"Set by trap_set until the trap springs.","t":"byte","b":[0],"x":[46996,47124,47152]},{"a":47157,"l":"pickup_routines","c":"The routine for each pickup tile from $11: doors $11 and $12 (door_unlock), chest $13 (chest_take), food $14 and $15 (food_eat), potions $16 and $17 (potion_take), the amulet $18 (amulet_take), the six special potions $19-$1E, the key $1F (key_take).","t":"addr","b":[98,184],"oa":47202,"o":"door_unlock","x":[46930]},{"a":47158,"t":"note","l":"pickup_routines_hi","c":"pickup_routines read from its second byte.","note":"inside the item at $B835","x":[46936]},{"a":47159,"t":"addr","b":[98,184],"oa":47202,"o":"door_unlock"},{"a":47161,"t":"addr","b":[27,185],"oa":47387,"o":"chest_take"},{"a":47163,"t":"addr","b":[168,184],"oa":47272,"o":"food_eat"},{"a":47165,"t":"addr","b":[168,184],"oa":47272,"o":"food_eat"},{"a":47167,"t":"addr","b":[181,184],"oa":47285,"o":"potion_take"},{"a":47169,"t":"addr","b":[181,184],"oa":47285,"o":"potion_take"},{"a":47171,"t":"addr","b":[205,184],"oa":47309,"o":"amulet_take"},{"a":47173,"t":"addr","b":[215,156],"oa":40151,"o":"power_armour"},{"a":47175,"t":"addr","b":[218,156],"oa":40154,"o":"power_carry"},{"a":47177,"t":"addr","b":[221,156],"oa":40157,"o":"power_magic"},{"a":47179,"t":"addr","b":[224,156],"oa":40160,"o":"power_shot"},{"a":47181,"t":"addr","b":[227,156],"oa":40163,"o":"power_speed"},{"a":47183,"t":"addr","b":[230,156],"oa":40166,"o":"power_fight"},{"a":47185,"t":"addr","b":[242,184],"oa":47346,"o":"key_take"},{"a":47187,"l":"pickup_sounds","c":"The sound each pickup tile from $11 plays: $0E for the doors, $11 for most, 9 for the amulet, 7 for the key.","t":"byte","b":[14,14,17,17,17,17,17,9],"x":[46942]},{"a":47195,"t":"byte","b":[17,17,17,17,17,17,7]},{"a":47202,"l":"door_unlock","c":"Opens a door with a key: starts both door processes from it, spreading in two directions (door_state $89 and $8B), takes a key and its icon from the panel, and scores 100 (score_100).","t":"code","b":[138],"m":"txa","x":[47157,47159]},{"a":47203,"t":"code","b":[10],"m":"asl","o":"a"},{"a":47204,"t":"code","b":[168],"m":"tay"},{"a":47205,"t":"code","b":[185,192,0],"m":"lda","oa":192,"o":"zpf_C0,y"},{"a":47208,"t":"code","b":[141,227,180],"m":"sta","oa":46307,"o":"door_pos"},{"a":47211,"t":"code","b":[141,229,180],"m":"sta","oa":46309,"o":"door_pos_2"},{"a":47214,"t":"code","b":[185,193,0],"m":"lda","oa":193,"o":"zpf_C1,y"},{"a":47217,"t":"code","b":[141,228,180],"m":"sta","oa":46308,"o":"door_pos_hi"},{"a":47220,"t":"code","b":[141,230,180],"m":"sta","oa":46310,"o":"door_pos_2_hi"},{"a":47223,"t":"code","b":[169,137],"m":"lda","o":"#$89"},{"a":47225,"t":"code","b":[141,231,180],"m":"sta","oa":46311,"o":"door_state"},{"a":47228,"t":"code","b":[169,139],"m":"lda","o":"#$8B"},{"a":47230,"t":"code","b":[141,233,180],"m":"sta","oa":46313,"o":"door_state_p2"},{"a":47233,"t":"code","b":[222,99,182],"m":"dec","oa":46691,"o":"keys_held,x"},{"a":47236,"t":"code","b":[189,99,182],"m":"lda","oa":46691,"o":"keys_held,x"},{"a":47239,"t":"code","b":[24],"m":"clc"},{"a":47240,"t":"code","b":[125,45,131],"m":"adc","oa":33581,"o":"panel_misc,x"},{"a":47243,"t":"code","b":[168],"m":"tay"},{"a":47244,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47246,"t":"code","b":[153,156,67],"m":"sta","oa":17308,"o":"f_439C,y"},{"a":47249,"l":"score_100","c":"Adds 1 to the middle byte of player X's score in decimal (100 points), carrying into the high byte, and raises panel_dirty.","t":"code","b":[248],"m":"sed","x":[47306,47319,47367,47397]},{"a":47250,"l":"j_B892","t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x","x":[47282]},{"a":47253,"t":"code","b":[24],"m":"clc"},{"a":47254,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":47256,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":47259,"t":"code","b":[189,45,185],"m":"lda","oa":47405,"o":"score_hi,x"},{"a":47262,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":47264,"t":"code","b":[157,45,185],"m":"sta","oa":47405,"o":"score_hi,x"},{"a":47267,"t":"code","b":[216],"m":"cld"},{"a":47268,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":47271,"t":"code","b":[96],"m":"rts"},{"a":47272,"l":"food_eat","c":"Food: adds 100 to player X's health (in decimal, to the hundreds byte $B931) and scores 100.","t":"code","b":[248],"m":"sed","x":[47163,47165]},{"a":47273,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":47276,"t":"code","b":[24],"m":"clc"},{"a":47277,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":47279,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":47282,"t":"code","b":[76,146,184],"m":"jmp","oa":47250,"o":"j_B892"},{"a":47285,"l":"potion_take","c":"A potion: draws its icon (glyph 4) in the panel, counting down from the block's right ($832F,x less the potions held), adds it to potions_held and scores 100.","t":"code","b":[189,47,131],"m":"lda","oa":33583,"o":"panel_potion_end,x","x":[40204,47167,47169]},{"a":47288,"t":"code","b":[56],"m":"sec"},{"a":47289,"t":"code","b":[253,101,182],"m":"sbc","oa":46693,"o":"potions_held,x"},{"a":47292,"t":"code","b":[168],"m":"tay"},{"a":47293,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":47295,"t":"code","b":[153,156,67],"m":"sta","oa":17308,"o":"f_439C,y"},{"a":47298,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":47300,"t":"code","b":[153,156,219],"m":"sta","o":"$DB9C,y"},{"a":47303,"t":"code","b":[254,101,182],"m":"inc","oa":46693,"o":"potions_held,x"},{"a":47306,"t":"code","b":[76,145,184],"m":"jmp","oa":47249,"o":"score_100"},{"a":47309,"l":"amulet_take","c":"The amulet: sets the amulet countdown to $FF and the player's state to 3, and scores 100.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[47171]},{"a":47311,"t":"code","b":[157,105,182],"m":"sta","oa":46697,"o":"amulet_time,x"},{"a":47314,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":47316,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":47319,"t":"code","b":[76,145,184],"m":"jmp","oa":47249,"o":"score_100"},{"a":47322,"l":"unused_potion_take","c":"24 bytes no traced code reaches: the same as potion_take but for the colour row ($DB98 in place of $DB9C).","t":"byte","b":[189,47,131,56,253,101,182,168]},{"a":47330,"t":"byte","b":[169,4,153,156,67,169,3,153]},{"a":47338,"t":"byte","b":[152,219,254,101,182,76,145,184]},{"a":47346,"l":"key_take","c":"A key: draws its icon (glyph 3, colour 7) in the panel, adds it to keys_held and scores 100.","t":"code","b":[189,99,182],"m":"lda","oa":46691,"o":"keys_held,x","x":[47185]},{"a":47349,"t":"code","b":[24],"m":"clc"},{"a":47350,"t":"code","b":[125,45,131],"m":"adc","oa":33581,"o":"panel_misc,x"},{"a":47353,"t":"code","b":[168],"m":"tay"},{"a":47354,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":47356,"t":"code","b":[153,156,67],"m":"sta","oa":17308,"o":"f_439C,y"},{"a":47359,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":47361,"t":"code","b":[153,156,219],"m":"sta","o":"$DB9C,y"},{"a":47364,"t":"code","b":[254,99,182],"m":"inc","oa":46691,"o":"keys_held,x"},{"a":47367,"t":"code","b":[76,145,184],"m":"jmp","oa":47249,"o":"score_100"},{"a":47370,"l":"potion_drop","c":"Takes one potion from player X and wipes its icon from the panel.","t":"code","b":[222,101,182],"m":"dec","oa":46693,"o":"potions_held,x","x":[40751,47801]},{"a":47373,"t":"code","b":[189,47,131],"m":"lda","oa":33583,"o":"panel_potion_end,x"},{"a":47376,"t":"code","b":[56],"m":"sec"},{"a":47377,"t":"code","b":[253,101,182],"m":"sbc","oa":46693,"o":"potions_held,x"},{"a":47380,"t":"code","b":[168],"m":"tay"},{"a":47381,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47383,"t":"code","b":[153,156,67],"m":"sta","oa":17308,"o":"f_439C,y"},{"a":47386,"t":"code","b":[96],"m":"rts"},{"a":47387,"l":"chest_take","c":"A treasure chest: counts it for the treasure room (treasures_got) and, on an ordinary level, scores 100.","t":"code","b":[254,58,175],"m":"inc","oa":44858,"o":"treasures_got,x","x":[47161]},{"a":47390,"t":"code","b":[173,204,153],"m":"lda","oa":39372,"o":"level_file"},{"a":47393,"t":"code","b":[201,118],"m":"cmp","o":"#$76"},{"a":47395,"t":"code","b":[176,3],"m":"bcs","oa":47400,"o":"r_B928"},{"a":47397,"t":"code","b":[76,145,184],"m":"jmp","oa":47249,"o":"score_100"},{"a":47399,"t":"note","l":"score_index_base","c":"The last two bytes of chest_take (its JMP's high byte and RTS), which the score routines name as a base: indexed with a shot slot (2 or 3), $B927 + X is score_lo.","note":"inside the item at $B925","x":[44024,44027,44063,44066]},{"a":47400,"l":"r_B928","t":"code","b":[96],"m":"rts","x":[47395]},{"a":47401,"l":"score_lo","c":"The low byte of each player's score in decimal ($B929, $B92A); the middle bytes are at $B92B, the high at $B92D.","t":"byte","b":[0],"x":[42205,42611,43499,43505,44032,44037,44071,44076,47645,47659,50309,50316,50522,50528]},{"a":47402,"l":"score_lo_p2","c":"Player two's low score byte.","t":"byte","b":[0],"x":[42208]},{"a":47403,"l":"score_mid","c":"Player one's middle score byte (hundreds and thousands).","t":"byte","b":[0],"x":[42211,42614,43510,43515,44042,44047,44081,44086,44706,44709,47250,47256,47621,47635,50319,50324,50533,50538]},{"a":47404,"l":"score_mid_p2","c":"Player two's middle score byte (hundreds and thousands).","t":"byte","b":[0],"x":[42214]},{"a":47405,"l":"score_hi","c":"Player one's high score byte.","t":"byte","b":[0],"x":[42217,42617,43520,43525,44712,44717,47259,47264,47597,47611,50543,50548]},{"a":47406,"l":"score_hi_p2","c":"Player two's high score byte.","t":"byte","b":[0],"x":[42220]},{"a":47407,"l":"health_lo","c":"The low byte of each player's health, in decimal ($B92F, $B930): the tens and units.","t":"byte","b":[88],"x":[36743,42199,42573,42608,44143,44150,47429,47435,47454,47491,47693,47707,48286,48291,50127,50134,50584,50591]},{"a":47408,"l":"health_lo_p2","c":"Player two's health, tens and units, in decimal.","t":"byte","b":[0],"x":[42202]},{"a":47409,"l":"health_hi","c":"The high byte of each player's health in decimal, the thousands and hundreds: $20 is 2000.","t":"byte","b":[25],"x":[40802,40808,42257,42576,42622,44153,44158,47273,47279,47438,47443,47457,47494,47669,47683,48296,48301,50139,50144,50596,50601]},{"a":47410,"l":"health_hi_p2","c":"Player two's health, thousands and hundreds, in decimal.","t":"byte","b":[32],"x":[42260]},{"a":47411,"l":"health_tick","c":"For each player in the game and not leaving: counts its freeze timer ($911E,x) down and takes one from its health in decimal; a player whose health goes below zero gets $C40C,x raised, its health set to zero, and leaves the game (player_leaves). Raises panel_dirty and counts magic_debounce down. The raster interrupt calls it every 64th frame, and every frame while $C40C/$C40D is set.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[34218]},{"a":47413,"l":"b_B935","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[47464]},{"a":47416,"t":"code","b":[240,45],"m":"beq","oa":47463,"o":"b_B967"},{"a":47418,"t":"code","b":[48,43],"m":"bmi","oa":47463,"o":"b_B967"},{"a":47420,"t":"code","b":[189,30,145],"m":"lda","oa":37150,"o":"exit_wait_p1,x"},{"a":47423,"t":"code","b":[240,3],"m":"beq","oa":47428,"o":"b_B944"},{"a":47425,"t":"code","b":[222,30,145],"m":"dec","oa":37150,"o":"exit_wait_p1,x"},{"a":47428,"l":"b_B944","t":"code","b":[248],"m":"sed","x":[47423]},{"a":47429,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":47432,"t":"code","b":[56],"m":"sec"},{"a":47433,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":47435,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":47438,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":47441,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":47443,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":47446,"t":"code","b":[176,15],"m":"bcs","oa":47463,"o":"b_B967"},{"a":47448,"t":"code","b":[254,12,196],"m":"inc","oa":50188,"o":"dead_p1,x"},{"a":47451,"t":"code","b":[216],"m":"cld"},{"a":47452,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47454,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":47457,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":47460,"t":"code","b":[32,254,151],"m":"jsr","oa":38910,"o":"player_leaves"},{"a":47463,"l":"b_B967","t":"code","b":[202],"m":"dex","x":[47416,47418,47446]},{"a":47464,"t":"code","b":[16,203],"m":"bpl","oa":47413,"o":"b_B935"},{"a":47466,"t":"code","b":[216],"m":"cld"},{"a":47467,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":47470,"t":"code","b":[173,102,186],"m":"lda","oa":47718,"o":"magic_debounce"},{"a":47473,"t":"code","b":[240,3],"m":"beq","oa":47478,"o":"r_B976"},{"a":47475,"t":"code","b":[206,102,186],"m":"dec","oa":47718,"o":"magic_debounce"},{"a":47478,"l":"r_B976","t":"code","b":[96],"m":"rts","x":[47473]},{"a":47479,"l":"deaths","c":"Takes out of the game each player whose $C40C,x is set (its health zeroed, player_leaves).","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[34221]},{"a":47481,"l":"b_B979","t":"code","b":[189,12,196],"m":"lda","oa":50188,"o":"dead_p1,x","x":[47501]},{"a":47484,"t":"code","b":[240,14],"m":"beq","oa":47500,"o":"b_B98C"},{"a":47486,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47488,"t":"code","b":[157,12,196],"m":"sta","oa":50188,"o":"dead_p1,x"},{"a":47491,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":47494,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":47497,"t":"code","b":[32,254,151],"m":"jsr","oa":38910,"o":"player_leaves"},{"a":47500,"l":"b_B98C","t":"code","b":[202],"m":"dex","x":[47484]},{"a":47501,"t":"code","b":[16,234],"m":"bpl","oa":47481,"o":"b_B979"},{"a":47503,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":47506,"t":"code","b":[96],"m":"rts"},{"a":47507,"l":"amulet_flash","c":"For each player: one that has left the level (bit 6) has its sprite turned off; one with the amulet's countdown running has its sprite toggled every pass (the flicker of invisibility) and, when the countdown ends, its sprite back on and its state back to 1.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[33105,33221]},{"a":47509,"l":"b_B995","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[47565]},{"a":47512,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":47514,"t":"code","b":[208,22],"m":"bne","oa":47538,"o":"b_B9B2"},{"a":47516,"t":"code","b":[189,105,182],"m":"lda","oa":46697,"o":"amulet_time,x"},{"a":47519,"t":"code","b":[240,43],"m":"beq","oa":47564,"o":"b_B9CC"},{"a":47521,"t":"code","b":[222,105,182],"m":"dec","oa":46697,"o":"amulet_time,x"},{"a":47524,"t":"code","b":[240,24],"m":"beq","oa":47550,"o":"b_B9BE"},{"a":47526,"t":"code","b":[189,244,151],"m":"lda","oa":38900,"o":"bits_table,x"},{"a":47529,"t":"code","b":[77,17,145],"m":"eor","oa":37137,"o":"sprites_on"},{"a":47532,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":47535,"t":"code","b":[76,204,185],"m":"jmp","oa":47564,"o":"b_B9CC"},{"a":47538,"l":"b_B9B2","t":"code","b":[189,252,151],"m":"lda","oa":38908,"o":"bits_table_hi,x","x":[47514]},{"a":47541,"t":"code","b":[45,17,145],"m":"and","oa":37137,"o":"sprites_on"},{"a":47544,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":47547,"t":"code","b":[76,204,185],"m":"jmp","oa":47564,"o":"b_B9CC"},{"a":47550,"l":"b_B9BE","t":"code","b":[189,244,151],"m":"lda","oa":38900,"o":"bits_table,x","x":[47524]},{"a":47553,"t":"code","b":[13,17,145],"m":"ora","oa":37137,"o":"sprites_on"},{"a":47556,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":47559,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":47561,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":47564,"l":"b_B9CC","t":"code","b":[202],"m":"dex","x":[47519,47535,47547]},{"a":47565,"t":"code","b":[16,198],"m":"bpl","oa":47509,"o":"b_B995"},{"a":47567,"t":"code","b":[96],"m":"rts"},{"a":47568,"l":"panel_update","c":"When panel_dirty is set: clears it and redraws both players' score and health digits (panel_digits).","t":"code","b":[173,95,182],"m":"lda","oa":46687,"o":"panel_dirty","x":[32930,33099,33218,42133]},{"a":47571,"t":"code","b":[240,13],"m":"beq","oa":47586,"o":"r_B9E2"},{"a":47573,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":47575,"t":"code","b":[32,227,185],"m":"jsr","oa":47587,"o":"panel_digits"},{"a":47578,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":47580,"t":"code","b":[142,95,182],"m":"stx","oa":46687,"o":"panel_dirty"},{"a":47583,"t":"code","b":[32,227,185],"m":"jsr","oa":47587,"o":"panel_digits"},{"a":47586,"l":"r_B9E2","t":"code","b":[96],"m":"rts","x":[47571]},{"a":47587,"l":"panel_digits","c":"Writes player X's score (six digits from $B92D, $B92B, $B929) and health (four from $B931, $B92F) into the panel's third row, each digit as glyph $10 + its value.","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[47575,47583]},{"a":47590,"t":"code","b":[208,1],"m":"bne","oa":47593,"o":"b_B9E9"},{"a":47592,"t":"code","b":[96],"m":"rts"},{"a":47593,"l":"b_B9E9","t":"code","b":[189,45,131],"m":"lda","oa":33581,"o":"panel_misc,x","x":[47590]},{"a":47596,"t":"code","b":[168],"m":"tay"},{"a":47597,"t":"code","b":[189,45,185],"m":"lda","oa":47405,"o":"score_hi,x"},{"a":47600,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":47602,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47603,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47604,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47605,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47606,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47608,"t":"code","b":[153,117,67],"m":"sta","oa":17269,"o":"f_4375,y"},{"a":47611,"t":"code","b":[189,45,185],"m":"lda","oa":47405,"o":"score_hi,x"},{"a":47614,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":47616,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47618,"t":"code","b":[153,118,67],"m":"sta","oa":17270,"o":"f_4376,y"},{"a":47621,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":47624,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":47626,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47627,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47628,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47629,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47630,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47632,"t":"code","b":[153,119,67],"m":"sta","oa":17271,"o":"f_4377,y"},{"a":47635,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":47638,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":47640,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47642,"t":"code","b":[153,120,67],"m":"sta","oa":17272,"o":"f_4378,y"},{"a":47645,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":47648,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":47650,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47651,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47652,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47653,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47654,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47656,"t":"code","b":[153,121,67],"m":"sta","oa":17273,"o":"f_4379,y"},{"a":47659,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":47662,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":47664,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47666,"t":"code","b":[153,122,67],"m":"sta","oa":17274,"o":"f_437A,y"},{"a":47669,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":47672,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":47674,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47675,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47676,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47677,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47678,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47680,"t":"code","b":[153,126,67],"m":"sta","oa":17278,"o":"f_437E,y"},{"a":47683,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":47686,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":47688,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47690,"t":"code","b":[153,127,67],"m":"sta","oa":17279,"o":"f_437F,y"},{"a":47693,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":47696,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":47698,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47699,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47700,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47701,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47702,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47704,"t":"code","b":[153,128,67],"m":"sta","oa":17280,"o":"f_4380,y"},{"a":47707,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":47710,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":47712,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":47714,"t":"code","b":[153,129,67],"m":"sta","oa":17281,"o":"f_4381,y"},{"a":47717,"t":"code","b":[96],"m":"rts"},{"a":47718,"l":"magic_debounce","c":"Stops a held magic key from using a second potion: set to 2 when one is used, counted down by health_tick.","t":"byte","b":[0],"x":[47470,47475,47719,47806]},{"a":47719,"l":"magic_keys","c":"Reads the magic keys. Player one's is SPACE: its bit low in keyboard row 7 ($8821) but not in row 6 ($8822), which tells it from joystick one's fire button (low in every row). Player two's is any of F1, F3, F5, F7 (row 0, $8828) with row 1's bits 3 and 4 ($8827) high, the same test against the joystick. A player in the game and not leaving uses a potion (magic_use).","t":"code","b":[173,102,186],"m":"lda","oa":47718,"o":"magic_debounce","x":[33200]},{"a":47722,"t":"code","b":[208,56],"m":"bne","oa":47780,"o":"r_BAA4"},{"a":47724,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":47727,"t":"code","b":[48,21],"m":"bmi","oa":47750,"o":"b_BA86"},{"a":47729,"t":"code","b":[240,19],"m":"beq","oa":47750,"o":"b_BA86"},{"a":47731,"t":"code","b":[173,33,136],"m":"lda","oa":34849,"o":"keys_state"},{"a":47734,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":47736,"t":"code","b":[208,12],"m":"bne","oa":47750,"o":"b_BA86"},{"a":47738,"t":"code","b":[173,34,136],"m":"lda","oa":34850,"o":"keys_row6"},{"a":47741,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":47743,"t":"code","b":[240,5],"m":"beq","oa":47750,"o":"b_BA86"},{"a":47745,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":47747,"t":"code","b":[32,165,186],"m":"jsr","oa":47781,"o":"magic_use"},{"a":47750,"l":"b_BA86","t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state","x":[47727,47729,47736,47743]},{"a":47753,"t":"code","b":[48,25],"m":"bmi","oa":47780,"o":"r_BAA4"},{"a":47755,"t":"code","b":[240,23],"m":"beq","oa":47780,"o":"r_BAA4"},{"a":47757,"t":"code","b":[173,40,136],"m":"lda","oa":34856,"o":"keys_row0"},{"a":47760,"t":"code","b":[41,120],"m":"and","o":"#$78"},{"a":47762,"t":"code","b":[73,120],"m":"eor","o":"#$78"},{"a":47764,"t":"code","b":[240,14],"m":"beq","oa":47780,"o":"r_BAA4"},{"a":47766,"t":"code","b":[173,39,136],"m":"lda","oa":34855,"o":"keys_row1"},{"a":47769,"t":"code","b":[41,24],"m":"and","o":"#$18"},{"a":47771,"t":"code","b":[73,24],"m":"eor","o":"#$18"},{"a":47773,"t":"code","b":[208,5],"m":"bne","oa":47780,"o":"r_BAA4"},{"a":47775,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":47777,"t":"code","b":[32,165,186],"m":"jsr","oa":47781,"o":"magic_use"},{"a":47780,"l":"r_BAA4","t":"code","b":[96],"m":"rts","x":[47722,47753,47755,47764,47773]},{"a":47781,"l":"magic_use","c":"Uses one of player X's potions when no blast is under way: starts the blast (blast_owner = X + 3), takes the potion (potion_drop), and plays sound 5; with no potion, sound $0D.","t":"code","b":[173,205,186],"m":"lda","oa":47821,"o":"blast_owner","x":[47747,47777]},{"a":47784,"t":"code","b":[208,28],"m":"bne","oa":47814,"o":"r_BAC6"},{"a":47786,"t":"code","b":[189,101,182],"m":"lda","oa":46693,"o":"potions_held,x"},{"a":47789,"t":"code","b":[240,24],"m":"beq","oa":47815,"o":"b_BAC7"},{"a":47791,"t":"code","b":[232],"m":"inx"},{"a":47792,"t":"code","b":[232],"m":"inx"},{"a":47793,"t":"code","b":[232],"m":"inx"},{"a":47794,"t":"code","b":[138],"m":"txa"},{"a":47795,"t":"code","b":[141,205,186],"m":"sta","oa":47821,"o":"blast_owner"},{"a":47798,"t":"code","b":[202],"m":"dex"},{"a":47799,"t":"code","b":[202],"m":"dex"},{"a":47800,"t":"code","b":[202],"m":"dex"},{"a":47801,"t":"code","b":[32,10,185],"m":"jsr","oa":47370,"o":"potion_drop"},{"a":47804,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":47806,"t":"code","b":[141,102,186],"m":"sta","oa":47718,"o":"magic_debounce"},{"a":47809,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":47811,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":47814,"l":"r_BAC6","t":"code","b":[96],"m":"rts","x":[47784]},{"a":47815,"l":"b_BAC7","t":"code","b":[169,13],"m":"lda","o":"#$0D","x":[47789]},{"a":47817,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":47820,"t":"code","b":[96],"m":"rts"},{"a":47821,"l":"blast_owner","c":"Non-zero while a potion's blast is under way: 1 for a shot potion, 3 or 4 for player one's or two's (the player + 3); the blast hits the generators (generators_run) and the monsters on screen (monsters_run).","t":"byte","b":[0],"x":[44352,45418,45529,47781,47795,47948,48074,50217]},{"a":47822,"l":"exit_spin","c":"The spin of player X into an exit, while its state has bit 7 and not bit 6: the facing steps round (spin_facings) as exit_count runs down; at $0F the shapes switch to a smaller set ($18 on), and when the count is done the shapes go back, the state gets bit 6 (left the level), the sprite goes off and the players are unlinked.","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[47116,47120]},{"a":47825,"t":"code","b":[16,82],"m":"bpl","oa":47909,"o":"r_BB25"},{"a":47827,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":47829,"t":"code","b":[208,78],"m":"bne","oa":47909,"o":"r_BB25"},{"a":47831,"t":"code","b":[189,111,182],"m":"lda","oa":46703,"o":"exit_count,x"},{"a":47834,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47835,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":47837,"t":"code","b":[73,7],"m":"eor","o":"#$07"},{"a":47839,"t":"code","b":[168],"m":"tay"},{"a":47840,"t":"code","b":[185,38,187],"m":"lda","oa":47910,"o":"spin_facings,y"},{"a":47843,"t":"code","b":[157,109,182],"m":"sta","oa":46701,"o":"facing_hold,x"},{"a":47846,"t":"code","b":[222,111,182],"m":"dec","oa":46703,"o":"exit_count,x"},{"a":47849,"t":"code","b":[16,42],"m":"bpl","oa":47893,"o":"b_BB15"},{"a":47851,"t":"code","b":[189,44,145],"m":"lda","oa":37164,"o":"player_shapes,x"},{"a":47854,"t":"code","b":[56],"m":"sec"},{"a":47855,"t":"code","b":[233,24],"m":"sbc","o":"#$18"},{"a":47857,"t":"code","b":[157,44,145],"m":"sta","oa":37164,"o":"player_shapes,x"},{"a":47860,"t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x"},{"a":47863,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":47865,"t":"code","b":[157,32,145],"m":"sta","oa":37152,"o":"player_state,x"},{"a":47868,"t":"code","b":[173,17,145],"m":"lda","oa":37137,"o":"sprites_on"},{"a":47871,"t":"code","b":[61,252,151],"m":"and","oa":38908,"o":"bits_table_hi,x"},{"a":47874,"t":"code","b":[141,17,145],"m":"sta","oa":37137,"o":"sprites_on"},{"a":47877,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47879,"t":"code","b":[141,34,145],"m":"sta","oa":37154,"o":"player_other"},{"a":47882,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":47884,"t":"code","b":[141,35,145],"m":"sta","oa":37155,"o":"player2_other"},{"a":47887,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":47889,"t":"code","b":[157,109,182],"m":"sta","oa":46701,"o":"facing_hold,x"},{"a":47892,"t":"code","b":[96],"m":"rts"},{"a":47893,"l":"b_BB15","t":"code","b":[189,111,182],"m":"lda","oa":46703,"o":"exit_count,x","x":[47849]},{"a":47896,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":47898,"t":"code","b":[208,9],"m":"bne","oa":47909,"o":"r_BB25"},{"a":47900,"t":"code","b":[189,44,145],"m":"lda","oa":37164,"o":"player_shapes,x"},{"a":47903,"t":"code","b":[24],"m":"clc"},{"a":47904,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":47906,"t":"code","b":[157,44,145],"m":"sta","oa":37164,"o":"player_shapes,x"},{"a":47909,"l":"r_BB25","t":"code","b":[96],"m":"rts","x":[47825,47829,47898]},{"a":47910,"l":"spin_facings","c":"The facings a player turns through going into an exit.","t":"byte","b":[14,6,7,5,13,9,11,10],"x":[47840]},{"a":47918,"l":"monsters_run","c":"Moves the monsters on screen. With a potion's blast under way it goes to blast_hit. Otherwise, on three passes in four (bits 1-2 of pass_count $824B not both clear), it visits half the table and one more (monsters_left, from monster_count / 2), every second slot (monster_step), from where it stopped last time ($BE6D); past the last monster it starts again at slot 0 or slot 1, by bit 0 of pass_count, so each monster comes up on every second working pass. It stops early when the raster interrupt has given the go-ahead for the next pass (main_go, $8264) or there are 192 monsters. Only monsters on screen move (monster_on_screen).","t":"code","b":[169,245],"m":"lda","o":"#$F5","x":[33025,33206]},{"a":47920,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":47922,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":47924,"t":"code","b":[133,254],"m":"sta","oa":254,"o":"zpa_FE"},{"a":47926,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":47929,"t":"code","b":[13,33,145],"m":"ora","oa":37153,"o":"player2_state"},{"a":47932,"t":"code","b":[240,75],"m":"beq","oa":48009,"o":"r_BB89"},{"a":47934,"t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count"},{"a":47937,"t":"code","b":[168],"m":"tay"},{"a":47938,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":47939,"t":"code","b":[141,138,187],"m":"sta","oa":48010,"o":"monsters_left"},{"a":47942,"t":"code","b":[200],"m":"iny"},{"a":47943,"t":"code","b":[240,61],"m":"beq","oa":48006,"o":"b_BB86"},{"a":47945,"t":"code","b":[172,109,190],"m":"ldy","oa":48749,"o":"monster_next_slot"},{"a":47948,"t":"code","b":[173,205,186],"m":"lda","oa":47821,"o":"blast_owner"},{"a":47951,"t":"code","b":[208,74],"m":"bne","oa":48027,"o":"blast_hit"},{"a":47953,"t":"code","b":[173,75,130],"m":"lda","oa":33355,"o":"pass_count"},{"a":47956,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":47958,"t":"code","b":[240,46],"m":"beq","oa":48006,"o":"b_BB86"},{"a":47960,"t":"code","b":[204,78,130],"m":"cpy","oa":33358,"o":"monster_count"},{"a":47963,"t":"code","b":[144,8],"m":"bcc","oa":47973,"o":"b_BB65"},{"a":47965,"t":"code","b":[240,6],"m":"beq","oa":47973,"o":"b_BB65"},{"a":47967,"t":"code","b":[173,75,130],"m":"lda","oa":33355,"o":"pass_count"},{"a":47970,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":47972,"t":"code","b":[168],"m":"tay"},{"a":47973,"l":"b_BB65","t":"code","b":[32,139,187],"m":"jsr","oa":48011,"o":"monster_step","x":[47963,47965,48004]},{"a":47976,"t":"code","b":[173,100,130],"m":"lda","oa":33380,"o":"main_go"},{"a":47979,"t":"code","b":[208,25],"m":"bne","oa":48006,"o":"b_BB86"},{"a":47981,"t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count"},{"a":47984,"t":"code","b":[201,192],"m":"cmp","o":"#$C0"},{"a":47986,"t":"code","b":[176,18],"m":"bcs","oa":48006,"o":"b_BB86"},{"a":47988,"t":"code","b":[204,78,130],"m":"cpy","oa":33358,"o":"monster_count"},{"a":47991,"t":"code","b":[144,8],"m":"bcc","oa":48001,"o":"b_BB81"},{"a":47993,"t":"code","b":[240,6],"m":"beq","oa":48001,"o":"b_BB81"},{"a":47995,"t":"code","b":[173,75,130],"m":"lda","oa":33355,"o":"pass_count"},{"a":47998,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":48000,"t":"code","b":[168],"m":"tay"},{"a":48001,"l":"b_BB81","t":"code","b":[206,138,187],"m":"dec","oa":48010,"o":"monsters_left","x":[47991,47993]},{"a":48004,"t":"code","b":[16,223],"m":"bpl","oa":47973,"o":"b_BB65"},{"a":48006,"l":"b_BB86","t":"code","b":[140,109,190],"m":"sty","oa":48749,"o":"monster_next_slot","x":[47943,47958,47979,47986]},{"a":48009,"l":"r_BB89","t":"code","b":[96],"m":"rts","x":[47932]},{"a":48010,"l":"monsters_left","c":"How many monsters monsters_run may still move this pass.","t":"byte","b":[255],"x":[47939,48001]},{"a":48011,"l":"monster_step","c":"Moves monster Y if it is on screen (monster_on_screen, then monster_move $BD06) and steps Y on by two, to every second slot; when the move removed the monster, Y stays, for the monster moved into its slot.","t":"code","b":[140,74,130],"m":"sty","oa":33354,"o":"monster_cur","x":[47973]},{"a":48014,"t":"code","b":[32,211,187],"m":"jsr","oa":48083,"o":"monster_on_screen"},{"a":48017,"t":"code","b":[176,5],"m":"bcs","oa":48024,"o":"b_BB98"},{"a":48019,"t":"code","b":[32,6,189],"m":"jsr","oa":48390,"o":"monster_move"},{"a":48022,"t":"code","b":[176,2],"m":"bcs","oa":48026,"o":"r_BB9A"},{"a":48024,"l":"b_BB98","t":"code","b":[200],"m":"iny","x":[48017]},{"a":48025,"t":"code","b":[200],"m":"iny"},{"a":48026,"l":"r_BB9A","t":"code","b":[96],"m":"rts","x":[48022]},{"a":48027,"l":"blast_hit","c":"A potion's blast: flashes the maze's second colour white ($D022), hits every monster on screen ($C429), clears blast_owner and puts the colour back ($0B).","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[47951]},{"a":48029,"t":"code","b":[141,90,130],"m":"sta","oa":33370,"o":"d022_colour"},{"a":48032,"t":"code","b":[141,34,208],"m":"sta","o":"vic_background1"},{"a":48035,"t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count"},{"a":48038,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":48040,"t":"code","b":[240,30],"m":"beq","oa":48072,"o":"b_BBC8"},{"a":48042,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":48044,"l":"b_BBAC","t":"code","b":[140,74,130],"m":"sty","oa":33354,"o":"monster_cur","x":[48068,48070]},{"a":48047,"t":"code","b":[32,211,187],"m":"jsr","oa":48083,"o":"monster_on_screen"},{"a":48050,"t":"code","b":[176,5],"m":"bcs","oa":48057,"o":"b_BBB9"},{"a":48052,"t":"code","b":[32,41,196],"m":"jsr","oa":50217,"o":"blast_monster"},{"a":48055,"t":"code","b":[176,1],"m":"bcs","oa":48058,"o":"b_BBBA"},{"a":48057,"l":"b_BBB9","t":"code","b":[200],"m":"iny","x":[48050]},{"a":48058,"l":"b_BBBA","t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count","x":[48055]},{"a":48061,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":48063,"t":"code","b":[240,7],"m":"beq","oa":48072,"o":"b_BBC8"},{"a":48065,"t":"code","b":[204,78,130],"m":"cpy","oa":33358,"o":"monster_count"},{"a":48068,"t":"code","b":[144,230],"m":"bcc","oa":48044,"o":"b_BBAC"},{"a":48070,"t":"code","b":[240,228],"m":"beq","oa":48044,"o":"b_BBAC"},{"a":48072,"l":"b_BBC8","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[48040,48063]},{"a":48074,"t":"code","b":[141,205,186],"m":"sta","oa":47821,"o":"blast_owner"},{"a":48077,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":48079,"t":"code","b":[141,90,130],"m":"sta","oa":33370,"o":"d022_colour"},{"a":48082,"t":"code","b":[96],"m":"rts"},{"a":48083,"l":"monster_on_screen","c":"Carry clear when monster Y's position is within the 34 x 22 cells of the screen (map_x/map_y less one).","t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y","x":[48014,48047]},{"a":48086,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48087,"t":"code","b":[56],"m":"sec"},{"a":48088,"t":"code","b":[237,49,136],"m":"sbc","oa":34865,"o":"map_x"},{"a":48091,"t":"code","b":[24],"m":"clc"},{"a":48092,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":48094,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":48096,"t":"code","b":[201,34],"m":"cmp","o":"#$22"},{"a":48098,"t":"code","b":[176,20],"m":"bcs","oa":48120,"o":"monster_on_screen_out"},{"a":48100,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":48103,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48104,"t":"code","b":[56],"m":"sec"},{"a":48105,"t":"code","b":[237,51,136],"m":"sbc","oa":34867,"o":"map_y"},{"a":48108,"t":"code","b":[24],"m":"clc"},{"a":48109,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":48111,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":48113,"t":"code","b":[201,22],"m":"cmp","o":"#$16"},{"a":48115,"t":"code","b":[176,3],"m":"bcs","oa":48120,"o":"monster_on_screen_out"},{"a":48117,"t":"code","b":[24],"m":"clc"},{"a":48118,"t":"code","b":[96],"m":"rts"},{"a":48119,"l":"unused_sec","c":"A SEC byte between monster_on_screen's two returns that no code reaches.","t":"byte","b":[56]},{"a":48120,"l":"monster_on_screen_out","c":"monster_on_screen's return with the carry set (off screen).","t":"code","b":[96],"m":"rts","x":[48098,48115]},{"a":48121,"l":"monster_attack","c":"Monster Y next to player X attacks. Except for a ghost, a monster whose chosen facing is odd (monster_facings) does not. A monster on the player's very spot is removed (monster_remove); one more than four cells off on either axis does nothing. A ghost does not attack from a diagonal (ghost_diagonal). Then monster_hits ($C3AC) takes the health on alternate attempts and lets the player hit back; carry set from it means the player's blow killed the monster, and the routine returns. A ghost hits once and vanishes (taken off the map, $C584, and out of the table, sound 0); Death (kind 5) takes 4 health a touch (in decimal) while its drain count ($0700,y) lasts, the player leaving the game if its health runs out, and is removed when the count is used up; the other kinds play sound $0A. Carry set when the monster was removed.","t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y","x":[48934]},{"a":48124,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":48126,"t":"code","b":[240,13],"m":"beq","oa":48141,"o":"b_BC0D"},{"a":48128,"t":"code","b":[138],"m":"txa"},{"a":48129,"t":"code","b":[72],"m":"pha"},{"a":48130,"t":"code","b":[174,91,130],"m":"ldx","oa":33371,"o":"scratch"},{"a":48133,"t":"code","b":[189,155,191],"m":"lda","oa":49051,"o":"monster_facings,x"},{"a":48136,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48137,"t":"code","b":[104],"m":"pla"},{"a":48138,"t":"code","b":[170],"m":"tax"},{"a":48139,"t":"code","b":[176,31],"m":"bcs","oa":48172,"o":"b_BC2C"},{"a":48141,"l":"b_BC0D","t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x","x":[48126]},{"a":48144,"t":"code","b":[29,133,191],"m":"ora","oa":49029,"o":"target_dy,x"},{"a":48147,"t":"code","b":[208,3],"m":"bne","oa":48152,"o":"b_BC18"},{"a":48149,"t":"code","b":[76,199,188],"m":"jmp","oa":48327,"o":"monster_remove"},{"a":48152,"l":"b_BC18","t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x","x":[48147]},{"a":48155,"t":"code","b":[24],"m":"clc"},{"a":48156,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":48158,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":48160,"t":"code","b":[176,10],"m":"bcs","oa":48172,"o":"b_BC2C"},{"a":48162,"t":"code","b":[189,133,191],"m":"lda","oa":49029,"o":"target_dy,x"},{"a":48165,"t":"code","b":[24],"m":"clc"},{"a":48166,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":48168,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":48170,"t":"code","b":[144,2],"m":"bcc","oa":48174,"o":"b_BC2E"},{"a":48172,"l":"b_BC2C","t":"code","b":[24],"m":"clc","x":[48139,48160]},{"a":48173,"t":"code","b":[96],"m":"rts"},{"a":48174,"l":"b_BC2E","t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y","x":[48170]},{"a":48177,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":48179,"t":"code","b":[208,6],"m":"bne","oa":48187,"o":"b_BC3B"},{"a":48181,"t":"code","b":[32,234,188],"m":"jsr","oa":48362,"o":"ghost_diagonal"},{"a":48184,"t":"code","b":[176,1],"m":"bcs","oa":48187,"o":"b_BC3B"},{"a":48186,"t":"code","b":[96],"m":"rts"},{"a":48187,"l":"b_BC3B","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[48179,48184]},{"a":48189,"t":"code","b":[141,241,191],"m":"sta","oa":49137,"o":"attack_flag"},{"a":48192,"t":"code","b":[32,172,195],"m":"jsr","oa":50092,"o":"monster_hits"},{"a":48195,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48198,"t":"code","b":[144,1],"m":"bcc","oa":48201,"o":"b_BC49"},{"a":48200,"t":"code","b":[96],"m":"rts"},{"a":48201,"l":"b_BC49","t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y","x":[48198]},{"a":48204,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":48206,"t":"code","b":[240,14],"m":"beq","oa":48222,"o":"b_BC5E"},{"a":48208,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":48210,"t":"code","b":[240,53],"m":"beq","oa":48265,"o":"b_BC89"},{"a":48212,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":48214,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":48217,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48220,"t":"code","b":[24],"m":"clc"},{"a":48221,"t":"code","b":[96],"m":"rts"},{"a":48222,"l":"b_BC5E","t":"code","b":[32,132,197],"m":"jsr","oa":50564,"o":"ghost_touch","x":[48206]},{"a":48225,"t":"code","b":[174,78,130],"m":"ldx","oa":33358,"o":"monster_count"},{"a":48228,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":48231,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":48234,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":48237,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":48240,"t":"code","b":[189,128,5],"m":"lda","oa":1408,"o":"f_0580,x"},{"a":48243,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":48246,"t":"code","b":[189,64,6],"m":"lda","oa":1600,"o":"f_0640,x"},{"a":48249,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":48252,"t":"code","b":[206,78,130],"m":"dec","oa":33358,"o":"monster_count"},{"a":48255,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":48257,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":48260,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48263,"t":"code","b":[56],"m":"sec"},{"a":48264,"t":"code","b":[96],"m":"rts"},{"a":48265,"l":"b_BC89","t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y","x":[48210]},{"a":48268,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":48270,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":48273,"t":"code","b":[185,0,7],"m":"lda","oa":1792,"o":"f_0700,y"},{"a":48276,"t":"code","b":[56],"m":"sec"},{"a":48277,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":48279,"t":"code","b":[153,0,7],"m":"sta","oa":1792,"o":"f_0700,y"},{"a":48282,"t":"code","b":[240,43],"m":"beq","oa":48327,"o":"monster_remove"},{"a":48283,"t":"note","l":"death_drain","c":"Part of monster_attack: Death's touch, 4 health off in decimal and the player out of the game when it runs out. Its address is also where pinn232 calls the BASIC ROM ($BC9B).","note":"inside the item at $BC9A","x":[5265]},{"a":48284,"t":"code","b":[248],"m":"sed"},{"a":48285,"t":"code","b":[56],"m":"sec"},{"a":48286,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":48289,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":48291,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":48294,"t":"code","b":[176,14],"m":"bcs","oa":48310,"o":"b_BCB6"},{"a":48296,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":48299,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":48301,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":48304,"t":"code","b":[176,4],"m":"bcs","oa":48310,"o":"b_BCB6"},{"a":48306,"t":"code","b":[216],"m":"cld"},{"a":48307,"t":"code","b":[32,254,151],"m":"jsr","oa":38910,"o":"player_leaves"},{"a":48310,"l":"b_BCB6","t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty","x":[48294,48304]},{"a":48313,"t":"code","b":[216],"m":"cld"},{"a":48314,"t":"code","b":[138],"m":"txa"},{"a":48315,"t":"code","b":[72],"m":"pha"},{"a":48316,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":48318,"t":"code","b":[32,219,205],"m":"jsr","oa":52699,"o":"sfx_start"},{"a":48321,"t":"code","b":[104],"m":"pla"},{"a":48322,"t":"code","b":[170],"m":"tax"},{"a":48323,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48326,"t":"code","b":[96],"m":"rts"},{"a":48327,"l":"monster_remove","c":"Takes monster Y out of the table: the last monster's X, Y, kind byte and flags ($0400, $04C0, $0580, $0640) move into its slot and the count goes down. Death's drain count ($0700) does not move with it, so a Death moved into the slot of a Death that drained its last touch takes over that count of 0, and its next touch (death_drain) wraps it to $FF.","t":"code","b":[174,78,130],"m":"ldx","oa":33358,"o":"monster_count","x":[48149,48282]},{"a":48330,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":48333,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":48336,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":48339,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":48342,"t":"code","b":[189,128,5],"m":"lda","oa":1408,"o":"f_0580,x"},{"a":48345,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":48348,"t":"code","b":[189,64,6],"m":"lda","oa":1600,"o":"f_0640,x"},{"a":48351,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":48354,"t":"code","b":[206,78,130],"m":"dec","oa":33358,"o":"monster_count"},{"a":48357,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48360,"t":"code","b":[56],"m":"sec"},{"a":48361,"t":"code","b":[96],"m":"rts"},{"a":48362,"l":"ghost_diagonal","c":"Carry clear when the player is exactly four cells off on both axes, diagonally next to the monster.","t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x","x":[48181]},{"a":48365,"t":"code","b":[24],"m":"clc"},{"a":48366,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":48368,"t":"code","b":[240,6],"m":"beq","oa":48376,"o":"b_BCF8"},{"a":48370,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":48372,"t":"code","b":[240,2],"m":"beq","oa":48376,"o":"b_BCF8"},{"a":48374,"l":"b_BCF6","t":"code","b":[56],"m":"sec","x":[48386]},{"a":48375,"t":"code","b":[96],"m":"rts"},{"a":48376,"l":"b_BCF8","t":"code","b":[189,133,191],"m":"lda","oa":49029,"o":"target_dy,x","x":[48368,48372]},{"a":48379,"t":"code","b":[24],"m":"clc"},{"a":48380,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":48382,"t":"code","b":[240,4],"m":"beq","oa":48388,"o":"b_BD04"},{"a":48384,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":48386,"t":"code","b":[208,242],"m":"bne","oa":48374,"o":"b_BCF6"},{"a":48388,"l":"b_BD04","t":"code","b":[24],"m":"clc","x":[48382]},{"a":48389,"t":"code","b":[96],"m":"rts"},{"a":48390,"l":"monster_move","c":"Moves monster Y one step. Its old cells are cleared from the maps ($BDBF, $C35A); it picks a direction towards its target (monster_aim, which also runs the attack); with bit 0 of the result set and no attack it tries another way (monster_turn). Unless an attack happened, it looks one step along its facing (monster_next): if the cells there are free (monster_cells_free) it goes there, a sorcerer (kind 4) changing its visibility as it goes (bit 3 of its flags, with a count in bits 6-7); otherwise it stays and only turns. The monster is drawn where it ends up (character and colour, $CA7F/$CB5D, or $CBB1 for a sorcerer out of sight) and may shoot ($C49E).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[48019]},{"a":48392,"t":"code","b":[141,241,191],"m":"sta","oa":49137,"o":"attack_flag"},{"a":48395,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":48398,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":48401,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":48404,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":48407,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":48410,"t":"code","b":[32,90,195],"m":"jsr","oa":50010,"o":"monster_unplot"},{"a":48413,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48416,"t":"code","b":[32,144,190],"m":"jsr","oa":48784,"o":"monster_aim"},{"a":48419,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":48421,"t":"code","b":[240,8],"m":"beq","oa":48431,"o":"b_BD2F"},{"a":48423,"t":"code","b":[173,241,191],"m":"lda","oa":49137,"o":"attack_flag"},{"a":48426,"t":"code","b":[208,3],"m":"bne","oa":48431,"o":"b_BD2F"},{"a":48428,"t":"code","b":[32,187,191],"m":"jsr","oa":49083,"o":"monster_turn"},{"a":48431,"l":"b_BD2F","t":"code","b":[32,222,189],"m":"jsr","oa":48606,"o":"monster_tile_ptr","x":[48421,48426]},{"a":48434,"t":"code","b":[173,241,191],"m":"lda","oa":49137,"o":"attack_flag"},{"a":48437,"t":"code","b":[208,26],"m":"bne","oa":48465,"o":"b_BD51"},{"a":48439,"t":"code","b":[32,236,189],"m":"jsr","oa":48620,"o":"monster_next"},{"a":48442,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":48445,"t":"code","b":[32,11,190],"m":"jsr","oa":48651,"o":"monster_cells_free"},{"a":48448,"t":"code","b":[240,43],"m":"beq","oa":48493,"o":"b_BD6D"},{"a":48450,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":48453,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":48456,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":48459,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":48462,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":48465,"l":"b_BD51","t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs","x":[48437]},{"a":48468,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":48471,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":48473,"t":"code","b":[13,89,195],"m":"ora","oa":50009,"o":"monster_facing"},{"a":48476,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":48479,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":48482,"t":"code","b":[41,247],"m":"and","o":"#$F7"},{"a":48484,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":48487,"t":"code","b":[32,222,189],"m":"jsr","oa":48606,"o":"monster_tile_ptr"},{"a":48490,"t":"code","b":[76,155,189],"m":"jmp","oa":48539,"o":"j_BD9B"},{"a":48493,"l":"b_BD6D","t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur","x":[48448]},{"a":48496,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":48499,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":48501,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":48503,"t":"code","b":[208,34],"m":"bne","oa":48539,"o":"j_BD9B"},{"a":48505,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":48508,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":48510,"t":"code","b":[208,8],"m":"bne","oa":48520,"o":"b_BD88"},{"a":48512,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":48515,"t":"code","b":[73,8],"m":"eor","o":"#$08"},{"a":48517,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":48520,"l":"b_BD88","t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y","x":[48510]},{"a":48523,"t":"code","b":[24],"m":"clc"},{"a":48524,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":48526,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":48529,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":48531,"t":"code","b":[240,6],"m":"beq","oa":48539,"o":"j_BD9B"},{"a":48533,"t":"code","b":[32,177,203],"m":"jsr","oa":52145,"o":"sorcerer_hide"},{"a":48536,"t":"code","b":[76,161,189],"m":"jmp","oa":48545,"o":"j_BDA1"},{"a":48539,"l":"j_BD9B","t":"code","b":[32,127,202],"m":"jsr","oa":51839,"o":"monster_draw","x":[48490,48503,48531]},{"a":48542,"t":"code","b":[32,93,203],"m":"jsr","oa":52061,"o":"monster_colour"},{"a":48545,"l":"j_BDA1","t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur","x":[48536]},{"a":48548,"t":"code","b":[32,158,196],"m":"jsr","oa":50334,"o":"monster_shoot"},{"a":48551,"t":"code","b":[173,110,190],"m":"lda","oa":48750,"o":"cell_pos_x"},{"a":48554,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":48557,"t":"code","b":[173,111,190],"m":"lda","oa":48751,"o":"cell_pos_y"},{"a":48560,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":48563,"t":"code","b":[24],"m":"clc"},{"a":48564,"t":"code","b":[96],"m":"rts"},{"a":48565,"l":"unused_clear_flag","c":"Ten bytes no traced code reaches: clear bit 5 of monster Y's flags and return with carry clear.","t":"byte","b":[185,64,6,41,223,153,64,6]},{"a":48573,"t":"byte","b":[24,96]},{"a":48575,"l":"cell_ptrs","c":"From the cell position in $BE6E/$BE6F, points $F7/$F8 at its colour map byte ($2000 page) and $F9/$FA at its character map byte ($3000 page).","t":"code","b":[173,110,190],"m":"lda","oa":48750,"o":"cell_pos_x","x":[41973,43451,45609,48407,48442,48465,49202,50263]},{"a":48578,"t":"code","b":[10],"m":"asl","o":"a"},{"a":48579,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":48581,"t":"code","b":[173,111,190],"m":"lda","oa":48751,"o":"cell_pos_y"},{"a":48584,"t":"code","b":[41,126],"m":"and","o":"#$7E"},{"a":48586,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48587,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48588,"t":"code","b":[102,247],"m":"ror","oa":247,"o":"zpa_F7"},{"a":48590,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48591,"t":"code","b":[102,247],"m":"ror","oa":247,"o":"zpa_F7"},{"a":48593,"t":"code","b":[9,32],"m":"ora","o":"#$20"},{"a":48595,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":48597,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":48599,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":48601,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":48603,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":48605,"t":"code","b":[96],"m":"rts"},{"a":48606,"l":"monster_tile_ptr","c":"Points $FB and $FD at monster Y's tile graphics: its tile is $40 + its kind and facing ($0580 & $3F), four bytes each in tile_chars and the colour table.","t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y","x":[45680,48431,48487,49199]},{"a":48609,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":48611,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":48613,"t":"code","b":[10],"m":"asl","o":"a"},{"a":48614,"t":"code","b":[10],"m":"asl","o":"a"},{"a":48615,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":48617,"t":"code","b":[133,253],"m":"sta","oa":253,"o":"zpa_FD"},{"a":48619,"t":"code","b":[96],"m":"rts"},{"a":48620,"l":"monster_next","c":"The cell monster Y's facing leads to: its position plus one step (mon_dx/mon_dy) into $BE6E/$BE6F, kept even.","t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y","x":[48439]},{"a":48623,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":48625,"t":"code","b":[170],"m":"tax"},{"a":48626,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":48629,"t":"code","b":[24],"m":"clc"},{"a":48630,"t":"code","b":[125,128,190],"m":"adc","oa":48768,"o":"mon_dx,x"},{"a":48633,"t":"code","b":[41,126],"m":"and","o":"#$7E"},{"a":48635,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":48638,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":48641,"t":"code","b":[24],"m":"clc"},{"a":48642,"t":"code","b":[125,112,190],"m":"adc","oa":48752,"o":"mon_dy,x"},{"a":48645,"t":"code","b":[41,126],"m":"and","o":"#$7E"},{"a":48647,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":48650,"t":"code","b":[96],"m":"rts"},{"a":48651,"l":"monster_cells_free","c":"Zero when the monster's two-by-two cells at the new position are all empty and no attack has happened ($BFF1); at the map's right or bottom edge ($7E) it reads the wrapped cells.","t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur","x":[48445]},{"a":48654,"t":"code","b":[169,125],"m":"lda","o":"#$7D"},{"a":48656,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":48659,"t":"code","b":[144,23],"m":"bcc","oa":48684,"o":"b_BE2C"},{"a":48661,"t":"code","b":[205,111,190],"m":"cmp","oa":48751,"o":"cell_pos_y"},{"a":48664,"t":"code","b":[144,18],"m":"bcc","oa":48684,"o":"b_BE2C"},{"a":48666,"l":"cells_empty","c":"Zero when the four character cells at ($F9) are all zero and $BFF1 is clear.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[41976,45612]},{"a":48668,"t":"code","b":[177,249],"m":"lda","oa":249,"o":"(zpa_F9),y"},{"a":48670,"t":"code","b":[200],"m":"iny"},{"a":48671,"t":"code","b":[17,249],"m":"ora","oa":249,"o":"(zpa_F9),y"},{"a":48673,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":48675,"t":"code","b":[17,249],"m":"ora","oa":249,"o":"(zpa_F9),y"},{"a":48677,"t":"code","b":[200],"m":"iny"},{"a":48678,"t":"code","b":[17,249],"m":"ora","oa":249,"o":"(zpa_F9),y"},{"a":48680,"t":"code","b":[13,241,191],"m":"ora","oa":49137,"o":"attack_flag"},{"a":48683,"t":"code","b":[96],"m":"rts"},{"a":48684,"l":"b_BE2C","t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9","x":[48659,48664]},{"a":48686,"t":"code","b":[72],"m":"pha"},{"a":48687,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":48689,"t":"code","b":[170],"m":"tax"},{"a":48690,"t":"code","b":[69,249],"m":"eor","oa":249,"o":"zpa_F9"},{"a":48692,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":48694,"t":"code","b":[165,250],"m":"lda","oa":250,"o":"zpa_FA"},{"a":48696,"t":"code","b":[72],"m":"pha"},{"a":48697,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":48700,"t":"code","b":[177,249],"m":"lda","oa":249,"o":"(zpa_F9),y"},{"a":48702,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":48705,"t":"code","b":[17,249],"m":"ora","oa":249,"o":"(zpa_F9),y"},{"a":48707,"t":"code","b":[72],"m":"pha"},{"a":48708,"t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9"},{"a":48710,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":48712,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":48714,"t":"code","b":[144,10],"m":"bcc","oa":48726,"o":"b_BE56"},{"a":48716,"t":"code","b":[165,250],"m":"lda","oa":250,"o":"zpa_FA"},{"a":48718,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":48720,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":48722,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":48724,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":48726,"l":"b_BE56","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[48714]},{"a":48729,"t":"code","b":[104],"m":"pla"},{"a":48730,"t":"code","b":[17,249],"m":"ora","oa":249,"o":"(zpa_F9),y"},{"a":48732,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":48735,"t":"code","b":[17,249],"m":"ora","oa":249,"o":"(zpa_F9),y"},{"a":48737,"t":"code","b":[13,241,191],"m":"ora","oa":49137,"o":"attack_flag"},{"a":48740,"t":"code","b":[170],"m":"tax"},{"a":48741,"t":"code","b":[104],"m":"pla"},{"a":48742,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":48744,"t":"code","b":[104],"m":"pla"},{"a":48745,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":48747,"t":"code","b":[138],"m":"txa"},{"a":48748,"t":"code","b":[96],"m":"rts"},{"a":48749,"l":"monster_next_slot","c":"Where monsters_run starts next time.","t":"byte","b":[27],"x":[47945,48006]},{"a":48750,"l":"cell_pos_x","c":"A cell position being looked at (X), in the units of the monster table.","t":"byte","b":[12],"x":[41970,42004,43439,45592,45641,48398,48456,48551,48575,48635,48656,49190,50015,50254,51841,51952,51957,52063,52068]},{"a":48751,"l":"cell_pos_y","c":"The Y of that position.","t":"byte","b":[64],"x":[41962,42012,43445,45606,45658,48404,48462,48557,48581,48647,48661,49196,50020,50260,51846]},{"a":48752,"l":"mon_dy","c":"The Y step for each facing, two cells for monsters ($BE70-$BE77), three for fast shots ($BE78-$BE7F).","t":"byte","b":[254,254,0,2,2,2,0,254],"x":[42923,48642]},{"a":48760,"t":"byte","b":[253,253,0,3,3,3,0,253]},{"a":48768,"l":"mon_dx","c":"The X step for each facing, two cells and three.","t":"byte","b":[0,2,2,2,0,254,254,254],"x":[42913,48630]},{"a":48776,"t":"byte","b":[0,3,3,3,0,253,253,253]},{"a":48784,"l":"monster_aim","c":"Aims monster Y: measures each target player's distance (in X, in Y, and the two added; a player leaving or under the amulet is ignored), picks the nearer (monster_target), and makes a facing towards it from the signs. A lobber (kind 3) nearer than $18 turns the other way, so lobbers keep their distance. Then the attack is tried (monster_attack); when it removed the monster, the caller's return is dropped.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[48416]},{"a":48786,"l":"b_BE92","t":"code","b":[189,32,145],"m":"lda","oa":37152,"o":"player_state,x","x":[48862]},{"a":48789,"t":"code","b":[48,70],"m":"bmi","oa":48861,"o":"b_BEDD"},{"a":48791,"t":"code","b":[240,68],"m":"beq","oa":48861,"o":"b_BEDD"},{"a":48793,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":48795,"t":"code","b":[240,64],"m":"beq","oa":48861,"o":"b_BEDD"},{"a":48797,"t":"code","b":[189,4,145],"m":"lda","oa":37124,"o":"player_world_x,x"},{"a":48800,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48801,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":48804,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":48807,"t":"code","b":[56],"m":"sec"},{"a":48808,"t":"code","b":[237,92,130],"m":"sbc","oa":33372,"o":"scratch_2"},{"a":48811,"t":"code","b":[32,171,191],"m":"jsr","oa":49067,"o":"wrap_delta"},{"a":48814,"t":"code","b":[157,131,191],"m":"sta","oa":49027,"o":"target_dx,x"},{"a":48817,"t":"code","b":[48,5],"m":"bmi","oa":48824,"o":"b_BEB8"},{"a":48819,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":48821,"t":"code","b":[24],"m":"clc"},{"a":48822,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":48824,"l":"b_BEB8","t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch","x":[48817]},{"a":48827,"t":"code","b":[189,6,145],"m":"lda","oa":37126,"o":"player_world_y,x"},{"a":48830,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":48831,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":48834,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":48837,"t":"code","b":[56],"m":"sec"},{"a":48838,"t":"code","b":[237,92,130],"m":"sbc","oa":33372,"o":"scratch_2"},{"a":48841,"t":"code","b":[32,171,191],"m":"jsr","oa":49067,"o":"wrap_delta"},{"a":48844,"t":"code","b":[157,133,191],"m":"sta","oa":49029,"o":"target_dy,x"},{"a":48847,"t":"code","b":[48,5],"m":"bmi","oa":48854,"o":"b_BED6"},{"a":48849,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":48851,"t":"code","b":[24],"m":"clc"},{"a":48852,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":48854,"l":"b_BED6","t":"code","b":[24],"m":"clc","x":[48847]},{"a":48855,"t":"code","b":[109,91,130],"m":"adc","oa":33371,"o":"scratch"},{"a":48858,"t":"code","b":[157,135,191],"m":"sta","oa":49031,"o":"target_dist,x"},{"a":48861,"l":"b_BEDD","t":"code","b":[202],"m":"dex","x":[48789,48791,48795]},{"a":48862,"t":"code","b":[16,178],"m":"bpl","oa":48786,"o":"b_BE92"},{"a":48864,"t":"code","b":[32,83,191],"m":"jsr","oa":48979,"o":"monster_target"},{"a":48867,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":48869,"t":"code","b":[141,138,191],"m":"sta","oa":49034,"o":"flee_flip"},{"a":48872,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":48875,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":48877,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":48879,"t":"code","b":[208,12],"m":"bne","oa":48893,"o":"b_BEFD"},{"a":48881,"t":"code","b":[189,135,191],"m":"lda","oa":49031,"o":"target_dist,x"},{"a":48884,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":48886,"t":"code","b":[176,5],"m":"bcs","oa":48893,"o":"b_BEFD"},{"a":48888,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":48890,"t":"code","b":[141,138,191],"m":"sta","oa":49034,"o":"flee_flip"},{"a":48893,"l":"b_BEFD","t":"code","b":[169,15],"m":"lda","o":"#$0F","x":[48879,48886]},{"a":48895,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":48898,"t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x"},{"a":48901,"t":"code","b":[240,13],"m":"beq","oa":48916,"o":"b_BF14"},{"a":48903,"t":"code","b":[48,3],"m":"bmi","oa":48908,"o":"b_BF0C"},{"a":48905,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":48907,"t":"code","b":[44,169,7],"m":"bit","oa":1961,"o":"a_07A9"},{"a":48910,"t":"code","b":[45,91,130],"m":"and","oa":33371,"o":"scratch"},{"a":48913,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":48916,"l":"b_BF14","t":"code","b":[189,133,191],"m":"lda","oa":49029,"o":"target_dy,x","x":[48901]},{"a":48919,"t":"code","b":[240,13],"m":"beq","oa":48934,"o":"b_BF26"},{"a":48921,"t":"code","b":[48,3],"m":"bmi","oa":48926,"o":"b_BF1E"},{"a":48923,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":48925,"t":"code","b":[44,169,13],"m":"bit","oa":3497,"o":"a_0DA9"},{"a":48928,"t":"code","b":[45,91,130],"m":"and","oa":33371,"o":"scratch"},{"a":48931,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":48934,"l":"b_BF26","t":"code","b":[32,249,187],"m":"jsr","oa":48121,"o":"monster_attack","x":[48919]},{"a":48937,"t":"code","b":[176,36],"m":"bcs","oa":48975,"o":"b_BF4F"},{"a":48939,"t":"code","b":[174,91,130],"m":"ldx","oa":33371,"o":"scratch"},{"a":48942,"t":"code","b":[189,139,191],"m":"lda","oa":49035,"o":"stick_dirs,x"},{"a":48945,"t":"code","b":[141,137,191],"m":"sta","oa":49033,"o":"target_stick"},{"a":48948,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":48951,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":48953,"t":"code","b":[29,155,191],"m":"ora","oa":49051,"o":"monster_facings,x"},{"a":48956,"t":"code","b":[77,138,191],"m":"eor","oa":49034,"o":"flee_flip"},{"a":48959,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":48962,"t":"code","b":[189,155,191],"m":"lda","oa":49051,"o":"monster_facings,x"},{"a":48965,"t":"code","b":[77,138,191],"m":"eor","oa":49034,"o":"flee_flip"},{"a":48968,"t":"code","b":[141,89,195],"m":"sta","oa":50009,"o":"monster_facing"},{"a":48971,"t":"code","b":[141,170,191],"m":"sta","oa":49066,"o":"monster_facing_new"},{"a":48974,"t":"code","b":[96],"m":"rts"},{"a":48975,"l":"b_BF4F","t":"code","b":[104],"m":"pla","x":[48937]},{"a":48976,"t":"code","b":[104],"m":"pla"},{"a":48977,"t":"code","b":[56],"m":"sec"},{"a":48978,"t":"code","b":[96],"m":"rts"},{"a":48979,"l":"monster_target","c":"Picks which player monsters go for: the nearer by the two distances monster_aim added up (target_dist, short across the map's edge, wrap_delta) when both are in the game, otherwise the one that is. The table target_of is indexed by which players are in the game, and its fourth entry is target_far itself.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[48864]},{"a":48981,"t":"code","b":[141,129,191],"m":"sta","oa":49025,"o":"target_far"},{"a":48984,"t":"code","b":[173,135,191],"m":"lda","oa":49031,"o":"target_dist"},{"a":48987,"t":"code","b":[205,136,191],"m":"cmp","oa":49032,"o":"target_dist_p2"},{"a":48990,"t":"code","b":[144,3],"m":"bcc","oa":48995,"o":"b_BF63"},{"a":48992,"t":"code","b":[238,129,191],"m":"inc","oa":49025,"o":"target_far"},{"a":48995,"l":"b_BF63","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[48990]},{"a":48997,"t":"code","b":[173,32,145],"m":"lda","oa":37152,"o":"player_state"},{"a":49000,"t":"code","b":[48,3],"m":"bmi","oa":49005,"o":"b_BF6D"},{"a":49002,"t":"code","b":[240,1],"m":"beq","oa":49005,"o":"b_BF6D"},{"a":49004,"t":"code","b":[232],"m":"inx"},{"a":49005,"l":"b_BF6D","t":"code","b":[173,33,145],"m":"lda","oa":37153,"o":"player2_state","x":[49000,49002]},{"a":49008,"t":"code","b":[48,4],"m":"bmi","oa":49014,"o":"b_BF76"},{"a":49010,"t":"code","b":[240,2],"m":"beq","oa":49014,"o":"b_BF76"},{"a":49012,"t":"code","b":[232],"m":"inx"},{"a":49013,"t":"code","b":[232],"m":"inx"},{"a":49014,"l":"b_BF76","t":"code","b":[189,126,191],"m":"lda","oa":49022,"o":"target_of,x","x":[49008,49010]},{"a":49017,"t":"code","b":[170],"m":"tax"},{"a":49018,"t":"code","b":[142,130,191],"m":"stx","oa":49026,"o":"target_player"},{"a":49021,"t":"code","b":[96],"m":"rts"},{"a":49022,"l":"target_of","c":"The target player for each combination of players in the game.","t":"byte","b":[0,0,1],"x":[49014]},{"a":49025,"l":"target_far","c":"Set when player two is the nearer.","t":"byte","b":[0],"x":[48981,48992]},{"a":49026,"l":"target_player","c":"The player being aimed at.","t":"byte","b":[0],"x":[49018,50334]},{"a":49027,"l":"target_dx","c":"For each player, the monster's X distance from it, signed.","t":"byte","b":[0,0],"x":[43810,48141,48152,48362,48814,48898,50364,50384]},{"a":49029,"l":"target_dy","c":"The Y distance.","t":"byte","b":[0,0],"x":[43793,48144,48162,48376,48844,48916,50369]},{"a":49031,"l":"target_dist","c":"For each player, the two distances added.","t":"byte","b":[0],"x":[48858,48881,48984]},{"a":49032,"l":"target_dist_p2","c":"The monster's distance from player two, the two axes added.","t":"byte","b":[0],"x":[48987]},{"a":49033,"l":"target_stick","c":"The direction the monster wants, as stick bits.","t":"byte","b":[0],"x":[48945,49113]},{"a":49034,"l":"flee_flip","c":"4 when the monster runs away (its facing flipped), 0 otherwise.","t":"byte","b":[0],"x":[48869,48890,48956,48965,49108,50447]},{"a":49035,"l":"stick_dirs","c":"The stick value for each of the sixteen direction-bit combinations a monster can want.","t":"byte","b":[0,0,0,0,0,10,9,11],"x":[48942]},{"a":49043,"t":"byte","b":[0,6,5,7,0,14,13,15]},{"a":49051,"l":"monster_facings","c":"The facing for each combination.","t":"byte","b":[0,0,0,0,0,3,1,2],"x":[48133,48953,48962,49130]},{"a":49059,"t":"byte","b":[0,5,7,6,0,4,0]},{"a":49066,"l":"monster_facing_new","c":"The facing monster_aim chose.","t":"byte","b":[0],"x":[48971]},{"a":49067,"l":"wrap_delta","c":"Folds a difference on the 128-unit maze into -64 to 63, the short way round. The value is right; the flags it returns are not the value's: unfolded, they come from its CMP, which monster_aim's BMI reads as \"already positive\" and so takes the length right; folded, they come from the EOR, the value's own sign, and monster_aim then keeps that axis negative. A distance across the map's edge comes out short (the axis subtracted), which can make monster_target pick the farther player.","t":"code","b":[48,7],"m":"bmi","oa":49076,"o":"b_BFB4","x":[36664,36686,37004,37042,48811,48841]},{"a":49069,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":49071,"t":"code","b":[144,2],"m":"bcc","oa":49075,"o":"r_BFB3"},{"a":49073,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":49075,"l":"r_BFB3","t":"code","b":[96],"m":"rts","x":[49071,49078]},{"a":49076,"l":"b_BFB4","t":"code","b":[201,192],"m":"cmp","o":"#$C0","x":[49067]},{"a":49078,"t":"code","b":[176,251],"m":"bcs","oa":49075,"o":"r_BFB3"},{"a":49080,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":49082,"t":"code","b":[96],"m":"rts"},{"a":49083,"l":"monster_turn","c":"A blocked monster tries another way: one of four routines (turn_routines, picked by the facing) is called through the JSR at $BFD1, whose operand is rewritten; the facing chosen from the result goes into the monster's byte.","t":"code","b":[173,89,195],"m":"lda","oa":50009,"o":"monster_facing","x":[48428]},{"a":49086,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":49088,"t":"code","b":[170],"m":"tax"},{"a":49089,"t":"code","b":[189,242,191],"m":"lda","oa":49138,"o":"turn_routines,x"},{"a":49092,"t":"code","b":[141,210,191],"m":"sta","oa":49106,"o":"turn_target"},{"a":49095,"t":"code","b":[189,243,191],"m":"lda","oa":49139,"o":"turn_routines_hi,x"},{"a":49098,"t":"code","b":[141,211,191],"m":"sta","oa":49107,"o":"turn_target_hi"},{"a":49101,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":49103,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49105,"l":"turn_call","c":"The JSR monster_turn rewrites with one of turn_routines.","t":"code","b":[32,209,191],"m":"jsr","oa":49105,"o":"turn_call","x":[49105]},{"a":49106,"t":"note","l":"turn_target","c":"The low byte of turn_call's target.","note":"inside the item at $BFD1","x":[49092]},{"a":49107,"t":"note","l":"turn_target_hi","c":"Its target, high byte; then monster_turn's tail, which turns the routine's answer into a facing.","note":"inside the item at $BFD1","x":[49098]},{"a":49108,"t":"code","b":[173,138,191],"m":"lda","oa":49034,"o":"flee_flip"},{"a":49111,"t":"code","b":[240,6],"m":"beq","oa":49119,"o":"b_BFDF"},{"a":49113,"t":"code","b":[173,137,191],"m":"lda","oa":49033,"o":"target_stick"},{"a":49116,"t":"code","b":[76,226,191],"m":"jmp","oa":49122,"o":"j_BFE2"},{"a":49119,"l":"b_BFDF","t":"code","b":[173,91,130],"m":"lda","oa":33371,"o":"scratch","x":[49111]},{"a":49122,"l":"j_BFE2","t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A","x":[49116]},{"a":49124,"t":"code","b":[170],"m":"tax"},{"a":49125,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":49128,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":49130,"t":"code","b":[29,155,191],"m":"ora","oa":49051,"o":"monster_facings,x"},{"a":49133,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":49136,"t":"code","b":[96],"m":"rts"},{"a":49137,"l":"attack_flag","c":"Set when a monster has attacked this step (blocks its move).","t":"byte","b":[0],"x":[41951,45443,48189,48392,48423,48434,48680,48737]},{"a":49138,"l":"turn_routines","c":"The four turning routines: $C105, $C27E, $C1C4, $C043.","t":"addr","b":[5,193],"oa":49413,"o":"turn_up_right","x":[49089]},{"a":49139,"t":"note","l":"turn_routines_hi","c":"turn_routines read from its second byte.","note":"inside the item at $BFF2","x":[49095]},{"a":49140,"t":"addr","b":[126,194],"oa":49790,"o":"turn_down_right"},{"a":49142,"t":"addr","b":[196,193],"oa":49604,"o":"turn_down_left"},{"a":49144,"t":"addr","b":[67,192],"oa":49219,"o":"turn_up_left"},{"a":49146,"l":"pad_BFFA","c":"Six bytes after the turning routines' table: 0 0 1 8 0 0.","t":"byte","b":[0,0,1,8,0,0]},{"a":49152,"l":"unused_C000","c":"Fourteen bytes before monsters_draw_all that no traced code reads by address: 8 2 0 0 2 4 0 0 4 1 0 0 $FF 1.","t":"byte","b":[8,2,0,0,2,4,0,0]},{"a":49160,"t":"byte","b":[4,1,0,0,255,1]},{"a":49166,"l":"monsters_draw_all","c":"Draws every monster in the table into the maps at the start of a level: for each, its tile graphics (monster_tile_ptr) at its cell (cell_ptrs), colours ($CAEE) and characters (monster_draw).","t":"code","b":[169,245],"m":"lda","o":"#$F5","x":[32964]},{"a":49168,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":49170,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":49172,"t":"code","b":[133,254],"m":"sta","oa":254,"o":"zpa_FE"},{"a":49174,"t":"code","b":[172,78,130],"m":"ldy","oa":33358,"o":"monster_count"},{"a":49177,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":49179,"t":"code","b":[240,37],"m":"beq","oa":49218,"o":"r_C042"},{"a":49181,"l":"b_C01D","t":"code","b":[152],"m":"tya","x":[49216]},{"a":49182,"t":"code","b":[72],"m":"pha"},{"a":49183,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":49185,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49187,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":49190,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":49193,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":49196,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":49199,"t":"code","b":[32,222,189],"m":"jsr","oa":48606,"o":"monster_tile_ptr"},{"a":49202,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":49205,"t":"code","b":[32,238,202],"m":"jsr","oa":51950,"o":"monster_colour_wrapped"},{"a":49208,"t":"code","b":[32,127,202],"m":"jsr","oa":51839,"o":"monster_draw"},{"a":49211,"t":"code","b":[104],"m":"pla"},{"a":49212,"t":"code","b":[168],"m":"tay"},{"a":49213,"t":"code","b":[136],"m":"dey"},{"a":49214,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":49216,"t":"code","b":[208,219],"m":"bne","oa":49181,"o":"b_C01D"},{"a":49218,"l":"r_C042","t":"code","b":[96],"m":"rts","x":[49179]},{"a":49219,"l":"turn_up_left","c":"One of the four routines a blocked monster tries (turn_routines), each for one quarter of the facings: looks at the cells beside the monster's 2 x 2 block on the two sides that quarter faces (through turn_probe, or the wrapped cells at the map's right and bottom edges) and returns in $2A a bit for each blocked side; when neither side is blocked but the corner is, it gives one of the two, alternating each time (turn_alt_ul).","t":"code","b":[152],"m":"tya","x":[49144]},{"a":49220,"t":"code","b":[170],"m":"tax"},{"a":49221,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":49224,"t":"code","b":[141,87,195],"m":"sta","oa":50007,"o":"probe_cell_x"},{"a":49227,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":49230,"t":"code","b":[141,88,195],"m":"sta","oa":50008,"o":"probe_cell_y"},{"a":49233,"t":"code","b":[206,88,195],"m":"dec","oa":50008,"o":"probe_cell_y"},{"a":49236,"t":"code","b":[206,87,195],"m":"dec","oa":50007,"o":"probe_cell_x"},{"a":49239,"t":"code","b":[32,53,195],"m":"jsr","oa":49973,"o":"turn_probe"},{"a":49242,"t":"code","b":[144,56],"m":"bcc","oa":49300,"o":"b_C094"},{"a":49244,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":49246,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49248,"t":"code","b":[200],"m":"iny"},{"a":49249,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49251,"t":"code","b":[240,6],"m":"beq","oa":49259,"o":"b_C06B"},{"a":49253,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":49255,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49257,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49259,"l":"b_C06B","t":"code","b":[160,64],"m":"ldy","o":"#$40","x":[49251]},{"a":49261,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49263,"t":"code","b":[160,128],"m":"ldy","o":"#$80"},{"a":49265,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49267,"t":"code","b":[240,6],"m":"beq","oa":49275,"o":"b_C07B"},{"a":49269,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":49271,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49273,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49275,"l":"b_C07B","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49267]},{"a":49277,"t":"code","b":[208,18],"m":"bne","oa":49297,"o":"b_C091"},{"a":49279,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":49281,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49283,"t":"code","b":[240,12],"m":"beq","oa":49297,"o":"b_C091"},{"a":49285,"t":"code","b":[173,4,193],"m":"lda","oa":49412,"o":"turn_alt_ul"},{"a":49288,"t":"code","b":[73,5],"m":"eor","o":"#$05"},{"a":49290,"t":"code","b":[141,4,193],"m":"sta","oa":49412,"o":"turn_alt_ul"},{"a":49293,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49295,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49297,"l":"b_C091","t":"code","b":[138],"m":"txa","x":[49277,49283]},{"a":49298,"t":"code","b":[168],"m":"tay"},{"a":49299,"t":"code","b":[96],"m":"rts"},{"a":49300,"l":"b_C094","t":"code","b":[138],"m":"txa","x":[49242]},{"a":49301,"t":"code","b":[72],"m":"pha"},{"a":49302,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49304,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":49306,"t":"code","b":[170],"m":"tax"},{"a":49307,"t":"code","b":[69,247],"m":"eor","oa":247,"o":"zpa_F7"},{"a":49309,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49311,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":49314,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49316,"t":"code","b":[133,43],"m":"sta","oa":43,"o":"zpa_2B"},{"a":49318,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":49321,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49323,"t":"code","b":[188,2,142],"m":"ldy","oa":36354,"o":"map_wrap_x_2,x"},{"a":49326,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49328,"t":"code","b":[240,4],"m":"beq","oa":49334,"o":"b_C0B6"},{"a":49330,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":49332,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49334,"l":"b_C0B6","t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7","x":[49328]},{"a":49336,"t":"code","b":[24],"m":"clc"},{"a":49337,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49339,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49341,"t":"code","b":[144,10],"m":"bcc","oa":49353,"o":"b_C0C9"},{"a":49343,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49345,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49347,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49349,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49351,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49353,"l":"b_C0C9","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[49341]},{"a":49356,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49358,"t":"code","b":[72],"m":"pha"},{"a":49359,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49361,"t":"code","b":[24],"m":"clc"},{"a":49362,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49364,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49366,"t":"code","b":[144,10],"m":"bcc","oa":49378,"o":"b_C0E2"},{"a":49368,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49370,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49372,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49374,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49376,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49378,"l":"b_C0E2","t":"code","b":[104],"m":"pla","x":[49366]},{"a":49379,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49381,"t":"code","b":[240,6],"m":"beq","oa":49389,"o":"b_C0ED"},{"a":49383,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":49385,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49387,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49389,"l":"b_C0ED","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49381]},{"a":49391,"t":"code","b":[208,16],"m":"bne","oa":49409,"o":"b_C101"},{"a":49393,"t":"code","b":[165,43],"m":"lda","oa":43,"o":"zpa_2B"},{"a":49395,"t":"code","b":[240,12],"m":"beq","oa":49409,"o":"b_C101"},{"a":49397,"t":"code","b":[173,4,193],"m":"lda","oa":49412,"o":"turn_alt_ul"},{"a":49400,"t":"code","b":[73,5],"m":"eor","o":"#$05"},{"a":49402,"t":"code","b":[141,4,193],"m":"sta","oa":49412,"o":"turn_alt_ul"},{"a":49405,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49407,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49409,"l":"b_C101","t":"code","b":[104],"m":"pla","x":[49391,49395]},{"a":49410,"t":"code","b":[168],"m":"tay"},{"a":49411,"t":"code","b":[96],"m":"rts"},{"a":49412,"l":"turn_alt_ul","c":"Which side turn_up_left gives when only the corner is blocked; flipped each time.","t":"byte","b":[1],"x":[49285,49290,49397,49402]},{"a":49413,"l":"turn_up_right","c":"The same test for the next quarter of the facings, alternating through turn_alt_ur.","t":"code","b":[152],"m":"tya","x":[49138]},{"a":49414,"t":"code","b":[170],"m":"tax"},{"a":49415,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":49418,"t":"code","b":[141,87,195],"m":"sta","oa":50007,"o":"probe_cell_x"},{"a":49421,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":49424,"t":"code","b":[141,88,195],"m":"sta","oa":50008,"o":"probe_cell_y"},{"a":49427,"t":"code","b":[206,88,195],"m":"dec","oa":50008,"o":"probe_cell_y"},{"a":49430,"t":"code","b":[32,53,195],"m":"jsr","oa":49973,"o":"turn_probe"},{"a":49433,"t":"code","b":[144,56],"m":"bcc","oa":49491,"o":"b_C153"},{"a":49435,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":49437,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49439,"t":"code","b":[200],"m":"iny"},{"a":49440,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49442,"t":"code","b":[240,6],"m":"beq","oa":49450,"o":"b_C12A"},{"a":49444,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":49446,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49448,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49450,"l":"b_C12A","t":"code","b":[160,66],"m":"ldy","o":"#$42","x":[49442]},{"a":49452,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49454,"t":"code","b":[160,130],"m":"ldy","o":"#$82"},{"a":49456,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49458,"t":"code","b":[240,6],"m":"beq","oa":49466,"o":"b_C13A"},{"a":49460,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":49462,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49464,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49466,"l":"b_C13A","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49458]},{"a":49468,"t":"code","b":[208,18],"m":"bne","oa":49488,"o":"b_C150"},{"a":49470,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":49472,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49474,"t":"code","b":[240,12],"m":"beq","oa":49488,"o":"b_C150"},{"a":49476,"t":"code","b":[173,195,193],"m":"lda","oa":49603,"o":"turn_alt_ur"},{"a":49479,"t":"code","b":[73,9],"m":"eor","o":"#$09"},{"a":49481,"t":"code","b":[141,195,193],"m":"sta","oa":49603,"o":"turn_alt_ur"},{"a":49484,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49486,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49488,"l":"b_C150","t":"code","b":[138],"m":"txa","x":[49468,49474]},{"a":49489,"t":"code","b":[168],"m":"tay"},{"a":49490,"t":"code","b":[96],"m":"rts"},{"a":49491,"l":"b_C153","t":"code","b":[138],"m":"txa","x":[49433]},{"a":49492,"t":"code","b":[72],"m":"pha"},{"a":49493,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49495,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":49497,"t":"code","b":[170],"m":"tax"},{"a":49498,"t":"code","b":[69,247],"m":"eor","oa":247,"o":"zpa_F7"},{"a":49500,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49502,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":49505,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49507,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":49510,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49512,"t":"code","b":[240,4],"m":"beq","oa":49518,"o":"b_C16E"},{"a":49514,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":49516,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49518,"l":"b_C16E","t":"code","b":[188,2,142],"m":"ldy","oa":36354,"o":"map_wrap_x_2,x","x":[49512]},{"a":49521,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49523,"t":"code","b":[133,43],"m":"sta","oa":43,"o":"zpa_2B"},{"a":49525,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49527,"t":"code","b":[24],"m":"clc"},{"a":49528,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49530,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49532,"t":"code","b":[144,10],"m":"bcc","oa":49544,"o":"b_C188"},{"a":49534,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49536,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49538,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49540,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49542,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49544,"l":"b_C188","t":"code","b":[188,2,142],"m":"ldy","oa":36354,"o":"map_wrap_x_2,x","x":[49532]},{"a":49547,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49549,"t":"code","b":[72],"m":"pha"},{"a":49550,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49552,"t":"code","b":[24],"m":"clc"},{"a":49553,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49555,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49557,"t":"code","b":[144,10],"m":"bcc","oa":49569,"o":"b_C1A1"},{"a":49559,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49561,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49563,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49565,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49567,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49569,"l":"b_C1A1","t":"code","b":[104],"m":"pla","x":[49557]},{"a":49570,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49572,"t":"code","b":[240,6],"m":"beq","oa":49580,"o":"b_C1AC"},{"a":49574,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":49576,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49578,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49580,"l":"b_C1AC","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49572]},{"a":49582,"t":"code","b":[208,16],"m":"bne","oa":49600,"o":"b_C1C0"},{"a":49584,"t":"code","b":[165,43],"m":"lda","oa":43,"o":"zpa_2B"},{"a":49586,"t":"code","b":[240,12],"m":"beq","oa":49600,"o":"b_C1C0"},{"a":49588,"t":"code","b":[173,195,193],"m":"lda","oa":49603,"o":"turn_alt_ur"},{"a":49591,"t":"code","b":[73,9],"m":"eor","o":"#$09"},{"a":49593,"t":"code","b":[141,195,193],"m":"sta","oa":49603,"o":"turn_alt_ur"},{"a":49596,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49598,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49600,"l":"b_C1C0","t":"code","b":[104],"m":"pla","x":[49582,49586]},{"a":49601,"t":"code","b":[168],"m":"tay"},{"a":49602,"t":"code","b":[96],"m":"rts"},{"a":49603,"l":"turn_alt_ur","c":"turn_up_right's alternating choice.","t":"byte","b":[8],"x":[49476,49481,49588,49593]},{"a":49604,"l":"turn_down_left","c":"The same test for another quarter, alternating through turn_alt_dl.","t":"code","b":[152],"m":"tya","x":[49142]},{"a":49605,"t":"code","b":[170],"m":"tax"},{"a":49606,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":49609,"t":"code","b":[141,87,195],"m":"sta","oa":50007,"o":"probe_cell_x"},{"a":49612,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":49615,"t":"code","b":[141,88,195],"m":"sta","oa":50008,"o":"probe_cell_y"},{"a":49618,"t":"code","b":[206,87,195],"m":"dec","oa":50007,"o":"probe_cell_x"},{"a":49621,"t":"code","b":[32,53,195],"m":"jsr","oa":49973,"o":"turn_probe"},{"a":49624,"t":"code","b":[144,55],"m":"bcc","oa":49681,"o":"b_C211"},{"a":49626,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":49628,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49630,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":49632,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49634,"t":"code","b":[240,6],"m":"beq","oa":49642,"o":"b_C1EA"},{"a":49636,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":49638,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49640,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49642,"l":"b_C1EA","t":"code","b":[160,130],"m":"ldy","o":"#$82","x":[49634]},{"a":49644,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49646,"t":"code","b":[136],"m":"dey"},{"a":49647,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49649,"t":"code","b":[240,6],"m":"beq","oa":49657,"o":"b_C1F9"},{"a":49651,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":49653,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49655,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49657,"l":"b_C1F9","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49649]},{"a":49659,"t":"code","b":[208,17],"m":"bne","oa":49678,"o":"b_C20E"},{"a":49661,"t":"code","b":[136],"m":"dey"},{"a":49662,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49664,"t":"code","b":[240,12],"m":"beq","oa":49678,"o":"b_C20E"},{"a":49666,"t":"code","b":[173,125,194],"m":"lda","oa":49789,"o":"turn_alt_dl"},{"a":49669,"t":"code","b":[73,6],"m":"eor","o":"#$06"},{"a":49671,"t":"code","b":[141,125,194],"m":"sta","oa":49789,"o":"turn_alt_dl"},{"a":49674,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49676,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49678,"l":"b_C20E","t":"code","b":[138],"m":"txa","x":[49659,49664]},{"a":49679,"t":"code","b":[168],"m":"tay"},{"a":49680,"t":"code","b":[96],"m":"rts"},{"a":49681,"l":"b_C211","t":"code","b":[138],"m":"txa","x":[49624]},{"a":49682,"t":"code","b":[72],"m":"pha"},{"a":49683,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49685,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":49687,"t":"code","b":[170],"m":"tax"},{"a":49688,"t":"code","b":[69,247],"m":"eor","oa":247,"o":"zpa_F7"},{"a":49690,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49692,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":49695,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49697,"t":"code","b":[72],"m":"pha"},{"a":49698,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49700,"t":"code","b":[24],"m":"clc"},{"a":49701,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49703,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49705,"t":"code","b":[144,10],"m":"bcc","oa":49717,"o":"b_C235"},{"a":49707,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49709,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49711,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49713,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49715,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49717,"l":"b_C235","t":"code","b":[104],"m":"pla","x":[49705]},{"a":49718,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49720,"t":"code","b":[240,4],"m":"beq","oa":49726,"o":"b_C23E"},{"a":49722,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":49724,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49726,"l":"b_C23E","t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7","x":[49720]},{"a":49728,"t":"code","b":[24],"m":"clc"},{"a":49729,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49731,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49733,"t":"code","b":[144,10],"m":"bcc","oa":49745,"o":"b_C251"},{"a":49735,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49737,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49739,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49741,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49743,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49745,"l":"b_C251","t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x","x":[49733]},{"a":49748,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49750,"t":"code","b":[188,2,142],"m":"ldy","oa":36354,"o":"map_wrap_x_2,x"},{"a":49753,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49755,"t":"code","b":[240,6],"m":"beq","oa":49763,"o":"b_C263"},{"a":49757,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":49759,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49761,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49763,"l":"b_C263","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49755]},{"a":49765,"t":"code","b":[208,19],"m":"bne","oa":49786,"o":"b_C27A"},{"a":49767,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":49770,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49772,"t":"code","b":[240,12],"m":"beq","oa":49786,"o":"b_C27A"},{"a":49774,"t":"code","b":[173,125,194],"m":"lda","oa":49789,"o":"turn_alt_dl"},{"a":49777,"t":"code","b":[73,6],"m":"eor","o":"#$06"},{"a":49779,"t":"code","b":[141,125,194],"m":"sta","oa":49789,"o":"turn_alt_dl"},{"a":49782,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49784,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49786,"l":"b_C27A","t":"code","b":[104],"m":"pla","x":[49765,49772]},{"a":49787,"t":"code","b":[168],"m":"tay"},{"a":49788,"t":"code","b":[96],"m":"rts"},{"a":49789,"l":"turn_alt_dl","c":"turn_down_left's alternating choice.","t":"byte","b":[4],"x":[49666,49671,49774,49779]},{"a":49790,"l":"turn_down_right","c":"The same test for the last quarter, alternating through turn_alt_dr.","t":"code","b":[152],"m":"tya","x":[49140]},{"a":49791,"t":"code","b":[170],"m":"tax"},{"a":49792,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":49795,"t":"code","b":[141,87,195],"m":"sta","oa":50007,"o":"probe_cell_x"},{"a":49798,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":49801,"t":"code","b":[141,88,195],"m":"sta","oa":50008,"o":"probe_cell_y"},{"a":49804,"t":"code","b":[32,53,195],"m":"jsr","oa":49973,"o":"turn_probe"},{"a":49807,"t":"code","b":[144,55],"m":"bcc","oa":49864,"o":"b_C2C8"},{"a":49809,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":49811,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49813,"t":"code","b":[160,66],"m":"ldy","o":"#$42"},{"a":49815,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49817,"t":"code","b":[240,6],"m":"beq","oa":49825,"o":"b_C2A1"},{"a":49819,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":49821,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49823,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49825,"l":"b_C2A1","t":"code","b":[160,128],"m":"ldy","o":"#$80","x":[49817]},{"a":49827,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49829,"t":"code","b":[200],"m":"iny"},{"a":49830,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49832,"t":"code","b":[240,6],"m":"beq","oa":49840,"o":"b_C2B0"},{"a":49834,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":49836,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49838,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49840,"l":"b_C2B0","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49832]},{"a":49842,"t":"code","b":[208,17],"m":"bne","oa":49861,"o":"b_C2C5"},{"a":49844,"t":"code","b":[200],"m":"iny"},{"a":49845,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49847,"t":"code","b":[240,12],"m":"beq","oa":49861,"o":"b_C2C5"},{"a":49849,"t":"code","b":[173,52,195],"m":"lda","oa":49972,"o":"turn_alt_dr"},{"a":49852,"t":"code","b":[73,10],"m":"eor","o":"#$0A"},{"a":49854,"t":"code","b":[141,52,195],"m":"sta","oa":49972,"o":"turn_alt_dr"},{"a":49857,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49859,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49861,"l":"b_C2C5","t":"code","b":[138],"m":"txa","x":[49842,49847]},{"a":49862,"t":"code","b":[168],"m":"tay"},{"a":49863,"t":"code","b":[96],"m":"rts"},{"a":49864,"l":"b_C2C8","t":"code","b":[138],"m":"txa","x":[49807]},{"a":49865,"t":"code","b":[72],"m":"pha"},{"a":49866,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49868,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":49870,"t":"code","b":[170],"m":"tax"},{"a":49871,"t":"code","b":[69,247],"m":"eor","oa":247,"o":"zpa_F7"},{"a":49873,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49875,"t":"code","b":[188,2,142],"m":"ldy","oa":36354,"o":"map_wrap_x_2,x"},{"a":49878,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49880,"t":"code","b":[72],"m":"pha"},{"a":49881,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":49883,"t":"code","b":[24],"m":"clc"},{"a":49884,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49886,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49888,"t":"code","b":[144,10],"m":"bcc","oa":49900,"o":"b_C2EC"},{"a":49890,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49892,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49894,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49896,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49898,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49900,"l":"b_C2EC","t":"code","b":[104],"m":"pla","x":[49888]},{"a":49901,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49903,"t":"code","b":[240,4],"m":"beq","oa":49909,"o":"b_C2F5"},{"a":49905,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":49907,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49909,"l":"b_C2F5","t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7","x":[49903]},{"a":49911,"t":"code","b":[24],"m":"clc"},{"a":49912,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":49914,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49916,"t":"code","b":[144,10],"m":"bcc","oa":49928,"o":"b_C308"},{"a":49918,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":49920,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":49922,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":49924,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49926,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49928,"l":"b_C308","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[49916]},{"a":49931,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49933,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":49936,"t":"code","b":[17,247],"m":"ora","oa":247,"o":"(zpa_F7),y"},{"a":49938,"t":"code","b":[240,6],"m":"beq","oa":49946,"o":"b_C31A"},{"a":49940,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":49942,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49944,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49946,"l":"b_C31A","t":"code","b":[165,42],"m":"lda","oa":42,"o":"zpf_2A","x":[49938]},{"a":49948,"t":"code","b":[208,19],"m":"bne","oa":49969,"o":"b_C331"},{"a":49950,"t":"code","b":[188,2,142],"m":"ldy","oa":36354,"o":"map_wrap_x_2,x"},{"a":49953,"t":"code","b":[177,247],"m":"lda","oa":247,"o":"(zpa_F7),y"},{"a":49955,"t":"code","b":[240,12],"m":"beq","oa":49969,"o":"b_C331"},{"a":49957,"t":"code","b":[173,52,195],"m":"lda","oa":49972,"o":"turn_alt_dr"},{"a":49960,"t":"code","b":[73,10],"m":"eor","o":"#$0A"},{"a":49962,"t":"code","b":[141,52,195],"m":"sta","oa":49972,"o":"turn_alt_dr"},{"a":49965,"t":"code","b":[5,42],"m":"ora","oa":42,"o":"zpf_2A"},{"a":49967,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"zpf_2A"},{"a":49969,"l":"b_C331","t":"code","b":[104],"m":"pla","x":[49948,49955]},{"a":49970,"t":"code","b":[168],"m":"tay"},{"a":49971,"t":"code","b":[96],"m":"rts"},{"a":49972,"l":"turn_alt_dr","c":"turn_down_right's alternating choice.","t":"byte","b":[2],"x":[49849,49854,49957,49962]},{"a":49973,"l":"turn_probe","c":"Points $F7/$F8 at the character map cell of the position in $C357/$C358 and sets the carry when the position is inside the map's top-left $7B, where no wrapping is needed.","t":"code","b":[173,87,195],"m":"lda","oa":50007,"o":"probe_cell_x","x":[49239,49430,49621,49804]},{"a":49976,"t":"code","b":[10],"m":"asl","o":"a"},{"a":49977,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":49979,"t":"code","b":[173,88,195],"m":"lda","oa":50008,"o":"probe_cell_y"},{"a":49982,"t":"code","b":[41,126],"m":"and","o":"#$7E"},{"a":49984,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":49985,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":49986,"t":"code","b":[102,247],"m":"ror","oa":247,"o":"zpa_F7"},{"a":49988,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":49989,"t":"code","b":[102,247],"m":"ror","oa":247,"o":"zpa_F7"},{"a":49991,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":49993,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":49995,"t":"code","b":[169,123],"m":"lda","o":"#$7B"},{"a":49997,"t":"code","b":[205,87,195],"m":"cmp","oa":50007,"o":"probe_cell_x"},{"a":50000,"t":"code","b":[144,3],"m":"bcc","oa":50005,"o":"r_C355"},{"a":50002,"t":"code","b":[205,88,195],"m":"cmp","oa":50008,"o":"probe_cell_y"},{"a":50005,"l":"r_C355","t":"code","b":[96],"m":"rts","x":[50000]},{"a":50006,"l":"pad_C356","c":"A zero byte after turn_probe.","t":"byte","b":[0]},{"a":50007,"l":"probe_cell_x","c":"The cell turn_probe looks at (X), one up and left of the monster.","t":"byte","b":[0],"x":[49224,49236,49418,49609,49618,49795,49973,49997]},{"a":50008,"l":"probe_cell_y","c":"Its Y.","t":"byte","b":[0],"x":[49230,49233,49424,49427,49615,49801,49979,50002]},{"a":50009,"l":"monster_facing","c":"The facing monster_aim and monster_turn settled on for this monster.","t":"byte","b":[0],"x":[48473,48968,49083]},{"a":50010,"l":"monster_unplot","c":"Clears the four character cells of the monster at cell_pos_x/cell_pos_y (cell_unplot), with the maze's wrap at the right and bottom edges.","t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur","x":[43454,48410,50266]},{"a":50013,"t":"code","b":[169,125],"m":"lda","o":"#$7D"},{"a":50015,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":50018,"t":"code","b":[144,21],"m":"bcc","oa":50041,"o":"b_C379"},{"a":50020,"t":"code","b":[205,111,190],"m":"cmp","oa":48751,"o":"cell_pos_y"},{"a":50023,"t":"code","b":[144,16],"m":"bcc","oa":50041,"o":"b_C379"},{"a":50025,"l":"cell_unplot","c":"Zeroes the four character map cells at ($F9).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[46293]},{"a":50027,"t":"code","b":[152],"m":"tya"},{"a":50028,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50030,"t":"code","b":[200],"m":"iny"},{"a":50031,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50033,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":50035,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50037,"t":"code","b":[200],"m":"iny"},{"a":50038,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50040,"t":"code","b":[96],"m":"rts"},{"a":50041,"l":"b_C379","t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9","x":[50018,50023]},{"a":50043,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":50045,"t":"code","b":[170],"m":"tax"},{"a":50046,"t":"code","b":[69,249],"m":"eor","oa":249,"o":"zpa_F9"},{"a":50048,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":50050,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":50052,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":50055,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50057,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":50060,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50062,"t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9"},{"a":50064,"t":"code","b":[24],"m":"clc"},{"a":50065,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":50067,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":50069,"t":"code","b":[165,250],"m":"lda","oa":250,"o":"zpa_FA"},{"a":50071,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":50073,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":50075,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":50077,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":50079,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":50082,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":50084,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50086,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":50089,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":50091,"t":"code","b":[96],"m":"rts"},{"a":50092,"l":"monster_hits","c":"A monster hits player X: on alternate attempts (bit 0 of its flags, toggled), the player loses health by the monster's level (monster_damage: 5, 8 or 10, in decimal), $C40C,x being raised when it runs out. Then the player may hit back (fight_back).","t":"code","b":[72],"m":"pha","x":[48192]},{"a":50093,"t":"code","b":[152],"m":"tya"},{"a":50094,"t":"code","b":[72],"m":"pha"},{"a":50095,"t":"code","b":[138],"m":"txa"},{"a":50096,"t":"code","b":[72],"m":"pha"},{"a":50097,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":50100,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":50102,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":50105,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":50107,"t":"code","b":[208,47],"m":"bne","oa":50156,"o":"b_C3EC"},{"a":50109,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50112,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50113,"t":"code","b":[42],"m":"rol","o":"a"},{"a":50114,"t":"code","b":[42],"m":"rol","o":"a"},{"a":50115,"t":"code","b":[42],"m":"rol","o":"a"},{"a":50116,"t":"code","b":[41,6],"m":"and","o":"#$06"},{"a":50118,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":50121,"t":"code","b":[138],"m":"txa"},{"a":50122,"t":"code","b":[13,92,130],"m":"ora","oa":33372,"o":"scratch_2"},{"a":50125,"t":"code","b":[168],"m":"tay"},{"a":50126,"t":"code","b":[248],"m":"sed"},{"a":50127,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":50130,"t":"code","b":[56],"m":"sec"},{"a":50131,"t":"code","b":[249,245,195],"m":"sbc","oa":50165,"o":"monster_damage,y"},{"a":50134,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":50137,"t":"code","b":[176,13],"m":"bcs","oa":50152,"o":"b_C3E8"},{"a":50139,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":50142,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":50144,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":50147,"t":"code","b":[176,3],"m":"bcs","oa":50152,"o":"b_C3E8"},{"a":50149,"t":"code","b":[254,12,196],"m":"inc","oa":50188,"o":"dead_p1,x"},{"a":50152,"l":"b_C3E8","t":"code","b":[216],"m":"cld","x":[50137,50147]},{"a":50153,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":50156,"l":"b_C3EC","t":"code","b":[32,250,196],"m":"jsr","oa":50426,"o":"fight_back","x":[50107]},{"a":50159,"t":"code","b":[104],"m":"pla"},{"a":50160,"t":"code","b":[170],"m":"tax"},{"a":50161,"t":"code","b":[104],"m":"pla"},{"a":50162,"t":"code","b":[168],"m":"tay"},{"a":50163,"t":"code","b":[104],"m":"pla"},{"a":50164,"t":"code","b":[96],"m":"rts"},{"a":50165,"l":"monster_damage","c":"The health a monster's blow takes by its level, two bytes each (one per player): 5, 8, 10.","t":"byte","b":[5,5,8,8,16,16],"x":[50131]},{"a":50171,"l":"ghost_damage","c":"The health a ghost's touch takes by its level: 10, 20, 30.","t":"byte","b":[16,16,32,32,48,48],"x":[50588]},{"a":50177,"l":"unused_C401","c":"Eleven bytes nothing in the traced code reads by name: 0 1 9 8 $0A 2 6 4 5 0 0 (the code at $C40E would use them).","t":"byte","b":[0,1,9,8,10,2,6,4]},{"a":50185,"t":"byte","b":[5,0,0]},{"a":50188,"l":"dead_p1","c":"Set when player one's health has run out; deaths takes it out of the game, and while it or dead_p2 is set the raster interrupt runs health_tick every frame.","t":"byte","b":[0],"x":[34203,38412,41001,42605,44165,47448,47481,47488,50149,50606]},{"a":50189,"l":"dead_p2","c":"Set when player two's health has run out.","t":"byte","b":[0],"x":[34206,38415]},{"a":50190,"l":"unused_C40E","c":"27 bytes no traced code reaches: a routine that, after an attack, would set a bit for monster Y's facing in the table at $C40A.","t":"byte","b":[173,241,191,240,18,185,128,5]},{"a":50198,"t":"byte","b":[41,7,170,172,1,196,189,2]},{"a":50206,"t":"byte","b":[196,25,10,196,153,10,196,172]},{"a":50214,"t":"byte","b":[74,130,96]},{"a":50217,"l":"blast_monster","c":"A potion's blast on monster Y: the blast's player (blast_owner - 1) does its magic damage ($A00E,x) to the monster's strength; a monster with nothing left is removed and scores 10 (score_generator). Death (kind 5) always goes, scoring the next of death_scores for the player who used the potion.","t":"code","b":[174,205,186],"m":"ldx","oa":47821,"o":"blast_owner","x":[48052]},{"a":50220,"t":"code","b":[202],"m":"dex"},{"a":50221,"t":"code","b":[138],"m":"txa"},{"a":50222,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":50224,"t":"code","b":[170],"m":"tax"},{"a":50225,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50228,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":50230,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":50232,"t":"code","b":[240,70],"m":"beq","oa":50304,"o":"b_C480"},{"a":50234,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50237,"t":"code","b":[56],"m":"sec"},{"a":50238,"t":"code","b":[253,14,160],"m":"sbc","oa":40974,"o":"magic_vs_monsters,x"},{"a":50241,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":50244,"t":"code","b":[144,2],"m":"bcc","oa":50248,"o":"b_C448"},{"a":50246,"t":"code","b":[24],"m":"clc"},{"a":50247,"t":"code","b":[96],"m":"rts"},{"a":50248,"l":"b_C448","t":"code","b":[32,23,172],"m":"jsr","oa":44055,"o":"score_generator","x":[50244]},{"a":50251,"l":"monster_kill","c":"Takes monster Y off the map (monster_unplot) and out of the table: the last monster's X, Y, kind byte and flags move into its slot (not Death's drain count at $0700, as in monster_remove) and the count goes down; carry set.","t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y","x":[50306,50331,50505]},{"a":50254,"t":"code","b":[141,110,190],"m":"sta","oa":48750,"o":"cell_pos_x"},{"a":50257,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":50260,"t":"code","b":[141,111,190],"m":"sta","oa":48751,"o":"cell_pos_y"},{"a":50263,"t":"code","b":[32,191,189],"m":"jsr","oa":48575,"o":"cell_ptrs"},{"a":50266,"t":"code","b":[32,90,195],"m":"jsr","oa":50010,"o":"monster_unplot"},{"a":50269,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":50272,"t":"code","b":[174,78,130],"m":"ldx","oa":33358,"o":"monster_count"},{"a":50275,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":50278,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":50281,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":50284,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":50287,"t":"code","b":[189,128,5],"m":"lda","oa":1408,"o":"f_0580,x"},{"a":50290,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":50293,"t":"code","b":[189,64,6],"m":"lda","oa":1600,"o":"f_0640,x"},{"a":50296,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":50299,"t":"code","b":[206,78,130],"m":"dec","oa":33358,"o":"monster_count"},{"a":50302,"t":"code","b":[56],"m":"sec"},{"a":50303,"t":"code","b":[96],"m":"rts"},{"a":50304,"l":"b_C480","t":"code","b":[224,2],"m":"cpx","o":"#$02","x":[50232]},{"a":50306,"t":"code","b":[144,199],"m":"bcc","oa":50251,"o":"monster_kill"},{"a":50308,"t":"code","b":[248],"m":"sed"},{"a":50309,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":50312,"t":"code","b":[24],"m":"clc"},{"a":50313,"t":"code","b":[109,39,173],"m":"adc","oa":44327,"o":"death_score"},{"a":50316,"t":"code","b":[157,41,185],"m":"sta","oa":47401,"o":"score_lo,x"},{"a":50319,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":50322,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":50324,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":50327,"t":"code","b":[216],"m":"cld"},{"a":50328,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":50331,"t":"code","b":[76,75,196],"m":"jmp","oa":50251,"o":"monster_kill"},{"a":50334,"l":"monster_shoot","c":"After its move, a demon (kind 2) may fire (fireball_fire): once in four moves (a count in bits 6-7 of its flags), when the target player is straight in line with it on an axis or a diagonal. A lobber (kind 3) throws a rock at the same rate (rock_throw).","t":"code","b":[174,130,191],"m":"ldx","oa":49026,"o":"target_player","x":[48548]},{"a":50337,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50340,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":50342,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":50344,"t":"code","b":[240,5],"m":"beq","oa":50351,"o":"b_C4AF"},{"a":50346,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":50348,"t":"code","b":[240,54],"m":"beq","oa":50404,"o":"lobber_shoot"},{"a":50350,"t":"code","b":[96],"m":"rts"},{"a":50351,"l":"b_C4AF","t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y","x":[50344]},{"a":50354,"t":"code","b":[24],"m":"clc"},{"a":50355,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":50357,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":50360,"t":"code","b":[41,192],"m":"and","o":"#$C0"},{"a":50362,"t":"code","b":[208,38],"m":"bne","oa":50402,"o":"r_C4E2"},{"a":50364,"t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x"},{"a":50367,"t":"code","b":[240,30],"m":"beq","oa":50399,"o":"b_C4DF"},{"a":50369,"t":"code","b":[189,133,191],"m":"lda","oa":49029,"o":"target_dy,x"},{"a":50372,"t":"code","b":[240,25],"m":"beq","oa":50399,"o":"b_C4DF"},{"a":50374,"t":"code","b":[16,5],"m":"bpl","oa":50381,"o":"b_C4CD"},{"a":50376,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":50378,"t":"code","b":[24],"m":"clc"},{"a":50379,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":50381,"l":"b_C4CD","t":"code","b":[141,227,196],"m":"sta","oa":50403,"o":"fire_dist","x":[50374]},{"a":50384,"t":"code","b":[189,131,191],"m":"lda","oa":49027,"o":"target_dx,x"},{"a":50387,"t":"code","b":[16,5],"m":"bpl","oa":50394,"o":"b_C4DA"},{"a":50389,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":50391,"t":"code","b":[24],"m":"clc"},{"a":50392,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":50394,"l":"b_C4DA","t":"code","b":[205,227,196],"m":"cmp","oa":50403,"o":"fire_dist","x":[50387]},{"a":50397,"t":"code","b":[208,3],"m":"bne","oa":50402,"o":"r_C4E2"},{"a":50399,"l":"b_C4DF","t":"code","b":[32,46,170],"m":"jsr","oa":43566,"o":"fireball_fire","x":[50367,50372]},{"a":50402,"l":"r_C4E2","t":"code","b":[96],"m":"rts","x":[50362,50397]},{"a":50403,"l":"fire_dist","c":"Work: the target's Y distance, compared with its X distance for a diagonal.","t":"byte","b":[0],"x":[50381,50394]},{"a":50404,"l":"lobber_shoot","c":"monster_shoot's lobber branch: the throw count in bits 6-7 of its flags, and rock_throw once in four moves.","t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y","x":[50348]},{"a":50407,"t":"code","b":[24],"m":"clc"},{"a":50408,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":50410,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":50413,"t":"code","b":[41,192],"m":"and","o":"#$C0"},{"a":50415,"t":"code","b":[208,8],"m":"bne","oa":50425,"o":"r_C4F9"},{"a":50417,"t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo"},{"a":50420,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":50422,"t":"code","b":[32,119,170],"m":"jsr","oa":43639,"o":"rock_throw"},{"a":50425,"l":"r_C4F9","t":"code","b":[96],"m":"rts","x":[50415]},{"a":50426,"l":"fight_back","c":"After a monster's attack on player X, a player whose stick points at the monster (its facing, flipped when fleeing, through facing_stick) hits it: 25 points (fight_score) and the player's hand-to-hand damage ($ACCA,x) off its strength; with nothing left the monster dies (monster_kill). A ghost or Death cannot be fought. A blow that does not kill puts the idle timer back.","t":"code","b":[138],"m":"txa","x":[50156]},{"a":50427,"t":"code","b":[72],"m":"pha"},{"a":50428,"t":"code","b":[172,74,130],"m":"ldy","oa":33354,"o":"monster_cur"},{"a":50431,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50434,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":50436,"t":"code","b":[240,48],"m":"beq","oa":50486,"o":"b_C536"},{"a":50438,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":50440,"t":"code","b":[240,44],"m":"beq","oa":50486,"o":"b_C536"},{"a":50442,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50445,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":50447,"t":"code","b":[77,138,191],"m":"eor","oa":49034,"o":"flee_flip"},{"a":50450,"t":"code","b":[170],"m":"tax"},{"a":50451,"t":"code","b":[189,124,197],"m":"lda","oa":50556,"o":"facing_stick,x"},{"a":50454,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":50457,"t":"code","b":[104],"m":"pla"},{"a":50458,"t":"code","b":[170],"m":"tax"},{"a":50459,"t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x"},{"a":50462,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":50464,"t":"code","b":[45,92,130],"m":"and","oa":33372,"o":"scratch_2"},{"a":50467,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":50469,"t":"code","b":[240,10],"m":"beq","oa":50481,"o":"b_C531"},{"a":50471,"t":"code","b":[189,176,142],"m":"lda","oa":36528,"o":"stick_p1,x"},{"a":50474,"t":"code","b":[45,92,130],"m":"and","oa":33372,"o":"scratch_2"},{"a":50477,"t":"code","b":[41,12],"m":"and","o":"#$0C"},{"a":50479,"t":"code","b":[208,3],"m":"bne","oa":50484,"o":"b_C534"},{"a":50481,"l":"b_C531","t":"code","b":[76,58,197],"m":"jmp","oa":50490,"o":"j_C53A","x":[50469]},{"a":50484,"l":"b_C534","t":"code","b":[24],"m":"clc","x":[50479]},{"a":50485,"t":"code","b":[96],"m":"rts"},{"a":50486,"l":"b_C536","t":"code","b":[104],"m":"pla","x":[50436,50440]},{"a":50487,"t":"code","b":[170],"m":"tax"},{"a":50488,"t":"code","b":[24],"m":"clc"},{"a":50489,"t":"code","b":[96],"m":"rts"},{"a":50490,"l":"j_C53A","t":"code","b":[32,89,197],"m":"jsr","oa":50521,"o":"fight_score","x":[50481]},{"a":50493,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50496,"t":"code","b":[56],"m":"sec"},{"a":50497,"t":"code","b":[253,202,172],"m":"sbc","oa":44234,"o":"fight_damage,x"},{"a":50500,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":50503,"t":"code","b":[176,5],"m":"bcs","oa":50510,"o":"b_C54E"},{"a":50505,"t":"code","b":[32,75,196],"m":"jsr","oa":50251,"o":"monster_kill"},{"a":50508,"t":"code","b":[56],"m":"sec"},{"a":50509,"t":"code","b":[96],"m":"rts"},{"a":50510,"l":"b_C54E","c":"Puts the idle timer back after a blow that does not kill. It loads the stage into Y but indexes idle_reload with X, the player: player one's blow gives 30 and player two's 150 (idle_second), whatever the stage; shot_fire indexes with Y ($A761).","t":"code","b":[172,90,182],"m":"ldy","oa":46682,"o":"idle_stage","x":[50503]},{"a":50513,"t":"code","b":[189,92,182],"m":"lda","oa":46684,"o":"idle_reload,x"},{"a":50516,"t":"code","b":[141,91,182],"m":"sta","oa":46683,"o":"idle_count"},{"a":50519,"t":"code","b":[24],"m":"clc"},{"a":50520,"t":"code","b":[96],"m":"rts"},{"a":50521,"l":"fight_score","c":"Adds 25 (decimal) to player X's score and raises panel_dirty.","t":"code","b":[248],"m":"sed","x":[50490]},{"a":50522,"t":"code","b":[189,41,185],"m":"lda","oa":47401,"o":"score_lo,x"},{"a":50525,"t":"code","b":[24],"m":"clc"},{"a":50526,"t":"code","b":[105,37],"m":"adc","o":"#$25"},{"a":50528,"t":"code","b":[157,41,185],"m":"sta","oa":47401,"o":"score_lo,x"},{"a":50531,"t":"code","b":[144,18],"m":"bcc","oa":50551,"o":"b_C577"},{"a":50533,"t":"code","b":[189,43,185],"m":"lda","oa":47403,"o":"score_mid,x"},{"a":50536,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":50538,"t":"code","b":[157,43,185],"m":"sta","oa":47403,"o":"score_mid,x"},{"a":50541,"t":"code","b":[144,8],"m":"bcc","oa":50551,"o":"b_C577"},{"a":50543,"t":"code","b":[189,45,185],"m":"lda","oa":47405,"o":"score_hi,x"},{"a":50546,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":50548,"t":"code","b":[157,45,185],"m":"sta","oa":47405,"o":"score_hi,x"},{"a":50551,"l":"b_C577","t":"code","b":[216],"m":"cld","x":[50531,50541]},{"a":50552,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":50555,"t":"code","b":[96],"m":"rts"},{"a":50556,"l":"facing_stick","c":"For each facing, the stick bits that point that way, active low.","t":"byte","b":[14,6,7,5,13,9,11,10],"x":[36858,50451]},{"a":50564,"l":"ghost_touch","c":"A ghost's touch on player X: the health its level takes (ghost_damage, in decimal), $C40C,x being raised when it runs out.","t":"code","b":[152],"m":"tya","x":[48222]},{"a":50565,"t":"code","b":[72],"m":"pha"},{"a":50566,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":50569,"t":"code","b":[41,192],"m":"and","o":"#$C0"},{"a":50571,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50572,"t":"code","b":[42],"m":"rol","o":"a"},{"a":50573,"t":"code","b":[42],"m":"rol","o":"a"},{"a":50574,"t":"code","b":[42],"m":"rol","o":"a"},{"a":50575,"t":"code","b":[141,92,130],"m":"sta","oa":33372,"o":"scratch_2"},{"a":50578,"t":"code","b":[138],"m":"txa"},{"a":50579,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":50582,"t":"code","b":[168],"m":"tay"},{"a":50583,"t":"code","b":[248],"m":"sed"},{"a":50584,"t":"code","b":[189,47,185],"m":"lda","oa":47407,"o":"health_lo,x"},{"a":50587,"t":"code","b":[56],"m":"sec"},{"a":50588,"t":"code","b":[249,251,195],"m":"sbc","oa":50171,"o":"ghost_damage,y"},{"a":50591,"t":"code","b":[157,47,185],"m":"sta","oa":47407,"o":"health_lo,x"},{"a":50594,"t":"code","b":[176,13],"m":"bcs","oa":50609,"o":"b_C5B1"},{"a":50596,"t":"code","b":[189,49,185],"m":"lda","oa":47409,"o":"health_hi,x"},{"a":50599,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":50601,"t":"code","b":[157,49,185],"m":"sta","oa":47409,"o":"health_hi,x"},{"a":50604,"t":"code","b":[176,3],"m":"bcs","oa":50609,"o":"b_C5B1"},{"a":50606,"t":"code","b":[254,12,196],"m":"inc","oa":50188,"o":"dead_p1,x"},{"a":50609,"l":"b_C5B1","t":"code","b":[216],"m":"cld","x":[50594,50604]},{"a":50610,"t":"code","b":[238,95,182],"m":"inc","oa":46687,"o":"panel_dirty"},{"a":50613,"t":"code","b":[104],"m":"pla"},{"a":50614,"t":"code","b":[168],"m":"tay"},{"a":50615,"t":"code","b":[96],"m":"rts"},{"a":50616,"l":"display_off","c":"Blanks the screen: clears bit 4 of $D011 and of its copy $8252.","t":"code","b":[173,82,130],"m":"lda","oa":33362,"o":"d011_copy","x":[32808,32830]},{"a":50619,"t":"code","b":[41,239],"m":"and","o":"#$EF"},{"a":50621,"t":"code","b":[141,82,130],"m":"sta","oa":33362,"o":"d011_copy"},{"a":50624,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":50627,"t":"code","b":[41,239],"m":"and","o":"#$EF"},{"a":50629,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":50632,"t":"code","b":[96],"m":"rts"},{"a":50633,"l":"display_on","c":"Shows the screen again: sets bit 4 of $D011 and $8252.","t":"code","b":[173,82,130],"m":"lda","oa":33362,"o":"d011_copy","x":[32901]},{"a":50636,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":50638,"t":"code","b":[141,82,130],"m":"sta","oa":33362,"o":"d011_copy"},{"a":50641,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":50644,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":50646,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":50649,"t":"code","b":[96],"m":"rts"},{"a":50650,"l":"vic_bank","c":"Selects the video chip's bank A (0-3) on CIA 2's port A ($DD00, bits 0-1 inverted, made outputs in $DD02).","t":"code","b":[41,3],"m":"and","o":"#$03","x":[32872]},{"a":50652,"t":"code","b":[73,3],"m":"eor","o":"#$03"},{"a":50654,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":50657,"t":"code","b":[173,2,221],"m":"lda","o":"cia2_ddr_a"},{"a":50660,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":50662,"t":"code","b":[141,2,221],"m":"sta","o":"cia2_ddr_a"},{"a":50665,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":50668,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":50670,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":50673,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":50676,"t":"code","b":[96],"m":"rts"},{"a":50677,"l":"vic_screen","c":"Sets the screen's base in $D018's high nibble to A (in 1 KB steps within the bank).","t":"code","b":[41,15],"m":"and","o":"#$0F","x":[32877]},{"a":50679,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50680,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50681,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50682,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50683,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":50686,"t":"code","b":[173,24,208],"m":"lda","o":"vic_memory"},{"a":50689,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":50691,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":50694,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":50697,"t":"code","b":[96],"m":"rts"},{"a":50698,"l":"vic_font","c":"Sets the character base in $D018 (bits 1-3) to A (in 2 KB steps).","t":"code","b":[41,7],"m":"and","o":"#$07","x":[32882,45023]},{"a":50700,"t":"code","b":[10],"m":"asl","o":"a"},{"a":50701,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":50704,"t":"code","b":[173,24,208],"m":"lda","o":"vic_memory"},{"a":50707,"t":"code","b":[41,241],"m":"and","o":"#$F1"},{"a":50709,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":50712,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":50715,"t":"code","b":[96],"m":"rts"},{"a":50716,"l":"unused_bitmap_on","c":"Nine bytes no traced code reaches: sets bitmap mode (bit 5 of $D011).","t":"byte","b":[173,17,208,9,32,141,17,208]},{"a":50724,"t":"byte","b":[96]},{"a":50725,"l":"level_build","c":"Builds the level from the file at $0A00: the maze's look (maze_style), an empty tile grid (grid_clear), a wall along the top row (grid_top_wall) and, unless the maze wraps left and right, along the left column (grid_left_wall); then works through the wall commands ($0A03 bytes from $0A04): a pair of bytes starts a line at a tile with a kind (wall_start), and each byte after it draws a run of tiles in one of eight directions (wall_run); then the objects (objects_place). Each wall tile is joined to its neighbours as it goes in.","t":"code","b":[32,197,140],"m":"jsr","oa":36037,"o":"maze_style","x":[32949]},{"a":50728,"t":"code","b":[32,130,198],"m":"jsr","oa":50818,"o":"grid_clear"},{"a":50731,"t":"code","b":[32,149,198],"m":"jsr","oa":50837,"o":"grid_top_wall"},{"a":50734,"t":"code","b":[32,160,198],"m":"jsr","oa":50848,"o":"grid_left_wall"},{"a":50737,"t":"code","b":[173,3,10],"m":"lda","oa":2563,"o":"level_wall_bytes"},{"a":50740,"t":"code","b":[141,255,201],"m":"sta","oa":51711,"o":"wall_bytes_left"},{"a":50743,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":50745,"t":"code","b":[140,0,202],"m":"sty","oa":51712,"o":"level_exits"},{"a":50748,"l":"j_C63C","t":"code","b":[173,255,201],"m":"lda","oa":51711,"o":"wall_bytes_left","x":[50809,50815]},{"a":50751,"t":"code","b":[208,5],"m":"bne","oa":50758,"o":"b_C646"},{"a":50753,"t":"code","b":[32,59,200],"m":"jsr","oa":51259,"o":"objects_place"},{"a":50756,"t":"code","b":[88],"m":"cli"},{"a":50757,"t":"code","b":[96],"m":"rts"},{"a":50758,"l":"b_C646","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[50751]},{"a":50760,"t":"code","b":[240,50],"m":"beq","oa":50812,"o":"b_C67C"},{"a":50762,"t":"code","b":[32,200,198],"m":"jsr","oa":50888,"o":"wall_same_kind"},{"a":50765,"t":"code","b":[208,45],"m":"bne","oa":50812,"o":"b_C67C"},{"a":50767,"t":"code","b":[173,255,201],"m":"lda","oa":51711,"o":"wall_bytes_left"},{"a":50770,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":50772,"t":"code","b":[208,12],"m":"bne","oa":50786,"o":"b_C662"},{"a":50774,"t":"code","b":[200],"m":"iny"},{"a":50775,"t":"code","b":[32,200,198],"m":"jsr","oa":50888,"o":"wall_same_kind"},{"a":50778,"t":"code","b":[8],"m":"php"},{"a":50779,"t":"code","b":[136],"m":"dey"},{"a":50780,"t":"code","b":[40],"m":"plp"},{"a":50781,"t":"code","b":[208,23],"m":"bne","oa":50806,"o":"b_C676"},{"a":50783,"t":"code","b":[76,124,198],"m":"jmp","oa":50812,"o":"b_C67C"},{"a":50786,"l":"b_C662","t":"code","b":[200],"m":"iny","x":[50772]},{"a":50787,"t":"code","b":[32,200,198],"m":"jsr","oa":50888,"o":"wall_same_kind"},{"a":50790,"t":"code","b":[8],"m":"php"},{"a":50791,"t":"code","b":[136],"m":"dey"},{"a":50792,"t":"code","b":[40],"m":"plp"},{"a":50793,"t":"code","b":[208,11],"m":"bne","oa":50806,"o":"b_C676"},{"a":50795,"t":"code","b":[200],"m":"iny"},{"a":50796,"t":"code","b":[200],"m":"iny"},{"a":50797,"t":"code","b":[32,200,198],"m":"jsr","oa":50888,"o":"wall_same_kind"},{"a":50800,"t":"code","b":[8],"m":"php"},{"a":50801,"t":"code","b":[136],"m":"dey"},{"a":50802,"t":"code","b":[136],"m":"dey"},{"a":50803,"t":"code","b":[40],"m":"plp"},{"a":50804,"t":"code","b":[208,6],"m":"bne","oa":50812,"o":"b_C67C"},{"a":50806,"l":"b_C676","t":"code","b":[32,217,198],"m":"jsr","oa":50905,"o":"wall_start","x":[50781,50793]},{"a":50809,"t":"code","b":[76,60,198],"m":"jmp","oa":50748,"o":"j_C63C"},{"a":50812,"l":"b_C67C","t":"code","b":[32,10,199],"m":"jsr","oa":50954,"o":"wall_run","x":[50760,50765,50783,50804]},{"a":50815,"t":"code","b":[76,60,198],"m":"jmp","oa":50748,"o":"j_C63C"},{"a":50818,"l":"grid_clear","c":"Clears the tile grid $0C00-$0FFF.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[50728]},{"a":50820,"t":"code","b":[152],"m":"tya"},{"a":50821,"l":"b_C685","t":"code","b":[153,0,12],"m":"sta","oa":3072,"o":"f_0C00,y","x":[50834]},{"a":50824,"t":"code","b":[153,0,13],"m":"sta","oa":3328,"o":"f_0D00,y"},{"a":50827,"t":"code","b":[153,0,14],"m":"sta","oa":3584,"o":"f_0E00,y"},{"a":50830,"t":"code","b":[153,0,15],"m":"sta","oa":3840,"o":"f_0F00,y"},{"a":50833,"t":"code","b":[200],"m":"iny"},{"a":50834,"t":"code","b":[208,241],"m":"bne","oa":50821,"o":"b_C685"},{"a":50836,"t":"code","b":[96],"m":"rts"},{"a":50837,"l":"grid_top_wall","c":"Fills the grid's top row with tile $0A, a straight wall.","t":"code","b":[160,31],"m":"ldy","o":"#$1F","x":[50731]},{"a":50839,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":50841,"l":"b_C699","t":"code","b":[153,0,12],"m":"sta","oa":3072,"o":"f_0C00,y","x":[50845]},{"a":50844,"t":"code","b":[136],"m":"dey"},{"a":50845,"t":"code","b":[16,250],"m":"bpl","oa":50841,"o":"b_C699"},{"a":50847,"t":"code","b":[96],"m":"rts"},{"a":50848,"l":"grid_left_wall","c":"Unless bit 7 of the header wraps the maze, puts a wall down the grid's left column: $0F at the top, $05 below.","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[50734]},{"a":50851,"t":"code","b":[48,34],"m":"bmi","oa":50887,"o":"r_C6C7"},{"a":50853,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":50855,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":50857,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":50859,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":50861,"t":"code","b":[162,32],"m":"ldx","o":"#$20"},{"a":50863,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":50865,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":50867,"l":"b_C6B3","t":"code","b":[145,140],"m":"sta","oa":140,"o":"(zpa_8C),y","x":[50885]},{"a":50869,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":50871,"t":"code","b":[24],"m":"clc"},{"a":50872,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":50874,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":50876,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":50878,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":50880,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":50882,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":50884,"t":"code","b":[202],"m":"dex"},{"a":50885,"t":"code","b":[208,236],"m":"bne","oa":50867,"o":"b_C6B3"},{"a":50887,"l":"r_C6C7","t":"code","b":[96],"m":"rts","x":[50851]},{"a":50888,"l":"wall_same_kind","c":"Zero when the wall-command bytes at Y and Y + 1 have the same top three bits.","t":"code","b":[185,4,10],"m":"lda","oa":2564,"o":"level_walls,y","x":[50762,50775,50787,50797]},{"a":50891,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":50893,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":50896,"t":"code","b":[185,5,10],"m":"lda","oa":2565,"o":"level_walls_2,y"},{"a":50899,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":50901,"t":"code","b":[205,91,130],"m":"cmp","oa":33371,"o":"scratch"},{"a":50904,"t":"code","b":[96],"m":"rts"},{"a":50905,"l":"wall_start","c":"A two-byte wall command: the kind from the first byte's top three bits (wall_kind), the column from its low five bits, the row from the second's; points $8C/$8D at the tile and puts the first piece there (wall_plot).","t":"code","b":[185,4,10],"m":"lda","oa":2564,"o":"level_walls,y","x":[50806]},{"a":50908,"t":"code","b":[72],"m":"pha"},{"a":50909,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":50911,"t":"code","b":[141,3,202],"m":"sta","oa":51715,"o":"wall_kind"},{"a":50914,"t":"code","b":[104],"m":"pla"},{"a":50915,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":50917,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":50920,"t":"code","b":[185,5,10],"m":"lda","oa":2565,"o":"level_walls_2,y"},{"a":50923,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":50925,"t":"code","b":[170],"m":"tax"},{"a":50926,"t":"code","b":[189,112,142],"m":"lda","oa":36464,"o":"map_row_lo,x"},{"a":50929,"t":"code","b":[24],"m":"clc"},{"a":50930,"t":"code","b":[109,91,130],"m":"adc","oa":33371,"o":"scratch"},{"a":50933,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":50935,"t":"code","b":[189,144,142],"m":"lda","oa":36496,"o":"map_row_hi,x"},{"a":50938,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":50940,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":50942,"t":"code","b":[32,79,199],"m":"jsr","oa":51023,"o":"wall_plot"},{"a":50945,"t":"code","b":[200],"m":"iny"},{"a":50946,"t":"code","b":[200],"m":"iny"},{"a":50947,"t":"code","b":[206,255,201],"m":"dec","oa":51711,"o":"wall_bytes_left"},{"a":50950,"t":"code","b":[206,255,201],"m":"dec","oa":51711,"o":"wall_bytes_left"},{"a":50953,"t":"code","b":[96],"m":"rts"},{"a":50954,"l":"wall_run","c":"A one-byte wall command: the top three bits are a direction (wall_steps), the low five one less than the run's length; each step puts a piece (wall_plot). A door or trap-wall line (kind $40 or $80) changes its kind by the direction (wall_kind_by_dir).","t":"code","b":[152],"m":"tya","x":[50812]},{"a":50955,"t":"code","b":[72],"m":"pha"},{"a":50956,"t":"code","b":[185,4,10],"m":"lda","oa":2564,"o":"level_walls,y"},{"a":50959,"t":"code","b":[72],"m":"pha"},{"a":50960,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":50962,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":50963,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":50964,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":50965,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":50966,"t":"code","b":[170],"m":"tax"},{"a":50967,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":50968,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":50969,"t":"code","b":[168],"m":"tay"},{"a":50970,"t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind"},{"a":50973,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":50975,"t":"code","b":[240,4],"m":"beq","oa":50981,"o":"b_C725"},{"a":50977,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":50979,"t":"code","b":[208,6],"m":"bne","oa":50987,"o":"b_C72B"},{"a":50981,"l":"b_C725","t":"code","b":[185,15,202],"m":"lda","oa":51727,"o":"wall_kind_by_dir,y","x":[50975]},{"a":50984,"t":"code","b":[141,3,202],"m":"sta","oa":51715,"o":"wall_kind"},{"a":50987,"l":"b_C72B","t":"code","b":[104],"m":"pla","x":[50979]},{"a":50988,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":50990,"t":"code","b":[168],"m":"tay"},{"a":50991,"l":"b_C72F","t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C","x":[51014]},{"a":50993,"t":"code","b":[24],"m":"clc"},{"a":50994,"t":"code","b":[125,231,201],"m":"adc","oa":51687,"o":"wall_steps,x"},{"a":50997,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":50999,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":51001,"t":"code","b":[125,232,201],"m":"adc","oa":51688,"o":"wall_steps_hi,x"},{"a":51004,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":51006,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":51008,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":51010,"t":"code","b":[32,79,199],"m":"jsr","oa":51023,"o":"wall_plot"},{"a":51013,"t":"code","b":[136],"m":"dey"},{"a":51014,"t":"code","b":[16,231],"m":"bpl","oa":50991,"o":"b_C72F"},{"a":51016,"t":"code","b":[104],"m":"pla"},{"a":51017,"t":"code","b":[168],"m":"tay"},{"a":51018,"t":"code","b":[200],"m":"iny"},{"a":51019,"t":"code","b":[206,255,201],"m":"dec","oa":51711,"o":"wall_bytes_left"},{"a":51022,"t":"code","b":[96],"m":"rts"},{"a":51023,"l":"wall_plot","c":"Puts a piece of the line's kind (wall_tiles: an exit $36, a door $11 or $12, a removable wall $90, a wall $10) at ($8C) and joins it to the wall on each side (wall_join, four times).","t":"code","b":[72],"m":"pha","x":[50942,51010]},{"a":51024,"t":"code","b":[152],"m":"tya"},{"a":51025,"t":"code","b":[72],"m":"pha"},{"a":51026,"t":"code","b":[138],"m":"txa"},{"a":51027,"t":"code","b":[72],"m":"pha"},{"a":51028,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":51030,"t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind"},{"a":51033,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51034,"t":"code","b":[42],"m":"rol","o":"a"},{"a":51035,"t":"code","b":[42],"m":"rol","o":"a"},{"a":51036,"t":"code","b":[42],"m":"rol","o":"a"},{"a":51037,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":51039,"t":"code","b":[168],"m":"tay"},{"a":51040,"t":"code","b":[185,7,202],"m":"lda","oa":51719,"o":"wall_tiles,y"},{"a":51043,"t":"code","b":[129,140],"m":"sta","oa":140,"o":"(zpa_8C,x)"},{"a":51045,"t":"code","b":[32,128,199],"m":"jsr","oa":51072,"o":"wall_join_up"},{"a":51048,"t":"code","b":[32,122,199],"m":"jsr","oa":51066,"o":"wall_join_down"},{"a":51051,"t":"code","b":[32,119,199],"m":"jsr","oa":51063,"o":"wall_join"},{"a":51054,"t":"code","b":[32,125,199],"m":"jsr","oa":51069,"o":"wall_join_right"},{"a":51057,"t":"code","b":[104],"m":"pla"},{"a":51058,"t":"code","b":[170],"m":"tax"},{"a":51059,"t":"code","b":[104],"m":"pla"},{"a":51060,"t":"code","b":[168],"m":"tay"},{"a":51061,"t":"code","b":[104],"m":"pla"},{"a":51062,"t":"code","b":[96],"m":"rts"},{"a":51063,"l":"wall_join","c":"For side Y (the BIT instructions give the entries for 0, 4, 8 and 12: up, right, down, left): when the tile that way is a wall, each gets the other's join bit, so the brick pattern meets.","t":"code","b":[160,12],"m":"ldy","o":"#$0C","x":[51051]},{"a":51065,"t":"code","b":[44,160,8],"m":"bit","oa":2208,"o":"a_08A0"},{"a":51066,"t":"note","l":"wall_join_down","c":"wall_join's entry for side 8 (down); the BIT instructions hide the other entries' loads.","note":"inside the item at $C779","x":[51048]},{"a":51068,"t":"code","b":[44,160,4],"m":"bit","oa":1184,"o":"a_04A0"},{"a":51069,"t":"note","l":"wall_join_right","c":"wall_join's entry for side 4 (right).","note":"inside the item at $C77C","x":[51054]},{"a":51071,"t":"code","b":[44,160,0],"m":"bit","oa":160,"o":"a_00A0"},{"a":51072,"t":"note","l":"wall_join_up","c":"wall_join's entry for side 0 (up), the start of the shared code.","note":"inside the item at $C77F","x":[51045]},{"a":51074,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51076,"t":"code","b":[141,4,202],"m":"sta","oa":51716,"o":"wall_hidden"},{"a":51079,"t":"code","b":[141,5,202],"m":"sta","oa":51717,"o":"wall_neighbour_hidden"},{"a":51082,"t":"code","b":[32,220,199],"m":"jsr","oa":51164,"o":"wall_neighbour"},{"a":51085,"t":"code","b":[144,1],"m":"bcc","oa":51088,"o":"b_C790"},{"a":51087,"t":"code","b":[96],"m":"rts"},{"a":51088,"l":"b_C790","t":"code","b":[173,3,202],"m":"lda","oa":51715,"o":"wall_kind","x":[51085]},{"a":51091,"t":"code","b":[201,192],"m":"cmp","o":"#$C0"},{"a":51093,"t":"code","b":[176,28],"m":"bcs","oa":51123,"o":"b_C7B3"},{"a":51095,"t":"code","b":[152],"m":"tya"},{"a":51096,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51097,"t":"code","b":[168],"m":"tay"},{"a":51098,"t":"code","b":[161,142],"m":"lda","oa":142,"o":"(zpa_8E,x)"},{"a":51100,"t":"code","b":[240,20],"m":"beq","oa":51122,"o":"r_C7B2"},{"a":51102,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":51104,"t":"code","b":[176,16],"m":"bcs","oa":51122,"o":"r_C7B2"},{"a":51106,"t":"code","b":[185,247,201],"m":"lda","oa":51703,"o":"wall_join_bits,y"},{"a":51109,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":51111,"t":"code","b":[33,142],"m":"and","oa":142,"o":"(zpa_8E,x)"},{"a":51113,"t":"code","b":[208,2],"m":"bne","oa":51117,"o":"b_C7AD"},{"a":51115,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":51117,"l":"b_C7AD","t":"code","b":[13,5,202],"m":"ora","oa":51717,"o":"wall_neighbour_hidden","x":[51113]},{"a":51120,"t":"code","b":[129,142],"m":"sta","oa":142,"o":"(zpa_8E,x)"},{"a":51122,"l":"r_C7B2","t":"code","b":[96],"m":"rts","x":[51100,51104]},{"a":51123,"l":"b_C7B3","t":"code","b":[208,5],"m":"bne","oa":51130,"o":"b_C7BA","x":[51093]},{"a":51125,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":51127,"t":"code","b":[141,4,202],"m":"sta","oa":51716,"o":"wall_hidden"},{"a":51130,"l":"b_C7BA","t":"code","b":[152],"m":"tya","x":[51123]},{"a":51131,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51132,"t":"code","b":[168],"m":"tay"},{"a":51133,"t":"code","b":[185,247,201],"m":"lda","oa":51703,"o":"wall_join_bits,y"},{"a":51136,"t":"code","b":[1,142],"m":"ora","oa":142,"o":"(zpa_8E,x)"},{"a":51138,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":51140,"t":"code","b":[13,5,202],"m":"ora","oa":51717,"o":"wall_neighbour_hidden"},{"a":51143,"t":"code","b":[129,142],"m":"sta","oa":142,"o":"(zpa_8E,x)"},{"a":51145,"t":"code","b":[161,140],"m":"lda","oa":140,"o":"(zpa_8C,x)"},{"a":51147,"t":"code","b":[48,4],"m":"bmi","oa":51153,"o":"b_C7D1"},{"a":51149,"t":"code","b":[201,17],"m":"cmp","o":"#$11"},{"a":51151,"t":"code","b":[176,10],"m":"bcs","oa":51163,"o":"r_C7DB"},{"a":51153,"l":"b_C7D1","t":"code","b":[25,248,201],"m":"ora","oa":51704,"o":"wall_join_bits_opp,y","x":[51147]},{"a":51156,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":51158,"t":"code","b":[13,4,202],"m":"ora","oa":51716,"o":"wall_hidden"},{"a":51161,"t":"code","b":[129,140],"m":"sta","oa":140,"o":"(zpa_8C,x)"},{"a":51163,"l":"r_C7DB","t":"code","b":[96],"m":"rts","x":[51151]},{"a":51164,"l":"wall_neighbour","c":"Points $8E/$8F at the tile beside ($8C) in direction Y (wall_steps), wrapping at the grid's edges; carry clear when it is empty or a wall.","t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C","x":[51082,51644]},{"a":51166,"t":"code","b":[24],"m":"clc"},{"a":51167,"t":"code","b":[121,231,201],"m":"adc","oa":51687,"o":"wall_steps,y"},{"a":51170,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":51172,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":51174,"t":"code","b":[121,232,201],"m":"adc","oa":51688,"o":"wall_steps_hi,y"},{"a":51177,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":51179,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":51181,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":51183,"t":"code","b":[192,4],"m":"cpy","o":"#$04"},{"a":51185,"t":"code","b":[208,23],"m":"bne","oa":51210,"o":"b_C80A"},{"a":51187,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":51189,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":51191,"t":"code","b":[208,17],"m":"bne","oa":51210,"o":"b_C80A"},{"a":51193,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":51195,"t":"code","b":[56],"m":"sec"},{"a":51196,"t":"code","b":[233,32],"m":"sbc","o":"#$20"},{"a":51198,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":51200,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":51202,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":51204,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":51206,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":51208,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":51210,"l":"b_C80A","t":"code","b":[192,12],"m":"cpy","o":"#$0C","x":[51185,51191]},{"a":51212,"t":"code","b":[208,25],"m":"bne","oa":51239,"o":"b_C827"},{"a":51214,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":51216,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":51218,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":51220,"t":"code","b":[208,17],"m":"bne","oa":51239,"o":"b_C827"},{"a":51222,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"zpa_8E"},{"a":51224,"t":"code","b":[24],"m":"clc"},{"a":51225,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":51227,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"zpa_8E"},{"a":51229,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"zpa_8F"},{"a":51231,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":51233,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":51235,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":51237,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"zpa_8F"},{"a":51239,"l":"b_C827","t":"code","b":[161,142],"m":"lda","oa":142,"o":"(zpa_8E,x)","x":[51212,51220]},{"a":51241,"t":"code","b":[72],"m":"pha"},{"a":51242,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":51244,"t":"code","b":[141,5,202],"m":"sta","oa":51717,"o":"wall_neighbour_hidden"},{"a":51247,"t":"code","b":[104],"m":"pla"},{"a":51248,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":51250,"t":"code","b":[240,5],"m":"beq","oa":51257,"o":"b_C839"},{"a":51252,"t":"code","b":[201,17],"m":"cmp","o":"#$11"},{"a":51254,"t":"code","b":[176,1],"m":"bcs","oa":51257,"o":"b_C839"},{"a":51256,"t":"code","b":[96],"m":"rts"},{"a":51257,"l":"b_C839","t":"code","b":[56],"m":"sec","x":[51250,51254]},{"a":51258,"t":"code","b":[96],"m":"rts"},{"a":51259,"l":"objects_place","c":"Unpacks the object section of the level file (after the wall commands, to the length in $0A00 with bit 7 of $0A02 as its ninth bit) into the tile grid from $0C00. A byte with bit 7 set skips (byte - $80 + 1) tiles. Any other byte is a tile, put once, or, when the next byte is below $13, that many + 2 times (place_tile). The monster count starts empty ($824E = $FF).","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[50753]},{"a":51261,"t":"code","b":[141,78,130],"m":"sta","oa":33358,"o":"monster_count"},{"a":51264,"t":"code","b":[173,3,10],"m":"lda","oa":2563,"o":"level_wall_bytes"},{"a":51267,"t":"code","b":[24],"m":"clc"},{"a":51268,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":51270,"t":"code","b":[133,144],"m":"sta","oa":144,"o":"zpa_90"},{"a":51272,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":51274,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":51276,"t":"code","b":[133,145],"m":"sta","oa":145,"o":"zpa_91"},{"a":51278,"t":"code","b":[173,2,10],"m":"lda","oa":2562,"o":"level_colour"},{"a":51281,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51282,"t":"code","b":[42],"m":"rol","o":"a"},{"a":51283,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":51285,"t":"code","b":[133,147],"m":"sta","oa":147,"o":"zpa_93"},{"a":51287,"t":"code","b":[173,0,10],"m":"lda","oa":2560,"o":"level_length"},{"a":51290,"t":"code","b":[56],"m":"sec"},{"a":51291,"t":"code","b":[237,3,10],"m":"sbc","oa":2563,"o":"level_wall_bytes"},{"a":51294,"t":"code","b":[133,146],"m":"sta","oa":146,"o":"zpa_92"},{"a":51296,"t":"code","b":[165,147],"m":"lda","oa":147,"o":"zpa_93"},{"a":51298,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":51300,"t":"code","b":[133,147],"m":"sta","oa":147,"o":"zpa_93"},{"a":51302,"t":"code","b":[165,146],"m":"lda","oa":146,"o":"zpa_92"},{"a":51304,"t":"code","b":[56],"m":"sec"},{"a":51305,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":51307,"t":"code","b":[133,146],"m":"sta","oa":146,"o":"zpa_92"},{"a":51309,"t":"code","b":[165,147],"m":"lda","oa":147,"o":"zpa_93"},{"a":51311,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":51313,"t":"code","b":[133,147],"m":"sta","oa":147,"o":"zpa_93"},{"a":51315,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51317,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":51319,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":51321,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":51323,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":51325,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":51327,"l":"b_C87F","t":"code","b":[177,144],"m":"lda","oa":144,"o":"(zpa_90),y","x":[51425]},{"a":51329,"t":"code","b":[16,16],"m":"bpl","oa":51347,"o":"b_C893"},{"a":51331,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":51333,"t":"code","b":[56],"m":"sec"},{"a":51334,"t":"code","b":[101,140],"m":"adc","oa":140,"o":"zpa_8C"},{"a":51336,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":51338,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":51340,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":51342,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":51344,"t":"code","b":[76,207,200],"m":"jmp","oa":51407,"o":"j_C8CF"},{"a":51347,"l":"b_C893","t":"code","b":[141,20,202],"m":"sta","oa":51732,"o":"object_tile","x":[51329]},{"a":51350,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51352,"t":"code","b":[141,19,202],"m":"sta","oa":51731,"o":"repeat_count"},{"a":51355,"t":"code","b":[165,146],"m":"lda","oa":146,"o":"zpa_92"},{"a":51357,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":51359,"t":"code","b":[208,6],"m":"bne","oa":51367,"o":"b_C8A7"},{"a":51361,"t":"code","b":[165,147],"m":"lda","oa":147,"o":"zpa_93"},{"a":51363,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":51365,"t":"code","b":[240,32],"m":"beq","oa":51399,"o":"b_C8C7"},{"a":51367,"l":"b_C8A7","t":"code","b":[200],"m":"iny","x":[51359]},{"a":51368,"t":"code","b":[208,2],"m":"bne","oa":51372,"o":"b_C8AC"},{"a":51370,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"zpa_91"},{"a":51372,"l":"b_C8AC","t":"code","b":[177,144],"m":"lda","oa":144,"o":"(zpa_90),y","x":[51368]},{"a":51374,"t":"code","b":[136],"m":"dey"},{"a":51375,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":51377,"t":"code","b":[208,2],"m":"bne","oa":51381,"o":"b_C8B5"},{"a":51379,"t":"code","b":[198,145],"m":"dec","oa":145,"o":"zpa_91"},{"a":51381,"l":"b_C8B5","t":"code","b":[201,19],"m":"cmp","o":"#$13","x":[51377]},{"a":51383,"t":"code","b":[176,14],"m":"bcs","oa":51399,"o":"b_C8C7"},{"a":51385,"t":"code","b":[141,19,202],"m":"sta","oa":51731,"o":"repeat_count"},{"a":51388,"t":"code","b":[238,19,202],"m":"inc","oa":51731,"o":"repeat_count"},{"a":51391,"t":"code","b":[200],"m":"iny"},{"a":51392,"t":"code","b":[208,2],"m":"bne","oa":51396,"o":"b_C8C4"},{"a":51394,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"zpa_91"},{"a":51396,"l":"b_C8C4","t":"code","b":[32,228,200],"m":"jsr","oa":51428,"o":"objects_left","x":[51392]},{"a":51399,"l":"b_C8C7","t":"code","b":[32,237,200],"m":"jsr","oa":51437,"o":"place_tile","x":[51365,51383,51405]},{"a":51402,"t":"code","b":[206,19,202],"m":"dec","oa":51731,"o":"repeat_count"},{"a":51405,"t":"code","b":[16,248],"m":"bpl","oa":51399,"o":"b_C8C7"},{"a":51407,"l":"j_C8CF","t":"code","b":[32,228,200],"m":"jsr","oa":51428,"o":"objects_left","x":[51344]},{"a":51410,"t":"code","b":[200],"m":"iny"},{"a":51411,"t":"code","b":[208,2],"m":"bne","oa":51415,"o":"b_C8D7"},{"a":51413,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"zpa_91"},{"a":51415,"l":"b_C8D7","t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D","x":[51411]},{"a":51417,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":51419,"t":"code","b":[176,6],"m":"bcs","oa":51427,"o":"r_C8E3"},{"a":51421,"t":"code","b":[165,146],"m":"lda","oa":146,"o":"zpa_92"},{"a":51423,"t":"code","b":[5,147],"m":"ora","oa":147,"o":"zpa_93"},{"a":51425,"t":"code","b":[208,156],"m":"bne","oa":51327,"o":"b_C87F"},{"a":51427,"l":"r_C8E3","t":"code","b":[96],"m":"rts","x":[51419]},{"a":51428,"l":"objects_left","c":"Counts one byte off the object section's length.","t":"code","b":[165,146],"m":"lda","oa":146,"o":"zpa_92","x":[51396,51407]},{"a":51430,"t":"code","b":[208,2],"m":"bne","oa":51434,"o":"b_C8EA"},{"a":51432,"t":"code","b":[198,147],"m":"dec","oa":147,"o":"zpa_93"},{"a":51434,"l":"b_C8EA","t":"code","b":[198,146],"m":"dec","oa":146,"o":"zpa_92","x":[51430]},{"a":51436,"t":"code","b":[96],"m":"rts"},{"a":51437,"l":"place_tile","c":"Puts the object tile (object_tile) at ($8C) and moves on: wall pieces are joined to their neighbours; an exit ($36) is counted (level_exits); a tile from $40 is a monster, added to the table (monster_from_level) and leaving the grid empty; $3F is the players' start (start_here).","t":"code","b":[72],"m":"pha","x":[51399]},{"a":51438,"t":"code","b":[152],"m":"tya"},{"a":51439,"t":"code","b":[72],"m":"pha"},{"a":51440,"t":"code","b":[138],"m":"txa"},{"a":51441,"t":"code","b":[72],"m":"pha"},{"a":51442,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":51444,"t":"code","b":[32,186,201],"m":"jsr","oa":51642,"o":"wall_unjoin_up"},{"a":51447,"t":"code","b":[32,180,201],"m":"jsr","oa":51636,"o":"wall_unjoin_down"},{"a":51450,"t":"code","b":[32,177,201],"m":"jsr","oa":51633,"o":"wall_unjoin_side"},{"a":51453,"t":"code","b":[32,183,201],"m":"jsr","oa":51639,"o":"wall_unjoin_right"},{"a":51456,"t":"code","b":[173,20,202],"m":"lda","oa":51732,"o":"object_tile"},{"a":51459,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":51461,"t":"code","b":[208,3],"m":"bne","oa":51466,"o":"b_C90A"},{"a":51463,"t":"code","b":[238,0,202],"m":"inc","oa":51712,"o":"level_exits"},{"a":51466,"l":"b_C90A","t":"code","b":[201,64],"m":"cmp","o":"#$40","x":[51461]},{"a":51468,"t":"code","b":[144,3],"m":"bcc","oa":51473,"o":"b_C911"},{"a":51470,"t":"code","b":[32,38,201],"m":"jsr","oa":51494,"o":"monster_from_level"},{"a":51473,"l":"b_C911","t":"code","b":[201,63],"m":"cmp","o":"#$3F","x":[51468]},{"a":51475,"t":"code","b":[208,3],"m":"bne","oa":51480,"o":"b_C918"},{"a":51477,"t":"code","b":[32,138,201],"m":"jsr","oa":51594,"o":"start_here"},{"a":51480,"l":"b_C918","t":"code","b":[129,140],"m":"sta","oa":140,"o":"(zpa_8C,x)","x":[51475]},{"a":51482,"t":"code","b":[230,140],"m":"inc","oa":140,"o":"zpa_8C"},{"a":51484,"t":"code","b":[208,2],"m":"bne","oa":51488,"o":"b_C920"},{"a":51486,"t":"code","b":[230,141],"m":"inc","oa":141,"o":"zpa_8D"},{"a":51488,"l":"b_C920","t":"code","b":[104],"m":"pla","x":[51484]},{"a":51489,"t":"code","b":[170],"m":"tax"},{"a":51490,"t":"code","b":[104],"m":"pla"},{"a":51491,"t":"code","b":[168],"m":"tay"},{"a":51492,"t":"code","b":[104],"m":"pla"},{"a":51493,"t":"code","b":[96],"m":"rts"},{"a":51494,"l":"monster_from_level","c":"Adds the monster tile at ($8C) to the monster table: its position from the tile address, its level from the tile's low two bits, its kind from bits 3-5 (Death, kind 5, always $C0), a random facing and random flags (CIA 1 timer A).","t":"code","b":[152],"m":"tya","x":[51470]},{"a":51495,"t":"code","b":[72],"m":"pha"},{"a":51496,"t":"code","b":[138],"m":"txa"},{"a":51497,"t":"code","b":[72],"m":"pha"},{"a":51498,"t":"code","b":[238,78,130],"m":"inc","oa":33358,"o":"monster_count"},{"a":51501,"t":"code","b":[172,78,130],"m":"ldy","oa":33358,"o":"monster_count"},{"a":51504,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":51506,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":51508,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51509,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51510,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":51513,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":51515,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":51518,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":51520,"t":"code","b":[78,91,130],"m":"lsr","oa":33371,"o":"scratch"},{"a":51523,"t":"code","b":[106],"m":"ror","o":"a"},{"a":51524,"t":"code","b":[78,91,130],"m":"lsr","oa":33371,"o":"scratch"},{"a":51527,"t":"code","b":[106],"m":"ror","o":"a"},{"a":51528,"t":"code","b":[78,91,130],"m":"lsr","oa":33371,"o":"scratch"},{"a":51531,"t":"code","b":[106],"m":"ror","o":"a"},{"a":51532,"t":"code","b":[41,124],"m":"and","o":"#$7C"},{"a":51534,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":51537,"t":"code","b":[173,20,202],"m":"lda","oa":51732,"o":"object_tile"},{"a":51540,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":51542,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51543,"t":"code","b":[106],"m":"ror","o":"a"},{"a":51544,"t":"code","b":[106],"m":"ror","o":"a"},{"a":51545,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":51548,"t":"code","b":[173,20,202],"m":"lda","oa":51732,"o":"object_tile"},{"a":51551,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":51553,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":51555,"t":"code","b":[208,5],"m":"bne","oa":51562,"o":"b_C96A"},{"a":51557,"t":"code","b":[162,192],"m":"ldx","o":"#$C0"},{"a":51559,"t":"code","b":[142,91,130],"m":"stx","oa":33371,"o":"scratch"},{"a":51562,"l":"b_C96A","t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch","x":[51555]},{"a":51565,"t":"code","b":[141,91,130],"m":"sta","oa":33371,"o":"scratch"},{"a":51568,"t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo"},{"a":51571,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":51573,"t":"code","b":[13,91,130],"m":"ora","oa":33371,"o":"scratch"},{"a":51576,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":51579,"t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo"},{"a":51582,"t":"code","b":[41,224],"m":"and","o":"#$E0"},{"a":51584,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":51587,"t":"code","b":[104],"m":"pla"},{"a":51588,"t":"code","b":[170],"m":"tax"},{"a":51589,"t":"code","b":[104],"m":"pla"},{"a":51590,"t":"code","b":[168],"m":"tay"},{"a":51591,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51593,"t":"code","b":[96],"m":"rts"},{"a":51594,"l":"start_here","c":"The players' start: notes the tile's grid address in $C0/$C1 and $C2/$C3, and its column and row in start_x and start_y.","t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C","x":[51477]},{"a":51596,"t":"code","b":[133,192],"m":"sta","oa":192,"o":"zpf_C0"},{"a":51598,"t":"code","b":[133,194],"m":"sta","oa":194,"o":"zpa_C2"},{"a":51600,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":51602,"t":"code","b":[141,15,145],"m":"sta","oa":37135,"o":"start_x"},{"a":51605,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"zpa_8D"},{"a":51607,"t":"code","b":[133,193],"m":"sta","oa":193,"o":"zpf_C1"},{"a":51609,"t":"code","b":[133,195],"m":"sta","oa":195,"o":"zpa_C3"},{"a":51611,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":51613,"t":"code","b":[141,16,145],"m":"sta","oa":37136,"o":"start_y"},{"a":51616,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"zpa_8C"},{"a":51618,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51619,"t":"code","b":[46,16,145],"m":"rol","oa":37136,"o":"start_y"},{"a":51622,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51623,"t":"code","b":[46,16,145],"m":"rol","oa":37136,"o":"start_y"},{"a":51626,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51627,"t":"code","b":[46,16,145],"m":"rol","oa":37136,"o":"start_y"},{"a":51630,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51632,"t":"code","b":[96],"m":"rts"},{"a":51633,"l":"wall_unjoin_side","c":"For side Y (entries for 12, 8, 4, 0 by the BIT instructions): the wall beside loses its join bit for this side.","t":"code","b":[160,12],"m":"ldy","o":"#$0C","x":[51450]},{"a":51635,"t":"code","b":[44,160,8],"m":"bit","oa":2208,"o":"a_08A0"},{"a":51636,"t":"note","l":"wall_unjoin_down","c":"wall_unjoin_side's entry for side 8 (down).","note":"inside the item at $C9B3","x":[51447]},{"a":51638,"t":"code","b":[44,160,4],"m":"bit","oa":1184,"o":"a_04A0"},{"a":51639,"t":"note","l":"wall_unjoin_right","c":"wall_unjoin_side's entry for side 4 (right).","note":"inside the item at $C9B6","x":[51453]},{"a":51641,"t":"code","b":[44,160,0],"m":"bit","oa":160,"o":"a_00A0"},{"a":51642,"t":"note","l":"wall_unjoin_up","c":"wall_unjoin_side's entry for side 0 (up), the start of the shared code.","note":"inside the item at $C9B9","x":[51444]},{"a":51644,"t":"code","b":[32,220,199],"m":"jsr","oa":51164,"o":"wall_neighbour"},{"a":51647,"t":"code","b":[144,1],"m":"bcc","oa":51650,"o":"b_C9C2"},{"a":51649,"t":"code","b":[96],"m":"rts"},{"a":51650,"l":"b_C9C2","t":"code","b":[152],"m":"tya","x":[51647]},{"a":51651,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51652,"t":"code","b":[168],"m":"tay"},{"a":51653,"t":"code","b":[161,142],"m":"lda","oa":142,"o":"(zpa_8E,x)"},{"a":51655,"t":"code","b":[72],"m":"pha"},{"a":51656,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":51658,"t":"code","b":[141,6,202],"m":"sta","oa":51718,"o":"wall_side_hidden"},{"a":51661,"t":"code","b":[104],"m":"pla"},{"a":51662,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":51664,"t":"code","b":[240,20],"m":"beq","oa":51686,"o":"r_C9E6"},{"a":51666,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":51668,"t":"code","b":[176,16],"m":"bcs","oa":51686,"o":"r_C9E6"},{"a":51670,"t":"code","b":[185,247,201],"m":"lda","oa":51703,"o":"wall_join_bits,y"},{"a":51673,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":51675,"t":"code","b":[33,142],"m":"and","oa":142,"o":"(zpa_8E,x)"},{"a":51677,"t":"code","b":[208,2],"m":"bne","oa":51681,"o":"b_C9E1"},{"a":51679,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":51681,"l":"b_C9E1","t":"code","b":[13,6,202],"m":"ora","oa":51718,"o":"wall_side_hidden","x":[51677]},{"a":51684,"t":"code","b":[129,142],"m":"sta","oa":142,"o":"(zpa_8E,x)"},{"a":51686,"l":"r_C9E6","t":"code","b":[96],"m":"rts","x":[51664,51668]},{"a":51687,"l":"wall_steps","c":"The step in the 32 x 32 tile grid for each of the eight directions: -$20, -$1F, 1, $21, $20, $1F, -1, -$21.","t":"byte","b":[224],"x":[50994,51167]},{"a":51688,"l":"wall_steps_hi","c":"wall_steps read from its second byte.","t":"byte","b":[255,225,255,1,0,33,0,32],"x":[51001,51174]},{"a":51696,"t":"byte","b":[0,31,0,255,15,223,255]},{"a":51703,"l":"wall_join_bits","c":"The join bit for each side, and the matching bit of the tile opposite: 4 1 8 2 1 4 2 8.","t":"byte","b":[4],"x":[51106,51133,51670]},{"a":51704,"l":"wall_join_bits_opp","c":"wall_join_bits read from its second byte: the opposite tile's bit.","t":"byte","b":[1,8,2,1,4,2,8],"x":[51153]},{"a":51711,"l":"wall_bytes_left","c":"The wall-command bytes still to read.","t":"byte","b":[0],"x":[50740,50748,50767,50947,50950,51019]},{"a":51712,"l":"level_exits","c":"The exits in the level (counted as they are placed), and teleport_place's loop counter.","t":"byte","b":[1],"x":[36831,36844,50745,51463,52221]},{"a":51713,"l":"tiles_x","c":"A tile column, for tile_at.","t":"byte","b":[0],"x":[52226,52256]},{"a":51714,"l":"tiles_y","c":"A tile row, for tile_at.","t":"byte","b":[0],"x":[52233,52250,52253]},{"a":51715,"l":"wall_kind","c":"The kind of wall line being drawn (top three bits of its command).","t":"byte","b":[64],"x":[45772,45777,45805,45839,45867,50911,50970,50984,51030,51088]},{"a":51716,"l":"wall_hidden","c":"$80 for a wall that a trap takes away, ORed into the pieces.","t":"byte","b":[0],"x":[45817,45826,45879,45888,51076,51127,51158]},{"a":51717,"l":"wall_neighbour_hidden","c":"Bit 7 of the neighbouring tile.","t":"byte","b":[0],"x":[51079,51117,51140,51244]},{"a":51718,"l":"wall_side_hidden","c":"Bit 7 of the tile beside, for wall_unjoin_side.","t":"byte","b":[0],"x":[51658,51681]},{"a":51719,"l":"wall_tiles","c":"The tile each wall kind puts down: 0, an exit $36, a vertical door $11, 0, a horizontal door $12, 0, a removable wall $90, a wall $10.","t":"byte","b":[0,54,17,0,18,0,144,16],"x":[51040]},{"a":51727,"l":"wall_kind_by_dir","c":"The kind a door line takes by its direction: $40 $80 $40 $80.","t":"byte","b":[64,128,64,128],"x":[50981]},{"a":51731,"l":"repeat_count","c":"How many more times place_tile puts the object.","t":"byte","b":[255],"x":[51352,51385,51388,51402]},{"a":51732,"l":"object_tile","c":"The tile being placed.","t":"byte","b":[15],"x":[51347,51456,51537,51548,51774,51814]},{"a":51733,"l":"tile_col","c":"The tile column of tile_at.","t":"byte","b":[31],"x":[51735,51740,51789,51792,52167,52182,52189]},{"a":51734,"l":"tile_row","c":"The tile row of tile_at.","t":"byte","b":[255],"x":[51748,51753,51778,52164,52192]},{"a":51735,"l":"tile_at","c":"Reads the tile at (tile_col, tile_row) of the grid into object_tile, without bit 7.","t":"code","b":[173,21,202],"m":"lda","oa":51733,"o":"tile_col","x":[52170]},{"a":51738,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":51740,"t":"code","b":[141,21,202],"m":"sta","oa":51733,"o":"tile_col"},{"a":51743,"t":"code","b":[168],"m":"tay"},{"a":51744,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51746,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":51748,"t":"code","b":[173,22,202],"m":"lda","oa":51734,"o":"tile_row"},{"a":51751,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":51753,"t":"code","b":[141,22,202],"m":"sta","oa":51734,"o":"tile_row"},{"a":51756,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51757,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":51759,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51760,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":51762,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":51763,"t":"code","b":[102,251],"m":"ror","oa":251,"o":"zpa_FB"},{"a":51765,"t":"code","b":[24],"m":"clc"},{"a":51766,"t":"code","b":[105,12],"m":"adc","o":"#$0C"},{"a":51768,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":51770,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51772,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":51774,"t":"code","b":[141,20,202],"m":"sta","oa":51732,"o":"object_tile"},{"a":51777,"t":"code","b":[96],"m":"rts"},{"a":51778,"l":"tile_ptrs","c":"Points $F7/$F8 at the colour map and $F9/$FA at the character map for the tile at (tile_col, tile_row) (two cells per tile), and $FB/$FC, $FD/$FE at the tile's four characters ($F400 + tile x 4) and colours ($F600 + tile x 4).","t":"code","b":[173,22,202],"m":"lda","oa":51734,"o":"tile_row","x":[52173]},{"a":51781,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":51783,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51785,"t":"code","b":[70,250],"m":"lsr","oa":250,"o":"zpa_FA"},{"a":51787,"t":"code","b":[106],"m":"ror","o":"a"},{"a":51788,"t":"code","b":[24],"m":"clc"},{"a":51789,"t":"code","b":[109,21,202],"m":"adc","oa":51733,"o":"tile_col"},{"a":51792,"t":"code","b":[109,21,202],"m":"adc","oa":51733,"o":"tile_col"},{"a":51795,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":51797,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":51799,"t":"code","b":[165,250],"m":"lda","oa":250,"o":"zpa_FA"},{"a":51801,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":51803,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":51805,"t":"code","b":[56],"m":"sec"},{"a":51806,"t":"code","b":[233,16],"m":"sbc","o":"#$10"},{"a":51808,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":51810,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":51812,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":51814,"t":"code","b":[173,20,202],"m":"lda","oa":51732,"o":"object_tile"},{"a":51817,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51818,"t":"code","b":[38,252],"m":"rol","oa":252,"o":"zpa_FC"},{"a":51820,"t":"code","b":[10],"m":"asl","o":"a"},{"a":51821,"t":"code","b":[38,252],"m":"rol","oa":252,"o":"zpa_FC"},{"a":51823,"t":"code","b":[133,251],"m":"sta","oa":251,"o":"zpa_FB"},{"a":51825,"t":"code","b":[133,253],"m":"sta","oa":253,"o":"zpa_FD"},{"a":51827,"t":"code","b":[165,252],"m":"lda","oa":252,"o":"zpa_FC"},{"a":51829,"t":"code","b":[24],"m":"clc"},{"a":51830,"t":"code","b":[105,244],"m":"adc","o":"#$F4"},{"a":51832,"t":"code","b":[133,252],"m":"sta","oa":252,"o":"zpa_FC"},{"a":51834,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":51836,"t":"code","b":[133,254],"m":"sta","oa":254,"o":"zpa_FE"},{"a":51838,"t":"code","b":[96],"m":"rts"},{"a":51839,"l":"monster_draw","c":"Draws the monster's four characters at ($F9): straight (tile_plot) when its position is clear of the map's right and bottom edges, otherwise cell by cell through map_wrap_x.","t":"code","b":[169,125],"m":"lda","o":"#$7D","x":[48539,49208]},{"a":51841,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":51844,"t":"code","b":[144,5],"m":"bcc","oa":51851,"o":"b_CA8B"},{"a":51846,"t":"code","b":[205,111,190],"m":"cmp","oa":48751,"o":"cell_pos_y"},{"a":51849,"t":"code","b":[176,72],"m":"bcs","oa":51923,"o":"tile_plot"},{"a":51851,"l":"b_CA8B","t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9","x":[51844]},{"a":51853,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":51855,"t":"code","b":[170],"m":"tax"},{"a":51856,"t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9"},{"a":51858,"t":"code","b":[41,192],"m":"and","o":"#$C0"},{"a":51860,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":51862,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":51864,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51866,"t":"code","b":[72],"m":"pha"},{"a":51867,"t":"code","b":[136],"m":"dey"},{"a":51868,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51870,"t":"code","b":[72],"m":"pha"},{"a":51871,"t":"code","b":[136],"m":"dey"},{"a":51872,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51874,"t":"code","b":[72],"m":"pha"},{"a":51875,"t":"code","b":[136],"m":"dey"},{"a":51876,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51878,"t":"code","b":[72],"m":"pha"},{"a":51879,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":51882,"t":"code","b":[104],"m":"pla"},{"a":51883,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51885,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":51888,"t":"code","b":[104],"m":"pla"},{"a":51889,"t":"code","b":[24],"m":"clc"},{"a":51890,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51892,"t":"code","b":[165,249],"m":"lda","oa":249,"o":"zpa_F9"},{"a":51894,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":51896,"t":"code","b":[133,249],"m":"sta","oa":249,"o":"zpa_F9"},{"a":51898,"t":"code","b":[144,10],"m":"bcc","oa":51910,"o":"b_CAC6"},{"a":51900,"t":"code","b":[165,250],"m":"lda","oa":250,"o":"zpa_FA"},{"a":51902,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":51904,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":51906,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":51908,"t":"code","b":[133,250],"m":"sta","oa":250,"o":"zpa_FA"},{"a":51910,"l":"b_CAC6","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[51898]},{"a":51913,"t":"code","b":[104],"m":"pla"},{"a":51914,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51916,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":51919,"t":"code","b":[104],"m":"pla"},{"a":51920,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51922,"t":"code","b":[96],"m":"rts"},{"a":51923,"l":"tile_plot","c":"Copies four characters from ($FB) into the 2 x 2 character map cells at ($F9).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[41998,45683,51849,52176]},{"a":51925,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51927,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51929,"t":"code","b":[200],"m":"iny"},{"a":51930,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51932,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51934,"t":"code","b":[200],"m":"iny"},{"a":51935,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51937,"t":"code","b":[72],"m":"pha"},{"a":51938,"t":"code","b":[200],"m":"iny"},{"a":51939,"t":"code","b":[177,251],"m":"lda","oa":251,"o":"(zpa_FB),y"},{"a":51941,"t":"code","b":[160,65],"m":"ldy","o":"#$41"},{"a":51943,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51945,"t":"code","b":[136],"m":"dey"},{"a":51946,"t":"code","b":[104],"m":"pla"},{"a":51947,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":51949,"t":"code","b":[96],"m":"rts"},{"a":51950,"l":"monster_colour_wrapped","c":"Writes the monster's four colours from ($FD) into the colour map at ($F7): straight (colour_plot) unless its position is at the right edge, where the cells wrap. Both of its edge tests compare cell_pos_x; the bottom edge (cell_pos_y) is never tested.","t":"code","b":[169,125],"m":"lda","o":"#$7D","x":[49205]},{"a":51952,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":51955,"t":"code","b":[144,5],"m":"bcc","oa":51962,"o":"b_CAFA"},{"a":51957,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":51960,"t":"code","b":[176,72],"m":"bcs","oa":52034,"o":"colour_plot"},{"a":51962,"l":"b_CAFA","t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7","x":[51955]},{"a":51964,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":51966,"t":"code","b":[170],"m":"tax"},{"a":51967,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":51969,"t":"code","b":[41,192],"m":"and","o":"#$C0"},{"a":51971,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":51973,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":51975,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":51977,"t":"code","b":[72],"m":"pha"},{"a":51978,"t":"code","b":[136],"m":"dey"},{"a":51979,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":51981,"t":"code","b":[72],"m":"pha"},{"a":51982,"t":"code","b":[136],"m":"dey"},{"a":51983,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":51985,"t":"code","b":[72],"m":"pha"},{"a":51986,"t":"code","b":[136],"m":"dey"},{"a":51987,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":51989,"t":"code","b":[72],"m":"pha"},{"a":51990,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":51993,"t":"code","b":[104],"m":"pla"},{"a":51994,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":51996,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":51999,"t":"code","b":[104],"m":"pla"},{"a":52000,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52002,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":52004,"t":"code","b":[24],"m":"clc"},{"a":52005,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":52007,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":52009,"t":"code","b":[144,10],"m":"bcc","oa":52021,"o":"b_CB35"},{"a":52011,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":52013,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":52015,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":52017,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":52019,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":52021,"l":"b_CB35","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[52009]},{"a":52024,"t":"code","b":[104],"m":"pla"},{"a":52025,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52027,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":52030,"t":"code","b":[104],"m":"pla"},{"a":52031,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52033,"t":"code","b":[96],"m":"rts"},{"a":52034,"l":"colour_plot","c":"Copies four colours from ($FD) into the 2 x 2 colour map cells at ($F7).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[42001,45686,51960,52179]},{"a":52036,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":52038,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52040,"t":"code","b":[200],"m":"iny"},{"a":52041,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":52043,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52045,"t":"code","b":[200],"m":"iny"},{"a":52046,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":52048,"t":"code","b":[72],"m":"pha"},{"a":52049,"t":"code","b":[200],"m":"iny"},{"a":52050,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":52052,"t":"code","b":[160,65],"m":"ldy","o":"#$41"},{"a":52054,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52056,"t":"code","b":[136],"m":"dey"},{"a":52057,"t":"code","b":[104],"m":"pla"},{"a":52058,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52060,"t":"code","b":[96],"m":"rts"},{"a":52061,"l":"monster_colour","c":"Colours the monster's four cells with one colour: from ($FD),3 cell by cell through map_wrap_x at the right edge, or ($FD),0 straight. Like monster_colour_wrapped, it tests cell_pos_x twice and never cell_pos_y.","t":"code","b":[169,125],"m":"lda","o":"#$7D","x":[48542]},{"a":52063,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":52066,"t":"code","b":[144,5],"m":"bcc","oa":52073,"o":"b_CB69"},{"a":52068,"t":"code","b":[205,110,190],"m":"cmp","oa":48750,"o":"cell_pos_x"},{"a":52071,"t":"code","b":[176,55],"m":"bcs","oa":52128,"o":"b_CBA0"},{"a":52073,"l":"b_CB69","t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7","x":[52066]},{"a":52075,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":52077,"t":"code","b":[170],"m":"tax"},{"a":52078,"t":"code","b":[69,247],"m":"eor","oa":247,"o":"zpa_F7"},{"a":52080,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":52082,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":52084,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":52086,"t":"code","b":[72],"m":"pha"},{"a":52087,"t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x"},{"a":52090,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52092,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":52095,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52097,"t":"code","b":[165,247],"m":"lda","oa":247,"o":"zpa_F7"},{"a":52099,"t":"code","b":[24],"m":"clc"},{"a":52100,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":52102,"t":"code","b":[133,247],"m":"sta","oa":247,"o":"zpa_F7"},{"a":52104,"t":"code","b":[144,10],"m":"bcc","oa":52116,"o":"b_CB94"},{"a":52106,"t":"code","b":[165,248],"m":"lda","oa":248,"o":"zpa_F8"},{"a":52108,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":52110,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":52112,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":52114,"t":"code","b":[133,248],"m":"sta","oa":248,"o":"zpa_F8"},{"a":52116,"l":"b_CB94","t":"code","b":[188,0,142],"m":"ldy","oa":36352,"o":"map_wrap_x,x","x":[52104]},{"a":52119,"t":"code","b":[104],"m":"pla"},{"a":52120,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52122,"t":"code","b":[188,1,142],"m":"ldy","oa":36353,"o":"map_wrap_x_1,x"},{"a":52125,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52127,"t":"code","b":[96],"m":"rts"},{"a":52128,"l":"b_CBA0","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[52071]},{"a":52130,"t":"code","b":[177,253],"m":"lda","oa":253,"o":"(zpa_FD),y"},{"a":52132,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52134,"t":"code","b":[200],"m":"iny"},{"a":52135,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52137,"t":"code","b":[160,65],"m":"ldy","o":"#$41"},{"a":52139,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52141,"t":"code","b":[136],"m":"dey"},{"a":52142,"t":"code","b":[145,247],"m":"sta","oa":247,"o":"(zpa_F7),y"},{"a":52144,"t":"code","b":[96],"m":"rts"},{"a":52145,"l":"sorcerer_hide","c":"Puts $5B in the monster's four character cells: an invisible sorcerer leaves its cells occupied (a character the maze font draws as floor) without drawing itself.","t":"code","b":[169,91],"m":"lda","o":"#$5B","x":[48533]},{"a":52147,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52149,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":52151,"t":"code","b":[200],"m":"iny"},{"a":52152,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":52154,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":52156,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":52158,"t":"code","b":[200],"m":"iny"},{"a":52159,"t":"code","b":[145,249],"m":"sta","oa":249,"o":"(zpa_F9),y"},{"a":52161,"t":"code","b":[96],"m":"rts"},{"a":52162,"l":"grid_draw","c":"Draws the whole 32 x 32 tile grid into the character and colour maps, tile by tile (tile_at, tile_ptrs, tile_plot, colour_plot).","t":"code","b":[169,31],"m":"lda","o":"#$1F","x":[32958]},{"a":52164,"t":"code","b":[141,22,202],"m":"sta","oa":51734,"o":"tile_row"},{"a":52167,"t":"code","b":[141,21,202],"m":"sta","oa":51733,"o":"tile_col"},{"a":52170,"l":"b_CBCA","t":"code","b":[32,23,202],"m":"jsr","oa":51735,"o":"tile_at","x":[52185,52195]},{"a":52173,"t":"code","b":[32,66,202],"m":"jsr","oa":51778,"o":"tile_ptrs"},{"a":52176,"t":"code","b":[32,211,202],"m":"jsr","oa":51923,"o":"tile_plot"},{"a":52179,"t":"code","b":[32,66,203],"m":"jsr","oa":52034,"o":"colour_plot"},{"a":52182,"t":"code","b":[206,21,202],"m":"dec","oa":51733,"o":"tile_col"},{"a":52185,"t":"code","b":[16,239],"m":"bpl","oa":52170,"o":"b_CBCA"},{"a":52187,"t":"code","b":[169,31],"m":"lda","o":"#$1F"},{"a":52189,"t":"code","b":[141,21,202],"m":"sta","oa":51733,"o":"tile_col"},{"a":52192,"t":"code","b":[206,22,202],"m":"dec","oa":51734,"o":"tile_row"},{"a":52195,"t":"code","b":[16,229],"m":"bpl","oa":52170,"o":"b_CBCA"},{"a":52197,"t":"code","b":[96],"m":"rts"},{"a":52198,"l":"exits_pick_one","c":"When bit 2 of the level header $0A01 is set, keeps one exit at random (a random number below the level's exit count, from the CIA 1 timers) and clears the others from the grid.","t":"code","b":[173,1,10],"m":"lda","oa":2561,"o":"level_flags","x":[32952]},{"a":52201,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":52203,"t":"code","b":[208,1],"m":"bne","oa":52206,"o":"b_CBEE"},{"a":52205,"t":"code","b":[96],"m":"rts"},{"a":52206,"l":"b_CBEE","t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo","x":[52203,52224]},{"a":52209,"t":"code","b":[109,5,220],"m":"adc","o":"cia1_timer_a_hi"},{"a":52212,"t":"code","b":[109,6,220],"m":"adc","o":"cia1_timer_b_lo"},{"a":52215,"t":"code","b":[109,7,220],"m":"adc","o":"cia1_timer_b_hi"},{"a":52218,"t":"code","b":[77,5,220],"m":"eor","o":"cia1_timer_a_hi"},{"a":52221,"t":"code","b":[205,0,202],"m":"cmp","oa":51712,"o":"level_exits"},{"a":52224,"t":"code","b":[176,236],"m":"bcs","oa":52206,"o":"b_CBEE"},{"a":52226,"t":"code","b":[141,1,202],"m":"sta","oa":51713,"o":"tiles_x"},{"a":52229,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":52231,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52233,"t":"code","b":[141,2,202],"m":"sta","oa":51714,"o":"tiles_y"},{"a":52236,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":52238,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":52240,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":52242,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52244,"l":"b_CC14","t":"code","b":[177,140],"m":"lda","oa":140,"o":"(zpa_8C),y","x":[52266,52271]},{"a":52246,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":52248,"t":"code","b":[208,15],"m":"bne","oa":52265,"o":"b_CC29"},{"a":52250,"t":"code","b":[173,2,202],"m":"lda","oa":51714,"o":"tiles_y"},{"a":52253,"t":"code","b":[238,2,202],"m":"inc","oa":51714,"o":"tiles_y"},{"a":52256,"t":"code","b":[205,1,202],"m":"cmp","oa":51713,"o":"tiles_x"},{"a":52259,"t":"code","b":[240,4],"m":"beq","oa":52265,"o":"b_CC29"},{"a":52261,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52263,"t":"code","b":[145,140],"m":"sta","oa":140,"o":"(zpa_8C),y"},{"a":52265,"l":"b_CC29","t":"code","b":[200],"m":"iny","x":[52248,52259]},{"a":52266,"t":"code","b":[208,232],"m":"bne","oa":52244,"o":"b_CC14"},{"a":52268,"t":"code","b":[230,141],"m":"inc","oa":141,"o":"zpa_8D"},{"a":52270,"t":"code","b":[202],"m":"dex"},{"a":52271,"t":"code","b":[16,227],"m":"bpl","oa":52244,"o":"b_CC14"},{"a":52273,"t":"code","b":[96],"m":"rts"},{"a":52274,"l":"exits_special","c":"After levels 1 and 4 (level_number 2 or 5), turns the labelled exit tiles $37 and $38 into plain exits ($36); exit_targets then sends each to its level by its place.","t":"code","b":[173,205,153],"m":"lda","oa":39373,"o":"level_number","x":[32961]},{"a":52277,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":52279,"t":"code","b":[240,4],"m":"beq","oa":52285,"o":"b_CC3D"},{"a":52281,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":52283,"t":"code","b":[208,34],"m":"bne","oa":52319,"o":"r_CC5F"},{"a":52285,"l":"b_CC3D","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[52279]},{"a":52287,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"zpa_8C"},{"a":52289,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":52291,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"zpa_8D"},{"a":52293,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52295,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":52297,"l":"b_CC49","t":"code","b":[177,140],"m":"lda","oa":140,"o":"(zpa_8C),y","x":[52312,52317]},{"a":52299,"t":"code","b":[201,55],"m":"cmp","o":"#$37"},{"a":52301,"t":"code","b":[240,4],"m":"beq","oa":52307,"o":"b_CC53"},{"a":52303,"t":"code","b":[201,56],"m":"cmp","o":"#$38"},{"a":52305,"t":"code","b":[208,4],"m":"bne","oa":52311,"o":"b_CC57"},{"a":52307,"l":"b_CC53","t":"code","b":[169,54],"m":"lda","o":"#$36","x":[52301]},{"a":52309,"t":"code","b":[145,140],"m":"sta","oa":140,"o":"(zpa_8C),y"},{"a":52311,"l":"b_CC57","t":"code","b":[200],"m":"iny","x":[52305]},{"a":52312,"t":"code","b":[208,239],"m":"bne","oa":52297,"o":"b_CC49"},{"a":52314,"t":"code","b":[230,141],"m":"inc","oa":141,"o":"zpa_8D"},{"a":52316,"t":"code","b":[202],"m":"dex"},{"a":52317,"t":"code","b":[16,234],"m":"bpl","oa":52297,"o":"b_CC49"},{"a":52319,"l":"r_CC5F","t":"code","b":[96],"m":"rts","x":[52283]},{"a":52320,"l":"deaths_first","c":"Moves every Death (kind 5) to the front of the monster table, each with a drain count of 50 ($0700: 50 touches of 4, the 200 health the manual names).","t":"code","b":[173,78,130],"m":"lda","oa":33358,"o":"monster_count","x":[32955]},{"a":52323,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":52325,"t":"code","b":[240,23],"m":"beq","oa":52350,"o":"r_CC7E"},{"a":52327,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52329,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":52331,"l":"j_CC6B","t":"code","b":[204,78,130],"m":"cpy","oa":33358,"o":"monster_count","x":[52347]},{"a":52334,"t":"code","b":[240,2],"m":"beq","oa":52338,"o":"b_CC72"},{"a":52336,"t":"code","b":[176,12],"m":"bcs","oa":52350,"o":"r_CC7E"},{"a":52338,"l":"b_CC72","t":"code","b":[32,127,204],"m":"jsr","oa":52351,"o":"is_death","x":[52334]},{"a":52341,"t":"code","b":[208,3],"m":"bne","oa":52346,"o":"b_CC7A"},{"a":52343,"t":"code","b":[32,135,204],"m":"jsr","oa":52359,"o":"death_to_front"},{"a":52346,"l":"b_CC7A","t":"code","b":[200],"m":"iny","x":[52341]},{"a":52347,"t":"code","b":[76,107,204],"m":"jmp","oa":52331,"o":"j_CC6B"},{"a":52350,"l":"r_CC7E","t":"code","b":[96],"m":"rts","x":[52325,52336]},{"a":52351,"l":"is_death","c":"Zero when monster Y is Death (kind bits $28).","t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y","x":[52338]},{"a":52354,"t":"code","b":[41,56],"m":"and","o":"#$38"},{"a":52356,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":52358,"t":"code","b":[96],"m":"rts"},{"a":52359,"l":"death_to_front","c":"Swaps monster Y with the next slot at the front of the table and gives it its drain count.","t":"code","b":[232],"m":"inx","x":[52343]},{"a":52360,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":52362,"t":"code","b":[157,0,7],"m":"sta","oa":1792,"o":"f_0700,x"},{"a":52365,"t":"code","b":[189,0,4],"m":"lda","oa":1024,"o":"a_0400,x"},{"a":52368,"t":"code","b":[72],"m":"pha"},{"a":52369,"t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"a_0400,y"},{"a":52372,"t":"code","b":[157,0,4],"m":"sta","oa":1024,"o":"a_0400,x"},{"a":52375,"t":"code","b":[104],"m":"pla"},{"a":52376,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"a_0400,y"},{"a":52379,"t":"code","b":[189,192,4],"m":"lda","oa":1216,"o":"f_04C0,x"},{"a":52382,"t":"code","b":[72],"m":"pha"},{"a":52383,"t":"code","b":[185,192,4],"m":"lda","oa":1216,"o":"f_04C0,y"},{"a":52386,"t":"code","b":[157,192,4],"m":"sta","oa":1216,"o":"f_04C0,x"},{"a":52389,"t":"code","b":[104],"m":"pla"},{"a":52390,"t":"code","b":[153,192,4],"m":"sta","oa":1216,"o":"f_04C0,y"},{"a":52393,"t":"code","b":[189,128,5],"m":"lda","oa":1408,"o":"f_0580,x"},{"a":52396,"t":"code","b":[72],"m":"pha"},{"a":52397,"t":"code","b":[185,128,5],"m":"lda","oa":1408,"o":"f_0580,y"},{"a":52400,"t":"code","b":[157,128,5],"m":"sta","oa":1408,"o":"f_0580,x"},{"a":52403,"t":"code","b":[104],"m":"pla"},{"a":52404,"t":"code","b":[153,128,5],"m":"sta","oa":1408,"o":"f_0580,y"},{"a":52407,"t":"code","b":[189,64,6],"m":"lda","oa":1600,"o":"f_0640,x"},{"a":52410,"t":"code","b":[72],"m":"pha"},{"a":52411,"t":"code","b":[185,64,6],"m":"lda","oa":1600,"o":"f_0640,y"},{"a":52414,"t":"code","b":[157,64,6],"m":"sta","oa":1600,"o":"f_0640,x"},{"a":52417,"t":"code","b":[104],"m":"pla"},{"a":52418,"t":"code","b":[153,64,6],"m":"sta","oa":1600,"o":"f_0640,y"},{"a":52421,"t":"code","b":[96],"m":"rts"},{"a":52422,"l":"unused_jmp","c":"A JMP $CD77 no traced code reaches.","t":"byte","b":[76,119,205]},{"a":52425,"l":"sfx_voice1","c":"The sound effect on voice 1: $FF for none, otherwise the steps it has played.","t":"byte","b":[255],"x":[52438,52457,52487,52601,52711,52735,52749,52757,52771,52803,52906]},{"a":52426,"l":"sfx_voice2","c":"The sound effect on voice 2.","t":"byte","b":[255],"x":[52490,52511,52541,52604,52714,52909]},{"a":52427,"l":"sfx_voice3","c":"The sound effect on voice 3.","t":"byte","b":[255],"x":[52544,52565,52595,52607,52717,52912]},{"a":52428,"l":"sfx_playing","c":"The effect number on each voice.","t":"byte","b":[0,0,14],"x":[52723,52775]},{"a":52431,"l":"sfx_step_a","c":"Work: the step's first byte (the waveform choice in the low nibble, sustain/release in the high).","t":"byte","b":[16],"x":[52462,52516,52570,52831,52860]},{"a":52432,"l":"sfx_step_b","c":"Work: the step's second byte (the pitch).","t":"byte","b":[241],"x":[52468,52522,52576,52807,52813,52817,52823]},{"a":52433,"l":"sfx_voice","c":"The voice sfx_start picked.","t":"byte","b":[2],"x":[52754,52763,52766,52800]},{"a":52434,"l":"pad_CCD2","c":"A zero byte before sfx_play.","t":"byte","b":[0]},{"a":52435,"l":"sfx_play","c":"Called from the raster interrupt every frame: for each voice with an effect, plays its next step (two bytes from the stream at $A6/$A7, $A8/$A9, $AA/$AB through sfx_note); a step whose first byte is 0 ends the effect, zeroing the voice's frequency. For voice 3 that zeroing goes to $D414/$D415 (its sustain/release and the filter's cutoff) instead of its frequency at $D40E/$D40F.","t":"code","b":[216],"m":"cld","x":[34293]},{"a":52436,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52438,"t":"code","b":[173,201,204],"m":"lda","oa":52425,"o":"sfx_voice1"},{"a":52441,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":52443,"t":"code","b":[240,45],"m":"beq","oa":52490,"o":"b_CD0A"},{"a":52445,"t":"code","b":[177,166],"m":"lda","oa":166,"o":"(zpp_A6),y"},{"a":52447,"t":"code","b":[208,13],"m":"bne","oa":52462,"o":"b_CCEE"},{"a":52449,"t":"code","b":[141,0,212],"m":"sta","o":"sid_v1_freq_lo"},{"a":52452,"t":"code","b":[141,1,212],"m":"sta","o":"sid_v1_freq_hi"},{"a":52455,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":52457,"t":"code","b":[141,201,204],"m":"sta","oa":52425,"o":"sfx_voice1"},{"a":52460,"t":"code","b":[208,28],"m":"bne","oa":52490,"o":"b_CD0A"},{"a":52462,"l":"b_CCEE","t":"code","b":[141,207,204],"m":"sta","oa":52431,"o":"sfx_step_a","x":[52447]},{"a":52465,"t":"code","b":[200],"m":"iny"},{"a":52466,"t":"code","b":[177,166],"m":"lda","oa":166,"o":"(zpp_A6),y"},{"a":52468,"t":"code","b":[141,208,204],"m":"sta","oa":52432,"o":"sfx_step_b"},{"a":52471,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52473,"t":"code","b":[32,71,206],"m":"jsr","oa":52807,"o":"sfx_note"},{"a":52476,"t":"code","b":[24],"m":"clc"},{"a":52477,"t":"code","b":[165,166],"m":"lda","oa":166,"o":"zpp_A6"},{"a":52479,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":52481,"t":"code","b":[133,166],"m":"sta","oa":166,"o":"zpp_A6"},{"a":52483,"t":"code","b":[144,2],"m":"bcc","oa":52487,"o":"b_CD07"},{"a":52485,"t":"code","b":[230,167],"m":"inc","oa":167,"o":"zpa_A7"},{"a":52487,"l":"b_CD07","t":"code","b":[238,201,204],"m":"inc","oa":52425,"o":"sfx_voice1","x":[52483]},{"a":52490,"l":"b_CD0A","t":"code","b":[173,202,204],"m":"lda","oa":52426,"o":"sfx_voice2","x":[52443,52460]},{"a":52493,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":52495,"t":"code","b":[240,47],"m":"beq","oa":52544,"o":"b_CD40"},{"a":52497,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52499,"t":"code","b":[177,168],"m":"lda","oa":168,"o":"(zpp_A8),y"},{"a":52501,"t":"code","b":[208,13],"m":"bne","oa":52516,"o":"b_CD24"},{"a":52503,"t":"code","b":[141,7,212],"m":"sta","o":"sid_v2_freq_lo"},{"a":52506,"t":"code","b":[141,8,212],"m":"sta","o":"sid_v2_freq_hi"},{"a":52509,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":52511,"t":"code","b":[141,202,204],"m":"sta","oa":52426,"o":"sfx_voice2"},{"a":52514,"t":"code","b":[208,28],"m":"bne","oa":52544,"o":"b_CD40"},{"a":52516,"l":"b_CD24","t":"code","b":[141,207,204],"m":"sta","oa":52431,"o":"sfx_step_a","x":[52501]},{"a":52519,"t":"code","b":[200],"m":"iny"},{"a":52520,"t":"code","b":[177,168],"m":"lda","oa":168,"o":"(zpp_A8),y"},{"a":52522,"t":"code","b":[141,208,204],"m":"sta","oa":52432,"o":"sfx_step_b"},{"a":52525,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":52527,"t":"code","b":[32,71,206],"m":"jsr","oa":52807,"o":"sfx_note"},{"a":52530,"t":"code","b":[24],"m":"clc"},{"a":52531,"t":"code","b":[165,168],"m":"lda","oa":168,"o":"zpp_A8"},{"a":52533,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":52535,"t":"code","b":[133,168],"m":"sta","oa":168,"o":"zpp_A8"},{"a":52537,"t":"code","b":[144,2],"m":"bcc","oa":52541,"o":"b_CD3D"},{"a":52539,"t":"code","b":[230,169],"m":"inc","oa":169,"o":"zpa_A9"},{"a":52541,"l":"b_CD3D","t":"code","b":[238,202,204],"m":"inc","oa":52426,"o":"sfx_voice2","x":[52537]},{"a":52544,"l":"b_CD40","t":"code","b":[173,203,204],"m":"lda","oa":52427,"o":"sfx_voice3","x":[52495,52514]},{"a":52547,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":52549,"t":"code","b":[240,47],"m":"beq","oa":52598,"o":"r_CD76"},{"a":52551,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":52553,"t":"code","b":[177,170],"m":"lda","oa":170,"o":"(zpp_AA),y"},{"a":52555,"t":"code","b":[208,13],"m":"bne","oa":52570,"o":"b_CD5A"},{"a":52557,"t":"code","b":[141,20,212],"m":"sta","o":"sid_v3_sustain_release"},{"a":52560,"t":"code","b":[141,21,212],"m":"sta","o":"sid_filter_cutoff_lo"},{"a":52563,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":52565,"t":"code","b":[141,203,204],"m":"sta","oa":52427,"o":"sfx_voice3"},{"a":52568,"t":"code","b":[208,28],"m":"bne","oa":52598,"o":"r_CD76"},{"a":52570,"l":"b_CD5A","t":"code","b":[141,207,204],"m":"sta","oa":52431,"o":"sfx_step_a","x":[52555]},{"a":52573,"t":"code","b":[200],"m":"iny"},{"a":52574,"t":"code","b":[177,170],"m":"lda","oa":170,"o":"(zpp_AA),y"},{"a":52576,"t":"code","b":[141,208,204],"m":"sta","oa":52432,"o":"sfx_step_b"},{"a":52579,"t":"code","b":[160,14],"m":"ldy","o":"#$0E"},{"a":52581,"t":"code","b":[32,71,206],"m":"jsr","oa":52807,"o":"sfx_note"},{"a":52584,"t":"code","b":[24],"m":"clc"},{"a":52585,"t":"code","b":[165,170],"m":"lda","oa":170,"o":"zpp_AA"},{"a":52587,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":52589,"t":"code","b":[133,170],"m":"sta","oa":170,"o":"zpp_AA"},{"a":52591,"t":"code","b":[144,2],"m":"bcc","oa":52595,"o":"b_CD73"},{"a":52593,"t":"code","b":[230,171],"m":"inc","oa":171,"o":"zpa_AB"},{"a":52595,"l":"b_CD73","t":"code","b":[238,203,204],"m":"inc","oa":52427,"o":"sfx_voice3","x":[52591]},{"a":52598,"l":"r_CD76","t":"code","b":[96],"m":"rts","x":[52549,52568]},{"a":52599,"l":"sfx_reset","c":"Stops every effect and sets the SID's 25 registers from sid_init.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[32845,44597,45280]},{"a":52601,"t":"code","b":[141,201,204],"m":"sta","oa":52425,"o":"sfx_voice1"},{"a":52604,"t":"code","b":[141,202,204],"m":"sta","oa":52426,"o":"sfx_voice2"},{"a":52607,"t":"code","b":[141,203,204],"m":"sta","oa":52427,"o":"sfx_voice3"},{"a":52610,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52612,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":52614,"l":"b_CD86","t":"code","b":[149,166],"m":"sta","oa":166,"o":"zpp_A6,x","x":[52617]},{"a":52616,"t":"code","b":[202],"m":"dex"},{"a":52617,"t":"code","b":[16,251],"m":"bpl","oa":52614,"o":"b_CD86"},{"a":52619,"t":"code","b":[160,24],"m":"ldy","o":"#$18"},{"a":52621,"l":"b_CD8D","t":"code","b":[185,194,205],"m":"lda","oa":52674,"o":"sid_init,y","x":[52628]},{"a":52624,"t":"code","b":[153,0,212],"m":"sta","o":"sid_v1_freq_lo,y"},{"a":52627,"t":"code","b":[136],"m":"dey"},{"a":52628,"t":"code","b":[16,247],"m":"bpl","oa":52621,"o":"b_CD8D"},{"a":52630,"t":"code","b":[96],"m":"rts"},{"a":52631,"l":"unused_sid_setup","c":"43 bytes no traced code reaches: an older SID set-up (writing $D421-$D423 and $D418, gates off, pulse width $08).","t":"byte","b":[169,0,141,33,212,169,31,141]},{"a":52639,"t":"byte","b":[34,212,169,247,141,35,212,169]},{"a":52647,"t":"byte","b":[31,141,24,212,169,0,141,4]},{"a":52655,"t":"byte","b":[212,141,11,212,141,18,212,169]},{"a":52663,"t":"byte","b":[8,141,3,212,141,16,212,141]},{"a":52671,"t":"byte","b":[23,212,96]},{"a":52674,"l":"sid_init","c":"The 25 values sfx_reset writes to $D400-$D418: pulse widths $08, volume $0F with the filter settings.","t":"byte","b":[0,0,0,8,0,0,0,0],"x":[52621]},{"a":52682,"t":"byte","b":[0,0,8,0,0,0,0,0]},{"a":52690,"t":"byte","b":[0,8,0,0,0,7,255,240]},{"a":52698,"t":"byte","b":[15]},{"a":52699,"l":"sfx_start","c":"Starts sound effect A: while a tune plays it takes voice 1 (and stops the others' effects); otherwise a voice already playing the same effect, or a free one, or the one furthest through its effect. The effect's stream comes from the pointer table at $F000 (sfx_table, offsets from $F000).","t":"code","b":[72],"m":"pha","x":[33043,36922,38942,40595,42395,42843,43699,44174,44359,44544,46485,46512,46945,46990,47009,47067,47811,47817,48214,48257,48318]},{"a":52700,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":52702,"t":"code","b":[172,60,160],"m":"ldy","oa":41020,"o":"tune_on"},{"a":52705,"t":"code","b":[240,16],"m":"beq","oa":52723,"o":"b_CDF3"},{"a":52707,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":52709,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":52711,"t":"code","b":[141,201,204],"m":"sta","oa":52425,"o":"sfx_voice1"},{"a":52714,"t":"code","b":[141,202,204],"m":"sta","oa":52426,"o":"sfx_voice2"},{"a":52717,"t":"code","b":[141,203,204],"m":"sta","oa":52427,"o":"sfx_voice3"},{"a":52720,"t":"code","b":[76,30,206],"m":"jmp","oa":52766,"o":"j_CE1E"},{"a":52723,"l":"b_CDF3","t":"code","b":[221,204,204],"m":"cmp","oa":52428,"o":"sfx_playing,x","x":[52705,52729]},{"a":52726,"t":"code","b":[240,38],"m":"beq","oa":52766,"o":"j_CE1E"},{"a":52728,"t":"code","b":[202],"m":"dex"},{"a":52729,"t":"code","b":[16,248],"m":"bpl","oa":52723,"o":"b_CDF3"},{"a":52731,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":52733,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":52735,"l":"b_CDFF","t":"code","b":[221,201,204],"m":"cmp","oa":52425,"o":"sfx_voice1,x","x":[52741]},{"a":52738,"t":"code","b":[240,26],"m":"beq","oa":52766,"o":"j_CE1E"},{"a":52740,"t":"code","b":[202],"m":"dex"},{"a":52741,"t":"code","b":[16,248],"m":"bpl","oa":52735,"o":"b_CDFF"},{"a":52743,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52745,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":52747,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":52749,"l":"b_CE0D","t":"code","b":[221,201,204],"m":"cmp","oa":52425,"o":"sfx_voice1,x","x":[52761]},{"a":52752,"t":"code","b":[176,6],"m":"bcs","oa":52760,"o":"b_CE18"},{"a":52754,"t":"code","b":[142,209,204],"m":"stx","oa":52433,"o":"sfx_voice"},{"a":52757,"t":"code","b":[189,201,204],"m":"lda","oa":52425,"o":"sfx_voice1,x"},{"a":52760,"l":"b_CE18","t":"code","b":[202],"m":"dex","x":[52752]},{"a":52761,"t":"code","b":[16,242],"m":"bpl","oa":52749,"o":"b_CE0D"},{"a":52763,"t":"code","b":[174,209,204],"m":"ldx","oa":52433,"o":"sfx_voice"},{"a":52766,"l":"j_CE1E","t":"code","b":[142,209,204],"m":"stx","oa":52433,"o":"sfx_voice","x":[52720,52726,52738]},{"a":52769,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":52771,"t":"code","b":[157,201,204],"m":"sta","oa":52425,"o":"sfx_voice1,x"},{"a":52774,"t":"code","b":[104],"m":"pla"},{"a":52775,"t":"code","b":[157,204,204],"m":"sta","oa":52428,"o":"sfx_playing,x"},{"a":52778,"t":"code","b":[10],"m":"asl","o":"a"},{"a":52779,"t":"code","b":[168],"m":"tay"},{"a":52780,"t":"code","b":[138],"m":"txa"},{"a":52781,"t":"code","b":[10],"m":"asl","o":"a"},{"a":52782,"t":"code","b":[170],"m":"tax"},{"a":52783,"t":"code","b":[24],"m":"clc"},{"a":52784,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52786,"t":"code","b":[121,0,240],"m":"adc","oa":61440,"o":"sfx_table,y"},{"a":52789,"t":"code","b":[149,166],"m":"sta","oa":166,"o":"zpp_A6,x"},{"a":52791,"t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":52793,"t":"code","b":[121,1,240],"m":"adc","oa":61441,"o":"sfx_table_hi,y"},{"a":52796,"t":"code","b":[149,167],"m":"sta","oa":167,"o":"zpa_A7,x"},{"a":52798,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52800,"t":"code","b":[174,209,204],"m":"ldx","oa":52433,"o":"sfx_voice"},{"a":52803,"t":"code","b":[157,201,204],"m":"sta","oa":52425,"o":"sfx_voice1,x"},{"a":52806,"t":"code","b":[96],"m":"rts"},{"a":52807,"l":"sfx_note","c":"Plays one step on the voice at offset Y: the pitch byte, inverted and shifted, into the frequency registers; the gate restarted with attack/decay 0 and a waveform chosen by the first byte's low nibble (noise $81 when it is set, pulse $41 when it is zero); sustain/release from its high nibble; pulse width $08.","t":"code","b":[173,208,204],"m":"lda","oa":52432,"o":"sfx_step_b","x":[52473,52527,52581]},{"a":52810,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":52812,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":52813,"t":"code","b":[110,208,204],"m":"ror","oa":52432,"o":"sfx_step_b"},{"a":52816,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":52817,"t":"code","b":[110,208,204],"m":"ror","oa":52432,"o":"sfx_step_b"},{"a":52820,"t":"code","b":[153,1,212],"m":"sta","o":"sid_v1_freq_hi,y"},{"a":52823,"t":"code","b":[173,208,204],"m":"lda","oa":52432,"o":"sfx_step_b"},{"a":52826,"t":"code","b":[41,192],"m":"and","o":"#$C0"},{"a":52828,"t":"code","b":[153,0,212],"m":"sta","o":"sid_v1_freq_lo,y"},{"a":52831,"t":"code","b":[173,207,204],"m":"lda","oa":52431,"o":"sfx_step_a"},{"a":52834,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":52836,"t":"code","b":[208,3],"m":"bne","oa":52841,"o":"b_CE69"},{"a":52838,"t":"code","b":[162,65],"m":"ldx","o":"#$41"},{"a":52840,"t":"code","b":[44,162,129],"m":"bit","oa":33186,"o":"loop_scroll_check"},{"a":52843,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52845,"t":"code","b":[153,4,212],"m":"sta","o":"sid_v1_control,y"},{"a":52848,"t":"code","b":[153,5,212],"m":"sta","o":"sid_v1_attack_decay,y"},{"a":52851,"t":"code","b":[138],"m":"txa"},{"a":52852,"t":"code","b":[153,4,212],"m":"sta","o":"sid_v1_control,y"},{"a":52855,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":52857,"t":"code","b":[153,3,212],"m":"sta","o":"sid_v1_pulse_hi,y"},{"a":52860,"t":"code","b":[173,207,204],"m":"lda","oa":52431,"o":"sfx_step_a"},{"a":52863,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":52865,"t":"code","b":[153,6,212],"m":"sta","o":"sid_v1_sustain_release,y"},{"a":52868,"t":"code","b":[96],"m":"rts"},{"a":52869,"l":"unused_border","c":"23 bytes no traced code reaches: set or clear the border colour, and wait for the raster line to change.","t":"byte","b":[169,1,44,169,0,141,32,208]},{"a":52877,"t":"byte","b":[96,173,18,208,205,18,208,240]},{"a":52885,"t":"byte","b":[251,205,18,208,208,251,96]},{"a":52892,"l":"sound_wait","c":"Waits until every sound effect has ended and the tune player has stopped; then clears the music flag $8249.","t":"code","b":[32,170,206],"m":"jsr","oa":52906,"o":"sfx_wait","x":[39375]},{"a":52895,"l":"b_CE9F","t":"code","b":[173,60,160],"m":"lda","oa":41020,"o":"tune_on","x":[52898]},{"a":52898,"t":"code","b":[208,251],"m":"bne","oa":52895,"o":"b_CE9F"},{"a":52900,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":52902,"t":"code","b":[141,73,130],"m":"sta","oa":33353,"o":"tune_wanted"},{"a":52905,"t":"code","b":[96],"m":"rts"},{"a":52906,"l":"sfx_wait","c":"Waits until no voice has an effect playing.","t":"code","b":[173,201,204],"m":"lda","oa":52425,"o":"sfx_voice1","x":[44578,52892,52917]},{"a":52909,"t":"code","b":[45,202,204],"m":"and","oa":52426,"o":"sfx_voice2"},{"a":52912,"t":"code","b":[45,203,204],"m":"and","oa":52427,"o":"sfx_voice3"},{"a":52915,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":52917,"t":"code","b":[208,243],"m":"bne","oa":52906,"o":"sfx_wait"},{"a":52919,"t":"code","b":[96],"m":"rts"},{"a":52920,"l":"leftover_CEB8","c":"325 bytes no traced code reaches: a garbled older copy of the sound-effect code (with addresses in the $CDA5 range), then runs of noise and padding to $CFFC.","t":"byte","b":[162,2,172,173,161,176,16,34]},{"a":52928,"t":"byte","b":[0,169,255,141,165,205,141,166]},{"a":52936,"t":"byte","b":[205,141,167,205,76,186,206,221]},{"a":52944,"t":"byte","b":[168,205,240,38,234,16,248,180]},{"a":52952,"t":"byte","b":[255,162,2,221,165,141,240,26]},{"a":52960,"t":"byte","b":[202,16,248,169,0,160,2,162]},{"a":52968,"t":"byte","b":[2,221,165,205,176,6,142,173]},{"a":52976,"t":"byte","b":[205,189,165,205,202,16,242,174]},{"a":52984,"t":"byte","b":[173,205,142,173,205,169,255,172]},{"a":52992,"t":"byte","b":[214,0,104,149,180,72,10,168]},{"a":53000,"t":"byte","b":[138,10,170,24,171,0,121,0]},{"a":53008,"t":"byte","b":[240,0,166,169,240,121,1,240]},{"a":53016,"t":"byte","b":[151,167,169,0,174,173,205,157]},{"a":53024,"t":"byte","b":[165,205,96,173,172,205,73,255]},{"a":53032,"t":"byte","b":[74,110,172,205,74,110,172,205]},{"a":53040,"t":"byte","b":[153,1,212,173,172,205,41,192]},{"a":53048,"t":"byte","b":[153,129,212,173,171,207,45,82]},{"a":53056,"t":"byte","b":[208,3,166,65,44,162,129,173]},{"a":53064,"t":"byte","b":[0,153,4,212,153,53,212,138]},{"a":53072,"t":"byte","b":[153,0,212,169,8,153,3,212]},{"a":53080,"t":"byte","b":[173,171,237,0,240,155,6,212]},{"a":53088,"t":"byte","b":[96,137,1,44,169,0,141,32]},{"a":53096,"t":"byte","b":[208,96,173,18,208,205,18,208]},{"a":53104,"t":"byte","b":[240,251,64,18,208,208,251,96]},{"a":53112,"t":"byte","b":[32,130,207,141,173,161,208,64]},{"a":53120,"t":"byte","b":[233,0,141,69,194,32,173,165]},{"a":53128,"t":"byte","b":[205,45,166,205,45,167,205,201]},{"a":53136,"t":"byte","b":[255,208,243,96,245,59,93,82]},{"a":53144,"t":"byte","b":[251,217,101,75,170,171,153,42]},{"a":53152,"t":"byte","b":[206,91,245,213,47,189,182,173]},{"a":53160,"t":"byte","b":[229,109,78,218,149,55,54,119]},{"a":53168,"t":"byte","b":[91,245,213,47,189,150,107,212]},{"a":53176,"t":"byte","b":[245,75,239,100,171,57,111,87]},{"a":53184,"t":"byte","b":[84,190,246,218,183,149,181,59]},{"a":53192,"t":"byte","b":[93,86,212,231,102,181,79,85]},{"a":53200,"t":"byte","b":[181,59,222,146,186,171,43,150]},{"a":53208,"t":"byte","b":[87,91,174,170,189,178,180,167]},{"a":53216,"t":"byte","b":[42,74,179,150,244,167,170,174]},{"a":53224,"t":"byte","b":[172,175,109,74,173,84,175,85]},{"a":53232,"t":"byte","b":[74,255,0,0,0,0,255,255]},{"a":53240,"t":"byte","b":[255,255,0,0,0]},{"a":53245,"l":"heroes_loaded","c":"Set once the heroes' graphics have been copied (heroes_load_shapes); the start-up skips the file loading when it is set.","t":"byte","b":[1],"x":[32800,39946,39952]},{"a":53246,"l":"selected_heroes","c":"The heroes chosen on the selection screen, one byte per player (the selection program writes them here).","t":"byte","b":[0,1],"x":[39982]},{"a":53248,"t":"gap","n":4096},{"a":57344,"l":"music_play","c":"The music player's per-frame entry (file PLAYER-$E000): when music_on is set, runs one frame of the tune (music_frame) and copies the 25 shadow registers (sid_shadow) to the SID at $D400-$D418. level_intro calls it once a frame while the level jingle plays.","t":"code","b":[76,10,224],"m":"jmp","oa":57354,"o":"j_E00A","x":[39937]},{"a":57347,"l":"music_init","c":"The music player's start entry: A/X give the tune's address (the level jingle is at $EA00), kept in $02/$03; goes to music_setup.","t":"code","b":[133,2],"m":"sta","oa":2,"o":"zpa_02","x":[39923]},{"a":57349,"t":"code","b":[134,3],"m":"stx","oa":3,"o":"zpa_03"},{"a":57351,"t":"code","b":[76,228,225],"m":"jmp","oa":57828,"o":"music_setup"},{"a":57354,"l":"j_E00A","t":"code","b":[173,158,230],"m":"lda","oa":59038,"o":"music_on","x":[57344]},{"a":57357,"t":"code","b":[240,14],"m":"beq","oa":57373,"o":"r_E01D"},{"a":57359,"t":"code","b":[32,30,224],"m":"jsr","oa":57374,"o":"music_frame"},{"a":57362,"t":"code","b":[162,24],"m":"ldx","o":"#$18"},{"a":57364,"l":"b_E014","t":"code","b":[189,133,230],"m":"lda","oa":59013,"o":"sid_shadow,x","x":[57371]},{"a":57367,"t":"code","b":[157,0,212],"m":"sta","o":"sid_v1_freq_lo,x"},{"a":57370,"t":"code","b":[202],"m":"dex"},{"a":57371,"t":"code","b":[16,247],"m":"bpl","oa":57364,"o":"b_E014"},{"a":57373,"l":"r_E01D","t":"code","b":[96],"m":"rts","x":[57357]},{"a":57374,"l":"music_frame","c":"One frame of the tune: advances the tempo counter (music_tempo_frac + music_tempo, carrying into music_tempo_count), then for each of the three voices runs its commands, counts its note down and applies its effects (vibrato, slides, pulse sweep, arpeggio), keeping each voice's stream pointer in music_stream_lo/hi.","t":"code","b":[173,154,230],"m":"lda","oa":59034,"o":"music_tempo_count","x":[57359]},{"a":57377,"t":"code","b":[24],"m":"clc"},{"a":57378,"t":"code","b":[109,155,229],"m":"adc","oa":58779,"o":"music_tempo_frac"},{"a":57381,"t":"code","b":[141,154,230],"m":"sta","oa":59034,"o":"music_tempo_count"},{"a":57384,"t":"code","b":[201,7],"m":"cmp","o":"#$07"},{"a":57386,"t":"code","b":[144,6],"m":"bcc","oa":57394,"o":"b_E032"},{"a":57388,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":57390,"t":"code","b":[141,154,230],"m":"sta","oa":59034,"o":"music_tempo_count"},{"a":57393,"t":"code","b":[56],"m":"sec"},{"a":57394,"l":"b_E032","t":"code","b":[173,155,230],"m":"lda","oa":59035,"o":"music_tempo_whole","x":[57386]},{"a":57397,"t":"code","b":[109,156,229],"m":"adc","oa":58780,"o":"music_tempo"},{"a":57400,"t":"code","b":[141,155,230],"m":"sta","oa":59035,"o":"music_tempo_whole"},{"a":57403,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":57405,"l":"j_E03D","t":"code","b":[188,32,230],"m":"ldy","oa":58912,"o":"music_voice_offsets,x","x":[57570]},{"a":57408,"t":"code","b":[132,4],"m":"sty","oa":4,"o":"zpa_04"},{"a":57410,"t":"code","b":[134,5],"m":"stx","oa":5,"o":"zpa_05"},{"a":57412,"t":"code","b":[189,194,229],"m":"lda","oa":58818,"o":"music_tick,x"},{"a":57415,"t":"code","b":[24],"m":"clc"},{"a":57416,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":57418,"t":"code","b":[217,138,229],"m":"cmp","oa":58762,"o":"music_voice_arp_a,y"},{"a":57421,"t":"code","b":[144,20],"m":"bcc","oa":57443,"o":"b_E063"},{"a":57423,"t":"code","b":[254,197,229],"m":"inc","oa":58821,"o":"music_ticks,x"},{"a":57426,"t":"code","b":[189,179,229],"m":"lda","oa":58803,"o":"music_arp_phase,x"},{"a":57429,"t":"code","b":[24],"m":"clc"},{"a":57430,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":57432,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":57434,"t":"code","b":[144,2],"m":"bcc","oa":57438,"o":"b_E05E"},{"a":57436,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57438,"l":"b_E05E","t":"code","b":[157,179,229],"m":"sta","oa":58803,"o":"music_arp_phase,x","x":[57434]},{"a":57441,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57443,"l":"b_E063","t":"code","b":[157,194,229],"m":"sta","oa":58818,"o":"music_tick,x","x":[57421]},{"a":57446,"t":"code","b":[254,170,229],"m":"inc","oa":58794,"o":"music_note_frames,x"},{"a":57449,"t":"code","b":[189,26,230],"m":"lda","oa":58906,"o":"music_stream_lo,x"},{"a":57452,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"zpa_02"},{"a":57454,"t":"code","b":[189,23,230],"m":"lda","oa":58903,"o":"music_stream_hi,x"},{"a":57457,"t":"code","b":[133,3],"m":"sta","oa":3,"o":"zpa_03"},{"a":57459,"l":"j_E073","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[57498]},{"a":57461,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(zpa_02),y"},{"a":57463,"t":"code","b":[56],"m":"sec"},{"a":57464,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":57466,"t":"code","b":[201,33],"m":"cmp","o":"#$21"},{"a":57468,"t":"code","b":[176,31],"m":"bcs","oa":57501,"o":"b_E09D"},{"a":57470,"t":"code","b":[10],"m":"asl","o":"a"},{"a":57471,"t":"code","b":[168],"m":"tay"},{"a":57472,"t":"code","b":[185,67,230],"m":"lda","oa":58947,"o":"music_commands,y"},{"a":57475,"t":"code","b":[141,149,224],"m":"sta","oa":57493,"o":"music_cmd_lo"},{"a":57478,"t":"code","b":[185,68,230],"m":"lda","oa":58948,"o":"music_commands_hi,y"},{"a":57481,"t":"code","b":[141,150,224],"m":"sta","oa":57494,"o":"music_cmd_hi"},{"a":57484,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":57486,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(zpa_02),y"},{"a":57488,"t":"code","b":[164,4],"m":"ldy","oa":4,"o":"zpa_04"},{"a":57490,"t":"code","b":[166,5],"m":"ldx","oa":5,"o":"zpa_05"},{"a":57492,"t":"code","b":[32,59,226],"m":"jsr","oa":57915,"o":"music_stop"},{"a":57493,"t":"note","l":"music_cmd_lo","c":"The low byte of the JSR at $E094, rewritten with the handler of the command being run (music_commands).","note":"inside the item at $E094","x":[57475]},{"a":57494,"t":"note","l":"music_cmd_hi","c":"The high byte of that JSR's target.","note":"inside the item at $E094","x":[57481]},{"a":57495,"t":"code","b":[32,119,229],"m":"jsr","oa":58743,"o":"music_next"},{"a":57498,"t":"code","b":[76,115,224],"m":"jmp","oa":57459,"o":"j_E073"},{"a":57501,"l":"b_E09D","t":"code","b":[166,4],"m":"ldx","oa":4,"o":"zpa_04","x":[57468]},{"a":57503,"t":"code","b":[164,5],"m":"ldy","oa":5,"o":"zpa_05"},{"a":57505,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":57508,"t":"code","b":[240,40],"m":"beq","oa":57550,"o":"b_E0CE"},{"a":57510,"t":"code","b":[185,158,229],"m":"lda","oa":58782,"o":"music_slide_mode,y"},{"a":57513,"t":"code","b":[240,3],"m":"beq","oa":57518,"o":"b_E0AE"},{"a":57515,"t":"code","b":[32,97,227],"m":"jsr","oa":58209,"o":"music_slide_start"},{"a":57518,"l":"b_E0AE","t":"code","b":[185,173,229],"m":"lda","oa":58797,"o":"music_sweep_max,y","x":[57513]},{"a":57521,"t":"code","b":[240,3],"m":"beq","oa":57526,"o":"b_E0B6"},{"a":57523,"t":"code","b":[32,36,228],"m":"jsr","oa":58404,"o":"music_pulse_sweep"},{"a":57526,"l":"b_E0B6","t":"code","b":[189,139,229],"m":"lda","oa":58763,"o":"music_voice_wave,x","x":[57521]},{"a":57529,"t":"code","b":[240,3],"m":"beq","oa":57534,"o":"b_E0BE"},{"a":57531,"t":"code","b":[32,187,227],"m":"jsr","oa":58299,"o":"music_waveform"},{"a":57534,"l":"b_E0BE","t":"code","b":[189,140,229],"m":"lda","oa":58764,"o":"music_voice_effect,x","x":[57529]},{"a":57537,"t":"code","b":[240,3],"m":"beq","oa":57542,"o":"b_E0C6"},{"a":57539,"t":"code","b":[32,241,227],"m":"jsr","oa":58353,"o":"music_arpeggio"},{"a":57542,"l":"b_E0C6","t":"code","b":[185,251,229],"m":"lda","oa":58875,"o":"music_vib_step,y","x":[57537]},{"a":57545,"t":"code","b":[240,3],"m":"beq","oa":57550,"o":"b_E0CE"},{"a":57547,"t":"code","b":[32,112,227],"m":"jsr","oa":58224,"o":"music_vibrato"},{"a":57550,"l":"b_E0CE","t":"code","b":[32,230,224],"m":"jsr","oa":57574,"o":"music_note_step","x":[57508,57545]},{"a":57553,"t":"code","b":[166,5],"m":"ldx","oa":5,"o":"zpa_05"},{"a":57555,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"zpa_02"},{"a":57557,"t":"code","b":[157,26,230],"m":"sta","oa":58906,"o":"music_stream_lo,x"},{"a":57560,"t":"code","b":[165,3],"m":"lda","oa":3,"o":"zpa_03"},{"a":57562,"t":"code","b":[157,23,230],"m":"sta","oa":58903,"o":"music_stream_hi,x"},{"a":57565,"t":"code","b":[232],"m":"inx"},{"a":57566,"t":"code","b":[224,3],"m":"cpx","o":"#$03"},{"a":57568,"t":"code","b":[176,3],"m":"bcs","oa":57573,"o":"r_E0E5"},{"a":57570,"t":"code","b":[76,61,224],"m":"jmp","oa":57405,"o":"j_E03D"},{"a":57573,"l":"r_E0E5","t":"code","b":[96],"m":"rts","x":[57568]},{"a":57574,"l":"music_note_step","c":"Counts voice X's note down (music_note_count with music_note_long); near its end ($E640,x) it clears the gate bit in the shadow control register; when the note is over it resets the voice's effects and reads the next note: a byte of $80 or more is a pitch (plus the transposition $E5E6,x, turned into a frequency by music_freq, with the voice's other two arpeggio notes worked out the same way), 0 is a rest, and the byte after it is the length ($FF chains a tied note).","t":"code","b":[166,5],"m":"ldx","oa":5,"o":"zpa_05","x":[57550]},{"a":57576,"t":"code","b":[164,4],"m":"ldy","oa":4,"o":"zpa_04"},{"a":57578,"t":"code","b":[189,20,230],"m":"lda","oa":58900,"o":"music_note_count,x"},{"a":57581,"t":"code","b":[56],"m":"sec"},{"a":57582,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":57584,"t":"code","b":[157,20,230],"m":"sta","oa":58900,"o":"music_note_count,x"},{"a":57587,"t":"code","b":[189,206,229],"m":"lda","oa":58830,"o":"music_note_long,x"},{"a":57590,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":57592,"t":"code","b":[157,206,229],"m":"sta","oa":58830,"o":"music_note_long,x"},{"a":57595,"t":"code","b":[208,18],"m":"bne","oa":57615,"o":"b_E10F"},{"a":57597,"t":"code","b":[189,20,230],"m":"lda","oa":58900,"o":"music_note_count,x"},{"a":57600,"t":"code","b":[240,16],"m":"beq","oa":57618,"o":"b_E112"},{"a":57602,"t":"code","b":[221,64,230],"m":"cmp","oa":58944,"o":"music_gate_time,x"},{"a":57605,"t":"code","b":[176,8],"m":"bcs","oa":57615,"o":"b_E10F"},{"a":57607,"t":"code","b":[185,137,230],"m":"lda","oa":59017,"o":"sid_shadow_ctrl,y"},{"a":57610,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":57612,"t":"code","b":[153,137,230],"m":"sta","oa":59017,"o":"sid_shadow_ctrl,y"},{"a":57615,"l":"b_E10F","t":"code","b":[76,227,225],"m":"jmp","oa":57827,"o":"r_E1E3","x":[57595,57605]},{"a":57618,"l":"b_E112","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[57600]},{"a":57620,"t":"code","b":[153,135,230],"m":"sta","oa":59015,"o":"sid_shadow_pw_lo,y"},{"a":57623,"t":"code","b":[157,206,229],"m":"sta","oa":58830,"o":"music_note_long,x"},{"a":57626,"t":"code","b":[157,170,229],"m":"sta","oa":58794,"o":"music_note_frames,x"},{"a":57629,"t":"code","b":[157,209,229],"m":"sta","oa":58833,"o":"music_sweep_count,x"},{"a":57632,"t":"code","b":[157,215,229],"m":"sta","oa":58839,"o":"music_vib_dir,x"},{"a":57635,"t":"code","b":[157,212,229],"m":"sta","oa":58836,"o":"music_sweep_phase,x"},{"a":57638,"t":"code","b":[157,194,229],"m":"sta","oa":58818,"o":"music_tick,x"},{"a":57641,"t":"code","b":[157,197,229],"m":"sta","oa":58821,"o":"music_ticks,x"},{"a":57644,"t":"code","b":[157,179,229],"m":"sta","oa":58803,"o":"music_arp_phase,x"},{"a":57647,"t":"code","b":[157,176,229],"m":"sta","oa":58800,"o":"music_sweep_step,x"},{"a":57650,"t":"code","b":[236,133,229],"m":"cpx","oa":58757,"o":"music_tempo_voice"},{"a":57653,"t":"code","b":[208,9],"m":"bne","oa":57664,"o":"b_E140"},{"a":57655,"t":"code","b":[141,154,230],"m":"sta","oa":59034,"o":"music_tempo_count"},{"a":57658,"t":"code","b":[173,157,229],"m":"lda","oa":58781,"o":"music_tempo_reset"},{"a":57661,"t":"code","b":[141,155,230],"m":"sta","oa":59035,"o":"music_tempo_whole"},{"a":57664,"l":"b_E140","t":"code","b":[189,248,229],"m":"lda","oa":58872,"o":"music_ad,x","x":[57653]},{"a":57667,"t":"code","b":[153,138,230],"m":"sta","oa":59018,"o":"sid_shadow_ad,y"},{"a":57670,"t":"code","b":[189,239,229],"m":"lda","oa":58863,"o":"music_sr,x"},{"a":57673,"t":"code","b":[153,139,230],"m":"sta","oa":59019,"o":"sid_shadow_sr,y"},{"a":57676,"t":"code","b":[189,245,229],"m":"lda","oa":58869,"o":"music_pulse,x"},{"a":57679,"t":"code","b":[153,136,230],"m":"sta","oa":59016,"o":"sid_shadow_pw_hi,y"},{"a":57682,"l":"j_E152","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[57815]},{"a":57684,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(zpa_02),y"},{"a":57686,"t":"code","b":[208,11],"m":"bne","oa":57699,"o":"b_E163"},{"a":57688,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57690,"t":"code","b":[141,18,230],"m":"sta","oa":58898,"o":"music_freq_hi"},{"a":57693,"t":"code","b":[141,19,230],"m":"sta","oa":58899,"o":"music_freq_lo"},{"a":57696,"t":"code","b":[76,164,225],"m":"jmp","oa":57764,"o":"j_E1A4"},{"a":57699,"l":"b_E163","t":"code","b":[201,128],"m":"cmp","o":"#$80","x":[57686]},{"a":57701,"t":"code","b":[144,61],"m":"bcc","oa":57764,"o":"j_E1A4"},{"a":57703,"t":"code","b":[24],"m":"clc"},{"a":57704,"t":"code","b":[125,230,229],"m":"adc","oa":58854,"o":"music_transpose,x"},{"a":57707,"t":"code","b":[141,16,230],"m":"sta","oa":58896,"o":"music_work"},{"a":57710,"t":"code","b":[189,185,229],"m":"lda","oa":58809,"o":"music_arp_2,x"},{"a":57713,"t":"code","b":[240,19],"m":"beq","oa":57734,"o":"b_E186"},{"a":57715,"t":"code","b":[24],"m":"clc"},{"a":57716,"t":"code","b":[109,16,230],"m":"adc","oa":58896,"o":"music_work"},{"a":57719,"t":"code","b":[32,53,229],"m":"jsr","oa":58677,"o":"music_freq"},{"a":57722,"t":"code","b":[173,18,230],"m":"lda","oa":58898,"o":"music_freq_hi"},{"a":57725,"t":"code","b":[157,191,229],"m":"sta","oa":58815,"o":"music_arp2_hi,x"},{"a":57728,"t":"code","b":[173,19,230],"m":"lda","oa":58899,"o":"music_freq_lo"},{"a":57731,"t":"code","b":[157,188,229],"m":"sta","oa":58812,"o":"music_arp2_lo,x"},{"a":57734,"l":"b_E186","t":"code","b":[189,182,229],"m":"lda","oa":58806,"o":"music_arp_1,x","x":[57713]},{"a":57737,"t":"code","b":[240,19],"m":"beq","oa":57758,"o":"b_E19E"},{"a":57739,"t":"code","b":[24],"m":"clc"},{"a":57740,"t":"code","b":[109,16,230],"m":"adc","oa":58896,"o":"music_work"},{"a":57743,"t":"code","b":[32,53,229],"m":"jsr","oa":58677,"o":"music_freq"},{"a":57746,"t":"code","b":[173,18,230],"m":"lda","oa":58898,"o":"music_freq_hi"},{"a":57749,"t":"code","b":[157,161,229],"m":"sta","oa":58785,"o":"music_target_hi,x"},{"a":57752,"t":"code","b":[173,19,230],"m":"lda","oa":58899,"o":"music_freq_lo"},{"a":57755,"t":"code","b":[157,164,229],"m":"sta","oa":58788,"o":"music_target_lo,x"},{"a":57758,"l":"b_E19E","t":"code","b":[173,16,230],"m":"lda","oa":58896,"o":"music_work","x":[57737]},{"a":57761,"t":"code","b":[32,53,229],"m":"jsr","oa":58677,"o":"music_freq"},{"a":57764,"l":"j_E1A4","t":"code","b":[164,4],"m":"ldy","oa":4,"o":"zpa_04","x":[57696,57701]},{"a":57766,"t":"code","b":[173,18,230],"m":"lda","oa":58898,"o":"music_freq_hi"},{"a":57769,"t":"code","b":[153,134,230],"m":"sta","oa":59014,"o":"sid_shadow_freq_hi,y"},{"a":57772,"t":"code","b":[153,134,229],"m":"sta","oa":58758,"o":"music_voice_freq_hi,y"},{"a":57775,"t":"code","b":[173,19,230],"m":"lda","oa":58899,"o":"music_freq_lo"},{"a":57778,"t":"code","b":[153,133,230],"m":"sta","oa":59013,"o":"sid_shadow,y"},{"a":57781,"t":"code","b":[153,135,229],"m":"sta","oa":58759,"o":"music_voice_freq_lo,y"},{"a":57784,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":57786,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(zpa_02),y"},{"a":57788,"t":"code","b":[164,4],"m":"ldy","oa":4,"o":"zpa_04"},{"a":57790,"t":"code","b":[157,20,230],"m":"sta","oa":58900,"o":"music_note_count,x"},{"a":57793,"t":"code","b":[32,119,229],"m":"jsr","oa":58743,"o":"music_next"},{"a":57796,"t":"code","b":[189,20,230],"m":"lda","oa":58900,"o":"music_note_count,x"},{"a":57799,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":57801,"t":"code","b":[208,15],"m":"bne","oa":57818,"o":"b_E1DA"},{"a":57803,"t":"code","b":[185,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,y"},{"a":57806,"t":"code","b":[157,164,229],"m":"sta","oa":58788,"o":"music_target_lo,x"},{"a":57809,"t":"code","b":[185,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,y"},{"a":57812,"t":"code","b":[157,161,229],"m":"sta","oa":58785,"o":"music_target_hi,x"},{"a":57815,"t":"code","b":[76,82,225],"m":"jmp","oa":57682,"o":"j_E152"},{"a":57818,"l":"b_E1DA","t":"code","b":[189,242,229],"m":"lda","oa":58866,"o":"music_ctrl,x","x":[57801]},{"a":57821,"t":"code","b":[153,137,230],"m":"sta","oa":59017,"o":"sid_shadow_ctrl,y"},{"a":57824,"t":"code","b":[153,136,229],"m":"sta","oa":58760,"o":"music_voice_ctrl,y"},{"a":57827,"l":"r_E1E3","t":"code","b":[96],"m":"rts","x":[57615]},{"a":57828,"l":"music_setup","c":"Starts a tune: clears the player's 126 bytes of state from $E585, sets the gate-off times to 2, each voice's note count and $E61D to 1, takes the three voices' stream addresses from the tune's header (offsets added to the tune's address), silences the shadow registers (music_silence) and turns music_on on.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[57351]},{"a":57830,"t":"code","b":[141,158,230],"m":"sta","oa":59038,"o":"music_on"},{"a":57833,"t":"code","b":[162,126],"m":"ldx","o":"#$7E"},{"a":57835,"l":"b_E1EB","t":"code","b":[157,132,229],"m":"sta","oa":58756,"o":"music_state,x","x":[57839]},{"a":57838,"t":"code","b":[202],"m":"dex"},{"a":57839,"t":"code","b":[208,250],"m":"bne","oa":57835,"o":"b_E1EB"},{"a":57841,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":57843,"t":"code","b":[142,65,230],"m":"stx","oa":58945,"o":"music_gate_time_2"},{"a":57846,"t":"code","b":[142,64,230],"m":"stx","oa":58944,"o":"music_gate_time"},{"a":57849,"t":"code","b":[142,66,230],"m":"stx","oa":58946,"o":"music_gate_time_3"},{"a":57852,"l":"b_E1FC","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[57861]},{"a":57854,"t":"code","b":[157,20,230],"m":"sta","oa":58900,"o":"music_note_count,x"},{"a":57857,"t":"code","b":[157,29,230],"m":"sta","oa":58909,"o":"music_sweep_len,x"},{"a":57860,"t":"code","b":[202],"m":"dex"},{"a":57861,"t":"code","b":[16,245],"m":"bpl","oa":57852,"o":"b_E1FC"},{"a":57863,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"zpa_02"},{"a":57865,"t":"code","b":[24],"m":"clc"},{"a":57866,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":57868,"t":"code","b":[141,26,230],"m":"sta","oa":58906,"o":"music_stream_lo"},{"a":57871,"t":"code","b":[165,3],"m":"lda","oa":3,"o":"zpa_03"},{"a":57873,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":57875,"t":"code","b":[141,23,230],"m":"sta","oa":58903,"o":"music_stream_hi"},{"a":57878,"t":"code","b":[162,126],"m":"ldx","o":"#$7E"},{"a":57880,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":57882,"l":"b_E21A","t":"code","b":[177,2],"m":"lda","oa":2,"o":"(zpa_02),y","x":[57904]},{"a":57884,"t":"code","b":[24],"m":"clc"},{"a":57885,"t":"code","b":[109,26,230],"m":"adc","oa":58906,"o":"music_stream_lo"},{"a":57888,"t":"code","b":[157,157,229],"m":"sta","oa":58781,"o":"music_tempo_reset,x"},{"a":57891,"t":"code","b":[8],"m":"php"},{"a":57892,"t":"code","b":[200],"m":"iny"},{"a":57893,"t":"code","b":[40],"m":"plp"},{"a":57894,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(zpa_02),y"},{"a":57896,"t":"code","b":[109,23,230],"m":"adc","oa":58903,"o":"music_stream_hi"},{"a":57899,"t":"code","b":[157,154,229],"m":"sta","oa":58778,"o":"music_stream_base_hi,x"},{"a":57902,"t":"code","b":[200],"m":"iny"},{"a":57903,"t":"code","b":[232],"m":"inx"},{"a":57904,"t":"code","b":[16,232],"m":"bpl","oa":57882,"o":"b_E21A"},{"a":57906,"t":"code","b":[32,64,226],"m":"jsr","oa":57920,"o":"music_silence"},{"a":57909,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":57911,"t":"code","b":[141,158,230],"m":"sta","oa":59038,"o":"music_on"},{"a":57914,"t":"code","b":[96],"m":"rts"},{"a":57915,"l":"music_stop","c":"Command 29: stops the tune (music_on off) and silences the voices.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[57492,59005]},{"a":57917,"t":"code","b":[141,158,230],"m":"sta","oa":59038,"o":"music_on"},{"a":57920,"l":"music_silence","c":"Writes $09 then $00 into each of the 24 shadow registers from $E685: the gates opened and closed with the test bit, silencing the voices.","t":"code","b":[162,23],"m":"ldx","o":"#$17","x":[57906]},{"a":57922,"l":"b_E242","t":"code","b":[169,9],"m":"lda","o":"#$09","x":[57933]},{"a":57924,"t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x"},{"a":57927,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57929,"t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x"},{"a":57932,"t":"code","b":[202],"m":"dex"},{"a":57933,"t":"code","b":[16,243],"m":"bpl","oa":57922,"o":"b_E242"},{"a":57935,"t":"code","b":[96],"m":"rts"},{"a":57936,"l":"music_cmd_volume","c":"Command 0: sets the volume and filter mode byte ($E69D, $D418's shadow).","t":"code","b":[141,157,230],"m":"sta","oa":59037,"o":"sid_shadow_vol","x":[58947]},{"a":57939,"t":"code","b":[96],"m":"rts"},{"a":57940,"l":"music_cmd_ctrl","c":"Command 2: sets voice X's waveform and gate byte ($E5F2,x).","t":"code","b":[157,242,229],"m":"sta","oa":58866,"o":"music_ctrl,x","x":[58951]},{"a":57943,"t":"code","b":[96],"m":"rts"},{"a":57944,"l":"music_cmd_ad","c":"Command 1: sets voice X's attack/decay ($E5F8,x).","t":"code","b":[157,248,229],"m":"sta","oa":58872,"o":"music_ad,x","x":[58949]},{"a":57947,"t":"code","b":[96],"m":"rts"},{"a":57948,"l":"music_cmd_sr","c":"Command 9: sets voice X's sustain/release ($E5EF,x).","t":"code","b":[157,239,229],"m":"sta","oa":58863,"o":"music_sr,x","x":[58965]},{"a":57951,"t":"code","b":[96],"m":"rts"},{"a":57952,"l":"music_cmd_repeat_a","c":"Command 15: repeats the stream from the first loop mark ($E604/$E607) the given number of times (counts in $E5E0/$E5FE).","t":"code","b":[141,16,230],"m":"sta","oa":58896,"o":"music_work","x":[58977]},{"a":57955,"t":"code","b":[189,224,229],"m":"lda","oa":58848,"o":"music_repeat_a_on,x"},{"a":57958,"t":"code","b":[208,9],"m":"bne","oa":57969,"o":"b_E271"},{"a":57960,"t":"code","b":[254,224,229],"m":"inc","oa":58848,"o":"music_repeat_a_on,x"},{"a":57963,"t":"code","b":[173,16,230],"m":"lda","oa":58896,"o":"music_work"},{"a":57966,"t":"code","b":[157,254,229],"m":"sta","oa":58878,"o":"music_repeat_a_left,x"},{"a":57969,"l":"b_E271","t":"code","b":[222,254,229],"m":"dec","oa":58878,"o":"music_repeat_a_left,x","x":[57958]},{"a":57972,"t":"code","b":[189,254,229],"m":"lda","oa":58878,"o":"music_repeat_a_left,x"},{"a":57975,"t":"code","b":[240,11],"m":"beq","oa":57988,"o":"b_E284"},{"a":57977,"t":"code","b":[189,4,230],"m":"lda","oa":58884,"o":"music_mark_a_lo,x"},{"a":57980,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"zpa_02"},{"a":57982,"t":"code","b":[189,7,230],"m":"lda","oa":58887,"o":"music_mark_a_hi,x"},{"a":57985,"t":"code","b":[133,3],"m":"sta","oa":3,"o":"zpa_03"},{"a":57987,"t":"code","b":[96],"m":"rts"},{"a":57988,"l":"b_E284","t":"code","b":[222,224,229],"m":"dec","oa":58848,"o":"music_repeat_a_on,x","x":[57975]},{"a":57991,"t":"code","b":[96],"m":"rts"},{"a":57992,"l":"music_cmd_mark_a","c":"Command 16: sets the first loop mark at the current stream position.","t":"code","b":[165,2],"m":"lda","oa":2,"o":"zpa_02","x":[58979]},{"a":57994,"t":"code","b":[157,4,230],"m":"sta","oa":58884,"o":"music_mark_a_lo,x"},{"a":57997,"t":"code","b":[165,3],"m":"lda","oa":3,"o":"zpa_03"},{"a":57999,"t":"code","b":[157,7,230],"m":"sta","oa":58887,"o":"music_mark_a_hi,x"},{"a":58002,"t":"code","b":[96],"m":"rts"},{"a":58003,"l":"music_cmd_repeat_b","c":"Command 17: repeats from the second loop mark ($E60A/$E60D), counts in $E5E3/$E601.","t":"code","b":[141,16,230],"m":"sta","oa":58896,"o":"music_work","x":[58981]},{"a":58006,"t":"code","b":[189,227,229],"m":"lda","oa":58851,"o":"music_repeat_b_on,x"},{"a":58009,"t":"code","b":[208,9],"m":"bne","oa":58020,"o":"b_E2A4"},{"a":58011,"t":"code","b":[254,227,229],"m":"inc","oa":58851,"o":"music_repeat_b_on,x"},{"a":58014,"t":"code","b":[173,16,230],"m":"lda","oa":58896,"o":"music_work"},{"a":58017,"t":"code","b":[157,1,230],"m":"sta","oa":58881,"o":"music_repeat_b_left,x"},{"a":58020,"l":"b_E2A4","t":"code","b":[222,1,230],"m":"dec","oa":58881,"o":"music_repeat_b_left,x","x":[58009]},{"a":58023,"t":"code","b":[189,1,230],"m":"lda","oa":58881,"o":"music_repeat_b_left,x"},{"a":58026,"t":"code","b":[240,11],"m":"beq","oa":58039,"o":"b_E2B7"},{"a":58028,"t":"code","b":[189,10,230],"m":"lda","oa":58890,"o":"music_mark_b_lo,x"},{"a":58031,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"zpa_02"},{"a":58033,"t":"code","b":[189,13,230],"m":"lda","oa":58893,"o":"music_mark_b_hi,x"},{"a":58036,"t":"code","b":[133,3],"m":"sta","oa":3,"o":"zpa_03"},{"a":58038,"t":"code","b":[96],"m":"rts"},{"a":58039,"l":"b_E2B7","t":"code","b":[222,227,229],"m":"dec","oa":58851,"o":"music_repeat_b_on,x","x":[58026]},{"a":58042,"t":"code","b":[96],"m":"rts"},{"a":58043,"l":"music_cmd_mark_b","c":"Command 18: sets the second loop mark.","t":"code","b":[165,2],"m":"lda","oa":2,"o":"zpa_02","x":[58983]},{"a":58045,"t":"code","b":[157,10,230],"m":"sta","oa":58890,"o":"music_mark_b_lo,x"},{"a":58048,"t":"code","b":[165,3],"m":"lda","oa":3,"o":"zpa_03"},{"a":58050,"t":"code","b":[157,13,230],"m":"sta","oa":58893,"o":"music_mark_b_hi,x"},{"a":58053,"t":"code","b":[96],"m":"rts"},{"a":58054,"l":"music_cmd_transpose","c":"Command 19: sets voice X's transposition ($E5E6,x), added to every note's number.","t":"code","b":[157,230,229],"m":"sta","oa":58854,"o":"music_transpose,x","x":[58985]},{"a":58057,"t":"code","b":[96],"m":"rts"},{"a":58058,"l":"music_cmd_vib_speed","c":"Command 13: sets voice X's vibrato step ($E5FB,x).","t":"code","b":[157,251,229],"m":"sta","oa":58875,"o":"music_vib_step,x","x":[58973]},{"a":58061,"t":"code","b":[96],"m":"rts"},{"a":58062,"l":"music_cmd_slide_hi","c":"Command 11: sets the high byte of voice X's slide step ($E5EC,x).","t":"code","b":[157,236,229],"m":"sta","oa":58860,"o":"music_slide_hi,x","x":[58969]},{"a":58065,"t":"code","b":[96],"m":"rts"},{"a":58066,"l":"music_cmd_slide_lo","c":"Command 12: sets the low byte of voice X's slide step ($E5E9,x).","t":"code","b":[157,233,229],"m":"sta","oa":58857,"o":"music_slide_lo,x","x":[58971]},{"a":58069,"t":"code","b":[96],"m":"rts"},{"a":58070,"l":"music_cmd_pulse","c":"Command 3: sets voice X's pulse width high byte ($E5F5,x).","t":"code","b":[157,245,229],"m":"sta","oa":58869,"o":"music_pulse,x","x":[58953]},{"a":58073,"t":"code","b":[96],"m":"rts"},{"a":58074,"l":"music_cmd_gate_time","c":"Command 4: a value of 100 or more sets how many frames before a note's end its gate closes (value - 100, $E640,x); a smaller one sets the voice's arpeggio limit ($E589,y).","t":"code","b":[201,100],"m":"cmp","o":"#$64","x":[58955]},{"a":58076,"t":"code","b":[144,7],"m":"bcc","oa":58085,"o":"b_E2E5"},{"a":58078,"t":"code","b":[56],"m":"sec"},{"a":58079,"t":"code","b":[233,100],"m":"sbc","o":"#$64"},{"a":58081,"t":"code","b":[157,64,230],"m":"sta","oa":58944,"o":"music_gate_time,x"},{"a":58084,"t":"code","b":[96],"m":"rts"},{"a":58085,"l":"b_E2E5","t":"code","b":[153,137,229],"m":"sta","oa":58761,"o":"music_voice_arp_limit,y","x":[58076]},{"a":58088,"t":"code","b":[96],"m":"rts"},{"a":58089,"l":"music_cmd_arp_a","c":"Command 5: sets a per-voice arpeggio byte ($E58A,y).","t":"code","b":[153,138,229],"m":"sta","oa":58762,"o":"music_voice_arp_a,y","x":[58957]},{"a":58092,"t":"code","b":[96],"m":"rts"},{"a":58093,"l":"music_cmd_wave","c":"Command 6: a value of 99 or more names the voice whose new notes reset the tempo accumulator (value - 100, $E585); a smaller one sets the voice's waveform-table index ($E58B,y).","t":"code","b":[201,99],"m":"cmp","o":"#$63","x":[58959]},{"a":58095,"t":"code","b":[144,7],"m":"bcc","oa":58104,"o":"b_E2F8"},{"a":58097,"t":"code","b":[56],"m":"sec"},{"a":58098,"t":"code","b":[233,100],"m":"sbc","o":"#$64"},{"a":58100,"t":"code","b":[141,133,229],"m":"sta","oa":58757,"o":"music_tempo_voice"},{"a":58103,"t":"code","b":[96],"m":"rts"},{"a":58104,"l":"b_E2F8","t":"code","b":[153,139,229],"m":"sta","oa":58763,"o":"music_voice_wave,y","x":[58095]},{"a":58107,"t":"code","b":[96],"m":"rts"},{"a":58108,"l":"music_cmd_effect","c":"Command 7: sets the voice's frequency effect ($E58C,y: 1 arpeggio between two notes, 2 a third).","t":"code","b":[153,140,229],"m":"sta","oa":58764,"o":"music_voice_effect,y","x":[58961]},{"a":58111,"t":"code","b":[96],"m":"rts"},{"a":58112,"l":"music_cmd_slide","c":"Command 14: sets voice X's slide mode ($E59E,x).","t":"code","b":[157,158,229],"m":"sta","oa":58782,"o":"music_slide_mode,x","x":[58975]},{"a":58115,"t":"code","b":[96],"m":"rts"},{"a":58116,"l":"music_cmd_pulse_sweep","c":"Command 10: sets voice X's pulse sweep step ($E5AD,x).","t":"code","b":[157,173,229],"m":"sta","oa":58797,"o":"music_sweep_max,x","x":[58967]},{"a":58119,"t":"code","b":[96],"m":"rts"},{"a":58120,"l":"music_cmd_slide_delay","c":"Command 8: sets the frames before voice X's slide starts ($E5A7,x).","t":"code","b":[157,167,229],"m":"sta","oa":58791,"o":"music_slide_delay,x","x":[58963]},{"a":58123,"t":"code","b":[96],"m":"rts"},{"a":58124,"l":"music_cmd_vib_depth","c":"Command 20: sets voice X's vibrato limits from the two nibbles ($E5DA high, $E5DD low).","t":"code","b":[72],"m":"pha","x":[58987]},{"a":58125,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":58127,"t":"code","b":[157,221,229],"m":"sta","oa":58845,"o":"music_vib_lo,x"},{"a":58130,"t":"code","b":[104],"m":"pla"},{"a":58131,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":58133,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58134,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58135,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58136,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58137,"t":"code","b":[157,218,229],"m":"sta","oa":58842,"o":"music_vib_hi,x"},{"a":58140,"t":"code","b":[96],"m":"rts"},{"a":58141,"l":"music_cmd_sweep_len","c":"Command 21: sets the length of each phase of voice X's pulse sweep ($E61D,x).","t":"code","b":[157,29,230],"m":"sta","oa":58909,"o":"music_sweep_len,x","x":[58989]},{"a":58144,"t":"code","b":[96],"m":"rts"},{"a":58145,"l":"music_cmd_resonance","c":"Command 22: sets the filter's resonance and routing byte ($E69C, $D417's shadow).","t":"code","b":[141,156,230],"m":"sta","oa":59036,"o":"sid_shadow_res","x":[58991]},{"a":58148,"t":"code","b":[96],"m":"rts"},{"a":58149,"l":"music_cmd_tempo_reset","c":"Command 23: sets the tempo value a resetting voice restores ($E59D).","t":"code","b":[141,157,229],"m":"sta","oa":58781,"o":"music_tempo_reset","x":[58993]},{"a":58152,"t":"code","b":[96],"m":"rts"},{"a":58153,"l":"music_cmd_transpose_add","c":"Command 25: adds to voice X's transposition.","t":"code","b":[24],"m":"clc","x":[58997]},{"a":58154,"t":"code","b":[125,230,229],"m":"adc","oa":58854,"o":"music_transpose,x"},{"a":58157,"t":"code","b":[157,230,229],"m":"sta","oa":58854,"o":"music_transpose,x"},{"a":58160,"t":"code","b":[96],"m":"rts"},{"a":58161,"l":"music_cmd_volume_add","c":"Command 26: adds to the volume byte.","t":"code","b":[24],"m":"clc","x":[58999]},{"a":58162,"t":"code","b":[109,157,230],"m":"adc","oa":59037,"o":"sid_shadow_vol"},{"a":58165,"t":"code","b":[141,157,230],"m":"sta","oa":59037,"o":"sid_shadow_vol"},{"a":58168,"t":"code","b":[96],"m":"rts"},{"a":58169,"l":"music_cmd_arp_2","c":"Command 27: sets the offset of voice X's second arpeggio note ($E5B9,x).","t":"code","b":[157,185,229],"m":"sta","oa":58809,"o":"music_arp_2,x","x":[59001]},{"a":58172,"t":"code","b":[96],"m":"rts"},{"a":58173,"l":"music_cmd_tempo","c":"Command 28: sets the tempo: the byte's top five bits the whole part ($E59C), the low three the fraction ($E59B).","t":"code","b":[72],"m":"pha","x":[59003]},{"a":58174,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":58176,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58177,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58178,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":58179,"t":"code","b":[141,156,229],"m":"sta","oa":58780,"o":"music_tempo"},{"a":58182,"t":"code","b":[104],"m":"pla"},{"a":58183,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":58185,"t":"code","b":[141,155,229],"m":"sta","oa":58779,"o":"music_tempo_frac"},{"a":58188,"t":"code","b":[96],"m":"rts"},{"a":58189,"l":"music_cmd_arp_1","c":"Command 30: sets the offset of voice X's first arpeggio note ($E5B6,x).","t":"code","b":[157,182,229],"m":"sta","oa":58806,"o":"music_arp_1,x","x":[59007]},{"a":58192,"t":"code","b":[96],"m":"rts"},{"a":58193,"l":"music_cmd_fine","c":"Command 31: sets voice X's fine tuning, added to each frequency ($E5C8,x).","t":"code","b":[157,200,229],"m":"sta","oa":58824,"o":"music_fine,x","x":[59009]},{"a":58196,"t":"code","b":[96],"m":"rts"},{"a":58197,"l":"music_cmd_sweep_rate","c":"Command 32: sets voice X's pulse sweep rate ($E5CB,x).","t":"code","b":[157,203,229],"m":"sta","oa":58827,"o":"music_sweep_rate,x","x":[59011]},{"a":58200,"t":"code","b":[96],"m":"rts"},{"a":58201,"l":"music_cmd_length_add","c":"Command 24: adds to the high byte of voice X's note count ($E5CE,x), lengthening the note.","t":"code","b":[24],"m":"clc","x":[58995]},{"a":58202,"t":"code","b":[125,206,229],"m":"adc","oa":58830,"o":"music_note_long,x"},{"a":58205,"t":"code","b":[157,206,229],"m":"sta","oa":58830,"o":"music_note_long,x"},{"a":58208,"t":"code","b":[96],"m":"rts"},{"a":58209,"l":"music_slide_start","c":"Starts voice Y's slide once its delay ($E5A7) has passed.","t":"code","b":[185,170,229],"m":"lda","oa":58794,"o":"music_note_frames,y","x":[57515]},{"a":58212,"t":"code","b":[217,167,229],"m":"cmp","oa":58791,"o":"music_slide_delay,y"},{"a":58215,"t":"code","b":[144,6],"m":"bcc","oa":58223,"o":"r_E36F"},{"a":58217,"t":"code","b":[185,158,229],"m":"lda","oa":58782,"o":"music_slide_mode,y"},{"a":58220,"t":"code","b":[76,159,228],"m":"jmp","oa":58527,"o":"music_slide"},{"a":58223,"l":"r_E36F","t":"code","b":[96],"m":"rts","x":[58215,58227,58260,58275]},{"a":58224,"l":"music_vibrato","c":"Voice Y's vibrato: moves the shadow pulse width or frequency up and down by $E5FB between the limits $E5DA/$E5DD.","t":"code","b":[185,194,229],"m":"lda","oa":58818,"o":"music_tick,y","x":[57547]},{"a":58227,"t":"code","b":[208,250],"m":"bne","oa":58223,"o":"r_E36F"},{"a":58229,"t":"code","b":[185,218,229],"m":"lda","oa":58842,"o":"music_vib_hi,y"},{"a":58232,"t":"code","b":[240,49],"m":"beq","oa":58283,"o":"b_E3AB"},{"a":58234,"t":"code","b":[185,215,229],"m":"lda","oa":58839,"o":"music_vib_dir,y"},{"a":58237,"t":"code","b":[240,27],"m":"beq","oa":58266,"o":"b_E39A"},{"a":58239,"t":"code","b":[189,135,230],"m":"lda","oa":59015,"o":"sid_shadow_pw_lo,x"},{"a":58242,"t":"code","b":[56],"m":"sec"},{"a":58243,"t":"code","b":[249,251,229],"m":"sbc","oa":58875,"o":"music_vib_step,y"},{"a":58246,"t":"code","b":[157,135,230],"m":"sta","oa":59015,"o":"sid_shadow_pw_lo,x"},{"a":58249,"t":"code","b":[176,47],"m":"bcs","oa":58298,"o":"r_E3BA"},{"a":58251,"t":"code","b":[222,136,230],"m":"dec","oa":59016,"o":"sid_shadow_pw_hi,x"},{"a":58254,"t":"code","b":[189,136,230],"m":"lda","oa":59016,"o":"sid_shadow_pw_hi,x"},{"a":58257,"t":"code","b":[217,221,229],"m":"cmp","oa":58845,"o":"music_vib_lo,y"},{"a":58260,"t":"code","b":[176,217],"m":"bcs","oa":58223,"o":"r_E36F"},{"a":58262,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58264,"t":"code","b":[240,13],"m":"beq","oa":58279,"o":"b_E3A7"},{"a":58266,"l":"b_E39A","t":"code","b":[32,171,227],"m":"jsr","oa":58283,"o":"b_E3AB","x":[58237]},{"a":58269,"t":"code","b":[189,136,230],"m":"lda","oa":59016,"o":"sid_shadow_pw_hi,x"},{"a":58272,"t":"code","b":[217,218,229],"m":"cmp","oa":58842,"o":"music_vib_hi,y"},{"a":58275,"t":"code","b":[144,202],"m":"bcc","oa":58223,"o":"r_E36F"},{"a":58277,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58279,"l":"b_E3A7","t":"code","b":[153,215,229],"m":"sta","oa":58839,"o":"music_vib_dir,y","x":[58264]},{"a":58282,"t":"code","b":[96],"m":"rts"},{"a":58283,"l":"b_E3AB","t":"code","b":[189,135,230],"m":"lda","oa":59015,"o":"sid_shadow_pw_lo,x","x":[58232,58266]},{"a":58286,"t":"code","b":[24],"m":"clc"},{"a":58287,"t":"code","b":[121,251,229],"m":"adc","oa":58875,"o":"music_vib_step,y"},{"a":58290,"t":"code","b":[157,135,230],"m":"sta","oa":59015,"o":"sid_shadow_pw_lo,x"},{"a":58293,"t":"code","b":[144,3],"m":"bcc","oa":58298,"o":"r_E3BA"},{"a":58295,"t":"code","b":[254,136,230],"m":"inc","oa":59016,"o":"sid_shadow_pw_hi,x"},{"a":58298,"l":"r_E3BA","t":"code","b":[96],"m":"rts","x":[58249,58293]},{"a":58299,"l":"music_waveform","c":"Sets voice X's shadow control byte from the waveform table ($E622, by its index $E58B) or from the voice's own control byte ($E588), depending on how far into the note the voice is ($E5AA) against its limit ($E589) and on the tick count's low bit.","t":"code","b":[201,6],"m":"cmp","o":"#$06","x":[57531]},{"a":58301,"t":"code","b":[144,15],"m":"bcc","oa":58318,"o":"b_E3CE"},{"a":58303,"t":"code","b":[185,197,229],"m":"lda","oa":58821,"o":"music_ticks,y"},{"a":58306,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":58308,"t":"code","b":[208,34],"m":"bne","oa":58344,"o":"b_E3E8"},{"a":58310,"t":"code","b":[189,139,229],"m":"lda","oa":58763,"o":"music_voice_wave,x"},{"a":58313,"t":"code","b":[56],"m":"sec"},{"a":58314,"t":"code","b":[233,5],"m":"sbc","o":"#$05"},{"a":58316,"t":"code","b":[16,20],"m":"bpl","oa":58338,"o":"b_E3E2"},{"a":58318,"l":"b_E3CE","t":"code","b":[185,170,229],"m":"lda","oa":58794,"o":"music_note_frames,y","x":[58301]},{"a":58321,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":58323,"t":"code","b":[144,19],"m":"bcc","oa":58344,"o":"b_E3E8"},{"a":58325,"t":"code","b":[189,137,229],"m":"lda","oa":58761,"o":"music_voice_arp_limit,x"},{"a":58328,"t":"code","b":[240,5],"m":"beq","oa":58335,"o":"b_E3DF"},{"a":58330,"t":"code","b":[217,170,229],"m":"cmp","oa":58794,"o":"music_note_frames,y"},{"a":58333,"t":"code","b":[144,9],"m":"bcc","oa":58344,"o":"b_E3E8"},{"a":58335,"l":"b_E3DF","t":"code","b":[189,139,229],"m":"lda","oa":58763,"o":"music_voice_wave,x","x":[58328]},{"a":58338,"l":"b_E3E2","t":"code","b":[168],"m":"tay","x":[58316]},{"a":58339,"t":"code","b":[185,34,230],"m":"lda","oa":58914,"o":"music_wave_table,y"},{"a":58342,"t":"code","b":[208,3],"m":"bne","oa":58347,"o":"b_E3EB"},{"a":58344,"l":"b_E3E8","t":"code","b":[189,136,229],"m":"lda","oa":58760,"o":"music_voice_ctrl,x","x":[58308,58323,58333]},{"a":58347,"l":"b_E3EB","t":"code","b":[157,137,230],"m":"sta","oa":59017,"o":"sid_shadow_ctrl,x","x":[58342]},{"a":58350,"t":"code","b":[164,5],"m":"ldy","oa":5,"o":"zpa_05"},{"a":58352,"t":"code","b":[96],"m":"rts"},{"a":58353,"l":"music_arpeggio","c":"Voice X's arpeggio: cycles the frequency through the note and its one or two arpeggio notes ($E5A1/$E5A4, $E5BC/$E5BF) on successive frames.","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[57539]},{"a":58355,"t":"code","b":[208,22],"m":"bne","oa":58379,"o":"b_E40B"},{"a":58357,"t":"code","b":[185,197,229],"m":"lda","oa":58821,"o":"music_ticks,y"},{"a":58360,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":58362,"t":"code","b":[208,37],"m":"bne","oa":58401,"o":"b_E421"},{"a":58364,"l":"b_E3FC","t":"code","b":[185,161,229],"m":"lda","oa":58785,"o":"music_target_hi,y","x":[58386]},{"a":58367,"t":"code","b":[157,134,230],"m":"sta","oa":59014,"o":"sid_shadow_freq_hi,x"},{"a":58370,"t":"code","b":[185,164,229],"m":"lda","oa":58788,"o":"music_target_lo,y"},{"a":58373,"t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x"},{"a":58376,"t":"code","b":[76,29,228],"m":"jmp","oa":58397,"o":"j_E41D"},{"a":58379,"l":"b_E40B","t":"code","b":[185,179,229],"m":"lda","oa":58803,"o":"music_arp_phase,y","x":[58355]},{"a":58382,"t":"code","b":[240,17],"m":"beq","oa":58401,"o":"b_E421"},{"a":58384,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":58386,"t":"code","b":[240,232],"m":"beq","oa":58364,"o":"b_E3FC"},{"a":58388,"t":"code","b":[185,191,229],"m":"lda","oa":58815,"o":"music_arp2_hi,y"},{"a":58391,"t":"code","b":[157,134,230],"m":"sta","oa":59014,"o":"sid_shadow_freq_hi,x"},{"a":58394,"t":"code","b":[185,188,229],"m":"lda","oa":58812,"o":"music_arp2_lo,y"},{"a":58397,"l":"j_E41D","t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x","x":[58376]},{"a":58400,"t":"code","b":[96],"m":"rts"},{"a":58401,"l":"b_E421","t":"code","b":[76,40,229],"m":"jmp","oa":58664,"o":"music_freq_out","x":[58362,58382]},{"a":58404,"l":"music_pulse_sweep","c":"Voice Y's pulse sweep: steps the pulse width up or down by $E5B0 (which can grow by $E5CB each frame up to $E5AD) in four phases of $E61D frames.","t":"code","b":[185,203,229],"m":"lda","oa":58827,"o":"music_sweep_rate,y","x":[57523]},{"a":58407,"t":"code","b":[208,6],"m":"bne","oa":58415,"o":"b_E42F"},{"a":58409,"t":"code","b":[185,173,229],"m":"lda","oa":58797,"o":"music_sweep_max,y"},{"a":58412,"t":"code","b":[153,176,229],"m":"sta","oa":58800,"o":"music_sweep_step,y"},{"a":58415,"l":"b_E42F","t":"code","b":[185,212,229],"m":"lda","oa":58836,"o":"music_sweep_phase,y","x":[58407]},{"a":58418,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":58420,"t":"code","b":[240,10],"m":"beq","oa":58432,"o":"b_E440"},{"a":58422,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":58424,"t":"code","b":[240,24],"m":"beq","oa":58450,"o":"b_E452"},{"a":58426,"t":"code","b":[32,113,228],"m":"jsr","oa":58481,"o":"music_pulse_up"},{"a":58429,"t":"code","b":[76,85,228],"m":"jmp","oa":58453,"o":"j_E455"},{"a":58432,"l":"b_E440","t":"code","b":[185,176,229],"m":"lda","oa":58800,"o":"music_sweep_step,y","x":[58420]},{"a":58435,"t":"code","b":[24],"m":"clc"},{"a":58436,"t":"code","b":[121,203,229],"m":"adc","oa":58827,"o":"music_sweep_rate,y"},{"a":58439,"t":"code","b":[217,173,229],"m":"cmp","oa":58797,"o":"music_sweep_max,y"},{"a":58442,"t":"code","b":[144,3],"m":"bcc","oa":58447,"o":"b_E44F"},{"a":58444,"t":"code","b":[185,173,229],"m":"lda","oa":58797,"o":"music_sweep_max,y"},{"a":58447,"l":"b_E44F","t":"code","b":[153,176,229],"m":"sta","oa":58800,"o":"music_sweep_step,y","x":[58442]},{"a":58450,"l":"b_E452","t":"code","b":[32,134,228],"m":"jsr","oa":58502,"o":"music_pulse_down","x":[58424]},{"a":58453,"l":"j_E455","t":"code","b":[185,209,229],"m":"lda","oa":58833,"o":"music_sweep_count,y","x":[58429]},{"a":58456,"t":"code","b":[24],"m":"clc"},{"a":58457,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":58459,"t":"code","b":[217,29,230],"m":"cmp","oa":58909,"o":"music_sweep_len,y"},{"a":58462,"t":"code","b":[144,13],"m":"bcc","oa":58477,"o":"b_E46D"},{"a":58464,"t":"code","b":[185,212,229],"m":"lda","oa":58836,"o":"music_sweep_phase,y"},{"a":58467,"t":"code","b":[24],"m":"clc"},{"a":58468,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":58470,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":58472,"t":"code","b":[153,212,229],"m":"sta","oa":58836,"o":"music_sweep_phase,y"},{"a":58475,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58477,"l":"b_E46D","t":"code","b":[153,209,229],"m":"sta","oa":58833,"o":"music_sweep_count,y","x":[58462]},{"a":58480,"t":"code","b":[96],"m":"rts"},{"a":58481,"l":"music_pulse_up","c":"Adds the sweep step to the voice's frequency/pulse pair ($E587/$E586) and its shadow registers.","t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x","x":[58426]},{"a":58484,"t":"code","b":[24],"m":"clc"},{"a":58485,"t":"code","b":[121,176,229],"m":"adc","oa":58800,"o":"music_sweep_step,y"},{"a":58488,"t":"code","b":[157,135,229],"m":"sta","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58491,"t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x"},{"a":58494,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58497,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":58499,"t":"code","b":[76,152,228],"m":"jmp","oa":58520,"o":"j_E498"},{"a":58502,"l":"music_pulse_down","c":"Subtracts the sweep step.","t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x","x":[58450]},{"a":58505,"t":"code","b":[56],"m":"sec"},{"a":58506,"t":"code","b":[249,176,229],"m":"sbc","oa":58800,"o":"music_sweep_step,y"},{"a":58509,"t":"code","b":[157,135,229],"m":"sta","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58512,"t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x"},{"a":58515,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58518,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":58520,"l":"j_E498","t":"code","b":[157,134,229],"m":"sta","oa":58758,"o":"music_voice_freq_hi,x","x":[58499]},{"a":58523,"t":"code","b":[157,134,230],"m":"sta","oa":59014,"o":"sid_shadow_freq_hi,x"},{"a":58526,"l":"r_E49E","t":"code","b":[96],"m":"rts","x":[58547,58564,58572,58602,58610]},{"a":58527,"l":"music_slide","c":"Slide mode 1: moves the frequency towards the target note ($E5A1/$E5A4) by the slide step, stopping on it; modes 3 and 4 slide down or up without end.","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[58220]},{"a":58529,"t":"code","b":[208,124],"m":"bne","oa":58655,"o":"b_E51F"},{"a":58531,"t":"code","b":[185,161,229],"m":"lda","oa":58785,"o":"music_target_hi,y"},{"a":58534,"t":"code","b":[221,134,229],"m":"cmp","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58537,"t":"code","b":[144,50],"m":"bcc","oa":58589,"o":"b_E4DD"},{"a":58539,"t":"code","b":[208,10],"m":"bne","oa":58551,"o":"b_E4B7"},{"a":58541,"t":"code","b":[185,164,229],"m":"lda","oa":58788,"o":"music_target_lo,y"},{"a":58544,"t":"code","b":[221,135,229],"m":"cmp","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58547,"t":"code","b":[240,233],"m":"beq","oa":58526,"o":"r_E49E"},{"a":58549,"t":"code","b":[144,38],"m":"bcc","oa":58589,"o":"b_E4DD"},{"a":58551,"l":"b_E4B7","t":"code","b":[32,246,228],"m":"jsr","oa":58614,"o":"music_slide_up","x":[58539]},{"a":58554,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58557,"t":"code","b":[217,161,229],"m":"cmp","oa":58785,"o":"music_target_hi,y"},{"a":58560,"t":"code","b":[240,4],"m":"beq","oa":58566,"o":"b_E4C6"},{"a":58562,"t":"code","b":[176,10],"m":"bcs","oa":58574,"o":"b_E4CE"},{"a":58564,"t":"code","b":[144,216],"m":"bcc","oa":58526,"o":"r_E49E"},{"a":58566,"l":"b_E4C6","t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x","x":[58560]},{"a":58569,"t":"code","b":[217,164,229],"m":"cmp","oa":58788,"o":"music_target_lo,y"},{"a":58572,"t":"code","b":[144,208],"m":"bcc","oa":58526,"o":"r_E49E"},{"a":58574,"l":"b_E4CE","t":"code","b":[185,164,229],"m":"lda","oa":58788,"o":"music_target_lo,y","x":[58562,58600,58612]},{"a":58577,"t":"code","b":[157,135,229],"m":"sta","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58580,"t":"code","b":[185,161,229],"m":"lda","oa":58785,"o":"music_target_hi,y"},{"a":58583,"t":"code","b":[157,134,229],"m":"sta","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58586,"t":"code","b":[76,40,229],"m":"jmp","oa":58664,"o":"music_freq_out"},{"a":58589,"l":"b_E4DD","t":"code","b":[32,9,229],"m":"jsr","oa":58633,"o":"music_slide_down","x":[58537,58549]},{"a":58592,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58595,"t":"code","b":[217,161,229],"m":"cmp","oa":58785,"o":"music_target_hi,y"},{"a":58598,"t":"code","b":[240,4],"m":"beq","oa":58604,"o":"b_E4EC"},{"a":58600,"t":"code","b":[144,228],"m":"bcc","oa":58574,"o":"b_E4CE"},{"a":58602,"t":"code","b":[176,178],"m":"bcs","oa":58526,"o":"r_E49E"},{"a":58604,"l":"b_E4EC","t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x","x":[58598]},{"a":58607,"t":"code","b":[217,164,229],"m":"cmp","oa":58788,"o":"music_target_lo,y"},{"a":58610,"t":"code","b":[176,170],"m":"bcs","oa":58526,"o":"r_E49E"},{"a":58612,"t":"code","b":[144,216],"m":"bcc","oa":58574,"o":"b_E4CE"},{"a":58614,"l":"music_slide_up","c":"Adds the slide step ($E5E9/$E5EC) to the voice's frequency.","t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x","x":[58551,58661]},{"a":58617,"t":"code","b":[24],"m":"clc"},{"a":58618,"t":"code","b":[121,233,229],"m":"adc","oa":58857,"o":"music_slide_lo,y"},{"a":58621,"t":"code","b":[157,135,229],"m":"sta","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58624,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58627,"t":"code","b":[121,236,229],"m":"adc","oa":58860,"o":"music_slide_hi,y"},{"a":58630,"t":"code","b":[76,25,229],"m":"jmp","oa":58649,"o":"j_E519"},{"a":58633,"l":"music_slide_down","c":"Subtracts the slide step.","t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x","x":[58589,58657]},{"a":58636,"t":"code","b":[56],"m":"sec"},{"a":58637,"t":"code","b":[249,233,229],"m":"sbc","oa":58857,"o":"music_slide_lo,y"},{"a":58640,"t":"code","b":[157,135,229],"m":"sta","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58643,"t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x"},{"a":58646,"t":"code","b":[249,236,229],"m":"sbc","oa":58860,"o":"music_slide_hi,y"},{"a":58649,"l":"j_E519","t":"code","b":[157,134,229],"m":"sta","oa":58758,"o":"music_voice_freq_hi,x","x":[58630]},{"a":58652,"t":"code","b":[76,40,229],"m":"jmp","oa":58664,"o":"music_freq_out"},{"a":58655,"l":"b_E51F","t":"code","b":[201,3],"m":"cmp","o":"#$03","x":[58529]},{"a":58657,"t":"code","b":[240,230],"m":"beq","oa":58633,"o":"music_slide_down"},{"a":58659,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":58661,"t":"code","b":[240,207],"m":"beq","oa":58614,"o":"music_slide_up"},{"a":58663,"t":"code","b":[96],"m":"rts"},{"a":58664,"l":"music_freq_out","c":"Copies the voice's frequency ($E586/$E587) into its shadow registers.","t":"code","b":[189,134,229],"m":"lda","oa":58758,"o":"music_voice_freq_hi,x","x":[58401,58586,58652]},{"a":58667,"t":"code","b":[157,134,230],"m":"sta","oa":59014,"o":"sid_shadow_freq_hi,x"},{"a":58670,"t":"code","b":[189,135,229],"m":"lda","oa":58759,"o":"music_voice_freq_lo,x"},{"a":58673,"t":"code","b":[157,133,230],"m":"sta","oa":59013,"o":"sid_shadow,x"},{"a":58676,"t":"code","b":[96],"m":"rts"},{"a":58677,"l":"music_freq","c":"Turns a note number (from $80) into a SID frequency: takes octaves of 12 off the top until it is within the table's octave (music_freq_table, the top octave), then halves the frequency once for each octave taken off, and adds the voice's fine tuning; the result in $E612/$E613.","t":"code","b":[162,7],"m":"ldx","o":"#$07","x":[57719,57743,57761]},{"a":58679,"l":"j_E537","t":"code","b":[201,140],"m":"cmp","o":"#$8C","x":[58686]},{"a":58681,"t":"code","b":[144,6],"m":"bcc","oa":58689,"o":"b_E541"},{"a":58683,"t":"code","b":[233,12],"m":"sbc","o":"#$0C"},{"a":58685,"t":"code","b":[202],"m":"dex"},{"a":58686,"t":"code","b":[76,55,229],"m":"jmp","oa":58679,"o":"j_E537"},{"a":58689,"l":"b_E541","t":"code","b":[233,127],"m":"sbc","o":"#$7F","x":[58681]},{"a":58691,"t":"code","b":[10],"m":"asl","o":"a"},{"a":58692,"t":"code","b":[168],"m":"tay"},{"a":58693,"t":"code","b":[185,40,230],"m":"lda","oa":58920,"o":"music_freq_table,y"},{"a":58696,"t":"code","b":[141,18,230],"m":"sta","oa":58898,"o":"music_freq_hi"},{"a":58699,"t":"code","b":[185,41,230],"m":"lda","oa":58921,"o":"music_freq_table_lo,y"},{"a":58702,"t":"code","b":[141,19,230],"m":"sta","oa":58899,"o":"music_freq_lo"},{"a":58705,"t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":58707,"t":"code","b":[240,29],"m":"beq","oa":58738,"o":"b_E572"},{"a":58709,"l":"b_E555","t":"code","b":[78,18,230],"m":"lsr","oa":58898,"o":"music_freq_hi","x":[58716]},{"a":58712,"t":"code","b":[110,19,230],"m":"ror","oa":58899,"o":"music_freq_lo"},{"a":58715,"t":"code","b":[202],"m":"dex"},{"a":58716,"t":"code","b":[208,247],"m":"bne","oa":58709,"o":"b_E555"},{"a":58718,"t":"code","b":[166,5],"m":"ldx","oa":5,"o":"zpa_05"},{"a":58720,"t":"code","b":[164,4],"m":"ldy","oa":4,"o":"zpa_04"},{"a":58722,"t":"code","b":[173,19,230],"m":"lda","oa":58899,"o":"music_freq_lo"},{"a":58725,"t":"code","b":[24],"m":"clc"},{"a":58726,"t":"code","b":[125,200,229],"m":"adc","oa":58824,"o":"music_fine,x"},{"a":58729,"t":"code","b":[141,19,230],"m":"sta","oa":58899,"o":"music_freq_lo"},{"a":58732,"t":"code","b":[144,3],"m":"bcc","oa":58737,"o":"r_E571"},{"a":58734,"t":"code","b":[238,18,230],"m":"inc","oa":58898,"o":"music_freq_hi"},{"a":58737,"l":"r_E571","t":"code","b":[96],"m":"rts","x":[58732]},{"a":58738,"l":"b_E572","t":"code","b":[164,4],"m":"ldy","oa":4,"o":"zpa_04","x":[58707]},{"a":58740,"t":"code","b":[166,5],"m":"ldx","oa":5,"o":"zpa_05"},{"a":58742,"t":"code","b":[96],"m":"rts"},{"a":58743,"l":"music_next","c":"Steps the stream pointer $02/$03 past one two-byte command.","t":"code","b":[165,2],"m":"lda","oa":2,"o":"zpa_02","x":[57495,57793]},{"a":58745,"t":"code","b":[24],"m":"clc"},{"a":58746,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":58748,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"zpa_02"},{"a":58750,"t":"code","b":[144,2],"m":"bcc","oa":58754,"o":"r_E582"},{"a":58752,"t":"code","b":[230,3],"m":"inc","oa":3,"o":"zpa_03"},{"a":58754,"l":"r_E582","t":"code","b":[96],"m":"rts","x":[58750]},{"a":58755,"l":"music_pad","c":"A zero byte before the player's state.","t":"byte","b":[0]},{"a":58756,"l":"music_state","c":"The start of the player's 126 bytes of state, which music_setup clears.","t":"byte","b":[0],"x":[57835]},{"a":58757,"l":"music_tempo_voice","c":"The voice whose new notes reset the tempo accumulator (command 6 with 99 or more).","t":"byte","b":[0],"x":[57650,58100]},{"a":58758,"l":"music_voice_freq_hi","c":"Each voice's frequency, high byte, seven bytes a voice (indexed 0, 7, 14 like the SID's registers, but laid out differently): the high byte comes before the low ($E587), and music_freq_out copies them to the shadow of the voice's SID +1 and +0; the voice's control byte is at +2 ($E588).","t":"byte","b":[0],"x":[57505,57772,57809,58494,58515,58520,58534,58554,58583,58592,58624,58643,58649,58664]},{"a":58759,"l":"music_voice_freq_lo","c":"Each voice's frequency, low byte.","t":"byte","b":[0],"x":[57781,57803,58481,58488,58502,58509,58544,58566,58577,58604,58614,58621,58633,58640,58670]},{"a":58760,"l":"music_voice_ctrl","c":"Each voice's own control byte (waveform and gate).","t":"byte","b":[65],"x":[57824,58344]},{"a":58761,"l":"music_voice_arp_limit","c":"Each voice's arpeggio limit (command 4).","t":"byte","b":[0],"x":[58085,58325]},{"a":58762,"l":"music_voice_arp_a","c":"Each voice's arpeggio byte (command 5).","t":"byte","b":[0],"x":[57418,58089]},{"a":58763,"l":"music_voice_wave","c":"Each voice's waveform-table index (command 6).","t":"byte","b":[0],"x":[57526,58104,58310,58335]},{"a":58764,"l":"music_voice_effect","c":"Each voice's frequency effect (command 7); the rest of the seven-byte group follows.","t":"byte","b":[0,11,157,65,0,0,0,0],"x":[57534,58108]},{"a":58772,"t":"byte","b":[0,0,0,0,0,0]},{"a":58778,"l":"music_stream_base_hi","c":"Work for music_setup: the high bytes of the three voices' start addresses.","t":"byte","b":[0],"x":[57899]},{"a":58779,"l":"music_tempo_frac","c":"The tempo's fractional step (command 28).","t":"byte","b":[0],"x":[57378,58185]},{"a":58780,"l":"music_tempo","c":"The tempo's whole step.","t":"byte","b":[0],"x":[57397,58179]},{"a":58781,"l":"music_tempo_reset","c":"The tempo a resetting voice restores (command 23), and music_setup's work.","t":"byte","b":[0],"x":[57658,57888,58149]},{"a":58782,"l":"music_slide_mode","c":"Each voice's slide mode (command 14).","t":"byte","b":[0,0,0],"x":[57510,58112,58217]},{"a":58785,"l":"music_target_hi","c":"Each voice's slide target or arpeggio note, high byte.","t":"byte","b":[0,0,0],"x":[57749,57812,58364,58531,58557,58580,58595]},{"a":58788,"l":"music_target_lo","c":"Its low byte.","t":"byte","b":[0,0,0],"x":[57755,57806,58370,58541,58569,58574,58607]},{"a":58791,"l":"music_slide_delay","c":"Each voice's slide delay (command 8).","t":"byte","b":[0,0,0],"x":[58120,58212]},{"a":58794,"l":"music_note_frames","c":"Each voice's frames into its note.","t":"byte","b":[0,10,2],"x":[57446,57626,58209,58318,58330]},{"a":58797,"l":"music_sweep_max","c":"Each voice's largest pulse sweep step (command 10).","t":"byte","b":[0,30,0],"x":[57518,58116,58409,58439,58444]},{"a":58800,"l":"music_sweep_step","c":"Each voice's pulse sweep step now.","t":"byte","b":[0,30,0],"x":[57647,58412,58432,58447,58485,58506]},{"a":58803,"l":"music_arp_phase","c":"Each voice's arpeggio phase, 0-2.","t":"byte","b":[0,1,2],"x":[57426,57438,57644,58379]},{"a":58806,"l":"music_arp_1","c":"Each voice's first arpeggio offset (command 30).","t":"byte","b":[0,0,0],"x":[57734,58189]},{"a":58809,"l":"music_arp_2","c":"Each voice's second arpeggio offset (command 27).","t":"byte","b":[0,0,0],"x":[57710,58169]},{"a":58812,"l":"music_arp2_lo","c":"Each voice's second arpeggio note, low byte.","t":"byte","b":[0,0,0],"x":[57731,58394]},{"a":58815,"l":"music_arp2_hi","c":"The high byte of each voice's second arpeggio note.","t":"byte","b":[0,0,0],"x":[57725,58388]},{"a":58818,"l":"music_tick","c":"Each voice's tempo tick count.","t":"byte","b":[0,0,0],"x":[57412,57443,57638,58224]},{"a":58821,"l":"music_ticks","c":"Each voice's count of tempo ticks into the note.","t":"byte","b":[0,10,2],"x":[57423,57641,58303,58357]},{"a":58824,"l":"music_fine","c":"Each voice's fine tuning (command 31).","t":"byte","b":[0,0,30],"x":[58193,58726]},{"a":58827,"l":"music_sweep_rate","c":"Each voice's pulse sweep rate (command 32).","t":"byte","b":[0,0,0],"x":[58197,58404,58436]},{"a":58830,"l":"music_note_long","c":"The high byte of each voice's note count.","t":"byte","b":[0,0,0],"x":[57587,57592,57623,58202,58205]},{"a":58833,"l":"music_sweep_count","c":"Each voice's frames into its pulse sweep phase.","t":"byte","b":[0,0,0],"x":[57629,58453,58477]},{"a":58836,"l":"music_sweep_phase","c":"Each voice's pulse sweep phase, 0-3.","t":"byte","b":[0,2,0],"x":[57635,58415,58464,58472]},{"a":58839,"l":"music_vib_dir","c":"Each voice's vibrato direction.","t":"byte","b":[0,0,0],"x":[57632,58234,58279]},{"a":58842,"l":"music_vib_hi","c":"Each voice's vibrato upper limit (command 20, high nibble).","t":"byte","b":[0,0,0],"x":[58137,58229,58272]},{"a":58845,"l":"music_vib_lo","c":"Each voice's vibrato lower limit (low nibble).","t":"byte","b":[0,0,0],"x":[58127,58257]},{"a":58848,"l":"music_repeat_a_on","c":"Each voice's first repeat is running.","t":"byte","b":[0,0,1],"x":[57955,57960,57988]},{"a":58851,"l":"music_repeat_b_on","c":"Each voice's second repeat is running.","t":"byte","b":[0,0,0],"x":[58006,58011,58039]},{"a":58854,"l":"music_transpose","c":"Each voice's transposition (commands 19 and 25).","t":"byte","b":[6,6,6],"x":[57704,58054,58154,58157]},{"a":58857,"l":"music_slide_lo","c":"Each voice's slide step, low byte (command 12).","t":"byte","b":[0,0,0],"x":[58066,58618,58637]},{"a":58860,"l":"music_slide_hi","c":"Each voice's slide step, high byte (command 11).","t":"byte","b":[0,0,0],"x":[58062,58627,58646]},{"a":58863,"l":"music_sr","c":"Each voice's sustain/release (command 9).","t":"byte","b":[44,67,67],"x":[57670,57948]},{"a":58866,"l":"music_ctrl","c":"Each voice's waveform and gate (command 2).","t":"byte","b":[65,65,0],"x":[57818,57940]},{"a":58869,"l":"music_pulse","c":"Each voice's pulse width high byte (command 3).","t":"byte","b":[2,2,1],"x":[57676,58070]},{"a":58872,"l":"music_ad","c":"Each voice's attack/decay (command 1).","t":"byte","b":[24,53,53],"x":[57664,57944]},{"a":58875,"l":"music_vib_step","c":"Each voice's vibrato step (command 13).","t":"byte","b":[20,150,50],"x":[57542,58058,58243,58287]},{"a":58878,"l":"music_repeat_a_left","c":"Each voice's repeats left on the first loop.","t":"byte","b":[0,0,254],"x":[57966,57969,57972]},{"a":58881,"l":"music_repeat_b_left","c":"Each voice's repeats left on the second loop.","t":"byte","b":[0,0,199],"x":[58017,58020,58023]},{"a":58884,"l":"music_mark_a_lo","c":"Each voice's first loop mark, low byte.","t":"byte","b":[24,96,138],"x":[57977,57994]},{"a":58887,"l":"music_mark_a_hi","c":"The high byte of each voice's first loop mark.","t":"byte","b":[234,234,234],"x":[57982,57999]},{"a":58890,"l":"music_mark_b_lo","c":"Each voice's second loop mark, low byte.","t":"byte","b":[11,101,26],"x":[58028,58045]},{"a":58893,"l":"music_mark_b_hi","c":"The high byte of each voice's second loop mark.","t":"byte","b":[142,143,19],"x":[58033,58050]},{"a":58896,"l":"music_work","c":"Work: a note number or a command's value.","t":"byte","b":[255,0],"x":[57707,57716,57740,57758,57952,57963,58003,58014]},{"a":58898,"l":"music_freq_hi","c":"music_freq's result, high byte.","t":"byte","b":[0],"x":[57690,57722,57746,57766,58696,58709,58734]},{"a":58899,"l":"music_freq_lo","c":"music_freq's result, low byte.","t":"byte","b":[0],"x":[57693,57728,57752,57775,58702,58712,58722,58729]},{"a":58900,"l":"music_note_count","c":"Each voice's frames left on its note (low byte).","t":"byte","b":[1,6,252],"x":[57578,57584,57597,57790,57796,57854]},{"a":58903,"l":"music_stream_hi","c":"Each voice's stream pointer, high byte.","t":"byte","b":[234,234,234],"x":[57454,57562,57875,57896]},{"a":58906,"l":"music_stream_lo","c":"Each voice's stream pointer, low byte.","t":"byte","b":[64,98,140],"x":[57449,57557,57868,57885]},{"a":58909,"l":"music_sweep_len","c":"Each voice's pulse sweep phase length (command 21).","t":"byte","b":[1,1,1],"x":[57857,58141,58459]},{"a":58912,"l":"music_voice_offsets","c":"Each voice's SID register offset: 0, 7, 14.","t":"byte","b":[0,7],"x":[57405]},{"a":58914,"l":"music_wave_table","c":"The waveforms command 6 picks, read from index 1: $41 pulse, $21 sawtooth, $11 triangle, $81 noise, $51 (index 0 is the last of the voice offsets, 14).","t":"byte","b":[14,65,33,17,129,81],"x":[58339]},{"a":58920,"l":"music_freq_table","c":"The top octave's twelve frequencies, high byte first: $8368, $8B39 ... $F810, a semitone apart; music_freq halves them for lower octaves.","t":"byte","b":[131],"x":[58693]},{"a":58921,"l":"music_freq_table_lo","c":"music_freq_table read from its second byte.","t":"byte","b":[104,139,57,147,128,156,69,165],"x":[58699]},{"a":58929,"t":"byte","b":[144,175,105,185,215,196,227,208]},{"a":58937,"t":"byte","b":[153,221,0,234,37,248,16]},{"a":58944,"l":"music_gate_time","c":"Each voice's gate-off time before a note's end (command 4 with 100 or more).","t":"byte","b":[4],"x":[57602,57846,58081]},{"a":58945,"l":"music_gate_time_2","c":"The second voice's gate-off time.","t":"byte","b":[2],"x":[57843]},{"a":58946,"l":"music_gate_time_3","c":"The third voice's gate-off time.","t":"byte","b":[2],"x":[57849]},{"a":58947,"l":"music_commands","c":"The handlers of the 33 commands, in command order; a command byte n + 1 picks entry n.","t":"addr","b":[80,226],"oa":57936,"o":"music_cmd_volume","x":[57472]},{"a":58948,"t":"note","l":"music_commands_hi","c":"music_commands read from its second byte.","note":"inside the item at $E643","x":[57478]},{"a":58949,"t":"addr","b":[88,226],"oa":57944,"o":"music_cmd_ad"},{"a":58951,"t":"addr","b":[84,226],"oa":57940,"o":"music_cmd_ctrl"},{"a":58953,"t":"addr","b":[214,226],"oa":58070,"o":"music_cmd_pulse"},{"a":58955,"t":"addr","b":[218,226],"oa":58074,"o":"music_cmd_gate_time"},{"a":58957,"t":"addr","b":[233,226],"oa":58089,"o":"music_cmd_arp_a"},{"a":58959,"t":"addr","b":[237,226],"oa":58093,"o":"music_cmd_wave"},{"a":58961,"t":"addr","b":[252,226],"oa":58108,"o":"music_cmd_effect"},{"a":58963,"t":"addr","b":[8,227],"oa":58120,"o":"music_cmd_slide_delay"},{"a":58965,"t":"addr","b":[92,226],"oa":57948,"o":"music_cmd_sr"},{"a":58967,"t":"addr","b":[4,227],"oa":58116,"o":"music_cmd_pulse_sweep"},{"a":58969,"t":"addr","b":[206,226],"oa":58062,"o":"music_cmd_slide_hi"},{"a":58971,"t":"addr","b":[210,226],"oa":58066,"o":"music_cmd_slide_lo"},{"a":58973,"t":"addr","b":[202,226],"oa":58058,"o":"music_cmd_vib_speed"},{"a":58975,"t":"addr","b":[0,227],"oa":58112,"o":"music_cmd_slide"},{"a":58977,"t":"addr","b":[96,226],"oa":57952,"o":"music_cmd_repeat_a"},{"a":58979,"t":"addr","b":[136,226],"oa":57992,"o":"music_cmd_mark_a"},{"a":58981,"t":"addr","b":[147,226],"oa":58003,"o":"music_cmd_repeat_b"},{"a":58983,"t":"addr","b":[187,226],"oa":58043,"o":"music_cmd_mark_b"},{"a":58985,"t":"addr","b":[198,226],"oa":58054,"o":"music_cmd_transpose"},{"a":58987,"t":"addr","b":[12,227],"oa":58124,"o":"music_cmd_vib_depth"},{"a":58989,"t":"addr","b":[29,227],"oa":58141,"o":"music_cmd_sweep_len"},{"a":58991,"t":"addr","b":[33,227],"oa":58145,"o":"music_cmd_resonance"},{"a":58993,"t":"addr","b":[37,227],"oa":58149,"o":"music_cmd_tempo_reset"},{"a":58995,"t":"addr","b":[89,227],"oa":58201,"o":"music_cmd_length_add"},{"a":58997,"t":"addr","b":[41,227],"oa":58153,"o":"music_cmd_transpose_add"},{"a":58999,"t":"addr","b":[49,227],"oa":58161,"o":"music_cmd_volume_add"},{"a":59001,"t":"addr","b":[57,227],"oa":58169,"o":"music_cmd_arp_2"},{"a":59003,"t":"addr","b":[61,227],"oa":58173,"o":"music_cmd_tempo"},{"a":59005,"t":"addr","b":[59,226],"oa":57915,"o":"music_stop"},{"a":59007,"t":"addr","b":[77,227],"oa":58189,"o":"music_cmd_arp_1"},{"a":59009,"t":"addr","b":[81,227],"oa":58193,"o":"music_cmd_fine"},{"a":59011,"t":"addr","b":[85,227],"oa":58197,"o":"music_cmd_sweep_rate"},{"a":59013,"l":"sid_shadow","c":"The 25 SID registers as the player wants them, copied to $D400-$D418 each frame: voice 1 from $E685.","t":"byte","b":[0],"x":[57364,57778,57924,57929,58373,58397,58491,58512,58673]},{"a":59014,"l":"sid_shadow_freq_hi","c":"The shadow of voice 1's frequency high byte (each voice's at +7, +14).","t":"byte","b":[0],"x":[57769,58367,58391,58523,58667]},{"a":59015,"l":"sid_shadow_pw_lo","c":"The shadow of voice 1's pulse width, low byte.","t":"byte","b":[0],"x":[57620,58239,58246,58283,58290]},{"a":59016,"l":"sid_shadow_pw_hi","c":"The shadow of voice 1's pulse width, high byte.","t":"byte","b":[2],"x":[57679,58251,58254,58269,58295]},{"a":59017,"l":"sid_shadow_ctrl","c":"The shadow of voice 1's control register.","t":"byte","b":[65],"x":[57607,57612,57821,58347]},{"a":59018,"l":"sid_shadow_ad","c":"The shadow of voice 1's attack/decay.","t":"byte","b":[24],"x":[57667]},{"a":59019,"l":"sid_shadow_sr","c":"The shadow of voice 1's sustain/release; voices 2 and 3 follow.","t":"byte","b":[44,157,11,150,0,0,0,0],"x":[57673]},{"a":59027,"t":"byte","b":[0,0,0,0,0,0,0]},{"a":59034,"l":"music_tempo_count","c":"The tempo accumulator's fraction.","t":"byte","b":[0],"x":[57374,57381,57390,57655]},{"a":59035,"l":"music_tempo_whole","c":"The tempo accumulator's whole part.","t":"byte","b":[0],"x":[57394,57400,57661]},{"a":59036,"l":"sid_shadow_res","c":"The shadow of $D417, the filter's resonance and routing.","t":"byte","b":[0],"x":[58145]},{"a":59037,"l":"sid_shadow_vol","c":"The shadow of $D418, the filter mode and volume.","t":"byte","b":[3],"x":[57936,58162,58165]},{"a":59038,"l":"music_on","c":"Non-zero while a tune plays; the start-up clears it, music_setup sets it, music_stop clears it.","t":"byte","b":[0],"x":[32789,39426,39931,39940,57354,57830,57911,57917]},{"a":59039,"l":"music_file_tail","c":"The last 66 bytes of the file PLAYER-$E000, after the player's state: leftovers saved with it (the letters \"PINKY\" among them, at $E6AF); nothing reads them.","t":"byte","b":[6,117,76,190,71,0,247,0]},{"a":59047,"t":"byte","b":[255,0,255,0,255,102,0,0]},{"a":59055,"t":"byte","b":[80,73,78,75,89,0,255,0]},{"a":59063,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":59071,"t":"byte","b":[0,255,255,0,255,0,255,0]},{"a":59079,"t":"byte","b":[253,0,255,0,255,0,255,0]},{"a":59087,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":59095,"t":"byte","b":[255,0,191,0,255,0,251,0]},{"a":59103,"t":"byte","b":[127,0]},{"a":59105,"t":"gap","n":287},{"a":59392,"l":"tune_treasure","c":"The file DATATREASURE 446: the treasure-room tune for the tune player (tune_start with $E800). It starts with a header of offsets ($0E, $80) which tune_init adds to $E800 to find the voices' streams of two-byte commands (tune_command).","t":"byte","b":[14,0,128,0,1,15,0,1]},{"a":59400,"t":"byte","b":[0,16,25,5,0,1,0,1]},{"a":59408,"t":"byte","b":[30,1,0,1,3,81,10,13]},{"a":59416,"t":"byte","b":[4,5,17,0,2,25,142,40]},{"a":59424,"t":"byte","b":[2,69,142,40,142,40,142,30]},{"a":59432,"t":"byte","b":[142,10,16,2,17,0,2,25]},{"a":59440,"t":"byte","b":[142,36,2,69,142,36,142,36]},{"a":59448,"t":"byte","b":[142,27,142,9,16,2,17,0]},{"a":59456,"t":"byte","b":[2,25,142,32,2,69,142,32]},{"a":59464,"t":"byte","b":[142,32,142,24,142,8,16,2]},{"a":59472,"t":"byte","b":[17,0,2,25,142,28,2,69]},{"a":59480,"t":"byte","b":[142,28,142,28,142,21,142,7]},{"a":59488,"t":"byte","b":[16,2,2,25,142,26,2,69]},{"a":59496,"t":"byte","b":[142,26,142,26,142,20,142,6]},{"a":59504,"t":"byte","b":[2,25,142,26,2,69,142,26]},{"a":59512,"t":"byte","b":[142,26,142,26,17,1,0,254]},{"a":59520,"t":"byte","b":[16,255,0,1,0,1,3,17]},{"a":59528,"t":"byte","b":[2,5,10,37,11,180,0,10]},{"a":59536,"t":"byte","b":[197,10,205,10,206,10,197,10]},{"a":59544,"t":"byte","b":[204,10,205,10,197,10,201,10]},{"a":59552,"t":"byte","b":[197,10,196,10,195,10,202,10]},{"a":59560,"t":"byte","b":[197,10,198,10,195,10,193,10]},{"a":59568,"t":"byte","b":[190,10,195,10,190,10,194,10]},{"a":59576,"t":"byte","b":[195,10,194,10,185,10,189,10]},{"a":59584,"t":"byte","b":[190,10,185,10,189,10,187,10]},{"a":59592,"t":"byte","b":[190,10,186,10,189,10,193,9]},{"a":59600,"t":"byte","b":[188,9,195,9,191,9,197,9]},{"a":59608,"t":"byte","b":[193,9,195,9,197,9,199,9]},{"a":59616,"t":"byte","b":[195,9,201,9,197,9,204,9]},{"a":59624,"t":"byte","b":[201,9,197,9,194,9,202,9]},{"a":59632,"t":"byte","b":[204,9,206,9,207,9,209,9]},{"a":59640,"t":"byte","b":[206,9,202,9,198,9,197,18]},{"a":59648,"l":"tune_treasure_2","c":"The rest of the treasure tune's streams.","t":"byte","b":[209,18,197,18,209,18,0,8]},{"a":59656,"t":"byte","b":[193,8,202,8,192,8,193,8]},{"a":59664,"t":"byte","b":[198,8,193,8,190,8,189,8]},{"a":59672,"t":"byte","b":[185,8,197,8,195,8,193,8]},{"a":59680,"t":"byte","b":[189,8,184,8,185,8,190,8]},{"a":59688,"t":"byte","b":[183,8,185,8,183,8,182,8]},{"a":59696,"t":"byte","b":[180,8,182,8,180,8,178,16]},{"a":59704,"t":"byte","b":[190,16,178,16,190,16,0,7]},{"a":59712,"t":"byte","b":[190,7,197,7,196,7,197,7]},{"a":59720,"t":"byte","b":[201,9,205,7,209,7,201,7]},{"a":59728,"t":"byte","b":[197,7,205,7,204,7,201,7]},{"a":59736,"t":"byte","b":[204,7,201,7,207,7,204,7]},{"a":59744,"t":"byte","b":[205,7,201,7,197,7,202,7]},{"a":59752,"t":"byte","b":[197,7,204,7,197,7,205,7]},{"a":59760,"t":"byte","b":[204,7,205,7,210,7,214,14]},{"a":59768,"t":"byte","b":[213,7,214,7,216,7,217,6]},{"a":59776,"t":"byte","b":[218,7,221,6,218,7,214,6]},{"a":59784,"t":"byte","b":[209,7,206,6,207,7,209,6]},{"a":59792,"t":"byte","b":[206,7,202,6,214,7,203,6]},{"a":59800,"t":"byte","b":[207,7,210,6,205,7,207,6]},{"a":59808,"t":"byte","b":[210,7,207,6,210,7,215,6]},{"a":59816,"t":"byte","b":[210,7,219,6,218,7,214,6]},{"a":59824,"t":"byte","b":[209,7,207,6,206,26,17,1]},{"a":59832,"t":"byte","b":[0,254,16,255,0,1]},{"a":59838,"t":"gap","n":66},{"a":59904,"l":"tune_jingle","c":"The file DITTIDATA 146: the level jingle for the music player at $E000 (music_init with $EA00, from level_intro): a header of the voices' offsets ($3A, $64 ...), then each voice's commands and notes.","t":"byte","b":[58,0,100,0,1,15,0,1]},{"a":59912,"t":"byte","b":[5,105,3,65,2,24,10,44]},{"a":59920,"t":"byte","b":[5,104,4,2,14,20,20,6]},{"a":59928,"t":"byte","b":[17,0,147,8,150,8,152,8]},{"a":59936,"t":"byte","b":[152,8,150,8,152,16,152,8]},{"a":59944,"t":"byte","b":[27,250,16,2,147,8,150,8]},{"a":59952,"t":"byte","b":[152,8,152,8,150,8,152,24]},{"a":59960,"t":"byte","b":[0,1,0,1,30,1,0,1]},{"a":59968,"t":"byte","b":[20,6,3,65,4,2,14,150]},{"a":59976,"t":"byte","b":[2,53,11,30,10,67,0,8]},{"a":59984,"t":"byte","b":[17,0,174,8,176,8,169,8]},{"a":59992,"t":"byte","b":[171,8,164,16,164,16,16,3]},{"a":60000,"t":"byte","b":[17,1,0,254,16,255,0,1]},{"a":60008,"t":"byte","b":[0,1,3,0,2,53,10,67]},{"a":60016,"t":"byte","b":[4,1,14,50,20,6,32,30]},{"a":60024,"t":"byte","b":[17,0,147,8,150,8,152,8]},{"a":60032,"t":"byte","b":[152,8,150,8,152,16,152,8]},{"a":60040,"t":"byte","b":[16,3,17,1,0,254,16,255]},{"a":60048,"t":"byte","b":[0,1,167,0,224,0,224,0]},{"a":60056,"t":"byte","b":[224]},{"a":60057,"t":"gap","n":1383},{"a":61440,"l":"sfx_table","c":"The file OBJDIS from its start: the offset from $F000 of each of the 18 sound effects' streams (0-$11), two bytes each, which sfx_start reads.","t":"byte","b":[249],"x":[52786]},{"a":61441,"l":"sfx_table_hi","c":"The offsets' high bytes.","t":"byte","b":[1,10,2,168,3,127,3,74],"x":[52793]},{"a":61449,"t":"byte","b":[1,36,0,78,2,87,0,217]},{"a":61457,"t":"byte","b":[3,85,1,59,1,146,1,27]},{"a":61465,"t":"byte","b":[2,19,3,50,3,144,0,187]},{"a":61473,"t":"byte","b":[2,2,3]},{"a":61476,"l":"sfx_streams","c":"The sound effects' streams: two bytes a frame (the first with sustain/release in its high nibble and the noise choice in its low, the second the pitch), each effect ending with a zero byte.","t":"byte","b":[97,13,210,13,241,13,241,10]},{"a":61484,"t":"byte","b":[242,10,241,13,241,13,242,11]},{"a":61492,"t":"byte","b":[241,10,225,13,226,13,209,10]},{"a":61500,"t":"byte","b":[193,10,194,12,177,12,177,12]},{"a":61508,"t":"byte","b":[162,12,161,13,145,11,146,11]},{"a":61516,"t":"byte","b":[129,13,129,12,130,11,113,10]},{"a":61524,"t":"byte","b":[113,12,0,160,18,240,18,240]},{"a":61532,"t":"byte","b":[18,240,9,240,9,208,9,208]},{"a":61540,"t":"byte","b":[9,208,9,192,9,192,9,192]},{"a":61548,"t":"byte","b":[16,192,16,192,16,176,16,176]},{"a":61556,"t":"byte","b":[16,176,16,176,16,144,16,160]},{"a":61564,"t":"byte","b":[16,112,16,144,16,96,16,128]},{"a":61572,"t":"byte","b":[16,80,16,112,16,64,16,96]},{"a":61580,"t":"byte","b":[16,48,16,0,208,123,240,123]},{"a":61588,"t":"byte","b":[240,123,240,123,224,123,208,123]},{"a":61596,"t":"byte","b":[160,123,160,123,240,116,240,115]},{"a":61604,"t":"byte","b":[240,115,240,115,224,115,208,115]},{"a":61612,"t":"byte","b":[160,115,160,115,240,123,240,123]},{"a":61620,"t":"byte","b":[240,123,240,123,224,123,208,123]},{"a":61628,"t":"byte","b":[160,123,160,123,240,132,240,132]},{"a":61636,"t":"byte","b":[240,132,240,132,224,132,208,132]},{"a":61644,"t":"byte","b":[160,132,160,132,240,140,240,140]},{"a":61652,"t":"byte","b":[240,140,240,140,240,140,224,140]},{"a":61660,"t":"byte","b":[160,140,160,140,240,147,240,147]},{"a":61668,"t":"byte","b":[240,147,240,147,240,147,208,147]},{"a":61676,"t":"byte","b":[160,147,160,155,224,155,224,155]},{"a":61684,"t":"byte","b":[224,155,224,155,224,155,224,155]},{"a":61692,"t":"byte","b":[160,155,16,255]},{"a":61696,"l":"sfx_streams_2","c":"The sound effects' streams from $F100 to $F1FF.","t":"byte","b":[16,255,16,255,16,255,16,255]},{"a":61704,"t":"byte","b":[16,255,16,254,208,207,208,207]},{"a":61712,"t":"byte","b":[208,207,208,207,208,207,208,207]},{"a":61720,"t":"byte","b":[192,207,176,207,176,207,176,207]},{"a":61728,"t":"byte","b":[160,207,160,207,160,207,144,207]},{"a":61736,"t":"byte","b":[144,207,128,207,128,207,128,207]},{"a":61744,"t":"byte","b":[128,207,112,207,112,207,96,207]},{"a":61752,"t":"byte","b":[96,207,0,112,223,208,213,240]},{"a":61760,"t":"byte","b":[232,240,238,224,237,192,239,112]},{"a":61768,"t":"byte","b":[252,0,104,16,185,31,185,30]},{"a":61776,"t":"byte","b":[201,50,73,102,0,255,24,190]},{"a":61784,"t":"byte","b":[26,238,24,173,26,236,23,172]},{"a":61792,"t":"byte","b":[26,235,23,171,26,234,24,170]},{"a":61800,"t":"byte","b":[26,234,24,170,26,217,23,153]},{"a":61808,"t":"byte","b":[26,200,24,136,26,184,24,119]},{"a":61816,"t":"byte","b":[26,167,24,102,26,149,23,84]},{"a":61824,"t":"byte","b":[26,132,24,67,26,117,24,51]},{"a":61832,"t":"byte","b":[26,100,24,35,26,82,24,33]},{"a":61840,"t":"byte","b":[26,0,240,236,240,225,240,215]},{"a":61848,"t":"byte","b":[240,206,240,200,240,196,240,193]},{"a":61856,"t":"byte","b":[240,191,240,189,240,187,240,185]},{"a":61864,"t":"byte","b":[208,183,208,180,208,177,208,175]},{"a":61872,"t":"byte","b":[208,174,208,174,208,174,208,175]},{"a":61880,"t":"byte","b":[208,177,208,179,208,181,208,183]},{"a":61888,"t":"byte","b":[208,185,208,186,208,185,208,184]},{"a":61896,"t":"byte","b":[192,183,192,180,192,176,192,172]},{"a":61904,"t":"byte","b":[176,169,176,166,176,161,176,157]},{"a":61912,"t":"byte","b":[160,154,160,151,160,149,144,147]},{"a":61920,"t":"byte","b":[144,144,128,147,128,149,128,151]},{"a":61928,"t":"byte","b":[112,153,112,153,112,151,112,149]},{"a":61936,"t":"byte","b":[96,147,96,144,96,139,96,134]},{"a":61944,"t":"byte","b":[0,208,128,176,124,128,119,112]},{"a":61952,"l":"sfx_streams_3","c":"The sound effects' streams from $F200 to $F2FF.","t":"byte","b":[115,96,113,128,117,160,130,208]},{"a":61960,"t":"byte","b":[143,0,208,123,176,135,128,144]},{"a":61968,"t":"byte","b":[112,152,96,158,112,160,128,157]},{"a":61976,"t":"byte","b":[176,155,0,112,12,112,14,96]},{"a":61984,"t":"byte","b":[16,96,19,96,23,80,28,80]},{"a":61992,"t":"byte","b":[33,80,36,64,39,64,42,64]},{"a":62000,"t":"byte","b":[45,64,48,64,52,48,57,48]},{"a":62008,"t":"byte","b":[60,48,62,48,65,48,69,48]},{"a":62016,"t":"byte","b":[75,48,82,32,89,32,97,32]},{"a":62024,"t":"byte","b":[106,32,115,16,125,0,176,139]},{"a":62032,"t":"byte","b":[192,138,224,139,224,117,240,91]},{"a":62040,"t":"byte","b":[240,91,240,90,240,111,240,111]},{"a":62048,"t":"byte","b":[240,111,240,111,240,120,240,131]},{"a":62056,"t":"byte","b":[240,131,240,131,240,131,240,131]},{"a":62064,"t":"byte","b":[224,141,224,150,208,151,208,151]},{"a":62072,"t":"byte","b":[192,151,192,151,192,161,192,170]},{"a":62080,"t":"byte","b":[192,170,192,170,192,170,192,170]},{"a":62088,"t":"byte","b":[176,181,176,190,176,190,176,190]},{"a":62096,"t":"byte","b":[176,190,176,190,176,201,160,211]},{"a":62104,"t":"byte","b":[160,211,160,211,160,211,160,211]},{"a":62112,"t":"byte","b":[160,221,144,230,144,230,144,230]},{"a":62120,"t":"byte","b":[144,230,128,230,128,230,128,240]},{"a":62128,"t":"byte","b":[112,251,112,251,96,251,80,251]},{"a":62136,"t":"byte","b":[80,251,0,241,18,241,18,241]},{"a":62144,"t":"byte","b":[18,242,18,241,18,241,18,241]},{"a":62152,"t":"byte","b":[18,242,18,241,18,225,18,225]},{"a":62160,"t":"byte","b":[18,225,18,210,18,209,18,208]},{"a":62168,"t":"byte","b":[18,209,18,209,18,210,18,193]},{"a":62176,"t":"byte","b":[18,192,18,193,18,193,18,194]},{"a":62184,"t":"byte","b":[18,177,18,177,18,176,18,177]},{"a":62192,"t":"byte","b":[18,176,18,161,18,160,18,145]},{"a":62200,"t":"byte","b":[18,144,18,145,18,113,18,112]},{"a":62208,"l":"sfx_streams_4","c":"The last effect streams, to $F3EA.","t":"byte","b":[18,0,111,136,189,136,219,136]},{"a":62216,"t":"byte","b":[233,136,232,119,214,102,165,85]},{"a":62224,"t":"byte","b":[131,68,0,192,111,240,122,240]},{"a":62232,"t":"byte","b":[110,240,122,240,111,240,122,240]},{"a":62240,"t":"byte","b":[111,224,122,208,111,192,122,176]},{"a":62248,"t":"byte","b":[111,160,122,144,111,128,122,112]},{"a":62256,"t":"byte","b":[111,0,80,105,240,118,224,130]},{"a":62264,"t":"byte","b":[224,138,224,145,224,152,224,159]},{"a":62272,"t":"byte","b":[208,165,208,169,208,174,208,179]},{"a":62280,"t":"byte","b":[192,182,192,184,192,186,192,188]},{"a":62288,"t":"byte","b":[176,189,176,188,176,188,176,188]},{"a":62296,"t":"byte","b":[160,188,160,187,144,186,144,185]},{"a":62304,"t":"byte","b":[128,185,128,184,112,184,112,184]},{"a":62312,"t":"byte","b":[96,184,96,184,80,184,80,185]},{"a":62320,"t":"byte","b":[64,185,64,184,48,185,32,187]},{"a":62328,"t":"byte","b":[32,192,16,192,16,196,0,78]},{"a":62336,"t":"byte","b":[9,241,11,237,12,210,15,220]},{"a":62344,"t":"byte","b":[17,211,17,219,19,212,19,218]},{"a":62352,"t":"byte","b":[19,213,19,201,21,182,21,184]},{"a":62360,"t":"byte","b":[21,166,21,167,21,135,21,119]},{"a":62368,"t":"byte","b":[21,119,21,71,21,55,21,0]},{"a":62376,"t":"byte","b":[241,80,225,48,240,80,224,48]},{"a":62384,"t":"byte","b":[241,80,225,48,240,80,224,48]},{"a":62392,"t":"byte","b":[241,80,225,48,240,80,224,48]},{"a":62400,"t":"byte","b":[241,80,225,48,240,80,224,48]},{"a":62408,"t":"byte","b":[241,80,225,48,240,80,224,48]},{"a":62416,"t":"byte","b":[241,80,225,48,240,80,224,48]},{"a":62424,"t":"byte","b":[0,95,170,175,170,175,170,175]},{"a":62432,"t":"byte","b":[170,175,153,175,153,159,136,31]},{"a":62440,"t":"byte","b":[119,0,0]},{"a":62443,"l":"sfx_tail","c":"Bytes after the last effect, before the tile table: nothing reads them.","t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":62451,"t":"byte","b":[255,0,255,0,255,0,255,0]},{"a":62459,"t":"byte","b":[255,0,255,204,35]},{"a":62464,"l":"tile_chars","c":"The four characters of each of the 128 tiles (top left, top right, bottom left, bottom right), four bytes a tile: tile_draw, tile_redraw, drop_tile and level drawing read it.","t":"byte","b":[0,0,0,0,4,7,10,12]},{"a":62472,"t":"byte","b":[1,2,10,11,4,8,10,11]},{"a":62480,"t":"byte","b":[1,3,4,7,4,7,4,7]},{"a":62488,"t":"byte","b":[1,2,4,5,4,8,4,5]},{"a":62496,"t":"byte","b":[2,3,11,12,9,7,11,12]},{"a":62504,"t":"byte","b":[2,2,11,11,9,8,11,11]},{"a":62512,"t":"byte","b":[2,3,6,7,9,7,6,7]},{"a":62520,"t":"byte","b":[2,2,6,5,9,8,6,5]},{"a":62528,"t":"byte","b":[1,3,10,12,77,78,79,76]},{"a":62536,"t":"byte","b":[60,61,62,63,25,26,27,28]},{"a":62544,"t":"byte","b":[34,35,36,37,38,39,40,41]},{"a":62552,"t":"byte","b":[42,43,44,45,42,43,44,45]},{"a":62560,"t":"byte","b":[48,49,50,51,42,43,46,47]},{"a":62568,"t":"byte","b":[42,43,46,47,42,43,46,47]},{"a":62576,"t":"byte","b":[42,43,46,47,42,43,46,47]},{"a":62584,"t":"byte","b":[42,43,46,47,13,14,0,0]},{"a":62592,"t":"byte","b":[83,84,85,86,82,18,19,20]},{"a":62600,"t":"byte","b":[17,18,19,20,89,90,23,24]},{"a":62608,"t":"byte","b":[87,88,23,24,21,22,23,24]},{"a":62616,"t":"byte","b":[89,90,23,24,87,88,23,24]},{"a":62624,"t":"byte","b":[21,22,23,24,89,90,23,24]},{"a":62632,"t":"byte","b":[87,88,23,24,21,22,23,24]},{"a":62640,"t":"byte","b":[89,90,23,24,87,88,23,24]},{"a":62648,"t":"byte","b":[21,22,23,24,56,57,58,59]},{"a":62656,"t":"byte","b":[52,53,54,55,80,81,36,37]},{"a":62664,"t":"byte","b":[13,14,15,16,64,65,66,67]},{"a":62672,"t":"byte","b":[68,69,70,71,72,73,74,75]},{"a":62680,"t":"byte","b":[32,33,29,31,32,33,29,30]},{"a":62688,"t":"byte","b":[32,33,29,31,0,0,0,0]},{"a":62696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62704,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62712,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62720,"l":"tile_chars_2","c":"The characters of tiles $40-$7F: the monsters (six kinds, eight facings).","t":"byte","b":[96,97,98,99,100,101,102,103]},{"a":62728,"t":"byte","b":[104,105,106,107,108,109,110,111]},{"a":62736,"t":"byte","b":[112,113,114,115,116,117,118,119]},{"a":62744,"t":"byte","b":[120,121,122,123,124,125,126,127]},{"a":62752,"t":"byte","b":[128,129,130,131,132,133,134,135]},{"a":62760,"t":"byte","b":[136,137,138,139,140,141,142,143]},{"a":62768,"t":"byte","b":[144,145,146,147,148,149,150,151]},{"a":62776,"t":"byte","b":[152,153,154,155,156,157,158,159]},{"a":62784,"t":"byte","b":[160,161,162,163,164,165,166,167]},{"a":62792,"t":"byte","b":[168,169,170,171,172,173,174,175]},{"a":62800,"t":"byte","b":[176,177,178,179,180,181,182,183]},{"a":62808,"t":"byte","b":[184,185,186,187,188,189,190,191]},{"a":62816,"t":"byte","b":[95,92,93,94,95,92,93,94]},{"a":62824,"t":"byte","b":[95,92,93,94,95,92,93,94]},{"a":62832,"t":"byte","b":[95,92,93,94,95,92,93,94]},{"a":62840,"t":"byte","b":[95,92,93,94,95,92,93,94]},{"a":62848,"t":"byte","b":[192,193,194,195,196,197,198,199]},{"a":62856,"t":"byte","b":[200,201,202,203,204,205,206,207]},{"a":62864,"t":"byte","b":[208,209,210,211,212,213,214,215]},{"a":62872,"t":"byte","b":[216,217,218,219,220,221,222,223]},{"a":62880,"t":"byte","b":[224,225,226,227,228,229,230,231]},{"a":62888,"t":"byte","b":[232,233,234,235,236,237,238,239]},{"a":62896,"t":"byte","b":[240,241,242,243,244,245,246,247]},{"a":62904,"t":"byte","b":[248,249,250,251,252,253,254,255]},{"a":62912,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62936,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62944,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62968,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62976,"l":"tile_colours","c":"The colour of each tile, four bytes a tile (one per character); maze_style rewrites the walls' colours ($F604-$F643, $F6CC-$F6D7) per level.","t":"byte","b":[8,8,8,8]},{"a":62980,"l":"tile_colours_walls","c":"The colours of tiles 1-16, the walls, set by maze_style.","t":"byte","b":[10,10,10,10,10,10,10,10],"x":[36088]},{"a":62988,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":62996,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63004,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63012,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63020,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63028,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63036,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63044,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63052,"t":"byte","b":[10,10,10,10,15,15,15,15]},{"a":63060,"t":"byte","b":[10,10,10,10,14,14,14,14]},{"a":63068,"t":"byte","b":[15,15,15,15,10,10,15,10]},{"a":63076,"t":"byte","b":[15,15,15,15,12,12,12,12]},{"a":63084,"t":"byte","b":[13,13,13,13,10,10,10,10]},{"a":63092,"t":"byte","b":[14,14,14,14,11,11,11,11]},{"a":63100,"t":"byte","b":[15,15,15,15,11,11,11,11]},{"a":63108,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63116,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63124,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63132,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63140,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63148,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63156,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63164,"t":"byte","b":[14,14,14,14,10,10,10,10]},{"a":63172,"t":"byte","b":[15,15,15,15,15,15,15,15]},{"a":63180,"l":"tile_colours_cracked","c":"The colours of tiles $33-$35, the crumbling walls, set by maze_style.","t":"byte","b":[10,10,10,10,10,10,10,10],"x":[36096]},{"a":63188,"t":"byte","b":[10,10,10,10,1,1,0,0]},{"a":63196,"t":"byte","b":[1,1,1,1,1,1,1,1]},{"a":63204,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63212,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63220,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63228,"t":"byte","b":[8,8,8,8]},{"a":63232,"l":"tile_colours_monsters","c":"The colours of tiles $40-$7F, the monsters.","t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63240,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63248,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63256,"t":"byte","b":[11,11,11,11,11,11,11,11]},{"a":63264,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63272,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63280,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63288,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63296,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63304,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63312,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63320,"t":"byte","b":[10,10,10,10,10,10,10,10]},{"a":63328,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":63336,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":63344,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":63352,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":63360,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63368,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63376,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63384,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63392,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63400,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63408,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63416,"t":"byte","b":[12,12,12,12,12,12,12,12]},{"a":63424,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63432,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63440,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63448,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63456,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63464,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63472,"t":"byte","b":[0,255,0,255,0,255,0,255]},{"a":63480,"t":"byte","b":[0,255,0,255,0,255,156,35]},{"a":63488,"t":"gap","n":2042},{"a":65530,"l":"hw_vectors","c":"The hardware vectors in the RAM under the KERNAL: NMI $827F (nmi_rti), reset $0000 (unused: a reset reads the ROM), IRQ $8268 (irq_entry), set by irq_install.","t":"byte","b":[127,130,0,0,104,130],"x":[33435]}]}