{"schema":1,"platform":"c64","game":"darkman","part":"level1","title":"Darkman","build":"PAL original, two-sided G64; level 1 load in play","symbols_sha256":"2a7890b4399b29557c1419c0a04c3a3c9a7f172fc9e94bd2dcba21c0a01a4350","snapshot":{"file":"play-level1.vsf","sha256":"87d620e84a39a71699e9648029e2c27c0f02864a0cbb847421a99a436d72d07a"},"index":[{"a":2592,"n":"level_entry","k":"routine","len":62,"c":true},{"a":2595,"n":"j_0A23","k":"branch","len":1,"c":false},{"a":2615,"n":"b_0A37","k":"branch","len":1,"c":false},{"a":2618,"n":"j_0A3A","k":"branch","len":1,"c":false},{"a":2654,"n":"entry_hook","k":"routine","len":1,"c":true},{"a":2655,"n":"ecm_flag","k":"variable","len":1,"c":true},{"a":2656,"n":"title_setup","k":"routine","len":224,"c":true},{"a":2762,"n":"b_0ACA","k":"branch","len":1,"c":false},{"a":2880,"n":"name_entered_flag","k":"variable","len":1,"c":true},{"a":2881,"n":"swap_title_chars","k":"routine","len":34,"c":true},{"a":2883,"n":"b_0B43","k":"branch","len":1,"c":false},{"a":2915,"n":"draw_title_rows","k":"routine","len":32,"c":true},{"a":2917,"n":"b_0B65","k":"branch","len":1,"c":false},{"a":2947,"n":"title_rows","k":"table","len":21,"c":true},{"a":2968,"n":"title_row_1","k":"table","len":21,"c":true},{"a":2989,"n":"title_row_2","k":"table","len":21,"c":true},{"a":3010,"n":"title_row_3","k":"table","len":21,"c":true},{"a":3031,"n":"title_shapes","k":"table","len":256,"c":true},{"a":3287,"n":"title_shapes_b","k":"table","len":256,"c":true},{"a":3591,"n":"fill_colour_rows","k":"routine","len":20,"c":true},{"a":3593,"n":"b_0E09","k":"branch","len":1,"c":false},{"a":3611,"n":"fill_screen_rows","k":"routine","len":20,"c":true},{"a":3613,"n":"b_0E1D","k":"branch","len":1,"c":false},{"a":3631,"n":"key_code","k":"variable","len":1,"c":true},{"a":3632,"n":"read_keys","k":"routine","len":118,"c":true},{"a":3664,"n":"b_0E50","k":"branch","len":1,"c":false},{"a":3675,"n":"b_0E5B","k":"branch","len":1,"c":false},{"a":3678,"n":"j_0E5E","k":"branch","len":1,"c":false},{"a":3690,"n":"j_0E6A","k":"branch","len":1,"c":false},{"a":3698,"n":"b_0E72","k":"branch","len":1,"c":false},{"a":3739,"n":"b_0E9B","k":"branch","len":1,"c":false},{"a":3745,"n":"b_0EA1","k":"branch","len":1,"c":false},{"a":3751,"n":"key_line_mask","k":"variable","len":1,"c":true},{"a":3752,"n":"key_line","k":"variable","len":1,"c":true},{"a":3753,"n":"key_bits","k":"variable","len":1,"c":true},{"a":3754,"n":"key_table","k":"table","len":64,"c":true},{"a":3818,"n":"title_page","k":"variable","len":2,"c":true},{"a":3820,"n":"title_wait_fire","k":"routine","len":85,"c":true},{"a":3863,"n":"b_0F17","k":"branch","len":1,"c":false},{"a":3869,"n":"b_0F1D","k":"branch","len":1,"c":false},{"a":3896,"n":"j_0F38","k":"branch","len":1,"c":false},{"a":3904,"n":"r_0F40","k":"branch","len":1,"c":false},{"a":3905,"n":"hide_sprites_flag","k":"variable","len":1,"c":true},{"a":3906,"n":"skip_count","k":"variable","len":1,"c":true},{"a":3907,"n":"text_index","k":"variable","len":1,"c":true},{"a":3908,"n":"type_briefing","k":"routine","len":77,"c":true},{"a":3943,"n":"j_0F67","k":"branch","len":1,"c":false},{"a":3957,"n":"b_0F75","k":"branch","len":1,"c":false},{"a":3969,"n":"b_0F81","k":"branch","len":1,"c":false},{"a":3976,"n":"j_0F88","k":"branch","len":1,"c":false},{"a":3985,"n":"a_0F91","k":"routine","len":1,"c":true},{"a":3986,"n":"type_briefing_part_2","k":"routine","len":84,"c":true},{"a":4005,"n":"b_0FA5","k":"branch","len":1,"c":false},{"a":4008,"n":"j_0FA8","k":"branch","len":1,"c":false},{"a":4018,"n":"b_0FB2","k":"branch","len":1,"c":false},{"a":4047,"n":"b_0FCF","k":"branch","len":1,"c":false},{"a":4054,"n":"b_0FD6","k":"branch","len":1,"c":false},{"a":4064,"n":"b_0FE0","k":"branch","len":1,"c":false},{"a":4070,"n":"level_intro_text","k":"table","len":26,"c":true},{"a":4096,"n":"level_intro_text_part_2","k":"table","len":163,"c":true},{"a":4259,"n":"high_scores","k":"table","len":82,"c":true},{"a":4341,"n":"last_score","k":"table","len":8,"c":true},{"a":4349,"n":"new_score","k":"table","len":10,"c":true},{"a":4359,"n":"new_score_digits","k":"table","len":8,"c":true},{"a":4367,"n":"new_high_flag","k":"variable","len":1,"c":true},{"a":4368,"n":"high_score_check","k":"routine","len":46,"c":true},{"a":4376,"n":"b_1118","k":"branch","len":1,"c":false},{"a":4389,"n":"b_1125","k":"branch","len":1,"c":false},{"a":4402,"n":"b_1132","k":"branch","len":1,"c":false},{"a":4407,"n":"r_1137","k":"branch","len":1,"c":false},{"a":4408,"n":"j_1138","k":"branch","len":1,"c":false},{"a":4414,"n":"insert_name_unused","k":"routine","len":17,"c":true},{"a":4431,"n":"insert_score","k":"routine","len":89,"c":true},{"a":4433,"n":"b_1151","k":"branch","len":1,"c":false},{"a":4462,"n":"j_116E","k":"branch","len":1,"c":false},{"a":4464,"n":"b_1170","k":"branch","len":1,"c":false},{"a":4477,"n":"r_117D","k":"branch","len":1,"c":false},{"a":4478,"n":"b_117E","k":"branch","len":1,"c":false},{"a":4480,"n":"b_1180","k":"branch","len":1,"c":false},{"a":4520,"n":"scores_title_text","k":"table","len":20,"c":true},{"a":4540,"n":"show_scores","k":"routine","len":114,"c":true},{"a":4552,"n":"b_11C8","k":"branch","len":1,"c":false},{"a":4589,"n":"b_11ED","k":"branch","len":1,"c":false},{"a":4591,"n":"b_11EF","k":"branch","len":1,"c":false},{"a":4603,"n":"b_11FB","k":"branch","len":1,"c":false},{"a":4612,"n":"b_1204","k":"branch","len":1,"c":false},{"a":4615,"n":"j_1207","k":"branch","len":1,"c":false},{"a":4654,"n":"high_score_text","k":"table","len":31,"c":true},{"a":4685,"n":"name_entry_zero","k":"variable","len":1,"c":true},{"a":4686,"n":"title_idle","k":"routine","len":239,"c":true},{"a":4704,"n":"r_1260","k":"branch","len":1,"c":false},{"a":4705,"n":"j_1261","k":"branch","len":1,"c":false},{"a":4711,"n":"b_1267","k":"branch","len":1,"c":false},{"a":4728,"n":"b_1278","k":"branch","len":1,"c":false},{"a":4745,"n":"b_1289","k":"branch","len":1,"c":false},{"a":4757,"n":"b_1295","k":"branch","len":1,"c":false},{"a":4760,"n":"j_1298","k":"branch","len":1,"c":false},{"a":4775,"n":"b_12A7","k":"branch","len":1,"c":false},{"a":4787,"n":"b_12B3","k":"branch","len":1,"c":false},{"a":4790,"n":"j_12B6","k":"branch","len":1,"c":false},{"a":4803,"n":"b_12C3","k":"branch","len":1,"c":false},{"a":4823,"n":"b_12D7","k":"branch","len":1,"c":false},{"a":4838,"n":"j_12E6","k":"branch","len":1,"c":false},{"a":4860,"n":"b_12FC","k":"branch","len":1,"c":false},{"a":4865,"n":"b_1301","k":"branch","len":1,"c":false},{"a":4889,"n":"b_1319","k":"branch","len":1,"c":false},{"a":4900,"n":"b_1324","k":"branch","len":1,"c":false},{"a":4925,"n":"read_name_row","k":"routine","len":26,"c":true},{"a":4927,"n":"b_133F","k":"branch","len":1,"c":false},{"a":4939,"n":"b_134B","k":"branch","len":1,"c":false},{"a":4942,"n":"j_134E","k":"branch","len":1,"c":false},{"a":4951,"n":"name_buffer","k":"table","len":8,"c":true},{"a":4959,"n":"enter_name_text","k":"table","len":23,"c":true},{"a":4982,"n":"cheat_code","k":"table","len":13,"c":true},{"a":4995,"n":"cheat_index","k":"variable","len":1,"c":true},{"a":4996,"n":"cheat_key_held","k":"variable","len":1,"c":true},{"a":4997,"n":"cheat_check","k":"routine","len":68,"c":true},{"a":5065,"n":"show_credits","k":"routine","len":346,"c":true},{"a":5107,"n":"j_13F3","k":"branch","len":1,"c":false},{"a":5122,"n":"b_1402","k":"branch","len":1,"c":false},{"a":5125,"n":"j_1405","k":"branch","len":1,"c":false},{"a":5138,"n":"b_1412","k":"branch","len":1,"c":false},{"a":5141,"n":"j_1415","k":"branch","len":1,"c":false},{"a":5156,"n":"b_1424","k":"branch","len":1,"c":false},{"a":5159,"n":"j_1427","k":"branch","len":1,"c":false},{"a":5172,"n":"b_1434","k":"branch","len":1,"c":false},{"a":5175,"n":"j_1437","k":"branch","len":1,"c":false},{"a":5190,"n":"b_1446","k":"branch","len":1,"c":false},{"a":5193,"n":"j_1449","k":"branch","len":1,"c":false},{"a":5206,"n":"b_1456","k":"branch","len":1,"c":false},{"a":5209,"n":"j_1459","k":"branch","len":1,"c":false},{"a":5224,"n":"b_1468","k":"branch","len":1,"c":false},{"a":5227,"n":"j_146B","k":"branch","len":1,"c":false},{"a":5240,"n":"b_1478","k":"branch","len":1,"c":false},{"a":5243,"n":"j_147B","k":"branch","len":1,"c":false},{"a":5258,"n":"b_148A","k":"branch","len":1,"c":false},{"a":5261,"n":"j_148D","k":"branch","len":1,"c":false},{"a":5274,"n":"b_149A","k":"branch","len":1,"c":false},{"a":5277,"n":"j_149D","k":"branch","len":1,"c":false},{"a":5292,"n":"b_14AC","k":"branch","len":1,"c":false},{"a":5295,"n":"j_14AF","k":"branch","len":1,"c":false},{"a":5308,"n":"b_14BC","k":"branch","len":1,"c":false},{"a":5311,"n":"j_14BF","k":"branch","len":1,"c":false},{"a":5326,"n":"b_14CE","k":"branch","len":1,"c":false},{"a":5329,"n":"j_14D1","k":"branch","len":1,"c":false},{"a":5342,"n":"b_14DE","k":"branch","len":1,"c":false},{"a":5345,"n":"j_14E1","k":"branch","len":1,"c":false},{"a":5360,"n":"b_14F0","k":"branch","len":1,"c":false},{"a":5363,"n":"j_14F3","k":"branch","len":1,"c":false},{"a":5376,"n":"b_1500","k":"branch","len":1,"c":false},{"a":5379,"n":"j_1503","k":"branch","len":1,"c":false},{"a":5394,"n":"b_1512","k":"branch","len":1,"c":false},{"a":5397,"n":"j_1515","k":"branch","len":1,"c":false},{"a":5410,"n":"r_1522","k":"branch","len":1,"c":false},{"a":5411,"n":"title_irq_top","k":"routine","len":159,"c":true},{"a":5570,"n":"title_irq_bottom","k":"routine","len":125,"c":true},{"a":5695,"n":"set_ecm_bit","k":"routine","len":23,"c":true},{"a":5718,"n":"set_ecm","k":"routine","len":31,"c":true},{"a":5732,"n":"b_1664","k":"branch","len":1,"c":false},{"a":5749,"n":"credits_text","k":"table","len":258,"c":true},{"a":6007,"n":"pause_check","k":"routine","len":39,"c":true},{"a":6019,"n":"b_1783","k":"branch","len":1,"c":false},{"a":6026,"n":"b_178A","k":"branch","len":1,"c":false},{"a":6033,"n":"b_1791","k":"branch","len":1,"c":false},{"a":6045,"n":"r_179D","k":"branch","len":1,"c":false},{"a":6046,"n":"play_loop","k":"routine","len":47,"c":true},{"a":6049,"n":"b_17A1","k":"branch","len":1,"c":false},{"a":6079,"n":"b_17BF","k":"branch","len":1,"c":false},{"a":6084,"n":"b_17C4","k":"branch","len":1,"c":false},{"a":6090,"n":"b_17CA","k":"branch","len":1,"c":false},{"a":6093,"n":"blocked_left","k":"routine","len":47,"c":true},{"a":6095,"n":"b_17CF","k":"branch","len":1,"c":false},{"a":6104,"n":"b_17D8","k":"branch","len":1,"c":false},{"a":6110,"n":"b_17DE","k":"branch","len":1,"c":false},{"a":6140,"n":"rts_17fc","k":"routine","len":1,"c":true},{"a":6141,"n":"blocked_left_above","k":"routine","len":44,"c":true},{"a":6152,"n":"b_1808","k":"branch","len":1,"c":false},{"a":6162,"n":"b_1812","k":"branch","len":1,"c":false},{"a":6185,"n":"blocked_top","k":"variable","len":1,"c":true},{"a":6186,"n":"blocked_right","k":"routine","len":47,"c":true},{"a":6188,"n":"b_182C","k":"branch","len":1,"c":false},{"a":6197,"n":"b_1835","k":"branch","len":1,"c":false},{"a":6203,"n":"b_183B","k":"branch","len":1,"c":false},{"a":6233,"n":"rts_1859","k":"routine","len":1,"c":true},{"a":6234,"n":"blocked_right_above","k":"routine","len":44,"c":true},{"a":6245,"n":"b_1865","k":"branch","len":1,"c":false},{"a":6255,"n":"b_186F","k":"branch","len":1,"c":false},{"a":6278,"n":"wipe_lengths","k":"table","len":56,"c":true},{"a":6334,"n":"wipe_lengths_tail","k":"variable","len":2,"c":true},{"a":6336,"n":"wipe_count","k":"variable","len":1,"c":true},{"a":6337,"n":"wipe_ptr","k":"variable","len":2,"c":true},{"a":6339,"n":"wipe_flag","k":"variable","len":1,"c":true},{"a":6341,"n":"wipe_screen","k":"routine","len":87,"c":true},{"a":6367,"n":"j_18DF","k":"branch","len":1,"c":false},{"a":6373,"n":"j_18E5","k":"branch","len":1,"c":false},{"a":6416,"n":"b_1910","k":"branch","len":1,"c":false},{"a":6428,"n":"wipe_saved_x","k":"routine","len":2,"c":true},{"a":6430,"n":"wipe_saved_y","k":"routine","len":1,"c":true},{"a":6431,"n":"wipe_screen_part_2","k":"routine","len":61,"c":true},{"a":6460,"n":"b_193C","k":"branch","len":1,"c":false},{"a":6492,"n":"game_over","k":"routine","len":141,"c":true},{"a":6582,"n":"j_19B6","k":"branch","len":1,"c":false},{"a":6598,"n":"b_19C6","k":"branch","len":1,"c":false},{"a":6601,"n":"j_19C9","k":"branch","len":1,"c":false},{"a":6608,"n":"b_19D0","k":"branch","len":1,"c":false},{"a":6633,"n":"game_over_part_2","k":"routine","len":25,"c":true},{"a":6658,"n":"game_over_text","k":"table","len":10,"c":true},{"a":6668,"n":"skip_key_check","k":"routine","len":18,"c":true},{"a":6685,"n":"r_1A1D","k":"branch","len":1,"c":false},{"a":6686,"n":"end_of_play","k":"variable","len":1,"c":true},{"a":6687,"n":"scroll_pos","k":"variable","len":2,"c":true},{"a":6689,"n":"play_setup","k":"routine","len":456,"c":true},{"a":6911,"n":"b_1AFF","k":"branch","len":1,"c":false},{"a":6926,"n":"b_1B0E","k":"branch","len":1,"c":false},{"a":6935,"n":"b_1B17","k":"branch","len":1,"c":false},{"a":7076,"n":"b_1BA4","k":"branch","len":1,"c":false},{"a":7145,"n":"copy_to_b000","k":"routine","len":40,"c":true},{"a":7163,"n":"b_1BFB","k":"branch","len":1,"c":false},{"a":7165,"n":"b_1BFD","k":"branch","len":1,"c":false},{"a":7185,"n":"copy_to_a000","k":"routine","len":37,"c":true},{"a":7203,"n":"b_1C23","k":"branch","len":1,"c":false},{"a":7205,"n":"b_1C25","k":"branch","len":1,"c":false},{"a":7222,"n":"load_panel_bitmap","k":"routine","len":12,"c":true},{"a":7224,"n":"b_1C38","k":"branch","len":1,"c":false},{"a":7234,"n":"panel_bitmap_source","k":"table","len":256,"c":true},{"a":7490,"n":"screen_flag","k":"variable","len":1,"c":true},{"a":7491,"n":"irq_panel","k":"routine","len":116,"c":true},{"a":7545,"n":"b_1D79","k":"branch","len":1,"c":false},{"a":7556,"n":"b_1D84","k":"branch","len":1,"c":false},{"a":7562,"n":"b_1D8A","k":"branch","len":1,"c":false},{"a":7596,"n":"b_1DAC","k":"branch","len":1,"c":false},{"a":7607,"n":"saved_a_1db7","k":"routine","len":2,"c":true},{"a":7609,"n":"saved_x_1db9","k":"routine","len":2,"c":true},{"a":7611,"n":"saved_y_1dbb","k":"routine","len":2,"c":true},{"a":7613,"n":"panel_countdown","k":"variable","len":1,"c":true},{"a":7614,"n":"panel_toggle","k":"variable","len":1,"c":true},{"a":7615,"n":"irq_bottom","k":"routine","len":92,"c":true},{"a":7706,"n":"b_1E1A","k":"branch","len":1,"c":false},{"a":7707,"n":"saved_a_1e1b","k":"routine","len":2,"c":true},{"a":7709,"n":"saved_x_1e1d","k":"routine","len":2,"c":true},{"a":7711,"n":"saved_y_1e1f","k":"routine","len":2,"c":true},{"a":7713,"n":"irq_top","k":"routine","len":203,"c":true},{"a":7771,"n":"b_1E5B","k":"branch","len":1,"c":false},{"a":7804,"n":"b_1E7C","k":"branch","len":1,"c":false},{"a":7832,"n":"b_1E98","k":"branch","len":1,"c":false},{"a":7834,"n":"j_1E9A","k":"branch","len":1,"c":false},{"a":7878,"n":"b_1EC6","k":"branch","len":1,"c":false},{"a":7900,"n":"b_1EDC","k":"branch","len":1,"c":false},{"a":7916,"n":"saved_a_1eec","k":"routine","len":2,"c":true},{"a":7918,"n":"saved_x_1eee","k":"routine","len":2,"c":true},{"a":7920,"n":"saved_y_1ef0","k":"routine","len":2,"c":true},{"a":7922,"n":"paused","k":"variable","len":1,"c":true},{"a":7923,"n":"fine_scroll","k":"variable","len":1,"c":true},{"a":7924,"n":"irq_2","k":"routine","len":70,"c":true},{"a":7994,"n":"saved_a_1f3a","k":"routine","len":2,"c":true},{"a":7996,"n":"saved_x_1f3c","k":"routine","len":2,"c":true},{"a":7998,"n":"saved_y_1f3e","k":"routine","len":2,"c":true},{"a":8000,"n":"shift_attack_sprite","k":"routine","len":100,"c":true},{"a":8029,"n":"r_1F5D","k":"branch","len":1,"c":false},{"a":8030,"n":"b_1F5E","k":"branch","len":1,"c":false},{"a":8050,"n":"b_1F72","k":"branch","len":1,"c":false},{"a":8080,"n":"b_1F90","k":"branch","len":1,"c":false},{"a":8099,"n":"r_1FA3","k":"branch","len":1,"c":false},{"a":8100,"n":"select_screen","k":"routine","len":17,"c":true},{"a":8111,"n":"b_1FAF","k":"branch","len":1,"c":false},{"a":8117,"n":"random","k":"routine","len":17,"c":true},{"a":8134,"n":"random_skip","k":"routine","len":14,"c":true},{"a":8137,"n":"b_1FC9","k":"branch","len":1,"c":false},{"a":8148,"n":"random_value","k":"variable","len":1,"c":true},{"a":8149,"n":"disabled_check","k":"routine","len":1,"c":true},{"a":8150,"n":"exit_check_unused","k":"routine","len":15,"c":true},{"a":8165,"n":"fill_screens","k":"routine","len":30,"c":true},{"a":8167,"n":"b_1FE7","k":"branch","len":1,"c":false},{"a":8195,"n":"fill_screen_c800","k":"routine","len":18,"c":true},{"a":8197,"n":"b_2005","k":"branch","len":1,"c":false},{"a":8213,"n":"fill_colour","k":"routine","len":18,"c":true},{"a":8215,"n":"b_2017","k":"branch","len":1,"c":false},{"a":8231,"n":"delay","k":"routine","len":9,"c":true},{"a":8232,"n":"b_2028","k":"branch","len":1,"c":false},{"a":8233,"n":"b_2029","k":"branch","len":1,"c":false},{"a":8240,"n":"nmi_handler","k":"routine","len":8,"c":true},{"a":8248,"n":"nmi_flag","k":"variable","len":1,"c":true},{"a":8249,"n":"delay_counter","k":"variable","len":2,"c":true},{"a":8251,"n":"joystick","k":"variable","len":1,"c":true},{"a":8252,"n":"draw_bottom_rows","k":"routine","len":34,"c":true},{"a":8254,"n":"b_203E","k":"branch","len":1,"c":false},{"a":8274,"n":"b_2052","k":"branch","len":1,"c":false},{"a":8286,"n":"map_column","k":"variable","len":2,"c":true},{"a":8288,"n":"scroll_speed","k":"variable","len":1,"c":true},{"a":8289,"n":"scroll_end","k":"variable","len":1,"c":true},{"a":8290,"n":"screen_copied","k":"variable","len":1,"c":true},{"a":8291,"n":"scroll_temp","k":"variable","len":1,"c":true},{"a":8292,"n":"scroll_total","k":"variable","len":2,"c":true},{"a":8294,"n":"scroll_step","k":"routine","len":98,"c":true},{"a":8300,"n":"b_206C","k":"branch","len":1,"c":false},{"a":8325,"n":"b_2085","k":"branch","len":1,"c":false},{"a":8355,"n":"b_20A3","k":"branch","len":1,"c":false},{"a":8370,"n":"j_20B2","k":"branch","len":1,"c":false},{"a":8392,"n":"scroll_saved_y","k":"routine","len":1,"c":true},{"a":8393,"n":"scroll_step_part_2","k":"routine","len":84,"c":true},{"a":8415,"n":"b_20DF","k":"branch","len":1,"c":false},{"a":8440,"n":"b_20F8","k":"branch","len":1,"c":false},{"a":8476,"n":"r_211C","k":"branch","len":1,"c":false},{"a":8477,"n":"pad_211d","k":"table","len":3,"c":true},{"a":8480,"n":"copy_screen","k":"routine","len":218,"c":true},{"a":8492,"n":"b_212C","k":"branch","len":1,"c":false},{"a":8594,"n":"b_2192","k":"branch","len":1,"c":false},{"a":8596,"n":"b_2194","k":"branch","len":1,"c":false},{"a":8698,"n":"shift_colour_left","k":"routine","len":110,"c":true},{"a":8703,"n":"b_21FF","k":"branch","len":1,"c":false},{"a":8808,"n":"half_column","k":"variable","len":1,"c":true},{"a":8809,"n":"draw_new_column","k":"routine","len":87,"c":true},{"a":8836,"n":"b_2284","k":"branch","len":1,"c":false},{"a":8859,"n":"b_229B","k":"branch","len":1,"c":false},{"a":8896,"n":"draw_map_cell","k":"routine","len":80,"c":true},{"a":8976,"n":"first_screen_chars_1","k":"table","len":170,"c":true},{"a":9146,"n":"first_screen_chars_2","k":"table","len":170,"c":true},{"a":9316,"n":"first_screen_chars_3","k":"table","len":170,"c":true},{"a":9486,"n":"first_screen_chars_4","k":"table","len":170,"c":true},{"a":9736,"n":"draw_first_screen","k":"routine","len":60,"c":true},{"a":9738,"n":"b_260A","k":"branch","len":1,"c":false},{"a":9796,"n":"player_state","k":"variable","len":1,"c":true},{"a":9797,"n":"state_table","k":"table","len":16,"c":true},{"a":9813,"n":"prev_x_wall","k":"variable","len":1,"c":true},{"a":9814,"n":"prev_y","k":"variable","len":1,"c":true},{"a":9815,"n":"player_x","k":"variable","len":1,"c":true},{"a":9816,"n":"player_y","k":"variable","len":1,"c":true},{"a":9817,"n":"player_x_hi","k":"variable","len":1,"c":true},{"a":9818,"n":"prev_x_edge","k":"variable","len":1,"c":true},{"a":9819,"n":"prev_x_hi","k":"variable","len":1,"c":true},{"a":9820,"n":"x_limit_lo","k":"variable","len":1,"c":true},{"a":9821,"n":"x_limit_hi","k":"variable","len":1,"c":true},{"a":9822,"n":"player_move","k":"routine","len":110,"c":true},{"a":9844,"n":"b_2674","k":"branch","len":1,"c":false},{"a":9869,"n":"b_268D","k":"branch","len":1,"c":false},{"a":9882,"n":"b_269A","k":"branch","len":1,"c":false},{"a":9932,"n":"state_routine_lo","k":"routine","len":2,"c":true},{"a":9934,"n":"player_move_part_2","k":"routine","len":4,"c":true},{"a":9938,"n":"pad_26d2","k":"variable","len":2,"c":true},{"a":9940,"n":"player_idle","k":"routine","len":1,"c":true},{"a":9941,"n":"walk_index","k":"variable","len":1,"c":true},{"a":9942,"n":"walk_left_frames","k":"table","len":18,"c":true},{"a":9960,"n":"walk_right_frames","k":"table","len":18,"c":true},{"a":9978,"n":"walk_toggle","k":"variable","len":1,"c":true},{"a":9979,"n":"walk_anim_left","k":"routine","len":33,"c":true},{"a":9999,"n":"b_270F","k":"branch","len":1,"c":false},{"a":10002,"n":"b_2712","k":"branch","len":1,"c":false},{"a":10012,"n":"walk_anim_right","k":"routine","len":33,"c":true},{"a":10032,"n":"b_2730","k":"branch","len":1,"c":false},{"a":10035,"n":"b_2733","k":"branch","len":1,"c":false},{"a":10045,"n":"facing","k":"variable","len":1,"c":true},{"a":10046,"n":"feet_column","k":"variable","len":1,"c":true},{"a":10047,"n":"crouching","k":"variable","len":1,"c":true},{"a":10048,"n":"crouch_delay","k":"variable","len":1,"c":true},{"a":10049,"n":"punch_delay","k":"variable","len":1,"c":true},{"a":10050,"n":"jump_delay","k":"variable","len":1,"c":true},{"a":10051,"n":"crouch_frames","k":"routine","len":37,"c":true},{"a":10072,"n":"b_2758","k":"branch","len":1,"c":false},{"a":10088,"n":"punch_active","k":"variable","len":1,"c":true},{"a":10089,"n":"walked_left","k":"variable","len":1,"c":true},{"a":10090,"n":"walked_right","k":"variable","len":1,"c":true},{"a":10091,"n":"player_control","k":"routine","len":432,"c":true},{"a":10119,"n":"b_2787","k":"branch","len":1,"c":false},{"a":10160,"n":"b_27B0","k":"branch","len":1,"c":false},{"a":10177,"n":"b_27C1","k":"branch","len":1,"c":false},{"a":10216,"n":"b_27E8","k":"branch","len":1,"c":false},{"a":10224,"n":"b_27F0","k":"branch","len":1,"c":false},{"a":10254,"n":"b_280E","k":"branch","len":1,"c":false},{"a":10271,"n":"b_281F","k":"branch","len":1,"c":false},{"a":10298,"n":"b_283A","k":"branch","len":1,"c":false},{"a":10303,"n":"b_283F","k":"branch","len":1,"c":false},{"a":10333,"n":"b_285D","k":"branch","len":1,"c":false},{"a":10338,"n":"j_2862","k":"branch","len":1,"c":false},{"a":10362,"n":"b_287A","k":"branch","len":1,"c":false},{"a":10384,"n":"b_2890","k":"branch","len":1,"c":false},{"a":10404,"n":"b_28A4","k":"branch","len":1,"c":false},{"a":10415,"n":"b_28AF","k":"branch","len":1,"c":false},{"a":10423,"n":"j_28B7","k":"branch","len":1,"c":false},{"a":10449,"n":"b_28D1","k":"branch","len":1,"c":false},{"a":10460,"n":"b_28DC","k":"branch","len":1,"c":false},{"a":10481,"n":"b_28F1","k":"branch","len":1,"c":false},{"a":10492,"n":"b_28FC","k":"branch","len":1,"c":false},{"a":10513,"n":"b_2911","k":"branch","len":1,"c":false},{"a":10523,"n":"ladder_start_unused","k":"routine","len":36,"c":true},{"a":10559,"n":"start_jump","k":"routine","len":32,"c":true},{"a":10581,"n":"b_2955","k":"branch","len":1,"c":false},{"a":10591,"n":"ladder_start_unused_2","k":"routine","len":26,"c":true},{"a":10617,"n":"start_attack","k":"routine","len":119,"c":true},{"a":10660,"n":"b_29A4","k":"branch","len":1,"c":false},{"a":10679,"n":"b_29B7","k":"branch","len":1,"c":false},{"a":10683,"n":"b_29BB","k":"branch","len":1,"c":false},{"a":10719,"n":"b_29DF","k":"branch","len":1,"c":false},{"a":10723,"n":"b_29E3","k":"branch","len":1,"c":false},{"a":10735,"n":"r_29EF","k":"branch","len":1,"c":false},{"a":10736,"n":"feet_tile","k":"table","len":3,"c":true},{"a":10739,"n":"stun_timer","k":"variable","len":1,"c":true},{"a":10740,"n":"hit_grace","k":"variable","len":1,"c":true},{"a":10741,"n":"stand_frame","k":"routine","len":19,"c":true},{"a":10754,"n":"b_2A02","k":"branch","len":1,"c":false},{"a":10759,"n":"r_2A07","k":"branch","len":1,"c":false},{"a":10760,"n":"hit_flag_a","k":"variable","len":1,"c":true},{"a":10761,"n":"hit_flag_b","k":"variable","len":1,"c":true},{"a":10762,"n":"player_fall","k":"routine","len":241,"c":true},{"a":11003,"n":"fall_check_unused","k":"routine","len":11,"c":true},{"a":11014,"n":"stand_frame_alt_unused","k":"routine","len":19,"c":true},{"a":11033,"n":"jump_arc","k":"table","len":78,"c":true},{"a":11111,"n":"jump_step","k":"variable","len":1,"c":true},{"a":11112,"n":"draw_state","k":"variable","len":1,"c":true},{"a":11113,"n":"player_jump","k":"routine","len":346,"c":true},{"a":11459,"n":"fall_frame","k":"routine","len":19,"c":true},{"a":11472,"n":"b_2CD0","k":"branch","len":1,"c":false},{"a":11477,"n":"r_2CD5","k":"branch","len":1,"c":false},{"a":11478,"n":"climb_frame_tail_unused","k":"routine","len":30,"c":true},{"a":11508,"n":"word_table_unused","k":"table","len":32,"c":true},{"a":11540,"n":"player_climb","k":"routine","len":125,"c":true},{"a":11665,"n":"punch_frames","k":"routine","len":37,"c":true},{"a":11686,"n":"b_2DA6","k":"branch","len":1,"c":false},{"a":11702,"n":"climb_direction","k":"variable","len":1,"c":true},{"a":11703,"n":"climb_frames_up","k":"table","len":12,"c":true},{"a":11715,"n":"climb_frames_down","k":"table","len":12,"c":true},{"a":11727,"n":"climb_frame_a","k":"routine","len":33,"c":true},{"a":11760,"n":"climb_frame_b","k":"routine","len":33,"c":true},{"a":11793,"n":"player_punch","k":"routine","len":31,"c":true},{"a":11824,"n":"strike_frames","k":"routine","len":37,"c":true},{"a":11845,"n":"b_2E45","k":"branch","len":1,"c":false},{"a":11861,"n":"strike_arc","k":"table","len":26,"c":true},{"a":11887,"n":"player_strike","k":"routine","len":247,"c":true},{"a":12134,"n":"strike_delay","k":"variable","len":1,"c":true},{"a":12135,"n":"strike_active","k":"variable","len":1,"c":true},{"a":12136,"n":"player_crouch","k":"routine","len":90,"c":true},{"a":12226,"n":"dead_flag","k":"variable","len":1,"c":true},{"a":12227,"n":"player_frame","k":"variable","len":1,"c":true},{"a":12228,"n":"attack_frames","k":"table","len":3,"c":true},{"a":12231,"n":"player_draw","k":"routine","len":155,"c":true},{"a":12244,"n":"b_2FD4","k":"branch","len":1,"c":false},{"a":12247,"n":"j_2FD7","k":"branch","len":1,"c":false},{"a":12259,"n":"b_2FE3","k":"branch","len":1,"c":false},{"a":12287,"n":"b_2FFF","k":"branch","len":1,"c":false},{"a":12315,"n":"b_301B","k":"branch","len":1,"c":false},{"a":12320,"n":"b_3020","k":"branch","len":1,"c":false},{"a":12348,"n":"b_303C","k":"branch","len":1,"c":false},{"a":12387,"n":"probe_x","k":"variable","len":1,"c":true},{"a":12388,"n":"probe_y","k":"variable","len":1,"c":true},{"a":12389,"n":"probe_x_hi","k":"variable","len":1,"c":true},{"a":12390,"n":"pad_3066","k":"table","len":7,"c":true},{"a":12397,"n":"row_addresses","k":"table","len":46,"c":true},{"a":12443,"n":"probe_row","k":"variable","len":2,"c":true},{"a":12445,"n":"tile_at_probe","k":"routine","len":66,"c":true},{"a":12490,"n":"b_30CA","k":"branch","len":1,"c":false},{"a":12504,"n":"b_30D8","k":"branch","len":1,"c":false},{"a":12511,"n":"probe_front_unused","k":"routine","len":78,"c":true},{"a":12589,"n":"stun_flip","k":"variable","len":1,"c":true},{"a":12590,"n":"enemy_spawn_table","k":"table","len":98,"c":true},{"a":12688,"n":"enemy_spawn_check","k":"routine","len":119,"c":true},{"a":12708,"n":"b_31A4","k":"branch","len":1,"c":false},{"a":12750,"n":"b_31CE","k":"branch","len":1,"c":false},{"a":12752,"n":"j_31D0","k":"branch","len":1,"c":false},{"a":12806,"n":"r_3206","k":"branch","len":1,"c":false},{"a":12807,"n":"object_list","k":"table","len":88,"c":true},{"a":12895,"n":"objects_pending","k":"variable","len":1,"c":true},{"a":12896,"n":"object_types","k":"variable","len":2,"c":true},{"a":12898,"n":"objects_start","k":"routine","len":53,"c":true},{"a":12916,"n":"b_3274","k":"branch","len":1,"c":false},{"a":12924,"n":"b_327C","k":"branch","len":1,"c":false},{"a":12942,"n":"b_328E","k":"branch","len":1,"c":false},{"a":12950,"n":"r_3296","k":"branch","len":1,"c":false},{"a":12951,"n":"objects_step","k":"routine","len":235,"c":true},{"a":13008,"n":"b_32D0","k":"branch","len":1,"c":false},{"a":13023,"n":"b_32DF","k":"branch","len":1,"c":false},{"a":13033,"n":"b_32E9","k":"branch","len":1,"c":false},{"a":13072,"n":"b_3310","k":"branch","len":1,"c":false},{"a":13074,"n":"j_3312","k":"branch","len":1,"c":false},{"a":13090,"n":"b_3322","k":"branch","len":1,"c":false},{"a":13092,"n":"j_3324","k":"branch","len":1,"c":false},{"a":13106,"n":"b_3332","k":"branch","len":1,"c":false},{"a":13109,"n":"b_3335","k":"branch","len":1,"c":false},{"a":13148,"n":"b_335C","k":"branch","len":1,"c":false},{"a":13150,"n":"j_335E","k":"branch","len":1,"c":false},{"a":13166,"n":"b_336E","k":"branch","len":1,"c":false},{"a":13168,"n":"j_3370","k":"branch","len":1,"c":false},{"a":13182,"n":"b_337E","k":"branch","len":1,"c":false},{"a":13185,"n":"r_3381","k":"branch","len":1,"c":false},{"a":13186,"n":"object_side","k":"variable","len":1,"c":true},{"a":13187,"n":"object_init","k":"routine","len":72,"c":true},{"a":13214,"n":"b_339E","k":"branch","len":1,"c":false},{"a":13225,"n":"j_33A9","k":"branch","len":1,"c":false},{"a":13241,"n":"b_33B9","k":"branch","len":1,"c":false},{"a":13250,"n":"b_33C2","k":"branch","len":1,"c":false},{"a":13259,"n":"object_run","k":"routine","len":18,"c":true},{"a":13277,"n":"object_routine","k":"routine","len":3,"c":true},{"a":13280,"n":"object_multicolour","k":"variable","len":2,"c":true},{"a":13282,"n":"object_frame_index","k":"variable","len":2,"c":true},{"a":13284,"n":"object_x","k":"variable","len":2,"c":true},{"a":13286,"n":"object_y","k":"variable","len":2,"c":true},{"a":13288,"n":"object_x_hi","k":"variable","len":2,"c":true},{"a":13290,"n":"object_state","k":"variable","len":2,"c":true},{"a":13292,"n":"object_pointer","k":"variable","len":2,"c":true},{"a":13294,"n":"object_table","k":"table","len":8,"c":true},{"a":13302,"n":"object_idle_2","k":"routine","len":1,"c":true},{"a":13303,"n":"object_idle","k":"routine","len":1,"c":true},{"a":13304,"n":"object_small_frames","k":"table","len":12,"c":true},{"a":13316,"n":"object_small","k":"routine","len":98,"c":true},{"a":13414,"n":"object_wide_frames","k":"table","len":12,"c":true},{"a":13426,"n":"object_wide","k":"routine","len":110,"c":true},{"a":13536,"n":"probe_player","k":"routine","len":54,"c":true},{"a":13590,"n":"marker_frame","k":"variable","len":1,"c":true},{"a":13591,"n":"marker_index","k":"variable","len":1,"c":true},{"a":13592,"n":"marker_frames","k":"table","len":45,"c":true},{"a":13637,"n":"marker_timer","k":"variable","len":1,"c":true},{"a":13638,"n":"marker_x","k":"variable","len":2,"c":true},{"a":13640,"n":"marker_y","k":"variable","len":1,"c":true},{"a":13641,"n":"marker_delay","k":"variable","len":1,"c":true},{"a":13642,"n":"exit_marker_step","k":"routine","len":208,"c":true},{"a":13652,"n":"b_3554","k":"branch","len":1,"c":false},{"a":13681,"n":"b_3571","k":"branch","len":1,"c":false},{"a":13692,"n":"b_357C","k":"branch","len":1,"c":false},{"a":13695,"n":"b_357F","k":"branch","len":1,"c":false},{"a":13730,"n":"b_35A2","k":"branch","len":1,"c":false},{"a":13732,"n":"j_35A4","k":"branch","len":1,"c":false},{"a":13748,"n":"b_35B4","k":"branch","len":1,"c":false},{"a":13768,"n":"b_35C8","k":"branch","len":1,"c":false},{"a":13780,"n":"b_35D4","k":"branch","len":1,"c":false},{"a":13789,"n":"b_35DD","k":"branch","len":1,"c":false},{"a":13828,"n":"b_3604","k":"branch","len":1,"c":false},{"a":13850,"n":"marker_saved_x","k":"routine","len":2,"c":true},{"a":13852,"n":"marker_saved_y","k":"routine","len":1,"c":true},{"a":13853,"n":"exit_marker_step_part_2","k":"routine","len":27,"c":true},{"a":13869,"n":"j_362D","k":"branch","len":1,"c":false},{"a":13880,"n":"advance_flag","k":"variable","len":1,"c":true},{"a":13881,"n":"place_enemies","k":"routine","len":235,"c":true},{"a":13941,"n":"b_3675","k":"branch","len":1,"c":false},{"a":13943,"n":"j_3677","k":"branch","len":1,"c":false},{"a":13968,"n":"b_3690","k":"branch","len":1,"c":false},{"a":13970,"n":"j_3692","k":"branch","len":1,"c":false},{"a":14034,"n":"b_36D2","k":"branch","len":1,"c":false},{"a":14062,"n":"b_36EE","k":"branch","len":1,"c":false},{"a":14087,"n":"b_3707","k":"branch","len":1,"c":false},{"a":14115,"n":"r_3723","k":"branch","len":1,"c":false},{"a":14116,"n":"enemy_step_abs","k":"variable","len":1,"c":true},{"a":14117,"n":"move_enemies","k":"routine","len":29,"c":true},{"a":14142,"n":"b_373E","k":"branch","len":1,"c":false},{"a":14146,"n":"enemy_state","k":"variable","len":2,"c":true},{"a":14148,"n":"enemy_x","k":"variable","len":2,"c":true},{"a":14150,"n":"enemy_x_hi","k":"variable","len":2,"c":true},{"a":14152,"n":"enemy_y","k":"variable","len":2,"c":true},{"a":14154,"n":"enemy_dir","k":"variable","len":2,"c":true},{"a":14156,"n":"enemy_frame_lo","k":"variable","len":2,"c":true},{"a":14158,"n":"enemy_frame_hi","k":"variable","len":2,"c":true},{"a":14160,"n":"enemy_count","k":"variable","len":2,"c":true},{"a":14162,"n":"enemy_step","k":"variable","len":2,"c":true},{"a":14164,"n":"enemy_kind","k":"variable","len":2,"c":true},{"a":14166,"n":"enemy_walk_index","k":"variable","len":2,"c":true},{"a":14168,"n":"enemy_energy","k":"variable","len":2,"c":true},{"a":14170,"n":"enemy_hurt","k":"variable","len":2,"c":true},{"a":14172,"n":"walk_a_upper","k":"table","len":20,"c":true},{"a":14192,"n":"walk_a_lower","k":"table","len":20,"c":true},{"a":14212,"n":"walk_a_step","k":"table","len":20,"c":true},{"a":14232,"n":"walk_b_upper","k":"table","len":20,"c":true},{"a":14252,"n":"walk_b_lower","k":"table","len":20,"c":true},{"a":14272,"n":"walk_b_step","k":"table","len":20,"c":true},{"a":14292,"n":"walk_c_upper","k":"table","len":20,"c":true},{"a":14312,"n":"walk_c_lower","k":"table","len":20,"c":true},{"a":14332,"n":"walk_c_step","k":"table","len":20,"c":true},{"a":14352,"n":"walk_d_upper","k":"table","len":20,"c":true},{"a":14372,"n":"walk_d_lower","k":"table","len":20,"c":true},{"a":14392,"n":"walk_d_step","k":"table","len":20,"c":true},{"a":14412,"n":"enemy_x_saved","k":"variable","len":2,"c":true},{"a":14414,"n":"enemy_frame","k":"routine","len":30,"c":true},{"a":14444,"n":"enemy_routine","k":"routine","len":3,"c":true},{"a":14447,"n":"probe_enemy_right","k":"routine","len":53,"c":true},{"a":14500,"n":"probe_enemy_left","k":"routine","len":53,"c":true},{"a":14553,"n":"enemy_state_table","k":"table","len":18,"c":true},{"a":14571,"n":"leap_frames_left","k":"table","len":99,"c":true},{"a":14670,"n":"leap_frames_right","k":"table","len":99,"c":true},{"a":14769,"n":"leap_dy","k":"table","len":100,"c":true},{"a":14869,"n":"enemy_leap","k":"routine","len":233,"c":true},{"a":15102,"n":"enemy_leap_contact","k":"routine","len":63,"c":true},{"a":15165,"n":"enemy_leap_hurt","k":"routine","len":74,"c":true},{"a":15239,"n":"enemy_leap_hit_right","k":"routine","len":50,"c":true},{"a":15289,"n":"enemy_leap_hit_left","k":"routine","len":50,"c":true},{"a":15339,"n":"enemy_leap_dy","k":"variable","len":1,"c":true},{"a":15340,"n":"enemy_punch","k":"routine","len":93,"c":true},{"a":15353,"n":"b_3BF9","k":"branch","len":1,"c":false},{"a":15362,"n":"b_3C02","k":"branch","len":1,"c":false},{"a":15408,"n":"r_3C30","k":"branch","len":1,"c":false},{"a":15409,"n":"b_3C31","k":"branch","len":1,"c":false},{"a":15433,"n":"enemy_punch_left","k":"routine","len":93,"c":true},{"a":15526,"n":"enemy_gone","k":"routine","len":6,"c":true},{"a":15532,"n":"enemy_dying","k":"routine","len":159,"c":true},{"a":15691,"n":"enemy_blink","k":"variable","len":2,"c":true},{"a":15693,"n":"enemy_throw","k":"routine","len":119,"c":true},{"a":15812,"n":"enemy_walk_right","k":"routine","len":163,"c":true},{"a":15975,"n":"enemy_height_test","k":"routine","len":35,"c":true},{"a":15993,"n":"b_3E79","k":"branch","len":1,"c":false},{"a":15996,"n":"b_3E7C","k":"branch","len":1,"c":false},{"a":16007,"n":"b_3E87","k":"branch","len":1,"c":false},{"a":16010,"n":"enemy_height_test_2","k":"routine","len":27,"c":true},{"a":16037,"n":"enemy_walk_left","k":"routine","len":161,"c":true},{"a":16198,"n":"enemy_wind_up_frame","k":"routine","len":48,"c":true},{"a":16215,"n":"b_3F57","k":"branch","len":1,"c":false},{"a":16219,"n":"j_3F5B","k":"branch","len":1,"c":false},{"a":16222,"n":"b_3F5E","k":"branch","len":1,"c":false},{"a":16234,"n":"b_3F6A","k":"branch","len":1,"c":false},{"a":16238,"n":"j_3F6E","k":"branch","len":1,"c":false},{"a":16246,"n":"enemy_attack_frame","k":"routine","len":68,"c":true},{"a":16268,"n":"b_3F8C","k":"branch","len":1,"c":false},{"a":16277,"n":"j_3F95","k":"branch","len":1,"c":false},{"a":16280,"n":"b_3F98","k":"branch","len":1,"c":false},{"a":16297,"n":"b_3FA9","k":"branch","len":1,"c":false},{"a":16306,"n":"j_3FB2","k":"branch","len":1,"c":false},{"a":16314,"n":"enemy_wait","k":"routine","len":24,"c":true},{"a":16338,"n":"enemy_decide","k":"routine","len":126,"c":true},{"a":16464,"n":"enemy_face_player","k":"routine","len":37,"c":true},{"a":16505,"n":"scroll_stop","k":"variable","len":1,"c":true},{"a":16506,"n":"scroll_stop_test_unused","k":"routine","len":24,"c":true},{"a":16530,"n":"shot_flag","k":"variable","len":1,"c":true},{"a":16531,"n":"pad_4093","k":"table","len":3,"c":true},{"a":16534,"n":"shot_column","k":"variable","len":1,"c":true},{"a":16535,"n":"pad_4097","k":"variable","len":2,"c":true},{"a":16537,"n":"shot_row_hi","k":"variable","len":1,"c":true},{"a":16538,"n":"pad_409a","k":"variable","len":2,"c":true},{"a":16540,"n":"shot_row_lo","k":"variable","len":1,"c":true},{"a":16541,"n":"pad_409d","k":"variable","len":2,"c":true},{"a":16543,"n":"shot_char","k":"variable","len":1,"c":true},{"a":16544,"n":"pad_40a0","k":"variable","len":2,"c":true},{"a":16546,"n":"shot_y","k":"variable","len":1,"c":true},{"a":16547,"n":"pad_40a3","k":"variable","len":2,"c":true},{"a":16549,"n":"shot_x","k":"variable","len":1,"c":true},{"a":16550,"n":"pad_40a6","k":"variable","len":2,"c":true},{"a":16552,"n":"shot_x_hi","k":"variable","len":1,"c":true},{"a":16553,"n":"pad_40a9","k":"variable","len":2,"c":true},{"a":16555,"n":"shot_dir","k":"variable","len":1,"c":true},{"a":16558,"n":"screen_ptr_adjust","k":"routine","len":19,"c":true},{"a":16576,"n":"r_40C0","k":"branch","len":1,"c":false},{"a":16577,"n":"enemy_shoot","k":"routine","len":18,"c":true},{"a":16595,"n":"shoot_saved_x","k":"routine","len":2,"c":true},{"a":16597,"n":"shoot_saved_y","k":"routine","len":1,"c":true},{"a":16598,"n":"enemy_shoot_part_2","k":"routine","len":106,"c":true},{"a":16704,"n":"shot_draw","k":"routine","len":173,"c":true},{"a":16712,"n":"b_4148","k":"branch","len":1,"c":false},{"a":16758,"n":"b_4176","k":"branch","len":1,"c":false},{"a":16783,"n":"j_418F","k":"branch","len":1,"c":false},{"a":16877,"n":"shot_save_y","k":"variable","len":1,"c":true},{"a":16878,"n":"shot_save_x","k":"variable","len":1,"c":true},{"a":16879,"n":"shot_erase","k":"routine","len":48,"c":true},{"a":16887,"n":"b_41F7","k":"branch","len":1,"c":false},{"a":16921,"n":"b_4219","k":"branch","len":1,"c":false},{"a":16927,"n":"enemy_hit_check","k":"routine","len":272,"c":true},{"a":16941,"n":"b_422D","k":"branch","len":1,"c":false},{"a":16966,"n":"r_4246","k":"branch","len":1,"c":false},{"a":16967,"n":"b_4247","k":"branch","len":1,"c":false},{"a":16978,"n":"b_4252","k":"branch","len":1,"c":false},{"a":16986,"n":"b_425A","k":"branch","len":1,"c":false},{"a":17016,"n":"b_4278","k":"branch","len":1,"c":false},{"a":17019,"n":"b_427B","k":"branch","len":1,"c":false},{"a":17055,"n":"b_429F","k":"branch","len":1,"c":false},{"a":17082,"n":"j_42BA","k":"branch","len":1,"c":false},{"a":17091,"n":"j_42C3","k":"branch","len":1,"c":false},{"a":17101,"n":"b_42CD","k":"branch","len":1,"c":false},{"a":17124,"n":"b_42E4","k":"branch","len":1,"c":false},{"a":17127,"n":"b_42E7","k":"branch","len":1,"c":false},{"a":17163,"n":"b_430B","k":"branch","len":1,"c":false},{"a":17190,"n":"j_4326","k":"branch","len":1,"c":false},{"a":17199,"n":"enemy_left_gap","k":"routine","len":36,"c":true},{"a":17209,"n":"b_4339","k":"branch","len":1,"c":false},{"a":17232,"n":"b_4350","k":"branch","len":1,"c":false},{"a":17235,"n":"enemy_right_gap","k":"routine","len":36,"c":true},{"a":17245,"n":"b_435D","k":"branch","len":1,"c":false},{"a":17268,"n":"b_4374","k":"branch","len":1,"c":false},{"a":17271,"n":"enemy_near_right","k":"routine","len":36,"c":true},{"a":17307,"n":"enemy_near_left","k":"routine","len":36,"c":true},{"a":17343,"n":"enemy_damage","k":"routine","len":33,"c":true},{"a":17355,"n":"b_43CB","k":"branch","len":1,"c":false},{"a":17376,"n":"damage_saved_x","k":"routine","len":2,"c":true},{"a":17379,"n":"energy","k":"variable","len":1,"c":true},{"a":17380,"n":"player_hurt","k":"routine","len":5,"c":true},{"a":17385,"n":"player_hit","k":"routine","len":23,"c":true},{"a":17408,"n":"hit_saved_y","k":"routine","len":2,"c":true},{"a":17410,"n":"hit_saved_x","k":"routine","len":2,"c":true},{"a":17411,"n":"r_4403","k":"branch","len":1,"c":false},{"a":17412,"n":"bar_masks","k":"table","len":4,"c":true},{"a":17416,"n":"bar_buffer","k":"table","len":64,"c":true},{"a":17480,"n":"bar_energy_counter","k":"variable","len":1,"c":true},{"a":17481,"n":"draw_bar","k":"routine","len":136,"c":true},{"a":17483,"n":"b_444B","k":"branch","len":1,"c":false},{"a":17500,"n":"b_445C","k":"branch","len":1,"c":false},{"a":17543,"n":"b_4487","k":"branch","len":1,"c":false},{"a":17603,"n":"b_44C3","k":"branch","len":1,"c":false},{"a":17605,"n":"b_44C5","k":"branch","len":1,"c":false},{"a":17617,"n":"add_digits","k":"routine","len":43,"c":true},{"a":17622,"n":"j_44D6","k":"branch","len":1,"c":false},{"a":17638,"n":"b_44E6","k":"branch","len":1,"c":false},{"a":17643,"n":"j_44EB","k":"branch","len":1,"c":false},{"a":17657,"n":"b_44F9","k":"branch","len":1,"c":false},{"a":17660,"n":"digit_carry","k":"variable","len":1,"c":true},{"a":17661,"n":"draw_figures","k":"routine","len":19,"c":true},{"a":17671,"n":"b_4507","k":"branch","len":1,"c":false},{"a":17680,"n":"draw_digit","k":"routine","len":38,"c":true},{"a":17691,"n":"b_451B","k":"branch","len":1,"c":false},{"a":17718,"n":"digit_glyphs","k":"table","len":80,"c":true},{"a":17798,"n":"exit_touch_test","k":"routine","len":67,"c":true},{"a":17864,"n":"r_45C8","k":"branch","len":1,"c":false},{"a":17865,"n":"object_touch_test","k":"routine","len":98,"c":true},{"a":17898,"n":"b_45EA","k":"branch","len":1,"c":false},{"a":17919,"n":"b_45FF","k":"branch","len":1,"c":false},{"a":17942,"n":"j_4616","k":"branch","len":1,"c":false},{"a":17963,"n":"object_hit_check","k":"routine","len":11,"c":true},{"a":17973,"n":"r_4635","k":"branch","len":1,"c":false},{"a":17974,"n":"shot_touch_test","k":"routine","len":96,"c":true},{"a":17990,"n":"b_4646","k":"branch","len":1,"c":false},{"a":17998,"n":"r_464E","k":"branch","len":1,"c":false},{"a":17999,"n":"b_464F","k":"branch","len":1,"c":false},{"a":18024,"n":"b_4668","k":"branch","len":1,"c":false},{"a":18070,"n":"box_y1","k":"variable","len":1,"c":true},{"a":18071,"n":"box_y2","k":"variable","len":1,"c":true},{"a":18072,"n":"box_x1","k":"variable","len":1,"c":true},{"a":18073,"n":"box_x2","k":"variable","len":1,"c":true},{"a":18074,"n":"box_x1_hi","k":"variable","len":1,"c":true},{"a":18075,"n":"box_x2_hi","k":"variable","len":1,"c":true},{"a":18076,"n":"box_dx","k":"variable","len":1,"c":true},{"a":18077,"n":"pad_469d","k":"variable","len":1,"c":true},{"a":18078,"n":"box_dy","k":"variable","len":1,"c":true},{"a":18080,"n":"box_test","k":"routine","len":107,"c":true},{"a":18092,"n":"j_46AC","k":"branch","len":1,"c":false},{"a":18100,"n":"b_46B4","k":"branch","len":1,"c":false},{"a":18109,"n":"j_46BD","k":"branch","len":1,"c":false},{"a":18129,"n":"j_46D1","k":"branch","len":1,"c":false},{"a":18134,"n":"j_46D6","k":"branch","len":1,"c":false},{"a":18137,"n":"b_46D9","k":"branch","len":1,"c":false},{"a":18140,"n":"b_46DC","k":"branch","len":1,"c":false},{"a":18149,"n":"b_46E5","k":"branch","len":1,"c":false},{"a":18164,"n":"j_46F4","k":"branch","len":1,"c":false},{"a":18174,"n":"b_46FE","k":"branch","len":1,"c":false},{"a":18187,"n":"flash_toggle","k":"variable","len":1,"c":true},{"a":18188,"n":"image_flash","k":"routine","len":89,"c":true},{"a":18211,"n":"b_4723","k":"branch","len":1,"c":false},{"a":18213,"n":"j_4725","k":"branch","len":1,"c":false},{"a":18233,"n":"b_4739","k":"branch","len":1,"c":false},{"a":18235,"n":"b_473B","k":"branch","len":1,"c":false},{"a":18257,"n":"j_4751","k":"branch","len":1,"c":false},{"a":18263,"n":"b_4757","k":"branch","len":1,"c":false},{"a":18276,"n":"r_4764","k":"branch","len":1,"c":false},{"a":18277,"n":"image_a_draw","k":"routine","len":105,"c":true},{"a":18279,"n":"b_4767","k":"branch","len":1,"c":false},{"a":18316,"n":"b_478C","k":"branch","len":1,"c":false},{"a":18382,"n":"image_b_draw","k":"routine","len":105,"c":true},{"a":18384,"n":"b_47D0","k":"branch","len":1,"c":false},{"a":18421,"n":"b_47F5","k":"branch","len":1,"c":false},{"a":18487,"n":"image_b","k":"table","len":300,"c":true},{"a":18787,"n":"image_a","k":"table","len":300,"c":true},{"a":19087,"n":"end_of_level","k":"routine","len":23,"c":true},{"a":19090,"n":"b_4A92","k":"branch","len":1,"c":false},{"a":19110,"n":"seen_type_2","k":"variable","len":1,"c":true},{"a":19111,"n":"seen_type_1","k":"variable","len":1,"c":true},{"a":19112,"n":"seen_other_type","k":"variable","len":1,"c":true},{"a":19113,"n":"print_index","k":"variable","len":1,"c":true},{"a":19114,"n":"print_delay","k":"variable","len":1,"c":true},{"a":19115,"n":"scanning_text","k":"table","len":17,"c":true},{"a":19132,"n":"print_scanning","k":"routine","len":43,"c":true},{"a":19144,"n":"b_4AC8","k":"branch","len":1,"c":false},{"a":19174,"n":"r_4AE6","k":"branch","len":1,"c":false},{"a":19175,"n":"mask_complete_text","k":"table","len":16,"c":true},{"a":19191,"n":"print_mask_complete","k":"routine","len":34,"c":true},{"a":19224,"n":"r_4B18","k":"branch","len":1,"c":false},{"a":19225,"n":"insufficient_text","k":"table","len":18,"c":true},{"a":19243,"n":"generate_mask_text","k":"table","len":18,"c":true},{"a":19261,"n":"print_insufficient","k":"routine","len":34,"c":true},{"a":19294,"n":"r_4B5E","k":"branch","len":1,"c":false},{"a":19295,"n":"print_generate_mask","k":"routine","len":34,"c":true},{"a":19328,"n":"r_4B80","k":"branch","len":1,"c":false},{"a":19329,"n":"scan_toggle","k":"variable","len":1,"c":true},{"a":19330,"n":"scan_count","k":"variable","len":1,"c":true},{"a":19331,"n":"scan_wait","k":"routine","len":147,"c":true},{"a":19343,"n":"b_4B8F","k":"branch","len":1,"c":false},{"a":19366,"n":"b_4BA6","k":"branch","len":1,"c":false},{"a":19372,"n":"j_4BAC","k":"branch","len":1,"c":false},{"a":19398,"n":"b_4BC6","k":"branch","len":1,"c":false},{"a":19418,"n":"b_4BDA","k":"branch","len":1,"c":false},{"a":19430,"n":"b_4BE6","k":"branch","len":1,"c":false},{"a":19435,"n":"b_4BEB","k":"branch","len":1,"c":false},{"a":19445,"n":"b_4BF5","k":"branch","len":1,"c":false},{"a":19451,"n":"b_4BFB","k":"branch","len":1,"c":false},{"a":19461,"n":"b_4C05","k":"branch","len":1,"c":false},{"a":19467,"n":"b_4C0B","k":"branch","len":1,"c":false},{"a":19478,"n":"mask_finish","k":"routine","len":64,"c":true},{"a":19482,"n":"b_4C1A","k":"branch","len":1,"c":false},{"a":19542,"n":"mask_report","k":"routine","len":56,"c":true},{"a":19569,"n":"b_4C71","k":"branch","len":1,"c":false},{"a":19586,"n":"b_4C82","k":"branch","len":1,"c":false},{"a":19597,"n":"r_4C8D","k":"branch","len":1,"c":false},{"a":19598,"n":"dissolve_pattern","k":"routine","len":43,"c":true},{"a":19600,"n":"b_4C90","k":"branch","len":1,"c":false},{"a":19602,"n":"b_4C92","k":"branch","len":1,"c":false},{"a":19614,"n":"b_4C9E","k":"branch","len":1,"c":false},{"a":19623,"n":"b_4CA7","k":"branch","len":1,"c":false},{"a":19632,"n":"b_4CB0","k":"branch","len":1,"c":false},{"a":19634,"n":"j_4CB2","k":"branch","len":1,"c":false},{"a":19641,"n":"dissolve_mask","k":"routine","len":1,"c":true},{"a":19642,"n":"dissolve_pattern_part_2","k":"routine","len":29,"c":true},{"a":19664,"n":"b_4CD0","k":"branch","len":1,"c":false},{"a":19671,"n":"draw_subject_chars","k":"routine","len":99,"c":true},{"a":19675,"n":"b_4CDB","k":"branch","len":1,"c":false},{"a":19687,"n":"b_4CE7","k":"branch","len":1,"c":false},{"a":19699,"n":"b_4CF3","k":"branch","len":1,"c":false},{"a":19711,"n":"b_4CFF","k":"branch","len":1,"c":false},{"a":19723,"n":"b_4D0B","k":"branch","len":1,"c":false},{"a":19735,"n":"b_4D17","k":"branch","len":1,"c":false},{"a":19747,"n":"b_4D23","k":"branch","len":1,"c":false},{"a":19759,"n":"b_4D2F","k":"branch","len":1,"c":false},{"a":19770,"n":"clear_text_area","k":"routine","len":81,"c":true},{"a":19772,"n":"b_4D3C","k":"branch","len":1,"c":false},{"a":19851,"n":"swap_font_a","k":"routine","len":57,"c":true},{"a":19853,"n":"b_4D8D","k":"branch","len":1,"c":false},{"a":19888,"n":"b_4DB0","k":"branch","len":1,"c":false},{"a":19908,"n":"swap_font_b","k":"routine","len":34,"c":true},{"a":19910,"n":"b_4DC6","k":"branch","len":1,"c":false},{"a":19942,"n":"swap_font_c","k":"routine","len":72,"c":true},{"a":19944,"n":"b_4DE8","k":"branch","len":1,"c":false},{"a":19961,"n":"b_4DF9","k":"branch","len":1,"c":false},{"a":19982,"n":"b_4E0E","k":"branch","len":1,"c":false},{"a":20014,"n":"draw_block_3x3","k":"routine","len":20,"c":true},{"a":20034,"n":"draw_row_3","k":"routine","len":18,"c":true},{"a":20052,"n":"draw_slice_blocks","k":"routine","len":109,"c":true},{"a":20161,"n":"fire_held","k":"variable","len":1,"c":true},{"a":20162,"n":"flash_count","k":"variable","len":1,"c":true},{"a":20163,"n":"slice_number","k":"variable","len":1,"c":true},{"a":20164,"n":"capture_mark","k":"variable","len":2,"c":true},{"a":20166,"n":"capture_delay","k":"variable","len":1,"c":true},{"a":20167,"n":"fire_capture","k":"routine","len":153,"c":true},{"a":20320,"n":"slice_type","k":"variable","len":1,"c":true},{"a":20321,"n":"match_check","k":"routine","len":36,"c":true},{"a":20357,"n":"match_row_61","k":"routine","len":81,"c":true},{"a":20438,"n":"match_row_a1","k":"routine","len":55,"c":true},{"a":20493,"n":"cursor_column","k":"variable","len":1,"c":true},{"a":20494,"n":"copy_glyph","k":"routine","len":76,"c":true},{"a":20570,"n":"glyph_offset","k":"variable","len":2,"c":true},{"a":20572,"n":"glyph_dest_table","k":"table","len":24,"c":true},{"a":20596,"n":"cursor_y","k":"variable","len":1,"c":true},{"a":20597,"n":"cursor_x","k":"variable","len":2,"c":true},{"a":20599,"n":"cursor_home","k":"routine","len":11,"c":true},{"a":20610,"n":"scan_path","k":"table","len":13,"c":true},{"a":20623,"n":"scan_durations","k":"table","len":3,"c":true},{"a":20626,"n":"scan_index","k":"variable","len":1,"c":true},{"a":20627,"n":"scan_timer","k":"variable","len":1,"c":true},{"a":20628,"n":"scan_done","k":"variable","len":1,"c":true},{"a":20629,"n":"match_flags","k":"table","len":12,"c":true},{"a":20641,"n":"pad_50a1","k":"variable","len":1,"c":true},{"a":20642,"n":"slice_types","k":"table","len":12,"c":true},{"a":20654,"n":"scan_unused","k":"variable","len":1,"c":true},{"a":20655,"n":"scan_started","k":"variable","len":1,"c":true},{"a":20656,"n":"scan_reversed","k":"variable","len":1,"c":true},{"a":20657,"n":"scan_cursor","k":"routine","len":284,"c":true},{"a":20941,"n":"blink_colour","k":"variable","len":1,"c":true},{"a":20942,"n":"blink_count","k":"variable","len":1,"c":true},{"a":20943,"n":"cursor_phase","k":"variable","len":1,"c":true},{"a":20944,"n":"sound_1c","k":"routine","len":16,"c":true},{"a":20960,"n":"cursor_move","k":"routine","len":179,"c":true},{"a":21139,"n":"mask_obj_state","k":"table","len":5,"c":true},{"a":21144,"n":"mask_obj_delay","k":"table","len":5,"c":true},{"a":21149,"n":"mask_obj_value_a","k":"table","len":5,"c":true},{"a":21154,"n":"mask_obj_value_b","k":"table","len":5,"c":true},{"a":21159,"n":"mask_obj_ptr_lo","k":"table","len":5,"c":true},{"a":21164,"n":"mask_obj_ptr_hi","k":"table","len":5,"c":true},{"a":21169,"n":"mask_obj_counter","k":"table","len":5,"c":true},{"a":21174,"n":"mask_obj_ptr_init_lo","k":"table","len":5,"c":true},{"a":21179,"n":"mask_obj_ptr_init_hi","k":"table","len":5,"c":true},{"a":21184,"n":"mask_strip_steps","k":"table","len":24,"c":true},{"a":21208,"n":"mask_strip_offsets","k":"table","len":48,"c":true},{"a":21256,"n":"mask_obj_choice_a","k":"table","len":3,"c":true},{"a":21259,"n":"mask_obj_choice_b","k":"table","len":3,"c":true},{"a":21262,"n":"random_of_3","k":"routine","len":18,"c":true},{"a":21280,"n":"random_of_5","k":"routine","len":30,"c":true},{"a":21310,"n":"objects_spawn","k":"routine","len":113,"c":true},{"a":21423,"n":"target_object","k":"variable","len":1,"c":true},{"a":21424,"n":"objects_run","k":"routine","len":28,"c":true},{"a":21452,"n":"mask_obj_handlers","k":"table","len":8,"c":true},{"a":21460,"n":"mask_object_idle","k":"routine","len":1,"c":true},{"a":21461,"n":"object_flip_toggle","k":"variable","len":1,"c":true},{"a":21462,"n":"object_source_lo","k":"variable","len":1,"c":true},{"a":21463,"n":"object_source_hi","k":"variable","len":1,"c":true},{"a":21464,"n":"object_return","k":"routine","len":1,"c":true},{"a":21465,"n":"object_flip","k":"routine","len":207,"c":true},{"a":21672,"n":"strip_unused","k":"variable","len":1,"c":true},{"a":21673,"n":"strip_offset","k":"variable","len":2,"c":true},{"a":21675,"n":"object_slide_in","k":"routine","len":148,"c":true},{"a":21823,"n":"shift_cells_right","k":"routine","len":85,"c":true},{"a":21908,"n":"shift_temp","k":"variable","len":1,"c":true},{"a":21909,"n":"shift_cells_left","k":"routine","len":58,"c":true},{"a":21967,"n":"object_slide_out","k":"routine","len":97,"c":true},{"a":22064,"n":"screen_a_draw","k":"routine","len":25,"c":true},{"a":22086,"n":"b_5646","k":"branch","len":1,"c":false},{"a":22088,"n":"b_5648","k":"branch","len":1,"c":false},{"a":22089,"n":"screen_a_src","k":"routine","len":3,"c":true},{"a":22092,"n":"screen_a_dst","k":"routine","len":2,"c":true},{"a":22094,"n":"screen_a_draw_part_2","k":"routine","len":77,"c":true},{"a":22140,"n":"b_567C","k":"branch","len":1,"c":false},{"a":22171,"n":"screen_b_draw","k":"routine","len":25,"c":true},{"a":22193,"n":"b_56B1","k":"branch","len":1,"c":false},{"a":22195,"n":"b_56B3","k":"branch","len":1,"c":false},{"a":22196,"n":"screen_b_src","k":"routine","len":3,"c":true},{"a":22199,"n":"screen_b_dst","k":"routine","len":2,"c":true},{"a":22201,"n":"screen_b_draw_part_2","k":"routine","len":77,"c":true},{"a":22247,"n":"b_56E7","k":"branch","len":1,"c":false},{"a":22278,"n":"subject_screen","k":"routine","len":192,"c":true},{"a":22324,"n":"b_5734","k":"branch","len":1,"c":false},{"a":22345,"n":"b_5749","k":"branch","len":1,"c":false},{"a":22357,"n":"b_5755","k":"branch","len":1,"c":false},{"a":22360,"n":"j_5758","k":"branch","len":1,"c":false},{"a":22381,"n":"b_576D","k":"branch","len":1,"c":false},{"a":22388,"n":"b_5774","k":"branch","len":1,"c":false},{"a":22449,"n":"b_57B1","k":"branch","len":1,"c":false},{"a":22470,"n":"photo_text","k":"table","len":8,"c":true},{"a":22478,"n":"press_fire_text","k":"table","len":23,"c":true},{"a":22501,"n":"type_lab_text","k":"routine","len":58,"c":true},{"a":22531,"n":"j_5803","k":"branch","len":1,"c":false},{"a":22543,"n":"b_580F","k":"branch","len":1,"c":false},{"a":22550,"n":"j_5816","k":"branch","len":1,"c":false},{"a":22559,"n":"lab_saved_y","k":"routine","len":1,"c":true},{"a":22560,"n":"type_lab_text_part_2","k":"routine","len":79,"c":true},{"a":22579,"n":"b_5833","k":"branch","len":1,"c":false},{"a":22582,"n":"j_5836","k":"branch","len":1,"c":false},{"a":22592,"n":"b_5840","k":"branch","len":1,"c":false},{"a":22621,"n":"b_585D","k":"branch","len":1,"c":false},{"a":22628,"n":"b_5864","k":"branch","len":1,"c":false},{"a":22639,"n":"lab_text","k":"table","len":89,"c":true},{"a":22728,"n":"mask_setup","k":"routine","len":434,"c":true},{"a":22806,"n":"b_5916","k":"branch","len":1,"c":false},{"a":22816,"n":"b_5920","k":"branch","len":1,"c":false},{"a":22914,"n":"b_5982","k":"branch","len":1,"c":false},{"a":22929,"n":"b_5991","k":"branch","len":1,"c":false},{"a":22941,"n":"b_599D","k":"branch","len":1,"c":false},{"a":22968,"n":"b_59B8","k":"branch","len":1,"c":false},{"a":22977,"n":"b_59C1","k":"branch","len":1,"c":false},{"a":23162,"n":"irq_mask_1","k":"routine","len":100,"c":true},{"a":23262,"n":"irq_mask_2","k":"routine","len":103,"c":true},{"a":23365,"n":"irq_mask_3","k":"routine","len":123,"c":true},{"a":23488,"n":"report_flag","k":"variable","len":1,"c":true},{"a":23489,"n":"mask_sprites","k":"routine","len":101,"c":true},{"a":23590,"n":"timer_digits","k":"table","len":3,"c":true},{"a":23593,"n":"timer_draw","k":"routine","len":40,"c":true},{"a":23633,"n":"timer_draw_digit","k":"routine","len":21,"c":true},{"a":23642,"n":"b_5C5A","k":"branch","len":1,"c":false},{"a":23654,"n":"timer_toggle","k":"variable","len":1,"c":true},{"a":23655,"n":"mask_over","k":"variable","len":1,"c":true},{"a":23656,"n":"mask_timer_tick","k":"routine","len":91,"c":true},{"a":23747,"n":"char_colours","k":"table","len":256,"c":true},{"a":24015,"n":"text_shapes_1","k":"table","len":136,"c":true},{"a":24151,"n":"text_shapes_2","k":"table","len":136,"c":true},{"a":24287,"n":"text_shapes_3","k":"table","len":512,"c":true},{"a":24807,"n":"mask_pieces","k":"table","len":432,"c":true},{"a":25239,"n":"screen_a_map","k":"table","len":504,"c":true},{"a":25743,"n":"screen_b_map","k":"table","len":448,"c":true},{"a":26191,"n":"subject_gap","k":"table","len":52,"c":true},{"a":26243,"n":"subject_shapes","k":"table","len":206,"c":true},{"a":26449,"n":"subject_shapes_2","k":"table","len":206,"c":true},{"a":26655,"n":"subject_shapes_3","k":"table","len":206,"c":true},{"a":26861,"n":"subject_shapes_4","k":"table","len":206,"c":true},{"a":27507,"n":"swap_chars_6683","k":"routine","len":64,"c":true},{"a":27509,"n":"b_6B75","k":"branch","len":1,"c":false},{"a":27571,"n":"tile_top_chars","k":"table","len":124,"c":true},{"a":27729,"n":"tile_bottom_chars","k":"table","len":124,"c":true},{"a":27853,"n":"panel_chars","k":"table","len":200,"c":true},{"a":28053,"n":"panel_colours","k":"table","len":200,"c":true},{"a":28253,"n":"level_map","k":"table","len":174,"c":true},{"a":28427,"n":"level_map_row_1","k":"table","len":174,"c":true},{"a":28601,"n":"level_map_row_2","k":"table","len":174,"c":true},{"a":28775,"n":"level_map_row_3","k":"table","len":174,"c":true},{"a":28949,"n":"level_map_row_4","k":"table","len":174,"c":true},{"a":29123,"n":"level_map_row_5","k":"table","len":174,"c":true},{"a":29297,"n":"level_map_row_6","k":"table","len":174,"c":true},{"a":29471,"n":"level_map_row_7","k":"table","len":174,"c":true},{"a":30019,"n":"driver_image_music_init","k":"table","len":38,"c":true},{"a":30057,"n":"driver_image_play_sound","k":"table","len":74,"c":true},{"a":30131,"n":"driver_image_init_voice","k":"table","len":62,"c":true},{"a":30193,"n":"driver_image_music_play","k":"table","len":161,"c":true},{"a":30354,"n":"driver_image_fade_in_step","k":"table","len":36,"c":true},{"a":30390,"n":"driver_image_voice_tick","k":"table","len":33,"c":true},{"a":30423,"n":"driver_image_read_stream","k":"table","len":186,"c":true},{"a":30609,"n":"driver_image_stream_command","k":"table","len":18,"c":true},{"a":30627,"n":"driver_image_cmd_next_pattern","k":"table","len":6,"c":true},{"a":30633,"n":"driver_image_track_next_pattern","k":"table","len":87,"c":true},{"a":30720,"n":"driver_image_track_jump","k":"table","len":9,"c":true},{"a":30729,"n":"driver_image_track_repeat_cmd","k":"table","len":15,"c":true},{"a":30744,"n":"driver_image_track_stop","k":"table","len":17,"c":true},{"a":30761,"n":"driver_image_track_transpose","k":"table","len":15,"c":true},{"a":30776,"n":"driver_image_track_fade_out","k":"table","len":21,"c":true},{"a":30797,"n":"driver_image_track_fade_in","k":"table","len":38,"c":true},{"a":30835,"n":"driver_image_wave_program_tick","k":"table","len":74,"c":true},{"a":30909,"n":"driver_image_wave_wait","k":"table","len":12,"c":true},{"a":30921,"n":"driver_image_wave_jump","k":"table","len":20,"c":true},{"a":30941,"n":"driver_image_wave_envelope","k":"table","len":31,"c":true},{"a":30972,"n":"driver_image_wave_control","k":"table","len":25,"c":true},{"a":30997,"n":"driver_image_wave_control_early","k":"table","len":29,"c":true},{"a":31026,"n":"driver_image_wave_control_pitch","k":"table","len":54,"c":true},{"a":31080,"n":"driver_image_wave_advance","k":"table","len":20,"c":true},{"a":31100,"n":"driver_image_cmd_wave_program","k":"table","len":30,"c":true},{"a":31130,"n":"driver_image_cmd_pulse","k":"table","len":26,"c":true},{"a":31156,"n":"driver_image_cmd_pitch_slide","k":"table","len":25,"c":true},{"a":31181,"n":"driver_image_cmd_arpeggio","k":"table","len":62,"c":true},{"a":31243,"n":"driver_image_cmd_fixed_length","k":"table","len":17,"c":true},{"a":31260,"n":"driver_image_cmd_free_length","k":"table","len":11,"c":true},{"a":31271,"n":"driver_image_cmd_drum","k":"table","len":108,"c":true},{"a":31379,"n":"driver_image_cmd_filter","k":"table","len":54,"c":true},{"a":31433,"n":"driver_image_pulse_step","k":"table","len":74,"c":true},{"a":31507,"n":"driver_image_pitch_slide_step","k":"table","len":121,"c":true},{"a":31628,"n":"driver_image_arpeggio_step","k":"table","len":77,"c":true},{"a":31705,"n":"driver_image_filter_sweep_step","k":"table","len":88,"c":true},{"a":31793,"n":"driver_image_drum_step","k":"table","len":107,"c":true},{"a":31900,"n":"driver_image_voices_active","k":"table","len":7,"c":true},{"a":31907,"n":"driver_image_silence_all","k":"table","len":40,"c":true},{"a":31947,"n":"driver_image_start_fade_out","k":"table","len":15,"c":true},{"a":31962,"n":"driver_image_cmd_end_voice","k":"table","len":11,"c":true},{"a":31973,"n":"driver_image_cmd_set_stream","k":"table","len":20,"c":true},{"a":31993,"n":"driver_image_stream_command_lo","k":"table","len":14,"c":true},{"a":32007,"n":"driver_image_stream_command_hi","k":"table","len":14,"c":true},{"a":32021,"n":"driver_image_track_command_lo","k":"table","len":6,"c":true},{"a":32027,"n":"driver_image_track_command_hi","k":"table","len":6,"c":true},{"a":32033,"n":"driver_image_wave_command_lo","k":"table","len":7,"c":true},{"a":32040,"n":"driver_image_wave_command_hi","k":"table","len":7,"c":true},{"a":32047,"n":"driver_image_voice_offsets","k":"table","len":3,"c":true},{"a":32050,"n":"driver_image_idle_program","k":"table","len":11,"c":true},{"a":32061,"n":"driver_image_note_freq_lo","k":"table","len":94,"c":true},{"a":32155,"n":"driver_image_note_freq_hi","k":"table","len":94,"c":true},{"a":32249,"n":"driver_image_drum_records","k":"table","len":30,"c":true},{"a":32279,"n":"driver_image_drum_lists","k":"table","len":72,"c":true},{"a":32351,"n":"driver_image_pulse_table","k":"table","len":35,"c":true},{"a":32386,"n":"driver_image_pitch_slide_table","k":"table","len":84,"c":true},{"a":32470,"n":"driver_image_arpeggio_table","k":"table","len":7,"c":true},{"a":32477,"n":"driver_image_filter_sweep_table","k":"table","len":26,"c":true},{"a":32503,"n":"driver_image_wave_program_table","k":"table","len":20,"c":true},{"a":32523,"n":"driver_image_wave_programs","k":"table","len":184,"c":true},{"a":32707,"n":"driver_image_sound_table","k":"table","len":44,"c":true},{"a":32751,"n":"driver_image_stream_pointer_table","k":"table","len":17,"c":true},{"a":32768,"n":"driver_image_stream_pointer_table_part_2","k":"table","len":19,"c":true},{"a":32787,"n":"driver_image_sound_streams","k":"table","len":161,"c":true},{"a":33148,"n":"tune_image_init","k":"table","len":38,"c":true},{"a":33186,"n":"tune_image_play_sound","k":"table","len":56,"c":true},{"a":33242,"n":"tune_image_init_voice","k":"table","len":62,"c":true},{"a":33304,"n":"tune_image_start","k":"table","len":222,"c":true},{"a":33526,"n":"tune_image_play","k":"table","len":161,"c":true},{"a":33687,"n":"tune_image_fade_in_step","k":"table","len":36,"c":true},{"a":33723,"n":"tune_image_voice_tick","k":"table","len":33,"c":true},{"a":33756,"n":"tune_image_read_stream","k":"table","len":186,"c":true},{"a":33942,"n":"tune_image_stream_command","k":"table","len":18,"c":true},{"a":33960,"n":"tune_image_cmd_next_pattern","k":"table","len":6,"c":true},{"a":33966,"n":"tune_image_track_next_pattern","k":"table","len":87,"c":true},{"a":34053,"n":"tune_image_track_jump","k":"table","len":9,"c":true},{"a":34062,"n":"tune_image_track_repeat_cmd","k":"table","len":15,"c":true},{"a":34077,"n":"tune_image_track_stop","k":"table","len":17,"c":true},{"a":34094,"n":"tune_image_track_transpose","k":"table","len":15,"c":true},{"a":34109,"n":"tune_image_track_fade_out","k":"table","len":21,"c":true},{"a":34130,"n":"tune_image_track_fade_in","k":"table","len":38,"c":true},{"a":34168,"n":"tune_image_wave_program_tick","k":"table","len":74,"c":true},{"a":34242,"n":"tune_image_wave_wait","k":"table","len":12,"c":true},{"a":34254,"n":"tune_image_wave_jump","k":"table","len":20,"c":true},{"a":34274,"n":"tune_image_wave_envelope","k":"table","len":31,"c":true},{"a":34305,"n":"tune_image_wave_control","k":"table","len":25,"c":true},{"a":34330,"n":"tune_image_wave_control_early","k":"table","len":29,"c":true},{"a":34359,"n":"tune_image_wave_control_pitch","k":"table","len":36,"c":true},{"a":34395,"n":"tune_image_wave_advance","k":"table","len":20,"c":true},{"a":34415,"n":"tune_image_cmd_wave_program","k":"table","len":30,"c":true},{"a":34445,"n":"tune_image_cmd_pulse","k":"table","len":26,"c":true},{"a":34471,"n":"tune_image_cmd_pitch_slide","k":"table","len":25,"c":true},{"a":34496,"n":"tune_image_cmd_arpeggio","k":"table","len":62,"c":true},{"a":34558,"n":"tune_image_cmd_fixed_length","k":"table","len":17,"c":true},{"a":34575,"n":"tune_image_cmd_free_length","k":"table","len":11,"c":true},{"a":34586,"n":"tune_image_cmd_drum","k":"table","len":100,"c":true},{"a":34686,"n":"tune_image_cmd_filter","k":"table","len":54,"c":true},{"a":34740,"n":"tune_image_pulse_step","k":"table","len":74,"c":true},{"a":34814,"n":"tune_image_pitch_slide_step","k":"table","len":121,"c":true},{"a":34935,"n":"tune_image_arpeggio_step","k":"table","len":77,"c":true},{"a":35012,"n":"tune_image_filter_sweep_step","k":"table","len":112,"c":true},{"a":35124,"n":"tune_image_drum_step","k":"table","len":107,"c":true},{"a":35231,"n":"tune_image_voices_active","k":"table","len":7,"c":true},{"a":35238,"n":"tune_image_silence_all","k":"table","len":40,"c":true},{"a":35278,"n":"tune_image_start_fade_out","k":"table","len":15,"c":true},{"a":35293,"n":"tune_image_cmd_end_voice","k":"table","len":11,"c":true},{"a":35304,"n":"tune_image_cmd_set_stream","k":"table","len":20,"c":true},{"a":35324,"n":"tune_image_stream_command_lo","k":"table","len":14,"c":true},{"a":35338,"n":"tune_image_stream_command_hi","k":"table","len":14,"c":true},{"a":35352,"n":"tune_image_track_command_lo","k":"table","len":6,"c":true},{"a":35358,"n":"tune_image_track_command_hi","k":"table","len":6,"c":true},{"a":35364,"n":"tune_image_wave_command_lo","k":"table","len":7,"c":true},{"a":35371,"n":"tune_image_wave_command_hi","k":"table","len":7,"c":true},{"a":35378,"n":"tune_image_voice_offsets","k":"table","len":3,"c":true},{"a":35381,"n":"tune_image_idle_program","k":"table","len":11,"c":true},{"a":35392,"n":"tune_image_note_freq_lo","k":"table","len":94,"c":true},{"a":35486,"n":"tune_image_note_freq_hi","k":"table","len":94,"c":true},{"a":35580,"n":"tune_image_drum_records","k":"table","len":15,"c":true},{"a":35595,"n":"tune_image_drum_lists","k":"table","len":54,"c":true},{"a":35649,"n":"tune_image_starts_table","k":"table","len":24,"c":true},{"a":35673,"n":"tune_image_pattern_lo","k":"table","len":81,"c":true},{"a":35754,"n":"tune_image_pattern_hi","k":"table","len":81,"c":true},{"a":35835,"n":"tune_image_pulse_table","k":"table","len":62,"c":true},{"a":35897,"n":"tune_image_slide_table","k":"table","len":85,"c":true},{"a":35982,"n":"tune_image_arpeggio_table","k":"table","len":257,"c":true},{"a":36239,"n":"tune_image_filter_table","k":"table","len":28,"c":true},{"a":36267,"n":"tune_image_wave_program_table","k":"table","len":22,"c":true},{"a":36289,"n":"tune_image_wave_programs","k":"table","len":147,"c":true},{"a":36436,"n":"tune_image_data_ADA0","k":"table","len":13,"c":true},{"a":36449,"n":"tune_image_data_ADAD","k":"table","len":5,"c":true},{"a":36454,"n":"tune_image_data_ADB2","k":"table","len":24,"c":true},{"a":36478,"n":"tune_image_data_ADCA","k":"table","len":129,"c":true},{"a":36607,"n":"tune_image_data_AE4B","k":"table","len":58,"c":true},{"a":36665,"n":"tune_image_data_AE85","k":"table","len":29,"c":true},{"a":36694,"n":"tune_image_data_AEA2","k":"table","len":18,"c":true},{"a":36712,"n":"tune_image_data_AEB4","k":"table","len":4,"c":true},{"a":36716,"n":"tune_image_data_AEB8","k":"table","len":4,"c":true},{"a":36720,"n":"tune_image_data_AEBC","k":"table","len":4,"c":true},{"a":36724,"n":"tune_image_data_AEC0","k":"table","len":4,"c":true},{"a":36728,"n":"tune_image_data_AEC4","k":"table","len":64,"c":true},{"a":36792,"n":"tune_image_data_AF04","k":"table","len":43,"c":true},{"a":36835,"n":"tune_image_data_AF2F","k":"table","len":43,"c":true},{"a":36878,"n":"tune_image_data_AF5A","k":"table","len":57,"c":true},{"a":36935,"n":"tune_image_data_AF93","k":"table","len":19,"c":true},{"a":36954,"n":"tune_image_data_AFA6","k":"table","len":14,"c":true},{"a":36968,"n":"tune_image_data_AFB4","k":"table","len":30,"c":true},{"a":36998,"n":"tune_image_data_AFD2","k":"table","len":111,"c":true},{"a":37109,"n":"tune_image_data_B041","k":"table","len":37,"c":true},{"a":37146,"n":"tune_image_data_B066","k":"table","len":75,"c":true},{"a":37221,"n":"tune_image_data_B0B1","k":"table","len":21,"c":true},{"a":37242,"n":"tune_image_data_B0C6","k":"table","len":45,"c":true},{"a":37287,"n":"tune_image_data_B0F3","k":"table","len":24,"c":true},{"a":37311,"n":"tune_image_data_B10B","k":"table","len":56,"c":true},{"a":37367,"n":"tune_image_data_B143","k":"table","len":53,"c":true},{"a":37420,"n":"tune_image_data_B178","k":"table","len":4,"c":true},{"a":37424,"n":"tune_image_data_B17C","k":"table","len":52,"c":true},{"a":37476,"n":"tune_image_data_B1B0","k":"table","len":43,"c":true},{"a":37519,"n":"tune_image_data_B1DB","k":"table","len":7,"c":true},{"a":37526,"n":"tune_image_data_B1E2","k":"table","len":64,"c":true},{"a":37590,"n":"tune_image_data_B222","k":"table","len":22,"c":true},{"a":37612,"n":"tune_image_data_B238","k":"table","len":64,"c":true},{"a":37676,"n":"tune_image_data_B278","k":"table","len":103,"c":true},{"a":37779,"n":"tune_image_data_B2DF","k":"table","len":3,"c":true},{"a":37782,"n":"tune_image_data_B2E2","k":"table","len":22,"c":true},{"a":48896,"n":"tile_colours","k":"table","len":256,"c":true},{"a":49152,"n":"play_charset_a","k":"table","len":824,"c":true},{"a":49976,"n":"char_shapes_text_a","k":"table","len":136,"c":true},{"a":50112,"n":"char_shapes_text_b","k":"table","len":136,"c":true},{"a":50248,"n":"char_shape_137","k":"table","len":8,"c":true},{"a":50256,"n":"char_shapes_digits","k":"table","len":80,"c":true},{"a":50336,"n":"play_charset_b","k":"table","len":800,"c":true},{"a":51136,"n":"play_charset_blank","k":"table","len":56,"c":true},{"a":51192,"n":"shot_char_shape","k":"table","len":8,"c":true},{"a":51200,"n":"screen_a","k":"table","len":1000,"c":true},{"a":52216,"n":"sprite_pointers_a","k":"table","len":8,"c":true},{"a":52224,"n":"screen_b","k":"table","len":1000,"c":true},{"a":53240,"n":"sprite_pointers_b","k":"table","len":8,"c":true},{"a":53248,"n":"enemy_shapes_a","k":"table","len":1024,"c":true},{"a":54272,"n":"enemy_shapes_b","k":"table","len":1024,"c":true},{"a":55296,"n":"enemy_leap_shapes","k":"table","len":832,"c":true},{"a":56128,"n":"enemy_attack_shapes_b","k":"table","len":128,"c":true},{"a":56256,"n":"exit_marker_shape","k":"table","len":64,"c":true},{"a":56320,"n":"title_sprite_shapes","k":"table","len":256,"c":true},{"a":56576,"n":"cursor_shape","k":"table","len":64,"c":true},{"a":57344,"n":"player_shapes_a","k":"table","len":1024,"c":true},{"a":58368,"n":"player_shapes_b","k":"table","len":256,"c":true},{"a":58624,"n":"climb_shapes","k":"table","len":192,"c":true},{"a":58816,"n":"walk_right_shapes","k":"table","len":384,"c":true},{"a":59200,"n":"walk_left_shapes","k":"table","len":384,"c":true},{"a":59584,"n":"attack_shapes","k":"table","len":1024,"c":true},{"a":60608,"n":"attack_shapes_b","k":"table","len":960,"c":true},{"a":61568,"n":"shapes_unreferenced","k":"table","len":192,"c":true},{"a":61824,"n":"object_shapes","k":"table","len":512,"c":true},{"a":63424,"n":"panel_bitmap","k":"table","len":256,"c":true},{"a":63680,"n":"image_row_0","k":"table","len":48,"c":true},{"a":63728,"n":"panel_bitmap_1","k":"table","len":232,"c":true},{"a":63960,"n":"timer_cells","k":"table","len":40,"c":true},{"a":64000,"n":"image_row_1","k":"table","len":48,"c":true},{"a":64048,"n":"panel_bitmap_2","k":"table","len":40,"c":true},{"a":64088,"n":"score_cells","k":"table","len":56,"c":true},{"a":64144,"n":"panel_bitmap_3","k":"table","len":56,"c":true},{"a":64200,"n":"energy_cells","k":"table","len":64,"c":true},{"a":64264,"n":"panel_bitmap_4","k":"table","len":56,"c":true},{"a":64320,"n":"image_row_2","k":"table","len":48,"c":true},{"a":64368,"n":"panel_bitmap_5","k":"table","len":272,"c":true},{"a":64640,"n":"image_row_3","k":"table","len":48,"c":true},{"a":64688,"n":"panel_bitmap_6","k":"table","len":272,"c":true},{"a":64960,"n":"image_row_4","k":"table","len":48,"c":true},{"a":65008,"n":"panel_bitmap_7","k":"table","len":336,"c":true},{"a":65024,"n":"KERNAL_SETLFSj","k":"variable","len":1,"c":false},{"a":65344,"n":"marker_shapes","k":"table","len":128,"c":true}],"records":[{"a":0,"t":"gap","n":2592},{"a":2592,"l":"level_entry","c":"Entry of the level 1 file, jumped to by the resident loader at $0424. Sets up the title screen ($0A60), then loops between the high-score page ($11BC) and the credits page ($13C9), with pauses through $2027, until $0EEC sees fire and starts play.","t":"code","b":[32,94,10],"m":"jsr","oa":2654,"o":"entry_hook"},{"a":2595,"l":"j_0A23","t":"code","b":[32,96,10],"m":"jsr","oa":2656,"o":"title_setup","x":[2651]},{"a":2598,"t":"code","b":[32,78,18],"m":"jsr","oa":4686,"o":"title_idle"},{"a":2601,"t":"code","b":[32,213,31],"m":"jsr","oa":8149,"o":"disabled_check"},{"a":2604,"t":"code","b":[173,234,14],"m":"lda","oa":3818,"o":"title_page"},{"a":2607,"t":"code","b":[240,6],"m":"beq","oa":2615,"o":"b_0A37"},{"a":2609,"t":"code","b":[32,201,19],"m":"jsr","oa":5065,"o":"show_credits"},{"a":2612,"t":"code","b":[76,58,10],"m":"jmp","oa":2618,"o":"j_0A3A"},{"a":2615,"l":"b_0A37","t":"code","b":[32,188,17],"m":"jsr","oa":4540,"o":"show_scores","x":[2607]},{"a":2618,"l":"j_0A3A","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[2612]},{"a":2620,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":2623,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2625,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":2628,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2630,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":2633,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2635,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":2638,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2640,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":2643,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2645,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":2648,"t":"code","b":[32,236,14],"m":"jsr","oa":3820,"o":"title_wait_fire"},{"a":2651,"t":"code","b":[76,35,10],"m":"jmp","oa":2595,"o":"j_0A23"},{"a":2654,"l":"entry_hook","c":"A lone RTS, called first by the entry at $0A20.","t":"code","b":[96],"m":"rts","x":[2592]},{"a":2655,"l":"ecm_flag","c":"Extended-colour flag: when it is not zero set_ecm ($1656) turns extended colour mode on, otherwise off. Set to 1 by type_briefing ($0F44) and type_lab_text ($57E5) and cleared by play_setup at $1B4E.","t":"byte","b":[0],"x":[2663,2804,2876,3884,4056,5463,5695,5718,6990,22630,22733,23075]},{"a":2656,"l":"title_setup","c":"Blanks the screen and switches the video chip to bank 3 ($DD00 bits 0-1 cleared), screen at $CC00 and characters at $E000 ($D018=$38), with extended colour mode on ($D011 bit 6), and banks out the ROMs ($01=$35).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[2595]},{"a":2658,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":2661,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2663,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":2666,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":2669,"t":"code","b":[41,239],"m":"and","o":"#$EF"},{"a":2671,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":2674,"t":"code","b":[120],"m":"sei"},{"a":2675,"t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":2677,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"processor_port"},{"a":2679,"t":"code","b":[173,2,221],"m":"lda","o":"cia2_ddr_a"},{"a":2682,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":2684,"t":"code","b":[141,2,221],"m":"sta","o":"cia2_ddr_a"},{"a":2687,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":2690,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":2692,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":2695,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":2698,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":2700,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":2703,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":2706,"t":"code","b":[9,80],"m":"ora","o":"#$50"},{"a":2708,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":2711,"t":"code","b":[169,56],"m":"lda","o":"#$38"},{"a":2713,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":2716,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2718,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":2721,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":2724,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":2726,"t":"code","b":[9,24],"m":"ora","o":"#$18"},{"a":2728,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":2731,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":2733,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":2736,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":2738,"t":"code","b":[32,21,32],"m":"jsr","oa":8213,"o":"fill_colour"},{"a":2741,"t":"code","b":[32,65,11],"m":"jsr","oa":2881,"o":"swap_title_chars"},{"a":2744,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":2747,"t":"code","b":[32,99,11],"m":"jsr","oa":2915,"o":"draw_title_rows"},{"a":2750,"t":"code","b":[32,17,28],"m":"jsr","oa":7185,"o":"copy_to_a000"},{"a":2753,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":2755,"t":"code","b":[173,15,17],"m":"lda","oa":4367,"o":"new_high_flag"},{"a":2758,"t":"code","b":[208,2],"m":"bne","oa":2762,"o":"b_0ACA"},{"a":2760,"t":"code","b":[162,18],"m":"ldx","o":"#$12"},{"a":2762,"l":"b_0ACA","t":"code","b":[32,100,161],"m":"jsr","oa":41316,"o":"tune_start","x":[2758]},{"a":2765,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2767,"t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour"},{"a":2770,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2772,"t":"code","b":[141,16,10],"m":"sta","oa":2576,"o":"mask_result"},{"a":2775,"t":"code","b":[141,65,15],"m":"sta","oa":3905,"o":"hide_sprites_flag"},{"a":2778,"t":"code","b":[141,56,32],"m":"sta","oa":8248,"o":"nmi_flag"},{"a":2781,"t":"code","b":[141,57,32],"m":"sta","oa":8249,"o":"delay_counter"},{"a":2784,"t":"code","b":[141,58,32],"m":"sta","oa":8250,"o":"$203A"},{"a":2787,"t":"code","b":[141,64,11],"m":"sta","oa":2880,"o":"name_entered_flag"},{"a":2790,"t":"code","b":[141,23,208],"m":"sta","o":"vic_sprite_expand_y"},{"a":2793,"t":"code","b":[141,29,208],"m":"sta","o":"vic_sprite_expand_x"},{"a":2796,"t":"code","b":[141,17,10],"m":"sta","oa":2577,"o":"skip_flag"},{"a":2799,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2801,"t":"code","b":[141,234,14],"m":"sta","oa":3818,"o":"title_page"},{"a":2804,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":2807,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":2809,"t":"code","b":[141,18,10],"m":"sta","oa":2578,"o":"credits"},{"a":2812,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2814,"t":"code","b":[141,47,14],"m":"sta","oa":3631,"o":"key_code"},{"a":2817,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":2819,"t":"code","b":[141,250,255],"m":"sta","oa":65530,"o":"$FFFA"},{"a":2822,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":2824,"t":"code","b":[141,251,255],"m":"sta","oa":65531,"o":"$FFFB"},{"a":2827,"t":"code","b":[169,194],"m":"lda","o":"#$C2"},{"a":2829,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":2832,"t":"code","b":[169,21],"m":"lda","o":"#$15"},{"a":2834,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":2837,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2839,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":2842,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":2844,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":2847,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":2849,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":2852,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":2855,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":2857,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":2860,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":2862,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":2865,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":2867,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":2870,"t":"code","b":[173,13,220],"m":"lda","o":"cia1_interrupt"},{"a":2873,"t":"code","b":[88],"m":"cli"},{"a":2874,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":2876,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":2879,"t":"code","b":[96],"m":"rts"},{"a":2880,"l":"name_entered_flag","c":"One byte that title_setup ($0AE3) clears and title_idle ($1311) sets to 1 once the typed name has been put in the high-score table. No code in the level 1 file or the resident code reads it.","t":"byte","b":[0],"x":[2787,4881]},{"a":2881,"l":"swap_title_chars","c":"Exchanges 256 bytes of $0BD7 with $C000 and 256 bytes of $0CD7 with $C100 (it reads both and writes each to the other), so calling it twice puts everything back. Called by title_setup at $0AB5 and by title_wait_fire at $0F32.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2741,3890]},{"a":2883,"l":"b_0B43","t":"code","b":[185,215,11],"m":"lda","oa":3031,"o":"title_shapes,y","x":[2912]},{"a":2886,"t":"code","b":[72],"m":"pha"},{"a":2887,"t":"code","b":[185,0,192],"m":"lda","oa":49152,"o":"play_charset_a,y"},{"a":2890,"t":"code","b":[153,215,11],"m":"sta","oa":3031,"o":"title_shapes,y"},{"a":2893,"t":"code","b":[104],"m":"pla"},{"a":2894,"t":"code","b":[153,0,192],"m":"sta","oa":49152,"o":"play_charset_a,y"},{"a":2897,"t":"code","b":[185,215,12],"m":"lda","oa":3287,"o":"title_shapes_b,y"},{"a":2900,"t":"code","b":[72],"m":"pha"},{"a":2901,"t":"code","b":[185,0,193],"m":"lda","oa":49408,"o":"$C100,y"},{"a":2904,"t":"code","b":[153,215,12],"m":"sta","oa":3287,"o":"title_shapes_b,y"},{"a":2907,"t":"code","b":[104],"m":"pla"},{"a":2908,"t":"code","b":[153,0,193],"m":"sta","oa":49408,"o":"$C100,y"},{"a":2911,"t":"code","b":[200],"m":"iny"},{"a":2912,"t":"code","b":[208,225],"m":"bne","oa":2883,"o":"b_0B43"},{"a":2914,"t":"code","b":[96],"m":"rts"},{"a":2915,"l":"draw_title_rows","c":"Copies four rows of 21 bytes from $0B83, $0B98, $0BAD and $0BC2 to $CC09, $CC31, $CC59 and $CC81 in the screen matrix (rows 0 to 3, from column 9). Called once by title_setup at $0ABB.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2747]},{"a":2917,"l":"b_0B65","t":"code","b":[185,131,11],"m":"lda","oa":2947,"o":"title_rows,y","x":[2944]},{"a":2920,"t":"code","b":[153,9,204],"m":"sta","oa":52233,"o":"$CC09,y"},{"a":2923,"t":"code","b":[185,152,11],"m":"lda","oa":2968,"o":"title_row_1,y"},{"a":2926,"t":"code","b":[153,49,204],"m":"sta","oa":52273,"o":"$CC31,y"},{"a":2929,"t":"code","b":[185,173,11],"m":"lda","oa":2989,"o":"title_row_2,y"},{"a":2932,"t":"code","b":[153,89,204],"m":"sta","oa":52313,"o":"$CC59,y"},{"a":2935,"t":"code","b":[185,194,11],"m":"lda","oa":3010,"o":"title_row_3,y"},{"a":2938,"t":"code","b":[153,129,204],"m":"sta","oa":52353,"o":"$CC81,y"},{"a":2941,"t":"code","b":[200],"m":"iny"},{"a":2942,"t":"code","b":[192,21],"m":"cpy","o":"#$15"},{"a":2944,"t":"code","b":[208,227],"m":"bne","oa":2917,"o":"b_0B65"},{"a":2946,"t":"code","b":[96],"m":"rts"},{"a":2947,"l":"title_rows","c":"Four rows of 21 screen codes ($0B83, $0B98, $0BAD, $0BC2) that draw_title_rows ($0B63) copies to rows 0 to 3 of the title screen.","t":"byte","b":[1,2,3,4,5,6,7,8],"x":[2917]},{"a":2955,"t":"byte","b":[1,9,10,11,12,13,14,15]},{"a":2963,"t":"byte","b":[51,52,11,53,14]},{"a":2968,"l":"title_row_1","c":"Row 1 of the title logo, 21 screen codes, copied by draw_title_rows ($0B63) to $CC31 (screen row 1, column 9).","t":"byte","b":[1,16,14,17,18,19,20,21],"x":[2923]},{"a":2976,"t":"byte","b":[1,22,23,24,25,26,14,27]},{"a":2984,"t":"byte","b":[54,55,24,56,14]},{"a":2989,"l":"title_row_2","c":"Row 2 of the title logo, 21 screen codes, copied by draw_title_rows ($0B63) to $CC59 (screen row 2, column 9).","t":"byte","b":[1,16,28,29,30,31,32,33],"x":[2929]},{"a":2997,"t":"byte","b":[1,34,35,24,36,37,38,39]},{"a":3005,"t":"byte","b":[0,57,24,58,14]},{"a":3010,"l":"title_row_3","c":"Row 3 of the title logo, 21 screen codes, copied by draw_title_rows ($0B63) to $CC81 (screen row 3, column 9).","t":"byte","b":[1,40,41,42,43,44,45,24],"x":[2935]},{"a":3018,"t":"byte","b":[1,46,47,24,48,49,24,50]},{"a":3026,"t":"byte","b":[59,24,24,60,14]},{"a":3031,"l":"title_shapes","c":"512 bytes of character shapes that swap_title_chars ($0B41) exchanges with the character data: $0BD7-$0CD6 with $C000 and $0CD7-$0DD6 with $C100.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[2883,2890]},{"a":3039,"t":"byte","b":[63,63,63,63,63,63,63,63]},{"a":3047,"t":"byte","b":[255,255,255,255,255,239,203,195]},{"a":3055,"t":"byte","b":[224,248,248,252,252,252,252,252]},{"a":3063,"t":"byte","b":[15,15,15,47,47,47,63,63]},{"a":3071,"t":"byte","b":[252,252,252,254,254,254,255,255]},{"a":3079,"t":"byte","b":[15,15,15,15,15,15,15,15]},{"a":3087,"t":"byte","b":[255,255,255,255,255,251,242,240]},{"a":3095,"t":"byte","b":[248,254,254,255,255,255,255,255]},{"a":3103,"t":"byte","b":[195,195,203,203,207,207,207,239]},{"a":3111,"t":"byte","b":[255,255,255,254,254,252,248,248]},{"a":3119,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":3127,"t":"byte","b":[0,0,128,128,192,192,192,224]},{"a":3135,"t":"byte","b":[3,3,3,11,11,15,15,47]},{"a":3143,"t":"byte","b":[252,252,252,252,252,252,252,252]},{"a":3151,"t":"byte","b":[15,47,47,63,62,63,62,60]},{"a":3159,"t":"byte","b":[195,195,195,195,195,195,195,195]},{"a":3167,"t":"byte","b":[63,63,63,63,63,191,191,191]},{"a":3175,"t":"byte","b":[255,255,255,255,255,191,191,191]},{"a":3183,"t":"byte","b":[15,15,15,15,15,143,143,143]},{"a":3191,"t":"byte","b":[240,240,240,240,242,251,255,255]},{"a":3199,"t":"byte","b":[255,255,255,255,255,255,254,254]},{"a":3207,"t":"byte","b":[239,255,255,255,255,255,255,255]},{"a":3215,"t":"byte","b":[240,240,224,224,192,192,192,128]},{"a":3223,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":3231,"t":"byte","b":[224,240,240,240,248,248,252,252]},{"a":3239,"t":"byte","b":[47,63,63,63,191,191,255,255]},{"a":3247,"t":"byte","b":[191,190,184,176,240,240,240,240]},{"a":3255,"t":"byte","b":[252,252,252,252,254,254,255,255]},{"a":3263,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":3271,"t":"byte","b":[63,63,63,63,63,255,255,255]},{"a":3279,"t":"byte","b":[207,207,207,207,207,239,239,239]},{"a":3287,"l":"title_shapes_b","c":"The second half of title_shapes: 256 bytes ($0CD7-$0DD6, characters $20 to $3F of the title screen's set) that swap_title_chars ($0B41) exchanges with $C100-$C1FF.","t":"byte","b":[255,255,255,251,242,240,240,240],"x":[2897,2904]},{"a":3295,"t":"byte","b":[248,254,254,255,255,255,255,255]},{"a":3303,"t":"byte","b":[255,255,255,255,255,255,255,239]},{"a":3311,"t":"byte","b":[128,128,128,192,192,224,224,240]},{"a":3319,"t":"byte","b":[252,255,255,255,255,255,255,191]},{"a":3327,"t":"byte","b":[255,255,255,255,255,255,255,251]},{"a":3335,"t":"byte","b":[252,254,254,254,255,255,255,255]},{"a":3343,"t":"byte","b":[240,240,240,240,248,248,252,252]},{"a":3351,"t":"byte","b":[195,203,239,255,255,255,255,255]},{"a":3359,"t":"byte","b":[255,255,255,255,255,251,251,227]},{"a":3367,"t":"byte","b":[255,254,254,254,252,252,252,252]},{"a":3375,"t":"byte","b":[255,47,47,47,15,15,15,15]},{"a":3383,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":3391,"t":"byte","b":[240,240,240,240,240,240,240,240]},{"a":3399,"t":"byte","b":[239,207,207,207,203,203,195,195]},{"a":3407,"t":"byte","b":[240,248,248,254,254,255,255,255]},{"a":3415,"t":"byte","b":[191,191,63,47,47,47,15,15]},{"a":3423,"t":"byte","b":[251,251,243,227,227,227,195,195]},{"a":3431,"t":"byte","b":[252,252,252,252,255,255,255,255]},{"a":3439,"t":"byte","b":[255,175,15,15,11,15,11,3]},{"a":3447,"t":"byte","b":[192,224,224,240,240,240,240,240]},{"a":3455,"t":"byte","b":[3,3,131,195,195,195,195,227]},{"a":3463,"t":"byte","b":[3,2,0,0,0,0,0,0]},{"a":3471,"t":"byte","b":[248,248,184,56,60,60,60,60]},{"a":3479,"t":"byte","b":[227,243,243,243,251,255,255,255]},{"a":3487,"t":"byte","b":[60,62,62,190,255,255,255,255]},{"a":3495,"t":"byte","b":[255,255,255,255,255,191,63,63]},{"a":3503,"t":"byte","b":[0,3,3,35,51,51,51,51]},{"a":3511,"t":"byte","b":[47,47,15,15,11,11,3,3]},{"a":3519,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3527,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3535,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3543,"t":"gap","n":48},{"a":3591,"l":"fill_colour_rows","c":"Stores A in colour RAM from $D8A0 to $DBE7 (840 bytes: four runs of $D2 bytes, rows 4 to 24). Called by the credits page ($11BE, with A=$0D), the name entry in title_idle ($1273, A=7) and the high-score page ($13D0, A=7).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[4542,4723,5072]},{"a":3593,"l":"b_0E09","t":"code","b":[153,160,216],"m":"sta","o":"$D8A0,y","x":[3608]},{"a":3596,"t":"code","b":[153,114,217],"m":"sta","o":"$D972,y"},{"a":3599,"t":"code","b":[153,68,218],"m":"sta","o":"$DA44,y"},{"a":3602,"t":"code","b":[153,22,219],"m":"sta","o":"$DB16,y"},{"a":3605,"t":"code","b":[200],"m":"iny"},{"a":3606,"t":"code","b":[192,210],"m":"cpy","o":"#$D2"},{"a":3608,"t":"code","b":[208,239],"m":"bne","oa":3593,"o":"b_0E09"},{"a":3610,"t":"code","b":[96],"m":"rts"},{"a":3611,"l":"fill_screen_rows","c":"Stores A in the screen matrix from $CCA0 to $CFE7 (840 bytes: four runs of $D2 bytes, rows 4 to 24), the same rows as fill_colour_rows. Called with A=$3D by the credits page ($11C3), the name entry ($126E) and the high-score page ($13CB).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[4547,4718,5067]},{"a":3613,"l":"b_0E1D","t":"code","b":[153,160,204],"m":"sta","oa":52384,"o":"$CCA0,y","x":[3628]},{"a":3616,"t":"code","b":[153,114,205],"m":"sta","oa":52594,"o":"$CD72,y"},{"a":3619,"t":"code","b":[153,68,206],"m":"sta","oa":52804,"o":"$CE44,y"},{"a":3622,"t":"code","b":[153,22,207],"m":"sta","oa":53014,"o":"$CF16,y"},{"a":3625,"t":"code","b":[200],"m":"iny"},{"a":3626,"t":"code","b":[192,210],"m":"cpy","o":"#$D2"},{"a":3628,"t":"code","b":[208,239],"m":"bne","oa":3613,"o":"b_0E1D"},{"a":3630,"t":"code","b":[96],"m":"rts"},{"a":3631,"l":"key_code","c":"The key code read every frame by $0E30.","t":"byte","b":[255],"x":[2814,4803,5005,5017,5670,6007,6019,6026,6033,6550,6673,7975]},{"a":3632,"l":"read_keys","c":"Reads the keyboard with CIA 1 into A; returns at once when no line of the port reads low (the test at $0E3F), otherwise scans the rows from $0EA7. $1EF4 keeps the result in $0E2F.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[5667,7972]},{"a":3634,"t":"code","b":[141,2,220],"m":"sta","o":"cia1_ddr_a"},{"a":3637,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":3640,"t":"code","b":[45,1,220],"m":"and","o":"cia1_port_b"},{"a":3643,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":3645,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":3647,"t":"code","b":[208,96],"m":"bne","oa":3745,"o":"b_0EA1"},{"a":3649,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":3651,"t":"code","b":[141,2,220],"m":"sta","o":"cia1_ddr_a"},{"a":3654,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3656,"t":"code","b":[141,168,14],"m":"sta","oa":3752,"o":"key_line"},{"a":3659,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":3661,"t":"code","b":[141,167,14],"m":"sta","oa":3751,"o":"key_line_mask"},{"a":3664,"l":"b_0E50","t":"code","b":[173,167,14],"m":"lda","oa":3751,"o":"key_line_mask","x":[3688]},{"a":3667,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":3670,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":3672,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":3675,"l":"b_0E5B","t":"code","b":[106],"m":"ror","o":"a","x":[3679]},{"a":3676,"t":"code","b":[144,20],"m":"bcc","oa":3698,"o":"b_0E72"},{"a":3678,"l":"j_0E5E","t":"code","b":[202],"m":"dex","x":[3742]},{"a":3679,"t":"code","b":[16,250],"m":"bpl","oa":3675,"o":"b_0E5B"},{"a":3681,"t":"code","b":[238,168,14],"m":"inc","oa":3752,"o":"key_line"},{"a":3684,"t":"code","b":[56],"m":"sec"},{"a":3685,"t":"code","b":[46,167,14],"m":"rol","oa":3751,"o":"key_line_mask"},{"a":3688,"t":"code","b":[176,230],"m":"bcs","oa":3664,"o":"b_0E50"},{"a":3690,"l":"j_0E6A","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[3747]},{"a":3692,"t":"code","b":[141,2,220],"m":"sta","o":"cia1_ddr_a"},{"a":3695,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":3697,"t":"code","b":[96],"m":"rts"},{"a":3698,"l":"b_0E72","t":"code","b":[141,169,14],"m":"sta","oa":3753,"o":"key_bits","x":[3676]},{"a":3701,"t":"code","b":[138],"m":"txa"},{"a":3702,"t":"code","b":[73,7],"m":"eor","o":"#$07"},{"a":3704,"t":"code","b":[10],"m":"asl","o":"a"},{"a":3705,"t":"code","b":[10],"m":"asl","o":"a"},{"a":3706,"t":"code","b":[10],"m":"asl","o":"a"},{"a":3707,"t":"code","b":[13,168,14],"m":"ora","oa":3752,"o":"key_line"},{"a":3710,"t":"code","b":[168],"m":"tay"},{"a":3711,"t":"code","b":[185,170,14],"m":"lda","oa":3754,"o":"key_table,y"},{"a":3714,"t":"code","b":[140,167,2],"m":"sty","oa":679,"o":"$02A7"},{"a":3717,"t":"code","b":[48,20],"m":"bmi","oa":3739,"o":"b_0E9B"},{"a":3719,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":3721,"t":"code","b":[142,2,220],"m":"stx","o":"cia1_ddr_a"},{"a":3724,"t":"code","b":[170],"m":"tax"},{"a":3725,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":3728,"t":"code","b":[45,1,220],"m":"and","o":"cia1_port_b"},{"a":3731,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":3733,"t":"code","b":[201,31],"m":"cmp","o":"#$1F"},{"a":3735,"t":"code","b":[208,8],"m":"bne","oa":3745,"o":"b_0EA1"},{"a":3737,"t":"code","b":[138],"m":"txa"},{"a":3738,"t":"code","b":[96],"m":"rts"},{"a":3739,"l":"b_0E9B","t":"code","b":[173,169,14],"m":"lda","oa":3753,"o":"key_bits","x":[3717]},{"a":3742,"t":"code","b":[76,94,14],"m":"jmp","oa":3678,"o":"j_0E5E"},{"a":3745,"l":"b_0EA1","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[3647,3735]},{"a":3747,"t":"code","b":[76,106,14],"m":"jmp","oa":3690,"o":"j_0E6A"},{"a":3750,"t":"gap","n":1},{"a":3751,"l":"key_line_mask","c":"The value read_keys ($0E30) writes to CIA 1 port A ($DC00) to select one keyboard line: it starts at $FE and is rotated left through the carry after each line, so a single 0 bit walks along the eight lines.","t":"byte","b":[255],"x":[3661,3664,3685]},{"a":3752,"l":"key_line","c":"The number of the keyboard line (0 to 7) read_keys ($0E30) is looking at; it starts at 0 and goes up by 1 after each line that holds no key. read_keys ORs it into the index of key_table ($0EAA).","t":"byte","b":[8],"x":[3656,3681,3707]},{"a":3753,"l":"key_bits","c":"The port B byte ($DC01) after read_keys ($0E30) has shifted it right to the bit that was clear. When key_table gives $FF for that key, read_keys reloads it at $0E9B and goes on looking at the remaining bits.","t":"byte","b":[0],"x":[3698,3739]},{"a":3754,"l":"key_table","c":"The key codes of the 64 keys of the keyboard matrix, 8 bytes for each bit of CIA 1 port B and in the order of the keyboard lines (port A bit 0 to 7). read_keys ($0E30) takes the entry at 8 times the bit number plus $0EA8. Letters and digits are ASCII, space is $20, RETURN is 0, DEL is 1, RUN/STOP is $7F and a key with no meaning is $FF.","t":"byte","b":[1,51,53,55,57,255,255,49],"x":[3711]},{"a":3762,"t":"byte","b":[0,87,82,89,73,80,255,255]},{"a":3770,"t":"byte","b":[255,65,68,71,74,76,255,255]},{"a":3778,"t":"byte","b":[255,52,54,56,48,255,255,50]},{"a":3786,"t":"byte","b":[255,90,67,66,77,255,255,32]},{"a":3794,"t":"byte","b":[255,83,70,72,75,255,255,255]},{"a":3802,"t":"byte","b":[255,69,84,85,79,255,255,81]},{"a":3810,"t":"byte","b":[255,255,88,86,78,255,255,127]},{"a":3818,"l":"title_page","c":"Which attract page is up: 0 for the credits page, 1 for the high-score table.","t":"byte","b":[0,0],"x":[2604,2801,3847,3852,4713]},{"a":3820,"l":"title_wait_fire","c":"Title loop step: polls the joystick byte $203B for fire (bit 4) and, every time the countdown in $203A and $2039 runs out, flips $0EEA to swap between the credits and score pages.","t":"code","b":[32,213,31],"m":"jsr","oa":8149,"o":"disabled_check","x":[2648,3835,3860,3866]},{"a":3823,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":3826,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":3828,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":3830,"t":"code","b":[208,37],"m":"bne","oa":3869,"o":"b_0F1D"},{"a":3832,"t":"code","b":[173,58,32],"m":"lda","oa":8250,"o":"$203A"},{"a":3835,"t":"code","b":[208,239],"m":"bne","oa":3820,"o":"title_wait_fire"},{"a":3837,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":3839,"t":"code","b":[141,58,32],"m":"sta","oa":8250,"o":"$203A"},{"a":3842,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":3844,"t":"code","b":[141,57,32],"m":"sta","oa":8249,"o":"delay_counter"},{"a":3847,"t":"code","b":[173,234,14],"m":"lda","oa":3818,"o":"title_page"},{"a":3850,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":3852,"t":"code","b":[141,234,14],"m":"sta","oa":3818,"o":"title_page"},{"a":3855,"t":"code","b":[240,6],"m":"beq","oa":3863,"o":"b_0F17"},{"a":3857,"t":"code","b":[32,188,17],"m":"jsr","oa":4540,"o":"show_scores"},{"a":3860,"t":"code","b":[76,236,14],"m":"jmp","oa":3820,"o":"title_wait_fire"},{"a":3863,"l":"b_0F17","t":"code","b":[32,201,19],"m":"jsr","oa":5065,"o":"show_credits","x":[3855]},{"a":3866,"t":"code","b":[76,236,14],"m":"jmp","oa":3820,"o":"title_wait_fire"},{"a":3869,"l":"b_0F1D","t":"code","b":[169,10],"m":"lda","o":"#$0A","x":[3830]},{"a":3871,"t":"code","b":[32,26,169],"m":"jsr","oa":43290,"o":"tune_start_fade_out"},{"a":3874,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":3876,"t":"code","b":[141,65,15],"m":"sta","oa":3905,"o":"hide_sprites_flag"},{"a":3879,"t":"code","b":[32,68,15],"m":"jsr","oa":3908,"o":"type_briefing"},{"a":3882,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":3884,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":3887,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":3890,"t":"code","b":[32,65,11],"m":"jsr","oa":2881,"o":"swap_title_chars"},{"a":3893,"t":"code","b":[76,158,23],"m":"jmp","oa":6046,"o":"play_loop"},{"a":3896,"l":"j_0F38","t":"code","b":[173,56,32],"m":"lda","oa":8248,"o":"nmi_flag","x":[6087]},{"a":3899,"t":"code","b":[208,3],"m":"bne","oa":3904,"o":"r_0F40"},{"a":3901,"t":"code","b":[32,16,17],"m":"jsr","oa":4368,"o":"high_score_check"},{"a":3904,"l":"r_0F40","t":"code","b":[96],"m":"rts","x":[3899]},{"a":3905,"l":"hide_sprites_flag","c":"Set to 1 by title_wait_fire ($0F24) when fire starts the game and cleared by title_setup ($0AD7). While it is not zero the title interrupt at $1561 writes 0 to $D015, so no sprite shows during the briefing.","t":"byte","b":[1],"x":[2775,3876,5473]},{"a":3906,"l":"skip_count","c":"Countdown used by type_briefing ($0F44) and type_lab_text ($57E5): loaded with $1E, so that fire cannot stop the typing before $1E characters have been typed.","t":"byte","b":[0],"x":[3940,3957,3963,22528,22531,22537]},{"a":3907,"l":"text_index","c":"Index of the next character of the text being typed by type_briefing ($0F44) or type_lab_text ($57E5).","t":"byte","b":[30],"x":[3918,3986,4012,4019,22516,22560,22586,22593]},{"a":3908,"l":"type_briefing","c":"Types the level briefing text at $0FE6 onto the screen from $CC7E, one character at a time. A space code gives $3D and any other code gets $66 added; $FF ends a line (the pointer moves down $50 bytes, two screen rows) and a second $FF ends the text. It first fills the screen with $3D and colour RAM with 7, then waits $32 between characters; fire (bit 4 of $203B) stops the typing once the countdown $0F42 from $1E has run out, and at the end it waits for fire. It sets $0A5F to 1 and calls $A91A with A=4 before waiting for $A8EB to return zero. Called by title_wait_fire at $0F27.","t":"code","b":[169,126],"m":"lda","o":"#$7E","x":[3879]},{"a":3910,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":3912,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":3914,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":3916,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3918,"t":"code","b":[141,67,15],"m":"sta","oa":3907,"o":"text_index"},{"a":3921,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":3923,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":3926,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":3928,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":3930,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":3933,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":3935,"t":"code","b":[32,21,32],"m":"jsr","oa":8213,"o":"fill_colour"},{"a":3938,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":3940,"t":"code","b":[141,66,15],"m":"sta","oa":3906,"o":"skip_count"},{"a":3943,"l":"j_0F67","t":"code","b":[32,235,168],"m":"jsr","oa":43243,"o":"tune_voices_active","x":[4015,4044]},{"a":3946,"t":"code","b":[208,9],"m":"bne","oa":3957,"o":"b_0F75"},{"a":3948,"t":"code","b":[152],"m":"tya"},{"a":3949,"t":"code","b":[72],"m":"pha"},{"a":3950,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":3952,"t":"code","b":[32,100,161],"m":"jsr","oa":41316,"o":"tune_start"},{"a":3955,"t":"code","b":[104],"m":"pla"},{"a":3956,"t":"code","b":[168],"m":"tay"},{"a":3957,"l":"b_0F75","t":"code","b":[174,66,15],"m":"ldx","oa":3906,"o":"skip_count","x":[3946]},{"a":3960,"t":"code","b":[240,7],"m":"beq","oa":3969,"o":"b_0F81"},{"a":3962,"t":"code","b":[202],"m":"dex"},{"a":3963,"t":"code","b":[142,66,15],"m":"stx","oa":3906,"o":"skip_count"},{"a":3966,"t":"code","b":[76,136,15],"m":"jmp","oa":3976,"o":"j_0F88"},{"a":3969,"l":"b_0F81","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[3960]},{"a":3972,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":3974,"t":"code","b":[240,78],"m":"beq","oa":4054,"o":"b_0FD6"},{"a":3976,"l":"j_0F88","t":"code","b":[140,145,15],"m":"sty","oa":3985,"o":"a_0F91","x":[3966]},{"a":3979,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":3981,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":3984,"t":"code","b":[160,10],"m":"ldy","o":"#$0A"},{"a":3985,"t":"note","l":"a_0F91","c":"Holds the Y register saved by type_briefing at $0F88: the immediate operand of the LDY at $0F90, so the offset into the screen row survives the delay.","note":"inside the item at $0F90","x":[3976]},{"a":3986,"l":"type_briefing_part_2","c":"The rest of type_briefing ($0F44). It takes the next code of the text at $0FE6 through the index $0F43. $FF ends a line: the index moves on, a second $FF in a row ends the text, otherwise the pointer $E1/$E2 moves down $50 bytes and Y goes back to 0. A space gives $3D and any other code gets $66 added before it is stored through ($E1),y and the typing goes on at $0F67. At the end it waits for fire ($203B bit 4 clear), sets $0A5F to 1, calls $A91A with A=4 and loops on $A8EB until it returns zero.","t":"code","b":[174,67,15],"m":"ldx","oa":3907,"o":"text_index"},{"a":3989,"t":"code","b":[189,230,15],"m":"lda","oa":4070,"o":"level_intro_text,x"},{"a":3992,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":3994,"t":"code","b":[240,22],"m":"beq","oa":4018,"o":"b_0FB2"},{"a":3996,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":3998,"t":"code","b":[208,5],"m":"bne","oa":4005,"o":"b_0FA5"},{"a":4000,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4002,"t":"code","b":[76,168,15],"m":"jmp","oa":4008,"o":"j_0FA8"},{"a":4005,"l":"b_0FA5","t":"code","b":[24],"m":"clc","x":[3998]},{"a":4006,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":4008,"l":"j_0FA8","t":"code","b":[145,225],"m":"sta","oa":225,"o":"($E1),y","x":[4002]},{"a":4010,"t":"code","b":[200],"m":"iny"},{"a":4011,"t":"code","b":[232],"m":"inx"},{"a":4012,"t":"code","b":[142,67,15],"m":"stx","oa":3907,"o":"text_index"},{"a":4015,"t":"code","b":[76,103,15],"m":"jmp","oa":3943,"o":"j_0F67"},{"a":4018,"l":"b_0FB2","t":"code","b":[232],"m":"inx","x":[3994]},{"a":4019,"t":"code","b":[142,67,15],"m":"stx","oa":3907,"o":"text_index"},{"a":4022,"t":"code","b":[189,230,15],"m":"lda","oa":4070,"o":"level_intro_text,x"},{"a":4025,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":4027,"t":"code","b":[240,18],"m":"beq","oa":4047,"o":"b_0FCF"},{"a":4029,"t":"code","b":[24],"m":"clc"},{"a":4030,"t":"code","b":[165,225],"m":"lda","oa":225,"o":"$E1"},{"a":4032,"t":"code","b":[105,80],"m":"adc","o":"#$50"},{"a":4034,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":4036,"t":"code","b":[165,226],"m":"lda","oa":226,"o":"$E2"},{"a":4038,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":4040,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":4042,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4044,"t":"code","b":[76,103,15],"m":"jmp","oa":3943,"o":"j_0F67"},{"a":4047,"l":"b_0FCF","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[4027,4052]},{"a":4050,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":4052,"t":"code","b":[208,249],"m":"bne","oa":4047,"o":"b_0FCF"},{"a":4054,"l":"b_0FD6","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[3974]},{"a":4056,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":4059,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":4061,"t":"code","b":[32,26,169],"m":"jsr","oa":43290,"o":"tune_start_fade_out"},{"a":4064,"l":"b_0FE0","t":"code","b":[32,235,168],"m":"jsr","oa":43243,"o":"tune_voices_active","x":[4067]},{"a":4067,"t":"code","b":[208,251],"m":"bne","oa":4064,"o":"b_0FE0"},{"a":4069,"t":"code","b":[96],"m":"rts"},{"a":4070,"l":"level_intro_text","c":"Screen-code text of the level 1 briefing, $0FE6 to $10A2, typed by type_briefing ($0F44) from $CC7E. Letters are codes 1 to 26, $20 is a space, $1B a full stop and $FF ends a line; a second $FF in a row ends the text. The lines, with the start of each: $0FE6 \" LEVEL ONE.\", $0FF2 a line of six spaces, $0FF9 \" DARKMAN  SEEKING REVENGE ON\", $1016 \" THOSE WHO DISFIGURED HIM\", $1033 \" SETS OUT TO ACQUIRE THE ILL\", $1050 \" GOTTEN GAINS OF ROBERT G.\", $106D \" DURANT TO FURTHER HIS PLANS.\", $108B six spaces and $1092 \" END OF LINE...\". The text goes on at $1000 (level_intro_text_part_2).","t":"byte","b":[32,12,5,22,5,12,32,15],"x":[3989,4022]},{"a":4078,"t":"byte","b":[14,5,27,255,32,32,32,32]},{"a":4086,"t":"byte","b":[32,32,255,32,4,1,18,11]},{"a":4094,"t":"byte","b":[13,1]},{"a":4096,"l":"level_intro_text_part_2","c":"The rest of the briefing text of level_intro_text ($0FE6), from the middle of its line at $0FF9 to the closing $FF $FF at $10A1 and $10A2. A data symbol cannot reach across the memory-map edge at $1000, so the text has a second symbol here.","t":"byte","b":[14,32,32,19,5,5,11,9]},{"a":4104,"t":"byte","b":[14,7,32,18,5,22,5,14]},{"a":4112,"t":"byte","b":[7,5,32,15,14,255,32,20]},{"a":4120,"t":"byte","b":[8,15,19,5,32,23,8,15]},{"a":4128,"t":"byte","b":[32,4,9,19,6,9,7,21]},{"a":4136,"t":"byte","b":[18,5,4,32,8,9,13,32]},{"a":4144,"t":"byte","b":[32,32,255,32,19,5,20,19]},{"a":4152,"t":"byte","b":[32,15,21,20,32,20,15,32]},{"a":4160,"t":"byte","b":[1,3,17,21,9,18,5,32]},{"a":4168,"t":"byte","b":[20,8,5,32,9,12,12,255]},{"a":4176,"t":"byte","b":[32,7,15,20,20,5,14,32]},{"a":4184,"t":"byte","b":[7,1,9,14,19,32,15,6]},{"a":4192,"t":"byte","b":[32,18,15,2,5,18,20,32]},{"a":4200,"t":"byte","b":[7,27,32,32,255,32,4,21]},{"a":4208,"t":"byte","b":[18,1,14,20,32,20,15,32]},{"a":4216,"t":"byte","b":[6,21,18,20,8,5,18,32]},{"a":4224,"t":"byte","b":[8,9,19,32,16,12,1,14]},{"a":4232,"t":"byte","b":[19,27,255,32,32,32,32,32]},{"a":4240,"t":"byte","b":[32,255,32,5,14,4,32,15]},{"a":4248,"t":"byte","b":[6,32,12,9,14,5,27,27]},{"a":4256,"t":"byte","b":[27,255,255]},{"a":4259,"l":"high_scores","c":"The high-score table: five records of 18 bytes, each a name of 10 codes followed by 8 score digits, the highest score first. insert_score ($114F) keeps it sorted.","t":"byte","b":[0,13,3,24,32,32,32,32]},{"a":4267,"t":"byte","b":[32,32,0,0,2,5,6,0]},{"a":4275,"t":"byte","b":[0,0,3,0,21,4,32,32]},{"a":4283,"t":"byte","b":[32,32,32,32,0,0,1,2]},{"a":4291,"t":"byte","b":[8,0,0,0,9,0,18,14]},{"a":4299,"t":"byte","b":[13,32,32,32,32,32,0,0]},{"a":4307,"t":"byte","b":[0,6,4,0,0,0,15,4]},{"a":4315,"t":"byte","b":[19,4,32,32,32,32,32,32]},{"a":4323,"t":"byte","b":[0,0,0,3,2,0,0,0]},{"a":4331,"t":"byte","b":[18,19,20,0,17,19,32,32]},{"a":4339,"t":"byte","b":[32,32]},{"a":4341,"l":"last_score","c":"The eight score digits of the fifth and last record of the high-score table (the record at $10EB), the score that high_score_check ($1110) compares the player's score with.","t":"byte","b":[0,0,0,1,6,0,0,0],"x":[4392]},{"a":4349,"l":"new_score","c":"The record for the score just earned: the name from $1357 in its first 8 bytes and, from $1107, the score digits copied from $0A00 by high_score_check ($1110). insert_score ($114F) sorts it into the table.","t":"byte","b":[167,167,167,167,167,167,167,167],"x":[4419,4436,4868]},{"a":4357,"t":"byte","b":[32,32]},{"a":4359,"l":"new_score_digits","c":"The eight score digits of new_score: high_score_check ($1110) copies the player's score from $0A00-$0A07 here, and insert_score ($114F) moves the whole record into the table.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[4379,4389]},{"a":4367,"l":"new_high_flag","c":"Set to 1 by high_score_check ($1110) when the score is higher than the last record of the table and to 0 otherwise; play_setup also clears it. Read by title_setup ($0AC3), which uses it to pick the tune, and by title_idle ($1261).","t":"byte","b":[0],"x":[2755,4370,4410,4705,6706,6822]},{"a":4368,"l":"high_score_check","c":"Sets $110F to 1 when the score, the eight digits $0A00-$0A07, is greater than the score of the last record of the high-score table (the digits at $10F5-$10FC), and to 0 otherwise. It copies the score to $1107-$110E first. Called by title_wait_fire at $0F3D and by title_idle at $125A.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[3901,4698]},{"a":4370,"t":"code","b":[141,15,17],"m":"sta","oa":4367,"o":"new_high_flag"},{"a":4373,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4375,"t":"code","b":[24],"m":"clc"},{"a":4376,"l":"b_1118","t":"code","b":[185,0,10],"m":"lda","oa":2560,"o":"score_digits,y","x":[4385]},{"a":4379,"t":"code","b":[153,7,17],"m":"sta","oa":4359,"o":"new_score_digits,y"},{"a":4382,"t":"code","b":[200],"m":"iny"},{"a":4383,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":4385,"t":"code","b":[208,245],"m":"bne","oa":4376,"o":"b_1118"},{"a":4387,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4389,"l":"b_1125","t":"code","b":[185,7,17],"m":"lda","oa":4359,"o":"new_score_digits,y","x":[4405]},{"a":4392,"t":"code","b":[217,245,16],"m":"cmp","oa":4341,"o":"last_score,y"},{"a":4395,"t":"code","b":[144,10],"m":"bcc","oa":4407,"o":"r_1137"},{"a":4397,"t":"code","b":[240,3],"m":"beq","oa":4402,"o":"b_1132"},{"a":4399,"t":"code","b":[76,56,17],"m":"jmp","oa":4408,"o":"j_1138"},{"a":4402,"l":"b_1132","t":"code","b":[200],"m":"iny","x":[4397]},{"a":4403,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":4405,"t":"code","b":[208,238],"m":"bne","oa":4389,"o":"b_1125"},{"a":4407,"l":"r_1137","t":"code","b":[96],"m":"rts","x":[4395]},{"a":4408,"l":"j_1138","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[4399]},{"a":4410,"t":"code","b":[141,15,17],"m":"sta","oa":4367,"o":"new_high_flag"},{"a":4413,"t":"code","b":[96],"m":"rts"},{"a":4414,"l":"insert_name_unused","c":"Copies the eight name characters from name_buffer ($1357) to new_score ($10FD) and calls insert_score ($114F): the same steps as $1301-$130C in title_idle. Nothing calls or jumps to it.","t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4416,"t":"code","b":[185,87,19],"m":"lda","oa":4951,"o":"name_buffer,y","x":[4425]},{"a":4419,"t":"code","b":[153,253,16],"m":"sta","oa":4349,"o":"new_score,y"},{"a":4422,"t":"code","b":[200],"m":"iny"},{"a":4423,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":4425,"t":"code","b":[208,245],"m":"bne","oa":4416,"o":"$1140"},{"a":4427,"t":"code","b":[32,79,17],"m":"jsr","oa":4431,"o":"insert_score"},{"a":4430,"t":"code","b":[96],"m":"rts"},{"a":4431,"l":"insert_score","c":"Puts the new high score in the table. Copies the eight-character name from $1357 to $10FD, the first bytes of the new record at $10FD (its score digits are at $1107). Then, starting with the last record, it compares the score digits (offsets 10 to 17 of an 18-byte record) of the new record with the record above and, while the new one is higher, swaps the two records, up to five times. Called by title_idle at $130C and by the code at $114B.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[4427,4876]},{"a":4433,"l":"b_1151","t":"code","b":[185,87,19],"m":"lda","oa":4951,"o":"name_buffer,y","x":[4442]},{"a":4436,"t":"code","b":[153,253,16],"m":"sta","oa":4349,"o":"new_score,y"},{"a":4439,"t":"code","b":[200],"m":"iny"},{"a":4440,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":4442,"t":"code","b":[208,245],"m":"bne","oa":4433,"o":"b_1151"},{"a":4444,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4446,"t":"code","b":[169,235],"m":"lda","o":"#$EB"},{"a":4448,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":4450,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":4452,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":4454,"t":"code","b":[169,253],"m":"lda","o":"#$FD"},{"a":4456,"t":"code","b":[133,223],"m":"sta","oa":223,"o":"$DF"},{"a":4458,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":4460,"t":"code","b":[133,224],"m":"sta","oa":224,"o":"$E0"},{"a":4462,"l":"j_116E","t":"code","b":[160,10],"m":"ldy","o":"#$0A","x":[4517]},{"a":4464,"l":"b_1170","t":"code","b":[177,223],"m":"lda","oa":223,"o":"($DF),y","x":[4475]},{"a":4466,"t":"code","b":[209,225],"m":"cmp","oa":225,"o":"($E1),y"},{"a":4468,"t":"code","b":[144,7],"m":"bcc","oa":4477,"o":"r_117D"},{"a":4470,"t":"code","b":[208,6],"m":"bne","oa":4478,"o":"b_117E"},{"a":4472,"t":"code","b":[200],"m":"iny"},{"a":4473,"t":"code","b":[192,18],"m":"cpy","o":"#$12"},{"a":4475,"t":"code","b":[208,243],"m":"bne","oa":4464,"o":"b_1170"},{"a":4477,"l":"r_117D","t":"code","b":[96],"m":"rts","x":[4468,4498]},{"a":4478,"l":"b_117E","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[4470]},{"a":4480,"l":"b_1180","t":"code","b":[177,223],"m":"lda","oa":223,"o":"($DF),y","x":[4493]},{"a":4482,"t":"code","b":[72],"m":"pha"},{"a":4483,"t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y"},{"a":4485,"t":"code","b":[145,223],"m":"sta","oa":223,"o":"($DF),y"},{"a":4487,"t":"code","b":[104],"m":"pla"},{"a":4488,"t":"code","b":[145,225],"m":"sta","oa":225,"o":"($E1),y"},{"a":4490,"t":"code","b":[200],"m":"iny"},{"a":4491,"t":"code","b":[192,18],"m":"cpy","o":"#$12"},{"a":4493,"t":"code","b":[208,241],"m":"bne","oa":4480,"o":"b_1180"},{"a":4495,"t":"code","b":[232],"m":"inx"},{"a":4496,"t":"code","b":[224,5],"m":"cpx","o":"#$05"},{"a":4498,"t":"code","b":[240,233],"m":"beq","oa":4477,"o":"r_117D"},{"a":4500,"t":"code","b":[56],"m":"sec"},{"a":4501,"t":"code","b":[165,225],"m":"lda","oa":225,"o":"$E1"},{"a":4503,"t":"code","b":[133,223],"m":"sta","oa":223,"o":"$DF"},{"a":4505,"t":"code","b":[233,18],"m":"sbc","o":"#$12"},{"a":4507,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":4509,"t":"code","b":[165,226],"m":"lda","oa":226,"o":"$E2"},{"a":4511,"t":"code","b":[133,224],"m":"sta","oa":224,"o":"$E0"},{"a":4513,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":4515,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":4517,"t":"code","b":[76,110,17],"m":"jmp","oa":4462,"o":"j_116E"},{"a":4520,"l":"scores_title_text","c":"The heading of the high-score page, \"TODAYS TOP DARKMEN\", in screen codes ($D7 is the space; show_scores adds $66, which makes it the blank character $3D). show_scores ($11BC) draws the first 19 bytes to $CD22; the twentieth, a space, is not drawn.","t":"byte","b":[20,15,4,1,25,19,215,20],"x":[4552]},{"a":4528,"t":"byte","b":[15,16,215,215,4,1,18,11]},{"a":4536,"t":"byte","b":[13,5,14,215]},{"a":4540,"l":"show_scores","c":"Draws the high-score page. Colours rows 4 to 24 with $0D, blanks them, writes \"TODAYS TOP DARKMEN\" ($11A8) to $CD22 in colour 7, then for each of the five records of the table at $10A3 writes 17 characters to the screen from $CD9B, 80 bytes (two screen rows) apart: the 10 name codes with $67 added (a space gives $3D) and then 7 of the 8 score digits with $8A added. Called by title_wait_fire at $0F11.","t":"code","b":[169,13],"m":"lda","o":"#$0D","x":[2615,3857]},{"a":4542,"t":"code","b":[32,7,14],"m":"jsr","oa":3591,"o":"fill_colour_rows"},{"a":4545,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4547,"t":"code","b":[32,27,14],"m":"jsr","oa":3611,"o":"fill_screen_rows"},{"a":4550,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4552,"l":"b_11C8","t":"code","b":[185,168,17],"m":"lda","oa":4520,"o":"scores_title_text,y","x":[4569]},{"a":4555,"t":"code","b":[24],"m":"clc"},{"a":4556,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":4558,"t":"code","b":[153,34,205],"m":"sta","oa":52514,"o":"$CD22,y"},{"a":4561,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":4563,"t":"code","b":[153,34,217],"m":"sta","o":"$D922,y"},{"a":4566,"t":"code","b":[200],"m":"iny"},{"a":4567,"t":"code","b":[192,19],"m":"cpy","o":"#$13"},{"a":4569,"t":"code","b":[208,237],"m":"bne","oa":4552,"o":"b_11C8"},{"a":4571,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4573,"t":"code","b":[169,155],"m":"lda","o":"#$9B"},{"a":4575,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":4577,"t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":4579,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":4581,"t":"code","b":[169,163],"m":"lda","o":"#$A3"},{"a":4583,"t":"code","b":[133,223],"m":"sta","oa":223,"o":"$DF"},{"a":4585,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":4587,"t":"code","b":[133,224],"m":"sta","oa":224,"o":"$E0"},{"a":4589,"l":"b_11ED","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[4651]},{"a":4591,"l":"b_11EF","t":"code","b":[177,223],"m":"lda","oa":223,"o":"($DF),y","x":[4620]},{"a":4593,"t":"code","b":[192,10],"m":"cpy","o":"#$0A"},{"a":4595,"t":"code","b":[144,6],"m":"bcc","oa":4603,"o":"b_11FB"},{"a":4597,"t":"code","b":[24],"m":"clc"},{"a":4598,"t":"code","b":[105,138],"m":"adc","o":"#$8A"},{"a":4600,"t":"code","b":[76,7,18],"m":"jmp","oa":4615,"o":"j_1207"},{"a":4603,"l":"b_11FB","t":"code","b":[201,32],"m":"cmp","o":"#$20","x":[4595]},{"a":4605,"t":"code","b":[208,5],"m":"bne","oa":4612,"o":"b_1204"},{"a":4607,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4609,"t":"code","b":[76,7,18],"m":"jmp","oa":4615,"o":"j_1207"},{"a":4612,"l":"b_1204","t":"code","b":[24],"m":"clc","x":[4605]},{"a":4613,"t":"code","b":[105,103],"m":"adc","o":"#$67"},{"a":4615,"l":"j_1207","t":"code","b":[145,225],"m":"sta","oa":225,"o":"($E1),y","x":[4600,4609]},{"a":4617,"t":"code","b":[200],"m":"iny"},{"a":4618,"t":"code","b":[192,17],"m":"cpy","o":"#$11"},{"a":4620,"t":"code","b":[208,225],"m":"bne","oa":4591,"o":"b_11EF"},{"a":4622,"t":"code","b":[24],"m":"clc"},{"a":4623,"t":"code","b":[165,223],"m":"lda","oa":223,"o":"$DF"},{"a":4625,"t":"code","b":[105,18],"m":"adc","o":"#$12"},{"a":4627,"t":"code","b":[133,223],"m":"sta","oa":223,"o":"$DF"},{"a":4629,"t":"code","b":[165,224],"m":"lda","oa":224,"o":"$E0"},{"a":4631,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":4633,"t":"code","b":[133,224],"m":"sta","oa":224,"o":"$E0"},{"a":4635,"t":"code","b":[24],"m":"clc"},{"a":4636,"t":"code","b":[165,225],"m":"lda","oa":225,"o":"$E1"},{"a":4638,"t":"code","b":[105,80],"m":"adc","o":"#$50"},{"a":4640,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":4642,"t":"code","b":[165,226],"m":"lda","oa":226,"o":"$E2"},{"a":4644,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":4646,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":4648,"t":"code","b":[232],"m":"inx"},{"a":4649,"t":"code","b":[224,5],"m":"cpx","o":"#$05"},{"a":4651,"t":"code","b":[208,192],"m":"bne","oa":4589,"o":"b_11ED"},{"a":4653,"t":"code","b":[96],"m":"rts"},{"a":4654,"l":"high_score_text","c":"\"YOU HAVE ACHIEVED A HIGH SCORE\" and, at $135F, \"PLEASE ENTER YOUR NAME\".","t":"byte","b":[25,15,21,32,8,1,22,5],"x":[4745]},{"a":4662,"t":"byte","b":[32,1,3,8,9,5,22,5]},{"a":4670,"t":"byte","b":[4,32,1,32,8,9,7,8]},{"a":4678,"t":"byte","b":[32,19,3,15,18,5,27]},{"a":4685,"l":"name_entry_zero","c":"The byte after the 31 bytes of high_score_text. title_idle stores 0 in it at $12C0 just before the name entry loop; no code reads it.","t":"byte","b":[0],"x":[4800]},{"a":4686,"l":"title_idle","c":"Title-screen step: while the NMI flag is clear and $0A13 holds $58, calls $1110.","t":"code","b":[173,56,32],"m":"lda","oa":8248,"o":"nmi_flag","x":[2598]},{"a":4689,"t":"code","b":[208,13],"m":"bne","oa":4704,"o":"r_1260"},{"a":4691,"t":"code","b":[173,19,10],"m":"lda","oa":2579,"o":"title_step_value"},{"a":4694,"t":"code","b":[201,88],"m":"cmp","o":"#$58"},{"a":4696,"t":"code","b":[208,6],"m":"bne","oa":4704,"o":"r_1260"},{"a":4698,"t":"code","b":[32,16,17],"m":"jsr","oa":4368,"o":"high_score_check"},{"a":4701,"t":"code","b":[76,97,18],"m":"jmp","oa":4705,"o":"j_1261"},{"a":4704,"l":"r_1260","t":"code","b":[96],"m":"rts","x":[4689,4696]},{"a":4705,"l":"j_1261","t":"code","b":[173,15,17],"m":"lda","oa":4367,"o":"new_high_flag","x":[4701]},{"a":4708,"t":"code","b":[208,1],"m":"bne","oa":4711,"o":"b_1267"},{"a":4710,"t":"code","b":[96],"m":"rts"},{"a":4711,"l":"b_1267","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[4708]},{"a":4713,"t":"code","b":[141,234,14],"m":"sta","oa":3818,"o":"title_page"},{"a":4716,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4718,"t":"code","b":[32,27,14],"m":"jsr","oa":3611,"o":"fill_screen_rows"},{"a":4721,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":4723,"t":"code","b":[32,7,14],"m":"jsr","oa":3591,"o":"fill_colour_rows"},{"a":4726,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4728,"l":"b_1278","t":"code","b":[169,32],"m":"lda","o":"#$20","x":[4741]},{"a":4730,"t":"code","b":[153,87,19],"m":"sta","oa":4951,"o":"name_buffer,y"},{"a":4733,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":4735,"t":"code","b":[153,239,205],"m":"sta","oa":52719,"o":"$CDEF,y"},{"a":4738,"t":"code","b":[200],"m":"iny"},{"a":4739,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":4741,"t":"code","b":[208,241],"m":"bne","oa":4728,"o":"b_1278"},{"a":4743,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4745,"l":"b_1289","t":"code","b":[185,46,18],"m":"lda","oa":4654,"o":"high_score_text,y","x":[4771]},{"a":4748,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4750,"t":"code","b":[208,5],"m":"bne","oa":4757,"o":"b_1295"},{"a":4752,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4754,"t":"code","b":[76,152,18],"m":"jmp","oa":4760,"o":"j_1298"},{"a":4757,"l":"b_1295","t":"code","b":[24],"m":"clc","x":[4750]},{"a":4758,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":4760,"l":"j_1298","t":"code","b":[153,29,205],"m":"sta","oa":52509,"o":"$CD1D,y","x":[4754]},{"a":4763,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":4765,"t":"code","b":[153,29,217],"m":"sta","o":"$D91D,y"},{"a":4768,"t":"code","b":[200],"m":"iny"},{"a":4769,"t":"code","b":[192,31],"m":"cpy","o":"#$1F"},{"a":4771,"t":"code","b":[208,228],"m":"bne","oa":4745,"o":"b_1289"},{"a":4773,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4775,"l":"b_12A7","t":"code","b":[185,95,19],"m":"lda","oa":4959,"o":"enter_name_text,y","x":[4796]},{"a":4778,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4780,"t":"code","b":[208,5],"m":"bne","oa":4787,"o":"b_12B3"},{"a":4782,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4784,"t":"code","b":[76,182,18],"m":"jmp","oa":4790,"o":"j_12B6"},{"a":4787,"l":"b_12B3","t":"code","b":[24],"m":"clc","x":[4780]},{"a":4788,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":4790,"l":"j_12B6","t":"code","b":[153,112,205],"m":"sta","oa":52592,"o":"$CD70,y","x":[4784]},{"a":4793,"t":"code","b":[200],"m":"iny"},{"a":4794,"t":"code","b":[192,23],"m":"cpy","o":"#$17"},{"a":4796,"t":"code","b":[208,233],"m":"bne","oa":4775,"o":"b_12A7"},{"a":4798,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":4800,"t":"code","b":[142,77,18],"m":"stx","oa":4685,"o":"name_entry_zero"},{"a":4803,"l":"b_12C3","t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code","x":[4808,4829,4833,4858,4907,4922]},{"a":4806,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":4808,"t":"code","b":[240,249],"m":"beq","oa":4803,"o":"b_12C3"},{"a":4810,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":4812,"t":"code","b":[240,46],"m":"beq","oa":4860,"o":"b_12FC"},{"a":4814,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":4816,"t":"code","b":[208,5],"m":"bne","oa":4823,"o":"b_12D7"},{"a":4818,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":4820,"t":"code","b":[76,230,18],"m":"jmp","oa":4838,"o":"j_12E6"},{"a":4823,"l":"b_12D7","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[4816]},{"a":4825,"t":"code","b":[240,73],"m":"beq","oa":4900,"o":"b_1324"},{"a":4827,"t":"code","b":[201,65],"m":"cmp","o":"#$41"},{"a":4829,"t":"code","b":[144,228],"m":"bcc","oa":4803,"o":"b_12C3"},{"a":4831,"t":"code","b":[201,91],"m":"cmp","o":"#$5B"},{"a":4833,"t":"code","b":[176,224],"m":"bcs","oa":4803,"o":"b_12C3"},{"a":4835,"t":"code","b":[24],"m":"clc"},{"a":4836,"t":"code","b":[105,38],"m":"adc","o":"#$26"},{"a":4838,"l":"j_12E6","t":"code","b":[157,239,205],"m":"sta","oa":52719,"o":"$CDEF,x","x":[4820]},{"a":4841,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":4843,"t":"code","b":[157,239,217],"m":"sta","o":"$D9EF,x"},{"a":4846,"t":"code","b":[138],"m":"txa"},{"a":4847,"t":"code","b":[72],"m":"pha"},{"a":4848,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":4850,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":4853,"t":"code","b":[104],"m":"pla"},{"a":4854,"t":"code","b":[170],"m":"tax"},{"a":4855,"t":"code","b":[232],"m":"inx"},{"a":4856,"t":"code","b":[224,8],"m":"cpx","o":"#$08"},{"a":4858,"t":"code","b":[208,199],"m":"bne","oa":4803,"o":"b_12C3"},{"a":4860,"l":"b_12FC","t":"code","b":[32,61,19],"m":"jsr","oa":4925,"o":"read_name_row","x":[4812]},{"a":4863,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4865,"l":"b_1301","t":"code","b":[185,87,19],"m":"lda","oa":4951,"o":"name_buffer,y","x":[4874]},{"a":4868,"t":"code","b":[153,253,16],"m":"sta","oa":4349,"o":"new_score,y"},{"a":4871,"t":"code","b":[200],"m":"iny"},{"a":4872,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":4874,"t":"code","b":[208,245],"m":"bne","oa":4865,"o":"b_1301"},{"a":4876,"t":"code","b":[32,79,17],"m":"jsr","oa":4431,"o":"insert_score"},{"a":4879,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":4881,"t":"code","b":[141,64,11],"m":"sta","oa":2880,"o":"name_entered_flag"},{"a":4884,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":4886,"t":"code","b":[32,26,169],"m":"jsr","oa":43290,"o":"tune_start_fade_out"},{"a":4889,"l":"b_1319","t":"code","b":[32,235,168],"m":"jsr","oa":43243,"o":"tune_voices_active","x":[4892]},{"a":4892,"t":"code","b":[208,251],"m":"bne","oa":4889,"o":"b_1319"},{"a":4894,"t":"code","b":[162,18],"m":"ldx","o":"#$12"},{"a":4896,"t":"code","b":[32,100,161],"m":"jsr","oa":41316,"o":"tune_start"},{"a":4899,"t":"code","b":[96],"m":"rts"},{"a":4900,"l":"b_1324","t":"code","b":[169,129],"m":"lda","o":"#$81","x":[4825]},{"a":4902,"t":"code","b":[157,239,205],"m":"sta","oa":52719,"o":"$CDEF,x"},{"a":4905,"t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":4907,"t":"code","b":[240,150],"m":"beq","oa":4803,"o":"b_12C3"},{"a":4909,"t":"code","b":[202],"m":"dex"},{"a":4910,"t":"code","b":[157,239,205],"m":"sta","oa":52719,"o":"$CDEF,x"},{"a":4913,"t":"code","b":[138],"m":"txa"},{"a":4914,"t":"code","b":[72],"m":"pha"},{"a":4915,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":4917,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":4920,"t":"code","b":[104],"m":"pla"},{"a":4921,"t":"code","b":[170],"m":"tax"},{"a":4922,"t":"code","b":[76,195,18],"m":"jmp","oa":4803,"o":"b_12C3"},{"a":4925,"l":"read_name_row","c":"Copies the eight characters of the name typed on the screen at $CDEF-$CDF6 to the name buffer $1357: the code $81 (the cursor) becomes $20 and any other code has $67 taken off. Called by title_idle at $12FC.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[4860]},{"a":4927,"l":"b_133F","t":"code","b":[189,239,205],"m":"lda","oa":52719,"o":"$CDEF,x","x":[4948]},{"a":4930,"t":"code","b":[201,129],"m":"cmp","o":"#$81"},{"a":4932,"t":"code","b":[208,5],"m":"bne","oa":4939,"o":"b_134B"},{"a":4934,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":4936,"t":"code","b":[76,78,19],"m":"jmp","oa":4942,"o":"j_134E"},{"a":4939,"l":"b_134B","t":"code","b":[56],"m":"sec","x":[4932]},{"a":4940,"t":"code","b":[233,103],"m":"sbc","o":"#$67"},{"a":4942,"l":"j_134E","t":"code","b":[157,87,19],"m":"sta","oa":4951,"o":"name_buffer,x","x":[4936]},{"a":4945,"t":"code","b":[232],"m":"inx"},{"a":4946,"t":"code","b":[224,8],"m":"cpx","o":"#$08"},{"a":4948,"t":"code","b":[208,233],"m":"bne","oa":4927,"o":"b_133F"},{"a":4950,"t":"code","b":[96],"m":"rts"},{"a":4951,"l":"name_buffer","c":"The name typed for the high-score table, one code per character ($20 for a space). read_name_row ($133D) writes it and insert_score ($114F) copies it to $10FD.","t":"byte","b":[32,32,32,32,32,32,32,32],"x":[4416,4433,4730,4865,4942]},{"a":4959,"l":"enter_name_text","c":"\"PLEASE ENTER YOUR NAME\" in screen codes, followed by $1B; title_idle ($124E) draws its first 23 bytes to $CD70.","t":"byte","b":[16,12,5,1,19,5,32,5],"x":[4775]},{"a":4967,"t":"byte","b":[14,20,5,18,32,25,15,21]},{"a":4975,"t":"byte","b":[18,32,14,1,13,5,27]},{"a":4982,"l":"cheat_code","c":"The key codes of the cheat sequence \"BABY AXE MAN\" (ASCII, with spaces), ended by $7B. cheat_check ($1385) compares each new key with the entry at $1383; when the whole sequence has been typed it flips $0A11.","t":"byte","b":[66,65,66,89,32,65,88,69],"x":[5024,5044]},{"a":4990,"t":"byte","b":[32,77,65,78,123]},{"a":4995,"l":"cheat_index","c":"How many keys of cheat_code ($1376) cheat_check ($1385) has matched so far; any other key sets it back to 0.","t":"byte","b":[0],"x":[4997,5031,5036,5061]},{"a":4996,"l":"cheat_key_held","c":"1 while the key that cheat_check ($1385) last accepted is still held, so that one key press counts once; cleared when the key code $0E2F returns to $FF.","t":"byte","b":[0],"x":[5000,5014,5041]},{"a":4997,"l":"cheat_check","c":"Checks the keys typed on the title pages for the cheat sequence \"BABY AXE MAN\" (cheat_code, $1376). If the last accepted key is still held ($1384 set) it returns until $0E2F is $FF again. A new key must equal entry $1383 of the sequence: a wrong key resets the index, a right one advances it, and when the next entry is $7B the flag $0A11 is flipped and the index reset. Called by the title interrupt at $1580 every frame.","t":"code","b":[174,131,19],"m":"ldx","oa":4995,"o":"cheat_index","x":[5504]},{"a":5000,"t":"code","b":[173,132,19],"m":"lda","oa":4996,"o":"cheat_key_held"},{"a":5003,"t":"code","b":[240,12],"m":"beq","oa":5017,"o":"$1399"},{"a":5005,"t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code"},{"a":5008,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5010,"t":"code","b":[208,52],"m":"bne","oa":5064,"o":"$13C8"},{"a":5012,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5014,"t":"code","b":[141,132,19],"m":"sta","oa":4996,"o":"cheat_key_held"},{"a":5017,"t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code","x":[5003]},{"a":5020,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5022,"t":"code","b":[240,40],"m":"beq","oa":5064,"o":"$13C8"},{"a":5024,"t":"code","b":[221,118,19],"m":"cmp","oa":4982,"o":"cheat_code,x"},{"a":5027,"t":"code","b":[240,6],"m":"beq","oa":5035,"o":"$13AB"},{"a":5029,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5031,"t":"code","b":[141,131,19],"m":"sta","oa":4995,"o":"cheat_index"},{"a":5034,"t":"code","b":[96],"m":"rts"},{"a":5035,"t":"code","b":[232],"m":"inx","x":[5027]},{"a":5036,"t":"code","b":[142,131,19],"m":"stx","oa":4995,"o":"cheat_index"},{"a":5039,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5041,"t":"code","b":[141,132,19],"m":"sta","oa":4996,"o":"cheat_key_held"},{"a":5044,"t":"code","b":[189,118,19],"m":"lda","oa":4982,"o":"cheat_code,x"},{"a":5047,"t":"code","b":[201,123],"m":"cmp","o":"#$7B"},{"a":5049,"t":"code","b":[208,13],"m":"bne","oa":5064,"o":"$13C8"},{"a":5051,"t":"code","b":[173,17,10],"m":"lda","oa":2577,"o":"skip_flag"},{"a":5054,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":5056,"t":"code","b":[141,17,10],"m":"sta","oa":2577,"o":"skip_flag"},{"a":5059,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5061,"t":"code","b":[141,131,19],"m":"sta","oa":4995,"o":"cheat_index"},{"a":5064,"t":"code","b":[96],"m":"rts","x":[5010,5022,5049]},{"a":5065,"l":"show_credits","c":"Draws the credits page. Blanks rows 4 to 24 with colour 7 and writes the first nine lines of credits_text ($1675) to the screen, each with $66 added to its codes (a space gives $3D): at $CCCE in colour $0F, at $CCF6, $CD46, $CD96 and $CDBE in colour 7, at $CE5E, $CE86 and $CED6 in colour 5 and at $CF26 in colour 1. The tenth line, \"PRESS FIRE TO START\", is not drawn by this routine. Called by title_wait_fire at $0F17.","t":"code","b":[169,61],"m":"lda","o":"#$3D","x":[2609,3863]},{"a":5067,"t":"code","b":[32,27,14],"m":"jsr","oa":3611,"o":"fill_screen_rows"},{"a":5070,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5072,"t":"code","b":[32,7,14],"m":"jsr","oa":3591,"o":"fill_colour_rows"},{"a":5075,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5077,"t":"code","b":[141,226,216],"m":"sta","o":"$D8E2"},{"a":5080,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5082,"t":"code","b":[141,227,216],"m":"sta","o":"$D8E3"},{"a":5085,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5087,"t":"code","b":[141,228,216],"m":"sta","o":"$D8E4"},{"a":5090,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5092,"t":"code","b":[141,229,216],"m":"sta","o":"$D8E5"},{"a":5095,"t":"code","b":[169,117],"m":"lda","o":"#$75"},{"a":5097,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":5099,"t":"code","b":[169,22],"m":"lda","o":"#$16"},{"a":5101,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":5103,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5105,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5107,"l":"j_13F3","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5135]},{"a":5109,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5111,"t":"code","b":[240,25],"m":"beq","oa":5138,"o":"b_1412"},{"a":5113,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5115,"t":"code","b":[208,5],"m":"bne","oa":5122,"o":"b_1402"},{"a":5117,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5119,"t":"code","b":[76,5,20],"m":"jmp","oa":5125,"o":"j_1405"},{"a":5122,"l":"b_1402","t":"code","b":[24],"m":"clc","x":[5115]},{"a":5123,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5125,"l":"j_1405","t":"code","b":[157,206,204],"m":"sta","oa":52430,"o":"$CCCE,x","x":[5119]},{"a":5128,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":5130,"t":"code","b":[157,206,216],"m":"sta","o":"$D8CE,x"},{"a":5133,"t":"code","b":[200],"m":"iny"},{"a":5134,"t":"code","b":[232],"m":"inx"},{"a":5135,"t":"code","b":[76,243,19],"m":"jmp","oa":5107,"o":"j_13F3"},{"a":5138,"l":"b_1412","t":"code","b":[200],"m":"iny","x":[5111]},{"a":5139,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5141,"l":"j_1415","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5169]},{"a":5143,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5145,"t":"code","b":[240,25],"m":"beq","oa":5172,"o":"b_1434"},{"a":5147,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5149,"t":"code","b":[208,5],"m":"bne","oa":5156,"o":"b_1424"},{"a":5151,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5153,"t":"code","b":[76,39,20],"m":"jmp","oa":5159,"o":"j_1427"},{"a":5156,"l":"b_1424","t":"code","b":[24],"m":"clc","x":[5149]},{"a":5157,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5159,"l":"j_1427","t":"code","b":[157,246,204],"m":"sta","oa":52470,"o":"$CCF6,x","x":[5153]},{"a":5162,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5164,"t":"code","b":[157,246,216],"m":"sta","o":"$D8F6,x"},{"a":5167,"t":"code","b":[200],"m":"iny"},{"a":5168,"t":"code","b":[232],"m":"inx"},{"a":5169,"t":"code","b":[76,21,20],"m":"jmp","oa":5141,"o":"j_1415"},{"a":5172,"l":"b_1434","t":"code","b":[200],"m":"iny","x":[5145]},{"a":5173,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5175,"l":"j_1437","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5203]},{"a":5177,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5179,"t":"code","b":[240,25],"m":"beq","oa":5206,"o":"b_1456"},{"a":5181,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5183,"t":"code","b":[208,5],"m":"bne","oa":5190,"o":"b_1446"},{"a":5185,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5187,"t":"code","b":[76,73,20],"m":"jmp","oa":5193,"o":"j_1449"},{"a":5190,"l":"b_1446","t":"code","b":[24],"m":"clc","x":[5183]},{"a":5191,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5193,"l":"j_1449","t":"code","b":[157,70,205],"m":"sta","oa":52550,"o":"$CD46,x","x":[5187]},{"a":5196,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5198,"t":"code","b":[157,70,217],"m":"sta","o":"$D946,x"},{"a":5201,"t":"code","b":[200],"m":"iny"},{"a":5202,"t":"code","b":[232],"m":"inx"},{"a":5203,"t":"code","b":[76,55,20],"m":"jmp","oa":5175,"o":"j_1437"},{"a":5206,"l":"b_1456","t":"code","b":[200],"m":"iny","x":[5179]},{"a":5207,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5209,"l":"j_1459","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5237]},{"a":5211,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5213,"t":"code","b":[240,25],"m":"beq","oa":5240,"o":"b_1478"},{"a":5215,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5217,"t":"code","b":[208,5],"m":"bne","oa":5224,"o":"b_1468"},{"a":5219,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5221,"t":"code","b":[76,107,20],"m":"jmp","oa":5227,"o":"j_146B"},{"a":5224,"l":"b_1468","t":"code","b":[24],"m":"clc","x":[5217]},{"a":5225,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5227,"l":"j_146B","t":"code","b":[157,150,205],"m":"sta","oa":52630,"o":"$CD96,x","x":[5221]},{"a":5230,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5232,"t":"code","b":[157,150,217],"m":"sta","o":"$D996,x"},{"a":5235,"t":"code","b":[200],"m":"iny"},{"a":5236,"t":"code","b":[232],"m":"inx"},{"a":5237,"t":"code","b":[76,89,20],"m":"jmp","oa":5209,"o":"j_1459"},{"a":5240,"l":"b_1478","t":"code","b":[200],"m":"iny","x":[5213]},{"a":5241,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5243,"l":"j_147B","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5271]},{"a":5245,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5247,"t":"code","b":[240,25],"m":"beq","oa":5274,"o":"b_149A"},{"a":5249,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5251,"t":"code","b":[208,5],"m":"bne","oa":5258,"o":"b_148A"},{"a":5253,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5255,"t":"code","b":[76,141,20],"m":"jmp","oa":5261,"o":"j_148D"},{"a":5258,"l":"b_148A","t":"code","b":[24],"m":"clc","x":[5251]},{"a":5259,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5261,"l":"j_148D","t":"code","b":[157,190,205],"m":"sta","oa":52670,"o":"$CDBE,x","x":[5255]},{"a":5264,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":5266,"t":"code","b":[157,190,217],"m":"sta","o":"$D9BE,x"},{"a":5269,"t":"code","b":[200],"m":"iny"},{"a":5270,"t":"code","b":[232],"m":"inx"},{"a":5271,"t":"code","b":[76,123,20],"m":"jmp","oa":5243,"o":"j_147B"},{"a":5274,"l":"b_149A","t":"code","b":[200],"m":"iny","x":[5247]},{"a":5275,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5277,"l":"j_149D","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5305]},{"a":5279,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5281,"t":"code","b":[240,25],"m":"beq","oa":5308,"o":"b_14BC"},{"a":5283,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5285,"t":"code","b":[208,5],"m":"bne","oa":5292,"o":"b_14AC"},{"a":5287,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5289,"t":"code","b":[76,175,20],"m":"jmp","oa":5295,"o":"j_14AF"},{"a":5292,"l":"b_14AC","t":"code","b":[24],"m":"clc","x":[5285]},{"a":5293,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5295,"l":"j_14AF","t":"code","b":[157,94,206],"m":"sta","oa":52830,"o":"$CE5E,x","x":[5289]},{"a":5298,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":5300,"t":"code","b":[157,94,218],"m":"sta","o":"$DA5E,x"},{"a":5303,"t":"code","b":[200],"m":"iny"},{"a":5304,"t":"code","b":[232],"m":"inx"},{"a":5305,"t":"code","b":[76,157,20],"m":"jmp","oa":5277,"o":"j_149D"},{"a":5308,"l":"b_14BC","t":"code","b":[200],"m":"iny","x":[5281]},{"a":5309,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5311,"l":"j_14BF","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5339]},{"a":5313,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5315,"t":"code","b":[240,25],"m":"beq","oa":5342,"o":"b_14DE"},{"a":5317,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5319,"t":"code","b":[208,5],"m":"bne","oa":5326,"o":"b_14CE"},{"a":5321,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5323,"t":"code","b":[76,209,20],"m":"jmp","oa":5329,"o":"j_14D1"},{"a":5326,"l":"b_14CE","t":"code","b":[24],"m":"clc","x":[5319]},{"a":5327,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5329,"l":"j_14D1","t":"code","b":[157,134,206],"m":"sta","oa":52870,"o":"$CE86,x","x":[5323]},{"a":5332,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":5334,"t":"code","b":[157,134,218],"m":"sta","o":"$DA86,x"},{"a":5337,"t":"code","b":[200],"m":"iny"},{"a":5338,"t":"code","b":[232],"m":"inx"},{"a":5339,"t":"code","b":[76,191,20],"m":"jmp","oa":5311,"o":"j_14BF"},{"a":5342,"l":"b_14DE","t":"code","b":[200],"m":"iny","x":[5315]},{"a":5343,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5345,"l":"j_14E1","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5373]},{"a":5347,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5349,"t":"code","b":[240,25],"m":"beq","oa":5376,"o":"b_1500"},{"a":5351,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5353,"t":"code","b":[208,5],"m":"bne","oa":5360,"o":"b_14F0"},{"a":5355,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5357,"t":"code","b":[76,243,20],"m":"jmp","oa":5363,"o":"j_14F3"},{"a":5360,"l":"b_14F0","t":"code","b":[24],"m":"clc","x":[5353]},{"a":5361,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5363,"l":"j_14F3","t":"code","b":[157,214,206],"m":"sta","oa":52950,"o":"$CED6,x","x":[5357]},{"a":5366,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":5368,"t":"code","b":[157,214,218],"m":"sta","o":"$DAD6,x"},{"a":5371,"t":"code","b":[200],"m":"iny"},{"a":5372,"t":"code","b":[232],"m":"inx"},{"a":5373,"t":"code","b":[76,225,20],"m":"jmp","oa":5345,"o":"j_14E1"},{"a":5376,"l":"b_1500","t":"code","b":[200],"m":"iny","x":[5349]},{"a":5377,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5379,"l":"j_1503","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[5407]},{"a":5381,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":5383,"t":"code","b":[240,25],"m":"beq","oa":5410,"o":"r_1522"},{"a":5385,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":5387,"t":"code","b":[208,5],"m":"bne","oa":5394,"o":"b_1512"},{"a":5389,"t":"code","b":[169,61],"m":"lda","o":"#$3D"},{"a":5391,"t":"code","b":[76,21,21],"m":"jmp","oa":5397,"o":"j_1515"},{"a":5394,"l":"b_1512","t":"code","b":[24],"m":"clc","x":[5387]},{"a":5395,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":5397,"l":"j_1515","t":"code","b":[157,38,207],"m":"sta","oa":53030,"o":"$CF26,x","x":[5391]},{"a":5400,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5402,"t":"code","b":[157,38,219],"m":"sta","o":"$DB26,x"},{"a":5405,"t":"code","b":[200],"m":"iny"},{"a":5406,"t":"code","b":[232],"m":"inx"},{"a":5407,"t":"code","b":[76,3,21],"m":"jmp","oa":5379,"o":"j_1503"},{"a":5410,"l":"r_1522","t":"code","b":[96],"m":"rts","x":[5383]},{"a":5411,"l":"title_irq_top","c":"Raster interrupt of the title pages, on line $23 (the vector $FFFE is set to it by title_irq_bottom at $1630). Saves A, X and Y in the operands of the LDA, LDX and LDY before its RTI at $15BB-$15BF, acknowledges the video chip, selects multicolour text with the screen at $CC00 and the character set at $C000 ($D018=$30), turns on sprites 0 to 3 (none while $0A5F or $0F41 is not zero), sets the background colours $D021, $D022 and $D023 to 0, $0B and $0B, calls $A242 and the extended-colour routine $1656, runs cheat_check ($1385), sets the border to $0B while the cheat flag $0A11 is set and to 0 otherwise, counts the 16-bit delay $2039/$203A down to 0, and chains to title_irq_bottom ($15C2) on line $FE.","t":"code","b":[141,188,21],"m":"sta","oa":5564,"o":"$15BC"},{"a":5414,"t":"code","b":[142,190,21],"m":"stx","oa":5566,"o":"$15BE"},{"a":5417,"t":"code","b":[140,192,21],"m":"sty","oa":5568,"o":"$15C0"},{"a":5420,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5422,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":5425,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":5428,"t":"code","b":[41,220],"m":"and","o":"#$DC"},{"a":5430,"t":"code","b":[9,12],"m":"ora","o":"#$0C"},{"a":5432,"t":"code","b":[170],"m":"tax"},{"a":5433,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":5436,"t":"code","b":[9,20],"m":"ora","o":"#$14"},{"a":5438,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":5440,"t":"code","b":[168],"m":"tay"},{"a":5441,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":5443,"t":"code","b":[234],"m":"nop"},{"a":5444,"t":"code","b":[234],"m":"nop"},{"a":5445,"t":"code","b":[234],"m":"nop"},{"a":5446,"t":"code","b":[142,17,208],"m":"stx","o":"vic_control1"},{"a":5449,"t":"code","b":[140,22,208],"m":"sty","o":"vic_control2"},{"a":5452,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":5455,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":5458,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":5461,"t":"code","b":[162,15],"m":"ldx","o":"#$0F"},{"a":5463,"t":"code","b":[173,95,10],"m":"lda","oa":2655,"o":"ecm_flag"},{"a":5466,"t":"code","b":[240,2],"m":"beq","oa":5470,"o":"$155E"},{"a":5468,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5470,"t":"code","b":[142,21,208],"m":"stx","o":"vic_sprite_enable","x":[5466]},{"a":5473,"t":"code","b":[173,65,15],"m":"lda","oa":3905,"o":"hide_sprites_flag"},{"a":5476,"t":"code","b":[240,5],"m":"beq","oa":5483,"o":"$156B"},{"a":5478,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5480,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":5483,"t":"code","b":[32,86,22],"m":"jsr","oa":5718,"o":"set_ecm","x":[5476]},{"a":5486,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5488,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":5491,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":5493,"t":"code","b":[141,34,208],"m":"sta","o":"vic_background1"},{"a":5496,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":5498,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":5501,"t":"code","b":[32,66,162],"m":"jsr","oa":41538,"o":"tune_play"},{"a":5504,"t":"code","b":[32,133,19],"m":"jsr","oa":4997,"o":"cheat_check"},{"a":5507,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5509,"t":"code","b":[173,17,10],"m":"lda","oa":2577,"o":"skip_flag"},{"a":5512,"t":"code","b":[240,2],"m":"beq","oa":5516,"o":"$158C"},{"a":5514,"t":"code","b":[162,11],"m":"ldx","o":"#$0B"},{"a":5516,"t":"code","b":[142,32,208],"m":"stx","o":"vic_border","x":[5512]},{"a":5519,"t":"code","b":[173,57,32],"m":"lda","oa":8249,"o":"delay_counter"},{"a":5522,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":5524,"t":"code","b":[208,5],"m":"bne","oa":5531,"o":"$159B"},{"a":5526,"t":"code","b":[173,58,32],"m":"lda","oa":8250,"o":"$203A"},{"a":5529,"t":"code","b":[240,17],"m":"beq","oa":5548,"o":"$15AC"},{"a":5531,"t":"code","b":[56],"m":"sec","x":[5524]},{"a":5532,"t":"code","b":[173,57,32],"m":"lda","oa":8249,"o":"delay_counter"},{"a":5535,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":5537,"t":"code","b":[141,57,32],"m":"sta","oa":8249,"o":"delay_counter"},{"a":5540,"t":"code","b":[173,58,32],"m":"lda","oa":8250,"o":"$203A"},{"a":5543,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":5545,"t":"code","b":[141,58,32],"m":"sta","oa":8250,"o":"$203A"},{"a":5548,"t":"code","b":[169,254],"m":"lda","o":"#$FE","x":[5529]},{"a":5550,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":5553,"t":"code","b":[169,194],"m":"lda","o":"#$C2"},{"a":5555,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":5558,"t":"code","b":[169,21],"m":"lda","o":"#$15"},{"a":5560,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":5563,"t":"code","b":[169,184],"m":"lda","o":"#$B8"},{"a":5565,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5567,"t":"code","b":[160,126],"m":"ldy","o":"#$7E"},{"a":5569,"t":"code","b":[64],"m":"rti"},{"a":5570,"l":"title_irq_bottom","c":"Raster interrupt of the title pages, on line $FE (set by title_setup at $0B0B and by title_irq_top at $15B3). Saves A, X and Y in the operands of the final LDA, LDX and LDY, sets the extended-colour bit through $163F, places sprites 0 to 3 at Y $E5 and X $8C, $A4, $BC and $D4 with pointers $70 to $73 (screen byte $CFF8-$CFFB) and the colours $01, $06 and $0E, reads the keyboard with read_keys ($0E30) into $0E2F, and chains back to title_irq_top ($1523) on line $23.","t":"code","b":[141,57,22],"m":"sta","oa":5689,"o":"$1639"},{"a":5573,"t":"code","b":[142,59,22],"m":"stx","oa":5691,"o":"$163B"},{"a":5576,"t":"code","b":[140,61,22],"m":"sty","oa":5693,"o":"$163D"},{"a":5579,"t":"code","b":[32,63,22],"m":"jsr","oa":5695,"o":"set_ecm_bit"},{"a":5582,"t":"code","b":[169,229],"m":"lda","o":"#$E5"},{"a":5584,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":5587,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":5590,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":5593,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":5596,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5598,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":5601,"t":"code","b":[169,140],"m":"lda","o":"#$8C"},{"a":5603,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":5606,"t":"code","b":[169,164],"m":"lda","o":"#$A4"},{"a":5608,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":5611,"t":"code","b":[169,188],"m":"lda","o":"#$BC"},{"a":5613,"t":"code","b":[141,4,208],"m":"sta","o":"vic_sprite2_x"},{"a":5616,"t":"code","b":[169,212],"m":"lda","o":"#$D4"},{"a":5618,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":5621,"t":"code","b":[162,112],"m":"ldx","o":"#$70"},{"a":5623,"t":"code","b":[142,248,207],"m":"stx","oa":53240,"o":"sprite_pointers_b"},{"a":5626,"t":"code","b":[232],"m":"inx"},{"a":5627,"t":"code","b":[142,249,207],"m":"stx","oa":53241,"o":"$CFF9"},{"a":5630,"t":"code","b":[232],"m":"inx"},{"a":5631,"t":"code","b":[142,250,207],"m":"stx","oa":53242,"o":"$CFFA"},{"a":5634,"t":"code","b":[232],"m":"inx"},{"a":5635,"t":"code","b":[142,251,207],"m":"stx","oa":53243,"o":"$CFFB"},{"a":5638,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5640,"t":"code","b":[141,37,208],"m":"sta","o":"vic_sprite_mc0"},{"a":5643,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":5645,"t":"code","b":[141,38,208],"m":"sta","o":"vic_sprite_mc1"},{"a":5648,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":5650,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":5653,"t":"code","b":[141,40,208],"m":"sta","o":"vic_sprite1_colour"},{"a":5656,"t":"code","b":[141,41,208],"m":"sta","o":"vic_sprite2_colour"},{"a":5659,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":5662,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":5664,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":5667,"t":"code","b":[32,48,14],"m":"jsr","oa":3632,"o":"read_keys"},{"a":5670,"t":"code","b":[141,47,14],"m":"sta","oa":3631,"o":"key_code"},{"a":5673,"t":"code","b":[169,35],"m":"lda","o":"#$23"},{"a":5675,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":5678,"t":"code","b":[169,35],"m":"lda","o":"#$23"},{"a":5680,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":5683,"t":"code","b":[169,21],"m":"lda","o":"#$15"},{"a":5685,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":5688,"t":"code","b":[169,245],"m":"lda","o":"#$F5"},{"a":5690,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5692,"t":"code","b":[160,27],"m":"ldy","o":"#$1B"},{"a":5694,"t":"code","b":[64],"m":"rti"},{"a":5695,"l":"set_ecm_bit","c":"Sets bit 6 of $D011 (extended colour mode) when $0A5F is not zero and clears it when it is zero; set_ecm ($1656) does the same and also sets multicolour in $D016. Called by title_irq_bottom at $15CB.","t":"code","b":[173,95,10],"m":"lda","oa":2655,"o":"ecm_flag","x":[5579]},{"a":5698,"t":"code","b":[208,9],"m":"bne","oa":5709,"o":"$164D"},{"a":5700,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":5703,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":5705,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5708,"t":"code","b":[96],"m":"rts"},{"a":5709,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1","x":[5698]},{"a":5712,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":5714,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5717,"t":"code","b":[96],"m":"rts"},{"a":5718,"l":"set_ecm","c":"Turns extended colour mode on (and multicolour in $D016) when $0A5F is set, off when it is clear.","t":"code","b":[173,95,10],"m":"lda","oa":2655,"o":"ecm_flag","x":[5483,7746,23400]},{"a":5721,"t":"code","b":[208,9],"m":"bne","oa":5732,"o":"b_1664"},{"a":5723,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":5726,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":5728,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5731,"t":"code","b":[96],"m":"rts"},{"a":5732,"l":"b_1664","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1","x":[5721]},{"a":5735,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":5737,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":5740,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":5743,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":5745,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":5748,"t":"code","b":[96],"m":"rts"},{"a":5749,"l":"credits_text","c":"Credits page text in screen codes: \"TM AND COPYRIGHT 1990 UNIVERSAL CITY STUDIOS INC\", the licence lines, \"CODED BY FINLAY MUNRO\", \"GRAPHICS BY NOEL HINES\", \"SONICS BY JONATHAN DUNN\", \"PRODUCED BY TWILIGHT\" and \"PRESS FIRE TO START\".","t":"byte","b":[32,32,32,20,13,32,1,14]},{"a":5757,"t":"byte","b":[4,32,3,15,16,25,18,9]},{"a":5765,"t":"byte","b":[7,8,20,32,37,45,45,36]},{"a":5773,"t":"byte","b":[255,21,14,9,22,5,18,19]},{"a":5781,"t":"byte","b":[1,12,32,3,9,20,25,32]},{"a":5789,"t":"byte","b":[19,20,21,4,9,15,19,32]},{"a":5797,"t":"byte","b":[9,14,3,27,255,32,32,32]},{"a":5805,"t":"byte","b":[32,1,12,12,32,18,9,7]},{"a":5813,"t":"byte","b":[8,20,19,32,18,5,19,5]},{"a":5821,"t":"byte","b":[18,22,5,4,255,32,12,9]},{"a":5829,"t":"byte","b":[3,5,14,19,5,4,32,2]},{"a":5837,"t":"byte","b":[25,32,13,5,18,3,8,1]},{"a":5845,"t":"byte","b":[14,4,9,19,9,14,7,255]},{"a":5853,"t":"byte","b":[3,15,18,16,15,18,1,20]},{"a":5861,"t":"byte","b":[9,15,14,32,15,6,32,1]},{"a":5869,"t":"byte","b":[13,5,18,9,3,1,32,9]},{"a":5877,"t":"byte","b":[14,3,27,255,32,32,32,3]},{"a":5885,"t":"byte","b":[15,4,5,4,32,2,25,32]},{"a":5893,"t":"byte","b":[6,9,14,12,1,25,32,13]},{"a":5901,"t":"byte","b":[21,14,18,15,255,32,32,7]},{"a":5909,"t":"byte","b":[18,1,16,8,9,3,19,32]},{"a":5917,"t":"byte","b":[2,25,32,32,14,15,5,12]},{"a":5925,"t":"byte","b":[32,8,9,14,5,19,255,32]},{"a":5933,"t":"byte","b":[32,19,15,14,9,3,19,32]},{"a":5941,"t":"byte","b":[2,25,32,10,15,14,1,20]},{"a":5949,"t":"byte","b":[8,1,14,32,4,21,14,14]},{"a":5957,"t":"byte","b":[255,32,32,32,16,18,15,4]},{"a":5965,"t":"byte","b":[21,3,5,4,32,2,25,32]},{"a":5973,"t":"byte","b":[32,20,23,9,12,9,7,8]},{"a":5981,"t":"byte","b":[20,255,32,32,32,32,16,18]},{"a":5989,"t":"byte","b":[5,19,19,32,6,9,18,5]},{"a":5997,"t":"byte","b":[32,20,15,32,19,20,1,18]},{"a":6005,"t":"byte","b":[20,255]},{"a":6007,"l":"pause_check","c":"Pause: when the key code in $0E2F is $50, sets $1EF2, waits for the key to be released, pressed again and released, then clears $1EF2.","t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code","x":[6061]},{"a":6010,"t":"code","b":[201,80],"m":"cmp","o":"#$50"},{"a":6012,"t":"code","b":[208,31],"m":"bne","oa":6045,"o":"r_179D"},{"a":6014,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6016,"t":"code","b":[141,242,30],"m":"sta","oa":7922,"o":"paused"},{"a":6019,"l":"b_1783","t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code","x":[6024]},{"a":6022,"t":"code","b":[201,80],"m":"cmp","o":"#$50"},{"a":6024,"t":"code","b":[240,249],"m":"beq","oa":6019,"o":"b_1783"},{"a":6026,"l":"b_178A","t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code","x":[6031]},{"a":6029,"t":"code","b":[201,80],"m":"cmp","o":"#$50"},{"a":6031,"t":"code","b":[208,249],"m":"bne","oa":6026,"o":"b_178A"},{"a":6033,"l":"b_1791","t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code","x":[6038]},{"a":6036,"t":"code","b":[201,80],"m":"cmp","o":"#$50"},{"a":6038,"t":"code","b":[240,249],"m":"beq","oa":6033,"o":"b_1791"},{"a":6040,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6042,"t":"code","b":[141,242,30],"m":"sta","oa":7922,"o":"paused"},{"a":6045,"l":"r_179D","t":"code","b":[96],"m":"rts","x":[6012]},{"a":6046,"l":"play_loop","c":"Main loop of play. Each pass runs $1FD5 (a bare RTS), redraws the panel's bar ($4449) and figures ($44FD), runs $1A0C and the pause check. Leaves for $4A8F when $1A1E is set, and for the end of the game ($195C, then $0F38) when $0A11 and $43E3 are both zero; otherwise waits for the NMI flag $2038.","t":"code","b":[32,33,26],"m":"jsr","oa":6689,"o":"play_setup","x":[3893]},{"a":6049,"l":"b_17A1","t":"code","b":[32,213,31],"m":"jsr","oa":8149,"o":"disabled_check","x":[6082]},{"a":6052,"t":"code","b":[32,73,68],"m":"jsr","oa":17481,"o":"draw_bar"},{"a":6055,"t":"code","b":[32,253,68],"m":"jsr","oa":17661,"o":"draw_figures"},{"a":6058,"t":"code","b":[32,12,26],"m":"jsr","oa":6668,"o":"skip_key_check"},{"a":6061,"t":"code","b":[32,119,23],"m":"jsr","oa":6007,"o":"pause_check"},{"a":6064,"t":"code","b":[173,30,26],"m":"lda","oa":6686,"o":"end_of_play"},{"a":6067,"t":"code","b":[208,21],"m":"bne","oa":6090,"o":"b_17CA"},{"a":6069,"t":"code","b":[173,17,10],"m":"lda","oa":2577,"o":"skip_flag"},{"a":6072,"t":"code","b":[208,5],"m":"bne","oa":6079,"o":"b_17BF"},{"a":6074,"t":"code","b":[173,227,67],"m":"lda","oa":17379,"o":"energy"},{"a":6077,"t":"code","b":[240,5],"m":"beq","oa":6084,"o":"b_17C4"},{"a":6079,"l":"b_17BF","t":"code","b":[173,56,32],"m":"lda","oa":8248,"o":"nmi_flag","x":[6072]},{"a":6082,"t":"code","b":[240,221],"m":"beq","oa":6049,"o":"b_17A1"},{"a":6084,"l":"b_17C4","t":"code","b":[32,92,25],"m":"jsr","oa":6492,"o":"game_over","x":[6077]},{"a":6087,"t":"code","b":[76,56,15],"m":"jmp","oa":3896,"o":"j_0F38"},{"a":6090,"l":"b_17CA","t":"code","b":[76,143,74],"m":"jmp","oa":19087,"o":"end_of_level","x":[6067]},{"a":6093,"l":"blocked_left","c":"Returns A=1 when an enemy stands in the way of a step left, otherwise A=0. For the enemy slots X=1 and 0 it skips a slot whose state $3742,X is 0 or 5, puts the slot's height $3748,X minus $12 in $1829 and goes on when Darkman's height $2658 is equal to it or up to $13 lines below it; the case of Darkman above it continues at $17FD. The slot blocks when its X ($3744,X with $3746,X) is at or up to $13 left of Darkman's $2657/$2659. Called by the player code before a step left, at $27B0, $2A16, $2BDF and $2EC9.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[10160,10774,11231,11977]},{"a":6095,"l":"b_17CF","t":"code","b":[189,66,55],"m":"lda","oa":14146,"o":"enemy_state,x","x":[6105]},{"a":6098,"t":"code","b":[240,4],"m":"beq","oa":6104,"o":"b_17D8"},{"a":6100,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":6102,"t":"code","b":[208,6],"m":"bne","oa":6110,"o":"b_17DE"},{"a":6104,"l":"b_17D8","t":"code","b":[202],"m":"dex","x":[6098,6137,6150,6160,6176,6180]},{"a":6105,"t":"code","b":[16,244],"m":"bpl","oa":6095,"o":"b_17CF"},{"a":6107,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6109,"t":"code","b":[96],"m":"rts"},{"a":6110,"l":"b_17DE","t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x","x":[6102]},{"a":6113,"t":"code","b":[56],"m":"sec"},{"a":6114,"t":"code","b":[233,18],"m":"sbc","o":"#$12"},{"a":6116,"t":"code","b":[141,41,24],"m":"sta","oa":6185,"o":"blocked_top"},{"a":6119,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":6122,"t":"code","b":[205,41,24],"m":"cmp","oa":6185,"o":"blocked_top"},{"a":6125,"t":"code","b":[240,25],"m":"beq","oa":6152,"o":"b_1808"},{"a":6127,"t":"code","b":[144,12],"m":"bcc","oa":6141,"o":"blocked_left_above"},{"a":6129,"t":"code","b":[56],"m":"sec"},{"a":6130,"t":"code","b":[237,41,24],"m":"sbc","oa":6185,"o":"blocked_top"},{"a":6133,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":6135,"t":"code","b":[144,15],"m":"bcc","oa":6152,"o":"b_1808"},{"a":6137,"t":"code","b":[76,216,23],"m":"jmp","oa":6104,"o":"b_17D8"},{"a":6140,"l":"rts_17fc","c":"A bare RTS right after a JMP at $17F9-$17FB; no instruction of the traced code branches or jumps to it.","t":"code","b":[96],"m":"rts"},{"a":6141,"l":"blocked_left_above","c":"Part of blocked_left ($17CD), reached from its BCC at $17EF when Darkman's height is above the line in $1829. The slot is skipped (jump to $17D8) when $1829 minus $2658 is $1E or more; otherwise the test of the X positions at $1808 follows.","t":"code","b":[56],"m":"sec","x":[6127]},{"a":6142,"t":"code","b":[173,41,24],"m":"lda","oa":6185,"o":"blocked_top"},{"a":6145,"t":"code","b":[237,88,38],"m":"sbc","oa":9816,"o":"player_y"},{"a":6148,"t":"code","b":[201,30],"m":"cmp","o":"#$1E"},{"a":6150,"t":"code","b":[176,208],"m":"bcs","oa":6104,"o":"b_17D8"},{"a":6152,"l":"b_1808","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[6125,6135]},{"a":6155,"t":"code","b":[205,89,38],"m":"cmp","oa":9817,"o":"player_x_hi"},{"a":6158,"t":"code","b":[240,2],"m":"beq","oa":6162,"o":"b_1812"},{"a":6160,"t":"code","b":[176,198],"m":"bcs","oa":6104,"o":"b_17D8"},{"a":6162,"l":"b_1812","t":"code","b":[56],"m":"sec","x":[6158]},{"a":6163,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":6166,"t":"code","b":[253,68,55],"m":"sbc","oa":14148,"o":"enemy_x,x"},{"a":6169,"t":"code","b":[168],"m":"tay"},{"a":6170,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":6173,"t":"code","b":[253,70,55],"m":"sbc","oa":14150,"o":"enemy_x_hi,x"},{"a":6176,"t":"code","b":[208,182],"m":"bne","oa":6104,"o":"b_17D8"},{"a":6178,"t":"code","b":[192,20],"m":"cpy","o":"#$14"},{"a":6180,"t":"code","b":[176,178],"m":"bcs","oa":6104,"o":"b_17D8"},{"a":6182,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6184,"t":"code","b":[96],"m":"rts"},{"a":6185,"l":"blocked_top","c":"Scratch byte of blocked_left ($17CD) and blocked_right ($182A): the height of the enemy slot being tested minus $12.","t":"byte","b":[102],"x":[6116,6122,6130,6142,6209,6215,6223,6235]},{"a":6186,"l":"blocked_right","c":"Returns A=1 when an enemy stands in the way of a step right, otherwise A=0. The same test as blocked_left ($17CD) for the other side: the enemy slot X (state not 0 or 5) must be level with Darkman by the height line in $1829, and its X must be at or up to $13 right of Darkman's $2657/$2659. Called by the player code at $280E, $2A50, $2C19 and $2EEB before a step right.","t":"code","b":[162,1],"m":"ldx","o":"#$01","x":[10254,10832,11289,12011]},{"a":6188,"l":"b_182C","t":"code","b":[189,66,55],"m":"lda","oa":14146,"o":"enemy_state,x","x":[6198]},{"a":6191,"t":"code","b":[240,4],"m":"beq","oa":6197,"o":"b_1835"},{"a":6193,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":6195,"t":"code","b":[208,6],"m":"bne","oa":6203,"o":"b_183B"},{"a":6197,"l":"b_1835","t":"code","b":[202],"m":"dex","x":[6191,6230,6243,6253,6269,6273]},{"a":6198,"t":"code","b":[16,244],"m":"bpl","oa":6188,"o":"b_182C"},{"a":6200,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6202,"t":"code","b":[96],"m":"rts"},{"a":6203,"l":"b_183B","t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x","x":[6195]},{"a":6206,"t":"code","b":[56],"m":"sec"},{"a":6207,"t":"code","b":[233,18],"m":"sbc","o":"#$12"},{"a":6209,"t":"code","b":[141,41,24],"m":"sta","oa":6185,"o":"blocked_top"},{"a":6212,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":6215,"t":"code","b":[205,41,24],"m":"cmp","oa":6185,"o":"blocked_top"},{"a":6218,"t":"code","b":[240,25],"m":"beq","oa":6245,"o":"b_1865"},{"a":6220,"t":"code","b":[144,12],"m":"bcc","oa":6234,"o":"blocked_right_above"},{"a":6222,"t":"code","b":[56],"m":"sec"},{"a":6223,"t":"code","b":[237,41,24],"m":"sbc","oa":6185,"o":"blocked_top"},{"a":6226,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":6228,"t":"code","b":[144,15],"m":"bcc","oa":6245,"o":"b_1865"},{"a":6230,"t":"code","b":[76,53,24],"m":"jmp","oa":6197,"o":"b_1835"},{"a":6233,"l":"rts_1859","c":"A bare RTS right after a JMP at $1855-$1857; no instruction of the traced code branches or jumps to it.","t":"code","b":[96],"m":"rts"},{"a":6234,"l":"blocked_right_above","c":"Part of blocked_right ($182A), reached from its BCC at $184C when Darkman's height is above the line in $1829: the slot is skipped (jump to $1835) when $1829 minus $2658 is $1E or more, otherwise the test of the X positions at $1865 follows.","t":"code","b":[56],"m":"sec","x":[6220]},{"a":6235,"t":"code","b":[173,41,24],"m":"lda","oa":6185,"o":"blocked_top"},{"a":6238,"t":"code","b":[237,88,38],"m":"sbc","oa":9816,"o":"player_y"},{"a":6241,"t":"code","b":[201,30],"m":"cmp","o":"#$1E"},{"a":6243,"t":"code","b":[176,208],"m":"bcs","oa":6197,"o":"b_1835"},{"a":6245,"l":"b_1865","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[6218,6228]},{"a":6248,"t":"code","b":[205,89,38],"m":"cmp","oa":9817,"o":"player_x_hi"},{"a":6251,"t":"code","b":[240,2],"m":"beq","oa":6255,"o":"b_186F"},{"a":6253,"t":"code","b":[144,198],"m":"bcc","oa":6197,"o":"b_1835"},{"a":6255,"l":"b_186F","t":"code","b":[56],"m":"sec","x":[6251]},{"a":6256,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":6259,"t":"code","b":[237,87,38],"m":"sbc","oa":9815,"o":"player_x"},{"a":6262,"t":"code","b":[168],"m":"tay"},{"a":6263,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":6266,"t":"code","b":[237,89,38],"m":"sbc","oa":9817,"o":"player_x_hi"},{"a":6269,"t":"code","b":[208,182],"m":"bne","oa":6197,"o":"b_1835"},{"a":6271,"t":"code","b":[192,20],"m":"cpy","o":"#$14"},{"a":6273,"t":"code","b":[176,178],"m":"bcs","oa":6197,"o":"b_1835"},{"a":6275,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6277,"t":"code","b":[96],"m":"rts"},{"a":6278,"l":"wipe_lengths","c":"Lengths of the 56 diagonal lines that wipe_screen ($18C5) clears: they rise from 0 to $12, stay at $12 for 22 steps and fall to 2.","t":"byte","b":[0,1,2,3,4,5,6,7],"x":[6367]},{"a":6286,"t":"byte","b":[8,9,10,11,12,13,14,15]},{"a":6294,"t":"byte","b":[16,17,18,18,18,18,18,18]},{"a":6302,"t":"byte","b":[18,18,18,18,18,18,18,18]},{"a":6310,"t":"byte","b":[18,18,18,18,18,18,18,18]},{"a":6318,"t":"byte","b":[17,16,15,14,13,12,11,10]},{"a":6326,"t":"byte","b":[9,8,7,6,5,4,3,2]},{"a":6334,"l":"wipe_lengths_tail","c":"The last two bytes of wipe_lengths ($18B0-$18BF), 1 and 0, the final entries of the countdown 15 to 0.","t":"byte","b":[1,0]},{"a":6336,"l":"wipe_count","c":"Number of cells still to clear on the current diagonal of wipe_screen ($18C5).","t":"byte","b":[0],"x":[6370,6392,6397]},{"a":6337,"l":"wipe_ptr","c":"Screen address of the first cell of the current diagonal of wipe_screen ($18C5), low byte first.","t":"byte","b":[0,0],"x":[6357,6436,6443,6461,6468]},{"a":6339,"l":"wipe_flag","c":"Set to 1 by wipe_screen ($18C5) and cleared by game_over at $197A; irq_top reads it at $1E54 and keeps the sprites off while it is set.","t":"byte","b":[0],"x":[6343,6522,7764]},{"a":6340,"t":"gap","n":1},{"a":6341,"l":"wipe_screen","c":"Wipes the play screen with a diagonal sweep and returns. It sets the wipe flag $18C3 and the pause flag $1EF2 to 1. For each of 56 steps X it takes a length from the table $1886, then clears that many screen cells in both screens ($CC00 and $C800), stepping 39 bytes (one cell down and one to the left) from a start cell that moves along row 0 and then down the right edge ($18C1/$18C2), pausing $32 ($2027) after each step. It clears $1EF2 at the end. Called by game_over ($195C) and by mask_setup.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[6492,22728]},{"a":6343,"t":"code","b":[141,195,24],"m":"sta","oa":6339,"o":"wipe_flag"},{"a":6346,"t":"code","b":[141,242,30],"m":"sta","oa":7922,"o":"paused"},{"a":6349,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":6351,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6353,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6355,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":6357,"t":"code","b":[141,193,24],"m":"sta","oa":6337,"o":"wipe_ptr"},{"a":6360,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":6362,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":6364,"t":"code","b":[141,194,24],"m":"sta","oa":6338,"o":"$18C2"},{"a":6367,"l":"j_18DF","t":"code","b":[189,134,24],"m":"lda","oa":6278,"o":"wipe_lengths,x","x":[6457,6484]},{"a":6370,"t":"code","b":[141,192,24],"m":"sta","oa":6336,"o":"wipe_count"},{"a":6373,"l":"j_18E5","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[6413]},{"a":6375,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"($8B),y"},{"a":6377,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"$8B"},{"a":6379,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":6381,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"$8C"},{"a":6383,"t":"code","b":[56],"m":"sec"},{"a":6384,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":6386,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":6388,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6390,"t":"code","b":[145,225],"m":"sta","oa":225,"o":"($E1),y"},{"a":6392,"t":"code","b":[173,192,24],"m":"lda","oa":6336,"o":"wipe_count"},{"a":6395,"t":"code","b":[240,19],"m":"beq","oa":6416,"o":"b_1910"},{"a":6397,"t":"code","b":[206,192,24],"m":"dec","oa":6336,"o":"wipe_count"},{"a":6400,"t":"code","b":[24],"m":"clc"},{"a":6401,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"$8B"},{"a":6403,"t":"code","b":[105,39],"m":"adc","o":"#$27"},{"a":6405,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":6407,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"$8C"},{"a":6409,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":6411,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":6413,"t":"code","b":[76,229,24],"m":"jmp","oa":6373,"o":"j_18E5"},{"a":6416,"l":"b_1910","t":"code","b":[142,28,25],"m":"stx","oa":6428,"o":"wipe_saved_x","x":[6395]},{"a":6419,"t":"code","b":[140,30,25],"m":"sty","oa":6430,"o":"wipe_saved_y"},{"a":6422,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":6424,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6427,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":6428,"t":"note","l":"wipe_saved_x","c":"Holds the X register of wipe_screen ($18C5), saved at $1910: the immediate operand of the LDX at $191B.","note":"inside the item at $191B","x":[6416]},{"a":6429,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6430,"t":"note","l":"wipe_saved_y","c":"Holds the Y register of wipe_screen ($18C5), saved at $1913: the immediate operand of the LDY at $191D.","note":"inside the item at $191D","x":[6419]},{"a":6431,"l":"wipe_screen_part_2","c":"The second half of wipe_screen ($18C5), after the pause. For the first 39 steps (X below $27) it moves the start cell one place to the right along row 0 ($18C1/$18C2 plus 1) and for the rest one row down (plus $28), going back to $18DF for each of the 56 diagonals. When all 56 are done it clears the pause flag $1EF2 and returns.","t":"code","b":[224,39],"m":"cpx","o":"#$27"},{"a":6433,"t":"code","b":[176,25],"m":"bcs","oa":6460,"o":"b_193C"},{"a":6435,"t":"code","b":[24],"m":"clc"},{"a":6436,"t":"code","b":[173,193,24],"m":"lda","oa":6337,"o":"wipe_ptr"},{"a":6439,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":6441,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":6443,"t":"code","b":[141,193,24],"m":"sta","oa":6337,"o":"wipe_ptr"},{"a":6446,"t":"code","b":[173,194,24],"m":"lda","oa":6338,"o":"$18C2"},{"a":6449,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":6451,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":6453,"t":"code","b":[141,194,24],"m":"sta","oa":6338,"o":"$18C2"},{"a":6456,"t":"code","b":[232],"m":"inx"},{"a":6457,"t":"code","b":[76,223,24],"m":"jmp","oa":6367,"o":"j_18DF"},{"a":6460,"l":"b_193C","t":"code","b":[24],"m":"clc","x":[6433]},{"a":6461,"t":"code","b":[173,193,24],"m":"lda","oa":6337,"o":"wipe_ptr"},{"a":6464,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":6466,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":6468,"t":"code","b":[141,193,24],"m":"sta","oa":6337,"o":"wipe_ptr"},{"a":6471,"t":"code","b":[173,194,24],"m":"lda","oa":6338,"o":"$18C2"},{"a":6474,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":6476,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":6478,"t":"code","b":[141,194,24],"m":"sta","oa":6338,"o":"$18C2"},{"a":6481,"t":"code","b":[232],"m":"inx"},{"a":6482,"t":"code","b":[224,56],"m":"cpx","o":"#$38"},{"a":6484,"t":"code","b":[144,137],"m":"bcc","oa":6367,"o":"j_18DF"},{"a":6486,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6488,"t":"code","b":[141,242,30],"m":"sta","oa":7922,"o":"paused"},{"a":6491,"t":"code","b":[96],"m":"rts"},{"a":6492,"l":"game_over","c":"End of play: tidies up ($18C5), blanks the screen, silences the sound ($B828), turns the sprites off, switches to a text screen at $CC00 and clears the key code.","t":"code","b":[32,197,24],"m":"jsr","oa":6341,"o":"wipe_screen","x":[6084]},{"a":6495,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":6498,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":6500,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6503,"t":"code","b":[120],"m":"sei"},{"a":6504,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":6507,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":6509,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6512,"t":"code","b":[32,40,184],"m":"jsr","oa":47144,"o":"silence_all"},{"a":6515,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":6517,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":6520,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6522,"t":"code","b":[141,195,24],"m":"sta","oa":6339,"o":"wipe_flag"},{"a":6525,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":6528,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":6531,"t":"code","b":[41,216],"m":"and","o":"#$D8"},{"a":6533,"t":"code","b":[9,19],"m":"ora","o":"#$13"},{"a":6535,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6538,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":6541,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":6543,"t":"code","b":[9,24],"m":"ora","o":"#$18"},{"a":6545,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":6548,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6550,"t":"code","b":[141,47,14],"m":"sta","oa":3631,"o":"key_code"},{"a":6553,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":6556,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":6559,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":6562,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6564,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":6567,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":6569,"t":"code","b":[32,21,32],"m":"jsr","oa":8213,"o":"fill_colour"},{"a":6572,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":6575,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":6577,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6580,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6582,"l":"j_19B6","t":"code","b":[185,2,26],"m":"lda","oa":6658,"o":"game_over_text,y","x":[6605]},{"a":6585,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":6587,"t":"code","b":[240,19],"m":"beq","oa":6608,"o":"b_19D0"},{"a":6589,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":6591,"t":"code","b":[208,5],"m":"bne","oa":6598,"o":"b_19C6"},{"a":6593,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6595,"t":"code","b":[76,201,25],"m":"jmp","oa":6601,"o":"j_19C9"},{"a":6598,"l":"b_19C6","t":"code","b":[24],"m":"clc","x":[6591]},{"a":6599,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":6601,"l":"j_19C9","t":"code","b":[153,80,205],"m":"sta","oa":52560,"o":"$CD50,y","x":[6595]},{"a":6604,"t":"code","b":[200],"m":"iny"},{"a":6605,"t":"code","b":[76,182,25],"m":"jmp","oa":6582,"o":"j_19B6"},{"a":6608,"l":"b_19D0","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[6587]},{"a":6610,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6613,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6615,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6618,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6620,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6623,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6625,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6628,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6630,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6633,"l":"game_over_part_2","c":"The end of game_over ($195C). After the last of six pauses it turns on extended colour mode, swaps the character data back with swap_font_a ($4D8B), clears both screens to 0, redraws the bottom rows through draw_bottom_rows ($203C) and returns.","t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6635,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6638,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":6641,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":6643,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6646,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":6649,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6651,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":6654,"t":"code","b":[32,60,32],"m":"jsr","oa":8252,"o":"draw_bottom_rows"},{"a":6657,"t":"code","b":[96],"m":"rts"},{"a":6658,"l":"game_over_text","c":"\"GAME OVER\" in screen codes.","t":"byte","b":[7,1,13,5,32,15,22,5],"x":[6582]},{"a":6666,"t":"byte","b":[18,255]},{"a":6668,"l":"skip_key_check","c":"When the resident flag $0A11 is not zero and the key code $0E2F is $20 (the space bar), sets the end-of-play flag $1A1E to 1. Called by the play loop at $17AA.","t":"code","b":[173,17,10],"m":"lda","oa":2577,"o":"skip_flag","x":[6058]},{"a":6671,"t":"code","b":[240,12],"m":"beq","oa":6685,"o":"r_1A1D"},{"a":6673,"t":"code","b":[173,47,14],"m":"lda","oa":3631,"o":"key_code"},{"a":6676,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":6678,"t":"code","b":[208,5],"m":"bne","oa":6685,"o":"r_1A1D"},{"a":6680,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6682,"t":"code","b":[141,30,26],"m":"sta","oa":6686,"o":"end_of_play"},{"a":6685,"l":"r_1A1D","t":"code","b":[96],"m":"rts","x":[6671,6678]},{"a":6686,"l":"end_of_play","c":"Set to 1 to end play: by skip_key_check ($1A0C) and by exit_touch_test ($4586). play_setup clears it and the play loop leaves for end_of_level ($4A8F) when it is set.","t":"byte","b":[0],"x":[6064,6682,6700,17861,22829]},{"a":6687,"l":"scroll_pos","c":"How far the playfield has scrolled, low byte first. scroll_step ($2066) adds the scroll speed to it; the object list read by objects_step ($3297) and the enemy list read at $3190 are compared with it.","t":"byte","b":[0,0],"x":[6840,8371,8377,12701,12969,16519]},{"a":6689,"l":"play_setup","c":"Start of play, from $0F35: blanks the screen, turns sprites off, clears the end-of-play flag $1A1E, pauses through $2027, banks the ROMs out and selects video bank 3 with $D018=$34, then sets up the play screen and interrupts.","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1","x":[6046]},{"a":6692,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":6694,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6697,"t":"code","b":[120],"m":"sei"},{"a":6698,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6700,"t":"code","b":[141,30,26],"m":"sta","oa":6686,"o":"end_of_play"},{"a":6703,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":6706,"t":"code","b":[141,15,17],"m":"sta","oa":4367,"o":"new_high_flag"},{"a":6709,"t":"code","b":[169,88],"m":"lda","o":"#$58"},{"a":6711,"t":"code","b":[141,19,10],"m":"sta","oa":2579,"o":"title_step_value"},{"a":6714,"t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":6716,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":6719,"t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":6721,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"processor_port"},{"a":6723,"t":"code","b":[173,2,221],"m":"lda","o":"cia2_ddr_a"},{"a":6726,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":6728,"t":"code","b":[141,2,221],"m":"sta","o":"cia2_ddr_a"},{"a":6731,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":6734,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":6736,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":6739,"t":"code","b":[169,52],"m":"lda","o":"#$34"},{"a":6741,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":6744,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":6747,"t":"code","b":[41,152],"m":"and","o":"#$98"},{"a":6749,"t":"code","b":[9,83],"m":"ora","o":"#$53"},{"a":6751,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":6754,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":6757,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":6759,"t":"code","b":[9,24],"m":"ora","o":"#$18"},{"a":6761,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":6764,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6766,"t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour"},{"a":6769,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":6772,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":6774,"t":"code","b":[141,22,53],"m":"sta","oa":13590,"o":"marker_frame"},{"a":6777,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6779,"t":"code","b":[141,23,53],"m":"sta","oa":13591,"o":"marker_index"},{"a":6782,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":6784,"t":"code","b":[141,73,53],"m":"sta","oa":13641,"o":"marker_delay"},{"a":6787,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6789,"t":"code","b":[141,95,50],"m":"sta","oa":12895,"o":"objects_pending"},{"a":6792,"t":"code","b":[141,0,10],"m":"sta","oa":2560,"o":"score_digits"},{"a":6795,"t":"code","b":[141,1,10],"m":"sta","oa":2561,"o":"$0A01"},{"a":6798,"t":"code","b":[141,2,10],"m":"sta","oa":2562,"o":"$0A02"},{"a":6801,"t":"code","b":[141,3,10],"m":"sta","oa":2563,"o":"$0A03"},{"a":6804,"t":"code","b":[141,4,10],"m":"sta","oa":2564,"o":"$0A04"},{"a":6807,"t":"code","b":[141,5,10],"m":"sta","oa":2565,"o":"$0A05"},{"a":6810,"t":"code","b":[141,6,10],"m":"sta","oa":2566,"o":"$0A06"},{"a":6813,"t":"code","b":[141,7,10],"m":"sta","oa":2567,"o":"$0A07"},{"a":6816,"t":"code","b":[141,234,51],"m":"sta","oa":13290,"o":"object_state"},{"a":6819,"t":"code","b":[141,235,51],"m":"sta","oa":13291,"o":"$33EB"},{"a":6822,"t":"code","b":[141,15,17],"m":"sta","oa":4367,"o":"new_high_flag"},{"a":6825,"t":"code","b":[141,63,39],"m":"sta","oa":10047,"o":"crouching"},{"a":6828,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":6831,"t":"code","b":[141,104,39],"m":"sta","oa":10088,"o":"punch_active"},{"a":6834,"t":"code","b":[141,97,32],"m":"sta","oa":8289,"o":"scroll_end"},{"a":6837,"t":"code","b":[141,121,64],"m":"sta","oa":16505,"o":"scroll_stop"},{"a":6840,"t":"code","b":[141,31,26],"m":"sta","oa":6687,"o":"scroll_pos"},{"a":6843,"t":"code","b":[141,32,26],"m":"sta","oa":6688,"o":"$1A20"},{"a":6846,"t":"code","b":[141,66,55],"m":"sta","oa":14146,"o":"enemy_state"},{"a":6849,"t":"code","b":[141,67,55],"m":"sta","oa":14147,"o":"$3743"},{"a":6852,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6854,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":6857,"t":"code","b":[169,110],"m":"lda","o":"#$6E"},{"a":6859,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":6862,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6864,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":6867,"t":"code","b":[169,119],"m":"lda","o":"#$77"},{"a":6869,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":6872,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6874,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":6877,"t":"code","b":[169,33],"m":"lda","o":"#$21"},{"a":6879,"t":"code","b":[141,227,67],"m":"sta","oa":17379,"o":"energy"},{"a":6882,"t":"code","b":[32,245,41],"m":"jsr","oa":10741,"o":"stand_frame"},{"a":6885,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":6887,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":6890,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":6892,"t":"code","b":[141,34,208],"m":"sta","o":"vic_background1"},{"a":6895,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6897,"t":"code","b":[141,27,208],"m":"sta","o":"vic_sprite_priority"},{"a":6900,"t":"code","b":[141,23,208],"m":"sta","o":"vic_sprite_expand_y"},{"a":6903,"t":"code","b":[141,29,208],"m":"sta","o":"vic_sprite_expand_x"},{"a":6906,"t":"code","b":[141,56,32],"m":"sta","oa":8248,"o":"nmi_flag"},{"a":6909,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6911,"l":"b_1AFF","t":"code","b":[185,0,191],"m":"lda","oa":48896,"o":"tile_colours,y","x":[6920]},{"a":6914,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":6916,"t":"code","b":[153,0,191],"m":"sta","oa":48896,"o":"tile_colours,y"},{"a":6919,"t":"code","b":[200],"m":"iny"},{"a":6920,"t":"code","b":[208,245],"m":"bne","oa":6911,"o":"b_1AFF"},{"a":6922,"t":"code","b":[160,41],"m":"ldy","o":"#$29"},{"a":6924,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6926,"l":"b_1B0E","t":"code","b":[153,1,0],"m":"sta","oa":1,"o":"processor_port,y","x":[6930]},{"a":6929,"t":"code","b":[200],"m":"iny"},{"a":6930,"t":"code","b":[208,250],"m":"bne","oa":6926,"o":"b_1B0E"},{"a":6932,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6934,"t":"code","b":[152],"m":"tya"},{"a":6935,"l":"b_1B17","t":"code","b":[153,0,212],"m":"sta","o":"sid_v1_freq_lo,y","x":[6941]},{"a":6938,"t":"code","b":[200],"m":"iny"},{"a":6939,"t":"code","b":[192,26],"m":"cpy","o":"#$1A"},{"a":6941,"t":"code","b":[208,248],"m":"bne","oa":6935,"o":"b_1B17"},{"a":6943,"t":"code","b":[169,143],"m":"lda","o":"#$8F"},{"a":6945,"t":"code","b":[141,24,212],"m":"sta","o":"sid_filter_mode_volume"},{"a":6948,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":6951,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":6953,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":6955,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":6958,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6960,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":6963,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":6965,"t":"code","b":[32,21,32],"m":"jsr","oa":8213,"o":"fill_colour"},{"a":6968,"t":"code","b":[32,233,27],"m":"jsr","oa":7145,"o":"copy_to_b000"},{"a":6971,"t":"code","b":[32,60,32],"m":"jsr","oa":8252,"o":"draw_bottom_rows"},{"a":6974,"t":"code","b":[32,206,71],"m":"jsr","oa":18382,"o":"image_b_draw"},{"a":6977,"t":"code","b":[32,8,38],"m":"jsr","oa":9736,"o":"draw_first_screen"},{"a":6980,"t":"code","b":[32,54,28],"m":"jsr","oa":7222,"o":"load_panel_bitmap"},{"a":6983,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6985,"t":"code","b":[141,66,29],"m":"sta","oa":7490,"o":"screen_flag"},{"a":6988,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6990,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":6993,"t":"code","b":[141,98,32],"m":"sta","oa":8290,"o":"screen_copied"},{"a":6996,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":6999,"t":"code","b":[169,113],"m":"lda","o":"#$71"},{"a":7001,"t":"code","b":[141,94,32],"m":"sta","oa":8286,"o":"map_column"},{"a":7004,"t":"code","b":[169,110],"m":"lda","o":"#$6E"},{"a":7006,"t":"code","b":[141,95,32],"m":"sta","oa":8287,"o":"$205F"},{"a":7009,"t":"code","b":[169,46],"m":"lda","o":"#$2E"},{"a":7011,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"$87"},{"a":7013,"t":"code","b":[169,49],"m":"lda","o":"#$31"},{"a":7015,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"$88"},{"a":7017,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":7019,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"$81"},{"a":7021,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":7023,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"$82"},{"a":7025,"t":"code","b":[169,117],"m":"lda","o":"#$75"},{"a":7027,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"$85"},{"a":7029,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":7031,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"$86"},{"a":7033,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7035,"t":"code","b":[141,104,34],"m":"sta","oa":8808,"o":"half_column"},{"a":7038,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7040,"t":"code","b":[141,243,30],"m":"sta","oa":7923,"o":"fine_scroll"},{"a":7043,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":7046,"t":"code","b":[169,172],"m":"lda","o":"#$AC"},{"a":7048,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":7051,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":7054,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":7056,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":7059,"t":"code","b":[169,117],"m":"lda","o":"#$75"},{"a":7061,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":7064,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":7066,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":7069,"t":"code","b":[141,40,208],"m":"sta","o":"vic_sprite1_colour"},{"a":7072,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":7074,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7076,"l":"b_1BA4","t":"code","b":[153,0,204],"m":"sta","oa":52224,"o":"screen_b,y","x":[7085]},{"a":7079,"t":"code","b":[153,0,200],"m":"sta","oa":51200,"o":"screen_a,y"},{"a":7082,"t":"code","b":[200],"m":"iny"},{"a":7083,"t":"code","b":[192,40],"m":"cpy","o":"#$28"},{"a":7085,"t":"code","b":[208,245],"m":"bne","oa":7076,"o":"b_1BA4"},{"a":7087,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":7089,"t":"code","b":[141,250,255],"m":"sta","oa":65530,"o":"$FFFA"},{"a":7092,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":7094,"t":"code","b":[141,251,255],"m":"sta","oa":65531,"o":"$FFFB"},{"a":7097,"t":"code","b":[169,67],"m":"lda","o":"#$43"},{"a":7099,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":7102,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":7104,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":7107,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7109,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":7112,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":7114,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":7117,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":7119,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":7122,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":7125,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":7127,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":7130,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7132,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":7135,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":7137,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":7140,"t":"code","b":[173,13,220],"m":"lda","o":"cia1_interrupt"},{"a":7143,"t":"code","b":[88],"m":"cli"},{"a":7144,"t":"code","b":[96],"m":"rts"},{"a":7145,"l":"copy_to_b000","c":"Copies 13 pages (3,328 bytes) from $747B to $B000, 256 bytes at a time through the pointers $E1/$E2 and $DF/$E0, and then calls $B0C8 in the sound driver. Called once by play_setup at $1B38.","t":"code","b":[169,123],"m":"lda","o":"#$7B","x":[6968]},{"a":7147,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":7149,"t":"code","b":[169,116],"m":"lda","o":"#$74"},{"a":7151,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":7153,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7155,"t":"code","b":[133,223],"m":"sta","oa":223,"o":"$DF"},{"a":7157,"t":"code","b":[169,176],"m":"lda","o":"#$B0"},{"a":7159,"t":"code","b":[133,224],"m":"sta","oa":224,"o":"$E0"},{"a":7161,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":7163,"l":"b_1BFB","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[7179]},{"a":7165,"l":"b_1BFD","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[7170]},{"a":7167,"t":"code","b":[145,223],"m":"sta","oa":223,"o":"($DF),y"},{"a":7169,"t":"code","b":[200],"m":"iny"},{"a":7170,"t":"code","b":[208,249],"m":"bne","oa":7165,"o":"b_1BFD"},{"a":7172,"t":"code","b":[230,224],"m":"inc","oa":224,"o":"$E0"},{"a":7174,"t":"code","b":[230,226],"m":"inc","oa":226,"o":"$E2"},{"a":7176,"t":"code","b":[232],"m":"inx"},{"a":7177,"t":"code","b":[224,13],"m":"cpx","o":"#$0D"},{"a":7179,"t":"code","b":[208,238],"m":"bne","oa":7163,"o":"b_1BFB"},{"a":7181,"t":"code","b":[32,200,176],"m":"jsr","oa":45256,"o":"music_init"},{"a":7184,"t":"code","b":[96],"m":"rts"},{"a":7185,"l":"copy_to_a000","c":"Copies 19 pages (4,864 bytes) from $80B4 to $A000, 256 bytes at a time through the pointers $E1/$E2 and $DF/$E0. Called once by title_setup at $0ABE.","t":"code","b":[169,180],"m":"lda","o":"#$B4","x":[2750]},{"a":7187,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":7189,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":7191,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":7193,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7195,"t":"code","b":[133,223],"m":"sta","oa":223,"o":"$DF"},{"a":7197,"t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":7199,"t":"code","b":[133,224],"m":"sta","oa":224,"o":"$E0"},{"a":7201,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":7203,"l":"b_1C23","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[7219]},{"a":7205,"l":"b_1C25","t":"code","b":[177,225],"m":"lda","oa":225,"o":"($E1),y","x":[7210]},{"a":7207,"t":"code","b":[145,223],"m":"sta","oa":223,"o":"($DF),y"},{"a":7209,"t":"code","b":[200],"m":"iny"},{"a":7210,"t":"code","b":[208,249],"m":"bne","oa":7205,"o":"b_1C25"},{"a":7212,"t":"code","b":[230,224],"m":"inc","oa":224,"o":"$E0"},{"a":7214,"t":"code","b":[230,226],"m":"inc","oa":226,"o":"$E2"},{"a":7216,"t":"code","b":[232],"m":"inx"},{"a":7217,"t":"code","b":[224,19],"m":"cpx","o":"#$13"},{"a":7219,"t":"code","b":[208,238],"m":"bne","oa":7203,"o":"b_1C23"},{"a":7221,"t":"code","b":[96],"m":"rts"},{"a":7222,"l":"load_panel_bitmap","c":"Copies 256 bytes from $1C42 to $FE00-$FEFF, which lie in the panel's bitmap (see panel_bitmap_7 at $FDF0). Called once by play_setup at $1B44.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[6980]},{"a":7224,"l":"b_1C38","t":"code","b":[185,66,28],"m":"lda","oa":7234,"o":"panel_bitmap_source,y","x":[7231]},{"a":7227,"t":"code","b":[153,0,254],"m":"sta","oa":65024,"o":"KERNAL_SETLFSj,y"},{"a":7230,"t":"code","b":[200],"m":"iny"},{"a":7231,"t":"code","b":[208,247],"m":"bne","oa":7224,"o":"b_1C38"},{"a":7233,"t":"code","b":[96],"m":"rts"},{"a":7234,"l":"panel_bitmap_source","c":"256 bytes of pixel patterns that load_panel_bitmap ($1C36) copies to $FE00.","t":"byte","b":[0,0,136,0,2,32,0,8],"x":[7224]},{"a":7242,"t":"byte","b":[40,0,32,0,0,10,40,10]},{"a":7250,"t":"byte","b":[136,0,8,42,0,2,168,0]},{"a":7258,"t":"byte","b":[10,170,32,0,42,32,2,170]},{"a":7266,"t":"byte","b":[32,2,162,32,2,168,32,10]},{"a":7274,"t":"byte","b":[136,40,10,32,8,42,130,0]},{"a":7282,"t":"byte","b":[40,10,128,32,170,128,160,10]},{"a":7290,"t":"byte","b":[8,128,0,40,128,0,0,173]},{"a":7298,"t":"byte","b":[34,0,0,8,128,0,40,32]},{"a":7306,"t":"byte","b":[0,0,8,0,40,160,0,0]},{"a":7314,"t":"byte","b":[34,160,0,168,32,0,42,128]},{"a":7322,"t":"byte","b":[8,170,160,8,168,0,8,170]},{"a":7330,"t":"byte","b":[128,8,138,128,8,42,128,40]},{"a":7338,"t":"byte","b":[34,160,32,8,160,0,130,168]},{"a":7346,"t":"byte","b":[2,160,40,2,170,8,32,160]},{"a":7354,"t":"byte","b":[10,40,0,2,0,0,2,20]},{"a":7362,"t":"byte","b":[0,3,220,0,10,48,0,10]},{"a":7370,"t":"byte","b":[136,0,8,247,0,35,64,0]},{"a":7378,"t":"byte","b":[9,184,0,169,92,2,203,94]},{"a":7386,"t":"byte","b":[0,178,210,2,172,136,8,162]},{"a":7394,"t":"byte","b":[168,35,42,170,43,226,106,35]},{"a":7402,"t":"byte","b":[140,105,44,242,233,44,2,171]},{"a":7410,"t":"byte","b":[32,8,170,8,32,136,10,160]},{"a":7418,"t":"byte","b":[128,2,131,128,2,3,128,240]},{"a":7426,"t":"byte","b":[55,192,0,12,160,0,34,160]},{"a":7434,"t":"byte","b":[0,223,32,0,1,200,0,46]},{"a":7442,"t":"byte","b":[96,0,53,106,0,181,227,128]},{"a":7450,"t":"byte","b":[135,142,0,34,58,128,42,138]},{"a":7458,"t":"byte","b":[32,170,168,200,169,139,232,105]},{"a":7466,"t":"byte","b":[50,200,107,143,56,234,128,56]},{"a":7474,"t":"byte","b":[170,32,8,34,8,32,2,10]},{"a":7482,"t":"byte","b":[160,2,194,128,2,192,128,13]},{"a":7490,"l":"screen_flag","c":"Which screen matrix is shown: 1 for the one at $CC00 and 0 for the one at $C800. select_screen ($1FA4) turns it into $D018 and scroll_step ($2066) flips it after each whole-character step.","t":"byte","b":[1],"x":[6985,8100,8468,8473,8485,8850,12472,16558]},{"a":7491,"l":"irq_panel","c":"Raster interrupt 3 of 4 in play. Sets the screen-matrix bits of $D018 to 3 (screen at $CC00) and ORs $D011 with $4F, which turns on extended colour mode; blacks the border and the sprite multicolours, counts down $29F4 and $29F3, and reads joystick port 2 ($DC00) into $203B whenever $29F3 is zero. Then selects the character set at $E000 ($D018 low bits $08), sets the next raster line to 205 and chains to $1DBF. The final LDA, LDX and LDY get their operands from the stores at the top: the saved registers are restored by self-modified code.","t":"code","b":[141,183,29],"m":"sta","oa":7607,"o":"saved_a_1db7"},{"a":7494,"t":"code","b":[142,185,29],"m":"stx","oa":7609,"o":"saved_x_1db9"},{"a":7497,"t":"code","b":[140,187,29],"m":"sty","oa":7611,"o":"saved_y_1dbb"},{"a":7500,"t":"code","b":[173,24,208],"m":"lda","o":"vic_memory"},{"a":7503,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":7505,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":7507,"t":"code","b":[168],"m":"tay"},{"a":7508,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":7511,"t":"code","b":[9,79],"m":"ora","o":"#$4F"},{"a":7513,"t":"code","b":[234],"m":"nop"},{"a":7514,"t":"code","b":[234],"m":"nop"},{"a":7515,"t":"code","b":[140,24,208],"m":"sty","o":"vic_memory"},{"a":7518,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":7521,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":7523,"t":"code","b":[142,32,208],"m":"stx","o":"vic_border"},{"a":7526,"t":"code","b":[142,37,208],"m":"stx","o":"vic_sprite_mc0"},{"a":7529,"t":"code","b":[142,38,208],"m":"stx","o":"vic_sprite_mc1"},{"a":7532,"t":"code","b":[232],"m":"inx"},{"a":7533,"t":"code","b":[142,25,208],"m":"stx","o":"vic_irq_status"},{"a":7536,"t":"code","b":[174,244,41],"m":"ldx","oa":10740,"o":"hit_grace"},{"a":7539,"t":"code","b":[240,4],"m":"beq","oa":7545,"o":"b_1D79"},{"a":7541,"t":"code","b":[202],"m":"dex"},{"a":7542,"t":"code","b":[142,244,41],"m":"stx","oa":10740,"o":"hit_grace"},{"a":7545,"l":"b_1D79","t":"code","b":[174,243,41],"m":"ldx","oa":10739,"o":"stun_timer","x":[7539]},{"a":7548,"t":"code","b":[240,6],"m":"beq","oa":7556,"o":"b_1D84"},{"a":7550,"t":"code","b":[202],"m":"dex"},{"a":7551,"t":"code","b":[142,243,41],"m":"stx","oa":10739,"o":"stun_timer"},{"a":7554,"t":"code","b":[208,6],"m":"bne","oa":7562,"o":"b_1D8A"},{"a":7556,"l":"b_1D84","t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a","x":[7548]},{"a":7559,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":7562,"l":"b_1D8A","t":"code","b":[169,205],"m":"lda","o":"#$CD","x":[7554]},{"a":7564,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":7567,"t":"code","b":[173,24,208],"m":"lda","o":"vic_memory"},{"a":7570,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":7572,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":7574,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":7577,"t":"code","b":[173,190,29],"m":"lda","oa":7614,"o":"panel_toggle"},{"a":7580,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":7582,"t":"code","b":[141,190,29],"m":"sta","oa":7614,"o":"panel_toggle"},{"a":7585,"t":"code","b":[240,9],"m":"beq","oa":7596,"o":"b_1DAC"},{"a":7587,"t":"code","b":[174,189,29],"m":"ldx","oa":7613,"o":"panel_countdown"},{"a":7590,"t":"code","b":[240,4],"m":"beq","oa":7596,"o":"b_1DAC"},{"a":7592,"t":"code","b":[202],"m":"dex"},{"a":7593,"t":"code","b":[142,189,29],"m":"stx","oa":7613,"o":"panel_countdown"},{"a":7596,"l":"b_1DAC","t":"code","b":[169,191],"m":"lda","o":"#$BF","x":[7585,7590]},{"a":7598,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":7601,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":7603,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":7606,"t":"code","b":[169,170],"m":"lda","o":"#$AA"},{"a":7607,"t":"note","l":"saved_a_1db7","c":"Holds the A register saved by irq_panel ($1D43): the immediate operand of the LDA at $1DB6.","note":"inside the item at $1DB6","x":[7491]},{"a":7608,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":7609,"t":"note","l":"saved_x_1db9","c":"Holds the X register saved by irq_panel ($1D43): the immediate operand of the LDX at $1DB8.","note":"inside the item at $1DB8","x":[7494]},{"a":7610,"t":"code","b":[160,16],"m":"ldy","o":"#$10"},{"a":7611,"t":"note","l":"saved_y_1dbb","c":"Holds the Y register saved by irq_panel ($1D43): the immediate operand of the LDY at $1DBA.","note":"inside the item at $1DBA","x":[7497]},{"a":7612,"t":"code","b":[64],"m":"rti"},{"a":7613,"l":"panel_countdown","c":"A countdown that irq_panel ($1D43) takes 1 from on every second frame (when $1DBE has just become 1) until it reaches 0. mask_setup ($58C8) counts it down in the same way at $5AC4. No traced code sets it above 0.","t":"byte","b":[0],"x":[7587,7593,23236,23242]},{"a":7614,"l":"panel_toggle","c":"Flipped between 0 and 1 by irq_panel ($1D43) on every frame (and by mask_setup at $5ABF); the countdown $1DBD only moves on when it has just become 1.","t":"byte","b":[0],"x":[7577,7582,23226,23231]},{"a":7615,"l":"irq_bottom","c":"Raster interrupt 4 of 4 in play. After a run of NOPs that times the write to the raster line, sets bit 5 (bitmap) of $D011 and multicolour in $D016, blacks the border, sets the next interrupt for line 10 at $1E21, clears extended colour mode again, and unless the game is paused ($1EF2) calls $41EF, $4636 and $2066.","t":"code","b":[141,27,30],"m":"sta","oa":7707,"o":"saved_a_1e1b"},{"a":7618,"t":"code","b":[142,29,30],"m":"stx","oa":7709,"o":"saved_x_1e1d"},{"a":7621,"t":"code","b":[140,31,30],"m":"sty","oa":7711,"o":"saved_y_1e1f"},{"a":7624,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":7627,"t":"code","b":[9,47],"m":"ora","o":"#$2F"},{"a":7629,"t":"code","b":[168],"m":"tay"},{"a":7630,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":7633,"t":"code","b":[9,23],"m":"ora","o":"#$17"},{"a":7635,"t":"code","b":[170],"m":"tax"},{"a":7636,"t":"code","b":[234],"m":"nop"},{"a":7637,"t":"code","b":[234],"m":"nop"},{"a":7638,"t":"code","b":[234],"m":"nop"},{"a":7639,"t":"code","b":[234],"m":"nop"},{"a":7640,"t":"code","b":[234],"m":"nop"},{"a":7641,"t":"code","b":[234],"m":"nop"},{"a":7642,"t":"code","b":[234],"m":"nop"},{"a":7643,"t":"code","b":[234],"m":"nop"},{"a":7644,"t":"code","b":[234],"m":"nop"},{"a":7645,"t":"code","b":[234],"m":"nop"},{"a":7646,"t":"code","b":[234],"m":"nop"},{"a":7647,"t":"code","b":[234],"m":"nop"},{"a":7648,"t":"code","b":[234],"m":"nop"},{"a":7649,"t":"code","b":[234],"m":"nop"},{"a":7650,"t":"code","b":[234],"m":"nop"},{"a":7651,"t":"code","b":[234],"m":"nop"},{"a":7652,"t":"code","b":[234],"m":"nop"},{"a":7653,"t":"code","b":[140,17,208],"m":"sty","o":"vic_control1"},{"a":7656,"t":"code","b":[142,22,208],"m":"stx","o":"vic_control2"},{"a":7659,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7661,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":7664,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":7666,"t":"code","b":[142,25,208],"m":"stx","o":"vic_irq_status"},{"a":7669,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":7671,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":7674,"t":"code","b":[169,33],"m":"lda","o":"#$21"},{"a":7676,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":7679,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":7681,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":7684,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":7687,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":7689,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":7692,"t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused"},{"a":7695,"t":"code","b":[208,9],"m":"bne","oa":7706,"o":"b_1E1A"},{"a":7697,"t":"code","b":[32,239,65],"m":"jsr","oa":16879,"o":"shot_erase"},{"a":7700,"t":"code","b":[32,54,70],"m":"jsr","oa":17974,"o":"shot_touch_test"},{"a":7703,"t":"code","b":[32,102,32],"m":"jsr","oa":8294,"o":"scroll_step"},{"a":7706,"l":"b_1E1A","t":"code","b":[169,85],"m":"lda","o":"#$55","x":[7695]},{"a":7707,"t":"note","l":"saved_a_1e1b","c":"Holds the A register saved by irq_bottom ($1DBF): the immediate operand of the LDA at $1E1A.","note":"inside the item at $1E1A","x":[7615]},{"a":7708,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":7709,"t":"note","l":"saved_x_1e1d","c":"Holds the X register saved by irq_bottom ($1DBF): the immediate operand of the LDX at $1E1C.","note":"inside the item at $1E1C","x":[7618]},{"a":7710,"t":"code","b":[160,56],"m":"ldy","o":"#$38"},{"a":7711,"t":"note","l":"saved_y_1e1f","c":"Holds the Y register saved by irq_bottom ($1DBF): the immediate operand of the LDY at $1E1E.","note":"inside the item at $1E1E","x":[7621]},{"a":7712,"t":"code","b":[64],"m":"rti"},{"a":7713,"l":"irq_top","c":"Raster interrupt 1 of 4 in play, on line 10. Acknowledges the video chip, sets the fine horizontal scroll from $1EF3, sets the colour mode ($1656) and the screen matrix ($1FA4), and turns sprites on unless $18C3 hides them. Then runs the play subsystems ($265E, $354A, $3725, and while not paused $4140 and $3190, then $3297), places Darkman's three sprites (0, 1 and 2) at the position held in $2657, $2659 and $2658, the second 21 lines lower, and colours them. Calls $4586 and $45C9 when not paused, and chains to $1EF4 on line 80.","t":"code","b":[141,236,30],"m":"sta","oa":7916,"o":"saved_a_1eec"},{"a":7716,"t":"code","b":[142,238,30],"m":"stx","oa":7918,"o":"saved_x_1eee"},{"a":7719,"t":"code","b":[140,240,30],"m":"sty","oa":7920,"o":"saved_y_1ef0"},{"a":7722,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7724,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":7727,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":7730,"t":"code","b":[41,208],"m":"and","o":"#$D0"},{"a":7732,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":7735,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":7738,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":7740,"t":"code","b":[13,243,30],"m":"ora","oa":7923,"o":"fine_scroll"},{"a":7743,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":7746,"t":"code","b":[32,86,22],"m":"jsr","oa":5718,"o":"set_ecm"},{"a":7749,"t":"code","b":[32,164,31],"m":"jsr","oa":8100,"o":"select_screen"},{"a":7752,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":7754,"t":"code","b":[141,37,208],"m":"sta","o":"vic_sprite_mc0"},{"a":7757,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":7759,"t":"code","b":[141,38,208],"m":"sta","o":"vic_sprite_mc1"},{"a":7762,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":7764,"t":"code","b":[173,195,24],"m":"lda","oa":6339,"o":"wipe_flag"},{"a":7767,"t":"code","b":[240,2],"m":"beq","oa":7771,"o":"b_1E5B"},{"a":7769,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":7771,"l":"b_1E5B","t":"code","b":[142,21,208],"m":"stx","o":"vic_sprite_enable","x":[7767]},{"a":7774,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7776,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":7779,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":7781,"t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour"},{"a":7784,"t":"code","b":[32,94,38],"m":"jsr","oa":9822,"o":"player_move"},{"a":7787,"t":"code","b":[32,74,53],"m":"jsr","oa":13642,"o":"exit_marker_step"},{"a":7790,"t":"code","b":[32,37,55],"m":"jsr","oa":14117,"o":"move_enemies"},{"a":7793,"t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused"},{"a":7796,"t":"code","b":[208,6],"m":"bne","oa":7804,"o":"b_1E7C"},{"a":7798,"t":"code","b":[32,64,65],"m":"jsr","oa":16704,"o":"shot_draw"},{"a":7801,"t":"code","b":[32,144,49],"m":"jsr","oa":12688,"o":"enemy_spawn_check"},{"a":7804,"l":"b_1E7C","t":"code","b":[32,151,50],"m":"jsr","oa":12951,"o":"objects_step","x":[7796]},{"a":7807,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":7810,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":7813,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":7816,"t":"code","b":[141,4,208],"m":"sta","o":"vic_sprite2_x"},{"a":7819,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":7822,"t":"code","b":[174,89,38],"m":"ldx","oa":9817,"o":"player_x_hi"},{"a":7825,"t":"code","b":[240,5],"m":"beq","oa":7832,"o":"b_1E98"},{"a":7827,"t":"code","b":[9,7],"m":"ora","o":"#$07"},{"a":7829,"t":"code","b":[76,154,30],"m":"jmp","oa":7834,"o":"j_1E9A"},{"a":7832,"l":"b_1E98","t":"code","b":[41,248],"m":"and","o":"#$F8","x":[7825]},{"a":7834,"l":"j_1E9A","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[7829]},{"a":7837,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":7840,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":7843,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":7846,"t":"code","b":[24],"m":"clc"},{"a":7847,"t":"code","b":[105,21],"m":"adc","o":"#$15"},{"a":7849,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":7852,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":7854,"t":"code","b":[141,41,208],"m":"sta","o":"vic_sprite2_colour"},{"a":7857,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7859,"t":"code","b":[141,37,208],"m":"sta","o":"vic_sprite_mc0"},{"a":7862,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":7864,"t":"code","b":[141,38,208],"m":"sta","o":"vic_sprite_mc1"},{"a":7867,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7869,"t":"code","b":[174,243,41],"m":"ldx","oa":10739,"o":"stun_timer"},{"a":7872,"t":"code","b":[224,2],"m":"cpx","o":"#$02"},{"a":7874,"t":"code","b":[144,2],"m":"bcc","oa":7878,"o":"b_1EC6"},{"a":7876,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7878,"l":"b_1EC6","t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour","x":[7874]},{"a":7881,"t":"code","b":[141,40,208],"m":"sta","o":"vic_sprite1_colour"},{"a":7884,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":7886,"t":"code","b":[141,23,208],"m":"sta","o":"vic_sprite_expand_y"},{"a":7889,"t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused"},{"a":7892,"t":"code","b":[208,6],"m":"bne","oa":7900,"o":"b_1EDC"},{"a":7894,"t":"code","b":[32,134,69],"m":"jsr","oa":17798,"o":"exit_touch_test"},{"a":7897,"t":"code","b":[32,201,69],"m":"jsr","oa":17865,"o":"object_touch_test"},{"a":7900,"l":"b_1EDC","t":"code","b":[169,80],"m":"lda","o":"#$50","x":[7892]},{"a":7902,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":7905,"t":"code","b":[169,244],"m":"lda","o":"#$F4"},{"a":7907,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":7910,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":7912,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":7915,"t":"code","b":[169,170],"m":"lda","o":"#$AA"},{"a":7916,"t":"note","l":"saved_a_1eec","c":"Holds the A register saved by irq_top ($1E21): the immediate operand of the LDA at $1EEB.","note":"inside the item at $1EEB","x":[7713]},{"a":7917,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":7918,"t":"note","l":"saved_x_1eee","c":"Holds the X register saved by irq_top ($1E21): the immediate operand of the LDX at $1EED.","note":"inside the item at $1EED","x":[7716]},{"a":7919,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":7920,"t":"note","l":"saved_y_1ef0","c":"Holds the Y register saved by irq_top ($1E21): the immediate operand of the LDY at $1EEF.","note":"inside the item at $1EEF","x":[7719]},{"a":7921,"t":"code","b":[64],"m":"rti"},{"a":7922,"l":"paused","c":"1 while the game is paused ($1777); the interrupts skip the moving parts of the game while it is set.","t":"byte","b":[0],"x":[6016,6042,6346,6488,7692,7793,7889,9822,12951,13660,13833,14117]},{"a":7923,"l":"fine_scroll","c":"The fine horizontal scroll, 0 to 7, that the raster interrupts write to the low bits of $D016. scroll_step ($2066) lowers it by the scroll speed.","t":"byte","b":[0],"x":[7040,7740,7950,8328,8349,8355,12540,13563,14473,14526]},{"a":7924,"l":"irq_2","c":"Raster interrupt 2 of 4 in play, on line 80. Sets the scroll again and the background multicolours $0B and $0F, calls $1F40, plays the music and effects ($B176), reads the keyboard ($0E30) into $0E2F, and chains to $1D43 on line 198.","t":"code","b":[141,58,31],"m":"sta","oa":7994,"o":"saved_a_1f3a"},{"a":7927,"t":"code","b":[142,60,31],"m":"stx","oa":7996,"o":"saved_x_1f3c"},{"a":7930,"t":"code","b":[140,62,31],"m":"sty","oa":7998,"o":"saved_y_1f3e"},{"a":7933,"t":"code","b":[234],"m":"nop"},{"a":7934,"t":"code","b":[234],"m":"nop"},{"a":7935,"t":"code","b":[234],"m":"nop"},{"a":7936,"t":"code","b":[234],"m":"nop"},{"a":7937,"t":"code","b":[234],"m":"nop"},{"a":7938,"t":"code","b":[234],"m":"nop"},{"a":7939,"t":"code","b":[234],"m":"nop"},{"a":7940,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7942,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":7945,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":7948,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":7950,"t":"code","b":[13,243,30],"m":"ora","oa":7923,"o":"fine_scroll"},{"a":7953,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":7956,"t":"code","b":[162,11],"m":"ldx","o":"#$0B"},{"a":7958,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":7960,"t":"code","b":[142,34,208],"m":"stx","o":"vic_background1"},{"a":7963,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":7966,"t":"code","b":[32,64,31],"m":"jsr","oa":8000,"o":"shift_attack_sprite"},{"a":7969,"t":"code","b":[32,118,177],"m":"jsr","oa":45430,"o":"music_play"},{"a":7972,"t":"code","b":[32,48,14],"m":"jsr","oa":3632,"o":"read_keys"},{"a":7975,"t":"code","b":[141,47,14],"m":"sta","oa":3631,"o":"key_code"},{"a":7978,"t":"code","b":[169,198],"m":"lda","o":"#$C6"},{"a":7980,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":7983,"t":"code","b":[169,67],"m":"lda","o":"#$43"},{"a":7985,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":7988,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":7990,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":7993,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7994,"t":"note","l":"saved_a_1f3a","c":"Holds the A register saved by irq_2 ($1EF4): the immediate operand of the LDA at $1F39.","note":"inside the item at $1F39","x":[7924]},{"a":7995,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":7996,"t":"note","l":"saved_x_1f3c","c":"Holds the X register saved by irq_2 ($1EF4): the immediate operand of the LDX at $1F3B.","note":"inside the item at $1F3B","x":[7927]},{"a":7997,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":7998,"t":"note","l":"saved_y_1f3e","c":"Holds the Y register saved by irq_2 ($1EF4): the immediate operand of the LDY at $1F3D.","note":"inside the item at $1F3D","x":[7930]},{"a":7999,"t":"code","b":[64],"m":"rti"},{"a":8000,"l":"shift_attack_sprite","c":"Moves one of Darkman's sprites 8 pixels sideways on each call. When $2768 is not zero it moves sprite 0 ($D000, with the ninth bit in $D010 bit 0), otherwise when $2F67 is not zero it moves sprite 1 ($D002, bit 1); it goes right when the facing $273D is 0 and left when it is not, and returns at once when both are zero. Called by irq_2 at $1F1E.","t":"code","b":[173,104,39],"m":"lda","oa":10088,"o":"punch_active","x":[7966]},{"a":8003,"t":"code","b":[240,45],"m":"beq","oa":8050,"o":"b_1F72"},{"a":8005,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":8008,"t":"code","b":[208,20],"m":"bne","oa":8030,"o":"b_1F5E"},{"a":8010,"t":"code","b":[24],"m":"clc"},{"a":8011,"t":"code","b":[173,0,208],"m":"lda","o":"vic_sprite0_x"},{"a":8014,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":8016,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":8019,"t":"code","b":[144,8],"m":"bcc","oa":8029,"o":"r_1F5D"},{"a":8021,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":8024,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":8026,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":8029,"l":"r_1F5D","t":"code","b":[96],"m":"rts","x":[8019,8039,8069,8089]},{"a":8030,"l":"b_1F5E","t":"code","b":[56],"m":"sec","x":[8008]},{"a":8031,"t":"code","b":[173,0,208],"m":"lda","o":"vic_sprite0_x"},{"a":8034,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":8036,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":8039,"t":"code","b":[176,244],"m":"bcs","oa":8029,"o":"r_1F5D"},{"a":8041,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":8044,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":8046,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":8049,"t":"code","b":[96],"m":"rts"},{"a":8050,"l":"b_1F72","t":"code","b":[173,103,47],"m":"lda","oa":12135,"o":"strike_active","x":[8003]},{"a":8053,"t":"code","b":[240,44],"m":"beq","oa":8099,"o":"r_1FA3"},{"a":8055,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":8058,"t":"code","b":[208,20],"m":"bne","oa":8080,"o":"b_1F90"},{"a":8060,"t":"code","b":[24],"m":"clc"},{"a":8061,"t":"code","b":[173,2,208],"m":"lda","o":"vic_sprite1_x"},{"a":8064,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":8066,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":8069,"t":"code","b":[144,214],"m":"bcc","oa":8029,"o":"r_1F5D"},{"a":8071,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":8074,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":8076,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":8079,"t":"code","b":[96],"m":"rts"},{"a":8080,"l":"b_1F90","t":"code","b":[56],"m":"sec","x":[8058]},{"a":8081,"t":"code","b":[173,2,208],"m":"lda","o":"vic_sprite1_x"},{"a":8084,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":8086,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":8089,"t":"code","b":[176,194],"m":"bcs","oa":8029,"o":"r_1F5D"},{"a":8091,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":8094,"t":"code","b":[41,253],"m":"and","o":"#$FD"},{"a":8096,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":8099,"l":"r_1FA3","t":"code","b":[96],"m":"rts","x":[8053]},{"a":8100,"l":"select_screen","c":"Selects the screen matrix through $D018: $30 (screen at $CC00) when $1D42 is set, $20 (screen at $C800) when it is clear, with the character set at $C000 either way. Two screens to flip between.","t":"code","b":[174,66,29],"m":"ldx","oa":7490,"o":"screen_flag","x":[7749]},{"a":8103,"t":"code","b":[240,6],"m":"beq","oa":8111,"o":"b_1FAF"},{"a":8105,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":8107,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":8110,"t":"code","b":[96],"m":"rts"},{"a":8111,"l":"b_1FAF","t":"code","b":[169,32],"m":"lda","o":"#$20","x":[8103]},{"a":8113,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":8116,"t":"code","b":[96],"m":"rts"},{"a":8117,"l":"random","c":"Mixes CIA 1's timer A, both bytes, with the previous result in $1FD4 and rotates it: a random number in $1FD4.","t":"code","b":[173,4,220],"m":"lda","o":"cia1_timer_a_lo","x":[13013,13191,13225,14891,15423,15516,15802,16363,16375,16394,16415,16430,19602,21264,21282,21342]},{"a":8120,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":8122,"t":"code","b":[141,198,31],"m":"sta","oa":8134,"o":"random_skip"},{"a":8125,"t":"code","b":[173,212,31],"m":"lda","oa":8148,"o":"random_value"},{"a":8128,"t":"code","b":[24],"m":"clc"},{"a":8129,"t":"code","b":[109,5,220],"m":"adc","o":"cia1_timer_a_hi"},{"a":8132,"t":"code","b":[56],"m":"sec"},{"a":8133,"t":"code","b":[176,4],"m":"bcs","oa":8139,"o":"$1FCB"},{"a":8134,"t":"note","l":"random_skip","c":"The branch offset of the BCS at $1FC5. random ($1FB5) stores the low three bits of CIA 1 timer A here, and since the carry is always set the branch skips that many of the eight ROL A instructions that start at $1FC7, so the number is rotated by a different amount each time.","note":"inside the item at $1FC5","x":[8122]},{"a":8135,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8136,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8137,"l":"b_1FC9","t":"code","b":[42],"m":"rol","o":"a"},{"a":8138,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8139,"t":"code","b":[42],"m":"rol","o":"a","x":[8133]},{"a":8140,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8141,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8142,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8143,"t":"code","b":[42],"m":"rol","o":"a"},{"a":8144,"t":"code","b":[141,212,31],"m":"sta","oa":8148,"o":"random_value"},{"a":8147,"t":"code","b":[96],"m":"rts"},{"a":8148,"l":"random_value","c":"The last number made by random ($1FB5).","t":"byte","b":[254],"x":[8125,8144]},{"a":8149,"l":"disabled_check","c":"Starts with RTS, so it returns at once. The bytes after it would read CIA 2 port A bit 2 and drop the return address (PLA, PLA) when it is set; nothing reaches them while the RTS is there.","t":"code","b":[96],"m":"rts","x":[2601,3820,6049,19090,19532]},{"a":8150,"l":"exit_check_unused","c":"Code right after the RTS of disabled_check ($1FD5); nothing calls it or jumps to it ($1FDE is only its own branch target). It reads $DD00 and returns when bit 2 is set; when bit 2 is clear it takes three bytes off the stack, sets the interrupt flag and jumps to $0810 (resident code).","t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":8153,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":8155,"t":"code","b":[240,1],"m":"beq","oa":8158,"o":"$1FDE"},{"a":8157,"t":"code","b":[96],"m":"rts"},{"a":8158,"t":"code","b":[104],"m":"pla","x":[8155]},{"a":8159,"t":"code","b":[104],"m":"pla"},{"a":8160,"t":"code","b":[104],"m":"pla"},{"a":8161,"t":"code","b":[120],"m":"sei"},{"a":8162,"t":"code","b":[76,16,8],"m":"jmp","oa":2064,"o":"$0810"},{"a":8165,"l":"fill_screens","c":"Stores A in both screen matrices, $CC00-$CFFF and $C800-$CBFF (1,024 bytes each). Called by title_setup ($0AAD), type_briefing ($0F5A), game_over ($19A4 and $19FB), play_setup ($1B30) and the end-of-level code ($571A, $59DA and $5A05).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2733,3930,6564,6651,6960,22298,23002,23045]},{"a":8167,"l":"b_1FE7","t":"code","b":[153,0,204],"m":"sta","oa":52224,"o":"screen_b,y","x":[8192]},{"a":8170,"t":"code","b":[153,0,205],"m":"sta","oa":52480,"o":"$CD00,y"},{"a":8173,"t":"code","b":[153,0,206],"m":"sta","oa":52736,"o":"$CE00,y"},{"a":8176,"t":"code","b":[153,0,207],"m":"sta","oa":52992,"o":"$CF00,y"},{"a":8179,"t":"code","b":[153,0,200],"m":"sta","oa":51200,"o":"screen_a,y"},{"a":8182,"t":"code","b":[153,0,201],"m":"sta","oa":51456,"o":"$C900,y"},{"a":8185,"t":"code","b":[153,0,202],"m":"sta","oa":51712,"o":"$CA00,y"},{"a":8188,"t":"code","b":[153,0,203],"m":"sta","oa":51968,"o":"$CB00,y"},{"a":8191,"t":"code","b":[200],"m":"iny"},{"a":8192,"t":"code","b":[208,229],"m":"bne","oa":8167,"o":"b_1FE7"},{"a":8194,"t":"code","b":[96],"m":"rts"},{"a":8195,"l":"fill_screen_c800","c":"Stores A in the screen matrix $C800-$CBFF (1,024 bytes). Called by subject_screen ($5785) and the end-of-level code ($5A0A).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[22405,23050]},{"a":8197,"l":"b_2005","t":"code","b":[153,0,200],"m":"sta","oa":51200,"o":"screen_a,y","x":[8210]},{"a":8200,"t":"code","b":[153,0,201],"m":"sta","oa":51456,"o":"$C900,y"},{"a":8203,"t":"code","b":[153,0,202],"m":"sta","oa":51712,"o":"$CA00,y"},{"a":8206,"t":"code","b":[153,0,203],"m":"sta","oa":51968,"o":"$CB00,y"},{"a":8209,"t":"code","b":[200],"m":"iny"},{"a":8210,"t":"code","b":[208,241],"m":"bne","oa":8197,"o":"b_2005"},{"a":8212,"t":"code","b":[96],"m":"rts"},{"a":8213,"l":"fill_colour","c":"Stores A in colour RAM, $D800-$DBFF (1,024 bytes). Called by title_setup ($0AB2), type_briefing ($0F5F), game_over ($19A9), play_setup ($1B35), subject_screen ($571F) and the end-of-level code ($59DF).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2738,3935,6569,6965,22303,23007]},{"a":8215,"l":"b_2017","t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y","x":[8228]},{"a":8218,"t":"code","b":[153,0,217],"m":"sta","o":"$D900,y"},{"a":8221,"t":"code","b":[153,0,218],"m":"sta","o":"$DA00,y"},{"a":8224,"t":"code","b":[153,0,219],"m":"sta","o":"$DB00,y"},{"a":8227,"t":"code","b":[200],"m":"iny"},{"a":8228,"t":"code","b":[208,241],"m":"bne","oa":8215,"o":"b_2017"},{"a":8230,"t":"code","b":[96],"m":"rts"},{"a":8231,"l":"delay","c":"Pause used between the attract pages; called with A=$FF six times in a row from $0A3A.","t":"code","b":[168],"m":"tay","x":[2620,2625,2630,2635,2640,2645,3923,3981,4850,4917,6424,6610,6615,6620,6625,6630,6635,6716,18195,18200,18205,18268,18273,19193,19263,19297,19377,19513,19518,19523,19652,22288,22293,22439,22503,22521,22555,22635]},{"a":8232,"l":"b_2028","t":"code","b":[170],"m":"tax","x":[8237]},{"a":8233,"l":"b_2029","t":"code","b":[202],"m":"dex","x":[8234]},{"a":8234,"t":"code","b":[208,253],"m":"bne","oa":8233,"o":"b_2029"},{"a":8236,"t":"code","b":[136],"m":"dey"},{"a":8237,"t":"code","b":[208,249],"m":"bne","oa":8232,"o":"b_2028"},{"a":8239,"t":"code","b":[96],"m":"rts"},{"a":8240,"l":"nmi_handler","c":"Non-maskable interrupt: sets the flag $2038 to 1 and returns.","t":"code","b":[72],"m":"pha"},{"a":8241,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":8243,"t":"code","b":[141,56,32],"m":"sta","oa":8248,"o":"nmi_flag"},{"a":8246,"t":"code","b":[104],"m":"pla"},{"a":8247,"t":"code","b":[64],"m":"rti"},{"a":8248,"l":"nmi_flag","c":"Set to 1 by every NMI ($2030); cleared and polled by the code that waits on it.","t":"byte","b":[0],"x":[2778,3896,4686,6079,6906,8243,22891]},{"a":8249,"l":"delay_counter","c":"A 16-bit countdown, low byte first ($203A is the high byte). title_wait_fire ($0EFD) loads it with $0232 after a page change, title_irq_top ($1523) takes 1 from it every frame down to 0, and title_wait_fire only changes the page when the high byte $203A is 0.","t":"byte","b":[146,1],"x":[2781,3844,5519,5532,5537]},{"a":8251,"l":"joystick","c":"Joystick port 2 as last read by $1D43; bit 4 clear is fire.","t":"byte","b":[251],"x":[2718,3823,3969,4047,5458,6769,7559,10130,10224,10513,10581,10622,10629,10688,10723,10767,10825,11224,11282,11545,11572,11798,12136,12167,12179,12194,15144,15149,15264,15271,15314,15321,15390,15397,15483,15490,20194,20207,20971,21007,21040,21076,22763,23208]},{"a":8252,"l":"draw_bottom_rows","c":"Copies 200 bytes from $6D95 to colour RAM $DAF7 and 200 bytes from $6CCD to the screen matrix $CEF7 (the bottom five rows), then clears 40 bytes at $CFC0 and at $DBC0. Called by game_over at $19FE, play_setup at $1B3B and the end-of-level code at $5A10.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[6654,6971,23056]},{"a":8254,"l":"b_203E","t":"code","b":[185,149,109],"m":"lda","oa":28053,"o":"panel_colours,y","x":[8269]},{"a":8257,"t":"code","b":[153,247,218],"m":"sta","o":"$DAF7,y"},{"a":8260,"t":"code","b":[185,205,108],"m":"lda","oa":27853,"o":"panel_chars,y"},{"a":8263,"t":"code","b":[153,247,206],"m":"sta","oa":52983,"o":"$CEF7,y"},{"a":8266,"t":"code","b":[200],"m":"iny"},{"a":8267,"t":"code","b":[192,200],"m":"cpy","o":"#$C8"},{"a":8269,"t":"code","b":[208,239],"m":"bne","oa":8254,"o":"b_203E"},{"a":8271,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":8273,"t":"code","b":[152],"m":"tya"},{"a":8274,"l":"b_2052","t":"code","b":[153,192,207],"m":"sta","oa":53184,"o":"$CFC0,y","x":[8283]},{"a":8277,"t":"code","b":[153,192,219],"m":"sta","o":"$DBC0,y"},{"a":8280,"t":"code","b":[200],"m":"iny"},{"a":8281,"t":"code","b":[192,40],"m":"cpy","o":"#$28"},{"a":8283,"t":"code","b":[208,245],"m":"bne","oa":8274,"o":"b_2052"},{"a":8285,"t":"code","b":[96],"m":"rts"},{"a":8286,"l":"map_column","c":"Address of the next map column to draw, low byte first. It starts at $6E71 and draw_new_column ($2269) adds 1 on every second call; scroll_step ($2066) stops the scroll when it reaches $6EF9.","t":"byte","b":[113,110],"x":[7001,8307,8819,8825,8836]},{"a":8288,"l":"scroll_speed","c":"Pixels the playfield scrolls on each step of scroll_step ($2066): 2 or 0. player_move ($265E) sets it to 2 when Darkman has reached the scrolling edge and to 0 otherwise (the walking code at $284D and $289E also sets it); scroll_step clears it at the end of the map.","t":"byte","b":[0],"x":[6996,8316,8331,8374,8397,8422,8447,9846,9890,10317,10398,10890,10953,11335,11416]},{"a":8289,"l":"scroll_end","c":"Set to 1 by scroll_step ($2066) when the scroll has reached the end of the map; read by exit_marker_step ($354A) and exit_touch_test ($4586).","t":"byte","b":[0],"x":[6834,8321,13700,17798]},{"a":8290,"l":"screen_copied","c":"1 once copy_screen ($2120) has copied the screen for the current scroll step, and 0 again after shift_colour_left ($21FA); scroll_step ($2066) does not copy while it is 1.","t":"byte","b":[1],"x":[6993,8358,8482,8700]},{"a":8291,"l":"scroll_temp","c":"Scratch byte of scroll_step ($2066) for the wrapped fine scroll.","t":"byte","b":[0],"x":[8338,8344]},{"a":8292,"l":"scroll_total","c":"The sum of the scroll speeds, low byte first, added by scroll_step ($2066). No traced code reads it.","t":"byte","b":[0,0],"x":[8444,8450]},{"a":8294,"l":"scroll_step","c":"Scrolls the playfield one step left on every call, unless $4079 is set. When $205F is $6E and $205E is $F9 or more (the end of the map) it clears the speed $2060, sets the end flag $2061 and returns. Otherwise it lowers the fine scroll $1EF3 by the speed $2060, adding 8 when that goes below 0 (a whole-character step). It adds the speed to the scroll position $1A1F/$1A20 and to the distance $2064/$2065, moves both enemy slots' X ($3744 and $3745 with $3746 and $3747) left by it and switches a slot off if its X goes below 0. Without a whole-character step it copies the screen with $2120 once ($2062 clear); with one it calls $21FA and flips the screen flag $1D42. Called by irq_bottom at $1E17.","t":"code","b":[173,121,64],"m":"lda","oa":16505,"o":"scroll_stop","x":[7703]},{"a":8297,"t":"code","b":[240,1],"m":"beq","oa":8300,"o":"b_206C"},{"a":8299,"t":"code","b":[96],"m":"rts"},{"a":8300,"l":"b_206C","t":"code","b":[173,95,32],"m":"lda","oa":8287,"o":"$205F","x":[8297]},{"a":8303,"t":"code","b":[201,110],"m":"cmp","o":"#$6E"},{"a":8305,"t":"code","b":[208,18],"m":"bne","oa":8325,"o":"b_2085"},{"a":8307,"t":"code","b":[173,94,32],"m":"lda","oa":8286,"o":"map_column"},{"a":8310,"t":"code","b":[201,249],"m":"cmp","o":"#$F9"},{"a":8312,"t":"code","b":[144,11],"m":"bcc","oa":8325,"o":"b_2085"},{"a":8314,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8316,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":8319,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":8321,"t":"code","b":[141,97,32],"m":"sta","oa":8289,"o":"scroll_end"},{"a":8324,"t":"code","b":[96],"m":"rts"},{"a":8325,"l":"b_2085","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[8305,8312]},{"a":8327,"t":"code","b":[56],"m":"sec"},{"a":8328,"t":"code","b":[173,243,30],"m":"lda","oa":7923,"o":"fine_scroll"},{"a":8331,"t":"code","b":[237,96,32],"m":"sbc","oa":8288,"o":"scroll_speed"},{"a":8334,"t":"code","b":[16,19],"m":"bpl","oa":8355,"o":"b_20A3"},{"a":8336,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":8338,"t":"code","b":[141,99,32],"m":"sta","oa":8291,"o":"scroll_temp"},{"a":8341,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":8343,"t":"code","b":[56],"m":"sec"},{"a":8344,"t":"code","b":[237,99,32],"m":"sbc","oa":8291,"o":"scroll_temp"},{"a":8347,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":8349,"t":"code","b":[141,243,30],"m":"sta","oa":7923,"o":"fine_scroll"},{"a":8352,"t":"code","b":[76,178,32],"m":"jmp","oa":8370,"o":"j_20B2"},{"a":8355,"l":"b_20A3","t":"code","b":[141,243,30],"m":"sta","oa":7923,"o":"fine_scroll","x":[8334]},{"a":8358,"t":"code","b":[173,98,32],"m":"lda","oa":8290,"o":"screen_copied"},{"a":8361,"t":"code","b":[208,7],"m":"bne","oa":8370,"o":"j_20B2"},{"a":8363,"t":"code","b":[152],"m":"tya"},{"a":8364,"t":"code","b":[72],"m":"pha"},{"a":8365,"t":"code","b":[32,32,33],"m":"jsr","oa":8480,"o":"copy_screen"},{"a":8368,"t":"code","b":[104],"m":"pla"},{"a":8369,"t":"code","b":[168],"m":"tay"},{"a":8370,"l":"j_20B2","t":"code","b":[24],"m":"clc","x":[8352,8361]},{"a":8371,"t":"code","b":[173,31,26],"m":"lda","oa":6687,"o":"scroll_pos"},{"a":8374,"t":"code","b":[109,96,32],"m":"adc","oa":8288,"o":"scroll_speed"},{"a":8377,"t":"code","b":[141,31,26],"m":"sta","oa":6687,"o":"scroll_pos"},{"a":8380,"t":"code","b":[173,32,26],"m":"lda","oa":6688,"o":"$1A20"},{"a":8383,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8385,"t":"code","b":[141,32,26],"m":"sta","oa":6688,"o":"$1A20"},{"a":8388,"t":"code","b":[140,200,32],"m":"sty","oa":8392,"o":"scroll_saved_y"},{"a":8391,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":8392,"t":"note","l":"scroll_saved_y","c":"Holds the Y flag of scroll_step ($2066), saved at $20C4: the immediate operand of the LDY at $20C7. It is 1 when the fine scroll has wrapped round and the screen must be shifted a whole character.","note":"inside the item at $20C7","x":[8388]},{"a":8393,"l":"scroll_step_part_2","c":"The rest of scroll_step ($2066). It moves both enemy slots' X positions ($3744/$3746 and $3745/$3747) left by the scroll speed, setting the slot's state ($3742 or $3743) to 0 when the position goes below 0. It adds the speed to the total $2064/$2065 and, when the saved flag is 1, shifts colour RAM left through shift_colour_left ($21FA) and flips the screen flag $1D42.","t":"code","b":[56],"m":"sec"},{"a":8394,"t":"code","b":[173,68,55],"m":"lda","oa":14148,"o":"enemy_x"},{"a":8397,"t":"code","b":[237,96,32],"m":"sbc","oa":8288,"o":"scroll_speed"},{"a":8400,"t":"code","b":[141,68,55],"m":"sta","oa":14148,"o":"enemy_x"},{"a":8403,"t":"code","b":[173,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi"},{"a":8406,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":8408,"t":"code","b":[16,5],"m":"bpl","oa":8415,"o":"b_20DF"},{"a":8410,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8412,"t":"code","b":[141,66,55],"m":"sta","oa":14146,"o":"enemy_state"},{"a":8415,"l":"b_20DF","t":"code","b":[141,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi","x":[8408]},{"a":8418,"t":"code","b":[56],"m":"sec"},{"a":8419,"t":"code","b":[173,69,55],"m":"lda","oa":14149,"o":"$3745"},{"a":8422,"t":"code","b":[237,96,32],"m":"sbc","oa":8288,"o":"scroll_speed"},{"a":8425,"t":"code","b":[141,69,55],"m":"sta","oa":14149,"o":"$3745"},{"a":8428,"t":"code","b":[173,71,55],"m":"lda","oa":14151,"o":"$3747"},{"a":8431,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":8433,"t":"code","b":[16,5],"m":"bpl","oa":8440,"o":"b_20F8"},{"a":8435,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8437,"t":"code","b":[141,67,55],"m":"sta","oa":14147,"o":"$3743"},{"a":8440,"l":"b_20F8","t":"code","b":[141,71,55],"m":"sta","oa":14151,"o":"$3747","x":[8433]},{"a":8443,"t":"code","b":[24],"m":"clc"},{"a":8444,"t":"code","b":[173,100,32],"m":"lda","oa":8292,"o":"scroll_total"},{"a":8447,"t":"code","b":[109,96,32],"m":"adc","oa":8288,"o":"scroll_speed"},{"a":8450,"t":"code","b":[141,100,32],"m":"sta","oa":8292,"o":"scroll_total"},{"a":8453,"t":"code","b":[173,101,32],"m":"lda","oa":8293,"o":"$2065"},{"a":8456,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8458,"t":"code","b":[141,101,32],"m":"sta","oa":8293,"o":"$2065"},{"a":8461,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":8463,"t":"code","b":[240,11],"m":"beq","oa":8476,"o":"r_211C"},{"a":8465,"t":"code","b":[32,250,33],"m":"jsr","oa":8698,"o":"shift_colour_left"},{"a":8468,"t":"code","b":[173,66,29],"m":"lda","oa":7490,"o":"screen_flag"},{"a":8471,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":8473,"t":"code","b":[141,66,29],"m":"sta","oa":7490,"o":"screen_flag"},{"a":8476,"l":"r_211C","t":"code","b":[96],"m":"rts","x":[8463]},{"a":8477,"l":"pad_211d","c":"3 zero bytes after with no type between code ($211D): padding that no traced code reads.","t":"byte","b":[0,0,0]},{"a":8480,"l":"copy_screen","c":"Sets $2062 and, when $1D42 is set, copies rows of the screen at $CC00 to the one at $C800, one row of 40 bytes at a time; the copy behind the screen flip in $1FA4.","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[8365]},{"a":8482,"t":"code","b":[141,98,32],"m":"sta","oa":8290,"o":"screen_copied"},{"a":8485,"t":"code","b":[173,66,29],"m":"lda","oa":7490,"o":"screen_flag"},{"a":8488,"t":"code","b":[240,104],"m":"beq","oa":8594,"o":"b_2192"},{"a":8490,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":8492,"l":"b_212C","t":"code","b":[185,41,204],"m":"lda","oa":52265,"o":"$CC29,y","x":[8591]},{"a":8495,"t":"code","b":[153,40,200],"m":"sta","oa":51240,"o":"$C828,y"},{"a":8498,"t":"code","b":[185,81,204],"m":"lda","oa":52305,"o":"$CC51,y"},{"a":8501,"t":"code","b":[153,80,200],"m":"sta","oa":51280,"o":"$C850,y"},{"a":8504,"t":"code","b":[185,121,204],"m":"lda","oa":52345,"o":"$CC79,y"},{"a":8507,"t":"code","b":[153,120,200],"m":"sta","oa":51320,"o":"$C878,y"},{"a":8510,"t":"code","b":[185,161,204],"m":"lda","oa":52385,"o":"$CCA1,y"},{"a":8513,"t":"code","b":[153,160,200],"m":"sta","oa":51360,"o":"$C8A0,y"},{"a":8516,"t":"code","b":[185,201,204],"m":"lda","oa":52425,"o":"$CCC9,y"},{"a":8519,"t":"code","b":[153,200,200],"m":"sta","oa":51400,"o":"$C8C8,y"},{"a":8522,"t":"code","b":[185,241,204],"m":"lda","oa":52465,"o":"$CCF1,y"},{"a":8525,"t":"code","b":[153,240,200],"m":"sta","oa":51440,"o":"$C8F0,y"},{"a":8528,"t":"code","b":[185,25,205],"m":"lda","oa":52505,"o":"$CD19,y"},{"a":8531,"t":"code","b":[153,24,201],"m":"sta","oa":51480,"o":"$C918,y"},{"a":8534,"t":"code","b":[185,65,205],"m":"lda","oa":52545,"o":"$CD41,y"},{"a":8537,"t":"code","b":[153,64,201],"m":"sta","oa":51520,"o":"$C940,y"},{"a":8540,"t":"code","b":[185,105,205],"m":"lda","oa":52585,"o":"$CD69,y"},{"a":8543,"t":"code","b":[153,104,201],"m":"sta","oa":51560,"o":"$C968,y"},{"a":8546,"t":"code","b":[185,145,205],"m":"lda","oa":52625,"o":"$CD91,y"},{"a":8549,"t":"code","b":[153,144,201],"m":"sta","oa":51600,"o":"$C990,y"},{"a":8552,"t":"code","b":[185,185,205],"m":"lda","oa":52665,"o":"$CDB9,y"},{"a":8555,"t":"code","b":[153,184,201],"m":"sta","oa":51640,"o":"$C9B8,y"},{"a":8558,"t":"code","b":[185,225,205],"m":"lda","oa":52705,"o":"$CDE1,y"},{"a":8561,"t":"code","b":[153,224,201],"m":"sta","oa":51680,"o":"$C9E0,y"},{"a":8564,"t":"code","b":[185,9,206],"m":"lda","oa":52745,"o":"$CE09,y"},{"a":8567,"t":"code","b":[153,8,202],"m":"sta","oa":51720,"o":"$CA08,y"},{"a":8570,"t":"code","b":[185,49,206],"m":"lda","oa":52785,"o":"$CE31,y"},{"a":8573,"t":"code","b":[153,48,202],"m":"sta","oa":51760,"o":"$CA30,y"},{"a":8576,"t":"code","b":[185,89,206],"m":"lda","oa":52825,"o":"$CE59,y"},{"a":8579,"t":"code","b":[153,88,202],"m":"sta","oa":51800,"o":"$CA58,y"},{"a":8582,"t":"code","b":[185,129,206],"m":"lda","oa":52865,"o":"$CE81,y"},{"a":8585,"t":"code","b":[153,128,202],"m":"sta","oa":51840,"o":"$CA80,y"},{"a":8588,"t":"code","b":[200],"m":"iny"},{"a":8589,"t":"code","b":[192,38],"m":"cpy","o":"#$26"},{"a":8591,"t":"code","b":[208,155],"m":"bne","oa":8492,"o":"b_212C"},{"a":8593,"t":"code","b":[96],"m":"rts"},{"a":8594,"l":"b_2192","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[8488]},{"a":8596,"l":"b_2194","t":"code","b":[185,41,200],"m":"lda","oa":51241,"o":"$C829,y","x":[8695]},{"a":8599,"t":"code","b":[153,40,204],"m":"sta","oa":52264,"o":"$CC28,y"},{"a":8602,"t":"code","b":[185,81,200],"m":"lda","oa":51281,"o":"$C851,y"},{"a":8605,"t":"code","b":[153,80,204],"m":"sta","oa":52304,"o":"$CC50,y"},{"a":8608,"t":"code","b":[185,121,200],"m":"lda","oa":51321,"o":"$C879,y"},{"a":8611,"t":"code","b":[153,120,204],"m":"sta","oa":52344,"o":"$CC78,y"},{"a":8614,"t":"code","b":[185,161,200],"m":"lda","oa":51361,"o":"$C8A1,y"},{"a":8617,"t":"code","b":[153,160,204],"m":"sta","oa":52384,"o":"$CCA0,y"},{"a":8620,"t":"code","b":[185,201,200],"m":"lda","oa":51401,"o":"$C8C9,y"},{"a":8623,"t":"code","b":[153,200,204],"m":"sta","oa":52424,"o":"$CCC8,y"},{"a":8626,"t":"code","b":[185,241,200],"m":"lda","oa":51441,"o":"$C8F1,y"},{"a":8629,"t":"code","b":[153,240,204],"m":"sta","oa":52464,"o":"$CCF0,y"},{"a":8632,"t":"code","b":[185,25,201],"m":"lda","oa":51481,"o":"$C919,y"},{"a":8635,"t":"code","b":[153,24,205],"m":"sta","oa":52504,"o":"$CD18,y"},{"a":8638,"t":"code","b":[185,65,201],"m":"lda","oa":51521,"o":"$C941,y"},{"a":8641,"t":"code","b":[153,64,205],"m":"sta","oa":52544,"o":"$CD40,y"},{"a":8644,"t":"code","b":[185,105,201],"m":"lda","oa":51561,"o":"$C969,y"},{"a":8647,"t":"code","b":[153,104,205],"m":"sta","oa":52584,"o":"$CD68,y"},{"a":8650,"t":"code","b":[185,145,201],"m":"lda","oa":51601,"o":"$C991,y"},{"a":8653,"t":"code","b":[153,144,205],"m":"sta","oa":52624,"o":"$CD90,y"},{"a":8656,"t":"code","b":[185,185,201],"m":"lda","oa":51641,"o":"$C9B9,y"},{"a":8659,"t":"code","b":[153,184,205],"m":"sta","oa":52664,"o":"$CDB8,y"},{"a":8662,"t":"code","b":[185,225,201],"m":"lda","oa":51681,"o":"$C9E1,y"},{"a":8665,"t":"code","b":[153,224,205],"m":"sta","oa":52704,"o":"$CDE0,y"},{"a":8668,"t":"code","b":[185,9,202],"m":"lda","oa":51721,"o":"$CA09,y"},{"a":8671,"t":"code","b":[153,8,206],"m":"sta","oa":52744,"o":"$CE08,y"},{"a":8674,"t":"code","b":[185,49,202],"m":"lda","oa":51761,"o":"$CA31,y"},{"a":8677,"t":"code","b":[153,48,206],"m":"sta","oa":52784,"o":"$CE30,y"},{"a":8680,"t":"code","b":[185,89,202],"m":"lda","oa":51801,"o":"$CA59,y"},{"a":8683,"t":"code","b":[153,88,206],"m":"sta","oa":52824,"o":"$CE58,y"},{"a":8686,"t":"code","b":[185,129,202],"m":"lda","oa":51841,"o":"$CA81,y"},{"a":8689,"t":"code","b":[153,128,206],"m":"sta","oa":52864,"o":"$CE80,y"},{"a":8692,"t":"code","b":[200],"m":"iny"},{"a":8693,"t":"code","b":[192,38],"m":"cpy","o":"#$26"},{"a":8695,"t":"code","b":[208,155],"m":"bne","oa":8596,"o":"b_2194"},{"a":8697,"t":"code","b":[96],"m":"rts"},{"a":8698,"l":"shift_colour_left","c":"Clears $2062, shifts colour RAM one cell left in rows 1 to 16 (38 bytes per row, for example $D829-$D84E to $D828-$D84D), and then calls draw_new_column ($2269). Called by scroll_step at $2111 on each whole-character step.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[8465]},{"a":8700,"t":"code","b":[140,98,32],"m":"sty","oa":8290,"o":"screen_copied"},{"a":8703,"l":"b_21FF","t":"code","b":[185,41,216],"m":"lda","o":"$D829,y","x":[8802]},{"a":8706,"t":"code","b":[153,40,216],"m":"sta","o":"$D828,y"},{"a":8709,"t":"code","b":[185,81,216],"m":"lda","o":"$D851,y"},{"a":8712,"t":"code","b":[153,80,216],"m":"sta","o":"$D850,y"},{"a":8715,"t":"code","b":[185,121,216],"m":"lda","o":"$D879,y"},{"a":8718,"t":"code","b":[153,120,216],"m":"sta","o":"$D878,y"},{"a":8721,"t":"code","b":[185,161,216],"m":"lda","o":"$D8A1,y"},{"a":8724,"t":"code","b":[153,160,216],"m":"sta","o":"$D8A0,y"},{"a":8727,"t":"code","b":[185,201,216],"m":"lda","o":"$D8C9,y"},{"a":8730,"t":"code","b":[153,200,216],"m":"sta","o":"$D8C8,y"},{"a":8733,"t":"code","b":[185,241,216],"m":"lda","o":"$D8F1,y"},{"a":8736,"t":"code","b":[153,240,216],"m":"sta","o":"$D8F0,y"},{"a":8739,"t":"code","b":[185,25,217],"m":"lda","o":"$D919,y"},{"a":8742,"t":"code","b":[153,24,217],"m":"sta","o":"$D918,y"},{"a":8745,"t":"code","b":[185,65,217],"m":"lda","o":"$D941,y"},{"a":8748,"t":"code","b":[153,64,217],"m":"sta","o":"$D940,y"},{"a":8751,"t":"code","b":[185,105,217],"m":"lda","o":"$D969,y"},{"a":8754,"t":"code","b":[153,104,217],"m":"sta","o":"$D968,y"},{"a":8757,"t":"code","b":[185,145,217],"m":"lda","o":"$D991,y"},{"a":8760,"t":"code","b":[153,144,217],"m":"sta","o":"$D990,y"},{"a":8763,"t":"code","b":[185,185,217],"m":"lda","o":"$D9B9,y"},{"a":8766,"t":"code","b":[153,184,217],"m":"sta","o":"$D9B8,y"},{"a":8769,"t":"code","b":[185,225,217],"m":"lda","o":"$D9E1,y"},{"a":8772,"t":"code","b":[153,224,217],"m":"sta","o":"$D9E0,y"},{"a":8775,"t":"code","b":[185,9,218],"m":"lda","o":"$DA09,y"},{"a":8778,"t":"code","b":[153,8,218],"m":"sta","o":"$DA08,y"},{"a":8781,"t":"code","b":[185,49,218],"m":"lda","o":"$DA31,y"},{"a":8784,"t":"code","b":[153,48,218],"m":"sta","o":"$DA30,y"},{"a":8787,"t":"code","b":[185,89,218],"m":"lda","o":"$DA59,y"},{"a":8790,"t":"code","b":[153,88,218],"m":"sta","o":"$DA58,y"},{"a":8793,"t":"code","b":[185,129,218],"m":"lda","o":"$DA81,y"},{"a":8796,"t":"code","b":[153,128,218],"m":"sta","o":"$DA80,y"},{"a":8799,"t":"code","b":[200],"m":"iny"},{"a":8800,"t":"code","b":[192,38],"m":"cpy","o":"#$26"},{"a":8802,"t":"code","b":[208,155],"m":"bne","oa":8703,"o":"b_21FF"},{"a":8804,"t":"code","b":[32,105,34],"m":"jsr","oa":8809,"o":"draw_new_column"},{"a":8807,"t":"code","b":[96],"m":"rts"},{"a":8808,"l":"half_column","c":"0 or 1: which half of a two-character-wide map cell the next column is. draw_new_column ($2269) flips it and draw_map_cell ($22C0) adds it to the table index.","t":"byte","b":[1],"x":[7035,8809,8814,8902]},{"a":8809,"l":"draw_new_column","c":"Draws the next map column at column 38 of rows 1 to 16. It flips the half-column $2268 and, when that becomes 0, adds 1 to the map position $205E/$205F. It points $10/$11 at the map, $12/$13 at the screen that is not shown ($C84E when $1D42 is set, else $CC4E) and $14/$15 at colour RAM $D84E, and calls draw_map_cell ($22C0) eight times, adding $AE (the map's row length) to $10/$11 after each. Called by shift_colour_left at $2264.","t":"code","b":[173,104,34],"m":"lda","oa":8808,"o":"half_column","x":[8804]},{"a":8812,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":8814,"t":"code","b":[141,104,34],"m":"sta","oa":8808,"o":"half_column"},{"a":8817,"t":"code","b":[208,17],"m":"bne","oa":8836,"o":"b_2284"},{"a":8819,"t":"code","b":[173,94,32],"m":"lda","oa":8286,"o":"map_column"},{"a":8822,"t":"code","b":[24],"m":"clc"},{"a":8823,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":8825,"t":"code","b":[141,94,32],"m":"sta","oa":8286,"o":"map_column"},{"a":8828,"t":"code","b":[173,95,32],"m":"lda","oa":8287,"o":"$205F"},{"a":8831,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8833,"t":"code","b":[141,95,32],"m":"sta","oa":8287,"o":"$205F"},{"a":8836,"l":"b_2284","t":"code","b":[173,94,32],"m":"lda","oa":8286,"o":"map_column","x":[8817]},{"a":8839,"t":"code","b":[133,16],"m":"sta","oa":16,"o":"$10"},{"a":8841,"t":"code","b":[173,95,32],"m":"lda","oa":8287,"o":"$205F"},{"a":8844,"t":"code","b":[133,17],"m":"sta","oa":17,"o":"$11"},{"a":8846,"t":"code","b":[162,78],"m":"ldx","o":"#$4E"},{"a":8848,"t":"code","b":[160,204],"m":"ldy","o":"#$CC"},{"a":8850,"t":"code","b":[173,66,29],"m":"lda","oa":7490,"o":"screen_flag"},{"a":8853,"t":"code","b":[240,4],"m":"beq","oa":8859,"o":"b_229B"},{"a":8855,"t":"code","b":[162,78],"m":"ldx","o":"#$4E"},{"a":8857,"t":"code","b":[160,200],"m":"ldy","o":"#$C8"},{"a":8859,"l":"b_229B","t":"code","b":[134,18],"m":"stx","oa":18,"o":"$12","x":[8853]},{"a":8861,"t":"code","b":[132,19],"m":"sty","oa":19,"o":"$13"},{"a":8863,"t":"code","b":[162,78],"m":"ldx","o":"#$4E"},{"a":8865,"t":"code","b":[160,216],"m":"ldy","o":"#$D8"},{"a":8867,"t":"code","b":[134,20],"m":"stx","oa":20,"o":"load_pointer_lo"},{"a":8869,"t":"code","b":[132,21],"m":"sty","oa":21,"o":"load_pointer_hi"},{"a":8871,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8874,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8877,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8880,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8883,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8886,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8889,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8892,"t":"code","b":[32,192,34],"m":"jsr","oa":8896,"o":"draw_map_cell"},{"a":8895,"t":"code","b":[96],"m":"rts"},{"a":8896,"l":"draw_map_cell","c":"Draws one map cell as two characters, one above the other. The map byte at ($10) times 2 plus the half-column $2268 picks the top character from $6BB3 (written to ($12)) and the bottom character from $6C51 (written to ($12)+$28); the colour of each, from the table $BF00, goes to ($14) and ($14)+$28. It then adds $50 to $12/$13 and $14/$15 and $AE to $10/$11. Called eight times by draw_new_column.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[8871,8874,8877,8880,8883,8886,8889,8892]},{"a":8898,"t":"code","b":[177,16],"m":"lda","oa":16,"o":"($10),y"},{"a":8900,"t":"code","b":[10],"m":"asl","o":"a"},{"a":8901,"t":"code","b":[24],"m":"clc"},{"a":8902,"t":"code","b":[109,104,34],"m":"adc","oa":8808,"o":"half_column"},{"a":8905,"t":"code","b":[170],"m":"tax"},{"a":8906,"t":"code","b":[189,179,107],"m":"lda","oa":27571,"o":"tile_top_chars,x"},{"a":8909,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":8911,"t":"code","b":[145,18],"m":"sta","oa":18,"o":"($12),y"},{"a":8913,"t":"code","b":[168],"m":"tay"},{"a":8914,"t":"code","b":[185,0,191],"m":"lda","oa":48896,"o":"tile_colours,y"},{"a":8917,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":8919,"t":"code","b":[145,20],"m":"sta","oa":20,"o":"(load_pointer_lo),y"},{"a":8921,"t":"code","b":[189,81,108],"m":"lda","oa":27729,"o":"tile_bottom_chars,x"},{"a":8924,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":8926,"t":"code","b":[145,18],"m":"sta","oa":18,"o":"($12),y"},{"a":8928,"t":"code","b":[168],"m":"tay"},{"a":8929,"t":"code","b":[185,0,191],"m":"lda","oa":48896,"o":"tile_colours,y"},{"a":8932,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":8934,"t":"code","b":[145,20],"m":"sta","oa":20,"o":"(load_pointer_lo),y"},{"a":8936,"t":"code","b":[24],"m":"clc"},{"a":8937,"t":"code","b":[165,18],"m":"lda","oa":18,"o":"$12"},{"a":8939,"t":"code","b":[105,80],"m":"adc","o":"#$50"},{"a":8941,"t":"code","b":[133,18],"m":"sta","oa":18,"o":"$12"},{"a":8943,"t":"code","b":[165,19],"m":"lda","oa":19,"o":"$13"},{"a":8945,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8947,"t":"code","b":[133,19],"m":"sta","oa":19,"o":"$13"},{"a":8949,"t":"code","b":[24],"m":"clc"},{"a":8950,"t":"code","b":[165,20],"m":"lda","oa":20,"o":"load_pointer_lo"},{"a":8952,"t":"code","b":[105,80],"m":"adc","o":"#$50"},{"a":8954,"t":"code","b":[133,20],"m":"sta","oa":20,"o":"load_pointer_lo"},{"a":8956,"t":"code","b":[165,21],"m":"lda","oa":21,"o":"load_pointer_hi"},{"a":8958,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8960,"t":"code","b":[133,21],"m":"sta","oa":21,"o":"load_pointer_hi"},{"a":8962,"t":"code","b":[24],"m":"clc"},{"a":8963,"t":"code","b":[165,16],"m":"lda","oa":16,"o":"$10"},{"a":8965,"t":"code","b":[105,174],"m":"adc","o":"#$AE"},{"a":8967,"t":"code","b":[133,16],"m":"sta","oa":16,"o":"$10"},{"a":8969,"t":"code","b":[165,17],"m":"lda","oa":17,"o":"$11"},{"a":8971,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8973,"t":"code","b":[133,17],"m":"sta","oa":17,"o":"$11"},{"a":8975,"t":"code","b":[96],"m":"rts"},{"a":8976,"l":"first_screen_chars_1","c":"The first 170 characters of the first screen: draw_first_screen ($2608) copies them to $CC00-$CCA9 (rows 0 to 3 and the first 10 characters of row 4 of the screen matrix) and takes each one's colour from the table at $BF00.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[9738]},{"a":8984,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":8992,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":9000,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":9008,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":9016,"t":"byte","b":[31,26,27,30,31,26,27,30]},{"a":9024,"t":"byte","b":[31,26,27,30,31,26,27,84]},{"a":9032,"t":"byte","b":[85,80,81,80,81,80,81,80]},{"a":9040,"t":"byte","b":[81,80,81,80,81,80,81,80]},{"a":9048,"t":"byte","b":[81,80,81,80,81,80,81,240]},{"a":9056,"t":"byte","b":[71,66,67,70,71,66,67,70]},{"a":9064,"t":"byte","b":[71,66,67,70,71,66,67,124]},{"a":9072,"t":"byte","b":[125,120,121,120,121,120,121,120]},{"a":9080,"t":"byte","b":[121,120,121,120,121,120,121,120]},{"a":9088,"t":"byte","b":[121,120,121,120,121,120,121,76]},{"a":9096,"t":"byte","b":[27,26,27,28,29,0,1,34]},{"a":9104,"t":"byte","b":[35,36,37,0,1,102,103,82]},{"a":9112,"t":"byte","b":[83,80,81,80,81,80,81,80]},{"a":9120,"t":"byte","b":[81,80,81,174,175,94,95,178]},{"a":9128,"t":"byte","b":[179,80,81,80,81,80,81,156]},{"a":9136,"t":"byte","b":[67,66,67,68,69,40,41,74]},{"a":9144,"t":"byte","b":[75,76]},{"a":9146,"l":"first_screen_chars_2","c":"The second 170 characters of the first screen, for the screen matrix at $CCAA-$CD53 (the rest of row 4 up to column 19 of row 8), copied by draw_first_screen ($2608).","t":"byte","b":[77,40,41,142,143,122,123,120],"x":[9751]},{"a":9154,"t":"byte","b":[121,120,121,120,121,120,121,120]},{"a":9162,"t":"byte","b":[121,214,215,134,135,218,219,120]},{"a":9170,"t":"byte","b":[121,120,121,120,121,73,171,102]},{"a":9178,"t":"byte","b":[103,82,83,82,83,82,83,82]},{"a":9186,"t":"byte","b":[83,82,83,102,103,82,83,80]},{"a":9194,"t":"byte","b":[81,80,81,174,175,176,177,178]},{"a":9202,"t":"byte","b":[179,180,181,182,183,184,185,174]},{"a":9210,"t":"byte","b":[175,176,177,178,179,16,211,142]},{"a":9218,"t":"byte","b":[143,122,123,122,123,122,123,122]},{"a":9226,"t":"byte","b":[123,122,123,142,143,122,123,120]},{"a":9234,"t":"byte","b":[121,120,121,214,215,216,217,218]},{"a":9242,"t":"byte","b":[219,220,221,222,223,224,225,214]},{"a":9250,"t":"byte","b":[215,216,217,218,219,108,169,102]},{"a":9258,"t":"byte","b":[103,82,83,80,81,80,81,80]},{"a":9266,"t":"byte","b":[81,80,81,102,103,82,83,80]},{"a":9274,"t":"byte","b":[81,80,81,180,181,182,183,184]},{"a":9282,"t":"byte","b":[185,186,187,0,1,188,189,180]},{"a":9290,"t":"byte","b":[181,182,183,184,185,208,209,142]},{"a":9298,"t":"byte","b":[143,122,123,120,121,120,121,120]},{"a":9306,"t":"byte","b":[121,120,121,142,143,122,123,120]},{"a":9314,"t":"byte","b":[121,120]},{"a":9316,"l":"first_screen_chars_3","c":"The third 170 characters of the first screen, for $CD54-$CDFD (from column 20 of row 8 to column 29 of row 12), copied by draw_first_screen ($2608).","t":"byte","b":[121,220,221,222,223,224,225,226],"x":[9764]},{"a":9324,"t":"byte","b":[227,40,41,228,229,220,221,222]},{"a":9332,"t":"byte","b":[223,224,225,56,1,102,103,82]},{"a":9340,"t":"byte","b":[83,80,81,80,81,80,81,80]},{"a":9348,"t":"byte","b":[81,102,103,82,83,80,81,80]},{"a":9356,"t":"byte","b":[81,186,187,0,1,188,189,186]},{"a":9364,"t":"byte","b":[187,0,1,188,189,186,187,0]},{"a":9372,"t":"byte","b":[1,188,189,36,41,142,143,122]},{"a":9380,"t":"byte","b":[123,120,121,120,121,120,121,120]},{"a":9388,"t":"byte","b":[121,142,143,122,123,120,121,120]},{"a":9396,"t":"byte","b":[121,226,227,40,41,228,229,226]},{"a":9404,"t":"byte","b":[227,40,41,228,229,226,227,40]},{"a":9412,"t":"byte","b":[41,228,229,177,81,102,103,106]},{"a":9420,"t":"byte","b":[107,104,105,104,105,104,105,104]},{"a":9428,"t":"byte","b":[105,102,103,82,83,80,81,80]},{"a":9436,"t":"byte","b":[81,80,81,80,81,80,81,80]},{"a":9444,"t":"byte","b":[81,80,81,80,81,80,81,80]},{"a":9452,"t":"byte","b":[81,80,81,105,121,142,143,146]},{"a":9460,"t":"byte","b":[147,144,145,144,145,144,145,144]},{"a":9468,"t":"byte","b":[145,142,143,122,123,120,121,120]},{"a":9476,"t":"byte","b":[121,120,121,120,121,120,121,120]},{"a":9484,"t":"byte","b":[121,120]},{"a":9486,"l":"first_screen_chars_4","c":"The last 170 characters of the first screen, for $CDFE-$CEA7 (from column 30 of row 12 to the end of row 16), copied by draw_first_screen ($2608). The 80 bytes after it, to $2607, are zero and nothing reads them.","t":"byte","b":[121,120,121,120,121,120,121,120],"x":[9777]},{"a":9494,"t":"byte","b":[121,176,15,20,21,14,15,14]},{"a":9502,"t":"byte","b":[15,14,15,14,15,14,15,20]},{"a":9510,"t":"byte","b":[21,14,15,16,17,14,15,14]},{"a":9518,"t":"byte","b":[15,14,15,14,15,14,15,14]},{"a":9526,"t":"byte","b":[15,14,15,14,15,14,15,14]},{"a":9534,"t":"byte","b":[15,108,55,60,61,54,55,54]},{"a":9542,"t":"byte","b":[55,54,55,54,55,54,55,60]},{"a":9550,"t":"byte","b":[61,54,55,56,57,54,55,54]},{"a":9558,"t":"byte","b":[55,54,55,54,55,54,55,54]},{"a":9566,"t":"byte","b":[55,54,55,54,55,54,55,54]},{"a":9574,"t":"byte","b":[55,173,25,22,23,24,25,22]},{"a":9582,"t":"byte","b":[23,24,25,22,23,24,25,22]},{"a":9590,"t":"byte","b":[23,24,25,22,23,24,25,22]},{"a":9598,"t":"byte","b":[23,24,25,22,23,24,25,22]},{"a":9606,"t":"byte","b":[23,24,25,22,23,24,25,22]},{"a":9614,"t":"byte","b":[23,13,65,62,63,64,65,62]},{"a":9622,"t":"byte","b":[63,64,65,62,63,64,65,62]},{"a":9630,"t":"byte","b":[63,64,65,62,63,64,65,62]},{"a":9638,"t":"byte","b":[63,64,65,62,63,64,65,62]},{"a":9646,"t":"byte","b":[63,64,65,62,63,64,65,62]},{"a":9654,"t":"byte","b":[63,60]},{"a":9656,"t":"gap","n":80},{"a":9736,"l":"draw_first_screen","c":"Fills the first screen. Copies 170 bytes from each of the tables $2310, $23BA, $2464 and $250E to the screen matrix at $CC00, $CCAA, $CD54 and $CDFE, and writes each character's colour, from the table $BF00, to colour RAM $D800, $D8AA, $D954 and $D9FE. Called once by play_setup at $1B41.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[6977]},{"a":9738,"l":"b_260A","t":"code","b":[185,16,35],"m":"lda","oa":8976,"o":"first_screen_chars_1,y","x":[9793]},{"a":9741,"t":"code","b":[153,0,204],"m":"sta","oa":52224,"o":"screen_b,y"},{"a":9744,"t":"code","b":[170],"m":"tax"},{"a":9745,"t":"code","b":[189,0,191],"m":"lda","oa":48896,"o":"tile_colours,x"},{"a":9748,"t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y"},{"a":9751,"t":"code","b":[185,186,35],"m":"lda","oa":9146,"o":"first_screen_chars_2,y"},{"a":9754,"t":"code","b":[153,170,204],"m":"sta","oa":52394,"o":"$CCAA,y"},{"a":9757,"t":"code","b":[170],"m":"tax"},{"a":9758,"t":"code","b":[189,0,191],"m":"lda","oa":48896,"o":"tile_colours,x"},{"a":9761,"t":"code","b":[153,170,216],"m":"sta","o":"$D8AA,y"},{"a":9764,"t":"code","b":[185,100,36],"m":"lda","oa":9316,"o":"first_screen_chars_3,y"},{"a":9767,"t":"code","b":[153,84,205],"m":"sta","oa":52564,"o":"$CD54,y"},{"a":9770,"t":"code","b":[170],"m":"tax"},{"a":9771,"t":"code","b":[189,0,191],"m":"lda","oa":48896,"o":"tile_colours,x"},{"a":9774,"t":"code","b":[153,84,217],"m":"sta","o":"$D954,y"},{"a":9777,"t":"code","b":[185,14,37],"m":"lda","oa":9486,"o":"first_screen_chars_4,y"},{"a":9780,"t":"code","b":[153,254,205],"m":"sta","oa":52734,"o":"$CDFE,y"},{"a":9783,"t":"code","b":[170],"m":"tax"},{"a":9784,"t":"code","b":[189,0,191],"m":"lda","oa":48896,"o":"tile_colours,x"},{"a":9787,"t":"code","b":[153,254,217],"m":"sta","o":"$D9FE,y"},{"a":9790,"t":"code","b":[200],"m":"iny"},{"a":9791,"t":"code","b":[192,170],"m":"cpy","o":"#$AA"},{"a":9793,"t":"code","b":[208,199],"m":"bne","oa":9738,"o":"b_260A"},{"a":9795,"t":"code","b":[96],"m":"rts"},{"a":9796,"l":"player_state","c":"Darkman's state, the index into the table at $2645: 0 nothing, 1 standing and walking, 2 falling, 3 jumping, 4 climbing, 5 punch, 6 crouch, 7 strike. player_move ($265E) calls the routine of the current state.","t":"byte","b":[1],"x":[6854,9914,10501,10538,10566,10608,10638,10662,10697,10996,11139,11210,11353,11624,11807,11908,11954,12065,12145,12212,12244,17891,17981,18008]},{"a":9797,"l":"state_table","c":"Eight routine addresses, low byte first, one for each state of $2644: 0 is player_idle ($26D4, an RTS), 1 player_control ($276B), 2 player_fall ($2A0A), 3 player_jump ($2B69), 4 player_climb ($2D14), 5 player_punch ($2E11), 6 player_crouch ($2F68) and 7 player_strike ($2E6F). player_move ($265E) copies the one for the current state into the JSR at $26CB.","t":"byte","b":[212,38,107,39,10,42,105,43],"x":[9919]},{"a":9805,"t":"byte","b":[20,45,17,46,104,47,111,46]},{"a":9813,"l":"prev_x_wall","c":"Darkman's X position (low byte) as it was when player_move ($265E) began this frame, stored at $26A8. The state routines copy it back to $2657 when a step would end in a solid tile (at $2890, $2ABB, $2C8A and $2F35).","t":"byte","b":[114],"x":[9896,10384,10939,11402,12085]},{"a":9814,"l":"prev_y","c":"Darkman's Y position as it was when player_move ($265E) began this frame, stored at $26B1. No code reads it.","t":"byte","b":[119],"x":[9905]},{"a":9815,"l":"player_x","c":"Darkman's horizontal position, low byte (with $2659 the ninth bit), written to sprites 0-2 by $1E21.","t":"byte","b":[114],"x":[6163,6259,6859,7807,9837,9850,9855,9893,10177,10183,10204,10271,10277,10306,10387,10786,10792,10819,10844,10850,10879,10942,11243,11249,11270,11302,11307,11341,11405,11984,11990,12018,12024,12088,12518,13543,16477,17210,17249,17282,17321,17840,17951,18042]},{"a":9816,"l":"player_y","c":"Darkman's vertical position, written to sprites 0 and 2 by $1E21; sprite 1 sits 21 lines below.","t":"byte","b":[119],"x":[6119,6145,6212,6238,6869,7837,9902,10102,10107,10492,10542,10547,10956,10961,11003,11117,11123,11553,11558,11580,11585,11656,11661,11891,11897,12577,13578,15978,15986,15997,16013,16024,16951,16959,16968,17831,17942,18036]},{"a":9817,"l":"player_x_hi","c":"Ninth bit of Darkman's horizontal position.","t":"byte","b":[0],"x":[6155,6170,6248,6266,6864,7822,9832,9858,9863,9908,10187,10192,10210,10281,10286,10312,10393,10796,10801,10813,10854,10859,10885,10948,11253,11258,11276,11311,11316,11347,11411,11994,11999,12028,12033,12094,12511,13536,16464,17202,17217,17238,17256,17274,17289,17310,17328,17846,17957,18048]},{"a":9818,"l":"prev_x_edge","c":"A second copy of Darkman's X position (low byte) from the start of the frame (stored at $26AB). The state routines copy it back to $2657 when a step takes him past the left edge ($1E) or the right limit ($265C/$265D).","t":"byte","b":[114],"x":[9899,10201,10303,10816,10876,11267,11338]},{"a":9819,"l":"prev_x_hi","c":"The ninth bit of Darkman's X position from the start of the frame (stored at $26B7). The state routines copy it back to $2659 together with the low byte whenever they undo a step.","t":"byte","b":[0],"x":[9911,10207,10309,10390,10810,10882,10945,11273,11344,11408,12091]},{"a":9820,"l":"x_limit_lo","c":"The low byte of the right limit of Darkman's X position, set by player_move ($265E) each frame: $2D normally and $D2 while advance_flag ($3638) is set.","t":"byte","b":[45],"x":[9882,10298,10871,11328,12045]},{"a":9821,"l":"x_limit_hi","c":"The high byte of the right limit of Darkman's X position: 1 normally and 0 while advance_flag ($3638) is set, so the limit is $012D or $00D2.","t":"byte","b":[1],"x":[9885,10289,10862,11319,12036]},{"a":9822,"l":"player_move","c":"Moves Darkman; skipped while paused. Begins by testing his position against the right edge ($D5 with the ninth bit) when $3638 is set.","t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused","x":[7784]},{"a":9825,"t":"code","b":[208,107],"m":"bne","oa":9934,"o":"player_move_part_2"},{"a":9827,"t":"code","b":[173,56,54],"m":"lda","oa":13880,"o":"advance_flag"},{"a":9830,"t":"code","b":[240,37],"m":"beq","oa":9869,"o":"b_268D"},{"a":9832,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":9835,"t":"code","b":[208,7],"m":"bne","oa":9844,"o":"b_2674"},{"a":9837,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":9840,"t":"code","b":[201,213],"m":"cmp","o":"#$D5"},{"a":9842,"t":"code","b":[144,25],"m":"bcc","oa":9869,"o":"b_268D"},{"a":9844,"l":"b_2674","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[9835]},{"a":9846,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":9849,"t":"code","b":[56],"m":"sec"},{"a":9850,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":9853,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":9855,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":9858,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":9861,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":9863,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":9866,"t":"code","b":[76,206,38],"m":"jmp","oa":9934,"o":"player_move_part_2"},{"a":9869,"l":"b_268D","t":"code","b":[162,45],"m":"ldx","o":"#$2D","x":[9830,9842]},{"a":9871,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":9873,"t":"code","b":[173,56,54],"m":"lda","oa":13880,"o":"advance_flag"},{"a":9876,"t":"code","b":[240,4],"m":"beq","oa":9882,"o":"b_269A"},{"a":9878,"t":"code","b":[162,210],"m":"ldx","o":"#$D2"},{"a":9880,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":9882,"l":"b_269A","t":"code","b":[142,92,38],"m":"stx","oa":9820,"o":"x_limit_lo","x":[9876]},{"a":9885,"t":"code","b":[140,93,38],"m":"sty","oa":9821,"o":"x_limit_hi"},{"a":9888,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9890,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":9893,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":9896,"t":"code","b":[141,85,38],"m":"sta","oa":9813,"o":"prev_x_wall"},{"a":9899,"t":"code","b":[141,90,38],"m":"sta","oa":9818,"o":"prev_x_edge"},{"a":9902,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":9905,"t":"code","b":[141,86,38],"m":"sta","oa":9814,"o":"prev_y"},{"a":9908,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":9911,"t":"code","b":[141,91,38],"m":"sta","oa":9819,"o":"prev_x_hi"},{"a":9914,"t":"code","b":[173,68,38],"m":"lda","oa":9796,"o":"player_state"},{"a":9917,"t":"code","b":[10],"m":"asl","o":"a"},{"a":9918,"t":"code","b":[168],"m":"tay"},{"a":9919,"t":"code","b":[185,69,38],"m":"lda","oa":9797,"o":"state_table,y"},{"a":9922,"t":"code","b":[141,204,38],"m":"sta","oa":9932,"o":"state_routine_lo"},{"a":9925,"t":"code","b":[185,70,38],"m":"lda","oa":9798,"o":"$2646,y"},{"a":9928,"t":"code","b":[141,205,38],"m":"sta","oa":9933,"o":"$26CD"},{"a":9931,"t":"code","b":[32,107,39],"m":"jsr","oa":10091,"o":"player_control"},{"a":9932,"t":"note","l":"state_routine_lo","c":"The operand of the JSR at $26CB: the address of the routine for Darkman's current state, low byte at $26CC and high byte at $26CD, stored by player_move ($265E) from state_table.","note":"inside the item at $26CB","x":[9922]},{"a":9934,"l":"player_move_part_2","c":"The end of player_move ($265E): calls player_draw ($2FC7) to put Darkman's sprite pointers into the tables, then returns. Also reached by the branch at $2661 while the game is paused and by the jump at $268A, which ends the step when advance_flag is set and he is at X $D5 or beyond (he is then moved 2 back and the scroll speed $2060 set to 2).","t":"code","b":[32,199,47],"m":"jsr","oa":12231,"o":"player_draw","x":[9825,9866]},{"a":9937,"t":"code","b":[96],"m":"rts"},{"a":9938,"l":"pad_26d2","c":"2 zero bytes after with no type between code ($26D2): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":9940,"l":"player_idle","c":"State 0 of state_table ($2645): an RTS, so in this state player_move ($265E) moves nothing. No code in the file sets the state to 0.","t":"code","b":[96],"m":"rts"},{"a":9941,"l":"walk_index","c":"Index of the current step of the walk animation, 0 to 17, used by walk_anim_left ($26FB) and walk_anim_right ($271C).","t":"byte","b":[0],"x":[9989,9999,10002,10022,10032,10035,11485,11495,11498,11737,11747,11750,11770,11780,11783]},{"a":9942,"l":"walk_left_frames","c":"The frames of the walk to the left, three each of $9D to $A2, read by walk_anim_left ($26FB).","t":"byte","b":[157,157,157,158,158,158,159,159],"x":[10005,10144]},{"a":9950,"t":"byte","b":[159,160,160,160,161,161,161,162]},{"a":9958,"t":"byte","b":[162,162]},{"a":9960,"l":"walk_right_frames","c":"The frames of the walk to the right, three each of $97 to $9C, read by walk_anim_right ($271C).","t":"byte","b":[151,151,151,152,152,152,153,153],"x":[10038,10238]},{"a":9968,"t":"byte","b":[153,154,154,154,155,155,155,156]},{"a":9976,"t":"byte","b":[156,156]},{"a":9978,"l":"walk_toggle","c":"Flipped by walk_anim_left and walk_anim_right on every call; the animation moves on when it becomes 1.","t":"byte","b":[0],"x":[9979,9984,10012,10017,11480,11727,11732,11760,11765]},{"a":9979,"l":"walk_anim_left","c":"Steps the walk to the left. Flips $26FA and, every second call, moves the index $26D5 on through 18 values (back to 0 after 17); then puts the entry $26D6 plus the index into Darkman's frame $2FC3. The 18 entries are three each of $9D to $A2. Called by the player code at $28A9 when $2769 is set.","t":"code","b":[173,250,38],"m":"lda","oa":9978,"o":"walk_toggle","x":[10409]},{"a":9982,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":9984,"t":"code","b":[141,250,38],"m":"sta","oa":9978,"o":"walk_toggle"},{"a":9987,"t":"code","b":[240,13],"m":"beq","oa":10002,"o":"b_2712"},{"a":9989,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index"},{"a":9992,"t":"code","b":[232],"m":"inx"},{"a":9993,"t":"code","b":[224,18],"m":"cpx","o":"#$12"},{"a":9995,"t":"code","b":[144,2],"m":"bcc","oa":9999,"o":"b_270F"},{"a":9997,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":9999,"l":"b_270F","t":"code","b":[142,213,38],"m":"stx","oa":9941,"o":"walk_index","x":[9995]},{"a":10002,"l":"b_2712","t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index","x":[9987]},{"a":10005,"t":"code","b":[189,214,38],"m":"lda","oa":9942,"o":"walk_left_frames,x"},{"a":10008,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":10011,"t":"code","b":[96],"m":"rts"},{"a":10012,"l":"walk_anim_right","c":"The same for the walk to the right: flips $26FA, advances $26D5 through 18 values every second call and puts the entry $26E8 plus the index in $2FC3. The 18 entries are three each of $97 to $9C. Called by the player code at $28B4 when $276A is set.","t":"code","b":[173,250,38],"m":"lda","oa":9978,"o":"walk_toggle","x":[10420]},{"a":10015,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":10017,"t":"code","b":[141,250,38],"m":"sta","oa":9978,"o":"walk_toggle"},{"a":10020,"t":"code","b":[240,13],"m":"beq","oa":10035,"o":"b_2733"},{"a":10022,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index"},{"a":10025,"t":"code","b":[232],"m":"inx"},{"a":10026,"t":"code","b":[224,18],"m":"cpx","o":"#$12"},{"a":10028,"t":"code","b":[144,2],"m":"bcc","oa":10032,"o":"b_2730"},{"a":10030,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":10032,"l":"b_2730","t":"code","b":[142,213,38],"m":"stx","oa":9941,"o":"walk_index","x":[10028]},{"a":10035,"l":"b_2733","t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index","x":[10020]},{"a":10038,"t":"code","b":[189,232,38],"m":"lda","oa":9960,"o":"walk_right_frames,x"},{"a":10041,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":10044,"t":"code","b":[96],"m":"rts"},{"a":10045,"l":"facing","c":"Which way Darkman faces: 0 for right and 1 for left.","t":"byte","b":[0],"x":[8005,8055,10051,10157,10174,10251,10268,10438,10443,10449,10454,10741,10783,10841,11014,11240,11298,11459,11632,11665,11824,11972,12052,12188,12203,12554,16978]},{"a":10046,"l":"feet_column","c":"The column that tile_at_probe ($309D) left in Y for the point at Darkman's feet; stored by the player code at $28DF.","t":"byte","b":[13],"x":[10463,10523]},{"a":10047,"l":"crouching","c":"1 while Darkman is crouching: set by start_attack ($2979) and cleared by play_setup. player_draw ($2FC7) reads it.","t":"byte","b":[0],"x":[6825,10667,11923,11969,12222,12348]},{"a":10048,"l":"crouch_delay","c":"Countdown that, while it is not zero, keeps start_attack ($2979) from starting a crouch or a strike; start_attack counts it down.","t":"byte","b":[0],"x":[10617,10680,11147,11218,11629,11918,11964,12217]},{"a":10049,"l":"punch_delay","c":"Countdown that, while it is not zero, keeps start_attack ($2979) from starting a punch; start_attack counts it down.","t":"byte","b":[0],"x":[10683,10720,11812]},{"a":10050,"l":"jump_delay","c":"Countdown that, while it is not zero, keeps start_jump ($293F) from starting a jump; the player code counts it down at $277E.","t":"byte","b":[0],"x":[10110,10116,10559,11542]},{"a":10051,"l":"crouch_frames","c":"Sets the three sprite pointers $2FC4, $2FC5 and $2FC6 to $92, $B6 and $C0 when Darkman faces right ($273D zero) and to $93, $B7 and $C1 when he faces left. Called by start_attack at $29AE and by the code at $2FAE.","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[10670,12206]},{"a":10054,"t":"code","b":[208,16],"m":"bne","oa":10072,"o":"b_2758"},{"a":10056,"t":"code","b":[169,146],"m":"lda","o":"#$92"},{"a":10058,"t":"code","b":[141,196,47],"m":"sta","oa":12228,"o":"attack_frames"},{"a":10061,"t":"code","b":[169,182],"m":"lda","o":"#$B6"},{"a":10063,"t":"code","b":[141,197,47],"m":"sta","oa":12229,"o":"$2FC5"},{"a":10066,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":10068,"t":"code","b":[141,198,47],"m":"sta","oa":12230,"o":"$2FC6"},{"a":10071,"t":"code","b":[96],"m":"rts"},{"a":10072,"l":"b_2758","t":"code","b":[169,147],"m":"lda","o":"#$93","x":[10054]},{"a":10074,"t":"code","b":[141,196,47],"m":"sta","oa":12228,"o":"attack_frames"},{"a":10077,"t":"code","b":[169,183],"m":"lda","o":"#$B7"},{"a":10079,"t":"code","b":[141,197,47],"m":"sta","oa":12229,"o":"$2FC5"},{"a":10082,"t":"code","b":[169,193],"m":"lda","o":"#$C1"},{"a":10084,"t":"code","b":[141,198,47],"m":"sta","oa":12230,"o":"$2FC6"},{"a":10087,"t":"code","b":[96],"m":"rts"},{"a":10088,"l":"punch_active","c":"Set to 9 when start_attack ($2979) starts a punch and cleared by play_setup. shift_attack_sprite ($1F40), player_draw ($2FC7) and enemy_hit_check ($421F) read it.","t":"byte","b":[0],"x":[6831,8000,10702,11793,11817,12315,16927]},{"a":10089,"l":"walked_left","c":"Set to 1 by player_control ($276B) at $27EA when Darkman has taken a step left and cleared at the start of every pass; the walk animation walk_anim_left ($26FB) is called at $28A9 while it is 1.","t":"byte","b":[0],"x":[10093,10218,10404]},{"a":10090,"l":"walked_right","c":"Set to 1 by player_control ($276B) at $2857 and $285F when Darkman has taken a step right and cleared at the start of every pass; the walk animation walk_anim_right ($271C) is called at $28B4 while it is 1.","t":"byte","b":[0],"x":[10096,10327,10335,10415]},{"a":10091,"l":"player_control","c":"Reads the stick for Darkman: clears his attack state ($2769, $276A, $312D), rounds his height in $2658 to the bottom of a character row (ORA #$07), counts down $2742, then tests left ($203B and $DC00 bit 2) and the other directions to choose a move.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[9931]},{"a":10093,"t":"code","b":[141,105,39],"m":"sta","oa":10089,"o":"walked_left"},{"a":10096,"t":"code","b":[141,106,39],"m":"sta","oa":10090,"o":"walked_right"},{"a":10099,"t":"code","b":[141,45,49],"m":"sta","oa":12589,"o":"stun_flip"},{"a":10102,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":10105,"t":"code","b":[9,7],"m":"ora","o":"#$07"},{"a":10107,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":10110,"t":"code","b":[174,66,39],"m":"ldx","oa":10050,"o":"jump_delay"},{"a":10113,"t":"code","b":[240,4],"m":"beq","oa":10119,"o":"b_2787"},{"a":10115,"t":"code","b":[202],"m":"dex"},{"a":10116,"t":"code","b":[142,66,39],"m":"stx","oa":10050,"o":"jump_delay"},{"a":10119,"l":"b_2787","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[10113]},{"a":10121,"t":"code","b":[141,8,42],"m":"sta","oa":10760,"o":"hit_flag_a"},{"a":10124,"t":"code","b":[141,9,42],"m":"sta","oa":10761,"o":"hit_flag_b"},{"a":10127,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":10130,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":10133,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":10135,"t":"code","b":[208,87],"m":"bne","oa":10224,"o":"b_27F0"},{"a":10137,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":10140,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":10142,"t":"code","b":[208,16],"m":"bne","oa":10160,"o":"b_27B0"},{"a":10144,"t":"code","b":[173,214,38],"m":"lda","oa":9942,"o":"walk_left_frames"},{"a":10147,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":10150,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":10153,"t":"code","b":[208,5],"m":"bne","oa":10160,"o":"b_27B0"},{"a":10155,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10157,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10160,"l":"b_27B0","t":"code","b":[32,205,23],"m":"jsr","oa":6093,"o":"blocked_left","x":[10142,10153]},{"a":10163,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":10165,"t":"code","b":[240,57],"m":"beq","oa":10224,"o":"b_27F0"},{"a":10167,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":10170,"t":"code","b":[208,5],"m":"bne","oa":10177,"o":"b_27C1"},{"a":10172,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10174,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10177,"l":"b_27C1","t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x","x":[10170]},{"a":10180,"t":"code","b":[56],"m":"sec"},{"a":10181,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":10183,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10186,"t":"code","b":[168],"m":"tay"},{"a":10187,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":10190,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":10192,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10195,"t":"code","b":[208,19],"m":"bne","oa":10216,"o":"b_27E8"},{"a":10197,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":10199,"t":"code","b":[176,15],"m":"bcs","oa":10216,"o":"b_27E8"},{"a":10201,"t":"code","b":[173,90,38],"m":"lda","oa":9818,"o":"prev_x_edge"},{"a":10204,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10207,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":10210,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10213,"t":"code","b":[76,98,40],"m":"jmp","oa":10338,"o":"j_2862"},{"a":10216,"l":"b_27E8","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[10195,10199]},{"a":10218,"t":"code","b":[141,105,39],"m":"sta","oa":10089,"o":"walked_left"},{"a":10221,"t":"code","b":[76,98,40],"m":"jmp","oa":10338,"o":"j_2862"},{"a":10224,"l":"b_27F0","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[10135,10165]},{"a":10227,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":10229,"t":"code","b":[208,107],"m":"bne","oa":10338,"o":"j_2862"},{"a":10231,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":10234,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":10236,"t":"code","b":[208,16],"m":"bne","oa":10254,"o":"b_280E"},{"a":10238,"t":"code","b":[173,232,38],"m":"lda","oa":9960,"o":"walk_right_frames"},{"a":10241,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":10244,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":10247,"t":"code","b":[208,5],"m":"bne","oa":10254,"o":"b_280E"},{"a":10249,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10251,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10254,"l":"b_280E","t":"code","b":[32,42,24],"m":"jsr","oa":6186,"o":"blocked_right","x":[10236,10247]},{"a":10257,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":10259,"t":"code","b":[240,77],"m":"beq","oa":10338,"o":"j_2862"},{"a":10261,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":10264,"t":"code","b":[208,5],"m":"bne","oa":10271,"o":"b_281F"},{"a":10266,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10268,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10271,"l":"b_281F","t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x","x":[10264]},{"a":10274,"t":"code","b":[24],"m":"clc"},{"a":10275,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":10277,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10280,"t":"code","b":[168],"m":"tay"},{"a":10281,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":10284,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":10286,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10289,"t":"code","b":[205,93,38],"m":"cmp","oa":9821,"o":"x_limit_hi"},{"a":10292,"t":"code","b":[144,39],"m":"bcc","oa":10333,"o":"b_285D"},{"a":10294,"t":"code","b":[240,2],"m":"beq","oa":10298,"o":"b_283A"},{"a":10296,"t":"code","b":[176,5],"m":"bcs","oa":10303,"o":"b_283F"},{"a":10298,"l":"b_283A","t":"code","b":[204,92,38],"m":"cpy","oa":9820,"o":"x_limit_lo","x":[10294]},{"a":10301,"t":"code","b":[144,30],"m":"bcc","oa":10333,"o":"b_285D"},{"a":10303,"l":"b_283F","t":"code","b":[173,90,38],"m":"lda","oa":9818,"o":"prev_x_edge","x":[10296]},{"a":10306,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10309,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":10312,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10315,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":10317,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":10320,"t":"code","b":[173,56,54],"m":"lda","oa":13880,"o":"advance_flag"},{"a":10323,"t":"code","b":[240,13],"m":"beq","oa":10338,"o":"j_2862"},{"a":10325,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10327,"t":"code","b":[141,106,39],"m":"sta","oa":10090,"o":"walked_right"},{"a":10330,"t":"code","b":[76,98,40],"m":"jmp","oa":10338,"o":"j_2862"},{"a":10333,"l":"b_285D","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[10292,10301]},{"a":10335,"t":"code","b":[141,106,39],"m":"sta","oa":10090,"o":"walked_right"},{"a":10338,"l":"j_2862","t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player","x":[10213,10221,10229,10259,10323,10330,10457]},{"a":10341,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10343,"t":"code","b":[141,240,41],"m":"sta","oa":10736,"o":"feet_tile"},{"a":10346,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10348,"t":"code","b":[144,12],"m":"bcc","oa":10362,"o":"b_287A"},{"a":10350,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10352,"t":"code","b":[144,30],"m":"bcc","oa":10384,"o":"b_2890"},{"a":10354,"t":"code","b":[201,42],"m":"cmp","o":"#$2A"},{"a":10356,"t":"code","b":[144,4],"m":"bcc","oa":10362,"o":"b_287A"},{"a":10358,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":10360,"t":"code","b":[144,22],"m":"bcc","oa":10384,"o":"b_2890"},{"a":10362,"l":"b_287A","t":"code","b":[136],"m":"dey","x":[10348,10356]},{"a":10363,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10365,"t":"code","b":[141,240,41],"m":"sta","oa":10736,"o":"feet_tile"},{"a":10368,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10370,"t":"code","b":[144,32],"m":"bcc","oa":10404,"o":"b_28A4"},{"a":10372,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10374,"t":"code","b":[144,8],"m":"bcc","oa":10384,"o":"b_2890"},{"a":10376,"t":"code","b":[201,42],"m":"cmp","o":"#$2A"},{"a":10378,"t":"code","b":[144,24],"m":"bcc","oa":10404,"o":"b_28A4"},{"a":10380,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":10382,"t":"code","b":[176,20],"m":"bcs","oa":10404,"o":"b_28A4"},{"a":10384,"l":"b_2890","t":"code","b":[173,85,38],"m":"lda","oa":9813,"o":"prev_x_wall","x":[10352,10360,10374]},{"a":10387,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10390,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":10393,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10396,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10398,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":10401,"t":"code","b":[76,183,40],"m":"jmp","oa":10423,"o":"j_28B7"},{"a":10404,"l":"b_28A4","t":"code","b":[173,105,39],"m":"lda","oa":10089,"o":"walked_left","x":[10370,10378,10382]},{"a":10407,"t":"code","b":[240,6],"m":"beq","oa":10415,"o":"b_28AF"},{"a":10409,"t":"code","b":[32,251,38],"m":"jsr","oa":9979,"o":"walk_anim_left"},{"a":10412,"t":"code","b":[76,183,40],"m":"jmp","oa":10423,"o":"j_28B7"},{"a":10415,"l":"b_28AF","t":"code","b":[173,106,39],"m":"lda","oa":10090,"o":"walked_right","x":[10407]},{"a":10418,"t":"code","b":[240,3],"m":"beq","oa":10423,"o":"j_28B7"},{"a":10420,"t":"code","b":[32,28,39],"m":"jsr","oa":10012,"o":"walk_anim_right"},{"a":10423,"l":"j_28B7","t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer","x":[10401,10412,10418]},{"a":10426,"t":"code","b":[240,32],"m":"beq","oa":10460,"o":"b_28DC"},{"a":10428,"t":"code","b":[238,45,49],"m":"inc","oa":12589,"o":"stun_flip"},{"a":10431,"t":"code","b":[173,45,49],"m":"lda","oa":12589,"o":"stun_flip"},{"a":10434,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10436,"t":"code","b":[208,11],"m":"bne","oa":10449,"o":"b_28D1"},{"a":10438,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":10441,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":10443,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10446,"t":"code","b":[76,220,40],"m":"jmp","oa":10460,"o":"b_28DC"},{"a":10449,"l":"b_28D1","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[10436]},{"a":10452,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":10454,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10457,"t":"code","b":[76,98,40],"m":"jmp","oa":10338,"o":"j_2862"},{"a":10460,"l":"b_28DC","t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player","x":[10426,10446]},{"a":10463,"t":"code","b":[140,62,39],"m":"sty","oa":10046,"o":"feet_column"},{"a":10466,"t":"code","b":[152],"m":"tya"},{"a":10467,"t":"code","b":[24],"m":"clc"},{"a":10468,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":10470,"t":"code","b":[168],"m":"tay"},{"a":10471,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10473,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10475,"t":"code","b":[144,4],"m":"bcc","oa":10481,"o":"b_28F1"},{"a":10477,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10479,"t":"code","b":[144,32],"m":"bcc","oa":10513,"o":"b_2911"},{"a":10481,"l":"b_28F1","t":"code","b":[136],"m":"dey","x":[10475]},{"a":10482,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10484,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10486,"t":"code","b":[144,4],"m":"bcc","oa":10492,"o":"b_28FC"},{"a":10488,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10490,"t":"code","b":[144,21],"m":"bcc","oa":10513,"o":"b_2911"},{"a":10492,"l":"b_28FC","t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y","x":[10486]},{"a":10495,"t":"code","b":[201,113],"m":"cmp","o":"#$71"},{"a":10497,"t":"code","b":[176,14],"m":"bcs","oa":10513,"o":"b_2911"},{"a":10499,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":10501,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10504,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":10506,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":10509,"t":"code","b":[32,195,44],"m":"jsr","oa":11459,"o":"fall_frame"},{"a":10512,"t":"code","b":[96],"m":"rts"},{"a":10513,"l":"b_2911","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[10479,10490,10497]},{"a":10516,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":10518,"t":"code","b":[208,61],"m":"bne","oa":10581,"o":"b_2955"},{"a":10520,"t":"code","b":[76,63,41],"m":"jmp","oa":10559,"o":"start_jump"},{"a":10523,"l":"ladder_start_unused","c":"Starts a climb when the tile under Darkman's feet column ($273E) is 1 or 2 (a ladder): state 4, Y lowered by 2, $2DB6 and the drawing state $2B68 set to 1; any other tile jumps to start_jump ($293F). Nothing jumps to it: the jump at $2918 sits in front of it.","t":"code","b":[172,62,39],"m":"ldy","oa":10046,"o":"feet_column"},{"a":10526,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10528,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":10530,"t":"code","b":[240,4],"m":"beq","oa":10536,"o":"$2928"},{"a":10532,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10534,"t":"code","b":[208,23],"m":"bne","oa":10559,"o":"start_jump"},{"a":10536,"t":"code","b":[169,4],"m":"lda","o":"#$04","x":[10530]},{"a":10538,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10541,"t":"code","b":[56],"m":"sec"},{"a":10542,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":10545,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":10547,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":10550,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10552,"t":"code","b":[141,182,45],"m":"sta","oa":11702,"o":"climb_direction"},{"a":10555,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":10558,"t":"code","b":[96],"m":"rts"},{"a":10559,"l":"start_jump","c":"Reached by the jump at $2918 from the player code when the stick is pushed up. When the jump delay $2742 is zero it starts a jump: sets the state $2644 to 3, the drawing state $2B68 to 3 and the step $2B67 to 0, puts the falling frame in with fall_frame ($2CC3) and returns. Otherwise it goes to $2955, which tests the stick's down bit and in both cases continues at start_attack ($2979).","t":"code","b":[173,66,39],"m":"lda","oa":10050,"o":"jump_delay","x":[10520,10534]},{"a":10562,"t":"code","b":[208,17],"m":"bne","oa":10581,"o":"b_2955"},{"a":10564,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":10566,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10569,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":10572,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10574,"t":"code","b":[141,103,43],"m":"sta","oa":11111,"o":"jump_step"},{"a":10577,"t":"code","b":[32,195,44],"m":"jsr","oa":11459,"o":"fall_frame"},{"a":10580,"t":"code","b":[96],"m":"rts"},{"a":10581,"l":"b_2955","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[10518,10562]},{"a":10584,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":10586,"t":"code","b":[208,29],"m":"bne","oa":10617,"o":"start_attack"},{"a":10588,"t":"code","b":[76,121,41],"m":"jmp","oa":10617,"o":"start_attack"},{"a":10591,"l":"ladder_start_unused_2","c":"A second way into state 4: when the flag $2FC2 is zero and the tile at ($8D),y is 3 or 4 it sets state 4 and the drawing state 1; otherwise it goes to start_attack ($2979). Nothing jumps to it and $2FC2 is never written.","t":"code","b":[173,194,47],"m":"lda","oa":12226,"o":"dead_flag"},{"a":10594,"t":"code","b":[208,21],"m":"bne","oa":10617,"o":"start_attack"},{"a":10596,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10598,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":10600,"t":"code","b":[240,4],"m":"beq","oa":10606,"o":"$296E"},{"a":10602,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":10604,"t":"code","b":[208,11],"m":"bne","oa":10617,"o":"start_attack"},{"a":10606,"t":"code","b":[169,4],"m":"lda","o":"#$04","x":[10600]},{"a":10608,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10611,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10613,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":10616,"t":"code","b":[96],"m":"rts"},{"a":10617,"l":"start_attack","c":"Starts a crouch, a strike or a punch, reached by the branch at $295A and the jump at $295C. While $2740 is zero and the stick is pushed down, fire (bit 4 of $203B clear) starts the strike (state $2644 to 7, $2F67 to $0E, strike_frames $2E30, sound effect 0 through $B0EE) and no fire starts the crouch (state 6, $273F to 1, crouch_frames $2743, $2B68 to 6). Otherwise, when $2741 is zero and fire is pressed, it starts the punch (state 5, $2768 to 9, punch_frames $2D91, $2B68 to 0, sound effect 0). A non-zero $2740 or $2741 is counted down first. With the stick centred (low four bits $0F) it shows the standing frame ($29F5).","t":"code","b":[172,64,39],"m":"ldy","oa":10048,"o":"crouch_delay","x":[10586,10588,10594,10604]},{"a":10620,"t":"code","b":[208,57],"m":"bne","oa":10679,"o":"b_29B7"},{"a":10622,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":10625,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":10627,"t":"code","b":[208,54],"m":"bne","oa":10683,"o":"b_29BB"},{"a":10629,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":10632,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":10634,"t":"code","b":[208,24],"m":"bne","oa":10660,"o":"b_29A4"},{"a":10636,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":10638,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10641,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10643,"t":"code","b":[141,103,43],"m":"sta","oa":11111,"o":"jump_step"},{"a":10646,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":10648,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":10651,"t":"code","b":[32,48,46],"m":"jsr","oa":11824,"o":"strike_frames"},{"a":10654,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":10656,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":10659,"t":"code","b":[96],"m":"rts"},{"a":10660,"l":"b_29A4","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[10634]},{"a":10662,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10665,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10667,"t":"code","b":[141,63,39],"m":"sta","oa":10047,"o":"crouching"},{"a":10670,"t":"code","b":[32,67,39],"m":"jsr","oa":10051,"o":"crouch_frames"},{"a":10673,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":10675,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":10678,"t":"code","b":[96],"m":"rts"},{"a":10679,"l":"b_29B7","t":"code","b":[136],"m":"dey","x":[10620]},{"a":10680,"t":"code","b":[140,64,39],"m":"sty","oa":10048,"o":"crouch_delay"},{"a":10683,"l":"b_29BB","t":"code","b":[172,65,39],"m":"ldy","oa":10049,"o":"punch_delay","x":[10627]},{"a":10686,"t":"code","b":[208,31],"m":"bne","oa":10719,"o":"b_29DF"},{"a":10688,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":10691,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":10693,"t":"code","b":[208,28],"m":"bne","oa":10723,"o":"b_29E3"},{"a":10695,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":10697,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10700,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":10702,"t":"code","b":[141,104,39],"m":"sta","oa":10088,"o":"punch_active"},{"a":10705,"t":"code","b":[32,145,45],"m":"jsr","oa":11665,"o":"punch_frames"},{"a":10708,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10710,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":10713,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":10715,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":10718,"t":"code","b":[96],"m":"rts"},{"a":10719,"l":"b_29DF","t":"code","b":[136],"m":"dey","x":[10686]},{"a":10720,"t":"code","b":[140,65,39],"m":"sty","oa":10049,"o":"punch_delay"},{"a":10723,"l":"b_29E3","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[10693]},{"a":10726,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":10728,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":10730,"t":"code","b":[208,3],"m":"bne","oa":10735,"o":"r_29EF"},{"a":10732,"t":"code","b":[32,245,41],"m":"jsr","oa":10741,"o":"stand_frame"},{"a":10735,"l":"r_29EF","t":"code","b":[96],"m":"rts","x":[10730]},{"a":10736,"l":"feet_tile","c":"The screen code under Darkman, stored by player_control ($276B) at $2867 and $287D while it tests whether a step is blocked. No code reads it. The two zero bytes after it, to $29F2, are not used.","t":"byte","b":[15,0,0],"x":[10343,10365]},{"a":10739,"l":"stun_timer","c":"Countdown set to 3 by player_hurt ($43E4); enemy_punch ($3BEC) stores 4 here just before. irq_panel counts it down and reads the joystick only while it is zero.","t":"byte","b":[2],"x":[7545,7551,7869,10150,10167,10244,10261,10423,12174,15102,15154,15240,15276,15290,15326,15402,15495,17382]},{"a":10740,"l":"hit_grace","c":"Counts down by 1 on every frame in irq_panel ($1D43). The leap code (enemy_leap, $3A15) sets it to $0A each time it hurts Darkman and does not hurt him again while it is not zero (tests at $3B03, $3B8D and $3BBF).","t":"byte","b":[0],"x":[7536,7542,15107,15159,15245,15281,15295,15331]},{"a":10741,"l":"stand_frame","c":"Puts the standing frame in Darkman's frame $2FC3: $9A when he faces right ($273D zero) and $A0 when he faces left. Called by play_setup at $1AE2, by start_attack at $29EC and by the code at $2AF7.","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[6882,10732,10999]},{"a":10744,"t":"code","b":[208,8],"m":"bne","oa":10754,"o":"b_2A02"},{"a":10746,"t":"code","b":[169,154],"m":"lda","o":"#$9A"},{"a":10748,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":10751,"t":"code","b":[76,7,42],"m":"jmp","oa":10759,"o":"r_2A07"},{"a":10754,"l":"b_2A02","t":"code","b":[169,160],"m":"lda","o":"#$A0","x":[10744]},{"a":10756,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":10759,"l":"r_2A07","t":"code","b":[96],"m":"rts","x":[10751]},{"a":10760,"l":"hit_flag_a","c":"Cleared by the player code at $2789 on every pass and set to 1 by enemy_hit_check ($421F) when a blow lands; no traced code reads it.","t":"byte","b":[0],"x":[10121,10764,17084,17192]},{"a":10761,"l":"hit_flag_b","c":"Cleared by the player code at $278C on every pass and set to 1 by enemy_hit_check ($421F) when a blow lands; no traced code reads it.","t":"byte","b":[0],"x":[10124,17087,17195]},{"a":10762,"l":"player_fall","c":"State 2 of state_table ($2645): Darkman falling. Clears hit_flag_a, moves him 2 left or right with the stick (checking blocked_left and blocked_right and the same limits as player_control, undoing the step in a solid tile), adds 2 to his Y (plus the carry left by the comparisons) and then sets the state back to 1 and shows the standing frame through stand_frame ($29F5), so player_control decides again each frame whether he is still in the air.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10764,"t":"code","b":[141,8,42],"m":"sta","oa":10760,"o":"hit_flag_a"},{"a":10767,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":10770,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":10772,"t":"code","b":[208,51],"m":"bne","oa":10825,"o":"$2A49"},{"a":10774,"t":"code","b":[32,205,23],"m":"jsr","oa":6093,"o":"blocked_left"},{"a":10777,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":10779,"t":"code","b":[240,44],"m":"beq","oa":10825,"o":"$2A49"},{"a":10781,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10783,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10786,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":10789,"t":"code","b":[56],"m":"sec"},{"a":10790,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":10792,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10795,"t":"code","b":[168],"m":"tay"},{"a":10796,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":10799,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":10801,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10804,"t":"code","b":[208,87],"m":"bne","oa":10893,"o":"$2A8D"},{"a":10806,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":10808,"t":"code","b":[176,83],"m":"bcs","oa":10893,"o":"$2A8D"},{"a":10810,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":10813,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10816,"t":"code","b":[173,90,38],"m":"lda","oa":9818,"o":"prev_x_edge"},{"a":10819,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10822,"t":"code","b":[76,141,42],"m":"jmp","oa":10893,"o":"$2A8D"},{"a":10825,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[10772,10779]},{"a":10828,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":10830,"t":"code","b":[208,61],"m":"bne","oa":10893,"o":"$2A8D"},{"a":10832,"t":"code","b":[32,42,24],"m":"jsr","oa":6186,"o":"blocked_right"},{"a":10835,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":10837,"t":"code","b":[240,54],"m":"beq","oa":10893,"o":"$2A8D"},{"a":10839,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10841,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":10844,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":10847,"t":"code","b":[24],"m":"clc"},{"a":10848,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":10850,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10853,"t":"code","b":[168],"m":"tay"},{"a":10854,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":10857,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":10859,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10862,"t":"code","b":[205,93,38],"m":"cmp","oa":9821,"o":"x_limit_hi"},{"a":10865,"t":"code","b":[144,26],"m":"bcc","oa":10893,"o":"$2A8D"},{"a":10867,"t":"code","b":[240,2],"m":"beq","oa":10871,"o":"$2A77"},{"a":10869,"t":"code","b":[176,5],"m":"bcs","oa":10876,"o":"$2A7C"},{"a":10871,"t":"code","b":[204,92,38],"m":"cpy","oa":9820,"o":"x_limit_lo","x":[10867]},{"a":10874,"t":"code","b":[144,17],"m":"bcc","oa":10893,"o":"$2A8D"},{"a":10876,"t":"code","b":[173,90,38],"m":"lda","oa":9818,"o":"prev_x_edge","x":[10869]},{"a":10879,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10882,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":10885,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10888,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":10890,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":10893,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player","x":[10804,10808,10822,10830,10837,10865,10874]},{"a":10896,"t":"code","b":[152],"m":"tya"},{"a":10897,"t":"code","b":[24],"m":"clc"},{"a":10898,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":10900,"t":"code","b":[168],"m":"tay"},{"a":10901,"t":"code","b":[136],"m":"dey"},{"a":10902,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10904,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10906,"t":"code","b":[144,12],"m":"bcc","oa":10920,"o":"$2AA8"},{"a":10908,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10910,"t":"code","b":[144,27],"m":"bcc","oa":10939,"o":"$2ABB"},{"a":10912,"t":"code","b":[201,42],"m":"cmp","o":"#$2A"},{"a":10914,"t":"code","b":[144,4],"m":"bcc","oa":10920,"o":"$2AA8"},{"a":10916,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":10918,"t":"code","b":[144,19],"m":"bcc","oa":10939,"o":"$2ABB"},{"a":10920,"t":"code","b":[136],"m":"dey","x":[10906,10914]},{"a":10921,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10923,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10925,"t":"code","b":[144,29],"m":"bcc","oa":10956,"o":"$2ACC"},{"a":10927,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10929,"t":"code","b":[144,8],"m":"bcc","oa":10939,"o":"$2ABB"},{"a":10931,"t":"code","b":[201,42],"m":"cmp","o":"#$2A"},{"a":10933,"t":"code","b":[144,21],"m":"bcc","oa":10956,"o":"$2ACC"},{"a":10935,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":10937,"t":"code","b":[176,17],"m":"bcs","oa":10956,"o":"$2ACC"},{"a":10939,"t":"code","b":[173,85,38],"m":"lda","oa":9813,"o":"prev_x_wall","x":[10910,10918,10929]},{"a":10942,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":10945,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":10948,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":10951,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10953,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":10956,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y","x":[10925,10933,10937]},{"a":10959,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":10961,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":10964,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player"},{"a":10967,"t":"code","b":[152],"m":"tya"},{"a":10968,"t":"code","b":[24],"m":"clc"},{"a":10969,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":10971,"t":"code","b":[168],"m":"tay"},{"a":10972,"t":"code","b":[136],"m":"dey"},{"a":10973,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10975,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10977,"t":"code","b":[144,4],"m":"bcc","oa":10983,"o":"$2AE7"},{"a":10979,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10981,"t":"code","b":[144,11],"m":"bcc","oa":10994,"o":"$2AF2"},{"a":10983,"t":"code","b":[136],"m":"dey","x":[10977]},{"a":10984,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":10986,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":10988,"t":"code","b":[144,4],"m":"bcc","oa":10994,"o":"$2AF2"},{"a":10990,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":10992,"t":"code","b":[144,0],"m":"bcc","oa":10994,"o":"$2AF2"},{"a":10994,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[10981,10988,10992,11008]},{"a":10996,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":10999,"t":"code","b":[32,245,41],"m":"jsr","oa":10741,"o":"stand_frame"},{"a":11002,"t":"code","b":[96],"m":"rts"},{"a":11003,"l":"fall_check_unused","c":"When Darkman's Y ($2658) is below $71 it shows the falling frame (fall_frame, $2CC3) and returns, otherwise it goes back to the state change at $2AF2. Nothing jumps or calls into it; it follows the RTS of player_fall.","t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":11006,"t":"code","b":[201,113],"m":"cmp","o":"#$71"},{"a":11008,"t":"code","b":[176,240],"m":"bcs","oa":10994,"o":"$2AF2"},{"a":11010,"t":"code","b":[32,195,44],"m":"jsr","oa":11459,"o":"fall_frame"},{"a":11013,"t":"code","b":[96],"m":"rts"},{"a":11014,"l":"stand_frame_alt_unused","c":"Puts $7A (facing right) or $7B (facing left) in Darkman's frame $2FC3. Nothing calls it; stand_frame ($29F5) uses $9A and $A0 instead.","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":11017,"t":"code","b":[208,8],"m":"bne","oa":11027,"o":"$2B13"},{"a":11019,"t":"code","b":[169,122],"m":"lda","o":"#$7A"},{"a":11021,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11024,"t":"code","b":[76,24,43],"m":"jmp","oa":11032,"o":"$2B18"},{"a":11027,"t":"code","b":[169,123],"m":"lda","o":"#$7B","x":[11017]},{"a":11029,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11032,"t":"code","b":[96],"m":"rts","x":[11024]},{"a":11033,"l":"jump_arc","c":"The height changes of a jump, 39 pairs of bytes (78 bytes). player_jump ($2B69) adds the first byte of each pair, as a signed step, to Darkman's Y; the second byte ($FF or 0, its sign) is never read. The steps go from -4 to 4 and add up to 0, so he lands at the height he left.","t":"byte","b":[252,255,252,255,253,255,253,255],"x":[11120]},{"a":11041,"t":"byte","b":[253,255,254,255,253,255,254,255]},{"a":11049,"t":"byte","b":[254,255,254,255,254,255,255,255]},{"a":11057,"t":"byte","b":[254,255,255,255,255,255,255,255]},{"a":11065,"t":"byte","b":[255,255,0,0,255,255,0,0]},{"a":11073,"t":"byte","b":[1,0,0,0,1,0,1,0]},{"a":11081,"t":"byte","b":[1,0,1,0,2,0,1,0]},{"a":11089,"t":"byte","b":[2,0,2,0,2,0,2,0]},{"a":11097,"t":"byte","b":[3,0,2,0,3,0,3,0]},{"a":11105,"t":"byte","b":[3,0,4,0,4,0]},{"a":11111,"l":"jump_step","c":"Position in the table of jump heights at $2B19, two bytes a step, used by the jump state at $2B69; start_jump ($293F) and start_attack ($2979) set it to 0.","t":"byte","b":[0],"x":[10574,10643,11113,11156,11887,11929,12150,21443]},{"a":11112,"l":"draw_state","c":"When it is not zero player_draw ($2FC7) draws that state instead of $2644 and clears it. start_jump, start_attack and the fall code set it.","t":"byte","b":[0],"x":[10506,10555,10569,10613,10675,10710,11134,11205,12231,12238]},{"a":11113,"l":"player_jump","c":"State 3 of state_table ($2645): Darkman jumping. Adds the entry of jump_arc ($2B19) at step $2B67 to his Y and moves the step on by 2; after step $4E it returns to state 1 with the falling frame. From step $29 on it tests the three cells under his feet and ends the jump on a solid tile (code 2 to $0D). Then it moves him 2 left or right with the stick, undoes the step in a solid tile and counts down the strike counter $2F67 with strike_frames ($2E30).","t":"code","b":[172,103,43],"m":"ldy","oa":11111,"o":"jump_step"},{"a":11116,"t":"code","b":[24],"m":"clc"},{"a":11117,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":11120,"t":"code","b":[121,25,43],"m":"adc","oa":11033,"o":"jump_arc,y"},{"a":11123,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":11126,"t":"code","b":[200],"m":"iny"},{"a":11127,"t":"code","b":[200],"m":"iny"},{"a":11128,"t":"code","b":[192,78],"m":"cpy","o":"#$4E"},{"a":11130,"t":"code","b":[144,24],"m":"bcc","oa":11156,"o":"$2B94"},{"a":11132,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":11134,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":11137,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11139,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":11142,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11144,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":11147,"t":"code","b":[141,64,39],"m":"sta","oa":10048,"o":"crouch_delay"},{"a":11150,"t":"code","b":[32,195,44],"m":"jsr","oa":11459,"o":"fall_frame"},{"a":11153,"t":"code","b":[76,216,43],"m":"jmp","oa":11224,"o":"$2BD8"},{"a":11156,"t":"code","b":[140,103,43],"m":"sty","oa":11111,"o":"jump_step","x":[11130]},{"a":11159,"t":"code","b":[192,41],"m":"cpy","o":"#$29"},{"a":11161,"t":"code","b":[144,61],"m":"bcc","oa":11224,"o":"$2BD8"},{"a":11163,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player"},{"a":11166,"t":"code","b":[152],"m":"tya"},{"a":11167,"t":"code","b":[24],"m":"clc"},{"a":11168,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":11170,"t":"code","b":[168],"m":"tay"},{"a":11171,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":11173,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":11175,"t":"code","b":[144,4],"m":"bcc","oa":11181,"o":"$2BAD"},{"a":11177,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":11179,"t":"code","b":[144,22],"m":"bcc","oa":11203,"o":"$2BC3"},{"a":11181,"t":"code","b":[136],"m":"dey","x":[11175]},{"a":11182,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":11184,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":11186,"t":"code","b":[144,4],"m":"bcc","oa":11192,"o":"$2BB8"},{"a":11188,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":11190,"t":"code","b":[144,11],"m":"bcc","oa":11203,"o":"$2BC3"},{"a":11192,"t":"code","b":[136],"m":"dey","x":[11186]},{"a":11193,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":11195,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":11197,"t":"code","b":[144,25],"m":"bcc","oa":11224,"o":"$2BD8"},{"a":11199,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":11201,"t":"code","b":[176,21],"m":"bcs","oa":11224,"o":"$2BD8"},{"a":11203,"t":"code","b":[169,3],"m":"lda","o":"#$03","x":[11179,11190]},{"a":11205,"t":"code","b":[141,104,43],"m":"sta","oa":11112,"o":"draw_state"},{"a":11208,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11210,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":11213,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11215,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":11218,"t":"code","b":[141,64,39],"m":"sta","oa":10048,"o":"crouch_delay"},{"a":11221,"t":"code","b":[32,195,44],"m":"jsr","oa":11459,"o":"fall_frame"},{"a":11224,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[11153,11161,11197,11201]},{"a":11227,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":11229,"t":"code","b":[208,51],"m":"bne","oa":11282,"o":"$2C12"},{"a":11231,"t":"code","b":[32,205,23],"m":"jsr","oa":6093,"o":"blocked_left"},{"a":11234,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":11236,"t":"code","b":[240,44],"m":"beq","oa":11282,"o":"$2C12"},{"a":11238,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11240,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":11243,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":11246,"t":"code","b":[56],"m":"sec"},{"a":11247,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":11249,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":11252,"t":"code","b":[168],"m":"tay"},{"a":11253,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":11256,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":11258,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":11261,"t":"code","b":[208,87],"m":"bne","oa":11350,"o":"$2C56"},{"a":11263,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":11265,"t":"code","b":[176,83],"m":"bcs","oa":11350,"o":"$2C56"},{"a":11267,"t":"code","b":[173,90,38],"m":"lda","oa":9818,"o":"prev_x_edge"},{"a":11270,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":11273,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":11276,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":11279,"t":"code","b":[76,86,44],"m":"jmp","oa":11350,"o":"$2C56"},{"a":11282,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[11229,11236]},{"a":11285,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":11287,"t":"code","b":[208,61],"m":"bne","oa":11350,"o":"$2C56"},{"a":11289,"t":"code","b":[32,42,24],"m":"jsr","oa":6186,"o":"blocked_right"},{"a":11292,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":11294,"t":"code","b":[240,54],"m":"beq","oa":11350,"o":"$2C56"},{"a":11296,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11298,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":11301,"t":"code","b":[24],"m":"clc"},{"a":11302,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":11305,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":11307,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":11310,"t":"code","b":[168],"m":"tay"},{"a":11311,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":11314,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":11316,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":11319,"t":"code","b":[205,93,38],"m":"cmp","oa":9821,"o":"x_limit_hi"},{"a":11322,"t":"code","b":[144,26],"m":"bcc","oa":11350,"o":"$2C56"},{"a":11324,"t":"code","b":[240,2],"m":"beq","oa":11328,"o":"$2C40"},{"a":11326,"t":"code","b":[176,5],"m":"bcs","oa":11333,"o":"$2C45"},{"a":11328,"t":"code","b":[204,92,38],"m":"cpy","oa":9820,"o":"x_limit_lo","x":[11324]},{"a":11331,"t":"code","b":[144,17],"m":"bcc","oa":11350,"o":"$2C56"},{"a":11333,"t":"code","b":[169,2],"m":"lda","o":"#$02","x":[11326]},{"a":11335,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":11338,"t":"code","b":[173,90,38],"m":"lda","oa":9818,"o":"prev_x_edge"},{"a":11341,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":11344,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":11347,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":11350,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player","x":[11261,11265,11279,11287,11294,11322,11331]},{"a":11353,"t":"code","b":[173,68,38],"m":"lda","oa":9796,"o":"player_state"},{"a":11356,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":11358,"t":"code","b":[240,5],"m":"beq","oa":11365,"o":"$2C65"},{"a":11360,"t":"code","b":[152],"m":"tya"},{"a":11361,"t":"code","b":[24],"m":"clc"},{"a":11362,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":11364,"t":"code","b":[168],"m":"tay"},{"a":11365,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y","x":[11358]},{"a":11367,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":11369,"t":"code","b":[144,12],"m":"bcc","oa":11383,"o":"$2C77"},{"a":11371,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":11373,"t":"code","b":[144,27],"m":"bcc","oa":11402,"o":"$2C8A"},{"a":11375,"t":"code","b":[201,42],"m":"cmp","o":"#$2A"},{"a":11377,"t":"code","b":[144,4],"m":"bcc","oa":11383,"o":"$2C77"},{"a":11379,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":11381,"t":"code","b":[144,19],"m":"bcc","oa":11402,"o":"$2C8A"},{"a":11383,"t":"code","b":[136],"m":"dey","x":[11369,11377]},{"a":11384,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":11386,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":11388,"t":"code","b":[144,29],"m":"bcc","oa":11419,"o":"$2C9B"},{"a":11390,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":11392,"t":"code","b":[144,8],"m":"bcc","oa":11402,"o":"$2C8A"},{"a":11394,"t":"code","b":[201,42],"m":"cmp","o":"#$2A"},{"a":11396,"t":"code","b":[144,21],"m":"bcc","oa":11419,"o":"$2C9B"},{"a":11398,"t":"code","b":[201,54],"m":"cmp","o":"#$36"},{"a":11400,"t":"code","b":[176,17],"m":"bcs","oa":11419,"o":"$2C9B"},{"a":11402,"t":"code","b":[173,85,38],"m":"lda","oa":9813,"o":"prev_x_wall","x":[11373,11381,11392]},{"a":11405,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":11408,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":11411,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":11414,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11416,"t":"code","b":[141,96,32],"m":"sta","oa":8288,"o":"scroll_speed"},{"a":11419,"t":"code","b":[172,103,47],"m":"ldy","oa":12135,"o":"strike_active","x":[11388,11396,11400]},{"a":11422,"t":"code","b":[240,19],"m":"beq","oa":11443,"o":"$2CB3"},{"a":11424,"t":"code","b":[136],"m":"dey"},{"a":11425,"t":"code","b":[140,103,47],"m":"sty","oa":12135,"o":"strike_active"},{"a":11428,"t":"code","b":[32,48,46],"m":"jsr","oa":11824,"o":"strike_frames"},{"a":11431,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":11433,"t":"code","b":[208,20],"m":"bne","oa":11455,"o":"$2CBF"},{"a":11435,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":11437,"t":"code","b":[141,102,47],"m":"sta","oa":12134,"o":"strike_delay"},{"a":11440,"t":"code","b":[76,191,44],"m":"jmp","oa":11455,"o":"$2CBF"},{"a":11443,"t":"code","b":[172,102,47],"m":"ldy","oa":12134,"o":"strike_delay","x":[11422]},{"a":11446,"t":"code","b":[240,7],"m":"beq","oa":11455,"o":"$2CBF"},{"a":11448,"t":"code","b":[136],"m":"dey"},{"a":11449,"t":"code","b":[140,102,47],"m":"sty","oa":12134,"o":"strike_delay"},{"a":11452,"t":"code","b":[76,191,44],"m":"jmp","oa":11455,"o":"$2CBF"},{"a":11455,"t":"code","b":[32,195,44],"m":"jsr","oa":11459,"o":"fall_frame","x":[11433,11440,11446,11452]},{"a":11458,"t":"code","b":[96],"m":"rts"},{"a":11459,"l":"fall_frame","c":"Puts the falling frame in Darkman's frame $2FC3: $F8 when he faces right ($273D zero) and $F9 when he faces left. Called by the player code at $290D, $2951, $2B02, $2B8E, $2BD5 and $2CBF.","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[10509,10577,11010,11150,11221,11455]},{"a":11462,"t":"code","b":[208,8],"m":"bne","oa":11472,"o":"b_2CD0"},{"a":11464,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":11466,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11469,"t":"code","b":[76,213,44],"m":"jmp","oa":11477,"o":"r_2CD5"},{"a":11472,"l":"b_2CD0","t":"code","b":[169,249],"m":"lda","o":"#$F9","x":[11462]},{"a":11474,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11477,"l":"r_2CD5","t":"code","b":[96],"m":"rts","x":[11469]},{"a":11478,"l":"climb_frame_tail_unused","c":"The second half of a copy of climb_frame_a ($2DCF), without its first instruction: flips $26FA, steps $26D5 through 12 values and sets the frame $2FC3 from climb_frames_up ($2DB7). Nothing calls or jumps to it.","t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":11480,"t":"code","b":[141,250,38],"m":"sta","oa":9978,"o":"walk_toggle"},{"a":11483,"t":"code","b":[240,13],"m":"beq","oa":11498,"o":"$2CEA"},{"a":11485,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index"},{"a":11488,"t":"code","b":[232],"m":"inx"},{"a":11489,"t":"code","b":[224,12],"m":"cpx","o":"#$0C"},{"a":11491,"t":"code","b":[144,2],"m":"bcc","oa":11495,"o":"$2CE7"},{"a":11493,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":11495,"t":"code","b":[142,213,38],"m":"stx","oa":9941,"o":"walk_index","x":[11491]},{"a":11498,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index","x":[11483]},{"a":11501,"t":"code","b":[189,183,45],"m":"lda","oa":11703,"o":"climb_frames_up,x"},{"a":11504,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11507,"t":"code","b":[96],"m":"rts"},{"a":11508,"l":"word_table_unused","c":"Sixteen 16-bit values, 0, 0, 1, 1, 2, 2 and so on up to 7, 7. Nothing reads them.","t":"byte","b":[0,0,0,0,1,0,1,0]},{"a":11516,"t":"byte","b":[2,0,2,0,3,0,3,0]},{"a":11524,"t":"byte","b":[4,0,4,0,5,0,5,0]},{"a":11532,"t":"byte","b":[6,0,6,0,7,0,7,0]},{"a":11540,"l":"player_climb","c":"State 4 of state_table ($2645): Darkman on a ladder. Sets the jump delay $2742 to 10, moves him up 1 line with the stick up (climb_frame_a) or down 1 with the stick down (climb_frame_b), and keeps the state while the cell under him is a ladder tile (1 to 4). Otherwise it returns to state 1 with a standing frame, and, if he was climbing up, lifts him 2 lines. The only code that sets state 4 is unreached ($291B and $295F).","t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":11542,"t":"code","b":[141,66,39],"m":"sta","oa":10050,"o":"jump_delay"},{"a":11545,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":11548,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":11550,"t":"code","b":[208,20],"m":"bne","oa":11572,"o":"$2D34"},{"a":11552,"t":"code","b":[56],"m":"sec"},{"a":11553,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":11556,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":11558,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":11561,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11563,"t":"code","b":[141,182,45],"m":"sta","oa":11702,"o":"climb_direction"},{"a":11566,"t":"code","b":[32,207,45],"m":"jsr","oa":11727,"o":"climb_frame_a"},{"a":11569,"t":"code","b":[76,76,45],"m":"jmp","oa":11596,"o":"$2D4C"},{"a":11572,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[11550]},{"a":11575,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":11577,"t":"code","b":[208,17],"m":"bne","oa":11596,"o":"$2D4C"},{"a":11579,"t":"code","b":[24],"m":"clc"},{"a":11580,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":11583,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":11585,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":11588,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11590,"t":"code","b":[141,182,45],"m":"sta","oa":11702,"o":"climb_direction"},{"a":11593,"t":"code","b":[32,240,45],"m":"jsr","oa":11760,"o":"climb_frame_b"},{"a":11596,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player","x":[11569,11577]},{"a":11599,"t":"code","b":[152],"m":"tya"},{"a":11600,"t":"code","b":[24],"m":"clc"},{"a":11601,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":11603,"t":"code","b":[168],"m":"tay"},{"a":11604,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":11606,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":11608,"t":"code","b":[240,54],"m":"beq","oa":11664,"o":"$2D90"},{"a":11610,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":11612,"t":"code","b":[240,50],"m":"beq","oa":11664,"o":"$2D90"},{"a":11614,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":11616,"t":"code","b":[240,46],"m":"beq","oa":11664,"o":"$2D90"},{"a":11618,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":11620,"t":"code","b":[240,42],"m":"beq","oa":11664,"o":"$2D90"},{"a":11622,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11624,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":11627,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":11629,"t":"code","b":[141,64,39],"m":"sta","oa":10048,"o":"crouch_delay"},{"a":11632,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":11635,"t":"code","b":[208,8],"m":"bne","oa":11645,"o":"$2D7D"},{"a":11637,"t":"code","b":[169,154],"m":"lda","o":"#$9A"},{"a":11639,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11642,"t":"code","b":[76,130,45],"m":"jmp","oa":11650,"o":"$2D82"},{"a":11645,"t":"code","b":[169,160],"m":"lda","o":"#$A0","x":[11635]},{"a":11647,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11650,"t":"code","b":[173,182,45],"m":"lda","oa":11702,"o":"climb_direction","x":[11642]},{"a":11653,"t":"code","b":[240,9],"m":"beq","oa":11664,"o":"$2D90"},{"a":11655,"t":"code","b":[24],"m":"clc"},{"a":11656,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":11659,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":11661,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":11664,"t":"code","b":[96],"m":"rts","x":[11608,11612,11616,11620,11653]},{"a":11665,"l":"punch_frames","c":"Sets the three sprite pointers $2FC4, $2FC5 and $2FC6 for the punch: $90, $B4 and $BE when Darkman faces right ($273D zero) and $91, $B5 and $BF when he faces left. Called by start_attack at $29D1 and by the code at $2E2C.","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[10705,11820]},{"a":11668,"t":"code","b":[208,16],"m":"bne","oa":11686,"o":"b_2DA6"},{"a":11670,"t":"code","b":[169,144],"m":"lda","o":"#$90"},{"a":11672,"t":"code","b":[141,196,47],"m":"sta","oa":12228,"o":"attack_frames"},{"a":11675,"t":"code","b":[169,180],"m":"lda","o":"#$B4"},{"a":11677,"t":"code","b":[141,197,47],"m":"sta","oa":12229,"o":"$2FC5"},{"a":11680,"t":"code","b":[169,190],"m":"lda","o":"#$BE"},{"a":11682,"t":"code","b":[141,198,47],"m":"sta","oa":12230,"o":"$2FC6"},{"a":11685,"t":"code","b":[96],"m":"rts"},{"a":11686,"l":"b_2DA6","t":"code","b":[169,145],"m":"lda","o":"#$91","x":[11668]},{"a":11688,"t":"code","b":[141,196,47],"m":"sta","oa":12228,"o":"attack_frames"},{"a":11691,"t":"code","b":[169,181],"m":"lda","o":"#$B5"},{"a":11693,"t":"code","b":[141,197,47],"m":"sta","oa":12229,"o":"$2FC5"},{"a":11696,"t":"code","b":[169,191],"m":"lda","o":"#$BF"},{"a":11698,"t":"code","b":[141,198,47],"m":"sta","oa":12230,"o":"$2FC6"},{"a":11701,"t":"code","b":[96],"m":"rts"},{"a":11702,"l":"climb_direction","c":"1 while Darkman climbs up and 0 while he climbs down, set by player_climb ($2D14) at $2D2B and $2D46 and read at $2D82 when he leaves the ladder.","t":"byte","b":[0],"x":[10552,11563,11590,11650]},{"a":11703,"l":"climb_frames_up","c":"The 12 sprite pointers of the climb up: $94, $95, $96, $95 three times each. climb_frame_a ($2DCF) takes one by the index $26D5.","t":"byte","b":[148,148,148,149,149,149,150,150],"x":[11501,11753]},{"a":11711,"t":"byte","b":[150,149,149,149]},{"a":11715,"l":"climb_frames_down","c":"The 12 sprite pointers of the climb down: $96, $95, $94, $95 three times each. climb_frame_b ($2DF0) takes one by the index $26D5.","t":"byte","b":[150,150,150,149,149,149,148,148],"x":[11786]},{"a":11723,"t":"byte","b":[148,149,149,149]},{"a":11727,"l":"climb_frame_a","c":"Flips $26FA and, on every second call, moves the index $26D5 on through 12 values (back to 0 after 11); then puts the entry of climb_frames_up ($2DB7) at that index in Darkman's frame $2FC3. Called by player_climb at $2D2E.","t":"code","b":[173,250,38],"m":"lda","oa":9978,"o":"walk_toggle","x":[11566]},{"a":11730,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":11732,"t":"code","b":[141,250,38],"m":"sta","oa":9978,"o":"walk_toggle"},{"a":11735,"t":"code","b":[240,13],"m":"beq","oa":11750,"o":"$2DE6"},{"a":11737,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index"},{"a":11740,"t":"code","b":[232],"m":"inx"},{"a":11741,"t":"code","b":[224,12],"m":"cpx","o":"#$0C"},{"a":11743,"t":"code","b":[144,2],"m":"bcc","oa":11747,"o":"$2DE3"},{"a":11745,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":11747,"t":"code","b":[142,213,38],"m":"stx","oa":9941,"o":"walk_index","x":[11743]},{"a":11750,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index","x":[11735]},{"a":11753,"t":"code","b":[189,183,45],"m":"lda","oa":11703,"o":"climb_frames_up,x"},{"a":11756,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11759,"t":"code","b":[96],"m":"rts"},{"a":11760,"l":"climb_frame_b","c":"The same as climb_frame_a ($2DCF) for the climb down: flips $26FA, steps $26D5 through 12 values and puts the entry of climb_frames_down ($2DC3) in $2FC3. Called by player_climb at $2D49.","t":"code","b":[173,250,38],"m":"lda","oa":9978,"o":"walk_toggle","x":[11593]},{"a":11763,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":11765,"t":"code","b":[141,250,38],"m":"sta","oa":9978,"o":"walk_toggle"},{"a":11768,"t":"code","b":[240,13],"m":"beq","oa":11783,"o":"$2E07"},{"a":11770,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index"},{"a":11773,"t":"code","b":[232],"m":"inx"},{"a":11774,"t":"code","b":[224,12],"m":"cpx","o":"#$0C"},{"a":11776,"t":"code","b":[144,2],"m":"bcc","oa":11780,"o":"$2E04"},{"a":11778,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":11780,"t":"code","b":[142,213,38],"m":"stx","oa":9941,"o":"walk_index","x":[11776]},{"a":11783,"t":"code","b":[174,213,38],"m":"ldx","oa":9941,"o":"walk_index","x":[11768]},{"a":11786,"t":"code","b":[189,195,45],"m":"lda","oa":11715,"o":"climb_frames_down,x"},{"a":11789,"t":"code","b":[141,195,47],"m":"sta","oa":12227,"o":"player_frame"},{"a":11792,"t":"code","b":[96],"m":"rts"},{"a":11793,"l":"player_punch","c":"State 5 of state_table ($2645): Darkman punching. While the punch counter $2768 is not zero it counts it down and sets the punch sprites with punch_frames ($2D91). When it has run out the state holds until fire ($203B bit 4) is released, then returns to state 1 with the punch delay $2741 set to 6.","t":"code","b":[172,104,39],"m":"ldy","oa":10088,"o":"punch_active"},{"a":11796,"t":"code","b":[208,18],"m":"bne","oa":11816,"o":"$2E28"},{"a":11798,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":11801,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":11803,"t":"code","b":[240,10],"m":"beq","oa":11815,"o":"$2E27"},{"a":11805,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11807,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":11810,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":11812,"t":"code","b":[141,65,39],"m":"sta","oa":10049,"o":"punch_delay"},{"a":11815,"t":"code","b":[96],"m":"rts","x":[11803]},{"a":11816,"t":"code","b":[136],"m":"dey","x":[11796]},{"a":11817,"t":"code","b":[140,104,39],"m":"sty","oa":10088,"o":"punch_active"},{"a":11820,"t":"code","b":[32,145,45],"m":"jsr","oa":11665,"o":"punch_frames"},{"a":11823,"t":"code","b":[96],"m":"rts"},{"a":11824,"l":"strike_frames","c":"Sets the three sprite pointers $2FC4, $2FC5 and $2FC6 for the strike: $8C, $A3 and $B0 when Darkman faces right ($273D zero) and $8D, $B1 and $BB when he faces left. Called by start_attack at $299B and by the code at $2CA4, $2F4A and $2F7E.","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[10651,11428,12106,12158]},{"a":11827,"t":"code","b":[208,16],"m":"bne","oa":11845,"o":"b_2E45"},{"a":11829,"t":"code","b":[169,140],"m":"lda","o":"#$8C"},{"a":11831,"t":"code","b":[141,196,47],"m":"sta","oa":12228,"o":"attack_frames"},{"a":11834,"t":"code","b":[169,163],"m":"lda","o":"#$A3"},{"a":11836,"t":"code","b":[141,197,47],"m":"sta","oa":12229,"o":"$2FC5"},{"a":11839,"t":"code","b":[169,176],"m":"lda","o":"#$B0"},{"a":11841,"t":"code","b":[141,198,47],"m":"sta","oa":12230,"o":"$2FC6"},{"a":11844,"t":"code","b":[96],"m":"rts"},{"a":11845,"l":"b_2E45","t":"code","b":[169,141],"m":"lda","o":"#$8D","x":[11827]},{"a":11847,"t":"code","b":[141,196,47],"m":"sta","oa":12228,"o":"attack_frames"},{"a":11850,"t":"code","b":[169,177],"m":"lda","o":"#$B1"},{"a":11852,"t":"code","b":[141,197,47],"m":"sta","oa":12229,"o":"$2FC5"},{"a":11855,"t":"code","b":[169,187],"m":"lda","o":"#$BB"},{"a":11857,"t":"code","b":[141,198,47],"m":"sta","oa":12230,"o":"$2FC6"},{"a":11860,"t":"code","b":[96],"m":"rts"},{"a":11861,"l":"strike_arc","c":"The height changes of a strike, 13 pairs of bytes: the first byte of each pair is a signed step (-6, -5 up to 6, rising and then falling) that player_strike ($2E6F) adds to Darkman's Y; the second byte is never read. The steps add up to 0.","t":"byte","b":[250,255,251,255,252,255,253,255],"x":[11894]},{"a":11869,"t":"byte","b":[254,255,255,255,0,0,1,0]},{"a":11877,"t":"byte","b":[2,0,3,0,4,0,5,0]},{"a":11885,"t":"byte","b":[6,0]},{"a":11887,"l":"player_strike","c":"State 7 of state_table ($2645): Darkman's flying strike. Adds the entry of strike_arc ($2E55) at step $2B67 to his Y and moves the step on by 2; at step $1A, or from step $0F when the code at the probe offset plus $40 is from 1 to $13, the state returns to 1, with $2740 set to 10 and the crouch flag cleared. He moves 2 pixels a frame the way he faces, undoing the step in a wall, shows the standing frame $9B or $A1 and counts down the strike counter $2F67 with strike_frames ($2E30).","t":"code","b":[172,103,43],"m":"ldy","oa":11111,"o":"jump_step"},{"a":11890,"t":"code","b":[24],"m":"clc"},{"a":11891,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":11894,"t":"code","b":[121,85,46],"m":"adc","oa":11861,"o":"strike_arc,y"},{"a":11897,"t":"code","b":[141,88,38],"m":"sta","oa":9816,"o":"player_y"},{"a":11900,"t":"code","b":[200],"m":"iny"},{"a":11901,"t":"code","b":[200],"m":"iny"},{"a":11902,"t":"code","b":[192,26],"m":"cpy","o":"#$1A"},{"a":11904,"t":"code","b":[144,23],"m":"bcc","oa":11929,"o":"$2E99"},{"a":11906,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11908,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":11911,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11913,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":11916,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":11918,"t":"code","b":[141,64,39],"m":"sta","oa":10048,"o":"crouch_delay"},{"a":11921,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11923,"t":"code","b":[141,63,39],"m":"sta","oa":10047,"o":"crouching"},{"a":11926,"t":"code","b":[76,196,46],"m":"jmp","oa":11972,"o":"$2EC4"},{"a":11929,"t":"code","b":[140,103,43],"m":"sty","oa":11111,"o":"jump_step","x":[11904]},{"a":11932,"t":"code","b":[192,15],"m":"cpy","o":"#$0F"},{"a":11934,"t":"code","b":[144,36],"m":"bcc","oa":11972,"o":"$2EC4"},{"a":11936,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player"},{"a":11939,"t":"code","b":[152],"m":"tya"},{"a":11940,"t":"code","b":[24],"m":"clc"},{"a":11941,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":11943,"t":"code","b":[168],"m":"tay"},{"a":11944,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":11946,"t":"code","b":[240,24],"m":"beq","oa":11972,"o":"$2EC4"},{"a":11948,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":11950,"t":"code","b":[176,20],"m":"bcs","oa":11972,"o":"$2EC4"},{"a":11952,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":11954,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":11957,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11959,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":11962,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":11964,"t":"code","b":[141,64,39],"m":"sta","oa":10048,"o":"crouch_delay"},{"a":11967,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11969,"t":"code","b":[141,63,39],"m":"sta","oa":10047,"o":"crouching"},{"a":11972,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[11926,11934,11946,11950]},{"a":11975,"t":"code","b":[240,34],"m":"beq","oa":12011,"o":"$2EEB"},{"a":11977,"t":"code","b":[32,205,23],"m":"jsr","oa":6093,"o":"blocked_left"},{"a":11980,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":11982,"t":"code","b":[240,27],"m":"beq","oa":12011,"o":"$2EEB"},{"a":11984,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":11987,"t":"code","b":[56],"m":"sec"},{"a":11988,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":11990,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":11993,"t":"code","b":[168],"m":"tay"},{"a":11994,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":11997,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":11999,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":12002,"t":"code","b":[208,46],"m":"bne","oa":12050,"o":"$2F12"},{"a":12004,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":12006,"t":"code","b":[144,77],"m":"bcc","oa":12085,"o":"$2F35"},{"a":12008,"t":"code","b":[76,18,47],"m":"jmp","oa":12050,"o":"$2F12"},{"a":12011,"t":"code","b":[32,42,24],"m":"jsr","oa":6186,"o":"blocked_right","x":[11975,11982]},{"a":12014,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":12016,"t":"code","b":[240,32],"m":"beq","oa":12050,"o":"$2F12"},{"a":12018,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":12021,"t":"code","b":[24],"m":"clc"},{"a":12022,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":12024,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":12027,"t":"code","b":[168],"m":"tay"},{"a":12028,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":12031,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12033,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":12036,"t":"code","b":[205,93,38],"m":"cmp","oa":9821,"o":"x_limit_hi"},{"a":12039,"t":"code","b":[144,9],"m":"bcc","oa":12050,"o":"$2F12"},{"a":12041,"t":"code","b":[240,2],"m":"beq","oa":12045,"o":"$2F0D"},{"a":12043,"t":"code","b":[176,40],"m":"bcs","oa":12085,"o":"$2F35"},{"a":12045,"t":"code","b":[204,92,38],"m":"cpy","oa":9820,"o":"x_limit_lo","x":[12041]},{"a":12048,"t":"code","b":[176,35],"m":"bcs","oa":12085,"o":"$2F35"},{"a":12050,"t":"code","b":[162,155],"m":"ldx","o":"#$9B","x":[12002,12008,12016,12039]},{"a":12052,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":12055,"t":"code","b":[240,2],"m":"beq","oa":12059,"o":"$2F1B"},{"a":12057,"t":"code","b":[162,161],"m":"ldx","o":"#$A1"},{"a":12059,"t":"code","b":[142,195,47],"m":"stx","oa":12227,"o":"player_frame","x":[12055]},{"a":12062,"t":"code","b":[32,224,52],"m":"jsr","oa":13536,"o":"probe_player"},{"a":12065,"t":"code","b":[173,68,38],"m":"lda","oa":9796,"o":"player_state"},{"a":12068,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":12070,"t":"code","b":[240,5],"m":"beq","oa":12077,"o":"$2F2D"},{"a":12072,"t":"code","b":[152],"m":"tya"},{"a":12073,"t":"code","b":[24],"m":"clc"},{"a":12074,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":12076,"t":"code","b":[168],"m":"tay"},{"a":12077,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y","x":[12070]},{"a":12079,"t":"code","b":[240,16],"m":"beq","oa":12097,"o":"$2F41"},{"a":12081,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":12083,"t":"code","b":[176,12],"m":"bcs","oa":12097,"o":"$2F41"},{"a":12085,"t":"code","b":[173,85,38],"m":"lda","oa":9813,"o":"prev_x_wall","x":[12006,12043,12048]},{"a":12088,"t":"code","b":[141,87,38],"m":"sta","oa":9815,"o":"player_x"},{"a":12091,"t":"code","b":[173,91,38],"m":"lda","oa":9819,"o":"prev_x_hi"},{"a":12094,"t":"code","b":[141,89,38],"m":"sta","oa":9817,"o":"player_x_hi"},{"a":12097,"t":"code","b":[172,103,47],"m":"ldy","oa":12135,"o":"strike_active","x":[12079,12083]},{"a":12100,"t":"code","b":[240,19],"m":"beq","oa":12121,"o":"$2F59"},{"a":12102,"t":"code","b":[136],"m":"dey"},{"a":12103,"t":"code","b":[140,103,47],"m":"sty","oa":12135,"o":"strike_active"},{"a":12106,"t":"code","b":[32,48,46],"m":"jsr","oa":11824,"o":"strike_frames"},{"a":12109,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":12111,"t":"code","b":[208,20],"m":"bne","oa":12133,"o":"$2F65"},{"a":12113,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":12115,"t":"code","b":[141,102,47],"m":"sta","oa":12134,"o":"strike_delay"},{"a":12118,"t":"code","b":[76,101,47],"m":"jmp","oa":12133,"o":"$2F65"},{"a":12121,"t":"code","b":[172,102,47],"m":"ldy","oa":12134,"o":"strike_delay","x":[12100]},{"a":12124,"t":"code","b":[240,7],"m":"beq","oa":12133,"o":"$2F65"},{"a":12126,"t":"code","b":[136],"m":"dey"},{"a":12127,"t":"code","b":[140,102,47],"m":"sty","oa":12134,"o":"strike_delay"},{"a":12130,"t":"code","b":[76,101,47],"m":"jmp","oa":12133,"o":"$2F65"},{"a":12133,"t":"code","b":[96],"m":"rts","x":[12111,12118,12124,12130]},{"a":12134,"l":"strike_delay","c":"Set to $0A by player_jump ($2B69) and player_strike ($2E6F) when the strike counter $2F67 has run out, and counted down to 0 by them on the following frames. No other code reads it.","t":"byte","b":[0],"x":[11437,11443,11449,12115,12121,12127]},{"a":12135,"l":"strike_active","c":"Set to $0E when start_attack ($2979) starts a strike and cleared by the player code at $278F on every pass. shift_attack_sprite ($1F40), player_draw ($2FC7) and enemy_hit_check ($421F) read it.","t":"byte","b":[0],"x":[6828,8050,10127,10648,11144,11215,11419,11425,11913,11959,12097,12103,12155,12353,16934]},{"a":12136,"l":"player_crouch","c":"State 6 of state_table ($2645): Darkman crouching. With fire pressed ($203B bit 4 clear) it starts the strike: state 7, step $2B67 to 0, strike counter $2F67 to $0E, strike_frames ($2E30) and sound effect 0 through $B0EE. While the stick is held down it turns him with left or right (unless he is stunned) and shows the crouch frames (crouch_frames, $2743); when the stick comes up it returns to state 1 with $2740 set to 10 and the crouch flag cleared.","t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":12139,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":12141,"t":"code","b":[208,24],"m":"bne","oa":12167,"o":"$2F87"},{"a":12143,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":12145,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":12148,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":12150,"t":"code","b":[141,103,43],"m":"sta","oa":11111,"o":"jump_step"},{"a":12153,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":12155,"t":"code","b":[141,103,47],"m":"sta","oa":12135,"o":"strike_active"},{"a":12158,"t":"code","b":[32,48,46],"m":"jsr","oa":11824,"o":"strike_frames"},{"a":12161,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":12163,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":12166,"t":"code","b":[96],"m":"rts"},{"a":12167,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[12141]},{"a":12170,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":12172,"t":"code","b":[208,36],"m":"bne","oa":12210,"o":"$2FB2"},{"a":12174,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":12177,"t":"code","b":[208,27],"m":"bne","oa":12206,"o":"$2FAE"},{"a":12179,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":12182,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":12184,"t":"code","b":[208,8],"m":"bne","oa":12194,"o":"$2FA2"},{"a":12186,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":12188,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":12191,"t":"code","b":[76,174,47],"m":"jmp","oa":12206,"o":"$2FAE"},{"a":12194,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[12184]},{"a":12197,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":12199,"t":"code","b":[208,5],"m":"bne","oa":12206,"o":"$2FAE"},{"a":12201,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":12203,"t":"code","b":[141,61,39],"m":"sta","oa":10045,"o":"facing"},{"a":12206,"t":"code","b":[32,67,39],"m":"jsr","oa":10051,"o":"crouch_frames","x":[12177,12191,12199]},{"a":12209,"t":"code","b":[96],"m":"rts"},{"a":12210,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[12172]},{"a":12212,"t":"code","b":[141,68,38],"m":"sta","oa":9796,"o":"player_state"},{"a":12215,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":12217,"t":"code","b":[141,64,39],"m":"sta","oa":10048,"o":"crouch_delay"},{"a":12220,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":12222,"t":"code","b":[141,63,39],"m":"sta","oa":10047,"o":"crouching"},{"a":12225,"t":"code","b":[96],"m":"rts"},{"a":12226,"l":"dead_flag","c":"Always 0. Only the unreached code at $295F reads it.","t":"byte","b":[0],"x":[10591]},{"a":12227,"l":"player_frame","c":"The sprite pointer for Darkman's body, set by walk_anim_left, walk_anim_right, stand_frame and fall_frame and written to the sprite tables by player_draw ($2FC7).","t":"byte","b":[154],"x":[10008,10041,10147,10241,10748,10756,11021,11029,11466,11474,11504,11639,11647,11756,11789,12059,12259,12287,12358]},{"a":12228,"l":"attack_frames","c":"The three sprite pointers of the punch, strike and crouch: for sprite 2, sprite 0 and sprite 1. crouch_frames, punch_frames and strike_frames set them and player_draw ($2FC7) writes them to the sprite tables.","t":"byte","b":[144,180,190],"x":[10058,10074,11672,11688,11831,11847,12320]},{"a":12231,"l":"player_draw","c":"Writes Darkman's three sprite pointers into both screens' tables ($CFF8-$CFFA and $CBF8-$CBFA). The state drawn is $2B68 (which it then clears) when that is not zero, otherwise $2644. For states 2 and 3 sprite 2 gets $2FC3 and sprites 0 and 1 get that plus 2 and plus 4; for state 4 sprite 2 gets $2FC3, sprite 0 that plus $24 and sprite 1 that plus $2E. In the other states, while $2768, $273F or $2F67 is not zero, the pointers come from $2FC4 (sprite 2), $2FC5 (sprite 0) and $2FC6 (sprite 1); otherwise sprite 0 gets $2FC3, sprite 1 that plus $0D and sprite 2 that minus $17. Called by player_move at $26CE.","t":"code","b":[173,104,43],"m":"lda","oa":11112,"o":"draw_state","x":[9934]},{"a":12234,"t":"code","b":[240,8],"m":"beq","oa":12244,"o":"b_2FD4"},{"a":12236,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":12238,"t":"code","b":[142,104,43],"m":"stx","oa":11112,"o":"draw_state"},{"a":12241,"t":"code","b":[76,215,47],"m":"jmp","oa":12247,"o":"j_2FD7"},{"a":12244,"l":"b_2FD4","t":"code","b":[173,68,38],"m":"lda","oa":9796,"o":"player_state","x":[12234]},{"a":12247,"l":"j_2FD7","t":"code","b":[201,4],"m":"cmp","o":"#$04","x":[12241]},{"a":12249,"t":"code","b":[240,36],"m":"beq","oa":12287,"o":"b_2FFF"},{"a":12251,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":12253,"t":"code","b":[240,4],"m":"beq","oa":12259,"o":"b_2FE3"},{"a":12255,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":12257,"t":"code","b":[208,56],"m":"bne","oa":12315,"o":"b_301B"},{"a":12259,"l":"b_2FE3","t":"code","b":[173,195,47],"m":"lda","oa":12227,"o":"player_frame","x":[12253]},{"a":12262,"t":"code","b":[141,250,207],"m":"sta","oa":53242,"o":"$CFFA"},{"a":12265,"t":"code","b":[141,250,203],"m":"sta","oa":52218,"o":"$CBFA"},{"a":12268,"t":"code","b":[24],"m":"clc"},{"a":12269,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":12271,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":12274,"t":"code","b":[141,248,203],"m":"sta","oa":52216,"o":"sprite_pointers_a"},{"a":12277,"t":"code","b":[24],"m":"clc"},{"a":12278,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":12280,"t":"code","b":[141,249,207],"m":"sta","oa":53241,"o":"$CFF9"},{"a":12283,"t":"code","b":[141,249,203],"m":"sta","oa":52217,"o":"$CBF9"},{"a":12286,"t":"code","b":[96],"m":"rts"},{"a":12287,"l":"b_2FFF","t":"code","b":[173,195,47],"m":"lda","oa":12227,"o":"player_frame","x":[12249]},{"a":12290,"t":"code","b":[141,250,207],"m":"sta","oa":53242,"o":"$CFFA"},{"a":12293,"t":"code","b":[141,250,203],"m":"sta","oa":52218,"o":"$CBFA"},{"a":12296,"t":"code","b":[24],"m":"clc"},{"a":12297,"t":"code","b":[105,36],"m":"adc","o":"#$24"},{"a":12299,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":12302,"t":"code","b":[141,248,203],"m":"sta","oa":52216,"o":"sprite_pointers_a"},{"a":12305,"t":"code","b":[24],"m":"clc"},{"a":12306,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":12308,"t":"code","b":[141,249,207],"m":"sta","oa":53241,"o":"$CFF9"},{"a":12311,"t":"code","b":[141,249,203],"m":"sta","oa":52217,"o":"$CBF9"},{"a":12314,"t":"code","b":[96],"m":"rts"},{"a":12315,"l":"b_301B","t":"code","b":[173,104,39],"m":"lda","oa":10088,"o":"punch_active","x":[12257]},{"a":12318,"t":"code","b":[240,28],"m":"beq","oa":12348,"o":"b_303C"},{"a":12320,"l":"b_3020","t":"code","b":[173,196,47],"m":"lda","oa":12228,"o":"attack_frames","x":[12351,12356]},{"a":12323,"t":"code","b":[141,250,207],"m":"sta","oa":53242,"o":"$CFFA"},{"a":12326,"t":"code","b":[141,250,203],"m":"sta","oa":52218,"o":"$CBFA"},{"a":12329,"t":"code","b":[173,197,47],"m":"lda","oa":12229,"o":"$2FC5"},{"a":12332,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":12335,"t":"code","b":[141,248,203],"m":"sta","oa":52216,"o":"sprite_pointers_a"},{"a":12338,"t":"code","b":[173,198,47],"m":"lda","oa":12230,"o":"$2FC6"},{"a":12341,"t":"code","b":[141,249,207],"m":"sta","oa":53241,"o":"$CFF9"},{"a":12344,"t":"code","b":[141,249,203],"m":"sta","oa":52217,"o":"$CBF9"},{"a":12347,"t":"code","b":[96],"m":"rts"},{"a":12348,"l":"b_303C","t":"code","b":[173,63,39],"m":"lda","oa":10047,"o":"crouching","x":[12318]},{"a":12351,"t":"code","b":[208,223],"m":"bne","oa":12320,"o":"b_3020"},{"a":12353,"t":"code","b":[173,103,47],"m":"lda","oa":12135,"o":"strike_active"},{"a":12356,"t":"code","b":[208,218],"m":"bne","oa":12320,"o":"b_3020"},{"a":12358,"t":"code","b":[173,195,47],"m":"lda","oa":12227,"o":"player_frame"},{"a":12361,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":12364,"t":"code","b":[141,248,203],"m":"sta","oa":52216,"o":"sprite_pointers_a"},{"a":12367,"t":"code","b":[24],"m":"clc"},{"a":12368,"t":"code","b":[105,13],"m":"adc","o":"#$0D"},{"a":12370,"t":"code","b":[141,249,207],"m":"sta","oa":53241,"o":"$CFF9"},{"a":12373,"t":"code","b":[141,249,203],"m":"sta","oa":52217,"o":"$CBF9"},{"a":12376,"t":"code","b":[56],"m":"sec"},{"a":12377,"t":"code","b":[233,36],"m":"sbc","o":"#$24"},{"a":12379,"t":"code","b":[141,250,207],"m":"sta","oa":53242,"o":"$CFFA"},{"a":12382,"t":"code","b":[141,250,203],"m":"sta","oa":52218,"o":"$CBFA"},{"a":12385,"t":"code","b":[96],"m":"rts"},{"a":12386,"t":"gap","n":1},{"a":12387,"l":"probe_x","c":"The low byte of the X position for tile_at_probe ($309D); the high byte is in $3065.","t":"byte","b":[31],"x":[12490,12525,12536,12543,12560,12565,13548,13559,13566,14458,14469,14476,14511,14522,14529,16618,16644]},{"a":12388,"l":"probe_y","c":"The Y position for tile_at_probe ($309D).","t":"byte","b":[154],"x":[12446,12582,13583,14493,14546,16601]},{"a":12389,"l":"probe_x_hi","c":"The high byte of the X position for tile_at_probe ($309D).","t":"byte","b":[0],"x":[12496,12514,12528,12533,12546,12551,12568,12573,13539,13551,13556,13569,13574,14449,14466,14479,14484,14502,14519,14532,14537,16632,16658]},{"a":12390,"l":"pad_3066","c":"7 zero bytes after between data records that no label reaches (after probe_x_hi) ($3066): padding that no traced code reads.","t":"byte","b":[0,0,0,0,0,0,0]},{"a":12397,"l":"row_addresses","c":"The screen address of each of the 23 rows of the screen matrix at $CC00 ($CC00, $CC28, ... $CF70), low byte first, read by tile_at_probe ($309D).","t":"byte","b":[0,204,40,204,80,204,120,204],"x":[12456]},{"a":12405,"t":"byte","b":[160,204,200,204,240,204,24,205]},{"a":12413,"t":"byte","b":[64,205,104,205,144,205,184,205]},{"a":12421,"t":"byte","b":[224,205,8,206,48,206,88,206]},{"a":12429,"t":"byte","b":[128,206,168,206,208,206,248,206]},{"a":12437,"t":"byte","b":[32,207,72,207,112,207]},{"a":12443,"l":"probe_row","c":"The row address that tile_at_probe ($309D) last took from the table, stored there (also in $8D/$8E). No traced code reads it.","t":"byte","b":[48,206],"x":[12461,16664]},{"a":12445,"l":"tile_at_probe","c":"Returns in A the screen code under the point set by the callers: the row is ($3064 minus $24) divided by 8, which picks the row address from the table $306D (also kept in $8D/$8E and in $309B/$309C), minus $0400 when the screen at $C800 is the one in use ($1D42 clear); the column is $3063 divided by 8, plus $20 when $3065 is not zero, minus 3. Y is left set to that column. Called by probe_player ($34E0), probe_enemy_right ($386F), probe_enemy_left ($38A4) and the code at $3129 and $4115.","t":"code","b":[56],"m":"sec","x":[12585,13586,14496,14549,16661]},{"a":12446,"t":"code","b":[173,100,48],"m":"lda","oa":12388,"o":"probe_y"},{"a":12449,"t":"code","b":[233,36],"m":"sbc","o":"#$24"},{"a":12451,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12452,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12453,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12454,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12455,"t":"code","b":[168],"m":"tay"},{"a":12456,"t":"code","b":[185,109,48],"m":"lda","oa":12397,"o":"row_addresses,y"},{"a":12459,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"$8D"},{"a":12461,"t":"code","b":[141,155,48],"m":"sta","oa":12443,"o":"probe_row"},{"a":12464,"t":"code","b":[185,110,48],"m":"lda","oa":12398,"o":"$306E,y"},{"a":12467,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"$8E"},{"a":12469,"t":"code","b":[141,156,48],"m":"sta","oa":12444,"o":"$309C"},{"a":12472,"t":"code","b":[173,66,29],"m":"lda","oa":7490,"o":"screen_flag"},{"a":12475,"t":"code","b":[208,13],"m":"bne","oa":12490,"o":"b_30CA"},{"a":12477,"t":"code","b":[56],"m":"sec"},{"a":12478,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"$8D"},{"a":12480,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":12482,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"$8D"},{"a":12484,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"$8E"},{"a":12486,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":12488,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"$8E"},{"a":12490,"l":"b_30CA","t":"code","b":[173,99,48],"m":"lda","oa":12387,"o":"probe_x","x":[12475]},{"a":12493,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12494,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12495,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12496,"t":"code","b":[172,101,48],"m":"ldy","oa":12389,"o":"probe_x_hi"},{"a":12499,"t":"code","b":[240,3],"m":"beq","oa":12504,"o":"b_30D8"},{"a":12501,"t":"code","b":[24],"m":"clc"},{"a":12502,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":12504,"l":"b_30D8","t":"code","b":[168],"m":"tay","x":[12499]},{"a":12505,"t":"code","b":[136],"m":"dey"},{"a":12506,"t":"code","b":[136],"m":"dey"},{"a":12507,"t":"code","b":[136],"m":"dey"},{"a":12508,"t":"code","b":[177,141],"m":"lda","oa":141,"o":"($8D),y"},{"a":12510,"t":"code","b":[96],"m":"rts"},{"a":12511,"l":"probe_front_unused","c":"Sets the point for tile_at_probe ($309D) in front of Darkman: X is his $2657/$2659 rounded down to a multiple of 8, plus 8, plus the fine scroll $1EF3 (minus 16 when he faces left), Y is $2658 plus $16. Returns the screen code there in A. Nothing calls it.","t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":12514,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":12517,"t":"code","b":[24],"m":"clc"},{"a":12518,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":12521,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":12523,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":12525,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":12528,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":12531,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12533,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":12536,"t":"code","b":[173,99,48],"m":"lda","oa":12387,"o":"probe_x"},{"a":12539,"t":"code","b":[24],"m":"clc"},{"a":12540,"t":"code","b":[109,243,30],"m":"adc","oa":7923,"o":"fine_scroll"},{"a":12543,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":12546,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":12549,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12551,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":12554,"t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing"},{"a":12557,"t":"code","b":[240,17],"m":"beq","oa":12576,"o":"$3120"},{"a":12559,"t":"code","b":[56],"m":"sec"},{"a":12560,"t":"code","b":[173,99,48],"m":"lda","oa":12387,"o":"probe_x"},{"a":12563,"t":"code","b":[233,16],"m":"sbc","o":"#$10"},{"a":12565,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":12568,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":12571,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":12573,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":12576,"t":"code","b":[24],"m":"clc","x":[12557]},{"a":12577,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":12580,"t":"code","b":[105,22],"m":"adc","o":"#$16"},{"a":12582,"t":"code","b":[141,100,48],"m":"sta","oa":12388,"o":"probe_y"},{"a":12585,"t":"code","b":[32,157,48],"m":"jsr","oa":12445,"o":"tile_at_probe"},{"a":12588,"t":"code","b":[96],"m":"rts"},{"a":12589,"l":"stun_flip","c":"Counts the passes of player_control ($276B) in which Darkman is stunned ($29F3 not zero): on the second pass his facing is flipped once more and the step is tested again. Cleared at the start of every pass.","t":"byte","b":[0],"x":[10099,10428,10431]},{"a":12590,"l":"enemy_spawn_table","c":"The enemies of the level: 14 records of 7 bytes, each a scroll position (low byte, high byte) and then the side (0 left, 1 right), the state, the slot (0 or 1), the kind and twice the energy. Read through the pointer $87/$88 by check_record_3190 ($3190), which starts the enemy when the scroll position $1A1F/$1A20 reaches the position.","t":"byte","b":[0,0,0,1,1,0,2,0]},{"a":12598,"t":"byte","b":[0,1,1,0,0,3,184,1]},{"a":12606,"t":"byte","b":[1,1,1,1,3,184,1,0]},{"a":12614,"t":"byte","b":[1,0,0,3,238,2,0,1]},{"a":12622,"t":"byte","b":[1,1,4,238,2,1,1,0]},{"a":12630,"t":"byte","b":[1,3,32,3,0,1,1,1]},{"a":12638,"t":"byte","b":[5,32,3,1,1,0,1,6]},{"a":12646,"t":"byte","b":[176,4,0,8,1,1,6,176]},{"a":12654,"t":"byte","b":[4,1,1,0,0,5,190,5]},{"a":12662,"t":"byte","b":[0,1,1,1,6,190,5,1]},{"a":12670,"t":"byte","b":[1,0,1,4,112,8,1,8]},{"a":12678,"t":"byte","b":[0,0,10,112,8,0,8,1]},{"a":12686,"t":"byte","b":[0,8]},{"a":12688,"l":"enemy_spawn_check","c":"Starts the next enemy from the record that the pointer $87/$88 points at (enemy_spawn_table, $312E) once the scroll position $1A1F/$1A20 has reached the record's position. It clears the object slots' states $33EA and $33EB and sprites 3 and 4's Y ($D007, $D009), then fills the enemy slot named in byte 4: state (byte 3), side (byte 2: X $000F or $016E with the direction), Y $78, kind (byte 5) and energy (byte 6 halved), clears the count and the hurt flag, and moves the pointer on by 7. Called by irq_top at $1E79.","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[7801]},{"a":12690,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12692,"t":"code","b":[205,32,26],"m":"cmp","oa":6688,"o":"$1A20"},{"a":12695,"t":"code","b":[208,109],"m":"bne","oa":12806,"o":"r_3206"},{"a":12697,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":12699,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12701,"t":"code","b":[205,31,26],"m":"cmp","oa":6687,"o":"scroll_pos"},{"a":12704,"t":"code","b":[240,2],"m":"beq","oa":12708,"o":"b_31A4"},{"a":12706,"t":"code","b":[176,98],"m":"bcs","oa":12806,"o":"r_3206"},{"a":12708,"l":"b_31A4","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[12704]},{"a":12710,"t":"code","b":[141,234,51],"m":"sta","oa":13290,"o":"object_state"},{"a":12713,"t":"code","b":[141,235,51],"m":"sta","oa":13291,"o":"$33EB"},{"a":12716,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":12719,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":12722,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":12724,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12726,"t":"code","b":[170],"m":"tax"},{"a":12727,"t":"code","b":[136],"m":"dey"},{"a":12728,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12730,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":12733,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":12735,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12737,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":12740,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":12743,"t":"code","b":[240,5],"m":"beq","oa":12750,"o":"b_31CE"},{"a":12745,"t":"code","b":[169,110],"m":"lda","o":"#$6E"},{"a":12747,"t":"code","b":[76,208,49],"m":"jmp","oa":12752,"o":"j_31D0"},{"a":12750,"l":"b_31CE","t":"code","b":[169,15],"m":"lda","o":"#$0F","x":[12743]},{"a":12752,"l":"j_31D0","t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x","x":[12747]},{"a":12755,"t":"code","b":[169,120],"m":"lda","o":"#$78"},{"a":12757,"t":"code","b":[157,72,55],"m":"sta","oa":14152,"o":"enemy_y,x"},{"a":12760,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":12762,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":12765,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":12767,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12769,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12770,"t":"code","b":[157,88,55],"m":"sta","oa":14168,"o":"enemy_energy,x"},{"a":12773,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":12775,"t":"code","b":[177,135],"m":"lda","oa":135,"o":"($87),y"},{"a":12777,"t":"code","b":[157,84,55],"m":"sta","oa":14164,"o":"enemy_kind,x"},{"a":12780,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":12783,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":12785,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":12788,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":12790,"t":"code","b":[157,90,55],"m":"sta","oa":14170,"o":"enemy_hurt,x"},{"a":12793,"t":"code","b":[24],"m":"clc"},{"a":12794,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"$87"},{"a":12796,"t":"code","b":[105,7],"m":"adc","o":"#$07"},{"a":12798,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"$87"},{"a":12800,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"$88"},{"a":12802,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12804,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"$88"},{"a":12806,"l":"r_3206","t":"code","b":[96],"m":"rts","x":[12695,12706]},{"a":12807,"l":"object_list","c":"The list that objects_step ($3297) reads: 22 records of 4 bytes, a position (low byte, high byte) and the types for object slots 0 and 1. $81/$82 points at the next record.","t":"byte","b":[90,0,1,0,120,0,0,0]},{"a":12815,"t":"byte","b":[130,0,3,0,74,1,0,0]},{"a":12823,"t":"byte","b":[38,2,3,0,38,2,0,0]},{"a":12831,"t":"byte","b":[88,2,1,0,118,2,0,0]},{"a":12839,"t":"byte","b":[128,2,3,0,178,2,0,0]},{"a":12847,"t":"byte","b":[72,3,3,0,96,4,0,0]},{"a":12855,"t":"byte","b":[216,4,1,0,0,5,0,0]},{"a":12863,"t":"byte","b":[10,5,3,0,20,5,0,0]},{"a":12871,"t":"byte","b":[230,5,3,0,164,6,0,0]},{"a":12879,"t":"byte","b":[204,6,1,0,244,6,0,0]},{"a":12887,"t":"byte","b":[8,7,3,0,52,8,0,0]},{"a":12895,"l":"objects_pending","c":"Flipped by objects_step ($3297) each time it takes a record from the object list; while it is 1 and a random number is below $46 the objects named in $3260 and $3261 are started.","t":"byte","b":[0],"x":[6789,12974,12979,13008]},{"a":12896,"l":"object_types","c":"The types of the two objects that objects_start ($3262) starts in slots 0 and 1: $3260 for slot 0 and $3261 for slot 1, both copied from bytes 2 and 3 of the last record of the object list by objects_step ($3297).","t":"byte","b":[0,0],"x":[12903,12986]},{"a":12898,"l":"objects_start","c":"Starts the objects named by the two bytes $3260 and $3261, in slot 0 and slot 1 when the slot is free ($33EA or $33EB is zero). For each it stores the type as the slot's state, plays sound effect $1C through $B0EE when the type is not zero, and calls object_init ($3383). Called by objects_step at $32DC.","t":"code","b":[173,234,51],"m":"lda","oa":13290,"o":"object_state","x":[13020]},{"a":12901,"t":"code","b":[208,21],"m":"bne","oa":12924,"o":"b_327C"},{"a":12903,"t":"code","b":[173,96,50],"m":"lda","oa":12896,"o":"object_types"},{"a":12906,"t":"code","b":[141,234,51],"m":"sta","oa":13290,"o":"object_state"},{"a":12909,"t":"code","b":[240,5],"m":"beq","oa":12916,"o":"b_3274"},{"a":12911,"t":"code","b":[162,28],"m":"ldx","o":"#$1C"},{"a":12913,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":12916,"l":"b_3274","t":"code","b":[173,234,51],"m":"lda","oa":13290,"o":"object_state","x":[12909]},{"a":12919,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":12921,"t":"code","b":[32,131,51],"m":"jsr","oa":13187,"o":"object_init"},{"a":12924,"l":"b_327C","t":"code","b":[173,235,51],"m":"lda","oa":13291,"o":"$33EB","x":[12901]},{"a":12927,"t":"code","b":[208,21],"m":"bne","oa":12950,"o":"r_3296"},{"a":12929,"t":"code","b":[173,97,50],"m":"lda","oa":12897,"o":"$3261"},{"a":12932,"t":"code","b":[141,235,51],"m":"sta","oa":13291,"o":"$33EB"},{"a":12935,"t":"code","b":[240,5],"m":"beq","oa":12942,"o":"b_328E"},{"a":12937,"t":"code","b":[162,28],"m":"ldx","o":"#$1C"},{"a":12939,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":12942,"l":"b_328E","t":"code","b":[173,235,51],"m":"lda","oa":13291,"o":"$33EB","x":[12935]},{"a":12945,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":12947,"t":"code","b":[32,131,51],"m":"jsr","oa":13187,"o":"object_init"},{"a":12950,"l":"r_3296","t":"code","b":[96],"m":"rts","x":[12927]},{"a":12951,"l":"objects_step","c":"Per-frame update of the two object slots (sprites 3 and 4). Unless the game is paused ($1EF2) it reads the next 4-byte record through the pointer $81/$82 once the record's position (high byte equal to $1A20, low byte below $1A1F) has been reached: it flips $325F, copies bytes 2 and 3 to $3260 and $3261 and moves the pointer on by 4. While $325F is set and a random number from $1FB5 is below $46 it calls objects_start ($3262), and it runs the two slots through object_run ($33CB). Paused or not, for each slot whose state is not zero it then sets the sprite's position ($D006/$D007 and $D008/$D009), pointer ($CFFB/$CFFC and $CBFB/$CBFC), ninth X bit, multicolour bit and colour ($D02A/$D02B, 1 for state 3 and 9 otherwise). Called by irq_top at $1E7C.","t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused","x":[7804]},{"a":12954,"t":"code","b":[208,77],"m":"bne","oa":13033,"o":"b_32E9"},{"a":12956,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":12958,"t":"code","b":[177,129],"m":"lda","oa":129,"o":"($81),y"},{"a":12960,"t":"code","b":[205,32,26],"m":"cmp","oa":6688,"o":"$1A20"},{"a":12963,"t":"code","b":[208,43],"m":"bne","oa":13008,"o":"b_32D0"},{"a":12965,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":12967,"t":"code","b":[177,129],"m":"lda","oa":129,"o":"($81),y"},{"a":12969,"t":"code","b":[205,31,26],"m":"cmp","oa":6687,"o":"scroll_pos"},{"a":12972,"t":"code","b":[176,34],"m":"bcs","oa":13008,"o":"b_32D0"},{"a":12974,"t":"code","b":[173,95,50],"m":"lda","oa":12895,"o":"objects_pending"},{"a":12977,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":12979,"t":"code","b":[141,95,50],"m":"sta","oa":12895,"o":"objects_pending"},{"a":12982,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":12984,"t":"code","b":[177,129],"m":"lda","oa":129,"o":"($81),y"},{"a":12986,"t":"code","b":[141,96,50],"m":"sta","oa":12896,"o":"object_types"},{"a":12989,"t":"code","b":[200],"m":"iny"},{"a":12990,"t":"code","b":[177,129],"m":"lda","oa":129,"o":"($81),y"},{"a":12992,"t":"code","b":[141,97,50],"m":"sta","oa":12897,"o":"$3261"},{"a":12995,"t":"code","b":[24],"m":"clc"},{"a":12996,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"$81"},{"a":12998,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":13000,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"$81"},{"a":13002,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"$82"},{"a":13004,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13006,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"$82"},{"a":13008,"l":"b_32D0","t":"code","b":[173,95,50],"m":"lda","oa":12895,"o":"objects_pending","x":[12963,12972]},{"a":13011,"t":"code","b":[240,10],"m":"beq","oa":13023,"o":"b_32DF"},{"a":13013,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":13016,"t":"code","b":[201,70],"m":"cmp","o":"#$46"},{"a":13018,"t":"code","b":[176,3],"m":"bcs","oa":13023,"o":"b_32DF"},{"a":13020,"t":"code","b":[32,98,50],"m":"jsr","oa":12898,"o":"objects_start"},{"a":13023,"l":"b_32DF","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[13011,13018]},{"a":13025,"t":"code","b":[32,203,51],"m":"jsr","oa":13259,"o":"object_run"},{"a":13028,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":13030,"t":"code","b":[32,203,51],"m":"jsr","oa":13259,"o":"object_run"},{"a":13033,"l":"b_32E9","t":"code","b":[173,234,51],"m":"lda","oa":13290,"o":"object_state","x":[12954]},{"a":13036,"t":"code","b":[240,71],"m":"beq","oa":13109,"o":"b_3335"},{"a":13038,"t":"code","b":[173,228,51],"m":"lda","oa":13284,"o":"object_x"},{"a":13041,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":13044,"t":"code","b":[173,230,51],"m":"lda","oa":13286,"o":"object_y"},{"a":13047,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":13050,"t":"code","b":[173,236,51],"m":"lda","oa":13292,"o":"object_pointer"},{"a":13053,"t":"code","b":[141,251,207],"m":"sta","oa":53243,"o":"$CFFB"},{"a":13056,"t":"code","b":[141,251,203],"m":"sta","oa":52219,"o":"$CBFB"},{"a":13059,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":13062,"t":"code","b":[174,232,51],"m":"ldx","oa":13288,"o":"object_x_hi"},{"a":13065,"t":"code","b":[240,5],"m":"beq","oa":13072,"o":"b_3310"},{"a":13067,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":13069,"t":"code","b":[76,18,51],"m":"jmp","oa":13074,"o":"j_3312"},{"a":13072,"l":"b_3310","t":"code","b":[41,247],"m":"and","o":"#$F7","x":[13065]},{"a":13074,"l":"j_3312","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[13069]},{"a":13077,"t":"code","b":[173,28,208],"m":"lda","o":"vic_sprite_multicolour"},{"a":13080,"t":"code","b":[174,224,51],"m":"ldx","oa":13280,"o":"object_multicolour"},{"a":13083,"t":"code","b":[240,5],"m":"beq","oa":13090,"o":"b_3322"},{"a":13085,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":13087,"t":"code","b":[76,36,51],"m":"jmp","oa":13092,"o":"j_3324"},{"a":13090,"l":"b_3322","t":"code","b":[41,247],"m":"and","o":"#$F7","x":[13083]},{"a":13092,"l":"j_3324","t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour","x":[13087]},{"a":13095,"t":"code","b":[162,9],"m":"ldx","o":"#$09"},{"a":13097,"t":"code","b":[173,234,51],"m":"lda","oa":13290,"o":"object_state"},{"a":13100,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":13102,"t":"code","b":[208,2],"m":"bne","oa":13106,"o":"b_3332"},{"a":13104,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":13106,"l":"b_3332","t":"code","b":[142,42,208],"m":"stx","o":"vic_sprite3_colour","x":[13102]},{"a":13109,"l":"b_3335","t":"code","b":[173,235,51],"m":"lda","oa":13291,"o":"$33EB","x":[13036]},{"a":13112,"t":"code","b":[240,71],"m":"beq","oa":13185,"o":"r_3381"},{"a":13114,"t":"code","b":[173,229,51],"m":"lda","oa":13285,"o":"$33E5"},{"a":13117,"t":"code","b":[141,8,208],"m":"sta","o":"vic_sprite4_x"},{"a":13120,"t":"code","b":[173,231,51],"m":"lda","oa":13287,"o":"$33E7"},{"a":13123,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":13126,"t":"code","b":[173,237,51],"m":"lda","oa":13293,"o":"$33ED"},{"a":13129,"t":"code","b":[141,252,207],"m":"sta","oa":53244,"o":"$CFFC"},{"a":13132,"t":"code","b":[141,252,203],"m":"sta","oa":52220,"o":"$CBFC"},{"a":13135,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":13138,"t":"code","b":[174,233,51],"m":"ldx","oa":13289,"o":"$33E9"},{"a":13141,"t":"code","b":[240,5],"m":"beq","oa":13148,"o":"b_335C"},{"a":13143,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":13145,"t":"code","b":[76,94,51],"m":"jmp","oa":13150,"o":"j_335E"},{"a":13148,"l":"b_335C","t":"code","b":[41,239],"m":"and","o":"#$EF","x":[13141]},{"a":13150,"l":"j_335E","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[13145]},{"a":13153,"t":"code","b":[173,28,208],"m":"lda","o":"vic_sprite_multicolour"},{"a":13156,"t":"code","b":[174,225,51],"m":"ldx","oa":13281,"o":"$33E1"},{"a":13159,"t":"code","b":[240,5],"m":"beq","oa":13166,"o":"b_336E"},{"a":13161,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":13163,"t":"code","b":[76,112,51],"m":"jmp","oa":13168,"o":"j_3370"},{"a":13166,"l":"b_336E","t":"code","b":[41,239],"m":"and","o":"#$EF","x":[13159]},{"a":13168,"l":"j_3370","t":"code","b":[141,28,208],"m":"sta","o":"vic_sprite_multicolour","x":[13163]},{"a":13171,"t":"code","b":[162,9],"m":"ldx","o":"#$09"},{"a":13173,"t":"code","b":[173,235,51],"m":"lda","oa":13291,"o":"$33EB"},{"a":13176,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":13178,"t":"code","b":[208,2],"m":"bne","oa":13182,"o":"b_337E"},{"a":13180,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":13182,"l":"b_337E","t":"code","b":[142,43,208],"m":"stx","o":"vic_sprite4_colour","x":[13178]},{"a":13185,"l":"r_3381","t":"code","b":[96],"m":"rts","x":[13112]},{"a":13186,"l":"object_side","c":"Set by object_init ($3383) to 1 when a state 3 object starts at X $146 and to 0 otherwise. object_small ($3404) reads it at $3425: 1 sends the object left, 0 right.","t":"byte","b":[0],"x":[13208,13216,13349]},{"a":13187,"l":"object_init","c":"Sets the start position of the object in slot X whose state is A. For state 3 a random number decides: if it is positive the slot's X ($33E4,X) becomes $46 with the ninth bit ($33E8,X) 1 and $3382 becomes 1, otherwise the X and the ninth bit are 0 and $3382 is 0; a second random bit then sets both Y values $33E6 and $33E7 to $73 or $82. For any other state it sets the X and ninth bit to 0. Called by objects_start at $3279 and $3293.","t":"code","b":[201,3],"m":"cmp","o":"#$03","x":[12921,12947]},{"a":13189,"t":"code","b":[208,59],"m":"bne","oa":13250,"o":"b_33C2"},{"a":13191,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":13194,"t":"code","b":[48,18],"m":"bmi","oa":13214,"o":"b_339E"},{"a":13196,"t":"code","b":[169,70],"m":"lda","o":"#$46"},{"a":13198,"t":"code","b":[157,228,51],"m":"sta","oa":13284,"o":"object_x,x"},{"a":13201,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13203,"t":"code","b":[157,232,51],"m":"sta","oa":13288,"o":"object_x_hi,x"},{"a":13206,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13208,"t":"code","b":[141,130,51],"m":"sta","oa":13186,"o":"object_side"},{"a":13211,"t":"code","b":[76,169,51],"m":"jmp","oa":13225,"o":"j_33A9"},{"a":13214,"l":"b_339E","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[13194]},{"a":13216,"t":"code","b":[141,130,51],"m":"sta","oa":13186,"o":"object_side"},{"a":13219,"t":"code","b":[157,228,51],"m":"sta","oa":13284,"o":"object_x,x"},{"a":13222,"t":"code","b":[157,232,51],"m":"sta","oa":13288,"o":"object_x_hi,x"},{"a":13225,"l":"j_33A9","t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random","x":[13211]},{"a":13228,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":13230,"t":"code","b":[208,9],"m":"bne","oa":13241,"o":"b_33B9"},{"a":13232,"t":"code","b":[169,115],"m":"lda","o":"#$73"},{"a":13234,"t":"code","b":[141,230,51],"m":"sta","oa":13286,"o":"object_y"},{"a":13237,"t":"code","b":[141,231,51],"m":"sta","oa":13287,"o":"$33E7"},{"a":13240,"t":"code","b":[96],"m":"rts"},{"a":13241,"l":"b_33B9","t":"code","b":[169,130],"m":"lda","o":"#$82","x":[13230]},{"a":13243,"t":"code","b":[141,230,51],"m":"sta","oa":13286,"o":"object_y"},{"a":13246,"t":"code","b":[141,231,51],"m":"sta","oa":13287,"o":"$33E7"},{"a":13249,"t":"code","b":[96],"m":"rts"},{"a":13250,"l":"b_33C2","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[13189]},{"a":13252,"t":"code","b":[157,228,51],"m":"sta","oa":13284,"o":"object_x,x"},{"a":13255,"t":"code","b":[157,232,51],"m":"sta","oa":13288,"o":"object_x_hi,x"},{"a":13258,"t":"code","b":[96],"m":"rts"},{"a":13259,"l":"object_run","c":"Runs the object in slot X: doubles its state $33EA,X, takes the address from the table $33EE and stores it in the operand of the JSR at $33DC (which points at $33F7 until patched), then calls it. Called by objects_step at $32E1 and $32E6 for X=0 and X=1.","t":"code","b":[189,234,51],"m":"lda","oa":13290,"o":"object_state,x","x":[13025,13030]},{"a":13262,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13263,"t":"code","b":[168],"m":"tay"},{"a":13264,"t":"code","b":[185,238,51],"m":"lda","oa":13294,"o":"object_table,y"},{"a":13267,"t":"code","b":[141,221,51],"m":"sta","oa":13277,"o":"object_routine"},{"a":13270,"t":"code","b":[185,239,51],"m":"lda","oa":13295,"o":"$33EF,y"},{"a":13273,"t":"code","b":[141,222,51],"m":"sta","oa":13278,"o":"$33DE"},{"a":13276,"t":"code","b":[32,247,51],"m":"jsr","oa":13303,"o":"object_idle"},{"a":13277,"t":"note","l":"object_routine","c":"The operand of the JSR at $33DC: object_run ($33CB) stores the address of the routine for the slot's state here, low byte at $33DD and high byte at $33DE, taken from object_table. The RTS after it at $33DF ends object_run.","note":"inside the item at $33DC","x":[13267]},{"a":13279,"t":"code","b":[96],"m":"rts"},{"a":13280,"l":"object_multicolour","c":"Multicolour flag of object slots 0 and 1; objects_step ($3297) copies it to bits 3 and 4 of $D01C.","t":"byte","b":[0,0],"x":[13080,13318,13428]},{"a":13282,"l":"object_frame_index","c":"The step in the frame table of object slot 0 ($33E2) and slot 1 ($33E3), 0 to 11, that the object routines move on each frame. Only $33E2 is used: object_small ($3404) and object_wide ($3472) both step it.","t":"byte","b":[0,0],"x":[13329,13340,13442,13452]},{"a":13284,"l":"object_x","c":"X position (low byte) of object slots 0 and 1, written to $D006 and $D008 by objects_step ($3297).","t":"byte","b":[0,0],"x":[13038,13198,13219,13252,13355,13360,13385,13390,13472,13477,13504,17904,17925]},{"a":13286,"l":"object_y","c":"Y position of object slots 0 and 1, written to $D007 and $D009 by objects_step ($3297).","t":"byte","b":[0,0],"x":[13044,13234,13243,13468,13520,17884,17898,17919]},{"a":13288,"l":"object_x_hi","c":"Ninth bit of the X position of object slots 0 and 1, written to bits 3 and 4 of $D010 by objects_step ($3297).","t":"byte","b":[0,0],"x":[13062,13203,13222,13255,13364,13369,13394,13399,13481,13486,13512,17910,17934]},{"a":13290,"l":"object_state","c":"State of object slots 0 and 1; 0 means the slot is free. object_run ($33CB) calls the routine for it.","t":"byte","b":[0,0],"x":[6816,12710,12898,12906,12916,13033,13097,13259,13380,13410,13497,17875]},{"a":13292,"l":"object_pointer","c":"Sprite pointer of object slots 0 and 1, written to $CFFB, $CFFC, $CBFB and $CBFC by objects_step ($3297).","t":"byte","b":[5,5],"x":[13050,13346,13458,13526]},{"a":13294,"l":"object_table","c":"Four routine addresses, low byte first, one for each object state: 0 is object_idle ($33F7, an RTS), 1 object_wide ($3472), 2 object_idle_2 ($33F6, an RTS) and 3 object_small ($3404). object_run ($33CB) takes the one for the slot's state $33EA,X.","t":"byte","b":[247,51,114,52,246,51,4,52],"x":[13264]},{"a":13302,"l":"object_idle_2","c":"State 2 of object_table ($33EE): an RTS. It is the state that object_wide ($3472) gives to slot 1, the second half of the object, which then needs no code of its own.","t":"code","b":[96],"m":"rts"},{"a":13303,"l":"object_idle","c":"A lone RTS: the default target of the JSR in object_run ($33CB) and the address in entry 0 of its table at $33EE.","t":"code","b":[96],"m":"rts","x":[13276]},{"a":13304,"l":"object_small_frames","c":"The 12 sprite pointers of the animation of object_small ($3404): $CC three times, $CD three times, and again. The shapes are at $F300 and $F340.","t":"byte","b":[204,204,204,205,205,205,204,204],"x":[13343]},{"a":13312,"t":"byte","b":[204,205,205,205]},{"a":13316,"l":"object_small","c":"State 3 of object_table ($33EE): a small object that crosses the screen. It clears the multicolour flag $33E0,X, sets sprite colours $D02A and $D02B to 1, steps the frame index $33E2,X through 12 values and takes the sprite pointer from object_small_frames ($33F8). If object_side ($3382) is 1 it moves 4 pixels left and frees the slot (state 0) when X falls below $14, otherwise 4 pixels right until X reaches $150.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13318,"t":"code","b":[157,224,51],"m":"sta","oa":13280,"o":"object_multicolour,x"},{"a":13321,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13323,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":13326,"t":"code","b":[141,43,208],"m":"sta","o":"vic_sprite4_colour"},{"a":13329,"t":"code","b":[188,226,51],"m":"ldy","oa":13282,"o":"object_frame_index,x"},{"a":13332,"t":"code","b":[200],"m":"iny"},{"a":13333,"t":"code","b":[192,12],"m":"cpy","o":"#$0C"},{"a":13335,"t":"code","b":[144,2],"m":"bcc","oa":13339,"o":"$341B"},{"a":13337,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13339,"t":"code","b":[152],"m":"tya","x":[13335]},{"a":13340,"t":"code","b":[157,226,51],"m":"sta","oa":13282,"o":"object_frame_index,x"},{"a":13343,"t":"code","b":[185,248,51],"m":"lda","oa":13304,"o":"object_small_frames,y"},{"a":13346,"t":"code","b":[157,236,51],"m":"sta","oa":13292,"o":"object_pointer,x"},{"a":13349,"t":"code","b":[173,130,51],"m":"lda","oa":13186,"o":"object_side"},{"a":13352,"t":"code","b":[240,30],"m":"beq","oa":13384,"o":"$3448"},{"a":13354,"t":"code","b":[56],"m":"sec"},{"a":13355,"t":"code","b":[189,228,51],"m":"lda","oa":13284,"o":"object_x,x"},{"a":13358,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":13360,"t":"code","b":[157,228,51],"m":"sta","oa":13284,"o":"object_x,x"},{"a":13363,"t":"code","b":[168],"m":"tay"},{"a":13364,"t":"code","b":[189,232,51],"m":"lda","oa":13288,"o":"object_x_hi,x"},{"a":13367,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":13369,"t":"code","b":[157,232,51],"m":"sta","oa":13288,"o":"object_x_hi,x"},{"a":13372,"t":"code","b":[208,9],"m":"bne","oa":13383,"o":"$3447"},{"a":13374,"t":"code","b":[192,20],"m":"cpy","o":"#$14"},{"a":13376,"t":"code","b":[176,5],"m":"bcs","oa":13383,"o":"$3447"},{"a":13378,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13380,"t":"code","b":[157,234,51],"m":"sta","oa":13290,"o":"object_state,x"},{"a":13383,"t":"code","b":[96],"m":"rts","x":[13372,13376]},{"a":13384,"t":"code","b":[24],"m":"clc","x":[13352]},{"a":13385,"t":"code","b":[189,228,51],"m":"lda","oa":13284,"o":"object_x,x"},{"a":13388,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":13390,"t":"code","b":[157,228,51],"m":"sta","oa":13284,"o":"object_x,x"},{"a":13393,"t":"code","b":[168],"m":"tay"},{"a":13394,"t":"code","b":[189,232,51],"m":"lda","oa":13288,"o":"object_x_hi,x"},{"a":13397,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13399,"t":"code","b":[157,232,51],"m":"sta","oa":13288,"o":"object_x_hi,x"},{"a":13402,"t":"code","b":[240,9],"m":"beq","oa":13413,"o":"$3465"},{"a":13404,"t":"code","b":[192,80],"m":"cpy","o":"#$50"},{"a":13406,"t":"code","b":[144,5],"m":"bcc","oa":13413,"o":"$3465"},{"a":13408,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13410,"t":"code","b":[157,234,51],"m":"sta","oa":13290,"o":"object_state,x"},{"a":13413,"t":"code","b":[96],"m":"rts","x":[13402,13406]},{"a":13414,"l":"object_wide_frames","c":"The 12 sprite pointers of the animation of object_wide ($3472): $CA three times, $C6 three times, $CA three times and $C8 three times. The shapes are at $F280, $F180 and $F200.","t":"byte","b":[202,202,202,198,198,198,202,202],"x":[13455]},{"a":13422,"t":"byte","b":[202,200,200,200]},{"a":13426,"l":"object_wide","c":"State 1 of object_table ($33EE): an object made of two sprites. It sets the multicolour flags of both slots, the colours $D02A and $D02B to 9, steps the frame index $33E2 through 12 values, takes the pointer from object_wide_frames ($3466), sets slot 1's state to 2 and the slot's Y to $8C, and moves 6 pixels right until X reaches $150, when both slots are freed. Slot 1 follows 24 pixels to the right, at the same height, with the pointer plus 1.","t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13428,"t":"code","b":[141,224,51],"m":"sta","oa":13280,"o":"object_multicolour"},{"a":13431,"t":"code","b":[141,225,51],"m":"sta","oa":13281,"o":"$33E1"},{"a":13434,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":13436,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":13439,"t":"code","b":[141,43,208],"m":"sta","o":"vic_sprite4_colour"},{"a":13442,"t":"code","b":[172,226,51],"m":"ldy","oa":13282,"o":"object_frame_index"},{"a":13445,"t":"code","b":[200],"m":"iny"},{"a":13446,"t":"code","b":[192,12],"m":"cpy","o":"#$0C"},{"a":13448,"t":"code","b":[144,2],"m":"bcc","oa":13452,"o":"$348C"},{"a":13450,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13452,"t":"code","b":[140,226,51],"m":"sty","oa":13282,"o":"object_frame_index","x":[13448]},{"a":13455,"t":"code","b":[185,102,52],"m":"lda","oa":13414,"o":"object_wide_frames,y"},{"a":13458,"t":"code","b":[141,236,51],"m":"sta","oa":13292,"o":"object_pointer"},{"a":13461,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":13463,"t":"code","b":[141,235,51],"m":"sta","oa":13291,"o":"$33EB"},{"a":13466,"t":"code","b":[169,140],"m":"lda","o":"#$8C"},{"a":13468,"t":"code","b":[157,230,51],"m":"sta","oa":13286,"o":"object_y,x"},{"a":13471,"t":"code","b":[24],"m":"clc"},{"a":13472,"t":"code","b":[189,228,51],"m":"lda","oa":13284,"o":"object_x,x"},{"a":13475,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":13477,"t":"code","b":[157,228,51],"m":"sta","oa":13284,"o":"object_x,x"},{"a":13480,"t":"code","b":[168],"m":"tay"},{"a":13481,"t":"code","b":[189,232,51],"m":"lda","oa":13288,"o":"object_x_hi,x"},{"a":13484,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13486,"t":"code","b":[157,232,51],"m":"sta","oa":13288,"o":"object_x_hi,x"},{"a":13489,"t":"code","b":[240,12],"m":"beq","oa":13503,"o":"$34BF"},{"a":13491,"t":"code","b":[192,80],"m":"cpy","o":"#$50"},{"a":13493,"t":"code","b":[144,8],"m":"bcc","oa":13503,"o":"$34BF"},{"a":13495,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13497,"t":"code","b":[157,234,51],"m":"sta","oa":13290,"o":"object_state,x"},{"a":13500,"t":"code","b":[141,235,51],"m":"sta","oa":13291,"o":"$33EB"},{"a":13503,"t":"code","b":[24],"m":"clc","x":[13489,13493]},{"a":13504,"t":"code","b":[173,228,51],"m":"lda","oa":13284,"o":"object_x"},{"a":13507,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":13509,"t":"code","b":[141,229,51],"m":"sta","oa":13285,"o":"$33E5"},{"a":13512,"t":"code","b":[173,232,51],"m":"lda","oa":13288,"o":"object_x_hi"},{"a":13515,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13517,"t":"code","b":[141,233,51],"m":"sta","oa":13289,"o":"$33E9"},{"a":13520,"t":"code","b":[173,230,51],"m":"lda","oa":13286,"o":"object_y"},{"a":13523,"t":"code","b":[141,231,51],"m":"sta","oa":13287,"o":"$33E7"},{"a":13526,"t":"code","b":[173,236,51],"m":"lda","oa":13292,"o":"object_pointer"},{"a":13529,"t":"code","b":[24],"m":"clc"},{"a":13530,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":13532,"t":"code","b":[141,237,51],"m":"sta","oa":13293,"o":"$33ED"},{"a":13535,"t":"code","b":[96],"m":"rts"},{"a":13536,"l":"probe_player","c":"Sets the point for a tile lookup at Darkman's feet and calls tile_at_probe ($309D): X is $2657 and $2659 plus $0E minus the fine scroll $1EF3, put in $3063 and $3065, and Y is $2658 plus $16, put in $3064. A is the screen code under that point. Called by the player code at $2862, $28DC, $2A8D, $2AD4, $2B9B, $2C56, $2D4C, $2EA0 and $2F1E.","t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi","x":[10338,10460,10893,10964,11163,11350,11596,11936,12062]},{"a":13539,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":13542,"t":"code","b":[24],"m":"clc"},{"a":13543,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":13546,"t":"code","b":[105,14],"m":"adc","o":"#$0E"},{"a":13548,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":13551,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":13554,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13556,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":13559,"t":"code","b":[173,99,48],"m":"lda","oa":12387,"o":"probe_x"},{"a":13562,"t":"code","b":[56],"m":"sec"},{"a":13563,"t":"code","b":[237,243,30],"m":"sbc","oa":7923,"o":"fine_scroll"},{"a":13566,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":13569,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":13572,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":13574,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":13577,"t":"code","b":[24],"m":"clc"},{"a":13578,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":13581,"t":"code","b":[105,22],"m":"adc","o":"#$16"},{"a":13583,"t":"code","b":[141,100,48],"m":"sta","oa":12388,"o":"probe_y"},{"a":13586,"t":"code","b":[32,157,48],"m":"jsr","oa":12445,"o":"tile_at_probe"},{"a":13589,"t":"code","b":[96],"m":"rts"},{"a":13590,"l":"marker_frame","c":"The sprite pointer of sprite 7, taken from the table $3518 by exit_marker_step ($354A).","t":"byte","b":[197],"x":[6774,13684,13802]},{"a":13591,"l":"marker_index","c":"Index into the table $3518 of sprite 7's frames, stepped by exit_marker_step ($354A).","t":"byte","b":[33],"x":[6779,13657,13666,13678]},{"a":13592,"l":"marker_frames","c":"The frames of sprite 7: $FE 24 times, then $C5 20 times, ended by $80. exit_marker_step ($354A) steps through them.","t":"byte","b":[254,254,254,254,254,254,254,254],"x":[13669,13681]},{"a":13600,"t":"byte","b":[254,254,254,254,254,254,254,254]},{"a":13608,"t":"byte","b":[254,254,254,254,254,254,254,254]},{"a":13616,"t":"byte","b":[197,197,197,197,197,197,197,197]},{"a":13624,"t":"byte","b":[197,197,197,197,197,197,197,197]},{"a":13632,"t":"byte","b":[197,197,197,197,128]},{"a":13637,"l":"marker_timer","c":"Countdown of exit_marker_step ($354A) when it shows sprite 7 at the edge; reloaded with $FF, and at that moment it plays sound effect 12.","t":"byte","b":[0],"x":[13816,13822,13830]},{"a":13638,"l":"marker_x","c":"X position of sprite 7 at the end of the map, low byte then the ninth bit, read by exit_marker_step ($354A) and exit_touch_test ($4586).","t":"byte","b":[0,0],"x":[13711,13753,13762,13768,13777,15193,17819]},{"a":13640,"l":"marker_y","c":"Y position of sprite 7 at the end of the map: exit_marker_step ($354A) adds 1 to it up to $8A and exit_touch_test ($4586) reads it.","t":"byte","b":[0],"x":[13705,13735,13745,15187,17813]},{"a":13641,"l":"marker_delay","c":"Countdown that delays exit_marker_step ($354A); play_setup sets it to 5.","t":"byte","b":[0],"x":[6784,13642,13648]},{"a":13642,"l":"exit_marker_step","c":"Per-frame step of sprite 7 (position $D00E/$D00F, pointer $CFFF and $CBFF). A countdown from $3549 delays it; then, unless the game is paused, it steps the index $3517 through the table at $3518 (ended by $80, then back to 0) and keeps the entry in $3516. When an enemy slot is in use ($3742 or $3743 is not zero) it sets sprite 7's Y to 1 and $4079 to 1 (which stops the scroll). Otherwise, when the end flag $2061 is set, it shows the sprite at $3546/$3547/$3548 with the pointer $6F, adding 1 to its Y up to $8A and keeping its X between $1E and $28. When neither holds, it puts the sprite at X $11E and Y $3C with the pointer $3516 and colour 6, counts $3545 down (at 0, reloaded with $FF, it plays sound effect 12 unless paused), clears $4079 and sets $3638 to 1. Called by irq_top at $1E6B.","t":"code","b":[174,73,53],"m":"ldx","oa":13641,"o":"marker_delay","x":[7787]},{"a":13645,"t":"code","b":[240,5],"m":"beq","oa":13652,"o":"b_3554"},{"a":13647,"t":"code","b":[202],"m":"dex"},{"a":13648,"t":"code","b":[142,73,53],"m":"stx","oa":13641,"o":"marker_delay"},{"a":13651,"t":"code","b":[96],"m":"rts"},{"a":13652,"l":"b_3554","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[13645]},{"a":13654,"t":"code","b":[141,56,54],"m":"sta","oa":13880,"o":"advance_flag"},{"a":13657,"t":"code","b":[172,23,53],"m":"ldy","oa":13591,"o":"marker_index"},{"a":13660,"t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused"},{"a":13663,"t":"code","b":[208,16],"m":"bne","oa":13681,"o":"b_3571"},{"a":13665,"t":"code","b":[200],"m":"iny"},{"a":13666,"t":"code","b":[140,23,53],"m":"sty","oa":13591,"o":"marker_index"},{"a":13669,"t":"code","b":[185,24,53],"m":"lda","oa":13592,"o":"marker_frames,y"},{"a":13672,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":13674,"t":"code","b":[208,5],"m":"bne","oa":13681,"o":"b_3571"},{"a":13676,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13678,"t":"code","b":[140,23,53],"m":"sty","oa":13591,"o":"marker_index"},{"a":13681,"l":"b_3571","t":"code","b":[185,24,53],"m":"lda","oa":13592,"o":"marker_frames,y","x":[13663,13674]},{"a":13684,"t":"code","b":[141,22,53],"m":"sta","oa":13590,"o":"marker_frame"},{"a":13687,"t":"code","b":[173,66,55],"m":"lda","oa":14146,"o":"enemy_state"},{"a":13690,"t":"code","b":[240,3],"m":"beq","oa":13695,"o":"b_357F"},{"a":13692,"l":"b_357C","t":"code","b":[76,45,54],"m":"jmp","oa":13869,"o":"j_362D","x":[13698]},{"a":13695,"l":"b_357F","t":"code","b":[173,67,55],"m":"lda","oa":14147,"o":"$3743","x":[13690]},{"a":13698,"t":"code","b":[208,248],"m":"bne","oa":13692,"o":"b_357C"},{"a":13700,"t":"code","b":[173,97,32],"m":"lda","oa":8289,"o":"scroll_end"},{"a":13703,"t":"code","b":[240,84],"m":"beq","oa":13789,"o":"b_35DD"},{"a":13705,"t":"code","b":[173,72,53],"m":"lda","oa":13640,"o":"marker_y"},{"a":13708,"t":"code","b":[141,15,208],"m":"sta","o":"vic_sprite7_y"},{"a":13711,"t":"code","b":[173,70,53],"m":"lda","oa":13638,"o":"marker_x"},{"a":13714,"t":"code","b":[141,14,208],"m":"sta","o":"vic_sprite7_x"},{"a":13717,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":13720,"t":"code","b":[174,71,53],"m":"ldx","oa":13639,"o":"$3547"},{"a":13723,"t":"code","b":[240,5],"m":"beq","oa":13730,"o":"b_35A2"},{"a":13725,"t":"code","b":[9,128],"m":"ora","o":"#$80"},{"a":13727,"t":"code","b":[76,164,53],"m":"jmp","oa":13732,"o":"j_35A4"},{"a":13730,"l":"b_35A2","t":"code","b":[41,127],"m":"and","o":"#$7F","x":[13723]},{"a":13732,"l":"j_35A4","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[13727]},{"a":13735,"t":"code","b":[173,72,53],"m":"lda","oa":13640,"o":"marker_y"},{"a":13738,"t":"code","b":[201,138],"m":"cmp","o":"#$8A"},{"a":13740,"t":"code","b":[176,6],"m":"bcs","oa":13748,"o":"b_35B4"},{"a":13742,"t":"code","b":[24],"m":"clc"},{"a":13743,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":13745,"t":"code","b":[141,72,53],"m":"sta","oa":13640,"o":"marker_y"},{"a":13748,"l":"b_35B4","t":"code","b":[173,71,53],"m":"lda","oa":13639,"o":"$3547","x":[13740]},{"a":13751,"t":"code","b":[208,15],"m":"bne","oa":13768,"o":"b_35C8"},{"a":13753,"t":"code","b":[173,70,53],"m":"lda","oa":13638,"o":"marker_x"},{"a":13756,"t":"code","b":[201,30],"m":"cmp","o":"#$1E"},{"a":13758,"t":"code","b":[176,20],"m":"bcs","oa":13780,"o":"b_35D4"},{"a":13760,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":13762,"t":"code","b":[141,70,53],"m":"sta","oa":13638,"o":"marker_x"},{"a":13765,"t":"code","b":[76,212,53],"m":"jmp","oa":13780,"o":"b_35D4"},{"a":13768,"l":"b_35C8","t":"code","b":[173,70,53],"m":"lda","oa":13638,"o":"marker_x","x":[13751]},{"a":13771,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":13773,"t":"code","b":[144,5],"m":"bcc","oa":13780,"o":"b_35D4"},{"a":13775,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":13777,"t":"code","b":[141,70,53],"m":"sta","oa":13638,"o":"marker_x"},{"a":13780,"l":"b_35D4","t":"code","b":[169,111],"m":"lda","o":"#$6F","x":[13758,13765,13773]},{"a":13782,"t":"code","b":[141,255,207],"m":"sta","oa":53247,"o":"$CFFF"},{"a":13785,"t":"code","b":[141,255,203],"m":"sta","oa":52223,"o":"$CBFF"},{"a":13788,"t":"code","b":[96],"m":"rts"},{"a":13789,"l":"b_35DD","t":"code","b":[169,30],"m":"lda","o":"#$1E","x":[13703]},{"a":13791,"t":"code","b":[141,14,208],"m":"sta","o":"vic_sprite7_x"},{"a":13794,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":13797,"t":"code","b":[9,128],"m":"ora","o":"#$80"},{"a":13799,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":13802,"t":"code","b":[173,22,53],"m":"lda","oa":13590,"o":"marker_frame"},{"a":13805,"t":"code","b":[141,255,207],"m":"sta","oa":53247,"o":"$CFFF"},{"a":13808,"t":"code","b":[141,255,203],"m":"sta","oa":52223,"o":"$CBFF"},{"a":13811,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":13813,"t":"code","b":[141,46,208],"m":"sta","o":"vic_sprite7_colour"},{"a":13816,"t":"code","b":[174,69,53],"m":"ldx","oa":13637,"o":"marker_timer"},{"a":13819,"t":"code","b":[240,7],"m":"beq","oa":13828,"o":"b_3604"},{"a":13821,"t":"code","b":[202],"m":"dex"},{"a":13822,"t":"code","b":[142,69,53],"m":"stx","oa":13637,"o":"marker_timer"},{"a":13825,"t":"code","b":[76,29,54],"m":"jmp","oa":13853,"o":"exit_marker_step_part_2"},{"a":13828,"l":"b_3604","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[13819]},{"a":13830,"t":"code","b":[141,69,53],"m":"sta","oa":13637,"o":"marker_timer"},{"a":13833,"t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused"},{"a":13836,"t":"code","b":[208,15],"m":"bne","oa":13853,"o":"exit_marker_step_part_2"},{"a":13838,"t":"code","b":[140,28,54],"m":"sty","oa":13852,"o":"marker_saved_y"},{"a":13841,"t":"code","b":[142,26,54],"m":"stx","oa":13850,"o":"marker_saved_x"},{"a":13844,"t":"code","b":[162,12],"m":"ldx","o":"#$0C"},{"a":13846,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":13849,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":13850,"t":"note","l":"marker_saved_x","c":"Holds the X register of exit_marker_step ($354A), stored at $3611: the immediate operand of the LDX at $3619, which restores it after the sound call.","note":"inside the item at $3619","x":[13841]},{"a":13851,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13852,"t":"note","l":"marker_saved_y","c":"Holds the Y register of exit_marker_step ($354A), stored at $360E: the immediate operand of the LDY at $361B.","note":"inside the item at $361B","x":[13838]},{"a":13853,"l":"exit_marker_step_part_2","c":"The end of exit_marker_step ($354A), reached by the jumps at $3601 and, after the sound call, by falling through. Puts sprite 7's Y at $3C, clears the scroll stop $4079 and sets advance_flag ($3638) to 1. The code at $362D, reached from $357C when an enemy slot is in use, puts sprite 7's Y at 1 and sets $4079 to 1.","t":"code","b":[169,60],"m":"lda","o":"#$3C","x":[13825,13836]},{"a":13855,"t":"code","b":[141,15,208],"m":"sta","o":"vic_sprite7_y"},{"a":13858,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13860,"t":"code","b":[141,121,64],"m":"sta","oa":16505,"o":"scroll_stop"},{"a":13863,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13865,"t":"code","b":[141,56,54],"m":"sta","oa":13880,"o":"advance_flag"},{"a":13868,"t":"code","b":[96],"m":"rts"},{"a":13869,"l":"j_362D","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[13692]},{"a":13871,"t":"code","b":[141,15,208],"m":"sta","o":"vic_sprite7_y"},{"a":13874,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13876,"t":"code","b":[141,121,64],"m":"sta","oa":16505,"o":"scroll_stop"},{"a":13879,"t":"code","b":[96],"m":"rts"},{"a":13880,"l":"advance_flag","c":"Set to 1 by exit_marker_step ($354A) when no enemy is in play and sprite 7 shows at the edge, 0 otherwise. player_move ($265E) reads it: when it is set, Darkman reaching X $D5 makes the playfield scroll and his limit ($265C/$265D) is $00D2, otherwise it is $012D.","t":"byte","b":[0],"x":[9827,9873,10320,13654,13865]},{"a":13881,"l":"place_enemies","c":"Places the two enemies' sprites: sprites 3 and 4 for the first (from $3744, $3746 and $3748) and 5 and 6 for the second, each pair stacked 21 lines apart, and sets their colours.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[14142]},{"a":13883,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":13886,"t":"code","b":[141,43,208],"m":"sta","o":"vic_sprite4_colour"},{"a":13889,"t":"code","b":[141,44,208],"m":"sta","o":"vic_sprite5_colour"},{"a":13892,"t":"code","b":[141,45,208],"m":"sta","o":"vic_sprite6_colour"},{"a":13895,"t":"code","b":[173,72,55],"m":"lda","oa":14152,"o":"enemy_y"},{"a":13898,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":13901,"t":"code","b":[24],"m":"clc"},{"a":13902,"t":"code","b":[105,21],"m":"adc","o":"#$15"},{"a":13904,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":13907,"t":"code","b":[173,73,55],"m":"lda","oa":14153,"o":"$3749"},{"a":13910,"t":"code","b":[141,11,208],"m":"sta","o":"vic_sprite5_y"},{"a":13913,"t":"code","b":[24],"m":"clc"},{"a":13914,"t":"code","b":[105,21],"m":"adc","o":"#$15"},{"a":13916,"t":"code","b":[141,13,208],"m":"sta","o":"vic_sprite6_y"},{"a":13919,"t":"code","b":[173,68,55],"m":"lda","oa":14148,"o":"enemy_x"},{"a":13922,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":13925,"t":"code","b":[141,8,208],"m":"sta","o":"vic_sprite4_x"},{"a":13928,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":13931,"t":"code","b":[174,70,55],"m":"ldx","oa":14150,"o":"enemy_x_hi"},{"a":13934,"t":"code","b":[240,5],"m":"beq","oa":13941,"o":"b_3675"},{"a":13936,"t":"code","b":[9,24],"m":"ora","o":"#$18"},{"a":13938,"t":"code","b":[76,119,54],"m":"jmp","oa":13943,"o":"j_3677"},{"a":13941,"l":"b_3675","t":"code","b":[41,231],"m":"and","o":"#$E7","x":[13934]},{"a":13943,"l":"j_3677","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[13938]},{"a":13946,"t":"code","b":[173,69,55],"m":"lda","oa":14149,"o":"$3745"},{"a":13949,"t":"code","b":[141,10,208],"m":"sta","o":"vic_sprite5_x"},{"a":13952,"t":"code","b":[141,12,208],"m":"sta","o":"vic_sprite6_x"},{"a":13955,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":13958,"t":"code","b":[174,71,55],"m":"ldx","oa":14151,"o":"$3747"},{"a":13961,"t":"code","b":[240,5],"m":"beq","oa":13968,"o":"b_3690"},{"a":13963,"t":"code","b":[9,96],"m":"ora","o":"#$60"},{"a":13965,"t":"code","b":[76,146,54],"m":"jmp","oa":13970,"o":"j_3692"},{"a":13968,"l":"b_3690","t":"code","b":[41,159],"m":"and","o":"#$9F","x":[13961]},{"a":13970,"l":"j_3692","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[13965]},{"a":13973,"t":"code","b":[173,76,55],"m":"lda","oa":14156,"o":"enemy_frame_lo"},{"a":13976,"t":"code","b":[141,251,207],"m":"sta","oa":53243,"o":"$CFFB"},{"a":13979,"t":"code","b":[141,251,203],"m":"sta","oa":52219,"o":"$CBFB"},{"a":13982,"t":"code","b":[173,77,55],"m":"lda","oa":14157,"o":"$374D"},{"a":13985,"t":"code","b":[141,253,207],"m":"sta","oa":53245,"o":"$CFFD"},{"a":13988,"t":"code","b":[141,253,203],"m":"sta","oa":52221,"o":"$CBFD"},{"a":13991,"t":"code","b":[173,78,55],"m":"lda","oa":14158,"o":"enemy_frame_hi"},{"a":13994,"t":"code","b":[141,252,207],"m":"sta","oa":53244,"o":"$CFFC"},{"a":13997,"t":"code","b":[141,252,203],"m":"sta","oa":52220,"o":"$CBFC"},{"a":14000,"t":"code","b":[173,79,55],"m":"lda","oa":14159,"o":"$374F"},{"a":14003,"t":"code","b":[141,254,207],"m":"sta","oa":53246,"o":"$CFFE"},{"a":14006,"t":"code","b":[141,254,203],"m":"sta","oa":52222,"o":"$CBFE"},{"a":14009,"t":"code","b":[173,82,55],"m":"lda","oa":14162,"o":"enemy_step"},{"a":14012,"t":"code","b":[48,20],"m":"bmi","oa":14034,"o":"b_36D2"},{"a":14014,"t":"code","b":[24],"m":"clc"},{"a":14015,"t":"code","b":[109,6,208],"m":"adc","o":"vic_sprite3_x"},{"a":14018,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":14021,"t":"code","b":[144,39],"m":"bcc","oa":14062,"o":"b_36EE"},{"a":14023,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":14026,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":14028,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":14031,"t":"code","b":[76,238,54],"m":"jmp","oa":14062,"o":"b_36EE"},{"a":14034,"l":"b_36D2","t":"code","b":[73,255],"m":"eor","o":"#$FF","x":[14012]},{"a":14036,"t":"code","b":[24],"m":"clc"},{"a":14037,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":14039,"t":"code","b":[141,36,55],"m":"sta","oa":14116,"o":"enemy_step_abs"},{"a":14042,"t":"code","b":[173,6,208],"m":"lda","o":"vic_sprite3_x"},{"a":14045,"t":"code","b":[56],"m":"sec"},{"a":14046,"t":"code","b":[237,36,55],"m":"sbc","oa":14116,"o":"enemy_step_abs"},{"a":14049,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":14052,"t":"code","b":[176,8],"m":"bcs","oa":14062,"o":"b_36EE"},{"a":14054,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":14057,"t":"code","b":[41,247],"m":"and","o":"#$F7"},{"a":14059,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":14062,"l":"b_36EE","t":"code","b":[173,83,55],"m":"lda","oa":14163,"o":"$3753","x":[14021,14031,14052]},{"a":14065,"t":"code","b":[48,20],"m":"bmi","oa":14087,"o":"b_3707"},{"a":14067,"t":"code","b":[24],"m":"clc"},{"a":14068,"t":"code","b":[109,10,208],"m":"adc","o":"vic_sprite5_x"},{"a":14071,"t":"code","b":[141,10,208],"m":"sta","o":"vic_sprite5_x"},{"a":14074,"t":"code","b":[144,39],"m":"bcc","oa":14115,"o":"r_3723"},{"a":14076,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":14079,"t":"code","b":[9,32],"m":"ora","o":"#$20"},{"a":14081,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":14084,"t":"code","b":[76,35,55],"m":"jmp","oa":14115,"o":"r_3723"},{"a":14087,"l":"b_3707","t":"code","b":[73,255],"m":"eor","o":"#$FF","x":[14065]},{"a":14089,"t":"code","b":[24],"m":"clc"},{"a":14090,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":14092,"t":"code","b":[141,36,55],"m":"sta","oa":14116,"o":"enemy_step_abs"},{"a":14095,"t":"code","b":[173,10,208],"m":"lda","o":"vic_sprite5_x"},{"a":14098,"t":"code","b":[56],"m":"sec"},{"a":14099,"t":"code","b":[237,36,55],"m":"sbc","oa":14116,"o":"enemy_step_abs"},{"a":14102,"t":"code","b":[141,10,208],"m":"sta","o":"vic_sprite5_x"},{"a":14105,"t":"code","b":[176,8],"m":"bcs","oa":14115,"o":"r_3723"},{"a":14107,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":14110,"t":"code","b":[41,223],"m":"and","o":"#$DF"},{"a":14112,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":14115,"l":"r_3723","t":"code","b":[96],"m":"rts","x":[14074,14084,14105]},{"a":14116,"l":"enemy_step_abs","c":"Scratch byte of place_enemies ($3639): the size of a negative enemy step, which it subtracts from the X of the upper sprite.","t":"byte","b":[8],"x":[14039,14046,14092,14099]},{"a":14117,"l":"move_enemies","c":"Calls $384E and $421F for each of two slots (X=0, 1), unless paused, then $3639.","t":"code","b":[173,242,30],"m":"lda","oa":7922,"o":"paused","x":[7790]},{"a":14120,"t":"code","b":[208,20],"m":"bne","oa":14142,"o":"b_373E"},{"a":14122,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":14124,"t":"code","b":[32,78,56],"m":"jsr","oa":14414,"o":"enemy_frame"},{"a":14127,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":14129,"t":"code","b":[32,31,66],"m":"jsr","oa":16927,"o":"enemy_hit_check"},{"a":14132,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":14134,"t":"code","b":[32,78,56],"m":"jsr","oa":14414,"o":"enemy_frame"},{"a":14137,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":14139,"t":"code","b":[32,31,66],"m":"jsr","oa":16927,"o":"enemy_hit_check"},{"a":14142,"l":"b_373E","t":"code","b":[32,57,54],"m":"jsr","oa":13881,"o":"place_enemies","x":[14120]},{"a":14145,"t":"code","b":[96],"m":"rts"},{"a":14146,"l":"enemy_state","c":"State of enemy slot 0 ($3742) and slot 1 ($3743). 0 means the slot is empty, 1 waiting, 2 walking left, 3 walking right, 4 throwing, 5 dying, 6 punching right, 7 punching left and 8 leaping. enemy_frame ($384E) runs the routine of the state from enemy_state_table ($38D9); blocked_left ($17CD) skips a slot in state 0 or 5.","t":"byte","b":[7,2],"x":[6095,6188,6846,8412,12730,13687,14426,15181,15420,15513,15687,15799,15838,16061,16372,16412,16427,16455,16941,16993,17057,17101,17165,17357]},{"a":14148,"l":"enemy_x","c":"X position of enemy slot 0 ($3744) and slot 1 ($3745), low byte; the ninth bit is in $3746 and $3747. place_enemies ($3639) writes it to the sprite registers.","t":"byte","b":[142,39],"x":[6166,6256,8394,8400,12752,13919,14414,14453,14506,14967,14972,14987,14992,15005,15015,15190,15867,15873,15894,16090,16096,16117,16343,16353,16480,16613,16639,17020,17025,17046,17073,17128,17133,17154,17181,17213,17246,17285,17318]},{"a":14150,"l":"enemy_x_hi","c":"The ninth bit of the X position of enemy slots 0 and 1 (see enemy_x at $3744).","t":"byte","b":[0,0],"x":[6152,6173,6245,6263,8403,8415,12737,13931,14420,14461,14514,14975,14980,14995,15000,15196,15877,15882,15900,16100,16105,16123,16338,16467,16624,16650,17029,17034,17052,17079,17137,17142,17160,17187,17199,17220,17235,17253,17271,17292,17307,17325]},{"a":14152,"l":"enemy_y","c":"Y position of enemy slot 0 ($3748) and slot 1 ($3749). place_enemies ($3639) writes it to the upper sprite and 21 lines more to the lower one.","t":"byte","b":[120,120],"x":[6110,6203,12757,13895,14488,14541,14944,14951,15184,15528,15975,16000,16010,16027,16598,16948,16971]},{"a":14154,"l":"enemy_dir","c":"Direction of enemy slots 0 and 1: 0 or 1.","t":"byte","b":[0,0],"x":[12740,12780,12785,14961,15018,15693,15819,15849,16042,16072,16203,16222,16251,16280,16405,16489,16497,16607,16697]},{"a":14156,"l":"enemy_frame_lo","c":"The sprite pointer of the upper sprite of enemy slot 0 ($374C) and slot 1 ($374D). place_enemies ($3639) writes them to $CFFB/$CBFB and $CFFD/$CBFD (sprites 3 and 5). enemy_wind_up_frame ($3F46), enemy_attack_frame ($3F76) and the frame tables set them.","t":"byte","b":[69,67],"x":[13973,15026,15067,15112,15232,15560,15571,15590,15601,15620,15631,15681,15721,15732,15751,15767,15938,15959,16161,16182,16238,16306]},{"a":14158,"l":"enemy_frame_hi","c":"The sprite pointer of the lower sprite of enemy slot 0 ($374E) and slot 1 ($374F). place_enemies ($3639) writes them to $CFFC/$CBFC and $CFFE/$CBFE (sprites 4 and 6).","t":"byte","b":[74,76],"x":[13991,15058,15099,15235,15565,15576,15595,15606,15625,15636,15678,15726,15737,15756,15772,15944,15965,16167,16188,16242,16310]},{"a":14160,"l":"enemy_count","c":"Counter of enemy slots 0 and 1: enemy_punch ($3BEC) counts it up, enemy_damage ($43BF) clears it.","t":"byte","b":[6,3],"x":[12762,14874,14880,14899,14904,14919,15341,15346,15383,15429,15434,15439,15476,15522,15541,15547,15698,15703,15808,15843,15852,15864,16066,16075,16087,16322,16330,16382,16421,16436,16460,17362]},{"a":14162,"l":"enemy_step","c":"Pixels that enemy slot 0 ($3752) and slot 1 ($3753) shift their upper sprite on each frame, as a signed byte ($F8 or $08 in an attack); set by enemy_punch ($3BEC) and enemy_attack_frame ($3F76) and added by place_enemies ($3639) to the X of the upper sprite only.","t":"byte","b":[248,0],"x":[14009,14871,15051,15092,15355,15415,15448,15508,15534,15712,15761,15777,15814,15950,15971,16039,16173,16194,16258,16270,16287,16299,16316]},{"a":14164,"l":"enemy_kind","c":"Type of enemy slots 0 and 1; 0 or not 0 picks the frames in enemy_wind_up_frame ($3F46) and enemy_attack_frame ($3F76).","t":"byte","b":[0,0],"x":[12777,15537,15930,16153,16198,16246,16445]},{"a":14166,"l":"enemy_walk_index","c":"The step in the walk tables of enemy slot 0 ($3756) and slot 1 ($3757), 0 to 19. enemy_walk_left ($3EA5) and enemy_walk_right ($3DC4) add 1 on each frame (back to 0 at 20) and read the sprite pointers and step at that index.","t":"byte","b":[18,10],"x":[15914,15926,16137,16149]},{"a":14168,"l":"enemy_energy","c":"Energy of enemy slots 0 and 1; enemy_damage ($43BF) takes 1 from it and the slot dies when it is 0.","t":"byte","b":[1,1],"x":[12770,15174,17000,17008,17108,17116,17343,17351]},{"a":14170,"l":"enemy_hurt","c":"Set to $0A for enemy slots 0 and 1 by enemy_hit_check ($421F) when a blow lands.","t":"byte","b":[0,0],"x":[12790,15165,15217,15223,17013,17121]},{"a":14172,"l":"walk_a_upper","c":"Upper sprite pointers for 20 frames of the walk to the left of an enemy of kind 0 (state 2): $43 five times, $44 five times, $43 five times and $44 five times. enemy_walk_left ($3EA5) reads it at the index $3756,X.","t":"byte","b":[67,67,67,67,67,68,68,68],"x":[16158]},{"a":14180,"t":"byte","b":[68,68,67,67,67,67,67,68]},{"a":14188,"t":"byte","b":[68,68,68,68]},{"a":14192,"l":"walk_a_lower","c":"Lower sprite pointers for the same 20 frames: $4A, $4B, $4C and $4D five times each. enemy_walk_left ($3EA5) reads it.","t":"byte","b":[74,74,74,74,74,75,75,75],"x":[16164]},{"a":14200,"t":"byte","b":[75,75,76,76,76,76,76,77]},{"a":14208,"t":"byte","b":[77,77,77,77]},{"a":14212,"l":"walk_a_step","c":"The 20 values of enemy_step for the walk to the left of kind 0, all 0. enemy_walk_left ($3EA5) copies the one at the index to $3752,X.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[16170]},{"a":14220,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":14228,"t":"byte","b":[0,0,0,0]},{"a":14232,"l":"walk_b_upper","c":"Upper sprite pointers for 20 frames of the walk to the right of an enemy of kind 0 (state 3): $40 five times, $41 five times, $40 five times and $41 five times. enemy_walk_right ($3DC4) reads it.","t":"byte","b":[64,64,64,64,64,65,65,65],"x":[15935]},{"a":14240,"t":"byte","b":[65,65,64,64,64,64,64,65]},{"a":14248,"t":"byte","b":[65,65,65,65]},{"a":14252,"l":"walk_b_lower","c":"Lower sprite pointers for the same 20 frames: $46, $47, $48 and $49 five times each. enemy_walk_right ($3DC4) reads it.","t":"byte","b":[70,70,70,70,70,71,71,71],"x":[15941]},{"a":14260,"t":"byte","b":[71,71,72,72,72,72,72,73]},{"a":14268,"t":"byte","b":[73,73,73,73]},{"a":14272,"l":"walk_b_step","c":"The 20 values of enemy_step for the walk to the right of kind 0, all 0. enemy_walk_right ($3DC4) copies the one at the index to $3752,X.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[15947]},{"a":14280,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":14288,"t":"byte","b":[0,0,0,0]},{"a":14292,"l":"walk_c_upper","c":"Upper sprite pointers for 20 frames of the walk to the left of an enemy of any other kind (state 2): $52 five times, $53 five times, $52 five times and $53 five times. enemy_walk_left ($3EA5) reads it.","t":"byte","b":[82,82,82,82,82,83,83,83],"x":[16179]},{"a":14300,"t":"byte","b":[83,83,82,82,82,82,82,83]},{"a":14308,"t":"byte","b":[83,83,83,83]},{"a":14312,"l":"walk_c_lower","c":"Lower sprite pointers for the same 20 frames: $4A, $4B, $4C and $4D five times each (the same as walk_a_lower). enemy_walk_left ($3EA5) reads it.","t":"byte","b":[74,74,74,74,74,75,75,75],"x":[16185]},{"a":14320,"t":"byte","b":[75,75,76,76,76,76,76,77]},{"a":14328,"t":"byte","b":[77,77,77,77]},{"a":14332,"l":"walk_c_step","c":"The 20 values of enemy_step for the walk to the left of the other kinds, all 0. enemy_walk_left ($3EA5) reads it.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[16191]},{"a":14340,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":14348,"t":"byte","b":[0,0,0,0]},{"a":14352,"l":"walk_d_upper","c":"Upper sprite pointers for 20 frames of the walk to the right of an enemy of any other kind (state 3): $4E five times, $4F five times, $4E five times and $4F five times. enemy_walk_right ($3DC4) reads it.","t":"byte","b":[78,78,78,78,78,79,79,79],"x":[15956]},{"a":14360,"t":"byte","b":[79,79,78,78,78,78,78,79]},{"a":14368,"t":"byte","b":[79,79,79,79]},{"a":14372,"l":"walk_d_lower","c":"Lower sprite pointers for the same 20 frames: $46, $47, $48 and $49 five times each (the same as walk_b_lower). enemy_walk_right ($3DC4) reads it.","t":"byte","b":[70,70,70,70,70,71,71,71],"x":[15962]},{"a":14380,"t":"byte","b":[71,71,72,72,72,72,72,73]},{"a":14388,"t":"byte","b":[73,73,73,73]},{"a":14392,"l":"walk_d_step","c":"The 20 values of enemy_step for the walk to the right of the other kinds, all 0. enemy_walk_right ($3DC4) reads it.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[15968]},{"a":14400,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":14408,"t":"byte","b":[0,0,0,0]},{"a":14412,"l":"enemy_x_saved","c":"The X position of the enemy slot being run, low byte at $384C and high byte at $384D, stored by enemy_frame ($384E). The enemy routines and enemy_hit_check ($421F) put it back when a move would take the enemy to a wall or off the screen.","t":"byte","b":[41,0],"x":[14417,15012,15891,16114,17043,17070,17151,17178]},{"a":14414,"l":"enemy_frame","c":"For enemy slot X: saves the slot's X position in $384C and $384D, takes the address for the state in $3742,X from the table at $38D9 (enemy_state_table), stores it in the operand of the JSR at $386B and calls it.","t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x","x":[14124,14134]},{"a":14417,"t":"code","b":[141,76,56],"m":"sta","oa":14412,"o":"enemy_x_saved"},{"a":14420,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":14423,"t":"code","b":[141,77,56],"m":"sta","oa":14413,"o":"$384D"},{"a":14426,"t":"code","b":[189,66,55],"m":"lda","oa":14146,"o":"enemy_state,x"},{"a":14429,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14430,"t":"code","b":[168],"m":"tay"},{"a":14431,"t":"code","b":[185,217,56],"m":"lda","oa":14553,"o":"enemy_state_table,y"},{"a":14434,"t":"code","b":[141,108,56],"m":"sta","oa":14444,"o":"enemy_routine"},{"a":14437,"t":"code","b":[185,218,56],"m":"lda","oa":14554,"o":"$38DA,y"},{"a":14440,"t":"code","b":[141,109,56],"m":"sta","oa":14445,"o":"$386D"},{"a":14443,"t":"code","b":[32,165,62],"m":"jsr","oa":16037,"o":"enemy_walk_left"},{"a":14444,"t":"note","l":"enemy_routine","c":"The operand of the JSR at $386B: enemy_frame ($384E) stores the address of the routine for the slot's state here, low byte at $386C and high byte at $386D, taken from enemy_state_table. The RTS after it at $386E ends enemy_frame.","note":"inside the item at $386B","x":[14434]},{"a":14446,"t":"code","b":[96],"m":"rts"},{"a":14447,"l":"probe_enemy_right","c":"Sets the point for a tile lookup 8 pixels to the right of enemy slot X and calls tile_at_probe ($309D): X is $3744,X and $3746,X plus 8 plus the fine scroll $1EF3, put in $3063 and $3065, and Y is $3748,X plus $22, put in $3064. A is the screen code under that point. Called by the enemy code at $3E23 and by enemy_hit_check at $42A7.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[15907,17063]},{"a":14449,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":14452,"t":"code","b":[24],"m":"clc"},{"a":14453,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":14456,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":14458,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":14461,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":14464,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":14466,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":14469,"t":"code","b":[173,99,48],"m":"lda","oa":12387,"o":"probe_x"},{"a":14472,"t":"code","b":[24],"m":"clc"},{"a":14473,"t":"code","b":[109,243,30],"m":"adc","oa":7923,"o":"fine_scroll"},{"a":14476,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":14479,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":14482,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":14484,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":14487,"t":"code","b":[24],"m":"clc"},{"a":14488,"t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x"},{"a":14491,"t":"code","b":[105,34],"m":"adc","o":"#$22"},{"a":14493,"t":"code","b":[141,100,48],"m":"sta","oa":12388,"o":"probe_y"},{"a":14496,"t":"code","b":[32,157,48],"m":"jsr","oa":12445,"o":"tile_at_probe"},{"a":14499,"t":"code","b":[96],"m":"rts"},{"a":14500,"l":"probe_enemy_left","c":"The same as probe_enemy_right ($386F) for the point 8 pixels to the left of enemy slot X: X is $3744,X and $3746,X minus 8 plus the fine scroll $1EF3. A is the screen code under it. Called by the enemy code at $3F02 and by enemy_hit_check at $4313.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[16130,17171]},{"a":14502,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":14505,"t":"code","b":[56],"m":"sec"},{"a":14506,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":14509,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":14511,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":14514,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":14517,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":14519,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":14522,"t":"code","b":[173,99,48],"m":"lda","oa":12387,"o":"probe_x"},{"a":14525,"t":"code","b":[24],"m":"clc"},{"a":14526,"t":"code","b":[109,243,30],"m":"adc","oa":7923,"o":"fine_scroll"},{"a":14529,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":14532,"t":"code","b":[173,101,48],"m":"lda","oa":12389,"o":"probe_x_hi"},{"a":14535,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":14537,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":14540,"t":"code","b":[24],"m":"clc"},{"a":14541,"t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x"},{"a":14544,"t":"code","b":[105,34],"m":"adc","o":"#$22"},{"a":14546,"t":"code","b":[141,100,48],"m":"sta","oa":12388,"o":"probe_y"},{"a":14549,"t":"code","b":[32,157,48],"m":"jsr","oa":12445,"o":"tile_at_probe"},{"a":14552,"t":"code","b":[96],"m":"rts"},{"a":14553,"l":"enemy_state_table","c":"Nine routine addresses, low byte first, one for each enemy state: 0 is enemy_gone ($3CA6), 1 enemy_wait ($3FBA), 2 enemy_walk_left ($3EA5), 3 enemy_walk_right ($3DC4), 4 enemy_throw ($3D4D), 5 enemy_dying ($3CAC), 6 enemy_punch ($3BEC), 7 enemy_punch_left ($3C49) and 8 enemy_leap ($3A15). enemy_frame ($384E) calls the one for the slot's state $3742,X.","t":"byte","b":[166,60,186,63,165,62,196,61],"x":[14431]},{"a":14561,"t":"byte","b":[77,61,172,60,236,59,73,60]},{"a":14569,"t":"byte","b":[21,58]},{"a":14571,"l":"leap_frames_left","c":"Upper sprite pointers for the 99 steps of the leap of an enemy with direction 0 (enemy_leap, $3A15): $65 once, $66 21 times, $67 37 times, $65 10 times, $68 15 times, $60 14 times and $65. The lower pointer is this plus 4.","t":"byte","b":[101,102,102,102,102,102,102,102],"x":[15064]},{"a":14579,"t":"byte","b":[102,102,102,102,102,102,102,102]},{"a":14587,"t":"byte","b":[102,102,102,102,102,102,103,103]},{"a":14595,"t":"byte","b":[103,103,103,103,103,103,103,103]},{"a":14603,"t":"byte","b":[103,103,103,103,103,103,103,103]},{"a":14611,"t":"byte","b":[103,103,103,103,103,103,103,103]},{"a":14619,"t":"byte","b":[103,103,103,103,103,103,103,103]},{"a":14627,"t":"byte","b":[103,103,103,101,101,101,101,101]},{"a":14635,"t":"byte","b":[101,101,101,101,101,104,104,104]},{"a":14643,"t":"byte","b":[104,104,104,104,104,104,104,104]},{"a":14651,"t":"byte","b":[104,104,104,104,96,96,96,96]},{"a":14659,"t":"byte","b":[96,96,96,96,96,96,96,96]},{"a":14667,"t":"byte","b":[96,96,101]},{"a":14670,"l":"leap_frames_right","c":"Upper sprite pointers for the 99 steps of the leap of an enemy with direction 1 (enemy_leap, $3A15): $5D once, $5E 21 times, $5F 37 times, $5D 10 times, $60 15 times, $68 14 times and $5D. The lower pointer is this plus 4.","t":"byte","b":[93,94,94,94,94,94,94,94],"x":[15023]},{"a":14678,"t":"byte","b":[94,94,94,94,94,94,94,94]},{"a":14686,"t":"byte","b":[94,94,94,94,94,94,95,95]},{"a":14694,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":14702,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":14710,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":14718,"t":"byte","b":[95,95,95,95,95,95,95,95]},{"a":14726,"t":"byte","b":[95,95,95,93,93,93,93,93]},{"a":14734,"t":"byte","b":[93,93,93,93,93,96,96,96]},{"a":14742,"t":"byte","b":[96,96,96,96,96,96,96,96]},{"a":14750,"t":"byte","b":[96,96,96,96,104,104,104,104]},{"a":14758,"t":"byte","b":[104,104,104,104,104,104,104,104]},{"a":14766,"t":"byte","b":[104,104,93]},{"a":14769,"l":"leap_dy","c":"The height change for each step of the leap (100 bytes): 0, then -4, -3, -2 and -1 for 7 steps each (the enemy rises), 0 twice, then +1, +2, +3 and +4 for 7 steps each (it comes down), $14 40 times (it stays on the ground, with no change of X either), ended by $80. enemy_leap ($3A15) adds the byte at the index $3750,X to the enemy's Y.","t":"byte","b":[0,252,252,252,252,252,252,252],"x":[14884,14908,14938,14954]},{"a":14777,"t":"byte","b":[253,253,253,253,253,253,253,254]},{"a":14785,"t":"byte","b":[254,254,254,254,254,254,255,255]},{"a":14793,"t":"byte","b":[255,255,255,255,255,0,0,1]},{"a":14801,"t":"byte","b":[1,1,1,1,1,1,2,2]},{"a":14809,"t":"byte","b":[2,2,2,2,2,3,3,3]},{"a":14817,"t":"byte","b":[3,3,3,3,4,4,4,4]},{"a":14825,"t":"byte","b":[4,4,4,20,20,20,20,20]},{"a":14833,"t":"byte","b":[20,20,20,20,20,20,20,20]},{"a":14841,"t":"byte","b":[20,20,20,20,20,20,20,20]},{"a":14849,"t":"byte","b":[20,20,20,20,20,20,20,20]},{"a":14857,"t":"byte","b":[20,20,20,20,20,20,20,20]},{"a":14865,"t":"byte","b":[20,20,20,128]},{"a":14869,"l":"enemy_leap","c":"Enemy handler for state 8 (a leap), run through enemy_frame ($384E). It clears the step $3752,X, adds 1 to the count $3750,X and reads the height change at that index from leap_dy ($39B1): $14 means no movement; $80 ends the leap, when a random number below $32 holds the last step and otherwise the enemy turns to face Darkman (enemy_face_player, $4050) and starts again at 0. Any other change is added to the enemy's Y and the X moves 1 pixel in the direction $374A,X (to the saved X if it would pass $0A on the left). The upper pointer comes from leap_frames_right ($394E) for direction 1 and leap_frames_left ($38EB) for direction 0, the lower is that plus 4. Pointer $60 calls enemy_leap_hit_right ($3B87) and sets the step to 8, pointer $68 calls enemy_leap_hit_left ($3BB9) and sets it to $F8.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":14871,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":14874,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":14877,"t":"code","b":[24],"m":"clc"},{"a":14878,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":14880,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":14883,"t":"code","b":[168],"m":"tay"},{"a":14884,"t":"code","b":[185,177,57],"m":"lda","oa":14769,"o":"leap_dy,y"},{"a":14887,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":14889,"t":"code","b":[208,35],"m":"bne","oa":14926,"o":"$3A4E"},{"a":14891,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":14894,"t":"code","b":[201,50],"m":"cmp","o":"#$32"},{"a":14896,"t":"code","b":[144,16],"m":"bcc","oa":14914,"o":"$3A42"},{"a":14898,"t":"code","b":[56],"m":"sec"},{"a":14899,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":14902,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":14904,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":14907,"t":"code","b":[168],"m":"tay"},{"a":14908,"t":"code","b":[185,177,57],"m":"lda","oa":14769,"o":"leap_dy,y"},{"a":14911,"t":"code","b":[76,78,58],"m":"jmp","oa":14926,"o":"$3A4E"},{"a":14914,"t":"code","b":[32,80,64],"m":"jsr","oa":16464,"o":"enemy_face_player","x":[14896]},{"a":14917,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":14919,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":14922,"t":"code","b":[168],"m":"tay"},{"a":14923,"t":"code","b":[76,90,58],"m":"jmp","oa":14938,"o":"$3A5A"},{"a":14926,"t":"code","b":[201,20],"m":"cmp","o":"#$14","x":[14889,14911]},{"a":14928,"t":"code","b":[208,8],"m":"bne","oa":14938,"o":"$3A5A"},{"a":14930,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":14932,"t":"code","b":[141,235,59],"m":"sta","oa":15339,"o":"enemy_leap_dy"},{"a":14935,"t":"code","b":[76,96,58],"m":"jmp","oa":14944,"o":"$3A60"},{"a":14938,"t":"code","b":[185,177,57],"m":"lda","oa":14769,"o":"leap_dy,y","x":[14923,14928]},{"a":14941,"t":"code","b":[141,235,59],"m":"sta","oa":15339,"o":"enemy_leap_dy"},{"a":14944,"t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x","x":[14935]},{"a":14947,"t":"code","b":[24],"m":"clc"},{"a":14948,"t":"code","b":[109,235,59],"m":"adc","oa":15339,"o":"enemy_leap_dy"},{"a":14951,"t":"code","b":[157,72,55],"m":"sta","oa":14152,"o":"enemy_y,x"},{"a":14954,"t":"code","b":[185,177,57],"m":"lda","oa":14769,"o":"leap_dy,y"},{"a":14957,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":14959,"t":"code","b":[240,57],"m":"beq","oa":15018,"o":"$3AAA"},{"a":14961,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":14964,"t":"code","b":[240,20],"m":"beq","oa":14986,"o":"$3A8A"},{"a":14966,"t":"code","b":[24],"m":"clc"},{"a":14967,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":14970,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":14972,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":14975,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":14978,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":14980,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":14983,"t":"code","b":[76,170,58],"m":"jmp","oa":15018,"o":"$3AAA"},{"a":14986,"t":"code","b":[56],"m":"sec","x":[14964]},{"a":14987,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":14990,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":14992,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":14995,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":14998,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":15000,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":15003,"t":"code","b":[208,13],"m":"bne","oa":15018,"o":"$3AAA"},{"a":15005,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":15008,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":15010,"t":"code","b":[176,6],"m":"bcs","oa":15018,"o":"$3AAA"},{"a":15012,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved"},{"a":15015,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":15018,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x","x":[14959,14983,15003,15010]},{"a":15021,"t":"code","b":[240,41],"m":"beq","oa":15064,"o":"$3AD8"},{"a":15023,"t":"code","b":[185,78,57],"m":"lda","oa":14670,"o":"leap_frames_right,y"},{"a":15026,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15029,"t":"code","b":[72],"m":"pha"},{"a":15030,"t":"code","b":[201,96],"m":"cmp","o":"#$60"},{"a":15032,"t":"code","b":[208,8],"m":"bne","oa":15042,"o":"$3AC2"},{"a":15034,"t":"code","b":[32,135,59],"m":"jsr","oa":15239,"o":"enemy_leap_hit_right"},{"a":15037,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15039,"t":"code","b":[76,203,58],"m":"jmp","oa":15051,"o":"$3ACB"},{"a":15042,"t":"code","b":[201,104],"m":"cmp","o":"#$68","x":[15032]},{"a":15044,"t":"code","b":[208,8],"m":"bne","oa":15054,"o":"$3ACE"},{"a":15046,"t":"code","b":[32,185,59],"m":"jsr","oa":15289,"o":"enemy_leap_hit_left"},{"a":15049,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":15051,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x","x":[15039]},{"a":15054,"t":"code","b":[104],"m":"pla","x":[15044]},{"a":15055,"t":"code","b":[24],"m":"clc"},{"a":15056,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":15058,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15061,"t":"code","b":[76,254,58],"m":"jmp","oa":15102,"o":"enemy_leap_contact"},{"a":15064,"t":"code","b":[185,235,56],"m":"lda","oa":14571,"o":"leap_frames_left,y","x":[15021]},{"a":15067,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15070,"t":"code","b":[72],"m":"pha"},{"a":15071,"t":"code","b":[201,96],"m":"cmp","o":"#$60"},{"a":15073,"t":"code","b":[208,8],"m":"bne","oa":15083,"o":"$3AEB"},{"a":15075,"t":"code","b":[32,135,59],"m":"jsr","oa":15239,"o":"enemy_leap_hit_right"},{"a":15078,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15080,"t":"code","b":[76,244,58],"m":"jmp","oa":15092,"o":"$3AF4"},{"a":15083,"t":"code","b":[201,104],"m":"cmp","o":"#$68","x":[15073]},{"a":15085,"t":"code","b":[208,8],"m":"bne","oa":15095,"o":"$3AF7"},{"a":15087,"t":"code","b":[32,185,59],"m":"jsr","oa":15289,"o":"enemy_leap_hit_left"},{"a":15090,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":15092,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x","x":[15080]},{"a":15095,"t":"code","b":[104],"m":"pla","x":[15085]},{"a":15096,"t":"code","b":[24],"m":"clc"},{"a":15097,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":15099,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15102,"l":"enemy_leap_contact","c":"The contact test at the end of enemy_leap ($3A15). When Darkman is not stunned ($29F3 is 0), the grace timer hit_grace ($29F4) is 0, the upper pointer is $5F or $67 and enemy_height_test_2 ($3E8A) returns 0, it asks enemy_near_right ($4377) and enemy_near_left ($439B) whether he is within 9 pixels, and if so ORs $1F into his stored stick $203B (no direction), sets the stun timer $29F3 to 4 and hit_grace to $0A and calls player_hurt ($43E4).","t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer","x":[15061]},{"a":15105,"t":"code","b":[208,58],"m":"bne","oa":15165,"o":"enemy_leap_hurt"},{"a":15107,"t":"code","b":[173,244,41],"m":"lda","oa":10740,"o":"hit_grace"},{"a":15110,"t":"code","b":[208,53],"m":"bne","oa":15165,"o":"enemy_leap_hurt"},{"a":15112,"t":"code","b":[189,76,55],"m":"lda","oa":14156,"o":"enemy_frame_lo,x"},{"a":15115,"t":"code","b":[201,95],"m":"cmp","o":"#$5F"},{"a":15117,"t":"code","b":[240,4],"m":"beq","oa":15123,"o":"$3B13"},{"a":15119,"t":"code","b":[201,103],"m":"cmp","o":"#$67"},{"a":15121,"t":"code","b":[208,42],"m":"bne","oa":15165,"o":"enemy_leap_hurt"},{"a":15123,"t":"code","b":[32,138,62],"m":"jsr","oa":16010,"o":"enemy_height_test_2","x":[15117]},{"a":15126,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15128,"t":"code","b":[208,35],"m":"bne","oa":15165,"o":"enemy_leap_hurt"},{"a":15130,"t":"code","b":[32,119,67],"m":"jsr","oa":17271,"o":"enemy_near_right"},{"a":15133,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15135,"t":"code","b":[208,7],"m":"bne","oa":15144,"o":"$3B28"},{"a":15137,"t":"code","b":[32,155,67],"m":"jsr","oa":17307,"o":"enemy_near_left"},{"a":15140,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15142,"t":"code","b":[240,21],"m":"beq","oa":15165,"o":"enemy_leap_hurt"},{"a":15144,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[15135]},{"a":15147,"t":"code","b":[9,31],"m":"ora","o":"#$1F"},{"a":15149,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":15152,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15154,"t":"code","b":[141,243,41],"m":"sta","oa":10739,"o":"stun_timer"},{"a":15157,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":15159,"t":"code","b":[141,244,41],"m":"sta","oa":10740,"o":"hit_grace"},{"a":15162,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":15165,"l":"enemy_leap_hurt","c":"The last part of enemy_leap ($3A15), run on every frame. While enemy_hurt $375A,X is 0 it returns. When it is 1 and the energy $3758,X is 0 the enemy is dead: state 0, the exit marker sprite's position $3546-$3548 is set to the enemy's X and Y, and 3 is added to digit 4 of the score through add_digits ($44D1) (300 points by the reckoning of enemy_damage). Otherwise it takes 1 from enemy_hurt and, when the result is even, sets both sprite pointers to $C5 so that the enemy blinks.","t":"code","b":[189,90,55],"m":"lda","oa":14170,"o":"enemy_hurt,x","x":[15105,15110,15121,15128,15142]},{"a":15168,"t":"code","b":[240,68],"m":"beq","oa":15238,"o":"$3B86"},{"a":15170,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15172,"t":"code","b":[208,43],"m":"bne","oa":15217,"o":"$3B71"},{"a":15174,"t":"code","b":[189,88,55],"m":"lda","oa":14168,"o":"enemy_energy,x"},{"a":15177,"t":"code","b":[208,38],"m":"bne","oa":15217,"o":"$3B71"},{"a":15179,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15181,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":15184,"t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x"},{"a":15187,"t":"code","b":[141,72,53],"m":"sta","oa":13640,"o":"marker_y"},{"a":15190,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":15193,"t":"code","b":[141,70,53],"m":"sta","oa":13638,"o":"marker_x"},{"a":15196,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":15199,"t":"code","b":[141,71,53],"m":"sta","oa":13639,"o":"$3547"},{"a":15202,"t":"code","b":[142,109,59],"m":"stx","oa":15213,"o":"$3B6D"},{"a":15205,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":15207,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":15209,"t":"code","b":[32,209,68],"m":"jsr","oa":17617,"o":"add_digits"},{"a":15212,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":15214,"t":"code","b":[76,134,59],"m":"jmp","oa":15238,"o":"$3B86"},{"a":15217,"t":"code","b":[189,90,55],"m":"lda","oa":14170,"o":"enemy_hurt,x","x":[15172,15177]},{"a":15220,"t":"code","b":[56],"m":"sec"},{"a":15221,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":15223,"t":"code","b":[157,90,55],"m":"sta","oa":14170,"o":"enemy_hurt,x"},{"a":15226,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":15228,"t":"code","b":[208,8],"m":"bne","oa":15238,"o":"$3B86"},{"a":15230,"t":"code","b":[169,197],"m":"lda","o":"#$C5"},{"a":15232,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15235,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15238,"t":"code","b":[96],"m":"rts","x":[15168,15214,15228]},{"a":15239,"l":"enemy_leap_hit_right","c":"Called by enemy_leap ($3A15) for the pointer $60, a blow to the right. When Darkman is not stunned, hit_grace ($29F4) is 0, the heights match (enemy_height_test returns 0) and he is within $1E pixels to the right of the enemy (enemy_left_gap returns 0), it clears the right bit of his stored stick $203B, sets the stun timer $29F3 to 4 and hit_grace to $0A and calls player_hurt ($43E4). A is kept on the stack.","t":"code","b":[72],"m":"pha","x":[15034,15075]},{"a":15240,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":15243,"t":"code","b":[208,42],"m":"bne","oa":15287,"o":"$3BB7"},{"a":15245,"t":"code","b":[173,244,41],"m":"lda","oa":10740,"o":"hit_grace"},{"a":15248,"t":"code","b":[208,37],"m":"bne","oa":15287,"o":"$3BB7"},{"a":15250,"t":"code","b":[32,103,62],"m":"jsr","oa":15975,"o":"enemy_height_test"},{"a":15253,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15255,"t":"code","b":[208,30],"m":"bne","oa":15287,"o":"$3BB7"},{"a":15257,"t":"code","b":[32,47,67],"m":"jsr","oa":17199,"o":"enemy_left_gap"},{"a":15260,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15262,"t":"code","b":[240,23],"m":"beq","oa":15287,"o":"$3BB7"},{"a":15264,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":15267,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":15269,"t":"code","b":[41,247],"m":"and","o":"#$F7"},{"a":15271,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":15274,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15276,"t":"code","b":[141,243,41],"m":"sta","oa":10739,"o":"stun_timer"},{"a":15279,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":15281,"t":"code","b":[141,244,41],"m":"sta","oa":10740,"o":"hit_grace"},{"a":15284,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":15287,"t":"code","b":[104],"m":"pla","x":[15243,15248,15255,15262]},{"a":15288,"t":"code","b":[96],"m":"rts"},{"a":15289,"l":"enemy_leap_hit_left","c":"Called by enemy_leap ($3A15) for the pointer $68, a blow to the left. The same as enemy_leap_hit_right ($3B87) with the test enemy_right_gap ($4353) and the left bit of the stick $203B cleared.","t":"code","b":[72],"m":"pha","x":[15046,15087]},{"a":15290,"t":"code","b":[173,243,41],"m":"lda","oa":10739,"o":"stun_timer"},{"a":15293,"t":"code","b":[208,42],"m":"bne","oa":15337,"o":"$3BE9"},{"a":15295,"t":"code","b":[173,244,41],"m":"lda","oa":10740,"o":"hit_grace"},{"a":15298,"t":"code","b":[208,37],"m":"bne","oa":15337,"o":"$3BE9"},{"a":15300,"t":"code","b":[32,103,62],"m":"jsr","oa":15975,"o":"enemy_height_test"},{"a":15303,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15305,"t":"code","b":[208,30],"m":"bne","oa":15337,"o":"$3BE9"},{"a":15307,"t":"code","b":[32,83,67],"m":"jsr","oa":17235,"o":"enemy_right_gap"},{"a":15310,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15312,"t":"code","b":[240,23],"m":"beq","oa":15337,"o":"$3BE9"},{"a":15314,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":15317,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":15319,"t":"code","b":[41,251],"m":"and","o":"#$FB"},{"a":15321,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":15324,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15326,"t":"code","b":[141,243,41],"m":"sta","oa":10739,"o":"stun_timer"},{"a":15329,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":15331,"t":"code","b":[141,244,41],"m":"sta","oa":10740,"o":"hit_grace"},{"a":15334,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":15337,"t":"code","b":[104],"m":"pla","x":[15293,15298,15305,15312]},{"a":15338,"t":"code","b":[96],"m":"rts"},{"a":15339,"l":"enemy_leap_dy","c":"The height change of the current step of the leap: enemy_leap ($3A15) sets it to the byte of leap_dy ($39B1), or 0 for $14, and adds it to the enemy's Y.","t":"byte","b":[0],"x":[14932,14941,14948]},{"a":15340,"l":"enemy_punch","c":"Enemy handler for state 6 (entry 6 of the table at $38D9), run through enemy_frame ($384E). It adds 1 to the count $3750,X. Below 6 it sets the step $3752,X to 0 and the wind-up frame ($3F46). From 6 to $13 it sets the attack frame and step ($3F76) and, when the enemy is level with Darkman ($3E67 returns 0) and he is within $1E pixels to its right ($432F returns 0), at count 6 it clears bit 3 of the joystick byte $203B, sets the stun timer $29F3 to 4 and calls player_hurt ($43E4). From $14 to $1D it shows the wind-up frame again; at $1E it sets the step to 0, the state $3742,X to 1 and the count to a random number divided by 8.","t":"code","b":[24],"m":"clc"},{"a":15341,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15344,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":15346,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15349,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":15351,"t":"code","b":[176,9],"m":"bcs","oa":15362,"o":"b_3C02"},{"a":15353,"l":"b_3BF9","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[15411]},{"a":15355,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15358,"t":"code","b":[32,70,63],"m":"jsr","oa":16198,"o":"enemy_wind_up_frame"},{"a":15361,"t":"code","b":[96],"m":"rts"},{"a":15362,"l":"b_3C02","t":"code","b":[201,20],"m":"cmp","o":"#$14","x":[15351]},{"a":15364,"t":"code","b":[176,43],"m":"bcs","oa":15409,"o":"b_3C31"},{"a":15366,"t":"code","b":[32,118,63],"m":"jsr","oa":16246,"o":"enemy_attack_frame"},{"a":15369,"t":"code","b":[32,103,62],"m":"jsr","oa":15975,"o":"enemy_height_test"},{"a":15372,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15374,"t":"code","b":[208,32],"m":"bne","oa":15408,"o":"r_3C30"},{"a":15376,"t":"code","b":[32,47,67],"m":"jsr","oa":17199,"o":"enemy_left_gap"},{"a":15379,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15381,"t":"code","b":[240,25],"m":"beq","oa":15408,"o":"r_3C30"},{"a":15383,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15386,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":15388,"t":"code","b":[208,18],"m":"bne","oa":15408,"o":"r_3C30"},{"a":15390,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":15393,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":15395,"t":"code","b":[41,247],"m":"and","o":"#$F7"},{"a":15397,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":15400,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15402,"t":"code","b":[141,243,41],"m":"sta","oa":10739,"o":"stun_timer"},{"a":15405,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":15408,"l":"r_3C30","t":"code","b":[96],"m":"rts","x":[15374,15381,15388]},{"a":15409,"l":"b_3C31","t":"code","b":[201,30],"m":"cmp","o":"#$1E","x":[15364]},{"a":15411,"t":"code","b":[144,196],"m":"bcc","oa":15353,"o":"b_3BF9"},{"a":15413,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15415,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15418,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15420,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":15423,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":15426,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15427,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15428,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15429,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15432,"t":"code","b":[96],"m":"rts"},{"a":15433,"l":"enemy_punch_left","c":"Enemy handler for state 7 (a punch to the left), run through enemy_frame ($384E), the mirror of enemy_punch ($3BEC). It adds 1 to the count $3750,X. Below 6 it shows the wind-up frame; from 6 to $13 the attack frame, and at count 6, when the enemy is level with Darkman and within $1E pixels to his right (enemy_right_gap returns 0), it clears the left bit of his stick $203B, sets the stun timer $29F3 to 4 and calls player_hurt ($43E4). From $14 to $1D it shows the wind-up frame again and at $1E it returns to state 1 with a random count.","t":"code","b":[24],"m":"clc"},{"a":15434,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15437,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":15439,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15442,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":15444,"t":"code","b":[176,9],"m":"bcs","oa":15455,"o":"$3C5F"},{"a":15446,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[15504]},{"a":15448,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15451,"t":"code","b":[32,70,63],"m":"jsr","oa":16198,"o":"enemy_wind_up_frame"},{"a":15454,"t":"code","b":[96],"m":"rts"},{"a":15455,"t":"code","b":[201,20],"m":"cmp","o":"#$14","x":[15444]},{"a":15457,"t":"code","b":[176,43],"m":"bcs","oa":15502,"o":"$3C8E"},{"a":15459,"t":"code","b":[32,118,63],"m":"jsr","oa":16246,"o":"enemy_attack_frame"},{"a":15462,"t":"code","b":[32,103,62],"m":"jsr","oa":15975,"o":"enemy_height_test"},{"a":15465,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15467,"t":"code","b":[208,32],"m":"bne","oa":15501,"o":"$3C8D"},{"a":15469,"t":"code","b":[32,83,67],"m":"jsr","oa":17235,"o":"enemy_right_gap"},{"a":15472,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15474,"t":"code","b":[240,25],"m":"beq","oa":15501,"o":"$3C8D"},{"a":15476,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15479,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":15481,"t":"code","b":[208,18],"m":"bne","oa":15501,"o":"$3C8D"},{"a":15483,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":15486,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":15488,"t":"code","b":[41,251],"m":"and","o":"#$FB"},{"a":15490,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":15493,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15495,"t":"code","b":[141,243,41],"m":"sta","oa":10739,"o":"stun_timer"},{"a":15498,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":15501,"t":"code","b":[96],"m":"rts","x":[15467,15474,15481]},{"a":15502,"t":"code","b":[201,30],"m":"cmp","o":"#$1E","x":[15457]},{"a":15504,"t":"code","b":[144,196],"m":"bcc","oa":15446,"o":"$3C56"},{"a":15506,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15508,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15511,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15513,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":15516,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":15519,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15520,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15521,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15522,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15525,"t":"code","b":[96],"m":"rts"},{"a":15526,"l":"enemy_gone","c":"Enemy handler for state 0, run through enemy_frame ($384E): sets the enemy's Y $3748,X to 0, which puts its sprites at the top of the screen.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15528,"t":"code","b":[157,72,55],"m":"sta","oa":14152,"o":"enemy_y,x"},{"a":15531,"t":"code","b":[96],"m":"rts"},{"a":15532,"l":"enemy_dying","c":"Enemy handler for state 5 (dying), run through enemy_frame ($384E). Clears the step and adds 1 to the count $3750,X. The upper and lower pointers go through a falling sequence: $56 and $57 (kind 0) or $5A and $57 (other kinds) below count $0F, then $C5 with $58 or $5B below $1E, then $C5 with $59 or $5C up to $59. At count $5A it plays sound effect $24 through $B0EE; after that the enemy blinks, with both pointers $C5 on every second frame, until count $A0, when the state goes to 0.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15534,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15537,"t":"code","b":[189,84,55],"m":"lda","oa":14164,"o":"enemy_kind,x"},{"a":15540,"t":"code","b":[168],"m":"tay"},{"a":15541,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15544,"t":"code","b":[24],"m":"clc"},{"a":15545,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":15547,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15550,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":15552,"t":"code","b":[176,26],"m":"bcs","oa":15580,"o":"$3CDC"},{"a":15554,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":15556,"t":"code","b":[208,11],"m":"bne","oa":15569,"o":"$3CD1"},{"a":15558,"t":"code","b":[169,86],"m":"lda","o":"#$56"},{"a":15560,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15563,"t":"code","b":[169,87],"m":"lda","o":"#$57"},{"a":15565,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15568,"t":"code","b":[96],"m":"rts"},{"a":15569,"t":"code","b":[169,90],"m":"lda","o":"#$5A","x":[15556]},{"a":15571,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15574,"t":"code","b":[169,87],"m":"lda","o":"#$57"},{"a":15576,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15579,"t":"code","b":[96],"m":"rts"},{"a":15580,"t":"code","b":[201,30],"m":"cmp","o":"#$1E","x":[15552]},{"a":15582,"t":"code","b":[176,26],"m":"bcs","oa":15610,"o":"$3CFA"},{"a":15584,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":15586,"t":"code","b":[208,11],"m":"bne","oa":15599,"o":"$3CEF"},{"a":15588,"t":"code","b":[169,197],"m":"lda","o":"#$C5"},{"a":15590,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15593,"t":"code","b":[169,88],"m":"lda","o":"#$58"},{"a":15595,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15598,"t":"code","b":[96],"m":"rts"},{"a":15599,"t":"code","b":[169,197],"m":"lda","o":"#$C5","x":[15586]},{"a":15601,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15604,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":15606,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15609,"t":"code","b":[96],"m":"rts"},{"a":15610,"t":"code","b":[201,90],"m":"cmp","o":"#$5A","x":[15582]},{"a":15612,"t":"code","b":[176,26],"m":"bcs","oa":15640,"o":"$3D18"},{"a":15614,"t":"code","b":[192,0],"m":"cpy","o":"#$00","x":[15674]},{"a":15616,"t":"code","b":[208,11],"m":"bne","oa":15629,"o":"$3D0D"},{"a":15618,"t":"code","b":[169,197],"m":"lda","o":"#$C5"},{"a":15620,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15623,"t":"code","b":[169,89],"m":"lda","o":"#$59"},{"a":15625,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15628,"t":"code","b":[96],"m":"rts"},{"a":15629,"t":"code","b":[169,197],"m":"lda","o":"#$C5","x":[15616]},{"a":15631,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15634,"t":"code","b":[169,92],"m":"lda","o":"#$5C"},{"a":15636,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15639,"t":"code","b":[96],"m":"rts"},{"a":15640,"t":"code","b":[201,90],"m":"cmp","o":"#$5A","x":[15612]},{"a":15642,"t":"code","b":[208,18],"m":"bne","oa":15662,"o":"$3D2E"},{"a":15644,"t":"code","b":[140,42,61],"m":"sty","oa":15658,"o":"$3D2A"},{"a":15647,"t":"code","b":[142,40,61],"m":"stx","oa":15656,"o":"$3D28"},{"a":15650,"t":"code","b":[162,36],"m":"ldx","o":"#$24"},{"a":15652,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":15655,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":15657,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":15659,"t":"code","b":[76,50,61],"m":"jmp","oa":15666,"o":"$3D32"},{"a":15662,"t":"code","b":[201,160],"m":"cmp","o":"#$A0","x":[15642]},{"a":15664,"t":"code","b":[176,19],"m":"bcs","oa":15685,"o":"$3D45"},{"a":15666,"t":"code","b":[189,75,61],"m":"lda","oa":15691,"o":"enemy_blink,x","x":[15659]},{"a":15669,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":15671,"t":"code","b":[157,75,61],"m":"sta","oa":15691,"o":"enemy_blink,x"},{"a":15674,"t":"code","b":[208,194],"m":"bne","oa":15614,"o":"$3CFE"},{"a":15676,"t":"code","b":[169,197],"m":"lda","o":"#$C5"},{"a":15678,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15681,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15684,"t":"code","b":[96],"m":"rts"},{"a":15685,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[15664]},{"a":15687,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":15690,"t":"code","b":[96],"m":"rts"},{"a":15691,"l":"enemy_blink","c":"The blink toggle of enemy slot 0 ($3D4B) and slot 1 ($3D4C): enemy_dying ($3CAC) flips it on every frame after count $5A, and shows the blank pointer $C5 while it is 0.","t":"byte","b":[0,0],"x":[15666,15671]},{"a":15693,"l":"enemy_throw","c":"Enemy handler for state 4 (throwing), run through enemy_frame ($384E). Adds 1 to the count $3750,X. It shows a wind-up pose (upper $50 and lower $46 for direction 1, $54 and $4A for direction 0) below count 10 and again from count $2F to $31, and a throwing pose with the upper sprite shifted 8 pixels (upper $51 or $55) from count 10 to $29 and from $2B to $2E. At count $2A it calls enemy_shoot ($40C1); from $32 on it returns to state 1 with a random count.","t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":15696,"t":"code","b":[168],"m":"tay"},{"a":15697,"t":"code","b":[24],"m":"clc"},{"a":15698,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15701,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":15703,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15706,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":15708,"t":"code","b":[176,31],"m":"bcs","oa":15741,"o":"$3D7D"},{"a":15710,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[15795]},{"a":15712,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15715,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":15717,"t":"code","b":[240,11],"m":"beq","oa":15730,"o":"$3D72"},{"a":15719,"t":"code","b":[169,80],"m":"lda","o":"#$50"},{"a":15721,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15724,"t":"code","b":[169,70],"m":"lda","o":"#$46"},{"a":15726,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15729,"t":"code","b":[96],"m":"rts"},{"a":15730,"t":"code","b":[169,84],"m":"lda","o":"#$54","x":[15717]},{"a":15732,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15735,"t":"code","b":[169,74],"m":"lda","o":"#$4A"},{"a":15737,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15740,"t":"code","b":[96],"m":"rts"},{"a":15741,"t":"code","b":[201,40],"m":"cmp","o":"#$28","x":[15708]},{"a":15743,"t":"code","b":[176,36],"m":"bcs","oa":15781,"o":"$3DA5"},{"a":15745,"t":"code","b":[192,0],"m":"cpy","o":"#$00","x":[15791]},{"a":15747,"t":"code","b":[240,16],"m":"beq","oa":15765,"o":"$3D95"},{"a":15749,"t":"code","b":[169,81],"m":"lda","o":"#$51"},{"a":15751,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15754,"t":"code","b":[169,70],"m":"lda","o":"#$46"},{"a":15756,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15759,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15761,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15764,"t":"code","b":[96],"m":"rts"},{"a":15765,"t":"code","b":[169,85],"m":"lda","o":"#$55","x":[15747]},{"a":15767,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15770,"t":"code","b":[169,74],"m":"lda","o":"#$4A"},{"a":15772,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15775,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":15777,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15780,"t":"code","b":[96],"m":"rts"},{"a":15781,"t":"code","b":[201,42],"m":"cmp","o":"#$2A","x":[15743]},{"a":15783,"t":"code","b":[208,4],"m":"bne","oa":15789,"o":"$3DAD"},{"a":15785,"t":"code","b":[32,193,64],"m":"jsr","oa":16577,"o":"enemy_shoot"},{"a":15788,"t":"code","b":[96],"m":"rts"},{"a":15789,"t":"code","b":[201,47],"m":"cmp","o":"#$2F","x":[15783]},{"a":15791,"t":"code","b":[144,208],"m":"bcc","oa":15745,"o":"$3D81"},{"a":15793,"t":"code","b":[201,50],"m":"cmp","o":"#$32"},{"a":15795,"t":"code","b":[144,169],"m":"bcc","oa":15710,"o":"$3D5E"},{"a":15797,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15799,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":15802,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":15805,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15806,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15807,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":15808,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15811,"t":"code","b":[96],"m":"rts"},{"a":15812,"l":"enemy_walk_right","c":"Enemy handler for state 3 (walking right), run through enemy_frame ($384E). Sets the step to 0 and the direction to 1. When the enemy is level with Darkman (enemy_height_test) and he is within $1E pixels to its right (enemy_left_gap) it switches to state 6, the punch, with count 0. Otherwise a zero count calls enemy_decide ($3FD2); else it counts down, moves 2 pixels right (back to the saved X, and enemy_decide, past X $13C or when the tile ahead is $30) and takes the pointers and step from walk_b ($3798) for kind 0 and walk_d ($3810) for the others, at the index $3756,X.","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15814,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15817,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15819,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":15822,"t":"code","b":[32,103,62],"m":"jsr","oa":15975,"o":"enemy_height_test"},{"a":15825,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15827,"t":"code","b":[208,18],"m":"bne","oa":15847,"o":"$3DE7"},{"a":15829,"t":"code","b":[32,47,67],"m":"jsr","oa":17199,"o":"enemy_left_gap"},{"a":15832,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15834,"t":"code","b":[240,11],"m":"beq","oa":15847,"o":"$3DE7"},{"a":15836,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":15838,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":15841,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15843,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15846,"t":"code","b":[96],"m":"rts"},{"a":15847,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[15827,15834]},{"a":15849,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":15852,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":15855,"t":"code","b":[208,4],"m":"bne","oa":15861,"o":"$3DF5"},{"a":15857,"t":"code","b":[32,210,63],"m":"jsr","oa":16338,"o":"enemy_decide"},{"a":15860,"t":"code","b":[96],"m":"rts"},{"a":15861,"t":"code","b":[56],"m":"sec","x":[15855]},{"a":15862,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":15864,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":15867,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":15870,"t":"code","b":[24],"m":"clc"},{"a":15871,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":15873,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":15876,"t":"code","b":[168],"m":"tay"},{"a":15877,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":15880,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":15882,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":15885,"t":"code","b":[240,20],"m":"beq","oa":15907,"o":"$3E23"},{"a":15887,"t":"code","b":[192,60],"m":"cpy","o":"#$3C"},{"a":15889,"t":"code","b":[144,16],"m":"bcc","oa":15907,"o":"$3E23"},{"a":15891,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved","x":[15912]},{"a":15894,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":15897,"t":"code","b":[173,77,56],"m":"lda","oa":14413,"o":"$384D"},{"a":15900,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":15903,"t":"code","b":[32,210,63],"m":"jsr","oa":16338,"o":"enemy_decide"},{"a":15906,"t":"code","b":[96],"m":"rts"},{"a":15907,"t":"code","b":[32,111,56],"m":"jsr","oa":14447,"o":"probe_enemy_right","x":[15885,15889]},{"a":15910,"t":"code","b":[201,48],"m":"cmp","o":"#$30"},{"a":15912,"t":"code","b":[240,233],"m":"beq","oa":15891,"o":"$3E13"},{"a":15914,"t":"code","b":[189,86,55],"m":"lda","oa":14166,"o":"enemy_walk_index,x"},{"a":15917,"t":"code","b":[24],"m":"clc"},{"a":15918,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":15920,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":15922,"t":"code","b":[144,2],"m":"bcc","oa":15926,"o":"$3E36"},{"a":15924,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15926,"t":"code","b":[157,86,55],"m":"sta","oa":14166,"o":"enemy_walk_index,x","x":[15922]},{"a":15929,"t":"code","b":[168],"m":"tay"},{"a":15930,"t":"code","b":[189,84,55],"m":"lda","oa":14164,"o":"enemy_kind,x"},{"a":15933,"t":"code","b":[208,21],"m":"bne","oa":15956,"o":"$3E54"},{"a":15935,"t":"code","b":[185,152,55],"m":"lda","oa":14232,"o":"walk_b_upper,y"},{"a":15938,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15941,"t":"code","b":[185,172,55],"m":"lda","oa":14252,"o":"walk_b_lower,y"},{"a":15944,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15947,"t":"code","b":[185,192,55],"m":"lda","oa":14272,"o":"walk_b_step,y"},{"a":15950,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15953,"t":"code","b":[76,102,62],"m":"jmp","oa":15974,"o":"$3E66"},{"a":15956,"t":"code","b":[185,16,56],"m":"lda","oa":14352,"o":"walk_d_upper,y","x":[15933]},{"a":15959,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":15962,"t":"code","b":[185,36,56],"m":"lda","oa":14372,"o":"walk_d_lower,y"},{"a":15965,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":15968,"t":"code","b":[185,56,56],"m":"lda","oa":14392,"o":"walk_d_step,y"},{"a":15971,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":15974,"t":"code","b":[96],"m":"rts","x":[15953]},{"a":15975,"l":"enemy_height_test","c":"Returns A=0 when enemy slot X is level with Darkman and A=1 when it is not: the enemy's height $3748,X is compared with his $2658, and the answer is 0 when they are equal, when the enemy is less than $1C lines below him and when it is less than $0A lines above him. Called by the enemy code at $3B92, $3BC4, $3C09, $3C66, $3DCE and $3EAD.","t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x","x":[15250,15300,15369,15462,15822,16045]},{"a":15978,"t":"code","b":[205,88,38],"m":"cmp","oa":9816,"o":"player_y"},{"a":15981,"t":"code","b":[240,24],"m":"beq","oa":16007,"o":"b_3E87"},{"a":15983,"t":"code","b":[144,11],"m":"bcc","oa":15996,"o":"b_3E7C"},{"a":15985,"t":"code","b":[56],"m":"sec"},{"a":15986,"t":"code","b":[237,88,38],"m":"sbc","oa":9816,"o":"player_y"},{"a":15989,"t":"code","b":[201,28],"m":"cmp","o":"#$1C"},{"a":15991,"t":"code","b":[144,14],"m":"bcc","oa":16007,"o":"b_3E87"},{"a":15993,"l":"b_3E79","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[16005]},{"a":15995,"t":"code","b":[96],"m":"rts"},{"a":15996,"l":"b_3E7C","t":"code","b":[56],"m":"sec","x":[15983]},{"a":15997,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":16000,"t":"code","b":[253,72,55],"m":"sbc","oa":14152,"o":"enemy_y,x"},{"a":16003,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":16005,"t":"code","b":[176,242],"m":"bcs","oa":15993,"o":"b_3E79"},{"a":16007,"l":"b_3E87","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[15981,15991]},{"a":16009,"t":"code","b":[96],"m":"rts"},{"a":16010,"l":"enemy_height_test_2","c":"Returns A=0 when enemy slot X is level with Darkman or above him by up to $1D lines, and A=1 otherwise: the enemy's height $3748,X is compared with his $2658, the answer is 0 when they are equal or when the enemy is above him by less than $1E lines, and 1 when it is below him. Called by enemy_leap_contact ($3AFE) at $3B13.","t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x","x":[15123]},{"a":16013,"t":"code","b":[205,88,38],"m":"cmp","oa":9816,"o":"player_y"},{"a":16016,"t":"code","b":[240,16],"m":"beq","oa":16034,"o":"$3EA2"},{"a":16018,"t":"code","b":[144,3],"m":"bcc","oa":16023,"o":"$3E97"},{"a":16020,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[16032]},{"a":16022,"t":"code","b":[96],"m":"rts"},{"a":16023,"t":"code","b":[56],"m":"sec","x":[16018]},{"a":16024,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":16027,"t":"code","b":[253,72,55],"m":"sbc","oa":14152,"o":"enemy_y,x"},{"a":16030,"t":"code","b":[201,30],"m":"cmp","o":"#$1E"},{"a":16032,"t":"code","b":[176,242],"m":"bcs","oa":16020,"o":"$3E94"},{"a":16034,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[16016]},{"a":16036,"t":"code","b":[96],"m":"rts"},{"a":16037,"l":"enemy_walk_left","c":"Enemy handler for state 2 (walking left), run through enemy_frame ($384E). Sets the step and the direction to 0. When the enemy is level with Darkman (enemy_height_test) and within $1E pixels to his right (enemy_right_gap returns 0) it switches to state 7, the punch to the left, with count 0. Otherwise a zero count calls enemy_decide ($3FD2); else it counts down, moves 2 pixels left (back to the saved X, and enemy_decide, below X $1E or when the tile ahead is $35) and takes the pointers and step from walk_a ($375C) for kind 0 and walk_c ($37D4) for the others, at the index $3756,X.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[14443]},{"a":16039,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16042,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":16045,"t":"code","b":[32,103,62],"m":"jsr","oa":15975,"o":"enemy_height_test"},{"a":16048,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":16050,"t":"code","b":[208,18],"m":"bne","oa":16070,"o":"$3EC6"},{"a":16052,"t":"code","b":[32,83,67],"m":"jsr","oa":17235,"o":"enemy_right_gap"},{"a":16055,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":16057,"t":"code","b":[240,11],"m":"beq","oa":16070,"o":"$3EC6"},{"a":16059,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":16061,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":16064,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":16066,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16069,"t":"code","b":[96],"m":"rts"},{"a":16070,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[16050,16057]},{"a":16072,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":16075,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":16078,"t":"code","b":[208,4],"m":"bne","oa":16084,"o":"$3ED4"},{"a":16080,"t":"code","b":[32,210,63],"m":"jsr","oa":16338,"o":"enemy_decide"},{"a":16083,"t":"code","b":[96],"m":"rts"},{"a":16084,"t":"code","b":[56],"m":"sec","x":[16078]},{"a":16085,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":16087,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16090,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":16093,"t":"code","b":[56],"m":"sec"},{"a":16094,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":16096,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":16099,"t":"code","b":[168],"m":"tay"},{"a":16100,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":16103,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":16105,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":16108,"t":"code","b":[208,20],"m":"bne","oa":16130,"o":"$3F02"},{"a":16110,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":16112,"t":"code","b":[176,16],"m":"bcs","oa":16130,"o":"$3F02"},{"a":16114,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved","x":[16135]},{"a":16117,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":16120,"t":"code","b":[173,77,56],"m":"lda","oa":14413,"o":"$384D"},{"a":16123,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":16126,"t":"code","b":[32,210,63],"m":"jsr","oa":16338,"o":"enemy_decide"},{"a":16129,"t":"code","b":[96],"m":"rts"},{"a":16130,"t":"code","b":[32,164,56],"m":"jsr","oa":14500,"o":"probe_enemy_left","x":[16108,16112]},{"a":16133,"t":"code","b":[201,53],"m":"cmp","o":"#$35"},{"a":16135,"t":"code","b":[240,233],"m":"beq","oa":16114,"o":"$3EF2"},{"a":16137,"t":"code","b":[189,86,55],"m":"lda","oa":14166,"o":"enemy_walk_index,x"},{"a":16140,"t":"code","b":[24],"m":"clc"},{"a":16141,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":16143,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":16145,"t":"code","b":[144,2],"m":"bcc","oa":16149,"o":"$3F15"},{"a":16147,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":16149,"t":"code","b":[157,86,55],"m":"sta","oa":14166,"o":"enemy_walk_index,x","x":[16145]},{"a":16152,"t":"code","b":[168],"m":"tay"},{"a":16153,"t":"code","b":[189,84,55],"m":"lda","oa":14164,"o":"enemy_kind,x"},{"a":16156,"t":"code","b":[208,21],"m":"bne","oa":16179,"o":"$3F33"},{"a":16158,"t":"code","b":[185,92,55],"m":"lda","oa":14172,"o":"walk_a_upper,y"},{"a":16161,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":16164,"t":"code","b":[185,112,55],"m":"lda","oa":14192,"o":"walk_a_lower,y"},{"a":16167,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":16170,"t":"code","b":[185,132,55],"m":"lda","oa":14212,"o":"walk_a_step,y"},{"a":16173,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16176,"t":"code","b":[76,69,63],"m":"jmp","oa":16197,"o":"$3F45"},{"a":16179,"t":"code","b":[185,212,55],"m":"lda","oa":14292,"o":"walk_c_upper,y","x":[16156]},{"a":16182,"t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x"},{"a":16185,"t":"code","b":[185,232,55],"m":"lda","oa":14312,"o":"walk_c_lower,y"},{"a":16188,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":16191,"t":"code","b":[185,252,55],"m":"lda","oa":14332,"o":"walk_c_step,y"},{"a":16194,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16197,"t":"code","b":[96],"m":"rts","x":[16176]},{"a":16198,"l":"enemy_wind_up_frame","c":"Sets the sprite pointers of enemy slot X for its wind-up pose, the upper in $374C,X and the lower in $374E,X. For a kind $3754,X of 0 the pair is $43 and $4A when the direction $374A,X is 0 and $40 and $46 otherwise; for any other kind $52 and $4A when the direction is 0 and $4E and $46 otherwise. Called by enemy_punch ($3BEC) at $3BFE, by enemy_punch_left at $3C5B and by enemy_wait at $3FBF.","t":"code","b":[189,84,55],"m":"lda","oa":14164,"o":"enemy_kind,x","x":[15358,15451,16319]},{"a":16201,"t":"code","b":[208,19],"m":"bne","oa":16222,"o":"b_3F5E"},{"a":16203,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":16206,"t":"code","b":[208,7],"m":"bne","oa":16215,"o":"b_3F57"},{"a":16208,"t":"code","b":[169,67],"m":"lda","o":"#$43"},{"a":16210,"t":"code","b":[160,74],"m":"ldy","o":"#$4A"},{"a":16212,"t":"code","b":[76,91,63],"m":"jmp","oa":16219,"o":"j_3F5B"},{"a":16215,"l":"b_3F57","t":"code","b":[169,64],"m":"lda","o":"#$40","x":[16206]},{"a":16217,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":16219,"l":"j_3F5B","t":"code","b":[76,110,63],"m":"jmp","oa":16238,"o":"j_3F6E","x":[16212]},{"a":16222,"l":"b_3F5E","t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x","x":[16201]},{"a":16225,"t":"code","b":[208,7],"m":"bne","oa":16234,"o":"b_3F6A"},{"a":16227,"t":"code","b":[169,82],"m":"lda","o":"#$52"},{"a":16229,"t":"code","b":[160,74],"m":"ldy","o":"#$4A"},{"a":16231,"t":"code","b":[76,110,63],"m":"jmp","oa":16238,"o":"j_3F6E"},{"a":16234,"l":"b_3F6A","t":"code","b":[169,78],"m":"lda","o":"#$4E","x":[16225]},{"a":16236,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":16238,"l":"j_3F6E","t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x","x":[16219,16231]},{"a":16241,"t":"code","b":[152],"m":"tya"},{"a":16242,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":16245,"t":"code","b":[96],"m":"rts"},{"a":16246,"l":"enemy_attack_frame","c":"Sets the step $3752,X to $F8 (direction $374A,X 0) or $08 and the sprite pointers of enemy slot X for its attack pose, the upper in $374C,X and the lower in $374E,X. For a kind $3754,X of 0 the pair is $45 and $4A (direction 0) or $42 and $46; for any other kind $6E and $4A (direction 0) or $6D and $46. Called by enemy_punch ($3BEC) at $3C06 and by enemy_punch_left at $3C63.","t":"code","b":[189,84,55],"m":"lda","oa":14164,"o":"enemy_kind,x","x":[15366,15459]},{"a":16249,"t":"code","b":[208,29],"m":"bne","oa":16280,"o":"b_3F98"},{"a":16251,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":16254,"t":"code","b":[208,12],"m":"bne","oa":16268,"o":"b_3F8C"},{"a":16256,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":16258,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16261,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":16263,"t":"code","b":[160,74],"m":"ldy","o":"#$4A"},{"a":16265,"t":"code","b":[76,149,63],"m":"jmp","oa":16277,"o":"j_3F95"},{"a":16268,"l":"b_3F8C","t":"code","b":[169,8],"m":"lda","o":"#$08","x":[16254]},{"a":16270,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16273,"t":"code","b":[169,66],"m":"lda","o":"#$42"},{"a":16275,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":16277,"l":"j_3F95","t":"code","b":[76,178,63],"m":"jmp","oa":16306,"o":"j_3FB2","x":[16265]},{"a":16280,"l":"b_3F98","t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x","x":[16249]},{"a":16283,"t":"code","b":[208,12],"m":"bne","oa":16297,"o":"b_3FA9"},{"a":16285,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":16287,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16290,"t":"code","b":[169,110],"m":"lda","o":"#$6E"},{"a":16292,"t":"code","b":[160,74],"m":"ldy","o":"#$4A"},{"a":16294,"t":"code","b":[76,178,63],"m":"jmp","oa":16306,"o":"j_3FB2"},{"a":16297,"l":"b_3FA9","t":"code","b":[169,8],"m":"lda","o":"#$08","x":[16283]},{"a":16299,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16302,"t":"code","b":[169,109],"m":"lda","o":"#$6D"},{"a":16304,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":16306,"l":"j_3FB2","t":"code","b":[157,76,55],"m":"sta","oa":14156,"o":"enemy_frame_lo,x","x":[16277,16294]},{"a":16309,"t":"code","b":[152],"m":"tya"},{"a":16310,"t":"code","b":[157,78,55],"m":"sta","oa":14158,"o":"enemy_frame_hi,x"},{"a":16313,"t":"code","b":[96],"m":"rts"},{"a":16314,"l":"enemy_wait","c":"Enemy handler for state 1 (waiting), run through enemy_frame ($384E). Clears the step, shows the wind-up pose and counts the count $3750,X down; when it is 0 it calls enemy_decide ($3FD2).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":16316,"t":"code","b":[157,82,55],"m":"sta","oa":14162,"o":"enemy_step,x"},{"a":16319,"t":"code","b":[32,70,63],"m":"jsr","oa":16198,"o":"enemy_wind_up_frame"},{"a":16322,"t":"code","b":[189,80,55],"m":"lda","oa":14160,"o":"enemy_count,x"},{"a":16325,"t":"code","b":[240,7],"m":"beq","oa":16334,"o":"$3FCE"},{"a":16327,"t":"code","b":[56],"m":"sec"},{"a":16328,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":16330,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16333,"t":"code","b":[96],"m":"rts"},{"a":16334,"t":"code","b":[32,210,63],"m":"jsr","oa":16338,"o":"enemy_decide","x":[16325]},{"a":16337,"t":"code","b":[96],"m":"rts"},{"a":16338,"l":"enemy_decide","c":"Chooses the next state of enemy slot X. At the left edge (X below $1E) it walks right (state 3) and at the right edge (X from $128) left (state 2), each with a random count of 0 to 31. Otherwise a random number picks: below $40 wait (state 1, count 0 to 15); $E6 or more, throw (state 4, after facing Darkman) when no shot is on the screen and the kind is not 0, otherwise wait; in between, a walk toward Darkman or in a random direction. Called by the enemy routines when a count runs out.","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[15857,15903,16080,16126,16334]},{"a":16341,"t":"code","b":[208,10],"m":"bne","oa":16353,"o":"$3FE1"},{"a":16343,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":16346,"t":"code","b":[201,30],"m":"cmp","o":"#$1E"},{"a":16348,"t":"code","b":[176,13],"m":"bcs","oa":16363,"o":"$3FEB"},{"a":16350,"t":"code","b":[76,41,64],"m":"jmp","oa":16425,"o":"$4029"},{"a":16353,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x","x":[16341]},{"a":16356,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":16358,"t":"code","b":[144,3],"m":"bcc","oa":16363,"o":"$3FEB"},{"a":16360,"t":"code","b":[76,26,64],"m":"jmp","oa":16410,"o":"$401A"},{"a":16363,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random","x":[16348,16358]},{"a":16366,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":16368,"t":"code","b":[176,16],"m":"bcs","oa":16386,"o":"$4002"},{"a":16370,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[16443,16448]},{"a":16372,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":16375,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":16378,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16379,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16380,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16381,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16382,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16385,"t":"code","b":[96],"m":"rts"},{"a":16386,"t":"code","b":[201,230],"m":"cmp","o":"#$E6","x":[16368]},{"a":16388,"t":"code","b":[176,50],"m":"bcs","oa":16440,"o":"$4038"},{"a":16390,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":16392,"t":"code","b":[240,8],"m":"beq","oa":16402,"o":"$4012"},{"a":16394,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":16397,"t":"code","b":[48,11],"m":"bmi","oa":16410,"o":"$401A"},{"a":16399,"t":"code","b":[76,41,64],"m":"jmp","oa":16425,"o":"$4029"},{"a":16402,"t":"code","b":[32,80,64],"m":"jsr","oa":16464,"o":"enemy_face_player","x":[16392]},{"a":16405,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":16408,"t":"code","b":[208,15],"m":"bne","oa":16425,"o":"$4029"},{"a":16410,"t":"code","b":[169,2],"m":"lda","o":"#$02","x":[16360,16397]},{"a":16412,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":16415,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":16418,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16419,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16420,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16421,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16424,"t":"code","b":[96],"m":"rts"},{"a":16425,"t":"code","b":[169,3],"m":"lda","o":"#$03","x":[16350,16399,16408]},{"a":16427,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":16430,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":16433,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16434,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16435,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":16436,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16439,"t":"code","b":[96],"m":"rts"},{"a":16440,"t":"code","b":[173,146,64],"m":"lda","oa":16530,"o":"shot_flag","x":[16388]},{"a":16443,"t":"code","b":[208,181],"m":"bne","oa":16370,"o":"$3FF2"},{"a":16445,"t":"code","b":[189,84,55],"m":"lda","oa":14164,"o":"enemy_kind,x"},{"a":16448,"t":"code","b":[240,176],"m":"beq","oa":16370,"o":"$3FF2"},{"a":16450,"t":"code","b":[32,80,64],"m":"jsr","oa":16464,"o":"enemy_face_player"},{"a":16453,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":16455,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":16458,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":16460,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":16463,"t":"code","b":[96],"m":"rts"},{"a":16464,"l":"enemy_face_player","c":"Sets the direction $374A,X of enemy slot X to face Darkman: 1 when his X ($2657/$2659) is greater than the enemy's, 0 when it is less, unchanged when they are equal. Called by enemy_leap ($3A15), enemy_decide ($3FD2) at $4012 and $4042.","t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi","x":[14914,16402,16450]},{"a":16467,"t":"code","b":[221,70,55],"m":"cmp","oa":14150,"o":"enemy_x_hi,x"},{"a":16470,"t":"code","b":[240,5],"m":"beq","oa":16477,"o":"$405D"},{"a":16472,"t":"code","b":[176,21],"m":"bcs","oa":16495,"o":"$406F"},{"a":16474,"t":"code","b":[76,103,64],"m":"jmp","oa":16487,"o":"$4067"},{"a":16477,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x","x":[16470]},{"a":16480,"t":"code","b":[221,68,55],"m":"cmp","oa":14148,"o":"enemy_x,x"},{"a":16483,"t":"code","b":[240,15],"m":"beq","oa":16500,"o":"$4074"},{"a":16485,"t":"code","b":[176,8],"m":"bcs","oa":16495,"o":"$406F"},{"a":16487,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[16474]},{"a":16489,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":16492,"t":"code","b":[76,116,64],"m":"jmp","oa":16500,"o":"$4074"},{"a":16495,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[16472,16485]},{"a":16497,"t":"code","b":[157,74,55],"m":"sta","oa":14154,"o":"enemy_dir,x"},{"a":16500,"t":"code","b":[96],"m":"rts","x":[16483,16492]},{"a":16501,"t":"gap","n":4},{"a":16505,"l":"scroll_stop","c":"While it is not zero scroll_step ($2066) does nothing. exit_marker_step ($354A) sets it to 1 when an enemy is in play and clears it when none is; play_setup clears it.","t":"byte","b":[1],"x":[6837,8294,13860,13876,16526]},{"a":16506,"l":"scroll_stop_test_unused","c":"Compares the 16-bit value that the pointer $85/$86 points at with the scroll position scroll_pos ($1A1F/$1A20): when its high byte equals $1A20 and its low byte is below $1A1F it sets scroll_stop ($4079) to 1. Nothing calls it or jumps to it; scroll_step ($2066) and exit_marker_step ($354A) are the only code that set $4079.","t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":16508,"t":"code","b":[177,133],"m":"lda","oa":133,"o":"($85),y"},{"a":16510,"t":"code","b":[205,32,26],"m":"cmp","oa":6688,"o":"$1A20"},{"a":16513,"t":"code","b":[208,14],"m":"bne","oa":16529,"o":"$4091"},{"a":16515,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":16517,"t":"code","b":[177,133],"m":"lda","oa":133,"o":"($85),y"},{"a":16519,"t":"code","b":[205,31,26],"m":"cmp","oa":6687,"o":"scroll_pos"},{"a":16522,"t":"code","b":[176,5],"m":"bcs","oa":16529,"o":"$4091"},{"a":16524,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":16526,"t":"code","b":[141,121,64],"m":"sta","oa":16505,"o":"scroll_stop"},{"a":16529,"t":"code","b":[96],"m":"rts","x":[16513,16522]},{"a":16530,"l":"shot_flag","c":"Set to 1 while a shot is on the screen; shot_draw ($4140) moves it, shot_erase ($41EF) takes it off and shot_touch_test ($4636) clears it on a hit.","t":"byte","b":[0],"x":[16440,16577,16694,16706,16881,16923,17993,18063]},{"a":16531,"l":"pad_4093","c":"3 zero bytes after between data records that no label reaches (after shot_flag) ($4093): padding that no traced code reads.","t":"byte","b":[0,0,0]},{"a":16534,"l":"shot_column","c":"The screen column of the shot.","t":"byte","b":[0],"x":[16689,16747,16752,16758,16763,16898]},{"a":16535,"l":"pad_4097","c":"2 zero bytes after between data records that no label reaches (after shot_column) ($4097): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16537,"l":"shot_row_hi","c":"High byte of the screen address of the shot's row.","t":"byte","b":[0],"x":[16677,16717,16893]},{"a":16538,"l":"pad_409a","c":"2 zero bytes after between data records that no label reaches (after shot_row_hi) ($409A): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16540,"l":"shot_row_lo","c":"Low byte of the screen address of the shot's row.","t":"byte","b":[0],"x":[16669,16712,16888]},{"a":16541,"l":"pad_409d","c":"2 zero bytes after between data records that no label reaches (after shot_row_lo) ($409D): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16543,"l":"shot_char","c":"The screen code that was under the shot, kept by shot_draw ($4140) and put back by shot_erase ($41EF).","t":"byte","b":[0],"x":[16685,16791,16904]},{"a":16544,"l":"pad_40a0","c":"2 zero bytes after between data records that no label reaches (after shot_char) ($40A0): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16546,"l":"shot_y","c":"The shot's height, read by shot_touch_test ($4636).","t":"byte","b":[0],"x":[16604,18000]},{"a":16547,"l":"pad_40a3","c":"2 zero bytes after between data records that no label reaches (after shot_y) ($40A3): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16549,"l":"shot_x","c":"The shot's X position, low byte; shot_draw ($4140) changes it by 8 on each call. The high byte is in $40A8.","t":"byte","b":[0],"x":[16621,16647,16731,16736,16767,16772,18024]},{"a":16550,"l":"pad_40a6","c":"2 zero bytes after between data records that no label reaches (after shot_x) ($40A6): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16552,"l":"shot_x_hi","c":"The shot's X position, high byte.","t":"byte","b":[0],"x":[16629,16655,16739,16744,16775,16780,18030]},{"a":16553,"l":"pad_40a9","c":"2 zero bytes after between data records that no label reaches (after shot_x_hi) ($40A9): padding that no traced code reads.","t":"byte","b":[0,0]},{"a":16555,"l":"shot_dir","c":"The shot's direction: 0 moves it left, any other value right (read by shot_draw, $4140).","t":"byte","b":[0],"x":[16700,16725]},{"a":16556,"t":"gap","n":2},{"a":16558,"l":"screen_ptr_adjust","c":"When the screen flag $1D42 is 0, subtracts $0400 from the pointer $89/$8A, which turns an address in the screen at $CC00 into the same cell of the screen at $C800. Called by shot_draw ($4140, at $4152), shot_erase ($41EF, at $4205) and the code at $4128.","t":"code","b":[173,66,29],"m":"lda","oa":7490,"o":"screen_flag","x":[16680,16722,16901]},{"a":16561,"t":"code","b":[208,13],"m":"bne","oa":16576,"o":"r_40C0"},{"a":16563,"t":"code","b":[56],"m":"sec"},{"a":16564,"t":"code","b":[165,137],"m":"lda","oa":137,"o":"$89"},{"a":16566,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":16568,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"$89"},{"a":16570,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"$8A"},{"a":16572,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":16574,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"$8A"},{"a":16576,"l":"r_40C0","t":"code","b":[96],"m":"rts","x":[16561]},{"a":16577,"l":"enemy_shoot","c":"Starts a shot from enemy slot X, called by enemy_throw ($3D4D) at count $2A. Returns at once when a shot is on the screen ($4092). It plays sound effect 8 through $B0EE, puts the shot at the enemy's Y and at 8 pixels beside it (left for direction 0, right otherwise), looks up the screen cell with tile_at_probe ($309D), keeps its row address in $409C/$4099, the character under it in $409F and the column in $4096, and sets the shot flag $4092 and the direction $40AB.","t":"code","b":[173,146,64],"m":"lda","oa":16530,"o":"shot_flag","x":[15785]},{"a":16580,"t":"code","b":[240,1],"m":"beq","oa":16583,"o":"$40C7"},{"a":16582,"t":"code","b":[96],"m":"rts"},{"a":16583,"t":"code","b":[140,213,64],"m":"sty","oa":16597,"o":"shoot_saved_y","x":[16580]},{"a":16586,"t":"code","b":[142,211,64],"m":"stx","oa":16595,"o":"shoot_saved_x"},{"a":16589,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":16591,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":16594,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":16595,"t":"note","l":"shoot_saved_x","c":"Holds the X register of enemy_shoot ($40C1), stored at $40CA: the immediate operand of the LDX at $40D2.","note":"inside the item at $40D2","x":[16586]},{"a":16596,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":16597,"t":"note","l":"shoot_saved_y","c":"Holds the Y register of enemy_shoot ($40C1), stored at $40C7: the immediate operand of the LDY at $40D4.","note":"inside the item at $40D4","x":[16583]},{"a":16598,"l":"enemy_shoot_part_2","c":"The rest of enemy_shoot ($40C1), after the sound call: copies the enemy's Y to $3064 and the shot's Y $40A2 and its X (low and high) to $3063/$3065 and the shot's $40A5/$40A8, then continues with tile_at_probe at $4115 and the setting of the shot variables.","t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x"},{"a":16601,"t":"code","b":[141,100,48],"m":"sta","oa":12388,"o":"probe_y"},{"a":16604,"t":"code","b":[141,162,64],"m":"sta","oa":16546,"o":"shot_y"},{"a":16607,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":16610,"t":"code","b":[208,26],"m":"bne","oa":16638,"o":"$40FE"},{"a":16612,"t":"code","b":[56],"m":"sec"},{"a":16613,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":16616,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":16618,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":16621,"t":"code","b":[141,165,64],"m":"sta","oa":16549,"o":"shot_x"},{"a":16624,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":16627,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":16629,"t":"code","b":[141,168,64],"m":"sta","oa":16552,"o":"shot_x_hi"},{"a":16632,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":16635,"t":"code","b":[76,21,65],"m":"jmp","oa":16661,"o":"$4115"},{"a":16638,"t":"code","b":[24],"m":"clc","x":[16610]},{"a":16639,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":16642,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":16644,"t":"code","b":[141,99,48],"m":"sta","oa":12387,"o":"probe_x"},{"a":16647,"t":"code","b":[141,165,64],"m":"sta","oa":16549,"o":"shot_x"},{"a":16650,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":16653,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":16655,"t":"code","b":[141,168,64],"m":"sta","oa":16552,"o":"shot_x_hi"},{"a":16658,"t":"code","b":[141,101,48],"m":"sta","oa":12389,"o":"probe_x_hi"},{"a":16661,"t":"code","b":[32,157,48],"m":"jsr","oa":12445,"o":"tile_at_probe","x":[16635]},{"a":16664,"t":"code","b":[173,155,48],"m":"lda","oa":12443,"o":"probe_row"},{"a":16667,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"$89"},{"a":16669,"t":"code","b":[141,156,64],"m":"sta","oa":16540,"o":"shot_row_lo"},{"a":16672,"t":"code","b":[173,156,48],"m":"lda","oa":12444,"o":"$309C"},{"a":16675,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"$8A"},{"a":16677,"t":"code","b":[141,153,64],"m":"sta","oa":16537,"o":"shot_row_hi"},{"a":16680,"t":"code","b":[32,174,64],"m":"jsr","oa":16558,"o":"screen_ptr_adjust"},{"a":16683,"t":"code","b":[177,137],"m":"lda","oa":137,"o":"($89),y"},{"a":16685,"t":"code","b":[141,159,64],"m":"sta","oa":16543,"o":"shot_char"},{"a":16688,"t":"code","b":[152],"m":"tya"},{"a":16689,"t":"code","b":[141,150,64],"m":"sta","oa":16534,"o":"shot_column"},{"a":16692,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":16694,"t":"code","b":[141,146,64],"m":"sta","oa":16530,"o":"shot_flag"},{"a":16697,"t":"code","b":[189,74,55],"m":"lda","oa":14154,"o":"enemy_dir,x"},{"a":16700,"t":"code","b":[141,171,64],"m":"sta","oa":16555,"o":"shot_dir"},{"a":16703,"t":"code","b":[96],"m":"rts"},{"a":16704,"l":"shot_draw","c":"Draws the shot. Returns at once when the shot flag $4092 is zero. It points $89/$8A at the shot's screen row ($409C low and $4099 high, adjusted by $40AE) and moves the shot one column: left when $40AB is 0 (position $40A5/$40A8 lowered by 8, column $4096 minus 1) and right otherwise (position plus 8, column plus 1). It saves the screen code found there in $409F, copies bytes 0 to 3, 6 and 7 of that character's shape (at $C000 plus 8 times the code) to the shape of character $FF ($C7F8-$C7FF) with bytes 4 and 5 set to $28, and writes $FF in the screen cell. Called by irq_top at $1E76.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[7798]},{"a":16706,"t":"code","b":[173,146,64],"m":"lda","oa":16530,"o":"shot_flag"},{"a":16709,"t":"code","b":[208,1],"m":"bne","oa":16712,"o":"b_4148"},{"a":16711,"t":"code","b":[96],"m":"rts"},{"a":16712,"l":"b_4148","t":"code","b":[173,156,64],"m":"lda","oa":16540,"o":"shot_row_lo","x":[16709]},{"a":16715,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"$89"},{"a":16717,"t":"code","b":[173,153,64],"m":"lda","oa":16537,"o":"shot_row_hi"},{"a":16720,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"$8A"},{"a":16722,"t":"code","b":[32,174,64],"m":"jsr","oa":16558,"o":"screen_ptr_adjust"},{"a":16725,"t":"code","b":[173,171,64],"m":"lda","oa":16555,"o":"shot_dir"},{"a":16728,"t":"code","b":[208,28],"m":"bne","oa":16758,"o":"b_4176"},{"a":16730,"t":"code","b":[56],"m":"sec"},{"a":16731,"t":"code","b":[173,165,64],"m":"lda","oa":16549,"o":"shot_x"},{"a":16734,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":16736,"t":"code","b":[141,165,64],"m":"sta","oa":16549,"o":"shot_x"},{"a":16739,"t":"code","b":[173,168,64],"m":"lda","oa":16552,"o":"shot_x_hi"},{"a":16742,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":16744,"t":"code","b":[141,168,64],"m":"sta","oa":16552,"o":"shot_x_hi"},{"a":16747,"t":"code","b":[172,150,64],"m":"ldy","oa":16534,"o":"shot_column"},{"a":16750,"t":"code","b":[136],"m":"dey"},{"a":16751,"t":"code","b":[152],"m":"tya"},{"a":16752,"t":"code","b":[141,150,64],"m":"sta","oa":16534,"o":"shot_column"},{"a":16755,"t":"code","b":[76,143,65],"m":"jmp","oa":16783,"o":"j_418F"},{"a":16758,"l":"b_4176","t":"code","b":[172,150,64],"m":"ldy","oa":16534,"o":"shot_column","x":[16728]},{"a":16761,"t":"code","b":[200],"m":"iny"},{"a":16762,"t":"code","b":[152],"m":"tya"},{"a":16763,"t":"code","b":[141,150,64],"m":"sta","oa":16534,"o":"shot_column"},{"a":16766,"t":"code","b":[24],"m":"clc"},{"a":16767,"t":"code","b":[173,165,64],"m":"lda","oa":16549,"o":"shot_x"},{"a":16770,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":16772,"t":"code","b":[141,165,64],"m":"sta","oa":16549,"o":"shot_x"},{"a":16775,"t":"code","b":[173,168,64],"m":"lda","oa":16552,"o":"shot_x_hi"},{"a":16778,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":16780,"t":"code","b":[141,168,64],"m":"sta","oa":16552,"o":"shot_x_hi"},{"a":16783,"l":"j_418F","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[16755]},{"a":16785,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"$83"},{"a":16787,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"$84"},{"a":16789,"t":"code","b":[177,137],"m":"lda","oa":137,"o":"($89),y"},{"a":16791,"t":"code","b":[141,159,64],"m":"sta","oa":16543,"o":"shot_char"},{"a":16794,"t":"code","b":[10],"m":"asl","o":"a"},{"a":16795,"t":"code","b":[38,132],"m":"rol","oa":132,"o":"$84"},{"a":16797,"t":"code","b":[10],"m":"asl","o":"a"},{"a":16798,"t":"code","b":[38,132],"m":"rol","oa":132,"o":"$84"},{"a":16800,"t":"code","b":[10],"m":"asl","o":"a"},{"a":16801,"t":"code","b":[38,132],"m":"rol","oa":132,"o":"$84"},{"a":16803,"t":"code","b":[24],"m":"clc"},{"a":16804,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":16806,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"$83"},{"a":16808,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"$84"},{"a":16810,"t":"code","b":[105,192],"m":"adc","o":"#$C0"},{"a":16812,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"$84"},{"a":16814,"t":"code","b":[140,237,65],"m":"sty","oa":16877,"o":"shot_save_y"},{"a":16817,"t":"code","b":[142,238,65],"m":"stx","oa":16878,"o":"shot_save_x"},{"a":16820,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":16822,"t":"code","b":[177,131],"m":"lda","oa":131,"o":"($83),y"},{"a":16824,"t":"code","b":[141,248,199],"m":"sta","oa":51192,"o":"shot_char_shape"},{"a":16827,"t":"code","b":[200],"m":"iny"},{"a":16828,"t":"code","b":[177,131],"m":"lda","oa":131,"o":"($83),y"},{"a":16830,"t":"code","b":[141,249,199],"m":"sta","oa":51193,"o":"$C7F9"},{"a":16833,"t":"code","b":[200],"m":"iny"},{"a":16834,"t":"code","b":[177,131],"m":"lda","oa":131,"o":"($83),y"},{"a":16836,"t":"code","b":[141,250,199],"m":"sta","oa":51194,"o":"$C7FA"},{"a":16839,"t":"code","b":[200],"m":"iny"},{"a":16840,"t":"code","b":[177,131],"m":"lda","oa":131,"o":"($83),y"},{"a":16842,"t":"code","b":[141,251,199],"m":"sta","oa":51195,"o":"$C7FB"},{"a":16845,"t":"code","b":[200],"m":"iny"},{"a":16846,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":16848,"t":"code","b":[141,252,199],"m":"sta","oa":51196,"o":"$C7FC"},{"a":16851,"t":"code","b":[200],"m":"iny"},{"a":16852,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":16854,"t":"code","b":[141,253,199],"m":"sta","oa":51197,"o":"$C7FD"},{"a":16857,"t":"code","b":[200],"m":"iny"},{"a":16858,"t":"code","b":[177,131],"m":"lda","oa":131,"o":"($83),y"},{"a":16860,"t":"code","b":[141,254,199],"m":"sta","oa":51198,"o":"$C7FE"},{"a":16863,"t":"code","b":[200],"m":"iny"},{"a":16864,"t":"code","b":[177,131],"m":"lda","oa":131,"o":"($83),y"},{"a":16866,"t":"code","b":[141,255,199],"m":"sta","oa":51199,"o":"$C7FF"},{"a":16869,"t":"code","b":[172,237,65],"m":"ldy","oa":16877,"o":"shot_save_y"},{"a":16872,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":16874,"t":"code","b":[145,137],"m":"sta","oa":137,"o":"($89),y"},{"a":16876,"t":"code","b":[96],"m":"rts"},{"a":16877,"l":"shot_save_y","c":"Y saved by shot_draw ($4140) while it builds the shape, and loaded again.","t":"byte","b":[0],"x":[16814,16869]},{"a":16878,"l":"shot_save_x","c":"X saved by shot_draw ($4140); it is not loaded again.","t":"byte","b":[0],"x":[16817]},{"a":16879,"l":"shot_erase","c":"Takes the shot off the screen. Returns at once when the shot flag $4092 is zero. It points $89/$8A at the shot's row (adjusted by $40AE) and writes the saved screen code $409F back at the column $4096. It clears $4092 when the flag was negative (bit 7 set) or the column is 0 or $26 or more, and otherwise leaves the shot active. Called by irq_bottom at $1E11.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[7697]},{"a":16881,"t":"code","b":[173,146,64],"m":"lda","oa":16530,"o":"shot_flag"},{"a":16884,"t":"code","b":[208,1],"m":"bne","oa":16887,"o":"b_41F7"},{"a":16886,"t":"code","b":[96],"m":"rts"},{"a":16887,"l":"b_41F7","t":"code","b":[72],"m":"pha","x":[16884]},{"a":16888,"t":"code","b":[173,156,64],"m":"lda","oa":16540,"o":"shot_row_lo"},{"a":16891,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"$89"},{"a":16893,"t":"code","b":[173,153,64],"m":"lda","oa":16537,"o":"shot_row_hi"},{"a":16896,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"$8A"},{"a":16898,"t":"code","b":[172,150,64],"m":"ldy","oa":16534,"o":"shot_column"},{"a":16901,"t":"code","b":[32,174,64],"m":"jsr","oa":16558,"o":"screen_ptr_adjust"},{"a":16904,"t":"code","b":[173,159,64],"m":"lda","oa":16543,"o":"shot_char"},{"a":16907,"t":"code","b":[145,137],"m":"sta","oa":137,"o":"($89),y"},{"a":16909,"t":"code","b":[104],"m":"pla"},{"a":16910,"t":"code","b":[48,9],"m":"bmi","oa":16921,"o":"b_4219"},{"a":16912,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":16914,"t":"code","b":[240,5],"m":"beq","oa":16921,"o":"b_4219"},{"a":16916,"t":"code","b":[192,38],"m":"cpy","o":"#$26"},{"a":16918,"t":"code","b":[176,1],"m":"bcs","oa":16921,"o":"b_4219"},{"a":16920,"t":"code","b":[96],"m":"rts"},{"a":16921,"l":"b_4219","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[16910,16914,16918]},{"a":16923,"t":"code","b":[141,146,64],"m":"sta","oa":16530,"o":"shot_flag"},{"a":16926,"t":"code","b":[96],"m":"rts"},{"a":16927,"l":"enemy_hit_check","c":"Tests whether Darkman's blow hits enemy slot X; move_enemies ($3725) runs it for both slots. It needs the punch counter $2768 to be 9 or the strike counter $2F67 to be 13 and the enemy not to be dying (state 5). The enemy must be level with him, below him by less than 10 lines or above him by less than 24. When he faces right (facing 0) it goes on if enemy_right_gap returns 0, when he faces left if enemy_left_gap does. A leaping enemy (state 8) loses 1 energy, if it has any, and gets enemy_hurt $0A. Any other enemy is pushed 8 pixels away (back to the saved X at the edges), put in state 1 and passed to enemy_damage ($43BF), and the pushed X is undone if the tile ahead is a wall ($30 to the right, $35 to the left). hit_flag_a and hit_flag_b are set to 1.","t":"code","b":[173,104,39],"m":"lda","oa":10088,"o":"punch_active","x":[14129,14139]},{"a":16930,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":16932,"t":"code","b":[240,7],"m":"beq","oa":16941,"o":"b_422D"},{"a":16934,"t":"code","b":[173,103,47],"m":"lda","oa":12135,"o":"strike_active"},{"a":16937,"t":"code","b":[201,13],"m":"cmp","o":"#$0D"},{"a":16939,"t":"code","b":[208,25],"m":"bne","oa":16966,"o":"r_4246"},{"a":16941,"l":"b_422D","t":"code","b":[189,66,55],"m":"lda","oa":14146,"o":"enemy_state,x","x":[16932]},{"a":16944,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":16946,"t":"code","b":[240,18],"m":"beq","oa":16966,"o":"r_4246"},{"a":16948,"t":"code","b":[189,72,55],"m":"lda","oa":14152,"o":"enemy_y,x"},{"a":16951,"t":"code","b":[205,88,38],"m":"cmp","oa":9816,"o":"player_y"},{"a":16954,"t":"code","b":[240,22],"m":"beq","oa":16978,"o":"b_4252"},{"a":16956,"t":"code","b":[144,9],"m":"bcc","oa":16967,"o":"b_4247"},{"a":16958,"t":"code","b":[56],"m":"sec"},{"a":16959,"t":"code","b":[237,88,38],"m":"sbc","oa":9816,"o":"player_y"},{"a":16962,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":16964,"t":"code","b":[144,12],"m":"bcc","oa":16978,"o":"b_4252"},{"a":16966,"l":"r_4246","t":"code","b":[96],"m":"rts","x":[16939,16946,16976,16991,17098]},{"a":16967,"l":"b_4247","t":"code","b":[56],"m":"sec","x":[16956]},{"a":16968,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":16971,"t":"code","b":[253,72,55],"m":"sbc","oa":14152,"o":"enemy_y,x"},{"a":16974,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":16976,"t":"code","b":[176,244],"m":"bcs","oa":16966,"o":"r_4246"},{"a":16978,"l":"b_4252","t":"code","b":[173,61,39],"m":"lda","oa":10045,"o":"facing","x":[16954,16964]},{"a":16981,"t":"code","b":[240,3],"m":"beq","oa":16986,"o":"b_425A"},{"a":16983,"t":"code","b":[76,195,66],"m":"jmp","oa":17091,"o":"j_42C3"},{"a":16986,"l":"b_425A","t":"code","b":[32,83,67],"m":"jsr","oa":17235,"o":"enemy_right_gap","x":[16981]},{"a":16989,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":16991,"t":"code","b":[240,229],"m":"beq","oa":16966,"o":"r_4246"},{"a":16993,"t":"code","b":[189,66,55],"m":"lda","oa":14146,"o":"enemy_state,x"},{"a":16996,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":16998,"t":"code","b":[208,19],"m":"bne","oa":17019,"o":"b_427B"},{"a":17000,"t":"code","b":[189,88,55],"m":"lda","oa":14168,"o":"enemy_energy,x"},{"a":17003,"t":"code","b":[240,11],"m":"beq","oa":17016,"o":"b_4278"},{"a":17005,"t":"code","b":[56],"m":"sec"},{"a":17006,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":17008,"t":"code","b":[157,88,55],"m":"sta","oa":14168,"o":"enemy_energy,x"},{"a":17011,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":17013,"t":"code","b":[157,90,55],"m":"sta","oa":14170,"o":"enemy_hurt,x"},{"a":17016,"l":"b_4278","t":"code","b":[76,186,66],"m":"jmp","oa":17082,"o":"j_42BA","x":[17003]},{"a":17019,"l":"b_427B","t":"code","b":[24],"m":"clc","x":[16998]},{"a":17020,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":17023,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":17025,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":17028,"t":"code","b":[168],"m":"tay"},{"a":17029,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":17032,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":17034,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":17037,"t":"code","b":[240,16],"m":"beq","oa":17055,"o":"b_429F"},{"a":17039,"t":"code","b":[192,40],"m":"cpy","o":"#$28"},{"a":17041,"t":"code","b":[144,12],"m":"bcc","oa":17055,"o":"b_429F"},{"a":17043,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved"},{"a":17046,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":17049,"t":"code","b":[173,77,56],"m":"lda","oa":14413,"o":"$384D"},{"a":17052,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":17055,"l":"b_429F","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17037,17041]},{"a":17057,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":17060,"t":"code","b":[32,191,67],"m":"jsr","oa":17343,"o":"enemy_damage"},{"a":17063,"t":"code","b":[32,111,56],"m":"jsr","oa":14447,"o":"probe_enemy_right"},{"a":17066,"t":"code","b":[201,48],"m":"cmp","o":"#$30"},{"a":17068,"t":"code","b":[208,12],"m":"bne","oa":17082,"o":"j_42BA"},{"a":17070,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved"},{"a":17073,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":17076,"t":"code","b":[173,77,56],"m":"lda","oa":14413,"o":"$384D"},{"a":17079,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":17082,"l":"j_42BA","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17016,17068]},{"a":17084,"t":"code","b":[141,8,42],"m":"sta","oa":10760,"o":"hit_flag_a"},{"a":17087,"t":"code","b":[141,9,42],"m":"sta","oa":10761,"o":"hit_flag_b"},{"a":17090,"t":"code","b":[96],"m":"rts"},{"a":17091,"l":"j_42C3","t":"code","b":[32,47,67],"m":"jsr","oa":17199,"o":"enemy_left_gap","x":[16983]},{"a":17094,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":17096,"t":"code","b":[208,3],"m":"bne","oa":17101,"o":"b_42CD"},{"a":17098,"t":"code","b":[76,70,66],"m":"jmp","oa":16966,"o":"r_4246"},{"a":17101,"l":"b_42CD","t":"code","b":[189,66,55],"m":"lda","oa":14146,"o":"enemy_state,x","x":[17096]},{"a":17104,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":17106,"t":"code","b":[208,19],"m":"bne","oa":17127,"o":"b_42E7"},{"a":17108,"t":"code","b":[189,88,55],"m":"lda","oa":14168,"o":"enemy_energy,x"},{"a":17111,"t":"code","b":[240,11],"m":"beq","oa":17124,"o":"b_42E4"},{"a":17113,"t":"code","b":[56],"m":"sec"},{"a":17114,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":17116,"t":"code","b":[157,88,55],"m":"sta","oa":14168,"o":"enemy_energy,x"},{"a":17119,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":17121,"t":"code","b":[157,90,55],"m":"sta","oa":14170,"o":"enemy_hurt,x"},{"a":17124,"l":"b_42E4","t":"code","b":[76,38,67],"m":"jmp","oa":17190,"o":"j_4326","x":[17111]},{"a":17127,"l":"b_42E7","t":"code","b":[56],"m":"sec","x":[17106]},{"a":17128,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":17131,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":17133,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":17136,"t":"code","b":[168],"m":"tay"},{"a":17137,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":17140,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":17142,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":17145,"t":"code","b":[208,16],"m":"bne","oa":17163,"o":"b_430B"},{"a":17147,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":17149,"t":"code","b":[176,12],"m":"bcs","oa":17163,"o":"b_430B"},{"a":17151,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved"},{"a":17154,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":17157,"t":"code","b":[173,77,56],"m":"lda","oa":14413,"o":"$384D"},{"a":17160,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":17163,"l":"b_430B","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17145,17149]},{"a":17165,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":17168,"t":"code","b":[32,191,67],"m":"jsr","oa":17343,"o":"enemy_damage"},{"a":17171,"t":"code","b":[32,164,56],"m":"jsr","oa":14500,"o":"probe_enemy_left"},{"a":17174,"t":"code","b":[201,53],"m":"cmp","o":"#$35"},{"a":17176,"t":"code","b":[208,12],"m":"bne","oa":17190,"o":"j_4326"},{"a":17178,"t":"code","b":[173,76,56],"m":"lda","oa":14412,"o":"enemy_x_saved"},{"a":17181,"t":"code","b":[157,68,55],"m":"sta","oa":14148,"o":"enemy_x,x"},{"a":17184,"t":"code","b":[173,77,56],"m":"lda","oa":14413,"o":"$384D"},{"a":17187,"t":"code","b":[157,70,55],"m":"sta","oa":14150,"o":"enemy_x_hi,x"},{"a":17190,"l":"j_4326","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17124,17176]},{"a":17192,"t":"code","b":[141,8,42],"m":"sta","oa":10760,"o":"hit_flag_a"},{"a":17195,"t":"code","b":[141,9,42],"m":"sta","oa":10761,"o":"hit_flag_b"},{"a":17198,"t":"code","b":[96],"m":"rts"},{"a":17199,"l":"enemy_left_gap","c":"Returns A=0 when Darkman is within $1E pixels to the right of enemy slot X (his X $2657/$2659 minus the enemy's $3744,X/$3746,X is from 0 to $1D), otherwise A=1. Called by enemy_punch at $3C10, by enemy_hit_check at $42C3 and by the enemy code at $3B99 and $3DD5.","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[15257,15376,15829,17091]},{"a":17202,"t":"code","b":[205,89,38],"m":"cmp","oa":9817,"o":"player_x_hi"},{"a":17205,"t":"code","b":[240,2],"m":"beq","oa":17209,"o":"b_4339"},{"a":17207,"t":"code","b":[176,23],"m":"bcs","oa":17232,"o":"b_4350"},{"a":17209,"l":"b_4339","t":"code","b":[56],"m":"sec","x":[17205]},{"a":17210,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":17213,"t":"code","b":[253,68,55],"m":"sbc","oa":14148,"o":"enemy_x,x"},{"a":17216,"t":"code","b":[168],"m":"tay"},{"a":17217,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":17220,"t":"code","b":[253,70,55],"m":"sbc","oa":14150,"o":"enemy_x_hi,x"},{"a":17223,"t":"code","b":[208,7],"m":"bne","oa":17232,"o":"b_4350"},{"a":17225,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":17227,"t":"code","b":[176,3],"m":"bcs","oa":17232,"o":"b_4350"},{"a":17229,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":17231,"t":"code","b":[96],"m":"rts"},{"a":17232,"l":"b_4350","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17207,17223,17227]},{"a":17234,"t":"code","b":[96],"m":"rts"},{"a":17235,"l":"enemy_right_gap","c":"Returns A=0 when enemy slot X is within $1E pixels to the right of Darkman (the enemy's $3744,X/$3746,X minus his $2657/$2659 is from 0 to $1D), otherwise A=1. Called by enemy_hit_check at $425A and by the enemy code at $3BCB, $3C6D and $3EB4.","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[15307,15469,16052,16986]},{"a":17238,"t":"code","b":[205,89,38],"m":"cmp","oa":9817,"o":"player_x_hi"},{"a":17241,"t":"code","b":[240,2],"m":"beq","oa":17245,"o":"b_435D"},{"a":17243,"t":"code","b":[144,23],"m":"bcc","oa":17268,"o":"b_4374"},{"a":17245,"l":"b_435D","t":"code","b":[56],"m":"sec","x":[17241]},{"a":17246,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":17249,"t":"code","b":[237,87,38],"m":"sbc","oa":9815,"o":"player_x"},{"a":17252,"t":"code","b":[168],"m":"tay"},{"a":17253,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":17256,"t":"code","b":[237,89,38],"m":"sbc","oa":9817,"o":"player_x_hi"},{"a":17259,"t":"code","b":[208,7],"m":"bne","oa":17268,"o":"b_4374"},{"a":17261,"t":"code","b":[192,30],"m":"cpy","o":"#$1E"},{"a":17263,"t":"code","b":[176,3],"m":"bcs","oa":17268,"o":"b_4374"},{"a":17265,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":17267,"t":"code","b":[96],"m":"rts"},{"a":17268,"l":"b_4374","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17243,17259,17263]},{"a":17270,"t":"code","b":[96],"m":"rts"},{"a":17271,"l":"enemy_near_right","c":"Returns A=0 when Darkman is up to 9 pixels to the right of enemy slot X (his X $2657/$2659 minus the enemy's $3744,X/$3746,X is from 0 to 9), otherwise A=1. Called by enemy_leap_contact ($3AFE) at $3B1A.","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[15130]},{"a":17274,"t":"code","b":[205,89,38],"m":"cmp","oa":9817,"o":"player_x_hi"},{"a":17277,"t":"code","b":[240,2],"m":"beq","oa":17281,"o":"$4381"},{"a":17279,"t":"code","b":[176,23],"m":"bcs","oa":17304,"o":"$4398"},{"a":17281,"t":"code","b":[56],"m":"sec","x":[17277]},{"a":17282,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":17285,"t":"code","b":[253,68,55],"m":"sbc","oa":14148,"o":"enemy_x,x"},{"a":17288,"t":"code","b":[168],"m":"tay"},{"a":17289,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":17292,"t":"code","b":[253,70,55],"m":"sbc","oa":14150,"o":"enemy_x_hi,x"},{"a":17295,"t":"code","b":[208,7],"m":"bne","oa":17304,"o":"$4398"},{"a":17297,"t":"code","b":[192,10],"m":"cpy","o":"#$0A"},{"a":17299,"t":"code","b":[176,3],"m":"bcs","oa":17304,"o":"$4398"},{"a":17301,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":17303,"t":"code","b":[96],"m":"rts"},{"a":17304,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17279,17295,17299]},{"a":17306,"t":"code","b":[96],"m":"rts"},{"a":17307,"l":"enemy_near_left","c":"Returns A=0 when Darkman is up to 9 pixels to the left of enemy slot X (the enemy's X minus his X is from 0 to 9), otherwise A=1. Called by enemy_leap_contact ($3AFE) at $3B21.","t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x","x":[15137]},{"a":17310,"t":"code","b":[205,89,38],"m":"cmp","oa":9817,"o":"player_x_hi"},{"a":17313,"t":"code","b":[240,2],"m":"beq","oa":17317,"o":"$43A5"},{"a":17315,"t":"code","b":[144,23],"m":"bcc","oa":17340,"o":"$43BC"},{"a":17317,"t":"code","b":[56],"m":"sec","x":[17313]},{"a":17318,"t":"code","b":[189,68,55],"m":"lda","oa":14148,"o":"enemy_x,x"},{"a":17321,"t":"code","b":[237,87,38],"m":"sbc","oa":9815,"o":"player_x"},{"a":17324,"t":"code","b":[168],"m":"tay"},{"a":17325,"t":"code","b":[189,70,55],"m":"lda","oa":14150,"o":"enemy_x_hi,x"},{"a":17328,"t":"code","b":[237,89,38],"m":"sbc","oa":9817,"o":"player_x_hi"},{"a":17331,"t":"code","b":[208,7],"m":"bne","oa":17340,"o":"$43BC"},{"a":17333,"t":"code","b":[192,10],"m":"cpy","o":"#$0A"},{"a":17335,"t":"code","b":[176,3],"m":"bcs","oa":17340,"o":"$43BC"},{"a":17337,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":17339,"t":"code","b":[96],"m":"rts"},{"a":17340,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[17315,17331,17335]},{"a":17342,"t":"code","b":[96],"m":"rts"},{"a":17343,"l":"enemy_damage","c":"Takes one point from the energy $3758,X of enemy slot X. When the energy is already 0 it sets the state $3742,X to 5, the count $3750,X to 0 and adds 2 to digit 4 of the score through add_digits ($44D1), which is 200 points; X is kept in the operand of the LDX at $43DF. Called by enemy_hit_check at $42A4 and $4310.","t":"code","b":[189,88,55],"m":"lda","oa":14168,"o":"enemy_energy,x","x":[17060,17168]},{"a":17346,"t":"code","b":[240,7],"m":"beq","oa":17355,"o":"b_43CB"},{"a":17348,"t":"code","b":[56],"m":"sec"},{"a":17349,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":17351,"t":"code","b":[157,88,55],"m":"sta","oa":14168,"o":"enemy_energy,x"},{"a":17354,"t":"code","b":[96],"m":"rts"},{"a":17355,"l":"b_43CB","t":"code","b":[169,5],"m":"lda","o":"#$05","x":[17346]},{"a":17357,"t":"code","b":[157,66,55],"m":"sta","oa":14146,"o":"enemy_state,x"},{"a":17360,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":17362,"t":"code","b":[157,80,55],"m":"sta","oa":14160,"o":"enemy_count,x"},{"a":17365,"t":"code","b":[142,224,67],"m":"stx","oa":17376,"o":"damage_saved_x"},{"a":17368,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":17370,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":17372,"t":"code","b":[32,209,68],"m":"jsr","oa":17617,"o":"add_digits"},{"a":17375,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":17376,"t":"note","l":"damage_saved_x","c":"Holds the X register of enemy_damage ($43BF), stored at $43D5: the immediate operand of the LDX at $43DF.","note":"inside the item at $43DF","x":[17365]},{"a":17377,"t":"code","b":[96],"m":"rts"},{"a":17378,"t":"gap","n":1},{"a":17379,"l":"energy","c":"Darkman's energy: $21 at the start of play (set by play_setup at $1ADF). player_hit ($43E9) takes 1 from it, draw_bar ($4449) shows it and the play loop ends the play at $17BA when it is 0.","t":"byte","b":[4],"x":[6074,6879,17385,17393,17533,23064]},{"a":17380,"l":"player_hurt","c":"Sets the stun timer $29F3 to 3 and goes on into player_hit ($43E9). Called when something hits Darkman, at $3B3A, $3BB4, $3BE6, $3C2D, $3C8A, $4632 and $4692.","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[15162,15284,15334,15405,15498,17970,18066]},{"a":17382,"t":"code","b":[141,243,41],"m":"sta","oa":10739,"o":"stun_timer"},{"a":17385,"l":"player_hit","c":"Takes one point of energy from $43E3 when it is not zero and plays sound effect 4 through $B0EE; X and Y are kept in the operands at $4402 and $4400. Entered by falling through from player_hurt ($43E4).","t":"code","b":[173,227,67],"m":"lda","oa":17379,"o":"energy"},{"a":17388,"t":"code","b":[240,21],"m":"beq","oa":17411,"o":"r_4403"},{"a":17390,"t":"code","b":[56],"m":"sec"},{"a":17391,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":17393,"t":"code","b":[141,227,67],"m":"sta","oa":17379,"o":"energy"},{"a":17396,"t":"code","b":[142,2,68],"m":"stx","oa":17410,"o":"hit_saved_x"},{"a":17399,"t":"code","b":[140,0,68],"m":"sty","oa":17408,"o":"hit_saved_y"},{"a":17402,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":17404,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":17407,"t":"code","b":[160,28],"m":"ldy","o":"#$1C"},{"a":17408,"t":"note","l":"hit_saved_y","c":"Holds the Y register of player_hit ($43E9), stored at $43F7: the immediate operand of the LDY at $43FF.","note":"inside the item at $43FF","x":[17399]},{"a":17409,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":17410,"t":"note","l":"hit_saved_x","c":"Holds the X register of player_hit ($43E9), stored at $43F4: the immediate operand of the LDX at $4401. The RTS at $4403 ends player_hit.","note":"inside the item at $4401","x":[17396]},{"a":17411,"l":"r_4403","t":"code","b":[96],"m":"rts","x":[17388]},{"a":17412,"l":"bar_masks","c":"Four AND masks, $FC, $F0, $C0 and $00, that draw_bar ($4449) uses to cut multicolour pixels from the right end of a bar character: each energy point missing from the 33 removes one more pixel.","t":"byte","b":[252,240,192,0],"x":[17556,17568,17580]},{"a":17416,"l":"bar_buffer","c":"The pixel bytes of the energy bar, 8 characters of 8 bytes. draw_bar ($4449) fills bytes 1 to 6 of each character with $FF, $FF, $AA, $AA, $55 and $55, cuts them with bar_masks ($4404) for the energy that is missing, and copies the 64 bytes to $FAC8-$FB07 (the panel bitmap).","t":"byte","b":[0,255,255,170,170,85,85,0],"x":[17605]},{"a":17424,"t":"byte","b":[0,255,255,170,170,85,85,0]},{"a":17432,"t":"byte","b":[0,255,255,170,170,85,85,0]},{"a":17440,"t":"byte","b":[0,255,255,170,170,85,85,0]},{"a":17448,"t":"byte","b":[0,255,255,170,170,85,85,0]},{"a":17456,"t":"byte","b":[0,252,252,170,170,85,85,0]},{"a":17464,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17472,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":17480,"l":"bar_energy_counter","c":"A copy of Darkman's energy ($43E3) that draw_bar ($4449) counts up to $21 while it cuts the bar.","t":"byte","b":[13],"x":[17536,17543,17550]},{"a":17481,"l":"draw_bar","c":"Builds the panel's bar: fills a column of characters at $CF59 and their colour, writes a striped pattern into the eight character shapes at $4409, masks off as many quarter-cells as the value in $43E3 says are gone, and copies the 64 bytes to the character set at $FAC8.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[6052,23067]},{"a":17483,"l":"b_444B","t":"code","b":[169,29],"m":"lda","o":"#$1D","x":[17496]},{"a":17485,"t":"code","b":[153,89,207],"m":"sta","oa":53081,"o":"$CF59,y"},{"a":17488,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":17490,"t":"code","b":[153,89,219],"m":"sta","o":"$DB59,y"},{"a":17493,"t":"code","b":[200],"m":"iny"},{"a":17494,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":17496,"t":"code","b":[208,241],"m":"bne","oa":17483,"o":"b_444B"},{"a":17498,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":17500,"l":"b_445C","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[17531]},{"a":17502,"t":"code","b":[153,9,68],"m":"sta","oa":17417,"o":"$4409,y"},{"a":17505,"t":"code","b":[153,10,68],"m":"sta","oa":17418,"o":"$440A,y"},{"a":17508,"t":"code","b":[169,170],"m":"lda","o":"#$AA"},{"a":17510,"t":"code","b":[153,11,68],"m":"sta","oa":17419,"o":"$440B,y"},{"a":17513,"t":"code","b":[153,12,68],"m":"sta","oa":17420,"o":"$440C,y"},{"a":17516,"t":"code","b":[169,85],"m":"lda","o":"#$55"},{"a":17518,"t":"code","b":[153,13,68],"m":"sta","oa":17421,"o":"$440D,y"},{"a":17521,"t":"code","b":[153,14,68],"m":"sta","oa":17422,"o":"$440E,y"},{"a":17524,"t":"code","b":[152],"m":"tya"},{"a":17525,"t":"code","b":[24],"m":"clc"},{"a":17526,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":17528,"t":"code","b":[168],"m":"tay"},{"a":17529,"t":"code","b":[192,64],"m":"cpy","o":"#$40"},{"a":17531,"t":"code","b":[144,223],"m":"bcc","oa":17500,"o":"b_445C"},{"a":17533,"t":"code","b":[173,227,67],"m":"lda","oa":17379,"o":"energy"},{"a":17536,"t":"code","b":[141,72,68],"m":"sta","oa":17480,"o":"bar_energy_counter"},{"a":17539,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":17541,"t":"code","b":[160,56],"m":"ldy","o":"#$38"},{"a":17543,"l":"b_4487","t":"code","b":[173,72,68],"m":"lda","oa":17480,"o":"bar_energy_counter","x":[17592,17601]},{"a":17546,"t":"code","b":[201,33],"m":"cmp","o":"#$21"},{"a":17548,"t":"code","b":[240,53],"m":"beq","oa":17603,"o":"b_44C3"},{"a":17550,"t":"code","b":[238,72,68],"m":"inc","oa":17480,"o":"bar_energy_counter"},{"a":17553,"t":"code","b":[185,9,68],"m":"lda","oa":17417,"o":"$4409,y"},{"a":17556,"t":"code","b":[61,4,68],"m":"and","oa":17412,"o":"bar_masks,x"},{"a":17559,"t":"code","b":[153,9,68],"m":"sta","oa":17417,"o":"$4409,y"},{"a":17562,"t":"code","b":[153,10,68],"m":"sta","oa":17418,"o":"$440A,y"},{"a":17565,"t":"code","b":[185,11,68],"m":"lda","oa":17419,"o":"$440B,y"},{"a":17568,"t":"code","b":[61,4,68],"m":"and","oa":17412,"o":"bar_masks,x"},{"a":17571,"t":"code","b":[153,11,68],"m":"sta","oa":17419,"o":"$440B,y"},{"a":17574,"t":"code","b":[153,12,68],"m":"sta","oa":17420,"o":"$440C,y"},{"a":17577,"t":"code","b":[185,13,68],"m":"lda","oa":17421,"o":"$440D,y"},{"a":17580,"t":"code","b":[61,4,68],"m":"and","oa":17412,"o":"bar_masks,x"},{"a":17583,"t":"code","b":[153,13,68],"m":"sta","oa":17421,"o":"$440D,y"},{"a":17586,"t":"code","b":[153,14,68],"m":"sta","oa":17422,"o":"$440E,y"},{"a":17589,"t":"code","b":[232],"m":"inx"},{"a":17590,"t":"code","b":[224,4],"m":"cpx","o":"#$04"},{"a":17592,"t":"code","b":[144,205],"m":"bcc","oa":17543,"o":"b_4487"},{"a":17594,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":17596,"t":"code","b":[152],"m":"tya"},{"a":17597,"t":"code","b":[56],"m":"sec"},{"a":17598,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":17600,"t":"code","b":[168],"m":"tay"},{"a":17601,"t":"code","b":[16,196],"m":"bpl","oa":17543,"o":"b_4487"},{"a":17603,"l":"b_44C3","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[17548]},{"a":17605,"l":"b_44C5","t":"code","b":[185,8,68],"m":"lda","oa":17416,"o":"bar_buffer,y","x":[17614]},{"a":17608,"t":"code","b":[153,200,250],"m":"sta","oa":64200,"o":"energy_cells,y"},{"a":17611,"t":"code","b":[200],"m":"iny"},{"a":17612,"t":"code","b":[192,64],"m":"cpy","o":"#$40"},{"a":17614,"t":"code","b":[208,245],"m":"bne","oa":17605,"o":"b_44C5"},{"a":17616,"t":"code","b":[96],"m":"rts"},{"a":17617,"l":"add_digits","c":"Adds A to the decimal number of one digit per byte ending at $0A00+X, carrying from digit to digit leftwards.","t":"code","b":[141,252,68],"m":"sta","oa":17660,"o":"digit_carry","x":[15209,17372,19566]},{"a":17620,"t":"code","b":[152],"m":"tya"},{"a":17621,"t":"code","b":[72],"m":"pha"},{"a":17622,"l":"j_44D6","t":"code","b":[189,0,10],"m":"lda","oa":2560,"o":"score_digits,x","x":[17654]},{"a":17625,"t":"code","b":[24],"m":"clc"},{"a":17626,"t":"code","b":[109,252,68],"m":"adc","oa":17660,"o":"digit_carry"},{"a":17629,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":17631,"t":"code","b":[16,5],"m":"bpl","oa":17638,"o":"b_44E6"},{"a":17633,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":17635,"t":"code","b":[76,235,68],"m":"jmp","oa":17643,"o":"j_44EB"},{"a":17638,"l":"b_44E6","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[17631]},{"a":17640,"t":"code","b":[56],"m":"sec"},{"a":17641,"t":"code","b":[233,10],"m":"sbc","o":"#$0A"},{"a":17643,"l":"j_44EB","t":"code","b":[157,0,10],"m":"sta","oa":2560,"o":"score_digits,x","x":[17635]},{"a":17646,"t":"code","b":[140,252,68],"m":"sty","oa":17660,"o":"digit_carry"},{"a":17649,"t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":17651,"t":"code","b":[240,4],"m":"beq","oa":17657,"o":"b_44F9"},{"a":17653,"t":"code","b":[202],"m":"dex"},{"a":17654,"t":"code","b":[76,214,68],"m":"jmp","oa":17622,"o":"j_44D6"},{"a":17657,"l":"b_44F9","t":"code","b":[104],"m":"pla","x":[17651]},{"a":17658,"t":"code","b":[168],"m":"tay"},{"a":17659,"t":"code","b":[96],"m":"rts"},{"a":17660,"l":"digit_carry","c":"Holds the amount that add_digits ($44D1) adds to a digit, and then the carry (0 or 1) into the next digit to the left.","t":"byte","b":[0],"x":[17617,17626,17646]},{"a":17661,"l":"draw_figures","c":"Draws seven digits from $0A00 onwards into the panel, through the pointer $8B/$8C set to $FA58.","t":"code","b":[169,88],"m":"lda","o":"#$58","x":[6055]},{"a":17663,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":17665,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":17667,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":17669,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":17671,"l":"b_4507","t":"code","b":[32,16,69],"m":"jsr","oa":17680,"o":"draw_digit","x":[17677]},{"a":17674,"t":"code","b":[232],"m":"inx"},{"a":17675,"t":"code","b":[224,7],"m":"cpx","o":"#$07"},{"a":17677,"t":"code","b":[208,248],"m":"bne","oa":17671,"o":"b_4507"},{"a":17679,"t":"code","b":[96],"m":"rts"},{"a":17680,"l":"draw_digit","c":"Copies the 8-byte shape of digit $0A00+X from the table $4536 to the pointer $8B/$8C and moves the pointer on 8 bytes; keeps X. Called seven times by draw_figures ($44FD, at $4507).","t":"code","b":[138],"m":"txa","x":[17671]},{"a":17681,"t":"code","b":[72],"m":"pha"},{"a":17682,"t":"code","b":[189,0,10],"m":"lda","oa":2560,"o":"score_digits,x"},{"a":17685,"t":"code","b":[10],"m":"asl","o":"a"},{"a":17686,"t":"code","b":[10],"m":"asl","o":"a"},{"a":17687,"t":"code","b":[10],"m":"asl","o":"a"},{"a":17688,"t":"code","b":[170],"m":"tax"},{"a":17689,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":17691,"l":"b_451B","t":"code","b":[189,54,69],"m":"lda","oa":17718,"o":"digit_glyphs,x","x":[17700]},{"a":17694,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"($8B),y"},{"a":17696,"t":"code","b":[232],"m":"inx"},{"a":17697,"t":"code","b":[200],"m":"iny"},{"a":17698,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":17700,"t":"code","b":[208,245],"m":"bne","oa":17691,"o":"b_451B"},{"a":17702,"t":"code","b":[24],"m":"clc"},{"a":17703,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"$8B"},{"a":17705,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":17707,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":17709,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"$8C"},{"a":17711,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":17713,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":17715,"t":"code","b":[104],"m":"pla"},{"a":17716,"t":"code","b":[170],"m":"tax"},{"a":17717,"t":"code","b":[96],"m":"rts"},{"a":17718,"l":"digit_glyphs","c":"The shapes of the digits 0 to 9, 8 bytes each. draw_digit ($4510) and timer_draw_digit ($5C51) copy them to the panel; swap_font_a ($4D8B) exchanges them with $C450.","t":"byte","b":[168,136,136,136,136,136,168,0],"x":[17691,19888,19895,23642]},{"a":17726,"t":"byte","b":[160,32,32,32,32,32,32,0]},{"a":17734,"t":"byte","b":[168,8,8,168,128,128,168,0]},{"a":17742,"t":"byte","b":[168,8,8,40,8,8,168,0]},{"a":17750,"t":"byte","b":[128,128,136,136,168,8,8,0]},{"a":17758,"t":"byte","b":[168,128,168,8,8,8,168,0]},{"a":17766,"t":"byte","b":[160,128,128,168,136,136,168,0]},{"a":17774,"t":"byte","b":[168,8,8,8,8,8,8,0]},{"a":17782,"t":"byte","b":[168,136,136,168,136,136,168,0]},{"a":17790,"t":"byte","b":[168,136,136,168,8,8,168,0]},{"a":17798,"l":"exit_touch_test","c":"Does nothing unless the end flag $2061 is set. Then it sets the distances $469C to 3 and $469E to 5, takes the position of sprite 7 ($3546/$3547 across, $3548 down, with $3548 in $4696) and Darkman's ($2657/$2659 across and $2658 plus $14 down) and calls box_test ($46A0). When that finds them close it sets the end-of-play flag $1A1E to 1. Called by irq_top at $1ED6.","t":"code","b":[173,97,32],"m":"lda","oa":8289,"o":"scroll_end","x":[7894]},{"a":17801,"t":"code","b":[240,61],"m":"beq","oa":17864,"o":"r_45C8"},{"a":17803,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":17805,"t":"code","b":[141,156,70],"m":"sta","oa":18076,"o":"box_dx"},{"a":17808,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":17810,"t":"code","b":[141,158,70],"m":"sta","oa":18078,"o":"box_dy"},{"a":17813,"t":"code","b":[173,72,53],"m":"lda","oa":13640,"o":"marker_y"},{"a":17816,"t":"code","b":[141,150,70],"m":"sta","oa":18070,"o":"box_y1"},{"a":17819,"t":"code","b":[173,70,53],"m":"lda","oa":13638,"o":"marker_x"},{"a":17822,"t":"code","b":[141,152,70],"m":"sta","oa":18072,"o":"box_x1"},{"a":17825,"t":"code","b":[173,71,53],"m":"lda","oa":13639,"o":"$3547"},{"a":17828,"t":"code","b":[141,154,70],"m":"sta","oa":18074,"o":"box_x1_hi"},{"a":17831,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":17834,"t":"code","b":[24],"m":"clc"},{"a":17835,"t":"code","b":[105,20],"m":"adc","o":"#$14"},{"a":17837,"t":"code","b":[141,151,70],"m":"sta","oa":18071,"o":"box_y2"},{"a":17840,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":17843,"t":"code","b":[141,153,70],"m":"sta","oa":18073,"o":"box_x2"},{"a":17846,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":17849,"t":"code","b":[141,155,70],"m":"sta","oa":18075,"o":"box_x2_hi"},{"a":17852,"t":"code","b":[32,160,70],"m":"jsr","oa":18080,"o":"box_test"},{"a":17855,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":17857,"t":"code","b":[240,5],"m":"beq","oa":17864,"o":"r_45C8"},{"a":17859,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":17861,"t":"code","b":[141,30,26],"m":"sta","oa":6686,"o":"end_of_play"},{"a":17864,"l":"r_45C8","t":"code","b":[96],"m":"rts","x":[17801,17857]},{"a":17865,"l":"object_touch_test","c":"Tests object slot 0 against Darkman and hurts him on contact. It sets the distances $469C to $0A and $469E to $0F. When the state $33EA is not zero it takes the object's position ($33E4, $33E8 across and $33E6 down; for a state other than 3 the X is plus $18) and Darkman's ($2657/$2659 across and $2658 plus $0A down), skipping a state 3 object at a Y other than $82 while Darkman is crouching ($2644 is 6). It then falls into object_hit_check ($462B). Called by irq_top at $1ED9.","t":"code","b":[169,10],"m":"lda","o":"#$0A","x":[7897]},{"a":17867,"t":"code","b":[141,156,70],"m":"sta","oa":18076,"o":"box_dx"},{"a":17870,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":17872,"t":"code","b":[141,158,70],"m":"sta","oa":18078,"o":"box_dy"},{"a":17875,"t":"code","b":[173,234,51],"m":"lda","oa":13290,"o":"object_state"},{"a":17878,"t":"code","b":[240,93],"m":"beq","oa":17973,"o":"r_4635"},{"a":17880,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":17882,"t":"code","b":[208,35],"m":"bne","oa":17919,"o":"b_45FF"},{"a":17884,"t":"code","b":[173,230,51],"m":"lda","oa":13286,"o":"object_y"},{"a":17887,"t":"code","b":[201,130],"m":"cmp","o":"#$82"},{"a":17889,"t":"code","b":[240,7],"m":"beq","oa":17898,"o":"b_45EA"},{"a":17891,"t":"code","b":[173,68,38],"m":"lda","oa":9796,"o":"player_state"},{"a":17894,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":17896,"t":"code","b":[240,75],"m":"beq","oa":17973,"o":"r_4635"},{"a":17898,"l":"b_45EA","t":"code","b":[173,230,51],"m":"lda","oa":13286,"o":"object_y","x":[17889]},{"a":17901,"t":"code","b":[141,150,70],"m":"sta","oa":18070,"o":"box_y1"},{"a":17904,"t":"code","b":[173,228,51],"m":"lda","oa":13284,"o":"object_x"},{"a":17907,"t":"code","b":[141,152,70],"m":"sta","oa":18072,"o":"box_x1"},{"a":17910,"t":"code","b":[173,232,51],"m":"lda","oa":13288,"o":"object_x_hi"},{"a":17913,"t":"code","b":[141,154,70],"m":"sta","oa":18074,"o":"box_x1_hi"},{"a":17916,"t":"code","b":[76,22,70],"m":"jmp","oa":17942,"o":"j_4616"},{"a":17919,"l":"b_45FF","t":"code","b":[173,230,51],"m":"lda","oa":13286,"o":"object_y","x":[17882]},{"a":17922,"t":"code","b":[141,150,70],"m":"sta","oa":18070,"o":"box_y1"},{"a":17925,"t":"code","b":[173,228,51],"m":"lda","oa":13284,"o":"object_x"},{"a":17928,"t":"code","b":[24],"m":"clc"},{"a":17929,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":17931,"t":"code","b":[141,152,70],"m":"sta","oa":18072,"o":"box_x1"},{"a":17934,"t":"code","b":[173,232,51],"m":"lda","oa":13288,"o":"object_x_hi"},{"a":17937,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":17939,"t":"code","b":[141,154,70],"m":"sta","oa":18074,"o":"box_x1_hi"},{"a":17942,"l":"j_4616","t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y","x":[17916]},{"a":17945,"t":"code","b":[24],"m":"clc"},{"a":17946,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":17948,"t":"code","b":[141,151,70],"m":"sta","oa":18071,"o":"box_y2"},{"a":17951,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":17954,"t":"code","b":[141,153,70],"m":"sta","oa":18073,"o":"box_x2"},{"a":17957,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":17960,"t":"code","b":[141,155,70],"m":"sta","oa":18075,"o":"box_x2_hi"},{"a":17963,"l":"object_hit_check","c":"The end of object_touch_test ($45C9), reached by falling through from it: calls box_test ($46A0) and, when it returns 1, hurts Darkman with player_hurt ($43E4).","t":"code","b":[32,160,70],"m":"jsr","oa":18080,"o":"box_test"},{"a":17966,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":17968,"t":"code","b":[240,3],"m":"beq","oa":17973,"o":"r_4635"},{"a":17970,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":17973,"l":"r_4635","t":"code","b":[96],"m":"rts","x":[17878,17896,17968]},{"a":17974,"l":"shot_touch_test","c":"Tests the shot against Darkman. It sets the distance $469C to $0A and $469E to $28 ($0A while he is crouching, $2644 equal to 6) and returns at once when the shot flag $4092 is zero. Otherwise it takes the shot's height $40A2 plus $0E (plus $0A more while he is crouching) and position $40A5/$40A8, and Darkman's height $2658 and position $2657/$2659, and calls box_test ($46A0). When that finds them close it clears $4092 and hurts Darkman with player_hurt ($43E4). Called by irq_bottom at $1E14.","t":"code","b":[169,10],"m":"lda","o":"#$0A","x":[7700]},{"a":17976,"t":"code","b":[141,156,70],"m":"sta","oa":18076,"o":"box_dx"},{"a":17979,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":17981,"t":"code","b":[174,68,38],"m":"ldx","oa":9796,"o":"player_state"},{"a":17984,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":17986,"t":"code","b":[208,2],"m":"bne","oa":17990,"o":"b_4646"},{"a":17988,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":17990,"l":"b_4646","t":"code","b":[141,158,70],"m":"sta","oa":18078,"o":"box_dy","x":[17986]},{"a":17993,"t":"code","b":[173,146,64],"m":"lda","oa":16530,"o":"shot_flag"},{"a":17996,"t":"code","b":[208,1],"m":"bne","oa":17999,"o":"b_464F"},{"a":17998,"l":"r_464E","t":"code","b":[96],"m":"rts","x":[18059]},{"a":17999,"l":"b_464F","t":"code","b":[24],"m":"clc","x":[17996]},{"a":18000,"t":"code","b":[173,162,64],"m":"lda","oa":16546,"o":"shot_y"},{"a":18003,"t":"code","b":[105,14],"m":"adc","o":"#$0E"},{"a":18005,"t":"code","b":[141,150,70],"m":"sta","oa":18070,"o":"box_y1"},{"a":18008,"t":"code","b":[174,68,38],"m":"ldx","oa":9796,"o":"player_state"},{"a":18011,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":18013,"t":"code","b":[208,9],"m":"bne","oa":18024,"o":"b_4668"},{"a":18015,"t":"code","b":[24],"m":"clc"},{"a":18016,"t":"code","b":[173,150,70],"m":"lda","oa":18070,"o":"box_y1"},{"a":18019,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":18021,"t":"code","b":[141,150,70],"m":"sta","oa":18070,"o":"box_y1"},{"a":18024,"l":"b_4668","t":"code","b":[173,165,64],"m":"lda","oa":16549,"o":"shot_x","x":[18013]},{"a":18027,"t":"code","b":[141,152,70],"m":"sta","oa":18072,"o":"box_x1"},{"a":18030,"t":"code","b":[173,168,64],"m":"lda","oa":16552,"o":"shot_x_hi"},{"a":18033,"t":"code","b":[141,154,70],"m":"sta","oa":18074,"o":"box_x1_hi"},{"a":18036,"t":"code","b":[173,88,38],"m":"lda","oa":9816,"o":"player_y"},{"a":18039,"t":"code","b":[141,151,70],"m":"sta","oa":18071,"o":"box_y2"},{"a":18042,"t":"code","b":[173,87,38],"m":"lda","oa":9815,"o":"player_x"},{"a":18045,"t":"code","b":[141,153,70],"m":"sta","oa":18073,"o":"box_x2"},{"a":18048,"t":"code","b":[173,89,38],"m":"lda","oa":9817,"o":"player_x_hi"},{"a":18051,"t":"code","b":[141,155,70],"m":"sta","oa":18075,"o":"box_x2_hi"},{"a":18054,"t":"code","b":[32,160,70],"m":"jsr","oa":18080,"o":"box_test"},{"a":18057,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":18059,"t":"code","b":[240,193],"m":"beq","oa":17998,"o":"r_464E"},{"a":18061,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":18063,"t":"code","b":[141,146,64],"m":"sta","oa":16530,"o":"shot_flag"},{"a":18066,"t":"code","b":[32,228,67],"m":"jsr","oa":17380,"o":"player_hurt"},{"a":18069,"t":"code","b":[96],"m":"rts"},{"a":18070,"l":"box_y1","c":"The first height for box_test ($46A0).","t":"byte","b":[0],"x":[17816,17901,17922,18005,18016,18021,18081,18103]},{"a":18071,"l":"box_y2","c":"The second height for box_test ($46A0).","t":"byte","b":[0],"x":[17837,17948,18039,18084,18089,18100]},{"a":18072,"l":"box_x1","c":"The first X position for box_test ($46A0), low byte; the ninth bit is in $469A.","t":"byte","b":[0],"x":[17822,17907,17931,18027,18118,18143,18157,18181]},{"a":18073,"l":"box_x2","c":"The second X position for box_test ($46A0), low byte; the ninth bit is in $469B.","t":"byte","b":[0],"x":[17843,17954,18045,18121,18126,18140,18161,18177]},{"a":18074,"l":"box_x1_hi","c":"The ninth bit of the first X position for box_test ($46A0).","t":"byte","b":[0],"x":[17828,17913,17939,18033,18109,18149]},{"a":18075,"l":"box_x2_hi","c":"The ninth bit of the second X position for box_test ($46A0).","t":"byte","b":[0],"x":[17849,17960,18051,18112]},{"a":18076,"l":"box_dx","c":"The largest X distance that box_test ($46A0) counts as close, set by its callers.","t":"byte","b":[10],"x":[17805,17867,17976,18129,18166]},{"a":18077,"l":"pad_469d","c":"1 zero byte after between data records that no label reaches (after box_dx) ($469D): padding that no traced code reads.","t":"byte","b":[0]},{"a":18078,"l":"box_dy","c":"The largest height difference that box_test ($46A0) counts as close, set by its callers.","t":"byte","b":[40],"x":[17810,17872,17990,18092]},{"a":18079,"t":"gap","n":1},{"a":18080,"l":"box_test","c":"Returns A=1 when two points are close and A=0 when they are not. The heights $4696 and $4697 must differ by less than $469E, and the positions ($4698 with the ninth bit in $469A, and $4699 with $469B) by less than $469C. Called by exit_touch_test, object_touch_test, object_hit_check and shot_touch_test.","t":"code","b":[56],"m":"sec","x":[17852,17963,18054]},{"a":18081,"t":"code","b":[173,150,70],"m":"lda","oa":18070,"o":"box_y1"},{"a":18084,"t":"code","b":[205,151,70],"m":"cmp","oa":18071,"o":"box_y2"},{"a":18087,"t":"code","b":[144,11],"m":"bcc","oa":18100,"o":"b_46B4"},{"a":18089,"t":"code","b":[237,151,70],"m":"sbc","oa":18071,"o":"box_y2"},{"a":18092,"l":"j_46AC","t":"code","b":[205,158,70],"m":"cmp","oa":18078,"o":"box_dy","x":[18106]},{"a":18095,"t":"code","b":[176,40],"m":"bcs","oa":18137,"o":"b_46D9"},{"a":18097,"t":"code","b":[76,189,70],"m":"jmp","oa":18109,"o":"j_46BD"},{"a":18100,"l":"b_46B4","t":"code","b":[173,151,70],"m":"lda","oa":18071,"o":"box_y2","x":[18087]},{"a":18103,"t":"code","b":[237,150,70],"m":"sbc","oa":18070,"o":"box_y1"},{"a":18106,"t":"code","b":[76,172,70],"m":"jmp","oa":18092,"o":"j_46AC"},{"a":18109,"l":"j_46BD","t":"code","b":[173,154,70],"m":"lda","oa":18074,"o":"box_x1_hi","x":[18097]},{"a":18112,"t":"code","b":[205,155,70],"m":"cmp","oa":18075,"o":"box_x2_hi"},{"a":18115,"t":"code","b":[208,32],"m":"bne","oa":18149,"o":"b_46E5"},{"a":18117,"t":"code","b":[56],"m":"sec"},{"a":18118,"t":"code","b":[173,152,70],"m":"lda","oa":18072,"o":"box_x1"},{"a":18121,"t":"code","b":[205,153,70],"m":"cmp","oa":18073,"o":"box_x2"},{"a":18124,"t":"code","b":[144,14],"m":"bcc","oa":18140,"o":"b_46DC"},{"a":18126,"t":"code","b":[237,153,70],"m":"sbc","oa":18073,"o":"box_x2"},{"a":18129,"l":"j_46D1","t":"code","b":[205,156,70],"m":"cmp","oa":18076,"o":"box_dx","x":[18146]},{"a":18132,"t":"code","b":[176,3],"m":"bcs","oa":18137,"o":"b_46D9"},{"a":18134,"l":"j_46D6","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[18171]},{"a":18136,"t":"code","b":[96],"m":"rts"},{"a":18137,"l":"b_46D9","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[18095,18132,18164,18169]},{"a":18139,"t":"code","b":[96],"m":"rts"},{"a":18140,"l":"b_46DC","t":"code","b":[173,153,70],"m":"lda","oa":18073,"o":"box_x2","x":[18124]},{"a":18143,"t":"code","b":[237,152,70],"m":"sbc","oa":18072,"o":"box_x1"},{"a":18146,"t":"code","b":[76,209,70],"m":"jmp","oa":18129,"o":"j_46D1"},{"a":18149,"l":"b_46E5","t":"code","b":[173,154,70],"m":"lda","oa":18074,"o":"box_x1_hi","x":[18115]},{"a":18152,"t":"code","b":[208,20],"m":"bne","oa":18174,"o":"b_46FE"},{"a":18154,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":18156,"t":"code","b":[56],"m":"sec"},{"a":18157,"t":"code","b":[237,152,70],"m":"sbc","oa":18072,"o":"box_x1"},{"a":18160,"t":"code","b":[24],"m":"clc"},{"a":18161,"t":"code","b":[109,153,70],"m":"adc","oa":18073,"o":"box_x2"},{"a":18164,"l":"j_46F4","t":"code","b":[176,227],"m":"bcs","oa":18137,"o":"b_46D9","x":[18184]},{"a":18166,"t":"code","b":[205,156,70],"m":"cmp","oa":18076,"o":"box_dx"},{"a":18169,"t":"code","b":[176,222],"m":"bcs","oa":18137,"o":"b_46D9"},{"a":18171,"t":"code","b":[76,214,70],"m":"jmp","oa":18134,"o":"j_46D6"},{"a":18174,"l":"b_46FE","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[18152]},{"a":18176,"t":"code","b":[56],"m":"sec"},{"a":18177,"t":"code","b":[237,153,70],"m":"sbc","oa":18073,"o":"box_x2"},{"a":18180,"t":"code","b":[24],"m":"clc"},{"a":18181,"t":"code","b":[109,152,70],"m":"adc","oa":18072,"o":"box_x1"},{"a":18184,"t":"code","b":[76,244,70],"m":"jmp","oa":18164,"o":"j_46F4"},{"a":18187,"l":"flash_toggle","c":"Flipped by image_flash ($470C) on every pass: one value draws the picture and the other clears its rows.","t":"byte","b":[0],"x":[18217,18222]},{"a":18188,"l":"image_flash","c":"Flashes the picture drawn by image_a_draw ($4765). If the resident flag $0A10 is 0 it waits three times $FF ($2027) and returns. Otherwise it repeats $FF times: toggles $470B; one phase draws the picture with $4765, the other clears the five 48-byte rows $F8C0, $FA00, $FB40, $FC80 and $FDC0. It ends by drawing the picture and waiting twice $FF. Called by mask_finish at $4C49.","t":"code","b":[173,16,10],"m":"lda","oa":2576,"o":"mask_result","x":[19529]},{"a":18191,"t":"code","b":[208,18],"m":"bne","oa":18211,"o":"b_4723"},{"a":18193,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":18195,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":18198,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":18200,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":18203,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":18205,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":18208,"t":"code","b":[76,100,71],"m":"jmp","oa":18276,"o":"r_4764"},{"a":18211,"l":"b_4723","t":"code","b":[162,255],"m":"ldx","o":"#$FF","x":[18191]},{"a":18213,"l":"j_4725","t":"code","b":[138],"m":"txa","x":[18260]},{"a":18214,"t":"code","b":[72],"m":"pha"},{"a":18215,"t":"code","b":[104],"m":"pla"},{"a":18216,"t":"code","b":[170],"m":"tax"},{"a":18217,"t":"code","b":[173,11,71],"m":"lda","oa":18187,"o":"flash_toggle"},{"a":18220,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":18222,"t":"code","b":[141,11,71],"m":"sta","oa":18187,"o":"flash_toggle"},{"a":18225,"t":"code","b":[240,6],"m":"beq","oa":18233,"o":"b_4739"},{"a":18227,"t":"code","b":[32,101,71],"m":"jsr","oa":18277,"o":"image_a_draw"},{"a":18230,"t":"code","b":[76,81,71],"m":"jmp","oa":18257,"o":"j_4751"},{"a":18233,"l":"b_4739","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[18225]},{"a":18235,"l":"b_473B","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[18255]},{"a":18237,"t":"code","b":[153,192,248],"m":"sta","oa":63680,"o":"image_row_0,y"},{"a":18240,"t":"code","b":[153,0,250],"m":"sta","oa":64000,"o":"image_row_1,y"},{"a":18243,"t":"code","b":[153,64,251],"m":"sta","oa":64320,"o":"image_row_2,y"},{"a":18246,"t":"code","b":[153,128,252],"m":"sta","oa":64640,"o":"image_row_3,y"},{"a":18249,"t":"code","b":[153,192,253],"m":"sta","oa":64960,"o":"image_row_4,y"},{"a":18252,"t":"code","b":[200],"m":"iny"},{"a":18253,"t":"code","b":[192,48],"m":"cpy","o":"#$30"},{"a":18255,"t":"code","b":[208,234],"m":"bne","oa":18235,"o":"b_473B"},{"a":18257,"l":"j_4751","t":"code","b":[202],"m":"dex","x":[18230]},{"a":18258,"t":"code","b":[240,3],"m":"beq","oa":18263,"o":"b_4757"},{"a":18260,"t":"code","b":[76,37,71],"m":"jmp","oa":18213,"o":"j_4725"},{"a":18263,"l":"b_4757","t":"code","b":[32,101,71],"m":"jsr","oa":18277,"o":"image_a_draw","x":[18258]},{"a":18266,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":18268,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":18271,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":18273,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":18276,"l":"r_4764","t":"code","b":[96],"m":"rts","x":[18208]},{"a":18277,"l":"image_a_draw","c":"Draws picture A, 6 characters wide and 5 high: copies five rows of 48 bytes from $4963, $4993, $49C3, $49F3 and $4A23 to the bitmap rows $F8C0, $FA00, $FB40, $FC80 and $FDC0, then six cells in each of five rows of colours from $4A53, $4A59, $4A5F, $4A65 and $4A6B to colour RAM $DB18, $DB40, $DB68, $DB90 and $DBB8 and of character codes from $4A71, $4A77, $4A7D, $4A83 and $4A89 to the screen $CF18, $CF40, $CF68, $CF90 and $CFB8. Called by image_flash at $4733 and $4757.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[18227,18263]},{"a":18279,"l":"b_4767","t":"code","b":[185,99,73],"m":"lda","oa":18787,"o":"image_a,y","x":[18312]},{"a":18282,"t":"code","b":[153,192,248],"m":"sta","oa":63680,"o":"image_row_0,y"},{"a":18285,"t":"code","b":[185,147,73],"m":"lda","oa":18835,"o":"$4993,y"},{"a":18288,"t":"code","b":[153,0,250],"m":"sta","oa":64000,"o":"image_row_1,y"},{"a":18291,"t":"code","b":[185,195,73],"m":"lda","oa":18883,"o":"$49C3,y"},{"a":18294,"t":"code","b":[153,64,251],"m":"sta","oa":64320,"o":"image_row_2,y"},{"a":18297,"t":"code","b":[185,243,73],"m":"lda","oa":18931,"o":"$49F3,y"},{"a":18300,"t":"code","b":[153,128,252],"m":"sta","oa":64640,"o":"image_row_3,y"},{"a":18303,"t":"code","b":[185,35,74],"m":"lda","oa":18979,"o":"$4A23,y"},{"a":18306,"t":"code","b":[153,192,253],"m":"sta","oa":64960,"o":"image_row_4,y"},{"a":18309,"t":"code","b":[200],"m":"iny"},{"a":18310,"t":"code","b":[192,48],"m":"cpy","o":"#$30"},{"a":18312,"t":"code","b":[208,221],"m":"bne","oa":18279,"o":"b_4767"},{"a":18314,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":18316,"l":"b_478C","t":"code","b":[185,83,74],"m":"lda","oa":19027,"o":"$4A53,y","x":[18379]},{"a":18319,"t":"code","b":[153,24,219],"m":"sta","o":"$DB18,y"},{"a":18322,"t":"code","b":[185,89,74],"m":"lda","oa":19033,"o":"$4A59,y"},{"a":18325,"t":"code","b":[153,64,219],"m":"sta","o":"$DB40,y"},{"a":18328,"t":"code","b":[185,95,74],"m":"lda","oa":19039,"o":"$4A5F,y"},{"a":18331,"t":"code","b":[153,104,219],"m":"sta","o":"$DB68,y"},{"a":18334,"t":"code","b":[185,101,74],"m":"lda","oa":19045,"o":"$4A65,y"},{"a":18337,"t":"code","b":[153,144,219],"m":"sta","o":"$DB90,y"},{"a":18340,"t":"code","b":[185,107,74],"m":"lda","oa":19051,"o":"$4A6B,y"},{"a":18343,"t":"code","b":[153,184,219],"m":"sta","o":"$DBB8,y"},{"a":18346,"t":"code","b":[185,113,74],"m":"lda","oa":19057,"o":"$4A71,y"},{"a":18349,"t":"code","b":[153,24,207],"m":"sta","oa":53016,"o":"$CF18,y"},{"a":18352,"t":"code","b":[185,119,74],"m":"lda","oa":19063,"o":"$4A77,y"},{"a":18355,"t":"code","b":[153,64,207],"m":"sta","oa":53056,"o":"$CF40,y"},{"a":18358,"t":"code","b":[185,125,74],"m":"lda","oa":19069,"o":"$4A7D,y"},{"a":18361,"t":"code","b":[153,104,207],"m":"sta","oa":53096,"o":"$CF68,y"},{"a":18364,"t":"code","b":[185,131,74],"m":"lda","oa":19075,"o":"$4A83,y"},{"a":18367,"t":"code","b":[153,144,207],"m":"sta","oa":53136,"o":"$CF90,y"},{"a":18370,"t":"code","b":[185,137,74],"m":"lda","oa":19081,"o":"$4A89,y"},{"a":18373,"t":"code","b":[153,184,207],"m":"sta","oa":53176,"o":"$CFB8,y"},{"a":18376,"t":"code","b":[200],"m":"iny"},{"a":18377,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":18379,"t":"code","b":[208,191],"m":"bne","oa":18316,"o":"b_478C"},{"a":18381,"t":"code","b":[96],"m":"rts"},{"a":18382,"l":"image_b_draw","c":"Draws picture B in the same layout as image_a_draw ($4765): five rows of 48 bytes from $4837, $4867, $4897, $48C7 and $48F7 to $F8C0, $FA00, $FB40, $FC80 and $FDC0, colours from $4927, $492D, $4933, $4939 and $493F to $DB18 ... $DBB8 and character codes from $4945, $494B, $4951, $4957 and $495D to $CF18 ... $CFB8. Called by play_setup at $1B3E and by the end-of-level code at $5A13.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[6974,23059]},{"a":18384,"l":"b_47D0","t":"code","b":[185,55,72],"m":"lda","oa":18487,"o":"image_b,y","x":[18417]},{"a":18387,"t":"code","b":[153,192,248],"m":"sta","oa":63680,"o":"image_row_0,y"},{"a":18390,"t":"code","b":[185,103,72],"m":"lda","oa":18535,"o":"$4867,y"},{"a":18393,"t":"code","b":[153,0,250],"m":"sta","oa":64000,"o":"image_row_1,y"},{"a":18396,"t":"code","b":[185,151,72],"m":"lda","oa":18583,"o":"$4897,y"},{"a":18399,"t":"code","b":[153,64,251],"m":"sta","oa":64320,"o":"image_row_2,y"},{"a":18402,"t":"code","b":[185,199,72],"m":"lda","oa":18631,"o":"$48C7,y"},{"a":18405,"t":"code","b":[153,128,252],"m":"sta","oa":64640,"o":"image_row_3,y"},{"a":18408,"t":"code","b":[185,247,72],"m":"lda","oa":18679,"o":"$48F7,y"},{"a":18411,"t":"code","b":[153,192,253],"m":"sta","oa":64960,"o":"image_row_4,y"},{"a":18414,"t":"code","b":[200],"m":"iny"},{"a":18415,"t":"code","b":[192,48],"m":"cpy","o":"#$30"},{"a":18417,"t":"code","b":[208,221],"m":"bne","oa":18384,"o":"b_47D0"},{"a":18419,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":18421,"l":"b_47F5","t":"code","b":[185,39,73],"m":"lda","oa":18727,"o":"$4927,y","x":[18484]},{"a":18424,"t":"code","b":[153,24,219],"m":"sta","o":"$DB18,y"},{"a":18427,"t":"code","b":[185,45,73],"m":"lda","oa":18733,"o":"$492D,y"},{"a":18430,"t":"code","b":[153,64,219],"m":"sta","o":"$DB40,y"},{"a":18433,"t":"code","b":[185,51,73],"m":"lda","oa":18739,"o":"$4933,y"},{"a":18436,"t":"code","b":[153,104,219],"m":"sta","o":"$DB68,y"},{"a":18439,"t":"code","b":[185,57,73],"m":"lda","oa":18745,"o":"$4939,y"},{"a":18442,"t":"code","b":[153,144,219],"m":"sta","o":"$DB90,y"},{"a":18445,"t":"code","b":[185,63,73],"m":"lda","oa":18751,"o":"$493F,y"},{"a":18448,"t":"code","b":[153,184,219],"m":"sta","o":"$DBB8,y"},{"a":18451,"t":"code","b":[185,69,73],"m":"lda","oa":18757,"o":"$4945,y"},{"a":18454,"t":"code","b":[153,24,207],"m":"sta","oa":53016,"o":"$CF18,y"},{"a":18457,"t":"code","b":[185,75,73],"m":"lda","oa":18763,"o":"$494B,y"},{"a":18460,"t":"code","b":[153,64,207],"m":"sta","oa":53056,"o":"$CF40,y"},{"a":18463,"t":"code","b":[185,81,73],"m":"lda","oa":18769,"o":"$4951,y"},{"a":18466,"t":"code","b":[153,104,207],"m":"sta","oa":53096,"o":"$CF68,y"},{"a":18469,"t":"code","b":[185,87,73],"m":"lda","oa":18775,"o":"$4957,y"},{"a":18472,"t":"code","b":[153,144,207],"m":"sta","oa":53136,"o":"$CF90,y"},{"a":18475,"t":"code","b":[185,93,73],"m":"lda","oa":18781,"o":"$495D,y"},{"a":18478,"t":"code","b":[153,184,207],"m":"sta","oa":53176,"o":"$CFB8,y"},{"a":18481,"t":"code","b":[200],"m":"iny"},{"a":18482,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":18484,"t":"code","b":[208,191],"m":"bne","oa":18421,"o":"b_47F5"},{"a":18486,"t":"code","b":[96],"m":"rts"},{"a":18487,"l":"image_b","c":"Picture B for image_b_draw ($47CE): five rows of 48 bytes of pixels (six cells of 8 bytes in multicolour bitmap form) at $4837, $4867, $4897, $48C7 and $48F7; then five rows of 6 colour-RAM values at $4927, $492D, $4933, $4939 and $493F; then five rows of 6 screen codes at $4945, $494B, $4951, $4957 and $495D. It is the picture shown in the panel by play_setup ($1B3E) and after the mask game.","t":"byte","b":[0,47,63,53,53,53,53,53],"x":[18384]},{"a":18495,"t":"byte","b":[0,170,170,245,245,245,244,244]},{"a":18503,"t":"byte","b":[0,170,170,0,12,48,0,15]},{"a":18511,"t":"byte","b":[0,170,170,0,0,0,0,192]},{"a":18519,"t":"byte","b":[0,170,170,175,111,111,47,31]},{"a":18527,"t":"byte","b":[0,172,168,88,88,88,88,88]},{"a":18535,"t":"byte","b":[47,47,37,36,32,32,32,32],"x":[18390]},{"a":18543,"t":"byte","b":[172,240,192,0,3,13,5,5]},{"a":18551,"t":"byte","b":[181,0,0,10,63,159,190,160]},{"a":18559,"t":"byte","b":[173,0,0,64,208,208,80,64]},{"a":18567,"t":"byte","b":[10,51,0,0,0,0,0,3]},{"a":18575,"t":"byte","b":[172,172,28,12,12,28,92,76]},{"a":18583,"t":"byte","b":[44,47,47,47,47,47,47,45],"x":[18396]},{"a":18591,"t":"byte","b":[11,74,90,90,90,90,122,250]},{"a":18599,"t":"byte","b":[0,0,128,170,171,191,191,42]},{"a":18607,"t":"byte","b":[128,192,192,96,104,104,106,0]},{"a":18615,"t":"byte","b":[8,13,13,45,45,61,61,63]},{"a":18623,"t":"byte","b":[44,172,172,172,172,172,172,172]},{"a":18631,"t":"byte","b":[47,44,32,32,32,32,32,32],"x":[18402]},{"a":18639,"t":"byte","b":[139,11,35,50,56,44,46,11]},{"a":18647,"t":"byte","b":[191,191,190,40,191,63,11,128]},{"a":18655,"t":"byte","b":[168,170,184,0,168,162,137,0]},{"a":18663,"t":"byte","b":[42,43,43,108,224,128,0,0]},{"a":18671,"t":"byte","b":[184,168,104,104,40,24,8,8]},{"a":18679,"t":"byte","b":[32,32,42,58,0,0,0,0],"x":[18408]},{"a":18687,"t":"byte","b":[10,2,255,255,0,0,0,0]},{"a":18695,"t":"byte","b":[128,160,255,255,0,0,0,0]},{"a":18703,"t":"byte","b":[0,0,170,170,0,0,0,0]},{"a":18711,"t":"byte","b":[0,0,170,170,0,0,0,0]},{"a":18719,"t":"byte","b":[8,8,168,172,0,0,0,0]},{"a":18727,"t":"byte","b":[241,185,187,251,152,255,249,171],"x":[18421]},{"a":18735,"t":"byte","b":[172,236,187,209,9,75,12,172]},{"a":18743,"t":"byte","b":[129,33,251,252,252,252,44,248]},{"a":18751,"t":"byte","b":[255,241,241,241,129,255,159,177],"x":[18445]},{"a":18759,"t":"byte","b":[177,177,193,129,177,201,251,191]},{"a":18767,"t":"byte","b":[184,184,177,156,155,251,140,136]},{"a":18775,"t":"byte","b":[17,27,27,27,177,241,145,155],"x":[18469]},{"a":18783,"t":"byte","b":[155,145,145,145]},{"a":18787,"l":"image_a","c":"Picture A for image_a_draw ($4765): five rows of 48 bytes of pixels (six cells of 8 bytes in multicolour bitmap form) at $4963, $4993, $49C3, $49F3 and $4A23; then five rows of 6 colour-RAM values at $4A53, $4A59, $4A5F, $4A65 and $4A6B; then five rows of 6 screen codes at $4A71, $4A77, $4A7D, $4A83 and $4A89. image_flash ($470C) draws it and clears it by turns.","t":"byte","b":[0,47,63,53,53,53,53,53],"x":[18279]},{"a":18795,"t":"byte","b":[0,170,170,255,252,240,240,192]},{"a":18803,"t":"byte","b":[0,170,170,0,0,0,0,0]},{"a":18811,"t":"byte","b":[0,170,170,0,0,0,15,53]},{"a":18819,"t":"byte","b":[0,170,170,255,63,15,15,67]},{"a":18827,"t":"byte","b":[0,172,168,88,88,88,88,88]},{"a":18835,"t":"byte","b":[47,47,47,47,47,47,47,47],"x":[18285]},{"a":18843,"t":"byte","b":[128,128,3,3,3,15,15,15]},{"a":18851,"t":"byte","b":[128,160,175,191,191,175,255,191]},{"a":18859,"t":"byte","b":[42,174,170,170,170,170,170,149]},{"a":18867,"t":"byte","b":[131,67,67,96,96,96,80,80]},{"a":18875,"t":"byte","b":[172,172,172,172,172,172,172,172]},{"a":18883,"t":"byte","b":[47,47,47,47,47,47,47,47],"x":[18291]},{"a":18891,"t":"byte","b":[8,8,10,14,11,11,66,64]},{"a":18899,"t":"byte","b":[11,178,24,184,234,251,251,242]},{"a":18907,"t":"byte","b":[128,142,225,239,251,255,109,143]},{"a":18915,"t":"byte","b":[32,32,224,160,96,176,128,48]},{"a":18923,"t":"byte","b":[172,172,172,172,172,172,172,172]},{"a":18931,"t":"byte","b":[47,47,47,47,47,47,47,47],"x":[18297]},{"a":18939,"t":"byte","b":[140,135,143,161,163,168,168,170]},{"a":18947,"t":"byte","b":[184,191,63,185,160,187,190,47]},{"a":18955,"t":"byte","b":[46,234,171,184,12,187,59,172]},{"a":18963,"t":"byte","b":[35,99,83,143,79,63,63,255]},{"a":18971,"t":"byte","b":[172,172,172,172,172,172,172,172]},{"a":18979,"t":"byte","b":[47,47,42,26,0,0,0,0],"x":[18303]},{"a":18987,"t":"byte","b":[170,170,255,255,0,0,0,0]},{"a":18995,"t":"byte","b":[143,160,85,85,0,0,0,0]},{"a":19003,"t":"byte","b":[163,15,85,85,0,0,0,0]},{"a":19011,"t":"byte","b":[170,170,255,255,0,0,0,0]},{"a":19019,"t":"byte","b":[172,172,252,244,0,0,0,0]},{"a":19027,"t":"byte","b":[241,254,254,89,254,255,254,249],"x":[18316]},{"a":19035,"t":"byte","b":[250,241,254,241,190,250,26,250]},{"a":19043,"t":"byte","b":[249,241,78,41,250,249,46,241]},{"a":19051,"t":"byte","b":[254,241,249,254,241,1,239,225],"x":[18340]},{"a":19059,"t":"byte","b":[225,161,145,225,177,190,185,154]},{"a":19067,"t":"byte","b":[169,174,129,233,25,25,26,30]},{"a":19075,"t":"byte","b":[241,174,25,26,154,158,241,254],"x":[18364]},{"a":19083,"t":"byte","b":[30,25,30,254]},{"a":19087,"l":"end_of_level","c":"Where the play loop at $179E goes when $1A1E is set; calls $58C8.","t":"code","b":[32,200,88],"m":"jsr","oa":22728,"o":"mask_setup","x":[6090]},{"a":19090,"l":"b_4A92","t":"code","b":[32,213,31],"m":"jsr","oa":8149,"o":"disabled_check","x":[19099]},{"a":19093,"t":"code","b":[32,41,92],"m":"jsr","oa":23593,"o":"timer_draw"},{"a":19096,"t":"code","b":[173,103,92],"m":"lda","oa":23655,"o":"mask_over"},{"a":19099,"t":"code","b":[240,245],"m":"beq","oa":19090,"o":"b_4A92"},{"a":19101,"t":"code","b":[32,22,76],"m":"jsr","oa":19478,"o":"mask_finish"},{"a":19104,"t":"code","b":[32,40,184],"m":"jsr","oa":47144,"o":"silence_all"},{"a":19107,"t":"code","b":[76,7,4],"m":"jmp","oa":1031,"o":"next_level_load"},{"a":19110,"l":"seen_type_2","c":"Set to 1 by scan_wait ($4B83) when a matching slice of type 2 was found.","t":"byte","b":[0],"x":[19387,19412,19440]},{"a":19111,"l":"seen_type_1","c":"Set to 1 by scan_wait ($4B83) when a matching slice of type 1 was found.","t":"byte","b":[0],"x":[19390,19424,19451]},{"a":19112,"l":"seen_other_type","c":"Set to 1 by scan_wait ($4B83) when a matching slice of any other type was found.","t":"byte","b":[0],"x":[19393,19432,19456,19467]},{"a":19113,"l":"print_index","c":"Index of the next character that print_scanning ($4ABC), print_mask_complete ($4AF7), print_insufficient ($4B3D) and print_generate_mask ($4B5F) type; mask_report ($4C56) clears it.","t":"byte","b":[0],"x":[19149,19171,19196,19218,19266,19288,19300,19322,19544,19591,22844]},{"a":19114,"l":"print_delay","c":"Countdown of print_scanning ($4ABC) between two characters, reloaded with $46.","t":"byte","b":[0],"x":[19132,19138,19146]},{"a":19115,"l":"scanning_text","c":"The text \"scanning........\" in character codes (print_scanning adds 6 to each), ended by $FF.","t":"byte","b":[115,99,97,110,110,105,110,103],"x":[19152]},{"a":19123,"t":"byte","b":[123,123,123,123,123,123,123,123]},{"a":19131,"t":"byte","b":[255]},{"a":19132,"l":"print_scanning","c":"Prints one character of the text \"scanning........\" from $4AAB per call, when the countdown $4AAA has reached zero (it reloads it with $46 and counts it down otherwise). Adds 6 to the code, stores it at $CE3C plus the index $4AA9 and colour 9 at $DA3C plus the index, and moves the index on; the code $FF stops it. Called by scan_wait ($4B83) at $4BAC on every pass of its wait.","t":"code","b":[174,170,74],"m":"ldx","oa":19114,"o":"print_delay","x":[19372]},{"a":19135,"t":"code","b":[240,7],"m":"beq","oa":19144,"o":"b_4AC8"},{"a":19137,"t":"code","b":[202],"m":"dex"},{"a":19138,"t":"code","b":[142,170,74],"m":"stx","oa":19114,"o":"print_delay"},{"a":19141,"t":"code","b":[76,230,74],"m":"jmp","oa":19174,"o":"r_4AE6"},{"a":19144,"l":"b_4AC8","t":"code","b":[169,70],"m":"lda","o":"#$46","x":[19135]},{"a":19146,"t":"code","b":[141,170,74],"m":"sta","oa":19114,"o":"print_delay"},{"a":19149,"t":"code","b":[174,169,74],"m":"ldx","oa":19113,"o":"print_index"},{"a":19152,"t":"code","b":[189,171,74],"m":"lda","oa":19115,"o":"scanning_text,x"},{"a":19155,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":19157,"t":"code","b":[240,15],"m":"beq","oa":19174,"o":"r_4AE6"},{"a":19159,"t":"code","b":[24],"m":"clc"},{"a":19160,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":19162,"t":"code","b":[157,60,206],"m":"sta","oa":52796,"o":"$CE3C,x"},{"a":19165,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":19167,"t":"code","b":[157,60,218],"m":"sta","o":"$DA3C,x"},{"a":19170,"t":"code","b":[232],"m":"inx"},{"a":19171,"t":"code","b":[142,169,74],"m":"stx","oa":19113,"o":"print_index"},{"a":19174,"l":"r_4AE6","t":"code","b":[96],"m":"rts","x":[19141,19157]},{"a":19175,"l":"mask_complete_text","c":"The text \"mask  complete.\" in character codes (print_mask_complete adds 6 to each), ended by $FF.","t":"byte","b":[109,97,115,107,130,130,99,111],"x":[19199]},{"a":19183,"t":"byte","b":[109,112,108,101,116,101,123,255]},{"a":19191,"l":"print_mask_complete","c":"Prints \"mask  complete.\" from $4AE7 at $CE3D plus the index $4AA9 with colour $0F at $DA3D plus the index, one character at a time after a delay of $32 ($2027), adding 6 to each code, until the code $FF; it repeats by jumping back to its start. Called by mask_report ($4C56) at $4C7C.","t":"code","b":[169,50],"m":"lda","o":"#$32","x":[19221,19580]},{"a":19193,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19196,"t":"code","b":[174,169,74],"m":"ldx","oa":19113,"o":"print_index"},{"a":19199,"t":"code","b":[189,231,74],"m":"lda","oa":19175,"o":"mask_complete_text,x"},{"a":19202,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":19204,"t":"code","b":[240,18],"m":"beq","oa":19224,"o":"r_4B18"},{"a":19206,"t":"code","b":[24],"m":"clc"},{"a":19207,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":19209,"t":"code","b":[157,61,206],"m":"sta","oa":52797,"o":"$CE3D,x"},{"a":19212,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":19214,"t":"code","b":[157,61,218],"m":"sta","o":"$DA3D,x"},{"a":19217,"t":"code","b":[232],"m":"inx"},{"a":19218,"t":"code","b":[142,169,74],"m":"stx","oa":19113,"o":"print_index"},{"a":19221,"t":"code","b":[76,247,74],"m":"jmp","oa":19191,"o":"print_mask_complete"},{"a":19224,"l":"r_4B18","t":"code","b":[96],"m":"rts","x":[19204]},{"a":19225,"l":"insufficient_text","c":"The text \"insufficient data\" in character codes (print_insufficient adds 6 to each), ended by $FF.","t":"byte","b":[105,110,115,117,102,102,105,99],"x":[19269]},{"a":19233,"t":"byte","b":[105,101,110,116,130,100,97,116]},{"a":19241,"t":"byte","b":[97,255]},{"a":19243,"l":"generate_mask_text","c":"The text \"to generate mask.\" in character codes (print_generate_mask adds 6 to each), ended by $FF.","t":"byte","b":[116,111,130,103,101,110,101,114],"x":[19303]},{"a":19251,"t":"byte","b":[97,116,101,130,109,97,115,107]},{"a":19259,"t":"byte","b":[123,255]},{"a":19261,"l":"print_insufficient","c":"Prints \"insufficient data\" from $4B19 at $CD24 plus the index $4AA9 with colour $0F at $D924 plus the index, one character at a time after a delay of $32 ($2027), adding 6 to each code, until the code $FF; it repeats by jumping back to its start. Called by mask_report ($4C56) at $4C82.","t":"code","b":[169,50],"m":"lda","o":"#$32","x":[19291,19586]},{"a":19263,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19266,"t":"code","b":[174,169,74],"m":"ldx","oa":19113,"o":"print_index"},{"a":19269,"t":"code","b":[189,25,75],"m":"lda","oa":19225,"o":"insufficient_text,x"},{"a":19272,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":19274,"t":"code","b":[240,18],"m":"beq","oa":19294,"o":"r_4B5E"},{"a":19276,"t":"code","b":[24],"m":"clc"},{"a":19277,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":19279,"t":"code","b":[157,36,205],"m":"sta","oa":52516,"o":"$CD24,x"},{"a":19282,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":19284,"t":"code","b":[157,36,217],"m":"sta","o":"$D924,x"},{"a":19287,"t":"code","b":[232],"m":"inx"},{"a":19288,"t":"code","b":[142,169,74],"m":"stx","oa":19113,"o":"print_index"},{"a":19291,"t":"code","b":[76,61,75],"m":"jmp","oa":19261,"o":"print_insufficient"},{"a":19294,"l":"r_4B5E","t":"code","b":[96],"m":"rts","x":[19274]},{"a":19295,"l":"print_generate_mask","c":"Prints \"to generate mask.\" from $4B2B at $CD74 plus the index $4AA9 with colour $0F at $D974 plus the index, one character at a time after a delay of $32 ($2027), adding 6 to each code, until the code $FF; it repeats by jumping back to its start. Called by mask_report ($4C56) at $4C8A.","t":"code","b":[169,50],"m":"lda","o":"#$32","x":[19325,19594]},{"a":19297,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19300,"t":"code","b":[174,169,74],"m":"ldx","oa":19113,"o":"print_index"},{"a":19303,"t":"code","b":[189,43,75],"m":"lda","oa":19243,"o":"generate_mask_text,x"},{"a":19306,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":19308,"t":"code","b":[240,18],"m":"beq","oa":19328,"o":"r_4B80"},{"a":19310,"t":"code","b":[24],"m":"clc"},{"a":19311,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":19313,"t":"code","b":[157,116,205],"m":"sta","oa":52596,"o":"$CD74,x"},{"a":19316,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":19318,"t":"code","b":[157,116,217],"m":"sta","o":"$D974,x"},{"a":19321,"t":"code","b":[232],"m":"inx"},{"a":19322,"t":"code","b":[142,169,74],"m":"stx","oa":19113,"o":"print_index"},{"a":19325,"t":"code","b":[76,95,75],"m":"jmp","oa":19295,"o":"print_generate_mask"},{"a":19328,"l":"r_4B80","t":"code","b":[96],"m":"rts","x":[19308]},{"a":19329,"l":"scan_toggle","c":"Flipped by scan_wait ($4B83) each time its colour swap comes round.","t":"byte","b":[0],"x":[19352,19357]},{"a":19330,"l":"scan_count","c":"Countdown of scan_wait ($4B83) between two colour swaps, reloaded with $D2.","t":"byte","b":[0],"x":[19331,19337,19345]},{"a":19331,"l":"scan_wait","c":"Waits for the scan to finish and rates it. Every $D3 calls ($4B82 counts down from $D2) it toggles $4B81 and swaps the colours $0D and $0A in the colour RAM bytes $DA9F and $DA9E; each call runs print_scanning ($4ABC) and waits $0A ($2027), and it repeats until $5094 is not zero. It then goes through the twelve match flags $5095-$50A0: for each flag that is set it tests the slice type in $50A2 plus the same index and sets $4AA6 (type 2), $4AA7 (type 1) or $4AA8 (any other). It stores in $0A10: 0 if $4AA6 is clear; otherwise 1 when exactly one of $4AA7 and $4AA8 is set, 2 when both are, and 0 when neither is. Called by mask_finish at $4C34.","t":"code","b":[174,130,75],"m":"ldx","oa":19330,"o":"scan_count","x":[19383,19508]},{"a":19334,"t":"code","b":[240,7],"m":"beq","oa":19343,"o":"b_4B8F"},{"a":19336,"t":"code","b":[202],"m":"dex"},{"a":19337,"t":"code","b":[142,130,75],"m":"stx","oa":19330,"o":"scan_count"},{"a":19340,"t":"code","b":[76,172,75],"m":"jmp","oa":19372,"o":"j_4BAC"},{"a":19343,"l":"b_4B8F","t":"code","b":[162,210],"m":"ldx","o":"#$D2","x":[19334]},{"a":19345,"t":"code","b":[142,130,75],"m":"stx","oa":19330,"o":"scan_count"},{"a":19348,"t":"code","b":[162,13],"m":"ldx","o":"#$0D"},{"a":19350,"t":"code","b":[160,10],"m":"ldy","o":"#$0A"},{"a":19352,"t":"code","b":[173,129,75],"m":"lda","oa":19329,"o":"scan_toggle"},{"a":19355,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":19357,"t":"code","b":[141,129,75],"m":"sta","oa":19329,"o":"scan_toggle"},{"a":19360,"t":"code","b":[240,4],"m":"beq","oa":19366,"o":"b_4BA6"},{"a":19362,"t":"code","b":[162,10],"m":"ldx","o":"#$0A"},{"a":19364,"t":"code","b":[160,13],"m":"ldy","o":"#$0D"},{"a":19366,"l":"b_4BA6","t":"code","b":[142,159,218],"m":"stx","o":"$DA9F","x":[19360]},{"a":19369,"t":"code","b":[140,158,218],"m":"sty","o":"$DA9E"},{"a":19372,"l":"j_4BAC","t":"code","b":[32,188,74],"m":"jsr","oa":19132,"o":"print_scanning","x":[19340]},{"a":19375,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":19377,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19380,"t":"code","b":[173,148,80],"m":"lda","oa":20628,"o":"scan_done"},{"a":19383,"t":"code","b":[240,202],"m":"beq","oa":19331,"o":"scan_wait"},{"a":19385,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":19387,"t":"code","b":[141,166,74],"m":"sta","oa":19110,"o":"seen_type_2"},{"a":19390,"t":"code","b":[141,167,74],"m":"sta","oa":19111,"o":"seen_type_1"},{"a":19393,"t":"code","b":[141,168,74],"m":"sta","oa":19112,"o":"seen_other_type"},{"a":19396,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19398,"l":"b_4BC6","t":"code","b":[185,149,80],"m":"lda","oa":20629,"o":"match_flags,y","x":[19438]},{"a":19401,"t":"code","b":[240,32],"m":"beq","oa":19435,"o":"b_4BEB"},{"a":19403,"t":"code","b":[185,162,80],"m":"lda","oa":20642,"o":"slice_types,y"},{"a":19406,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":19408,"t":"code","b":[208,8],"m":"bne","oa":19418,"o":"b_4BDA"},{"a":19410,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":19412,"t":"code","b":[141,166,74],"m":"sta","oa":19110,"o":"seen_type_2"},{"a":19415,"t":"code","b":[76,235,75],"m":"jmp","oa":19435,"o":"b_4BEB"},{"a":19418,"l":"b_4BDA","t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[19408]},{"a":19420,"t":"code","b":[208,8],"m":"bne","oa":19430,"o":"b_4BE6"},{"a":19422,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":19424,"t":"code","b":[141,167,74],"m":"sta","oa":19111,"o":"seen_type_1"},{"a":19427,"t":"code","b":[76,235,75],"m":"jmp","oa":19435,"o":"b_4BEB"},{"a":19430,"l":"b_4BE6","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[19420]},{"a":19432,"t":"code","b":[141,168,74],"m":"sta","oa":19112,"o":"seen_other_type"},{"a":19435,"l":"b_4BEB","t":"code","b":[200],"m":"iny","x":[19401,19415,19427]},{"a":19436,"t":"code","b":[192,12],"m":"cpy","o":"#$0C"},{"a":19438,"t":"code","b":[208,214],"m":"bne","oa":19398,"o":"b_4BC6"},{"a":19440,"t":"code","b":[173,166,74],"m":"lda","oa":19110,"o":"seen_type_2"},{"a":19443,"t":"code","b":[208,6],"m":"bne","oa":19451,"o":"b_4BFB"},{"a":19445,"l":"b_4BF5","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[19459]},{"a":19447,"t":"code","b":[141,16,10],"m":"sta","oa":2576,"o":"mask_result"},{"a":19450,"t":"code","b":[96],"m":"rts"},{"a":19451,"l":"b_4BFB","t":"code","b":[173,167,74],"m":"lda","oa":19111,"o":"seen_type_1","x":[19443]},{"a":19454,"t":"code","b":[208,11],"m":"bne","oa":19467,"o":"b_4C0B"},{"a":19456,"t":"code","b":[173,168,74],"m":"lda","oa":19112,"o":"seen_other_type"},{"a":19459,"t":"code","b":[240,240],"m":"beq","oa":19445,"o":"b_4BF5"},{"a":19461,"l":"b_4C05","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[19470]},{"a":19463,"t":"code","b":[141,16,10],"m":"sta","oa":2576,"o":"mask_result"},{"a":19466,"t":"code","b":[96],"m":"rts"},{"a":19467,"l":"b_4C0B","t":"code","b":[173,168,74],"m":"lda","oa":19112,"o":"seen_other_type","x":[19454]},{"a":19470,"t":"code","b":[240,245],"m":"beq","oa":19461,"o":"b_4C05"},{"a":19472,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":19474,"t":"code","b":[141,16,10],"m":"sta","oa":2576,"o":"mask_result"},{"a":19477,"t":"code","b":[96],"m":"rts"},{"a":19478,"l":"mask_finish","c":"Closes the mask game, called by the end-of-level code at $4A9D. Fills the 80 bytes $CEA8-$CEF7 with $50, calls the sound driver at $B0C8 twice, then runs screen B ($569B), swap_font_a ($4D8B), swap_font_c ($4DE6), the 12 blocks $4E54 and the scan $4B83. After three waits of $FF it runs the report $4C56, the picture flash $470C and $1FD5, and swaps back with $4DC4 and $4DE6.","t":"code","b":[169,80],"m":"lda","o":"#$50","x":[19101]},{"a":19480,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19482,"l":"b_4C1A","t":"code","b":[153,168,206],"m":"sta","oa":52904,"o":"$CEA8,y","x":[19488]},{"a":19485,"t":"code","b":[200],"m":"iny"},{"a":19486,"t":"code","b":[192,80],"m":"cpy","o":"#$50"},{"a":19488,"t":"code","b":[208,248],"m":"bne","oa":19482,"o":"b_4C1A"},{"a":19490,"t":"code","b":[32,200,176],"m":"jsr","oa":45256,"o":"music_init"},{"a":19493,"t":"code","b":[32,200,176],"m":"jsr","oa":45256,"o":"music_init"},{"a":19496,"t":"code","b":[32,155,86],"m":"jsr","oa":22171,"o":"screen_b_draw"},{"a":19499,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":19502,"t":"code","b":[32,230,77],"m":"jsr","oa":19942,"o":"swap_font_c"},{"a":19505,"t":"code","b":[32,84,78],"m":"jsr","oa":20052,"o":"draw_slice_blocks"},{"a":19508,"t":"code","b":[32,131,75],"m":"jsr","oa":19331,"o":"scan_wait"},{"a":19511,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":19513,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19516,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":19518,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19521,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":19523,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19526,"t":"code","b":[32,86,76],"m":"jsr","oa":19542,"o":"mask_report"},{"a":19529,"t":"code","b":[32,12,71],"m":"jsr","oa":18188,"o":"image_flash"},{"a":19532,"t":"code","b":[32,213,31],"m":"jsr","oa":8149,"o":"disabled_check"},{"a":19535,"t":"code","b":[32,196,77],"m":"jsr","oa":19908,"o":"swap_font_b"},{"a":19538,"t":"code","b":[32,230,77],"m":"jsr","oa":19942,"o":"swap_font_c"},{"a":19541,"t":"code","b":[96],"m":"rts"},{"a":19542,"l":"mask_report","c":"Reports the result, called by mask_finish at $4C46. Clears the text index $4AA9, then runs clear_text_area ($4D3A) and swap_font_b ($4DC4). If $0A10 is 0 it prints \"insufficient data\" ($4B3D) and, with the index cleared, \"to generate mask.\" ($4B5F). Otherwise it adds 1 to score digit 3 ($44D1 with X=3, 1,000 points) when $0A10 is 2, sets $5BC0 to 1, draws the character block $4CD7, runs the dissolve $4C8E and prints \"mask  complete.\" ($4AF7).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[19526]},{"a":19544,"t":"code","b":[141,169,74],"m":"sta","oa":19113,"o":"print_index"},{"a":19547,"t":"code","b":[32,58,77],"m":"jsr","oa":19770,"o":"clear_text_area"},{"a":19550,"t":"code","b":[32,196,77],"m":"jsr","oa":19908,"o":"swap_font_b"},{"a":19553,"t":"code","b":[173,16,10],"m":"lda","oa":2576,"o":"mask_result"},{"a":19556,"t":"code","b":[240,28],"m":"beq","oa":19586,"o":"b_4C82"},{"a":19558,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":19560,"t":"code","b":[208,7],"m":"bne","oa":19569,"o":"b_4C71"},{"a":19562,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":19564,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":19566,"t":"code","b":[32,209,68],"m":"jsr","oa":17617,"o":"add_digits"},{"a":19569,"l":"b_4C71","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[19560]},{"a":19571,"t":"code","b":[141,192,91],"m":"sta","oa":23488,"o":"report_flag"},{"a":19574,"t":"code","b":[32,215,76],"m":"jsr","oa":19671,"o":"draw_subject_chars"},{"a":19577,"t":"code","b":[32,142,76],"m":"jsr","oa":19598,"o":"dissolve_pattern"},{"a":19580,"t":"code","b":[32,247,74],"m":"jsr","oa":19191,"o":"print_mask_complete"},{"a":19583,"t":"code","b":[76,141,76],"m":"jmp","oa":19597,"o":"r_4C8D"},{"a":19586,"l":"b_4C82","t":"code","b":[32,61,75],"m":"jsr","oa":19261,"o":"print_insufficient","x":[19556]},{"a":19589,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":19591,"t":"code","b":[141,169,74],"m":"sta","oa":19113,"o":"print_index"},{"a":19594,"t":"code","b":[32,95,75],"m":"jsr","oa":19295,"o":"print_generate_mask"},{"a":19597,"l":"r_4C8D","t":"code","b":[96],"m":"rts","x":[19583]},{"a":19598,"l":"dissolve_pattern","c":"Erodes the buffer $FE00-$FEFF in 30 rounds. In each round every one of the 256 bytes gets its own random byte from $1FB5, which picks the mask $FC (below $40), $F3 (below $80), $CF (below $C4) or $3F; the mask is stored in the operand of the AND at $4CB8 and the byte is ANDed with it. After each round it waits $32, and at the end it clears the 256 bytes to 0. The buffer is the shape data of sprites 1 to 4 (pointers $F8 to $FB). Called by mask_report ($4C56) at $4C79.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[19577]},{"a":19600,"l":"b_4C90","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[19660]},{"a":19602,"l":"b_4C92","t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random","x":[19646]},{"a":19605,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":19607,"t":"code","b":[176,5],"m":"bcs","oa":19614,"o":"b_4C9E"},{"a":19609,"t":"code","b":[169,252],"m":"lda","o":"#$FC"},{"a":19611,"t":"code","b":[76,178,76],"m":"jmp","oa":19634,"o":"j_4CB2"},{"a":19614,"l":"b_4C9E","t":"code","b":[201,128],"m":"cmp","o":"#$80","x":[19607]},{"a":19616,"t":"code","b":[176,5],"m":"bcs","oa":19623,"o":"b_4CA7"},{"a":19618,"t":"code","b":[169,243],"m":"lda","o":"#$F3"},{"a":19620,"t":"code","b":[76,178,76],"m":"jmp","oa":19634,"o":"j_4CB2"},{"a":19623,"l":"b_4CA7","t":"code","b":[201,196],"m":"cmp","o":"#$C4","x":[19616]},{"a":19625,"t":"code","b":[176,5],"m":"bcs","oa":19632,"o":"b_4CB0"},{"a":19627,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":19629,"t":"code","b":[76,178,76],"m":"jmp","oa":19634,"o":"j_4CB2"},{"a":19632,"l":"b_4CB0","t":"code","b":[169,63],"m":"lda","o":"#$3F","x":[19625]},{"a":19634,"l":"j_4CB2","t":"code","b":[141,185,76],"m":"sta","oa":19641,"o":"dissolve_mask","x":[19611,19620,19629]},{"a":19637,"t":"code","b":[185,0,254],"m":"lda","oa":65024,"o":"KERNAL_SETLFSj,y"},{"a":19640,"t":"code","b":[41,0],"m":"and","o":"#$00"},{"a":19641,"t":"note","l":"dissolve_mask","c":"The operand of the AND at $4CB8: dissolve_pattern ($4C8E) stores the mask it chose for each byte here before the AND runs.","note":"inside the item at $4CB8","x":[19634]},{"a":19642,"l":"dissolve_pattern_part_2","c":"The end of the inner loop of dissolve_pattern ($4C8E): writes the ANDed byte back to $FE00,y and goes on to the next of the 256 bytes. After each pass of 256 it waits $32 with $2027 and runs the next of the 30 rounds; at the end it clears the 256 bytes to 0.","t":"code","b":[153,0,254],"m":"sta","oa":65024,"o":"KERNAL_SETLFSj,y"},{"a":19645,"t":"code","b":[200],"m":"iny"},{"a":19646,"t":"code","b":[208,210],"m":"bne","oa":19602,"o":"b_4C92"},{"a":19648,"t":"code","b":[138],"m":"txa"},{"a":19649,"t":"code","b":[72],"m":"pha"},{"a":19650,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":19652,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":19655,"t":"code","b":[104],"m":"pla"},{"a":19656,"t":"code","b":[170],"m":"tax"},{"a":19657,"t":"code","b":[232],"m":"inx"},{"a":19658,"t":"code","b":[224,30],"m":"cpx","o":"#$1E"},{"a":19660,"t":"code","b":[208,194],"m":"bne","oa":19600,"o":"b_4C90"},{"a":19662,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":19664,"l":"b_4CD0","t":"code","b":[153,0,254],"m":"sta","oa":65024,"o":"KERNAL_SETLFSj,y","x":[19668]},{"a":19667,"t":"code","b":[200],"m":"iny"},{"a":19668,"t":"code","b":[208,250],"m":"bne","oa":19664,"o":"b_4CD0"},{"a":19670,"t":"code","b":[96],"m":"rts"},{"a":19671,"l":"draw_subject_chars","c":"Writes the character codes 0 to 63 in order into an 8 by 8 block on the screen, eight per row, with the rows at $CCD8, $CD00, $CD28, $CD50, $CD78, $CDA0, $CDC8 and $CDF0. Called by mask_report at $4C76 and by subject_screen ($5706) at $5725.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[19574,22309]},{"a":19673,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19675,"l":"b_4CDB","t":"code","b":[138],"m":"txa","x":[19683]},{"a":19676,"t":"code","b":[153,216,204],"m":"sta","oa":52440,"o":"$CCD8,y"},{"a":19679,"t":"code","b":[232],"m":"inx"},{"a":19680,"t":"code","b":[200],"m":"iny"},{"a":19681,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19683,"t":"code","b":[208,246],"m":"bne","oa":19675,"o":"b_4CDB"},{"a":19685,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19687,"l":"b_4CE7","t":"code","b":[138],"m":"txa","x":[19695]},{"a":19688,"t":"code","b":[153,0,205],"m":"sta","oa":52480,"o":"$CD00,y"},{"a":19691,"t":"code","b":[232],"m":"inx"},{"a":19692,"t":"code","b":[200],"m":"iny"},{"a":19693,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19695,"t":"code","b":[208,246],"m":"bne","oa":19687,"o":"b_4CE7"},{"a":19697,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19699,"l":"b_4CF3","t":"code","b":[138],"m":"txa","x":[19707]},{"a":19700,"t":"code","b":[153,40,205],"m":"sta","oa":52520,"o":"$CD28,y"},{"a":19703,"t":"code","b":[232],"m":"inx"},{"a":19704,"t":"code","b":[200],"m":"iny"},{"a":19705,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19707,"t":"code","b":[208,246],"m":"bne","oa":19699,"o":"b_4CF3"},{"a":19709,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19711,"l":"b_4CFF","t":"code","b":[138],"m":"txa","x":[19719]},{"a":19712,"t":"code","b":[153,80,205],"m":"sta","oa":52560,"o":"$CD50,y"},{"a":19715,"t":"code","b":[232],"m":"inx"},{"a":19716,"t":"code","b":[200],"m":"iny"},{"a":19717,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19719,"t":"code","b":[208,246],"m":"bne","oa":19711,"o":"b_4CFF"},{"a":19721,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19723,"l":"b_4D0B","t":"code","b":[138],"m":"txa","x":[19731]},{"a":19724,"t":"code","b":[153,120,205],"m":"sta","oa":52600,"o":"$CD78,y"},{"a":19727,"t":"code","b":[232],"m":"inx"},{"a":19728,"t":"code","b":[200],"m":"iny"},{"a":19729,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19731,"t":"code","b":[208,246],"m":"bne","oa":19723,"o":"b_4D0B"},{"a":19733,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19735,"l":"b_4D17","t":"code","b":[138],"m":"txa","x":[19743]},{"a":19736,"t":"code","b":[153,160,205],"m":"sta","oa":52640,"o":"$CDA0,y"},{"a":19739,"t":"code","b":[232],"m":"inx"},{"a":19740,"t":"code","b":[200],"m":"iny"},{"a":19741,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19743,"t":"code","b":[208,246],"m":"bne","oa":19735,"o":"b_4D17"},{"a":19745,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19747,"l":"b_4D23","t":"code","b":[138],"m":"txa","x":[19755]},{"a":19748,"t":"code","b":[153,200,205],"m":"sta","oa":52680,"o":"$CDC8,y"},{"a":19751,"t":"code","b":[232],"m":"inx"},{"a":19752,"t":"code","b":[200],"m":"iny"},{"a":19753,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19755,"t":"code","b":[208,246],"m":"bne","oa":19747,"o":"b_4D23"},{"a":19757,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19759,"l":"b_4D2F","t":"code","b":[138],"m":"txa","x":[19767]},{"a":19760,"t":"code","b":[153,240,205],"m":"sta","oa":52720,"o":"$CDF0,y"},{"a":19763,"t":"code","b":[232],"m":"inx"},{"a":19764,"t":"code","b":[200],"m":"iny"},{"a":19765,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":19767,"t":"code","b":[208,246],"m":"bne","oa":19759,"o":"b_4D2F"},{"a":19769,"t":"code","b":[96],"m":"rts"},{"a":19770,"l":"clear_text_area","c":"Fills an 18-wide area of 12 screen rows from $CC83 (step $28) with $50, and the first 11 rows of it in colour RAM from $D883 with 9. Called by mask_report at $4C5B.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[19547]},{"a":19772,"l":"b_4D3C","t":"code","b":[169,80],"m":"lda","o":"#$50","x":[19848]},{"a":19774,"t":"code","b":[153,131,204],"m":"sta","oa":52355,"o":"$CC83,y"},{"a":19777,"t":"code","b":[153,171,204],"m":"sta","oa":52395,"o":"$CCAB,y"},{"a":19780,"t":"code","b":[153,211,204],"m":"sta","oa":52435,"o":"$CCD3,y"},{"a":19783,"t":"code","b":[153,251,204],"m":"sta","oa":52475,"o":"$CCFB,y"},{"a":19786,"t":"code","b":[153,35,205],"m":"sta","oa":52515,"o":"$CD23,y"},{"a":19789,"t":"code","b":[153,75,205],"m":"sta","oa":52555,"o":"$CD4B,y"},{"a":19792,"t":"code","b":[153,115,205],"m":"sta","oa":52595,"o":"$CD73,y"},{"a":19795,"t":"code","b":[153,155,205],"m":"sta","oa":52635,"o":"$CD9B,y"},{"a":19798,"t":"code","b":[153,195,205],"m":"sta","oa":52675,"o":"$CDC3,y"},{"a":19801,"t":"code","b":[153,235,205],"m":"sta","oa":52715,"o":"$CDEB,y"},{"a":19804,"t":"code","b":[153,19,206],"m":"sta","oa":52755,"o":"$CE13,y"},{"a":19807,"t":"code","b":[153,59,206],"m":"sta","oa":52795,"o":"$CE3B,y"},{"a":19810,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":19812,"t":"code","b":[153,131,216],"m":"sta","o":"$D883,y"},{"a":19815,"t":"code","b":[153,171,216],"m":"sta","o":"$D8AB,y"},{"a":19818,"t":"code","b":[153,211,216],"m":"sta","o":"$D8D3,y"},{"a":19821,"t":"code","b":[153,251,216],"m":"sta","o":"$D8FB,y"},{"a":19824,"t":"code","b":[153,35,217],"m":"sta","o":"$D923,y"},{"a":19827,"t":"code","b":[153,75,217],"m":"sta","o":"$D94B,y"},{"a":19830,"t":"code","b":[153,115,217],"m":"sta","o":"$D973,y"},{"a":19833,"t":"code","b":[153,155,217],"m":"sta","o":"$D99B,y"},{"a":19836,"t":"code","b":[153,195,217],"m":"sta","o":"$D9C3,y"},{"a":19839,"t":"code","b":[153,235,217],"m":"sta","o":"$D9EB,y"},{"a":19842,"t":"code","b":[153,19,218],"m":"sta","o":"$DA13,y"},{"a":19845,"t":"code","b":[200],"m":"iny"},{"a":19846,"t":"code","b":[192,18],"m":"cpy","o":"#$12"},{"a":19848,"t":"code","b":[208,178],"m":"bne","oa":19772,"o":"b_4D3C"},{"a":19850,"t":"code","b":[96],"m":"rts"},{"a":19851,"l":"swap_font_a","c":"Exchanges two blocks of $88 bytes, $5DCF with $C338 and $5E57 with $C3C0, and then $50 bytes of the digit glyph table $4536 with $C450 (it reads both and writes each to the other), so calling it twice puts everything back. Called by title_setup ($0AB8), type_briefing ($0F2F), game_over ($199F and $19F6), mask_finish ($4C2B) and the end-of-level code ($59E7 and $5A00).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[2744,3887,6559,6646,19499,23015,23040]},{"a":19853,"l":"b_4D8D","t":"code","b":[185,207,93],"m":"lda","oa":24015,"o":"text_shapes_1,y","x":[19884]},{"a":19856,"t":"code","b":[72],"m":"pha"},{"a":19857,"t":"code","b":[185,56,195],"m":"lda","oa":49976,"o":"char_shapes_text_a,y"},{"a":19860,"t":"code","b":[153,207,93],"m":"sta","oa":24015,"o":"text_shapes_1,y"},{"a":19863,"t":"code","b":[104],"m":"pla"},{"a":19864,"t":"code","b":[153,56,195],"m":"sta","oa":49976,"o":"char_shapes_text_a,y"},{"a":19867,"t":"code","b":[185,87,94],"m":"lda","oa":24151,"o":"text_shapes_2,y"},{"a":19870,"t":"code","b":[72],"m":"pha"},{"a":19871,"t":"code","b":[185,192,195],"m":"lda","oa":50112,"o":"char_shapes_text_b,y"},{"a":19874,"t":"code","b":[153,87,94],"m":"sta","oa":24151,"o":"text_shapes_2,y"},{"a":19877,"t":"code","b":[104],"m":"pla"},{"a":19878,"t":"code","b":[153,192,195],"m":"sta","oa":50112,"o":"char_shapes_text_b,y"},{"a":19881,"t":"code","b":[200],"m":"iny"},{"a":19882,"t":"code","b":[192,136],"m":"cpy","o":"#$88"},{"a":19884,"t":"code","b":[208,223],"m":"bne","oa":19853,"o":"b_4D8D"},{"a":19886,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19888,"l":"b_4DB0","t":"code","b":[185,54,69],"m":"lda","oa":17718,"o":"digit_glyphs,y","x":[19905]},{"a":19891,"t":"code","b":[72],"m":"pha"},{"a":19892,"t":"code","b":[185,80,196],"m":"lda","oa":50256,"o":"char_shapes_digits,y"},{"a":19895,"t":"code","b":[153,54,69],"m":"sta","oa":17718,"o":"digit_glyphs,y"},{"a":19898,"t":"code","b":[104],"m":"pla"},{"a":19899,"t":"code","b":[153,80,196],"m":"sta","oa":50256,"o":"char_shapes_digits,y"},{"a":19902,"t":"code","b":[200],"m":"iny"},{"a":19903,"t":"code","b":[192,80],"m":"cpy","o":"#$50"},{"a":19905,"t":"code","b":[208,237],"m":"bne","oa":19888,"o":"b_4DB0"},{"a":19907,"t":"code","b":[96],"m":"rts"},{"a":19908,"l":"swap_font_b","c":"Exchanges 256 bytes of $5EDF with $C000 and 256 bytes of $5FDF with $C100 (it reads both and writes each to the other), so calling it twice puts everything back. Called by mask_finish at $4C4F, mask_report at $4C5E and subject_screen at $5722 and $57AA.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[19535,19550,22306,22442]},{"a":19910,"l":"b_4DC6","t":"code","b":[185,223,94],"m":"lda","oa":24287,"o":"text_shapes_3,y","x":[19939]},{"a":19913,"t":"code","b":[72],"m":"pha"},{"a":19914,"t":"code","b":[185,0,192],"m":"lda","oa":49152,"o":"play_charset_a,y"},{"a":19917,"t":"code","b":[153,223,94],"m":"sta","oa":24287,"o":"text_shapes_3,y"},{"a":19920,"t":"code","b":[104],"m":"pla"},{"a":19921,"t":"code","b":[153,0,192],"m":"sta","oa":49152,"o":"play_charset_a,y"},{"a":19924,"t":"code","b":[185,223,95],"m":"lda","oa":24543,"o":"$5FDF,y"},{"a":19927,"t":"code","b":[72],"m":"pha"},{"a":19928,"t":"code","b":[185,0,193],"m":"lda","oa":49408,"o":"$C100,y"},{"a":19931,"t":"code","b":[153,223,95],"m":"sta","oa":24543,"o":"$5FDF,y"},{"a":19934,"t":"code","b":[104],"m":"pla"},{"a":19935,"t":"code","b":[153,0,193],"m":"sta","oa":49408,"o":"$C100,y"},{"a":19938,"t":"code","b":[200],"m":"iny"},{"a":19939,"t":"code","b":[208,225],"m":"bne","oa":19910,"o":"b_4DC6"},{"a":19941,"t":"code","b":[96],"m":"rts"},{"a":19942,"l":"swap_font_c","c":"Exchanges 256 bytes of $C800 with $C000, $68 bytes of $C900 with $C100, 256 bytes of $C968 with $C600 and 256 bytes of $CA68 with $C700. Called by mask_finish at $4C2E and $4C52.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[19502,19538]},{"a":19944,"l":"b_4DE8","t":"code","b":[185,0,200],"m":"lda","oa":51200,"o":"screen_a,y","x":[19959]},{"a":19947,"t":"code","b":[72],"m":"pha"},{"a":19948,"t":"code","b":[185,0,192],"m":"lda","oa":49152,"o":"play_charset_a,y"},{"a":19951,"t":"code","b":[153,0,200],"m":"sta","oa":51200,"o":"screen_a,y"},{"a":19954,"t":"code","b":[104],"m":"pla"},{"a":19955,"t":"code","b":[153,0,192],"m":"sta","oa":49152,"o":"play_charset_a,y"},{"a":19958,"t":"code","b":[200],"m":"iny"},{"a":19959,"t":"code","b":[208,239],"m":"bne","oa":19944,"o":"b_4DE8"},{"a":19961,"l":"b_4DF9","t":"code","b":[185,0,201],"m":"lda","oa":51456,"o":"$C900,y","x":[19978]},{"a":19964,"t":"code","b":[72],"m":"pha"},{"a":19965,"t":"code","b":[185,0,193],"m":"lda","oa":49408,"o":"$C100,y"},{"a":19968,"t":"code","b":[153,0,201],"m":"sta","oa":51456,"o":"$C900,y"},{"a":19971,"t":"code","b":[104],"m":"pla"},{"a":19972,"t":"code","b":[153,0,193],"m":"sta","oa":49408,"o":"$C100,y"},{"a":19975,"t":"code","b":[200],"m":"iny"},{"a":19976,"t":"code","b":[192,104],"m":"cpy","o":"#$68"},{"a":19978,"t":"code","b":[208,237],"m":"bne","oa":19961,"o":"b_4DF9"},{"a":19980,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":19982,"l":"b_4E0E","t":"code","b":[185,104,201],"m":"lda","oa":51560,"o":"$C968,y","x":[20011]},{"a":19985,"t":"code","b":[72],"m":"pha"},{"a":19986,"t":"code","b":[185,0,198],"m":"lda","oa":50688,"o":"$C600,y"},{"a":19989,"t":"code","b":[153,104,201],"m":"sta","oa":51560,"o":"$C968,y"},{"a":19992,"t":"code","b":[104],"m":"pla"},{"a":19993,"t":"code","b":[153,0,198],"m":"sta","oa":50688,"o":"$C600,y"},{"a":19996,"t":"code","b":[185,104,202],"m":"lda","oa":51816,"o":"$CA68,y"},{"a":19999,"t":"code","b":[72],"m":"pha"},{"a":20000,"t":"code","b":[185,0,199],"m":"lda","oa":50944,"o":"$C700,y"},{"a":20003,"t":"code","b":[153,104,202],"m":"sta","oa":51816,"o":"$CA68,y"},{"a":20006,"t":"code","b":[104],"m":"pla"},{"a":20007,"t":"code","b":[153,0,199],"m":"sta","oa":50944,"o":"$C700,y"},{"a":20010,"t":"code","b":[200],"m":"iny"},{"a":20011,"t":"code","b":[208,225],"m":"bne","oa":19982,"o":"b_4E0E"},{"a":20013,"t":"code","b":[96],"m":"rts"},{"a":20014,"l":"draw_block_3x3","c":"Draws a block of 3 by 3 consecutive character codes starting with A at the screen address X (low byte) and Y (high byte): it keeps the address in $8B/$8C and calls draw_row_3 ($4E42) for the offsets 0, $28 and $50 (three rows). Called twelve times by draw_slice_blocks.","t":"code","b":[134,139],"m":"stx","oa":139,"o":"$8B","x":[20058,20067,20076,20085,20094,20103,20112,20121,20130,20139,20148,20157]},{"a":20016,"t":"code","b":[132,140],"m":"sty","oa":140,"o":"$8C"},{"a":20018,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":20020,"t":"code","b":[32,66,78],"m":"jsr","oa":20034,"o":"draw_row_3"},{"a":20023,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":20025,"t":"code","b":[32,66,78],"m":"jsr","oa":20034,"o":"draw_row_3"},{"a":20028,"t":"code","b":[160,80],"m":"ldy","o":"#$50"},{"a":20030,"t":"code","b":[32,66,78],"m":"jsr","oa":20034,"o":"draw_row_3"},{"a":20033,"t":"code","b":[96],"m":"rts"},{"a":20034,"l":"draw_row_3","c":"Writes A, A+1 and A+2 to ($8B),Y and the next two bytes and returns with A+3 in A. Called three times by draw_block_3x3.","t":"code","b":[145,139],"m":"sta","oa":139,"o":"($8B),y","x":[20020,20025,20030]},{"a":20036,"t":"code","b":[200],"m":"iny"},{"a":20037,"t":"code","b":[24],"m":"clc"},{"a":20038,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":20040,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"($8B),y"},{"a":20042,"t":"code","b":[200],"m":"iny"},{"a":20043,"t":"code","b":[24],"m":"clc"},{"a":20044,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":20046,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"($8B),y"},{"a":20048,"t":"code","b":[24],"m":"clc"},{"a":20049,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":20051,"t":"code","b":[96],"m":"rts"},{"a":20052,"l":"draw_slice_blocks","c":"Draws twelve 3 by 3 character blocks with draw_block_3x3 ($4E2E): four in each of three rows, at $CC83, $CC88, $CC8D and $CC92 (first codes $00, $09, $12, $1B), at $CD23, $CD28, $CD2D and $CD32 (first codes $24, $C0, $C9, $D2) and at $CDC3, $CDC8, $CDCD and $CDD2 (first codes $DB, $E4, $ED, $F6). Called by mask_finish at $4C31.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[19505]},{"a":20054,"t":"code","b":[162,131],"m":"ldx","o":"#$83"},{"a":20056,"t":"code","b":[160,204],"m":"ldy","o":"#$CC"},{"a":20058,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20061,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":20063,"t":"code","b":[162,136],"m":"ldx","o":"#$88"},{"a":20065,"t":"code","b":[160,204],"m":"ldy","o":"#$CC"},{"a":20067,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20070,"t":"code","b":[169,18],"m":"lda","o":"#$12"},{"a":20072,"t":"code","b":[162,141],"m":"ldx","o":"#$8D"},{"a":20074,"t":"code","b":[160,204],"m":"ldy","o":"#$CC"},{"a":20076,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20079,"t":"code","b":[169,27],"m":"lda","o":"#$1B"},{"a":20081,"t":"code","b":[162,146],"m":"ldx","o":"#$92"},{"a":20083,"t":"code","b":[160,204],"m":"ldy","o":"#$CC"},{"a":20085,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20088,"t":"code","b":[169,36],"m":"lda","o":"#$24"},{"a":20090,"t":"code","b":[162,35],"m":"ldx","o":"#$23"},{"a":20092,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20094,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20097,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":20099,"t":"code","b":[162,40],"m":"ldx","o":"#$28"},{"a":20101,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20103,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20106,"t":"code","b":[169,201],"m":"lda","o":"#$C9"},{"a":20108,"t":"code","b":[162,45],"m":"ldx","o":"#$2D"},{"a":20110,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20112,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20115,"t":"code","b":[169,210],"m":"lda","o":"#$D2"},{"a":20117,"t":"code","b":[162,50],"m":"ldx","o":"#$32"},{"a":20119,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20121,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20124,"t":"code","b":[169,219],"m":"lda","o":"#$DB"},{"a":20126,"t":"code","b":[162,195],"m":"ldx","o":"#$C3"},{"a":20128,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20130,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20133,"t":"code","b":[169,228],"m":"lda","o":"#$E4"},{"a":20135,"t":"code","b":[162,200],"m":"ldx","o":"#$C8"},{"a":20137,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20139,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20142,"t":"code","b":[169,237],"m":"lda","o":"#$ED"},{"a":20144,"t":"code","b":[162,205],"m":"ldx","o":"#$CD"},{"a":20146,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20148,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20151,"t":"code","b":[169,246],"m":"lda","o":"#$F6"},{"a":20153,"t":"code","b":[162,210],"m":"ldx","o":"#$D2"},{"a":20155,"t":"code","b":[160,205],"m":"ldy","o":"#$CD"},{"a":20157,"t":"code","b":[32,46,78],"m":"jsr","oa":20014,"o":"draw_block_3x3"},{"a":20160,"t":"code","b":[96],"m":"rts"},{"a":20161,"l":"fire_held","c":"1 while fire is held after a capture; fire_capture ($4EC7) clears it when fire is released.","t":"byte","b":[0],"x":[20189,20203,20226]},{"a":20162,"l":"flash_count","c":"Frames left of the capture flash: set to 4 by fire_capture ($4EC7) and counted down by irq_mask_3 ($5B45), which uses colours 1 and 1 for $D022 and $D023 while it is not zero; fire_capture clears it at the twelfth capture.","t":"byte","b":[0],"x":[20231,20313,23407,23413]},{"a":20163,"l":"slice_number","c":"Number of captures made so far, 0 to 12: the index (twice it for the table of addresses) into glyph_dest_table ($505C), match_flags ($5095) and slice_types ($50A2). Cleared by mask_setup ($58C8) and incremented by fire_capture ($4EC7).","t":"byte","b":[0],"x":[20239,20295,20299,20321,22856]},{"a":20164,"l":"capture_mark","c":"Set to $11 by fire_capture ($4EC7) on a capture and to 0 by mask_setup ($58C8). No code reads it. The byte after it, $4EC5, is not used.","t":"byte","b":[0,0],"x":[20236,22838]},{"a":20166,"l":"capture_delay","c":"Countdown set to $0D by fire_capture ($4EC7) after a capture and counted down by it; at 1 it calls silence_all ($B828) and music_init ($B0C8). Cleared by mask_setup.","t":"byte","b":[0],"x":[20167,20182,20186,20221]},{"a":20167,"l":"fire_capture","c":"Handles the fire button for the mask game, called by irq_mask_3 ($5B45) at $5BA7 while $5C67 is zero. It counts $4EC6 down (at 1 it calls silence_all, $B828, and music_init, $B0C8) and holds $4EC1 until fire ($203B bit 4) is released. On a new press it plays sound effect $18 with $B0EE, sets $4EC6 to $0D, $4EC1 to 1, $4EC2 to 4 and $4EC4 to $11, takes the destination from glyph_dest_table ($505C) by twice the slice number $4EC3 and copies the glyphs of the 3 by 3 characters at ($0E) into it with copy_glyph ($500E). It then runs match_check ($4F61) and adds 1 to $4EC3; at 12 it sets $5C67 to 1, clears $4EC2 and runs cursor_home ($5077).","t":"code","b":[174,198,78],"m":"ldx","oa":20166,"o":"capture_delay","x":[23463]},{"a":20170,"t":"code","b":[240,17],"m":"beq","oa":20189,"o":"$4EDD"},{"a":20172,"t":"code","b":[224,1],"m":"cpx","o":"#$01"},{"a":20174,"t":"code","b":[208,9],"m":"bne","oa":20185,"o":"$4ED9"},{"a":20176,"t":"code","b":[32,40,184],"m":"jsr","oa":47144,"o":"silence_all"},{"a":20179,"t":"code","b":[32,200,176],"m":"jsr","oa":45256,"o":"music_init"},{"a":20182,"t":"code","b":[174,198,78],"m":"ldx","oa":20166,"o":"capture_delay"},{"a":20185,"t":"code","b":[202],"m":"dex","x":[20174]},{"a":20186,"t":"code","b":[142,198,78],"m":"stx","oa":20166,"o":"capture_delay"},{"a":20189,"t":"code","b":[173,193,78],"m":"lda","oa":20161,"o":"fire_held","x":[20170]},{"a":20192,"t":"code","b":[240,13],"m":"beq","oa":20207,"o":"$4EEF"},{"a":20194,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick"},{"a":20197,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":20199,"t":"code","b":[240,5],"m":"beq","oa":20206,"o":"$4EEE"},{"a":20201,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20203,"t":"code","b":[141,193,78],"m":"sta","oa":20161,"o":"fire_held"},{"a":20206,"t":"code","b":[96],"m":"rts","x":[20199,20212]},{"a":20207,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[20192]},{"a":20210,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":20212,"t":"code","b":[208,248],"m":"bne","oa":20206,"o":"$4EEE"},{"a":20214,"t":"code","b":[162,24],"m":"ldx","o":"#$18"},{"a":20216,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":20219,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":20221,"t":"code","b":[141,198,78],"m":"sta","oa":20166,"o":"capture_delay"},{"a":20224,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20226,"t":"code","b":[141,193,78],"m":"sta","oa":20161,"o":"fire_held"},{"a":20229,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":20231,"t":"code","b":[141,194,78],"m":"sta","oa":20162,"o":"flash_count"},{"a":20234,"t":"code","b":[169,17],"m":"lda","o":"#$11"},{"a":20236,"t":"code","b":[141,196,78],"m":"sta","oa":20164,"o":"capture_mark"},{"a":20239,"t":"code","b":[173,195,78],"m":"lda","oa":20163,"o":"slice_number"},{"a":20242,"t":"code","b":[10],"m":"asl","o":"a"},{"a":20243,"t":"code","b":[168],"m":"tay"},{"a":20244,"t":"code","b":[185,92,80],"m":"lda","oa":20572,"o":"glyph_dest_table,y"},{"a":20247,"t":"code","b":[141,16,0],"m":"sta","oa":16,"o":"$0010"},{"a":20250,"t":"code","b":[185,93,80],"m":"lda","oa":20573,"o":"$505D,y"},{"a":20253,"t":"code","b":[141,17,0],"m":"sta","oa":17,"o":"$0011"},{"a":20256,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":20258,"t":"code","b":[177,14],"m":"lda","oa":14,"o":"($0E),y","x":[20266]},{"a":20260,"t":"code","b":[32,14,80],"m":"jsr","oa":20494,"o":"copy_glyph"},{"a":20263,"t":"code","b":[200],"m":"iny"},{"a":20264,"t":"code","b":[192,3],"m":"cpy","o":"#$03"},{"a":20266,"t":"code","b":[208,246],"m":"bne","oa":20258,"o":"$4F22"},{"a":20268,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":20270,"t":"code","b":[177,14],"m":"lda","oa":14,"o":"($0E),y","x":[20278]},{"a":20272,"t":"code","b":[32,14,80],"m":"jsr","oa":20494,"o":"copy_glyph"},{"a":20275,"t":"code","b":[200],"m":"iny"},{"a":20276,"t":"code","b":[192,43],"m":"cpy","o":"#$2B"},{"a":20278,"t":"code","b":[208,246],"m":"bne","oa":20270,"o":"$4F2E"},{"a":20280,"t":"code","b":[160,80],"m":"ldy","o":"#$50"},{"a":20282,"t":"code","b":[177,14],"m":"lda","oa":14,"o":"($0E),y","x":[20290]},{"a":20284,"t":"code","b":[32,14,80],"m":"jsr","oa":20494,"o":"copy_glyph"},{"a":20287,"t":"code","b":[200],"m":"iny"},{"a":20288,"t":"code","b":[192,83],"m":"cpy","o":"#$53"},{"a":20290,"t":"code","b":[208,246],"m":"bne","oa":20282,"o":"$4F3A"},{"a":20292,"t":"code","b":[32,97,79],"m":"jsr","oa":20321,"o":"match_check"},{"a":20295,"t":"code","b":[174,195,78],"m":"ldx","oa":20163,"o":"slice_number"},{"a":20298,"t":"code","b":[232],"m":"inx"},{"a":20299,"t":"code","b":[142,195,78],"m":"stx","oa":20163,"o":"slice_number"},{"a":20302,"t":"code","b":[224,12],"m":"cpx","o":"#$0C"},{"a":20304,"t":"code","b":[208,13],"m":"bne","oa":20319,"o":"$4F5F"},{"a":20306,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20308,"t":"code","b":[141,103,92],"m":"sta","oa":23655,"o":"mask_over"},{"a":20311,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20313,"t":"code","b":[141,194,78],"m":"sta","oa":20162,"o":"flash_count"},{"a":20316,"t":"code","b":[32,119,80],"m":"jsr","oa":20599,"o":"cursor_home"},{"a":20319,"t":"code","b":[96],"m":"rts","x":[20304]},{"a":20320,"l":"slice_type","c":"The type of the capture just made, which match_check ($4F61) stores in slice_types ($50A2): set to 2 by objects_spawn ($533E) and by object_flip ($53D9) at count $14; object_flip also toggles it between 0 and 1 (through $53D5).","t":"byte","b":[0],"x":[20329,21337,21509,21659,21992]},{"a":20321,"l":"match_check","c":"Judges the capture. For the slice number $4EC3 it clears the match flag at $5095, stores $4F60 in $50A2 and loads the target index $53AF into Y. Then, by the cursor Y $5074, it calls match_row_61 ($4F85) for $61 and match_row_a1 ($4FD6) for $A1 (any other Y gives no match).","t":"code","b":[174,195,78],"m":"ldx","oa":20163,"o":"slice_number","x":[20292]},{"a":20324,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20326,"t":"code","b":[157,149,80],"m":"sta","oa":20629,"o":"match_flags,x"},{"a":20329,"t":"code","b":[173,96,79],"m":"lda","oa":20320,"o":"slice_type"},{"a":20332,"t":"code","b":[157,162,80],"m":"sta","oa":20642,"o":"slice_types,x"},{"a":20335,"t":"code","b":[172,175,83],"m":"ldy","oa":21423,"o":"target_object"},{"a":20338,"t":"code","b":[173,116,80],"m":"lda","oa":20596,"o":"cursor_y"},{"a":20341,"t":"code","b":[201,97],"m":"cmp","o":"#$61"},{"a":20343,"t":"code","b":[208,4],"m":"bne","oa":20349,"o":"$4F7D"},{"a":20345,"t":"code","b":[32,133,79],"m":"jsr","oa":20357,"o":"match_row_61"},{"a":20348,"t":"code","b":[96],"m":"rts"},{"a":20349,"t":"code","b":[201,161],"m":"cmp","o":"#$A1","x":[20343]},{"a":20351,"t":"code","b":[208,3],"m":"bne","oa":20356,"o":"$4F84"},{"a":20353,"t":"code","b":[32,214,79],"m":"jsr","oa":20438,"o":"match_row_a1"},{"a":20356,"t":"code","b":[96],"m":"rts","x":[20351]},{"a":20357,"l":"match_row_61","c":"Match test for cursor Y $61, called by match_check ($4F61). By the cursor X $5075 it sets $500D and tests: $61 gives 0 and needs the target $53AF to be 0 and $52B1 below 5; $A1 gives 1 with target 1 and $52B2 below 5; $E1 gives 2 with target 2 and $52B3 below 5. When all hold it sets the match flag $5095 plus the slice number to 1.","t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x","x":[20345]},{"a":20360,"t":"code","b":[201,97],"m":"cmp","o":"#$61"},{"a":20362,"t":"code","b":[208,22],"m":"bne","oa":20386,"o":"$4FA2"},{"a":20364,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20366,"t":"code","b":[141,13,80],"m":"sta","oa":20493,"o":"cursor_column"},{"a":20369,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":20371,"t":"code","b":[208,12],"m":"bne","oa":20385,"o":"$4FA1"},{"a":20373,"t":"code","b":[173,177,82],"m":"lda","oa":21169,"o":"mask_obj_counter"},{"a":20376,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":20378,"t":"code","b":[176,5],"m":"bcs","oa":20385,"o":"$4FA1"},{"a":20380,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20382,"t":"code","b":[157,149,80],"m":"sta","oa":20629,"o":"match_flags,x"},{"a":20385,"t":"code","b":[96],"m":"rts","x":[20371,20378,20397,20404,20423,20430]},{"a":20386,"t":"code","b":[201,161],"m":"cmp","o":"#$A1","x":[20362]},{"a":20388,"t":"code","b":[208,22],"m":"bne","oa":20412,"o":"$4FBC"},{"a":20390,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20392,"t":"code","b":[141,13,80],"m":"sta","oa":20493,"o":"cursor_column"},{"a":20395,"t":"code","b":[192,1],"m":"cpy","o":"#$01"},{"a":20397,"t":"code","b":[208,242],"m":"bne","oa":20385,"o":"$4FA1"},{"a":20399,"t":"code","b":[173,178,82],"m":"lda","oa":21170,"o":"$52B2"},{"a":20402,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":20404,"t":"code","b":[176,235],"m":"bcs","oa":20385,"o":"$4FA1"},{"a":20406,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20408,"t":"code","b":[157,149,80],"m":"sta","oa":20629,"o":"match_flags,x"},{"a":20411,"t":"code","b":[96],"m":"rts"},{"a":20412,"t":"code","b":[201,225],"m":"cmp","o":"#$E1","x":[20388]},{"a":20414,"t":"code","b":[208,21],"m":"bne","oa":20437,"o":"$4FD5"},{"a":20416,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":20418,"t":"code","b":[141,13,80],"m":"sta","oa":20493,"o":"cursor_column"},{"a":20421,"t":"code","b":[192,2],"m":"cpy","o":"#$02"},{"a":20423,"t":"code","b":[208,216],"m":"bne","oa":20385,"o":"$4FA1"},{"a":20425,"t":"code","b":[173,179,82],"m":"lda","oa":21171,"o":"$52B3"},{"a":20428,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":20430,"t":"code","b":[176,209],"m":"bcs","oa":20385,"o":"$4FA1"},{"a":20432,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20434,"t":"code","b":[157,149,80],"m":"sta","oa":20629,"o":"match_flags,x"},{"a":20437,"t":"code","b":[96],"m":"rts","x":[20414]},{"a":20438,"l":"match_row_a1","c":"Match test for cursor Y $A1, called by match_check ($4F61). By the cursor X $5075 it sets $500D: $79 gives 3 and needs the target $53AF to be 3 and $52B4 below 5; $C1 gives 4 with target 4 and $52B5 below 5. When both hold it sets the match flag $5095 plus the slice number to 1.","t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x","x":[20353]},{"a":20441,"t":"code","b":[201,121],"m":"cmp","o":"#$79"},{"a":20443,"t":"code","b":[208,22],"m":"bne","oa":20467,"o":"$4FF3"},{"a":20445,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":20447,"t":"code","b":[141,13,80],"m":"sta","oa":20493,"o":"cursor_column"},{"a":20450,"t":"code","b":[192,3],"m":"cpy","o":"#$03"},{"a":20452,"t":"code","b":[208,12],"m":"bne","oa":20466,"o":"$4FF2"},{"a":20454,"t":"code","b":[173,180,82],"m":"lda","oa":21172,"o":"$52B4"},{"a":20457,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":20459,"t":"code","b":[176,5],"m":"bcs","oa":20466,"o":"$4FF2"},{"a":20461,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20463,"t":"code","b":[157,149,80],"m":"sta","oa":20629,"o":"match_flags,x"},{"a":20466,"t":"code","b":[96],"m":"rts","x":[20452,20459,20478,20485]},{"a":20467,"t":"code","b":[201,193],"m":"cmp","o":"#$C1","x":[20443]},{"a":20469,"t":"code","b":[208,21],"m":"bne","oa":20492,"o":"$500C"},{"a":20471,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":20473,"t":"code","b":[141,13,80],"m":"sta","oa":20493,"o":"cursor_column"},{"a":20476,"t":"code","b":[192,4],"m":"cpy","o":"#$04"},{"a":20478,"t":"code","b":[208,242],"m":"bne","oa":20466,"o":"$4FF2"},{"a":20480,"t":"code","b":[173,181,82],"m":"lda","oa":21173,"o":"$52B5"},{"a":20483,"t":"code","b":[201,5],"m":"cmp","o":"#$05"},{"a":20485,"t":"code","b":[176,235],"m":"bcs","oa":20466,"o":"$4FF2"},{"a":20487,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20489,"t":"code","b":[157,149,80],"m":"sta","oa":20629,"o":"match_flags,x"},{"a":20492,"t":"code","b":[96],"m":"rts","x":[20469]},{"a":20493,"l":"cursor_column","c":"Position code 0 to 4 stored by match_row_61 ($4F85) and match_row_a1 ($4FD6) for the cursor position tested last; objects_spawn ($533E) compares the target it picks with it.","t":"byte","b":[0],"x":[20366,20392,20418,20447,20473,21395,21402]},{"a":20494,"l":"copy_glyph","c":"Copies the 8 bytes of character A (from $C000 plus 8 times A, built in $505A/$505B and $12/$13) to ($10) and adds 8 to $10/$11. Y is kept. Called by fire_capture ($4EC7), three times in each of three rows.","t":"code","b":[141,90,80],"m":"sta","oa":20570,"o":"glyph_offset","x":[20260,20272,20284]},{"a":20497,"t":"code","b":[152],"m":"tya"},{"a":20498,"t":"code","b":[72],"m":"pha"},{"a":20499,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20501,"t":"code","b":[141,91,80],"m":"sta","oa":20571,"o":"$505B"},{"a":20504,"t":"code","b":[173,90,80],"m":"lda","oa":20570,"o":"glyph_offset"},{"a":20507,"t":"code","b":[10],"m":"asl","o":"a"},{"a":20508,"t":"code","b":[46,91,80],"m":"rol","oa":20571,"o":"$505B"},{"a":20511,"t":"code","b":[10],"m":"asl","o":"a"},{"a":20512,"t":"code","b":[46,91,80],"m":"rol","oa":20571,"o":"$505B"},{"a":20515,"t":"code","b":[10],"m":"asl","o":"a"},{"a":20516,"t":"code","b":[46,91,80],"m":"rol","oa":20571,"o":"$505B"},{"a":20519,"t":"code","b":[141,90,80],"m":"sta","oa":20570,"o":"glyph_offset"},{"a":20522,"t":"code","b":[24],"m":"clc"},{"a":20523,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20525,"t":"code","b":[109,90,80],"m":"adc","oa":20570,"o":"glyph_offset"},{"a":20528,"t":"code","b":[141,18,0],"m":"sta","oa":18,"o":"$0012"},{"a":20531,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":20533,"t":"code","b":[109,91,80],"m":"adc","oa":20571,"o":"$505B"},{"a":20536,"t":"code","b":[141,19,0],"m":"sta","oa":19,"o":"$0013"},{"a":20539,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":20541,"t":"code","b":[177,18],"m":"lda","oa":18,"o":"($12),y","x":[20548]},{"a":20543,"t":"code","b":[145,16],"m":"sta","oa":16,"o":"($10),y"},{"a":20545,"t":"code","b":[200],"m":"iny"},{"a":20546,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":20548,"t":"code","b":[208,247],"m":"bne","oa":20541,"o":"$503D"},{"a":20550,"t":"code","b":[24],"m":"clc"},{"a":20551,"t":"code","b":[173,16,0],"m":"lda","oa":16,"o":"$0010"},{"a":20554,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":20556,"t":"code","b":[141,16,0],"m":"sta","oa":16,"o":"$0010"},{"a":20559,"t":"code","b":[173,17,0],"m":"lda","oa":17,"o":"$0011"},{"a":20562,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":20564,"t":"code","b":[141,17,0],"m":"sta","oa":17,"o":"$0011"},{"a":20567,"t":"code","b":[104],"m":"pla"},{"a":20568,"t":"code","b":[168],"m":"tay"},{"a":20569,"t":"code","b":[96],"m":"rts"},{"a":20570,"l":"glyph_offset","c":"Scratch of copy_glyph ($500E): the character code times 8, low byte at $505A and high byte at $505B.","t":"byte","b":[0,0],"x":[20494,20504,20519,20525]},{"a":20572,"l":"glyph_dest_table","c":"Twelve addresses, low byte first, 72 bytes apart: $C800, $C848, $C890 and so on up to $CB18, one for each capture. fire_capture ($4EC7) uses the entry for the slice number as the destination of the captured glyphs.","t":"byte","b":[0,200,72,200,144,200,216,200],"x":[20244]},{"a":20580,"t":"byte","b":[32,201,104,201,176,201,248,201]},{"a":20588,"t":"byte","b":[64,202,136,202,208,202,24,203]},{"a":20596,"l":"cursor_y","c":"Cursor sprite Y. Set to $71 by mask_setup ($58C8), moved by cursor_move ($51E0, joystick), scan_cursor ($50B1) and cursor_home ($5077, to $49); written to $D001. match_check ($4F61) tests it for $61 and $A1.","t":"byte","b":[0],"x":[20338,20606,20734,20869,20874,20904,20979,20988,21015,21024,21120,22773]},{"a":20597,"l":"cursor_x","c":"Cursor sprite X. Set to $B1 by mask_setup ($58C8), moved by cursor_move, scan_cursor and cursor_home (to $70); written to $D000. match_row_61 and match_row_a1 test it.","t":"byte","b":[0,0],"x":[20357,20438,20601,20853,20858,20885,20890,20898,21048,21057,21084,21093,21114,22768]},{"a":20599,"l":"cursor_home","c":"Places the cursor: sets X $5075 to $70 and Y $5074 to $49. Called by fire_capture ($4EC7) at $4F5C and by mask_timer_tick ($5C68) at $5C7C.","t":"code","b":[169,112],"m":"lda","o":"#$70","x":[20316,23676]},{"a":20601,"t":"code","b":[141,117,80],"m":"sta","oa":20597,"o":"cursor_x"},{"a":20604,"t":"code","b":[169,73],"m":"lda","o":"#$49"},{"a":20606,"t":"code","b":[141,116,80],"m":"sta","oa":20596,"o":"cursor_y"},{"a":20609,"t":"code","b":[96],"m":"rts"},{"a":20610,"l":"scan_path","c":"Path of the scan cursor, read by scan_cursor ($50B1): 0 moves X by +2, 1 moves Y by +2, 2 moves X by -2 and a value with bit 7 set ($FF) ends it. The bytes are 0, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0, 3 and $FF.","t":"byte","b":[0,0,0,1,2,2,2,1],"x":[20817,20827,20847]},{"a":20618,"t":"byte","b":[0,0,0,3,255]},{"a":20623,"l":"scan_durations","c":"Frames each step of the scan path lasts, for the path values 0, 1 and 2: $14, $10 and $14. The value 3 in the path reads the byte after the table, $5092, instead.","t":"byte","b":[20,16,20],"x":[20821]},{"a":20626,"l":"scan_index","c":"Index into scan_path ($5082); cleared by mask_setup ($58C8).","t":"byte","b":[0],"x":[20755,20793,20810,20814,20844,22853]},{"a":20627,"l":"scan_timer","c":"Frames left in the current scan step; scan_cursor ($50B1) loads it from scan_durations ($508F) and mask_setup clears it.","t":"byte","b":[0],"x":[20750,20785,20788,20824,20841,22799]},{"a":20628,"l":"scan_done","c":"Non-zero when the scan is finished; scan_wait ($4B83) waits for it.","t":"byte","b":[0],"x":[19380,20727,20834,22850]},{"a":20629,"l":"match_flags","c":"Twelve flags, one for each slice, that scan_wait ($4B83) reads; a non-zero flag counts the slice type at $50A2 plus the same index.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[19398,20326,20382,20408,20434,20463,20489,20765,20797,22816]},{"a":20637,"t":"byte","b":[0,0,0,0]},{"a":20641,"l":"pad_50a1","c":"1 zero byte after between data records that no label reaches (after match_flags) ($50A1): padding that no traced code reads.","t":"byte","b":[0]},{"a":20642,"l":"slice_types","c":"The type of each of the twelve slices (1, 2 or other), read by scan_wait ($4B83).","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[19403,20332,22819]},{"a":20650,"t":"byte","b":[0,0,0,0]},{"a":20654,"l":"scan_unused","c":"One byte (0) before scan_started that nothing reads or writes.","t":"byte","b":[0]},{"a":20655,"l":"scan_started","c":"Set to 1 by scan_cursor ($50B1) at its first step; cleared by mask_setup ($58C8). The byte before it, $50AE, is not used.","t":"byte","b":[0],"x":[20745,20762,22835]},{"a":20656,"l":"scan_reversed","c":"Set to 1 by scan_cursor ($50B1) once it has reversed the entries 4 to 7 of match_flags and slice_types; cleared by mask_setup ($58C8).","t":"byte","b":[0],"x":[20657,20664,22832]},{"a":20657,"l":"scan_cursor","c":"Moves the cursor along the scan path once the game is over, called by irq_mask_2 ($5ADE) while $5C67 is set. The first time it reverses the entries $5099-$509C and $50A6-$50A9. Once $5094 is set it moves the cursor Y to 0. While the blink count $51CE runs it only updates the sprite. Otherwise it steps through the path $5082 (0 moves X by +2, 1 moves Y by +2, 2 moves X by -2; a value with bit 7 set ends it and sets $5094), using the durations $508F in $5093 and the index $5092. When it reaches a step whose match flag in $5095 is set it plays sound_1c ($51D0) and sets $51CE to $0A. It writes the sprite 0 position ($D000, $D001), pointer ($CFF8 = $74) and colour ($D027), and while $51CE runs it counts it down and toggles $51CD as the colour.","t":"code","b":[173,176,80],"m":"lda","oa":20656,"o":"scan_reversed","x":[23355]},{"a":20660,"t":"code","b":[208,65],"m":"bne","oa":20727,"o":"$50F7"},{"a":20662,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20664,"t":"code","b":[141,176,80],"m":"sta","oa":20656,"o":"scan_reversed"},{"a":20667,"t":"code","b":[173,153,80],"m":"lda","oa":20633,"o":"$5099"},{"a":20670,"t":"code","b":[72],"m":"pha"},{"a":20671,"t":"code","b":[173,154,80],"m":"lda","oa":20634,"o":"$509A"},{"a":20674,"t":"code","b":[72],"m":"pha"},{"a":20675,"t":"code","b":[173,155,80],"m":"lda","oa":20635,"o":"$509B"},{"a":20678,"t":"code","b":[72],"m":"pha"},{"a":20679,"t":"code","b":[173,156,80],"m":"lda","oa":20636,"o":"$509C"},{"a":20682,"t":"code","b":[141,153,80],"m":"sta","oa":20633,"o":"$5099"},{"a":20685,"t":"code","b":[104],"m":"pla"},{"a":20686,"t":"code","b":[141,154,80],"m":"sta","oa":20634,"o":"$509A"},{"a":20689,"t":"code","b":[104],"m":"pla"},{"a":20690,"t":"code","b":[141,155,80],"m":"sta","oa":20635,"o":"$509B"},{"a":20693,"t":"code","b":[104],"m":"pla"},{"a":20694,"t":"code","b":[141,156,80],"m":"sta","oa":20636,"o":"$509C"},{"a":20697,"t":"code","b":[173,166,80],"m":"lda","oa":20646,"o":"$50A6"},{"a":20700,"t":"code","b":[72],"m":"pha"},{"a":20701,"t":"code","b":[173,167,80],"m":"lda","oa":20647,"o":"$50A7"},{"a":20704,"t":"code","b":[72],"m":"pha"},{"a":20705,"t":"code","b":[173,168,80],"m":"lda","oa":20648,"o":"$50A8"},{"a":20708,"t":"code","b":[72],"m":"pha"},{"a":20709,"t":"code","b":[173,169,80],"m":"lda","oa":20649,"o":"$50A9"},{"a":20712,"t":"code","b":[141,166,80],"m":"sta","oa":20646,"o":"$50A6"},{"a":20715,"t":"code","b":[104],"m":"pla"},{"a":20716,"t":"code","b":[141,167,80],"m":"sta","oa":20647,"o":"$50A7"},{"a":20719,"t":"code","b":[104],"m":"pla"},{"a":20720,"t":"code","b":[141,168,80],"m":"sta","oa":20648,"o":"$50A8"},{"a":20723,"t":"code","b":[104],"m":"pla"},{"a":20724,"t":"code","b":[141,169,80],"m":"sta","oa":20649,"o":"$50A9"},{"a":20727,"t":"code","b":[173,148,80],"m":"lda","oa":20628,"o":"scan_done","x":[20660]},{"a":20730,"t":"code","b":[240,8],"m":"beq","oa":20740,"o":"$5104"},{"a":20732,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":20734,"t":"code","b":[141,116,80],"m":"sta","oa":20596,"o":"cursor_y"},{"a":20737,"t":"code","b":[76,157,81],"m":"jmp","oa":20893,"o":"$519D","x":[20743]},{"a":20740,"t":"code","b":[173,206,81],"m":"lda","oa":20942,"o":"blink_count","x":[20730]},{"a":20743,"t":"code","b":[208,248],"m":"bne","oa":20737,"o":"$5101"},{"a":20745,"t":"code","b":[173,175,80],"m":"lda","oa":20655,"o":"scan_started"},{"a":20748,"t":"code","b":[208,38],"m":"bne","oa":20788,"o":"$5134"},{"a":20750,"t":"code","b":[173,147,80],"m":"lda","oa":20627,"o":"scan_timer"},{"a":20753,"t":"code","b":[208,33],"m":"bne","oa":20788,"o":"$5134"},{"a":20755,"t":"code","b":[174,146,80],"m":"ldx","oa":20626,"o":"scan_index"},{"a":20758,"t":"code","b":[208,28],"m":"bne","oa":20788,"o":"$5134"},{"a":20760,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20762,"t":"code","b":[141,175,80],"m":"sta","oa":20655,"o":"scan_started"},{"a":20765,"t":"code","b":[189,149,80],"m":"lda","oa":20629,"o":"match_flags,x"},{"a":20768,"t":"code","b":[240,13],"m":"beq","oa":20783,"o":"$512F"},{"a":20770,"t":"code","b":[32,208,81],"m":"jsr","oa":20944,"o":"sound_1c"},{"a":20773,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":20775,"t":"code","b":[141,206,81],"m":"sta","oa":20942,"o":"blink_count"},{"a":20778,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":20780,"t":"code","b":[76,81,81],"m":"jmp","oa":20817,"o":"$5151"},{"a":20783,"t":"code","b":[169,20],"m":"lda","o":"#$14","x":[20768]},{"a":20785,"t":"code","b":[141,147,80],"m":"sta","oa":20627,"o":"scan_timer"},{"a":20788,"t":"code","b":[174,147,80],"m":"ldx","oa":20627,"o":"scan_timer","x":[20748,20753,20758]},{"a":20791,"t":"code","b":[208,47],"m":"bne","oa":20840,"o":"$5168"},{"a":20793,"t":"code","b":[174,146,80],"m":"ldx","oa":20626,"o":"scan_index"},{"a":20796,"t":"code","b":[232],"m":"inx"},{"a":20797,"t":"code","b":[189,149,80],"m":"lda","oa":20629,"o":"match_flags,x"},{"a":20800,"t":"code","b":[240,8],"m":"beq","oa":20810,"o":"$514A"},{"a":20802,"t":"code","b":[32,208,81],"m":"jsr","oa":20944,"o":"sound_1c"},{"a":20805,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":20807,"t":"code","b":[141,206,81],"m":"sta","oa":20942,"o":"blink_count"},{"a":20810,"t":"code","b":[174,146,80],"m":"ldx","oa":20626,"o":"scan_index","x":[20800]},{"a":20813,"t":"code","b":[232],"m":"inx"},{"a":20814,"t":"code","b":[142,146,80],"m":"stx","oa":20626,"o":"scan_index"},{"a":20817,"t":"code","b":[189,130,80],"m":"lda","oa":20610,"o":"scan_path,x","x":[20780]},{"a":20820,"t":"code","b":[168],"m":"tay"},{"a":20821,"t":"code","b":[185,143,80],"m":"lda","oa":20623,"o":"scan_durations,y"},{"a":20824,"t":"code","b":[141,147,80],"m":"sta","oa":20627,"o":"scan_timer"},{"a":20827,"t":"code","b":[189,130,80],"m":"lda","oa":20610,"o":"scan_path,x"},{"a":20830,"t":"code","b":[16,61],"m":"bpl","oa":20893,"o":"$519D"},{"a":20832,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20834,"t":"code","b":[141,148,80],"m":"sta","oa":20628,"o":"scan_done"},{"a":20837,"t":"code","b":[76,157,81],"m":"jmp","oa":20893,"o":"$519D"},{"a":20840,"t":"code","b":[202],"m":"dex","x":[20791]},{"a":20841,"t":"code","b":[142,147,80],"m":"stx","oa":20627,"o":"scan_timer"},{"a":20844,"t":"code","b":[174,146,80],"m":"ldx","oa":20626,"o":"scan_index"},{"a":20847,"t":"code","b":[189,130,80],"m":"lda","oa":20610,"o":"scan_path,x"},{"a":20850,"t":"code","b":[208,12],"m":"bne","oa":20864,"o":"$5180"},{"a":20852,"t":"code","b":[24],"m":"clc"},{"a":20853,"t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x"},{"a":20856,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":20858,"t":"code","b":[141,117,80],"m":"sta","oa":20597,"o":"cursor_x"},{"a":20861,"t":"code","b":[76,157,81],"m":"jmp","oa":20893,"o":"$519D"},{"a":20864,"t":"code","b":[201,1],"m":"cmp","o":"#$01","x":[20850]},{"a":20866,"t":"code","b":[208,12],"m":"bne","oa":20880,"o":"$5190"},{"a":20868,"t":"code","b":[24],"m":"clc"},{"a":20869,"t":"code","b":[173,116,80],"m":"lda","oa":20596,"o":"cursor_y"},{"a":20872,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":20874,"t":"code","b":[141,116,80],"m":"sta","oa":20596,"o":"cursor_y"},{"a":20877,"t":"code","b":[76,157,81],"m":"jmp","oa":20893,"o":"$519D"},{"a":20880,"t":"code","b":[201,2],"m":"cmp","o":"#$02","x":[20866]},{"a":20882,"t":"code","b":[208,9],"m":"bne","oa":20893,"o":"$519D"},{"a":20884,"t":"code","b":[56],"m":"sec"},{"a":20885,"t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x"},{"a":20888,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":20890,"t":"code","b":[141,117,80],"m":"sta","oa":20597,"o":"cursor_x"},{"a":20893,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[20737,20830,20837,20861,20877,20882]},{"a":20895,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":20898,"t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x"},{"a":20901,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":20904,"t":"code","b":[173,116,80],"m":"lda","oa":20596,"o":"cursor_y"},{"a":20907,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":20910,"t":"code","b":[169,116],"m":"lda","o":"#$74"},{"a":20912,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":20915,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":20917,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":20920,"t":"code","b":[174,206,81],"m":"ldx","oa":20942,"o":"blink_count"},{"a":20923,"t":"code","b":[240,15],"m":"beq","oa":20940,"o":"$51CC"},{"a":20925,"t":"code","b":[202],"m":"dex"},{"a":20926,"t":"code","b":[142,206,81],"m":"stx","oa":20942,"o":"blink_count"},{"a":20929,"t":"code","b":[173,205,81],"m":"lda","oa":20941,"o":"blink_colour"},{"a":20932,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":20934,"t":"code","b":[141,205,81],"m":"sta","oa":20941,"o":"blink_colour"},{"a":20937,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":20940,"t":"code","b":[96],"m":"rts","x":[20923]},{"a":20941,"l":"blink_colour","c":"Colour 0 or 1 of the cursor sprite while it blinks, toggled by scan_cursor ($50B1) and written to $D027.","t":"byte","b":[0],"x":[20929,20934]},{"a":20942,"l":"blink_count","c":"Frames left of the cursor blink: set to $0A by scan_cursor ($50B1) after the sound, counted down by it and cleared by mask_setup ($58C8).","t":"byte","b":[0],"x":[20740,20775,20807,20920,20926,22841]},{"a":20943,"l":"cursor_phase","c":"Toggled on each call of cursor_move ($51E0), which moves the cursor only when it becomes 0.","t":"byte","b":[0],"x":[20960,20965]},{"a":20944,"l":"sound_1c","c":"Plays sound effect $1C with $B0EE and keeps X and Y: it stores them in the operands of the LDY #$00 and LDX #$00 at $51DB and $51DD (the bytes $51DC and $51DE), which it then runs. Called by scan_cursor ($50B1) twice.","t":"code","b":[142,222,81],"m":"stx","oa":20958,"o":"$51DE","x":[20770,20802]},{"a":20947,"t":"code","b":[140,220,81],"m":"sty","oa":20956,"o":"$51DC"},{"a":20950,"t":"code","b":[162,28],"m":"ldx","o":"#$1C"},{"a":20952,"t":"code","b":[32,238,176],"m":"jsr","oa":45294,"o":"play_sound"},{"a":20955,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":20957,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":20959,"t":"code","b":[96],"m":"rts"},{"a":20960,"l":"cursor_move","c":"Moves the cursor with the joystick copy $203B, called by irq_mask_2 ($5ADE) while $5C67 is zero. It toggles $51CF and acts only when that gives 0. Up (bit 0) takes 8 off the Y $5074 when the result is $3C or more, and $28 off the pointer $0E/$0F; down (bit 1) adds 8 when the result is below $B4, and $28; left (bit 2) takes 8 off the X $5075 when the result is $46 or more, and 1 off the pointer; right (bit 3) adds 8 when the result is below $F6, and 1. It then writes X and Y to $D000/$D001 (with $D010 = 0), sets the pointer $CFF8 = $74 and the colour $D027 = 1, and ends by reading ($0E),y.","t":"code","b":[173,207,81],"m":"lda","oa":20943,"o":"cursor_phase","x":[23346]},{"a":20963,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":20965,"t":"code","b":[141,207,81],"m":"sta","oa":20943,"o":"cursor_phase"},{"a":20968,"t":"code","b":[240,1],"m":"beq","oa":20971,"o":"$51EB"},{"a":20970,"t":"code","b":[96],"m":"rts"},{"a":20971,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[20968]},{"a":20974,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":20976,"t":"code","b":[208,29],"m":"bne","oa":21007,"o":"$520F"},{"a":20978,"t":"code","b":[56],"m":"sec"},{"a":20979,"t":"code","b":[173,116,80],"m":"lda","oa":20596,"o":"cursor_y"},{"a":20982,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":20984,"t":"code","b":[201,60],"m":"cmp","o":"#$3C"},{"a":20986,"t":"code","b":[144,52],"m":"bcc","oa":21040,"o":"$5230"},{"a":20988,"t":"code","b":[141,116,80],"m":"sta","oa":20596,"o":"cursor_y"},{"a":20991,"t":"code","b":[56],"m":"sec"},{"a":20992,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"$0E"},{"a":20994,"t":"code","b":[233,40],"m":"sbc","o":"#$28"},{"a":20996,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"$0E"},{"a":20998,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"$0F"},{"a":21000,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":21002,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"$0F"},{"a":21004,"t":"code","b":[76,48,82],"m":"jmp","oa":21040,"o":"$5230"},{"a":21007,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[20976]},{"a":21010,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":21012,"t":"code","b":[208,26],"m":"bne","oa":21040,"o":"$5230"},{"a":21014,"t":"code","b":[24],"m":"clc"},{"a":21015,"t":"code","b":[173,116,80],"m":"lda","oa":20596,"o":"cursor_y"},{"a":21018,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":21020,"t":"code","b":[201,180],"m":"cmp","o":"#$B4"},{"a":21022,"t":"code","b":[176,16],"m":"bcs","oa":21040,"o":"$5230"},{"a":21024,"t":"code","b":[141,116,80],"m":"sta","oa":20596,"o":"cursor_y"},{"a":21027,"t":"code","b":[24],"m":"clc"},{"a":21028,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"$0E"},{"a":21030,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":21032,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"$0E"},{"a":21034,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"$0F"},{"a":21036,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21038,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"$0F"},{"a":21040,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[20986,21004,21012,21022]},{"a":21043,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":21045,"t":"code","b":[208,29],"m":"bne","oa":21076,"o":"$5254"},{"a":21047,"t":"code","b":[56],"m":"sec"},{"a":21048,"t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x"},{"a":21051,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":21053,"t":"code","b":[201,70],"m":"cmp","o":"#$46"},{"a":21055,"t":"code","b":[144,52],"m":"bcc","oa":21109,"o":"$5275"},{"a":21057,"t":"code","b":[141,117,80],"m":"sta","oa":20597,"o":"cursor_x"},{"a":21060,"t":"code","b":[56],"m":"sec"},{"a":21061,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"$0E"},{"a":21063,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":21065,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"$0E"},{"a":21067,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"$0F"},{"a":21069,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":21071,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"$0F"},{"a":21073,"t":"code","b":[76,117,82],"m":"jmp","oa":21109,"o":"$5275"},{"a":21076,"t":"code","b":[173,59,32],"m":"lda","oa":8251,"o":"joystick","x":[21045]},{"a":21079,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":21081,"t":"code","b":[208,26],"m":"bne","oa":21109,"o":"$5275"},{"a":21083,"t":"code","b":[24],"m":"clc"},{"a":21084,"t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x"},{"a":21087,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":21089,"t":"code","b":[201,246],"m":"cmp","o":"#$F6"},{"a":21091,"t":"code","b":[176,16],"m":"bcs","oa":21109,"o":"$5275"},{"a":21093,"t":"code","b":[141,117,80],"m":"sta","oa":20597,"o":"cursor_x"},{"a":21096,"t":"code","b":[24],"m":"clc"},{"a":21097,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"$0E"},{"a":21099,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":21101,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"$0E"},{"a":21103,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"$0F"},{"a":21105,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21107,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"$0F"},{"a":21109,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[21055,21073,21081,21091]},{"a":21111,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":21114,"t":"code","b":[173,117,80],"m":"lda","oa":20597,"o":"cursor_x"},{"a":21117,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":21120,"t":"code","b":[173,116,80],"m":"lda","oa":20596,"o":"cursor_y"},{"a":21123,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":21126,"t":"code","b":[169,116],"m":"lda","o":"#$74"},{"a":21128,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":21131,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":21133,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":21136,"t":"code","b":[177,14],"m":"lda","oa":14,"o":"($0E),y"},{"a":21138,"t":"code","b":[96],"m":"rts"},{"a":21139,"l":"mask_obj_state","c":"State of each of the five objects: set to 1 by objects_spawn ($533E), to 2 by object_slide_in ($54AB) when its 24 steps are done, to 3 by object_flip ($53D9) at the end of its count and to 0 by object_slide_out ($55CF). objects_run ($53B0) uses it to pick the handler from the table $53CC.","t":"byte","b":[0,0,0,0,0],"x":[21310,21352,21426,21668,21805,22056,22894]},{"a":21144,"l":"mask_obj_delay","c":"Delay of each object: a random value 0 to 31 set by objects_spawn ($533E) and counted down by object_slide_in ($54AB) and object_flip ($53D9); object_slide_in sets it to $3C when its steps are done.","t":"byte","b":[0,0,0,0,0],"x":[21347,21465,21476,21675,21683,21810]},{"a":21149,"l":"mask_obj_value_a","c":"Low byte of the base address of each object's picture strip: set by objects_spawn ($533E) from the table $5308 ($2F, $47 or $5F, chosen with random_of_3), and to $FF for the target object. object_slide_in ($54AB) adds the strip offset to it.","t":"byte","b":[0,0,0,0,0],"x":[21372,21419,21705]},{"a":21154,"l":"mask_obj_value_b","c":"High byte of the same base address: $61 from the table $530B, and $60 for the target object. The bases are therefore $612F, $6147 and $615F, and $60FF for the target.","t":"byte","b":[0,0,0,0,0],"x":[21366,21414,21713]},{"a":21159,"l":"mask_obj_ptr_lo","c":"Low bytes of the address of each object's character data in the character set, copied from $52B6 by objects_spawn ($533E); the slide handlers and object_flip write the object's picture there.","t":"byte","b":[0,0,0,0,0],"x":[21378,21491,21549,21722,21755,21968,22020]},{"a":21164,"l":"mask_obj_ptr_hi","c":"High bytes of the address of each object's character data, copied from $52BB by objects_spawn ($533E).","t":"byte","b":[0,0,0,0,0],"x":[21384,21496,21554,21729,21760,21975,22025]},{"a":21169,"l":"mask_obj_counter","c":"Step of each object's slide: cleared by objects_spawn ($533E) and counted up by object_slide_in ($54AB, to $18) and object_slide_out ($55CF, to $15). The match tests match_row_61 and match_row_a1 require the counter of the object they test to be below 5.","t":"byte","b":[0,0,0,0,0],"x":[20373,21357,21687,21794,21815,21819,22045,22060]},{"a":21174,"l":"mask_obj_ptr_init_lo","c":"Initial low bytes of the character-data pointers: $00, $48, $90, $D8 and $20 (steps of 72), read by objects_spawn ($533E).","t":"byte","b":[0,72,144,216,32],"x":[21375]},{"a":21179,"l":"mask_obj_ptr_init_hi","c":"Initial high bytes of the character-data pointers: $C0, $C0, $C0, $C0 and $C1. With $52B6 they are the addresses $C000, $C048, $C090, $C0D8 and $C120.","t":"byte","b":[192,192,192,192,193],"x":[21381]},{"a":21184,"l":"mask_strip_steps","c":"24 bytes in three descending runs: $37 down to $30, $1F down to $18 and $07 down to $00. No traced code reads them. The first value equals the constant $37 added at $54DD, which is the only link seen; what the table is for is open.","t":"byte","b":[55,54,53,52,51,50,49,48]},{"a":21192,"t":"byte","b":[31,30,29,28,27,26,25,24]},{"a":21200,"t":"byte","b":[7,6,5,4,3,2,1,0]},{"a":21208,"l":"mask_strip_offsets","c":"24 offsets of two bytes (low, high), one for each step of an object's slide-in: 0 to 7, then $90 to $97, then $120 to $127. object_slide_in ($54AB) reads the pair for the step in $52B1,x (at $54BC and $54C2) and adds it to the object's base address $529D/$52A2, which is $612F, $6147 or $615F (or $60FF for the target object), so the three groups of eight steps read picture bytes from three rows $90 bytes apart.","t":"byte","b":[0,0,1,0,2,0,3,0],"x":[21692]},{"a":21216,"t":"byte","b":[4,0,5,0,6,0,7,0]},{"a":21224,"t":"byte","b":[144,0,145,0,146,0,147,0]},{"a":21232,"t":"byte","b":[148,0,149,0,150,0,151,0]},{"a":21240,"t":"byte","b":[32,1,33,1,34,1,35,1]},{"a":21248,"t":"byte","b":[36,1,37,1,38,1,39,1]},{"a":21256,"l":"mask_obj_choice_a","c":"The values $2F, $47 and $5F, one chosen by random_of_3 ($530E) for $529D.","t":"byte","b":[47,71,95],"x":[21369]},{"a":21259,"l":"mask_obj_choice_b","c":"The values $61, $61 and $61, one chosen by random_of_3 ($530E) for $52A2.","t":"byte","b":[97,97,97],"x":[21363]},{"a":21262,"l":"random_of_3","c":"Returns X=0, 1 or 2 from a random byte ($1FB5): 0 below $55, 1 below $AA, else 2. Called by objects_spawn ($533E).","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[21360]},{"a":21264,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":21267,"t":"code","b":[201,85],"m":"cmp","o":"#$55"},{"a":21269,"t":"code","b":[176,1],"m":"bcs","oa":21272,"o":"$5318"},{"a":21271,"t":"code","b":[96],"m":"rts"},{"a":21272,"t":"code","b":[232],"m":"inx","x":[21269]},{"a":21273,"t":"code","b":[201,170],"m":"cmp","o":"#$AA"},{"a":21275,"t":"code","b":[176,1],"m":"bcs","oa":21278,"o":"$531E"},{"a":21277,"t":"code","b":[96],"m":"rts"},{"a":21278,"t":"code","b":[232],"m":"inx","x":[21275]},{"a":21279,"t":"code","b":[96],"m":"rts"},{"a":21280,"l":"random_of_5","c":"Returns X=0 to 4 from a random byte ($1FB5): 0 below $32, 1 below $64, 2 below $96, 3 below $C8, else 4. Called by objects_spawn ($533E).","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[21392]},{"a":21282,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random"},{"a":21285,"t":"code","b":[201,50],"m":"cmp","o":"#$32"},{"a":21287,"t":"code","b":[176,1],"m":"bcs","oa":21290,"o":"$532A"},{"a":21289,"t":"code","b":[96],"m":"rts"},{"a":21290,"t":"code","b":[232],"m":"inx","x":[21287]},{"a":21291,"t":"code","b":[201,100],"m":"cmp","o":"#$64"},{"a":21293,"t":"code","b":[176,1],"m":"bcs","oa":21296,"o":"$5330"},{"a":21295,"t":"code","b":[96],"m":"rts"},{"a":21296,"t":"code","b":[232],"m":"inx","x":[21293]},{"a":21297,"t":"code","b":[201,150],"m":"cmp","o":"#$96"},{"a":21299,"t":"code","b":[176,1],"m":"bcs","oa":21302,"o":"$5336"},{"a":21301,"t":"code","b":[96],"m":"rts"},{"a":21302,"t":"code","b":[232],"m":"inx","x":[21299]},{"a":21303,"t":"code","b":[201,200],"m":"cmp","o":"#$C8"},{"a":21305,"t":"code","b":[176,1],"m":"bcs","oa":21308,"o":"$533C"},{"a":21307,"t":"code","b":[96],"m":"rts"},{"a":21308,"t":"code","b":[232],"m":"inx","x":[21305]},{"a":21309,"t":"code","b":[96],"m":"rts"},{"a":21310,"l":"objects_spawn","c":"Starts five objects when all five states $5293-$5297 are 0. Sets $4F60 to 2 and, for each: delay $5298 = random and $1F, state $5293 = 1, $52B1 = 0, the values $52A2 and $529D from the tables $530B and $5308 chosen with random_of_3 ($530E), and the pointer $52A7/$52AC copied from $52B6/$52BB. It then picks X with random_of_5 ($5320) (changed to 1, then 2, while equal to $500D), stores it in $53AF and sets $52A2 plus X to $60 and $529D plus X to $FF. Called by irq_mask_3 ($5B45) at $5BA1 while $5C67 is zero.","t":"code","b":[173,147,82],"m":"lda","oa":21139,"o":"mask_obj_state","x":[23457]},{"a":21313,"t":"code","b":[208,107],"m":"bne","oa":21422,"o":"$53AE"},{"a":21315,"t":"code","b":[173,148,82],"m":"lda","oa":21140,"o":"$5294"},{"a":21318,"t":"code","b":[208,102],"m":"bne","oa":21422,"o":"$53AE"},{"a":21320,"t":"code","b":[173,149,82],"m":"lda","oa":21141,"o":"$5295"},{"a":21323,"t":"code","b":[208,97],"m":"bne","oa":21422,"o":"$53AE"},{"a":21325,"t":"code","b":[173,150,82],"m":"lda","oa":21142,"o":"$5296"},{"a":21328,"t":"code","b":[208,92],"m":"bne","oa":21422,"o":"$53AE"},{"a":21330,"t":"code","b":[173,151,82],"m":"lda","oa":21143,"o":"$5297"},{"a":21333,"t":"code","b":[208,87],"m":"bne","oa":21422,"o":"$53AE"},{"a":21335,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":21337,"t":"code","b":[141,96,79],"m":"sta","oa":20320,"o":"slice_type"},{"a":21340,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":21342,"t":"code","b":[32,181,31],"m":"jsr","oa":8117,"o":"random","x":[21390]},{"a":21345,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":21347,"t":"code","b":[153,152,82],"m":"sta","oa":21144,"o":"mask_obj_delay,y"},{"a":21350,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":21352,"t":"code","b":[153,147,82],"m":"sta","oa":21139,"o":"mask_obj_state,y"},{"a":21355,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":21357,"t":"code","b":[153,177,82],"m":"sta","oa":21169,"o":"mask_obj_counter,y"},{"a":21360,"t":"code","b":[32,14,83],"m":"jsr","oa":21262,"o":"random_of_3"},{"a":21363,"t":"code","b":[189,11,83],"m":"lda","oa":21259,"o":"mask_obj_choice_b,x"},{"a":21366,"t":"code","b":[153,162,82],"m":"sta","oa":21154,"o":"mask_obj_value_b,y"},{"a":21369,"t":"code","b":[189,8,83],"m":"lda","oa":21256,"o":"mask_obj_choice_a,x"},{"a":21372,"t":"code","b":[153,157,82],"m":"sta","oa":21149,"o":"mask_obj_value_a,y"},{"a":21375,"t":"code","b":[185,182,82],"m":"lda","oa":21174,"o":"mask_obj_ptr_init_lo,y"},{"a":21378,"t":"code","b":[153,167,82],"m":"sta","oa":21159,"o":"mask_obj_ptr_lo,y"},{"a":21381,"t":"code","b":[185,187,82],"m":"lda","oa":21179,"o":"mask_obj_ptr_init_hi,y"},{"a":21384,"t":"code","b":[153,172,82],"m":"sta","oa":21164,"o":"mask_obj_ptr_hi,y"},{"a":21387,"t":"code","b":[200],"m":"iny"},{"a":21388,"t":"code","b":[192,5],"m":"cpy","o":"#$05"},{"a":21390,"t":"code","b":[208,206],"m":"bne","oa":21342,"o":"$535E"},{"a":21392,"t":"code","b":[32,32,83],"m":"jsr","oa":21280,"o":"random_of_5"},{"a":21395,"t":"code","b":[236,13,80],"m":"cpx","oa":20493,"o":"cursor_column"},{"a":21398,"t":"code","b":[208,9],"m":"bne","oa":21409,"o":"$53A1"},{"a":21400,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":21402,"t":"code","b":[236,13,80],"m":"cpx","oa":20493,"o":"cursor_column"},{"a":21405,"t":"code","b":[208,2],"m":"bne","oa":21409,"o":"$53A1"},{"a":21407,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":21409,"t":"code","b":[142,175,83],"m":"stx","oa":21423,"o":"target_object","x":[21398,21405]},{"a":21412,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":21414,"t":"code","b":[157,162,82],"m":"sta","oa":21154,"o":"mask_obj_value_b,x"},{"a":21417,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":21419,"t":"code","b":[157,157,82],"m":"sta","oa":21149,"o":"mask_obj_value_a,x"},{"a":21422,"t":"code","b":[96],"m":"rts","x":[21313,21318,21323,21328,21333]},{"a":21423,"l":"target_object","c":"Index 0 to 4 of the chosen object, set by objects_spawn ($533E) and used by match_check ($4F61), the match tests and the object code.","t":"byte","b":[0],"x":[20335,21409,21479,21985]},{"a":21424,"l":"objects_run","c":"Runs the five objects. For X=0 to 4 it takes the state $5293 plus X, multiplies it by 2, reads the address from the table $53CC and stores it in the operand of the JSR at $53C3 (low byte at $53C4, high byte at $53C5; the $2B67 shown in the file is a placeholder), then calls it. Called by irq_mask_3 ($5B45) at $5BA4 while $5C67 is zero.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[23460]},{"a":21426,"t":"code","b":[189,147,82],"m":"lda","oa":21139,"o":"mask_obj_state,x","x":[21449]},{"a":21429,"t":"code","b":[10],"m":"asl","o":"a"},{"a":21430,"t":"code","b":[168],"m":"tay"},{"a":21431,"t":"code","b":[185,204,83],"m":"lda","oa":21452,"o":"mask_obj_handlers,y"},{"a":21434,"t":"code","b":[141,196,83],"m":"sta","oa":21444,"o":"$53C4"},{"a":21437,"t":"code","b":[185,205,83],"m":"lda","oa":21453,"o":"$53CD,y"},{"a":21440,"t":"code","b":[141,197,83],"m":"sta","oa":21445,"o":"$53C5"},{"a":21443,"t":"code","b":[32,103,43],"m":"jsr","oa":11111,"o":"jump_step"},{"a":21446,"t":"code","b":[232],"m":"inx"},{"a":21447,"t":"code","b":[224,5],"m":"cpx","o":"#$05"},{"a":21449,"t":"code","b":[208,231],"m":"bne","oa":21426,"o":"$53B2"},{"a":21451,"t":"code","b":[96],"m":"rts"},{"a":21452,"l":"mask_obj_handlers","c":"Handler addresses by object state 0 to 3: $53D4 (object_idle), $54AB (object_slide_in), $53D9 (object_flip) and $55CF (object_slide_out). objects_run ($53B0) patches the chosen one into a JSR. State 4 would read the bytes after the table.","t":"byte","b":[212,83,171,84,217,83,207,85],"x":[21431]},{"a":21460,"l":"mask_object_idle","c":"Handler for object state 0: a bare RTS.","t":"code","b":[96],"m":"rts"},{"a":21461,"l":"object_flip_toggle","c":"Toggles between 0 and 1 each time object_flip ($53D9) flips the picture; the value is copied to $4F60.","t":"byte","b":[0],"x":[21501,21506]},{"a":21462,"l":"object_source_lo","c":"Low byte of the source address that object_flip ($53D9) reads the picture from ($E7 or $17 after the toggle, or $FF).","t":"byte","b":[0],"x":[21520,21537,21559,21647]},{"a":21463,"l":"object_source_hi","c":"High byte of the same source address ($60 or $61).","t":"byte","b":[0],"x":[21527,21544,21564,21654]},{"a":21464,"l":"object_return","c":"A bare RTS that object_flip ($53D9) branches to when the object is not the one the target $53AF points at.","t":"code","b":[96],"m":"rts","x":[21482]},{"a":21465,"l":"object_flip","c":"Handler for object state 2. Counts the delay $5298,x down; at 0 it sets state 3 ($54A2). While counting, only the object that the target $53AF points at acts: at count $32 it toggles $53D5 (copied to $4F60) and takes the source $60E7 or $6117, and at count $14 it takes the source $60FF with $4F60 = 2. It then copies 24 columns of three bytes (rows $90 apart in the source, $18 apart at the object's character data $52A7/$52AC,x) into the character set.","t":"code","b":[189,152,82],"m":"lda","oa":21144,"o":"mask_obj_delay,x"},{"a":21468,"t":"code","b":[208,3],"m":"bne","oa":21473,"o":"$53E1"},{"a":21470,"t":"code","b":[76,162,84],"m":"jmp","oa":21666,"o":"$54A2"},{"a":21473,"t":"code","b":[56],"m":"sec","x":[21468]},{"a":21474,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":21476,"t":"code","b":[157,152,82],"m":"sta","oa":21144,"o":"mask_obj_delay,x"},{"a":21479,"t":"code","b":[236,175,83],"m":"cpx","oa":21423,"o":"target_object"},{"a":21482,"t":"code","b":[208,236],"m":"bne","oa":21464,"o":"object_return"},{"a":21484,"t":"code","b":[201,50],"m":"cmp","o":"#$32"},{"a":21486,"t":"code","b":[240,3],"m":"beq","oa":21491,"o":"$53F3"},{"a":21488,"t":"code","b":[76,135,84],"m":"jmp","oa":21639,"o":"$5487"},{"a":21491,"t":"code","b":[189,167,82],"m":"lda","oa":21159,"o":"mask_obj_ptr_lo,x","x":[21486]},{"a":21494,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21496,"t":"code","b":[189,172,82],"m":"lda","oa":21164,"o":"mask_obj_ptr_hi,x"},{"a":21499,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21501,"t":"code","b":[173,213,83],"m":"lda","oa":21461,"o":"object_flip_toggle"},{"a":21504,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":21506,"t":"code","b":[141,213,83],"m":"sta","oa":21461,"o":"object_flip_toggle"},{"a":21509,"t":"code","b":[141,96,79],"m":"sta","oa":20320,"o":"slice_type"},{"a":21512,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":21514,"t":"code","b":[208,17],"m":"bne","oa":21533,"o":"$541D"},{"a":21516,"t":"code","b":[169,231],"m":"lda","o":"#$E7"},{"a":21518,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21520,"t":"code","b":[141,214,83],"m":"sta","oa":21462,"o":"object_source_lo"},{"a":21523,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":21525,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21527,"t":"code","b":[141,215,83],"m":"sta","oa":21463,"o":"object_source_hi"},{"a":21530,"t":"code","b":[76,43,84],"m":"jmp","oa":21547,"o":"$542B"},{"a":21533,"t":"code","b":[169,23],"m":"lda","o":"#$17","x":[21514]},{"a":21535,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21537,"t":"code","b":[141,214,83],"m":"sta","oa":21462,"o":"object_source_lo"},{"a":21540,"t":"code","b":[169,97],"m":"lda","o":"#$61"},{"a":21542,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21544,"t":"code","b":[141,215,83],"m":"sta","oa":21463,"o":"object_source_hi"},{"a":21547,"t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[21530,21662]},{"a":21549,"t":"code","b":[189,167,82],"m":"lda","oa":21159,"o":"mask_obj_ptr_lo,x","x":[21636]},{"a":21552,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21554,"t":"code","b":[189,172,82],"m":"lda","oa":21164,"o":"mask_obj_ptr_hi,x"},{"a":21557,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21559,"t":"code","b":[173,214,83],"m":"lda","oa":21462,"o":"object_source_lo"},{"a":21562,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21564,"t":"code","b":[173,215,83],"m":"lda","oa":21463,"o":"object_source_hi"},{"a":21567,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21569,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"($0A),y"},{"a":21571,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21573,"t":"code","b":[24],"m":"clc"},{"a":21574,"t":"code","b":[165,10],"m":"lda","oa":10,"o":"$0A"},{"a":21576,"t":"code","b":[105,144],"m":"adc","o":"#$90"},{"a":21578,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21580,"t":"code","b":[165,11],"m":"lda","oa":11,"o":"$0B"},{"a":21582,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21584,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21586,"t":"code","b":[24],"m":"clc"},{"a":21587,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"$0C"},{"a":21589,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":21591,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21593,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"$0D"},{"a":21595,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21597,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21599,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"($0A),y"},{"a":21601,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21603,"t":"code","b":[24],"m":"clc"},{"a":21604,"t":"code","b":[165,10],"m":"lda","oa":10,"o":"$0A"},{"a":21606,"t":"code","b":[105,144],"m":"adc","o":"#$90"},{"a":21608,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21610,"t":"code","b":[165,11],"m":"lda","oa":11,"o":"$0B"},{"a":21612,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21614,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21616,"t":"code","b":[24],"m":"clc"},{"a":21617,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"$0C"},{"a":21619,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":21621,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21623,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"$0D"},{"a":21625,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21627,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21629,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"($0A),y"},{"a":21631,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21633,"t":"code","b":[200],"m":"iny"},{"a":21634,"t":"code","b":[192,24],"m":"cpy","o":"#$18"},{"a":21636,"t":"code","b":[208,167],"m":"bne","oa":21549,"o":"$542D"},{"a":21638,"t":"code","b":[96],"m":"rts"},{"a":21639,"t":"code","b":[201,20],"m":"cmp","o":"#$14","x":[21488]},{"a":21641,"t":"code","b":[208,22],"m":"bne","oa":21665,"o":"$54A1"},{"a":21643,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":21645,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21647,"t":"code","b":[141,214,83],"m":"sta","oa":21462,"o":"object_source_lo"},{"a":21650,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":21652,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21654,"t":"code","b":[141,215,83],"m":"sta","oa":21463,"o":"object_source_hi"},{"a":21657,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":21659,"t":"code","b":[141,96,79],"m":"sta","oa":20320,"o":"slice_type"},{"a":21662,"t":"code","b":[76,43,84],"m":"jmp","oa":21547,"o":"$542B"},{"a":21665,"t":"code","b":[96],"m":"rts","x":[21641]},{"a":21666,"t":"code","b":[169,3],"m":"lda","o":"#$03","x":[21470]},{"a":21668,"t":"code","b":[157,147,82],"m":"sta","oa":21139,"o":"mask_obj_state,x"},{"a":21671,"t":"code","b":[96],"m":"rts"},{"a":21672,"l":"strip_unused","c":"One byte (0) before strip_offset ($54A9) that nothing reads or writes.","t":"byte","b":[0]},{"a":21673,"l":"strip_offset","c":"Two bytes written by object_slide_in ($54AB) from the table at $52D8: the offset of the picture strip for this step. Read back at $54CC and $54D4 and added to the object's base address $529D/$52A2,x. The byte before them, $54A8, is not used.","t":"byte","b":[0,0],"x":[21695,21708]},{"a":21675,"l":"object_slide_in","c":"Handler for object state 1. Counts the delay $5298,x down; at 0 it copies three bytes (8 apart) of the picture strip chosen by the step $52B1,x (offset from the table $52D8, two bytes per step) into the object's character data at $37 on, then calls shift_cells_left ($5595) for nine cells to shift them left by a byte. It adds 1 to the step; at $18 it sets state 2, the delay $3C and the step 0.","t":"code","b":[189,152,82],"m":"lda","oa":21144,"o":"mask_obj_delay,x"},{"a":21678,"t":"code","b":[240,7],"m":"beq","oa":21687,"o":"$54B7"},{"a":21680,"t":"code","b":[56],"m":"sec"},{"a":21681,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":21683,"t":"code","b":[157,152,82],"m":"sta","oa":21144,"o":"mask_obj_delay,x"},{"a":21686,"t":"code","b":[96],"m":"rts"},{"a":21687,"t":"code","b":[189,177,82],"m":"lda","oa":21169,"o":"mask_obj_counter,x","x":[21678]},{"a":21690,"t":"code","b":[10],"m":"asl","o":"a"},{"a":21691,"t":"code","b":[168],"m":"tay"},{"a":21692,"t":"code","b":[185,216,82],"m":"lda","oa":21208,"o":"mask_strip_offsets,y"},{"a":21695,"t":"code","b":[141,169,84],"m":"sta","oa":21673,"o":"strip_offset"},{"a":21698,"t":"code","b":[185,217,82],"m":"lda","oa":21209,"o":"$52D9,y"},{"a":21701,"t":"code","b":[141,170,84],"m":"sta","oa":21674,"o":"$54AA"},{"a":21704,"t":"code","b":[24],"m":"clc"},{"a":21705,"t":"code","b":[189,157,82],"m":"lda","oa":21149,"o":"mask_obj_value_a,x"},{"a":21708,"t":"code","b":[109,169,84],"m":"adc","oa":21673,"o":"strip_offset"},{"a":21711,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"$0A"},{"a":21713,"t":"code","b":[189,162,82],"m":"lda","oa":21154,"o":"mask_obj_value_b,x"},{"a":21716,"t":"code","b":[109,170,84],"m":"adc","oa":21674,"o":"$54AA"},{"a":21719,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"$0B"},{"a":21721,"t":"code","b":[24],"m":"clc"},{"a":21722,"t":"code","b":[189,167,82],"m":"lda","oa":21159,"o":"mask_obj_ptr_lo,x"},{"a":21725,"t":"code","b":[105,55],"m":"adc","o":"#$37"},{"a":21727,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21729,"t":"code","b":[189,172,82],"m":"lda","oa":21164,"o":"mask_obj_ptr_hi,x"},{"a":21732,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21734,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21736,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":21738,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"($0A),y"},{"a":21740,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21742,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":21744,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"($0A),y"},{"a":21746,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21748,"t":"code","b":[160,16],"m":"ldy","o":"#$10"},{"a":21750,"t":"code","b":[177,10],"m":"lda","oa":10,"o":"($0A),y"},{"a":21752,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21754,"t":"code","b":[24],"m":"clc"},{"a":21755,"t":"code","b":[189,167,82],"m":"lda","oa":21159,"o":"mask_obj_ptr_lo,x"},{"a":21758,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21760,"t":"code","b":[189,172,82],"m":"lda","oa":21164,"o":"mask_obj_ptr_hi,x"},{"a":21763,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21765,"t":"code","b":[142,32,85],"m":"stx","oa":21792,"o":"$5520"},{"a":21768,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":21770,"t":"code","b":[32,149,85],"m":"jsr","oa":21909,"o":"shift_cells_left","x":[21789]},{"a":21773,"t":"code","b":[24],"m":"clc"},{"a":21774,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"$0C"},{"a":21776,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":21778,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21780,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"$0D"},{"a":21782,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21784,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21786,"t":"code","b":[232],"m":"inx"},{"a":21787,"t":"code","b":[224,9],"m":"cpx","o":"#$09"},{"a":21789,"t":"code","b":[208,235],"m":"bne","oa":21770,"o":"$550A"},{"a":21791,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":21793,"t":"code","b":[24],"m":"clc"},{"a":21794,"t":"code","b":[189,177,82],"m":"lda","oa":21169,"o":"mask_obj_counter,x"},{"a":21797,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":21799,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":21801,"t":"code","b":[144,16],"m":"bcc","oa":21819,"o":"$553B"},{"a":21803,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":21805,"t":"code","b":[157,147,82],"m":"sta","oa":21139,"o":"mask_obj_state,x"},{"a":21808,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":21810,"t":"code","b":[157,152,82],"m":"sta","oa":21144,"o":"mask_obj_delay,x"},{"a":21813,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":21815,"t":"code","b":[157,177,82],"m":"sta","oa":21169,"o":"mask_obj_counter,x"},{"a":21818,"t":"code","b":[96],"m":"rts"},{"a":21819,"t":"code","b":[157,177,82],"m":"sta","oa":21169,"o":"mask_obj_counter,x","x":[21801]},{"a":21822,"t":"code","b":[96],"m":"rts"},{"a":21823,"l":"shift_cells_right","c":"Shifts the eight bytes at ($0C) one place right (byte n to n+1, from the last to the first), then puts the byte at ($0C)-$18+7 into the first. Called nine times by object_slide_out ($55CF) with X counting the cells.","t":"code","b":[160,6],"m":"ldy","o":"#$06","x":[21997]},{"a":21825,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21827,"t":"code","b":[200],"m":"iny"},{"a":21828,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21830,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":21832,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21834,"t":"code","b":[200],"m":"iny"},{"a":21835,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21837,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":21839,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21841,"t":"code","b":[200],"m":"iny"},{"a":21842,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21844,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":21846,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21848,"t":"code","b":[200],"m":"iny"},{"a":21849,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21851,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":21853,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21855,"t":"code","b":[200],"m":"iny"},{"a":21856,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21858,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":21860,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21862,"t":"code","b":[200],"m":"iny"},{"a":21863,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21865,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":21867,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21869,"t":"code","b":[200],"m":"iny"},{"a":21870,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21872,"t":"code","b":[56],"m":"sec"},{"a":21873,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"$0C"},{"a":21875,"t":"code","b":[72],"m":"pha"},{"a":21876,"t":"code","b":[233,24],"m":"sbc","o":"#$18"},{"a":21878,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21880,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"$0D"},{"a":21882,"t":"code","b":[72],"m":"pha"},{"a":21883,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":21885,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21887,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":21889,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21891,"t":"code","b":[141,148,85],"m":"sta","oa":21908,"o":"shift_temp"},{"a":21894,"t":"code","b":[104],"m":"pla"},{"a":21895,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21897,"t":"code","b":[104],"m":"pla"},{"a":21898,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21900,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":21902,"t":"code","b":[173,148,85],"m":"lda","oa":21908,"o":"shift_temp"},{"a":21905,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21907,"t":"code","b":[96],"m":"rts"},{"a":21908,"l":"shift_temp","c":"Holds the byte that shift_cells_right ($553F) carries from the cell above into the first byte of the cell.","t":"byte","b":[0],"x":[21891,21902]},{"a":21909,"l":"shift_cells_left","c":"Shifts the eight bytes at ($0C) one place left (byte n+1 to n), then puts the byte at ($0C)+$18 into the last one (at +7). Called nine times by object_slide_in ($54AB) with X counting the cells.","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[21770]},{"a":21911,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21913,"t":"code","b":[136],"m":"dey"},{"a":21914,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21916,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":21918,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21920,"t":"code","b":[136],"m":"dey"},{"a":21921,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21923,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":21925,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21927,"t":"code","b":[136],"m":"dey"},{"a":21928,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21930,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":21932,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21934,"t":"code","b":[136],"m":"dey"},{"a":21935,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21937,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":21939,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21941,"t":"code","b":[136],"m":"dey"},{"a":21942,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21944,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":21946,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21948,"t":"code","b":[136],"m":"dey"},{"a":21949,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21951,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":21953,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21955,"t":"code","b":[136],"m":"dey"},{"a":21956,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21958,"t":"code","b":[160,24],"m":"ldy","o":"#$18"},{"a":21960,"t":"code","b":[177,12],"m":"lda","oa":12,"o":"($0C),y"},{"a":21962,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":21964,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":21966,"t":"code","b":[96],"m":"rts"},{"a":21967,"l":"object_slide_out","c":"Handler for object state 3. Calls shift_cells_right ($553F) for nine cells starting at the object's character data plus $40 and going down by 8, then clears three bytes at the object's data. For the object that the target $53AF points at it sets $4F60 to 2. It adds 1 to the step $52B1,x; at $15 it sets the state back to 0.","t":"code","b":[24],"m":"clc"},{"a":21968,"t":"code","b":[189,167,82],"m":"lda","oa":21159,"o":"mask_obj_ptr_lo,x"},{"a":21971,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":21973,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":21975,"t":"code","b":[189,172,82],"m":"lda","oa":21164,"o":"mask_obj_ptr_hi,x"},{"a":21978,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":21980,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":21982,"t":"code","b":[142,3,86],"m":"stx","oa":22019,"o":"$5603"},{"a":21985,"t":"code","b":[236,175,83],"m":"cpx","oa":21423,"o":"target_object"},{"a":21988,"t":"code","b":[208,5],"m":"bne","oa":21995,"o":"$55EB"},{"a":21990,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":21992,"t":"code","b":[141,96,79],"m":"sta","oa":20320,"o":"slice_type"},{"a":21995,"t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[21988]},{"a":21997,"t":"code","b":[32,63,85],"m":"jsr","oa":21823,"o":"shift_cells_right","x":[22016]},{"a":22000,"t":"code","b":[56],"m":"sec"},{"a":22001,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"$0C"},{"a":22003,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":22005,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":22007,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"$0D"},{"a":22009,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":22011,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":22013,"t":"code","b":[232],"m":"inx"},{"a":22014,"t":"code","b":[224,9],"m":"cpx","o":"#$09"},{"a":22016,"t":"code","b":[208,235],"m":"bne","oa":21997,"o":"$55ED"},{"a":22018,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":22020,"t":"code","b":[189,167,82],"m":"lda","oa":21159,"o":"mask_obj_ptr_lo,x"},{"a":22023,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"$0C"},{"a":22025,"t":"code","b":[189,172,82],"m":"lda","oa":21164,"o":"mask_obj_ptr_hi,x"},{"a":22028,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"$0D"},{"a":22030,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22032,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22034,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":22036,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":22038,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":22040,"t":"code","b":[160,16],"m":"ldy","o":"#$10"},{"a":22042,"t":"code","b":[145,12],"m":"sta","oa":12,"o":"($0C),y"},{"a":22044,"t":"code","b":[24],"m":"clc"},{"a":22045,"t":"code","b":[189,177,82],"m":"lda","oa":21169,"o":"mask_obj_counter,x"},{"a":22048,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":22050,"t":"code","b":[201,21],"m":"cmp","o":"#$15"},{"a":22052,"t":"code","b":[144,6],"m":"bcc","oa":22060,"o":"$562C"},{"a":22054,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22056,"t":"code","b":[157,147,82],"m":"sta","oa":21139,"o":"mask_obj_state,x"},{"a":22059,"t":"code","b":[96],"m":"rts"},{"a":22060,"t":"code","b":[157,177,82],"m":"sta","oa":21169,"o":"mask_obj_counter,x","x":[22052]},{"a":22063,"t":"code","b":[96],"m":"rts"},{"a":22064,"l":"screen_a_draw","c":"Draws screen A. Copies 18 rows of 28 bytes from the map $6297 to the screen matrix from $CC2E (rows $28 apart; the source and destination pointers are the operands at $5649/$564A and $564C/$564D), then colours the three screen pages: each byte of $CC00-$CEFF is looked up in the table $5CC3 and the result stored in colour RAM $D800-$DAFF. Called by the end-of-level code at $5A0D.","t":"code","b":[169,46],"m":"lda","o":"#$2E","x":[23053]},{"a":22066,"t":"code","b":[141,76,86],"m":"sta","oa":22092,"o":"screen_a_dst"},{"a":22069,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":22071,"t":"code","b":[141,77,86],"m":"sta","oa":22093,"o":"$564D"},{"a":22074,"t":"code","b":[169,151],"m":"lda","o":"#$97"},{"a":22076,"t":"code","b":[141,73,86],"m":"sta","oa":22089,"o":"screen_a_src"},{"a":22079,"t":"code","b":[169,98],"m":"lda","o":"#$62"},{"a":22081,"t":"code","b":[141,74,86],"m":"sta","oa":22090,"o":"$564A"},{"a":22084,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":22086,"l":"b_5646","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[22136]},{"a":22088,"l":"b_5648","t":"code","b":[185,151,98],"m":"lda","oa":25239,"o":"screen_a_map,y","x":[22097]},{"a":22089,"t":"note","l":"screen_a_src","c":"The operand of the LDA at $5648: the address of the row of the map $6297 that screen_a_draw ($5630) copies, set to $6297 at the start and moved on by 28 for each row.","note":"inside the item at $5648","x":[22076,22117,22122]},{"a":22091,"t":"code","b":[153,0,204],"m":"sta","oa":52224,"o":"screen_b,y"},{"a":22092,"t":"note","l":"screen_a_dst","c":"The operand of the STA at $564B: the address of the screen row that screen_a_draw ($5630) writes, set to $CC2E at the start and moved on by $28 for each row.","note":"inside the item at $564B","x":[22066,22100,22105]},{"a":22094,"l":"screen_a_draw_part_2","c":"The rest of screen_a_draw ($5630): ends the row of 28 bytes, moves the two pointers on, repeats for 18 rows, then looks up every byte of $CC00-$CEFF in char_colours ($5CC3) and stores the result in colour RAM $D800-$DAFF.","t":"code","b":[200],"m":"iny"},{"a":22095,"t":"code","b":[192,28],"m":"cpy","o":"#$1C"},{"a":22097,"t":"code","b":[208,245],"m":"bne","oa":22088,"o":"b_5648"},{"a":22099,"t":"code","b":[24],"m":"clc"},{"a":22100,"t":"code","b":[173,76,86],"m":"lda","oa":22092,"o":"screen_a_dst"},{"a":22103,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":22105,"t":"code","b":[141,76,86],"m":"sta","oa":22092,"o":"screen_a_dst"},{"a":22108,"t":"code","b":[173,77,86],"m":"lda","oa":22093,"o":"$564D"},{"a":22111,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":22113,"t":"code","b":[141,77,86],"m":"sta","oa":22093,"o":"$564D"},{"a":22116,"t":"code","b":[24],"m":"clc"},{"a":22117,"t":"code","b":[173,73,86],"m":"lda","oa":22089,"o":"screen_a_src"},{"a":22120,"t":"code","b":[105,28],"m":"adc","o":"#$1C"},{"a":22122,"t":"code","b":[141,73,86],"m":"sta","oa":22089,"o":"screen_a_src"},{"a":22125,"t":"code","b":[173,74,86],"m":"lda","oa":22090,"o":"$564A"},{"a":22128,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":22130,"t":"code","b":[141,74,86],"m":"sta","oa":22090,"o":"$564A"},{"a":22133,"t":"code","b":[232],"m":"inx"},{"a":22134,"t":"code","b":[224,18],"m":"cpx","o":"#$12"},{"a":22136,"t":"code","b":[208,204],"m":"bne","oa":22086,"o":"b_5646"},{"a":22138,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22140,"l":"b_567C","t":"code","b":[190,0,204],"m":"ldx","oa":52224,"o":"screen_b,y","x":[22168]},{"a":22143,"t":"code","b":[189,195,92],"m":"lda","oa":23747,"o":"char_colours,x"},{"a":22146,"t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y"},{"a":22149,"t":"code","b":[190,0,205],"m":"ldx","oa":52480,"o":"$CD00,y"},{"a":22152,"t":"code","b":[189,195,92],"m":"lda","oa":23747,"o":"char_colours,x"},{"a":22155,"t":"code","b":[153,0,217],"m":"sta","o":"$D900,y"},{"a":22158,"t":"code","b":[190,0,206],"m":"ldx","oa":52736,"o":"$CE00,y"},{"a":22161,"t":"code","b":[189,195,92],"m":"lda","oa":23747,"o":"char_colours,x"},{"a":22164,"t":"code","b":[153,0,218],"m":"sta","o":"$DA00,y"},{"a":22167,"t":"code","b":[200],"m":"iny"},{"a":22168,"t":"code","b":[208,226],"m":"bne","oa":22140,"o":"b_567C"},{"a":22170,"t":"code","b":[96],"m":"rts"},{"a":22171,"l":"screen_b_draw","c":"Draws screen B. Copies 16 rows of 28 bytes from the map $648F to the screen matrix from $CC2E (rows $28 apart; the pointers are the operands at $56B4/$56B5 and $56B7/$56B8), then colours the three pages through the table $5CC3 into $D800-$DAFF as screen_a_draw does. Called by mask_finish at $4C28.","t":"code","b":[169,46],"m":"lda","o":"#$2E","x":[19496]},{"a":22173,"t":"code","b":[141,183,86],"m":"sta","oa":22199,"o":"screen_b_dst"},{"a":22176,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":22178,"t":"code","b":[141,184,86],"m":"sta","oa":22200,"o":"$56B8"},{"a":22181,"t":"code","b":[169,143],"m":"lda","o":"#$8F"},{"a":22183,"t":"code","b":[141,180,86],"m":"sta","oa":22196,"o":"screen_b_src"},{"a":22186,"t":"code","b":[169,100],"m":"lda","o":"#$64"},{"a":22188,"t":"code","b":[141,181,86],"m":"sta","oa":22197,"o":"$56B5"},{"a":22191,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":22193,"l":"b_56B1","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[22243]},{"a":22195,"l":"b_56B3","t":"code","b":[185,143,100],"m":"lda","oa":25743,"o":"screen_b_map,y","x":[22204]},{"a":22196,"t":"note","l":"screen_b_src","c":"The operand of the LDA at $56B3: the address of the row of the map $648F that screen_b_draw ($569B) copies, set to $648F at the start and moved on by 28 for each row.","note":"inside the item at $56B3","x":[22183,22224,22229]},{"a":22198,"t":"code","b":[153,0,204],"m":"sta","oa":52224,"o":"screen_b,y"},{"a":22199,"t":"note","l":"screen_b_dst","c":"The operand of the STA at $56B6: the address of the screen row that screen_b_draw ($569B) writes, set to $CC2E at the start and moved on by $28 for each row.","note":"inside the item at $56B6","x":[22173,22207,22212]},{"a":22201,"l":"screen_b_draw_part_2","c":"The rest of screen_b_draw ($569B): ends the row of 28 bytes, moves the two pointers on, repeats for 16 rows, then colours the three pages through char_colours ($5CC3) into colour RAM $D800-$DAFF as screen_a_draw does.","t":"code","b":[200],"m":"iny"},{"a":22202,"t":"code","b":[192,28],"m":"cpy","o":"#$1C"},{"a":22204,"t":"code","b":[208,245],"m":"bne","oa":22195,"o":"b_56B3"},{"a":22206,"t":"code","b":[24],"m":"clc"},{"a":22207,"t":"code","b":[173,183,86],"m":"lda","oa":22199,"o":"screen_b_dst"},{"a":22210,"t":"code","b":[105,40],"m":"adc","o":"#$28"},{"a":22212,"t":"code","b":[141,183,86],"m":"sta","oa":22199,"o":"screen_b_dst"},{"a":22215,"t":"code","b":[173,184,86],"m":"lda","oa":22200,"o":"$56B8"},{"a":22218,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":22220,"t":"code","b":[141,184,86],"m":"sta","oa":22200,"o":"$56B8"},{"a":22223,"t":"code","b":[24],"m":"clc"},{"a":22224,"t":"code","b":[173,180,86],"m":"lda","oa":22196,"o":"screen_b_src"},{"a":22227,"t":"code","b":[105,28],"m":"adc","o":"#$1C"},{"a":22229,"t":"code","b":[141,180,86],"m":"sta","oa":22196,"o":"screen_b_src"},{"a":22232,"t":"code","b":[173,181,86],"m":"lda","oa":22197,"o":"$56B5"},{"a":22235,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":22237,"t":"code","b":[141,181,86],"m":"sta","oa":22197,"o":"$56B5"},{"a":22240,"t":"code","b":[232],"m":"inx"},{"a":22241,"t":"code","b":[224,16],"m":"cpx","o":"#$10"},{"a":22243,"t":"code","b":[208,204],"m":"bne","oa":22193,"o":"b_56B1"},{"a":22245,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22247,"l":"b_56E7","t":"code","b":[190,0,204],"m":"ldx","oa":52224,"o":"screen_b,y","x":[22275]},{"a":22250,"t":"code","b":[189,195,92],"m":"lda","oa":23747,"o":"char_colours,x"},{"a":22253,"t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y"},{"a":22256,"t":"code","b":[190,0,205],"m":"ldx","oa":52480,"o":"$CD00,y"},{"a":22259,"t":"code","b":[189,195,92],"m":"lda","oa":23747,"o":"char_colours,x"},{"a":22262,"t":"code","b":[153,0,217],"m":"sta","o":"$D900,y"},{"a":22265,"t":"code","b":[190,0,206],"m":"ldx","oa":52736,"o":"$CE00,y"},{"a":22268,"t":"code","b":[189,195,92],"m":"lda","oa":23747,"o":"char_colours,x"},{"a":22271,"t":"code","b":[153,0,218],"m":"sta","o":"$DA00,y"},{"a":22274,"t":"code","b":[200],"m":"iny"},{"a":22275,"t":"code","b":[208,226],"m":"bne","oa":22247,"o":"b_56E7"},{"a":22277,"t":"code","b":[96],"m":"rts"},{"a":22278,"l":"subject_screen","c":"A text screen with a title and a wait for fire. Sets bit 6 of $D011, waits twice $FF, fills the screen matrix with $50 and colour RAM with 9, calls swap_font_b ($4DC4) and draw_subject_chars ($4CD7), sets $D023 to $0C and then $0B, writes the 8 characters at $57C6 (adding $66 to each code) at $CC60 in colour 7 and the 23 at $57CE (a space becomes $50, any other code gets $66 added) at $CF51 in colour 5. It clears bit 6 of $D011, waits for fire (bit 4 of $DC00) to be released and then pressed, sets bit 6 again, clears $C800-$CBFF through $2003, points sprite 0 at $74 ($CFF8), moves all eight sprites to Y $FF, waits, calls $4DC4 again and clears 72 bytes at each of $6683, $66CB, $6713, $675B and $67A3. Called by the end-of-level code at $59F5.","t":"code","b":[173,17,208],"m":"lda","o":"vic_control1","x":[23029]},{"a":22281,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":22283,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":22286,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":22288,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22291,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":22293,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22296,"t":"code","b":[169,80],"m":"lda","o":"#$50"},{"a":22298,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":22301,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":22303,"t":"code","b":[32,21,32],"m":"jsr","oa":8213,"o":"fill_colour"},{"a":22306,"t":"code","b":[32,196,77],"m":"jsr","oa":19908,"o":"swap_font_b"},{"a":22309,"t":"code","b":[32,215,76],"m":"jsr","oa":19671,"o":"draw_subject_chars"},{"a":22312,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":22314,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":22317,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":22319,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":22322,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22324,"l":"b_5734","t":"code","b":[185,198,87],"m":"lda","oa":22470,"o":"photo_text,y","x":[22341]},{"a":22327,"t":"code","b":[24],"m":"clc"},{"a":22328,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":22330,"t":"code","b":[153,96,204],"m":"sta","oa":52320,"o":"$CC60,y"},{"a":22333,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":22335,"t":"code","b":[153,96,216],"m":"sta","o":"$D860,y"},{"a":22338,"t":"code","b":[200],"m":"iny"},{"a":22339,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":22341,"t":"code","b":[208,237],"m":"bne","oa":22324,"o":"b_5734"},{"a":22343,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22345,"l":"b_5749","t":"code","b":[185,206,87],"m":"lda","oa":22478,"o":"press_fire_text,y","x":[22371]},{"a":22348,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":22350,"t":"code","b":[208,5],"m":"bne","oa":22357,"o":"b_5755"},{"a":22352,"t":"code","b":[169,80],"m":"lda","o":"#$50"},{"a":22354,"t":"code","b":[76,88,87],"m":"jmp","oa":22360,"o":"j_5758"},{"a":22357,"l":"b_5755","t":"code","b":[24],"m":"clc","x":[22350]},{"a":22358,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":22360,"l":"j_5758","t":"code","b":[153,81,207],"m":"sta","oa":53073,"o":"$CF51,y","x":[22354]},{"a":22363,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":22365,"t":"code","b":[153,81,219],"m":"sta","o":"$DB51,y"},{"a":22368,"t":"code","b":[200],"m":"iny"},{"a":22369,"t":"code","b":[192,23],"m":"cpy","o":"#$17"},{"a":22371,"t":"code","b":[208,228],"m":"bne","oa":22345,"o":"b_5749"},{"a":22373,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":22376,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":22378,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":22381,"l":"b_576D","t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a","x":[22386]},{"a":22384,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":22386,"t":"code","b":[240,249],"m":"beq","oa":22381,"o":"b_576D"},{"a":22388,"l":"b_5774","t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a","x":[22393]},{"a":22391,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":22393,"t":"code","b":[208,249],"m":"bne","oa":22388,"o":"b_5774"},{"a":22395,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":22398,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":22400,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":22403,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22405,"t":"code","b":[32,3,32],"m":"jsr","oa":8195,"o":"fill_screen_c800"},{"a":22408,"t":"code","b":[169,116],"m":"lda","o":"#$74"},{"a":22410,"t":"code","b":[141,248,207],"m":"sta","oa":53240,"o":"sprite_pointers_b"},{"a":22413,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":22415,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":22418,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":22421,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":22424,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":22427,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":22430,"t":"code","b":[141,11,208],"m":"sta","o":"vic_sprite5_y"},{"a":22433,"t":"code","b":[141,13,208],"m":"sta","o":"vic_sprite6_y"},{"a":22436,"t":"code","b":[141,15,208],"m":"sta","o":"vic_sprite7_y"},{"a":22439,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22442,"t":"code","b":[32,196,77],"m":"jsr","oa":19908,"o":"swap_font_b"},{"a":22445,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22447,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22449,"l":"b_57B1","t":"code","b":[153,131,102],"m":"sta","oa":26243,"o":"subject_shapes,y","x":[22467]},{"a":22452,"t":"code","b":[153,203,102],"m":"sta","oa":26315,"o":"$66CB,y"},{"a":22455,"t":"code","b":[153,19,103],"m":"sta","oa":26387,"o":"$6713,y"},{"a":22458,"t":"code","b":[153,91,103],"m":"sta","oa":26459,"o":"$675B,y"},{"a":22461,"t":"code","b":[153,163,103],"m":"sta","oa":26531,"o":"$67A3,y"},{"a":22464,"t":"code","b":[200],"m":"iny"},{"a":22465,"t":"code","b":[192,72],"m":"cpy","o":"#$48"},{"a":22467,"t":"code","b":[208,236],"m":"bne","oa":22449,"o":"b_57B1"},{"a":22469,"t":"code","b":[96],"m":"rts"},{"a":22470,"l":"photo_text","c":"Screen codes of the title of the photo screen: \"SUBJECT\" (letters are codes 1 to 26) and the closing code $1C. subject_screen ($5706) writes these 8 bytes with $66 added to each at $CC60.","t":"byte","b":[19,21,2,10,5,3,20,28],"x":[22324]},{"a":22478,"l":"press_fire_text","c":"Screen codes of \"PRESS FIRE TO CONTINUE\" and the closing code $1B (23 bytes); $20 is a space. subject_screen ($5706) writes them at $CF51, giving a space the code $50 and adding $66 to every other code.","t":"byte","b":[16,18,5,19,19,32,6,9],"x":[22345]},{"a":22486,"t":"byte","b":[18,5,32,20,15,32,3,15]},{"a":22494,"t":"byte","b":[14,20,9,14,21,5,27]},{"a":22501,"l":"type_lab_text","c":"Types the text at $586F on the screen from $CCCE (a space code gives 0, any other code gets $66 added), with the method of type_briefing ($0F44): delays of $3C and $14 first, then one character every $32 delay units and a step of $50 (two rows) for each line. Fire (bit 4 of $DC00) stops the typing once $1E characters have been typed ($0F42 counts down); at the end of the text it waits for fire. It then sets $0A5F to 1 and waits $FA. It uses the index $0F43. Called by the end-of-level code at $59F2.","t":"code","b":[169,60],"m":"lda","o":"#$3C","x":[23026]},{"a":22503,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22506,"t":"code","b":[169,206],"m":"lda","o":"#$CE"},{"a":22508,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":22510,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":22512,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":22514,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22516,"t":"code","b":[141,67,15],"m":"sta","oa":3907,"o":"text_index"},{"a":22519,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":22521,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22524,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22526,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":22528,"t":"code","b":[141,66,15],"m":"sta","oa":3906,"o":"skip_count"},{"a":22531,"l":"j_5803","t":"code","b":[174,66,15],"m":"ldx","oa":3906,"o":"skip_count","x":[22589,22618]},{"a":22534,"t":"code","b":[240,7],"m":"beq","oa":22543,"o":"b_580F"},{"a":22536,"t":"code","b":[202],"m":"dex"},{"a":22537,"t":"code","b":[142,66,15],"m":"stx","oa":3906,"o":"skip_count"},{"a":22540,"t":"code","b":[76,22,88],"m":"jmp","oa":22550,"o":"j_5816"},{"a":22543,"l":"b_580F","t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a","x":[22534]},{"a":22546,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":22548,"t":"code","b":[240,78],"m":"beq","oa":22628,"o":"b_5864"},{"a":22550,"l":"j_5816","t":"code","b":[140,31,88],"m":"sty","oa":22559,"o":"lab_saved_y","x":[22540]},{"a":22553,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":22555,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22558,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22559,"t":"note","l":"lab_saved_y","c":"Holds the Y register of type_lab_text ($57E5), stored at $5816: the immediate operand of the LDY at $581E, which restores it after the delay.","note":"inside the item at $581E","x":[22550]},{"a":22560,"l":"type_lab_text_part_2","c":"The rest of type_lab_text ($57E5), after the delay: takes the next code of the text at $586F by the index $0F43. $FF ends a line: the index moves on, a second $FF ends the text, otherwise the pointer $E1/$E2 moves down $50 bytes and Y goes back to 0. A space gives 0 and any other code gets $66 added before it is stored through ($E1),y, and the typing goes on at $5803. At the end it waits for fire ($DC00 bit 4), sets $0A5F to 1, waits $FA and returns.","t":"code","b":[174,67,15],"m":"ldx","oa":3907,"o":"text_index"},{"a":22563,"t":"code","b":[189,111,88],"m":"lda","oa":22639,"o":"lab_text,x"},{"a":22566,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":22568,"t":"code","b":[240,22],"m":"beq","oa":22592,"o":"b_5840"},{"a":22570,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":22572,"t":"code","b":[208,5],"m":"bne","oa":22579,"o":"b_5833"},{"a":22574,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22576,"t":"code","b":[76,54,88],"m":"jmp","oa":22582,"o":"j_5836"},{"a":22579,"l":"b_5833","t":"code","b":[24],"m":"clc","x":[22572]},{"a":22580,"t":"code","b":[105,102],"m":"adc","o":"#$66"},{"a":22582,"l":"j_5836","t":"code","b":[145,225],"m":"sta","oa":225,"o":"($E1),y","x":[22576]},{"a":22584,"t":"code","b":[200],"m":"iny"},{"a":22585,"t":"code","b":[232],"m":"inx"},{"a":22586,"t":"code","b":[142,67,15],"m":"stx","oa":3907,"o":"text_index"},{"a":22589,"t":"code","b":[76,3,88],"m":"jmp","oa":22531,"o":"j_5803"},{"a":22592,"l":"b_5840","t":"code","b":[232],"m":"inx","x":[22568]},{"a":22593,"t":"code","b":[142,67,15],"m":"stx","oa":3907,"o":"text_index"},{"a":22596,"t":"code","b":[189,111,88],"m":"lda","oa":22639,"o":"lab_text,x"},{"a":22599,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":22601,"t":"code","b":[240,18],"m":"beq","oa":22621,"o":"b_585D"},{"a":22603,"t":"code","b":[24],"m":"clc"},{"a":22604,"t":"code","b":[165,225],"m":"lda","oa":225,"o":"$E1"},{"a":22606,"t":"code","b":[105,80],"m":"adc","o":"#$50"},{"a":22608,"t":"code","b":[133,225],"m":"sta","oa":225,"o":"$E1"},{"a":22610,"t":"code","b":[165,226],"m":"lda","oa":226,"o":"$E2"},{"a":22612,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":22614,"t":"code","b":[133,226],"m":"sta","oa":226,"o":"$E2"},{"a":22616,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22618,"t":"code","b":[76,3,88],"m":"jmp","oa":22531,"o":"j_5803"},{"a":22621,"l":"b_585D","t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a","x":[22601,22626]},{"a":22624,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":22626,"t":"code","b":[208,249],"m":"bne","oa":22621,"o":"b_585D"},{"a":22628,"l":"b_5864","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[22548]},{"a":22630,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":22633,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":22635,"t":"code","b":[32,39,32],"m":"jsr","oa":8231,"o":"delay"},{"a":22638,"t":"code","b":[96],"m":"rts"},{"a":22639,"l":"lab_text","c":"The text that type_lab_text ($57E5) types, in screen codes (letters are 1 to 26, $20 a space, $1B a closing mark). $FF ends a line and a second $FF ends the text. The lines are DARKMAN MUST PREPARE A, DISGUISE TO FOOL THE, EVIL GANGSTERS, a line of spaces and END OF LINE, each starting with a space.","t":"byte","b":[32,4,1,18,11,13,1,14],"x":[22563,22596]},{"a":22647,"t":"byte","b":[32,13,21,19,20,32,16,18]},{"a":22655,"t":"byte","b":[5,16,1,18,5,32,1,255]},{"a":22663,"t":"byte","b":[32,4,9,19,7,21,9,19]},{"a":22671,"t":"byte","b":[5,32,32,20,15,32,32,6]},{"a":22679,"t":"byte","b":[15,15,12,32,20,8,5,255]},{"a":22687,"t":"byte","b":[32,5,22,9,12,32,7,1]},{"a":22695,"t":"byte","b":[14,7,19,20,5,18,19,27]},{"a":22703,"t":"byte","b":[255,32,32,32,32,32,32,255]},{"a":22711,"t":"byte","b":[32,5,14,4,32,15,6,32]},{"a":22719,"t":"byte","b":[12,9,14,5,27,27,27,255]},{"a":22727,"t":"byte","b":[255]},{"a":22728,"l":"mask_setup","c":"Setup of the mask game, reached from $4A8F when play ends with $1A1E set. Wipes the screen ($18C5), sets $0A5F to 1, interrupts off, $01 to $35, extended colour and multicolour bits in $D011/$D016, $203B to $FF, the cursor X $5075 to $B1 and Y $5074 to $71, the pointer $0E/$0F to $CD53, the timer digits $5C26 and $5C27 to 9 and $5C28 to 3, fills $FE00-$FEFF with $AA, clears the tables $5095 and $50A2 (13 bytes each) and many flags, stops the sound ($B828), sets bit 3 of every byte of the colour table $5CC3 and 9 in its first $2D bytes, clears 72 bytes at each of $6683, $66CB, $6713, $675B and $67A3 and swaps them in with swap_chars_6683 ($6B73), clears $002A-$0100 and the SID registers, then shows the texts type_lab_text ($57E5) and subject_screen ($5706), draws screen A ($5630), the bottom rows ($203C), picture B ($47CE) and the energy bar ($4449), sets sprites 0 and 1, the NMI vector to $2030, the IRQ vector to $5A7A on line $CD and enables the raster interrupt.","t":"code","b":[32,197,24],"m":"jsr","oa":6341,"o":"wipe_screen","x":[19087]},{"a":22731,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":22733,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":22736,"t":"code","b":[120],"m":"sei"},{"a":22737,"t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":22739,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"processor_port"},{"a":22741,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":22744,"t":"code","b":[41,216],"m":"and","o":"#$D8"},{"a":22746,"t":"code","b":[9,83],"m":"ora","o":"#$53"},{"a":22748,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":22751,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":22754,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":22756,"t":"code","b":[9,24],"m":"ora","o":"#$18"},{"a":22758,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":22761,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":22763,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":22766,"t":"code","b":[169,177],"m":"lda","o":"#$B1"},{"a":22768,"t":"code","b":[141,117,80],"m":"sta","oa":20597,"o":"cursor_x"},{"a":22771,"t":"code","b":[169,113],"m":"lda","o":"#$71"},{"a":22773,"t":"code","b":[141,116,80],"m":"sta","oa":20596,"o":"cursor_y"},{"a":22776,"t":"code","b":[169,83],"m":"lda","o":"#$53"},{"a":22778,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"$0E"},{"a":22780,"t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":22782,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"$0F"},{"a":22784,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":22786,"t":"code","b":[141,38,92],"m":"sta","oa":23590,"o":"timer_digits"},{"a":22789,"t":"code","b":[141,39,92],"m":"sta","oa":23591,"o":"$5C27"},{"a":22792,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":22794,"t":"code","b":[141,40,92],"m":"sta","oa":23592,"o":"$5C28"},{"a":22797,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22799,"t":"code","b":[141,147,80],"m":"sta","oa":20627,"o":"scan_timer"},{"a":22802,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22804,"t":"code","b":[169,170],"m":"lda","o":"#$AA"},{"a":22806,"l":"b_5916","t":"code","b":[153,0,254],"m":"sta","oa":65024,"o":"KERNAL_SETLFSj,y","x":[22810]},{"a":22809,"t":"code","b":[200],"m":"iny"},{"a":22810,"t":"code","b":[208,250],"m":"bne","oa":22806,"o":"b_5916"},{"a":22812,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22814,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22816,"l":"b_5920","t":"code","b":[153,149,80],"m":"sta","oa":20629,"o":"match_flags,y","x":[22825]},{"a":22819,"t":"code","b":[153,162,80],"m":"sta","oa":20642,"o":"slice_types,y"},{"a":22822,"t":"code","b":[200],"m":"iny"},{"a":22823,"t":"code","b":[192,13],"m":"cpy","o":"#$0D"},{"a":22825,"t":"code","b":[208,245],"m":"bne","oa":22816,"o":"b_5920"},{"a":22827,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22829,"t":"code","b":[141,30,26],"m":"sta","oa":6686,"o":"end_of_play"},{"a":22832,"t":"code","b":[141,176,80],"m":"sta","oa":20656,"o":"scan_reversed"},{"a":22835,"t":"code","b":[141,175,80],"m":"sta","oa":20655,"o":"scan_started"},{"a":22838,"t":"code","b":[141,196,78],"m":"sta","oa":20164,"o":"capture_mark"},{"a":22841,"t":"code","b":[141,206,81],"m":"sta","oa":20942,"o":"blink_count"},{"a":22844,"t":"code","b":[141,169,74],"m":"sta","oa":19113,"o":"print_index"},{"a":22847,"t":"code","b":[141,192,91],"m":"sta","oa":23488,"o":"report_flag"},{"a":22850,"t":"code","b":[141,148,80],"m":"sta","oa":20628,"o":"scan_done"},{"a":22853,"t":"code","b":[141,146,80],"m":"sta","oa":20626,"o":"scan_index"},{"a":22856,"t":"code","b":[141,195,78],"m":"sta","oa":20163,"o":"slice_number"},{"a":22859,"t":"code","b":[141,103,92],"m":"sta","oa":23655,"o":"mask_over"},{"a":22862,"t":"code","b":[141,33,208],"m":"sta","o":"vic_background0"},{"a":22865,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22867,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":22870,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":22872,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":22875,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":22877,"t":"code","b":[141,34,208],"m":"sta","o":"vic_background1"},{"a":22880,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22882,"t":"code","b":[141,27,208],"m":"sta","o":"vic_sprite_priority"},{"a":22885,"t":"code","b":[141,23,208],"m":"sta","o":"vic_sprite_expand_y"},{"a":22888,"t":"code","b":[141,29,208],"m":"sta","o":"vic_sprite_expand_x"},{"a":22891,"t":"code","b":[141,56,32],"m":"sta","oa":8248,"o":"nmi_flag"},{"a":22894,"t":"code","b":[141,147,82],"m":"sta","oa":21139,"o":"mask_obj_state"},{"a":22897,"t":"code","b":[141,148,82],"m":"sta","oa":21140,"o":"$5294"},{"a":22900,"t":"code","b":[141,149,82],"m":"sta","oa":21141,"o":"$5295"},{"a":22903,"t":"code","b":[141,150,82],"m":"sta","oa":21142,"o":"$5296"},{"a":22906,"t":"code","b":[141,151,82],"m":"sta","oa":21143,"o":"$5297"},{"a":22909,"t":"code","b":[32,40,184],"m":"jsr","oa":47144,"o":"silence_all"},{"a":22912,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22914,"l":"b_5982","t":"code","b":[185,195,92],"m":"lda","oa":23747,"o":"char_colours,y","x":[22923]},{"a":22917,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":22919,"t":"code","b":[153,195,92],"m":"sta","oa":23747,"o":"char_colours,y"},{"a":22922,"t":"code","b":[200],"m":"iny"},{"a":22923,"t":"code","b":[208,245],"m":"bne","oa":22914,"o":"b_5982"},{"a":22925,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22927,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":22929,"l":"b_5991","t":"code","b":[153,195,92],"m":"sta","oa":23747,"o":"char_colours,y","x":[22935]},{"a":22932,"t":"code","b":[200],"m":"iny"},{"a":22933,"t":"code","b":[192,45],"m":"cpy","o":"#$2D"},{"a":22935,"t":"code","b":[208,248],"m":"bne","oa":22929,"o":"b_5991"},{"a":22937,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22939,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22941,"l":"b_599D","t":"code","b":[153,131,102],"m":"sta","oa":26243,"o":"subject_shapes,y","x":[22959]},{"a":22944,"t":"code","b":[153,203,102],"m":"sta","oa":26315,"o":"$66CB,y"},{"a":22947,"t":"code","b":[153,19,103],"m":"sta","oa":26387,"o":"$6713,y"},{"a":22950,"t":"code","b":[153,91,103],"m":"sta","oa":26459,"o":"$675B,y"},{"a":22953,"t":"code","b":[153,163,103],"m":"sta","oa":26531,"o":"$67A3,y"},{"a":22956,"t":"code","b":[200],"m":"iny"},{"a":22957,"t":"code","b":[192,72],"m":"cpy","o":"#$48"},{"a":22959,"t":"code","b":[208,236],"m":"bne","oa":22941,"o":"b_599D"},{"a":22961,"t":"code","b":[32,115,107],"m":"jsr","oa":27507,"o":"swap_chars_6683"},{"a":22964,"t":"code","b":[160,41],"m":"ldy","o":"#$29"},{"a":22966,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":22968,"l":"b_59B8","t":"code","b":[153,1,0],"m":"sta","oa":1,"o":"processor_port,y","x":[22972]},{"a":22971,"t":"code","b":[200],"m":"iny"},{"a":22972,"t":"code","b":[208,250],"m":"bne","oa":22968,"o":"b_59B8"},{"a":22974,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":22976,"t":"code","b":[152],"m":"tya"},{"a":22977,"l":"b_59C1","t":"code","b":[153,0,212],"m":"sta","o":"sid_v1_freq_lo,y","x":[22983]},{"a":22980,"t":"code","b":[200],"m":"iny"},{"a":22981,"t":"code","b":[192,26],"m":"cpy","o":"#$1A"},{"a":22983,"t":"code","b":[208,248],"m":"bne","oa":22977,"o":"b_59C1"},{"a":22985,"t":"code","b":[169,143],"m":"lda","o":"#$8F"},{"a":22987,"t":"code","b":[141,24,212],"m":"sta","o":"sid_filter_mode_volume"},{"a":22990,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":22993,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":22995,"t":"code","b":[9,16],"m":"ora","o":"#$10"},{"a":22997,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":23000,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":23002,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":23005,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":23007,"t":"code","b":[32,21,32],"m":"jsr","oa":8213,"o":"fill_colour"},{"a":23010,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":23012,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":23015,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":23018,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23021,"t":"code","b":[41,190],"m":"and","o":"#$BE"},{"a":23023,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23026,"t":"code","b":[32,229,87],"m":"jsr","oa":22501,"o":"type_lab_text"},{"a":23029,"t":"code","b":[32,6,87],"m":"jsr","oa":22278,"o":"subject_screen"},{"a":23032,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23035,"t":"code","b":[9,65],"m":"ora","o":"#$41"},{"a":23037,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23040,"t":"code","b":[32,139,77],"m":"jsr","oa":19851,"o":"swap_font_a"},{"a":23043,"t":"code","b":[169,80],"m":"lda","o":"#$50"},{"a":23045,"t":"code","b":[32,229,31],"m":"jsr","oa":8165,"o":"fill_screens"},{"a":23048,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":23050,"t":"code","b":[32,3,32],"m":"jsr","oa":8195,"o":"fill_screen_c800"},{"a":23053,"t":"code","b":[32,48,86],"m":"jsr","oa":22064,"o":"screen_a_draw"},{"a":23056,"t":"code","b":[32,60,32],"m":"jsr","oa":8252,"o":"draw_bottom_rows"},{"a":23059,"t":"code","b":[32,206,71],"m":"jsr","oa":18382,"o":"image_b_draw"},{"a":23062,"t":"code","b":[169,33],"m":"lda","o":"#$21"},{"a":23064,"t":"code","b":[141,227,67],"m":"sta","oa":17379,"o":"energy"},{"a":23067,"t":"code","b":[32,73,68],"m":"jsr","oa":17481,"o":"draw_bar"},{"a":23070,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":23072,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":23075,"t":"code","b":[141,95,10],"m":"sta","oa":2655,"o":"ecm_flag"},{"a":23078,"t":"code","b":[169,172],"m":"lda","o":"#$AC"},{"a":23080,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":23083,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":23086,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":23088,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":23091,"t":"code","b":[169,117],"m":"lda","o":"#$75"},{"a":23093,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":23096,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":23098,"t":"code","b":[141,39,208],"m":"sta","o":"vic_sprite0_colour"},{"a":23101,"t":"code","b":[141,40,208],"m":"sta","o":"vic_sprite1_colour"},{"a":23104,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":23106,"t":"code","b":[141,250,255],"m":"sta","oa":65530,"o":"$FFFA"},{"a":23109,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":23111,"t":"code","b":[141,251,255],"m":"sta","oa":65531,"o":"$FFFB"},{"a":23114,"t":"code","b":[169,122],"m":"lda","o":"#$7A"},{"a":23116,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":23119,"t":"code","b":[169,90],"m":"lda","o":"#$5A"},{"a":23121,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":23124,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":23126,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":23129,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":23131,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":23134,"t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":23136,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":23139,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23142,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":23144,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23147,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":23149,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":23152,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":23154,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":23157,"t":"code","b":[173,13,220],"m":"lda","o":"cia1_interrupt"},{"a":23160,"t":"code","b":[88],"m":"cli"},{"a":23161,"t":"code","b":[96],"m":"rts"},{"a":23162,"l":"irq_mask_1","c":"Raster interrupt 1 of 3 of the mask game chain (first run on line $CD from mask_setup ($58C8), afterwards on line $C7 set by irq_mask_3). Keeps A, X and Y in the operands at $5AD8, $5ADA and $5ADC, sets $D018 and $D011 (ORed with $4F), clears the border and the sprite multicolours, acknowledges $D019, copies the joystick port $DC00 to $203B, sets line $CD and the low nibble of $D018 to 8, toggles $1DBE and counts $1DBD down on every second frame, and sets the vector to irq_mask_2 ($5ADE).","t":"code","b":[141,216,90],"m":"sta","oa":23256,"o":"$5AD8"},{"a":23165,"t":"code","b":[142,218,90],"m":"stx","oa":23258,"o":"$5ADA"},{"a":23168,"t":"code","b":[140,220,90],"m":"sty","oa":23260,"o":"$5ADC"},{"a":23171,"t":"code","b":[173,24,208],"m":"lda","o":"vic_memory"},{"a":23174,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":23176,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":23178,"t":"code","b":[168],"m":"tay"},{"a":23179,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23182,"t":"code","b":[9,79],"m":"ora","o":"#$4F"},{"a":23184,"t":"code","b":[140,24,208],"m":"sty","o":"vic_memory"},{"a":23187,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23190,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":23192,"t":"code","b":[142,32,208],"m":"stx","o":"vic_border"},{"a":23195,"t":"code","b":[142,37,208],"m":"stx","o":"vic_sprite_mc0"},{"a":23198,"t":"code","b":[142,38,208],"m":"stx","o":"vic_sprite_mc1"},{"a":23201,"t":"code","b":[232],"m":"inx"},{"a":23202,"t":"code","b":[142,25,208],"m":"stx","o":"vic_irq_status"},{"a":23205,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":23208,"t":"code","b":[141,59,32],"m":"sta","oa":8251,"o":"joystick"},{"a":23211,"t":"code","b":[169,205],"m":"lda","o":"#$CD"},{"a":23213,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":23216,"t":"code","b":[173,24,208],"m":"lda","o":"vic_memory"},{"a":23219,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":23221,"t":"code","b":[9,8],"m":"ora","o":"#$08"},{"a":23223,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":23226,"t":"code","b":[173,190,29],"m":"lda","oa":7614,"o":"panel_toggle"},{"a":23229,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":23231,"t":"code","b":[141,190,29],"m":"sta","oa":7614,"o":"panel_toggle"},{"a":23234,"t":"code","b":[240,9],"m":"beq","oa":23245,"o":"$5ACD"},{"a":23236,"t":"code","b":[174,189,29],"m":"ldx","oa":7613,"o":"panel_countdown"},{"a":23239,"t":"code","b":[240,4],"m":"beq","oa":23245,"o":"$5ACD"},{"a":23241,"t":"code","b":[202],"m":"dex"},{"a":23242,"t":"code","b":[142,189,29],"m":"stx","oa":7613,"o":"panel_countdown"},{"a":23245,"t":"code","b":[169,222],"m":"lda","o":"#$DE","x":[23234,23239]},{"a":23247,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":23250,"t":"code","b":[169,90],"m":"lda","o":"#$5A"},{"a":23252,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":23255,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":23257,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":23259,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":23261,"t":"code","b":[64],"m":"rti"},{"a":23262,"l":"irq_mask_2","c":"Raster interrupt 2 of 3 of the mask game chain, on line $CD (set by irq_mask_1). Keeps A, X and Y in the operands at $5B3F, $5B41 and $5B43, writes $D011 ORed with $2F and $D016 ORed with $17 after a run of NOPs, acknowledges $D019, sets line $FD and the vector to irq_mask_3 ($5B45), clears bit 6 of $D011 and runs the sound driver $B176. While $5C67 is zero it runs cursor_move ($51E0) and mask_timer_tick ($5C68); otherwise scan_cursor ($50B1).","t":"code","b":[141,63,91],"m":"sta","oa":23359,"o":"$5B3F"},{"a":23265,"t":"code","b":[142,65,91],"m":"stx","oa":23361,"o":"$5B41"},{"a":23268,"t":"code","b":[140,67,91],"m":"sty","oa":23363,"o":"$5B43"},{"a":23271,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23274,"t":"code","b":[9,47],"m":"ora","o":"#$2F"},{"a":23276,"t":"code","b":[168],"m":"tay"},{"a":23277,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":23280,"t":"code","b":[9,23],"m":"ora","o":"#$17"},{"a":23282,"t":"code","b":[170],"m":"tax"},{"a":23283,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":23286,"t":"code","b":[234],"m":"nop"},{"a":23287,"t":"code","b":[234],"m":"nop"},{"a":23288,"t":"code","b":[234],"m":"nop"},{"a":23289,"t":"code","b":[234],"m":"nop"},{"a":23290,"t":"code","b":[234],"m":"nop"},{"a":23291,"t":"code","b":[234],"m":"nop"},{"a":23292,"t":"code","b":[234],"m":"nop"},{"a":23293,"t":"code","b":[234],"m":"nop"},{"a":23294,"t":"code","b":[234],"m":"nop"},{"a":23295,"t":"code","b":[234],"m":"nop"},{"a":23296,"t":"code","b":[234],"m":"nop"},{"a":23297,"t":"code","b":[234],"m":"nop"},{"a":23298,"t":"code","b":[234],"m":"nop"},{"a":23299,"t":"code","b":[234],"m":"nop"},{"a":23300,"t":"code","b":[234],"m":"nop"},{"a":23301,"t":"code","b":[234],"m":"nop"},{"a":23302,"t":"code","b":[234],"m":"nop"},{"a":23303,"t":"code","b":[234],"m":"nop"},{"a":23304,"t":"code","b":[140,17,208],"m":"sty","o":"vic_control1"},{"a":23307,"t":"code","b":[142,22,208],"m":"stx","o":"vic_control2"},{"a":23310,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":23312,"t":"code","b":[142,25,208],"m":"stx","o":"vic_irq_status"},{"a":23315,"t":"code","b":[169,253],"m":"lda","o":"#$FD"},{"a":23317,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":23320,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":23322,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":23325,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":23327,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":23330,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23333,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":23335,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23338,"t":"code","b":[32,118,177],"m":"jsr","oa":45430,"o":"music_play"},{"a":23341,"t":"code","b":[173,103,92],"m":"lda","oa":23655,"o":"mask_over"},{"a":23344,"t":"code","b":[208,9],"m":"bne","oa":23355,"o":"$5B3B"},{"a":23346,"t":"code","b":[32,224,81],"m":"jsr","oa":20960,"o":"cursor_move"},{"a":23349,"t":"code","b":[32,104,92],"m":"jsr","oa":23656,"o":"mask_timer_tick"},{"a":23352,"t":"code","b":[76,62,91],"m":"jmp","oa":23358,"o":"$5B3E"},{"a":23355,"t":"code","b":[32,177,80],"m":"jsr","oa":20657,"o":"scan_cursor","x":[23344]},{"a":23358,"t":"code","b":[169,0],"m":"lda","o":"#$00","x":[23352]},{"a":23360,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":23362,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":23364,"t":"code","b":[64],"m":"rti"},{"a":23365,"l":"irq_mask_3","c":"Raster interrupt 3 of 3 of the mask game chain, on line $FD (set by irq_mask_2). Keeps A, X and Y in the operands at $5BBA, $5BBC and $5BBE, acknowledges $D019, masks $D016 with $F0 and $D011 with $90, sets $D018 to $30 and runs set_ecm ($1656). It sets $D022 and $D023 to $0C and $0B, or to 1 and 1 while the flash count $4EC2 is not zero (and counts it down), sets $D025 to $0B and $D026 to 8, turns all sprites on, clears bit 6 of $D011 and runs mask_sprites ($5BC1). While $5C67 is zero it runs objects_spawn ($533E), objects_run ($53B0) and fire_capture ($4EC7). It ends by setting line $C7 and the vector irq_mask_1 ($5A7A).","t":"code","b":[141,186,91],"m":"sta","oa":23482,"o":"$5BBA"},{"a":23368,"t":"code","b":[142,188,91],"m":"stx","oa":23484,"o":"$5BBC"},{"a":23371,"t":"code","b":[140,190,91],"m":"sty","oa":23486,"o":"$5BBE"},{"a":23374,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":23376,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":23379,"t":"code","b":[173,22,208],"m":"lda","o":"vic_control2"},{"a":23382,"t":"code","b":[41,240],"m":"and","o":"#$F0"},{"a":23384,"t":"code","b":[141,22,208],"m":"sta","o":"vic_control2"},{"a":23387,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23390,"t":"code","b":[41,144],"m":"and","o":"#$90"},{"a":23392,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23395,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":23397,"t":"code","b":[141,24,208],"m":"sta","o":"vic_memory"},{"a":23400,"t":"code","b":[32,86,22],"m":"jsr","oa":5718,"o":"set_ecm"},{"a":23403,"t":"code","b":[162,12],"m":"ldx","o":"#$0C"},{"a":23405,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":23407,"t":"code","b":[172,194,78],"m":"ldy","oa":20162,"o":"flash_count"},{"a":23410,"t":"code","b":[240,8],"m":"beq","oa":23420,"o":"$5B7C"},{"a":23412,"t":"code","b":[136],"m":"dey"},{"a":23413,"t":"code","b":[140,194,78],"m":"sty","oa":20162,"o":"flash_count"},{"a":23416,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":23418,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":23420,"t":"code","b":[142,34,208],"m":"stx","o":"vic_background1","x":[23410]},{"a":23423,"t":"code","b":[141,35,208],"m":"sta","o":"vic_background2"},{"a":23426,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":23428,"t":"code","b":[141,37,208],"m":"sta","o":"vic_sprite_mc0"},{"a":23431,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":23433,"t":"code","b":[141,38,208],"m":"sta","o":"vic_sprite_mc1"},{"a":23436,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":23438,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":23441,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":23444,"t":"code","b":[41,191],"m":"and","o":"#$BF"},{"a":23446,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":23449,"t":"code","b":[32,193,91],"m":"jsr","oa":23489,"o":"mask_sprites"},{"a":23452,"t":"code","b":[173,103,92],"m":"lda","oa":23655,"o":"mask_over"},{"a":23455,"t":"code","b":[208,9],"m":"bne","oa":23466,"o":"$5BAA"},{"a":23457,"t":"code","b":[32,62,83],"m":"jsr","oa":21310,"o":"objects_spawn"},{"a":23460,"t":"code","b":[32,176,83],"m":"jsr","oa":21424,"o":"objects_run"},{"a":23463,"t":"code","b":[32,199,78],"m":"jsr","oa":20167,"o":"fire_capture"},{"a":23466,"t":"code","b":[169,199],"m":"lda","o":"#$C7","x":[23455]},{"a":23468,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":23471,"t":"code","b":[169,122],"m":"lda","o":"#$7A"},{"a":23473,"t":"code","b":[141,254,255],"m":"sta","oa":65534,"o":"$FFFE"},{"a":23476,"t":"code","b":[169,90],"m":"lda","o":"#$5A"},{"a":23478,"t":"code","b":[141,255,255],"m":"sta","oa":65535,"o":"$FFFF"},{"a":23481,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":23483,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":23485,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":23487,"t":"code","b":[64],"m":"rti"},{"a":23488,"l":"report_flag","c":"Set to 1 by mask_report ($4C56) when the mask was made and cleared by mask_setup ($58C8). mask_sprites ($5BC1) places sprites 1 to 4 when it is not zero.","t":"byte","b":[0],"x":[19571,22847,23503]},{"a":23489,"l":"mask_sprites","c":"Sets up sprites 1 to 7 for the result. Clears the sprite colours $D028-$D02B. If $5BC0 is 0 it sets the Y of sprites 1 to 7 ($D003 ... $D00F) to 0 and returns. Otherwise it places sprites 1 and 2 at Y $50 and sprites 3 and 4 at Y $7A, sprites 1 and 3 at X $8C and sprites 2 and 4 at X $BC, makes sprites 1 to 4 double width and height ($D017 and $D01D set to $1E) and sets their pointers $CFF9-$CFFC to $F8-$FB, which show the buffer $FE00-$FEFF. Called by irq_mask_3 ($5B45) at $5B99.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[23449]},{"a":23491,"t":"code","b":[141,40,208],"m":"sta","o":"vic_sprite1_colour"},{"a":23494,"t":"code","b":[141,41,208],"m":"sta","o":"vic_sprite2_colour"},{"a":23497,"t":"code","b":[141,42,208],"m":"sta","o":"vic_sprite3_colour"},{"a":23500,"t":"code","b":[141,43,208],"m":"sta","o":"vic_sprite4_colour"},{"a":23503,"t":"code","b":[173,192,91],"m":"lda","oa":23488,"o":"report_flag"},{"a":23506,"t":"code","b":[208,24],"m":"bne","oa":23532,"o":"$5BEC"},{"a":23508,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":23510,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":23513,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":23516,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":23519,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":23522,"t":"code","b":[141,11,208],"m":"sta","o":"vic_sprite5_y"},{"a":23525,"t":"code","b":[141,13,208],"m":"sta","o":"vic_sprite6_y"},{"a":23528,"t":"code","b":[141,15,208],"m":"sta","o":"vic_sprite7_y"},{"a":23531,"t":"code","b":[96],"m":"rts"},{"a":23532,"t":"code","b":[169,80],"m":"lda","o":"#$50","x":[23506]},{"a":23534,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":23537,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":23540,"t":"code","b":[169,122],"m":"lda","o":"#$7A"},{"a":23542,"t":"code","b":[141,7,208],"m":"sta","o":"vic_sprite3_y"},{"a":23545,"t":"code","b":[141,9,208],"m":"sta","o":"vic_sprite4_y"},{"a":23548,"t":"code","b":[169,140],"m":"lda","o":"#$8C"},{"a":23550,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":23553,"t":"code","b":[141,6,208],"m":"sta","o":"vic_sprite3_x"},{"a":23556,"t":"code","b":[169,188],"m":"lda","o":"#$BC"},{"a":23558,"t":"code","b":[141,4,208],"m":"sta","o":"vic_sprite2_x"},{"a":23561,"t":"code","b":[141,8,208],"m":"sta","o":"vic_sprite4_x"},{"a":23564,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":23566,"t":"code","b":[141,23,208],"m":"sta","o":"vic_sprite_expand_y"},{"a":23569,"t":"code","b":[141,29,208],"m":"sta","o":"vic_sprite_expand_x"},{"a":23572,"t":"code","b":[162,248],"m":"ldx","o":"#$F8"},{"a":23574,"t":"code","b":[142,249,207],"m":"stx","oa":53241,"o":"$CFF9"},{"a":23577,"t":"code","b":[232],"m":"inx"},{"a":23578,"t":"code","b":[142,250,207],"m":"stx","oa":53242,"o":"$CFFA"},{"a":23581,"t":"code","b":[232],"m":"inx"},{"a":23582,"t":"code","b":[142,251,207],"m":"stx","oa":53243,"o":"$CFFB"},{"a":23585,"t":"code","b":[232],"m":"inx"},{"a":23586,"t":"code","b":[142,252,207],"m":"stx","oa":53244,"o":"$CFFC"},{"a":23589,"t":"code","b":[96],"m":"rts"},{"a":23590,"l":"timer_digits","c":"The three digits of the timer; timer_draw ($5C29) draws $5C28 at $F9D8, $5C27 at $F9E8 and $5C26 at $F9F0.","t":"byte","b":[0,0,0],"x":[22786,23633,23656,23695,23703,23709]},{"a":23593,"l":"timer_draw","c":"Draws the three timer digits $5C28, $5C27 and $5C26 at $F9D8, $F9E8 and $F9F0 with timer_draw_digit ($5C51, X=2, 1, 0). Called by the end-of-level code at $4A95.","t":"code","b":[169,216],"m":"lda","o":"#$D8","x":[19093]},{"a":23595,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":23597,"t":"code","b":[169,249],"m":"lda","o":"#$F9"},{"a":23599,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":23601,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":23603,"t":"code","b":[32,81,92],"m":"jsr","oa":23633,"o":"timer_draw_digit"},{"a":23606,"t":"code","b":[169,232],"m":"lda","o":"#$E8"},{"a":23608,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":23610,"t":"code","b":[169,249],"m":"lda","o":"#$F9"},{"a":23612,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":23614,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":23616,"t":"code","b":[32,81,92],"m":"jsr","oa":23633,"o":"timer_draw_digit"},{"a":23619,"t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":23621,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"$8B"},{"a":23623,"t":"code","b":[169,249],"m":"lda","o":"#$F9"},{"a":23625,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"$8C"},{"a":23627,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":23629,"t":"code","b":[32,81,92],"m":"jsr","oa":23633,"o":"timer_draw_digit"},{"a":23632,"t":"code","b":[96],"m":"rts"},{"a":23633,"l":"timer_draw_digit","c":"Takes the digit at $5C26 plus X, multiplies by 8 and copies the 8 shape bytes from the digit table $4536 to ($8B). Called three times by timer_draw.","t":"code","b":[189,38,92],"m":"lda","oa":23590,"o":"timer_digits,x","x":[23603,23616,23629]},{"a":23636,"t":"code","b":[10],"m":"asl","o":"a"},{"a":23637,"t":"code","b":[10],"m":"asl","o":"a"},{"a":23638,"t":"code","b":[10],"m":"asl","o":"a"},{"a":23639,"t":"code","b":[170],"m":"tax"},{"a":23640,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":23642,"l":"b_5C5A","t":"code","b":[189,54,69],"m":"lda","oa":17718,"o":"digit_glyphs,x","x":[23651]},{"a":23645,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"($8B),y"},{"a":23647,"t":"code","b":[232],"m":"inx"},{"a":23648,"t":"code","b":[200],"m":"iny"},{"a":23649,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":23651,"t":"code","b":[208,245],"m":"bne","oa":23642,"o":"b_5C5A"},{"a":23653,"t":"code","b":[96],"m":"rts"},{"a":23654,"l":"timer_toggle","c":"Flips between 0 and 1 on the calls of mask_timer_tick ($5C68): the timer goes down only on the calls that find it 0.","t":"byte","b":[0],"x":[23680,23686,23692]},{"a":23655,"l":"mask_over","c":"Non-zero when the mask game is over: mask_timer_tick ($5C68) sets it to 1 when the timer reaches 0 and fire_capture ($4EC7) when the twelfth capture is made. The interrupts then run scan_cursor instead of the cursor and the timer; cleared by mask_setup ($58C8).","t":"byte","b":[0],"x":[19096,20308,22859,23341,23452,23673]},{"a":23656,"l":"mask_timer_tick","c":"Counts the three-digit timer $5C28/$5C27/$5C26 down, called by irq_mask_2 ($5ADE) at $5B35 while $5C67 is zero. When all three digits are 0 it sets $5C67 to 1 and runs cursor_home ($5077). Otherwise it acts on every second call, using $5C66 (0 gives 1 and a decrement, 1 gives 0): $5C26 goes down by 1 and when it was 0 becomes 9 and takes 1 off $5C27, which borrows from $5C28 in the same way. So $5C26 is the least significant digit.","t":"code","b":[173,38,92],"m":"lda","oa":23590,"o":"timer_digits","x":[23349]},{"a":23659,"t":"code","b":[208,19],"m":"bne","oa":23680,"o":"$5C80"},{"a":23661,"t":"code","b":[173,39,92],"m":"lda","oa":23591,"o":"$5C27"},{"a":23664,"t":"code","b":[208,14],"m":"bne","oa":23680,"o":"$5C80"},{"a":23666,"t":"code","b":[173,40,92],"m":"lda","oa":23592,"o":"$5C28"},{"a":23669,"t":"code","b":[208,9],"m":"bne","oa":23680,"o":"$5C80"},{"a":23671,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":23673,"t":"code","b":[141,103,92],"m":"sta","oa":23655,"o":"mask_over"},{"a":23676,"t":"code","b":[32,119,80],"m":"jsr","oa":20599,"o":"cursor_home"},{"a":23679,"t":"code","b":[96],"m":"rts"},{"a":23680,"t":"code","b":[174,102,92],"m":"ldx","oa":23654,"o":"timer_toggle","x":[23659,23664,23669]},{"a":23683,"t":"code","b":[240,5],"m":"beq","oa":23690,"o":"$5C8A"},{"a":23685,"t":"code","b":[202],"m":"dex"},{"a":23686,"t":"code","b":[142,102,92],"m":"stx","oa":23654,"o":"timer_toggle"},{"a":23689,"t":"code","b":[96],"m":"rts"},{"a":23690,"t":"code","b":[169,1],"m":"lda","o":"#$01","x":[23683]},{"a":23692,"t":"code","b":[141,102,92],"m":"sta","oa":23654,"o":"timer_toggle"},{"a":23695,"t":"code","b":[173,38,92],"m":"lda","oa":23590,"o":"timer_digits"},{"a":23698,"t":"code","b":[240,7],"m":"beq","oa":23707,"o":"$5C9B"},{"a":23700,"t":"code","b":[56],"m":"sec"},{"a":23701,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":23703,"t":"code","b":[141,38,92],"m":"sta","oa":23590,"o":"timer_digits"},{"a":23706,"t":"code","b":[96],"m":"rts"},{"a":23707,"t":"code","b":[169,9],"m":"lda","o":"#$09","x":[23698]},{"a":23709,"t":"code","b":[141,38,92],"m":"sta","oa":23590,"o":"timer_digits"},{"a":23712,"t":"code","b":[173,39,92],"m":"lda","oa":23591,"o":"$5C27"},{"a":23715,"t":"code","b":[240,7],"m":"beq","oa":23724,"o":"$5CAC"},{"a":23717,"t":"code","b":[56],"m":"sec"},{"a":23718,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":23720,"t":"code","b":[141,39,92],"m":"sta","oa":23591,"o":"$5C27"},{"a":23723,"t":"code","b":[96],"m":"rts"},{"a":23724,"t":"code","b":[169,9],"m":"lda","o":"#$09","x":[23715]},{"a":23726,"t":"code","b":[141,39,92],"m":"sta","oa":23591,"o":"$5C27"},{"a":23729,"t":"code","b":[173,40,92],"m":"lda","oa":23592,"o":"$5C28"},{"a":23732,"t":"code","b":[240,7],"m":"beq","oa":23741,"o":"$5CBD"},{"a":23734,"t":"code","b":[56],"m":"sec"},{"a":23735,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":23737,"t":"code","b":[141,40,92],"m":"sta","oa":23592,"o":"$5C28"},{"a":23740,"t":"code","b":[96],"m":"rts"},{"a":23741,"t":"code","b":[169,9],"m":"lda","o":"#$09","x":[23732]},{"a":23743,"t":"code","b":[141,40,92],"m":"sta","oa":23592,"o":"$5C28"},{"a":23746,"t":"code","b":[96],"m":"rts"},{"a":23747,"l":"char_colours","c":"The colour of each screen code: screen_a_draw ($5630) and screen_b_draw ($569B) look up every byte of the screen matrix here to fill colour RAM.","t":"byte","b":[241,241,241,241,241,241,241,241],"x":[22143,22152,22161,22250,22259,22268,22914,22919,22929]},{"a":23755,"t":"byte","b":[1,242,242,242,2,242,2,242]},{"a":23763,"t":"byte","b":[242,242,243,243,243,51,243,3]},{"a":23771,"t":"byte","b":[3,3,179,4,36,244,4,244]},{"a":23779,"t":"byte","b":[164,244,4,244,5,5,5,245]},{"a":23787,"t":"byte","b":[245,5,245,5,5,31,31,31]},{"a":23795,"t":"byte","b":[255,31,255,31,255,255,255,31]},{"a":23803,"t":"byte","b":[31,255,31,31,31,31,31,31]},{"a":23811,"t":"byte","b":[31,31,255,31,255,3,31,255]},{"a":23819,"t":"byte","b":[255,31,31,255,31,31,31,31]},{"a":23827,"t":"byte","b":[31,1,1,1,1,1,241,1]},{"a":23835,"t":"byte","b":[1,1,241,1,241,1,241,1]},{"a":23843,"t":"byte","b":[241,241,1,1,1,5,2,242]},{"a":23851,"t":"byte","b":[2,2,242,2,0,0,0,0]},{"a":23859,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23867,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23875,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23883,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23891,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23899,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23907,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23915,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23923,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23931,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23939,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23947,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23955,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23963,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23971,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23979,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23987,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":23995,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24003,"t":"gap","n":12},{"a":24015,"l":"text_shapes_1","c":"Character shapes that swap_font_a ($4D8B) exchanges with $C338.","t":"byte","b":[252,204,204,204,252,204,204,0],"x":[19853,19860]},{"a":24023,"t":"byte","b":[252,204,204,240,204,204,252,0]},{"a":24031,"t":"byte","b":[252,204,192,192,192,204,252,0]},{"a":24039,"t":"byte","b":[252,204,204,204,204,204,252,0]},{"a":24047,"t":"byte","b":[252,192,192,240,192,192,252,0]},{"a":24055,"t":"byte","b":[252,192,192,240,192,192,192,0]},{"a":24063,"t":"byte","b":[252,204,192,204,204,204,252,0]},{"a":24071,"t":"byte","b":[204,204,204,252,204,204,204,0]},{"a":24079,"t":"byte","b":[252,48,48,48,48,48,252,0]},{"a":24087,"t":"byte","b":[252,48,48,48,48,48,192,0]},{"a":24095,"t":"byte","b":[204,204,204,240,204,204,204,0]},{"a":24103,"t":"byte","b":[192,192,192,192,192,192,252,0]},{"a":24111,"t":"byte","b":[204,204,252,204,204,204,204,0]},{"a":24119,"t":"byte","b":[252,204,204,204,204,204,204,0]},{"a":24127,"t":"byte","b":[252,204,204,204,204,204,252,0]},{"a":24135,"t":"byte","b":[252,204,204,252,192,192,192,0]},{"a":24143,"t":"byte","b":[252,204,204,252,12,12,12,0]},{"a":24151,"l":"text_shapes_2","c":"Character shapes that swap_font_a ($4D8B) exchanges with $C3C0.","t":"byte","b":[252,204,204,240,204,204,204,0],"x":[19867,19874]},{"a":24159,"t":"byte","b":[252,204,192,252,12,204,252,0]},{"a":24167,"t":"byte","b":[252,48,48,48,48,48,48,0]},{"a":24175,"t":"byte","b":[204,204,204,204,204,204,252,0]},{"a":24183,"t":"byte","b":[204,204,204,204,204,48,48,0]},{"a":24191,"t":"byte","b":[204,204,204,204,204,252,204,0]},{"a":24199,"t":"byte","b":[204,204,204,48,204,204,204,0]},{"a":24207,"t":"byte","b":[204,204,204,252,12,204,252,0]},{"a":24215,"t":"byte","b":[252,12,48,48,192,192,252,0]},{"a":24223,"t":"byte","b":[0,0,0,0,0,48,48,0]},{"a":24231,"t":"byte","b":[0,48,48,0,48,48,0,0]},{"a":24239,"t":"byte","b":[0,0,60,48,60,0,0,0]},{"a":24247,"t":"byte","b":[0,252,252,0,252,252,0,0]},{"a":24255,"t":"byte","b":[252,204,12,60,48,0,48,0]},{"a":24263,"t":"byte","b":[0,0,0,252,252,0,0,0]},{"a":24271,"t":"byte","b":[48,48,48,48,48,0,48,0]},{"a":24279,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":24287,"l":"text_shapes_3","c":"Character shapes that swap_font_b ($4DC4) exchanges with $C000-$C1FF: $5EDF-$5FDE with $C000 and $5FDF-$60DE with $C100 (512 bytes).","t":"byte","b":[170,0,150,0,153,0,170,0],"x":[19910,19917]},{"a":24295,"t":"byte","b":[170,0,101,0,89,0,170,0]},{"a":24303,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24311,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24319,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24327,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24335,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24343,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24351,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24359,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24367,"t":"byte","b":[170,0,170,0,160,0,0,0]},{"a":24375,"t":"byte","b":[170,0,0,0,0,0,0,0]},{"a":24383,"t":"byte","b":[170,0,0,0,0,0,0,0]},{"a":24391,"t":"byte","b":[170,0,42,0,2,0,0,0]},{"a":24399,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24407,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24415,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24423,"t":"byte","b":[168,0,168,0,160,0,160,0]},{"a":24431,"t":"byte","b":[0,0,2,9,5,37,37,21]},{"a":24439,"t":"byte","b":[0,0,0,0,128,64,88,127]},{"a":24447,"t":"byte","b":[0,11,7,15,47,63,127,255]},{"a":24455,"t":"byte","b":[0,96,248,252,254,253,255,255]},{"a":24463,"t":"byte","b":[42,0,10,0,2,0,2,128]},{"a":24471,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24479,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24487,"t":"byte","b":[160,0,128,0,130,2,130,1]},{"a":24495,"t":"byte","b":[37,153,101,149,103,151,85,88]},{"a":24503,"t":"byte","b":[223,119,223,119,221,247,255,159]},{"a":24511,"t":"byte","b":[255,255,255,255,223,255,255,246]},{"a":24519,"t":"byte","b":[255,255,255,255,255,255,255,129]},{"a":24527,"t":"byte","b":[66,64,64,64,224,224,208,208]},{"a":24535,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24543,"t":"byte","b":[170,0,170,0,170,0,170,0],"x":[19924,19931]},{"a":24551,"t":"byte","b":[130,1,129,1,129,1,130,2]},{"a":24559,"t":"byte","b":[96,73,227,83,237,119,223,119]},{"a":24567,"t":"byte","b":[39,249,69,214,246,93,253,255]},{"a":24575,"t":"byte","b":[216,99,247,251,245,253,255,255]},{"a":24583,"t":"byte","b":[2,216,227,253,255,127,255,255]},{"a":24591,"t":"byte","b":[208,208,208,208,208,208,224,80]},{"a":24599,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24607,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24615,"t":"byte","b":[160,2,162,2,162,0,168,0]},{"a":24623,"t":"byte","b":[157,23,173,103,103,91,155,151]},{"a":24631,"t":"byte","b":[247,211,218,244,125,127,255,255]},{"a":24639,"t":"byte","b":[247,245,215,143,111,223,255,255]},{"a":24647,"t":"byte","b":[255,253,246,120,118,253,221,253]},{"a":24655,"t":"byte","b":[178,176,82,208,226,64,74,128]},{"a":24663,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24671,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24679,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24687,"t":"byte","b":[39,39,137,9,162,2,168,0]},{"a":24695,"t":"byte","b":[247,201,211,246,245,127,191,31]},{"a":24703,"t":"byte","b":[87,168,241,7,219,245,255,255]},{"a":24711,"t":"byte","b":[221,213,228,212,114,208,202,0]},{"a":24719,"t":"byte","b":[42,0,170,0,170,0,170,0]},{"a":24727,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24735,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24743,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24751,"t":"byte","b":[170,0,170,0,170,0,170,0]},{"a":24759,"t":"byte","b":[135,0,170,0,170,0,170,0]},{"a":24767,"t":"byte","b":[244,0,170,0,170,0,170,0]},{"a":24775,"t":"byte","b":[170,0,153,0,153,0,170,0]},{"a":24783,"t":"byte","b":[170,0,102,0,150,0,170,0]},{"a":24791,"t":"byte","b":[170,0,106,0,154,0,170,0]},{"a":24799,"t":"gap","n":8},{"a":24807,"l":"mask_pieces","c":"Pattern data for the mask game's pieces: 432 bytes in three rows of $90 bytes ($60E7, $6177 and $6207), each row six groups of 24 bytes. object_flip ($53D9) and object_slide_in ($54AB) copy 24 columns of three bytes (one from each row, $90 apart) into the character data of an object ($52A7/$52AC): the sources are $60E7 and $6117 for the two flip pictures and $60FF for the target object, and the bases of the three moving objects are $612F, $6147 and $615F. The bytes are pixel patterns of set bit pairs (for example $02, $08, $20, $80 and $AA).","t":"byte","b":[0,0,0,0,0,2,8,8]},{"a":24815,"t":"byte","b":[0,0,0,0,170,0,7,15]},{"a":24823,"t":"byte","b":[0,0,0,0,0,128,32,200]},{"a":24831,"t":"byte","b":[0,0,0,0,2,8,32,32]},{"a":24839,"t":"byte","b":[0,0,0,0,170,0,0,13]},{"a":24847,"t":"byte","b":[0,0,0,0,0,128,32,32]},{"a":24855,"t":"byte","b":[0,0,0,0,0,2,8,35]},{"a":24863,"t":"byte","b":[0,0,0,0,170,0,208,240]},{"a":24871,"t":"byte","b":[0,0,0,0,0,128,32,32]},{"a":24879,"t":"byte","b":[0,0,0,0,2,8,32,32]},{"a":24887,"t":"byte","b":[0,0,0,0,170,2,8,4]},{"a":24895,"t":"byte","b":[0,0,0,0,0,128,128,32]},{"a":24903,"t":"byte","b":[0,0,0,0,0,2,8,8]},{"a":24911,"t":"byte","b":[0,0,0,0,170,0,0,0]},{"a":24919,"t":"byte","b":[0,0,0,0,128,32,8,72]},{"a":24927,"t":"byte","b":[0,0,0,0,0,0,2,2]},{"a":24935,"t":"byte","b":[0,0,0,0,40,170,106,249]},{"a":24943,"t":"byte","b":[0,0,0,0,0,0,128,160]},{"a":24951,"t":"byte","b":[32,32,32,35,35,35,35,33]},{"a":24959,"t":"byte","b":[15,47,63,191,114,253,247,127]},{"a":24967,"t":"byte","b":[232,248,248,248,200,216,248,248]},{"a":24975,"t":"byte","b":[142,143,143,175,156,159,167,43]},{"a":24983,"t":"byte","b":[63,255,255,255,152,125,127,239]},{"a":24991,"t":"byte","b":[136,72,200,232,216,216,104,160]},{"a":24999,"t":"byte","b":[43,47,47,47,35,39,47,47]},{"a":25007,"t":"byte","b":[240,248,252,254,141,127,223,253]},{"a":25015,"t":"byte","b":[8,8,8,200,200,200,200,72]},{"a":25023,"t":"byte","b":[128,130,175,159,188,191,159,159]},{"a":25031,"t":"byte","b":[60,254,255,253,116,255,255,239]},{"a":25039,"t":"byte","b":[32,32,32,72,200,200,200,200]},{"a":25047,"t":"byte","b":[33,35,35,32,34,35,11,11]},{"a":25055,"t":"byte","b":[9,245,253,195,4,12,223,255]},{"a":25063,"t":"byte","b":[66,98,82,2,34,56,248,248]},{"a":25071,"t":"byte","b":[11,11,39,47,63,63,63,31]},{"a":25079,"t":"byte","b":[253,255,255,255,255,255,76,255]},{"a":25087,"t":"byte","b":[96,88,88,212,212,212,116,244]},{"a":25095,"t":"byte","b":[34,10,10,44,191,255,255,255]},{"a":25103,"t":"byte","b":[159,111,215,183,15,192,224,240]},{"a":25111,"t":"byte","b":[184,248,56,240,208,58,63,255]},{"a":25119,"t":"byte","b":[45,47,11,41,180,254,253,255]},{"a":25127,"t":"byte","b":[253,207,255,253,168,0,2,139]},{"a":25135,"t":"byte","b":[224,224,128,32,184,126,255,255]},{"a":25143,"t":"byte","b":[46,47,44,15,7,172,252,255]},{"a":25151,"t":"byte","b":[246,249,215,222,240,3,11,15]},{"a":25159,"t":"byte","b":[136,160,160,56,254,255,255,255]},{"a":25167,"t":"byte","b":[175,135,3,32,224,224,224,224]},{"a":25175,"t":"byte","b":[255,103,253,118,0,0,2,3]},{"a":25183,"t":"byte","b":[72,136,40,56,190,254,254,254]},{"a":25191,"t":"byte","b":[11,1,1,6,63,191,255,255]},{"a":25199,"t":"byte","b":[243,255,202,119,189,64,192,192]},{"a":25207,"t":"byte","b":[216,80,96,68,62,127,255,255]},{"a":25215,"t":"byte","b":[47,15,7,11,61,255,255,255]},{"a":25223,"t":"byte","b":[127,251,255,243,247,61,226,255]},{"a":25231,"t":"byte","b":[88,208,208,80,108,127,255,255]},{"a":25239,"l":"screen_a_map","c":"The characters of screen A, 18 rows of 28 bytes, copied to the screen by screen_a_draw ($5630).","t":"byte","b":[69,69,69,70,69,69,69,69],"x":[22088]},{"a":25247,"t":"byte","b":[69,70,69,69,69,69,70,69]},{"a":25255,"t":"byte","b":[69,69,69,69,70,69,69,69]},{"a":25263,"t":"byte","b":[69,68,68,68,45,46,45,46]},{"a":25271,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25279,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25287,"t":"byte","b":[45,46,45,46,45,47,48,47]},{"a":25295,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25303,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25311,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25319,"t":"byte","b":[45,47,48,47,45,46,49,50]},{"a":25327,"t":"byte","b":[51,52,53,54,45,46,49,50]},{"a":25335,"t":"byte","b":[51,52,53,54,45,46,49,50]},{"a":25343,"t":"byte","b":[51,52,53,54,45,47,48,47]},{"a":25351,"t":"byte","b":[45,46,55,56,57,58,59,45]},{"a":25359,"t":"byte","b":[45,46,55,56,57,58,59,46]},{"a":25367,"t":"byte","b":[45,46,55,56,57,58,59,46]},{"a":25375,"t":"byte","b":[45,80,74,47,45,46,60,0]},{"a":25383,"t":"byte","b":[1,2,61,45,45,46,60,9]},{"a":25391,"t":"byte","b":[10,11,61,46,45,46,60,18]},{"a":25399,"t":"byte","b":[19,20,61,46,45,71,72,47]},{"a":25407,"t":"byte","b":[45,46,60,3,4,5,61,45]},{"a":25415,"t":"byte","b":[45,46,60,12,13,14,61,46]},{"a":25423,"t":"byte","b":[45,46,60,21,22,23,61,46]},{"a":25431,"t":"byte","b":[45,80,75,47,45,46,60,6]},{"a":25439,"t":"byte","b":[7,8,61,45,45,46,60,15]},{"a":25447,"t":"byte","b":[16,17,61,46,45,46,60,24]},{"a":25455,"t":"byte","b":[25,26,61,46,45,80,73,47]},{"a":25463,"t":"byte","b":[45,46,62,63,64,65,66,67]},{"a":25471,"t":"byte","b":[45,46,62,63,64,65,66,67]},{"a":25479,"t":"byte","b":[45,46,62,63,64,65,66,67]},{"a":25487,"t":"byte","b":[45,76,77,47,47,48,47,48]},{"a":25495,"t":"byte","b":[47,48,47,48,47,48,47,48]},{"a":25503,"t":"byte","b":[47,48,47,48,47,48,47,48]},{"a":25511,"t":"byte","b":[47,48,47,48,47,80,80,80]},{"a":25519,"t":"byte","b":[69,69,70,69,69,69,69,69]},{"a":25527,"t":"byte","b":[69,69,69,69,70,69,69,69]},{"a":25535,"t":"byte","b":[69,69,69,69,69,70,69,69]},{"a":25543,"t":"byte","b":[69,68,68,68,45,46,45,46]},{"a":25551,"t":"byte","b":[45,49,50,51,52,53,54,46]},{"a":25559,"t":"byte","b":[45,46,49,50,51,52,53,54]},{"a":25567,"t":"byte","b":[45,46,45,46,45,47,48,47]},{"a":25575,"t":"byte","b":[45,46,45,46,45,55,56,57]},{"a":25583,"t":"byte","b":[58,59,45,46,45,46,55,56]},{"a":25591,"t":"byte","b":[57,58,59,46,45,46,45,46]},{"a":25599,"t":"byte","b":[45,80,74,47,45,46,45,46]},{"a":25607,"t":"byte","b":[45,60,27,28,29,61,45,46]},{"a":25615,"t":"byte","b":[45,46,60,36,37,38,61,46]},{"a":25623,"t":"byte","b":[45,46,45,46,45,71,72,47]},{"a":25631,"t":"byte","b":[45,46,45,46,45,60,30,31]},{"a":25639,"t":"byte","b":[32,61,45,46,45,46,60,39]},{"a":25647,"t":"byte","b":[40,41,61,46,45,46,45,46]},{"a":25655,"t":"byte","b":[45,80,75,47,45,46,45,46]},{"a":25663,"t":"byte","b":[45,60,33,34,35,61,45,46]},{"a":25671,"t":"byte","b":[45,46,60,42,43,44,61,46]},{"a":25679,"t":"byte","b":[45,46,45,46,45,80,73,47]},{"a":25687,"t":"byte","b":[45,46,45,46,45,62,63,64]},{"a":25695,"t":"byte","b":[65,66,67,46,45,46,62,63]},{"a":25703,"t":"byte","b":[64,65,66,67,45,46,45,46]},{"a":25711,"t":"byte","b":[45,76,77,47,45,46,45,46]},{"a":25719,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25727,"t":"byte","b":[45,46,45,46,45,46,45,46]},{"a":25735,"t":"byte","b":[45,46,45,46,45,47,48,47]},{"a":25743,"l":"screen_b_map","c":"The characters of screen B, 16 rows of 28 bytes, copied to the screen by screen_b_draw ($569B).","t":"byte","b":[81,82,82,82,82,82,82,82],"x":[22195]},{"a":25751,"t":"byte","b":[82,82,82,82,82,82,82,82]},{"a":25759,"t":"byte","b":[82,82,82,82,82,82,82,82]},{"a":25767,"t":"byte","b":[82,82,82,83,84,85,99,99]},{"a":25775,"t":"byte","b":[99,99,99,99,99,99,99,99]},{"a":25783,"t":"byte","b":[99,99,99,99,99,99,99,99]},{"a":25791,"t":"byte","b":[99,99,99,99,99,99,86,87]},{"a":25799,"t":"byte","b":[84,93,80,80,80,80,80,80]},{"a":25807,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25815,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25823,"t":"byte","b":[80,80,92,87,84,93,80,80]},{"a":25831,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25839,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25847,"t":"byte","b":[80,80,80,80,80,80,92,87]},{"a":25855,"t":"byte","b":[84,93,80,80,80,80,80,80]},{"a":25863,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25871,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25879,"t":"byte","b":[80,80,92,87,84,93,80,80]},{"a":25887,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25895,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25903,"t":"byte","b":[80,80,80,80,80,80,92,87]},{"a":25911,"t":"byte","b":[84,93,80,80,80,80,80,80]},{"a":25919,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25927,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25935,"t":"byte","b":[80,80,92,87,84,93,80,80]},{"a":25943,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25951,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25959,"t":"byte","b":[80,80,80,80,80,80,92,87]},{"a":25967,"t":"byte","b":[84,93,80,80,80,80,80,80]},{"a":25975,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25983,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":25991,"t":"byte","b":[80,80,92,87,84,93,80,80]},{"a":25999,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26007,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26015,"t":"byte","b":[80,80,80,80,80,80,92,87]},{"a":26023,"t":"byte","b":[84,93,80,80,80,80,80,80]},{"a":26031,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26039,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26047,"t":"byte","b":[80,80,92,87,84,93,80,80]},{"a":26055,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26063,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26071,"t":"byte","b":[80,80,80,80,80,80,92,87]},{"a":26079,"t":"byte","b":[84,93,80,80,80,80,80,80]},{"a":26087,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26095,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26103,"t":"byte","b":[80,80,92,87,84,93,80,80]},{"a":26111,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26119,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26127,"t":"byte","b":[80,80,80,80,80,80,92,87]},{"a":26135,"t":"byte","b":[84,88,91,91,91,91,91,91]},{"a":26143,"t":"byte","b":[91,91,91,91,91,91,91,91]},{"a":26151,"t":"byte","b":[91,91,91,91,91,91,91,91]},{"a":26159,"t":"byte","b":[94,94,89,87,97,100,100,100]},{"a":26167,"t":"byte","b":[100,100,100,100,100,100,100,100]},{"a":26175,"t":"byte","b":[100,100,100,100,100,100,100,100]},{"a":26183,"t":"byte","b":[100,100,100,100,101,102,100,98]},{"a":26191,"l":"subject_gap","c":"52 bytes between the end of screen_b_map ($648F) and subject_shapes ($6683): 51 bytes of $50 (the screen code subject_screen ($5706) fills the screen with) and a final $FC. No code reads them.","t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26199,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26207,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26215,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26223,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26231,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":26239,"t":"byte","b":[80,80,80,80]},{"a":26243,"l":"subject_shapes","c":"Character shapes, block 1 of 4 ($6683-$6750, $CE bytes), that swap_chars_6683 ($6B73) exchanges with $C000. subject_screen ($5706) and mask_setup ($58C8) clear 72 bytes at each of $6683, $66CB, $6713, $675B and $67A3.","t":"byte","b":[252,204,204,204,204,204,252,0],"x":[22449,22941,27509,27516]},{"a":26251,"t":"byte","b":[240,48,48,48,48,48,48,0]},{"a":26259,"t":"byte","b":[252,12,12,252,192,192,252,0]},{"a":26267,"t":"byte","b":[252,12,12,60,12,12,252,0]},{"a":26275,"t":"byte","b":[192,192,204,204,252,12,12,0]},{"a":26283,"t":"byte","b":[252,192,252,12,12,12,252,0]},{"a":26291,"t":"byte","b":[240,192,192,252,204,204,252,0]},{"a":26299,"t":"byte","b":[252,12,12,12,12,12,12,0]},{"a":26307,"t":"byte","b":[252,204,204,252,204,204,252,0]},{"a":26315,"t":"byte","b":[252,204,204,204,204,204,252,0],"x":[22452,22944]},{"a":26323,"t":"byte","b":[240,48,48,48,48,48,48,0]},{"a":26331,"t":"byte","b":[252,12,12,252,192,192,252,0]},{"a":26339,"t":"byte","b":[252,12,12,60,12,12,252,0]},{"a":26347,"t":"byte","b":[192,192,204,204,252,12,12,0]},{"a":26355,"t":"byte","b":[252,192,252,12,12,12,252,0]},{"a":26363,"t":"byte","b":[240,192,192,252,204,204,252,0]},{"a":26371,"t":"byte","b":[252,12,12,12,12,12,12,0]},{"a":26379,"t":"byte","b":[252,204,204,252,204,204,252,0]},{"a":26387,"t":"byte","b":[252,204,204,204,204,204,252,0],"x":[22455,22947]},{"a":26395,"t":"byte","b":[240,48,48,48,48,48,48,0]},{"a":26403,"t":"byte","b":[252,12,12,252,192,192,252,0]},{"a":26411,"t":"byte","b":[252,12,12,60,12,12,252,0]},{"a":26419,"t":"byte","b":[192,192,204,204,252,12,12,0]},{"a":26427,"t":"byte","b":[252,192,252,12,12,12,252,0]},{"a":26435,"t":"byte","b":[240,192,192,252,204,204,252,0]},{"a":26443,"t":"byte","b":[252,12,12,12,12,12]},{"a":26449,"l":"subject_shapes_2","c":"Character shapes, block 2 of 4 ($6751-$681E, $CE bytes), that swap_chars_6683 ($6B73) exchanges with $C0CE.","t":"byte","b":[12,0,252,204,204,252,204,204],"x":[27523,27530]},{"a":26457,"t":"byte","b":[252,0,252,204,204,204,204,204]},{"a":26465,"t":"byte","b":[252,0,240,48,48,48,48,48]},{"a":26473,"t":"byte","b":[48,0,252,12,12,252,192,192]},{"a":26481,"t":"byte","b":[252,0,252,12,12,60,12,12]},{"a":26489,"t":"byte","b":[252,0,192,192,204,204,252,12]},{"a":26497,"t":"byte","b":[12,0,252,192,252,12,12,12]},{"a":26505,"t":"byte","b":[252,0,240,192,192,252,204,204]},{"a":26513,"t":"byte","b":[252,0,252,12,12,12,12,12]},{"a":26521,"t":"byte","b":[12,0,252,204,204,252,204,204]},{"a":26529,"t":"byte","b":[252,0,252,204,204,204,204,204]},{"a":26537,"t":"byte","b":[252,0,240,48,48,48,48,48]},{"a":26545,"t":"byte","b":[48,0,252,12,12,252,192,192]},{"a":26553,"t":"byte","b":[252,0,252,12,12,60,12,12]},{"a":26561,"t":"byte","b":[252,0,192,192,204,204,252,12]},{"a":26569,"t":"byte","b":[12,0,252,192,252,12,12,12]},{"a":26577,"t":"byte","b":[252,0,240,192,192,252,204,204]},{"a":26585,"t":"byte","b":[252,0,252,12,12,12,12,12]},{"a":26593,"t":"byte","b":[12,0,252,204,204,252,204,204]},{"a":26601,"t":"byte","b":[252,0,170,170,255,0,162,162]},{"a":26609,"t":"byte","b":[243,0,162,162,243,0,170,170]},{"a":26617,"t":"byte","b":[255,0,0,0,170,0,0,0]},{"a":26625,"t":"byte","b":[162,0,0,0,162,0,0,0]},{"a":26633,"t":"byte","b":[170,0,170,168,128,0,170,234]},{"a":26641,"t":"byte","b":[234,235,170,0,0,0,170,170]},{"a":26649,"t":"byte","b":[191,224,170,0,0,0]},{"a":26655,"l":"subject_shapes_3","c":"Character shapes, block 3 of 4 ($681F-$68EC, $CE bytes), that swap_chars_6683 ($6B73) exchanges with $C19C.","t":"byte","b":[170,170,255,0,170,0,0,0],"x":[27537,27544]},{"a":26663,"t":"byte","b":[170,170,255,2,170,2,0,0]},{"a":26671,"t":"byte","b":[170,170,170,250,170,170,63,0]},{"a":26679,"t":"byte","b":[10,10,47,0,254,0,168,0]},{"a":26687,"t":"byte","b":[0,0,168,0,10,47,187,255]},{"a":26695,"t":"byte","b":[255,0,10,175,170,251,251,251]},{"a":26703,"t":"byte","b":[251,8,170,255,168,254,251,255]},{"a":26711,"t":"byte","b":[255,0,170,255,47,130,235,186]},{"a":26719,"t":"byte","b":[251,59,171,250,0,0,168,0]},{"a":26727,"t":"byte","b":[0,0,168,0,59,59,59,58]},{"a":26735,"t":"byte","b":[59,59,59,58,234,234,234,255]},{"a":26743,"t":"byte","b":[2,163,243,0,0,170,170,255]},{"a":26751,"t":"byte","b":[0,170,255,0,0,170,170,255]},{"a":26759,"t":"byte","b":[2,163,243,0,0,170,170,255]},{"a":26767,"t":"byte","b":[0,170,255,0,170,170,170,255]},{"a":26775,"t":"byte","b":[2,163,243,0,10,10,15,0]},{"a":26783,"t":"byte","b":[42,170,255,0,0,0,170,170]},{"a":26791,"t":"byte","b":[0,0,170,0,170,170,255,255]},{"a":26799,"t":"byte","b":[0,170,255,0,168,168,234,234]},{"a":26807,"t":"byte","b":[60,188,254,60,0,42,42,0]},{"a":26815,"t":"byte","b":[0,0,0,0,42,175,175,42]},{"a":26823,"t":"byte","b":[47,47,47,42,47,15,10,2]},{"a":26831,"t":"byte","b":[11,11,2,0,184,184,42,32]},{"a":26839,"t":"byte","b":[40,44,46,32,47,47,47,42]},{"a":26847,"t":"byte","b":[47,47,47,42,8,14,143,15]},{"a":26855,"t":"byte","b":[0,0,168,0,0,0]},{"a":26861,"l":"subject_shapes_4","c":"Character shapes, block 4 of 4 ($68ED-$69BA, $CE bytes), that swap_chars_6683 ($6B73) exchanges with $C26A.","t":"byte","b":[170,170,0,128,170,0,0,0],"x":[27551,27558]},{"a":26869,"t":"byte","b":[170,170,0,0,168,0,0,0]},{"a":26877,"t":"byte","b":[42,0,0,128,170,0,0,0]},{"a":26885,"t":"byte","b":[0,0,0,0,0,0,191,255]},{"a":26893,"t":"byte","b":[213,213,213,213,213,213,255,255]},{"a":26901,"t":"byte","b":[85,85,85,85,85,85,254,253]},{"a":26909,"t":"byte","b":[86,86,86,86,86,86,213,213]},{"a":26917,"t":"byte","b":[213,213,213,213,213,213,85,85]},{"a":26925,"t":"byte","b":[85,90,106,98,106,104,85,85]},{"a":26933,"t":"byte","b":[85,165,165,149,93,125,86,86]},{"a":26941,"t":"byte","b":[86,86,86,86,86,86,105,101]},{"a":26949,"t":"byte","b":[87,95,85,85,85,85,253,253]},{"a":26957,"t":"byte","b":[253,245,85,85,85,85,255,255]},{"a":26965,"t":"byte","b":[85,85,85,85,85,85,255,255]},{"a":26973,"t":"byte","b":[255,255,85,85,85,85,253,253]},{"a":26981,"t":"byte","b":[253,253,253,253,253,253,106,106]},{"a":26989,"t":"byte","b":[106,106,106,106,106,106,255,255]},{"a":26997,"t":"byte","b":[255,255,85,85,85,125,0,0]},{"a":27005,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27013,"t":"byte","b":[0,0,0,0,0,0,213,213]},{"a":27021,"t":"byte","b":[213,213,213,213,106,42,86,86]},{"a":27029,"t":"byte","b":[86,86,86,86,170,168,85,85]},{"a":27037,"t":"byte","b":[85,170,170,170,170,170,85,85]},{"a":27045,"t":"byte","b":[85,85,85,85,170,170,125,125]},{"a":27053,"t":"byte","b":[125,65,105,85,170,170,125,125]},{"a":27061,"t":"byte","b":[125,65,105,85,170,170]},{"a":27067,"t":"gap","n":440},{"a":27507,"l":"swap_chars_6683","c":"Exchanges four blocks of $CE bytes: $6683 with $C000, $6751 with $C0CE, $681F with $C19C and $68ED with $C26A (it reads both, writes each to the other). Called by the end-of-level code at $59B1.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[22961]},{"a":27509,"l":"b_6B75","t":"code","b":[185,131,102],"m":"lda","oa":26243,"o":"subject_shapes,y","x":[27568]},{"a":27512,"t":"code","b":[72],"m":"pha"},{"a":27513,"t":"code","b":[185,0,192],"m":"lda","oa":49152,"o":"play_charset_a,y"},{"a":27516,"t":"code","b":[153,131,102],"m":"sta","oa":26243,"o":"subject_shapes,y"},{"a":27519,"t":"code","b":[104],"m":"pla"},{"a":27520,"t":"code","b":[153,0,192],"m":"sta","oa":49152,"o":"play_charset_a,y"},{"a":27523,"t":"code","b":[185,81,103],"m":"lda","oa":26449,"o":"subject_shapes_2,y"},{"a":27526,"t":"code","b":[72],"m":"pha"},{"a":27527,"t":"code","b":[185,206,192],"m":"lda","oa":49358,"o":"$C0CE,y"},{"a":27530,"t":"code","b":[153,81,103],"m":"sta","oa":26449,"o":"subject_shapes_2,y"},{"a":27533,"t":"code","b":[104],"m":"pla"},{"a":27534,"t":"code","b":[153,206,192],"m":"sta","oa":49358,"o":"$C0CE,y"},{"a":27537,"t":"code","b":[185,31,104],"m":"lda","oa":26655,"o":"subject_shapes_3,y"},{"a":27540,"t":"code","b":[72],"m":"pha"},{"a":27541,"t":"code","b":[185,156,193],"m":"lda","oa":49564,"o":"$C19C,y"},{"a":27544,"t":"code","b":[153,31,104],"m":"sta","oa":26655,"o":"subject_shapes_3,y"},{"a":27547,"t":"code","b":[104],"m":"pla"},{"a":27548,"t":"code","b":[153,156,193],"m":"sta","oa":49564,"o":"$C19C,y"},{"a":27551,"t":"code","b":[185,237,104],"m":"lda","oa":26861,"o":"subject_shapes_4,y"},{"a":27554,"t":"code","b":[72],"m":"pha"},{"a":27555,"t":"code","b":[185,106,194],"m":"lda","oa":49770,"o":"$C26A,y"},{"a":27558,"t":"code","b":[153,237,104],"m":"sta","oa":26861,"o":"subject_shapes_4,y"},{"a":27561,"t":"code","b":[104],"m":"pla"},{"a":27562,"t":"code","b":[153,106,194],"m":"sta","oa":49770,"o":"$C26A,y"},{"a":27565,"t":"code","b":[200],"m":"iny"},{"a":27566,"t":"code","b":[192,206],"m":"cpy","o":"#$CE"},{"a":27568,"t":"code","b":[208,195],"m":"bne","oa":27509,"o":"b_6B75"},{"a":27570,"t":"code","b":[96],"m":"rts"},{"a":27571,"l":"tile_top_chars","c":"The top character of each map cell half, indexed by twice the map byte plus the half-column; the map holds the values 0 to 61. Read by draw_map_cell ($22C0).","t":"byte","b":[0,1,2,3,4,5,6,7],"x":[8906]},{"a":27579,"t":"byte","b":[8,9,10,11,12,13,14,15]},{"a":27587,"t":"byte","b":[16,17,18,19,20,21,22,23]},{"a":27595,"t":"byte","b":[24,25,26,27,28,29,30,31]},{"a":27603,"t":"byte","b":[32,33,34,35,36,37,38,39]},{"a":27611,"t":"byte","b":[80,81,82,83,84,85,86,87]},{"a":27619,"t":"byte","b":[88,89,90,91,92,93,94,95]},{"a":27627,"t":"byte","b":[96,97,98,99,100,101,102,103]},{"a":27635,"t":"byte","b":[104,105,106,107,108,109,110,111]},{"a":27643,"t":"byte","b":[112,113,114,115,116,117,118,119]},{"a":27651,"t":"byte","b":[160,161,162,163,164,165,166,167]},{"a":27659,"t":"byte","b":[168,169,170,171,172,173,174,175]},{"a":27667,"t":"byte","b":[176,177,178,179,180,181,182,183]},{"a":27675,"t":"byte","b":[184,185,186,187,188,189,190,191]},{"a":27683,"t":"byte","b":[192,193,194,195,196,197,198,199]},{"a":27691,"t":"byte","b":[240,241,242,243]},{"a":27695,"t":"gap","n":34},{"a":27729,"l":"tile_bottom_chars","c":"The bottom character of each map cell half, indexed like the table at $6BB3. Read by draw_map_cell ($22C0).","t":"byte","b":[40,41,42,43,44,45,46,47],"x":[8921]},{"a":27737,"t":"byte","b":[48,49,50,51,52,53,54,55]},{"a":27745,"t":"byte","b":[56,57,58,59,60,61,62,63]},{"a":27753,"t":"byte","b":[64,65,66,67,68,69,70,71]},{"a":27761,"t":"byte","b":[72,73,74,75,76,77,78,79]},{"a":27769,"t":"byte","b":[120,121,122,123,124,125,126,127]},{"a":27777,"t":"byte","b":[128,129,130,131,132,133,134,135]},{"a":27785,"t":"byte","b":[136,137,138,139,140,141,142,143]},{"a":27793,"t":"byte","b":[144,145,146,147,148,149,150,151]},{"a":27801,"t":"byte","b":[152,153,154,155,156,157,158,159]},{"a":27809,"t":"byte","b":[200,201,202,203,204,205,206,207]},{"a":27817,"t":"byte","b":[208,209,210,211,212,213,214,215]},{"a":27825,"t":"byte","b":[216,217,218,219,220,221,222,223]},{"a":27833,"t":"byte","b":[224,225,226,227,228,229,230,231]},{"a":27841,"t":"byte","b":[232,233,234,235,236,237,238,239]},{"a":27849,"t":"byte","b":[244,245,246,247]},{"a":27853,"l":"panel_chars","c":"The 200 bytes that draw_bottom_rows ($203C) copies to the screen matrix at $CEF7, five rows of 40 for the bottom of the screen, where irq_bottom ($1DBF) has switched the video chip to bitmap mode; there screen memory holds the colours of each 8 by 8 cell and not character codes. The colour RAM values are in panel_colours ($6D95).","t":"byte","b":[0,139,184,28,188,189,178,178],"x":[8260]},{"a":27861,"t":"byte","b":[188,28,191,188,187,185,184,139]},{"a":27869,"t":"byte","b":[139,140,156,155,156,188,188,203]},{"a":27877,"t":"byte","b":[191,191,191,203,207,207,204,203]},{"a":27885,"t":"byte","b":[203,175,177,177,177,161,161,161]},{"a":27893,"t":"byte","b":[161,137,137,251,27,194,29,17]},{"a":27901,"t":"byte","b":[17,17,17,203,203,203,185,139]},{"a":27909,"t":"byte","b":[184,27,251,27,251,207,204,28]},{"a":27917,"t":"byte","b":[251,251,31,188,188,91,91,91]},{"a":27925,"t":"byte","b":[91,177,202,251,191,186,186,186]},{"a":27933,"t":"byte","b":[186,139,139,191,191,191,191,191]},{"a":27941,"t":"byte","b":[191,191,191,188,191,187,137,139]},{"a":27949,"t":"byte","b":[137,193,193,193,193,193,193,193]},{"a":27957,"t":"byte","b":[193,193,193,203,193,47,44,44]},{"a":27965,"t":"byte","b":[43,177,172,171,251,246,250,250]},{"a":27973,"t":"byte","b":[250,137,139,252,113,113,113,113]},{"a":27981,"t":"byte","b":[113,113,113,27,22,25,152,184]},{"a":27989,"t":"byte","b":[184,188,188,191,191,252,252,188]},{"a":27997,"t":"byte","b":[191,187,43,44,188,191,188,188]},{"a":28005,"t":"byte","b":[187,177,187,187,107,102,22,22]},{"a":28013,"t":"byte","b":[22,27,185,43,135,129,129,129]},{"a":28021,"t":"byte","b":[129,129,129,98,150,98,137,185]},{"a":28029,"t":"byte","b":[185,187,187,22,30,207,251,251]},{"a":28037,"t":"byte","b":[251,251,251,38,43,43,43,43]},{"a":28045,"t":"byte","b":[43,33,43,43,33,33,33,33]},{"a":28053,"l":"panel_colours","c":"The 200 bytes that draw_bottom_rows ($203C) copies to colour RAM at $DAF7, the colour-RAM half of panel_chars ($6CCD): five rows of 40, one byte per cell of the status panel's multicolour bitmap.","t":"byte","b":[0,9,9,15,207,5,185,9],"x":[8254]},{"a":28061,"t":"byte","b":[107,15,12,15,15,8,9,9]},{"a":28069,"t":"byte","b":[9,11,11,12,11,207,11,191]},{"a":28077,"t":"byte","b":[12,12,12,15,1,204,15,44]},{"a":28085,"t":"byte","b":[12,1,10,11,11,6,15,15]},{"a":28093,"t":"byte","b":[15,11,11,12,12,1,188,12]},{"a":28101,"t":"byte","b":[140,12,172,15,12,12,168,9]},{"a":28109,"t":"byte","b":[9,15,12,15,44,11,11,15]},{"a":28117,"t":"byte","b":[12,12,235,15,15,177,241,129]},{"a":28125,"t":"byte","b":[81,10,251,44,12,11,161,1]},{"a":28133,"t":"byte","b":[1,9,9,1,1,1,1,1]},{"a":28141,"t":"byte","b":[177,1,129,15,1,1,203,9]},{"a":28149,"t":"byte","b":[11,175,15,15,15,15,47,15]},{"a":28157,"t":"byte","b":[15,15,15,15,15,12,15,11]},{"a":28165,"t":"byte","b":[11,10,11,12,12,10,1,1]},{"a":28173,"t":"byte","b":[1,11,9,11,12,60,12,12]},{"a":28181,"t":"byte","b":[12,12,12,14,14,178,11,9]},{"a":28189,"t":"byte","b":[9,11,15,1,12,11,11,191]},{"a":28197,"t":"byte","b":[12,140,6,15,15,12,11,11]},{"a":28205,"t":"byte","b":[11,11,44,12,12,12,106,10]},{"a":28213,"t":"byte","b":[10,9,8,9,33,7,7,7]},{"a":28221,"t":"byte","b":[183,7,135,9,2,9,194,8]},{"a":28229,"t":"byte","b":[187,9,108,14,6,11,12,12]},{"a":28237,"t":"byte","b":[44,12,6,11,9,9,9,201]},{"a":28245,"t":"byte","b":[9,191,1,1,1,1,15,15]},{"a":28253,"l":"level_map","c":"The level map: 8 rows of 174 tiles, one byte each (tile numbers 0 to 61), from $6E5D to $73CC; row r starts at $6E5D + 174 x r and is drawn on screen rows 2r+1 and 2r+2. This is row 0, the top row. draw_new_column ($2269) reads one column at a time from map position $6E71 (column 20, the first not drawn by draw_first_screen) through the pointer $10/$11 and draw_map_cell ($22C0), which steps down the rows by $AE. scroll_step ($2066) ends the scroll when the position reaches $6EF9 (column 156). The tile numbers index tile_top_chars ($6BB3) and tile_bottom_chars ($6C51).","t":"byte","b":[13,15,13,15,13,15,13,15]},{"a":28261,"t":"byte","b":[13,22,20,20,20,20,20,20]},{"a":28269,"t":"byte","b":[20,20,20,20,20,19,16,16]},{"a":28277,"t":"byte","b":[17,18,16,19,21,20,20,20]},{"a":28285,"t":"byte","b":[20,20,16,21,20,18,21,20]},{"a":28293,"t":"byte","b":[20,20,20,20,19,21,21,19]},{"a":28301,"t":"byte","b":[21,20,20,20,25,13,13,13]},{"a":28309,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":28317,"t":"byte","b":[13,13,13,13,13,13,13,13]},{"a":28325,"t":"byte","b":[13,22,20,19,0,23,19,20]},{"a":28333,"t":"byte","b":[27,16,17,18,27,21,20,20]},{"a":28341,"t":"byte","b":[25,20,20,20,19,0,23,23]},{"a":28349,"t":"byte","b":[23,21,22,20,20,20,20,20]},{"a":28357,"t":"byte","b":[20,20,20,20,41,42,45,45]},{"a":28365,"t":"byte","b":[45,41,42,45,17,45,41,42]},{"a":28373,"t":"byte","b":[45,45,45,41,42,19,0,0]},{"a":28381,"t":"byte","b":[23,23,23,23,23,19,24,23]},{"a":28389,"t":"byte","b":[0,0,0,31,20,20,31,0]},{"a":28397,"t":"byte","b":[21,20,20,20,20,20,20,20]},{"a":28405,"t":"byte","b":[16,17,18,16,20,20,20,20]},{"a":28413,"t":"byte","b":[20,20,20,19,45,45,45,45]},{"a":28421,"t":"byte","b":[45,45,45,41,42,16]},{"a":28427,"l":"level_map_row_1","c":"Row 1 of the level map (174 tiles, $6F0B to $6FB8), drawn on screen rows 3 and 4 by draw_new_column ($2269); see level_map ($6E5D).","t":"byte","b":[13,13,13,14,0,17,18,0]},{"a":28435,"t":"byte","b":[31,21,20,20,20,20,20,47]},{"a":28443,"t":"byte","b":[27,49,20,20,20,19,13,13]},{"a":28451,"t":"byte","b":[13,13,13,19,21,20,20,20]},{"a":28459,"t":"byte","b":[20,20,17,21,20,17,21,20]},{"a":28467,"t":"byte","b":[47,48,49,20,19,13,13,19]},{"a":28475,"t":"byte","b":[21,20,20,20,26,41,42,45]},{"a":28483,"t":"byte","b":[45,45,45,45,41,42,45,45]},{"a":28491,"t":"byte","b":[45,45,45,41,42,13,13,41]},{"a":28499,"t":"byte","b":[42,21,20,19,0,23,19,20]},{"a":28507,"t":"byte","b":[15,15,15,15,15,21,47,48]},{"a":28515,"t":"byte","b":[27,48,49,20,19,0,23,23]},{"a":28523,"t":"byte","b":[23,21,21,22,20,20,47,48]},{"a":28531,"t":"byte","b":[49,47,48,49,39,40,43,26]},{"a":28539,"t":"byte","b":[44,39,40,43,26,44,39,40]},{"a":28547,"t":"byte","b":[43,26,44,39,40,19,0,0]},{"a":28555,"t":"byte","b":[0,0,0,0,0,19,0,0]},{"a":28563,"t":"byte","b":[0,0,0,31,20,20,31,0]},{"a":28571,"t":"byte","b":[21,20,47,48,27,48,49,20]},{"a":28579,"t":"byte","b":[15,15,15,15,20,47,48,27]},{"a":28587,"t":"byte","b":[48,49,20,19,13,13,13,13]},{"a":28595,"t":"byte","b":[13,13,13,13,13,13]},{"a":28601,"l":"level_map_row_2","c":"Row 2 of the level map (174 tiles, $6FB9 to $7066), drawn on screen rows 5 and 6 by draw_new_column ($2269); see level_map ($6E5D).","t":"byte","b":[45,45,31,21,21,21,21,21]},{"a":28609,"t":"byte","b":[31,21,20,20,47,48,49,50]},{"a":28617,"t":"byte","b":[51,52,47,48,49,19,0,0]},{"a":28625,"t":"byte","b":[0,0,0,19,21,20,20,20]},{"a":28633,"t":"byte","b":[20,20,18,21,20,20,21,20]},{"a":28641,"t":"byte","b":[50,51,52,20,19,0,0,19]},{"a":28649,"t":"byte","b":[21,22,20,20,19,39,40,43]},{"a":28657,"t":"byte","b":[0,0,0,44,39,40,43,0]},{"a":28665,"t":"byte","b":[0,0,44,39,40,0,23,39]},{"a":28673,"t":"byte","b":[40,21,20,19,0,0,19,20]},{"a":28681,"t":"byte","b":[31,50,51,52,31,21,50,51]},{"a":28689,"t":"byte","b":[51,51,52,20,19,0,21,28]},{"a":28697,"t":"byte","b":[29,30,28,28,28,30,29,28]},{"a":28705,"t":"byte","b":[28,30,28,29,39,40,0,0]},{"a":28713,"t":"byte","b":[0,39,40,0,0,0,39,40]},{"a":28721,"t":"byte","b":[0,0,0,39,40,19,0,0]},{"a":28729,"t":"byte","b":[0,0,0,0,0,19,0,0]},{"a":28737,"t":"byte","b":[0,0,0,31,20,20,31,0]},{"a":28745,"t":"byte","b":[21,20,50,51,51,51,52,20]},{"a":28753,"t":"byte","b":[50,51,51,52,20,50,51,51]},{"a":28761,"t":"byte","b":[51,52,20,19,0,0,0,0]},{"a":28769,"t":"byte","b":[0,0,44,39,40,43]},{"a":28775,"l":"level_map_row_3","c":"Row 3 of the level map (174 tiles, $7067 to $7114), drawn on screen rows 7 and 8 by draw_new_column ($2269); see level_map ($6E5D).","t":"byte","b":[0,44,31,21,20,20,20,20]},{"a":28783,"t":"byte","b":[31,21,20,20,50,51,52,53]},{"a":28791,"t":"byte","b":[0,54,50,51,52,19,0,0]},{"a":28799,"t":"byte","b":[0,0,30,29,30,28,29,28]},{"a":28807,"t":"byte","b":[22,20,20,21,20,20,20,20]},{"a":28815,"t":"byte","b":[53,0,54,20,19,0,0,19]},{"a":28823,"t":"byte","b":[21,20,20,20,19,39,40,0]},{"a":28831,"t":"byte","b":[0,0,0,0,39,40,0,0]},{"a":28839,"t":"byte","b":[0,0,0,39,40,21,20,39]},{"a":28847,"t":"byte","b":[40,21,20,19,0,32,19,20]},{"a":28855,"t":"byte","b":[31,16,0,54,31,21,53,0]},{"a":28863,"t":"byte","b":[0,0,54,20,19,0,21,28]},{"a":28871,"t":"byte","b":[28,30,28,29,28,30,28,28]},{"a":28879,"t":"byte","b":[29,30,28,28,39,40,0,0]},{"a":28887,"t":"byte","b":[0,39,40,0,0,0,39,40]},{"a":28895,"t":"byte","b":[0,0,0,39,40,19,0,0]},{"a":28903,"t":"byte","b":[32,32,32,32,32,19,34,32]},{"a":28911,"t":"byte","b":[0,0,0,31,20,20,31,0]},{"a":28919,"t":"byte","b":[21,20,53,0,0,0,54,20]},{"a":28927,"t":"byte","b":[53,0,0,54,20,53,0,0]},{"a":28935,"t":"byte","b":[0,54,20,19,0,21,21,21]},{"a":28943,"t":"byte","b":[21,21,21,39,40,0]},{"a":28949,"l":"level_map_row_4","c":"Row 4 of the level map (174 tiles, $7115 to $71C2), drawn on screen rows 9 and 10 by draw_new_column ($2269); see level_map ($6E5D).","t":"byte","b":[0,0,31,21,20,20,20,20]},{"a":28957,"t":"byte","b":[31,21,20,20,53,0,54,53]},{"a":28965,"t":"byte","b":[0,54,53,0,54,19,0,0]},{"a":28973,"t":"byte","b":[0,0,30,29,30,29,28,28]},{"a":28981,"t":"byte","b":[28,22,20,20,20,20,20,20]},{"a":28989,"t":"byte","b":[20,20,20,20,19,36,35,19]},{"a":28997,"t":"byte","b":[21,20,20,20,19,39,40,0]},{"a":29005,"t":"byte","b":[0,0,0,0,39,40,0,0]},{"a":29013,"t":"byte","b":[0,0,0,39,40,21,20,39]},{"a":29021,"t":"byte","b":[40,21,20,19,0,0,19,20]},{"a":29029,"t":"byte","b":[31,53,0,54,31,21,53,0]},{"a":29037,"t":"byte","b":[0,0,54,20,19,0,21,29]},{"a":29045,"t":"byte","b":[28,30,28,29,28,30,28,28]},{"a":29053,"t":"byte","b":[28,30,28,29,39,40,0,0]},{"a":29061,"t":"byte","b":[0,39,40,0,0,0,39,40]},{"a":29069,"t":"byte","b":[0,0,0,39,40,19,0,0]},{"a":29077,"t":"byte","b":[0,58,59,60,61,19,0,0]},{"a":29085,"t":"byte","b":[0,0,0,31,20,20,31,0]},{"a":29093,"t":"byte","b":[21,20,20,20,20,20,20,20]},{"a":29101,"t":"byte","b":[53,0,0,54,20,20,20,20]},{"a":29109,"t":"byte","b":[20,20,20,19,0,21,20,20]},{"a":29117,"t":"byte","b":[20,20,20,39,40,0]},{"a":29123,"l":"level_map_row_5","c":"Row 5 of the level map (174 tiles, $71C3 to $7270), drawn on screen rows 11 and 12 by draw_new_column ($2269); see level_map ($6E5D).","t":"byte","b":[20,20,31,33,32,32,32,32]},{"a":29131,"t":"byte","b":[31,21,20,20,20,20,20,20]},{"a":29139,"t":"byte","b":[20,20,20,20,20,19,33,32]},{"a":29147,"t":"byte","b":[32,32,30,29,30,28,28,30]},{"a":29155,"t":"byte","b":[28,28,33,32,32,32,1,2]},{"a":29163,"t":"byte","b":[3,32,32,32,35,35,35,35]},{"a":29171,"t":"byte","b":[33,32,32,32,19,37,38,46]},{"a":29179,"t":"byte","b":[46,46,46,46,37,38,46,46]},{"a":29187,"t":"byte","b":[46,46,46,37,38,33,32,37]},{"a":29195,"t":"byte","b":[38,21,20,19,33,32,32,32]},{"a":29203,"t":"byte","b":[31,33,32,32,31,21,20,20]},{"a":29211,"t":"byte","b":[20,20,20,20,19,33,32,32]},{"a":29219,"t":"byte","b":[32,32,32,32,32,32,32,32]},{"a":29227,"t":"byte","b":[1,2,3,32,37,38,46,46]},{"a":29235,"t":"byte","b":[46,37,38,46,46,46,37,38]},{"a":29243,"t":"byte","b":[46,46,46,37,38,19,33,32]},{"a":29251,"t":"byte","b":[32,55,56,57,55,19,33,32]},{"a":29259,"t":"byte","b":[32,32,32,31,28,28,31,33]},{"a":29267,"t":"byte","b":[32,32,32,32,32,32,32,31]},{"a":29275,"t":"byte","b":[36,35,35,35,31,32,32,32]},{"a":29283,"t":"byte","b":[32,1,2,3,32,32,32,32]},{"a":29291,"t":"byte","b":[32,32,32,37,38,46]},{"a":29297,"l":"level_map_row_6","c":"Row 6 of the level map (174 tiles, $7271 to $731E), drawn on screen rows 13 and 14 by draw_new_column ($2269); see level_map ($6E5D).","t":"byte","b":[7,7,10,7,7,7,7,7]},{"a":29305,"t":"byte","b":[10,7,8,7,7,7,7,7]},{"a":29313,"t":"byte","b":[7,7,7,7,7,8,7,7]},{"a":29321,"t":"byte","b":[7,7,8,7,8,7,7,8]},{"a":29329,"t":"byte","b":[7,9,7,7,7,7,4,5]},{"a":29337,"t":"byte","b":[6,7,7,8,8,7,7,7]},{"a":29345,"t":"byte","b":[7,7,7,7,8,7,7,7]},{"a":29353,"t":"byte","b":[7,7,7,7,7,7,7,7]},{"a":29361,"t":"byte","b":[9,7,7,7,7,7,7,7]},{"a":29369,"t":"byte","b":[7,7,7,7,7,7,7,9]},{"a":29377,"t":"byte","b":[10,7,7,7,10,7,7,7]},{"a":29385,"t":"byte","b":[7,7,7,7,7,7,7,7]},{"a":29393,"t":"byte","b":[7,7,7,7,7,7,7,7]},{"a":29401,"t":"byte","b":[4,5,6,7,7,7,7,7]},{"a":29409,"t":"byte","b":[9,7,7,7,7,7,7,7]},{"a":29417,"t":"byte","b":[7,7,7,7,7,9,7,7]},{"a":29425,"t":"byte","b":[7,7,7,7,7,7,7,7]},{"a":29433,"t":"byte","b":[7,7,7,10,7,7,10,7]},{"a":29441,"t":"byte","b":[7,7,7,7,7,7,7,7]},{"a":29449,"t":"byte","b":[7,7,7,7,7,7,7,7]},{"a":29457,"t":"byte","b":[7,4,5,6,8,7,7,9]},{"a":29465,"t":"byte","b":[7,7,7,7,7,7]},{"a":29471,"l":"level_map_row_7","c":"Row 7 of the level map (174 tiles, $731F to $73CC), drawn on screen rows 15 and 16 by draw_new_column ($2269); see level_map ($6E5D), the bottom row.","t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29479,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29487,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29495,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29503,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29511,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29519,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29527,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29535,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29543,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29551,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29559,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29567,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29575,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29583,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29591,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29599,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29607,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29615,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29623,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29631,"t":"byte","b":[11,12,11,12,11,12,11,12]},{"a":29639,"t":"byte","b":[11,12,11,12,11,12]},{"a":29645,"t":"gap","n":374},{"a":30019,"l":"driver_image_music_init","c":"Image, stored in this file at $7543-$7568 (38 bytes), of the sound driver's music_init at $B0C8; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Silences the sound chip: clears the resonance and filter routing at $D417, sets volume 15 at $D418, and zeroes all 21 voice registers $D400-$D414 together with the driver's shadow table at $B02F. Level 1 puts the driver here at run time from its own file (a copy of the bytes at $7543); the level loads after it leave $9A00-$BEFF alone, and level 2 calls it at $5491.","t":"byte","b":[169,0,141,194,176,141,190,176]},{"a":30027,"t":"byte","b":[141,23,212,169,31,141,193,176]},{"a":30035,"t":"byte","b":[141,0,176,141,24,212,162,20]},{"a":30043,"t":"byte","b":[169,0,157,0,212,169,0,157]},{"a":30051,"t":"byte","b":[47,176,202,16,245,96]},{"a":30057,"l":"driver_image_play_sound","c":"Image, stored in this file at $7569-$75B2 (74 bytes), of the sound driver's play_sound at $B0EE; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Starts a sound effect. X is the offset of a row in the sound table $BB48; the levels pass 4 times the sound number. Returns at once while $B000 is zero. Otherwise it takes up to three consecutive table bytes as the entries for voices 0 to 2. An entry with bit 7 set leaves its voice alone; any other entry is a stream number n, and the address at offset 2n of the pointer table $BB74 becomes the voice's stream pointer $B05B/$B05E. Voices 1 and 2 first clear $D415-$D417 and $B07E. $B138 then restarts the voice and a zero goes to a control register whose offset is read from $B8B4 with the table position in X, not the voice number.","t":"byte","b":[173,0,176,240,68,160,0,189]},{"a":30065,"t":"byte","b":[72,187,48,55,142,199,176,10]},{"a":30073,"t":"byte","b":[170,189,116,187,153,91,176,189]},{"a":30081,"t":"byte","b":[117,187,153,94,176,192,0,240]},{"a":30089,"t":"byte","b":[14,169,0,141,21,212,141,22]},{"a":30097,"t":"byte","b":[212,141,23,212,141,126,176,32]},{"a":30105,"t":"byte","b":[56,177,174,199,176,140,199,176]},{"a":30113,"t":"byte","b":[188,180,184,169,0,153,4,212]},{"a":30121,"t":"byte","b":[172,199,176,232,200,192,3,144]},{"a":30129,"t":"byte","b":[190,96]},{"a":30131,"l":"driver_image_init_voice","c":"Image, stored in this file at $75B3-$75F0 (62 bytes), of the sound driver's init_voice at $B138; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Sets up voice Y (0 to 2) to start a stream: marks it active in $00F7+Y, sets its note countdown $B004 to Y+1, clears its transpose $B08D, stream position $B0A8, fixed-length flag $B087, keep flags $B0C4, slide flag $B075, $B078, arpeggio flag $B07B, drum flag $B081 and new-note flag $B084, points its wave program $B020-$B029 at the idle program $B8B7 and clears its pulse start $B02F. Called by $B0EE.","t":"byte","b":[169,1,153,247,0,200,152,136]},{"a":30139,"t":"byte","b":[153,4,176,169,0,153,141,176]},{"a":30147,"t":"byte","b":[153,168,176,153,135,176,153,196]},{"a":30155,"t":"byte","b":[176,153,117,176,153,120,176,153]},{"a":30163,"t":"byte","b":[123,176,153,129,176,153,132,176]},{"a":30171,"t":"byte","b":[169,183,153,32,176,153,35,176]},{"a":30179,"t":"byte","b":[169,184,153,38,176,153,41,176]},{"a":30187,"t":"byte","b":[169,0,153,47,176,96]},{"a":30193,"l":"driver_image_music_play","c":"Image, stored in this file at $75F1-$7691 (161 bytes), of the sound driver's music_play at $B176; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Plays the music and sound effects, once a frame from the interrupt at $1EF4 in level 1; level 2 calls it from $6526. Returns at once while $B001 is set; otherwise works through the three voices, X from 2 down to 0, through zero page $F7-$F9.","t":"byte","b":[173,1,176,240,1,96,169,2]},{"a":30201,"t":"byte","b":[133,250,166,250,189,180,184,141]},{"a":30209,"t":"byte","b":[110,176,181,247,208,3,76,10]},{"a":30217,"t":"byte","b":[178,173,194,176,240,3,32,23]},{"a":30225,"t":"byte","b":[178,173,190,176,240,30,206,191]},{"a":30233,"t":"byte","b":[176,173,191,176,208,22,173,192]},{"a":30241,"t":"byte","b":[176,141,191,176,206,193,176,173]},{"a":30249,"t":"byte","b":[193,176,141,24,212,41,15,208]},{"a":30257,"t":"byte","b":[3,76,40,184,32,59,178,181]},{"a":30265,"t":"byte","b":[247,240,73,189,129,176,208,68]},{"a":30273,"t":"byte","b":[32,248,179,32,78,182,32,17]},{"a":30281,"t":"byte","b":[183,189,123,176,208,54,189,132]},{"a":30289,"t":"byte","b":[176,240,31,169,0,157,132,176]},{"a":30297,"t":"byte","b":[189,138,176,189,103,176,24,125]},{"a":30305,"t":"byte","b":[138,176,125,141,176,168,185,194]},{"a":30313,"t":"byte","b":[184,157,97,176,185,32,185,157]},{"a":30321,"t":"byte","b":[100,176,32,152,182,172,110,176]},{"a":30329,"t":"byte","b":[189,97,176,153,0,212,189,100]},{"a":30337,"t":"byte","b":[176,153,1,212,198,250,48,3]},{"a":30345,"t":"byte","b":[76,128,177,32,182,183,76,94]},{"a":30353,"t":"byte","b":[183]},{"a":30354,"l":"driver_image_fade_in_step","c":"Image, stored in this file at $7692-$76B5 (36 bytes), of the sound driver's fade_in_step at $B217; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Raises the volume one step at a time while a fade-in runs. Counts $B0BF down; at zero it reloads it from $B0C0, adds 1 to $B0C1, writes that to the volume register $D418 and clears the fade-in flag $B0C2 once the low nibble equals the target $B0C3. Called by $B176 while $B0C2 is non-zero.","t":"byte","b":[206,191,176,173,191,176,208,27]},{"a":30362,"t":"byte","b":[173,192,176,141,191,176,238,193]},{"a":30370,"t":"byte","b":[176,173,193,176,141,24,212,41]},{"a":30378,"t":"byte","b":[15,205,195,176,208,5,169,0]},{"a":30386,"t":"byte","b":[141,194,176,96]},{"a":30390,"l":"driver_image_voice_tick","c":"Image, stored in this file at $76B6-$76D6 (33 bytes), of the sound driver's voice_tick at $B23B; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Counts the current voice's note down: decrements $B004,X and returns unless it reaches zero. At zero it loads the voice's stream pointer $B05B/$B05E into $F0/$F1, runs $B25C, steps the stream position $B0A8 past the length byte and stores $F0/$F1 back. Called by $B176.","t":"byte","b":[222,4,176,240,1,96,189,91]},{"a":30398,"t":"byte","b":[176,133,240,189,94,176,133,241]},{"a":30406,"t":"byte","b":[32,92,178,254,168,176,165,240]},{"a":30414,"t":"byte","b":[157,91,176,165,241,157,94,176]},{"a":30422,"t":"byte","b":[96]},{"a":30423,"l":"driver_image_read_stream","c":"Image, stored in this file at $76D7-$7790 (186 bytes), of the sound driver's read_stream at $B25C; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Reads the next entry of the current voice's stream through ($F0),Y with Y from $B0A8,X. A byte with bit 7 set is a command and goes to $B316. A byte of $60 is a rest: only the length byte is read. Any other byte is a note: it is stored in $B067, the new-note flag $B084 becomes 1 and the drum flag $B081 is cleared. Each part the voice's keep flags $B0C4 do not hold is restarted: the wave program (mask 4, from $B023/$B029), the pulse sweep (mask 2, from $B02F, $B093 and $B099), the pitch slide (mask 1, from $B038), the arpeggio (mask $10) and the filter sweep (mask 8). The length byte then goes to $B004,X, or $B007,X in fixed-length mode, and the stream position to $B0A8,X. Called by $B23B.","t":"byte","b":[188,168,176,177,240,16,3,76]},{"a":30431,"t":"byte","b":[22,179,201,96,208,3,76,0]},{"a":30439,"t":"byte","b":[179,157,103,176,169,1,157,132]},{"a":30447,"t":"byte","b":[176,169,0,157,129,176,189,196]},{"a":30455,"t":"byte","b":[176,41,4,208,17,169,1,157]},{"a":30463,"t":"byte","b":[10,176,189,35,176,157,32,176]},{"a":30471,"t":"byte","b":[189,41,176,157,38,176,189,196]},{"a":30479,"t":"byte","b":[176,41,2,208,23,169,1,157]},{"a":30487,"t":"byte","b":[13,176,189,47,176,157,44,176]},{"a":30495,"t":"byte","b":[189,147,176,157,144,176,189,153]},{"a":30503,"t":"byte","b":[176,157,150,176,189,117,176,240]},{"a":30511,"t":"byte","b":[18,189,196,176,41,1,208,11]},{"a":30519,"t":"byte","b":[169,1,157,16,176,189,56,176]},{"a":30527,"t":"byte","b":[157,53,176,189,123,176,240,17]},{"a":30535,"t":"byte","b":[189,196,176,41,16,208,10,169]},{"a":30543,"t":"byte","b":[0,157,177,176,169,1,157,171]},{"a":30551,"t":"byte","b":[176,189,126,176,240,30,189,196]},{"a":30559,"t":"byte","b":[176,41,8,208,23,173,71,176]},{"a":30567,"t":"byte","b":[141,72,176,173,75,176,141,77]},{"a":30575,"t":"byte","b":[176,173,76,176,141,78,176,169]},{"a":30583,"t":"byte","b":[1,141,19,176,189,135,176,240]},{"a":30591,"t":"byte","b":[6,189,7,176,76,14,179,200]},{"a":30599,"t":"byte","b":[177,240,157,4,176,152,157,168]},{"a":30607,"t":"byte","b":[176,96]},{"a":30609,"l":"driver_image_stream_command","c":"Image, stored in this file at $7791-$77A2 (18 bytes), of the sound driver's stream_command at $B316; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. 2 of its bytes differ from the live driver in the snapshot. The live piece: Runs a stream command, entered from $B25C with the command byte (bit 7 set) in A. Looks up the handler in the tables $B87E and $B88C, stores it in the JMP operand at $B326, reloads X from $FA and jumps.","t":"byte","b":[170,189,254,183,141,38,179,189]},{"a":30617,"t":"byte","b":[12,184,141,39,179,166,250,76]},{"a":30625,"t":"byte","b":[255,255]},{"a":30627,"l":"driver_image_cmd_next_pattern","c":"Image, stored in this file at $77A3-$77A8 (6 bytes), of the sound driver's cmd_next_pattern at $B328; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $80: calls $B32E to fetch the voice's next pattern address into $F0/$F1 and carries on reading at $B25C.","t":"byte","b":[32,46,179,76,92,178]},{"a":30633,"l":"driver_image_track_next_pattern","c":"Image, stored in this file at $77A9-$77FF (87 bytes), of the sound driver's track_next_pattern at $B32E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Fetches a pattern from the voice's track list. Loads the list address $B01A/$B01D into $F2/$F3, sets the stream position $B0A8 to 0, and clears the transpose $B08D when it is set and the repeat count $B06A is zero. It then reads the entry at $B014,X. A value below $F0 is a pattern number n and gives $F0/$F1 the byte at $B9E4+n, which the code reads twice, once into each of $F0 and $F1; if the repeat count is zero the track index advances, otherwise the count goes down and the index advances when it reaches zero. A value of $F0 or more is a track command, dispatched through $B89A and $B8A0 by the JMP operand at $B383.","t":"byte","b":[166,250,189,26,176,133,242,189]},{"a":30641,"t":"byte","b":[29,176,133,243,169,0,157,168]},{"a":30649,"t":"byte","b":[176,189,141,176,240,10,189,106]},{"a":30657,"t":"byte","b":[176,208,5,169,0,157,141,176]},{"a":30665,"t":"byte","b":[188,20,176,177,242,201,240,176]},{"a":30673,"t":"byte","b":[28,170,189,228,185,133,240,189]},{"a":30681,"t":"byte","b":[228,185,133,241,166,250,189,106]},{"a":30689,"t":"byte","b":[176,240,6,222,106,176,240,1]},{"a":30697,"t":"byte","b":[96,254,20,176,96,170,189,170]},{"a":30705,"t":"byte","b":[183,141,131,179,189,176,183,141]},{"a":30713,"t":"byte","b":[132,179,166,250,76,255,255]},{"a":30720,"l":"driver_image_track_jump","c":"Image, stored in this file at $7800-$7808 (9 bytes), of the sound driver's track_jump at $B385; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Track command $F0: sets the track index $B014,X to the next byte of the list and goes on reading the list at $B34E.","t":"byte","b":[200,177,242,157,20,176,76,78]},{"a":30728,"t":"byte","b":[179]},{"a":30729,"l":"driver_image_track_repeat_cmd","c":"Image, stored in this file at $7809-$7817 (15 bytes), of the sound driver's track_repeat_cmd at $B38E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Track command $F1: stores the next byte in the repeat count $B06A,X, moves the track index $B014,X on by 2 and goes on at $B34E.","t":"byte","b":[200,177,242,157,106,176,254,20]},{"a":30737,"t":"byte","b":[176,254,20,176,76,78,179]},{"a":30744,"l":"driver_image_track_stop","c":"Image, stored in this file at $7818-$7828 (17 bytes), of the sound driver's track_stop at $B39D; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Track command $F2: stops the voice: clears its active flag $F7+X and the voice's registers $D404-$D406 and returns.","t":"byte","b":[169,0,149,247,172,110,176,153]},{"a":30752,"t":"byte","b":[4,212,153,5,212,153,6,212]},{"a":30760,"t":"byte","b":[96]},{"a":30761,"l":"driver_image_track_transpose","c":"Image, stored in this file at $7829-$7837 (15 bytes), of the sound driver's track_transpose at $B3AE; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Track command $F3: stores the next byte in the transposition $B08D,X, moves the track index on by 2 and goes on at $B34E.","t":"byte","b":[200,177,242,157,141,176,254,20]},{"a":30769,"t":"byte","b":[176,254,20,176,76,78,179]},{"a":30776,"l":"driver_image_track_fade_out","c":"Image, stored in this file at $7838-$784C (21 bytes), of the sound driver's track_fade_out at $B3BD; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Track command $F4: stores the next byte in $B0BE, $B0BF and $B0C0, which starts a fade-out with that rate, moves the track index on by 2 and goes on at $B34E.","t":"byte","b":[200,177,242,141,190,176,141,191]},{"a":30784,"t":"byte","b":[176,141,192,176,254,20,176,254]},{"a":30792,"t":"byte","b":[20,176,76,78,179]},{"a":30797,"l":"driver_image_track_fade_in","c":"Image, stored in this file at $784D-$7872 (38 bytes), of the sound driver's track_fade_in at $B3D2; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Track command $F5: stores the next byte in $B0C2, $B0BF and $B0C0, which starts a fade-in with that rate, sets $B0C1 and $D418 to $10, stores the byte after it in $B0C3 as the target volume, moves the track index on by 3 and goes on at $B34E.","t":"byte","b":[200,177,242,141,194,176,141,191]},{"a":30805,"t":"byte","b":[176,141,192,176,169,16,141,193]},{"a":30813,"t":"byte","b":[176,141,24,212,200,177,242,141]},{"a":30821,"t":"byte","b":[195,176,254,20,176,254,20,176]},{"a":30829,"t":"byte","b":[254,20,176,76,78,179]},{"a":30835,"l":"driver_image_wave_program_tick","c":"Image, stored in this file at $7873-$78BC (74 bytes), of the sound driver's wave_program_tick at $B3F8; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. 2 of its bytes differ from the live driver in the snapshot. The live piece: Runs the current voice's wave program, called by $B176 for each active voice that is not playing a drum. Counts $B00A,X down and returns unless it reaches zero. At zero, if the pitch offset $B08A is set, it clears it and looks the frequency up again from the note $B067 plus the transposition $B08D in the tables $B8C2 and $B920. It then loads the program pointer $B020/$B026 into $F0/$F1, reads the command number at the position $B06D (starting at 0), stores the handler from $B8A6 and $B8AD in the JMP operand at $B440 and jumps to it. $B42B is where commands 1 and 2 read the next command.","t":"byte","b":[222,10,176,240,1,96,189,138]},{"a":30843,"t":"byte","b":[176,240,25,169,0,157,138,176]},{"a":30851,"t":"byte","b":[189,103,176,24,125,141,176,168]},{"a":30859,"t":"byte","b":[185,194,184,157,97,176,185,32]},{"a":30867,"t":"byte","b":[185,157,100,176,189,32,176,133]},{"a":30875,"t":"byte","b":[240,189,38,176,133,241,169,0]},{"a":30883,"t":"byte","b":[141,109,176,172,109,176,177,240]},{"a":30891,"t":"byte","b":[170,189,166,184,141,64,180,189]},{"a":30899,"t":"byte","b":[173,184,141,65,180,166,250,76]},{"a":30907,"t":"byte","b":[255,255]},{"a":30909,"l":"driver_image_wave_wait","c":"Image, stored in this file at $78BD-$78C8 (12 bytes), of the sound driver's wave_wait at $B442; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Wave-program command 0: stores the next byte as the number of frames to wait in $B00A,X and ends the step through $B4ED.","t":"byte","b":[200,140,109,176,177,240,157,10]},{"a":30917,"t":"byte","b":[176,76,237,180]},{"a":30921,"l":"driver_image_wave_jump","c":"Image, stored in this file at $78C9-$78DC (20 bytes), of the sound driver's wave_jump at $B44E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Wave-program command 1: loads $F0/$F1 with the two bytes that follow, a new program address, sets the position $B06D to 0 and carries on at $B42B in the same frame.","t":"byte","b":[200,177,240,72,200,177,240,133]},{"a":30929,"t":"byte","b":[241,104,133,240,169,0,141,109]},{"a":30937,"t":"byte","b":[176,76,43,180]},{"a":30941,"l":"driver_image_wave_envelope","c":"Image, stored in this file at $78DD-$78FB (31 bytes), of the sound driver's wave_envelope at $B462; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Wave-program command 2: stores the next two bytes in $B06F,X (attack/decay) and $B072,X (sustain/release), writes them to the voice's $D405 and $D406 and carries on at $B42B.","t":"byte","b":[200,177,240,157,111,176,200,177]},{"a":30949,"t":"byte","b":[240,157,114,176,200,140,109,176]},{"a":30957,"t":"byte","b":[172,110,176,153,6,212,189,111]},{"a":30965,"t":"byte","b":[176,153,5,212,76,43,180]},{"a":30972,"l":"driver_image_wave_control","c":"Image, stored in this file at $78FC-$7914 (25 bytes), of the sound driver's wave_control at $B481; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Wave-program command 3: writes the next byte to the voice's control register $D404 (waveform and gate) and stores the byte after it as the frames to wait in $B00A,X; ends the step through $B4ED.","t":"byte","b":[200,177,240,133,246,200,177,240]},{"a":30980,"t":"byte","b":[157,10,176,140,109,176,172,110]},{"a":30988,"t":"byte","b":[176,165,246,153,4,212,76,237]},{"a":30996,"t":"byte","b":[180]},{"a":30997,"l":"driver_image_wave_control_early","c":"Image, stored in this file at $7915-$7931 (29 bytes), of the sound driver's wave_control_early at $B49A; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Wave-program command 4: writes the next byte to the voice's $D404 like command 3, but the wait is the note's remaining count $B004,X minus the byte after it, so the step comes that many frames before the note ends.","t":"byte","b":[200,177,240,133,246,200,140,109]},{"a":31005,"t":"byte","b":[176,189,4,176,56,241,240,157]},{"a":31013,"t":"byte","b":[10,176,172,110,176,165,246,153]},{"a":31021,"t":"byte","b":[4,212,76,237,180]},{"a":31026,"l":"driver_image_wave_control_pitch","c":"Image, stored in this file at $7932-$7967 (54 bytes), of the sound driver's wave_control_pitch at $B4B7; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Wave-program command 5: writes the next byte to the voice's $D404, stores the one after it as the frames to wait in $B00A,X and the third in $B084,X and $B08A,X, which asks for the frequency to be looked up again with that offset. When the third byte is 0 it instead sets the voice's frequency $B061/$B064 to $FFFF, clears $B084 and sets the offset to 1.","t":"byte","b":[200,177,240,133,246,200,177,240]},{"a":31034,"t":"byte","b":[157,10,176,200,140,109,176,177]},{"a":31042,"t":"byte","b":[240,240,17,157,132,176,157,138]},{"a":31050,"t":"byte","b":[176,172,110,176,165,246,153,4]},{"a":31058,"t":"byte","b":[212,76,237,180,169,255,157,97]},{"a":31066,"t":"byte","b":[176,157,100,176,169,0,157,132]},{"a":31074,"t":"byte","b":[176,169,1,76,205,180]},{"a":31080,"l":"driver_image_wave_advance","c":"Image, stored in this file at $7968-$797B (20 bytes), of the sound driver's wave_advance at $B4ED; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: End of a wave-program step: adds 1 to the position $B06D and stores $F0/$F1 plus the position as the voice's wave pointer $B020/$B026. Wave-program command 6 enters here directly, so it skips one byte.","t":"byte","b":[238,109,176,165,240,24,109,109]},{"a":31088,"t":"byte","b":[176,157,32,176,165,241,105,0]},{"a":31096,"t":"byte","b":[157,38,176,96]},{"a":31100,"l":"driver_image_cmd_wave_program","c":"Image, stored in this file at $797C-$7999 (30 bytes), of the sound driver's cmd_wave_program at $B501; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $81: the next byte n selects a wave program. The address at offset 2n of the table $BA7C is stored as the voice's program start $B023/$B029, which the next note copies to $B020/$B026. Carries on at $B25C.","t":"byte","b":[200,177,240,10,141,2,176,200]},{"a":31108,"t":"byte","b":[152,157,168,176,172,2,176,185]},{"a":31116,"t":"byte","b":[124,186,157,35,176,185,125,186]},{"a":31124,"t":"byte","b":[157,41,176,76,92,178]},{"a":31130,"l":"driver_image_cmd_pulse","c":"Image, stored in this file at $799A-$79B3 (26 bytes), of the sound driver's cmd_pulse at $B51F; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $82: the three bytes that follow go to $B02F (start index into the table $B9E4), $B099 (initial pulse width, high byte) and $B093 (low byte). Carries on at $B25C.","t":"byte","b":[200,177,240,157,47,176,200,177]},{"a":31138,"t":"byte","b":[240,157,153,176,200,177,240,157]},{"a":31146,"t":"byte","b":[147,176,200,152,157,168,176,76]},{"a":31154,"t":"byte","b":[92,178]},{"a":31156,"l":"driver_image_cmd_pitch_slide","c":"Image, stored in this file at $79B4-$79CC (25 bytes), of the sound driver's cmd_pitch_slide at $B539; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $83: the next byte goes to $B038, the start index into the slide table $BA07. Sets the slide flag $B075 and clears $B032 and the arpeggio flag $B07B. Carries on at $B25C.","t":"byte","b":[200,177,240,157,56,176,200,152]},{"a":31164,"t":"byte","b":[157,168,176,157,117,176,169,0]},{"a":31172,"t":"byte","b":[157,50,176,157,123,176,76,92]},{"a":31180,"t":"byte","b":[178]},{"a":31181,"l":"driver_image_cmd_arpeggio","c":"Image, stored in this file at $79CD-$7A0A (62 bytes), of the sound driver's cmd_arpeggio at $B552; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream commands $84 and $8D: clears the slide flag $B075 and sets the arpeggio flag $B07B. The next byte n selects the entry whose address is at offset 2n of the table $BA5B (kept in $F4/$F5); its first byte goes to $B0AE (frames per step), its second to $B0B4 (number of steps) and the address after them to $B03B/$B041. Carries on at $B25C.","t":"byte","b":[169,0,157,117,176,200,152,157]},{"a":31189,"t":"byte","b":[123,176,177,240,10,170,189,91]},{"a":31197,"t":"byte","b":[186,133,244,189,92,186,133,245]},{"a":31205,"t":"byte","b":[200,152,166,250,157,168,176,160]},{"a":31213,"t":"byte","b":[0,177,244,157,174,176,200,177]},{"a":31221,"t":"byte","b":[244,157,180,176,165,244,24,105]},{"a":31229,"t":"byte","b":[2,157,59,176,165,245,105,0]},{"a":31237,"t":"byte","b":[157,65,176,76,92,178]},{"a":31243,"l":"driver_image_cmd_fixed_length","c":"Image, stored in this file at $7A0B-$7A1B (17 bytes), of the sound driver's cmd_fixed_length at $B590; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $87: the next byte is stored in $B007,X and in the flag $B087,X, so that following notes carry no length byte. Carries on at $B25C.","t":"byte","b":[200,177,240,157,7,176,157,135]},{"a":31251,"t":"byte","b":[176,200,152,157,168,176,76,92]},{"a":31259,"t":"byte","b":[178]},{"a":31260,"l":"driver_image_cmd_free_length","c":"Image, stored in this file at $7A1C-$7A26 (11 bytes), of the sound driver's cmd_free_length at $B5A1; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $88: clears the fixed-length flag $B087,X so that notes carry a length byte again. Carries on at $B25C.","t":"byte","b":[169,0,157,135,176,254,168,176]},{"a":31268,"t":"byte","b":[76,92,178]},{"a":31271,"l":"driver_image_cmd_drum","c":"Image, stored in this file at $7A27-$7A92 (108 bytes), of the sound driver's cmd_drum at $B5AC; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream commands $86 and $89: the next byte is an offset into the 5-byte records of the table $B97E. A record holds a list address, a list length (to $B0B8), a sustain/release value (to $D406 and $B081) and a pulse width high byte (to $D403). The list address goes to $B04F/$B055 and the address plus the length to $B052/$B058. It then writes 0 to $D405 and 8 to $D404, clears $B0BB, takes the byte after the drum number as the note length $B004,X and returns without reading on; $B7B6 plays the list. It also restarts the filter sweep, copying $B047 to $B048, $B04B to $B04D and $B04C to $B04E and setting $B013 to 1.","t":"byte","b":[200,152,157,168,176,177,240,168]},{"a":31279,"t":"byte","b":[185,128,185,157,184,176,185,126]},{"a":31287,"t":"byte","b":[185,157,79,176,24,125,184,176]},{"a":31295,"t":"byte","b":[157,82,176,185,127,185,157,85]},{"a":31303,"t":"byte","b":[176,105,0,157,88,176,185,129]},{"a":31311,"t":"byte","b":[185,72,185,130,185,172,110,176]},{"a":31319,"t":"byte","b":[153,3,212,104,153,6,212,157]},{"a":31327,"t":"byte","b":[129,176,169,0,153,5,212,169]},{"a":31335,"t":"byte","b":[8,153,4,212,169,0,157,187]},{"a":31343,"t":"byte","b":[176,254,168,176,188,168,176,177]},{"a":31351,"t":"byte","b":[240,157,4,176,173,71,176,141]},{"a":31359,"t":"byte","b":[72,176,173,75,176,141,77,176]},{"a":31367,"t":"byte","b":[173,76,176,141,78,176,169,1]},{"a":31375,"t":"byte","b":[141,19,176,96]},{"a":31379,"l":"driver_image_cmd_filter","c":"Image, stored in this file at $7A93-$7AC8 (54 bytes), of the sound driver's cmd_filter at $B618; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $85: the first byte goes to $B047 (start index into the table $BA62), the second to $B04B and $B04D, the third to $B04C and $B04E, the fourth to the filter control register $D417 and to $B07E,X, after all three of $B07E are cleared. Carries on at $B25C.","t":"byte","b":[200,177,240,141,71,176,200,177]},{"a":31387,"t":"byte","b":[240,141,75,176,141,77,176,200]},{"a":31395,"t":"byte","b":[177,240,141,76,176,141,78,176]},{"a":31403,"t":"byte","b":[200,177,240,72,200,152,157,168]},{"a":31411,"t":"byte","b":[176,169,0,141,126,176,141,127]},{"a":31419,"t":"byte","b":[176,141,128,176,104,141,23,212]},{"a":31427,"t":"byte","b":[157,126,176,76,92,178]},{"a":31433,"l":"driver_image_pulse_step","c":"Image, stored in this file at $7AC9-$7B12 (74 bytes), of the sound driver's pulse_step at $B64E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Pulse-width sweep of the current voice. Counts $B00D,X down. At zero it reads a step from the table $B9E4 at the index $B02C,X: a frame count (to $B00D), a low and a high step (to $B09C and $B09F); a count of 0 means the next byte is a new index and the read is repeated. Every call it adds the step to the width $B090/$B096 and writes it to the voice's $D402 and $D403. Called by $B176.","t":"byte","b":[222,13,176,208,40,188,44,176]},{"a":31441,"t":"byte","b":[185,228,185,208,10,200,185,228]},{"a":31449,"t":"byte","b":[185,157,44,176,76,83,182,157]},{"a":31457,"t":"byte","b":[13,176,200,185,228,185,157,156]},{"a":31465,"t":"byte","b":[176,200,185,228,185,157,159,176]},{"a":31473,"t":"byte","b":[200,152,157,44,176,172,110,176]},{"a":31481,"t":"byte","b":[189,144,176,24,125,156,176,157]},{"a":31489,"t":"byte","b":[144,176,153,2,212,189,150,176]},{"a":31497,"t":"byte","b":[125,159,176,157,150,176,153,3]},{"a":31505,"t":"byte","b":[212,96]},{"a":31507,"l":"driver_image_pitch_slide_step","c":"Image, stored in this file at $7B13-$7B8B (121 bytes), of the sound driver's pitch_slide_step at $B698; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Pitch slide of the current voice. Returns if $B075,X is zero. Counts $B010,X down. At zero it reads a step (frame count, low step, high step) from the table $BA07, or from $BA5B when $B032 is non-zero, at the index $B035,X into $B010, $B0A2 and $B0A5; a count of 0 means the next byte is a new index. Every call it adds the step to the frequency $B061/$B064. Called by $B176 before the frequency is written.","t":"byte","b":[189,117,176,240,250,222,16,176]},{"a":31515,"t":"byte","b":[208,88,189,50,176,240,43,188]},{"a":31523,"t":"byte","b":[53,176,185,91,186,208,10,200]},{"a":31531,"t":"byte","b":[185,91,186,157,53,176,76,167]},{"a":31539,"t":"byte","b":[182,157,16,176,200,185,91,186]},{"a":31547,"t":"byte","b":[157,162,176,200,185,91,186,157]},{"a":31555,"t":"byte","b":[165,176,200,152,157,53,176,76]},{"a":31563,"t":"byte","b":[250,182,188,53,176,185,7,186]},{"a":31571,"t":"byte","b":[208,10,200,185,7,186,157,53]},{"a":31579,"t":"byte","b":[176,76,210,182,157,16,176,200]},{"a":31587,"t":"byte","b":[185,7,186,157,162,176,200,185]},{"a":31595,"t":"byte","b":[7,186,157,165,176,200,152,157]},{"a":31603,"t":"byte","b":[53,176,172,110,176,189,97,176]},{"a":31611,"t":"byte","b":[24,125,162,176,157,97,176,189]},{"a":31619,"t":"byte","b":[100,176,125,165,176,157,100,176]},{"a":31627,"t":"byte","b":[96]},{"a":31628,"l":"driver_image_arpeggio_step","c":"Image, stored in this file at $7B8C-$7BD8 (77 bytes), of the sound driver's arpeggio_step at $B711; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Arpeggio of the current voice. Returns if $B07B,X is zero. Counts $B0AB,X down; at zero it reloads it from $B0AE, reads the step at $B0B1,X from the list at $B03B/$B041, adds it to the note $B067 and the offsets $B08A and $B08D, looks the sum up in $B8C2 and $B920 and writes the frequency to the voice's $D400/$D401. $B0B1 is counted up and returns to 0 at $B0B4. Called by $B176.","t":"byte","b":[189,123,176,240,71,222,171,176]},{"a":31636,"t":"byte","b":[240,1,96,189,59,176,133,240]},{"a":31644,"t":"byte","b":[189,65,176,133,241,189,174,176]},{"a":31652,"t":"byte","b":[157,171,176,188,177,176,177,240]},{"a":31660,"t":"byte","b":[24,125,103,176,125,138,176,125]},{"a":31668,"t":"byte","b":[141,176,172,110,176,170,189,194]},{"a":31676,"t":"byte","b":[184,153,0,212,189,32,185,153]},{"a":31684,"t":"byte","b":[1,212,166,250,254,177,176,189]},{"a":31692,"t":"byte","b":[177,176,221,180,176,208,5,169]},{"a":31700,"t":"byte","b":[0,157,177,176,96]},{"a":31705,"l":"driver_image_filter_sweep_step","c":"Image, stored in this file at $7BD9-$7C30 (88 bytes), of the sound driver's filter_sweep_step at $B75E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Filter sweep, once per call. Counts $B013 down; at zero it reads a step from the table $BA62 at $B048: a frame count (to $B013), a low and a high step (to $B049 and $B04A); a count of 0 means the next byte is a new index. It adds the step to the 16-bit filter value $B04D/$B04E and writes its low three bits to $D415 and a byte made from its upper bits to $D416. Called by $B176 after the voices.","t":"byte","b":[206,19,176,208,39,172,72,176]},{"a":31713,"t":"byte","b":[185,98,186,208,10,200,185,98]},{"a":31721,"t":"byte","b":[186,141,72,176,76,99,183,141]},{"a":31729,"t":"byte","b":[19,176,200,185,98,186,141,73]},{"a":31737,"t":"byte","b":[176,200,185,98,186,141,74,176]},{"a":31745,"t":"byte","b":[200,140,72,176,173,78,176,24]},{"a":31753,"t":"byte","b":[109,73,176,141,78,176,141,183]},{"a":31761,"t":"byte","b":[176,41,7,141,21,212,173,77]},{"a":31769,"t":"byte","b":[176,109,74,176,141,77,176,74]},{"a":31777,"t":"byte","b":[110,183,176,74,110,183,176,74]},{"a":31785,"t":"byte","b":[173,183,176,106,141,22,212,96]},{"a":31793,"l":"driver_image_drum_step","c":"Image, stored in this file at $7C31-$7C9B (107 bytes), of the sound driver's drum_step at $B7B6; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. 4 of its bytes differ from the live driver in the snapshot. The live piece: Plays the drum lists of the three voices, X from 2 down to 0, for every voice with $B081 set. While the step count $B0BB differs from the list length $B0B8 it patches the list addresses $B04F/$B055 and $B052/$B058 into the operands at $B80F and $B801 and writes the frequency entry to the voice's $D400 and $D401, 8 to $D404 and then the control entry to $D404; it counts $B0BB up. When they are equal and $B000 is non-zero it clears $D404-$D406 of the voice. Called by $B176 after the voice loop.","t":"byte","b":[162,2,189,129,176,240,27,189]},{"a":31801,"t":"byte","b":[187,176,221,184,176,208,23,173]},{"a":31809,"t":"byte","b":[0,176,240,14,169,0,188,180]},{"a":31817,"t":"byte","b":[184,153,4,212,153,5,212,153]},{"a":31825,"t":"byte","b":[6,212,202,16,221,96,142,2]},{"a":31833,"t":"byte","b":[176,141,3,176,189,82,176,141]},{"a":31841,"t":"byte","b":[1,184,189,88,176,141,2,184]},{"a":31849,"t":"byte","b":[189,79,176,141,15,184,189,85]},{"a":31857,"t":"byte","b":[176,141,16,184,188,180,184,174]},{"a":31865,"t":"byte","b":[3,176,189,221,221,153,0,212]},{"a":31873,"t":"byte","b":[153,1,212,169,8,153,4,212]},{"a":31881,"t":"byte","b":[189,221,221,153,4,212,174,2]},{"a":31889,"t":"byte","b":[176,254,187,176,202,48,3,76]},{"a":31897,"t":"byte","b":[184,183,96]},{"a":31900,"l":"driver_image_voices_active","c":"Image, stored in this file at $7C9C-$7CA2 (7 bytes), of the sound driver's voices_active at $B821; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Returns in A the OR of the voice flags $F7, $F8 and $F9, which is non-zero while any voice is playing.","t":"byte","b":[165,247,5,248,5,249,96]},{"a":31907,"l":"driver_image_silence_all","c":"Image, stored in this file at $7CA3-$7CCA (40 bytes), of the sound driver's silence_all at $B828; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stops all sound: clears the voice flags $F7-$F9, the fade flags $B0BE and $B0C2 and the volume register $D418, sets the keep flags $B0C4-$B0C6 to $FF and writes 8 to the control registers $D404, $D40B and $D412. $B176 calls it when a fade-out has run down, and the levels call it when a level ends or the game is over.","t":"byte","b":[169,0,133,247,133,248,133,249]},{"a":31915,"t":"byte","b":[141,190,176,141,194,176,141,24]},{"a":31923,"t":"byte","b":[212,169,255,141,196,176,141,197]},{"a":31931,"t":"byte","b":[176,141,198,176,169,8,141,4]},{"a":31939,"t":"byte","b":[212,141,11,212,141,18,212,96]},{"a":31947,"l":"driver_image_start_fade_out","c":"Image, stored in this file at $7CCB-$7CD9 (15 bytes), of the sound driver's start_fade_out at $B850; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Starts a fade-out: stores A in $B0BE, $B0BF and $B0C0 (so A is also the rate) and clears the fade-in flag $B0C2. No call to it was found in the level 1 snapshot.","t":"byte","b":[141,190,176,141,191,176,141,192]},{"a":31955,"t":"byte","b":[176,169,0,141,194,176,96]},{"a":31962,"l":"driver_image_cmd_end_voice","c":"Image, stored in this file at $7CDA-$7CE4 (11 bytes), of the sound driver's cmd_end_voice at $B85F; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $8A: ends the voice: clears its active flag $F7+X and writes 0 to its control register $D404, then returns.","t":"byte","b":[169,0,149,247,172,110,176,153]},{"a":31970,"t":"byte","b":[4,212,96]},{"a":31973,"l":"driver_image_cmd_set_stream","c":"Image, stored in this file at $7CE5-$7CF8 (20 bytes), of the sound driver's cmd_set_stream at $B86A; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Stream command $8B: loads the voice's stream pointer $B05B/$B05E from the next two bytes, sets the stream position $B0A8 to 0 and carries on at $B25C.","t":"byte","b":[200,177,240,157,91,176,200,177]},{"a":31981,"t":"byte","b":[240,157,94,176,169,0,157,168]},{"a":31989,"t":"byte","b":[176,76,92,178]},{"a":31993,"l":"driver_image_stream_command_lo","c":"Image, stored in this file at $7CF9-$7D06 (14 bytes), of the sound driver's stream_command_lo at $B87E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Low bytes of the handler addresses of stream commands $80-$8D (14 bytes), read by the instruction at $B317 as $B7FE,X with X from $80. With the high bytes at $B88C the handlers are, in order: $B328, $B501, $B51F, $B539, $B552, $B618, $B5AC, $B590, $B5A1, $B5AC, $B85F, $B86A, $B87E, $B552. The entry for $8C is the address of this table, so that command would run data.","t":"byte","b":[40,1,31,57,82,24,172,144]},{"a":32001,"t":"byte","b":[161,172,95,106,126,82]},{"a":32007,"l":"driver_image_stream_command_hi","c":"Image, stored in this file at $7D07-$7D14 (14 bytes), of the sound driver's stream_command_hi at $B88C; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: High bytes of the handler addresses of stream commands $80-$8D (14 bytes), read as $B80C,X by the instruction at $B31D; the low bytes are at $B87E.","t":"byte","b":[179,181,181,181,181,182,181,181]},{"a":32015,"t":"byte","b":[181,181,184,184,184,181]},{"a":32021,"l":"driver_image_track_command_lo","c":"Image, stored in this file at $7D15-$7D1A (6 bytes), of the sound driver's track_command_lo at $B89A; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Low bytes of the handler addresses of track commands $F0-$F5 (6 bytes), read as $B7AA,X at $B374 with X from $F0. With the high bytes at $B8A0 the handlers are: $B385, $B38E, $B39D, $B3AE, $B3BD, $B3D2.","t":"byte","b":[133,142,157,174,189,210]},{"a":32027,"l":"driver_image_track_command_hi","c":"Image, stored in this file at $7D1B-$7D20 (6 bytes), of the sound driver's track_command_hi at $B8A0; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: High bytes of the handler addresses of track commands $F0-$F5 (6 bytes), read as $B7B0,X at $B37A; the low bytes are at $B89A.","t":"byte","b":[179,179,179,179,179,179]},{"a":32033,"l":"driver_image_wave_command_lo","c":"Image, stored in this file at $7D21-$7D27 (7 bytes), of the sound driver's wave_command_lo at $B8A6; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Low bytes of the handler addresses of wave-program commands 0-6 (7 bytes), read as $B8A6,X at $B431. With the high bytes at $B8AD the handlers are: $B442, $B44E, $B462, $B481, $B49A, $B4B7, $B4ED.","t":"byte","b":[66,78,98,129,154,183,237]},{"a":32040,"l":"driver_image_wave_command_hi","c":"Image, stored in this file at $7D28-$7D2E (7 bytes), of the sound driver's wave_command_hi at $B8AD; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: High bytes of the handler addresses of wave-program commands 0-6 (7 bytes), read as $B8AD,X at $B437; the low bytes are at $B8A6.","t":"byte","b":[180,180,180,180,180,180,180]},{"a":32047,"l":"driver_image_voice_offsets","c":"Image, stored in this file at $7D2F-$7D31 (3 bytes), of the sound driver's voice_offsets at $B8B4; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Offsets of the three voices' SID registers from $D400: 00 07 0E (voice 0 at $D400, voice 1 at $D407, voice 2 at $D40E). Read by $B176, $B0EE, $B7B6 and $B7DC.","t":"byte","b":[0,7,14]},{"a":32050,"l":"driver_image_idle_program","c":"Image, stored in this file at $7D32-$7D3C (11 bytes), of the sound driver's idle_program at $B8B7; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: 11 bytes, 00 FF 01 B7 B8 FF 00 00 4C BC B8. The first five are the idle wave program that $B138 gives every voice: command 0 with a wait of $FF frames, then command 1 jumping to its own start at $B8B7. The six after it, FF 00 00 4C BC B8, end in a JMP to $B8BC and are not read by the driver.","t":"byte","b":[0,255,1,183,184,255,0,0]},{"a":32058,"t":"byte","b":[76,188,184]},{"a":32061,"l":"driver_image_note_freq_lo","c":"Image, stored in this file at $7D3D-$7D9A (94 bytes), of the sound driver's note_freq_lo at $B8C2; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Low bytes of the 94-entry table of SID frequency values, with the high bytes at $B920. The index is a note number plus the offsets $B08A and $B08D; it is looked up by $B176, $B3F8 and $B711. Entry 0 is $0578, entries 1 to 93 rise from $0128 to $EB00.","t":"byte","b":[120,40,58,76,96,117,139,163]},{"a":32069,"t":"byte","b":[188,214,242,16,47,80,115,153]},{"a":32077,"t":"byte","b":[192,234,22,69,119,172,228,31]},{"a":32085,"t":"byte","b":[94,160,231,50,128,212,45,139]},{"a":32093,"t":"byte","b":[238,88,200,62,188,65,205,99]},{"a":32101,"t":"byte","b":[1,168,90,22,221,176,144,124]},{"a":32109,"t":"byte","b":[119,129,155,197,2,81,180,44]},{"a":32117,"t":"byte","b":[186,96,31,249,239,3,54,139]},{"a":32125,"t":"byte","b":[3,161,103,87,115,192,62,241]},{"a":32133,"t":"byte","b":[222,5,108,22,6,67,206,174]},{"a":32141,"t":"byte","b":[231,128,125,228,187,10,215,44]},{"a":32149,"t":"byte","b":[13,133,156,92,207,0]},{"a":32155,"l":"driver_image_note_freq_hi","c":"Image, stored in this file at $7D9B-$7DF8 (94 bytes), of the sound driver's note_freq_hi at $B920; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: High bytes of the 94-entry table of SID frequency values (94 bytes); the low bytes are at $B8C2. Entry 0 is $0578 and entry 93 is $EB00.","t":"byte","b":[5,1,1,1,1,1,1,1]},{"a":32163,"t":"byte","b":[1,1,1,2,2,2,2,2]},{"a":32171,"t":"byte","b":[2,2,3,3,3,3,3,4]},{"a":32179,"t":"byte","b":[4,4,4,5,5,5,6,6]},{"a":32187,"t":"byte","b":[6,7,7,8,8,9,9,10]},{"a":32195,"t":"byte","b":[11,11,12,13,13,14,15,16]},{"a":32203,"t":"byte","b":[17,18,19,20,22,23,24,26]},{"a":32211,"t":"byte","b":[27,29,31,32,34,37,39,41]},{"a":32219,"t":"byte","b":[44,46,49,52,55,58,62,65]},{"a":32227,"t":"byte","b":[69,74,78,83,88,93,98,104]},{"a":32235,"t":"byte","b":[110,117,124,131,139,148,156,166]},{"a":32243,"t":"byte","b":[176,186,197,209,221,235]},{"a":32249,"l":"driver_image_drum_records","c":"Image, stored in this file at $7DF9-$7E16 (30 bytes), of the sound driver's drum_records at $B97E; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: 6 records of 5 bytes, chosen by the offset after stream command $86 or $89 ($B5AC): list address (2 bytes), list length, sustain/release value and pulse width high byte. They are, by offset: 00: list $B99C length $0C sustain/release $E8 pulse high $08; 05: list $B9B4 length $0C sustain/release $D9 pulse high $08; 0A: list $B9CC length $0C sustain/release $D8 pulse high $08; 0F: list $B9CC length $0C sustain/release $B8 pulse high $08; 14: list $B9CC length $0C sustain/release $78 pulse high $08; 19: list $B9CC length $0C sustain/release $38 pulse high $08.","t":"byte","b":[156,185,12,232,8,180,185,12]},{"a":32257,"t":"byte","b":[217,8,204,185,12,216,8,204]},{"a":32265,"t":"byte","b":[185,12,184,8,204,185,12,120]},{"a":32273,"t":"byte","b":[8,204,185,12,56,8]},{"a":32279,"l":"driver_image_drum_lists","c":"Image, stored in this file at $7E17-$7E5E (72 bytes), of the sound driver's drum_lists at $B99C; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: The drum lists the records at $B97E point to, 72 bytes. A list is a run of control register values for $D404 followed by a run of the same length of values that $B7B6 writes to both $D400 and $D401; a record's length is the length of each run. Lists may be shared by several records.","t":"byte","b":[8,129,65,65,16,16,16,128]},{"a":32287,"t":"byte","b":[128,128,128,128,0,128,13,6]},{"a":32295,"t":"byte","b":[7,6,37,67,66,64,64,64]},{"a":32303,"t":"byte","b":[8,129,17,129,16,128,16,128]},{"a":32311,"t":"byte","b":[16,128,16,128,0,112,14,112]},{"a":32319,"t":"byte","b":[13,112,13,112,9,112,9,112]},{"a":32327,"t":"byte","b":[8,129,65,65,16,16,16,16]},{"a":32335,"t":"byte","b":[16,16,16,16,0,255,15,8]},{"a":32343,"t":"byte","b":[11,11,10,10,9,9,8,7]},{"a":32351,"l":"driver_image_pulse_table","c":"Image, stored in this file at $7E5F-$7E81 (35 bytes), of the sound driver's pulse_table at $B9E4; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Pulse-width sweep steps, 35 bytes, read by $B64E with the index in $B02C and started by stream command $82. A step is three bytes: a frame count, then the low and high bytes of the amount added to the pulse width each frame. A count of 0 is followed by the index to go back to instead. Programs start at offsets $00, $05, $10 and $1B.","t":"byte","b":[255,0,0,0,0,5,20,0]},{"a":32359,"t":"byte","b":[5,216,255,5,20,0,0,5]},{"a":32367,"t":"byte","b":[5,50,0,10,206,255,5,50]},{"a":32375,"t":"byte","b":[0,0,16,2,150,0,2,106]},{"a":32383,"t":"byte","b":[255,0,27]},{"a":32386,"l":"driver_image_pitch_slide_table","c":"Image, stored in this file at $7E82-$7ED5 (84 bytes), of the sound driver's pitch_slide_table at $BA07; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Pitch-slide steps, 84 bytes, read by $B698 with the index in $B035 and started by stream command $83. A step is three bytes: a frame count, then the low and high bytes of the amount added to the voice's frequency each frame. A count of 0 is followed by the index to go back to instead.","t":"byte","b":[255,0,0,0,0,255,156,255]},{"a":32394,"t":"byte","b":[0,0,4,0,0,9,56,255]},{"a":32402,"t":"byte","b":[0,0,1,32,3,3,0,0]},{"a":32410,"t":"byte","b":[0,18,1,60,0,0,18,1]},{"a":32418,"t":"byte","b":[196,9,1,60,246,0,31,9]},{"a":32426,"t":"byte","b":[4,0,255,12,0,0,39,2]},{"a":32434,"t":"byte","b":[20,0,1,200,0,1,56,255]},{"a":32442,"t":"byte","b":[1,200,0,1,56,255,1,200]},{"a":32450,"t":"byte","b":[0,1,56,255,1,200,0,1]},{"a":32458,"t":"byte","b":[56,255,6,251,255,0,47,1]},{"a":32466,"t":"byte","b":[100,0,0,47]},{"a":32470,"l":"driver_image_arpeggio_table","c":"Image, stored in this file at $7ED6-$7EDC (7 bytes), of the sound driver's arpeggio_table at $BA5B; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: 7 bytes: the pointer table for stream command $84 (one entry, $BA5D, at $BA5B/$BA5C) and the entry it points to: 01 03 00 05 0C, which gives 1 frame per step, 3 steps and the step values 0, 5 and 12 added to the note. $B698 also reads $BA5B as a slide table, but only when $B032 is non-zero, which nothing sets.","t":"byte","b":[93,186,1,3,0,5,12]},{"a":32477,"l":"driver_image_filter_sweep_table","c":"Image, stored in this file at $7EDD-$7EF6 (26 bytes), of the sound driver's filter_sweep_table at $BA62; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: Filter-sweep steps, 26 bytes, read by $B75E with the index in $B048 and started by stream command $85. A step is three bytes: a frame count, then the low and high bytes of the amount added to the filter value. A count of 0 is followed by the index to go back to instead. Programs start at offsets $00, $05, $10 and $15.","t":"byte","b":[255,0,0,0,0,2,0,254]},{"a":32485,"t":"byte","b":[8,231,255,8,22,0,0,8]},{"a":32493,"t":"byte","b":[255,60,0,0,0,255,255,255]},{"a":32501,"t":"byte","b":[0,21]},{"a":32503,"l":"driver_image_wave_program_table","c":"Image, stored in this file at $7EF7-$7F0A (20 bytes), of the sound driver's wave_program_table at $BA7C; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: 10 addresses of wave programs (20 bytes), chosen by stream command $81 with the program number as the index: $BA90, $BA9F, $BAAE, $BAC5, $BAD4, $BB04, $BB13, $BB1F, $BB2F, $BB3B.","t":"byte","b":[144,186,159,186,174,186,197,186]},{"a":32511,"t":"byte","b":[212,186,4,187,19,187,31,187]},{"a":32519,"t":"byte","b":[47,187,59,187]},{"a":32523,"l":"driver_image_wave_programs","c":"Image, stored in this file at $7F0B-$7FC2 (184 bytes), of the sound driver's wave_programs at $BA90; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: The wave programs, 184 bytes, started at the addresses in the table at $BA7C. A program is a list of commands for $B3F8, each a command number 0 to 6 followed by its parameters: 0 waits, 1 jumps to an address, 2 sets attack/decay and sustain/release, 3 sets the control register $D404 and waits, 4 does the same relative to the note end, 5 also changes the pitch, 6 only moves on. The idle program that new voices start with is at $B8B7.","t":"byte","b":[2,0,215,3,65,3,3,64]},{"a":32531,"t":"byte","b":[1,3,32,1,1,150,186,2]},{"a":32539,"t":"byte","b":[0,215,3,21,3,3,20,3]},{"a":32547,"t":"byte","b":[3,18,3,1,165,186,2,1]},{"a":32555,"t":"byte","b":[168,3,17,1,5,129,1,0]},{"a":32563,"t":"byte","b":[3,17,1,5,129,1,0,3]},{"a":32571,"t":"byte","b":[128,255,1,191,186,2,0,167]},{"a":32579,"t":"byte","b":[3,17,3,3,32,1,3,16]},{"a":32587,"t":"byte","b":[1,1,203,186,2,0,184,3]},{"a":32595,"t":"byte","b":[65,3,3,64,8,2,0,167]},{"a":32603,"t":"byte","b":[3,65,3,3,64,8,2,0]},{"a":32611,"t":"byte","b":[135,3,65,3,3,64,8,2]},{"a":32619,"t":"byte","b":[0,87,3,65,3,3,64,8]},{"a":32627,"t":"byte","b":[2,0,23,3,65,3,3,64]},{"a":32635,"t":"byte","b":[8,1,254,186,2,2,250,3]},{"a":32643,"t":"byte","b":[129,6,3,128,8,3,0,4]},{"a":32651,"t":"byte","b":[1,10,187,2,146,248,3,129]},{"a":32659,"t":"byte","b":[9,3,128,255,1,25,187,2]},{"a":32667,"t":"byte","b":[1,162,5,129,1,0,3,129]},{"a":32675,"t":"byte","b":[2,3,128,255,1,41,187,2]},{"a":32683,"t":"byte","b":[1,86,4,65,3,3,64,255]},{"a":32691,"t":"byte","b":[1,53,187,2,0,177,5,129]},{"a":32699,"t":"byte","b":[1,36,3,17,2,1,62,187]},{"a":32707,"l":"driver_image_sound_table","c":"Image, stored in this file at $7FC3-$7FEE (44 bytes), of the sound driver's sound_table at $BB48; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: The sound table, 44 bytes: 11 rows of 4 bytes, one per sound effect, so the number passed to $B0EE in X is the row offset. A row has the stream numbers for voices 0 to 2 (an entry with bit 7 set leaves the voice alone) and a zero. Streams by row offset (-- means none): 00: 00 -- --; 04: -- 01 02; 08: 03 -- --; 0C: -- 04 05; 10: -- 06 07; 14: -- 08 09; 18: 0A -- --; 1C: 0B -- --; 20: -- 0C 0D; 24: -- 0E 0F; 28: -- 10 11.","t":"byte","b":[0,128,128,0,128,1,2,0]},{"a":32715,"t":"byte","b":[3,128,128,0,128,4,5,0]},{"a":32723,"t":"byte","b":[128,6,7,0,128,8,9,0]},{"a":32731,"t":"byte","b":[10,128,128,0,11,128,128,0]},{"a":32739,"t":"byte","b":[128,12,13,0,128,14,15,0]},{"a":32747,"t":"byte","b":[128,16,17,0]},{"a":32751,"l":"driver_image_stream_pointer_table","c":"Image, stored in this file at $7FEF-$8012 (36 bytes), of the sound driver's stream_pointer_table at $BB74; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: 18 addresses of sound streams (36 bytes), indexed by twice the stream number taken from the sound table at $BB48: $BB98, $BB9C, $BBA7, $BBAE, $BBB5, $BBB5, $BBC4, $BBCF, $BBDC, $BBE3, $BBEA, $BBFD, $BC01, $BC06, $BC0D, $BC1F, $BC2E, $BC35. The streams numbered 4 and 5 are the same.","t":"byte","b":[152,187,156,187,167,187,174,187]},{"a":32759,"t":"byte","b":[181,187,181,187,196,187,207,187]},{"a":32767,"t":"byte","b":[220]},{"a":32768,"l":"driver_image_stream_pointer_table_part_2","c":"The second part, from $8000 to $8012 (19 bytes), of the image of the sound driver's stream_pointer_table (live $BB74): a data symbol cannot reach across the memory-map edge at $8000. The table holds the addresses of the 18 sound streams, 36 bytes in all, from live $BB74 to $BB97.","t":"byte","b":[187,227,187,234,187,253,187,1]},{"a":32776,"t":"byte","b":[188,6,188,13,188,31,188,46]},{"a":32784,"t":"byte","b":[188,53,188]},{"a":32787,"l":"driver_image_sound_streams","c":"Image, stored in this file at $8013-$80B3 (161 bytes), of the sound driver's sound_streams at $BB98; level 1's loader copies the driver to $B0C8 and nothing in this file's code reads this copy. None of its bytes differ from the live driver in the snapshot. The live piece: The 18 sound streams, 161 bytes, started from the addresses in the table at $BB74. A stream is a series of entries read by $B25C: a note number below $60 followed by its length in frames, $60 and a length for a rest, or a command $80-$8D with its parameters (for instance $81 and a wave program number, $86 and a drum number, $8A to end the voice). Streams 4 and 5 share their data.","t":"byte","b":[134,0,12,138,129,0,130,5]},{"a":32795,"t":"byte","b":[8,0,131,5,33,12,138,129]},{"a":32803,"t":"byte","b":[1,131,5,60,12,138,129,2]},{"a":32811,"t":"byte","b":[131,10,48,15,138,129,3,132]},{"a":32819,"t":"byte","b":[0,36,2,43,3,48,4,55]},{"a":32827,"t":"byte","b":[5,60,6,138,129,4,131,18]},{"a":32835,"t":"byte","b":[130,16,8,0,48,70,138,96]},{"a":32843,"t":"byte","b":[6,129,4,131,26,130,16,8]},{"a":32851,"t":"byte","b":[4,48,70,138,133,5,5,96]},{"a":32859,"t":"byte","b":[134,96,5,129,5,131,31,12]},{"a":32867,"t":"byte","b":[100,138,129,7,94,1,43,2]},{"a":32875,"t":"byte","b":[60,10,129,8,130,27,4,0]},{"a":32883,"t":"byte","b":[131,47,38,20,138,134,5,10]},{"a":32891,"t":"byte","b":[138,133,16,0,0,70,129,6]},{"a":32899,"t":"byte","b":[131,39,24,60,138,133,21,4]},{"a":32907,"t":"byte","b":[128,134,134,10,15,134,15,15]},{"a":32915,"t":"byte","b":[134,20,15,134,25,15,138,96]},{"a":32923,"t":"byte","b":[4,134,10,15,134,15,15,134]},{"a":32931,"t":"byte","b":[20,15,134,25,15,138,129,9]},{"a":32939,"t":"byte","b":[31,255,139,48,188,96,2,138]},{"a":32947,"t":"byte","b":[255]},{"a":32948,"t":"gap","n":200},{"a":33148,"l":"tune_image_init","c":"Image, stored in this file at $817C-$81A1 (38 bytes), of the title tune driver's tune_init at $A0C8, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Silences the sound chip, as the copy at $B0C8 does: clears the fade flags $A0C2 and $A0BE and $D417, sets $A0C1, $A000 and the volume register $D418 to $1F, and zeroes the 23 registers $D400-$D416 together with $A02F-$A045. No call to it was found in the level 1 snapshot.","t":"byte","b":[169,0,141,194,160,141,190,160]},{"a":33156,"t":"byte","b":[141,23,212,169,31,141,193,160]},{"a":33164,"t":"byte","b":[141,0,160,141,24,212,162,22]},{"a":33172,"t":"byte","b":[169,0,157,0,212,169,0,157]},{"a":33180,"t":"byte","b":[47,160,202,16,245,96]},{"a":33186,"l":"tune_image_play_sound","c":"Image, stored in this file at $81A2-$81D9 (56 bytes), of the title tune driver's tune_play_sound at $A0EE, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Copy of the sound starter at $B0EE, in the tune driver. Returns at once while $A000 is zero. Otherwise it takes up to three bytes from the table at $B2E2 and, for each that has bit 7 clear, a stream address from the table at $B2E6; those two addresses are inside the code of the sound driver, so they are not tables of this driver. It uses $A126 to restart each voice. No call to it was found in the level 1 snapshot.","t":"byte","b":[173,0,160,240,50,160,0,189]},{"a":33194,"t":"byte","b":[226,178,48,37,142,199,160,10]},{"a":33202,"t":"byte","b":[170,189,230,178,153,91,160,189]},{"a":33210,"t":"byte","b":[231,178,153,94,160,32,38,161]},{"a":33218,"t":"byte","b":[174,199,160,140,199,160,188,126]},{"a":33226,"t":"byte","b":[169,169,0,153,4,212,172,199]},{"a":33234,"t":"byte","b":[160,232,200,192,3,144,208,96]},{"a":33242,"l":"tune_image_init_voice","c":"Image, stored in this file at $81DA-$8217 (62 bytes), of the title tune driver's tune_init_voice at $A126, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Sets up voice Y (0 to 2) to start a stream: marks it active in $00F7+Y, sets its note countdown $A004 to Y+1, clears its transpose $A08D, stream position $A0A8, fixed-length flag $A087, keep flags $A0C4, slide flag $A075, $A078, arpeggio flag $A07B, drum flag $A081 and new-note flag $A084, points its wave program $A020-$A029 at the idle program $A981 and clears its pulse start $A02F. Called by $A0EE. Same code as the routine at $B138 of the sound driver.","t":"byte","b":[169,1,153,247,0,200,152,136]},{"a":33250,"t":"byte","b":[153,4,160,169,0,153,141,160]},{"a":33258,"t":"byte","b":[153,168,160,153,135,160,153,196]},{"a":33266,"t":"byte","b":[160,153,117,160,153,120,160,153]},{"a":33274,"t":"byte","b":[123,160,153,129,160,153,132,160]},{"a":33282,"t":"byte","b":[169,129,153,32,160,153,35,160]},{"a":33290,"t":"byte","b":[169,169,153,38,160,153,41,160]},{"a":33298,"t":"byte","b":[169,0,153,47,160,96]},{"a":33304,"l":"tune_image_start","c":"Image, stored in this file at $8218-$82F5 (222 bytes), of the title tune driver's tune_start at $A164, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Starts tune number X/6. Level 1's title code calls it from $0ACA, $0F70 and $1320, loading X with $12 at $0AC8 and $131E and with 0 at $0F6E. It raises the hold flag $A001, clears $A000 and $F7-$F9, and copies the six bytes at $AA8D+X to the track list addresses $A01A-$A01F. For each voice, 2 down to 0, it clears the voice's track index, transpose, repeat count, fixed-length flag, keep flags, slide, arpeggio, drum and new-note flags, gets the first pattern through $A3FA, points the wave program at $A981 and stores the pattern as the stream pointer. Then it zeroes the SID registers $D400-$D417 (writing 8 first), clears the fade-out flag $A0BE, sets the three voices active with their countdowns at 1, 2 and 3, writes $1F to $A0C1 and $D418 unless a fade-in is running, and lowers the hold flag.","t":"byte","b":[238,1,160,169,0,141,0,160]},{"a":33312,"t":"byte","b":[133,247,133,248,133,249,189,141]},{"a":33320,"t":"byte","b":[170,141,26,160,189,142,170,141]},{"a":33328,"t":"byte","b":[29,160,189,143,170,141,27,160]},{"a":33336,"t":"byte","b":[189,144,170,141,30,160,189,145]},{"a":33344,"t":"byte","b":[170,141,28,160,189,146,170,141]},{"a":33352,"t":"byte","b":[31,160,169,0,141,194,160,162]},{"a":33360,"t":"byte","b":[2,134,250,166,250,169,0,157]},{"a":33368,"t":"byte","b":[20,160,157,141,160,157,106,160]},{"a":33376,"t":"byte","b":[157,135,160,157,196,160,157,117]},{"a":33384,"t":"byte","b":[160,157,120,160,157,123,160,157]},{"a":33392,"t":"byte","b":[129,160,157,132,160,32,250,163]},{"a":33400,"t":"byte","b":[166,250,169,129,157,32,160,157]},{"a":33408,"t":"byte","b":[35,160,169,169,157,38,160,157]},{"a":33416,"t":"byte","b":[41,160,169,0,157,47,160,157]},{"a":33424,"t":"byte","b":[71,160,165,240,157,91,160,165]},{"a":33432,"t":"byte","b":[241,157,94,160,198,250,16,179]},{"a":33440,"t":"byte","b":[162,23,169,8,157,0,212,169]},{"a":33448,"t":"byte","b":[0,157,0,212,202,16,243,141]},{"a":33456,"t":"byte","b":[190,160,160,1,140,4,160,132]},{"a":33464,"t":"byte","b":[247,132,248,132,249,140,10,160]},{"a":33472,"t":"byte","b":[140,13,160,140,16,160,140,19]},{"a":33480,"t":"byte","b":[160,200,140,5,160,140,11,160]},{"a":33488,"t":"byte","b":[140,14,160,140,17,160,200,140]},{"a":33496,"t":"byte","b":[6,160,140,12,160,140,15,160]},{"a":33504,"t":"byte","b":[140,18,160,173,194,160,208,8]},{"a":33512,"t":"byte","b":[169,31,141,193,160,141,24,212]},{"a":33520,"t":"byte","b":[169,0,141,1,160,96]},{"a":33526,"l":"tune_image_play","c":"Image, stored in this file at $82F6-$8396 (161 bytes), of the title tune driver's tune_play at $A242, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Plays the tunes once per call: the copy of $B176 in the tune driver. Returns at once while the hold flag $A001 is set; otherwise it works through the three voices, X from 2 down to 0. Level 1 calls it from $157D, in title_irq_top, the raster interrupt of every title page. Same code as the routine at $B176 of the sound driver.","t":"byte","b":[173,1,160,240,1,96,169,2]},{"a":33534,"t":"byte","b":[133,250,166,250,189,126,169,141]},{"a":33542,"t":"byte","b":[110,160,181,247,208,3,76,214]},{"a":33550,"t":"byte","b":[162,173,194,160,240,3,32,227]},{"a":33558,"t":"byte","b":[162,173,190,160,240,30,206,191]},{"a":33566,"t":"byte","b":[160,173,191,160,208,22,173,192]},{"a":33574,"t":"byte","b":[160,141,191,160,206,193,160,173]},{"a":33582,"t":"byte","b":[193,160,141,24,212,41,15,208]},{"a":33590,"t":"byte","b":[3,76,242,168,32,7,163,181]},{"a":33598,"t":"byte","b":[247,240,73,189,129,160,208,68]},{"a":33606,"t":"byte","b":[32,196,164,32,0,167,32,195]},{"a":33614,"t":"byte","b":[167,189,123,160,208,54,189,132]},{"a":33622,"t":"byte","b":[160,240,31,169,0,157,132,160]},{"a":33630,"t":"byte","b":[189,138,160,189,103,160,24,125]},{"a":33638,"t":"byte","b":[138,160,125,141,160,168,185,140]},{"a":33646,"t":"byte","b":[169,157,97,160,185,234,169,157]},{"a":33654,"t":"byte","b":[100,160,32,74,167,172,110,160]},{"a":33662,"t":"byte","b":[189,97,160,153,0,212,189,100]},{"a":33670,"t":"byte","b":[160,153,1,212,198,250,48,3]},{"a":33678,"t":"byte","b":[76,76,162,32,128,168,76,16]},{"a":33686,"t":"byte","b":[168]},{"a":33687,"l":"tune_image_fade_in_step","c":"Image, stored in this file at $8397-$83BA (36 bytes), of the title tune driver's tune_fade_in_step at $A2E3, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Raises the volume one step at a time while a fade-in runs. Counts $A0BF down; at zero it reloads it from $A0C0, adds 1 to $A0C1, writes that to the volume register $D418 and clears the fade-in flag $A0C2 once the low nibble equals the target $A0C3. Called by $A242 while $A0C2 is non-zero. Same code as the routine at $B217 of the sound driver.","t":"byte","b":[206,191,160,173,191,160,208,27]},{"a":33695,"t":"byte","b":[173,192,160,141,191,160,238,193]},{"a":33703,"t":"byte","b":[160,173,193,160,141,24,212,41]},{"a":33711,"t":"byte","b":[15,205,195,160,208,5,169,0]},{"a":33719,"t":"byte","b":[141,194,160,96]},{"a":33723,"l":"tune_image_voice_tick","c":"Image, stored in this file at $83BB-$83DB (33 bytes), of the title tune driver's tune_voice_tick at $A307, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Counts the current voice's note down: decrements $A004,X and returns unless it reaches zero. At zero it loads the voice's stream pointer $A05B/$A05E into $F0/$F1, runs $A328, steps the stream position $A0A8 past the length byte and stores $F0/$F1 back. Called by $A242. Same code as the routine at $B23B of the sound driver.","t":"byte","b":[222,4,160,240,1,96,189,91]},{"a":33731,"t":"byte","b":[160,133,240,189,94,160,133,241]},{"a":33739,"t":"byte","b":[32,40,163,254,168,160,165,240]},{"a":33747,"t":"byte","b":[157,91,160,165,241,157,94,160]},{"a":33755,"t":"byte","b":[96]},{"a":33756,"l":"tune_image_read_stream","c":"Image, stored in this file at $83DC-$8495 (186 bytes), of the title tune driver's tune_read_stream at $A328, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Reads the next entry of the current voice's stream through ($F0),Y with Y from $A0A8,X. A byte with bit 7 set is a command and goes to $A3E2. A byte of $60 is a rest: only the length byte is read. Any other byte is a note: it is stored in $A067, the new-note flag $A084 becomes 1 and the drum flag $A081 is cleared. Each part the voice's keep flags $A0C4 do not hold is restarted: the wave program (mask 4, from $A023/$A029), the pulse sweep (mask 2, from $A02F, $A093 and $A099), the pitch slide (mask 1, from $A038), the arpeggio (mask $10) and the filter sweep (mask 8). The length byte then goes to $A004,X, or $A007,X in fixed-length mode, and the stream position to $A0A8,X. Called by $A307. Same code as the routine at $B25C of the sound driver.","t":"byte","b":[188,168,160,177,240,16,3,76]},{"a":33764,"t":"byte","b":[226,163,201,96,208,3,76,204]},{"a":33772,"t":"byte","b":[163,157,103,160,169,1,157,132]},{"a":33780,"t":"byte","b":[160,169,0,157,129,160,189,196]},{"a":33788,"t":"byte","b":[160,41,4,208,17,169,1,157]},{"a":33796,"t":"byte","b":[10,160,189,35,160,157,32,160]},{"a":33804,"t":"byte","b":[189,41,160,157,38,160,189,196]},{"a":33812,"t":"byte","b":[160,41,2,208,23,169,1,157]},{"a":33820,"t":"byte","b":[13,160,189,47,160,157,44,160]},{"a":33828,"t":"byte","b":[189,147,160,157,144,160,189,153]},{"a":33836,"t":"byte","b":[160,157,150,160,189,117,160,240]},{"a":33844,"t":"byte","b":[18,189,196,160,41,1,208,11]},{"a":33852,"t":"byte","b":[169,1,157,16,160,189,56,160]},{"a":33860,"t":"byte","b":[157,53,160,189,123,160,240,17]},{"a":33868,"t":"byte","b":[189,196,160,41,16,208,10,169]},{"a":33876,"t":"byte","b":[0,157,177,160,169,1,157,171]},{"a":33884,"t":"byte","b":[160,189,126,160,240,30,189,196]},{"a":33892,"t":"byte","b":[160,41,8,208,23,173,71,160]},{"a":33900,"t":"byte","b":[141,72,160,173,75,160,141,77]},{"a":33908,"t":"byte","b":[160,173,76,160,141,78,160,169]},{"a":33916,"t":"byte","b":[1,141,19,160,189,135,160,240]},{"a":33924,"t":"byte","b":[6,189,7,160,76,218,163,200]},{"a":33932,"t":"byte","b":[177,240,157,4,160,152,157,168]},{"a":33940,"t":"byte","b":[160,96]},{"a":33942,"l":"tune_image_stream_command","c":"Image, stored in this file at $8496-$84A7 (18 bytes), of the title tune driver's tune_stream_command at $A3E2, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Runs a stream command, entered from $A328 with the command byte (bit 7 set) in A. Looks up the handler in the tables $A948 and $A956, stores it in the JMP operand at $A3F2, reloads X from $FA and jumps. Same code as the routine at $B316 of the sound driver.","t":"byte","b":[170,189,200,168,141,242,163,189]},{"a":33950,"t":"byte","b":[214,168,141,243,163,166,250,76]},{"a":33958,"t":"byte","b":[255,255]},{"a":33960,"l":"tune_image_cmd_next_pattern","c":"Image, stored in this file at $84A8-$84AD (6 bytes), of the title tune driver's tune_cmd_next_pattern at $A3F4, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $80: calls $A3FA to fetch the voice's next pattern address into $F0/$F1 and carries on reading at $A328. Same code as the routine at $B328 of the sound driver.","t":"byte","b":[32,250,163,76,40,163]},{"a":33966,"l":"tune_image_track_next_pattern","c":"Image, stored in this file at $84AE-$8504 (87 bytes), of the title tune driver's tune_track_next_pattern at $A3FA, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Fetches a pattern from the voice's track list. Loads the list address $A01A/$A01D into $F2/$F3, sets the stream position $A0A8 to 0, and clears the transpose $A08D when it is set and the repeat count $A06A is zero. It then reads the entry at $A014,X. A value below $F0 is a pattern number n and gives $F0/$F1 the address from the tables $AAA5 and $AAF6; if the repeat count is zero the track index advances, otherwise the count goes down and the index advances when it reaches zero. A value of $F0 or more is a track command, dispatched through $A964 and $A96A by the JMP operand at $A44F. Same code as the routine at $B32E of the sound driver.","t":"byte","b":[166,250,189,26,160,133,242,189]},{"a":33974,"t":"byte","b":[29,160,133,243,169,0,157,168]},{"a":33982,"t":"byte","b":[160,189,141,160,240,10,189,106]},{"a":33990,"t":"byte","b":[160,208,5,169,0,157,141,160]},{"a":33998,"t":"byte","b":[188,20,160,177,242,201,240,176]},{"a":34006,"t":"byte","b":[28,170,189,165,170,133,240,189]},{"a":34014,"t":"byte","b":[246,170,133,241,166,250,189,106]},{"a":34022,"t":"byte","b":[160,240,6,222,106,160,240,1]},{"a":34030,"t":"byte","b":[96,254,20,160,96,170,189,116]},{"a":34038,"t":"byte","b":[168,141,79,164,189,122,168,141]},{"a":34046,"t":"byte","b":[80,164,166,250,76,255,255]},{"a":34053,"l":"tune_image_track_jump","c":"Image, stored in this file at $8505-$850D (9 bytes), of the title tune driver's tune_track_jump at $A451, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Track command $F0: sets the track index $A014,X to the next byte of the list and goes on reading the list at $A41A. Same code as the routine at $B385 of the sound driver.","t":"byte","b":[200,177,242,157,20,160,76,26]},{"a":34061,"t":"byte","b":[164]},{"a":34062,"l":"tune_image_track_repeat_cmd","c":"Image, stored in this file at $850E-$851C (15 bytes), of the title tune driver's tune_track_repeat_cmd at $A45A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Track command $F1: stores the next byte in the repeat count $A06A,X, moves the track index $A014,X on by 2 and goes on at $A41A. Same code as the routine at $B38E of the sound driver.","t":"byte","b":[200,177,242,157,106,160,254,20]},{"a":34070,"t":"byte","b":[160,254,20,160,76,26,164]},{"a":34077,"l":"tune_image_track_stop","c":"Image, stored in this file at $851D-$852D (17 bytes), of the title tune driver's tune_track_stop at $A469, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Track command $F2: stops the voice: clears its active flag $F7+X and the voice's registers $D404-$D406 and returns. Same code as the routine at $B39D of the sound driver.","t":"byte","b":[169,0,149,247,172,110,160,153]},{"a":34085,"t":"byte","b":[4,212,153,5,212,153,6,212]},{"a":34093,"t":"byte","b":[96]},{"a":34094,"l":"tune_image_track_transpose","c":"Image, stored in this file at $852E-$853C (15 bytes), of the title tune driver's tune_track_transpose at $A47A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Track command $F3: stores the next byte in the transposition $A08D,X, moves the track index on by 2 and goes on at $A41A. Same code as the routine at $B3AE of the sound driver.","t":"byte","b":[200,177,242,157,141,160,254,20]},{"a":34102,"t":"byte","b":[160,254,20,160,76,26,164]},{"a":34109,"l":"tune_image_track_fade_out","c":"Image, stored in this file at $853D-$8551 (21 bytes), of the title tune driver's tune_track_fade_out at $A489, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Track command $F4: stores the next byte in $A0BE, $A0BF and $A0C0, which starts a fade-out with that rate, moves the track index on by 2 and goes on at $A41A. Same code as the routine at $B3BD of the sound driver.","t":"byte","b":[200,177,242,141,190,160,141,191]},{"a":34117,"t":"byte","b":[160,141,192,160,254,20,160,254]},{"a":34125,"t":"byte","b":[20,160,76,26,164]},{"a":34130,"l":"tune_image_track_fade_in","c":"Image, stored in this file at $8552-$8577 (38 bytes), of the title tune driver's tune_track_fade_in at $A49E, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Track command $F5: stores the next byte in $A0C2, $A0BF and $A0C0, which starts a fade-in with that rate, sets $A0C1 and $D418 to $10, stores the byte after it in $A0C3 as the target volume, moves the track index on by 3 and goes on at $A41A. Same code as the routine at $B3D2 of the sound driver.","t":"byte","b":[200,177,242,141,194,160,141,191]},{"a":34138,"t":"byte","b":[160,141,192,160,169,16,141,193]},{"a":34146,"t":"byte","b":[160,141,24,212,200,177,242,141]},{"a":34154,"t":"byte","b":[195,160,254,20,160,254,20,160]},{"a":34162,"t":"byte","b":[254,20,160,76,26,164]},{"a":34168,"l":"tune_image_wave_program_tick","c":"Image, stored in this file at $8578-$85C1 (74 bytes), of the title tune driver's tune_wave_program_tick at $A4C4, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Runs the current voice's wave program, called by $A242 for each active voice that is not playing a drum. Counts $A00A,X down and returns unless it reaches zero. At zero, if the pitch offset $A08A is set, it clears it and looks the frequency up again from the note $A067 plus the transposition $A08D in the tables $A98C and $A9EA. It then loads the program pointer $A020/$A026 into $F0/$F1, reads the command number at the position $A06D (starting at 0), stores the handler from $A970 and $A977 in the JMP operand at $A50C and jumps to it. $A4F7 is where commands 1 and 2 read the next command. Same code as the routine at $B3F8 of the sound driver.","t":"byte","b":[222,10,160,240,1,96,189,138]},{"a":34176,"t":"byte","b":[160,240,25,169,0,157,138,160]},{"a":34184,"t":"byte","b":[189,103,160,24,125,141,160,168]},{"a":34192,"t":"byte","b":[185,140,169,157,97,160,185,234]},{"a":34200,"t":"byte","b":[169,157,100,160,189,32,160,133]},{"a":34208,"t":"byte","b":[240,189,38,160,133,241,169,0]},{"a":34216,"t":"byte","b":[141,109,160,172,109,160,177,240]},{"a":34224,"t":"byte","b":[170,189,112,169,141,12,165,189]},{"a":34232,"t":"byte","b":[119,169,141,13,165,166,250,76]},{"a":34240,"t":"byte","b":[255,255]},{"a":34242,"l":"tune_image_wave_wait","c":"Image, stored in this file at $85C2-$85CD (12 bytes), of the title tune driver's tune_wave_wait at $A50E, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Wave-program command 0: stores the next byte as the number of frames to wait in $A00A,X and ends the step through $A5A7. Same code as the routine at $B442 of the sound driver.","t":"byte","b":[200,140,109,160,177,240,157,10]},{"a":34250,"t":"byte","b":[160,76,167,165]},{"a":34254,"l":"tune_image_wave_jump","c":"Image, stored in this file at $85CE-$85E1 (20 bytes), of the title tune driver's tune_wave_jump at $A51A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Wave-program command 1: loads $F0/$F1 with the two bytes that follow, a new program address, sets the position $A06D to 0 and carries on at $A4F7 in the same frame. Same code as the routine at $B44E of the sound driver.","t":"byte","b":[200,177,240,72,200,177,240,133]},{"a":34262,"t":"byte","b":[241,104,133,240,169,0,141,109]},{"a":34270,"t":"byte","b":[160,76,247,164]},{"a":34274,"l":"tune_image_wave_envelope","c":"Image, stored in this file at $85E2-$8600 (31 bytes), of the title tune driver's tune_wave_envelope at $A52E, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Wave-program command 2: stores the next two bytes in $A06F,X (attack/decay) and $A072,X (sustain/release), writes them to the voice's $D405 and $D406 and carries on at $A4F7. Same code as the routine at $B462 of the sound driver.","t":"byte","b":[200,177,240,157,111,160,200,177]},{"a":34282,"t":"byte","b":[240,157,114,160,200,140,109,160]},{"a":34290,"t":"byte","b":[172,110,160,153,6,212,189,111]},{"a":34298,"t":"byte","b":[160,153,5,212,76,247,164]},{"a":34305,"l":"tune_image_wave_control","c":"Image, stored in this file at $8601-$8619 (25 bytes), of the title tune driver's tune_wave_control at $A54D, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Wave-program command 3: writes the next byte to the voice's control register $D404 (waveform and gate) and stores the byte after it as the frames to wait in $A00A,X; ends the step through $A5A7. Same code as the routine at $B481 of the sound driver.","t":"byte","b":[200,177,240,133,246,200,177,240]},{"a":34313,"t":"byte","b":[157,10,160,140,109,160,172,110]},{"a":34321,"t":"byte","b":[160,165,246,153,4,212,76,167]},{"a":34329,"t":"byte","b":[165]},{"a":34330,"l":"tune_image_wave_control_early","c":"Image, stored in this file at $861A-$8636 (29 bytes), of the title tune driver's tune_wave_control_early at $A566, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Wave-program command 4: writes the next byte to the voice's $D404 like command 3, but the wait is the note's remaining count $A004,X minus the byte after it, so the step comes that many frames before the note ends. Same code as the routine at $B49A of the sound driver.","t":"byte","b":[200,177,240,133,246,200,140,109]},{"a":34338,"t":"byte","b":[160,189,4,160,56,241,240,157]},{"a":34346,"t":"byte","b":[10,160,172,110,160,165,246,153]},{"a":34354,"t":"byte","b":[4,212,76,167,165]},{"a":34359,"l":"tune_image_wave_control_pitch","c":"Image, stored in this file at $8637-$865A (36 bytes), of the title tune driver's tune_wave_control_pitch at $A583, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Wave-program command 5: writes the next byte to the voice's $D404, stores the one after it as the frames to wait in $A00A,X and the third in $A084,X and $A08A,X, which asks for the frequency to be looked up again with that offset. The sound driver's copy at $B4B7 also handles a third byte of 0.","t":"byte","b":[200,177,240,133,246,200,177,240]},{"a":34367,"t":"byte","b":[157,10,160,200,140,109,160,177]},{"a":34375,"t":"byte","b":[240,240,17,157,132,160,157,138]},{"a":34383,"t":"byte","b":[160,172,110,160,165,246,153,4]},{"a":34391,"t":"byte","b":[212,76,167,165]},{"a":34395,"l":"tune_image_wave_advance","c":"Image, stored in this file at $865B-$866E (20 bytes), of the title tune driver's tune_wave_advance at $A5A7, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: End of a wave-program step: adds 1 to the position $A06D and stores $F0/$F1 plus the position as the voice's wave pointer $A020/$A026. Wave-program command 6 enters here directly, so it skips one byte. Same code as the routine at $B4ED of the sound driver.","t":"byte","b":[238,109,160,165,240,24,109,109]},{"a":34403,"t":"byte","b":[160,157,32,160,165,241,105,0]},{"a":34411,"t":"byte","b":[157,38,160,96]},{"a":34415,"l":"tune_image_cmd_wave_program","c":"Image, stored in this file at $866F-$868C (30 bytes), of the title tune driver's tune_cmd_wave_program at $A5BB, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $81: the next byte n selects a wave program. The address at offset 2n of the table $ACF7 is stored as the voice's program start $A023/$A029, which the next note copies to $A020/$A026. Carries on at $A328. Same code as the routine at $B501 of the sound driver.","t":"byte","b":[200,177,240,10,141,2,160,200]},{"a":34423,"t":"byte","b":[152,157,168,160,172,2,160,185]},{"a":34431,"t":"byte","b":[247,172,157,35,160,185,248,172]},{"a":34439,"t":"byte","b":[157,41,160,76,40,163]},{"a":34445,"l":"tune_image_cmd_pulse","c":"Image, stored in this file at $868D-$86A6 (26 bytes), of the title tune driver's tune_cmd_pulse at $A5D9, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $82: the three bytes that follow go to $A02F (start index into the table $AB47), $A099 (initial pulse width, high byte) and $A093 (low byte). Carries on at $A328. Same code as the routine at $B51F of the sound driver.","t":"byte","b":[200,177,240,157,47,160,200,177]},{"a":34453,"t":"byte","b":[240,157,153,160,200,177,240,157]},{"a":34461,"t":"byte","b":[147,160,200,152,157,168,160,76]},{"a":34469,"t":"byte","b":[40,163]},{"a":34471,"l":"tune_image_cmd_pitch_slide","c":"Image, stored in this file at $86A7-$86BF (25 bytes), of the title tune driver's tune_cmd_pitch_slide at $A5F3, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $83: the next byte goes to $A038, the start index into the slide table $AB85. Sets the slide flag $A075 and clears $A032 and the arpeggio flag $A07B. Carries on at $A328. Same code as the routine at $B539 of the sound driver.","t":"byte","b":[200,177,240,157,56,160,200,152]},{"a":34479,"t":"byte","b":[157,168,160,157,117,160,169,0]},{"a":34487,"t":"byte","b":[157,50,160,157,123,160,76,40]},{"a":34495,"t":"byte","b":[163]},{"a":34496,"l":"tune_image_cmd_arpeggio","c":"Image, stored in this file at $86C0-$86FD (62 bytes), of the title tune driver's tune_cmd_arpeggio at $A60C, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream commands $84 and $8D: clears the slide flag $A075 and sets the arpeggio flag $A07B. The next byte n selects the entry whose address is at offset 2n of the table $ABDA (kept in $F4/$F5); its first byte goes to $A0AE (frames per step), its second to $A0B4 (number of steps) and the address after them to $A03B/$A041. Carries on at $A328. Same code as the routine at $B552 of the sound driver.","t":"byte","b":[169,0,157,117,160,200,152,157]},{"a":34504,"t":"byte","b":[123,160,177,240,10,170,189,218]},{"a":34512,"t":"byte","b":[171,133,244,189,219,171,133,245]},{"a":34520,"t":"byte","b":[200,152,166,250,157,168,160,160]},{"a":34528,"t":"byte","b":[0,177,244,157,174,160,200,177]},{"a":34536,"t":"byte","b":[244,157,180,160,165,244,24,105]},{"a":34544,"t":"byte","b":[2,157,59,160,165,245,105,0]},{"a":34552,"t":"byte","b":[157,65,160,76,40,163]},{"a":34558,"l":"tune_image_cmd_fixed_length","c":"Image, stored in this file at $86FE-$870E (17 bytes), of the title tune driver's tune_cmd_fixed_length at $A64A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $87: the next byte is stored in $A007,X and in the flag $A087,X, so that following notes carry no length byte. Carries on at $A328. Same code as the routine at $B590 of the sound driver.","t":"byte","b":[200,177,240,157,7,160,157,135]},{"a":34566,"t":"byte","b":[160,200,152,157,168,160,76,40]},{"a":34574,"t":"byte","b":[163]},{"a":34575,"l":"tune_image_cmd_free_length","c":"Image, stored in this file at $870F-$8719 (11 bytes), of the title tune driver's tune_cmd_free_length at $A65B, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $88: clears the fixed-length flag $A087,X so that notes carry a length byte again. Carries on at $A328. Same code as the routine at $B5A1 of the sound driver.","t":"byte","b":[169,0,157,135,160,254,168,160]},{"a":34583,"t":"byte","b":[76,40,163]},{"a":34586,"l":"tune_image_cmd_drum","c":"Image, stored in this file at $871A-$877D (100 bytes), of the title tune driver's tune_cmd_drum at $A666, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream commands $86 and $89: the next byte is an offset into the 5-byte records of the table $AA48. A record holds a list address, a list length (to $A0B8), a sustain/release value (to $D406 and $A081) and a pulse width high byte (to $D403). The list address goes to $A04F/$A055 and the address plus the length to $A052/$A058. It then writes 0 to $D405 and 8 to $D404, clears $A0BB, takes the byte after the drum number as the note length $A004,X and returns without reading on; $A880 plays the list. If the voice has the filter on ($A07E,X) it also writes $FF to $D415 and $90 to $D416. The sound driver's copy at $B5AC does not write the filter registers but restarts the filter sweep instead.","t":"byte","b":[200,152,157,168,160,177,240,168]},{"a":34594,"t":"byte","b":[185,74,170,157,184,160,185,72]},{"a":34602,"t":"byte","b":[170,157,79,160,24,125,184,160]},{"a":34610,"t":"byte","b":[157,82,160,185,73,170,157,85]},{"a":34618,"t":"byte","b":[160,105,0,157,88,160,185,75]},{"a":34626,"t":"byte","b":[170,72,185,76,170,172,110,160]},{"a":34634,"t":"byte","b":[153,3,212,104,153,6,212,157]},{"a":34642,"t":"byte","b":[129,160,189,126,160,240,10,169]},{"a":34650,"t":"byte","b":[255,141,21,212,169,144,141,22]},{"a":34658,"t":"byte","b":[212,169,0,153,5,212,169,8]},{"a":34666,"t":"byte","b":[153,4,212,169,0,157,187,160]},{"a":34674,"t":"byte","b":[254,168,160,188,168,160,177,240]},{"a":34682,"t":"byte","b":[157,4,160,96]},{"a":34686,"l":"tune_image_cmd_filter","c":"Image, stored in this file at $877E-$87B3 (54 bytes), of the title tune driver's tune_cmd_filter at $A6CA, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $85: the first byte goes to $A047 (start index into the table $ACDB), the second to $A04B and $A04D, the third to $A04C and $A04E, the fourth to the filter control register $D417 and to $A07E,X, after all three of $A07E are cleared. Carries on at $A328. Same code as the routine at $B618 of the sound driver.","t":"byte","b":[200,177,240,141,71,160,200,177]},{"a":34694,"t":"byte","b":[240,141,75,160,141,77,160,200]},{"a":34702,"t":"byte","b":[177,240,141,76,160,141,78,160]},{"a":34710,"t":"byte","b":[200,177,240,72,200,152,157,168]},{"a":34718,"t":"byte","b":[160,169,0,141,126,160,141,127]},{"a":34726,"t":"byte","b":[160,141,128,160,104,141,23,212]},{"a":34734,"t":"byte","b":[157,126,160,76,40,163]},{"a":34740,"l":"tune_image_pulse_step","c":"Image, stored in this file at $87B4-$87FD (74 bytes), of the title tune driver's tune_pulse_step at $A700, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Pulse-width sweep of the current voice. Counts $A00D,X down. At zero it reads a step from the table $AB47 at the index $A02C,X: a frame count (to $A00D), a low and a high step (to $A09C and $A09F); a count of 0 means the next byte is a new index and the read is repeated. Every call it adds the step to the width $A090/$A096 and writes it to the voice's $D402 and $D403. Called by $A242. Same code as the routine at $B64E of the sound driver.","t":"byte","b":[222,13,160,208,40,188,44,160]},{"a":34748,"t":"byte","b":[185,71,171,208,10,200,185,71]},{"a":34756,"t":"byte","b":[171,157,44,160,76,5,167,157]},{"a":34764,"t":"byte","b":[13,160,200,185,71,171,157,156]},{"a":34772,"t":"byte","b":[160,200,185,71,171,157,159,160]},{"a":34780,"t":"byte","b":[200,152,157,44,160,172,110,160]},{"a":34788,"t":"byte","b":[189,144,160,24,125,156,160,157]},{"a":34796,"t":"byte","b":[144,160,153,2,212,189,150,160]},{"a":34804,"t":"byte","b":[125,159,160,157,150,160,153,3]},{"a":34812,"t":"byte","b":[212,96]},{"a":34814,"l":"tune_image_pitch_slide_step","c":"Image, stored in this file at $87FE-$8876 (121 bytes), of the title tune driver's tune_pitch_slide_step at $A74A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Pitch slide of the current voice. Returns if $A075,X is zero. Counts $A010,X down. At zero it reads a step (frame count, low step, high step) from the table $AB85, or from $ABDA when $A032 is non-zero, at the index $A035,X into $A010, $A0A2 and $A0A5; a count of 0 means the next byte is a new index. Every call it adds the step to the frequency $A061/$A064. Called by $A242 before the frequency is written. Same code as the routine at $B698 of the sound driver.","t":"byte","b":[189,117,160,240,250,222,16,160]},{"a":34822,"t":"byte","b":[208,88,189,50,160,240,43,188]},{"a":34830,"t":"byte","b":[53,160,185,218,171,208,10,200]},{"a":34838,"t":"byte","b":[185,218,171,157,53,160,76,89]},{"a":34846,"t":"byte","b":[167,157,16,160,200,185,218,171]},{"a":34854,"t":"byte","b":[157,162,160,200,185,218,171,157]},{"a":34862,"t":"byte","b":[165,160,200,152,157,53,160,76]},{"a":34870,"t":"byte","b":[172,167,188,53,160,185,133,171]},{"a":34878,"t":"byte","b":[208,10,200,185,133,171,157,53]},{"a":34886,"t":"byte","b":[160,76,132,167,157,16,160,200]},{"a":34894,"t":"byte","b":[185,133,171,157,162,160,200,185]},{"a":34902,"t":"byte","b":[133,171,157,165,160,200,152,157]},{"a":34910,"t":"byte","b":[53,160,172,110,160,189,97,160]},{"a":34918,"t":"byte","b":[24,125,162,160,157,97,160,189]},{"a":34926,"t":"byte","b":[100,160,125,165,160,157,100,160]},{"a":34934,"t":"byte","b":[96]},{"a":34935,"l":"tune_image_arpeggio_step","c":"Image, stored in this file at $8877-$88C3 (77 bytes), of the title tune driver's tune_arpeggio_step at $A7C3, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Arpeggio of the current voice. Returns if $A07B,X is zero. Counts $A0AB,X down; at zero it reloads it from $A0AE, reads the step at $A0B1,X from the list at $A03B/$A041, adds it to the note $A067 and the offsets $A08A and $A08D, looks the sum up in $A98C and $A9EA and writes the frequency to the voice's $D400/$D401. $A0B1 is counted up and returns to 0 at $A0B4. Called by $A242. Same code as the routine at $B711 of the sound driver.","t":"byte","b":[189,123,160,240,71,222,171,160]},{"a":34943,"t":"byte","b":[240,1,96,189,59,160,133,240]},{"a":34951,"t":"byte","b":[189,65,160,133,241,189,174,160]},{"a":34959,"t":"byte","b":[157,171,160,188,177,160,177,240]},{"a":34967,"t":"byte","b":[24,125,103,160,125,138,160,125]},{"a":34975,"t":"byte","b":[141,160,172,110,160,170,189,140]},{"a":34983,"t":"byte","b":[169,153,0,212,189,234,169,153]},{"a":34991,"t":"byte","b":[1,212,166,250,254,177,160,189]},{"a":34999,"t":"byte","b":[177,160,221,180,160,208,5,169]},{"a":35007,"t":"byte","b":[0,157,177,160,96]},{"a":35012,"l":"tune_image_filter_sweep_step","c":"Image, stored in this file at $88C4-$8933 (112 bytes), of the title tune driver's tune_filter_sweep_step at $A810, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Filter sweep, once per call. Counts $A013 down; at zero it reads a step from the table $ACDB at $A048: a frame count (to $A013), a low and a high step (to $A049 and $A04A); a count of 0 means the next byte is a new index. It adds the step to the 16-bit filter value $A04D/$A04E and writes its low three bits to $D415 and a byte made from its upper bits to $D416. Called by $A242 after the voices. It first returns at once while $A000 is non-zero, and also when the highest voice with its filter flag $A07E set is playing a drum; the sweep step itself starts at $A828. The sound driver's copy at $B75E has the sweep step without the guard.","t":"byte","b":[173,0,160,208,18,162,2,189]},{"a":35020,"t":"byte","b":[126,160,208,6,202,16,248,76]},{"a":35028,"t":"byte","b":[40,168,189,129,160,240,1,96]},{"a":35036,"t":"byte","b":[206,19,160,208,39,172,72,160]},{"a":35044,"t":"byte","b":[185,219,172,208,10,200,185,219]},{"a":35052,"t":"byte","b":[172,141,72,160,76,45,168,141]},{"a":35060,"t":"byte","b":[19,160,200,185,219,172,141,73]},{"a":35068,"t":"byte","b":[160,200,185,219,172,141,74,160]},{"a":35076,"t":"byte","b":[200,140,72,160,173,78,160,24]},{"a":35084,"t":"byte","b":[109,73,160,141,78,160,141,183]},{"a":35092,"t":"byte","b":[160,41,7,141,21,212,173,77]},{"a":35100,"t":"byte","b":[160,109,74,160,141,77,160,74]},{"a":35108,"t":"byte","b":[110,183,160,74,110,183,160,74]},{"a":35116,"t":"byte","b":[173,183,160,106,141,22,212,96]},{"a":35124,"l":"tune_image_drum_step","c":"Image, stored in this file at $8934-$899E (107 bytes), of the title tune driver's tune_drum_step at $A880, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Plays the drum lists of the three voices, X from 2 down to 0, for every voice with $A081 set. While the step count $A0BB differs from the list length $A0B8 it patches the list addresses $A04F/$A055 and $A052/$A058 into the operands at $A8D9 and $A8CB and writes the frequency entry to the voice's $D400 and $D401, 8 to $D404 and then the control entry to $D404; it counts $A0BB up. When they are equal and $A000 is non-zero it clears $D404-$D406 of the voice. Called by $A242 after the voice loop. Same code as the routine at $B7B6 of the sound driver.","t":"byte","b":[162,2,189,129,160,240,27,189]},{"a":35132,"t":"byte","b":[187,160,221,184,160,208,23,173]},{"a":35140,"t":"byte","b":[0,160,240,14,169,0,188,126]},{"a":35148,"t":"byte","b":[169,153,4,212,153,5,212,153]},{"a":35156,"t":"byte","b":[6,212,202,16,221,96,142,2]},{"a":35164,"t":"byte","b":[160,141,3,160,189,82,160,141]},{"a":35172,"t":"byte","b":[203,168,189,88,160,141,204,168]},{"a":35180,"t":"byte","b":[189,79,160,141,217,168,189,85]},{"a":35188,"t":"byte","b":[160,141,218,168,188,126,169,174]},{"a":35196,"t":"byte","b":[3,160,189,221,221,153,0,212]},{"a":35204,"t":"byte","b":[153,1,212,169,8,153,4,212]},{"a":35212,"t":"byte","b":[189,221,221,153,4,212,174,2]},{"a":35220,"t":"byte","b":[160,254,187,160,202,48,3,76]},{"a":35228,"t":"byte","b":[130,168,96]},{"a":35231,"l":"tune_image_voices_active","c":"Image, stored in this file at $899F-$89A5 (7 bytes), of the title tune driver's tune_voices_active at $A8EB, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Returns in A the OR of the voice flags $F7, $F8 and $F9, which is non-zero while any voice is playing. Level 1's title code polls it from $0F67, $0FE0 and $1319. Same code as the routine at $B821 of the sound driver.","t":"byte","b":[165,247,5,248,5,249,96]},{"a":35238,"l":"tune_image_silence_all","c":"Image, stored in this file at $89A6-$89CD (40 bytes), of the title tune driver's tune_silence_all at $A8F2, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stops all sound: clears the voice flags $F7-$F9, the fade flags $A0BE and $A0C2 and the volume register $D418, sets the keep flags $A0C4-$A0C6 to $FF and writes 8 to the control registers $D404, $D40B and $D412. $A242 calls it when a fade-out has run down. Same code as the routine at $B828 of the sound driver.","t":"byte","b":[169,0,133,247,133,248,133,249]},{"a":35246,"t":"byte","b":[141,190,160,141,194,160,141,24]},{"a":35254,"t":"byte","b":[212,169,255,141,196,160,141,197]},{"a":35262,"t":"byte","b":[160,141,198,160,169,8,141,4]},{"a":35270,"t":"byte","b":[212,141,11,212,141,18,212,96]},{"a":35278,"l":"tune_image_start_fade_out","c":"Image, stored in this file at $89CE-$89DC (15 bytes), of the title tune driver's tune_start_fade_out at $A91A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Starts a fade-out: stores A in $A0BE, $A0BF and $A0C0 (so A is also the rate) and clears the fade-in flag $A0C2. Level 1's title code calls it from $0F1F, $0FDD and $1316 with A=$0A, $04 and $28. Same code as the routine at $B850 of the sound driver.","t":"byte","b":[141,190,160,141,191,160,141,192]},{"a":35286,"t":"byte","b":[160,169,0,141,194,160,96]},{"a":35293,"l":"tune_image_cmd_end_voice","c":"Image, stored in this file at $89DD-$89E7 (11 bytes), of the title tune driver's tune_cmd_end_voice at $A929, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $8A: ends the voice: clears its active flag $F7+X and writes 0 to its control register $D404, then returns. Same code as the routine at $B85F of the sound driver.","t":"byte","b":[169,0,149,247,172,110,160,153]},{"a":35301,"t":"byte","b":[4,212,96]},{"a":35304,"l":"tune_image_cmd_set_stream","c":"Image, stored in this file at $89E8-$89FB (20 bytes), of the title tune driver's tune_cmd_set_stream at $A934, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Stream command $8B: loads the voice's stream pointer $A05B/$A05E from the next two bytes, sets the stream position $A0A8 to 0 and carries on at $A328. Same code as the routine at $B86A of the sound driver.","t":"byte","b":[200,177,240,157,91,160,200,177]},{"a":35312,"t":"byte","b":[240,157,94,160,169,0,157,168]},{"a":35320,"t":"byte","b":[160,76,40,163]},{"a":35324,"l":"tune_image_stream_command_lo","c":"Image, stored in this file at $89FC-$8A09 (14 bytes), of the title tune driver's tune_stream_command_lo at $A948, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Low bytes of the handler addresses of stream commands $80-$8D (14 bytes), read by the instruction at $A3E3 as $A8C8,X with X from $80. With the high bytes at $A956 the handlers are, in order: $A3F4, $A5BB, $A5D9, $A5F3, $A60C, $A6CA, $A666, $A64A, $A65B, $A666, $A929, $A934, $A948, $A60C. The entry for $8C is the address of this table, so that command would run data.","t":"byte","b":[244,187,217,243,12,202,102,74]},{"a":35332,"t":"byte","b":[91,102,41,52,72,12]},{"a":35338,"l":"tune_image_stream_command_hi","c":"Image, stored in this file at $8A0A-$8A17 (14 bytes), of the title tune driver's tune_stream_command_hi at $A956, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: High bytes of the handler addresses of stream commands $80-$8D (14 bytes), read as $A8D6,X by the instruction at $A3E9; the low bytes are at $A948.","t":"byte","b":[163,165,165,165,166,166,166,166]},{"a":35346,"t":"byte","b":[166,166,169,169,169,166]},{"a":35352,"l":"tune_image_track_command_lo","c":"Image, stored in this file at $8A18-$8A1D (6 bytes), of the title tune driver's tune_track_command_lo at $A964, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Low bytes of the handler addresses of track commands $F0-$F5 (6 bytes), read as $A874,X at $A440 with X from $F0. With the high bytes at $A96A the handlers are: $A451, $A45A, $A469, $A47A, $A489, $A49E.","t":"byte","b":[81,90,105,122,137,158]},{"a":35358,"l":"tune_image_track_command_hi","c":"Image, stored in this file at $8A1E-$8A23 (6 bytes), of the title tune driver's tune_track_command_hi at $A96A, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: High bytes of the handler addresses of track commands $F0-$F5 (6 bytes), read as $A87A,X at $A446; the low bytes are at $A964.","t":"byte","b":[164,164,164,164,164,164]},{"a":35364,"l":"tune_image_wave_command_lo","c":"Image, stored in this file at $8A24-$8A2A (7 bytes), of the title tune driver's tune_wave_command_lo at $A970, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Low bytes of the handler addresses of wave-program commands 0-6 (7 bytes), read as $A970,X at $A4FD. With the high bytes at $A977 the handlers are: $A50E, $A51A, $A52E, $A54D, $A566, $A583, $A5A7.","t":"byte","b":[14,26,46,77,102,131,167]},{"a":35371,"l":"tune_image_wave_command_hi","c":"Image, stored in this file at $8A2B-$8A31 (7 bytes), of the title tune driver's tune_wave_command_hi at $A977, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: High bytes of the handler addresses of wave-program commands 0-6 (7 bytes), read as $A977,X at $A503; the low bytes are at $A970.","t":"byte","b":[165,165,165,165,165,165,165]},{"a":35378,"l":"tune_image_voice_offsets","c":"Image, stored in this file at $8A32-$8A34 (3 bytes), of the title tune driver's tune_voice_offsets at $A97E, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Offsets of the three voices' SID registers from $D400: 00 07 0E (voice 0 at $D400, voice 1 at $D407, voice 2 at $D40E). Read by $A242, $A0EE, $A880 and $A8A6.","t":"byte","b":[0,7,14]},{"a":35381,"l":"tune_image_idle_program","c":"Image, stored in this file at $8A35-$8A3F (11 bytes), of the title tune driver's tune_idle_program at $A981, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: 11 bytes, 00 FF 01 81 A9 FF 00 00 4C 86 A9. The first five are the idle wave program that $A126 gives every voice: command 0 with a wait of $FF frames, then command 1 jumping to its own start at $A981. The six after it, FF 00 00 4C 86 A9, end in a JMP to $A986 and are not read by the driver.","t":"byte","b":[0,255,1,129,169,255,0,0]},{"a":35389,"t":"byte","b":[76,134,169]},{"a":35392,"l":"tune_image_note_freq_lo","c":"Image, stored in this file at $8A40-$8A9D (94 bytes), of the title tune driver's tune_note_freq_lo at $A98C, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Low bytes of the 94-entry table of SID frequency values, with the high bytes at $A9EA. The index is a note number plus the offsets $A08A and $A08D; it is looked up by $A242, $A4C4 and $A7C3. Entry 0 is $0578, entries 1 to 93 rise from $0128 to $EB00.","t":"byte","b":[120,40,58,76,96,117,139,163]},{"a":35400,"t":"byte","b":[188,214,242,16,47,80,115,153]},{"a":35408,"t":"byte","b":[192,234,22,69,119,172,228,31]},{"a":35416,"t":"byte","b":[94,160,231,50,128,212,45,139]},{"a":35424,"t":"byte","b":[238,88,200,62,188,65,205,99]},{"a":35432,"t":"byte","b":[1,168,90,22,221,176,144,124]},{"a":35440,"t":"byte","b":[119,129,155,197,2,81,180,44]},{"a":35448,"t":"byte","b":[186,96,31,249,239,3,54,139]},{"a":35456,"t":"byte","b":[3,161,103,87,115,192,62,241]},{"a":35464,"t":"byte","b":[222,5,108,22,6,67,206,174]},{"a":35472,"t":"byte","b":[231,128,125,228,187,10,215,44]},{"a":35480,"t":"byte","b":[13,133,156,92,207,0]},{"a":35486,"l":"tune_image_note_freq_hi","c":"Image, stored in this file at $8A9E-$8AFB (94 bytes), of the title tune driver's tune_note_freq_hi at $A9EA, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: High bytes of the 94-entry table of SID frequency values (94 bytes); the low bytes are at $A98C. Entry 0 is $0578 and entry 93 is $EB00.","t":"byte","b":[5,1,1,1,1,1,1,1]},{"a":35494,"t":"byte","b":[1,1,1,2,2,2,2,2]},{"a":35502,"t":"byte","b":[2,2,3,3,3,3,3,4]},{"a":35510,"t":"byte","b":[4,4,4,5,5,5,6,6]},{"a":35518,"t":"byte","b":[6,7,7,8,8,9,9,10]},{"a":35526,"t":"byte","b":[11,11,12,13,13,14,15,16]},{"a":35534,"t":"byte","b":[17,18,19,20,22,23,24,26]},{"a":35542,"t":"byte","b":[27,29,31,32,34,37,39,41]},{"a":35550,"t":"byte","b":[44,46,49,52,55,58,62,65]},{"a":35558,"t":"byte","b":[69,74,78,83,88,93,98,104]},{"a":35566,"t":"byte","b":[110,117,124,131,139,148,156,166]},{"a":35574,"t":"byte","b":[176,186,197,209,221,235]},{"a":35580,"l":"tune_image_drum_records","c":"Image, stored in this file at $8AFC-$8B0A (15 bytes), of the title tune driver's tune_drum_records at $AA48, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: 3 records of 5 bytes, chosen by the offset after stream command $86 or $89 ($A666): list address (2 bytes), list length, sustain/release value and pulse width high byte. They are, by offset: 00: list $AA57 length $09 sustain/release $B8 pulse high $08; 05: list $AA69 length $0C sustain/release $D9 pulse high $08; 0A: list $AA81 length $06 sustain/release $98 pulse high $01.","t":"byte","b":[87,170,9,184,8,105,170,12]},{"a":35588,"t":"byte","b":[217,8,129,170,6,152,1]},{"a":35595,"l":"tune_image_drum_lists","c":"Image, stored in this file at $8B0B-$8B40 (54 bytes), of the title tune driver's tune_drum_lists at $AA57, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: The drum lists the records at $AA48 point to, 54 bytes. A list is a run of control register values for $D404 followed by a run of the same length of values that $A880 writes to both $D400 and $D401; a record's length is the length of each run. Lists may be shared by several records.","t":"byte","b":[9,129,65,16,16,16,16,16]},{"a":35603,"t":"byte","b":[16,0,128,7,13,7,6,5]},{"a":35611,"t":"byte","b":[3,2,9,129,64,128,128,128]},{"a":35619,"t":"byte","b":[128,128,128,128,240,240,0,255]},{"a":35627,"t":"byte","b":[16,238,190,189,188,187,186,185]},{"a":35635,"t":"byte","b":[184,183,9,129,65,16,16,16]},{"a":35643,"t":"byte","b":[0,255,37,32,28,24]},{"a":35649,"l":"tune_image_starts_table","c":"Image, stored in this file at $8B41-$8B58 (24 bytes), of the title tune driver's tune_starts_table at $AA8D, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Tune table, 4 entries of 6 bytes, indexed by 6 times the tune number in X at $A164: for each voice the low and the high byte of the address of its track list, in the order voice 0 low, voice 0 high, voice 1 low, voice 1 high, voice 2 low, voice 2 high. The track list addresses of tunes 0 to 3 are: $ADAD/$ADA0/$ADB2; $AF5A/$AF93/$AFA6; $AEB8/$AEBC/$AEC0; $B10B/$B143/$B0F3. Level 1 starts tunes 0 and 3.","t":"byte","b":[173,173,160,173,178,173,90,175]},{"a":35657,"t":"byte","b":[147,175,166,175,184,174,188,174]},{"a":35665,"t":"byte","b":[192,174,11,177,67,177,243,176]},{"a":35673,"l":"tune_image_pattern_lo","c":"Image, stored in this file at $8B59-$8BA9 (81 bytes), of the title tune driver's tune_pattern_lo at $AAA5, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: Low bytes of the addresses of the 81 patterns, indexed by the pattern number in a track list (a value below $F0 read by $A3FA). The high bytes are at $AAF6.","t":"byte","b":[202,75,180,184,184,184,133,162]},{"a":35681,"t":"byte","b":[180,184,184,184,184,184,184,184]},{"a":35689,"t":"byte","b":[184,184,184,184,184,196,4,47]},{"a":35697,"t":"byte","b":[90,90,180,210,65,102,177,198]},{"a":35705,"t":"byte","b":[243,243,243,243,243,243,243,243]},{"a":35713,"t":"byte","b":[243,243,243,243,243,243,243,243]},{"a":35721,"t":"byte","b":[243,243,243,243,243,243,243,243]},{"a":35729,"t":"byte","b":[243,243,243,243,243,243,243,243]},{"a":35737,"t":"byte","b":[243,243,243,243,243,120,124,176]},{"a":35745,"t":"byte","b":[219,226,34,56,120,120,223,226]},{"a":35753,"t":"byte","b":[226]},{"a":35754,"l":"tune_image_pattern_hi","c":"Image, stored in this file at $8BAA-$8BFA (81 bytes), of the title tune driver's tune_pattern_hi at $AAF6, which the title code runs from $A0C8; the level's own sound driver is at $B0C8. The live piece: High bytes of the addresses of the 81 patterns; the low bytes are at $AAA5. The addresses lie between $AD00 and $B2FF.","t":"byte","b":[173,174,174,174,174,174,174,174]},{"a":35762,"t":"byte","b":[174,174,174,174,174,174,174,174]},{"a":35770,"t":"byte","b":[174,174,174,174,174,174,175,175]},{"a":35778,"t":"byte","b":[175,175,175,175,176,176,176,176]},{"a":35786,"t":"byte","b":[176,176,176,176,176,176,176,176]},{"a":35794,"t":"byte","b":[176,176,176,176,176,176,176,176]},{"a":35802,"t":"byte","b":[176,176,176,176,176,176,176,176]},{"a":35810,"t":"byte","b":[176,176,176,176,176,176,176,176]},{"a":35818,"t":"byte","b":[176,176,176,176,176,177,177,177]},{"a":35826,"t":"byte","b":[177,177,178,178,178,178,178,178]},{"a":35834,"t":"byte","b":[178]},{"a":35835,"l":"tune_image_pulse_table","c":"Image, stored at $8BFB-$8C38 (63 bytes), of the title tune driver's pulse-width sweep steps at $AB47, read by tune_pulse_step ($A700) with the same format as the level driver's pulse_table ($B9E4): a step is three bytes, a frame count and the low and high bytes of the amount added to the pulse width each frame.","t":"byte","b":[255,0,0,0,0,3,40,0]},{"a":35843,"t":"byte","b":[3,216,255,0,5,2,0,0]},{"a":35851,"t":"byte","b":[5,50,0,5,156,255,5,50]},{"a":35859,"t":"byte","b":[0,0,16,5,0,0,4,20]},{"a":35867,"t":"byte","b":[0,4,216,255,4,20,0,0]},{"a":35875,"t":"byte","b":[30,255,60,0,0,41,2,40]},{"a":35883,"t":"byte","b":[0,1,216,255,0,46,184,10]},{"a":35891,"t":"byte","b":[0,184,246,255,0,54]},{"a":35897,"l":"tune_image_slide_table","c":"Image, stored at $8C39-$8C8D (85 bytes), of the title tune driver's pitch-slide steps at $AB85, read by tune_pitch_slide_step ($A74A) and started by stream command $83, in the format of the level driver's pitch_slide_table ($BA07): three bytes a step, a frame count and the low and high bytes of the amount added to the frequency.","t":"byte","b":[255,0,0,0,0,25,0,0]},{"a":35905,"t":"byte","b":[3,28,0,6,228,255,3,28]},{"a":35913,"t":"byte","b":[0,0,8,1,6,0,24,0]},{"a":35921,"t":"byte","b":[0,0,8,1,156,255,5,20]},{"a":35929,"t":"byte","b":[0,19,0,0,0,8,1,12]},{"a":35937,"t":"byte","b":[0,24,0,0,0,8,2,0]},{"a":35945,"t":"byte","b":[0,3,224,0,3,64,254,3]},{"a":35953,"t":"byte","b":[224,0,0,49,2,0,0,1]},{"a":35961,"t":"byte","b":[56,255,8,25,0,0,5,2]},{"a":35969,"t":"byte","b":[0,0,3,36,0,3,184,255]},{"a":35977,"t":"byte","b":[3,36,0,0,74]},{"a":35982,"l":"tune_image_arpeggio_table","c":"Image, stored at $8C8E-$8D8E (257 bytes), of the title tune driver's arpeggio table at $ABDA: 31 two-byte addresses ($AC18, $AC20, $AC28 ... $ACD6) of entries that tune_cmd_arpeggio ($A60C) selects by number, then the entries from $AC18 to $ACDA. An entry is the frames per step, the number of steps and the values added to the note, for example 02 06 00 05 07 0C 11 13. tune_pitch_slide_step ($A74A) also reads $ABDA, as the level driver reads $BA5B.","t":"byte","b":[24,172,32,172,40,172,48,172]},{"a":35990,"t":"byte","b":[56,172,64,172,72,172,80,172]},{"a":35998,"t":"byte","b":[88,172,92,172,100,172,105,172]},{"a":36006,"t":"byte","b":[113,172,121,172,126,172,131,172]},{"a":36014,"t":"byte","b":[137,172,143,172,149,172,154,172]},{"a":36022,"t":"byte","b":[160,172,168,172,172,172,176,172]},{"a":36030,"t":"byte","b":[182,172,188,172,194,172,199,172]},{"a":36038,"t":"byte","b":[204,172,209,172,214,172,2,6]},{"a":36046,"t":"byte","b":[0,5,7,12,17,19,2,6]},{"a":36054,"t":"byte","b":[0,5,8,12,17,20,2,6]},{"a":36062,"t":"byte","b":[0,2,7,12,14,19,3,6]},{"a":36070,"t":"byte","b":[0,5,7,12,17,19,3,6]},{"a":36078,"t":"byte","b":[0,5,8,12,17,20,3,6]},{"a":36086,"t":"byte","b":[0,2,7,12,14,19,2,6]},{"a":36094,"t":"byte","b":[0,5,7,12,17,19,2,6]},{"a":36102,"t":"byte","b":[0,2,7,12,14,19,1,2]},{"a":36110,"t":"byte","b":[0,0,2,6,0,5,7,12]},{"a":36118,"t":"byte","b":[17,19,2,3,12,0,0,2]},{"a":36126,"t":"byte","b":[6,0,3,7,12,15,19,2]},{"a":36134,"t":"byte","b":[6,0,4,7,12,16,19,3]},{"a":36142,"t":"byte","b":[3,0,5,12,3,3,0,3]},{"a":36150,"t":"byte","b":[12,2,4,0,2,7,12,1]},{"a":36158,"t":"byte","b":[4,0,3,8,12,1,4,0]},{"a":36166,"t":"byte","b":[5,9,12,1,3,24,12,0]},{"a":36174,"t":"byte","b":[2,4,0,4,5,9,1,6]},{"a":36182,"t":"byte","b":[0,2,3,8,12,20,1,2]},{"a":36190,"t":"byte","b":[12,0,2,2,0,12,3,4]},{"a":36198,"t":"byte","b":[0,5,8,12,3,4,0,5]},{"a":36206,"t":"byte","b":[7,12,3,4,0,4,7,12]},{"a":36214,"t":"byte","b":[1,3,0,5,9,1,3,12]},{"a":36222,"t":"byte","b":[4,0,1,3,12,3,0,1]},{"a":36230,"t":"byte","b":[3,0,4,9,1,3,0,3]},{"a":36238,"t":"byte","b":[7]},{"a":36239,"l":"tune_image_filter_table","c":"Image, stored at $8D8F-$8DAA (28 bytes), of the title tune driver's filter-sweep steps at $ACDB, read by tune_filter_sweep_step ($A810) in the format of the level driver's filter_sweep_table ($BA62): a frame count, then the low and high bytes of the amount added to the filter value.","t":"byte","b":[255,0,0,0,0,12,171,255]},{"a":36247,"t":"byte","b":[0,0,8,156,255,0,0,96]},{"a":36255,"t":"byte","b":[10,0,96,246,255,0,15,6]},{"a":36263,"t":"byte","b":[6,255,0,0]},{"a":36267,"l":"tune_image_wave_program_table","c":"Image, stored at $8DAB-$8DC0 (22 bytes), of the title tune driver's table of 11 wave program addresses at $ACF7 ($AD0D, $AD19, $AD26, $AD32, $AD41, $AD50, $AD60, $AD6C, $AD78, $AD84, $AD90), chosen by stream command $81 in tune_cmd_wave_program ($A5BB).","t":"byte","b":[13,173,25,173,38,173,50,173]},{"a":36275,"t":"byte","b":[65,173,80,173,96,173,108,173]},{"a":36283,"t":"byte","b":[120,173,132,173,144,173]},{"a":36289,"l":"tune_image_wave_programs","c":"Image, stored at $8DC1-$8E53 (147 bytes), of the title tune driver's wave programs at $AD0D, started at the addresses in tune_image_wave_program_table; the commands are those of the level driver's wave_programs ($BA90), run by tune_wave_program_tick ($A4C4).","t":"byte","b":[2,0,118,3,65,2,3,32]},{"a":36297,"t":"byte","b":[255,1,19,173,2,1,122,5]},{"a":36305,"t":"byte","b":[65,2,12,3,64,255,1,32]},{"a":36313,"t":"byte","b":[173,2,3,74,4,65,1,3]},{"a":36321,"t":"byte","b":[64,255,1,44,173,2,1,170]},{"a":36329,"t":"byte","b":[3,81,1,3,65,1,3,64]},{"a":36337,"t":"byte","b":[255,1,32,173,2,3,90,3]},{"a":36345,"t":"byte","b":[33,2,3,65,2,3,32,255]},{"a":36353,"t":"byte","b":[1,32,173,2,2,169,5,65]},{"a":36361,"t":"byte","b":[1,244,3,65,1,3,64,255]},{"a":36369,"t":"byte","b":[1,32,173,2,3,94,3,33]},{"a":36377,"t":"byte","b":[3,3,64,255,1,44,173,2]},{"a":36385,"t":"byte","b":[20,104,4,65,1,3,64,255]},{"a":36393,"t":"byte","b":[1,44,173,2,1,72,3,65]},{"a":36401,"t":"byte","b":[3,3,96,255,1,19,173,2]},{"a":36409,"t":"byte","b":[2,169,3,65,3,3,32,255]},{"a":36417,"t":"byte","b":[1,138,173,2,2,152,5,65]},{"a":36425,"t":"byte","b":[2,12,4,65,1,3,64,255]},{"a":36433,"t":"byte","b":[1,32,173]},{"a":36436,"l":"tune_image_data_ADA0","c":"Image, stored at $8E54-$8E60 (13 bytes), of tune data of the title tune driver at $ADA0-$ADAC. It starts with the track list of tune 0, voice 1. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[245,12,15,241,4,0,243,255]},{"a":36444,"t":"byte","b":[241,4,0,240,3]},{"a":36449,"l":"tune_image_data_ADAD","c":"Image, stored at $8E61-$8E65 (5 bytes), of tune data of the title tune driver at $ADAD-$ADB1. It starts with the track list of tune 0, voice 0. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[241,8,6,240,0]},{"a":36454,"l":"tune_image_data_ADB2","c":"Image, stored at $8E66-$8E7D (24 bytes), of tune data of the title tune driver at $ADB2-$ADC9. It starts with the track list of tune 0, voice 2. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[1,243,251,1,243,249,1,243]},{"a":36462,"t":"byte","b":[251,1,243,255,1,243,250,1]},{"a":36470,"t":"byte","b":[243,248,1,243,250,1,240,0]},{"a":36478,"l":"tune_image_data_ADCA","c":"Image, stored at $8E7E-$8EFE (129 bytes), of tune data of the title tune driver at $ADCA-$AE4A. It starts with pattern 0. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[135,6,129,0,130,5,4,0]},{"a":36486,"t":"byte","b":[132,28,45,132,27,48,132,28]},{"a":36494,"t":"byte","b":[47,132,27,48,132,28,45,132]},{"a":36502,"t":"byte","b":[27,48,132,28,47,132,27,48]},{"a":36510,"t":"byte","b":[132,28,45,132,27,48,132,28]},{"a":36518,"t":"byte","b":[47,132,27,48,132,28,45,132]},{"a":36526,"t":"byte","b":[27,48,132,28,47,132,27,48]},{"a":36534,"t":"byte","b":[132,28,45,132,27,48,132,28]},{"a":36542,"t":"byte","b":[47,132,27,48,132,28,45,132]},{"a":36550,"t":"byte","b":[27,48,132,28,47,132,27,48]},{"a":36558,"t":"byte","b":[132,28,45,132,27,48,132,28]},{"a":36566,"t":"byte","b":[47,132,27,48,132,28,45,132]},{"a":36574,"t":"byte","b":[27,48,132,28,47,132,27,48]},{"a":36582,"t":"byte","b":[132,28,45,132,27,48,132,28]},{"a":36590,"t":"byte","b":[47,132,27,48,132,28,45,132]},{"a":36598,"t":"byte","b":[27,48,132,28,47,132,27,48]},{"a":36606,"t":"byte","b":[128]},{"a":36607,"l":"tune_image_data_AE4B","c":"Image, stored at $8EFF-$8F38 (58 bytes), of tune data of the title tune driver at $AE4B-$AE84. It starts with pattern 1. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,1,130,13,8,0,133,5]},{"a":36615,"t":"byte","b":[4,32,133,33,12,96,24,33]},{"a":36623,"t":"byte","b":[12,96,12,33,6,96,6,96]},{"a":36631,"t":"byte","b":[12,33,6,96,6,33,12,96]},{"a":36639,"t":"byte","b":[12,33,12,96,24,33,12,96]},{"a":36647,"t":"byte","b":[12,33,6,96,6,33,12,96]},{"a":36655,"t":"byte","b":[12,36,9,96,3,38,9,96]},{"a":36663,"t":"byte","b":[3,128]},{"a":36665,"l":"tune_image_data_AE85","c":"Image, stored at $8F39-$8F55 (29 bytes), of tune data of the title tune driver at $AE85-$AEA1. It starts with pattern 6. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[136,134,0,36,134,5,36,134]},{"a":36673,"t":"byte","b":[0,24,134,0,36,134,0,24]},{"a":36681,"t":"byte","b":[134,5,36,134,0,24,134,5]},{"a":36689,"t":"byte","b":[12,134,0,12,128]},{"a":36694,"l":"tune_image_data_AEA2","c":"Image, stored at $8F56-$8F67 (18 bytes), of tune data of the title tune driver at $AEA2-$AEB3. It starts with pattern 7. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[136,96,120,96,24,36,12,96]},{"a":36702,"t":"byte","b":[12,35,12,96,12,31,18,96]},{"a":36710,"t":"byte","b":[30,128]},{"a":36712,"l":"tune_image_data_AEB4","c":"Image, stored at $8F68-$8F6B (4 bytes), of tune data of the title tune driver at $AEB4-$AEB7. It starts with patterns 2, 8. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[136,96,96,128]},{"a":36716,"l":"tune_image_data_AEB8","c":"Image, stored at $8F6C-$8F6F (4 bytes), of tune data of the title tune driver at $AEB8-$AEBB. It starts with the track list of tune 2, voice 0; patterns 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[243,24,22,242]},{"a":36720,"l":"tune_image_data_AEBC","c":"Image, stored at $8F70-$8F73 (4 bytes), of tune data of the title tune driver at $AEBC-$AEBF. It starts with the track list of tune 2, voice 1. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[243,24,23,242]},{"a":36724,"l":"tune_image_data_AEC0","c":"Image, stored at $8F74-$8F77 (4 bytes), of tune data of the title tune driver at $AEC0-$AEC3. It starts with the track list of tune 2, voice 2. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[243,12,21,242]},{"a":36728,"l":"tune_image_data_AEC4","c":"Image, stored at $8F78-$8FB7 (64 bytes), of tune data of the title tune driver at $AEC4-$AF03. It starts with pattern 21. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,3,130,41,6,0,133,23]},{"a":36736,"t":"byte","b":[6,16,132,13,12,13,12,11]},{"a":36744,"t":"byte","b":[12,13,12,96,36,8,6,11]},{"a":36752,"t":"byte","b":[6,13,12,13,12,11,12,13]},{"a":36760,"t":"byte","b":[12,96,36,8,6,11,6,13]},{"a":36768,"t":"byte","b":[12,13,12,11,12,13,12,96]},{"a":36776,"t":"byte","b":[36,8,6,11,6,13,12,13]},{"a":36784,"t":"byte","b":[12,11,12,13,12,96,48,128]},{"a":36792,"l":"tune_image_data_AF04","c":"Image, stored at $8FB8-$8FE2 (43 bytes), of tune data of the title tune driver at $AF04-$AF2E. It starts with pattern 22. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,2,130,27,6,0,131,27]},{"a":36800,"t":"byte","b":[37,30,96,6,131,5,32,30]},{"a":36808,"t":"byte","b":[96,6,34,12,35,6,34,6]},{"a":36816,"t":"byte","b":[32,30,96,6,30,30,96,6]},{"a":36824,"t":"byte","b":[27,12,28,6,27,6,25,192]},{"a":36832,"t":"byte","b":[96,72,128]},{"a":36835,"l":"tune_image_data_AF2F","c":"Image, stored at $8FE3-$900D (43 bytes), of tune data of the title tune driver at $AF2F-$AF59. It starts with pattern 23. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,2,130,27,6,64,96,1]},{"a":36843,"t":"byte","b":[131,19,37,30,96,6,32,30]},{"a":36851,"t":"byte","b":[96,6,34,12,35,6,34,6]},{"a":36859,"t":"byte","b":[32,30,96,6,30,30,96,6]},{"a":36867,"t":"byte","b":[27,12,28,6,27,6,25,190]},{"a":36875,"t":"byte","b":[96,72,128]},{"a":36878,"l":"tune_image_data_AF5A","c":"Image, stored at $900E-$9046 (57 bytes), of tune data of the title tune driver at $AF5A-$AF92. It starts with the track list of tune 1, voice 0; patterns 24, 25. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[245,20,15,241,4,243,253,26]},{"a":36886,"t":"byte","b":[241,4,243,253,26,241,2,243]},{"a":36894,"t":"byte","b":[253,26,241,2,243,249,26,243]},{"a":36902,"t":"byte","b":[248,26,243,251,26,241,2,243]},{"a":36910,"t":"byte","b":[253,26,241,2,243,249,26,243]},{"a":36918,"t":"byte","b":[248,26,243,251,26,241,2,243]},{"a":36926,"t":"byte","b":[254,26,241,2,243,249,26,240]},{"a":36934,"t":"byte","b":[29]},{"a":36935,"l":"tune_image_data_AF93","c":"Image, stored at $9047-$9059 (19 bytes), of tune data of the title tune driver at $AF93-$AFA5. It starts with the track list of tune 1, voice 1. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[241,4,2,241,2,243,33,31]},{"a":36943,"t":"byte","b":[243,33,27,243,33,27,243,33]},{"a":36951,"t":"byte","b":[29,240,11]},{"a":36954,"l":"tune_image_data_AFA6","c":"Image, stored at $905A-$9067 (14 bytes), of tune data of the title tune driver at $AFA6-$AFB3. It starts with the track list of tune 1, voice 2. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[241,8,2,243,9,28,243,9]},{"a":36962,"t":"byte","b":[28,243,9,30,240,6]},{"a":36968,"l":"tune_image_data_AFB4","c":"Image, stored at $9068-$9085 (30 bytes), of tune data of the title tune driver at $AFB4-$AFD1. It starts with pattern 26. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,5,130,41,8,0,133,10]},{"a":36976,"t":"byte","b":[3,96,209,31,18,31,6,31]},{"a":36984,"t":"byte","b":[6,31,6,31,18,31,6,31]},{"a":36992,"t":"byte","b":[12,31,12,31,12,128]},{"a":36998,"l":"tune_image_data_AFD2","c":"Image, stored at $9086-$90F4 (111 bytes), of tune data of the title tune driver at $AFD2-$B040. It starts with pattern 27. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[132,13,26,18,26,6,26,6]},{"a":37006,"t":"byte","b":[26,6,26,18,26,6,26,12]},{"a":37014,"t":"byte","b":[26,12,26,12,26,18,26,6]},{"a":37022,"t":"byte","b":[26,6,26,6,26,18,26,6]},{"a":37030,"t":"byte","b":[26,12,26,12,26,12,22,18]},{"a":37038,"t":"byte","b":[22,6,22,6,22,6,22,18]},{"a":37046,"t":"byte","b":[22,6,22,12,22,12,22,12]},{"a":37054,"t":"byte","b":[22,18,22,6,22,6,22,6]},{"a":37062,"t":"byte","b":[22,18,22,6,22,12,22,12]},{"a":37070,"t":"byte","b":[22,12,21,18,21,6,21,6]},{"a":37078,"t":"byte","b":[21,6,21,18,21,6,21,12]},{"a":37086,"t":"byte","b":[21,12,21,12,19,18,19,6]},{"a":37094,"t":"byte","b":[19,6,19,6,19,18,19,6]},{"a":37102,"t":"byte","b":[19,12,19,12,19,12,128]},{"a":37109,"l":"tune_image_data_B041","c":"Image, stored at $90F5-$9119 (37 bytes), of tune data of the title tune driver at $B041-$B065. It starts with pattern 28. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,6,130,27,6,0,131,5]},{"a":37117,"t":"byte","b":[43,36,48,60,50,36,51,36]},{"a":37125,"t":"byte","b":[50,12,51,6,50,6,46,180]},{"a":37133,"t":"byte","b":[45,6,46,6,45,96,41,48]},{"a":37141,"t":"byte","b":[38,24,41,24,128]},{"a":37146,"l":"tune_image_data_B066","c":"Image, stored at $911A-$9164 (75 bytes), of tune data of the title tune driver at $B066-$B0B0. It starts with pattern 29. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[132,14,24,18,24,6,24,6]},{"a":37154,"t":"byte","b":[24,6,24,18,24,6,24,12]},{"a":37162,"t":"byte","b":[24,12,24,12,24,18,24,6]},{"a":37170,"t":"byte","b":[24,6,24,6,24,18,24,6]},{"a":37178,"t":"byte","b":[24,12,24,12,24,12,19,18]},{"a":37186,"t":"byte","b":[19,6,19,6,19,6,19,18]},{"a":37194,"t":"byte","b":[19,6,19,12,19,12,19,12]},{"a":37202,"t":"byte","b":[19,18,19,6,19,6,19,6]},{"a":37210,"t":"byte","b":[19,18,19,6,19,12,19,12]},{"a":37218,"t":"byte","b":[19,12,128]},{"a":37221,"l":"tune_image_data_B0B1","c":"Image, stored at $9165-$9179 (21 bytes), of tune data of the title tune driver at $B0B1-$B0C5. It starts with pattern 30. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[48,96,46,48,44,46,96,2]},{"a":37229,"t":"byte","b":[44,24,43,12,39,120,36,12]},{"a":37237,"t":"byte","b":[39,12,41,12,128]},{"a":37242,"l":"tune_image_data_B0C6","c":"Image, stored at $917A-$91A6 (45 bytes), of tune data of the title tune driver at $B0C6-$B0F2. It starts with pattern 31. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[132,13,129,4,130,41,4,0]},{"a":37250,"t":"byte","b":[26,18,26,6,26,6,26,6]},{"a":37258,"t":"byte","b":[26,18,26,6,26,12,26,12]},{"a":37266,"t":"byte","b":[26,12,26,18,26,6,26,6]},{"a":37274,"t":"byte","b":[26,6,26,18,26,6,26,12]},{"a":37282,"t":"byte","b":[26,12,26,12,128]},{"a":37287,"l":"tune_image_data_B0F3","c":"Image, stored at $91A7-$91BE (24 bytes), of tune data of the title tune driver at $B0F3-$B10A. It starts with the track list of tune 3, voice 2; patterns 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[245,30,15,241,7,69,78,241]},{"a":37295,"t":"byte","b":[2,243,12,73,241,2,243,14]},{"a":37303,"t":"byte","b":[73,241,4,243,12,77,240,3]},{"a":37311,"l":"tune_image_data_B10B","c":"Image, stored at $91BF-$91F6 (56 bytes), of tune data of the title tune driver at $B10B-$B142. It starts with the track list of tune 3, voice 0. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[71,243,251,71,243,249,71,243]},{"a":37319,"t":"byte","b":[244,71,71,243,251,71,243,249]},{"a":37327,"t":"byte","b":[71,243,244,71,243,12,75,243]},{"a":37335,"t":"byte","b":[2,71,243,253,71,243,251,71]},{"a":37343,"t":"byte","b":[243,246,71,243,14,75,71,243]},{"a":37351,"t":"byte","b":[251,71,71,243,251,71,71,243]},{"a":37359,"t":"byte","b":[251,71,71,243,251,71,240,0]},{"a":37367,"l":"tune_image_data_B143","c":"Image, stored at $91F7-$922B (53 bytes), of tune data of the title tune driver at $B143-$B177. It starts with the track list of tune 3, voice 1. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[70,243,7,70,243,5,70,70]},{"a":37375,"t":"byte","b":[70,243,7,70,243,5,70,70]},{"a":37383,"t":"byte","b":[70,243,7,70,243,5,70,70]},{"a":37391,"t":"byte","b":[243,2,70,243,9,70,243,7]},{"a":37399,"t":"byte","b":[70,243,2,70,243,2,70,243]},{"a":37407,"t":"byte","b":[9,70,243,7,70,243,2,70]},{"a":37415,"t":"byte","b":[241,8,70,240,0]},{"a":37420,"l":"tune_image_data_B178","c":"Image, stored at $922C-$922F (4 bytes), of tune data of the title tune driver at $B178-$B17B. It starts with pattern 69. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[136,96,96,128]},{"a":37424,"l":"tune_image_data_B17C","c":"Image, stored at $9230-$9263 (52 bytes), of tune data of the title tune driver at $B17C-$B1AF. It starts with pattern 70. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,10,130,27,6,192,133,10]},{"a":37432,"t":"byte","b":[3,128,35,24,6,24,12,24]},{"a":37440,"t":"byte","b":[6,24,12,24,6,24,12,24]},{"a":37448,"t":"byte","b":[6,24,12,24,12,24,12,24]},{"a":37456,"t":"byte","b":[6,24,12,24,6,24,12,24]},{"a":37464,"t":"byte","b":[6,24,12,24,6,24,12,22]},{"a":37472,"t":"byte","b":[12,27,12,128]},{"a":37476,"l":"tune_image_data_B1B0","c":"Image, stored at $9264-$928E (43 bytes), of tune data of the title tune driver at $B1B0-$B1DA. It starts with pattern 71. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,8,131,71,130,27,13,0]},{"a":37484,"t":"byte","b":[135,6,63,62,63,62,63,62]},{"a":37492,"t":"byte","b":[63,62,63,62,63,62,63,62]},{"a":37500,"t":"byte","b":[63,62,63,62,63,62,63,62]},{"a":37508,"t":"byte","b":[63,62,63,62,63,62,63,62]},{"a":37516,"t":"byte","b":[63,62,128]},{"a":37519,"l":"tune_image_data_B1DB","c":"Image, stored at $928F-$9295 (7 bytes), of tune data of the title tune driver at $B1DB-$B1E1. It starts with pattern 72. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[134,0,72,134,0,24,128]},{"a":37526,"l":"tune_image_data_B1E2","c":"Image, stored at $9296-$92D5 (64 bytes), of tune data of the title tune driver at $B1E2-$B221. It starts with pattern 73. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[136,96,12,129,7,130,27,6]},{"a":37534,"t":"byte","b":[0,131,5,36,12,34,12,36]},{"a":37542,"t":"byte","b":[12,39,6,38,12,36,12,34]},{"a":37550,"t":"byte","b":[6,36,120,39,12,38,12,39]},{"a":37558,"t":"byte","b":[12,38,6,36,12,38,12,39]},{"a":37566,"t":"byte","b":[6,38,96,36,6,34,6,32]},{"a":37574,"t":"byte","b":[48,34,48,36,24,34,24,32]},{"a":37582,"t":"byte","b":[36,31,6,32,6,31,192,128]},{"a":37590,"l":"tune_image_data_B222","c":"Image, stored at $92D6-$92EB (22 bytes), of tune data of the title tune driver at $B222-$B237. It starts with pattern 74. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[134,0,18,134,0,6,134,1]},{"a":37598,"t":"byte","b":[12,134,0,24,134,0,12,134]},{"a":37606,"t":"byte","b":[1,12,134,0,12,128]},{"a":37612,"l":"tune_image_data_B238","c":"Image, stored at $92EC-$932B (64 bytes), of tune data of the title tune driver at $B238-$B277. It starts with pattern 75. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[136,96,14,129,7,130,27,6]},{"a":37620,"t":"byte","b":[64,131,38,36,12,34,12,36]},{"a":37628,"t":"byte","b":[12,39,6,38,12,36,12,34]},{"a":37636,"t":"byte","b":[6,36,120,39,12,38,12,39]},{"a":37644,"t":"byte","b":[12,38,6,36,12,38,12,39]},{"a":37652,"t":"byte","b":[6,38,96,36,6,34,6,32]},{"a":37660,"t":"byte","b":[48,34,48,36,24,34,24,32]},{"a":37668,"t":"byte","b":[36,31,6,32,6,31,190,128]},{"a":37676,"l":"tune_image_data_B278","c":"Image, stored at $932C-$9392 (103 bytes), of tune data of the title tune driver at $B278-$B2DE. It starts with patterns 76, 77. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[129,9,130,27,4,0,132,23]},{"a":37684,"t":"byte","b":[43,18,132,24,43,18,132,23]},{"a":37692,"t":"byte","b":[43,18,132,24,43,18,132,23]},{"a":37700,"t":"byte","b":[43,12,132,24,43,12,132,23]},{"a":37708,"t":"byte","b":[43,18,132,24,43,18,132,23]},{"a":37716,"t":"byte","b":[43,18,132,24,43,18,132,24]},{"a":37724,"t":"byte","b":[41,12,132,25,41,12,132,23]},{"a":37732,"t":"byte","b":[43,18,132,24,43,18,132,23]},{"a":37740,"t":"byte","b":[43,18,132,24,43,18,132,23]},{"a":37748,"t":"byte","b":[43,12,132,24,43,12,132,23]},{"a":37756,"t":"byte","b":[43,18,132,24,43,18,132,23]},{"a":37764,"t":"byte","b":[43,18,132,24,43,18,132,24]},{"a":37772,"t":"byte","b":[41,12,132,25,41,12,128]},{"a":37779,"l":"tune_image_data_B2DF","c":"Image, stored at $9393-$9395 (3 bytes), of tune data of the title tune driver at $B2DF-$B2E1. It starts with pattern 78. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[96,95,128]},{"a":37782,"l":"tune_image_data_B2E2","c":"Image, stored at $9396-$93AB (22 bytes), of tune data of the title tune driver at $B2E2-$B2F7. It starts with patterns 79, 80. Track lists (pattern numbers below $F0 and track commands $F0 to $F5) are read by tune_track_next_pattern ($A3FA), patterns (streams of notes and commands $80 to $8D) by tune_read_stream ($A328); the addresses come from tune_starts_table ($AA8D) and the pattern address tables ($AAA5, $AAF6).","t":"byte","b":[0,128,128,0,232,178,129,40]},{"a":37790,"t":"byte","b":[131,0,130,0,4,0,0,255]},{"a":37798,"t":"byte","b":[137,7,139,240,178,176]},{"a":37804,"t":"gap","n":11092},{"a":48896,"l":"tile_colours","c":"The colour of each character code. draw_map_cell ($22C0) and draw_first_screen ($2608) look the colours up here and play_setup ORs $08 into every byte at $1AFF.","t":"byte","b":[8,248,249,249,249,249,249,249],"x":[6911,6916,8914,8929,9745,9758,9771,9784]},{"a":48904,"t":"byte","b":[73,249,249,249,249,249,249,9]},{"a":48912,"t":"byte","b":[253,189,250,218,249,156,249,249]},{"a":48920,"t":"byte","b":[169,249,189,253,253,253,251,251]},{"a":48928,"t":"byte","b":[255,255,255,255,255,255,250,250]},{"a":48936,"t":"byte","b":[250,74,249,249,249,25,249,249]},{"a":48944,"t":"byte","b":[249,250,250,250,250,250,249,249]},{"a":48952,"t":"byte","b":[249,249,170,250,185,249,207,255]},{"a":48960,"t":"byte","b":[15,15,189,221,253,237,251,171]},{"a":48968,"t":"byte","b":[15,31,159,255,255,207,170,186]},{"a":48976,"t":"byte","b":[250,250,154,170,186,186,14,78]},{"a":48984,"t":"byte","b":[238,14,74,186,205,141,15,255]},{"a":48992,"t":"byte","b":[218,234,250,170,31,74,249,252]},{"a":49000,"t":"byte","b":[75,251,251,251,139,75,185,41]},{"a":49008,"t":"byte","b":[105,249,57,169,233,74,138,170]},{"a":49016,"t":"byte","b":[170,10,250,154,250,234,254,46]},{"a":49024,"t":"byte","b":[14,46,250,26,250,10,239,47]},{"a":49032,"t":"byte","b":[122,138,10,10,255,138,249,220]},{"a":49040,"t":"byte","b":[25,169,9,233,41,137,9,249]},{"a":49048,"t":"byte","b":[9,201,9,73,233,249,74,218]},{"a":49056,"t":"byte","b":[42,10,10,238,174,250,234,202]},{"a":49064,"t":"byte","b":[250,250,234,186,137,25,10,10]},{"a":49072,"t":"byte","b":[10,250,10,10,154,254,254,254]},{"a":49080,"t":"byte","b":[174,250,250,250,250,42,253,253]},{"a":49088,"t":"byte","b":[109,253,253,221,253,253,253,253]},{"a":49096,"t":"byte","b":[170,250,186,254,174,250,250,250]},{"a":49104,"t":"byte","b":[250,250,250,250,250,250,250,250]},{"a":49112,"t":"byte","b":[250,138,250,250,250,254,254,254]},{"a":49120,"t":"byte","b":[254,250,250,250,250,250,253,253]},{"a":49128,"t":"byte","b":[253,253,173,253,189,253,93,253]},{"a":49136,"t":"byte","b":[253,253,253,253,253,253,253,253]},{"a":49144,"t":"byte","b":[253,253,253,189,253,253,253,253]},{"a":49152,"l":"play_charset_a","c":"Characters 0 to 102 (824 bytes, $C000-$C337) of the play character set: $D018 is $30 or $20 in play, so the video chip reads characters from $C000. The first 512 bytes are exchanged for the title screens' shapes by swap_title_chars ($0B41) and for text_shapes_3 by swap_font_b ($4DC4), and all 824 are exchanged for subject_shapes ($6683) by swap_chars_6683 ($6B73) in four blocks of $CE bytes ($C000, $C0CE, $C19C, $C26A). The map tiles use characters through tile_top_chars ($6BB3) and tile_bottom_chars ($6C51).","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[2887,2894,19914,19921,19948,19955,27513,27520]},{"a":49160,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":49168,"t":"byte","b":[0,61,60,60,60,60,60,60]},{"a":49176,"t":"byte","b":[0,191,3,3,107,43,27,11]},{"a":49184,"t":"byte","b":[0,219,192,192,198,194,193,192]},{"a":49192,"t":"byte","b":[0,255,3,3,171,171,171,171]},{"a":49200,"t":"byte","b":[0,219,192,198,198,198,198,198]},{"a":49208,"t":"byte","b":[0,252,60,188,188,188,188,188]},{"a":49216,"t":"byte","b":[56,56,56,56,56,56,56,56]},{"a":49224,"t":"byte","b":[171,171,171,171,171,171,171,87]},{"a":49232,"t":"byte","b":[138,138,139,139,142,142,138,137]},{"a":49240,"t":"byte","b":[235,231,163,147,135,75,27,23]},{"a":49248,"t":"byte","b":[138,138,138,138,138,138,138,133]},{"a":49256,"t":"byte","b":[185,184,184,184,184,184,184,120]},{"a":49264,"t":"byte","b":[90,166,169,148,122,170,169,146]},{"a":49272,"t":"byte","b":[169,151,110,170,89,150,106,234]},{"a":49280,"t":"byte","b":[186,190,255,143,96,170,168,146]},{"a":49288,"t":"byte","b":[237,246,246,202,25,134,42,42]},{"a":49296,"t":"byte","b":[154,102,169,148,106,170,144,75]},{"a":49304,"t":"byte","b":[169,150,106,170,89,150,2,241]},{"a":49312,"t":"byte","b":[110,174,174,170,122,170,169,146]},{"a":49320,"t":"byte","b":[77,78,78,90,169,150,106,170]},{"a":49328,"t":"byte","b":[106,20,255,170,85,85,85,0]},{"a":49336,"t":"byte","b":[169,68,255,170,85,85,85,0]},{"a":49344,"t":"byte","b":[106,0,254,169,84,84,84,0]},{"a":49352,"t":"byte","b":[169,0,255,234,149,149,149,64]},{"a":49360,"t":"byte","b":[64,116,223,127,95,119,95,119]},{"a":49368,"t":"byte","b":[7,126,235,234,187,234,187,234]},{"a":49376,"t":"byte","b":[208,240,244,220,216,217,221,223]},{"a":49384,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":49392,"t":"byte","b":[64,116,223,127,95,119,95,119]},{"a":49400,"t":"byte","b":[7,126,235,234,187,234,187,234]},{"a":49408,"t":"byte","b":[85,85,117,85,117,119,127,247],"x":[2901,2908,19928,19935,19965,19972]},{"a":49416,"t":"byte","b":[85,213,213,213,245,253,245,85]},{"a":49424,"t":"byte","b":[85,85,223,87,85,85,85,87]},{"a":49432,"t":"byte","b":[85,245,253,245,117,117,253,255]},{"a":49440,"t":"byte","b":[85,85,93,95,93,125,119,223]},{"a":49448,"t":"byte","b":[85,85,117,117,125,93,245,245]},{"a":49456,"t":"byte","b":[191,191,0,162,182,182,4,170]},{"a":49464,"t":"byte","b":[216,216,16,169,252,252,0,137]},{"a":49472,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":49480,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":49488,"t":"byte","b":[60,56,57,56,56,56,56,56]},{"a":49496,"t":"byte","b":[7,3,255,171,171,171,171,171]},{"a":49504,"t":"byte","b":[192,128,159,138,138,138,138,138]},{"a":49512,"t":"byte","b":[107,27,255,171,175,175,187,187]},{"a":49520,"t":"byte","b":[198,134,159,138,138,138,138,138]},{"a":49528,"t":"byte","b":[188,184,248,184,184,184,184,184]},{"a":49536,"t":"byte","b":[36,32,16,0,0,149,169,150]},{"a":49544,"t":"byte","b":[86,65,49,204,220,49,70,170]},{"a":49552,"t":"byte","b":[68,4,1,0,85,85,169,150]},{"a":49560,"t":"byte","b":[22,86,85,0,84,1,106,170]},{"a":49568,"t":"byte","b":[69,0,12,51,55,76,161,150]},{"a":49576,"t":"byte","b":[100,96,16,0,1,86,106,170]},{"a":49584,"t":"byte","b":[105,170,169,150,101,234,169,150]},{"a":49592,"t":"byte","b":[169,86,122,170,169,86,106,170]},{"a":49600,"t":"byte","b":[106,170,169,150,101,234,169,150]},{"a":49608,"t":"byte","b":[169,6,122,170,161,22,106,170]},{"a":49616,"t":"byte","b":[47,63,79,128,101,170,169,150]},{"a":49624,"t":"byte","b":[12,252,241,2,169,86,106,170]},{"a":49632,"t":"byte","b":[105,170,169,150,101,234,169,150]},{"a":49640,"t":"byte","b":[169,86,122,170,169,86,106,170]},{"a":49648,"t":"byte","b":[85,255,85,255,85,17,68,17]},{"a":49656,"t":"byte","b":[85,255,85,255,85,17,68,17]},{"a":49664,"t":"byte","b":[85,255,85,255,85,17,68,17]},{"a":49672,"t":"byte","b":[85,255,85,255,85,17,68,17]},{"a":49680,"t":"byte","b":[95,215,93,23,5,1,0,0]},{"a":49688,"t":"byte","b":[187,238,251,253,244,80,0,0]},{"a":49696,"t":"byte","b":[223,215,215,87,23,5,0,0]},{"a":49704,"t":"byte","b":[64,192,208,208,64,0,0,0]},{"a":49712,"t":"byte","b":[95,215,93,23,5,1,0,0]},{"a":49720,"t":"byte","b":[187,238,251,253,244,80,0,0]},{"a":49728,"t":"byte","b":[223,215,87,95,255,253,245,85]},{"a":49736,"t":"byte","b":[213,213,85,245,253,93,85,85]},{"a":49744,"t":"byte","b":[127,253,85,85,125,125,117,85]},{"a":49752,"t":"byte","b":[253,117,117,117,117,245,213,85]},{"a":49760,"t":"byte","b":[87,93,95,125,117,213,85,85]},{"a":49768,"t":"byte","b":[117,117,117,117,117,245,117,117]},{"a":49776,"t":"byte","b":[191,191,0,162,182,182,4,170]},{"a":49784,"t":"byte","b":[216,216,16,169,252,252,0,137]},{"a":49792,"t":"byte","b":[0,162,246,246,4,170,255,255]},{"a":49800,"t":"byte","b":[16,170,255,255,0,138,219,219]},{"a":49808,"t":"byte","b":[0,81,0,0,0,85,0,0]},{"a":49816,"t":"byte","b":[0,85,0,0,0,69,0,0]},{"a":49824,"t":"byte","b":[0,98,2,2,0,85,0,0]},{"a":49832,"t":"byte","b":[16,170,255,255,0,138,11,11]},{"a":49840,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":49848,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":49856,"t":"byte","b":[3,3,3,3,3,3,3,3]},{"a":49864,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":49872,"t":"byte","b":[0,167,242,242,3,166,242,242]},{"a":49880,"t":"byte","b":[0,218,195,67,0,214,195,195]},{"a":49888,"t":"byte","b":[0,17,51,51,34,51,34,35]},{"a":49896,"t":"byte","b":[0,68,204,140,200,140,200,200]},{"a":49904,"t":"byte","b":[61,239,251,124,72,131,223,233]},{"a":49912,"t":"byte","b":[84,21,21,84,16,193,209,21]},{"a":49920,"t":"byte","b":[0,170,255,125,247,253,255,85]},{"a":49928,"t":"byte","b":[0,170,255,127,215,127,253,85]},{"a":49936,"t":"byte","b":[0,170,117,255,223,255,245,85]},{"a":49944,"t":"byte","b":[0,170,223,253,95,255,255,85]},{"a":49952,"t":"byte","b":[62,126,62,62,54,58,62,62]},{"a":49960,"t":"byte","b":[64,70,67,67,67,67,65,65]},{"a":49968,"t":"byte","b":[46,46,46,25,63,46,46,45]},{"a":49976,"l":"char_shapes_text_a","c":"Characters 103 to 119 (136 bytes) of the play character set: swap_font_a ($4D8B) exchanges them with text_shapes_1 ($5DCF), the letters of the text screens.","t":"byte","b":[76,76,76,4,156,76,76,12],"x":[19857,19864]},{"a":49984,"t":"byte","b":[0,0,68,0,4,17,116,65]},{"a":49992,"t":"byte","b":[0,64,4,16,0,1,20,81]},{"a":50000,"t":"byte","b":[0,0,0,4,0,0,4,1]},{"a":50008,"t":"byte","b":[0,0,0,0,0,1,4,17]},{"a":50016,"t":"byte","b":[0,0,0,0,0,1,0,1]},{"a":50024,"t":"byte","b":[0,64,4,16,0,1,20,81]},{"a":50032,"t":"byte","b":[0,255,170,85,0,85,69,85]},{"a":50040,"t":"byte","b":[0,255,170,85,0,85,85,21]},{"a":50048,"t":"byte","b":[0,111,26,5,0,5,1,0]},{"a":50056,"t":"byte","b":[0,255,170,85,0,85,69,85]},{"a":50064,"t":"byte","b":[38,43,31,15,63,42,25,142]},{"a":50072,"t":"byte","b":[255,254,254,254,255,170,0,21]},{"a":50080,"t":"byte","b":[165,169,169,169,254,169,144,228]},{"a":50088,"t":"byte","b":[77,93,81,81,149,84,0,17]},{"a":50096,"t":"byte","b":[44,44,44,44,44,44,44,44]},{"a":50104,"t":"byte","b":[239,236,239,236,239,236,239,236]},{"a":50112,"l":"char_shapes_text_b","c":"Characters 120 to 136 (136 bytes) of the play character set: swap_font_a ($4D8B) exchanges them with text_shapes_2 ($5E57), more letters of the text screens.","t":"byte","b":[0,162,246,246,4,170,255,255],"x":[19871,19878]},{"a":50120,"t":"byte","b":[16,170,255,255,0,138,219,219]},{"a":50128,"t":"byte","b":[0,81,0,0,0,85,0,0]},{"a":50136,"t":"byte","b":[0,85,0,0,0,69,0,0]},{"a":50144,"t":"byte","b":[0,81,0,0,0,85,0,0]},{"a":50152,"t":"byte","b":[0,90,15,15,0,70,3,0]},{"a":50160,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":50168,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":50176,"t":"byte","b":[3,3,3,3,3,3,3,3]},{"a":50184,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":50192,"t":"byte","b":[2,166,242,242,14,142,202,59]},{"a":50200,"t":"byte","b":[192,214,195,195,208,211,243,244]},{"a":50208,"t":"byte","b":[18,17,17,17,1,0,192,255]},{"a":50216,"t":"byte","b":[132,68,68,68,64,0,3,255]},{"a":50224,"t":"byte","b":[229,239,221,198,219,223,199,240]},{"a":50232,"t":"byte","b":[5,213,17,129,225,241,209,5]},{"a":50240,"t":"byte","b":[0,170,255,93,255,95,255,85]},{"a":50248,"l":"char_shape_137","c":"Character 137 (8 bytes), between the swapped letters and the swapped digits: swap_font_a ($4D8B) leaves it alone.","t":"byte","b":[0,170,255,255,87,255,255,85]},{"a":50256,"l":"char_shapes_digits","c":"Characters 138 to 147 (80 bytes) of the play character set: swap_font_a ($4D8B) exchanges them with the first 80 bytes of digit_glyphs ($4536), the digits 0 to 9 of the text screens.","t":"byte","b":[0,170,255,95,251,115,255,85],"x":[19892,19899]},{"a":50264,"t":"byte","b":[0,42,47,47,46,44,47,53]},{"a":50272,"t":"byte","b":[62,126,62,62,54,58,62,62]},{"a":50280,"t":"byte","b":[64,70,67,67,67,67,67,65]},{"a":50288,"t":"byte","b":[46,30,46,25,63,46,45,46]},{"a":50296,"t":"byte","b":[76,76,76,4,156,76,76,76]},{"a":50304,"t":"byte","b":[20,85,84,65,101,234,169,150]},{"a":50312,"t":"byte","b":[84,2,37,84,161,86,106,170]},{"a":50320,"t":"byte","b":[4,1,4,1,5,10,41,86]},{"a":50328,"t":"byte","b":[84,66,37,84,161,86,106,170]},{"a":50336,"l":"play_charset_b","c":"Characters 148 to 247 (800 bytes, $C4A0-$C7BF) of the play character set, the rest of the characters that the map tiles use: tile_top_chars ($6BB3) and tile_bottom_chars ($6C51) reach $F7.","t":"byte","b":[0,1,0,1,1,2,1,2]},{"a":50344,"t":"byte","b":[84,2,37,84,161,86,106,170]},{"a":50352,"t":"byte","b":[0,255,170,85,0,85,85,84]},{"a":50360,"t":"byte","b":[0,255,170,85,0,85,85,85]},{"a":50368,"t":"byte","b":[0,111,26,5,0,5,1,0]},{"a":50376,"t":"byte","b":[0,255,170,85,0,85,85,84]},{"a":50384,"t":"byte","b":[78,94,62,57,118,58,122,58]},{"a":50392,"t":"byte","b":[26,26,251,231,154,170,170,170]},{"a":50400,"t":"byte","b":[228,228,238,158,104,169,169,165]},{"a":50408,"t":"byte","b":[81,81,165,20,68,84,84,84]},{"a":50416,"t":"byte","b":[44,44,44,44,44,44,44,44]},{"a":50424,"t":"byte","b":[239,236,239,236,239,236,239,236]},{"a":50432,"t":"byte","b":[1,193,1,193,1,193,1,193]},{"a":50440,"t":"byte","b":[61,61,61,61,61,61,61,61]},{"a":50448,"t":"byte","b":[0,0,16,0,0,16,0,16]},{"a":50456,"t":"byte","b":[106,255,106,107,239,239,107,106]},{"a":50464,"t":"byte","b":[85,3,149,21,7,7,21,85]},{"a":50472,"t":"byte","b":[0,0,0,1,0,1,0,49]},{"a":50480,"t":"byte","b":[255,255,255,253,253,244,244,240]},{"a":50488,"t":"byte","b":[252,223,123,47,63,12,0,0]},{"a":50496,"t":"byte","b":[63,247,237,248,252,48,0,0]},{"a":50504,"t":"byte","b":[255,255,255,127,127,31,31,15]},{"a":50512,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":50520,"t":"byte","b":[0,0,0,4,4,4,4,4]},{"a":50528,"t":"byte","b":[0,0,0,0,0,0,0,190]},{"a":50536,"t":"byte","b":[0,0,0,0,0,0,0,238]},{"a":50544,"t":"byte","b":[0,162,246,246,4,170,255,252]},{"a":50552,"t":"byte","b":[0,170,252,242,10,47,63,207]},{"a":50560,"t":"byte","b":[0,42,62,56,59,204,143,143]},{"a":50568,"t":"byte","b":[0,168,188,204,140,51,242,242]},{"a":50576,"t":"byte","b":[0,170,63,207,176,252,252,242]},{"a":50584,"t":"byte","b":[4,170,255,255,0,162,247,55]},{"a":50592,"t":"byte","b":[3,163,240,242,3,163,243,240]},{"a":50600,"t":"byte","b":[16,80,64,67,64,67,76,67]},{"a":50608,"t":"byte","b":[0,3,204,51,204,243,204,63]},{"a":50616,"t":"byte","b":[48,0,204,243,204,51,204,255]},{"a":50624,"t":"byte","b":[4,197,1,1,193,1,205,49]},{"a":50632,"t":"byte","b":[192,202,31,159,208,202,223,31]},{"a":50640,"t":"byte","b":[0,163,243,243,0,163,243,243]},{"a":50648,"t":"byte","b":[64,64,64,64,64,64,64,64]},{"a":50656,"t":"byte","b":[1,1,1,1,1,1,1,1]},{"a":50664,"t":"byte","b":[16,202,223,223,16,202,223,223]},{"a":50672,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":50680,"t":"byte","b":[254,250,235,236,225,181,132,132]},{"a":50688,"t":"byte","b":[170,191,1,84,65,0,116,236],"x":[19986,19993]},{"a":50696,"t":"byte","b":[255,255,223,119,55,29,13,13]},{"a":50704,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":50712,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":50720,"t":"byte","b":[0,0,0,0,0,0,1,1]},{"a":50728,"t":"byte","b":[0,23,31,31,127,125,252,244]},{"a":50736,"t":"byte","b":[0,255,213,64,2,10,25,40]},{"a":50744,"t":"byte","b":[0,255,85,64,64,64,64,64]},{"a":50752,"t":"byte","b":[1,193,1,193,1,193,1,193]},{"a":50760,"t":"byte","b":[61,61,61,61,61,61,61,61]},{"a":50768,"t":"byte","b":[16,44,44,44,44,44,44,44]},{"a":50776,"t":"byte","b":[107,239,239,107,106,255,106,0]},{"a":50784,"t":"byte","b":[21,7,7,21,149,3,85,0]},{"a":50792,"t":"byte","b":[61,61,61,61,61,61,61,61]},{"a":50800,"t":"byte","b":[208,208,208,192,192,64,64,64]},{"a":50808,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":50816,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":50824,"t":"byte","b":[7,7,7,3,3,1,1,1]},{"a":50832,"t":"byte","b":[0,192,192,192,218,255,255,85]},{"a":50840,"t":"byte","b":[11,11,11,11,171,255,255,85]},{"a":50848,"t":"byte","b":[85,255,255,253,119,221,68,0]},{"a":50856,"t":"byte","b":[85,255,255,255,119,221,69,0]},{"a":50864,"t":"byte","b":[0,168,243,242,2,160,243,242]},{"a":50872,"t":"byte","b":[163,184,62,140,225,244,4,208]},{"a":50880,"t":"byte","b":[224,197,20,64,0,1,0,16]},{"a":50888,"t":"byte","b":[11,83,20,1,0,0,16,0]},{"a":50896,"t":"byte","b":[203,47,252,50,75,31,16,7]},{"a":50904,"t":"byte","b":[4,42,143,207,192,10,207,143]},{"a":50912,"t":"byte","b":[3,163,243,243,0,163,243,243]},{"a":50920,"t":"byte","b":[79,79,90,69,69,64,64,64]},{"a":50928,"t":"byte","b":[255,255,170,85,85,0,0,0]},{"a":50936,"t":"byte","b":[243,255,170,85,85,0,0,0]},{"a":50944,"t":"byte","b":[253,253,169,85,85,1,1,1],"x":[20000,20007]},{"a":50952,"t":"byte","b":[208,202,223,223,16,202,223,223]},{"a":50960,"t":"byte","b":[0,163,243,243,0,163,243,243]},{"a":50968,"t":"byte","b":[64,64,64,64,64,64,64,64]},{"a":50976,"t":"byte","b":[1,1,1,1,1,1,1,1]},{"a":50984,"t":"byte","b":[16,202,223,223,16,202,223,223]},{"a":50992,"t":"byte","b":[255,85,85,85,0,84,84,150]},{"a":51000,"t":"byte","b":[132,132,196,192,64,17,84,170]},{"a":51008,"t":"byte","b":[188,252,252,116,1,5,84,2]},{"a":51016,"t":"byte","b":[77,77,77,77,68,17,85,170]},{"a":51024,"t":"byte","b":[255,85,85,85,0,85,84,150]},{"a":51032,"t":"byte","b":[255,85,85,85,0,1,21,170]},{"a":51040,"t":"byte","b":[3,7,15,15,63,63,255,255]},{"a":51048,"t":"byte","b":[240,209,214,90,213,255,255,255]},{"a":51056,"t":"byte","b":[100,160,144,64,85,255,255,255]},{"a":51064,"t":"byte","b":[64,64,64,64,64,85,255,255]},{"a":51072,"t":"byte","b":[0,255,85,0,0,0,0,0]},{"a":51080,"t":"byte","b":[0,255,125,93,71,71,65,65]},{"a":51088,"t":"byte","b":[0,64,208,16,4,68,193,209]},{"a":51096,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51104,"t":"byte","b":[0,0,0,0,0,85,255,255]},{"a":51112,"t":"byte","b":[64,64,64,64,64,64,85,255]},{"a":51120,"t":"byte","b":[112,116,28,13,7,7,87,255]},{"a":51128,"t":"byte","b":[64,64,16,16,68,68,213,255]},{"a":51136,"l":"play_charset_blank","c":"Characters 248 to 254 (56 bytes, all zero): the tile tables stop at $F7, so nothing draws them.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51144,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51152,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51160,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51168,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51176,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51192,"l":"shot_char_shape","c":"Character $FF (8 bytes): shot_draw ($4140) copies bytes 0 to 3, 6 and 7 of the shape of the character under the shot into it, sets bytes 4 and 5 to $28 and writes $FF in the screen cell, so the shot appears there. All zero while no shot is out.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[16824]},{"a":51200,"l":"screen_a","c":"Screen matrix A: 25 rows of 40 characters ($C800-$CBE7). draw_new_column ($2269), copy_screen ($2120) and screen_a_draw ($5630) write it; select_screen ($1FA4) shows it when screen_flag ($1D42) is 0 and the other, screen_b ($CC00), when it is 1.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[7079,8179,8197,19944,19951]},{"a":51208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51224,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51232,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51240,"t":"byte","b":[26,27,30,31,26,27,30,31],"x":[8495]},{"a":51248,"t":"byte","b":[26,27,30,31,26,27,84,85]},{"a":51256,"t":"byte","b":[80,81,80,81,80,81,80,81]},{"a":51264,"t":"byte","b":[80,81,80,81,80,81,80,81]},{"a":51272,"t":"byte","b":[80,81,80,81,80,81,0,0]},{"a":51280,"t":"byte","b":[66,67,70,71,66,67,70,71],"x":[8501]},{"a":51288,"t":"byte","b":[66,67,70,71,66,67,124,125]},{"a":51296,"t":"byte","b":[120,121,120,121,120,121,120,121]},{"a":51304,"t":"byte","b":[120,121,120,121,120,121,120,121]},{"a":51312,"t":"byte","b":[120,121,120,121,120,121,0,0]},{"a":51320,"t":"byte","b":[26,27,28,29,0,1,34,35],"x":[8507]},{"a":51328,"t":"byte","b":[36,37,0,1,102,103,82,83]},{"a":51336,"t":"byte","b":[80,81,80,81,80,81,80,81]},{"a":51344,"t":"byte","b":[80,81,174,175,94,95,178,179]},{"a":51352,"t":"byte","b":[80,81,80,81,80,81,0,0]},{"a":51360,"t":"byte","b":[66,67,68,69,40,41,74,75],"x":[8513]},{"a":51368,"t":"byte","b":[76,77,40,41,142,143,122,123]},{"a":51376,"t":"byte","b":[120,121,120,121,120,121,120,121]},{"a":51384,"t":"byte","b":[120,121,214,215,134,135,218,219]},{"a":51392,"t":"byte","b":[120,121,120,121,120,121,0,0]},{"a":51400,"t":"byte","b":[102,103,82,83,82,83,82,83],"x":[8519]},{"a":51408,"t":"byte","b":[82,83,82,83,102,103,82,83]},{"a":51416,"t":"byte","b":[80,81,80,81,174,175,176,177]},{"a":51424,"t":"byte","b":[178,179,180,181,182,183,184,185]},{"a":51432,"t":"byte","b":[174,175,176,177,178,179,0,0]},{"a":51440,"t":"byte","b":[142,143,122,123,122,123,122,123],"x":[8525]},{"a":51448,"t":"byte","b":[122,123,122,123,142,143,122,123]},{"a":51456,"t":"byte","b":[120,121,120,121,214,215,216,217],"x":[8182,8200,19961,19968]},{"a":51464,"t":"byte","b":[218,219,220,221,222,223,224,225]},{"a":51472,"t":"byte","b":[214,215,216,217,218,219,0,0]},{"a":51480,"t":"byte","b":[102,103,82,83,80,81,80,81],"x":[8531]},{"a":51488,"t":"byte","b":[80,81,80,81,102,103,82,83]},{"a":51496,"t":"byte","b":[80,81,80,81,180,181,182,183]},{"a":51504,"t":"byte","b":[184,185,186,187,0,1,188,189]},{"a":51512,"t":"byte","b":[180,181,182,183,184,185,0,0]},{"a":51520,"t":"byte","b":[142,143,122,123,120,121,120,121],"x":[8537]},{"a":51528,"t":"byte","b":[120,121,120,121,142,143,122,123]},{"a":51536,"t":"byte","b":[120,121,120,121,220,221,222,223]},{"a":51544,"t":"byte","b":[224,225,226,227,40,41,228,229]},{"a":51552,"t":"byte","b":[220,221,222,223,224,225,0,0]},{"a":51560,"t":"byte","b":[102,103,82,83,80,81,80,81],"x":[8543,19982,19989]},{"a":51568,"t":"byte","b":[80,81,80,81,102,103,82,83]},{"a":51576,"t":"byte","b":[80,81,80,81,186,187,0,1]},{"a":51584,"t":"byte","b":[188,189,186,187,0,1,188,189]},{"a":51592,"t":"byte","b":[186,187,0,1,188,189,0,0]},{"a":51600,"t":"byte","b":[142,143,122,123,120,121,120,121],"x":[8549]},{"a":51608,"t":"byte","b":[120,121,120,121,142,143,122,123]},{"a":51616,"t":"byte","b":[120,121,120,121,226,227,40,41]},{"a":51624,"t":"byte","b":[228,229,226,227,40,41,228,229]},{"a":51632,"t":"byte","b":[226,227,40,41,228,229,0,0]},{"a":51640,"t":"byte","b":[102,103,106,107,104,105,104,105],"x":[8555]},{"a":51648,"t":"byte","b":[104,105,104,105,102,103,82,83]},{"a":51656,"t":"byte","b":[80,81,80,81,80,81,80,81]},{"a":51664,"t":"byte","b":[80,81,80,81,80,81,80,81]},{"a":51672,"t":"byte","b":[80,81,80,81,80,81,0,0]},{"a":51680,"t":"byte","b":[142,143,146,147,144,145,144,145],"x":[8561]},{"a":51688,"t":"byte","b":[144,145,144,145,142,143,122,123]},{"a":51696,"t":"byte","b":[120,121,120,121,120,121,120,121]},{"a":51704,"t":"byte","b":[120,121,120,121,120,121,120,121]},{"a":51712,"t":"byte","b":[120,121,120,121,120,121,0,0],"x":[8185,8203]},{"a":51720,"t":"byte","b":[20,21,14,15,14,15,14,15],"x":[8567]},{"a":51728,"t":"byte","b":[14,15,14,15,20,21,14,15]},{"a":51736,"t":"byte","b":[16,17,14,15,14,15,14,15]},{"a":51744,"t":"byte","b":[14,15,14,15,14,15,14,15]},{"a":51752,"t":"byte","b":[14,15,14,15,14,15,0,0]},{"a":51760,"t":"byte","b":[60,61,54,55,54,55,54,55],"x":[8573]},{"a":51768,"t":"byte","b":[54,55,54,55,60,61,54,55]},{"a":51776,"t":"byte","b":[56,57,54,55,54,55,54,55]},{"a":51784,"t":"byte","b":[54,55,54,55,54,55,54,55]},{"a":51792,"t":"byte","b":[54,55,54,55,54,55,0,0]},{"a":51800,"t":"byte","b":[22,23,24,25,22,23,24,25],"x":[8579]},{"a":51808,"t":"byte","b":[22,23,24,25,22,23,24,25]},{"a":51816,"t":"byte","b":[22,23,24,25,22,23,24,25],"x":[19996,20003]},{"a":51824,"t":"byte","b":[22,23,24,25,22,23,24,25]},{"a":51832,"t":"byte","b":[22,23,24,25,22,23,0,0]},{"a":51840,"t":"byte","b":[62,63,64,65,62,63,64,65],"x":[8585]},{"a":51848,"t":"byte","b":[62,63,64,65,62,63,64,65]},{"a":51856,"t":"byte","b":[62,63,64,65,62,63,64,65]},{"a":51864,"t":"byte","b":[62,63,64,65,62,63,64,65]},{"a":51872,"t":"byte","b":[62,63,64,65,62,63,0,0]},{"a":51880,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51888,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51896,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51904,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51912,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51936,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51944,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51968,"t":"byte","b":[0,0,0,0,0,0,0,0],"x":[8188,8206]},{"a":51976,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51984,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":51992,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52000,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52008,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52016,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52024,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52032,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52040,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52048,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52064,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52072,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52080,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52088,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52096,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52104,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52112,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52120,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52128,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52136,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52144,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52152,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52160,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52168,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52176,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52192,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52200,"t":"gap","n":16},{"a":52216,"l":"sprite_pointers_a","c":"The sprite pointers of screen A's table ($CBF8-$CBFF): player_draw ($2FC7) writes sprites 0 to 2, place_enemies ($3639) and objects_step ($3297) sprites 3 to 6 and exit_marker_step ($354A) sprite 7. Always written together with sprite_pointers_b ($CFF8).","t":"byte","b":[154,167,131,69,74,67,76,0],"x":[12274,12302,12335,12364]},{"a":52224,"l":"screen_b","c":"Screen matrix B: 25 rows of 40 characters ($CC00-$CFE7), the same layout as screen_a ($C800). The title and text screens, the briefing and the status panel's colours are written here, and the scroll flips between the two matrices.","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[7076,8167,9741,22091,22140,22198,22247]},{"a":52232,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52264,"t":"byte","b":[31,26,27,30,31,26,27,30],"x":[8599]},{"a":52272,"t":"byte","b":[31,26,27,30,31,26,27,84]},{"a":52280,"t":"byte","b":[85,80,81,80,81,80,81,80]},{"a":52288,"t":"byte","b":[81,80,81,80,81,80,81,80]},{"a":52296,"t":"byte","b":[81,80,81,80,81,80,81,240]},{"a":52304,"t":"byte","b":[71,66,67,70,71,66,67,70],"x":[8605]},{"a":52312,"t":"byte","b":[71,66,67,70,71,66,67,124]},{"a":52320,"t":"byte","b":[125,120,121,120,121,120,121,120],"x":[22330]},{"a":52328,"t":"byte","b":[121,120,121,120,121,120,121,120]},{"a":52336,"t":"byte","b":[121,120,121,120,121,120,121,76]},{"a":52344,"t":"byte","b":[27,26,27,28,29,0,1,34],"x":[8611]},{"a":52352,"t":"byte","b":[35,36,37,0,1,102,103,82]},{"a":52360,"t":"byte","b":[83,80,81,80,81,80,81,80]},{"a":52368,"t":"byte","b":[81,80,81,174,175,94,95,178]},{"a":52376,"t":"byte","b":[179,80,81,80,81,80,81,156]},{"a":52384,"t":"byte","b":[67,66,67,68,69,40,41,74],"x":[3613,8617]},{"a":52392,"t":"byte","b":[75,76,77,40,41,142,143,122]},{"a":52400,"t":"byte","b":[123,120,121,120,121,120,121,120]},{"a":52408,"t":"byte","b":[121,120,121,214,215,134,135,218]},{"a":52416,"t":"byte","b":[219,120,121,120,121,120,121,73]},{"a":52424,"t":"byte","b":[171,102,103,82,83,82,83,82],"x":[8623]},{"a":52432,"t":"byte","b":[83,82,83,82,83,102,103,82]},{"a":52440,"t":"byte","b":[83,80,81,80,81,174,175,176],"x":[19676]},{"a":52448,"t":"byte","b":[177,178,179,180,181,182,183,184]},{"a":52456,"t":"byte","b":[185,174,175,176,177,178,179,16]},{"a":52464,"t":"byte","b":[211,142,143,122,123,122,123,122],"x":[8629]},{"a":52472,"t":"byte","b":[123,122,123,122,123,142,143,122]},{"a":52480,"t":"byte","b":[123,120,121,120,121,214,215,216],"x":[8170,19688,22149,22256]},{"a":52488,"t":"byte","b":[217,218,219,220,221,222,223,224]},{"a":52496,"t":"byte","b":[225,214,215,216,217,218,219,108]},{"a":52504,"t":"byte","b":[169,102,103,82,83,80,81,80],"x":[8635]},{"a":52512,"t":"byte","b":[81,80,81,80,81,102,103,82]},{"a":52520,"t":"byte","b":[83,80,81,80,81,180,181,182],"x":[19700]},{"a":52528,"t":"byte","b":[183,184,185,186,187,0,1,188]},{"a":52536,"t":"byte","b":[189,180,181,182,183,184,185,208]},{"a":52544,"t":"byte","b":[209,142,143,122,123,120,121,120],"x":[8641]},{"a":52552,"t":"byte","b":[121,120,121,120,121,142,143,122]},{"a":52560,"t":"byte","b":[123,120,121,120,121,220,221,222],"x":[6601,19712]},{"a":52568,"t":"byte","b":[223,224,225,226,227,40,41,228]},{"a":52576,"t":"byte","b":[229,220,221,222,223,224,225,56]},{"a":52584,"t":"byte","b":[1,102,103,82,83,80,81,80],"x":[8647]},{"a":52592,"t":"byte","b":[81,80,81,80,81,102,103,82],"x":[4790]},{"a":52600,"t":"byte","b":[83,80,81,80,81,186,187,0],"x":[19724]},{"a":52608,"t":"byte","b":[1,188,189,186,187,0,1,188]},{"a":52616,"t":"byte","b":[189,186,187,0,1,188,189,36]},{"a":52624,"t":"byte","b":[41,142,143,122,123,120,121,120],"x":[8653]},{"a":52632,"t":"byte","b":[121,120,121,120,121,142,143,122]},{"a":52640,"t":"byte","b":[123,120,121,120,121,226,227,40],"x":[19736]},{"a":52648,"t":"byte","b":[41,228,229,226,227,40,41,228]},{"a":52656,"t":"byte","b":[229,226,227,40,41,228,229,177]},{"a":52664,"t":"byte","b":[81,102,103,106,107,104,105,104],"x":[8659]},{"a":52672,"t":"byte","b":[105,104,105,104,105,102,103,82]},{"a":52680,"t":"byte","b":[83,80,81,80,81,80,81,80],"x":[19748]},{"a":52688,"t":"byte","b":[81,80,81,80,81,80,81,80]},{"a":52696,"t":"byte","b":[81,80,81,80,81,80,81,105]},{"a":52704,"t":"byte","b":[121,142,143,146,147,144,145,144],"x":[8665]},{"a":52712,"t":"byte","b":[145,144,145,144,145,142,143,122]},{"a":52720,"t":"byte","b":[123,120,121,120,121,120,121,120],"x":[19760]},{"a":52728,"t":"byte","b":[121,120,121,120,121,120,121,120]},{"a":52736,"t":"byte","b":[121,120,121,120,121,120,121,176],"x":[8173,22158,22265]},{"a":52744,"t":"byte","b":[15,20,21,14,15,14,15,14],"x":[8671]},{"a":52752,"t":"byte","b":[15,14,15,14,15,20,21,14]},{"a":52760,"t":"byte","b":[15,16,17,14,15,14,15,14]},{"a":52768,"t":"byte","b":[15,14,15,14,15,14,15,14]},{"a":52776,"t":"byte","b":[15,14,15,14,15,14,15,108]},{"a":52784,"t":"byte","b":[55,60,61,54,55,54,55,54],"x":[8677]},{"a":52792,"t":"byte","b":[55,54,55,54,55,60,61,54]},{"a":52800,"t":"byte","b":[55,56,57,54,55,54,55,54]},{"a":52808,"t":"byte","b":[55,54,55,54,55,54,55,54]},{"a":52816,"t":"byte","b":[55,54,55,54,55,54,55,173]},{"a":52824,"t":"byte","b":[25,22,23,24,25,22,23,24],"x":[8683]},{"a":52832,"t":"byte","b":[25,22,23,24,25,22,23,24]},{"a":52840,"t":"byte","b":[25,22,23,24,25,22,23,24]},{"a":52848,"t":"byte","b":[25,22,23,24,25,22,23,24]},{"a":52856,"t":"byte","b":[25,22,23,24,25,22,23,13]},{"a":52864,"t":"byte","b":[65,62,63,64,65,62,63,64],"x":[8689]},{"a":52872,"t":"byte","b":[65,62,63,64,65,62,63,64]},{"a":52880,"t":"byte","b":[65,62,63,64,65,62,63,64]},{"a":52888,"t":"byte","b":[65,62,63,64,65,62,63,64]},{"a":52896,"t":"byte","b":[65,62,63,64,65,62,63,60]},{"a":52904,"t":"byte","b":[0,0,0,0,0,0,0,0],"x":[19482]},{"a":52912,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52928,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52936,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52944,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52968,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52976,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":52984,"t":"byte","b":[139,184,28,188,189,178,178,188]},{"a":52992,"t":"byte","b":[28,191,188,187,185,184,139,139],"x":[8176]},{"a":53000,"t":"byte","b":[140,156,155,156,188,188,203,191]},{"a":53008,"t":"byte","b":[191,191,203,207,207,204,203,203]},{"a":53016,"t":"byte","b":[159,177,177,177,193,129,161,161],"x":[18349,18454]},{"a":53024,"t":"byte","b":[137,137,251,27,194,29,17,17]},{"a":53032,"t":"byte","b":[17,17,203,203,203,185,139,184]},{"a":53040,"t":"byte","b":[27,251,27,251,207,204,28,251]},{"a":53048,"t":"byte","b":[251,31,188,188,91,91,91,91]},{"a":53056,"t":"byte","b":[177,201,251,191,184,184,186,186],"x":[18355,18460]},{"a":53064,"t":"byte","b":[139,139,191,191,191,191,191,191]},{"a":53072,"t":"byte","b":[191,191,188,191,187,137,139,137]},{"a":53080,"t":"byte","b":[193,29,29,29,29,29,29,29]},{"a":53088,"t":"byte","b":[29,193,203,193,47,44,44,43]},{"a":53096,"t":"byte","b":[177,156,155,251,140,136,250,250],"x":[18361,18466]},{"a":53104,"t":"byte","b":[137,139,252,113,113,113,113,113]},{"a":53112,"t":"byte","b":[113,113,27,22,25,152,184,184]},{"a":53120,"t":"byte","b":[188,188,191,191,252,252,188,191]},{"a":53128,"t":"byte","b":[187,43,44,188,191,188,188,187]},{"a":53136,"t":"byte","b":[17,27,27,27,177,241,22,22],"x":[18367,18472]},{"a":53144,"t":"byte","b":[27,185,43,135,129,129,129,129]},{"a":53152,"t":"byte","b":[129,129,98,150,98,137,185,185]},{"a":53160,"t":"byte","b":[187,187,22,30,207,251,251,251]},{"a":53168,"t":"byte","b":[251,251,38,43,43,43,43,43]},{"a":53176,"t":"byte","b":[145,155,155,145,145,145,33,0],"x":[18373,18478]},{"a":53184,"t":"byte","b":[0,0,0,0,0,0,0,0],"x":[8274]},{"a":53192,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":53200,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":53208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":53216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":53224,"t":"gap","n":16},{"a":53240,"l":"sprite_pointers_b","c":"The sprite pointers of screen B's table ($CFF8-$CFFF); the same writers as sprite_pointers_a ($CBF8), always together with it.","t":"byte","b":[154,167,131,69,74,67,76,0],"x":[5623,12271,12299,12332,12361,20912,21128,22410]},{"a":53248,"l":"enemy_shapes_a","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $40 to $4F (1,024 bytes), the enemy: $40 and $41 the upper part walking right and $43 and $44 walking left (walk_b_upper, walk_a_upper), $42 and $45 its attack poses (enemy_attack_frame, $3F76), $46 to $49 the lower part walking right and $4A to $4D walking left (walk_b_lower, walk_a_lower), $4E and $4F the upper part of the other kind walking right (walk_d_upper). Only the VIC reads these bytes: with the I/O area switched in, the CPU sees the chips' registers at the same addresses.","t":"byte","b":[0,0,0,0,42,0,0,170]},{"a":53256,"t":"byte","b":[128,2,175,0,2,174,0,2]},{"a":53264,"t":"byte","b":[231,0,2,255,0,0,255,0]},{"a":53272,"t":"byte","b":[2,124,0,42,86,128,186,86]},{"a":53280,"t":"byte","b":[160,170,86,160,170,86,160,170]},{"a":53288,"t":"byte","b":[214,160,170,150,160,170,150,160]},{"a":53296,"t":"byte","b":[170,182,175,170,174,167,90,170]},{"a":53304,"t":"byte","b":[175,250,170,168,250,170,0,0]},{"a":53312,"t":"byte","b":[0,42,0,0,170,128,2,175]},{"a":53320,"t":"byte","b":[0,2,174,0,2,231,0,2]},{"a":53328,"t":"byte","b":[255,0,0,255,0,2,124,0]},{"a":53336,"t":"byte","b":[42,86,128,186,86,160,170,86]},{"a":53344,"t":"byte","b":[160,170,86,160,170,214,160,170]},{"a":53352,"t":"byte","b":[150,160,170,150,160,170,182,175]},{"a":53360,"t":"byte","b":[170,174,167,90,170,175,250,170]},{"a":53368,"t":"byte","b":[168,250,170,0,42,170,0,68]},{"a":53376,"t":"byte","b":[0,0,0,2,160,0,10,168]},{"a":53384,"t":"byte","b":[0,42,240,0,42,224,0,46]},{"a":53392,"t":"byte","b":[112,0,47,240,0,15,240,0]},{"a":53400,"t":"byte","b":[5,192,0,41,64,0,42,168]},{"a":53408,"t":"byte","b":[0,42,170,174,42,170,167,170]},{"a":53416,"t":"byte","b":[170,167,170,170,160,170,160,0]},{"a":53424,"t":"byte","b":[170,160,0,170,160,0,170,128]},{"a":53432,"t":"byte","b":[0,170,128,0,170,128,0,65]},{"a":53440,"t":"byte","b":[0,0,0,0,168,0,2,170]},{"a":53448,"t":"byte","b":[0,0,250,128,0,186,128,0]},{"a":53456,"t":"byte","b":[219,128,0,255,128,0,255,0]},{"a":53464,"t":"byte","b":[0,61,128,2,149,168,10,149]},{"a":53472,"t":"byte","b":[174,10,149,170,10,149,170,10]},{"a":53480,"t":"byte","b":[151,170,10,150,170,10,150,170]},{"a":53488,"t":"byte","b":[250,158,170,218,186,170,250,170]},{"a":53496,"t":"byte","b":[165,42,170,175,0,170,175,74]},{"a":53504,"t":"byte","b":[0,168,0,2,170,0,0,250]},{"a":53512,"t":"byte","b":[128,0,186,128,0,219,128,0]},{"a":53520,"t":"byte","b":[255,128,0,255,0,0,61,128]},{"a":53528,"t":"byte","b":[2,149,168,10,149,174,10,149]},{"a":53536,"t":"byte","b":[170,10,149,170,10,151,170,10]},{"a":53544,"t":"byte","b":[150,170,10,150,170,250,158,170]},{"a":53552,"t":"byte","b":[218,186,170,250,170,165,42,170]},{"a":53560,"t":"byte","b":[175,0,170,175,0,170,168,71]},{"a":53568,"t":"byte","b":[0,0,0,0,10,128,0,42]},{"a":53576,"t":"byte","b":[160,0,15,168,0,11,168,0]},{"a":53584,"t":"byte","b":[13,184,0,15,248,0,15,240]},{"a":53592,"t":"byte","b":[0,3,80,0,1,104,0,42]},{"a":53600,"t":"byte","b":[168,186,170,168,218,170,168,218]},{"a":53608,"t":"byte","b":[170,170,10,170,170,0,10,170]},{"a":53616,"t":"byte","b":[0,10,170,0,10,170,0,2]},{"a":53624,"t":"byte","b":[170,0,2,170,0,2,170,32]},{"a":53632,"t":"byte","b":[2,170,128,2,234,128,2,234]},{"a":53640,"t":"byte","b":[128,2,234,128,2,234,128,2]},{"a":53648,"t":"byte","b":[234,128,2,234,160,10,235,160]},{"a":53656,"t":"byte","b":[11,171,160,11,171,160,43,162]},{"a":53664,"t":"byte","b":[224,46,162,224,174,130,224,186]},{"a":53672,"t":"byte","b":[130,224,170,2,224,168,2,224]},{"a":53680,"t":"byte","b":[160,2,176,160,2,232,152,2]},{"a":53688,"t":"byte","b":[166,168,2,170,0,0,0,88]},{"a":53696,"t":"byte","b":[2,234,0,2,186,128,2,174]},{"a":53704,"t":"byte","b":[128,0,171,160,0,171,160,0]},{"a":53712,"t":"byte","b":[174,160,2,186,128,10,234,0]},{"a":53720,"t":"byte","b":[11,170,0,10,170,0,10,186]},{"a":53728,"t":"byte","b":[0,2,104,0,2,168,0,0]},{"a":53736,"t":"byte","b":[184,0,0,184,0,0,184,0]},{"a":53744,"t":"byte","b":[0,172,0,0,186,0,0,169]},{"a":53752,"t":"byte","b":[128,0,170,128,0,0,0,101]},{"a":53760,"t":"byte","b":[2,170,0,2,186,0,2,186]},{"a":53768,"t":"byte","b":[128,2,174,128,2,174,160,2]},{"a":53776,"t":"byte","b":[171,160,2,171,160,10,170,224]},{"a":53784,"t":"byte","b":[11,170,224,11,170,224,43,162]},{"a":53792,"t":"byte","b":[224,46,162,224,174,130,224,186]},{"a":53800,"t":"byte","b":[130,224,170,2,224,168,2,250]},{"a":53808,"t":"byte","b":[160,2,230,160,2,168,152,2]},{"a":53816,"t":"byte","b":[160,168,2,128,0,0,0,101]},{"a":53824,"t":"byte","b":[2,186,128,2,186,160,0,174]},{"a":53832,"t":"byte","b":[160,0,174,232,0,174,232,0]},{"a":53840,"t":"byte","b":[174,168,0,174,160,2,174,128]},{"a":53848,"t":"byte","b":[2,238,0,2,174,0,2,184]},{"a":53856,"t":"byte","b":[0,0,184,0,0,184,0,0]},{"a":53864,"t":"byte","b":[184,0,0,184,0,0,184,0]},{"a":53872,"t":"byte","b":[0,172,0,0,186,0,0,169]},{"a":53880,"t":"byte","b":[128,0,170,128,0,0,0,95]},{"a":53888,"t":"byte","b":[2,170,128,2,171,128,2,171]},{"a":53896,"t":"byte","b":[128,2,171,128,2,171,128,2]},{"a":53904,"t":"byte","b":[171,128,10,171,128,10,235,160]},{"a":53912,"t":"byte","b":[10,234,224,10,234,224,11,138]},{"a":53920,"t":"byte","b":[232,11,138,184,11,130,186,11]},{"a":53928,"t":"byte","b":[130,174,11,128,170,11,128,42]},{"a":53936,"t":"byte","b":[14,128,10,43,128,10,154,128]},{"a":53944,"t":"byte","b":[38,170,128,42,0,0,0,104]},{"a":53952,"t":"byte","b":[0,171,128,2,174,128,2,186]},{"a":53960,"t":"byte","b":[128,10,234,0,10,234,0,10]},{"a":53968,"t":"byte","b":[186,0,2,174,128,0,171,160]},{"a":53976,"t":"byte","b":[0,170,224,0,170,160,0,174]},{"a":53984,"t":"byte","b":[160,0,41,128,0,42,128,0]},{"a":53992,"t":"byte","b":[46,0,0,46,0,0,46,0]},{"a":54000,"t":"byte","b":[0,58,0,0,174,0,2,106]},{"a":54008,"t":"byte","b":[0,2,170,0,0,0,0,4]},{"a":54016,"t":"byte","b":[0,170,128,0,174,128,2,174]},{"a":54024,"t":"byte","b":[128,2,186,128,10,186,128,10]},{"a":54032,"t":"byte","b":[234,128,10,234,128,11,170,160]},{"a":54040,"t":"byte","b":[11,170,224,11,170,224,11,138]},{"a":54048,"t":"byte","b":[232,11,138,184,11,130,186,11]},{"a":54056,"t":"byte","b":[130,174,11,128,170,175,128,42]},{"a":54064,"t":"byte","b":[155,192,10,42,128,10,10,128]},{"a":54072,"t":"byte","b":[38,2,128,42,0,0,0,32]},{"a":54080,"t":"byte","b":[2,174,128,10,174,128,10,186]},{"a":54088,"t":"byte","b":[0,43,186,0,43,186,0,42]},{"a":54096,"t":"byte","b":[186,0,10,186,0,2,186,128]},{"a":54104,"t":"byte","b":[0,187,128,0,186,128,0,46]},{"a":54112,"t":"byte","b":[128,0,46,0,0,46,0,0]},{"a":54120,"t":"byte","b":[46,0,0,46,0,0,46,0]},{"a":54128,"t":"byte","b":[0,58,0,0,174,0,2,106]},{"a":54136,"t":"byte","b":[0,2,170,0,0,0,0,197]},{"a":54144,"t":"byte","b":[0,0,0,0,60,0,0,223]},{"a":54152,"t":"byte","b":[0,0,255,0,0,234,0,0]},{"a":54160,"t":"byte","b":[250,0,0,221,0,0,255,0]},{"a":54168,"t":"byte","b":[2,255,0,42,126,128,170,85]},{"a":54176,"t":"byte","b":[160,170,110,160,170,85,160,170]},{"a":54184,"t":"byte","b":[213,160,170,149,160,170,151,160]},{"a":54192,"t":"byte","b":[170,182,175,170,174,167,90,170]},{"a":54200,"t":"byte","b":[175,250,170,168,250,170,0,94]},{"a":54208,"t":"byte","b":[0,60,0,0,223,0,0,255]},{"a":54216,"t":"byte","b":[0,0,234,0,0,250,0,0]},{"a":54224,"t":"byte","b":[221,0,0,255,0,2,255,0]},{"a":54232,"t":"byte","b":[42,126,128,170,85,160,170,110]},{"a":54240,"t":"byte","b":[160,170,85,160,170,213,160,170]},{"a":54248,"t":"byte","b":[149,160,170,151,160,170,182,175]},{"a":54256,"t":"byte","b":[170,174,167,90,170,175,250,170]},{"a":54264,"t":"byte","b":[168,250,170,0,10,170,0,201]},{"a":54272,"l":"enemy_shapes_b","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $50 to $5F (1,024 bytes): $50, $51, $54 and $55 the wind-up and throw poses of enemy_throw ($3D4D); $52 and $53 the upper part of the other kind walking left (walk_c_upper); $56 to $5C the dying frames of enemy_dying ($3CAC); $5D to $5F the first three upper leap frames walking right (leap_frames_right, $394E).","t":"byte","b":[0,0,0,0,15,0,0,55]},{"a":54280,"t":"byte","b":[192,0,63,192,0,58,128,0]},{"a":54288,"t":"byte","b":[62,128,0,55,64,0,63,192]},{"a":54296,"t":"byte","b":[42,255,192,170,127,128,170,85]},{"a":54304,"t":"byte","b":[128,170,91,160,170,85,160,170]},{"a":54312,"t":"byte","b":[189,232,170,173,104,170,173,250]},{"a":54320,"t":"byte","b":[42,169,250,42,170,250,10,170]},{"a":54328,"t":"byte","b":[168,10,170,160,10,170,0,169]},{"a":54336,"t":"byte","b":[0,0,0,3,192,0,13,240]},{"a":54344,"t":"byte","b":[0,15,240,0,15,160,0,15]},{"a":54352,"t":"byte","b":[224,0,15,112,0,15,240,0]},{"a":54360,"t":"byte","b":[47,240,0,39,224,0,169,64]},{"a":54368,"t":"byte","b":[2,170,66,85,170,161,85,170]},{"a":54376,"t":"byte","b":[171,208,170,171,192,170,169,192]},{"a":54384,"t":"byte","b":[170,128,0,170,128,0,170,128]},{"a":54392,"t":"byte","b":[0,170,128,0,170,128,0,233]},{"a":54400,"t":"byte","b":[0,0,0,0,60,0,0,247]},{"a":54408,"t":"byte","b":[0,0,255,0,0,171,0,0]},{"a":54416,"t":"byte","b":[175,0,0,119,0,0,255,0]},{"a":54424,"t":"byte","b":[0,255,128,2,189,168,10,85]},{"a":54432,"t":"byte","b":[170,10,185,170,10,85,170,10]},{"a":54440,"t":"byte","b":[87,170,10,86,170,10,214,170]},{"a":54448,"t":"byte","b":[250,158,170,218,186,170,250,170]},{"a":54456,"t":"byte","b":[165,42,170,175,0,170,175,32]},{"a":54464,"t":"byte","b":[0,60,0,0,247,0,0,255]},{"a":54472,"t":"byte","b":[0,0,171,0,0,175,0,0]},{"a":54480,"t":"byte","b":[119,0,0,255,0,0,255,128]},{"a":54488,"t":"byte","b":[2,189,168,10,85,170,10,185]},{"a":54496,"t":"byte","b":[170,10,85,170,10,87,170,10]},{"a":54504,"t":"byte","b":[86,170,10,214,170,250,158,170]},{"a":54512,"t":"byte","b":[218,186,170,250,170,165,42,170]},{"a":54520,"t":"byte","b":[175,0,170,175,0,170,160,102]},{"a":54528,"t":"byte","b":[0,0,0,0,240,0,3,220]},{"a":54536,"t":"byte","b":[0,3,252,0,2,172,0,2]},{"a":54544,"t":"byte","b":[188,0,1,220,0,3,252,0]},{"a":54552,"t":"byte","b":[3,255,168,2,253,170,2,85]},{"a":54560,"t":"byte","b":[170,10,229,170,10,85,170,43]},{"a":54568,"t":"byte","b":[126,170,41,122,170,175,122,170]},{"a":54576,"t":"byte","b":[175,106,168,175,170,168,42,170]},{"a":54584,"t":"byte","b":[160,10,170,160,0,170,160,24]},{"a":54592,"t":"byte","b":[0,0,0,0,3,192,0,15]},{"a":54600,"t":"byte","b":[112,0,15,240,0,10,240,0]},{"a":54608,"t":"byte","b":[11,240,0,13,240,0,15,240]},{"a":54616,"t":"byte","b":[0,15,248,0,11,216,128,1]},{"a":54624,"t":"byte","b":[106,85,129,170,85,74,170,7]},{"a":54632,"t":"byte","b":[234,170,3,234,170,3,106,170]},{"a":54640,"t":"byte","b":[0,2,170,0,2,170,0,2]},{"a":54648,"t":"byte","b":[170,0,2,170,0,2,170,14]},{"a":54656,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":54664,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":54672,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":54680,"t":"byte","b":[0,42,0,0,170,128,0,191]},{"a":54688,"t":"byte","b":[128,0,174,128,0,159,128,0]},{"a":54696,"t":"byte","b":[187,128,10,191,160,42,106,104]},{"a":54704,"t":"byte","b":[42,85,104,170,213,234,170,213]},{"a":54712,"t":"byte","b":[234,170,149,170,170,149,170,96]},{"a":54720,"t":"byte","b":[170,149,170,170,154,170,171,239]},{"a":54728,"t":"byte","b":[170,41,231,168,3,239,128,2]},{"a":54736,"t":"byte","b":[170,128,2,170,128,2,170,128]},{"a":54744,"t":"byte","b":[10,170,128,10,171,128,10,235]},{"a":54752,"t":"byte","b":[160,43,170,224,43,138,232,46]},{"a":54760,"t":"byte","b":[10,186,46,10,174,42,130,170]},{"a":54768,"t":"byte","b":[11,128,42,15,128,10,42,128]},{"a":54776,"t":"byte","b":[10,154,128,38,168,0,42,157]},{"a":54784,"t":"byte","b":[0,40,0,0,170,0,0,170]},{"a":54792,"t":"byte","b":[0,2,170,128,10,170,160,42]},{"a":54800,"t":"byte","b":[235,168,42,239,168,170,190,170]},{"a":54808,"t":"byte","b":[170,105,170,170,85,170,170,154]},{"a":54816,"t":"byte","b":[170,171,239,170,169,231,170,43]},{"a":54824,"t":"byte","b":[239,168,170,170,170,186,42,186]},{"a":54832,"t":"byte","b":[174,170,238,42,171,170,42,42]},{"a":54840,"t":"byte","b":[138,152,42,38,160,8,40,157]},{"a":54848,"t":"byte","b":[0,0,0,0,0,0,0,40]},{"a":54856,"t":"byte","b":[0,0,170,0,0,170,0,2]},{"a":54864,"t":"byte","b":[170,160,10,170,168,42,170,168]},{"a":54872,"t":"byte","b":[42,170,170,170,235,170,170,190]},{"a":54880,"t":"byte","b":[170,170,169,170,171,229,170,169]},{"a":54888,"t":"byte","b":[229,170,171,166,170,186,170,170]},{"a":54896,"t":"byte","b":[174,170,170,42,171,170,42,42]},{"a":54904,"t":"byte","b":[139,152,42,13,160,8,15,248]},{"a":54912,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":54920,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":54928,"t":"byte","b":[0,0,0,0,0,0,63,0]},{"a":54936,"t":"byte","b":[0,223,192,0,255,192,0,255]},{"a":54944,"t":"byte","b":[192,0,170,128,0,234,192,0]},{"a":54952,"t":"byte","b":[247,192,10,191,160,42,106,104]},{"a":54960,"t":"byte","b":[42,85,104,170,213,234,170,213]},{"a":54968,"t":"byte","b":[234,170,149,170,170,149,170,32]},{"a":54976,"t":"byte","b":[0,60,0,0,255,0,0,223]},{"a":54984,"t":"byte","b":[0,2,255,128,10,255,160,42]},{"a":54992,"t":"byte","b":[255,168,42,255,168,170,170,170]},{"a":55000,"t":"byte","b":[170,235,170,170,85,170,170,86]},{"a":55008,"t":"byte","b":[170,170,154,170,169,231,170,43]},{"a":55016,"t":"byte","b":[239,168,170,170,170,186,42,186]},{"a":55024,"t":"byte","b":[174,170,238,42,171,170,42,42]},{"a":55032,"t":"byte","b":[138,152,42,38,160,8,40,33]},{"a":55040,"t":"byte","b":[0,0,0,0,0,0,0,60]},{"a":55048,"t":"byte","b":[0,0,255,0,0,223,0,2]},{"a":55056,"t":"byte","b":[255,160,10,255,168,42,255,168]},{"a":55064,"t":"byte","b":[42,255,170,170,255,170,170,190]},{"a":55072,"t":"byte","b":[170,170,105,170,171,213,170,169]},{"a":55080,"t":"byte","b":[213,170,171,150,170,186,170,170]},{"a":55088,"t":"byte","b":[174,170,170,42,171,170,42,42]},{"a":55096,"t":"byte","b":[139,152,42,13,160,8,15,32]},{"a":55104,"t":"byte","b":[0,0,0,0,0,0,0,168]},{"a":55112,"t":"byte","b":[2,2,234,10,34,170,14,50]},{"a":55120,"t":"byte","b":[170,6,18,182,6,18,175,44]},{"a":55128,"t":"byte","b":[18,170,56,18,170,24,18,168]},{"a":55136,"t":"byte","b":[24,42,170,176,174,170,224,191]},{"a":55144,"t":"byte","b":[170,96,174,170,104,187,170,172]},{"a":55152,"t":"byte","b":[170,229,184,170,173,168,42,170]},{"a":55160,"t":"byte","b":[168,10,165,168,10,167,160,169]},{"a":55168,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":55176,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":55184,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":55192,"t":"byte","b":[0,168,0,2,234,0,34,170]},{"a":55200,"t":"byte","b":[0,50,170,0,18,182,0,18]},{"a":55208,"t":"byte","b":[175,0,26,170,0,42,170,0]},{"a":55216,"t":"byte","b":[42,170,0,46,170,128,191,170]},{"a":55224,"t":"byte","b":[224,174,170,176,171,170,160,0]},{"a":55232,"t":"byte","b":[0,0,0,0,0,0,0,168]},{"a":55240,"t":"byte","b":[0,2,234,0,34,170,0,50]},{"a":55248,"t":"byte","b":[170,0,18,218,0,18,191,0]},{"a":55256,"t":"byte","b":[26,170,0,58,170,0,42,170]},{"a":55264,"t":"byte","b":[0,46,168,0,58,170,128,46]},{"a":55272,"t":"byte","b":[170,224,63,170,184,46,170,188]},{"a":55280,"t":"byte","b":[43,170,184,46,234,172,43,170]},{"a":55288,"t":"byte","b":[184,10,234,232,11,186,176,98]},{"a":55296,"l":"enemy_leap_shapes","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $60 to $6C (832 bytes) of the enemy's leap: $61 to $64 the lower parts of the right leap and $69 to $6C of the left leap (leap_frames_right $394E and leap_frames_left $38EB add 4 to the upper pointer); $60 is the blow to the right (enemy_leap_hit_right, $3B87), $68 the blow to the left (enemy_leap_hit_left, $3BB9), $65 to $67 the upper parts of the left leap.","t":"byte","b":[0,0,0,0,0,0,2,160]},{"a":55304,"t":"byte","b":[0,10,168,0,11,168,0,138]},{"a":55312,"t":"byte","b":[168,0,202,164,0,74,172,0]},{"a":55320,"t":"byte","b":[74,168,0,74,168,0,106,160]},{"a":55328,"t":"byte","b":[0,238,168,0,191,174,0,174]},{"a":55336,"t":"byte","b":[170,0,187,170,0,174,230,170]},{"a":55344,"t":"byte","b":[171,167,85,170,166,170,170,170]},{"a":55352,"t":"byte","b":[0,170,182,0,170,170,0,69]},{"a":55360,"t":"byte","b":[11,170,128,10,234,128,3,170]},{"a":55368,"t":"byte","b":[128,2,234,128,2,186,160,10]},{"a":55376,"t":"byte","b":[238,160,10,186,160,10,174,160]},{"a":55384,"t":"byte","b":[11,171,168,14,238,168,43,171]},{"a":55392,"t":"byte","b":[168,46,174,168,59,171,160,46]},{"a":55400,"t":"byte","b":[170,160,186,139,160,170,10,160]},{"a":55408,"t":"byte","b":[232,11,160,160,10,160,168,2]},{"a":55416,"t":"byte","b":[128,186,2,168,42,2,168,157]},{"a":55424,"t":"byte","b":[174,234,160,171,185,170,170,173]},{"a":55432,"t":"byte","b":[151,42,167,170,11,170,160,10]},{"a":55440,"t":"byte","b":[234,128,11,186,128,2,238,160]},{"a":55448,"t":"byte","b":[2,186,168,2,174,234,2,235]},{"a":55456,"t":"byte","b":[170,3,186,234,11,235,186,15]},{"a":55464,"t":"byte","b":[186,232,46,171,168,186,162,232]},{"a":55472,"t":"byte","b":[170,2,160,232,10,128,168,10]},{"a":55480,"t":"byte","b":[160,186,2,168,42,0,168,240]},{"a":55488,"t":"byte","b":[10,222,224,2,153,160,0,165]},{"a":55496,"t":"byte","b":[168,10,231,170,43,170,186,174]},{"a":55504,"t":"byte","b":[238,234,170,166,186,170,166,168]},{"a":55512,"t":"byte","b":[160,38,168,160,6,160,160,6]},{"a":55520,"t":"byte","b":[128,32,4,128,0,4,128,0]},{"a":55528,"t":"byte","b":[4,0,0,4,0,0,4,0]},{"a":55536,"t":"byte","b":[0,4,0,0,12,0,0,8]},{"a":55544,"t":"byte","b":[0,0,0,0,0,0,0,50]},{"a":55552,"t":"byte","b":[0,186,168,0,174,168,0,186]},{"a":55560,"t":"byte","b":[168,2,174,168,2,187,168,2]},{"a":55568,"t":"byte","b":[238,232,3,171,168,10,234,232]},{"a":55576,"t":"byte","b":[11,171,168,10,234,232,11,171]},{"a":55584,"t":"byte","b":[160,46,171,160,43,139,160,42]},{"a":55592,"t":"byte","b":[138,160,46,11,160,42,10,160]},{"a":55600,"t":"byte","b":[170,11,160,168,10,128,168,2]},{"a":55608,"t":"byte","b":[128,58,2,160,42,2,168,169]},{"a":55616,"t":"byte","b":[0,0,0,0,0,0,128,42]},{"a":55624,"t":"byte","b":[0,160,171,128,176,170,136,144]},{"a":55632,"t":"byte","b":[170,140,144,158,132,56,250,132]},{"a":55640,"t":"byte","b":[44,170,132,36,170,132,36,42]},{"a":55648,"t":"byte","b":[132,14,170,168,11,170,186,9]},{"a":55656,"t":"byte","b":[170,254,41,170,186,58,170,238]},{"a":55664,"t":"byte","b":[46,91,170,42,122,170,42,170]},{"a":55672,"t":"byte","b":[168,42,90,160,10,218,160,177]},{"a":55680,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":55688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":55696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":55704,"t":"byte","b":[0,42,0,0,171,128,0,170]},{"a":55712,"t":"byte","b":[136,0,170,140,0,158,132,0]},{"a":55720,"t":"byte","b":[250,132,0,170,164,0,170,168]},{"a":55728,"t":"byte","b":[0,170,168,2,170,184,11,170]},{"a":55736,"t":"byte","b":[254,14,170,186,10,170,234,1]},{"a":55744,"t":"byte","b":[0,0,0,0,0,0,0,42]},{"a":55752,"t":"byte","b":[0,0,171,128,0,170,136,0]},{"a":55760,"t":"byte","b":[170,140,0,167,132,0,254,132]},{"a":55768,"t":"byte","b":[0,170,164,0,170,172,0,170]},{"a":55776,"t":"byte","b":[168,0,42,184,2,170,172,11]},{"a":55784,"t":"byte","b":[170,184,46,170,252,62,170,184]},{"a":55792,"t":"byte","b":[46,170,232,58,171,184,46,170]},{"a":55800,"t":"byte","b":[232,43,171,160,14,174,224,28]},{"a":55808,"t":"byte","b":[0,0,0,0,0,0,0,10]},{"a":55816,"t":"byte","b":[128,0,42,160,0,42,224,0]},{"a":55824,"t":"byte","b":[42,162,0,26,163,0,58,161]},{"a":55832,"t":"byte","b":[0,42,161,0,42,161,0,10]},{"a":55840,"t":"byte","b":[169,0,42,187,0,186,254,0]},{"a":55848,"t":"byte","b":[170,186,0,170,238,170,155,186]},{"a":55856,"t":"byte","b":[85,218,234,170,154,170,0,170]},{"a":55864,"t":"byte","b":[170,0,158,170,0,170,170,41]},{"a":55872,"t":"byte","b":[2,170,224,2,171,160,2,170]},{"a":55880,"t":"byte","b":[192,2,171,128,10,174,128,10]},{"a":55888,"t":"byte","b":[187,160,10,174,160,10,186,160]},{"a":55896,"t":"byte","b":[42,234,224,42,187,176,42,234]},{"a":55904,"t":"byte","b":[232,42,186,184,10,234,236,10]},{"a":55912,"t":"byte","b":[170,184,10,226,174,10,160,170]},{"a":55920,"t":"byte","b":[10,224,43,10,160,10,2,128]},{"a":55928,"t":"byte","b":[42,42,128,174,42,128,168,232]},{"a":55936,"t":"byte","b":[10,171,186,170,110,234,214,122]},{"a":55944,"t":"byte","b":[170,170,218,168,10,170,224,2]},{"a":55952,"t":"byte","b":[171,160,2,174,224,10,187,128]},{"a":55960,"t":"byte","b":[42,174,128,171,186,128,170,235]},{"a":55968,"t":"byte","b":[128,171,174,192,174,235,224,43]},{"a":55976,"t":"byte","b":[174,240,42,234,184,43,138,174]},{"a":55984,"t":"byte","b":[10,128,170,2,160,43,10,160]},{"a":55992,"t":"byte","b":[42,42,128,174,42,0,168,169]},{"a":56000,"t":"byte","b":[11,183,160,10,102,128,42,90]},{"a":56008,"t":"byte","b":[0,170,219,160,174,170,232,171]},{"a":56016,"t":"byte","b":[187,186,174,154,170,42,154,170]},{"a":56024,"t":"byte","b":[42,152,10,10,144,10,2,144]},{"a":56032,"t":"byte","b":[10,2,16,8,2,16,0,0]},{"a":56040,"t":"byte","b":[16,0,0,16,0,0,16,0]},{"a":56048,"t":"byte","b":[0,16,0,0,48,0,0,32]},{"a":56056,"t":"byte","b":[0,0,0,0,0,0,0,192]},{"a":56064,"t":"byte","b":[42,174,0,42,186,0,42,174]},{"a":56072,"t":"byte","b":[0,42,186,128,42,238,128,43]},{"a":56080,"t":"byte","b":[187,128,42,234,192,43,171,160]},{"a":56088,"t":"byte","b":[42,234,224,43,171,160,10,234]},{"a":56096,"t":"byte","b":[224,10,234,184,10,226,232,10]},{"a":56104,"t":"byte","b":[162,168,10,224,184,10,160,168]},{"a":56112,"t":"byte","b":[10,224,170,2,160,42,2,128]},{"a":56120,"t":"byte","b":[42,10,128,172,42,128,168,55]},{"a":56128,"l":"enemy_attack_shapes_b","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $6D and $6E (128 bytes): the upper part of the attack of the other kind of enemy, $6D facing right and $6E facing left (enemy_attack_frame, $3F76).","t":"byte","b":[3,192,0,13,240,0,15,240]},{"a":56136,"t":"byte","b":[0,14,160,0,15,224,0,15]},{"a":56144,"t":"byte","b":[112,0,15,240,0,14,240,0]},{"a":56152,"t":"byte","b":[5,192,0,41,64,0,42,168]},{"a":56160,"t":"byte","b":[0,42,170,174,42,170,167,170]},{"a":56168,"t":"byte","b":[170,167,170,170,160,170,160,0]},{"a":56176,"t":"byte","b":[170,160,0,170,160,0,170,128]},{"a":56184,"t":"byte","b":[0,170,128,0,170,128,0,33]},{"a":56192,"t":"byte","b":[0,3,192,0,15,112,0,15]},{"a":56200,"t":"byte","b":[240,0,10,176,0,11,240,0]},{"a":56208,"t":"byte","b":[13,240,0,15,240,0,15,176]},{"a":56216,"t":"byte","b":[0,3,80,0,1,104,0,42]},{"a":56224,"t":"byte","b":[168,186,170,168,218,170,168,218]},{"a":56232,"t":"byte","b":[170,170,10,170,170,0,10,170]},{"a":56240,"t":"byte","b":[0,10,170,0,10,170,0,2]},{"a":56248,"t":"byte","b":[170,0,2,170,0,2,170,1]},{"a":56256,"l":"exit_marker_shape","c":"Shape address = $C000 + 64 x pointer. Sprite shape for pointer $6F (64 bytes): exit_marker_step ($354A) shows it as sprite 7 once the end flag $2061 is set.","t":"byte","b":[0,0,0,0,0,0,3,87]},{"a":56264,"t":"byte","b":[128,1,129,128,1,129,128,25]},{"a":56272,"t":"byte","b":[129,156,255,255,250,255,255,250]},{"a":56280,"t":"byte","b":[255,255,250,186,171,170,223,253]},{"a":56288,"t":"byte","b":[250,253,95,250,253,95,250,255]},{"a":56296,"t":"byte","b":[255,250,255,255,250,255,255,250]},{"a":56304,"t":"byte","b":[255,255,250,255,255,250,255,255]},{"a":56312,"t":"byte","b":[250,255,255,250,186,170,234,0]},{"a":56320,"l":"title_sprite_shapes","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $70 to $73 (256 bytes): the four sprites that title_irq_bottom ($15C2) puts at the foot of the title pages.","t":"byte","b":[9,85,85,37,85,85,21,91]},{"a":56328,"t":"byte","b":[229,21,102,249,21,187,254,21]},{"a":56336,"t":"byte","b":[191,254,21,252,63,21,241,79]},{"a":56344,"t":"byte","b":[21,241,79,21,1,64,21,241]},{"a":56352,"t":"byte","b":[79,21,1,64,22,2,128,26]},{"a":56360,"t":"byte","b":[3,192,26,192,3,26,128,3]},{"a":56368,"t":"byte","b":[26,176,14,26,172,58,26,191]},{"a":56376,"t":"byte","b":[254,38,240,63,9,85,85,141]},{"a":56384,"t":"byte","b":[85,85,85,85,85,85,111,149]},{"a":56392,"t":"byte","b":[190,155,230,111,239,251,191,255]},{"a":56400,"t":"byte","b":[251,255,240,255,195,197,63,20]},{"a":56408,"t":"byte","b":[197,95,20,5,80,3,197,95]},{"a":56416,"t":"byte","b":[255,5,80,21,10,192,43,15]},{"a":56424,"t":"byte","b":[0,60,0,12,0,0,12,0]},{"a":56432,"t":"byte","b":[192,59,0,176,234,195,255,251]},{"a":56440,"t":"byte","b":[255,192,63,0,85,85,85,141]},{"a":56448,"t":"byte","b":[85,85,85,85,85,85,86,251]},{"a":56456,"t":"byte","b":[219,153,189,239,238,254,255,239]},{"a":56464,"t":"byte","b":[255,255,255,14,240,252,83,197]},{"a":56472,"t":"byte","b":[252,83,197,192,80,5,252,83]},{"a":56480,"t":"byte","b":[197,64,80,5,0,160,10,0]},{"a":56488,"t":"byte","b":[240,10,48,0,10,48,0,10]},{"a":56496,"t":"byte","b":[236,0,10,171,12,10,239,255]},{"a":56504,"t":"byte","b":[250,252,3,58,85,85,85,32]},{"a":56512,"t":"byte","b":[85,128,0,85,96,0,229,80]},{"a":56520,"t":"byte","b":[0,249,80,0,253,80,0,253]},{"a":56528,"t":"byte","b":[80,0,253,80,0,61,80,0]},{"a":56536,"t":"byte","b":[61,80,0,1,80,0,61,80]},{"a":56544,"t":"byte","b":[0,1,144,0,2,144,0,2]},{"a":56552,"t":"byte","b":[144,0,2,144,0,2,144,0]},{"a":56560,"t":"byte","b":[2,144,0,2,144,0,254,144]},{"a":56568,"t":"byte","b":[0,206,96,0,85,128,0,203]},{"a":56576,"l":"cursor_shape","c":"Shape address = $C000 + 64 x pointer. Sprite shape for pointer $74 (64 bytes): the cursor of the mask game, which scan_cursor ($50B1) and cursor_move ($51E0) show as sprite 0.","t":"byte","b":[255,255,255,128,16,1,128,16]},{"a":56584,"t":"byte","b":[1,128,0,1,128,0,1,128]},{"a":56592,"t":"byte","b":[0,1,128,0,1,128,0,1]},{"a":56600,"t":"byte","b":[128,0,1,128,0,1,240,0]},{"a":56608,"t":"byte","b":[15,128,0,1,128,0,1,128]},{"a":56616,"t":"byte","b":[0,1,128,0,1,128,0,1]},{"a":56624,"t":"byte","b":[128,0,1,128,0,1,128,16]},{"a":56632,"t":"byte","b":[1,128,16,1,255,255,255,0]},{"a":56640,"t":"gap","n":704},{"a":57344,"l":"player_shapes_a","c":"Sprite shapes for pointers $80 to $8F (1,024 bytes). The same bytes as level 2's player_shapes_a.","t":"byte","b":[0,0,0,0,8,128,0,34]},{"a":57352,"t":"byte","b":[0,0,130,128,2,0,128,0]},{"a":57360,"t":"byte","b":[160,160,10,40,160,10,168,128]},{"a":57368,"t":"byte","b":[8,160,160,8,40,160,8,40]},{"a":57376,"t":"byte","b":[160,8,32,160,0,32,168,8]},{"a":57384,"t":"byte","b":[128,32,8,128,32,42,0,8]},{"a":57392,"t":"byte","b":[32,8,8,40,40,8,2,170]},{"a":57400,"t":"byte","b":[40,128,0,8,160,0,0,6]},{"a":57408,"t":"byte","b":[0,34,0,0,136,0,2,10]},{"a":57416,"t":"byte","b":[0,8,2,0,34,130,160,40]},{"a":57424,"t":"byte","b":[32,128,42,168,128,34,160,128]},{"a":57432,"t":"byte","b":[32,160,128,42,168,128,10,0]},{"a":57440,"t":"byte","b":[128,8,32,128,10,128,128,10]},{"a":57448,"t":"byte","b":[128,128,42,160,0,42,128,128]},{"a":57456,"t":"byte","b":[2,2,128,32,2,0,0,0]},{"a":57464,"t":"byte","b":[0,8,40,0,0,2,0,11]},{"a":57472,"t":"byte","b":[0,0,0,0,42,0,2,138]},{"a":57480,"t":"byte","b":[0,0,0,0,2,2,32,8]},{"a":57488,"t":"byte","b":[160,128,34,168,128,42,168,128]},{"a":57496,"t":"byte","b":[34,160,128,32,168,128,40,168]},{"a":57504,"t":"byte","b":[128,32,40,128,0,40,32,2]},{"a":57512,"t":"byte","b":[160,0,2,160,0,2,160,0]},{"a":57520,"t":"byte","b":[10,168,0,8,136,0,10,160]},{"a":57528,"t":"byte","b":[0,2,128,0,0,32,0,32]},{"a":57536,"t":"byte","b":[0,0,0,0,8,128,0,34]},{"a":57544,"t":"byte","b":[0,0,128,0,0,0,136,0]},{"a":57552,"t":"byte","b":[160,160,10,136,128,42,168,160]},{"a":57560,"t":"byte","b":[42,160,160,40,168,160,40,168]},{"a":57568,"t":"byte","b":[136,40,168,160,0,168,0,2]},{"a":57576,"t":"byte","b":[168,0,10,160,0,34,160,0]},{"a":57584,"t":"byte","b":[40,128,0,42,8,0,10,160]},{"a":57592,"t":"byte","b":[0,10,128,8,160,0,0,167]},{"a":57600,"t":"byte","b":[0,34,0,0,136,0,2,0]},{"a":57608,"t":"byte","b":[0,0,2,0,2,130,160,42]},{"a":57616,"t":"byte","b":[160,32,168,160,160,130,160,160]},{"a":57624,"t":"byte","b":[162,160,136,162,32,160,2,160]},{"a":57632,"t":"byte","b":[128,10,160,128,42,160,128,42]},{"a":57640,"t":"byte","b":[128,128,10,128,128,10,128,128]},{"a":57648,"t":"byte","b":[8,162,0,42,130,128,42,0]},{"a":57656,"t":"byte","b":[0,40,0,0,0,2,0,106]},{"a":57664,"t":"byte","b":[0,0,0,0,42,0,2,128]},{"a":57672,"t":"byte","b":[0,0,0,0,10,2,128,8]},{"a":57680,"t":"byte","b":[128,128,34,160,128,170,160,128]},{"a":57688,"t":"byte","b":[130,160,128,162,160,128,162,160]},{"a":57696,"t":"byte","b":[160,128,128,128,2,128,32,2]},{"a":57704,"t":"byte","b":[128,40,2,160,8,10,0,8]},{"a":57712,"t":"byte","b":[10,128,40,40,0,168,42,40]},{"a":57720,"t":"byte","b":[0,40,0,0,0,32,0,160]},{"a":57728,"t":"byte","b":[0,0,0,2,32,0,0,136]},{"a":57736,"t":"byte","b":[0,2,130,0,2,0,128,10]},{"a":57744,"t":"byte","b":[10,0,10,40,160,2,42,160]},{"a":57752,"t":"byte","b":[10,10,32,10,40,32,10,40]},{"a":57760,"t":"byte","b":[32,10,8,32,42,8,0,8]},{"a":57768,"t":"byte","b":[2,32,8,2,32,32,0,168]},{"a":57776,"t":"byte","b":[32,32,8,32,40,40,40,170]},{"a":57784,"t":"byte","b":[128,32,0,2,0,0,10,105]},{"a":57792,"t":"byte","b":[0,136,0,0,34,0,0,160]},{"a":57800,"t":"byte","b":[128,0,128,32,10,130,136,2]},{"a":57808,"t":"byte","b":[8,40,2,42,168,2,10,136]},{"a":57816,"t":"byte","b":[2,10,8,2,42,168,2,0]},{"a":57824,"t":"byte","b":[160,2,8,32,2,2,160,2]},{"a":57832,"t":"byte","b":[2,160,0,10,168,2,2,168]},{"a":57840,"t":"byte","b":[2,128,128,0,128,8,0,0]},{"a":57848,"t":"byte","b":[0,0,40,32,0,128,0,96]},{"a":57856,"t":"byte","b":[0,0,0,0,168,0,0,162]},{"a":57864,"t":"byte","b":[128,0,0,0,8,128,128,2]},{"a":57872,"t":"byte","b":[10,32,2,42,136,2,42,168]},{"a":57880,"t":"byte","b":[2,10,136,2,42,8,2,42]},{"a":57888,"t":"byte","b":[40,2,40,8,8,40,0,0]},{"a":57896,"t":"byte","b":[10,128,0,10,128,0,10,128]},{"a":57904,"t":"byte","b":[0,42,160,0,34,32,0,10]},{"a":57912,"t":"byte","b":[160,0,2,128,0,8,0,153]},{"a":57920,"t":"byte","b":[0,0,0,2,32,0,0,136]},{"a":57928,"t":"byte","b":[0,0,2,0,34,0,0,10]},{"a":57936,"t":"byte","b":[10,0,2,34,160,10,42,168]},{"a":57944,"t":"byte","b":[10,10,168,10,42,40,34,42]},{"a":57952,"t":"byte","b":[40,10,42,40,0,42,0,0]},{"a":57960,"t":"byte","b":[42,128,0,10,160,0,10,136]},{"a":57968,"t":"byte","b":[0,2,40,0,32,168,0,10]},{"a":57976,"t":"byte","b":[160,32,2,160,0,0,10,240]},{"a":57984,"t":"byte","b":[0,136,0,0,34,0,0,0]},{"a":57992,"t":"byte","b":[128,0,128,0,10,130,128,8]},{"a":58000,"t":"byte","b":[10,168,10,10,42,10,10,130]},{"a":58008,"t":"byte","b":[34,10,138,10,8,138,2,10]},{"a":58016,"t":"byte","b":[128,2,10,160,2,10,168,2]},{"a":58024,"t":"byte","b":[2,168,2,2,160,2,2,160]},{"a":58032,"t":"byte","b":[0,138,32,2,130,168,0,0]},{"a":58040,"t":"byte","b":[168,0,0,40,0,128,0,204]},{"a":58048,"t":"byte","b":[0,0,0,0,168,0,0,2]},{"a":58056,"t":"byte","b":[128,0,0,0,2,128,160,2]},{"a":58064,"t":"byte","b":[2,32,2,10,136,2,10,170]},{"a":58072,"t":"byte","b":[2,10,130,2,10,138,10,10]},{"a":58080,"t":"byte","b":[138,2,2,2,8,2,128,40]},{"a":58088,"t":"byte","b":[2,128,32,10,128,32,0,160]},{"a":58096,"t":"byte","b":[40,2,160,42,0,40,0,40]},{"a":58104,"t":"byte","b":[168,0,0,40,0,8,0,200]},{"a":58112,"t":"byte","b":[0,136,0,2,32,0,8,40]},{"a":58120,"t":"byte","b":[0,32,8,40,42,34,8,34]},{"a":58128,"t":"byte","b":[130,168,32,34,160,34,32,160]},{"a":58136,"t":"byte","b":[42,128,32,10,168,160,10,168]},{"a":58144,"t":"byte","b":[136,10,160,32,10,160,0,10]},{"a":58152,"t":"byte","b":[160,40,10,160,40,2,168,32]},{"a":58160,"t":"byte","b":[2,128,32,2,128,160,0,34]},{"a":58168,"t":"byte","b":[128,0,130,0,0,0,0,173]},{"a":58176,"t":"byte","b":[0,34,0,0,8,128,0,40]},{"a":58184,"t":"byte","b":[32,40,32,8,32,136,168,42]},{"a":58192,"t":"byte","b":[130,136,10,136,8,10,8,136]},{"a":58200,"t":"byte","b":[8,2,168,10,42,160,34,42]},{"a":58208,"t":"byte","b":[160,8,10,160,0,10,160,40]},{"a":58216,"t":"byte","b":[10,160,40,10,160,8,42,128]},{"a":58224,"t":"byte","b":[8,2,128,10,2,128,2,136]},{"a":58232,"t":"byte","b":[0,0,130,0,0,0,0,166]},{"a":58240,"t":"byte","b":[0,0,0,0,0,168,0,10]},{"a":58248,"t":"byte","b":[0,0,0,0,0,40,2,0]},{"a":58256,"t":"byte","b":[162,40,2,138,136,8,42,168]},{"a":58264,"t":"byte","b":[40,138,40,42,128,8,10,8]},{"a":58272,"t":"byte","b":[128,42,160,0,10,160,128,34]},{"a":58280,"t":"byte","b":[168,160,42,160,0,8,160,40]},{"a":58288,"t":"byte","b":[2,168,8,10,160,8,10,128]},{"a":58296,"t":"byte","b":[0,10,0,10,0,0,128,232]},{"a":58304,"t":"byte","b":[0,0,0,42,0,0,0,160]},{"a":58312,"t":"byte","b":[0,0,0,0,128,40,0,40]},{"a":58320,"t":"byte","b":[138,0,34,162,128,42,168,32]},{"a":58328,"t":"byte","b":[40,162,40,32,2,168,2,32]},{"a":58336,"t":"byte","b":[160,0,10,168,2,10,160,10]},{"a":58344,"t":"byte","b":[42,136,0,10,168,40,10,32]},{"a":58352,"t":"byte","b":[32,42,128,32,10,160,0,2]},{"a":58360,"t":"byte","b":[160,160,0,160,2,0,0,13]},{"a":58368,"l":"player_shapes_b","c":"Sprite shapes for pointers $90 to $93 (256 bytes), part of the player's punch and crouch frames: frame_b ($610E) takes $90 and $91 from punch_frames and $92 and $93 from crouch_frames. The same bytes as level 2's player_shapes_b.","t":"byte","b":[0,0,0,0,0,128,0,2]},{"a":58376,"t":"byte","b":[32,0,40,128,0,32,0,0]},{"a":58384,"t":"byte","b":[34,0,0,42,32,0,160,130]},{"a":58392,"t":"byte","b":[0,170,162,0,168,42,0,138]},{"a":58400,"t":"byte","b":[128,2,170,160,2,162,160,10]},{"a":58408,"t":"byte","b":[170,160,8,170,168,32,170,170]},{"a":58416,"t":"byte","b":[160,170,168,128,170,168,0,42]},{"a":58424,"t":"byte","b":[160,0,42,0,160,0,0,133]},{"a":58432,"t":"byte","b":[0,0,0,2,0,0,8,128]},{"a":58440,"t":"byte","b":[0,2,40,0,0,8,0,0]},{"a":58448,"t":"byte","b":[136,0,8,168,0,130,10,0]},{"a":58456,"t":"byte","b":[138,170,0,168,42,0,2,162]},{"a":58464,"t":"byte","b":[0,10,170,128,10,138,128,10]},{"a":58472,"t":"byte","b":[170,160,42,170,32,170,170,8]},{"a":58480,"t":"byte","b":[42,170,10,42,170,2,10,168]},{"a":58488,"t":"byte","b":[0,0,168,0,0,0,10,204]},{"a":58496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":58504,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":58512,"t":"byte","b":[0,0,0,0,0,0,2,160]},{"a":58520,"t":"byte","b":[0,40,0,2,128,0,8,160]},{"a":58528,"t":"byte","b":[42,34,40,160,34,40,168,40]},{"a":58536,"t":"byte","b":[170,40,42,32,168,8,2,40]},{"a":58544,"t":"byte","b":[32,136,42,170,32,42,170,128]},{"a":58552,"t":"byte","b":[40,170,128,160,0,0,8,170]},{"a":58560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":58568,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":58576,"t":"byte","b":[0,0,0,0,0,10,128,0]},{"a":58584,"t":"byte","b":[0,40,0,0,2,128,168,10]},{"a":58592,"t":"byte","b":[32,10,40,136,42,40,136,40]},{"a":58600,"t":"byte","b":[170,40,42,8,168,40,128,32]},{"a":58608,"t":"byte","b":[168,34,8,168,8,170,40,2]},{"a":58616,"t":"byte","b":[170,10,2,170,32,0,0,166]},{"a":58624,"l":"climb_shapes","c":"Sprite shapes for pointers $94 to $96 (192 bytes): the player climbing, picked by climb_frames_up ($5FB1) and climb_frames_down ($5FBD). The same bytes as level 2's climb_shapes.","t":"byte","b":[0,0,0,0,0,0,0,2]},{"a":58632,"t":"byte","b":[160,40,32,0,168,42,168,136]},{"a":58640,"t":"byte","b":[34,168,168,170,32,42,170,136]},{"a":58648,"t":"byte","b":[10,170,160,10,170,168,0,170]},{"a":58656,"t":"byte","b":[168,2,170,40,2,170,160,10]},{"a":58664,"t":"byte","b":[170,160,10,170,160,10,162,160]},{"a":58672,"t":"byte","b":[10,10,160,10,130,160,10,128]},{"a":58680,"t":"byte","b":[128,8,0,0,0,0,0,68]},{"a":58688,"t":"byte","b":[0,0,0,0,0,0,0,10]},{"a":58696,"t":"byte","b":[128,0,0,0,0,170,128,10]},{"a":58704,"t":"byte","b":[42,160,34,170,136,10,170,160]},{"a":58712,"t":"byte","b":[42,170,168,42,42,168,0,170]},{"a":58720,"t":"byte","b":[160,2,170,160,2,170,160,2]},{"a":58728,"t":"byte","b":[170,168,10,170,168,10,170,136]},{"a":58736,"t":"byte","b":[10,170,136,10,170,168,10,162]},{"a":58744,"t":"byte","b":[168,2,0,32,0,0,0,189]},{"a":58752,"t":"byte","b":[0,0,0,0,0,0,0,42]},{"a":58760,"t":"byte","b":[40,0,2,40,2,170,168,0]},{"a":58768,"t":"byte","b":[170,168,8,170,34,34,170,162]},{"a":58776,"t":"byte","b":[40,170,168,40,168,168,40,170]},{"a":58784,"t":"byte","b":[128,40,170,128,10,170,128,10]},{"a":58792,"t":"byte","b":[170,160,10,42,128,8,42,160]},{"a":58800,"t":"byte","b":[8,160,160,10,128,160,2,2]},{"a":58808,"t":"byte","b":[160,0,0,160,0,0,0,126]},{"a":58816,"l":"walk_right_shapes","c":"Sprite shapes for pointers $97 to $9C (384 bytes): the player walking right (walk_frames_right at $5964). The same bytes as level 2's walk_right_shapes.","t":"byte","b":[0,0,0,0,0,0,0,61]},{"a":58824,"t":"byte","b":[192,0,163,0,0,168,128,0]},{"a":58832,"t":"byte","b":[143,112,2,52,0,0,155,128]},{"a":58840,"t":"byte","b":[10,149,232,44,181,62,11,45]},{"a":58848,"t":"byte","b":[8,2,203,160,8,138,136,35]},{"a":58856,"t":"byte","b":[226,56,43,34,56,32,14,56]},{"a":58864,"t":"byte","b":[35,14,8,35,142,8,35,142]},{"a":58872,"t":"byte","b":[8,35,130,8,35,130,8,39]},{"a":58880,"t":"byte","b":[0,247,0,2,140,0,2,162]},{"a":58888,"t":"byte","b":[0,2,61,192,8,208,0,2]},{"a":58896,"t":"byte","b":[110,0,10,87,128,34,212,224]},{"a":58904,"t":"byte","b":[140,180,200,11,46,32,34,234]},{"a":58912,"t":"byte","b":[160,143,138,32,163,58,32,128]},{"a":58920,"t":"byte","b":[2,32,140,14,32,140,14,32]},{"a":58928,"t":"byte","b":[142,14,0,142,14,0,128,130]},{"a":58936,"t":"byte","b":[0,35,34,0,32,154,0,185]},{"a":58944,"t":"byte","b":[0,0,0,0,247,0,2,140]},{"a":58952,"t":"byte","b":[0,2,162,0,2,61,192,8]},{"a":58960,"t":"byte","b":[208,0,2,110,0,46,87,160]},{"a":58968,"t":"byte","b":[190,212,200,44,182,192,11,46]},{"a":58976,"t":"byte","b":[160,34,202,32,143,138,32,172]},{"a":58984,"t":"byte","b":[50,32,128,50,32,140,14,32]},{"a":58992,"t":"byte","b":[140,14,32,140,14,32,142,14]},{"a":59000,"t":"byte","b":[32,142,2,32,142,2,56,48]},{"a":59008,"t":"byte","b":[0,0,0,0,0,0,0,61]},{"a":59016,"t":"byte","b":[192,0,163,0,0,168,128,0]},{"a":59024,"t":"byte","b":[143,112,2,38,128,0,155,128]},{"a":59032,"t":"byte","b":[11,149,232,47,181,50,11,45]},{"a":59040,"t":"byte","b":[8,2,203,160,8,186,32,35]},{"a":59048,"t":"byte","b":[50,32,47,2,32,0,142,0]},{"a":59056,"t":"byte","b":[128,14,0,142,14,8,142,2]},{"a":59064,"t":"byte","b":[8,130,2,10,130,2,39,201]},{"a":59072,"t":"byte","b":[0,247,0,2,140,0,2,162]},{"a":59080,"t":"byte","b":[0,2,61,192,8,154,0,2]},{"a":59088,"t":"byte","b":[110,0,10,87,128,46,212,224]},{"a":59096,"t":"byte","b":[188,180,200,11,46,32,2,42]},{"a":59104,"t":"byte","b":[160,176,138,128,2,10,0,10]},{"a":59112,"t":"byte","b":[10,8,58,10,8,56,10,10]},{"a":59120,"t":"byte","b":[8,10,39,8,202,33,8,202]},{"a":59128,"t":"byte","b":[45,168,202,10,120,10,32,185]},{"a":59136,"t":"byte","b":[0,0,0,0,247,0,2,140]},{"a":59144,"t":"byte","b":[0,2,162,0,2,61,192,8]},{"a":59152,"t":"byte","b":[154,0,2,110,0,42,87,160]},{"a":59160,"t":"byte","b":[178,212,248,44,180,32,11,46]},{"a":59168,"t":"byte","b":[128,34,42,32,140,138,32,188]},{"a":59176,"t":"byte","b":[10,32,0,10,32,8,10,32]},{"a":59184,"t":"byte","b":[56,10,32,56,202,32,8,202]},{"a":59192,"t":"byte","b":[40,8,10,28,11,10,4,165]},{"a":59200,"l":"walk_left_shapes","c":"Sprite shapes for pointers $9D to $A2 (384 bytes): the player walking left (walk_frames_left at $5952), drawn like walk_right_shapes, with $AA to $AF and $86 to $8B as the other two sprites. The same bytes as level 2's walk_left_shapes.","t":"byte","b":[0,0,0,0,0,0,3,124]},{"a":59208,"t":"byte","b":[0,0,202,0,2,42,0,13]},{"a":59216,"t":"byte","b":[242,0,0,28,128,2,230,0]},{"a":59224,"t":"byte","b":[43,86,160,188,94,56,32,120]},{"a":59232,"t":"byte","b":[224,10,227,128,34,162,32,44]},{"a":59240,"t":"byte","b":[139,200,44,136,232,44,176,8]},{"a":59248,"t":"byte","b":[32,176,200,32,178,200,32,178]},{"a":59256,"t":"byte","b":[200,32,130,200,32,130,200,10]},{"a":59264,"t":"byte","b":[0,223,0,0,50,128,0,138]},{"a":59272,"t":"byte","b":[128,3,124,128,0,7,32,0]},{"a":59280,"t":"byte","b":[185,128,2,213,160,11,23,136]},{"a":59288,"t":"byte","b":[35,30,50,8,184,224,10,171]},{"a":59296,"t":"byte","b":[136,8,162,242,8,172,202,8]},{"a":59304,"t":"byte","b":[128,2,8,176,50,8,176,50]},{"a":59312,"t":"byte","b":[0,176,178,0,176,178,0,130]},{"a":59320,"t":"byte","b":[2,0,136,200,0,166,8,162]},{"a":59328,"t":"byte","b":[0,0,0,0,223,0,0,50]},{"a":59336,"t":"byte","b":[128,0,138,128,3,124,128,0]},{"a":59344,"t":"byte","b":[7,32,0,185,128,10,213,184]},{"a":59352,"t":"byte","b":[35,23,190,3,158,56,10,184]},{"a":59360,"t":"byte","b":[224,8,163,136,8,162,242,8]},{"a":59368,"t":"byte","b":[140,58,8,140,2,8,176,50]},{"a":59376,"t":"byte","b":[8,176,50,8,176,50,8,176]},{"a":59384,"t":"byte","b":[178,8,128,178,44,128,178,133]},{"a":59392,"t":"byte","b":[0,0,0,0,0,0,3,124]},{"a":59400,"t":"byte","b":[0,0,202,0,2,42,0,13]},{"a":59408,"t":"byte","b":[242,0,2,152,128,2,230,0]},{"a":59416,"t":"byte","b":[43,86,224,140,94,248,32,120]},{"a":59424,"t":"byte","b":[224,10,227,128,8,174,32,8]},{"a":59432,"t":"byte","b":[140,200,8,128,248,0,178,0]},{"a":59440,"t":"byte","b":[0,176,2,32,176,178,32,128]},{"a":59448,"t":"byte","b":[178,160,128,130,216,128,130,4]},{"a":59456,"t":"byte","b":[0,223,0,0,50,128,0,138]},{"a":59464,"t":"byte","b":[128,3,124,128,0,166,32,0]},{"a":59472,"t":"byte","b":[185,128,2,213,160,11,23,184]},{"a":59480,"t":"byte","b":[35,30,62,8,184,224,10,168]},{"a":59488,"t":"byte","b":[128,2,162,14,0,160,128,32]},{"a":59496,"t":"byte","b":[160,160,32,160,172,160,160,44]},{"a":59504,"t":"byte","b":[216,160,32,72,163,32,120,163]},{"a":59512,"t":"byte","b":[32,160,163,42,8,160,45,224]},{"a":59520,"t":"byte","b":[0,0,0,0,223,0,0,50]},{"a":59528,"t":"byte","b":[128,0,138,128,3,124,128,0]},{"a":59536,"t":"byte","b":[166,32,0,185,128,10,213,168]},{"a":59544,"t":"byte","b":[47,23,142,8,30,56,2,184]},{"a":59552,"t":"byte","b":[224,8,168,136,8,162,50,8]},{"a":59560,"t":"byte","b":[160,62,8,160,0,8,160,32]},{"a":59568,"t":"byte","b":[8,160,44,8,163,44,40,163]},{"a":59576,"t":"byte","b":[32,52,160,32,16,160,224,185]},{"a":59584,"l":"attack_shapes","c":"Sprite shapes for pointers $A3 to $B2 (1,024 bytes). The same bytes as level 2's attack_shapes.","t":"byte","b":[3,220,0,10,48,0,10,136]},{"a":59592,"t":"byte","b":[40,8,247,30,35,64,22,9]},{"a":59600,"t":"byte","b":[184,182,41,94,162,139,83,130]},{"a":59608,"t":"byte","b":[130,216,178,44,138,178,138,40]},{"a":59616,"t":"byte","b":[130,188,168,2,175,136,8,143]},{"a":59624,"t":"byte","b":[136,8,140,170,8,143,199,160]},{"a":59632,"t":"byte","b":[128,37,160,160,45,128,42,170]},{"a":59640,"t":"byte","b":[8,32,2,200,32,2,42,134]},{"a":59648,"t":"byte","b":[35,130,8,34,138,14,43,138]},{"a":59656,"t":"byte","b":[6,37,186,6,37,138,128,35]},{"a":59664,"t":"byte","b":[170,136,42,42,136,35,42,136]},{"a":59672,"t":"byte","b":[35,170,136,3,170,160,12,170]},{"a":59680,"t":"byte","b":[160,142,162,160,190,162,160,178]},{"a":59688,"t":"byte","b":[130,160,138,130,160,170,0,160]},{"a":59696,"t":"byte","b":[168,40,136,162,130,162,32,0]},{"a":59704,"t":"byte","b":[170,40,0,168,136,0,160,0]},{"a":59712,"t":"byte","b":[8,122,0,10,90,0,2,202]},{"a":59720,"t":"byte","b":[0,32,170,0,32,58,32,32]},{"a":59728,"t":"byte","b":[58,32,32,58,224,0,58,224]},{"a":59736,"t":"byte","b":[128,202,224,128,234,32,179,42]},{"a":59744,"t":"byte","b":[224,188,170,32,190,168,32,138]},{"a":59752,"t":"byte","b":[168,128,170,168,128,42,170,0]},{"a":59760,"t":"byte","b":[42,168,0,34,160,0,40,136]},{"a":59768,"t":"byte","b":[0,8,170,0,0,168,128,1]},{"a":59776,"t":"byte","b":[130,2,24,9,130,24,7,130]},{"a":59784,"t":"byte","b":[32,37,130,128,45,130,128,10]},{"a":59792,"t":"byte","b":[14,160,8,14,160,8,14,168]},{"a":59800,"t":"byte","b":[8,14,168,8,14,168,8,14]},{"a":59808,"t":"byte","b":[168,8,14,160,0,2,160,35]},{"a":59816,"t":"byte","b":[50,128,35,58,0,32,8,0]},{"a":59824,"t":"byte","b":[32,192,0,8,32,0,10,128]},{"a":59832,"t":"byte","b":[0,10,160,0,10,136,0,96]},{"a":59840,"t":"byte","b":[130,2,33,130,2,45,170,2]},{"a":59848,"t":"byte","b":[138,158,2,160,150,2,128,182]},{"a":59856,"t":"byte","b":[2,128,40,2,128,32,14,128]},{"a":59864,"t":"byte","b":[32,14,128,12,14,128,12,14]},{"a":59872,"t":"byte","b":[160,143,62,160,131,254,160,131]},{"a":59880,"t":"byte","b":[242,160,160,242,160,172,58,160]},{"a":59888,"t":"byte","b":[160,202,170,160,32,162,168,128]},{"a":59896,"t":"byte","b":[170,42,0,168,136,0,160,153]},{"a":59904,"t":"byte","b":[88,10,32,216,10,32,160,10]},{"a":59912,"t":"byte","b":[32,32,10,32,0,10,32,0]},{"a":59920,"t":"byte","b":[58,32,0,58,32,32,58,32]},{"a":59928,"t":"byte","b":[32,58,32,44,58,32,32,58]},{"a":59936,"t":"byte","b":[32,35,10,224,35,232,224,0]},{"a":59944,"t":"byte","b":[235,32,131,40,128,131,170,0]},{"a":59952,"t":"byte","b":[140,168,0,130,168,0,138,170]},{"a":59960,"t":"byte","b":[0,32,168,128,0,170,128,88]},{"a":59968,"t":"byte","b":[8,58,52,46,58,40,150,58]},{"a":59976,"t":"byte","b":[32,158,58,136,180,58,136,40]},{"a":59984,"t":"byte","b":[58,136,8,58,160,8,10,162]},{"a":59992,"t":"byte","b":[8,234,162,0,234,162,0,234]},{"a":60000,"t":"byte","b":[162,32,234,162,32,42,130,3]},{"a":60008,"t":"byte","b":[170,0,3,170,8,131,138,160]},{"a":60016,"t":"byte","b":[128,130,128,142,168,0,34,128]},{"a":60024,"t":"byte","b":[0,10,160,0,10,136,0,204]},{"a":60032,"t":"byte","b":[32,130,200,176,162,136,144,162]},{"a":60040,"t":"byte","b":[232,144,174,88,2,162,88,34]},{"a":60048,"t":"byte","b":[170,200,34,168,168,34,168,200]},{"a":60056,"t":"byte","b":[34,170,200,10,170,192,10,170]},{"a":60064,"t":"byte","b":[48,10,138,178,10,138,190,10]},{"a":60072,"t":"byte","b":[130,142,10,130,162,10,0,170]},{"a":60080,"t":"byte","b":[34,40,42,138,130,138,170,0]},{"a":60088,"t":"byte","b":[8,42,0,40,10,0,34,246]},{"a":60096,"t":"byte","b":[0,173,32,0,165,160,0,163]},{"a":60104,"t":"byte","b":[128,0,170,8,8,172,8,8]},{"a":60112,"t":"byte","b":[172,8,11,172,8,11,172,0]},{"a":60120,"t":"byte","b":[11,163,2,8,171,2,11,168]},{"a":60128,"t":"byte","b":[206,8,170,62,8,42,190,2]},{"a":60136,"t":"byte","b":[42,162,2,42,170,0,170,168]},{"a":60144,"t":"byte","b":[0,42,168,0,10,136,0,34]},{"a":60152,"t":"byte","b":[40,0,170,32,2,42,0,44]},{"a":60160,"t":"byte","b":[36,128,130,36,130,96,8,130]},{"a":60168,"t":"byte","b":[208,2,130,88,2,130,120,10]},{"a":60176,"t":"byte","b":[176,160,10,176,32,42,176,32]},{"a":60184,"t":"byte","b":[42,176,32,42,176,32,42,176]},{"a":60192,"t":"byte","b":[32,10,176,32,10,128,0,2]},{"a":60200,"t":"byte","b":[140,200,0,172,200,0,32,8]},{"a":60208,"t":"byte","b":[0,3,8,0,8,32,0,2]},{"a":60216,"t":"byte","b":[160,0,10,160,0,34,160,233]},{"a":60224,"t":"byte","b":[72,128,130,120,128,130,162,128]},{"a":60232,"t":"byte","b":[170,10,128,182,2,128,150,2]},{"a":60240,"t":"byte","b":[128,158,2,128,40,2,176,8]},{"a":60248,"t":"byte","b":[2,176,8,2,176,48,10,176]},{"a":60256,"t":"byte","b":[48,10,188,242,10,191,194,10]},{"a":60264,"t":"byte","b":[143,194,10,143,10,10,172,58]},{"a":60272,"t":"byte","b":[170,163,10,138,8,10,170,2]},{"a":60280,"t":"byte","b":[42,42,0,168,10,0,34,233]},{"a":60288,"t":"byte","b":[8,160,37,8,160,39,8,160]},{"a":60296,"t":"byte","b":[10,8,160,8,8,160,0,8]},{"a":60304,"t":"byte","b":[172,0,8,172,0,8,172,8]},{"a":60312,"t":"byte","b":[8,172,8,8,172,56,8,172]},{"a":60320,"t":"byte","b":[8,11,160,200,11,43,200,8]},{"a":60328,"t":"byte","b":[235,0,2,40,194,0,170,194]},{"a":60336,"t":"byte","b":[0,42,50,0,42,130,0,170]},{"a":60344,"t":"byte","b":[162,2,42,8,2,170,0,133]},{"a":60352,"t":"byte","b":[28,172,32,40,172,184,8,172]},{"a":60360,"t":"byte","b":[150,34,172,182,34,172,30,34]},{"a":60368,"t":"byte","b":[172,40,10,172,32,138,160,32]},{"a":60376,"t":"byte","b":[138,171,32,138,171,0,138,171]},{"a":60384,"t":"byte","b":[0,138,171,8,130,168,8,0]},{"a":60392,"t":"byte","b":[170,192,32,170,192,10,162,194]},{"a":60400,"t":"byte","b":[2,130,2,0,42,178,0,2]},{"a":60408,"t":"byte","b":[136,0,10,160,0,34,160,133]},{"a":60416,"t":"byte","b":[14,162,130,14,138,162,14,170]},{"a":60424,"t":"byte","b":[170,14,170,170,62,168,170,254]},{"a":60432,"t":"byte","b":[160,10,14,136,0,14,160,0]},{"a":60440,"t":"byte","b":[14,136,0,2,160,0,50,128]},{"a":60448,"t":"byte","b":[0,58,160,0,58,128,0,58]},{"a":60456,"t":"byte","b":[32,0,58,128,0,200,128,0]},{"a":60464,"t":"byte","b":[234,0,0,40,128,0,170,0]},{"a":60472,"t":"byte","b":[0,170,128,0,170,128,0,177]},{"a":60480,"t":"byte","b":[0,55,192,0,12,160,40,34]},{"a":60488,"t":"byte","b":[160,180,223,32,148,1,200,158]},{"a":60496,"t":"byte","b":[46,96,138,181,104,130,197,226]},{"a":60504,"t":"byte","b":[142,39,130,142,162,56,130,40]},{"a":60512,"t":"byte","b":[162,128,42,62,32,34,250,32]},{"a":60520,"t":"byte","b":[34,242,32,170,50,10,211,242]},{"a":60528,"t":"byte","b":[10,88,2,2,120,10,32,170]},{"a":60536,"t":"byte","b":[168,35,128,8,168,128,8,247]},{"a":60544,"t":"byte","b":[0,0,0,0,3,220,0,10]},{"a":60552,"t":"byte","b":[48,0,10,136,0,8,247,0]},{"a":60560,"t":"byte","b":[34,232,0,9,184,0,41,86]},{"a":60568,"t":"byte","b":[0,139,111,2,242,236,0,172]},{"a":60576,"t":"byte","b":[146,2,10,136,8,48,238,8]},{"a":60584,"t":"byte","b":[248,34,35,200,40,35,224,0]},{"a":60592,"t":"byte","b":[2,160,128,143,40,128,128,158]},{"a":60600,"t":"byte","b":[224,128,22,96,32,182,104,32]},{"a":60608,"l":"attack_shapes_b","c":"Sprite shapes for pointers $B3 to $C1 (960 bytes), the rest of attack_shapes: $B4 to $B7, $BB and $BE to $C1 are named there, and $B8 to $BA are the second sprite of the player climbing (F + $24, see climb_shapes). The same bytes as level 2's attack_shapes_b.","t":"byte","b":[0,0,0,55,192,0,12,160]},{"a":60616,"t":"byte","b":[0,34,160,0,223,32,0,43]},{"a":60624,"t":"byte","b":[136,0,46,96,0,149,104,0]},{"a":60632,"t":"byte","b":[249,226,0,59,143,128,134,58]},{"a":60640,"t":"byte","b":[0,34,160,128,187,12,32,136]},{"a":60648,"t":"byte","b":[47,32,40,35,200,0,11,200]},{"a":60656,"t":"byte","b":[2,10,128,2,40,242,11,182]},{"a":60664,"t":"byte","b":[2,9,148,2,41,158,8,46]},{"a":60672,"t":"byte","b":[0,0,0,0,0,0,3,208]},{"a":60680,"t":"byte","b":[0,14,48,0,42,128,0,40]},{"a":60688,"t":"byte","b":[220,0,130,48,0,43,96,0]},{"a":60696,"t":"byte","b":[137,80,0,254,80,0,143,176]},{"a":60704,"t":"byte","b":[0,40,224,0,42,128,0,128]},{"a":60712,"t":"byte","b":[160,47,15,42,165,207,236,229]},{"a":60720,"t":"byte","b":[192,204,237,8,15,224,10,128]},{"a":60728,"t":"byte","b":[160,2,170,128,50,32,0,141]},{"a":60736,"t":"byte","b":[0,0,0,0,0,0,0,7]},{"a":60744,"t":"byte","b":[192,0,12,176,0,2,168,0]},{"a":60752,"t":"byte","b":[55,40,0,12,130,0,9,232]},{"a":60760,"t":"byte","b":[0,5,98,0,5,191,0,14]},{"a":60768,"t":"byte","b":[242,0,11,40,0,2,168,248]},{"a":60776,"t":"byte","b":[10,2,90,168,240,91,59,243]},{"a":60784,"t":"byte","b":[123,51,3,11,240,32,10,2]},{"a":60792,"t":"byte","b":[160,2,170,128,0,8,140,185]},{"a":60800,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60808,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60816,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60824,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60832,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60840,"t":"byte","b":[15,112,0,40,192,0,42,32]},{"a":60848,"t":"byte","b":[0,163,220,2,137,160,8,166]},{"a":60856,"t":"byte","b":[224,2,37,122,10,45,112,40]},{"a":60864,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60872,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60880,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60888,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60896,"t":"byte","b":[0,0,0,0,0,0,0,13]},{"a":60904,"t":"byte","b":[240,0,3,40,0,8,168,0]},{"a":60912,"t":"byte","b":[55,202,0,10,98,128,11,154]},{"a":60920,"t":"byte","b":[32,173,88,128,13,120,160,201]},{"a":60928,"t":"byte","b":[0,0,0,0,0,0,40,0]},{"a":60936,"t":"byte","b":[0,180,47,112,150,40,48,158]},{"a":60944,"t":"byte","b":[42,0,162,170,168,130,141,112]},{"a":60952,"t":"byte","b":[130,140,8,50,160,242,50,140]},{"a":60960,"t":"byte","b":[62,50,170,2,11,3,200,131]},{"a":60968,"t":"byte","b":[192,248,128,0,240,128,8,62]},{"a":60976,"t":"byte","b":[32,0,14,32,8,14,32,2]},{"a":60984,"t":"byte","b":[2,8,136,10,10,2,2,2]},{"a":60992,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":61000,"t":"byte","b":[0,0,189,192,0,160,192,0]},{"a":61008,"t":"byte","b":[168,0,2,170,160,0,181,192]},{"a":61016,"t":"byte","b":[2,0,32,10,51,248,10,128]},{"a":61024,"t":"byte","b":[248,0,160,0,44,3,56,12]},{"a":61032,"t":"byte","b":[8,48,176,32,14,176,8,14]},{"a":61040,"t":"byte","b":[128,32,2,128,136,2,140,160]},{"a":61048,"t":"byte","b":[50,34,136,8,10,0,40,4]},{"a":61056,"t":"byte","b":[0,0,0,0,0,160,0,2]},{"a":61064,"t":"byte","b":[248,2,247,88,2,131,96,2]},{"a":61072,"t":"byte","b":[160,130,10,170,130,2,212,130]},{"a":61080,"t":"byte","b":[10,0,130,8,63,34,10,3]},{"a":61088,"t":"byte","b":[34,42,128,130,35,195,206,47]},{"a":61096,"t":"byte","b":[0,252,143,32,60,140,8,12]},{"a":61104,"t":"byte","b":[130,32,2,130,8,2,130,130]},{"a":61112,"t":"byte","b":[0,162,34,8,130,128,168,31]},{"a":61120,"t":"byte","b":[130,138,176,138,162,176,170,170]},{"a":61128,"t":"byte","b":[176,170,170,176,170,42,188,160]},{"a":61136,"t":"byte","b":[10,191,0,34,176,0,10,176]},{"a":61144,"t":"byte","b":[0,34,176,0,10,128,0,2]},{"a":61152,"t":"byte","b":[140,0,10,172,0,2,172,0]},{"a":61160,"t":"byte","b":[8,172,0,2,172,0,2,35]},{"a":61168,"t":"byte","b":[0,0,171,0,2,40,0,0]},{"a":61176,"t":"byte","b":[170,0,2,170,0,2,170,205]},{"a":61184,"t":"byte","b":[42,162,40,32,170,160,128,10]},{"a":61192,"t":"byte","b":[128,176,10,0,176,58,0,136]},{"a":61200,"t":"byte","b":[50,32,136,14,128,131,14,184]},{"a":61208,"t":"byte","b":[0,14,184,35,14,184,47,14]},{"a":61216,"t":"byte","b":[128,47,2,174,44,58,162,44]},{"a":61224,"t":"byte","b":[10,162,32,202,160,32,42,168]},{"a":61232,"t":"byte","b":[32,42,168,0,170,168,10,42]},{"a":61240,"t":"byte","b":[162,0,10,168,0,10,32,50]},{"a":61248,"t":"byte","b":[40,138,168,10,170,8,2,160]},{"a":61256,"t":"byte","b":[2,0,160,14,0,172,14,8]},{"a":61264,"t":"byte","b":[140,34,2,176,34,46,176,194]},{"a":61272,"t":"byte","b":[46,176,0,46,176,200,2,176]},{"a":61280,"t":"byte","b":[248,186,128,248,138,172,56,138]},{"a":61288,"t":"byte","b":[160,56,10,163,8,42,168,8]},{"a":61296,"t":"byte","b":[42,168,8,42,170,0,138,168]},{"a":61304,"t":"byte","b":[160,42,160,0,8,160,0,32]},{"a":61312,"t":"byte","b":[0,48,160,0,0,32,0,12]},{"a":61320,"t":"byte","b":[128,0,12,32,8,12,0,0]},{"a":61328,"t":"byte","b":[12,40,2,3,8,34,0,32]},{"a":61336,"t":"byte","b":[34,0,10,10,0,2,138,0]},{"a":61344,"t":"byte","b":[8,138,0,2,10,0,10,42]},{"a":61352,"t":"byte","b":[0,32,42,128,8,170,128,0]},{"a":61360,"t":"byte","b":[168,0,32,160,0,170,168,34]},{"a":61368,"t":"byte","b":[170,40,8,168,138,0,160,37]},{"a":61376,"t":"byte","b":[10,12,0,8,0,0,2,48]},{"a":61384,"t":"byte","b":[0,8,48,0,0,48,32,40]},{"a":61392,"t":"byte","b":[48,0,32,192,128,8,0,136]},{"a":61400,"t":"byte","b":[160,0,136,128,0,160,32,0]},{"a":61408,"t":"byte","b":[162,128,0,162,160,0,160,8]},{"a":61416,"t":"byte","b":[0,168,32,2,168,0,2,170]},{"a":61424,"t":"byte","b":[8,0,42,170,0,10,170,136]},{"a":61432,"t":"byte","b":[42,42,32,40,10,0,162,53]},{"a":61440,"t":"byte","b":[35,139,66,44,178,40,14,138]},{"a":61448,"t":"byte","b":[136,140,170,0,140,130,14,130]},{"a":61456,"t":"byte","b":[0,142,131,0,130,3,138,50]},{"a":61464,"t":"byte","b":[32,173,0,34,229,136,41,100]},{"a":61472,"t":"byte","b":[162,137,98,172,139,42,131,2]},{"a":61480,"t":"byte","b":[170,163,0,138,128,2,42,162]},{"a":61488,"t":"byte","b":[8,170,130,2,42,136,136,170]},{"a":61496,"t":"byte","b":[40,170,2,170,170,2,162,205]},{"a":61504,"t":"byte","b":[129,226,200,40,142,56,34,162]},{"a":61512,"t":"byte","b":[176,0,170,50,176,130,50,178]},{"a":61520,"t":"byte","b":[0,130,130,0,194,140,162,192]},{"a":61528,"t":"byte","b":[0,122,8,34,91,136,138,25]},{"a":61536,"t":"byte","b":[104,58,137,98,194,168,226,202]},{"a":61544,"t":"byte","b":[170,128,2,162,0,138,168,128]},{"a":61552,"t":"byte","b":[130,170,32,34,168,128,40,170]},{"a":61560,"t":"byte","b":[34,170,128,170,138,128,170,185]},{"a":61568,"l":"shapes_unreferenced","c":"Sprite shapes for pointers $C2 to $C4 (192 bytes): the third sprite of the player climbing (F + $2E, see climb_shapes). The same bytes as level 2's shapes_unreferenced.","t":"byte","b":[10,0,2,8,130,130,10,0]},{"a":61576,"t":"byte","b":[160,8,12,136,10,3,40,8]},{"a":61584,"t":"byte","b":[0,136,0,0,40,0,0,8]},{"a":61592,"t":"byte","b":[32,0,40,32,12,8,32,44]},{"a":61600,"t":"byte","b":[40,32,224,8,32,235,40,32]},{"a":61608,"t":"byte","b":[235,8,32,40,8,35,42,32]},{"a":61616,"t":"byte","b":[32,170,128,34,170,0,2,160]},{"a":61624,"t":"byte","b":[0,10,160,0,2,128,0,145]},{"a":61632,"t":"byte","b":[10,128,8,10,0,8,8,128]},{"a":61640,"t":"byte","b":[8,10,0,8,8,51,8,10]},{"a":61648,"t":"byte","b":[12,194,8,128,2,10,32,2]},{"a":61656,"t":"byte","b":[0,136,2,34,32,178,32,192]},{"a":61664,"t":"byte","b":[50,35,48,50,32,200,50,32]},{"a":61672,"t":"byte","b":[48,2,32,200,2,32,8,2]},{"a":61680,"t":"byte","b":[32,8,8,8,170,136,2,162]},{"a":61688,"t":"byte","b":[160,0,162,128,0,162,128,2]},{"a":61696,"t":"byte","b":[142,32,32,130,130,32,170,0]},{"a":61704,"t":"byte","b":[32,18,48,32,40,192,160,34]},{"a":61712,"t":"byte","b":[0,32,40,48,128,32,192,32]},{"a":61720,"t":"byte","b":[35,192,32,35,192,0,35,200]},{"a":61728,"t":"byte","b":[32,35,11,0,35,43,32,35]},{"a":61736,"t":"byte","b":[43,0,32,43,32,8,168,0]},{"a":61744,"t":"byte","b":[2,170,0,0,170,0,0,10]},{"a":61752,"t":"byte","b":[128,0,10,160,0,2,128,173]},{"a":61760,"t":"gap","n":64},{"a":61824,"l":"object_shapes","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $C6 to $CD (512 bytes): the objects of objects_step ($3297). object_wide_frames ($3466) uses $C6, $C8 and $CA and object_small_frames ($33F8) $CC and $CD; $C7, $C9 and $CB are not in either table. Pointer $C5 ($F140) is the blank sprite and has no data.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":61832,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":61840,"t":"byte","b":[0,2,0,40,191,0,191,255]},{"a":61848,"t":"byte","b":[2,255,255,3,255,255,3,253]},{"a":61856,"t":"byte","b":[255,0,255,254,0,253,170,0]},{"a":61864,"t":"byte","b":[189,170,0,191,10,0,63,0]},{"a":61872,"t":"byte","b":[3,254,0,15,250,0,15,10]},{"a":61880,"t":"byte","b":[0,12,2,178,0,0,162,171]},{"a":61888,"t":"byte","b":[0,0,0,0,8,0,0,36]},{"a":61896,"t":"byte","b":[0,0,60,0,168,191,0,255]},{"a":61904,"t":"byte","b":[190,208,247,191,240,253,191,240]},{"a":61912,"t":"byte","b":[253,175,224,255,238,0,255,232]},{"a":61920,"t":"byte","b":[0,253,224,0,189,192,0,173]},{"a":61928,"t":"byte","b":[192,0,175,240,0,163,252,0]},{"a":61936,"t":"byte","b":[160,15,0,160,11,0,160,3]},{"a":61944,"t":"byte","b":[0,128,0,0,128,0,0,117]},{"a":61952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":61960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":61968,"t":"byte","b":[0,3,0,0,191,3,63,255]},{"a":61976,"t":"byte","b":[3,255,255,2,255,255,0,255]},{"a":61984,"t":"byte","b":[126,0,255,254,0,255,218,0]},{"a":61992,"t":"byte","b":[191,218,0,175,202,2,191,0]},{"a":62000,"t":"byte","b":[2,188,0,10,63,3,10,15]},{"a":62008,"t":"byte","b":[211,10,0,240,8,0,0,157]},{"a":62016,"t":"byte","b":[0,176,0,0,188,0,0,191]},{"a":62024,"t":"byte","b":[208,0,190,240,252,191,240,247]},{"a":62032,"t":"byte","b":[191,192,253,175,0,253,239,240]},{"a":62040,"t":"byte","b":[255,234,128,255,224,0,255,192]},{"a":62048,"t":"byte","b":[0,247,128,0,183,128,0,191]},{"a":62056,"t":"byte","b":[128,0,191,168,0,190,170,128]},{"a":62064,"t":"byte","b":[252,2,128,240,0,0,192,0]},{"a":62072,"t":"byte","b":[0,0,0,0,0,0,0,157]},{"a":62080,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62088,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62096,"t":"byte","b":[0,10,0,2,255,0,63,255]},{"a":62104,"t":"byte","b":[0,255,255,3,255,255,3,253]},{"a":62112,"t":"byte","b":[254,2,255,255,0,255,106,0]},{"a":62120,"t":"byte","b":[255,106,0,191,194,0,47,128]},{"a":62128,"t":"byte","b":[0,15,0,0,44,0,0,60]},{"a":62136,"t":"byte","b":[0,0,61,0,0,15,0,205]},{"a":62144,"t":"byte","b":[0,8,0,0,36,0,0,60]},{"a":62152,"t":"byte","b":[0,0,191,0,190,190,208,247]},{"a":62160,"t":"byte","b":[191,240,253,191,240,253,175,240]},{"a":62168,"t":"byte","b":[255,239,224,255,234,128,255,224]},{"a":62176,"t":"byte","b":[0,173,192,0,173,192,0,173]},{"a":62184,"t":"byte","b":[128,0,175,0,0,15,0,0]},{"a":62192,"t":"byte","b":[11,0,0,11,0,0,3,0]},{"a":62200,"t":"byte","b":[0,3,64,0,2,192,0,171]},{"a":62208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62224,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62232,"t":"byte","b":[0,48,0,0,24,0,0,122]},{"a":62240,"t":"byte","b":[0,0,238,0,0,188,0,0]},{"a":62248,"t":"byte","b":[48,0,0,24,0,0,0,0]},{"a":62256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62264,"t":"byte","b":[0,0,0,0,0,0,0,134]},{"a":62272,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62280,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62288,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62296,"t":"byte","b":[0,8,0,0,108,0,0,252]},{"a":62304,"t":"byte","b":[0,0,40,0,0,126,0,0]},{"a":62312,"t":"byte","b":[108,0,0,32,0,0,0,0]},{"a":62320,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62328,"t":"byte","b":[0,0,0,0,0,0,0,102]},{"a":62336,"t":"gap","n":1088},{"a":63424,"l":"panel_bitmap","c":"The status panel's bitmap, which the raster interrupt irq_bottom switches on from line $CD (bitmap mode at $E000, multicolour): 40 cells wide, rows 19 to 24, 8 bytes a cell and 320 a row. The same bytes as level 2's panel_bitmap.","t":"byte","b":[0,45,175,190,171,175,235,251]},{"a":63432,"t":"byte","b":[0,173,171,235,235,237,253,189]},{"a":63440,"t":"byte","b":[0,162,139,141,141,143,136,163]},{"a":63448,"t":"byte","b":[0,160,200,200,36,100,212,80]},{"a":63456,"t":"byte","b":[0,8,13,7,2,2,1,1]},{"a":63464,"t":"byte","b":[0,8,8,56,44,32,176,144]},{"a":63472,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63480,"t":"byte","b":[0,2,2,2,2,2,2,3]},{"a":63488,"t":"byte","b":[0,162,139,141,136,141,139,162]},{"a":63496,"t":"byte","b":[0,179,173,188,0,180,213,83]},{"a":63504,"t":"byte","b":[0,186,186,186,186,185,165,133]},{"a":63512,"t":"byte","b":[0,0,0,0,0,0,128,128]},{"a":63520,"t":"byte","b":[0,11,2,0,0,0,0,0]},{"a":63528,"t":"byte","b":[0,189,173,173,189,237,47,47]},{"a":63536,"t":"byte","b":[0,175,174,170,170,171,175,189]},{"a":63544,"t":"byte","b":[0,170,170,170,170,170,234,234]},{"a":63552,"t":"byte","b":[0,186,255,255,255,255,255,255]},{"a":63560,"t":"byte","b":[0,176,252,204,236,220,252,252]},{"a":63568,"t":"byte","b":[0,0,0,191,10,10,2,2]},{"a":63576,"t":"byte","b":[0,0,0,171,255,255,255,255]},{"a":63584,"t":"byte","b":[0,42,186,208,144,130,65,64]},{"a":63592,"t":"byte","b":[0,179,172,12,0,0,12,48]},{"a":63600,"t":"byte","b":[0,191,149,170,0,42,0,8]},{"a":63608,"t":"byte","b":[0,170,255,85,0,85,0,1]},{"a":63616,"t":"byte","b":[0,170,255,85,0,85,0,0]},{"a":63624,"t":"byte","b":[0,128,218,79,5,64,1,5]},{"a":63632,"t":"byte","b":[0,2,253,85,171,11,167,159]},{"a":63640,"t":"byte","b":[0,170,171,170,174,174,190,0]},{"a":63648,"t":"byte","b":[0,175,187,174,187,174,187,0]},{"a":63656,"t":"byte","b":[0,170,170,170,234,170,234,0]},{"a":63664,"t":"byte","b":[0,184,234,186,238,250,234,0]},{"a":63672,"t":"byte","b":[0,136,32,136,34,136,162,8]},{"a":63680,"l":"image_row_0","c":"Row 0 of the pixel rows of pictures A and B: row 19, columns 32 to 37 of the panel bitmap (48 bytes). image_a_draw ($4765), image_b_draw ($47CE) and image_flash ($470C) write the first of their five 48-byte rows here; the other four are image_row_1 ($FA00), image_row_2 ($FB40), image_row_3 ($FC80) and image_row_4 ($FDC0).","t":"byte","b":[0,47,63,53,53,53,53,53],"x":[18237,18282,18387]},{"a":63688,"t":"byte","b":[0,170,170,245,245,245,244,244]},{"a":63696,"t":"byte","b":[0,170,170,0,12,48,0,15]},{"a":63704,"t":"byte","b":[0,170,170,0,0,0,0,192]},{"a":63712,"t":"byte","b":[0,170,170,175,111,111,47,31]},{"a":63720,"t":"byte","b":[0,172,168,88,88,88,88,88]},{"a":63728,"l":"panel_bitmap_1","c":"Row 19, columns 38 and 39, and row 20, columns 0 to 26: panel bitmap that no traced routine writes (232 bytes). The same bytes as level 2's panel_bitmap_1.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63736,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63744,"t":"byte","b":[163,190,186,249,245,181,249,190]},{"a":63752,"t":"byte","b":[175,107,91,90,86,90,106,174]},{"a":63760,"t":"byte","b":[176,39,7,7,12,3,14,14]},{"a":63768,"t":"byte","b":[8,232,252,252,0,85,255,0]},{"a":63776,"t":"byte","b":[2,8,8,32,32,255,85,0]},{"a":63784,"t":"byte","b":[32,32,224,176,128,85,255,0]},{"a":63792,"t":"byte","b":[0,0,0,0,0,170,255,0]},{"a":63800,"t":"byte","b":[0,0,0,0,0,170,255,0]},{"a":63808,"t":"byte","b":[0,0,0,0,0,170,255,0]},{"a":63816,"t":"byte","b":[0,0,0,0,0,170,255,0]},{"a":63824,"t":"byte","b":[10,2,2,0,0,224,96,146]},{"a":63832,"t":"byte","b":[160,160,168,172,178,10,42,63]},{"a":63840,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63848,"t":"byte","b":[46,30,11,3,3,11,14,14]},{"a":63856,"t":"byte","b":[181,245,253,253,251,234,234,170]},{"a":63864,"t":"byte","b":[181,183,181,213,213,213,85,85]},{"a":63872,"t":"byte","b":[170,170,170,170,170,254,87,84]},{"a":63880,"t":"byte","b":[168,168,168,168,168,168,253,0]},{"a":63888,"t":"byte","b":[2,0,46,55,55,151,85,0]},{"a":63896,"t":"byte","b":[170,42,2,130,130,194,95,0]},{"a":63904,"t":"byte","b":[188,191,191,191,191,191,85,0]},{"a":63912,"t":"byte","b":[0,0,0,0,0,0,170,0]},{"a":63920,"t":"byte","b":[8,12,4,4,12,8,170,0]},{"a":63928,"t":"byte","b":[10,43,41,173,189,191,255,0]},{"a":63936,"t":"byte","b":[2,11,11,47,63,63,255,0]},{"a":63944,"t":"byte","b":[187,255,255,255,192,42,149,21]},{"a":63952,"t":"byte","b":[191,111,91,91,91,91,91,91]},{"a":63960,"l":"timer_cells","c":"Row 20, columns 27 to 31 (40 bytes): draw_timer ($755D) draws the three timer digits into the cells at $F9D8, $F9E8 and $F9F0. The same bytes as level 2's timer_cells.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63968,"t":"byte","b":[0,182,0,0,0,182,0,0]},{"a":63976,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63984,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63992,"t":"byte","b":[34,40,34,40,34,40,34,40]},{"a":64000,"l":"image_row_1","c":"Row 1 of the pixel rows of pictures A and B (see $F8C0). The same bytes as level 2's image_row_1.","t":"byte","b":[47,47,37,36,32,32,32,32],"x":[18240,18288,18393]},{"a":64008,"t":"byte","b":[172,240,192,0,3,13,5,5]},{"a":64016,"t":"byte","b":[181,0,0,10,63,159,190,160]},{"a":64024,"t":"byte","b":[173,0,0,64,208,208,80,64]},{"a":64032,"t":"byte","b":[10,51,0,0,0,0,0,3]},{"a":64040,"t":"byte","b":[172,172,28,12,12,28,92,76]},{"a":64048,"l":"panel_bitmap_2","c":"Row 20, columns 38 and 39, and row 21, columns 0 to 2: panel bitmap that no traced routine writes (40 bytes). The same bytes as level 2's panel_bitmap_2.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64056,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64064,"t":"byte","b":[138,2,139,173,173,173,165,237]},{"a":64072,"t":"byte","b":[45,181,237,101,117,85,117,237]},{"a":64080,"t":"byte","b":[8,12,12,12,8,8,0,4]},{"a":64088,"l":"score_cells","c":"Row 21, columns 3 to 9 of the panel bitmap (56 bytes): draw_figures ($44FD) draws the seven score digits from $0A00 into these cells, 8 bytes each, from digit_glyphs ($4536).","t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64096,"t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64104,"t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64112,"t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64120,"t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64128,"t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64136,"t":"byte","b":[168,136,136,136,136,136,168,0]},{"a":64144,"l":"panel_bitmap_3","c":"Row 21, columns 10 to 16: panel bitmap that no traced routine writes (56 bytes). The same bytes as level 2's panel_bitmap_3.","t":"byte","b":[34,55,7,12,4,51,0,17]},{"a":64152,"t":"byte","b":[42,42,63,127,127,63,42,21]},{"a":64160,"t":"byte","b":[0,128,128,128,128,128,128,0]},{"a":64168,"t":"byte","b":[42,43,43,59,14,14,1,1]},{"a":64176,"t":"byte","b":[170,170,170,170,170,234,235,251]},{"a":64184,"t":"byte","b":[191,255,255,255,191,191,111,95]},{"a":64192,"t":"byte","b":[168,168,168,168,168,252,252,84]},{"a":64200,"l":"energy_cells","c":"Row 21, columns 17 to 24 of the panel bitmap (64 bytes): the eight cells of the energy bar, which draw_bar ($4449) writes.","t":"byte","b":[0,252,252,168,168,84,84,0],"x":[17608]},{"a":64208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64224,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64232,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64256,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64264,"l":"panel_bitmap_4","c":"Row 21, columns 25 to 31: panel bitmap that no traced routine writes (56 bytes). The same bytes as level 2's panel_bitmap_4.","t":"byte","b":[42,42,42,42,42,63,63,21]},{"a":64272,"t":"byte","b":[43,43,41,9,10,2,2,0]},{"a":64280,"t":"byte","b":[170,235,251,251,254,126,127,63]},{"a":64288,"t":"byte","b":[170,187,165,181,174,187,175,187]},{"a":64296,"t":"byte","b":[186,234,86,86,170,170,170,170]},{"a":64304,"t":"byte","b":[187,239,187,239,187,239,191,236]},{"a":64312,"t":"byte","b":[162,136,34,136,32,136,32,128]},{"a":64320,"l":"image_row_2","c":"Row 2 of the pixel rows of pictures A and B: row 21, columns 32 to 37 of the panel bitmap (48 bytes); see image_row_0 ($F8C0).","t":"byte","b":[44,47,47,47,47,47,47,45],"x":[18243,18294,18399]},{"a":64328,"t":"byte","b":[11,74,90,90,90,90,122,250]},{"a":64336,"t":"byte","b":[0,0,128,170,171,191,191,42]},{"a":64344,"t":"byte","b":[128,192,192,96,104,104,106,0]},{"a":64352,"t":"byte","b":[8,13,13,45,45,61,61,63]},{"a":64360,"t":"byte","b":[44,172,172,172,172,172,172,172]},{"a":64368,"l":"panel_bitmap_5","c":"Row 21, columns 38 and 39, and row 22, columns 0 to 31: panel bitmap that no traced routine writes (272 bytes). The same bytes as level 2's panel_bitmap_5.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64376,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64384,"t":"byte","b":[174,111,107,91,90,90,168,239]},{"a":64392,"t":"byte","b":[171,138,130,171,175,189,189,237]},{"a":64400,"t":"byte","b":[11,9,15,0,0,0,0,0]},{"a":64408,"t":"byte","b":[0,170,255,0,63,42,42,25]},{"a":64416,"t":"byte","b":[0,170,255,0,255,170,170,153]},{"a":64424,"t":"byte","b":[0,170,255,0,255,170,170,153]},{"a":64432,"t":"byte","b":[0,170,255,0,255,170,170,153]},{"a":64440,"t":"byte","b":[0,170,255,0,255,170,170,153]},{"a":64448,"t":"byte","b":[0,170,255,0,255,170,170,153]},{"a":64456,"t":"byte","b":[0,170,255,0,255,170,170,153]},{"a":64464,"t":"byte","b":[179,114,160,0,0,0,0,0]},{"a":64472,"t":"byte","b":[0,42,63,21,0,0,0,0]},{"a":64480,"t":"byte","b":[0,0,0,0,0,0,0,11]},{"a":64488,"t":"byte","b":[2,2,14,5,53,23,7,9]},{"a":64496,"t":"byte","b":[190,183,215,213,87,85,87,95]},{"a":64504,"t":"byte","b":[181,213,85,85,85,85,85,85]},{"a":64512,"t":"byte","b":[168,254,255,0,192,255,255,255]},{"a":64520,"t":"byte","b":[0,174,85,1,1,84,84,84]},{"a":64528,"t":"byte","b":[0,175,85,68,29,46,46,4]},{"a":64536,"t":"byte","b":[0,174,85,20,4,64,64,0]},{"a":64544,"t":"byte","b":[0,170,255,192,127,127,127,112]},{"a":64552,"t":"byte","b":[0,170,255,0,240,240,252,12]},{"a":64560,"t":"byte","b":[0,174,93,8,4,1,6,0]},{"a":64568,"t":"byte","b":[0,170,255,85,1,84,249,31]},{"a":64576,"t":"byte","b":[0,47,10,0,0,8,12,12]},{"a":64584,"t":"byte","b":[42,170,34,196,196,228,185,62]},{"a":64592,"t":"byte","b":[2,3,3,2,0,0,0,64]},{"a":64600,"t":"byte","b":[175,207,219,134,1,0,5,5]},{"a":64608,"t":"byte","b":[175,191,239,191,255,31,80,85]},{"a":64616,"t":"byte","b":[171,174,171,174,187,175,0,51]},{"a":64624,"t":"byte","b":[191,252,179,204,240,192,0,0]},{"a":64632,"t":"byte","b":[0,128,0,0,0,0,0,0]},{"a":64640,"l":"image_row_3","c":"Row 3 of the pixel rows of pictures A and B: row 22, columns 32 to 37 of the panel bitmap (48 bytes); see image_row_0 ($F8C0).","t":"byte","b":[47,44,32,32,32,32,32,32],"x":[18246,18300,18405]},{"a":64648,"t":"byte","b":[139,11,35,50,56,44,46,11]},{"a":64656,"t":"byte","b":[191,191,190,40,191,63,11,128]},{"a":64664,"t":"byte","b":[168,170,184,0,168,162,137,0]},{"a":64672,"t":"byte","b":[42,43,43,108,224,128,0,0]},{"a":64680,"t":"byte","b":[184,168,104,104,40,24,8,8]},{"a":64688,"l":"panel_bitmap_6","c":"Row 22, columns 38 and 39, and row 23, columns 0 to 31: panel bitmap that no traced routine writes (272 bytes). The same bytes as level 2's panel_bitmap_6.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64696,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64704,"t":"byte","b":[171,171,250,250,190,42,2,0]},{"a":64712,"t":"byte","b":[171,170,155,111,171,85,69,0]},{"a":64720,"t":"byte","b":[128,192,80,151,13,0,128,0]},{"a":64728,"t":"byte","b":[46,46,29,25,25,25,0,0]},{"a":64736,"t":"byte","b":[187,187,187,153,221,221,0,0]},{"a":64744,"t":"byte","b":[187,187,187,187,191,221,0,0]},{"a":64752,"t":"byte","b":[187,185,157,157,157,221,0,0]},{"a":64760,"t":"byte","b":[187,187,187,251,217,221,0,0]},{"a":64768,"t":"byte","b":[187,187,187,185,157,221,0,0]},{"a":64776,"t":"byte","b":[187,185,153,157,221,221,0,0]},{"a":64784,"t":"byte","b":[176,37,56,10,3,0,0,0]},{"a":64792,"t":"byte","b":[170,130,0,3,253,0,0,0]},{"a":64800,"t":"byte","b":[44,224,144,197,0,0,0,0]},{"a":64808,"t":"byte","b":[182,37,21,90,42,0,0,0]},{"a":64816,"t":"byte","b":[171,150,149,85,85,0,0,0]},{"a":64824,"t":"byte","b":[175,191,191,255,239,0,0,0]},{"a":64832,"t":"byte","b":[186,170,186,186,190,0,0,0]},{"a":64840,"t":"byte","b":[168,136,184,168,160,0,0,0]},{"a":64848,"t":"byte","b":[181,181,181,181,134,181,46,0]},{"a":64856,"t":"byte","b":[176,176,176,176,128,176,192,0]},{"a":64864,"t":"byte","b":[179,179,179,179,177,0,0,0]},{"a":64872,"t":"byte","b":[168,184,248,218,218,0,0,0]},{"a":64880,"t":"byte","b":[0,2,11,0,0,0,0,0]},{"a":64888,"t":"byte","b":[11,170,246,11,131,2,0,0]},{"a":64896,"t":"byte","b":[8,32,48,48,32,0,0,0]},{"a":64904,"t":"byte","b":[11,0,0,0,0,0,0,0]},{"a":64912,"t":"byte","b":[172,107,25,2,2,3,8,8]},{"a":64920,"t":"byte","b":[10,2,192,112,16,44,4,4]},{"a":64928,"t":"byte","b":[170,170,170,170,42,0,0,0]},{"a":64936,"t":"byte","b":[136,162,168,162,168,0,0,0]},{"a":64944,"t":"byte","b":[128,32,136,34,136,0,0,0]},{"a":64952,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64960,"l":"image_row_4","c":"Row 4 of the pixel rows of pictures A and B (see $F8C0). The same bytes as level 2's image_row_4.","t":"byte","b":[32,32,42,58,0,0,0,0],"x":[18249,18306,18411]},{"a":64968,"t":"byte","b":[10,2,255,255,0,0,0,0]},{"a":64976,"t":"byte","b":[128,160,255,255,0,0,0,0]},{"a":64984,"t":"byte","b":[0,0,170,170,0,0,0,0]},{"a":64992,"t":"byte","b":[0,0,170,170,0,0,0,0]},{"a":65000,"t":"byte","b":[8,8,168,172,0,0,0,0]},{"a":65008,"l":"panel_bitmap_7","c":"Row 23, columns 38 and 39, and all of row 24 (336 bytes): panel bitmap that no traced routine writes. The same bytes as level 2's panel_bitmap_7.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":65016,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":65024,"l":"KERNAL_SETLFSj","t":"byte","b":[0,0,136,0,2,32,0,8],"x":[7227,19637,19642,19664,22806]},{"a":65032,"t":"byte","b":[40,0,32,0,0,10,40,10]},{"a":65040,"t":"byte","b":[136,0,8,42,0,2,168,0]},{"a":65048,"t":"byte","b":[10,170,32,0,42,32,2,170]},{"a":65056,"t":"byte","b":[32,2,162,32,2,168,32,10]},{"a":65064,"t":"byte","b":[136,40,10,32,8,42,130,0]},{"a":65072,"t":"byte","b":[40,10,128,32,170,128,160,10]},{"a":65080,"t":"byte","b":[8,128,0,40,128,0,0,173]},{"a":65088,"t":"byte","b":[34,0,0,8,128,0,40,32]},{"a":65096,"t":"byte","b":[0,0,8,0,40,160,0,0]},{"a":65104,"t":"byte","b":[34,160,0,168,32,0,42,128]},{"a":65112,"t":"byte","b":[8,170,160,8,168,0,8,170]},{"a":65120,"t":"byte","b":[128,8,138,128,8,42,128,40]},{"a":65128,"t":"byte","b":[34,160,32,8,160,0,130,168]},{"a":65136,"t":"byte","b":[2,160,40,2,170,8,32,160]},{"a":65144,"t":"byte","b":[10,40,0,2,0,0,2,20]},{"a":65152,"t":"byte","b":[0,3,220,0,10,48,0,10]},{"a":65160,"t":"byte","b":[136,0,8,247,0,35,64,0]},{"a":65168,"t":"byte","b":[9,184,0,169,92,2,203,94]},{"a":65176,"t":"byte","b":[0,178,210,2,172,136,8,162]},{"a":65184,"t":"byte","b":[168,35,42,170,43,226,106,35]},{"a":65192,"t":"byte","b":[140,105,44,242,233,44,2,171]},{"a":65200,"t":"byte","b":[32,8,170,8,32,136,10,160]},{"a":65208,"t":"byte","b":[128,2,131,128,2,3,128,240]},{"a":65216,"t":"byte","b":[55,192,0,12,160,0,34,160]},{"a":65224,"t":"byte","b":[0,223,32,0,1,200,0,46]},{"a":65232,"t":"byte","b":[96,0,53,106,0,181,227,128]},{"a":65240,"t":"byte","b":[135,142,0,34,58,128,42,138]},{"a":65248,"t":"byte","b":[32,170,168,200,169,139,232,105]},{"a":65256,"t":"byte","b":[50,200,107,143,56,234,128,56]},{"a":65264,"t":"byte","b":[170,32,8,34,8,32,2,10]},{"a":65272,"t":"byte","b":[160,2,194,128,2,192,128,13]},{"a":65280,"t":"byte","b":[0,0,128,0,12,128,8,14]},{"a":65288,"t":"byte","b":[128,8,2,160,8,50,128,8]},{"a":65296,"t":"byte","b":[50,136,0,58,160,32,202,162]},{"a":65304,"t":"byte","b":[32,234,170,143,42,170,128,168]},{"a":65312,"t":"byte","b":[170,178,168,42,130,160,42,10]},{"a":65320,"t":"byte","b":[128,40,42,0,168,136,160,168]},{"a":65328,"t":"byte","b":[40,10,163,32,0,162,224,0]},{"a":65336,"t":"byte","b":[136,0,0,160,128,0,0,249]},{"a":65344,"l":"marker_shapes","c":"Shape address = $C000 + 64 x pointer. Sprite shapes for pointers $FD ($FF40) and $FE ($FF80), 128 bytes: $FE is the first frame of the exit marker, the pointer that marker_frames ($3518) holds for 24 steps. No table found sets $FD.","t":"byte","b":[2,0,0,2,48,0,2,176]},{"a":65352,"t":"byte","b":[32,10,128,32,2,140,32,34]},{"a":65360,"t":"byte","b":[140,32,10,172,0,138,163,8]},{"a":65368,"t":"byte","b":[170,171,8,170,168,242,170,42]},{"a":65376,"t":"byte","b":[2,168,42,142,168,10,130,40]},{"a":65384,"t":"byte","b":[2,160,42,0,168,42,10,34]},{"a":65392,"t":"byte","b":[202,160,40,138,0,8,34,0]},{"a":65400,"t":"byte","b":[11,10,0,0,0,0,2,240]},{"a":65408,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":65416,"t":"byte","b":[0,0,3,0,0,3,0,0]},{"a":65424,"t":"byte","b":[3,192,0,3,192,255,255,240]},{"a":65432,"t":"byte","b":[213,213,240,223,221,252,223,221]},{"a":65440,"t":"byte","b":[255,221,221,254,213,213,250,255]},{"a":65448,"t":"byte","b":[255,248,170,171,232,170,171,224]},{"a":65456,"t":"byte","b":[170,171,160,0,3,128,0,2]},{"a":65464,"t":"byte","b":[128,0,2,0,0,2,0,38]},{"a":65472,"t":"gap","n":64}]}