{"schema":1,"platform":"c64","game":"space-rogue","part":"engine","title":"Space Rogue","build":"Origin Systems' two-sided disk, G64 images of side 1 (SHA-256 f8f4bdd5\u2026) and side 2 (944b0898\u2026) from the C64 Preservation Project's collection (orientation.md)","symbols_sha256":"c0e19b0f0014b07754fa9eff59aa9444f6b2fc6f6862a34f32201bdd9d9c4cef","snapshot":{"file":"work/play-flight.vsf","sha256":"93a83d1278501605ddff28be6324d0ae54e5920191d10b48d7428a8933413581"},"index":[{"a":0,"n":"start","k":"variable","len":1,"c":true},{"a":1,"n":"zp_port","k":"variable","len":1,"c":true},{"a":2,"n":"zp_02","k":"variable","len":1,"c":true},{"a":3,"n":"key_count","k":"variable","len":1,"c":true},{"a":4,"n":"key_room","k":"variable","len":1,"c":true},{"a":5,"n":"key_buffer","k":"variable","len":1,"c":true},{"a":6,"n":"zpf_06","k":"table","len":9,"c":true},{"a":15,"n":"key_last","k":"variable","len":1,"c":true},{"a":16,"n":"key_held","k":"variable","len":1,"c":true},{"a":17,"n":"key_delay","k":"variable","len":1,"c":true},{"a":18,"n":"key_rate","k":"variable","len":1,"c":true},{"a":19,"n":"key_ctrl","k":"variable","len":1,"c":true},{"a":20,"n":"key_lshift","k":"variable","len":1,"c":true},{"a":21,"n":"key_rshift","k":"variable","len":1,"c":true},{"a":22,"n":"frame_count","k":"variable","len":1,"c":true},{"a":23,"n":"matrix_mask","k":"variable","len":1,"c":true},{"a":24,"n":"matrix_value","k":"variable","len":1,"c":true},{"a":25,"n":"cell_ptr","k":"variable","len":1,"c":true},{"a":26,"n":"zpa_1A","k":"variable","len":1,"c":true},{"a":27,"n":"cell_ptr2","k":"variable","len":1,"c":true},{"a":28,"n":"zpa_1C","k":"variable","len":1,"c":true},{"a":29,"n":"voice_mask","k":"variable","len":1,"c":true},{"a":30,"n":"hum_on","k":"variable","len":1,"c":true},{"a":31,"n":"voice_wave","k":"table","len":3,"c":true},{"a":34,"n":"voice_length","k":"table","len":3,"c":true},{"a":37,"n":"voice_gateoff","k":"table","len":3,"c":true},{"a":40,"n":"voice_timer","k":"table","len":3,"c":true},{"a":43,"n":"voice_repeats","k":"table","len":3,"c":true},{"a":46,"n":"frame_lag","k":"table","len":10,"c":true},{"a":56,"n":"bitmap_ptr","k":"variable","len":1,"c":true},{"a":57,"n":"zpa_39","k":"variable","len":1,"c":true},{"a":58,"n":"draw_buffer","k":"variable","len":1,"c":true},{"a":59,"n":"clear_byte","k":"variable","len":2,"c":true},{"a":61,"n":"pattern_even","k":"variable","len":1,"c":true},{"a":62,"n":"pattern_odd","k":"table","len":3,"c":true},{"a":65,"n":"window_width","k":"variable","len":1,"c":true},{"a":66,"n":"window_height","k":"variable","len":1,"c":true},{"a":67,"n":"window_width1","k":"variable","len":1,"c":true},{"a":68,"n":"window_height1","k":"variable","len":1,"c":true},{"a":69,"n":"span_left","k":"variable","len":1,"c":true},{"a":70,"n":"zpa_46","k":"variable","len":1,"c":true},{"a":71,"n":"clip_x1","k":"variable","len":1,"c":true},{"a":72,"n":"zpa_48","k":"variable","len":1,"c":true},{"a":73,"n":"clip_x2","k":"variable","len":1,"c":true},{"a":74,"n":"zpa_4A","k":"variable","len":1,"c":true},{"a":75,"n":"clip_row","k":"variable","len":1,"c":true},{"a":76,"n":"zpa_4C","k":"variable","len":1,"c":true},{"a":77,"n":"object_size","k":"variable","len":2,"c":true},{"a":79,"n":"cursor_col","k":"variable","len":1,"c":true},{"a":80,"n":"cursor_row","k":"variable","len":1,"c":true},{"a":81,"n":"screen_x","k":"variable","len":1,"c":true},{"a":82,"n":"zpa_52","k":"variable","len":1,"c":true},{"a":83,"n":"screen_y","k":"variable","len":1,"c":true},{"a":84,"n":"zpa_54","k":"variable","len":1,"c":true},{"a":85,"n":"clip_count","k":"variable","len":1,"c":true},{"a":86,"n":"window_cx","k":"variable","len":1,"c":true},{"a":87,"n":"window_cy","k":"variable","len":1,"c":true},{"a":88,"n":"camera_pos_ptr","k":"variable","len":1,"c":true},{"a":89,"n":"zpa_59","k":"variable","len":1,"c":true},{"a":90,"n":"camera_orient_ptr","k":"variable","len":1,"c":true},{"a":91,"n":"zpa_5B","k":"variable","len":1,"c":true},{"a":92,"n":"drawn_slot","k":"variable","len":1,"c":true},{"a":93,"n":"drawn_type","k":"variable","len":1,"c":true},{"a":94,"n":"pass_count","k":"variable","len":1,"c":true},{"a":95,"n":"acc_lo","k":"variable","len":1,"c":true},{"a":96,"n":"acc_mid","k":"variable","len":1,"c":true},{"a":97,"n":"acc_hi","k":"variable","len":1,"c":true},{"a":98,"n":"arg_lo","k":"variable","len":1,"c":true},{"a":99,"n":"arg_mid","k":"variable","len":1,"c":true},{"a":100,"n":"arg_sign","k":"variable","len":1,"c":true},{"a":101,"n":"axpy_s","k":"variable","len":1,"c":true},{"a":102,"n":"zpa_66","k":"variable","len":1,"c":true},{"a":103,"n":"zpa_67","k":"variable","len":1,"c":true},{"a":104,"n":"plane_x","k":"variable","len":1,"c":true},{"a":105,"n":"zpa_69","k":"variable","len":1,"c":true},{"a":106,"n":"zpa_6A","k":"variable","len":1,"c":true},{"a":107,"n":"scratch_vec","k":"variable","len":1,"c":true},{"a":108,"n":"f_006C","k":"variable","len":1,"c":true},{"a":109,"n":"a_006D","k":"variable","len":1,"c":true},{"a":110,"n":"a_006E","k":"variable","len":1,"c":true},{"a":111,"n":"zpa_6F","k":"variable","len":1,"c":true},{"a":112,"n":"zpa_70","k":"variable","len":1,"c":true},{"a":113,"n":"a_0071","k":"variable","len":1,"c":true},{"a":114,"n":"zpa_72","k":"variable","len":1,"c":true},{"a":115,"n":"zpa_73","k":"variable","len":1,"c":true},{"a":116,"n":"src1_ptr","k":"variable","len":1,"c":true},{"a":117,"n":"zpa_75","k":"variable","len":1,"c":true},{"a":118,"n":"src2_ptr","k":"variable","len":1,"c":true},{"a":119,"n":"zpa_77","k":"variable","len":1,"c":true},{"a":120,"n":"dest_ptr","k":"variable","len":1,"c":true},{"a":121,"n":"zpa_79","k":"variable","len":1,"c":true},{"a":122,"n":"model_ptr","k":"variable","len":1,"c":true},{"a":123,"n":"zpa_7B","k":"variable","len":1,"c":true},{"a":124,"n":"tac_mode","k":"table","len":4,"c":true},{"a":128,"n":"tmp80","k":"variable","len":1,"c":true},{"a":129,"n":"tmp81","k":"variable","len":1,"c":true},{"a":130,"n":"tmp82","k":"variable","len":1,"c":true},{"a":131,"n":"tmp83","k":"variable","len":1,"c":true},{"a":132,"n":"tmp84","k":"variable","len":1,"c":true},{"a":133,"n":"tmp85","k":"variable","len":1,"c":true},{"a":134,"n":"tmp86","k":"variable","len":1,"c":true},{"a":135,"n":"tmp87","k":"variable","len":1,"c":true},{"a":136,"n":"tmp88","k":"variable","len":1,"c":true},{"a":137,"n":"tmp89","k":"variable","len":1,"c":true},{"a":138,"n":"tmp8A","k":"variable","len":1,"c":true},{"a":139,"n":"tmp8B","k":"variable","len":1,"c":true},{"a":140,"n":"tmp8C","k":"variable","len":1,"c":true},{"a":141,"n":"tmp8D","k":"variable","len":1,"c":true},{"a":142,"n":"tmp8E","k":"variable","len":1,"c":true},{"a":143,"n":"tmp8F","k":"variable","len":1,"c":true},{"a":144,"n":"tmp90","k":"variable","len":1,"c":true},{"a":145,"n":"tmp91","k":"variable","len":1,"c":true},{"a":146,"n":"tmp92","k":"variable","len":2,"c":true},{"a":148,"n":"tmp94","k":"variable","len":1,"c":true},{"a":149,"n":"tmp95","k":"variable","len":1,"c":true},{"a":150,"n":"tmp96","k":"variable","len":1,"c":true},{"a":151,"n":"tmp97","k":"variable","len":1,"c":true},{"a":152,"n":"tmp98","k":"variable","len":1,"c":true},{"a":153,"n":"tmp99","k":"variable","len":1,"c":true},{"a":154,"n":"model_inited","k":"variable","len":1,"c":true},{"a":155,"n":"model_points","k":"variable","len":1,"c":true},{"a":156,"n":"model_refs","k":"variable","len":1,"c":true},{"a":157,"n":"model_normals","k":"variable","len":1,"c":true},{"a":158,"n":"model_polys","k":"variable","len":1,"c":true},{"a":159,"n":"model_axes","k":"variable","len":1,"c":true},{"a":160,"n":"model_reflist","k":"variable","len":1,"c":true},{"a":161,"n":"zpa_A1","k":"variable","len":1,"c":true},{"a":162,"n":"model_axisidx","k":"variable","len":1,"c":true},{"a":163,"n":"zpa_A3","k":"variable","len":1,"c":true},{"a":164,"n":"model_axisvec","k":"variable","len":1,"c":true},{"a":165,"n":"zpa_A5","k":"variable","len":1,"c":true},{"a":166,"n":"model_parents","k":"variable","len":2,"c":true},{"a":168,"n":"model_refpts","k":"variable","len":1,"c":true},{"a":169,"n":"zpa_A9","k":"variable","len":1,"c":true},{"a":170,"n":"model_normvec","k":"variable","len":1,"c":true},{"a":171,"n":"zpa_AB","k":"variable","len":1,"c":true},{"a":172,"n":"model_normref","k":"variable","len":2,"c":true},{"a":174,"n":"model_planes","k":"variable","len":2,"c":true},{"a":176,"n":"model_polynorm","k":"variable","len":2,"c":true},{"a":178,"n":"model_backcol","k":"variable","len":1,"c":true},{"a":179,"n":"zpa_B3","k":"variable","len":1,"c":true},{"a":180,"n":"model_frontcol","k":"variable","len":1,"c":true},{"a":181,"n":"zpa_B5","k":"variable","len":1,"c":true},{"a":182,"n":"model_vertlists","k":"variable","len":1,"c":true},{"a":183,"n":"zpa_B7","k":"variable","len":1,"c":true},{"a":184,"n":"model_vertcounts","k":"variable","len":1,"c":true},{"a":185,"n":"zpa_B9","k":"variable","len":1,"c":true},{"a":186,"n":"model_groups","k":"variable","len":2,"c":true},{"a":188,"n":"model_groupsizes","k":"variable","len":1,"c":true},{"a":189,"n":"zpa_BD","k":"table","len":9,"c":true},{"a":198,"n":"slot_a","k":"variable","len":1,"c":true},{"a":199,"n":"slot_b","k":"variable","len":1,"c":true},{"a":200,"n":"radius_lo","k":"variable","len":1,"c":true},{"a":201,"n":"radius_hi","k":"variable","len":1,"c":true},{"a":202,"n":"zpa_CA","k":"variable","len":1,"c":true},{"a":203,"n":"zpa_CB","k":"variable","len":1,"c":true},{"a":204,"n":"zpa_CC","k":"table","len":4,"c":true},{"a":208,"n":"ai_dist","k":"variable","len":1,"c":true},{"a":209,"n":"zpa_D1","k":"variable","len":1,"c":true},{"a":210,"n":"ai_dot","k":"variable","len":1,"c":true},{"a":211,"n":"zpa_D3","k":"variable","len":1,"c":true},{"a":212,"n":"zpa_D4","k":"variable","len":1,"c":true},{"a":213,"n":"ai_slot","k":"table","len":43,"c":true},{"a":788,"n":"irq_vector","k":"variable","len":1,"c":true},{"a":789,"n":"a_0315","k":"variable","len":1,"c":true},{"a":790,"n":"brk_vector","k":"variable","len":1,"c":true},{"a":791,"n":"a_0317","k":"variable","len":1,"c":true},{"a":792,"n":"nmi_vector","k":"variable","len":1,"c":true},{"a":793,"n":"a_0319","k":"table","len":64,"c":true},{"a":1024,"n":"sr_start","k":"routine","len":3,"c":true},{"a":1027,"n":"slot_missile","k":"table","len":6,"c":true},{"a":1033,"n":"slot_damage","k":"table","len":6,"c":true},{"a":1039,"n":"slot_cooldown","k":"table","len":6,"c":true},{"a":1045,"n":"slot_speed","k":"table","len":6,"c":true},{"a":1051,"n":"slot_ai_state","k":"table","len":6,"c":true},{"a":1057,"n":"slot_label","k":"variable","len":1,"c":true},{"a":1058,"n":"f_0422","k":"variable","len":1,"c":true},{"a":1059,"n":"f_0423","k":"table","len":16,"c":true},{"a":1075,"n":"slot_faction","k":"table","len":6,"c":true},{"a":1081,"n":"slot_attacker","k":"table","len":6,"c":true},{"a":1087,"n":"slot_tactic","k":"table","len":6,"c":true},{"a":1093,"n":"slot_target","k":"table","len":6,"c":true},{"a":1099,"n":"slot_orient","k":"table","len":64,"c":true},{"a":1288,"n":"slot_pitch","k":"table","len":7,"c":true},{"a":1295,"n":"slot_roll","k":"table","len":7,"c":true},{"a":1302,"n":"slot_turn","k":"table","len":7,"c":true},{"a":1309,"n":"slot_armour","k":"variable","len":1,"c":true},{"a":1310,"n":"f_051E","k":"table","len":39,"c":true},{"a":1349,"n":"slot_velocity","k":"variable","len":1,"c":true},{"a":1350,"n":"f_0546","k":"variable","len":1,"c":true},{"a":1351,"n":"f_0547","k":"variable","len":1,"c":true},{"a":1352,"n":"a_0548","k":"table","len":3,"c":true},{"a":1355,"n":"a_054B","k":"table","len":64,"c":true},{"a":1529,"n":"slot_in_use","k":"table","len":20,"c":true},{"a":1549,"n":"slot_type","k":"table","len":20,"c":true},{"a":1569,"n":"slot_onscreen","k":"table","len":20,"c":true},{"a":1589,"n":"slot_solid","k":"table","len":20,"c":true},{"a":1609,"n":"slot_drawn","k":"table","len":20,"c":true},{"a":1629,"n":"slot_position","k":"table","len":6,"c":true},{"a":1635,"n":"a_0663","k":"variable","len":1,"c":true},{"a":1636,"n":"a_0664","k":"variable","len":1,"c":true},{"a":1637,"n":"a_0665","k":"variable","len":1,"c":true},{"a":1638,"n":"slot_positions_rest","k":"table","len":171,"c":true},{"a":1809,"n":"player_name","k":"table","len":12,"c":true},{"a":1821,"n":"cur_system","k":"variable","len":1,"c":true},{"a":1822,"n":"cur_sector_x","k":"variable","len":1,"c":true},{"a":1823,"n":"cur_sector_y","k":"variable","len":1,"c":true},{"a":1824,"n":"clock_hours","k":"variable","len":1,"c":true},{"a":1825,"n":"clock_day","k":"variable","len":1,"c":true},{"a":1826,"n":"clock_month","k":"variable","len":1,"c":true},{"a":1827,"n":"clock_year","k":"variable","len":1,"c":true},{"a":1828,"n":"days_elapsed","k":"variable","len":1,"c":true},{"a":1829,"n":"a_0725","k":"variable","len":1,"c":true},{"a":1830,"n":"bounty","k":"variable","len":1,"c":true},{"a":1831,"n":"a_0727","k":"variable","len":1,"c":true},{"a":1832,"n":"credits","k":"variable","len":1,"c":true},{"a":1833,"n":"a_0729","k":"variable","len":1,"c":true},{"a":1834,"n":"rank","k":"variable","len":1,"c":true},{"a":1835,"n":"rank_points","k":"variable","len":1,"c":true},{"a":1836,"n":"dest_x","k":"variable","len":1,"c":true},{"a":1837,"n":"dest_y","k":"variable","len":1,"c":true},{"a":1838,"n":"standings","k":"table","len":3,"c":true},{"a":1841,"n":"missile_count","k":"variable","len":1,"c":true},{"a":1842,"n":"missiles_sm1","k":"variable","len":1,"c":true},{"a":1843,"n":"missiles_nova","k":"variable","len":1,"c":true},{"a":1844,"n":"missiles_torp","k":"variable","len":1,"c":true},{"a":1845,"n":"ship_stats","k":"variable","len":1,"c":true},{"a":1846,"n":"a_0736","k":"variable","len":1,"c":true},{"a":1847,"n":"a_0737","k":"variable","len":1,"c":true},{"a":1848,"n":"a_0738","k":"variable","len":1,"c":true},{"a":1849,"n":"a_0739","k":"variable","len":1,"c":true},{"a":1850,"n":"a_073A","k":"variable","len":1,"c":true},{"a":1851,"n":"engine_thrust","k":"variable","len":1,"c":true},{"a":1852,"n":"a_073C","k":"variable","len":1,"c":true},{"a":1853,"n":"item_stealth_box","k":"variable","len":1,"c":true},{"a":1854,"n":"item_beam_lock","k":"variable","len":1,"c":true},{"a":1855,"n":"item_turbo_thruster","k":"variable","len":1,"c":true},{"a":1856,"n":"item_repair_droid","k":"variable","len":1,"c":true},{"a":1857,"n":"item_null_damper","k":"variable","len":1,"c":true},{"a":1858,"n":"item_key_card","k":"variable","len":1,"c":true},{"a":1859,"n":"item_manchi_egg","k":"table","len":10,"c":true},{"a":1869,"n":"item_pilots_license","k":"variable","len":1,"c":true},{"a":1870,"n":"item_forged_papers","k":"variable","len":1,"c":true},{"a":1871,"n":"item_amoebic_lenses","k":"table","len":3,"c":true},{"a":1874,"n":"item_on_map","k":"table","len":20,"c":true},{"a":1894,"n":"f_0766","k":"variable","len":1,"c":true},{"a":1895,"n":"cargo_kind","k":"table","len":8,"c":true},{"a":1903,"n":"cargo_paid","k":"table","len":8,"c":true},{"a":1911,"n":"cargo_slots","k":"variable","len":1,"c":true},{"a":1912,"n":"base_file","k":"variable","len":1,"c":true},{"a":1913,"n":"base_file_system","k":"variable","len":1,"c":true},{"a":1914,"n":"base_file_number","k":"variable","len":2,"c":true},{"a":1916,"n":"danger","k":"variable","len":1,"c":true},{"a":1917,"n":"class_weights","k":"table","len":5,"c":true},{"a":1922,"n":"special_entries","k":"variable","len":1,"c":true},{"a":1923,"n":"shot_a_base","k":"variable","len":1,"c":true},{"a":1924,"n":"rumour_states","k":"table","len":10,"c":true},{"a":1934,"n":"plot_flags","k":"table","len":12,"c":true},{"a":1946,"n":"kills_079A","k":"variable","len":1,"c":true},{"a":1947,"n":"a_079B","k":"variable","len":1,"c":true},{"a":1948,"n":"a_079C","k":"table","len":18,"c":true},{"a":1966,"n":"daily_lists","k":"table","len":14,"c":true},{"a":1980,"n":"file_names","k":"table","len":68,"c":true},{"a":2048,"n":"file_names_2","k":"table","len":50,"c":true},{"a":2098,"n":"surrendered","k":"variable","len":1,"c":true},{"a":2099,"n":"taunted","k":"variable","len":1,"c":true},{"a":2100,"n":"gravity_warned","k":"variable","len":1,"c":true},{"a":2101,"n":"killer","k":"variable","len":1,"c":true},{"a":2102,"n":"missile_reload","k":"variable","len":1,"c":true},{"a":2103,"n":"touched","k":"variable","len":1,"c":true},{"a":2104,"n":"in_wormhole","k":"variable","len":2,"c":true},{"a":2106,"n":"drunk","k":"variable","len":1,"c":true},{"a":2107,"n":"alarm","k":"variable","len":1,"c":true},{"a":2108,"n":"orient_offsets","k":"table","len":10,"c":true},{"a":2118,"n":"pos_offsets","k":"table","len":40,"c":true},{"a":2158,"n":"clip_scratch","k":"table","len":48,"c":true},{"a":2206,"n":"a_089E","k":"table","len":9,"c":true},{"a":2215,"n":"a_08A7","k":"table","len":10,"c":true},{"a":2225,"n":"talk_flags","k":"table","len":4,"c":true},{"a":2229,"n":"visitor_pictures","k":"table","len":32,"c":true},{"a":2261,"n":"type_flags","k":"table","len":35,"c":true},{"a":2296,"n":"type_draw","k":"variable","len":1,"c":true},{"a":2297,"n":"type_draw_hi","k":"table","len":69,"c":true},{"a":2366,"n":"type_model","k":"table","len":35,"c":true},{"a":2401,"n":"model_names","k":"table","len":56,"c":true},{"a":2457,"n":"type_drawdata","k":"variable","len":1,"c":true},{"a":2458,"n":"type_drawdata_hi","k":"table","len":69,"c":true},{"a":2527,"n":"draw_data","k":"table","len":62,"c":true},{"a":2589,"n":"type_radius","k":"variable","len":1,"c":true},{"a":2590,"n":"f_0A1E","k":"table","len":61,"c":true},{"a":2651,"n":"a_0A5B","k":"variable","len":1,"c":true},{"a":2652,"n":"a_0A5C","k":"table","len":7,"c":true},{"a":2659,"n":"type_scale","k":"variable","len":1,"c":true},{"a":2660,"n":"type_scale_whole","k":"table","len":69,"c":true},{"a":2729,"n":"type_armour","k":"variable","len":1,"c":true},{"a":2730,"n":"type_armour_hi","k":"table","len":69,"c":true},{"a":2799,"n":"type_damage","k":"table","len":35,"c":true},{"a":2834,"n":"type_names","k":"variable","len":1,"c":true},{"a":2835,"n":"type_names_hi","k":"table","len":43,"c":true},{"a":2878,"n":"type_name_text","k":"table","len":164,"c":true},{"a":3042,"n":"type_turn","k":"variable","len":1,"c":true},{"a":3043,"n":"f_0BE3","k":"table","len":33,"c":true},{"a":3076,"n":"type_thrust","k":"variable","len":1,"c":true},{"a":3077,"n":"a_0C05","k":"table","len":25,"c":true},{"a":3102,"n":"type_faction","k":"table","len":13,"c":true},{"a":3115,"n":"type_ecm","k":"table","len":13,"c":true},{"a":3128,"n":"type_tactic","k":"table","len":13,"c":true},{"a":3141,"n":"type_systems","k":"table","len":13,"c":true},{"a":3154,"n":"type_beam","k":"table","len":13,"c":true},{"a":3167,"n":"type_missile_kind","k":"table","len":13,"c":true},{"a":3180,"n":"type_shields","k":"table","len":13,"c":true},{"a":3193,"n":"type_rank","k":"table","len":13,"c":true},{"a":3206,"n":"tactic_steer","k":"table","len":10,"c":true},{"a":3216,"n":"tactic_angle","k":"table","len":10,"c":true},{"a":3226,"n":"tactic_speed","k":"table","len":10,"c":true},{"a":3236,"n":"tactic_speedrule","k":"table","len":10,"c":true},{"a":3246,"n":"tactic_names","k":"table","len":80,"c":true},{"a":3326,"n":"weapon","k":"variable","len":1,"c":true},{"a":3327,"n":"auto_fire","k":"variable","len":1,"c":true},{"a":3328,"n":"beam_heat","k":"variable","len":1,"c":true},{"a":3329,"n":"thrust_dir","k":"variable","len":1,"c":true},{"a":3330,"n":"newtonian","k":"variable","len":1,"c":true},{"a":3331,"n":"joy_used","k":"variable","len":1,"c":true},{"a":3332,"n":"encounter_types","k":"variable","len":1,"c":true},{"a":3333,"n":"a_0D05","k":"variable","len":1,"c":true},{"a":3334,"n":"a_0D06","k":"variable","len":1,"c":true},{"a":3335,"n":"ships_near","k":"variable","len":1,"c":true},{"a":3336,"n":"cargo_spoils","k":"table","len":24,"c":true},{"a":3360,"n":"win_left","k":"variable","len":1,"c":true},{"a":3361,"n":"win_right","k":"variable","len":1,"c":true},{"a":3362,"n":"win_top","k":"variable","len":1,"c":true},{"a":3363,"n":"win_bottom","k":"variable","len":1,"c":true},{"a":3364,"n":"win_lines","k":"variable","len":1,"c":true},{"a":3365,"n":"reverse_mask","k":"variable","len":1,"c":true},{"a":3366,"n":"lines_left","k":"variable","len":1,"c":true},{"a":3367,"n":"last_char","k":"variable","len":1,"c":true},{"a":3368,"n":"text_mirrored","k":"variable","len":1,"c":true},{"a":3369,"n":"message_timer","k":"table","len":6,"c":true},{"a":3375,"n":"chart_brackets","k":"variable","len":1,"c":true},{"a":3376,"n":"chart_col","k":"variable","len":1,"c":true},{"a":3377,"n":"chart_row","k":"variable","len":1,"c":true},{"a":3378,"n":"chart_scroll","k":"variable","len":1,"c":true},{"a":3379,"n":"chart_rows","k":"table","len":9,"c":true},{"a":3388,"n":"view_mode","k":"variable","len":1,"c":true},{"a":3389,"n":"draw_list","k":"variable","len":1,"c":true},{"a":3390,"n":"view_front","k":"variable","len":1,"c":true},{"a":3391,"n":"a_0D3F","k":"table","len":37,"c":true},{"a":3428,"n":"proj_xscale","k":"variable","len":1,"c":true},{"a":3429,"n":"a_0D65","k":"variable","len":1,"c":true},{"a":3430,"n":"proj_yscale","k":"variable","len":1,"c":true},{"a":3431,"n":"a_0D67","k":"variable","len":1,"c":true},{"a":3432,"n":"proj_zoom","k":"variable","len":1,"c":true},{"a":3433,"n":"a_0D69","k":"variable","len":1,"c":true},{"a":3434,"n":"proj_vslope","k":"variable","len":1,"c":true},{"a":3435,"n":"a_0D6B","k":"variable","len":1,"c":true},{"a":3436,"n":"proj_hedge","k":"variable","len":1,"c":true},{"a":3437,"n":"a_0D6D","k":"variable","len":1,"c":true},{"a":3438,"n":"proj_vedge","k":"variable","len":1,"c":true},{"a":3439,"n":"a_0D6F","k":"variable","len":1,"c":true},{"a":3440,"n":"draw_depth_lo","k":"table","len":14,"c":true},{"a":3454,"n":"draw_depth_hi","k":"table","len":14,"c":true},{"a":3468,"n":"draw_size","k":"table","len":14,"c":true},{"a":3482,"n":"draw_slot","k":"table","len":14,"c":true},{"a":3496,"n":"identity","k":"table","len":63,"c":true},{"a":3559,"n":"sr_init","k":"routine","len":6,"c":true},{"a":3565,"n":"b_0DED","k":"routine","len":53,"c":true},{"a":3618,"n":"setup_irq","k":"routine","len":99,"c":true},{"a":3717,"n":"bank_all_ram","k":"routine","len":7,"c":true},{"a":3724,"n":"bank_io_in","k":"routine","len":9,"c":true},{"a":3733,"n":"bank_kernal_in","k":"routine","len":9,"c":true},{"a":3742,"n":"nmi_rti","k":"routine","len":1,"c":true},{"a":3743,"n":"reset_rti","k":"routine","len":1,"c":true},{"a":3744,"n":"irq_entry","k":"routine","len":5,"c":true},{"a":3749,"n":"irq_body","k":"routine","len":40,"c":true},{"a":3774,"n":"b_0EBE","k":"branch","len":1,"c":false},{"a":3780,"n":"b_0EC4","k":"branch","len":1,"c":false},{"a":3789,"n":"clear_keybuf","k":"routine","len":9,"c":true},{"a":3798,"n":"keyscan_to_buffer","k":"routine","len":31,"c":true},{"a":3814,"n":"b_0EE6","k":"branch","len":1,"c":false},{"a":3824,"n":"b_0EF0","k":"branch","len":1,"c":false},{"a":3828,"n":"r_0EF4","k":"branch","len":1,"c":false},{"a":3829,"n":"keyscan","k":"routine","len":231,"c":true},{"a":3881,"n":"b_0F29","k":"branch","len":1,"c":false},{"a":3903,"n":"b_0F3F","k":"branch","len":1,"c":false},{"a":3914,"n":"b_0F4A","k":"branch","len":1,"c":false},{"a":3939,"n":"b_0F63","k":"branch","len":1,"c":false},{"a":3940,"n":"b_0F64","k":"branch","len":1,"c":false},{"a":3956,"n":"b_0F74","k":"branch","len":1,"c":false},{"a":3975,"n":"b_0F87","k":"branch","len":1,"c":false},{"a":3981,"n":"b_0F8D","k":"branch","len":1,"c":false},{"a":3990,"n":"b_0F96","k":"branch","len":1,"c":false},{"a":3997,"n":"b_0F9D","k":"branch","len":1,"c":false},{"a":4013,"n":"b_0FAD","k":"branch","len":1,"c":false},{"a":4017,"n":"b_0FB1","k":"branch","len":1,"c":false},{"a":4031,"n":"b_0FBF","k":"branch","len":1,"c":false},{"a":4045,"n":"b_0FCD","k":"branch","len":1,"c":false},{"a":4047,"n":"b_0FCF","k":"branch","len":1,"c":false},{"a":4056,"n":"b_0FD8","k":"branch","len":1,"c":false},{"a":4060,"n":"key_row_mask","k":"table","len":8,"c":true},{"a":4068,"n":"key_row_base","k":"table","len":11,"c":true},{"a":4079,"n":"key_chars","k":"table","len":17,"c":true},{"a":4096,"n":"key_chars_17","k":"table","len":71,"c":true},{"a":4167,"n":"shift_from","k":"table","len":16,"c":true},{"a":4183,"n":"shift_to","k":"table","len":16,"c":true},{"a":4199,"n":"sound_init","k":"routine","len":42,"c":true},{"a":4203,"n":"b_106B","k":"branch","len":1,"c":false},{"a":4241,"n":"sound_play","k":"routine","len":65,"c":true},{"a":4305,"n":"r_10D1","k":"branch","len":1,"c":false},{"a":4306,"n":"sound_step","k":"routine","len":195,"c":true},{"a":4308,"n":"b_10D4","k":"branch","len":1,"c":false},{"a":4370,"n":"b_1112","k":"branch","len":1,"c":false},{"a":4412,"n":"b_113C","k":"branch","len":1,"c":false},{"a":4424,"n":"b_1148","k":"branch","len":1,"c":false},{"a":4439,"n":"b_1157","k":"branch","len":1,"c":false},{"a":4465,"n":"b_1171","k":"branch","len":1,"c":false},{"a":4500,"n":"r_1194","k":"branch","len":1,"c":false},{"a":4501,"n":"voice_reg_offset","k":"table","len":3,"c":true},{"a":4504,"n":"voice_freq_hi_start","k":"table","len":3,"c":true},{"a":4507,"n":"voice_step_lo","k":"table","len":3,"c":true},{"a":4510,"n":"voice_step_hi","k":"table","len":3,"c":true},{"a":4513,"n":"voice_freq_lo","k":"table","len":3,"c":true},{"a":4516,"n":"voice_freq_hi","k":"table","len":3,"c":true},{"a":4519,"n":"voice_ad","k":"table","len":3,"c":true},{"a":4522,"n":"voice_sr","k":"table","len":3,"c":true},{"a":4525,"n":"sfx_voice","k":"table","len":14,"c":true},{"a":4539,"n":"sfx_freq_hi","k":"table","len":14,"c":true},{"a":4553,"n":"sfx_step_lo","k":"table","len":14,"c":true},{"a":4567,"n":"sfx_step_hi","k":"table","len":14,"c":true},{"a":4581,"n":"sfx_ad","k":"table","len":14,"c":true},{"a":4595,"n":"sfx_sr","k":"table","len":14,"c":true},{"a":4609,"n":"sfx_wave","k":"table","len":14,"c":true},{"a":4623,"n":"sfx_length","k":"table","len":14,"c":true},{"a":4637,"n":"sfx_gateoff","k":"table","len":14,"c":true},{"a":4651,"n":"sfx_repeats","k":"table","len":14,"c":true},{"a":4665,"n":"frame_update","k":"routine","len":292,"c":true},{"a":4673,"n":"b_1241","k":"branch","len":1,"c":false},{"a":4697,"n":"b_1259","k":"branch","len":1,"c":false},{"a":4714,"n":"b_126A","k":"branch","len":1,"c":false},{"a":4721,"n":"b_1271","k":"branch","len":1,"c":false},{"a":4742,"n":"b_1286","k":"branch","len":1,"c":false},{"a":4755,"n":"b_1293","k":"branch","len":1,"c":false},{"a":4780,"n":"b_12AC","k":"branch","len":1,"c":false},{"a":4795,"n":"b_12BB","k":"branch","len":1,"c":false},{"a":4835,"n":"b_12E3","k":"branch","len":1,"c":false},{"a":4839,"n":"b_12E7","k":"branch","len":1,"c":false},{"a":4875,"n":"b_130B","k":"branch","len":1,"c":false},{"a":4881,"n":"j_1311","k":"branch","len":1,"c":false},{"a":4902,"n":"b_1326","k":"branch","len":1,"c":false},{"a":4910,"n":"b_132E","k":"branch","len":1,"c":false},{"a":4956,"n":"r_135C","k":"branch","len":1,"c":false},{"a":4957,"n":"flight_step_count","k":"variable","len":1,"c":true},{"a":4958,"n":"clock_ticks","k":"variable","len":1,"c":true},{"a":4959,"n":"do_key","k":"routine","len":39,"c":true},{"a":4968,"n":"b_1368","k":"branch","len":1,"c":false},{"a":4977,"n":"b_1371","k":"branch","len":1,"c":false},{"a":4986,"n":"b_137A","k":"branch","len":1,"c":false},{"a":4998,"n":"key_turn_left","k":"routine","len":11,"c":true},{"a":5009,"n":"key_turn_right","k":"routine","len":11,"c":true},{"a":5020,"n":"key_pitch_up","k":"routine","len":11,"c":true},{"a":5031,"n":"key_pitch_down","k":"routine","len":11,"c":true},{"a":5042,"n":"key_stop_turn","k":"routine","len":12,"c":true},{"a":5054,"n":"key_roll_left","k":"routine","len":11,"c":true},{"a":5065,"n":"key_roll_right","k":"routine","len":11,"c":true},{"a":5076,"n":"key_jettison","k":"routine","len":10,"c":true},{"a":5086,"n":"key_slower","k":"routine","len":21,"c":true},{"a":5101,"n":"b_13ED","k":"branch","len":1,"c":false},{"a":5107,"n":"key_faster","k":"routine","len":21,"c":true},{"a":5122,"n":"b_1402","k":"branch","len":1,"c":false},{"a":5128,"n":"key_flight_mode","k":"routine","len":9,"c":true},{"a":5137,"n":"key_tac_mode","k":"routine","len":12,"c":true},{"a":5149,"n":"key_auto_fire","k":"routine","len":14,"c":true},{"a":5162,"n":"r_142A","k":"branch","len":1,"c":false},{"a":5163,"n":"key_view","k":"routine","len":13,"c":true},{"a":5173,"n":"b_1435","k":"branch","len":1,"c":false},{"a":5176,"n":"key_escape","k":"routine","len":10,"c":true},{"a":5186,"n":"key_navigation","k":"routine","len":10,"c":true},{"a":5196,"n":"clamp_rate","k":"routine","len":16,"c":true},{"a":5204,"n":"r_1454","k":"branch","len":1,"c":false},{"a":5205,"n":"b_1455","k":"branch","len":1,"c":false},{"a":5212,"n":"key_cmds","k":"table","len":37,"c":true},{"a":5249,"n":"key_handlers","k":"variable","len":1,"c":true},{"a":5250,"n":"key_handlers_hi","k":"table","len":73,"c":true},{"a":5323,"n":"sr_setup","k":"routine","len":26,"c":true},{"a":5349,"n":"load_end","k":"routine","len":19,"c":true},{"a":5368,"n":"load_seg0","k":"routine","len":15,"c":true},{"a":5383,"n":"load_seg1","k":"routine","len":30,"c":true},{"a":5413,"n":"restore_after_disk","k":"routine","len":13,"c":true},{"a":5426,"n":"load_won","k":"routine","len":28,"c":true},{"a":5454,"n":"key_save","k":"routine","len":82,"c":true},{"a":5469,"n":"b_155D","k":"branch","len":1,"c":false},{"a":5531,"n":"b_159B","k":"branch","len":1,"c":false},{"a":5536,"n":"enter_sector","k":"routine","len":219,"c":true},{"a":5559,"n":"b_15B7","k":"branch","len":1,"c":false},{"a":5567,"n":"b_15BF","k":"branch","len":1,"c":false},{"a":5603,"n":"b_15E3","k":"branch","len":1,"c":false},{"a":5613,"n":"b_15ED","k":"branch","len":1,"c":false},{"a":5622,"n":"b_15F6","k":"branch","len":1,"c":false},{"a":5636,"n":"b_1604","k":"branch","len":1,"c":false},{"a":5658,"n":"b_161A","k":"branch","len":1,"c":false},{"a":5668,"n":"b_1624","k":"branch","len":1,"c":false},{"a":5671,"n":"b_1627","k":"branch","len":1,"c":false},{"a":5673,"n":"b_1629","k":"branch","len":1,"c":false},{"a":5676,"n":"b_162C","k":"branch","len":1,"c":false},{"a":5696,"n":"b_1640","k":"branch","len":1,"c":false},{"a":5731,"n":"b_1663","k":"branch","len":1,"c":false},{"a":5748,"n":"b_1674","k":"branch","len":1,"c":false},{"a":5755,"n":"count_special_entry","k":"routine","len":4,"c":true},{"a":5759,"n":"place_object","k":"routine","len":51,"c":true},{"a":5810,"n":"base_file_from_map","k":"routine","len":23,"c":true},{"a":5833,"n":"sector_object_lists","k":"variable","len":1,"c":true},{"a":5834,"n":"f_16CA","k":"table","len":57,"c":true},{"a":5891,"n":"sector_kind_flags","k":"table","len":10,"c":true},{"a":5901,"n":"sector_kind_texts","k":"variable","len":1,"c":true},{"a":5902,"n":"f_170E","k":"table","len":20,"c":true},{"a":5922,"n":"slot_counter","k":"variable","len":1,"c":true},{"a":5923,"n":"start_game_objects","k":"routine","len":20,"c":true},{"a":5943,"n":"copy_ship_stats","k":"routine","len":46,"c":true},{"a":5989,"n":"load_file","k":"routine","len":30,"c":true},{"a":5999,"n":"b_176F","k":"branch","len":1,"c":false},{"a":6019,"n":"save_file","k":"routine","len":50,"c":true},{"a":6039,"n":"b_1797","k":"branch","len":1,"c":false},{"a":6069,"n":"swap_kernal_zp","k":"routine","len":17,"c":true},{"a":6071,"n":"b_17B7","k":"branch","len":1,"c":false},{"a":6086,"n":"open_for_io","k":"routine","len":42,"c":true},{"a":6102,"n":"b_17D6","k":"branch","len":1,"c":false},{"a":6109,"n":"b_17DD","k":"branch","len":1,"c":false},{"a":6128,"n":"a_17F0","k":"routine","len":2,"c":true},{"a":6130,"n":"a_17F2","k":"routine","len":2,"c":true},{"a":6132,"n":"a_17F4","k":"routine","len":4,"c":true},{"a":6136,"n":"close_after_io","k":"routine","len":26,"c":true},{"a":6154,"n":"b_180A","k":"branch","len":1,"c":false},{"a":6162,"n":"disk_prompt","k":"routine","len":31,"c":true},{"a":6193,"n":"io_addr","k":"variable","len":1,"c":true},{"a":6194,"n":"a_1832","k":"variable","len":1,"c":true},{"a":6195,"n":"a_1833","k":"variable","len":1,"c":true},{"a":6196,"n":"a_1834","k":"variable","len":1,"c":true},{"a":6197,"n":"str_insert","k":"table","len":34,"c":true},{"a":6231,"n":"disk_name_ptr","k":"variable","len":1,"c":true},{"a":6232,"n":"a_1858","k":"variable","len":1,"c":true},{"a":6233,"n":"prompt_boot_disk","k":"routine","len":11,"c":true},{"a":6244,"n":"prompt_data_disk","k":"routine","len":11,"c":true},{"a":6255,"n":"read_block","k":"routine","len":154,"c":true},{"a":6258,"n":"b_1872","k":"branch","len":1,"c":false},{"a":6267,"n":"b_187B","k":"branch","len":1,"c":false},{"a":6276,"n":"b_1884","k":"branch","len":1,"c":false},{"a":6297,"n":"j_1899","k":"branch","len":1,"c":false},{"a":6365,"n":"b_18DD","k":"branch","len":1,"c":false},{"a":6380,"n":"b_18EC","k":"branch","len":1,"c":false},{"a":6409,"n":"f_1909","k":"routine","len":1,"c":true},{"a":6410,"n":"sectors_per_track","k":"table","len":35,"c":true},{"a":6445,"n":"str_block_cmd","k":"table","len":8,"c":true},{"a":6453,"n":"a_1935","k":"variable","len":1,"c":true},{"a":6454,"n":"a_1936","k":"variable","len":2,"c":true},{"a":6456,"n":"a_1938","k":"variable","len":1,"c":true},{"a":6457,"n":"a_1939","k":"variable","len":1,"c":true},{"a":6458,"n":"block_byte_count","k":"variable","len":1,"c":true},{"a":6459,"n":"to_decimal","k":"routine","len":14,"c":true},{"a":6461,"n":"b_193D","k":"branch","len":1,"c":false},{"a":6470,"n":"b_1946","k":"branch","len":1,"c":false},{"a":6473,"n":"create_object","k":"routine","len":38,"c":true},{"a":6485,"n":"b_1955","k":"branch","len":1,"c":false},{"a":6495,"n":"b_195F","k":"branch","len":1,"c":false},{"a":6499,"n":"b_1963","k":"branch","len":1,"c":false},{"a":6511,"n":"create_in_slot","k":"routine","len":2,"c":true},{"a":6513,"n":"fill_slot","k":"routine","len":225,"c":true},{"a":6584,"n":"b_19B8","k":"branch","len":1,"c":false},{"a":6735,"n":"b_1A4F","k":"branch","len":1,"c":false},{"a":6738,"n":"j_1A52","k":"routine","len":7,"c":true},{"a":6745,"n":"j_1A59","k":"routine","len":6,"c":true},{"a":6748,"n":"b_1A5C","k":"branch","len":1,"c":false},{"a":6751,"n":"destroy_object","k":"routine","len":43,"c":true},{"a":6763,"n":"b_1A6B","k":"branch","len":1,"c":false},{"a":6788,"n":"b_1A84","k":"branch","len":1,"c":false},{"a":6793,"n":"r_1A89","k":"branch","len":1,"c":false},{"a":6794,"n":"free_slot","k":"routine","len":53,"c":true},{"a":6800,"n":"b_1A90","k":"branch","len":1,"c":false},{"a":6817,"n":"b_1AA1","k":"branch","len":1,"c":false},{"a":6831,"n":"b_1AAF","k":"branch","len":1,"c":false},{"a":6843,"n":"b_1ABB","k":"branch","len":1,"c":false},{"a":6847,"n":"kill_reward","k":"routine","len":209,"c":true},{"a":6867,"n":"b_1AD3","k":"branch","len":1,"c":false},{"a":6888,"n":"b_1AE8","k":"branch","len":1,"c":false},{"a":6892,"n":"j_1AEC","k":"branch","len":1,"c":false},{"a":6913,"n":"b_1B01","k":"branch","len":1,"c":false},{"a":6933,"n":"b_1B15","k":"branch","len":1,"c":false},{"a":6964,"n":"b_1B34","k":"branch","len":1,"c":false},{"a":6977,"n":"b_1B41","k":"branch","len":1,"c":false},{"a":7001,"n":"b_1B59","k":"branch","len":1,"c":false},{"a":7018,"n":"b_1B6A","k":"branch","len":1,"c":false},{"a":7031,"n":"b_1B77","k":"branch","len":1,"c":false},{"a":7055,"n":"r_1B8F","k":"branch","len":1,"c":false},{"a":7056,"n":"player_destroyed","k":"routine","len":6,"c":true},{"a":7062,"n":"str_bounty","k":"table","len":28,"c":true},{"a":7090,"n":"age_objects","k":"routine","len":60,"c":true},{"a":7092,"n":"b_1BB4","k":"branch","len":1,"c":false},{"a":7118,"n":"b_1BCE","k":"branch","len":1,"c":false},{"a":7146,"n":"b_1BEA","k":"branch","len":1,"c":false},{"a":7150,"n":"load_picture","k":"routine","len":39,"c":true},{"a":7189,"n":"picture_names","k":"variable","len":1,"c":true},{"a":7190,"n":"f_1C16","k":"table","len":7,"c":true},{"a":7197,"n":"unpack_picture","k":"routine","len":109,"c":true},{"a":7222,"n":"b_1C36","k":"branch","len":1,"c":false},{"a":7238,"n":"j_1C46","k":"branch","len":1,"c":false},{"a":7251,"n":"b_1C53","k":"branch","len":1,"c":false},{"a":7261,"n":"b_1C5D","k":"branch","len":1,"c":false},{"a":7270,"n":"b_1C66","k":"branch","len":1,"c":false},{"a":7279,"n":"b_1C6F","k":"branch","len":1,"c":false},{"a":7303,"n":"b_1C87","k":"branch","len":1,"c":false},{"a":7306,"n":"set_border","k":"routine","len":11,"c":true},{"a":7317,"n":"load_model","k":"routine","len":181,"c":true},{"a":7324,"n":"b_1C9C","k":"branch","len":1,"c":false},{"a":7326,"n":"b_1C9E","k":"branch","len":1,"c":false},{"a":7432,"n":"b_1D08","k":"branch","len":1,"c":false},{"a":7461,"n":"b_1D25","k":"branch","len":1,"c":false},{"a":7483,"n":"b_1D3B","k":"branch","len":1,"c":false},{"a":7498,"n":"reset_models","k":"routine","len":32,"c":true},{"a":7504,"n":"b_1D50","k":"branch","len":1,"c":false},{"a":7514,"n":"b_1D5A","k":"branch","len":1,"c":false},{"a":7530,"n":"load_slot_models","k":"routine","len":22,"c":true},{"a":7534,"n":"b_1D6E","k":"branch","len":1,"c":false},{"a":7545,"n":"b_1D79","k":"branch","len":1,"c":false},{"a":7552,"n":"model_heap_next","k":"variable","len":1,"c":true},{"a":7553,"n":"a_1D81","k":"variable","len":1,"c":true},{"a":7554,"n":"key_next_target","k":"routine","len":60,"c":true},{"a":7566,"n":"b_1D8E","k":"branch","len":1,"c":false},{"a":7575,"n":"b_1D97","k":"branch","len":1,"c":false},{"a":7591,"n":"b_1DA7","k":"branch","len":1,"c":false},{"a":7605,"n":"b_1DB5","k":"branch","len":1,"c":false},{"a":7614,"n":"key_fire","k":"routine","len":33,"c":true},{"a":7634,"n":"b_1DD2","k":"branch","len":1,"c":false},{"a":7639,"n":"b_1DD7","k":"branch","len":1,"c":false},{"a":7644,"n":"b_1DDC","k":"branch","len":1,"c":false},{"a":7647,"n":"target_status","k":"routine","len":124,"c":true},{"a":7654,"n":"r_1DE6","k":"branch","len":1,"c":false},{"a":7655,"n":"b_1DE7","k":"branch","len":1,"c":false},{"a":7686,"n":"b_1E06","k":"branch","len":1,"c":false},{"a":7698,"n":"b_1E12","k":"branch","len":1,"c":false},{"a":7700,"n":"j_1E14","k":"branch","len":1,"c":false},{"a":7748,"n":"b_1E44","k":"branch","len":1,"c":false},{"a":7755,"n":"b_1E4B","k":"branch","len":1,"c":false},{"a":7771,"n":"str_empty","k":"variable","len":1,"c":true},{"a":7772,"n":"key_next_weapon","k":"routine","len":23,"c":true},{"a":7784,"n":"b_1E68","k":"branch","len":1,"c":false},{"a":7792,"n":"b_1E70","k":"branch","len":1,"c":false},{"a":7795,"n":"random_offset","k":"routine","len":58,"c":true},{"a":7811,"n":"b_1E83","k":"branch","len":1,"c":false},{"a":7853,"n":"launch_missile","k":"routine","len":363,"c":true},{"a":7869,"n":"b_1EBD","k":"branch","len":1,"c":false},{"a":7884,"n":"b_1ECC","k":"branch","len":1,"c":false},{"a":7889,"n":"b_1ED1","k":"branch","len":1,"c":false},{"a":7905,"n":"b_1EE1","k":"branch","len":1,"c":false},{"a":7919,"n":"r_1EEF","k":"branch","len":1,"c":false},{"a":7920,"n":"b_1EF0","k":"branch","len":1,"c":false},{"a":7943,"n":"b_1F07","k":"branch","len":1,"c":false},{"a":8012,"n":"b_1F4C","k":"branch","len":1,"c":false},{"a":8014,"n":"b_1F4E","k":"branch","len":1,"c":false},{"a":8019,"n":"b_1F53","k":"branch","len":1,"c":false},{"a":8086,"n":"b_1F96","k":"branch","len":1,"c":false},{"a":8117,"n":"b_1FB5","k":"branch","len":1,"c":false},{"a":8148,"n":"b_1FD4","k":"branch","len":1,"c":false},{"a":8151,"n":"b_1FD7","k":"branch","len":1,"c":false},{"a":8192,"n":"j_2000","k":"branch","len":1,"c":false},{"a":8216,"n":"missile_launch_offset","k":"table","len":9,"c":true},{"a":8225,"n":"advance_clock","k":"routine","len":25,"c":true},{"a":8228,"n":"b_2024","k":"branch","len":1,"c":false},{"a":8246,"n":"b_2036","k":"branch","len":1,"c":false},{"a":8249,"n":"r_2039","k":"branch","len":1,"c":false},{"a":8250,"n":"next_day","k":"routine","len":58,"c":true},{"a":8258,"n":"b_2042","k":"branch","len":1,"c":false},{"a":8307,"n":"r_2073","k":"branch","len":1,"c":false},{"a":8308,"n":"print_date","k":"routine","len":39,"c":true},{"a":8347,"n":"print_time","k":"routine","len":13,"c":true},{"a":8360,"n":"str_hrs","k":"table","len":7,"c":true},{"a":8367,"n":"month_days","k":"table","len":13,"c":true},{"a":8380,"n":"month_names","k":"table","len":48,"c":true},{"a":8428,"n":"fire_beam","k":"routine","len":157,"c":true},{"a":8460,"n":"b_210C","k":"branch","len":1,"c":false},{"a":8465,"n":"r_2111","k":"branch","len":1,"c":false},{"a":8466,"n":"b_2112","k":"branch","len":1,"c":false},{"a":8505,"n":"b_2139","k":"branch","len":1,"c":false},{"a":8535,"n":"b_2157","k":"branch","len":1,"c":false},{"a":8565,"n":"b_2175","k":"branch","len":1,"c":false},{"a":8574,"n":"j_217E","k":"branch","len":1,"c":false},{"a":8584,"n":"r_2188","k":"branch","len":1,"c":false},{"a":8585,"n":"trace_beam","k":"routine","len":153,"c":true},{"a":8655,"n":"b_21CF","k":"branch","len":1,"c":false},{"a":8662,"n":"b_21D6","k":"branch","len":1,"c":false},{"a":8722,"n":"b_2212","k":"branch","len":1,"c":false},{"a":8735,"n":"b_221F","k":"branch","len":1,"c":false},{"a":8738,"n":"beam_hit","k":"routine","len":87,"c":true},{"a":8756,"n":"b_2234","k":"branch","len":1,"c":false},{"a":8772,"n":"b_2244","k":"branch","len":1,"c":false},{"a":8781,"n":"b_224D","k":"branch","len":1,"c":false},{"a":8800,"n":"b_2260","k":"branch","len":1,"c":false},{"a":8805,"n":"b_2265","k":"branch","len":1,"c":false},{"a":8817,"n":"b_2271","k":"branch","len":1,"c":false},{"a":8825,"n":"draw_beam","k":"routine","len":321,"c":true},{"a":8854,"n":"b_2296","k":"branch","len":1,"c":false},{"a":8872,"n":"b_22A8","k":"branch","len":1,"c":false},{"a":8892,"n":"b_22BC","k":"branch","len":1,"c":false},{"a":8899,"n":"r_22C3","k":"branch","len":1,"c":false},{"a":8900,"n":"b_22C4","k":"branch","len":1,"c":false},{"a":8988,"n":"b_231C","k":"branch","len":1,"c":false},{"a":8991,"n":"j_231F","k":"branch","len":1,"c":false},{"a":9046,"n":"b_2356","k":"branch","len":1,"c":false},{"a":9076,"n":"b_2374","k":"branch","len":1,"c":false},{"a":9114,"n":"b_239A","k":"branch","len":1,"c":false},{"a":9139,"n":"j_23B3","k":"branch","len":1,"c":false},{"a":9146,"n":"project_point","k":"routine","len":63,"c":true},{"a":9209,"n":"cockpit_beam_shapes","k":"table","len":12,"c":true},{"a":9221,"n":"f_2405","k":"table","len":11,"c":true},{"a":9232,"n":"beam_patterns","k":"table","len":4,"c":true},{"a":9236,"n":"beam_damage","k":"table","len":5,"c":true},{"a":9241,"n":"joystick_flight","k":"routine","len":19,"c":true},{"a":9251,"n":"b_2423","k":"branch","len":1,"c":false},{"a":9260,"n":"joystick_speed","k":"routine","len":88,"c":true},{"a":9270,"n":"b_2436","k":"branch","len":1,"c":false},{"a":9273,"n":"b_2439","k":"branch","len":1,"c":false},{"a":9294,"n":"b_244E","k":"branch","len":1,"c":false},{"a":9303,"n":"b_2457","k":"branch","len":1,"c":false},{"a":9306,"n":"b_245A","k":"branch","len":1,"c":false},{"a":9309,"n":"b_245D","k":"branch","len":1,"c":false},{"a":9312,"n":"b_2460","k":"branch","len":1,"c":false},{"a":9333,"n":"b_2475","k":"branch","len":1,"c":false},{"a":9342,"n":"b_247E","k":"branch","len":1,"c":false},{"a":9345,"n":"b_2481","k":"branch","len":1,"c":false},{"a":9348,"n":"joystick_steer","k":"routine","len":31,"c":true},{"a":9378,"n":"r_24A2","k":"branch","len":1,"c":false},{"a":9379,"n":"joy_rates","k":"table","len":16,"c":true},{"a":9395,"n":"sector_hazard","k":"routine","len":67,"c":true},{"a":9453,"n":"r_24ED","k":"branch","len":1,"c":false},{"a":9454,"n":"b_24EE","k":"branch","len":1,"c":false},{"a":9462,"n":"explode","k":"routine","len":40,"c":true},{"a":9478,"n":"b_2506","k":"branch","len":1,"c":false},{"a":9501,"n":"r_251D","k":"branch","len":1,"c":false},{"a":9502,"n":"random_velocity","k":"routine","len":36,"c":true},{"a":9509,"n":"b_2525","k":"branch","len":1,"c":false},{"a":9523,"n":"b_2533","k":"branch","len":1,"c":false},{"a":9538,"n":"debris_count","k":"variable","len":1,"c":true},{"a":9539,"n":"navigation","k":"routine","len":135,"c":true},{"a":9618,"n":"b_2592","k":"branch","len":1,"c":false},{"a":9629,"n":"b_259D","k":"branch","len":1,"c":false},{"a":9638,"n":"j_25A6","k":"branch","len":1,"c":false},{"a":9674,"n":"nav_menu","k":"routine","len":79,"c":true},{"a":9687,"n":"b_25D7","k":"branch","len":1,"c":false},{"a":9738,"n":"b_260A","k":"branch","len":1,"c":false},{"a":9741,"n":"b_260D","k":"branch","len":1,"c":false},{"a":9744,"n":"b_2610","k":"branch","len":1,"c":false},{"a":9747,"n":"b_2613","k":"branch","len":1,"c":false},{"a":9750,"n":"b_2616","k":"branch","len":1,"c":false},{"a":9753,"n":"nav_scan","k":"routine","len":27,"c":true},{"a":9758,"n":"b_261E","k":"branch","len":1,"c":false},{"a":9774,"n":"b_262E","k":"branch","len":1,"c":false},{"a":9780,"n":"nav_cockpit","k":"routine","len":25,"c":true},{"a":9800,"n":"b_2648","k":"branch","len":1,"c":false},{"a":9805,"n":"move_cursor","k":"routine","len":28,"c":true},{"a":9832,"n":"r_2668","k":"branch","len":1,"c":false},{"a":9833,"n":"draw_chart_cursor","k":"routine","len":43,"c":true},{"a":9871,"n":"b_268F","k":"branch","len":1,"c":false},{"a":9876,"n":"nav_status","k":"routine","len":29,"c":true},{"a":9905,"n":"load_nav_tiles","k":"routine","len":15,"c":true},{"a":9920,"n":"nav_menu_colour","k":"routine","len":19,"c":true},{"a":9927,"n":"b_26C7","k":"branch","len":1,"c":false},{"a":9929,"n":"b_26C9","k":"branch","len":1,"c":false},{"a":9939,"n":"str_switch_nav","k":"table","len":30,"c":true},{"a":9969,"n":"nav_menu_items","k":"table","len":49,"c":true},{"a":10018,"n":"nav_item_enabled","k":"variable","len":1,"c":true},{"a":10019,"n":"a_2723","k":"table","len":5,"c":true},{"a":10024,"n":"nav_helm","k":"routine","len":95,"c":true},{"a":10036,"n":"b_2734","k":"branch","len":1,"c":false},{"a":10048,"n":"b_2740","k":"branch","len":1,"c":false},{"a":10114,"n":"b_2782","k":"branch","len":1,"c":false},{"a":10119,"n":"nav_chart","k":"routine","len":79,"c":true},{"a":10139,"n":"b_279B","k":"branch","len":1,"c":false},{"a":10145,"n":"b_27A1","k":"branch","len":1,"c":false},{"a":10161,"n":"b_27B1","k":"branch","len":1,"c":false},{"a":10180,"n":"b_27C4","k":"branch","len":1,"c":false},{"a":10192,"n":"b_27D0","k":"branch","len":1,"c":false},{"a":10198,"n":"nav_cursor_info","k":"routine","len":85,"c":true},{"a":10240,"n":"b_2800","k":"branch","len":1,"c":false},{"a":10266,"n":"b_281A","k":"branch","len":1,"c":false},{"a":10276,"n":"b_2824","k":"branch","len":1,"c":false},{"a":10283,"n":"str_course_laid","k":"table","len":85,"c":true},{"a":10368,"n":"plot_course","k":"routine","len":93,"c":true},{"a":10374,"n":"b_2886","k":"branch","len":1,"c":false},{"a":10399,"n":"b_289F","k":"branch","len":1,"c":false},{"a":10413,"n":"b_28AD","k":"branch","len":1,"c":false},{"a":10414,"n":"b_28AE","k":"branch","len":1,"c":false},{"a":10428,"n":"b_28BC","k":"branch","len":1,"c":false},{"a":10429,"n":"b_28BD","k":"branch","len":1,"c":false},{"a":10460,"n":"r_28DC","k":"branch","len":1,"c":false},{"a":10461,"n":"draw_course","k":"routine","len":50,"c":true},{"a":10475,"n":"b_28EB","k":"branch","len":1,"c":false},{"a":10504,"n":"b_2908","k":"branch","len":1,"c":false},{"a":10510,"n":"r_290E","k":"branch","len":1,"c":false},{"a":10511,"n":"helm_step_time","k":"routine","len":130,"c":true},{"a":10527,"n":"b_291F","k":"branch","len":1,"c":false},{"a":10568,"n":"b_2948","k":"branch","len":1,"c":false},{"a":10570,"n":"b_294A","k":"branch","len":1,"c":false},{"a":10588,"n":"b_295C","k":"branch","len":1,"c":false},{"a":10608,"n":"b_2970","k":"branch","len":1,"c":false},{"a":10641,"n":"helm_encounter","k":"routine","len":57,"c":true},{"a":10654,"n":"b_299E","k":"branch","len":1,"c":false},{"a":10667,"n":"b_29AB","k":"branch","len":1,"c":false},{"a":10679,"n":"b_29B7","k":"branch","len":1,"c":false},{"a":10695,"n":"b_29C7","k":"branch","len":1,"c":false},{"a":10697,"n":"r_29C9","k":"branch","len":1,"c":false},{"a":10698,"n":"step_hours","k":"routine","len":41,"c":true},{"a":10706,"n":"b_29D2","k":"branch","len":1,"c":false},{"a":10708,"n":"b_29D4","k":"branch","len":1,"c":false},{"a":10727,"n":"b_29E7","k":"branch","len":1,"c":false},{"a":10736,"n":"b_29F0","k":"branch","len":1,"c":false},{"a":10739,"n":"str_under_attack","k":"table","len":34,"c":true},{"a":10773,"n":"helm_hazard_check","k":"routine","len":62,"c":true},{"a":10785,"n":"b_2A21","k":"branch","len":1,"c":false},{"a":10802,"n":"b_2A32","k":"branch","len":1,"c":false},{"a":10815,"n":"b_2A3F","k":"branch","len":1,"c":false},{"a":10831,"n":"b_2A4F","k":"branch","len":1,"c":false},{"a":10834,"n":"r_2A52","k":"branch","len":1,"c":false},{"a":10835,"n":"daily_repair","k":"routine","len":22,"c":true},{"a":10856,"n":"r_2A68","k":"branch","len":1,"c":false},{"a":10857,"n":"nav_query","k":"routine","len":310,"c":true},{"a":10952,"n":"b_2AC8","k":"branch","len":1,"c":false},{"a":10965,"n":"b_2AD5","k":"branch","len":1,"c":false},{"a":10971,"n":"b_2ADB","k":"branch","len":1,"c":false},{"a":11008,"n":"b_2B00","k":"branch","len":1,"c":false},{"a":11011,"n":"j_2B03","k":"branch","len":1,"c":false},{"a":11062,"n":"b_2B36","k":"branch","len":1,"c":false},{"a":11070,"n":"b_2B3E","k":"branch","len":1,"c":false},{"a":11078,"n":"b_2B46","k":"branch","len":1,"c":false},{"a":11082,"n":"b_2B4A","k":"branch","len":1,"c":false},{"a":11099,"n":"b_2B5B","k":"branch","len":1,"c":false},{"a":11105,"n":"b_2B61","k":"branch","len":1,"c":false},{"a":11138,"n":"b_2B82","k":"branch","len":1,"c":false},{"a":11161,"n":"b_2B99","k":"branch","len":1,"c":false},{"a":11164,"n":"b_2B9C","k":"branch","len":1,"c":false},{"a":11167,"n":"query_end_list","k":"routine","len":33,"c":true},{"a":11189,"n":"b_2BB5","k":"branch","len":1,"c":false},{"a":11200,"n":"query_name","k":"routine","len":49,"c":true},{"a":11221,"n":"b_2BD5","k":"branch","len":1,"c":false},{"a":11233,"n":"j_2BE1","k":"branch","len":1,"c":false},{"a":11249,"n":"str_none","k":"table","len":22,"c":true},{"a":11271,"n":"f_2C07","k":"table","len":11,"c":true},{"a":11282,"n":"query_hazard_names","k":"variable","len":1,"c":true},{"a":11283,"n":"f_2C13","k":"table","len":11,"c":true},{"a":11294,"n":"encounter_roll","k":"routine","len":108,"c":true},{"a":11398,"n":"b_2C86","k":"branch","len":1,"c":false},{"a":11402,"n":"pick_ship_with_chance","k":"routine","len":2,"c":true},{"a":11404,"n":"pick_ship","k":"routine","len":70,"c":true},{"a":11421,"n":"b_2C9D","k":"branch","len":1,"c":false},{"a":11429,"n":"b_2CA5","k":"branch","len":1,"c":false},{"a":11432,"n":"b_2CA8","k":"branch","len":1,"c":false},{"a":11462,"n":"b_2CC6","k":"branch","len":1,"c":false},{"a":11474,"n":"encounter_hostile","k":"routine","len":82,"c":true},{"a":11490,"n":"b_2CE2","k":"branch","len":1,"c":false},{"a":11506,"n":"b_2CF2","k":"branch","len":1,"c":false},{"a":11518,"n":"b_2CFE","k":"branch","len":1,"c":false},{"a":11538,"n":"b_2D12","k":"branch","len":1,"c":false},{"a":11546,"n":"r_2D1A","k":"branch","len":1,"c":false},{"a":11547,"n":"b_2D1B","k":"branch","len":1,"c":false},{"a":11552,"n":"b_2D20","k":"branch","len":1,"c":false},{"a":11556,"n":"ship_class_types","k":"table","len":20,"c":true},{"a":11576,"n":"move_map_objects","k":"routine","len":31,"c":true},{"a":11580,"n":"b_2D3C","k":"branch","len":1,"c":false},{"a":11607,"n":"a_2D57","k":"routine","len":1,"c":true},{"a":11608,"n":"a_2D58","k":"routine","len":8,"c":true},{"a":11609,"n":"b_2D59","k":"branch","len":1,"c":false},{"a":11616,"n":"place_orbiting_objects","k":"routine","len":35,"c":true},{"a":11618,"n":"b_2D62","k":"branch","len":1,"c":false},{"a":11636,"n":"b_2D74","k":"branch","len":1,"c":false},{"a":11651,"n":"a_2D83","k":"routine","len":1,"c":true},{"a":11652,"n":"a_2D84","k":"routine","len":5,"c":true},{"a":11653,"n":"b_2D85","k":"branch","len":1,"c":false},{"a":11657,"n":"motion_wander","k":"routine","len":48,"c":true},{"a":11691,"n":"b_2DAB","k":"branch","len":1,"c":false},{"a":11704,"n":"r_2DB8","k":"branch","len":1,"c":false},{"a":11705,"n":"motion_none","k":"routine","len":1,"c":true},{"a":11706,"n":"motion_small_orbit","k":"routine","len":49,"c":true},{"a":11730,"n":"b_2DD2","k":"branch","len":1,"c":false},{"a":11754,"n":"r_2DEA","k":"branch","len":1,"c":false},{"a":11755,"n":"motion_large_orbit","k":"routine","len":28,"c":true},{"a":11783,"n":"f_2E07","k":"routine","len":1,"c":true},{"a":11784,"n":"f_2E08","k":"routine","len":1,"c":true},{"a":11785,"n":"map_motion_routines","k":"table","len":8,"c":true},{"a":11793,"n":"orbit_small","k":"variable","len":1,"c":true},{"a":11794,"n":"f_2E12","k":"table","len":31,"c":true},{"a":11825,"n":"orbit_large","k":"variable","len":1,"c":true},{"a":11826,"n":"f_2E32","k":"table","len":63,"c":true},{"a":11889,"n":"back_to_cockpit","k":"routine","len":9,"c":true},{"a":11898,"n":"load_system_map","k":"routine","len":38,"c":true},{"a":11924,"n":"b_2E94","k":"branch","len":1,"c":false},{"a":11936,"n":"str_system_file","k":"variable","len":1,"c":true},{"a":11937,"n":"a_2EA1","k":"variable","len":2,"c":true},{"a":11939,"n":"cargo_add","k":"routine","len":26,"c":true},{"a":11945,"n":"b_2EA9","k":"branch","len":1,"c":false},{"a":11955,"n":"b_2EB3","k":"branch","len":1,"c":false},{"a":11965,"n":"cargo_remove","k":"routine","len":18,"c":true},{"a":11968,"n":"b_2EC0","k":"branch","len":1,"c":false},{"a":11977,"n":"b_2EC9","k":"branch","len":1,"c":false},{"a":11983,"n":"cargo_jettison","k":"routine","len":12,"c":true},{"a":11988,"n":"b_2ED4","k":"branch","len":1,"c":false},{"a":11995,"n":"cargo_count","k":"routine","len":28,"c":true},{"a":12001,"n":"b_2EE1","k":"branch","len":1,"c":false},{"a":12007,"n":"b_2EE7","k":"branch","len":1,"c":false},{"a":12020,"n":"r_2EF4","k":"branch","len":1,"c":false},{"a":12021,"n":"b_2EF5","k":"branch","len":1,"c":false},{"a":12023,"n":"print_disk_text_cf9c","k":"routine","len":12,"c":true},{"a":12035,"n":"pay_credits","k":"routine","len":31,"c":true},{"a":12065,"n":"r_2F21","k":"branch","len":1,"c":false},{"a":12066,"n":"add_credits","k":"routine","len":30,"c":true},{"a":12095,"n":"r_2F3F","k":"branch","len":1,"c":false},{"a":12096,"n":"clear_view","k":"routine","len":53,"c":true},{"a":12149,"n":"sector_kind","k":"routine","len":33,"c":true},{"a":12182,"n":"a_2F96","k":"routine","len":1,"c":true},{"a":12183,"n":"a_2F97","k":"routine","len":5,"c":true},{"a":12188,"n":"draw_map_objects","k":"routine","len":119,"c":true},{"a":12196,"n":"b_2FA4","k":"branch","len":1,"c":false},{"a":12254,"n":"b_2FDE","k":"branch","len":1,"c":false},{"a":12259,"n":"b_2FE3","k":"branch","len":1,"c":false},{"a":12266,"n":"b_2FEA","k":"branch","len":1,"c":false},{"a":12269,"n":"b_2FED","k":"branch","len":1,"c":false},{"a":12300,"n":"b_300C","k":"branch","len":1,"c":false},{"a":12307,"n":"in_chart_window","k":"routine","len":29,"c":true},{"a":12318,"n":"b_301E","k":"branch","len":1,"c":false},{"a":12333,"n":"b_302D","k":"branch","len":1,"c":false},{"a":12335,"n":"r_302F","k":"branch","len":1,"c":false},{"a":12336,"n":"sector_entries","k":"routine","len":49,"c":true},{"a":12345,"n":"b_3039","k":"branch","len":1,"c":false},{"a":12371,"n":"b_3053","k":"branch","len":1,"c":false},{"a":12385,"n":"sector_entry_list","k":"table","len":8,"c":true},{"a":12393,"n":"fill_chart_window","k":"routine","len":62,"c":true},{"a":12415,"n":"b_307F","k":"branch","len":1,"c":false},{"a":12430,"n":"b_308E","k":"branch","len":1,"c":false},{"a":12454,"n":"b_30A6","k":"branch","len":1,"c":false},{"a":12455,"n":"a_30A7","k":"routine","len":11,"c":true},{"a":12460,"n":"b_30AC","k":"branch","len":1,"c":false},{"a":12466,"n":"a_30B2","k":"routine","len":37,"c":true},{"a":12475,"n":"b_30BB","k":"branch","len":1,"c":false},{"a":12492,"n":"b_30CC","k":"branch","len":1,"c":false},{"a":12495,"n":"b_30CF","k":"branch","len":1,"c":false},{"a":12499,"n":"b_30D3","k":"branch","len":1,"c":false},{"a":12503,"n":"set_ship_heading","k":"routine","len":43,"c":true},{"a":12519,"n":"b_30E7","k":"branch","len":1,"c":false},{"a":12523,"n":"b_30EB","k":"branch","len":1,"c":false},{"a":12527,"n":"b_30EF","k":"branch","len":1,"c":false},{"a":12529,"n":"b_30F1","k":"branch","len":1,"c":false},{"a":12545,"n":"r_3101","k":"branch","len":1,"c":false},{"a":12546,"n":"update_cockpit","k":"routine","len":18,"c":true},{"a":12564,"n":"draw_tac","k":"routine","len":10,"c":true},{"a":12571,"n":"b_311B","k":"branch","len":1,"c":false},{"a":12574,"n":"clear_tac","k":"routine","len":11,"c":true},{"a":12585,"n":"attack_lamp","k":"routine","len":36,"c":true},{"a":12587,"n":"b_312B","k":"branch","len":1,"c":false},{"a":12605,"n":"b_313D","k":"branch","len":1,"c":false},{"a":12612,"n":"b_3144","k":"branch","len":1,"c":false},{"a":12614,"n":"b_3146","k":"branch","len":1,"c":false},{"a":12621,"n":"threat_lamps","k":"routine","len":82,"c":true},{"a":12633,"n":"b_3159","k":"branch","len":1,"c":false},{"a":12666,"n":"b_317A","k":"branch","len":1,"c":false},{"a":12703,"n":"threat_colour","k":"routine","len":15,"c":true},{"a":12708,"n":"b_31A4","k":"branch","len":1,"c":false},{"a":12714,"n":"b_31AA","k":"branch","len":1,"c":false},{"a":12718,"n":"threat_colours","k":"table","len":4,"c":true},{"a":12722,"n":"draw_speed","k":"routine","len":136,"c":true},{"a":12740,"n":"b_31C4","k":"branch","len":1,"c":false},{"a":12743,"n":"b_31C7","k":"branch","len":1,"c":false},{"a":12764,"n":"b_31DC","k":"branch","len":1,"c":false},{"a":12779,"n":"b_31EB","k":"branch","len":1,"c":false},{"a":12796,"n":"b_31FC","k":"branch","len":1,"c":false},{"a":12812,"n":"b_320C","k":"branch","len":1,"c":false},{"a":12838,"n":"b_3226","k":"branch","len":1,"c":false},{"a":12857,"n":"r_3239","k":"branch","len":1,"c":false},{"a":12858,"n":"str_cruise_newton","k":"table","len":6,"c":true},{"a":12864,"n":"draw_armour_bar","k":"routine","len":92,"c":true},{"a":12896,"n":"b_3260","k":"branch","len":1,"c":false},{"a":12922,"n":"b_327A","k":"branch","len":1,"c":false},{"a":12945,"n":"b_3291","k":"branch","len":1,"c":false},{"a":12952,"n":"b_3298","k":"branch","len":1,"c":false},{"a":12956,"n":"draw_weapon","k":"routine","len":199,"c":true},{"a":12981,"n":"b_32B5","k":"branch","len":1,"c":false},{"a":12992,"n":"b_32C0","k":"branch","len":1,"c":false},{"a":13008,"n":"b_32D0","k":"branch","len":1,"c":false},{"a":13031,"n":"b_32E7","k":"branch","len":1,"c":false},{"a":13053,"n":"b_32FD","k":"branch","len":1,"c":false},{"a":13063,"n":"b_3307","k":"branch","len":1,"c":false},{"a":13083,"n":"b_331B","k":"branch","len":1,"c":false},{"a":13091,"n":"j_3323","k":"branch","len":1,"c":false},{"a":13155,"n":"weapon_chars","k":"table","len":4,"c":true},{"a":13159,"n":"weapon_colours","k":"table","len":4,"c":true},{"a":13163,"n":"f_336B","k":"table","len":4,"c":true},{"a":13167,"n":"tac_data","k":"routine","len":70,"c":true},{"a":13194,"n":"b_338A","k":"branch","len":1,"c":false},{"a":13226,"n":"b_33AA","k":"branch","len":1,"c":false},{"a":13237,"n":"tac_name","k":"routine","len":53,"c":true},{"a":13253,"n":"b_33C5","k":"branch","len":1,"c":false},{"a":13275,"n":"j_33DB","k":"branch","len":1,"c":false},{"a":13289,"n":"r_33E9","k":"branch","len":1,"c":false},{"a":13290,"n":"tac_label","k":"routine","len":14,"c":true},{"a":13304,"n":"tac_range","k":"routine","len":61,"c":true},{"a":13357,"n":"b_342D","k":"branch","len":1,"c":false},{"a":13365,"n":"tac_tactic","k":"routine","len":40,"c":true},{"a":13404,"n":"r_345C","k":"branch","len":1,"c":false},{"a":13405,"n":"tac_armour","k":"routine","len":35,"c":true},{"a":13440,"n":"tac_systems","k":"routine","len":60,"c":true},{"a":13500,"n":"tac_system_letter","k":"routine","len":41,"c":true},{"a":13515,"n":"b_34CB","k":"branch","len":1,"c":false},{"a":13526,"n":"b_34D6","k":"branch","len":1,"c":false},{"a":13528,"n":"b_34D8","k":"branch","len":1,"c":false},{"a":13541,"n":"str_30km","k":"table","len":7,"c":true},{"a":13548,"n":"f_34EC","k":"table","len":21,"c":true},{"a":13569,"n":"tac_picture","k":"routine","len":75,"c":true},{"a":13576,"n":"b_3508","k":"branch","len":1,"c":false},{"a":13644,"n":"tac_draw_model","k":"routine","len":280,"c":true},{"a":13674,"n":"b_356A","k":"branch","len":1,"c":false},{"a":13686,"n":"b_3576","k":"branch","len":1,"c":false},{"a":13695,"n":"j_357F","k":"branch","len":1,"c":false},{"a":13803,"n":"b_35EB","k":"branch","len":1,"c":false},{"a":13924,"n":"tac_model_record","k":"table","len":6,"c":true},{"a":13930,"n":"tac_distance","k":"variable","len":1,"c":true},{"a":13931,"n":"a_366B","k":"variable","len":1,"c":true},{"a":13932,"n":"a_366C","k":"variable","len":1,"c":true},{"a":13933,"n":"print_ship_label","k":"routine","len":28,"c":true},{"a":13961,"n":"ship_ai","k":"routine","len":120,"c":true},{"a":13981,"n":"b_369D","k":"branch","len":1,"c":false},{"a":13985,"n":"b_36A1","k":"branch","len":1,"c":false},{"a":13995,"n":"b_36AB","k":"branch","len":1,"c":false},{"a":14025,"n":"b_36C9","k":"branch","len":1,"c":false},{"a":14049,"n":"b_36E1","k":"branch","len":1,"c":false},{"a":14055,"n":"b_36E7","k":"branch","len":1,"c":false},{"a":14071,"n":"b_36F7","k":"branch","len":1,"c":false},{"a":14080,"n":"r_3700","k":"branch","len":1,"c":false},{"a":14081,"n":"ai_find_target","k":"routine","len":56,"c":true},{"a":14091,"n":"b_370B","k":"branch","len":1,"c":false},{"a":14106,"n":"b_371A","k":"branch","len":1,"c":false},{"a":14135,"n":"b_3737","k":"branch","len":1,"c":false},{"a":14137,"n":"ai_attitude","k":"routine","len":38,"c":true},{"a":14162,"n":"b_3752","k":"branch","len":1,"c":false},{"a":14171,"n":"b_375B","k":"branch","len":1,"c":false},{"a":14174,"n":"r_375E","k":"branch","len":1,"c":false},{"a":14175,"n":"ai_tactic","k":"routine","len":73,"c":true},{"a":14204,"n":"b_377C","k":"branch","len":1,"c":false},{"a":14231,"n":"b_3797","k":"branch","len":1,"c":false},{"a":14240,"n":"b_37A0","k":"branch","len":1,"c":false},{"a":14244,"n":"j_37A4","k":"branch","len":1,"c":false},{"a":14247,"n":"r_37A7","k":"branch","len":1,"c":false},{"a":14248,"n":"ai_speed","k":"routine","len":63,"c":true},{"a":14287,"n":"b_37CF","k":"branch","len":1,"c":false},{"a":14300,"n":"b_37DC","k":"branch","len":1,"c":false},{"a":14303,"n":"b_37DF","k":"branch","len":1,"c":false},{"a":14311,"n":"ai_closing_speed","k":"routine","len":33,"c":true},{"a":14325,"n":"b_37F5","k":"branch","len":1,"c":false},{"a":14329,"n":"b_37F9","k":"branch","len":1,"c":false},{"a":14341,"n":"b_3805","k":"branch","len":1,"c":false},{"a":14343,"n":"r_3807","k":"branch","len":1,"c":false},{"a":14344,"n":"ai_tick","k":"variable","len":1,"c":true},{"a":14345,"n":"ai_think_tick","k":"variable","len":1,"c":true},{"a":14346,"n":"ai_tactic_choices","k":"table","len":7,"c":true},{"a":14353,"n":"ai_find_enemy","k":"routine","len":109,"c":true},{"a":14363,"n":"b_381B","k":"branch","len":1,"c":false},{"a":14401,"n":"b_3841","k":"branch","len":1,"c":false},{"a":14405,"n":"b_3845","k":"branch","len":1,"c":false},{"a":14414,"n":"b_384E","k":"branch","len":1,"c":false},{"a":14457,"n":"r_3879","k":"branch","len":1,"c":false},{"a":14458,"n":"b_387A","k":"branch","len":1,"c":false},{"a":14462,"n":"faction_attitude","k":"routine","len":51,"c":true},{"a":14489,"n":"b_3899","k":"branch","len":1,"c":false},{"a":14491,"n":"b_389B","k":"branch","len":1,"c":false},{"a":14495,"n":"b_389F","k":"branch","len":1,"c":false},{"a":14510,"n":"b_38AE","k":"branch","len":1,"c":false},{"a":14513,"n":"faction_table","k":"table","len":16,"c":true},{"a":14529,"n":"ai_fire","k":"routine","len":105,"c":true},{"a":14575,"n":"b_38EF","k":"branch","len":1,"c":false},{"a":14609,"n":"b_3911","k":"branch","len":1,"c":false},{"a":14612,"n":"b_3914","k":"branch","len":1,"c":false},{"a":14616,"n":"b_3918","k":"branch","len":1,"c":false},{"a":14630,"n":"b_3926","k":"branch","len":1,"c":false},{"a":14633,"n":"r_3929","k":"branch","len":1,"c":false},{"a":14634,"n":"key_surrender","k":"routine","len":259,"c":true},{"a":14666,"n":"b_394A","k":"branch","len":1,"c":false},{"a":14684,"n":"b_395C","k":"branch","len":1,"c":false},{"a":14715,"n":"b_397B","k":"branch","len":1,"c":false},{"a":14736,"n":"b_3990","k":"branch","len":1,"c":false},{"a":14743,"n":"b_3997","k":"branch","len":1,"c":false},{"a":14750,"n":"b_399E","k":"branch","len":1,"c":false},{"a":14773,"n":"b_39B5","k":"branch","len":1,"c":false},{"a":14780,"n":"b_39BC","k":"branch","len":1,"c":false},{"a":14815,"n":"b_39DF","k":"branch","len":1,"c":false},{"a":14822,"n":"b_39E6","k":"branch","len":1,"c":false},{"a":14846,"n":"b_39FE","k":"branch","len":1,"c":false},{"a":14853,"n":"j_3A05","k":"branch","len":1,"c":false},{"a":14858,"n":"b_3A0A","k":"branch","len":1,"c":false},{"a":14871,"n":"b_3A17","k":"branch","len":1,"c":false},{"a":14882,"n":"j_3A22","k":"branch","len":1,"c":false},{"a":14893,"n":"merchant_surrender","k":"routine","len":372,"c":true},{"a":14965,"n":"r_3A75","k":"branch","len":1,"c":false},{"a":14966,"n":"b_3A76","k":"branch","len":1,"c":false},{"a":14970,"n":"b_3A7A","k":"branch","len":1,"c":false},{"a":14985,"n":"b_3A89","k":"branch","len":1,"c":false},{"a":14990,"n":"b_3A8E","k":"branch","len":1,"c":false},{"a":15009,"n":"b_3AA1","k":"branch","len":1,"c":false},{"a":15053,"n":"b_3ACD","k":"branch","len":1,"c":false},{"a":15064,"n":"b_3AD8","k":"branch","len":1,"c":false},{"a":15075,"n":"b_3AE3","k":"branch","len":1,"c":false},{"a":15142,"n":"b_3B26","k":"branch","len":1,"c":false},{"a":15169,"n":"b_3B41","k":"branch","len":1,"c":false},{"a":15183,"n":"b_3B4F","k":"branch","len":1,"c":false},{"a":15196,"n":"b_3B5C","k":"branch","len":1,"c":false},{"a":15209,"n":"b_3B69","k":"branch","len":1,"c":false},{"a":15229,"n":"b_3B7D","k":"branch","len":1,"c":false},{"a":15251,"n":"b_3B93","k":"branch","len":1,"c":false},{"a":15257,"n":"j_3B99","k":"branch","len":1,"c":false},{"a":15265,"n":"ask_agree","k":"routine","len":42,"c":true},{"a":15307,"n":"str_quote_end","k":"table","len":21,"c":true},{"a":15328,"n":"ai_fight_score","k":"routine","len":176,"c":true},{"a":15339,"n":"b_3BEB","k":"branch","len":1,"c":false},{"a":15394,"n":"b_3C22","k":"branch","len":1,"c":false},{"a":15454,"n":"b_3C5E","k":"branch","len":1,"c":false},{"a":15465,"n":"b_3C69","k":"branch","len":1,"c":false},{"a":15476,"n":"b_3C74","k":"branch","len":1,"c":false},{"a":15485,"n":"b_3C7D","k":"branch","len":1,"c":false},{"a":15493,"n":"b_3C85","k":"branch","len":1,"c":false},{"a":15501,"n":"b_3C8D","k":"branch","len":1,"c":false},{"a":15504,"n":"change_standing","k":"routine","len":27,"c":true},{"a":15527,"n":"b_3CA7","k":"branch","len":1,"c":false},{"a":15530,"n":"r_3CAA","k":"branch","len":1,"c":false},{"a":15531,"n":"ai_steer","k":"routine","len":49,"c":true},{"a":15580,"n":"random_rates","k":"routine","len":133,"c":true},{"a":15598,"n":"r_3CEE","k":"branch","len":1,"c":false},{"a":15599,"n":"b_3CEF","k":"branch","len":1,"c":false},{"a":15630,"n":"b_3D0E","k":"branch","len":1,"c":false},{"a":15638,"n":"j_3D16","k":"branch","len":1,"c":false},{"a":15656,"n":"b_3D28","k":"branch","len":1,"c":false},{"a":15662,"n":"b_3D2E","k":"branch","len":1,"c":false},{"a":15666,"n":"b_3D32","k":"branch","len":1,"c":false},{"a":15694,"n":"j_3D4E","k":"branch","len":1,"c":false},{"a":15713,"n":"random_rate","k":"routine","len":8,"c":true},{"a":15721,"n":"steer_toward","k":"routine","len":164,"c":true},{"a":15795,"n":"b_3DB3","k":"branch","len":1,"c":false},{"a":15808,"n":"j_3DC0","k":"branch","len":1,"c":false},{"a":15885,"n":"random_label","k":"routine","len":16,"c":true},{"a":15901,"n":"random_label_char","k":"routine","len":15,"c":true},{"a":15913,"n":"b_3E29","k":"branch","len":1,"c":false},{"a":15916,"n":"build_draw_list","k":"routine","len":86,"c":true},{"a":15920,"n":"b_3E30","k":"branch","len":1,"c":false},{"a":15935,"n":"b_3E3F","k":"branch","len":1,"c":false},{"a":15977,"n":"b_3E69","k":"branch","len":1,"c":false},{"a":15981,"n":"b_3E6D","k":"branch","len":1,"c":false},{"a":15993,"n":"b_3E79","k":"branch","len":1,"c":false},{"a":16002,"n":"a_3E82","k":"routine","len":53,"c":true},{"a":16003,"n":"b_3E83","k":"branch","len":1,"c":false},{"a":16021,"n":"b_3E95","k":"branch","len":1,"c":false},{"a":16031,"n":"b_3E9F","k":"branch","len":1,"c":false},{"a":16054,"n":"r_3EB6","k":"branch","len":1,"c":false},{"a":16055,"n":"draw_list_count","k":"variable","len":1,"c":true},{"a":16056,"n":"in_view","k":"routine","len":316,"c":true},{"a":16115,"n":"b_3EF3","k":"branch","len":1,"c":false},{"a":16184,"n":"b_3F38","k":"branch","len":1,"c":false},{"a":16197,"n":"b_3F45","k":"branch","len":1,"c":false},{"a":16199,"n":"b_3F47","k":"branch","len":1,"c":false},{"a":16371,"n":"r_3FF3","k":"branch","len":1,"c":false},{"a":16372,"n":"sr_end_zeros","k":"table","len":12,"c":true},{"a":25600,"n":"draw_object","k":"routine","len":280,"c":true},{"a":25734,"n":"b_6486","k":"branch","len":1,"c":false},{"a":25764,"n":"j_64A4","k":"branch","len":1,"c":false},{"a":25852,"n":"b_64FC","k":"branch","len":1,"c":false},{"a":25859,"n":"b_6503","k":"branch","len":1,"c":false},{"a":25876,"n":"b_6514","k":"branch","len":1,"c":false},{"a":25879,"n":"r_6517","k":"branch","len":1,"c":false},{"a":25880,"n":"far_dot_colour","k":"variable","len":1,"c":true},{"a":25881,"n":"update_camera","k":"routine","len":151,"c":true},{"a":25887,"n":"b_651F","k":"branch","len":1,"c":false},{"a":25967,"n":"b_656F","k":"branch","len":1,"c":false},{"a":25983,"n":"j_657F","k":"branch","len":1,"c":false},{"a":26032,"n":"set_view","k":"routine","len":67,"c":true},{"a":26061,"n":"b_65CD","k":"branch","len":1,"c":false},{"a":26085,"n":"j_65E5","k":"branch","len":1,"c":false},{"a":26099,"n":"place_camera","k":"routine","len":69,"c":true},{"a":26157,"n":"b_662D","k":"branch","len":1,"c":false},{"a":26168,"n":"camera_offset","k":"routine","len":38,"c":true},{"a":26206,"n":"view_names","k":"variable","len":1,"c":true},{"a":26207,"n":"f_665F","k":"table","len":5,"c":true},{"a":26212,"n":"str_cockpit_view","k":"table","len":13,"c":true},{"a":26225,"n":"str_chase_view","k":"table","len":11,"c":true},{"a":26236,"n":"str_cinematic_view","k":"table","len":15,"c":true},{"a":26251,"n":"camera_pos","k":"variable","len":1,"c":true},{"a":26252,"n":"a_668C","k":"variable","len":1,"c":true},{"a":26253,"n":"a_668D","k":"table","len":7,"c":true},{"a":26260,"n":"camera_orient","k":"table","len":27,"c":true},{"a":26287,"n":"screen_size","k":"routine","len":27,"c":true},{"a":26313,"n":"r_66C9","k":"branch","len":1,"c":false},{"a":26314,"n":"set_projection","k":"routine","len":146,"c":true},{"a":26460,"n":"log_hypot1","k":"routine","len":23,"c":true},{"a":26483,"n":"project","k":"routine","len":141,"c":true},{"a":26574,"n":"b_67CE","k":"branch","len":1,"c":false},{"a":26598,"n":"b_67E6","k":"branch","len":1,"c":false},{"a":26624,"n":"j_6800","k":"routine","len":19,"c":true},{"a":26643,"n":"model_missile","k":"routine","len":11,"c":true},{"a":26654,"n":"model_missile_header","k":"table","len":36,"c":true},{"a":26690,"n":"model_missile_tables","k":"table","len":232,"c":true},{"a":26922,"n":"model_sunracer","k":"routine","len":11,"c":true},{"a":26933,"n":"model_sunracer_header","k":"table","len":36,"c":true},{"a":26969,"n":"model_sunracer_tables","k":"table","len":346,"c":true},{"a":27315,"n":"check_collisions","k":"routine","len":95,"c":true},{"a":27324,"n":"b_6ABC","k":"branch","len":1,"c":false},{"a":27348,"n":"b_6AD4","k":"branch","len":1,"c":false},{"a":27404,"n":"b_6B0C","k":"branch","len":1,"c":false},{"a":27410,"n":"b_6B12","k":"routine","len":16,"c":true},{"a":27420,"n":"b_6B1C","k":"branch","len":1,"c":false},{"a":27426,"n":"on_contact","k":"routine","len":74,"c":true},{"a":27451,"n":"b_6B3B","k":"branch","len":1,"c":false},{"a":27473,"n":"b_6B51","k":"branch","len":1,"c":false},{"a":27493,"n":"b_6B65","k":"branch","len":1,"c":false},{"a":27500,"n":"collide","k":"routine","len":62,"c":true},{"a":27532,"n":"b_6B8C","k":"branch","len":1,"c":false},{"a":27549,"n":"b_6B9D","k":"branch","len":1,"c":false},{"a":27559,"n":"b_6BA7","k":"branch","len":1,"c":false},{"a":27562,"n":"hit_shard","k":"routine","len":25,"c":true},{"a":27587,"n":"ram","k":"routine","len":130,"c":true},{"a":27605,"n":"b_6BD5","k":"branch","len":1,"c":false},{"a":27619,"n":"b_6BE3","k":"branch","len":1,"c":false},{"a":27717,"n":"b_6C45","k":"routine","len":15,"c":true},{"a":27732,"n":"gate_contact","k":"routine","len":42,"c":true},{"a":27773,"n":"r_6C7D","k":"branch","len":1,"c":false},{"a":27774,"n":"missile_hit","k":"routine","len":71,"c":true},{"a":27795,"n":"b_6C93","k":"branch","len":1,"c":false},{"a":27798,"n":"b_6C96","k":"branch","len":1,"c":false},{"a":27813,"n":"b_6CA5","k":"branch","len":1,"c":false},{"a":27822,"n":"b_6CAE","k":"branch","len":1,"c":false},{"a":27833,"n":"b_6CB9","k":"branch","len":1,"c":false},{"a":27845,"n":"hazard_hit","k":"routine","len":49,"c":true},{"a":27854,"n":"b_6CCE","k":"branch","len":1,"c":false},{"a":27894,"n":"contact_cooldown","k":"routine","len":18,"c":true},{"a":27911,"n":"r_6D07","k":"branch","len":1,"c":false},{"a":27912,"n":"bounce","k":"routine","len":201,"c":true},{"a":27951,"n":"b_6D2F","k":"branch","len":1,"c":false},{"a":28113,"n":"s_6DD1","k":"routine","len":51,"c":true},{"a":28164,"n":"reverse_velocity","k":"routine","len":25,"c":true},{"a":28189,"n":"back_off","k":"routine","len":28,"c":true},{"a":28217,"n":"jolt_turn","k":"routine","len":18,"c":true},{"a":28234,"n":"r_6E4A","k":"branch","len":1,"c":false},{"a":28235,"n":"blow_up","k":"routine","len":66,"c":true},{"a":28259,"n":"b_6E63","k":"branch","len":1,"c":false},{"a":28261,"n":"b_6E65","k":"branch","len":1,"c":false},{"a":28291,"n":"b_6E83","k":"branch","len":1,"c":false},{"a":28301,"n":"jolt_player","k":"routine","len":19,"c":true},{"a":28320,"n":"damage","k":"routine","len":107,"c":true},{"a":28354,"n":"r_6EC2","k":"branch","len":1,"c":false},{"a":28355,"n":"b_6EC3","k":"branch","len":1,"c":false},{"a":28368,"n":"b_6ED0","k":"branch","len":1,"c":false},{"a":28393,"n":"b_6EE9","k":"branch","len":1,"c":false},{"a":28401,"n":"b_6EF1","k":"branch","len":1,"c":false},{"a":28406,"n":"b_6EF6","k":"branch","len":1,"c":false},{"a":28427,"n":"b_6F0B","k":"routine","len":13,"c":true},{"a":28440,"n":"b_6F18","k":"routine","len":51,"c":true},{"a":28459,"n":"b_6F2B","k":"branch","len":1,"c":false},{"a":28484,"n":"b_6F44","k":"branch","len":1,"c":false},{"a":28486,"n":"j_6F46","k":"branch","len":1,"c":false},{"a":28491,"n":"b_6F4B","k":"routine","len":61,"c":true},{"a":28504,"n":"b_6F58","k":"branch","len":1,"c":false},{"a":28507,"n":"b_6F5B","k":"branch","len":1,"c":false},{"a":28552,"n":"shield_reduce","k":"routine","len":63,"c":true},{"a":28591,"n":"b_6FAF","k":"branch","len":1,"c":false},{"a":28597,"n":"b_6FB5","k":"branch","len":1,"c":false},{"a":28605,"n":"b_6FBD","k":"branch","len":1,"c":false},{"a":28607,"n":"b_6FBF","k":"branch","len":1,"c":false},{"a":28612,"n":"b_6FC4","k":"branch","len":1,"c":false},{"a":28614,"n":"r_6FC6","k":"branch","len":1,"c":false},{"a":28615,"n":"random_system","k":"routine","len":18,"c":true},{"a":28626,"n":"b_6FD2","k":"branch","len":1,"c":false},{"a":28633,"n":"system_msgs","k":"variable","len":1,"c":true},{"a":28634,"n":"f_6FDA","k":"table","len":11,"c":true},{"a":28645,"n":"str_system_hit","k":"table","len":78,"c":true},{"a":28723,"n":"dock_check","k":"routine","len":47,"c":true},{"a":28760,"n":"b_7058","k":"branch","len":1,"c":false},{"a":28770,"n":"facing_face","k":"routine","len":50,"c":true},{"a":28776,"n":"b_7068","k":"branch","len":1,"c":false},{"a":28786,"n":"b_7072","k":"branch","len":1,"c":false},{"a":28801,"n":"b_7081","k":"branch","len":1,"c":false},{"a":28814,"n":"b_708E","k":"branch","len":1,"c":false},{"a":28816,"n":"r_7090","k":"branch","len":1,"c":false},{"a":28817,"n":"b_7091","k":"branch","len":1,"c":false},{"a":28820,"n":"dock","k":"routine","len":158,"c":true},{"a":28830,"n":"b_709E","k":"branch","len":1,"c":false},{"a":28881,"n":"b_70D1","k":"branch","len":1,"c":false},{"a":28978,"n":"exit_speed","k":"variable","len":1,"c":true},{"a":28979,"n":"a_7133","k":"variable","len":1,"c":true},{"a":28980,"n":"gate_jump","k":"routine","len":20,"c":true},{"a":29000,"n":"b_7148","k":"routine","len":35,"c":true},{"a":29023,"n":"b_715F","k":"branch","len":1,"c":false},{"a":29035,"n":"b_716B","k":"routine","len":114,"c":true},{"a":29058,"n":"b_7182","k":"branch","len":1,"c":false},{"a":29061,"n":"b_7185","k":"branch","len":1,"c":false},{"a":29100,"n":"b_71AC","k":"branch","len":1,"c":false},{"a":29132,"n":"b_71CC","k":"branch","len":1,"c":false},{"a":29149,"n":"b_71DD","k":"routine","len":138,"c":true},{"a":29172,"n":"b_71F4","k":"branch","len":1,"c":false},{"a":29216,"n":"b_7220","k":"branch","len":1,"c":false},{"a":29251,"n":"j_7243","k":"branch","len":1,"c":false},{"a":29287,"n":"show_frame","k":"routine","len":17,"c":true},{"a":29297,"n":"b_7271","k":"branch","len":1,"c":false},{"a":29300,"n":"j_7274","k":"branch","len":1,"c":false},{"a":29303,"n":"r_7277","k":"branch","len":1,"c":false},{"a":29304,"n":"wormhole_step","k":"routine","len":69,"c":true},{"a":29323,"n":"b_728B","k":"branch","len":1,"c":false},{"a":29326,"n":"b_728E","k":"branch","len":1,"c":false},{"a":29345,"n":"b_72A1","k":"branch","len":1,"c":false},{"a":29361,"n":"b_72B1","k":"branch","len":1,"c":false},{"a":29373,"n":"gate_dest","k":"variable","len":1,"c":true},{"a":29374,"n":"a_72BE","k":"variable","len":1,"c":true},{"a":29375,"n":"a_72BF","k":"variable","len":1,"c":true},{"a":29376,"n":"a_72C0","k":"variable","len":1,"c":true},{"a":29377,"n":"wormhole_rings","k":"routine","len":294,"c":true},{"a":29393,"n":"b_72D1","k":"branch","len":1,"c":false},{"a":29407,"n":"b_72DF","k":"branch","len":1,"c":false},{"a":29439,"n":"b_72FF","k":"branch","len":1,"c":false},{"a":29471,"n":"b_731F","k":"branch","len":1,"c":false},{"a":29495,"n":"b_7337","k":"branch","len":1,"c":false},{"a":29536,"n":"r_7360","k":"branch","len":1,"c":false},{"a":29537,"n":"b_7361","k":"branch","len":1,"c":false},{"a":29549,"n":"b_736D","k":"branch","len":1,"c":false},{"a":29596,"n":"b_739C","k":"branch","len":1,"c":false},{"a":29626,"n":"b_73BA","k":"branch","len":1,"c":false},{"a":29649,"n":"b_73D1","k":"branch","len":1,"c":false},{"a":29655,"n":"b_73D7","k":"branch","len":1,"c":false},{"a":29671,"n":"ring_drift","k":"routine","len":69,"c":true},{"a":29697,"n":"b_7401","k":"branch","len":1,"c":false},{"a":29718,"n":"b_7416","k":"branch","len":1,"c":false},{"a":29722,"n":"b_741A","k":"branch","len":1,"c":false},{"a":29740,"n":"make_wormhole","k":"routine","len":83,"c":true},{"a":29764,"n":"b_7444","k":"branch","len":1,"c":false},{"a":29778,"n":"b_7452","k":"branch","len":1,"c":false},{"a":29823,"n":"ring_type","k":"routine","len":18,"c":true},{"a":29840,"n":"r_7490","k":"branch","len":1,"c":false},{"a":29841,"n":"drift_signs","k":"variable","len":2,"c":true},{"a":29843,"n":"f_7493","k":"table","len":8,"c":true},{"a":29851,"n":"ring_count","k":"variable","len":1,"c":true},{"a":29852,"n":"a_749C","k":"variable","len":1,"c":true},{"a":29853,"n":"a_749D","k":"variable","len":1,"c":true},{"a":29854,"n":"a_749E","k":"variable","len":1,"c":true},{"a":29855,"n":"a_749F","k":"variable","len":1,"c":true},{"a":29856,"n":"a_74A0","k":"variable","len":1,"c":true},{"a":29857,"n":"a_74A1","k":"variable","len":1,"c":true},{"a":29858,"n":"a_74A2","k":"variable","len":1,"c":true},{"a":29859,"n":"within_range","k":"routine","len":48,"c":true},{"a":29861,"n":"b_74A5","k":"branch","len":1,"c":false},{"a":29890,"n":"b_74C2","k":"branch","len":1,"c":false},{"a":29900,"n":"b_74CC","k":"branch","len":1,"c":false},{"a":29906,"n":"r_74D2","k":"branch","len":1,"c":false},{"a":29907,"n":"apply_thrust","k":"routine","len":109,"c":true},{"a":29911,"n":"b_74D7","k":"branch","len":1,"c":false},{"a":29919,"n":"b_74DF","k":"branch","len":1,"c":false},{"a":30015,"n":"r_753F","k":"branch","len":1,"c":false},{"a":30016,"n":"cruise_thrust","k":"routine","len":136,"c":true},{"a":30133,"n":"b_75B5","k":"branch","len":1,"c":false},{"a":30152,"n":"forward_times","k":"routine","len":38,"c":true},{"a":30190,"n":"engine_damage","k":"routine","len":14,"c":true},{"a":30203,"n":"r_75FB","k":"branch","len":1,"c":false},{"a":30204,"n":"move_objects","k":"routine","len":56,"c":true},{"a":30206,"n":"b_75FE","k":"branch","len":1,"c":false},{"a":30256,"n":"b_7630","k":"branch","len":1,"c":false},{"a":30260,"n":"turn_objects","k":"routine","len":141,"c":true},{"a":30264,"n":"b_7638","k":"branch","len":1,"c":false},{"a":30276,"n":"b_7644","k":"branch","len":1,"c":false},{"a":30290,"n":"b_7652","k":"branch","len":1,"c":false},{"a":30401,"n":"rate_to_radians","k":"routine","len":28,"c":true},{"a":30410,"n":"b_76CA","k":"branch","len":1,"c":false},{"a":30429,"n":"turn_ship","k":"routine","len":149,"c":true},{"a":30475,"n":"b_770B","k":"branch","len":1,"c":false},{"a":30478,"n":"b_770E","k":"branch","len":1,"c":false},{"a":30491,"n":"b_771B","k":"branch","len":1,"c":false},{"a":30506,"n":"b_772A","k":"branch","len":1,"c":false},{"a":30509,"n":"b_772D","k":"branch","len":1,"c":false},{"a":30522,"n":"b_773A","k":"branch","len":1,"c":false},{"a":30537,"n":"b_7749","k":"branch","len":1,"c":false},{"a":30540,"n":"b_774C","k":"branch","len":1,"c":false},{"a":30553,"n":"b_7759","k":"branch","len":1,"c":false},{"a":30578,"n":"place_particles","k":"routine","len":44,"c":true},{"a":30586,"n":"b_777A","k":"branch","len":1,"c":false},{"a":30610,"n":"b_7792","k":"branch","len":1,"c":false},{"a":30613,"n":"b_7795","k":"branch","len":1,"c":false},{"a":30622,"n":"place_particle","k":"routine","len":154,"c":true},{"a":30654,"n":"b_77BE","k":"branch","len":1,"c":false},{"a":30741,"n":"b_7815","k":"branch","len":1,"c":false},{"a":30776,"n":"ahead_of_camera","k":"routine","len":58,"c":true},{"a":30834,"n":"last_ahead","k":"table","len":9,"c":true},{"a":30843,"n":"gravity","k":"routine","len":113,"c":true},{"a":30847,"n":"b_787F","k":"branch","len":1,"c":false},{"a":30887,"n":"b_78A7","k":"branch","len":1,"c":false},{"a":30941,"n":"b_78DD","k":"branch","len":1,"c":false},{"a":30947,"n":"b_78E3","k":"branch","len":1,"c":false},{"a":30956,"n":"gravity_pull","k":"routine","len":91,"c":true},{"a":31041,"n":"b_7941","k":"branch","len":1,"c":false},{"a":31047,"n":"bearing","k":"routine","len":54,"c":true},{"a":31101,"n":"a_797D","k":"routine","len":18,"c":true},{"a":31119,"n":"draw_target_arrows","k":"routine","len":224,"c":true},{"a":31127,"n":"b_7997","k":"branch","len":1,"c":false},{"a":31206,"n":"b_79E6","k":"branch","len":1,"c":false},{"a":31208,"n":"b_79E8","k":"branch","len":1,"c":false},{"a":31210,"n":"b_79EA","k":"branch","len":1,"c":false},{"a":31214,"n":"b_79EE","k":"branch","len":1,"c":false},{"a":31220,"n":"b_79F4","k":"branch","len":1,"c":false},{"a":31234,"n":"b_7A02","k":"branch","len":1,"c":false},{"a":31236,"n":"b_7A04","k":"branch","len":1,"c":false},{"a":31238,"n":"b_7A06","k":"branch","len":1,"c":false},{"a":31242,"n":"b_7A0A","k":"branch","len":1,"c":false},{"a":31248,"n":"b_7A10","k":"branch","len":1,"c":false},{"a":31299,"n":"b_7A43","k":"branch","len":1,"c":false},{"a":31343,"n":"arrow_right","k":"routine","len":112,"c":true},{"a":31373,"n":"b_7A8D","k":"branch","len":1,"c":false},{"a":31384,"n":"b_7A98","k":"branch","len":1,"c":false},{"a":31395,"n":"b_7AA3","k":"branch","len":1,"c":false},{"a":31406,"n":"b_7AAE","k":"branch","len":1,"c":false},{"a":31417,"n":"b_7AB9","k":"branch","len":1,"c":false},{"a":31428,"n":"b_7AC4","k":"branch","len":1,"c":false},{"a":31439,"n":"b_7ACF","k":"branch","len":1,"c":false},{"a":31450,"n":"b_7ADA","k":"branch","len":1,"c":false},{"a":31455,"n":"arrow_left","k":"routine","len":112,"c":true},{"a":31485,"n":"b_7AFD","k":"branch","len":1,"c":false},{"a":31496,"n":"b_7B08","k":"branch","len":1,"c":false},{"a":31507,"n":"b_7B13","k":"branch","len":1,"c":false},{"a":31518,"n":"b_7B1E","k":"branch","len":1,"c":false},{"a":31529,"n":"b_7B29","k":"branch","len":1,"c":false},{"a":31540,"n":"b_7B34","k":"branch","len":1,"c":false},{"a":31551,"n":"b_7B3F","k":"branch","len":1,"c":false},{"a":31562,"n":"b_7B4A","k":"branch","len":1,"c":false},{"a":31567,"n":"arrow_up","k":"routine","len":102,"c":true},{"a":31606,"n":"b_7B76","k":"branch","len":1,"c":false},{"a":31612,"n":"b_7B7C","k":"branch","len":1,"c":false},{"a":31618,"n":"b_7B82","k":"branch","len":1,"c":false},{"a":31629,"n":"b_7B8D","k":"branch","len":1,"c":false},{"a":31635,"n":"b_7B93","k":"branch","len":1,"c":false},{"a":31641,"n":"b_7B99","k":"branch","len":1,"c":false},{"a":31652,"n":"b_7BA4","k":"branch","len":1,"c":false},{"a":31658,"n":"b_7BAA","k":"branch","len":1,"c":false},{"a":31664,"n":"b_7BB0","k":"branch","len":1,"c":false},{"a":31669,"n":"arrow_down","k":"routine","len":108,"c":true},{"a":31708,"n":"b_7BDC","k":"branch","len":1,"c":false},{"a":31716,"n":"b_7BE4","k":"branch","len":1,"c":false},{"a":31722,"n":"b_7BEA","k":"branch","len":1,"c":false},{"a":31733,"n":"b_7BF5","k":"branch","len":1,"c":false},{"a":31741,"n":"b_7BFD","k":"branch","len":1,"c":false},{"a":31747,"n":"b_7C03","k":"branch","len":1,"c":false},{"a":31758,"n":"b_7C0E","k":"branch","len":1,"c":false},{"a":31766,"n":"b_7C16","k":"branch","len":1,"c":false},{"a":31772,"n":"b_7C1C","k":"branch","len":1,"c":false},{"a":31777,"n":"speed_of","k":"routine","len":49,"c":true},{"a":31826,"n":"slot_pos_ptr","k":"routine","len":15,"c":true},{"a":31841,"n":"draw_model","k":"routine","len":58,"c":true},{"a":31859,"n":"b_7C73","k":"branch","len":1,"c":false},{"a":31877,"n":"b_7C85","k":"branch","len":1,"c":false},{"a":31890,"n":"b_7C92","k":"branch","len":1,"c":false},{"a":31899,"n":"prepare_model","k":"routine","len":272,"c":true},{"a":31921,"n":"b_7CB1","k":"branch","len":1,"c":false},{"a":31943,"n":"b_7CC7","k":"branch","len":1,"c":false},{"a":31996,"n":"b_7CFC","k":"branch","len":1,"c":false},{"a":31999,"n":"b_7CFF","k":"branch","len":1,"c":false},{"a":32044,"n":"b_7D2C","k":"branch","len":1,"c":false},{"a":32171,"n":"place_points","k":"routine","len":187,"c":true},{"a":32176,"n":"b_7DB0","k":"branch","len":1,"c":false},{"a":32225,"n":"j_7DE1","k":"branch","len":1,"c":false},{"a":32249,"n":"b_7DF9","k":"branch","len":1,"c":false},{"a":32257,"n":"j_7E01","k":"branch","len":1,"c":false},{"a":32282,"n":"b_7E1A","k":"branch","len":1,"c":false},{"a":32307,"n":"j_7E33","k":"branch","len":1,"c":false},{"a":32346,"n":"b_7E5A","k":"branch","len":1,"c":false},{"a":32357,"n":"r_7E65","k":"branch","len":1,"c":false},{"a":32358,"n":"face_signs","k":"routine","len":112,"c":true},{"a":32388,"n":"b_7E84","k":"branch","len":1,"c":false},{"a":32402,"n":"b_7E92","k":"branch","len":1,"c":false},{"a":32413,"n":"b_7E9D","k":"branch","len":1,"c":false},{"a":32422,"n":"b_7EA6","k":"branch","len":1,"c":false},{"a":32470,"n":"draw_polygons","k":"routine","len":96,"c":true},{"a":32474,"n":"b_7EDA","k":"branch","len":1,"c":false},{"a":32491,"n":"b_7EEB","k":"branch","len":1,"c":false},{"a":32497,"n":"b_7EF1","k":"branch","len":1,"c":false},{"a":32500,"n":"b_7EF4","k":"branch","len":1,"c":false},{"a":32512,"n":"b_7F00","k":"branch","len":1,"c":false},{"a":32519,"n":"b_7F07","k":"branch","len":1,"c":false},{"a":32531,"n":"b_7F13","k":"branch","len":1,"c":false},{"a":32548,"n":"b_7F24","k":"branch","len":1,"c":false},{"a":32554,"n":"b_7F2A","k":"branch","len":1,"c":false},{"a":32557,"n":"b_7F2D","k":"branch","len":1,"c":false},{"a":32566,"n":"draw_polygon","k":"routine","len":56,"c":true},{"a":32582,"n":"r_7F46","k":"branch","len":1,"c":false},{"a":32583,"n":"b_7F47","k":"branch","len":1,"c":false},{"a":32589,"n":"b_7F4D","k":"branch","len":1,"c":false},{"a":32602,"n":"b_7F5A","k":"branch","len":1,"c":false},{"a":32609,"n":"b_7F61","k":"branch","len":1,"c":false},{"a":32622,"n":"point_ptr","k":"routine","len":16,"c":true},{"a":32638,"n":"clip_polygon","k":"routine","len":101,"c":true},{"a":32645,"n":"b_7F85","k":"branch","len":1,"c":false},{"a":32674,"n":"b_7FA2","k":"branch","len":1,"c":false},{"a":32728,"n":"b_7FD8","k":"branch","len":1,"c":false},{"a":32739,"n":"clip_edges","k":"routine","len":87,"c":true},{"a":32752,"n":"b_7FF0","k":"branch","len":1,"c":false},{"a":32784,"n":"b_8010","k":"branch","len":1,"c":false},{"a":32795,"n":"b_801B","k":"branch","len":1,"c":false},{"a":32804,"n":"b_8024","k":"branch","len":1,"c":false},{"a":32815,"n":"b_802F","k":"branch","len":1,"c":false},{"a":32816,"n":"b_8030","k":"branch","len":1,"c":false},{"a":32826,"n":"new_vertex","k":"routine","len":82,"c":true},{"a":32866,"n":"b_8062","k":"branch","len":1,"c":false},{"a":32869,"n":"j_8065","k":"branch","len":1,"c":false},{"a":32888,"n":"b_8078","k":"branch","len":1,"c":false},{"a":32908,"n":"count_in_front","k":"routine","len":42,"c":true},{"a":32917,"n":"b_8095","k":"branch","len":1,"c":false},{"a":32932,"n":"b_80A4","k":"branch","len":1,"c":false},{"a":32943,"n":"b_80AF","k":"branch","len":1,"c":false},{"a":32948,"n":"b_80B4","k":"branch","len":1,"c":false},{"a":32950,"n":"j_80B6","k":"routine","len":49,"c":true},{"a":32955,"n":"b_80BB","k":"branch","len":1,"c":false},{"a":32999,"n":"plane_side","k":"routine","len":95,"c":true},{"a":33010,"n":"b_80F2","k":"branch","len":1,"c":false},{"a":33014,"n":"j_80F6","k":"branch","len":1,"c":false},{"a":33092,"n":"b_8144","k":"branch","len":1,"c":false},{"a":33094,"n":"a_8146","k":"routine","len":5,"c":true},{"a":33098,"n":"r_814A","k":"branch","len":1,"c":false},{"a":33099,"n":"intersect_neg","k":"routine","len":21,"c":true},{"a":33120,"n":"intersect_pos","k":"routine","len":12,"c":true},{"a":33132,"n":"intersect_core","k":"routine","len":284,"c":true},{"a":33416,"n":"fill_polygon","k":"routine","len":111,"c":true},{"a":33426,"n":"r_8292","k":"branch","len":1,"c":false},{"a":33427,"n":"b_8293","k":"branch","len":1,"c":false},{"a":33433,"n":"b_8299","k":"branch","len":1,"c":false},{"a":33446,"n":"b_82A6","k":"branch","len":1,"c":false},{"a":33469,"n":"b_82BD","k":"branch","len":1,"c":false},{"a":33527,"n":"clip_side","k":"routine","len":41,"c":true},{"a":33544,"n":"b_8308","k":"branch","len":1,"c":false},{"a":33568,"n":"a_8320","k":"routine","len":35,"c":true},{"a":33572,"n":"b_8324","k":"branch","len":1,"c":false},{"a":33579,"n":"b_832B","k":"branch","len":1,"c":false},{"a":33603,"n":"a_8343","k":"routine","len":111,"c":true},{"a":33607,"n":"b_8347","k":"branch","len":1,"c":false},{"a":33636,"n":"b_8364","k":"branch","len":1,"c":false},{"a":33646,"n":"b_836E","k":"branch","len":1,"c":false},{"a":33681,"n":"b_8391","k":"branch","len":1,"c":false},{"a":33697,"n":"b_83A1","k":"branch","len":1,"c":false},{"a":33711,"n":"j_83AF","k":"branch","len":1,"c":false},{"a":33714,"n":"clip_point","k":"routine","len":323,"c":true},{"a":33761,"n":"b_83E1","k":"branch","len":1,"c":false},{"a":33899,"n":"j_846B","k":"branch","len":1,"c":false},{"a":34037,"n":"close_polygon","k":"routine","len":25,"c":true},{"a":34062,"n":"scan_fill","k":"routine","len":134,"c":true},{"a":34077,"n":"b_851D","k":"branch","len":1,"c":false},{"a":34087,"n":"b_8527","k":"branch","len":1,"c":false},{"a":34115,"n":"b_8543","k":"branch","len":1,"c":false},{"a":34124,"n":"b_854C","k":"branch","len":1,"c":false},{"a":34129,"n":"b_8551","k":"branch","len":1,"c":false},{"a":34141,"n":"b_855D","k":"branch","len":1,"c":false},{"a":34146,"n":"b_8562","k":"branch","len":1,"c":false},{"a":34159,"n":"b_856F","k":"branch","len":1,"c":false},{"a":34178,"n":"b_8582","k":"branch","len":1,"c":false},{"a":34184,"n":"b_8588","k":"branch","len":1,"c":false},{"a":34196,"n":"left_edge","k":"routine","len":83,"c":true},{"a":34214,"n":"b_85A6","k":"branch","len":1,"c":false},{"a":34252,"n":"b_85CC","k":"branch","len":1,"c":false},{"a":34261,"n":"b_85D5","k":"branch","len":1,"c":false},{"a":34272,"n":"b_85E0","k":"branch","len":1,"c":false},{"a":34276,"n":"b_85E4","k":"branch","len":1,"c":false},{"a":34279,"n":"right_edge","k":"routine","len":81,"c":true},{"a":34298,"n":"b_85FA","k":"branch","len":1,"c":false},{"a":34336,"n":"b_8620","k":"branch","len":1,"c":false},{"a":34345,"n":"b_8629","k":"branch","len":1,"c":false},{"a":34356,"n":"b_8634","k":"branch","len":1,"c":false},{"a":34360,"n":"animate_chart","k":"routine","len":32,"c":true},{"a":34362,"n":"b_863A","k":"branch","len":1,"c":false},{"a":34388,"n":"b_8654","k":"branch","len":1,"c":false},{"a":34392,"n":"draw_chart","k":"routine","len":135,"c":true},{"a":34437,"n":"j_8685","k":"branch","len":1,"c":false},{"a":34465,"n":"b_86A1","k":"branch","len":1,"c":false},{"a":34479,"n":"b_86AF","k":"branch","len":1,"c":false},{"a":34487,"n":"b_86B7","k":"branch","len":1,"c":false},{"a":34518,"n":"b_86D6","k":"branch","len":1,"c":false},{"a":34527,"n":"a_86DF","k":"routine","len":7,"c":true},{"a":34534,"n":"a_86E6","k":"routine","len":38,"c":true},{"a":34571,"n":"b_870B","k":"branch","len":1,"c":false},{"a":34572,"n":"a_870C","k":"routine","len":2,"c":true},{"a":34574,"n":"a_870E","k":"routine","len":1,"c":true},{"a":34575,"n":"a_870F","k":"routine","len":4,"c":true},{"a":34579,"n":"a_8713","k":"routine","len":9,"c":true},{"a":34588,"n":"a_871C","k":"routine","len":26,"c":true},{"a":34613,"n":"b_8735","k":"branch","len":1,"c":false},{"a":34614,"n":"a_8736","k":"routine","len":2,"c":true},{"a":34616,"n":"a_8738","k":"routine","len":1,"c":true},{"a":34617,"n":"a_8739","k":"routine","len":42,"c":true},{"a":34633,"n":"b_8749","k":"branch","len":1,"c":false},{"a":34651,"n":"b_875B","k":"branch","len":1,"c":false},{"a":34658,"n":"r_8762","k":"branch","len":1,"c":false},{"a":34659,"n":"chart_cell_index","k":"routine","len":22,"c":true},{"a":34681,"n":"draw_brackets","k":"routine","len":81,"c":true},{"a":34755,"n":"b_87C3","k":"branch","len":1,"c":false},{"a":34762,"n":"a_87CA","k":"routine","len":7,"c":true},{"a":34769,"n":"a_87D1","k":"routine","len":8,"c":true},{"a":34777,"n":"a_87D9","k":"routine","len":1,"c":true},{"a":34778,"n":"a_87DA","k":"routine","len":2,"c":true},{"a":34780,"n":"a_87DC","k":"routine","len":1,"c":true},{"a":34781,"n":"a_87DD","k":"routine","len":8,"c":true},{"a":34789,"n":"a_87E5","k":"routine","len":1,"c":true},{"a":34790,"n":"a_87E6","k":"routine","len":2,"c":true},{"a":34792,"n":"a_87E8","k":"routine","len":1,"c":true},{"a":34793,"n":"a_87E9","k":"routine","len":21,"c":true},{"a":34814,"n":"window_view","k":"routine","len":18,"c":true},{"a":34832,"n":"window_full","k":"routine","len":18,"c":true},{"a":34850,"n":"window_right","k":"routine","len":18,"c":true},{"a":34868,"n":"draw_disc","k":"routine","len":176,"c":true},{"a":34897,"n":"b_8851","k":"branch","len":1,"c":false},{"a":34959,"n":"b_888F","k":"branch","len":1,"c":false},{"a":34965,"n":"b_8895","k":"branch","len":1,"c":false},{"a":34968,"n":"b_8898","k":"branch","len":1,"c":false},{"a":34971,"n":"j_889B","k":"branch","len":1,"c":false},{"a":34979,"n":"b_88A3","k":"branch","len":1,"c":false},{"a":34985,"n":"b_88A9","k":"branch","len":1,"c":false},{"a":34995,"n":"b_88B3","k":"branch","len":1,"c":false},{"a":35005,"n":"b_88BD","k":"branch","len":1,"c":false},{"a":35013,"n":"b_88C5","k":"branch","len":1,"c":false},{"a":35015,"n":"b_88C7","k":"branch","len":1,"c":false},{"a":35029,"n":"b_88D5","k":"branch","len":1,"c":false},{"a":35043,"n":"r_88E3","k":"branch","len":1,"c":false},{"a":35044,"n":"draw_ring","k":"routine","len":145,"c":true},{"a":35051,"n":"b_88EB","k":"branch","len":1,"c":false},{"a":35111,"n":"b_8927","k":"branch","len":1,"c":false},{"a":35119,"n":"b_892F","k":"branch","len":1,"c":false},{"a":35125,"n":"b_8935","k":"branch","len":1,"c":false},{"a":35135,"n":"b_893F","k":"branch","len":1,"c":false},{"a":35145,"n":"b_8949","k":"branch","len":1,"c":false},{"a":35153,"n":"b_8951","k":"branch","len":1,"c":false},{"a":35155,"n":"b_8953","k":"branch","len":1,"c":false},{"a":35177,"n":"b_8969","k":"branch","len":1,"c":false},{"a":35189,"n":"b_8975","k":"routine","len":38,"c":true},{"a":35227,"n":"s_899B","k":"routine","len":52,"c":true},{"a":35279,"n":"draw_burst","k":"routine","len":57,"c":true},{"a":35293,"n":"b_89DD","k":"branch","len":1,"c":false},{"a":35295,"n":"b_89DF","k":"branch","len":1,"c":false},{"a":35328,"n":"b_8A00","k":"branch","len":1,"c":false},{"a":35336,"n":"draw_annulus","k":"routine","len":33,"c":true},{"a":35368,"n":"r_8A28","k":"branch","len":1,"c":false},{"a":35369,"n":"draw_ragged","k":"routine","len":225,"c":true},{"a":35378,"n":"b_8A32","k":"branch","len":1,"c":false},{"a":35444,"n":"b_8A74","k":"branch","len":1,"c":false},{"a":35450,"n":"b_8A7A","k":"branch","len":1,"c":false},{"a":35453,"n":"b_8A7D","k":"branch","len":1,"c":false},{"a":35478,"n":"j_8A96","k":"branch","len":1,"c":false},{"a":35486,"n":"b_8A9E","k":"branch","len":1,"c":false},{"a":35492,"n":"b_8AA4","k":"branch","len":1,"c":false},{"a":35502,"n":"b_8AAE","k":"branch","len":1,"c":false},{"a":35512,"n":"b_8AB8","k":"branch","len":1,"c":false},{"a":35520,"n":"b_8AC0","k":"branch","len":1,"c":false},{"a":35522,"n":"b_8AC2","k":"branch","len":1,"c":false},{"a":35570,"n":"b_8AF2","k":"branch","len":1,"c":false},{"a":35579,"n":"b_8AFB","k":"branch","len":1,"c":false},{"a":35593,"n":"r_8B09","k":"branch","len":1,"c":false},{"a":35594,"n":"a_8B0A","k":"variable","len":1,"c":true},{"a":35595,"n":"f_8B0B","k":"table","len":16,"c":true},{"a":35611,"n":"draw_sparks","k":"routine","len":9,"c":true},{"a":35620,"n":"spray_triangles","k":"routine","len":22,"c":true},{"a":35628,"n":"b_8B2C","k":"branch","len":1,"c":false},{"a":35634,"n":"b_8B32","k":"branch","len":1,"c":false},{"a":35642,"n":"spray_triangle","k":"routine","len":181,"c":true},{"a":35656,"n":"b_8B48","k":"branch","len":1,"c":false},{"a":35672,"n":"b_8B58","k":"branch","len":1,"c":false},{"a":35763,"n":"b_8BB3","k":"branch","len":1,"c":false},{"a":35813,"n":"j_8BE5","k":"branch","len":1,"c":false},{"a":35823,"n":"draw_flicker","k":"routine","len":52,"c":true},{"a":35831,"n":"b_8BF7","k":"branch","len":1,"c":false},{"a":35875,"n":"draw_bar","k":"routine","len":80,"c":true},{"a":35955,"n":"span_clipped","k":"routine","len":6,"c":true},{"a":35961,"n":"s_8C79","k":"routine","len":1,"c":true},{"a":35962,"n":"a_8C7A","k":"routine","len":12,"c":true},{"a":35974,"n":"a_8C86","k":"routine","len":4,"c":true},{"a":35977,"n":"b_8C89","k":"branch","len":1,"c":false},{"a":35978,"n":"a_8C8A","k":"routine","len":10,"c":true},{"a":35979,"n":"b_8C8B","k":"branch","len":1,"c":false},{"a":35988,"n":"a_8C94","k":"routine","len":8,"c":true},{"a":35991,"n":"r_8C97","k":"branch","len":1,"c":false},{"a":35992,"n":"b_8C98","k":"branch","len":1,"c":false},{"a":35994,"n":"b_8C9A","k":"branch","len":1,"c":false},{"a":35996,"n":"span","k":"routine","len":1,"c":true},{"a":35997,"n":"a_8C9D","k":"routine","len":1,"c":true},{"a":35998,"n":"a_8C9E","k":"routine","len":4,"c":true},{"a":36002,"n":"a_8CA2","k":"routine","len":1,"c":true},{"a":36003,"n":"a_8CA3","k":"routine","len":8,"c":true},{"a":36011,"n":"a_8CAB","k":"routine","len":1,"c":true},{"a":36012,"n":"a_8CAC","k":"routine","len":40,"c":true},{"a":36052,"n":"a_8CD4","k":"routine","len":1,"c":true},{"a":36053,"n":"a_8CD5","k":"routine","len":9,"c":true},{"a":36062,"n":"a_8CDE","k":"routine","len":1,"c":true},{"a":36063,"n":"a_8CDF","k":"routine","len":8,"c":true},{"a":36071,"n":"a_8CE7","k":"routine","len":1,"c":true},{"a":36072,"n":"a_8CE8","k":"routine","len":25,"c":true},{"a":36096,"n":"b_8D00","k":"branch","len":1,"c":false},{"a":36097,"n":"a_8D01","k":"routine","len":1,"c":true},{"a":36098,"n":"a_8D02","k":"routine","len":3,"c":true},{"a":36101,"n":"a_8D05","k":"routine","len":1,"c":true},{"a":36102,"n":"a_8D06","k":"routine","len":4,"c":true},{"a":36106,"n":"a_8D0A","k":"routine","len":1,"c":true},{"a":36107,"n":"a_8D0B","k":"routine","len":2,"c":true},{"a":36109,"n":"a_8D0D","k":"routine","len":1,"c":true},{"a":36110,"n":"a_8D0E","k":"routine","len":6,"c":true},{"a":36116,"n":"a_8D14","k":"routine","len":70,"c":true},{"a":36117,"n":"b_8D15","k":"branch","len":1,"c":false},{"a":36155,"n":"b_8D3B","k":"branch","len":1,"c":false},{"a":36158,"n":"b_8D3E","k":"branch","len":1,"c":false},{"a":36186,"n":"a_8D5A","k":"routine","len":4,"c":true},{"a":36190,"n":"a_8D5E","k":"routine","len":1,"c":true},{"a":36191,"n":"a_8D5F","k":"routine","len":12,"c":true},{"a":36200,"n":"b_8D68","k":"branch","len":1,"c":false},{"a":36203,"n":"a_8D6B","k":"routine","len":1,"c":true},{"a":36204,"n":"a_8D6C","k":"routine","len":8,"c":true},{"a":36211,"n":"b_8D73","k":"branch","len":1,"c":false},{"a":36212,"n":"a_8D74","k":"routine","len":136,"c":true},{"a":36321,"n":"b_8DE1","k":"branch","len":1,"c":false},{"a":36345,"n":"b_8DF9","k":"branch","len":1,"c":false},{"a":36348,"n":"a_8DFC","k":"routine","len":4,"c":true},{"a":36352,"n":"a_8E00","k":"routine","len":1,"c":true},{"a":36353,"n":"a_8E01","k":"routine","len":9,"c":true},{"a":36359,"n":"b_8E07","k":"branch","len":1,"c":false},{"a":36362,"n":"a_8E0A","k":"routine","len":1,"c":true},{"a":36363,"n":"a_8E0B","k":"routine","len":6,"c":true},{"a":36369,"n":"f_8E11","k":"variable","len":2,"c":true},{"a":36371,"n":"f_8E13","k":"variable","len":2,"c":true},{"a":36373,"n":"f_8E15","k":"variable","len":2,"c":true},{"a":36375,"n":"set_window","k":"routine","len":188,"c":true},{"a":36563,"n":"flip_buffers","k":"routine","len":24,"c":true},{"a":36581,"n":"b_8EE5","k":"branch","len":1,"c":false},{"a":36587,"n":"flip_draw_buffer","k":"routine","len":11,"c":true},{"a":36598,"n":"show_bank3","k":"routine","len":36,"c":true},{"a":36634,"n":"show_bank1","k":"routine","len":38,"c":true},{"a":36672,"n":"copy_to_bank1","k":"routine","len":27,"c":true},{"a":36699,"n":"spark_pattern","k":"routine","len":25,"c":true},{"a":36712,"n":"b_8F68","k":"branch","len":1,"c":false},{"a":36724,"n":"spark_patterns_even","k":"table","len":6,"c":true},{"a":36730,"n":"spark_patterns_odd","k":"table","len":6,"c":true},{"a":36736,"n":"set_colour","k":"routine","len":61,"c":true},{"a":36749,"n":"b_8F8D","k":"branch","len":1,"c":false},{"a":36754,"n":"b_8F92","k":"branch","len":1,"c":false},{"a":36782,"n":"b_8FAE","k":"branch","len":1,"c":false},{"a":36785,"n":"b_8FB1","k":"branch","len":1,"c":false},{"a":36797,"n":"set_flash_colour","k":"routine","len":12,"c":true},{"a":36805,"n":"b_8FC5","k":"branch","len":1,"c":false},{"a":36809,"n":"colour_code","k":"variable","len":1,"c":true},{"a":36810,"n":"colour_cell_index","k":"table","len":19,"c":true},{"a":36829,"n":"colour_cell_mask","k":"table","len":32,"c":true},{"a":36861,"n":"colour_cell_value","k":"table","len":5,"c":true},{"a":36866,"n":"a_9002","k":"table","len":27,"c":true},{"a":36893,"n":"fill_window","k":"routine","len":26,"c":true},{"a":36905,"n":"b_9029","k":"branch","len":1,"c":false},{"a":36919,"n":"turn_by_rates","k":"routine","len":93,"c":true},{"a":36941,"n":"b_904D","k":"branch","len":1,"c":false},{"a":36996,"n":"b_9084","k":"branch","len":1,"c":false},{"a":37012,"n":"turn_row_offsets","k":"variable","len":1,"c":true},{"a":37013,"n":"f_9095","k":"table","len":3,"c":true},{"a":37016,"n":"turn_pair","k":"routine","len":94,"c":true},{"a":37110,"n":"copy_identity","k":"routine","len":18,"c":true},{"a":37120,"n":"b_9100","k":"branch","len":1,"c":false},{"a":37128,"n":"vec_times_rows","k":"routine","len":88,"c":true},{"a":37158,"n":"b_9126","k":"branch","len":1,"c":false},{"a":37190,"n":"b_9146","k":"branch","len":1,"c":false},{"a":37193,"n":"b_9149","k":"branch","len":1,"c":false},{"a":37204,"n":"b_9154","k":"branch","len":1,"c":false},{"a":37216,"n":"mat_times_vec","k":"routine","len":80,"c":true},{"a":37246,"n":"b_917E","k":"branch","len":1,"c":false},{"a":37276,"n":"b_919C","k":"branch","len":1,"c":false},{"a":37296,"n":"mat_times_mat","k":"routine","len":74,"c":true},{"a":37310,"n":"b_91BE","k":"branch","len":1,"c":false},{"a":37321,"n":"b_91C9","k":"branch","len":1,"c":false},{"a":37332,"n":"b_91D4","k":"branch","len":1,"c":false},{"a":37367,"n":"b_91F7","k":"branch","len":1,"c":false},{"a":37370,"n":"mat_transpose","k":"routine","len":68,"c":true},{"a":37376,"n":"b_9200","k":"branch","len":1,"c":false},{"a":37438,"n":"mat_orthonormal","k":"routine","len":142,"c":true},{"a":37532,"n":"b_929C","k":"branch","len":1,"c":false},{"a":37543,"n":"b_92A7","k":"branch","len":1,"c":false},{"a":37557,"n":"b_92B5","k":"branch","len":1,"c":false},{"a":37568,"n":"b_92C0","k":"branch","len":1,"c":false},{"a":37580,"n":"vec_sub_to_log","k":"routine","len":127,"c":true},{"a":37707,"n":"vec_log_to_lin","k":"routine","len":39,"c":true},{"a":37709,"n":"b_934D","k":"branch","len":1,"c":false},{"a":37746,"n":"vec_lin_to_log","k":"routine","len":106,"c":true},{"a":37852,"n":"vec_cross","k":"routine","len":267,"c":true},{"a":38119,"n":"vec_dot","k":"routine","len":74,"c":true},{"a":38193,"n":"vec_length","k":"routine","len":55,"c":true},{"a":38248,"n":"copy9_from_0DAB","k":"routine","len":8,"c":true},{"a":38256,"n":"copy9","k":"routine","len":48,"c":true},{"a":38304,"n":"vec_scale_signed","k":"routine","len":69,"c":true},{"a":38373,"n":"vec_scale","k":"routine","len":63,"c":true},{"a":38436,"n":"vec_div_signed","k":"routine","len":69,"c":true},{"a":38505,"n":"vec_normalise","k":"routine","len":3,"c":true},{"a":38508,"n":"vec_div","k":"routine","len":63,"c":true},{"a":38571,"n":"vec_add_log","k":"routine","len":51,"c":true},{"a":38573,"n":"b_96AD","k":"branch","len":1,"c":false},{"a":38622,"n":"vec_sub_log","k":"routine","len":51,"c":true},{"a":38624,"n":"b_96E0","k":"branch","len":1,"c":false},{"a":38673,"n":"vec_axpy","k":"routine","len":72,"c":true},{"a":38687,"n":"b_971F","k":"branch","len":1,"c":false},{"a":38745,"n":"vec_add_lin","k":"routine","len":69,"c":true},{"a":38814,"n":"vec_sub_lin","k":"routine","len":69,"c":true},{"a":38883,"n":"vec_neg_lin","k":"routine","len":69,"c":true},{"a":38952,"n":"vec_length_store","k":"routine","len":19,"c":true},{"a":38971,"n":"vec_angles","k":"routine","len":135,"c":true},{"a":39106,"n":"arcsin_units","k":"routine","len":43,"c":true},{"a":39149,"n":"arctan_log","k":"routine","len":87,"c":true},{"a":39172,"n":"b_9904","k":"branch","len":1,"c":false},{"a":39218,"n":"b_9932","k":"branch","len":1,"c":false},{"a":39235,"n":"r_9943","k":"branch","len":1,"c":false},{"a":39236,"n":"arcsin_rad","k":"routine","len":16,"c":true},{"a":39252,"n":"arctan_rad","k":"routine","len":16,"c":true},{"a":39268,"n":"arccos_units","k":"routine","len":19,"c":true},{"a":39287,"n":"arccos_rad","k":"routine","len":10,"c":true},{"a":39290,"n":"r_997A","k":"branch","len":1,"c":false},{"a":39297,"n":"arctan2_log","k":"routine","len":39,"c":true},{"a":39322,"n":"b_999A","k":"branch","len":1,"c":false},{"a":39335,"n":"r_99A7","k":"branch","len":1,"c":false},{"a":39336,"n":"units_to_radians","k":"routine","len":7,"c":true},{"a":39343,"n":"a_99AF","k":"routine","len":15,"c":true},{"a":39358,"n":"arctan_table","k":"table","len":32,"c":true},{"a":39390,"n":"menu","k":"routine","len":16,"c":true},{"a":39406,"n":"menu_choose","k":"routine","len":4,"c":true},{"a":39410,"n":"menu_select","k":"routine","len":78,"c":true},{"a":39422,"n":"j_99FE","k":"branch","len":1,"c":false},{"a":39454,"n":"b_9A1E","k":"branch","len":1,"c":false},{"a":39475,"n":"b_9A33","k":"branch","len":1,"c":false},{"a":39480,"n":"b_9A38","k":"branch","len":1,"c":false},{"a":39488,"n":"b_9A40","k":"routine","len":34,"c":true},{"a":39501,"n":"b_9A4D","k":"branch","len":1,"c":false},{"a":39505,"n":"b_9A51","k":"branch","len":1,"c":false},{"a":39522,"n":"menu_draw","k":"routine","len":65,"c":true},{"a":39532,"n":"b_9A6C","k":"branch","len":1,"c":false},{"a":39567,"n":"b_9A8F","k":"branch","len":1,"c":false},{"a":39582,"n":"b_9A9E","k":"branch","len":1,"c":false},{"a":39587,"n":"menu_key","k":"routine","len":12,"c":true},{"a":39594,"n":"b_9AAA","k":"branch","len":1,"c":false},{"a":39599,"n":"menu_blank","k":"routine","len":45,"c":true},{"a":39611,"n":"b_9ABB","k":"branch","len":1,"c":false},{"a":39619,"n":"b_9AC3","k":"branch","len":1,"c":false},{"a":39644,"n":"print_message","k":"routine","len":30,"c":true},{"a":39674,"n":"print_wrapped","k":"routine","len":31,"c":true},{"a":39686,"n":"b_9B06","k":"branch","len":1,"c":false},{"a":39705,"n":"wrap_line","k":"routine","len":107,"c":true},{"a":39720,"n":"b_9B28","k":"branch","len":1,"c":false},{"a":39725,"n":"b_9B2D","k":"branch","len":1,"c":false},{"a":39754,"n":"b_9B4A","k":"branch","len":1,"c":false},{"a":39763,"n":"b_9B53","k":"branch","len":1,"c":false},{"a":39771,"n":"b_9B5B","k":"branch","len":1,"c":false},{"a":39772,"n":"b_9B5C","k":"branch","len":1,"c":false},{"a":39781,"n":"b_9B65","k":"branch","len":1,"c":false},{"a":39789,"n":"b_9B6D","k":"branch","len":1,"c":false},{"a":39791,"n":"b_9B6F","k":"branch","len":1,"c":false},{"a":39805,"n":"b_9B7D","k":"branch","len":1,"c":false},{"a":39812,"n":"wrap_flag","k":"variable","len":1,"c":true},{"a":39813,"n":"text_length","k":"routine","len":17,"c":true},{"a":39828,"n":"b_9B94","k":"branch","len":1,"c":false},{"a":39830,"n":"a_9B96","k":"routine","len":1,"c":true},{"a":39831,"n":"a_9B97","k":"routine","len":4,"c":true},{"a":39835,"n":"print_text","k":"routine","len":16,"c":true},{"a":39848,"n":"b_9BA8","k":"branch","len":1,"c":false},{"a":39851,"n":"a_9BAB","k":"routine","len":1,"c":true},{"a":39852,"n":"a_9BAC","k":"routine","len":11,"c":true},{"a":39862,"n":"r_9BB6","k":"branch","len":1,"c":false},{"a":39863,"n":"resolve_text","k":"routine","len":19,"c":true},{"a":39871,"n":"b_9BBF","k":"branch","len":1,"c":false},{"a":39881,"n":"r_9BC9","k":"branch","len":1,"c":false},{"a":39882,"n":"b_9BCA","k":"routine","len":145,"c":true},{"a":39895,"n":"b_9BD7","k":"branch","len":1,"c":false},{"a":39916,"n":"b_9BEC","k":"branch","len":1,"c":false},{"a":39927,"n":"b_9BF7","k":"branch","len":1,"c":false},{"a":39968,"n":"b_9C20","k":"branch","len":1,"c":false},{"a":39977,"n":"b_9C29","k":"branch","len":1,"c":false},{"a":39986,"n":"b_9C32","k":"branch","len":1,"c":false},{"a":40002,"n":"b_9C42","k":"branch","len":1,"c":false},{"a":40011,"n":"b_9C4B","k":"branch","len":1,"c":false},{"a":40022,"n":"b_9C56","k":"branch","len":1,"c":false},{"a":40027,"n":"b_9C5B","k":"routine","len":29,"c":true},{"a":40056,"n":"b_9C78","k":"routine","len":56,"c":true},{"a":40074,"n":"b_9C8A","k":"branch","len":1,"c":false},{"a":40079,"n":"b_9C8F","k":"branch","len":1,"c":false},{"a":40084,"n":"b_9C94","k":"branch","len":1,"c":false},{"a":40090,"n":"b_9C9A","k":"branch","len":1,"c":false},{"a":40098,"n":"b_9CA2","k":"branch","len":1,"c":false},{"a":40112,"n":"text_block","k":"variable","len":1,"c":true},{"a":40113,"n":"a_9CB1","k":"variable","len":1,"c":true},{"a":40114,"n":"a_9CB2","k":"variable","len":1,"c":true},{"a":40115,"n":"a_9CB3","k":"variable","len":1,"c":true},{"a":40116,"n":"a_9CB4","k":"variable","len":2,"c":true},{"a":40118,"n":"read_text_block","k":"routine","len":24,"c":true},{"a":40139,"n":"b_9CCB","k":"branch","len":1,"c":false},{"a":40142,"n":"s_9CCE","k":"routine","len":18,"c":true},{"a":40152,"n":"b_9CD8","k":"branch","len":1,"c":false},{"a":40160,"n":"decode_char","k":"routine","len":58,"c":true},{"a":40174,"n":"b_9CEE","k":"branch","len":1,"c":false},{"a":40193,"n":"b_9D01","k":"branch","len":1,"c":false},{"a":40201,"n":"b_9D09","k":"branch","len":1,"c":false},{"a":40214,"n":"b_9D16","k":"branch","len":1,"c":false},{"a":40218,"n":"a_9D1A","k":"routine","len":4,"c":true},{"a":40222,"n":"read_bit","k":"routine","len":3,"c":true},{"a":40225,"n":"a_9D21","k":"routine","len":1,"c":true},{"a":40226,"n":"a_9D22","k":"routine","len":30,"c":true},{"a":40233,"n":"b_9D29","k":"branch","len":1,"c":false},{"a":40240,"n":"b_9D30","k":"branch","len":1,"c":false},{"a":40255,"n":"r_9D3F","k":"branch","len":1,"c":false},{"a":40256,"n":"start_bits","k":"routine","len":8,"c":true},{"a":40264,"n":"a_9D48","k":"routine","len":21,"c":true},{"a":40277,"n":"b_9D55","k":"branch","len":1,"c":false},{"a":40285,"n":"bit_number","k":"variable","len":1,"c":true},{"a":40286,"n":"bit_masks","k":"table","len":8,"c":true},{"a":40294,"n":"huffman_tree","k":"table","len":136,"c":true},{"a":40430,"n":"append_text","k":"routine","len":25,"c":true},{"a":40445,"n":"b_9DFD","k":"branch","len":1,"c":false},{"a":40452,"n":"b_9E04","k":"branch","len":1,"c":false},{"a":40454,"n":"b_9E06","k":"branch","len":1,"c":false},{"a":40455,"n":"a_9E07","k":"routine","len":1,"c":true},{"a":40456,"n":"a_9E08","k":"routine","len":15,"c":true},{"a":40470,"n":"r_9E16","k":"branch","len":1,"c":false},{"a":40471,"n":"find_text","k":"routine","len":41,"c":true},{"a":40493,"n":"b_9E2D","k":"branch","len":1,"c":false},{"a":40504,"n":"b_9E38","k":"branch","len":1,"c":false},{"a":40511,"n":"r_9E3F","k":"branch","len":1,"c":false},{"a":40512,"n":"s_9E40","k":"routine","len":12,"c":true},{"a":40514,"n":"b_9E42","k":"branch","len":1,"c":false},{"a":40523,"n":"r_9E4B","k":"branch","len":1,"c":false},{"a":40524,"n":"select_window","k":"routine","len":41,"c":true},{"a":40565,"n":"restore_cursor","k":"routine","len":14,"c":true},{"a":40579,"n":"save_cursor","k":"routine","len":13,"c":true},{"a":40592,"n":"saved_cursors","k":"variable","len":1,"c":true},{"a":40593,"n":"f_9E91","k":"table","len":5,"c":true},{"a":40598,"n":"f_9E96","k":"table","len":5,"c":true},{"a":40603,"n":"window_number","k":"variable","len":1,"c":true},{"a":40604,"n":"window_lines","k":"table","len":7,"c":true},{"a":40611,"n":"f_9EA3","k":"table","len":7,"c":true},{"a":40618,"n":"f_9EAA","k":"table","len":7,"c":true},{"a":40625,"n":"f_9EB1","k":"table","len":7,"c":true},{"a":40632,"n":"f_9EB8","k":"table","len":7,"c":true},{"a":40639,"n":"print_number","k":"routine","len":151,"c":true},{"a":40649,"n":"b_9EC9","k":"branch","len":1,"c":false},{"a":40679,"n":"b_9EE7","k":"branch","len":1,"c":false},{"a":40709,"n":"b_9F05","k":"branch","len":1,"c":false},{"a":40737,"n":"b_9F21","k":"branch","len":1,"c":false},{"a":40738,"n":"b_9F22","k":"branch","len":1,"c":false},{"a":40756,"n":"b_9F34","k":"branch","len":1,"c":false},{"a":40770,"n":"b_9F42","k":"branch","len":1,"c":false},{"a":40780,"n":"b_9F4C","k":"branch","len":1,"c":false},{"a":40790,"n":"print_signed","k":"routine","len":36,"c":true},{"a":40806,"n":"b_9F66","k":"branch","len":1,"c":false},{"a":40826,"n":"split_digits","k":"routine","len":21,"c":true},{"a":40831,"n":"b_9F7F","k":"branch","len":1,"c":false},{"a":40839,"n":"b_9F87","k":"branch","len":1,"c":false},{"a":40847,"n":"invert_bar","k":"routine","len":36,"c":true},{"a":40876,"n":"b_9FAC","k":"branch","len":1,"c":false},{"a":40883,"n":"a_9FB3","k":"routine","len":9,"c":true},{"a":40892,"n":"a_9FBC","k":"routine","len":17,"c":true},{"a":40908,"n":"b_9FCC","k":"branch","len":1,"c":false},{"a":40909,"n":"a_9FCD","k":"routine","len":38,"c":true},{"a":40912,"n":"b_9FD0","k":"branch","len":1,"c":false},{"a":40922,"n":"b_9FDA","k":"branch","len":1,"c":false},{"a":40928,"n":"b_9FE0","k":"branch","len":1,"c":false},{"a":40947,"n":"dim_item","k":"routine","len":33,"c":true},{"a":40973,"n":"b_A00D","k":"branch","len":1,"c":false},{"a":40980,"n":"a_A014","k":"routine","len":9,"c":true},{"a":40989,"n":"a_A01D","k":"routine","len":15,"c":true},{"a":41001,"n":"b_A029","k":"branch","len":1,"c":false},{"a":41004,"n":"a_A02C","k":"routine","len":27,"c":true},{"a":41007,"n":"b_A02F","k":"branch","len":1,"c":false},{"a":41031,"n":"print_char","k":"routine","len":122,"c":true},{"a":41063,"n":"b_A067","k":"branch","len":1,"c":false},{"a":41077,"n":"b_A075","k":"branch","len":1,"c":false},{"a":41082,"n":"b_A07A","k":"branch","len":1,"c":false},{"a":41092,"n":"b_A084","k":"branch","len":1,"c":false},{"a":41102,"n":"b_A08E","k":"branch","len":1,"c":false},{"a":41112,"n":"b_A098","k":"branch","len":1,"c":false},{"a":41116,"n":"j_A09C","k":"branch","len":1,"c":false},{"a":41136,"n":"b_A0B0","k":"branch","len":1,"c":false},{"a":41140,"n":"b_A0B4","k":"branch","len":1,"c":false},{"a":41153,"n":"b_A0C1","k":"routine","len":57,"c":true},{"a":41209,"n":"b_A0F9","k":"branch","len":1,"c":false},{"a":41210,"n":"a_A0FA","k":"routine","len":6,"c":true},{"a":41216,"n":"a_A100","k":"routine","len":9,"c":true},{"a":41225,"n":"a_A109","k":"routine","len":37,"c":true},{"a":41262,"n":"a_A12E","k":"routine","len":2,"c":true},{"a":41264,"n":"a_A130","k":"routine","len":1,"c":true},{"a":41265,"n":"a_A131","k":"routine","len":6,"c":true},{"a":41271,"n":"a_A137","k":"routine","len":1,"c":true},{"a":41272,"n":"a_A138","k":"routine","len":7,"c":true},{"a":41279,"n":"a_A13F","k":"routine","len":1,"c":true},{"a":41280,"n":"a_A140","k":"routine","len":12,"c":true},{"a":41281,"n":"b_A141","k":"branch","len":1,"c":false},{"a":41292,"n":"mirror_text_on","k":"routine","len":24,"c":true},{"a":41316,"n":"mirror_text_off","k":"routine","len":20,"c":true},{"a":41336,"n":"scroll_window","k":"routine","len":69,"c":true},{"a":41356,"n":"b_A18C","k":"branch","len":1,"c":false},{"a":41386,"n":"b_A1AA","k":"branch","len":1,"c":false},{"a":41389,"n":"b_A1AD","k":"branch","len":1,"c":false},{"a":41393,"n":"b_A1B1","k":"branch","len":1,"c":false},{"a":41405,"n":"s_A1BD","k":"routine","len":12,"c":true},{"a":41412,"n":"j_A1C4","k":"branch","len":1,"c":false},{"a":41417,"n":"a_A1C9","k":"routine","len":7,"c":true},{"a":41424,"n":"a_A1D0","k":"routine","len":8,"c":true},{"a":41432,"n":"a_A1D8","k":"routine","len":9,"c":true},{"a":41441,"n":"a_A1E1","k":"routine","len":4,"c":true},{"a":41445,"n":"a_A1E5","k":"routine","len":43,"c":true},{"a":41455,"n":"b_A1EF","k":"branch","len":1,"c":false},{"a":41474,"n":"b_A202","k":"branch","len":1,"c":false},{"a":41488,"n":"j_A210","k":"routine","len":20,"c":true},{"a":41498,"n":"b_A21A","k":"branch","len":1,"c":false},{"a":41507,"n":"r_A223","k":"branch","len":1,"c":false},{"a":41508,"n":"clear_window","k":"routine","len":28,"c":true},{"a":41513,"n":"b_A229","k":"branch","len":1,"c":false},{"a":41535,"n":"r_A23F","k":"branch","len":1,"c":false},{"a":41536,"n":"s_A240","k":"routine","len":13,"c":true},{"a":41549,"n":"get_key","k":"routine","len":17,"c":true},{"a":41564,"n":"b_A25C","k":"branch","len":1,"c":false},{"a":41565,"n":"r_A25D","k":"branch","len":1,"c":false},{"a":41566,"n":"s_A25E","k":"routine","len":31,"c":true},{"a":41579,"n":"b_A26B","k":"branch","len":1,"c":false},{"a":41593,"n":"b_A279","k":"branch","len":1,"c":false},{"a":41597,"n":"random_word","k":"routine","len":27,"c":true},{"a":41604,"n":"b_A284","k":"branch","len":1,"c":false},{"a":41616,"n":"b_A290","k":"branch","len":1,"c":false},{"a":41624,"n":"random_upto","k":"routine","len":45,"c":true},{"a":41630,"n":"b_A29E","k":"branch","len":1,"c":false},{"a":41637,"n":"b_A2A5","k":"branch","len":1,"c":false},{"a":41667,"n":"b_A2C3","k":"branch","len":1,"c":false},{"a":41669,"n":"random","k":"routine","len":23,"c":true},{"a":41692,"n":"random_seed","k":"routine","len":18,"c":true},{"a":41700,"n":"b_A2E4","k":"branch","len":1,"c":false},{"a":41710,"n":"random_state","k":"variable","len":1,"c":true},{"a":41711,"n":"a_A2EF","k":"variable","len":1,"c":true},{"a":41712,"n":"a_A2F0","k":"variable","len":1,"c":true},{"a":41713,"n":"a_A2F1","k":"variable","len":1,"c":true},{"a":41714,"n":"a_A2F2","k":"variable","len":1,"c":true},{"a":41715,"n":"a_A2F3","k":"table","len":3,"c":true},{"a":41718,"n":"copy_memory","k":"routine","len":33,"c":true},{"a":41724,"n":"b_A2FC","k":"branch","len":1,"c":false},{"a":41738,"n":"b_A30A","k":"branch","len":1,"c":false},{"a":41742,"n":"b_A30E","k":"branch","len":1,"c":false},{"a":41750,"n":"r_A316","k":"branch","len":1,"c":false},{"a":41751,"n":"wait_ticks","k":"routine","len":40,"c":true},{"a":41758,"n":"b_A31E","k":"branch","len":1,"c":false},{"a":41760,"n":"b_A320","k":"branch","len":1,"c":false},{"a":41762,"n":"b_A322","k":"branch","len":1,"c":false},{"a":41791,"n":"key_direction","k":"routine","len":54,"c":true},{"a":41808,"n":"b_A350","k":"branch","len":1,"c":false},{"a":41809,"n":"b_A351","k":"branch","len":1,"c":false},{"a":41815,"n":"b_A357","k":"branch","len":1,"c":false},{"a":41817,"n":"b_A359","k":"branch","len":1,"c":false},{"a":41835,"n":"b_A36B","k":"branch","len":1,"c":false},{"a":41845,"n":"direction_keys","k":"table","len":20,"c":true},{"a":41865,"n":"f_A389","k":"table","len":20,"c":true},{"a":41885,"n":"f_A39D","k":"table","len":20,"c":true},{"a":41905,"n":"joystick_eased","k":"routine","len":2,"c":true},{"a":41907,"n":"s_A3B3","k":"routine","len":80,"c":true},{"a":41922,"n":"b_A3C2","k":"branch","len":1,"c":false},{"a":41927,"n":"b_A3C7","k":"branch","len":1,"c":false},{"a":41932,"n":"b_A3CC","k":"branch","len":1,"c":false},{"a":41937,"n":"b_A3D1","k":"branch","len":1,"c":false},{"a":41986,"n":"r_A402","k":"branch","len":1,"c":false},{"a":41987,"n":"ease_flag","k":"variable","len":1,"c":true},{"a":41988,"n":"a_A404","k":"variable","len":1,"c":true},{"a":41989,"n":"a_A405","k":"variable","len":1,"c":true},{"a":41990,"n":"joystick_direction","k":"routine","len":16,"c":true},{"a":42006,"n":"s_A416","k":"routine","len":17,"c":true},{"a":42013,"n":"b_A41D","k":"branch","len":1,"c":false},{"a":42020,"n":"b_A424","k":"branch","len":1,"c":false},{"a":42023,"n":"fire_pressed","k":"routine","len":10,"c":true},{"a":42032,"n":"r_A430","k":"branch","len":1,"c":false},{"a":42033,"n":"wait_key","k":"routine","len":19,"c":true},{"a":42038,"n":"b_A436","k":"branch","len":1,"c":false},{"a":42051,"n":"r_A443","k":"branch","len":1,"c":false},{"a":42052,"n":"wait_fire_up","k":"routine","len":8,"c":true},{"a":42060,"n":"read_joystick1","k":"routine","len":10,"c":true},{"a":42070,"n":"read_joystick2","k":"routine","len":23,"c":true},{"a":42077,"n":"j_A45D","k":"branch","len":1,"c":false},{"a":42086,"n":"b_A466","k":"branch","len":1,"c":false},{"a":42093,"n":"r_A46D","k":"routine","len":3,"c":true},{"a":42094,"n":"r_A46E","k":"branch","len":1,"c":false},{"a":42095,"n":"r_A46F","k":"branch","len":1,"c":false},{"a":42096,"n":"frame_skip3","k":"routine","len":12,"c":true},{"a":42108,"n":"frame_skip5","k":"routine","len":12,"c":true},{"a":42120,"n":"draw_frame","k":"routine","len":18,"c":true},{"a":42135,"n":"b_A497","k":"branch","len":1,"c":false},{"a":42138,"n":"station_run","k":"routine","len":81,"c":true},{"a":42207,"n":"b_A4DF","k":"branch","len":1,"c":false},{"a":42219,"n":"station_view","k":"routine","len":21,"c":true},{"a":48384,"n":"spb","k":"variable","len":1,"c":true},{"a":48385,"n":"spb_hi","k":"table","len":229,"c":true},{"a":60160,"n":"row_addr_lo","k":"variable","len":1,"c":true},{"a":60161,"n":"row_addr_lo_up","k":"table","len":72,"c":true},{"a":60233,"n":"row_addr_lo_view","k":"table","len":127,"c":true},{"a":60360,"n":"screen_row_lo","k":"table","len":25,"c":true},{"a":60385,"n":"screen_row_hi","k":"table","len":31,"c":true},{"a":60416,"n":"row_addr_hi","k":"variable","len":1,"c":true},{"a":60417,"n":"row_addr_hi_up","k":"table","len":72,"c":true},{"a":60489,"n":"row_addr_hi_view","k":"table","len":127,"c":true},{"a":60616,"n":"div8","k":"table","len":34,"c":true},{"a":60650,"n":"div8_view_x","k":"table","len":39,"c":true},{"a":60689,"n":"div8_view_row","k":"table","len":247,"c":true},{"a":60936,"n":"x_byte_offsets","k":"table","len":34,"c":true},{"a":60970,"n":"x_byte_offsets_view","k":"table","len":286,"c":true},{"a":61256,"n":"left_masks","k":"table","len":34,"c":true},{"a":61290,"n":"left_masks_view","k":"table","len":286,"c":true},{"a":61576,"n":"right_masks","k":"table","len":34,"c":true},{"a":61610,"n":"right_masks_view","k":"table","len":286,"c":true},{"a":61896,"n":"colour_even","k":"table","len":10,"c":true},{"a":61906,"n":"colour_odd","k":"table","len":10,"c":true},{"a":61916,"n":"colour_clear","k":"table","len":10,"c":true},{"a":61926,"n":"palette","k":"table","len":26,"c":true},{"a":61952,"n":"font","k":"table","len":872,"c":true},{"a":62824,"n":"font_glyph_6D","k":"table","len":152,"c":true},{"a":65530,"n":"cpu_vectors","k":"table","len":6,"c":true}],"records":[{"a":0,"l":"start","c":"The processor port's data direction register, left as the KERNAL set it","t":"byte","b":[0]},{"a":1,"l":"zp_port","c":"The processor port: $34-$36 in play (all RAM, or RAM with the I/O in for a moment); the interrupt saves it, banks the I/O in and puts it back","t":"byte","b":[14],"x":[3619,3625,3717,3721,3724,3730,3733,3739,3749,3756,3781,36601,36607,36625,36629,36637,36643,36663,36667]},{"a":2,"l":"zp_02","c":"Set to $40 by setup_irq; nothing in the engine reads it back","t":"byte","b":[64],"x":[3629]},{"a":3,"l":"key_count","c":"Keys waiting in the keyboard buffer at $05","t":"byte","b":[0],"x":[3795,3803,3809,3819,3826,41566,41570,41584]},{"a":4,"l":"key_room","c":"Room left in the keyboard buffer (clear_keybuf sets 2)","t":"byte","b":[2],"x":[3791,3805]},{"a":5,"l":"key_buffer","c":"The keyboard buffer, oldest key first; get_key takes from here and moves the rest down","t":"byte","b":[179],"x":[3816,3824,41572,41581]},{"a":6,"l":"zpf_06","c":"The keyboard buffer's second entry","t":"byte","b":[179,0,58,0,0,76,0,0],"x":[3814,41579]},{"a":14,"t":"byte","b":[0]},{"a":15,"l":"key_last","c":"keyscan's last key, for the auto-repeat","t":"byte","b":[127],"x":[3891,3901]},{"a":16,"l":"key_held","c":"The key code held down, compared on each scan to time the repeat","t":"byte","b":[255],"x":[3931,3965,3969]},{"a":17,"l":"key_delay","c":"Frames left before a held key repeats (30 for the first repeat)","t":"byte","b":[28],"x":[3973,3981,3985]},{"a":18,"l":"key_rate","c":"The frames between later repeats (6)","t":"byte","b":[6],"x":[3977,3990]},{"a":19,"l":"key_ctrl","c":"Nonzero while CTRL is held (keyscan)","t":"byte","b":[4],"x":[3848,4001]},{"a":20,"l":"key_lshift","c":"Nonzero while the left SHIFT is held","t":"byte","b":[128],"x":[3872,4005]},{"a":21,"l":"key_rshift","c":"Nonzero while the right SHIFT is held","t":"byte","b":[16],"x":[3860,4009]},{"a":22,"l":"frame_count","c":"Frames counted by the raster interrupt, held at 255; frame_skip restarts it at 1 and draw_frame reads it","t":"byte","b":[1],"x":[3768,3772,42105,42117,42129]},{"a":23,"l":"matrix_mask","c":"The screen-matrix nybble mask set_colour chooses; span keeps the other nybble of each cell it colours","t":"byte","b":[255],"x":[36119,36138,36160,36789]},{"a":24,"l":"matrix_value","c":"The screen-matrix nybble value set_colour chooses, ORed into each cell a span covers","t":"byte","b":[0],"x":[36084,36121,36140,36162,36337,36794]},{"a":25,"l":"cell_ptr","c":"Pointer to a screen-matrix cell (print_char, draw_chart) or to a destination pixel row (scroll_window)","t":"byte","b":[123],"x":[34548,34622,34625,36017,36074,36076,36117,36123,36136,36142,36158,36164,41244,41277,41433,41457]},{"a":26,"l":"zpa_1A","c":"High byte of the cell pointer at $19","t":"byte","b":[225],"x":[34555,36024,36080,36082,41255,41442,41470]},{"a":27,"l":"cell_ptr2","c":"The same cell in the other buffer's screen matrix when text is mirrored (scroll_window's second destination)","t":"byte","b":[55],"x":[41246,41279,41435,41459]},{"a":28,"l":"zpa_1C","c":"High byte of the second cell pointer","t":"byte","b":[99],"x":[41259,41446,41472]},{"a":29,"l":"voice_mask","c":"The sound's mask: $FF normally, 0 while the disk is in use (open_for_io, close_after_io). sound_step ANDs every frequency it writes for an effect with it, and the speed the engine hum's pitch comes from, so with 0 the voices fall silent; the gate writes are not masked","t":"byte","b":[255],"x":[4210,4380,4394,4452,6088,6145]},{"a":30,"l":"hum_on","c":"The engine hum: $FF on, 0 off (in navigation, in a base, during loads and at the end)","t":"byte","b":[255],"x":[4212,4454,5178,5183,5188,5193,5351,5428,28846,28973]},{"a":31,"l":"voice_wave","c":"The waveform of the effect on each of the three voices ($1F-$21)","t":"byte","b":[17,17,39],"x":[4283,4365,4405,4437,4491,4495]},{"a":34,"l":"voice_length","c":"Each voice's effect length in frames ($22-$24), copied to the timer on each repeat","t":"byte","b":[1,4,5],"x":[4288,4332]},{"a":37,"l":"voice_gateoff","c":"Each voice's gate-off point ($25-$27): the timer value at which the gate is released","t":"byte","b":[1,3,0],"x":[4293,4401]},{"a":40,"l":"voice_timer","c":"Each voice's effect frames left ($28-$2A); 0 once its effect is over, or for a moment before the next repeat starts. While voice 1's is 0, sound_step plays the engine hum on that voice","t":"byte","b":[0,0,0],"x":[4203,4302,4311,4334,4399,4412,4427]},{"a":43,"l":"voice_repeats","c":"Each voice's repeats left ($2B-$2D)","t":"byte","b":[255,0,0],"x":[4205,4298,4315,4336,4431,4435]},{"a":46,"l":"frame_lag","c":"The main loop's lag in frames: frame_skip takes 3 (or 5) off, draw_frame adds what drawing took; 3 or more skips a drawing pass","t":"byte","b":[253,234,57,175,0,223,48,1],"x":[42096,42101,42108,42113,42126,42135]},{"a":54,"t":"byte","b":[12,19]},{"a":56,"l":"bitmap_ptr","c":"Pointer into the bitmap being drawn: a pixel row from EXTERN's tables, high byte EORed with $3A","t":"byte","b":[219],"x":[34528,34580,34589,34763,34774,34782,34786,34794,35999,36057,36059,36125,36131,36133,36144,36150,36152,36183,36192,36194,36205,36207,36215,36219,36223,36227,36231,36235,36239,36243,36247,36251,36255,36259,36263,36267,36271,36275,36279,36283,36287,36291,36295,36299,36303,36307,36311,36315,36319,36323,36327,36331,36345,36354,36356,36364,36366,40884,40912,40928,40981,41007,41012,41418,41455]},{"a":57,"l":"zpa_39","c":"High byte of the bitmap pointer at $38","t":"byte","b":[203],"x":[34535,34770,36006,36066,36068,40895,40992,41425,41468]},{"a":58,"l":"draw_buffer","c":"Bit 7 picks the buffer drawing goes to: clear for $C000 (bank 3), set for $4000 (bank 1); EORed into bitmap addresses","t":"byte","b":[128],"x":[4697,9554,13578,13583,13628,29193,29287,36004,36022,36568,36589,36593,36799,40893,40990,41226,41253,42146]},{"a":59,"l":"clear_byte","c":"The byte the 3D view is cleared with (from set_colour's colour 1)","t":"byte","b":[0,0],"x":[36767]},{"a":61,"l":"pattern_even","c":"The fill pattern for even pixel rows (set_colour, spark_pattern)","t":"byte","b":[0],"x":[36127,36187,36196,36349,36716,36757]},{"a":62,"l":"pattern_odd","c":"The fill pattern for odd pixel rows","t":"byte","b":[0,0,0],"x":[36146,36200,36209,36359,36721,36762]},{"a":65,"l":"window_width","c":"The drawing window's width in pixels, less one (set by window_view, window_full and the TAC)","t":"byte","b":[251],"x":[9418,12123,13595,26324,31208,31276,31312,33513,34816,34834,34852,36544,36901]},{"a":66,"l":"window_height","c":"The drawing window's height in pixel rows, less one","t":"byte","b":[102],"x":[9425,12130,13599,26343,31236,31292,31333,33482,34820,34838,34856,36532,36893]},{"a":67,"l":"window_width1","c":"The window's width (set_window: $41 + 1), the right limit for clipping","t":"byte","b":[252],"x":[31214,33458,33511,36550]},{"a":68,"l":"window_height1","c":"The window's height ($42 + 1)","t":"byte","b":[103],"x":[31242,33449,33480,36535]},{"a":69,"l":"span_left","c":"The left x of a span (low byte) for span and fill_window","t":"byte","b":[118],"x":[34159,35875,35880,35994,36049,36335,36899]},{"a":70,"l":"zpa_46","c":"High byte of the span's left x","t":"byte","b":[137],"x":[35882,35891,35900,35909,35921,35928,35937,35946,36903,36905]},{"a":71,"l":"clip_x1","c":"span_clipped's left x, low byte","t":"byte","b":[118],"x":[31271,31278,31307,31317,31356,31468,31485,31496,31507,31518,31529,31540,31551,31562,31574,31606,31629,31652,31676,31710,31735,31760,34884,34940,34953,35007,35191,35231,35237,35268,35459,35539,35985]},{"a":72,"l":"zpa_48","c":"span_clipped's left x, high byte","t":"byte","b":[0],"x":[31267,31301,31360,31472,31580,31610,31633,31656,31682,31714,31739,31764,34890,34946,34957,35011,35195,35235,35244,35274,35463,35545,35979]},{"a":73,"l":"clip_x2","c":"span_clipped's right x, low byte","t":"byte","b":[118],"x":[31358,31373,31384,31395,31406,31417,31428,31439,31450,31470,31589,31612,31618,31635,31641,31658,31664,31691,31716,31722,31741,31747,31766,31772,34886,34927,34999,35005,35199,35242,35257,35263,35467,35553,35971]},{"a":74,"l":"zpa_4A","c":"span_clipped's right x, high byte","t":"byte","b":[0],"x":[31269,31303,31362,31474,31595,31616,31639,31662,31697,31720,31745,31770,34892,34933,35003,35203,35248,35261,35270,35471,35559,35965]},{"a":75,"l":"clip_row","c":"span_clipped's row, low byte (rows counted from the bottom)","t":"byte","b":[51],"x":[31285,31294,31324,31338,31348,31367,31378,31389,31400,31411,31422,31433,31444,31460,31479,31490,31501,31512,31523,31534,31545,31556,31600,31623,31646,31702,31708,31727,31733,31752,31758,34876,34918,34973,35207,35218,35877,35893,35895,35902,35904,35911,35913,35923,35930,35932,35939,35941,35948,35950,35959,36895,36910,36912]},{"a":76,"l":"zpa_4C","c":"span_clipped's row, high byte","t":"byte","b":[0],"x":[31287,31328,31354,31371,31382,31393,31404,31415,31426,31437,31448,31466,31483,31494,31505,31516,31527,31538,31549,31560,31604,31627,31650,31706,31731,31756,34880,34912,34977,35211,35222,35955]},{"a":77,"l":"object_size","c":"The object's size on screen, from in_view ($0D8C), for the draw routines of discs, sparks and far dots","t":"byte","b":[1,0],"x":[25818,25830,25832,34868,34948,35044,35298,35311,35316,35321,35326,35345,35353,35358,35369,35611,35622,35642,35658,35831]},{"a":79,"l":"cursor_col","c":"The text cursor's column (print_char)","t":"byte","b":[24],"x":[7725,9640,9651,9692,10200,10232,10534,10545,10878,12745,12781,12958,12997,13036,13255,13275,13292,13306,13367,13407,13442,15272,15274,15276,15278,39543,39550,39603,39617,39660,39711,40542,40571,40582,40859,40959,41045,41128,41148,41188,41242,41289,41491,41516,41544]},{"a":80,"l":"cursor_row","c":"The text cursor's pixel row, counted from the bottom; a text line is 9 rows","t":"byte","b":[27],"x":[9644,9655,9696,10204,10236,10538,10549,12749,12962,13183,13209,13229,13259,13308,13313,13369,13374,13409,13414,13444,13449,39445,39450,39468,39473,39528,39571,39576,39584,39601,39628,39633,39665,40556,40576,40587,40855,40955,41050,41060,41133,41183,41496,41511,41521,41526]},{"a":81,"l":"screen_x","c":"A projected point's screen x (project), low byte","t":"byte","b":[118],"x":[8908,8996,9016,9086,9114,9423,10464,12098,12121,12132,12188,12309,26634,31196,31220,31567,31582,31669,31684,32326,32708,34882,34922,34935,35076,35089,35407,35420,35674,35710,35735,35763,35788,35847]},{"a":82,"l":"zpa_52","c":"The projected x, high byte","t":"byte","b":[0],"x":[8913,9001,9024,9094,9119,9414,12102,12134,26640,31198,31222,31576,31591,31678,31693,32331,32713,34888,34929,34942,35083,35096,35414,35427,35682,35715,35740,35771,35796,35855]},{"a":83,"l":"screen_y","c":"A projected point's screen y, low byte","t":"byte","b":[51],"x":[8918,9006,9046,9101,9124,9430,10469,12112,12128,12136,12190,12324,26606,31224,31248,31343,31455,32336,32718,34874,34916,35070,35401,35473,35689,35720,35745,35778,35803]},{"a":84,"l":"zpa_54","c":"The projected y, high byte","t":"byte","b":[0],"x":[8923,9011,9054,9106,9132,9416,26612,31226,31250,31350,31462,32341,32723,34878,34910,35064,35395,35453,35697,35728,35753,35783,35808]},{"a":85,"l":"clip_count","c":"Vertex counts in the polygon clipper and the beam drawer","t":"byte","b":[0],"x":[8865,8883,9141,32597,32642,32732,32739,32745,32795,32802,32808,32896,32905,32908,32943,32950,33416,33522,34062,34068,34210,34290,34294,35818,35870]},{"a":86,"l":"window_cx","c":"The window's horizontal centre (set_window: half the width), added to projected x","t":"byte","b":[126],"x":[26632,36560]},{"a":87,"l":"window_cy","c":"The window's vertical centre, added to projected y","t":"byte","b":[51],"x":[26604,36542]},{"a":88,"l":"camera_pos_ptr","c":"Pointer to the camera's position (set_view: the player's $065D, or camera_pos)","t":"byte","b":[93],"x":[9146,16064,25623,25737,26044,26076,30823]},{"a":89,"l":"zpa_59","c":"High byte of the camera position pointer","t":"byte","b":[6],"x":[9150,16068,25627,25741,26048,26080,30827]},{"a":90,"l":"camera_orient_ptr","c":"Pointer to the camera's orientation (the player's $044B, or camera_orient)","t":"byte","b":[75],"x":[9173,16075,16266,25704,26052,26068,30382,30788]},{"a":91,"l":"zpa_5B","c":"High byte of the camera orientation pointer","t":"byte","b":[4],"x":[9177,16082,16270,25708,26056,26072,30386,30795]},{"a":92,"l":"drawn_slot","c":"The slot of the object being drawn (draw_object), which dock_check compares with $0837","t":"byte","b":[255],"x":[15933,15935,15977,16325,25607,25642,28723]},{"a":93,"l":"drawn_type","c":"The type of the object being drawn","t":"byte","b":[22],"x":[25612,25781,25823,25852,28737]},{"a":94,"l":"pass_count","c":"Counts main-loop passes (and the gate's 256 passes); its low bits pace the animations","t":"byte","b":[74],"x":[4714,4881,9869,12291,28998,29023,29172,29326,34379]},{"a":95,"l":"acc_lo","c":"The number accumulator, low byte: a log's fraction, or a linear number's fraction (the maths routines' A register)","t":"byte","b":[145],"x":[4929,4931,4943,8587,8950,11303,11326,11328,11336,11341,13335,13612,13635,13760,13904,14013,15640,15813,15819,15852,15858,16103,16123,16158,16187,16201,16219,16251,16277,16289,16330,16339,16345,25798,25918,25970,26131,26291,26293,26314,26335,26354,26416,26426,26439,26449,26460,26480,26503,26517,26539,26553,26559,26616,27753,28018,28057,28062,28094,28099,28935,29940,29988,30098,30100,30318,30341,30364,30415,30420,30699,30778,30981,30988,30990,31007,31089,31899,31904,31932,33047,33074,33174,33209,33224,33264,33286,33321,33342,33377,33789,33820,33852,33857,33927,33958,33990,33995,36945,37162,37221,37251,37281,37380,37394,37587,37608,37629,37650,37671,37692,37721,37726,37750,37767,37785,37802,37820,37837,37915,37963,37985,38034,38056,38104,38126,38198,38245,38309,38331,38353,38378,38398,38418,38441,38463,38485,38513,38533,38553,38593,38602,38644,38653,38673,38692,38725,38957,38975,38989,38994,39015,39034,39063,39070,39072,39091,39106,39114,39134,39139,39141,39162,39164,39172,39177,39190,39236,39252,39274,39276,39344,39349]},{"a":96,"l":"acc_mid","c":"The accumulator's middle byte: a log's whole part, or a linear number's low whole byte","t":"byte","b":[13],"x":[4813,4917,4935,4937,4951,5766,5774,5778,6869,6883,6905,6907,7795,7803,8591,8682,8954,11294,11307,11314,11332,11334,11343,11347,11352,12038,12051,12070,12870,12882,12884,13339,13430,13616,13639,13765,13909,14017,14786,15644,15784,15800,15821,15826,15841,15860,15865,16108,16128,16166,16191,16206,16224,16259,16281,16294,16318,16347,16352,25803,25913,25916,25920,25925,25974,26135,26298,26300,26305,26319,26326,26339,26345,26358,26421,26431,26444,26454,26462,26475,26478,26510,26525,26546,26561,26566,26584,26589,26601,26620,26629,27368,27673,27678,27683,27757,28009,28022,28048,28064,28068,28083,28092,28101,28105,28940,29524,29676,29706,29708,29718,29726,29877,29890,29945,29992,30025,30030,30105,30107,30112,30199,30201,30323,30346,30369,30403,30422,30426,30703,30767,30782,30983,30994,30996,31011,31093,31813,31818,31823,31906,31910,31939,32915,32930,32936,33055,33079,33181,33213,33229,33270,33293,33326,33349,33382,33778,33793,33806,33826,33841,33859,33863,33876,33916,33931,33944,33964,33979,33997,34001,34014,36952,37167,37226,37256,37286,37385,37399,37594,37613,37636,37655,37678,37697,37716,37731,37755,37772,37790,37807,37825,37842,37923,37968,37993,38039,38064,38109,38133,38204,38240,38243,38316,38338,38360,38385,38405,38425,38448,38470,38492,38520,38540,38560,38584,38607,38635,38658,38677,38703,38730,38962,38980,38997,39001,39020,39040,39058,39061,39077,39079,39096,39110,39116,39129,39132,39145,39147,39153,39168,39170,39179,39183,39194,39199,39208,39210,39225,39227,39240,39256,39280,39282,39311,39313,39325,39327,39351,39355,40651,40656,40666,40671,40681,40686,40696,40701,40711,40716,40726,40731,40750,40783,40785,41616]},{"a":97,"l":"acc_hi","c":"The accumulator's top byte: the sign of a log-form number, or a linear number's high byte","t":"byte","b":[0],"x":[4817,4921,5772,5776,5780,6871,6911,7799,7805,8595,8689,8958,11298,11318,12043,12059,12078,12875,12877,12880,13344,13435,13770,14021,14793,15648,15790,15806,15845,15867,15871,16099,16133,16211,16229,16299,25896,26307,26330,26349,26551,26608,26624,26636,27375,28013,28026,28052,28070,28074,28087,28109,28563,29529,29680,29712,29714,29734,29882,29894,29935,30328,30351,30374,30410,30771,30786,32460,33014,33060,33062,33064,33085,33092,33188,33217,33234,33276,33300,33331,33356,33387,33784,33797,33812,33832,33847,33865,33869,33884,33922,33935,33950,33970,33985,34003,34007,34022,36961,37176,37231,37261,37291,37390,37404,37601,37618,37643,37660,37685,37702,37711,37736,37760,37777,37795,37812,37830,37847,37931,37973,38001,38044,38072,38114,38140,38323,38345,38367,38455,38477,38499,38575,38612,38626,38663,38681,38714,38735,38985,39025,39084,39101,39149,39192,39214,39216,39231,39233,39286,39288,39304,39317,39319,39331,39333,40658,40662,40673,40677,40688,40692,40703,40707,40718,40722,40735,41597,41606]},{"a":98,"l":"arg_lo","c":"The second operand's log fraction for log_add and log_sub","t":"byte","b":[0],"x":[7814,7819,7832,11305,11323,16145,16238,25900,26466,26487,26501,26537,33194,33242,33306,33362,33791,33817,33822,33855,33929,33955,33960,33993,37940,38011,38081,38148,38173,38211,38227,38597,38648,38696,39047,39120,41613,41621]},{"a":99,"l":"arg_mid","c":"The second operand's log whole part","t":"byte","b":[216],"x":[7821,7825,7839,11309,11330,16153,16246,25904,26470,26492,26494,26508,26544,33199,33249,33311,33367,33795,33824,33828,33861,33933,33962,33966,33999,37948,38019,38089,38155,38180,38217,38233,38588,38639,38707,39053,39124,41604]},{"a":100,"l":"arg_sign","c":"The second operand's sign","t":"byte","b":[0],"x":[25908,33204,33256,33316,33372,33799,33830,33834,33867,33937,33968,33972,34005,37956,38027,38097,38162,38187,38579,38630,38718,39008,39300]},{"a":101,"l":"axpy_s","c":"vec_axpy's multiplier s ($65-$67), and project's scratch","t":"byte","b":[251],"x":[16164,16189,16257,16279,26523,26614,33211,33261,33266,33280,33336,38675,38687,39108,39136]},{"a":102,"l":"zpa_66","c":"The second byte of the multiplier at $65","t":"byte","b":[2],"x":[16171,16193,16264,16283,26530,26568,26572,26591,26596,26618,33215,33268,33272,33288,33344,38679,38699,39112,39143]},{"a":103,"l":"zpa_67","c":"The third byte of the multiplier at $65","t":"byte","b":[255],"x":[26515,26622,33219,33274,33278,33295,33351,38683,38710]},{"a":104,"l":"plane_x","c":"The clipping plane point for intersect_core ($68-$6A)","t":"byte","b":[0],"x":[33101,33122,33169,33236]},{"a":105,"l":"zpa_69","c":"The second byte of the plane point at $68","t":"byte","b":[0],"x":[33105,33126,33177,33244]},{"a":106,"l":"zpa_6A","c":"The third byte of the plane point at $68","t":"byte","b":[0],"x":[33109,33130,33184,33251]},{"a":107,"l":"scratch_vec","c":"A 9-byte scratch vector ($6B-$73): cross products, edge vectors, new rings, particle centres","t":"byte","b":[0],"x":[29722,29728,32888,33283,33323,37856,37982,38078]},{"a":108,"l":"f_006C","c":"The scratch vector's x, low whole byte (ring_drift adds to it)","t":"byte","b":[0],"x":[29731,29736,33290,33328,37862,37990,38086]},{"a":109,"l":"a_006D","c":"The scratch vector's x, high byte","t":"byte","b":[0],"x":[33143,33148,33297,33333,37868,37998,38094]},{"a":110,"l":"a_006E","c":"The scratch vector's y, fraction byte","t":"byte","b":[156],"x":[33221,33339,33379,33392,37874,37937,38053]},{"a":111,"l":"zpa_6F","c":"The scratch vector's y, low whole byte","t":"byte","b":[230],"x":[15779,15795,33226,33346,33384,33401,37880,37945,38061]},{"a":112,"l":"zpa_70","c":"The scratch vector's y, high byte","t":"byte","b":[255],"x":[15775,15786,15802,33151,33156,33231,33353,33389,33409,37886,37953,38069]},{"a":113,"l":"a_0071","c":"The scratch vector's z, fraction byte","t":"byte","b":[156],"x":[33239,33398,37892,37912,38008]},{"a":114,"l":"zpa_72","c":"The scratch vector's z, low whole byte (the wormhole's rings are spaced along it)","t":"byte","b":[230],"x":[15839,29612,29618,29764,29770,33246,33406,37898,37920,38016]},{"a":115,"l":"zpa_73","c":"The scratch vector's z, high byte","t":"byte","b":[255],"x":[15843,29623,29775,33116,33159,33164,33253,33412,37904,37928,38024]},{"a":116,"l":"src1_ptr","c":"The first source pointer for the vector routines (and the text routines' text pointer)","t":"byte","b":[69],"x":[4797,4824,5592,5604,5611,5636,5784,5803,5925,6662,7172,7197,7829,7837,8043,8060,8086,8153,8188,8452,8496,8610,8645,8934,8965,9167,9198,9465,9480,10788,10921,10944,10987,11013,11024,11110,11138,11173,11191,11211,11226,11240,12376,13697,13743,13813,13832,13843,13878,15619,15632,15696,15758,16080,16173,16178,16268,16306,25646,25687,25698,25773,25861,25940,25985,26004,26101,26120,26170,26197,26485,26490,26498,26506,26513,26534,26542,26549,27576,27627,27664,27734,27883,28125,28136,28170,28178,28192,28904,28923,29657,29742,29780,29861,29869,29977,29998,30064,30143,30160,30181,30227,30298,30384,30569,30645,30685,30732,30743,30793,30814,30969,31020,31031,31080,31151,31183,31783,31804,31832,31841,32025,32120,32184,32251,32314,32366,32391,32396,32430,32611,32629,32645,32691,32832,32877,32891,33034,33045,33050,33058,33068,33076,33081,33172,33179,33186,33192,33197,33202,33304,33309,33314,33360,33365,33370,36919,36971,37016,37045,37094,37112,37120,37128,37138,37193,37198,37299,37304,37340,37378,37383,37388,37451,37475,37485,37512,37532,37537,37557,37562,37582,37590,37597,37624,37632,37639,37666,37674,37681,37709,37714,37719,37748,37753,37758,37783,37788,37793,37818,37823,37828,37909,37918,37926,37934,37943,37951,37979,37988,37996,38005,38014,38022,38050,38059,38067,38075,38084,38092,38121,38129,38136,38143,38151,38158,38168,38176,38183,38195,38201,38208,38214,38224,38230,38250,38258,38263,38268,38273,38278,38283,38288,38293,38298,38306,38314,38321,38328,38336,38343,38350,38358,38365,38375,38383,38390,38395,38403,38410,38415,38423,38430,38438,38446,38453,38460,38468,38475,38482,38490,38497,38510,38518,38525,38530,38538,38545,38550,38558,38565,38573,38582,38591,38624,38633,38642,38690,38701,38712,38747,38755,38762,38769,38777,38784,38791,38799,38806,38816,38824,38831,38838,38846,38853,38860,38868,38875,38888,38895,38902,38910,38917,38924,38932,38939,38946,38973,38978,38983,38992,38999,39004,39031,39037,39044,39050,39067,39075,39082,39678,39721,39725,39750,39813,40430,40471]},{"a":117,"l":"zpa_75","c":"High byte of the first source pointer","t":"byte","b":[5],"x":[4801,4828,5597,5788,5807,5929,6666,7176,7201,8049,8066,8157,8192,8456,8500,8614,8649,8938,8969,9171,9202,9469,9484,10925,10948,10992,11017,11028,11114,11177,11195,11216,11231,11244,12380,13701,13747,13817,13836,13847,13882,15625,15636,15700,15762,16086,16182,16272,16310,25650,25691,25702,25779,25944,25989,26008,26105,26124,26174,26201,27580,27633,27668,27738,27887,28129,28140,28176,28182,28196,28908,28927,29661,29746,29784,29981,30002,30068,30147,30166,30185,30233,30302,30388,30573,30649,30689,30736,30747,30799,30818,30973,31017,31034,31084,31155,31187,31789,31808,31838,31845,32029,32124,32190,32255,32370,32400,32436,32617,32635,32698,32839,32884,33041,36923,36977,37020,37049,37100,37116,37132,37142,37202,37308,37346,37457,37479,37489,37516,37541,37566,38254,39680,39815,40432,40473]},{"a":118,"l":"src2_ptr","c":"The second source pointer for the vector routines","t":"byte","b":[93],"x":[8126,8161,8205,8475,8621,8694,8703,8715,8976,9148,9175,10946,10952,13711,13777,13795,13803,13851,13894,15675,15737,16066,16090,25625,25658,25666,25706,25739,25788,25836,25867,25953,26159,26178,27388,27643,27742,28038,28206,29513,29864,29871,29955,30043,30081,30122,30133,30241,30674,30713,30825,30898,30932,31059,31108,31132,31159,31873,32061,32099,32128,32194,32268,32296,32374,32447,32847,37064,37086,37136,37146,37235,37240,37265,37270,37310,37315,37350,37464,37483,37493,37585,37592,37599,37627,37634,37641,37669,37676,37683,37854,37860,37866,37872,37878,37884,37890,37896,37902,38124,38131,38138,38146,38153,38160,38171,38178,38185,38577,38586,38595,38628,38637,38646,38694,38705,38716,38750,38757,38764,38772,38779,38786,38794,38801,38808,38819,38826,38833,38841,38848,38855,38863,38870,38877,40478,40498,40506,40519]},{"a":119,"l":"zpa_77","c":"High byte of the second source pointer","t":"byte","b":[6],"x":[8132,8165,8211,8481,8625,8691,8709,8718,8980,9152,9179,10950,13717,13781,13801,13807,13855,13899,15681,15743,16070,16094,25629,25664,25670,25710,25743,25793,25840,25959,26163,26182,27394,27649,27746,28044,28212,29519,29959,30049,30087,30126,30137,30249,30678,30717,30829,30904,30936,31065,31114,31136,31163,31867,32067,32105,32132,32198,32274,32302,32378,32453,32854,37068,37090,37140,37150,37244,37274,37319,37354,37470,37487,37497,40480,40502]},{"a":120,"l":"dest_ptr","c":"The destination pointer for the vector routines (also a menu's flag list)","t":"byte","b":[93],"x":[4729,4805,5792,5801,6564,6601,6652,7180,7205,7834,7841,8027,8076,8088,8106,8111,8137,8142,8159,8175,8186,8485,8599,8634,8942,9156,9183,9700,10913,11119,11171,11186,13721,13732,13751,13821,13859,13870,15601,15685,15747,15766,16058,25633,25676,25714,25725,25747,25758,25929,25951,25993,26012,26023,26109,26186,27653,28117,28153,28180,28194,28912,28947,29114,29603,29750,29966,30006,30053,30124,30135,30170,30243,30306,30392,30451,30559,30635,30666,30724,30757,30803,30812,30922,30930,30958,31069,31140,31167,31793,31849,32012,32023,32071,32109,32142,32206,32231,32382,32402,32407,33134,36927,36985,37024,37034,37053,37072,37096,37122,37144,37223,37228,37233,37253,37258,37263,37283,37288,37293,37321,37326,37335,37348,37356,37361,37396,37401,37406,37438,37446,37459,37477,37504,37510,37521,37526,37546,37551,37573,37610,37615,37620,37652,37657,37662,37694,37699,37704,37728,37733,37738,37769,37774,37779,37804,37809,37814,37839,37844,37849,37965,37970,37975,38036,38041,38046,38106,38111,38116,38260,38265,38270,38275,38280,38285,38290,38295,38300,38311,38318,38325,38333,38340,38347,38355,38362,38369,38380,38387,38392,38400,38407,38412,38420,38427,38432,38443,38450,38457,38465,38472,38479,38487,38494,38501,38515,38522,38527,38535,38542,38547,38555,38562,38567,38604,38609,38614,38655,38660,38665,38727,38732,38737,38752,38759,38766,38774,38781,38788,38796,38803,38810,38821,38828,38835,38843,38850,38857,38865,38872,38879,38890,38897,38904,38912,38919,38926,38934,38941,38948,38959,38964,38969,39017,39022,39027,39093,39098,39103,39497,39558,40445,40457,40468,40482,40489,40515]},{"a":121,"l":"zpa_79","c":"High byte of the destination pointer; 0 tells menu that there are no flags","t":"byte","b":[6],"x":[4733,4809,5796,5805,6570,6607,6658,7184,7209,8033,8082,8115,8146,8163,8181,8190,8489,8603,8638,8946,9160,9187,9704,10917,11121,11175,13725,13736,13755,13825,13863,13874,15282,15605,15689,15751,15770,16062,25637,25680,25718,25729,25751,25762,25933,25957,25997,26016,26027,26113,26190,27657,28121,28159,28184,28198,28916,28951,29118,29607,29754,29970,30010,30057,30128,30139,30174,30251,30310,30396,30455,30565,30641,30670,30728,30763,30807,30816,30928,30934,30962,31073,31144,31171,31797,31853,32018,32027,32075,32113,32148,32212,32237,32386,32411,33138,36931,36991,37028,37038,37057,37076,37102,37148,37330,37342,37352,37365,37442,37453,37466,37481,37508,37514,37530,37555,37577,39491,39552,40484,40491]},{"a":122,"l":"model_ptr","c":"A model's header address (the model prologue stores it), or a menu's item list; elsewhere a vector pointer kept aside: explode's position, bounce's difference vector ($6C45), mat_orthonormal's matrix","t":"byte","b":[75],"x":[9467,9478,9708,13805,13841,15286,25668,25696,26645,26924,27719,28123,31859,31885,37440,37491,37502,37571,39536,39540]},{"a":123,"l":"zpa_7B","c":"High byte of the model or menu pointer","t":"byte","b":[4],"x":[9471,9482,9712,13809,13845,15290,25672,25700,26649,26928,27723,28127,37444,37495,37506,37575]},{"a":124,"l":"tac_mode","c":"The TAC display: 0 the data page, nonzero the target's picture (key_tac_mode)","t":"byte","b":[0,0,0,0],"x":[5137,5141,12564]},{"a":128,"l":"tmp80","c":"Scratch: copy and decode pointers, counters, the text drawer's bitmap pointer","t":"byte","b":[27],"x":[4858,5336,5359,5374,5389,5404,5439,5493,5508,5989,6019,6045,6096,6102,6373,7161,7199,7240,7248,7264,7270,7280,7282,7304,7348,8789,8800,9814,9827,9911,11913,11939,11958,12151,12164,12167,12174,12341,12353,12444,12458,12503,12535,13333,13933,13936,14005,14462,14495,14503,15504,15517,15995,16014,16024,26582,26587,26594,27689,27702,27859,28276,28326,28772,28784,28801,28806,29866,29880,29892,31091,32566,32593,32754,32774,32790,34659,34664,34670,34677,34695,34741,36008,36026,36111,36129,36148,36155,36169,36377,36429,36451,36479,36507,36674,37018,37092,37156,37158,37204,37209,37372,37376,37408,37413,39151,39218,40120,40165,40177,40183,40185,40199,40208,40853,40942,40953,41026,41154,41160,41164,41168,41217,41269,41391,41396,41628,41633,41659,41724,41742,41753,41775,41777,41788,42163]},{"a":129,"l":"tmp81","c":"Scratch, often the high byte of a pointer at $80","t":"byte","b":[9],"x":[4854,4862,5340,5363,5378,5393,5408,5443,5497,5512,5994,6024,6050,6098,7165,7203,7268,7285,7287,7353,9915,11917,12153,12158,12338,12361,12366,12382,12417,12437,12440,12446,12450,12529,12540,13329,13331,13337,14009,15999,16008,16026,28774,28808,28810,28814,29873,29884,29896,31095,32683,32703,32752,32776,32788,32797,33026,33476,33498,33551,33582,33754,34697,34755,34808,35072,35106,35113,35172,35205,35403,35480,35565,36379,36434,36456,36484,36512,36678,37022,37098,37154,37178,37182,37374,37392,37415,37420,37426,37431,39155,39201,40122,40130,40169,40189,40206,40212,40857,40876,40940,40957,40973,41024,41158,41162,41166,41176,41228,41336,41400,41624,41661,41731,42167]},{"a":130,"l":"tmp82","c":"Scratch: a second pointer (resolve_text's number, set_window's bottom row)","t":"byte","b":[73],"x":[5516,6029,7207,7222,7251,7272,7291,7293,12399,12452,28778,28795,32758,32770,32784,33587,33609,33615,34120,34249,34264,35066,35102,35117,35168,35209,35397,35484,35561,36375,36384,36399,36414,36682,37026,37043,37070,37130,37160,37165,37174,39882,39895,39901,39916,39927,39933,39945,40057,40084,40090,40886,40930,40983,41014,41219,41271,41448,41477,41726,41744]},{"a":131,"l":"tmp83","c":"Scratch, the high byte of the pointer at $82","t":"byte","b":[89],"x":[5520,6034,7215,7227,7236,7296,7298,12411,12422,12469,12483,28782,28804,32756,32766,33021,33096,33556,33570,33585,33591,33605,33607,33613,33619,34125,34234,34266,34270,35074,35119,35125,35181,35216,35405,35444,35486,35492,35574,36686,37030,37047,37074,37134,39888,39903,39908,39918,39935,39940,39942,40060,40088,40092,40897,40906,41001,41232,41733]},{"a":132,"l":"tmp84","c":"Scratch: counts (copy_memory's bytes, window widths, vertex counts)","t":"byte","b":[9],"x":[12393,12475,26337,26366,32672,32674,32728,32730,32741,32760,32804,32911,32917,32932,32953,32955,32963,32992,33535,33763,33836,33901,33974,34137,34333,34348,35068,35123,35177,35220,35399,35448,35490,35570,36690,36937,36941,36996,37001,40746,40756,41345,41450,41503,41738]},{"a":133,"l":"tmp85","c":"Scratch: copy_memory's pages, digits, chart row counts","t":"byte","b":[3],"x":[6717,7797,7817,9507,9533,10392,10404,10438,10440,12108,12118,12194,12235,12278,12300,12302,12629,12646,12648,13914,13921,14380,14390,14436,14446,15888,26341,26374,32640,32869,32898,32903,33533,33561,33596,34142,34318,34350,34354,34439,34493,34600,34633,34920,34959,34979,34985,35024,35058,35127,35155,35166,35389,35494,35522,35588,36694,36939,36963,37003,37005,39846,39848,39858,40641,40738,40790,40799,40806,41720]},{"a":134,"l":"tmp86","c":"Scratch: which clipping plane (negative for y = -4z), chart rows","t":"byte","b":[149],"x":[6722,7801,7823,10397,10419,10449,10451,12104,12245,12252,12257,12262,12623,12650,12657,12664,12669,13677,13689,13919,14357,14403,14408,15893,26356,26400,32658,32665,32856,32999,33429,33442,33469,33518,33537,33548,33572,33577,33579,33623,33636,33646,33681,33686,33692,33706,34117,34129,34273,34415,34479,34495,34642,34651,34914,34963,34983,35020,35054,35079,35092,35135,35137,35385,35410,35423,35502,35504,36921,36943,36950,36959,39684,39686,39691,40643,40709]},{"a":135,"l":"tmp87","c":"Scratch: room left on a text line, chart rows, digits","t":"byte","b":[0],"x":[6727,7809,7827,7843,7848,10370,10387,10442,10456,12116,12125,12201,12259,12625,12680,14359,14395,14401,15898,26360,26408,33546,33648,33674,33679,33690,33761,33874,33891,33896,33899,34012,34029,34034,34135,34146,34357,34396,34518,34520,34904,34987,35015,35038,35062,35111,35130,35157,35393,35478,35497,35579,36925,39715,39738,40645,40679]},{"a":136,"l":"tmp88","c":"Scratch: digits, edge-walk counters","t":"byte","b":[75],"x":[10429,10432,12206,12247,12272,12287,12627,12691,14353,14363,14382,14414,14438,33717,33804,33839,33914,34017,34073,34085,34093,34200,34205,34212,34900,34925,34938,34995,34997,35052,35159,35383,35581,36929,36965,36979,40647,40649]},{"a":137,"l":"tmp89","c":"Scratch: whether a nonzero digit has been printed, edge-walk counters","t":"byte","b":[4],"x":[33722,33810,33845,33920,34024,34095,34283,34288,34296,34908,34971,34990,35029,35227,35253,35425,35438,35457,35514,35533,36933,36973,36987,40754,40766,40774]},{"a":138,"l":"tmp8A","c":"Scratch: a menu's width, a slot being worked on","t":"byte","b":[9],"x":[6751,6763,6774,6788,6813,6820,6834,6892,6938,7001,7018,7317,7452,10473,10504,10506,10843,10848,12727,12804,12812,12819,12831,12843,12896,12903,12915,12927,13109,13114,13170,13176,13237,13294,13322,13383,13423,13515,15387,15396,15401,15425,15427,30584,30613,30615,30749,31179,31257,33727,33776,33879,33942,33977,34064,34196,34279,34898,35031,35094,35147,35189,35229,35431,35442,35461,35518,35541,35829,35845,35862,35864,39392,39408,39417,39438,39461,39475,39505,39562,39611]},{"a":139,"l":"tmp8B","c":"Scratch: a menu's item count, flags for the first particle and the arrowheads","t":"byte","b":[0],"x":[6753,6768,7361,7374,7382,7388,7394,7398,7403,7409,7415,7421,7426,7432,7438,7441,7446,13040,13046,13061,13081,13085,13178,13197,13261,13502,15392,15403,15407,30580,30654,30659,31194,31218,31246,31261,33732,33782,33886,33948,33983,34115,34131,34150,34217,34245,34256,35100,35151,35193,35233,35412,35465,35506,35512,35547,35836,35850,39390,39406,39457,39639]},{"a":140,"l":"tmp8C","c":"Scratch: a menu's chosen item; free_slot's last targeting ship","t":"byte","b":[109],"x":[6811,6824,6984,7366,13500,13511,13531,15365,15372,15379,15399,27605,33737,33801,33911,34107,34161,34166,34168,34187,34229,34313,35081,35139,35145,35197,35255,35418,35469,35510,35555,35825,35838,35842,39403,39415,39434,39443,39454,39466,39495,39519]},{"a":141,"l":"tmp8D","c":"Scratch: scan-fill and model-loading state","t":"byte","b":[0],"x":[7457,7461,15359,15367,15370,15374,15377,15405,33742,33808,33918,34100,34215,34222,34242,34259,35087,35143,35201,35259,35380,35433,39605,39615]},{"a":142,"l":"tmp8E","c":"Scratch: the menu's first row, scan-fill state","t":"byte","b":[0],"x":[7376,7486,15328,15440,15465,33747,33773,33939,34170,34227,34232,39530,39582,39599]},{"a":143,"l":"tmp8F","c":"Scratch: counters (menu items, bar blinks)","t":"byte","b":[0],"x":[7384,7491,15347,15413,33752,33780,33946,34133,34148,34152,34157,34301,34329,34340,39503,39515,39522,39567,39613,39624]},{"a":144,"l":"tmp90","c":"Scratch: menu line index; the first of the bytes swap_kernal_zp exchanges ($90-$C4)","t":"byte","b":[0],"x":[6074,6076,15330,15411,15435,15454,39526,39532,39556,39578,39609,39635,39637]},{"a":145,"l":"tmp91","c":"Scratch for scan_fill's right edge and the AI score","t":"byte","b":[0],"x":[15342,15394,15431,15433,15452,15461,15463,15472,15474,15483,15489,15491,15499,15501,34102,34299,34306,34326,34343]},{"a":146,"l":"tmp92","c":"Scratch for scan_fill's right edge","t":"byte","b":[0,0],"x":[34174,34189,34311,34316]},{"a":148,"l":"tmp94","c":"Scratch, mostly a slot number being worked on (or the model header's copy)","t":"byte","b":[5],"x":[6473,6511,6523,6675,6700,6738,7732,7756,10774,10798,10800,10807,11432,15729,15811,15850,16121,16199,16287,25808,25844,25876,27912,27924,27929,27946,27964,28076,29483,29596,29909,29919,29921,30035,30073,30152,30190,30262,30290,30292,30333,30356,30845,30906,30947,30949,32040,32134,32153,32162,32164,32360,32413,35307,35309,35314,35324,35351,35356]},{"a":149,"l":"tmp95","c":"Scratch, a second slot number; a 9-byte angle vector from here in turn_objects","t":"byte","b":[167],"x":[6513,6540,6556,6575,6612,6671,6711,6714,6748,7700,7758,11438,11463,15723,15834,15879,25813,25848,27914,27919,27934,28030,28111,29459,29505,29537,30366,30483,30885,30914,30941,30943,30998,31997,31999,32034,32042,32044,32080,32155,32160,32174,32176,32217,32223,32307,32321,32346,32348,32420,32422,32458,32465,32472,32500,32502,32510,32519,32521,32529,32557,32559]},{"a":150,"l":"tmp96","c":"Scratch: radii, gravity strength, ring limits","t":"byte","b":[228],"x":[11354,11402,11409,15721,15782,15798,27957,27981,27997,29428,29474,29488,30371,30488,30868,30879,30985,31851,31951,31962,31986,32192]},{"a":151,"l":"tmp97","c":"Scratch, the high byte of the word at $96","t":"byte","b":[0],"x":[11372,11481,11497,11520,11530,27962,27988,28003,29435,29479,29493,30376,30478,30873,30875,30877,30881,30992,31855,31948,31966,31989,32196]},{"a":152,"l":"tmp98","c":"Scratch: radii, ring limits","t":"byte","b":[167],"x":[11382,11479,27974,27984,27994,28081,29413,29447,29464,30343,30514,31843,31957,31970,31980,32249]},{"a":153,"l":"tmp99","c":"Scratch, the high byte of the word at $98","t":"byte","b":[228],"x":[11390,11495,27979,27990,28001,28085,29420,29452,29469,30348,30519,31847,31954,31974,31983,32253,35336]},{"a":154,"l":"model_inited","c":"In the model drawer, the copy of the header's first byte (0 until the model is prepared); elsewhere scratch","t":"byte","b":[0],"x":[27986,28007,28020,28060,28097,29671,29688,30353,30509,31861,31877]},{"a":155,"l":"model_points","c":"The model's number of points; elsewhere scratch","t":"byte","b":[167],"x":[27992,28011,28024,28066,28103,30320,30545,32350]},{"a":156,"l":"model_refs","c":"The model's number of reference points; elsewhere scratch","t":"byte","b":[228],"x":[28028,28072,30325,30550,31991,32358]},{"a":157,"l":"model_normals","c":"The model's number of normals; elsewhere scratch","t":"byte","b":[0],"x":[27999,28046,30330,30540,32166,32417]},{"a":158,"l":"model_polys","c":"The model's number of polygons; elsewhere scratch (an attacker's slot in damage)","t":"byte","b":[255],"x":[7860,7905,7920,7943,8035,8099,8197,11578,11609,11611,11677,14681,14715,14750,14874,14901,14949,14968,15000,15053,15219,15229,15552,15607,15658,15662,28005,28050,28320,28368,28464,28484,28556,30440,30481,30512,30543,32504,32523,32561,35651,35677,35706]},{"a":159,"l":"model_axes","c":"The model's number of axis vectors; elsewhere scratch (the victim's slot in damage)","t":"byte","b":[0],"x":[7862,7894,7907,7929,7956,8093,11664,11673,14922,28113,28145,28322,28396,28401,28411,28422,28440,28486,28507,28558,28565,30447,30486,30517,30548,31912,31916,32171,35656,35684]},{"a":160,"l":"model_reflist","c":"Pointer to the model's reference point list; elsewhere scratch (damage's shield mode)","t":"byte","b":[0],"x":[7915,7946,8014,8019,8068,8167,11675,11691,14940,14947,14956,15030,15037,15042,15181,15190,28224,28229,28324,28552,28601,32001,35667,35692,35704]},{"a":161,"l":"zpa_A1","c":"Scratch: high byte of the reference list pointer, or the damage being done","t":"byte","b":[0],"x":[7995,8004,14934,14942,14945,14961,15024,15032,15035,15047,28328,28427,28449,28605,28612,35672,35699]},{"a":162,"l":"model_axisidx","c":"Pointer to the model's axis index list (negative to subtract); elsewhere scratch","t":"byte","b":[0],"x":[13576,13644,13670,13703,13783,13884,15014,15051,15062,15073,15080,28358,28567,32257,35620,35637]},{"a":163,"l":"zpa_A3","c":"High byte of the axis index pointer, or random_system's system number","t":"byte","b":[0],"x":[15115,15185,28539,28620,35632,35723,35748,35766,35791]},{"a":164,"l":"model_axisvec","c":"Pointer to the model's axis vectors; elsewhere random_system's bit","t":"byte","b":[0],"x":[28494,28512,28519,28530,28630,31922,31929,31934,31937,31941,32178,35625,35649,35665]},{"a":165,"l":"zpa_A5","c":"High byte of the axis vector pointer, or the shield strengths","t":"byte","b":[0],"x":[28572,28583,28595,32186]},{"a":166,"l":"model_parents","c":"Pointer to each point's parent (negative for the model's position)","t":"byte","b":[0,0],"x":[32239]},{"a":168,"l":"model_refpts","c":"Pointer to the reference points, linear (filled at preparation); elsewhere scratch: a slot (age_objects, blow_up, fire_beam, trace_beam), a HELM step's hours (step_hours, helm_step_time) and the count of names in a QUERY list (nav_query, query_name, query_end_list)","t":"byte","b":[0],"x":[7134,7144,8428,8505,8510,8555,8570,8627,8667,10608,10646,10708,10725,10734,10736,10906,11035,11167,11236,28237,28266,28278,28296,32006,32364]},{"a":169,"l":"zpa_A9","c":"High byte of the reference points pointer; elsewhere scratch: blow_up's victim, fire_beam's beam power, the day a HELM step started (helm_step_time) and QUERY's entry index (nav_query)","t":"byte","b":[0],"x":[8443,8522,8565,10515,10574,10942,10965,10967,11060,11070,11072,11080,11099,11101,28239,28291,32014,32368]},{"a":170,"l":"model_normvec","c":"Pointer to the normals (made at preparation); elsewhere scratch: blow_up's damage, trace_beam's slot index, the hours left in a HELM step (helm_step_time) and helm_encounter's 20-tick wait","t":"byte","b":[0],"x":[8660,8722,8724,8735,10521,10570,10677,10686,28235,28274,32136,32424]},{"a":171,"l":"zpa_AB","c":"High byte of the normals pointer; in HELM, set to stop the trip when the player presses a key, or fire after an encounter (helm_step_time, helm_encounter); the station's status_pages keep their menu column here","t":"byte","b":[0],"x":[10525,10554,10568,10638,10695,32144,32432]},{"a":172,"l":"model_normref","c":"Pointer to the reference point for each normal; elsewhere trace_beam's count of its 50 steps, and the station's status_pages keep their menu row here","t":"byte","b":[0,0],"x":[8653,8728,32438]},{"a":174,"l":"model_planes","c":"Pointer to each polygon's sorting plane for the painter's order","t":"byte","b":[0,0],"x":[32474,32512,32531]},{"a":176,"l":"model_polynorm","c":"Pointer to the normal of each polygon","t":"byte","b":[0,0],"x":[32568]},{"a":178,"l":"model_backcol","c":"Pointer to each polygon's back colour; elsewhere the first slot in a collision, and the slot that fires in beam_hit and draw_beam","t":"byte","b":[0],"x":[8738,8747,8772,8791,8818,8825,8840,27500,27569,27587,27597,27619,27693,27704,27725,27785,27789,27798,27838,27845,27863,32576]},{"a":179,"l":"zpa_B3","c":"High byte of the back colour pointer; elsewhere the collision's second slot, the beam's target slot (beam_hit, draw_beam), and in nav_helm the step's x and y offsets ANDed, nonzero for a diagonal step, which it passes to helm_step_time","t":"byte","b":[0],"x":[8740,8756,8820,8827,8892,8928,10067,10070,10072,10096,27507,27567,27592,27601,27635,27691,27706,27727,27787,27791,27800,27818,27840,27876]},{"a":180,"l":"model_frontcol","c":"Pointer to each polygon's front colour; elsewhere the beam's power (beam_hit, draw_beam), and in nav_helm helm_step_time's result, nonzero to stop the trip","t":"byte","b":[0],"x":[8742,8781,8807,8829,10101,10114,31875,32583]},{"a":181,"l":"zpa_B5","c":"High byte of the front colour pointer; elsewhere draw_beam's x distance from the shooter's point on screen ($FD00) to the target's, low byte","t":"byte","b":[0],"x":[9022,9036,9038,9076,31871]},{"a":182,"l":"model_vertlists","c":"Pointer to the polygons' vertex lists; elsewhere draw_beam's x distance, high byte","t":"byte","b":[0],"x":[9029,9042,9044,9080,32046,32052,32084,32090,32609]},{"a":183,"l":"zpa_B7","c":"High byte of the vertex lists pointer; elsewhere ram's damage and draw_beam's y distance, low byte","t":"byte","b":[0],"x":[9052,9066,9068,9078,27685,27687,27700,32615]},{"a":184,"l":"model_vertcounts","c":"Pointer to the polygons' vertex counts; elsewhere the first type in a collision, and draw_beam's y distance, high byte","t":"byte","b":[0],"x":[9059,9072,9074,9082,27505,27532,27783,27833,32158,32595,32605]},{"a":185,"l":"zpa_B9","c":"High byte of the vertex counts pointer, or the collision's second type","t":"byte","b":[0],"x":[27512,27534,27562,27781,27854,27870]},{"a":186,"l":"model_groups","c":"Pointer to the face groups' normal lists (facing_face)","t":"byte","b":[0,0],"x":[28786]},{"a":188,"l":"model_groupsizes","c":"Pointer to the face groups' sizes, zero-ended; elsewhere scratch: frame_update's new ship's type and a slot counter, enter_sector's run count as it fills its type list","t":"byte","b":[0],"x":[4769,4780,4830,4837,4868,4875,4877,5606,5616,28776]},{"a":189,"l":"zpa_BD","c":"High byte of the group sizes pointer; elsewhere the AI's fire flag, load_slot_models' slot counter, enter_sector's place in the entry list and draw_chart_cursor's blink counter","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[5640,5671,7532,7545,7547,9862,9864,14575,14612,14618]},{"a":197,"t":"byte","b":[0]},{"a":198,"l":"slot_a","c":"The first slot of a collision pair; the chart cursor's x in navigation; enter_sector's type list from here (21 bytes); ai_speed's target slot","t":"byte","b":[255],"x":[5559,5613,5696,5706,9596,9807,9829,9833,9844,10027,10048,10084,10130,10166,10213,10240,10461,10880,10930,10971,11037,11126,14097,14263,14271,27322,27353,27377,27410,27421,27451,27493]},{"a":199,"l":"slot_b","c":"The second slot of a collision pair; the chart cursor's y; ai_speed's tactic speed","t":"byte","b":[255],"x":[5658,9605,9817,9824,9836,9847,10033,10059,10090,10136,10172,10224,10248,10466,10891,10933,10974,11045,11129,14254,14283,14293,14296,14305,14341,27346,27404,27406,27431,27455,27473,27495]},{"a":200,"l":"radius_lo","c":"The first ship's radius in check_collisions; in navigation nonzero once the ship has moved; ai_speed's target speed","t":"byte","b":[3],"x":[9556,9780,10081,11053,14276,14281,14291,27337,27362]},{"a":201,"l":"radius_hi","c":"High byte of the first ship's radius","t":"byte","b":[0],"x":[27342,27370]},{"a":202,"l":"zpa_CA","c":"enter_sector's object type list, fifth byte","t":"byte","b":[255],"x":[5679]},{"a":203,"l":"zpa_CB","c":"enter_sector's object type list, sixth byte","t":"byte","b":[255],"x":[5684]},{"a":204,"l":"zpa_CC","c":"enter_sector's object type list, seventh byte","t":"byte","b":[255,255,255,255],"x":[5689]},{"a":208,"l":"ai_dist","c":"The AI's distance to its target, log form ($D0/$D1, from bearing)","t":"byte","b":[255],"x":[14007,14188,14329,14541]},{"a":209,"l":"zpa_D1","c":"The distance's whole part","t":"byte","b":[255],"x":[14011,14192,14333,14545]},{"a":210,"l":"ai_dot","c":"The dot product of the target's direction with the ship's axis ($D2-$D4)","t":"byte","b":[255],"x":[14015,14315,14564]},{"a":211,"l":"zpa_D3","c":"The dot product's whole part","t":"byte","b":[255],"x":[14019,14319,14568]},{"a":212,"l":"zpa_D4","c":"The dot product's sign","t":"byte","b":[255],"x":[14023,14311,14560]},{"a":213,"l":"ai_slot","c":"The ship slot the AI is thinking for","t":"byte","b":[0,22,22,22,22,22,0,0],"x":[13983,13995,14030,14055,14071,14073,14091,14106,14137,14156,14162,14175,14196,14227,14303,14529,14584,14616,15531,15656,15664,15702]},{"a":221,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":229,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":237,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":245,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":253,"t":"byte","b":[0,0,0]},{"a":256,"t":"gap","n":532,"x":[6071,6079]},{"a":788,"l":"irq_vector","c":"The KERNAL's IRQ vector, pointed at irq_body ($0EA5) so the interrupt works while the KERNAL is banked in for a load","t":"byte","b":[165],"x":[3690]},{"a":789,"l":"a_0315","c":"High byte of the IRQ vector","t":"byte","b":[14],"x":[3693]},{"a":790,"l":"brk_vector","c":"The KERNAL's BRK vector, pointed at an RTI ($0E9F)","t":"byte","b":[159],"x":[3674]},{"a":791,"l":"a_0317","c":"High byte of the BRK vector","t":"byte","b":[14],"x":[3677]},{"a":792,"l":"nmi_vector","c":"The KERNAL's NMI vector, pointed at an RTI ($0E9E), so RESTORE does nothing","t":"byte","b":[158],"x":[3658]},{"a":793,"l":"a_0319","c":"High byte of the NMI vector","t":"byte","b":[14,74,243,145,242,14,242,80],"x":[3661]},{"a":801,"t":"byte","b":[242,51,243,87,241,202,241,237]},{"a":809,"t":"byte","b":[246,62,241,47,243,102,254,165]},{"a":817,"t":"byte","b":[244,237,245,0,0,0,0,0]},{"a":825,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":833,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":841,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":849,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":857,"t":"gap","n":167},{"a":1024,"l":"sr_start","c":"SR's first instruction, the address the intro jumps to after loading SR: a jump to the start-up at $0DE7","t":"code","b":[76,231,13],"m":"jmp","oa":3559,"o":"sr_init"},{"a":1027,"l":"slot_missile","c":"For each ship slot 0-5: 1 when it holds a missile (fill_slot, from type flag bit 5). The saved game, SAVED, is $0403-$0801","t":"byte","b":[0,0,0,0,0,0],"x":[4747,4844,6629,6735,6780,6988,7129,7584,7874,14032,14372,14428,14536,14863,14980,15004,15201,28360,28383]},{"a":1033,"l":"slot_damage","c":"For each ship slot 0-5, the systems knocked out: bit 0 launcher, 1 laser, 2 engine, 3 aft shield, 4 fore shield, 5 ECM","t":"byte","b":[0,0,0,0,0,0],"x":[6623,7853,7982,8430,10727,10850,10853,12767,12964,13517,14586,28509,28516,28521,28574,30192]},{"a":1039,"l":"slot_cooldown","c":"For each ship slot 0-5, the collision cooldown in passes (contact_cooldown sets 2, dock 8, enter_sector $40)","t":"byte","b":[0,0,0,0,0,0],"x":[5538,27412,27417,27898,27903,28968]},{"a":1045,"l":"slot_speed","c":"For each ship slot 0-5, the set speed, signed, in the game's speed units (16 to a unit of movement a pass); the player's is the CF readout","t":"byte","b":[5,0,0,0,0,0],"x":[4449,5091,5098,5112,5119,5741,6620,7953,9285,9303,9324,9342,12740,12783,12793,14122,14307,28889,28990,29125,30019]},{"a":1051,"l":"slot_ai_state","c":"For each ship slot 0-5, the AI state: 0 none, 1 cruising, 3 a missile, $FE fighting, $FF fleeing","t":"byte","b":[0,0,0,0,0,0],"x":[6626,6692,7972,13990,14110,14139,14171,14177,14531,14676]},{"a":1057,"l":"slot_label","c":"For each ship slot 0-5, a 3-character label (3 bytes each, random_label), printed on the TAC","t":"byte","b":[0],"x":[6719,13947]},{"a":1058,"l":"f_0422","c":"The label's second character","t":"byte","b":[0],"x":[6724,13943]},{"a":1059,"l":"f_0423","c":"The label's third character","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[6729,13939]},{"a":1067,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1075,"l":"slot_faction","c":"For each ship slot 0-5, the faction (from the type's $0C1E), or for a missile the slot that launched it","t":"byte","b":[4,0,0,0,0,0],"x":[5940,6643,6705,6873,6993,7010,7020,7655,7748,7879,7948,8560,14377,14384,14433,14440,14717,14752,14912,15055,15221,15233,15437,15442,15476,27807,28388,28478]},{"a":1081,"l":"slot_attacker","c":"For each ship slot 0-5, the last ship that attacked it ($FF none), which it may turn on","t":"byte","b":[255,0,0,0,0,0],"x":[6637,6831,6840,14081,14101,15456,15467,28403]},{"a":1087,"l":"slot_tactic","c":"For each ship slot 0-5, the AI tactic (0 cruise, 2 pursue, 7 flee and others; names at $0CAE)","t":"byte","b":[255,0,0,0,0,0],"x":[6640,6697,8016,13385,14115,14166,14200,14204,14244,14248,15544,15704]},{"a":1093,"l":"slot_target","c":"For each ship slot 0-5, its target slot ($FF none); the player's is the TAC's","t":"byte","b":[255,0,0,0,0,0],"x":[4678,5728,6634,6755,6817,6828,7559,7605,7647,7662,7714,7734,7962,7967,7975,8117,8460,8514,8538,9623,12592,12652,12659,13167,13243,13569,13997,14037,14057,14094,14146,14256,14423,14453,14671,14898,14907,14975,14995,15549,15563,27813,28375,28393,31121]},{"a":1099,"l":"slot_orient","c":"The orientations of slots 0-6, 27 bytes each (offsets at $083C): three rows of three log-form numbers, the third row pointing to the rear","t":"byte","b":[0,0,0,156,230,255,156,230],"x":[13686]},{"a":1107,"t":"byte","b":[255,156,230,0,0,0,0,156]},{"a":1115,"t":"byte","b":[230,255,156,230,0,156,230,0]},{"a":1123,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1131,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1139,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1147,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1155,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1163,"t":"gap","n":125},{"a":1288,"l":"slot_pitch","c":"The pitch rate of slots 0-6, signed, in 1024ths of a turn a pass for the player, a count of steps for the others","t":"byte","b":[0,0,0,0,0,0,0],"x":[5020,5027,5031,5038,5044,6586,9364,15533,15589,15881,30282,30358,30462,30469,30475]},{"a":1295,"l":"slot_roll","c":"The roll rate of slots 0-6","t":"byte","b":[0,0,0,0,0,0,0],"x":[5050,5054,5061,5065,5072,6592,15539,15595,30276,30312,30524,30531,30537]},{"a":1302,"l":"slot_turn","c":"The turn rate of slots 0-6","t":"byte","b":[0,0,0,0,0,0,0],"x":[4998,5005,5009,5016,5047,6589,6687,9375,15536,15583,15836,28231,30273,30279,30335,30493,30500,30506]},{"a":1309,"l":"slot_armour","c":"Each slot's armour (hit points), a signed word ($051D + 2 * slot); a missile's or explosion's counts its life down","t":"byte","b":[44],"x":[6547,7110,7118,12867,13427,14953,15039,15384,28445,28451,29337,29345]},{"a":1310,"l":"f_051E","c":"High byte of the armour word","t":"byte","b":[1,0,0,0,0,0,0,0],"x":[6553,7115,7121,12872,13432,14958,15044,15389,28456,28459,29342,29348]},{"a":1318,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1326,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1334,"t":"byte","b":[0,0,0,0,125,0,125,0]},{"a":1342,"t":"byte","b":[125,0,125,0,125,0,125]},{"a":1349,"l":"slot_velocity","c":"Each slot's velocity, 9 bytes (three 24-bit linear components, offsets at $0846): the movement each pass","t":"byte","b":[0],"x":[5748,9512,28304,29132]},{"a":1350,"l":"f_0546","c":"The velocity's x, low whole byte","t":"byte","b":[0],"x":[9524]},{"a":1351,"l":"f_0547","c":"The velocity's x, high byte","t":"byte","b":[0],"x":[9527]},{"a":1352,"l":"a_0548","c":"The velocity's y, fraction byte (jolt_player randomises it)","t":"byte","b":[0,0,0],"x":[28310]},{"a":1355,"l":"a_054B","c":"The velocity's z, fraction byte","t":"byte","b":[177,255,255,0,0,0,0,0],"x":[28316]},{"a":1363,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1371,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1379,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1387,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1395,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1403,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1411,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1419,"t":"gap","n":110},{"a":1529,"l":"slot_in_use","c":"Nonzero for each of the 20 slots in use","t":"byte","b":[1,0,0,0,0,0,0,0],"x":[4742,4839,6499,6520,6808,7092,7534,7575,7869,9618,11082,12587,12633,13985,14367,14418,14666,14858,14970,14990,15196,29439,29911,30206,30264,30586,30847]},{"a":1537,"t":"byte","b":[0,0,0,0,0,0,1,1]},{"a":1545,"t":"byte","b":[1,1,1,1]},{"a":1549,"l":"slot_type","c":"The object type in each of the 20 slots","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[5718,6526,6854,6894,6940,7003,7031,7097,7539,7591,7737,7989,8437,8547,8671,11087,12597,12638,13194,13646,13886,14231,14473,14593,14622,14919,15344,15418,15725,15945,25609,27329,27357,27433,27457,27477,27502,27509,27936,27966,28282,28339,28355,28468,29539,30089,30211,30429,30591,30852]},{"a":1557,"t":"byte","b":[0,0,0,0,0,0,22,22]},{"a":1565,"t":"byte","b":[22,22,22,22]},{"a":1569,"l":"slot_onscreen","c":"Each slot's on-screen value, cleared every frame by build_draw_list and set by in_view for an object in view","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[15920,16327,30601]},{"a":1577,"t":"byte","b":[0,0,0,0,0,0,5,5]},{"a":1585,"t":"byte","b":[4,5,5,5]},{"a":1589,"l":"slot_solid","c":"Nonzero for a slot whose type has a radius ($0A1D), so it can collide and be hit","t":"byte","b":[3,0,0,0,0,0,0,0],"x":[6537,6805,8662,27324,27348,30887]},{"a":1597,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1605,"t":"byte","b":[0,0,0,0]},{"a":1609,"l":"slot_drawn","c":"Nonzero for a slot that is drawn (the player's own ship is not, in the cockpit)","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[6517,6802,15937,26039,26063]},{"a":1617,"t":"byte","b":[0,0,0,0,0,0,1,1]},{"a":1625,"t":"byte","b":[1,1,1,1]},{"a":1629,"l":"slot_position","c":"Each slot's position, 9 bytes (three 24-bit linear coordinates, 16.8, offsets at $0846)","t":"byte","b":[0,0,0,0,0,0],"x":[29135]},{"a":1635,"l":"a_0663","c":"The player's z, fraction byte (wormhole_step moves it)","t":"byte","b":[115],"x":[29304,29310]},{"a":1636,"l":"a_0664","c":"The player's z, low whole byte","t":"byte","b":[156],"x":[29315,29323,29380,29407,29422,29449,29461,29471,29485,29800]},{"a":1637,"l":"a_0665","c":"The player's z, high byte","t":"byte","b":[255],"x":[29320,29386,29415,29430,29454,29466,29476,29490,29809]},{"a":1638,"l":"slot_positions_rest","c":"Slots 1-19's positions, 9 bytes each after slot 0's (the player's): slot n at $065D + 9 \u00d7 n, written as the objects move","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1646,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1654,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1662,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1670,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1678,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1686,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1694,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1702,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1710,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1718,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1726,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1734,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1742,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1750,"t":"byte","b":[0,0,0,0,0,0,253,255]},{"a":1758,"t":"byte","b":[0,0,0,0,109,255,0,2]},{"a":1766,"t":"byte","b":[0,0,2,0,0,104,255,0]},{"a":1774,"t":"byte","b":[250,255,0,255,255,0,132,255]},{"a":1782,"t":"byte","b":[0,249,255,0,9,0,0,116]},{"a":1790,"t":"byte","b":[255,0,3,0,0,246,255,0]},{"a":1798,"t":"byte","b":[112,255,0,248,255,0,6,0]},{"a":1806,"t":"byte","b":[0,109,255]},{"a":1809,"l":"player_name","c":"The player's name, 12 bytes (from \"What is your name?\", copied by init_game)","t":"byte","b":[112,105,108,111,116,0,22,188]},{"a":1817,"t":"byte","b":[129,198,11,188]},{"a":1821,"l":"cur_system","c":"The system the ship is in (0-7, or 9 for the Manchi system), the digit of its map file Qn","t":"byte","b":[0],"x":[11898,28820,29219]},{"a":1822,"l":"cur_sector_x","c":"The ship's sector across the 32 by 32 chart","t":"byte","b":[26],"x":[5576,5622,9593,9788,29042,29225]},{"a":1823,"l":"cur_sector_y","c":"The ship's sector down the chart","t":"byte","b":[5],"x":[5579,5625,9602,9794,29050,29231]},{"a":1824,"l":"clock_hours","c":"The clock's hours, 0-23","t":"byte","b":[0],"x":[8228,8231,8240,8347]},{"a":1825,"l":"clock_day","c":"The day of the month","t":"byte","b":[1],"x":[8258,8267,8274,8308,10512,10576]},{"a":1826,"l":"clock_month","c":"The month, 1-12","t":"byte","b":[3],"x":[8261,8277,8282,8289,8319]},{"a":1827,"l":"clock_year","c":"The year, 0-99 (the game starts on 01 MAR 12)","t":"byte","b":[12],"x":[8292,8297,8304,8341]},{"a":1828,"l":"days_elapsed","c":"Days since the start, a word ($0724/$0725), which turns the orbits","t":"byte","b":[0],"x":[8250,11706,11755]},{"a":1829,"l":"a_0725","c":"High byte of the days elapsed","t":"byte","b":[0],"x":[8255]},{"a":1830,"l":"bounty","c":"The bounty on the player, a word ($0726/$0727): Hunters attack while it is nonzero","t":"byte","b":[0],"x":[7044,7047,14481,14780,14802]},{"a":1831,"l":"a_0727","c":"High byte of the bounty","t":"byte","b":[0],"x":[7052,14478,14788,14805]},{"a":1832,"l":"credits","c":"The player's credits, a word ($0728/$0729)","t":"byte","b":[220],"x":[12035,12047,12053,12066,12072,12087]},{"a":1833,"l":"a_0729","c":"High byte of the credits","t":"byte","b":[5],"x":[12040,12056,12061,12075,12080,12092]},{"a":1834,"l":"rank","c":"The player's rank (repute), which raises the ship's rank value ($0C79) and the REPUTE word","t":"byte","b":[0],"x":[5979,6955,6971,14702]},{"a":1835,"l":"rank_points","c":"Points toward the next rank, from kills and surrenders","t":"byte","b":[5],"x":[6943,6950,6968,14698,14705,14712]},{"a":1836,"l":"dest_x","c":"The chart destination's sector across ($FF for none)","t":"byte","b":[255],"x":[10124,10169,10380,10401,28985]},{"a":1837,"l":"dest_y","c":"The chart destination's sector down","t":"byte","b":[255],"x":[10175,10416]},{"a":1838,"l":"standings","c":"The player's standing with factions 0-2 ($072E-$0730), -2 to 2; faction_attitude reads $072E + faction, so for the Manchi (faction 3) it reads $0731, the beam's $FE: hostile","t":"byte","b":[0,1,1],"x":[14491,15513,15527]},{"a":1841,"l":"missile_count","c":"The count read for weapon $0CFE at $0731 + weapon: $FE here for the beam, which never runs out, then the missiles carried, SM-1 (type 9) at $0732, Nova (type 10) at $0733 and plasma torpedoes (type 11) at $0734; faction_attitude reads the same $FE as the player's standing with the Manchi (faction 3), hostile, and change_standing ($3C90) leaves faction 3 alone","t":"byte","b":[254],"x":[7787,13056]},{"a":1842,"l":"missiles_sm1","c":"SM-1 missiles carried (type 9); a launch reads $0732 + type - 9","t":"byte","b":[0],"x":[7900,7935]},{"a":1843,"l":"missiles_nova","c":"Nova missiles carried (type 10)","t":"byte","b":[0]},{"a":1844,"l":"missiles_torp","c":"Plasma torpedoes carried (type 11)","t":"byte","b":[0]},{"a":1845,"l":"ship_stats","c":"The player's ship as fitted, 6 bytes copied into the type-0 tables: armour word, ECM, systems, beam, shields","t":"byte","b":[44],"x":[5943]},{"a":1846,"l":"a_0736","c":"The ship's armour, high byte","t":"byte","b":[1],"x":[5949]},{"a":1847,"l":"a_0737","c":"The ship's ECM: the percentage chance, 25, 50 or 75 (0 for none), that a missile fired at it swerves away (type 0's $0C2B)","t":"byte","b":[0],"x":[5955]},{"a":1848,"l":"a_0738","c":"The ship's systems bits (type 0's $0C45)","t":"byte","b":[23],"x":[5961]},{"a":1849,"l":"a_0739","c":"The ship's beam (type 0's $0C52)","t":"byte","b":[1],"x":[5967]},{"a":1850,"l":"a_073A","c":"The ship's shields, two nybbles (type 0's $0C6C)","t":"byte","b":[16],"x":[5973]},{"a":1851,"l":"engine_thrust","c":"The engine's thrust, a log word ($073B/$073C), from which frame_update makes the player's thrust: times 8 / (8 + cargo slots in use)","t":"byte","b":[92],"x":[4939]},{"a":1852,"l":"a_073C","c":"The engine thrust's whole part","t":"byte","b":[250],"x":[4948]},{"a":1853,"l":"item_stealth_box","c":"The items owned start here, a byte each for items 0-20 ($073D-$0751, TALK's variable class 1, their names the disk texts $CE89-$CE9D): 0-4 the ship's equipment, 5-20 things carried. Item 0, the stealth box, lets ships pass rather than attack about a third of the time (encounter_hostile)","t":"byte","b":[0],"x":[11506]},{"a":1854,"l":"item_beam_lock","c":"Item 1, the beam lock: with it automatic beam fire can be switched on (key L)","t":"byte","b":[0],"x":[5149]},{"a":1855,"l":"item_turbo_thruster","c":"Item 2, the turbo thruster, sold once by an outfitter (buy_special), which adds 1 to the engine thrust's whole part ($073C)","t":"byte","b":[0]},{"a":1856,"l":"item_repair_droid","c":"Item 3, the repair droid: damage repairs itself a little each day (daily_repair). Once it is owned, Chi-Sha (script 13) is no longer found at her base (base_setup)","t":"byte","b":[0],"x":[10835]},{"a":1857,"l":"item_null_damper","c":"Item 4, the null damper: it stops the wormhole wearing the armour down (wormhole_step)","t":"byte","b":[0],"x":[29332]},{"a":1858,"l":"item_key_card","c":"Item 5, the key card, the first of the things carried (items 5-20, listed by status_person): it opens a locked door whose map entry's extra byte is 0 (use_card)","t":"byte","b":[0]},{"a":1859,"l":"item_manchi_egg","c":"Item 6, the Manchi egg; owning it lets rumour 9 out (base_setup)","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1867,"t":"byte","b":[0,0]},{"a":1869,"l":"item_pilots_license","c":"Item 16, the pilot's license, which the outfitter asks to see before selling a laser or shields","t":"byte","b":[0]},{"a":1870,"l":"item_forged_papers","c":"Item 17, the forged cargo papers: a base checks the hold one time in eight with them instead of one in two ($A63A)","t":"byte","b":[0]},{"a":1871,"l":"item_amoebic_lenses","c":"Item 18, the amoebic lenses, which let the player pick up the transmutation coil (act_coil)","t":"byte","b":[0,0,0]},{"a":1874,"l":"item_on_map","c":"A byte per item from here, 1 while the item still lies where a base map puts it; picking it up (act_item) takes it to 0, and base_setup then leaves it off the map","t":"byte","b":[255,255,255,255,1,1,1,1]},{"a":1882,"t":"byte","b":[1,8,1,1,1,1,1,1]},{"a":1890,"t":"byte","b":[1,1,1,1]},{"a":1894,"l":"f_0766","c":"The byte before the cargo hold, so the hold can be counted from its top slot ($0766 + $0777)","t":"byte","b":[1],"x":[11968,11979,11988]},{"a":1895,"l":"cargo_kind","c":"The kind of cargo in each hold slot ($0767-$076E), $FF for empty","t":"byte","b":[255,255,255,255,255,255,255,255],"x":[10815,10827,11945,11955,12001]},{"a":1903,"l":"cargo_paid","c":"What was paid for each hold slot's cargo, the price's low byte ($076F-$0776): 0 for cargo a surrendering merchant gave up; only the base's ONBOARD page reads it (SEG1, $AD34)","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[11960]},{"a":1911,"l":"cargo_slots","c":"How many hold slots the ship has","t":"byte","b":[4],"x":[10811,11941,11965,11983,11995,12013]},{"a":1912,"l":"base_file","c":"The map file name of the base in the current sector, three characters ($0778-$077A) such as \"L51\", from the system map (base_file_from_map); docking loads it, and arrival_message and base_setup test its digits","t":"byte","b":[76],"x":[5817]},{"a":1913,"l":"base_file_system","c":"The base file name's second character, the system's digit, which arrival_message and base_setup test: '6' for Sigure, Trochal's system, and '5' for Bassruti's","t":"byte","b":[48],"x":[5823]},{"a":1914,"l":"base_file_number","c":"The base file name's third character, the base's number in its system","t":"byte","b":[48,0],"x":[5829]},{"a":1916,"l":"danger","c":"The system's danger level, from its map ($5612): the chance of encounters","t":"byte","b":[40],"x":[4758,11311,11927]},{"a":1917,"l":"class_weights","c":"The system's five ship class weights ($077D-$0781), for pick_ship","t":"byte","b":[10,10,45,30,5],"x":[11421]},{"a":1922,"l":"special_entries","c":"The number of sector entries of type $64 and up (hazards) in the current sector","t":"byte","b":[0],"x":[5543,5755,9395]},{"a":1923,"l":"shot_a_base","c":"Set when the player's fire hits a base; read on docking ($A5B1 in SEG1); cleared when the day changes","t":"byte","b":[0],"x":[10594,28351]},{"a":1924,"l":"rumour_states","c":"The ten rumours' states, a byte each ($0784-$078D): 2 not yet out, 1 or 0 ready to be told (release_rumour takes 2 to 1), $FF told; the bartender counts each one down as it is told (pick_rumour). Their texts are disk texts $CF35 on","t":"byte","b":[1,1,2,2,2,2,2,2]},{"a":1932,"t":"byte","b":[2,2]},{"a":1934,"l":"plot_flags","c":"The 32 plot flags ($078E-$07AD, TALK's variable class 2), set and tested by the talk scripts: flag 0 lets rumour 5 out, 2 rumour 2 and takes the Duchess off her base, 3 rumour 3, 5 rumour 4 and puts Trochal on alert, 8 ends the talk with a trip to Ja-Karn ($E7E2); 12-14 are also read in flight ($079A-$079C)","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1942,"t":"byte","b":[0,0,0,0]},{"a":1946,"l":"kills_079A","c":"Plot flag 12: a count of type-6 ships destroyed while $079C is set (kill_reward)","t":"byte","b":[0],"x":[6859,15243]},{"a":1947,"l":"a_079B","c":"Plot flag 13, which the merchant surrender sets and tests","t":"byte","b":[0],"x":[15238,15248]},{"a":1948,"l":"a_079C","c":"Plot flag 14, the flag that makes kill_reward count type-6 kills","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[6847,6864]},{"a":1956,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":1964,"t":"byte","b":[0,0]},{"a":1966,"l":"daily_lists","c":"Daily lists ($07AE-$07BB), cleared when the day changes","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[10588]},{"a":1974,"t":"byte","b":[0,0,0,0,0,0]},{"a":1980,"l":"file_names","c":"The file names the loader is given, zero-ended: TITLE, INIT, MAIN, SPB, EXTERN, FONT, WON, @0:SAVED (saving over SAVED), SEG0, SEG1, SEG1A, END, PIT.PAC, NAV.PAC, LAND.PAC, H.PAC, NAV.TIL, LAND.TIL, TALK","t":"byte","b":[84,73,84,76,69,0,73,78]},{"a":1988,"t":"byte","b":[73,84,0,77,65,73,78,0]},{"a":1996,"t":"byte","b":[83,80,66,0,69,88,84,69]},{"a":2004,"t":"byte","b":[82,78,0,70,79,78,84,0]},{"a":2012,"t":"byte","b":[87,79,78,0,64,48,58,83]},{"a":2020,"t":"byte","b":[65,86,69,68,0,83,69,71]},{"a":2028,"t":"byte","b":[48,0,83,69,71,49,0,83]},{"a":2036,"t":"byte","b":[69,71,49,65,0,69,78,68]},{"a":2044,"t":"byte","b":[0,80,73,84]},{"a":2048,"l":"file_names_2","c":"file_names from the middle of PIT.PAC on, where a page boundary cuts the table: \".PAC\", then NAV.PAC, LAND.PAC, H.PAC, NAV.TIL, LAND.TIL and TALK","t":"byte","b":[46,80,65,67,0,78,65,86]},{"a":2056,"t":"byte","b":[46,80,65,67,0,76,65,78]},{"a":2064,"t":"byte","b":[68,46,80,65,67,0,72,46]},{"a":2072,"t":"byte","b":[80,65,67,0,78,65,86,46]},{"a":2080,"t":"byte","b":[84,73,76,0,76,65,78,68]},{"a":2088,"t":"byte","b":[46,84,73,76,0,84,65,76]},{"a":2096,"t":"byte","b":[75,0]},{"a":2098,"l":"surrendered","c":"Set once a surrender or a merchant's offer has happened in this encounter; cleared for each sector","t":"byte","b":[0],"x":[5546,10626,14690,14695,14893,15084]},{"a":2099,"l":"taunted","c":"Set once the target's hail has been printed (target_status); cleared for each sector","t":"byte","b":[0],"x":[5549,7676,7686,7704,10629]},{"a":2100,"l":"gravity_warned","c":"Set once the gravity warning has been printed; cleared for each sector and HELM step","t":"byte","b":[0],"x":[5552,10632,31002,31038]},{"a":2101,"l":"killer","c":"What last hit the player, for the death text: an object type, or negative for a beam","t":"byte","b":[0],"x":[8767,27514,27795,29355]},{"a":2102,"l":"missile_reload","c":"Passes until the next missile can be fired ($7E after a launch)","t":"byte","b":[0],"x":[4665,4670,7889,7940,13076]},{"a":2103,"l":"touched","c":"The object the player touched in the cockpit view, for dock_check ($FF none)","t":"byte","b":[255],"x":[27317,27469,27489,28725,28762,28982]},{"a":2104,"l":"in_wormhole","c":"Set while the wormhole is flown: do_key then takes only the first 25 commands","t":"byte","b":[0,3],"x":[4970,29146,29275]},{"a":2106,"l":"drunk","c":"Set when a drink at the bar gets the player drunk (bartender, one time in ten): the player then staggers one step in ten and the bartender serves no more. Cleared on entering a base (station_run)","t":"byte","b":[0],"x":[42140]},{"a":2107,"l":"alarm","c":"The base's alarm (raise_alarm), 0 for none: $A0 an alarm plate or a locked door, $A1 a safe, 1 Bassruti's monsters, 2 and 4 from a talk script, 3 Trochal's guards. Cleared on entering a base, with $083A","t":"byte","b":[0],"x":[42143]},{"a":2108,"l":"orient_offsets","c":"The offset of each of slots 0-6 in the 27-byte orientation blocks ($044B)","t":"byte","b":[0,27,54,81,108,135,162,189],"x":[6598,8057,8073,13792,15616,15734,25655,30157,30556,31105]},{"a":2116,"t":"byte","b":[216,243]},{"a":2118,"l":"pos_offsets","c":"The offset of each of the 20 slots in the 9-byte position and velocity blocks ($065D, $0545)","t":"byte","b":[0,9,18,27,36,45,54,63],"x":[6561,6649,8024,8040,8123,8172,8202,8472,8700,9502,13708,15672,16118,25770,27385,27624,27640,28035,28150,28167,28203,29444,29510,30040,30078,30224,30238,30632,30754,30895,30919,31056,31780,31829,32009,32058,32096,32139,32181,32203,32228,32265,32293,32427,32444,32626,32688,32829,32844,32874,32922,33031]},{"a":2126,"t":"byte","b":[72,81,90,99,108,117,126,135]},{"a":2134,"t":"byte","b":[144,153,162,171,180,189,198,207]},{"a":2142,"t":"byte","b":[216,225,234,243,252,5,14,23]},{"a":2150,"t":"byte","b":[32,41,50,59,68,77,86,95]},{"a":2158,"l":"clip_scratch","c":"Scratch for the polygon clipper: the planes' tests and new vertices","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[32695,32836,32851,32881,33038]},{"a":2166,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":2174,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":2182,"t":"byte","b":[0,0,0,0,0,1,1,1]},{"a":2190,"t":"byte","b":[1,1,1,1,1,1,1,1]},{"a":2198,"t":"byte","b":[0,0,0,0,0,0,177,255]},{"a":2206,"l":"a_089E","c":"The sign of a projected beam end's z (project_point): negative in front of the viewer","t":"byte","b":[255,0,236,0,0,236,0,0],"x":[9192]},{"a":2214,"t":"byte","b":[236]},{"a":2215,"l":"a_08A7","c":"The sign of the target's z in the ship's frame, for draw_target_arrows: negative ahead","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[31176]},{"a":2223,"t":"byte","b":[0,0]},{"a":2225,"l":"talk_flags","c":"The talk's own four flags ($08B1-$08B4, TALK's variable class 0), cleared as each talk starts; flag 0 is set when the player is short of the credits a script asks for ($E797)","t":"byte","b":[0,0,0,0]},{"a":2229,"l":"visitor_pictures","c":"The picture of each of the 32 scripts' people as a visitor, a byte each ($08B5-$08D4), negative for one who never visits (base_setup picks a random one with a picture); class 0's indexes 4 and up","t":"byte","b":[255,255,255,255,255,255,73,255]},{"a":2237,"t":"byte","b":[255,255,93,255,255,255,255,77]},{"a":2245,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":2253,"t":"byte","b":[255,255,255,255,73,83,75,81]},{"a":2261,"l":"type_flags","c":"The 35 object types' flags: bit 0 a base, 1 gravity, 2 a particle, 3 a limited life, 4 moves, 5 a missile, 6 a hazard, 7 a 3D model","t":"byte","b":[144,144,144,144,144,144,144,144],"x":[6677,7100,7598,25825,25854,27436,27460,27480,27536,27539,27549,27774,27939,28342,28471,28739,30214,30594,30622,30855]},{"a":2269,"t":"byte","b":[144,184,184,56,144,128,194,194]},{"a":2277,"t":"byte","b":[129,129,129,129,128,66,4,8]},{"a":2285,"t":"byte","b":[24,4,68,68,66,66,20,4]},{"a":2293,"t":"byte","b":[4,4,8]},{"a":2296,"l":"type_draw","c":"Each type's draw routine or model address, a word (0 until the model is loaded)","t":"byte","b":[42],"x":[7474,7511,13911,25805]},{"a":2297,"l":"type_draw_hi","c":"type_draw's high bytes, read at $08F9 + 2 * type","t":"byte","b":[105,0,0,0,0,0,0,0],"x":[4784,7329,7480,13916,25810]},{"a":2305,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":2313,"t":"byte","b":[0,19,104,19,104,41,138,0]},{"a":2321,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":2329,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":2337,"t":"byte","b":[0,52,136,52,136,27,139,239]},{"a":2345,"t":"byte","b":[139,52,136,52,136,239,139,207]},{"a":2353,"t":"byte","b":[137,207,137,8,138,228,136,228]},{"a":2361,"t":"byte","b":[136,228,136,52,136]},{"a":2366,"l":"type_model","c":"Each type's model number, an entry in the model names at $0961 ($FF for none): MSC, PSC, ICR, MCR, PCR, TIT, SCO, FRE, HUN, PLA, CAR, OUT, STA, GAT","t":"byte","b":[255,0,1,2,3,4,5,6],"x":[7319,7454,7463,7504]},{"a":2374,"t":"byte","b":[7,255,255,255,8,9,9,9]},{"a":2382,"t":"byte","b":[9,10,11,12,13,255,255,255]},{"a":2390,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":2398,"t":"byte","b":[255,255,255]},{"a":2401,"l":"model_names","c":"The 14 model file names, four bytes each with the zero: MSC, PSC, ICR, MCR, PCR, TIT, SCO, FRE, HUN, PLA, CAR, OUT, STA, GAT","t":"byte","b":[77,83,67,0,80,83,67,0]},{"a":2409,"t":"byte","b":[73,67,82,0,77,67,82,0]},{"a":2417,"t":"byte","b":[80,67,82,0,84,73,84,0]},{"a":2425,"t":"byte","b":[83,67,79,0,70,82,69,0]},{"a":2433,"t":"byte","b":[72,85,78,0,80,76,65,0]},{"a":2441,"t":"byte","b":[67,65,82,0,79,85,84,0]},{"a":2449,"t":"byte","b":[83,84,65,0,71,65,84,0]},{"a":2457,"l":"type_drawdata","c":"Each type's draw data word, passed to its draw routine in ($76)","t":"byte","b":[0],"x":[13891,25785]},{"a":2458,"l":"type_drawdata_hi","c":"type_drawdata's high bytes, read at $099A + 2 * type","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[13896,25790]},{"a":2466,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":2474,"t":"byte","b":[0,0,0,22,10,228,9,0]},{"a":2482,"t":"byte","b":[0,2,10,0,0,238,9,2]},{"a":2490,"t":"byte","b":[10,0,0,0,0,0,0,0]},{"a":2498,"t":"byte","b":[0,229,9,230,9,235,9,227]},{"a":2506,"t":"byte","b":[9,231,9,232,9,223,9,236]},{"a":2514,"t":"byte","b":[9,237,9,234,9,224,9,225]},{"a":2522,"t":"byte","b":[9,226,9,233,9]},{"a":2527,"l":"draw_data","c":"The bytes type_drawdata points at: one byte each for the torpedo and the particle, star and ring types ($09DF-$09ED); four tables of ten colour codes for the PLA model's faces from $09EE (in this snapshot the gas giant draws with the first, the planetoid and the station with the third); and at $0A16 four bytes for type 10's missile","t":"byte","b":[18,129,132,0,18,18,1,140]},{"a":2535,"t":"byte","b":[224,234,46,153,46,209,217,190]},{"a":2543,"t":"byte","b":[185,202,195,204,207,204,195,185]},{"a":2551,"t":"byte","b":[190,0,207,190,185,202,184,202]},{"a":2559,"t":"byte","b":[195,204,207,143,140,152,147,153]},{"a":2567,"t":"byte","b":[158,153,147,140,143,0,158,143]},{"a":2575,"t":"byte","b":[140,152,138,152,147,153,158,100]},{"a":2583,"t":"byte","b":[100,100,18,0,0,0]},{"a":2589,"l":"type_radius","c":"Each type's radius, a word: 3 for the small fighters, 11 for the larger ships, 60 for a starbase, 1024 for a gas giant","t":"byte","b":[3],"x":[5762,6531,8676,27334,27365,27954,27971]},{"a":2590,"l":"f_0A1E","c":"High byte of the radius word","t":"byte","b":[0,3,0,3,0,11,0,11],"x":[5768,6534,8684,27339,27372,27959,27976]},{"a":2598,"t":"byte","b":[0,11,0,22,0,6,0,11]},{"a":2606,"t":"byte","b":[0,3,0,3,0,4,0,5]},{"a":2614,"t":"byte","b":[0,0,1,0,2,0,4,0]},{"a":2622,"t":"byte","b":[1,22,0,22,0,60,0,32]},{"a":2630,"t":"byte","b":[0,0,4,0,0,0,0,0]},{"a":2638,"t":"byte","b":[0,0,0,1,0,1,0,0]},{"a":2646,"t":"byte","b":[8,0,8,1,0]},{"a":2651,"l":"a_0A5B","c":"The radius word of type $1F, the wormhole's ring, used to test the ship is inside one","t":"byte","b":[9],"x":[29521]},{"a":2652,"l":"a_0A5C","c":"High byte of the ring's radius","t":"byte","b":[0,9,0,9,0,0,0],"x":[29526]},{"a":2659,"l":"type_scale","c":"Each type's drawing scale, a log word, also the gravity strength","t":"byte","b":[0],"x":[13654,13901,15950,25795,30865]},{"a":2660,"l":"type_scale_whole","c":"type_scale's whole parts, read at $0A64 + 2 * type","t":"byte","b":[2,0,2,0,2,0,4,0],"x":[13662,13906,15956,25800,30870]},{"a":2668,"t":"byte","b":[4,0,4,0,5,0,3,0]},{"a":2676,"t":"byte","b":[4,0,0,0,0,0,0,149]},{"a":2684,"t":"byte","b":[2,0,8,0,9,0,10,0]},{"a":2692,"t":"byte","b":[8,0,5,0,5,0,6,0]},{"a":2700,"t":"byte","b":[6,0,11,174,253,149,3,0]},{"a":2708,"t":"byte","b":[1,149,1,149,1,0,1,0]},{"a":2716,"t":"byte","b":[11,0,11,0,0,0,3,0]},{"a":2724,"t":"byte","b":[3,0,3,0,3]},{"a":2729,"l":"type_armour","c":"Each type's starting armour, a word ($0AA9 + 2 * type)","t":"byte","b":[44],"x":[5946,6544,14936,15026,15361]},{"a":2730,"l":"type_armour_hi","c":"type_armour's high bytes, read at $0AAA + 2 * type","t":"byte","b":[1,180,0,245,0,179,1,224],"x":[5952,6550,14926,14930,15016,15020,15351,15355]},{"a":2738,"t":"byte","b":[1,149,1,232,3,210,0,104]},{"a":2746,"t":"byte","b":[1,250,0,250,0,250,0,94]},{"a":2754,"t":"byte","b":[1,0,125,0,125,0,125,0]},{"a":2762,"t":"byte","b":[125,0,125,0,125,0,125,0]},{"a":2770,"t":"byte","b":[125,0,125,0,125,2,0,40]},{"a":2778,"t":"byte","b":[0,0,125,0,125,10,0,0]},{"a":2786,"t":"byte","b":[125,0,125,0,125,0,125,0]},{"a":2794,"t":"byte","b":[125,0,125,2,0]},{"a":2799,"l":"type_damage","c":"Each type's damage on contact (missiles 100, 250, 75; planets, stars and the black hole 255); for ships, zero for those that count as threats","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[8550,11091,12600,12641,27564,27835,27856]},{"a":2807,"t":"byte","b":[0,100,250,75,0,0,255,255]},{"a":2815,"t":"byte","b":[0,0,0,0,0,255,0,0]},{"a":2823,"t":"byte","b":[0,0,1,33,255,255,0,0]},{"a":2831,"t":"byte","b":[0,0,0]},{"a":2834,"l":"type_names","c":"Pointers to the names of types 0-21 (\"<Sunracer>\", \"Wasp\" ... \"Black Hole\")","t":"byte","b":[62],"x":[11223,13265]},{"a":2835,"l":"type_names_hi","c":"type_names' high bytes, read at $0B13 + 2 * type","t":"byte","b":[11,73,11,78,11,83,11,91],"x":[11228,13268]},{"a":2843,"t":"byte","b":[11,99,11,107,11,113,11,118]},{"a":2851,"t":"byte","b":[11,225,11,225,11,225,11,125]},{"a":2859,"t":"byte","b":[11,132,11,142,11,161,11,171]},{"a":2867,"t":"byte","b":[11,179,11,187,11,195,11,204]},{"a":2875,"t":"byte","b":[11,215,11]},{"a":2878,"l":"type_name_text","c":"The type names the pointers at $0B12 lead to, zero-ended: <Sunracer>, Wasp, Dart, Cruiser, Vulture, Corsair, Titan, Scow, Tanker, Hunter, Planetoid, Terrestrial Planet, Gas Giant, Station, Carrier, Outpost, Starbase, Malir Gate, Black Hole; types 9-11, the missiles, point at the empty string at $0BE1","t":"byte","b":[60,83,117,110,114,97,99,101]},{"a":2886,"t":"byte","b":[114,62,0,87,97,115,112,0]},{"a":2894,"t":"byte","b":[68,97,114,116,0,67,114,117]},{"a":2902,"t":"byte","b":[105,115,101,114,0,86,117,108]},{"a":2910,"t":"byte","b":[116,117,114,101,0,67,111,114]},{"a":2918,"t":"byte","b":[115,97,105,114,0,84,105,116]},{"a":2926,"t":"byte","b":[97,110,0,83,99,111,119,0]},{"a":2934,"t":"byte","b":[84,97,110,107,101,114,0,72]},{"a":2942,"t":"byte","b":[117,110,116,101,114,0,80,108]},{"a":2950,"t":"byte","b":[97,110,101,116,111,105,100,0]},{"a":2958,"t":"byte","b":[84,101,114,114,101,115,116,114]},{"a":2966,"t":"byte","b":[105,97,108,32,80,108,97,110]},{"a":2974,"t":"byte","b":[101,116,0,71,97,115,32,71]},{"a":2982,"t":"byte","b":[105,97,110,116,0,83,116,97]},{"a":2990,"t":"byte","b":[116,105,111,110,0,67,97,114]},{"a":2998,"t":"byte","b":[114,105,101,114,0,79,117,116]},{"a":3006,"t":"byte","b":[112,111,115,116,0,83,116,97]},{"a":3014,"t":"byte","b":[114,98,97,115,101,0,77,97]},{"a":3022,"t":"byte","b":[108,105,114,32,71,97,116,101]},{"a":3030,"t":"byte","b":[0,66,108,97,99,107,32,72]},{"a":3038,"t":"byte","b":[111,108,101,0]},{"a":3042,"l":"type_turn","c":"Each type's turning step, a log word in 1024ths of a turn (types 0-16)","t":"byte","b":[149],"x":[15816,15855,30434]},{"a":3043,"l":"f_0BE3","c":"The turning step's whole part","t":"byte","b":[2,149,2,149,2,149,1,149],"x":[15823,15862,30442]},{"a":3051,"t":"byte","b":[1,149,1,0,1,149,1,0]},{"a":3059,"t":"byte","b":[1,0,3,0,3,156,230,149]},{"a":3067,"t":"byte","b":[2,0,1,0,0,0,0,0]},{"a":3075,"t":"byte","b":[0]},{"a":3076,"l":"type_thrust","c":"Each type's thrust, a log word (types 0-12); the player's is recomputed from the engine and the cargo","t":"byte","b":[92],"x":[4945,29937,30094]},{"a":3077,"l":"a_0C05","c":"The thrust's whole part (gate_jump doubles the player's for the jump)","t":"byte","b":[250,241,250,92,250,241,249,241],"x":[4953,28993,29278,29942,30102]},{"a":3085,"t":"byte","b":[249,241,249,92,249,92,249,92]},{"a":3093,"t":"byte","b":[249,241,251,241,251,174,253,241]},{"a":3101,"t":"byte","b":[250]},{"a":3102,"l":"type_faction","c":"Each ship type's faction, copied to $0433","t":"byte","b":[4,3,0,2,3,0,2,1],"x":[6702,11470]},{"a":3110,"t":"byte","b":[1,255,255,255,2]},{"a":3115,"l":"type_ecm","c":"Each ship type's ECM: the percentage chance that a missile fired at it swerves away (tactic 4) instead of pursuing, tested against a random number from 0 to 100 while the ship's ECM ($0409 bit 5 clear) works","t":"byte","b":[0,0,10,30,0,25,50,0],"x":[5958,7992]},{"a":3123,"t":"byte","b":[20,0,0,0,0]},{"a":3128,"l":"type_tactic","c":"Each ship type's own fighting tactic","t":"byte","b":[255,9,3,6,3,6,5,8],"x":[14234]},{"a":3136,"t":"byte","b":[8,2,2,255,3]},{"a":3141,"l":"type_systems","c":"Each ship type's systems, the bits $0409 knocks out","t":"byte","b":[23,7,55,63,31,63,63,14],"x":[5964,13504,28527]},{"a":3149,"t":"byte","b":[63,0,0,0,23]},{"a":3154,"l":"type_beam","c":"Each ship type's beam (0 for none)","t":"byte","b":[1,2,1,243,243,242,244,241],"x":[5970,8440,14625]},{"a":3162,"t":"byte","b":[242,0,0,0,4]},{"a":3167,"l":"type_missile_kind","c":"Each ship type's missile kind, plus 8 its missile type","t":"byte","b":[0,3,1,1,3,1,2,0],"x":[14596]},{"a":3175,"t":"byte","b":[1,0,0,0,1]},{"a":3180,"l":"type_shields","c":"Each ship type's shields: fore in the high nybble, aft in the low, each step halving damage","t":"byte","b":[16,0,32,50,33,34,51,1],"x":[5976,28569]},{"a":3188,"t":"byte","b":[18,0,0,0,48]},{"a":3193,"l":"type_rank","c":"Each ship type's rank value, which also sets its reward","t":"byte","b":[2,2,3,6,5,5,10,1],"x":[5985,6897,6947,7034,11449,15415,15422]},{"a":3201,"t":"byte","b":[3,0,0,0,4]},{"a":3206,"l":"tactic_steer","c":"Each tactic's steering mode: negative none, 0 toward the target, 1 away, 2 its heading, 3 random","t":"byte","b":[255,2,0,0,3,0,0,1],"x":[15554]},{"a":3214,"t":"byte","b":[0,0]},{"a":3216,"l":"tactic_angle","c":"Each tactic's angle offset in 1024ths of a turn, which steer_toward takes off the size of the first angle so that the target is kept that far off the nose: 127 (about 45 degrees) for follow and flee, 63 (22) for close, 192 (67.5) for circle, 255 (90) for elude","t":"byte","b":[0,127,0,63,0,0,192,127],"x":[15707]},{"a":3224,"t":"byte","b":[255,0]},{"a":3226,"l":"tactic_speed","c":"Each tactic's speed","t":"byte","b":[10,23,70,23,23,0,35,52],"x":[14119,14251]},{"a":3234,"t":"byte","b":[23,46]},{"a":3236,"l":"tactic_speedrule","c":"Each tactic's speed rule: negative the target's speed, 1 the average, 2 by distance, 0 the tactic's own","t":"byte","b":[0,1,2,1,0,255,1,0],"x":[14265]},{"a":3244,"t":"byte","b":[1,2]},{"a":3246,"l":"tactic_names","c":"The ten tactics' names, eight bytes each and zero-padded, printed by the TAC: cruise, follow, pursue, close, swerve, stand, circle, flee, elude, ram","t":"byte","b":[99,114,117,105,115,101,0,0]},{"a":3254,"t":"byte","b":[102,111,108,108,111,119,0,0]},{"a":3262,"t":"byte","b":[112,117,114,115,117,101,0,0]},{"a":3270,"t":"byte","b":[32,99,108,111,115,101,0,0]},{"a":3278,"t":"byte","b":[115,119,101,114,118,101,0,0]},{"a":3286,"t":"byte","b":[32,115,116,97,110,100,0,0]},{"a":3294,"t":"byte","b":[99,105,114,99,108,101,0,0]},{"a":3302,"t":"byte","b":[32,32,102,108,101,101,0,0]},{"a":3310,"t":"byte","b":[32,101,108,117,100,101,0,0]},{"a":3318,"t":"byte","b":[32,32,32,114,97,109,0,0]},{"a":3326,"l":"weapon","c":"The weapon selected: 0 the beam, 1-3 missiles of type 9, 10 and 11","t":"byte","b":[0],"x":[7616,7772,7781,7784,12967,13053,13103,13121]},{"a":3327,"l":"auto_fire","c":"Nonzero for automatic beam fire","t":"byte","b":[0],"x":[4673,5154,5159,7556,13001]},{"a":3328,"l":"beam_heat","c":"The beam's heat, counted down every 16 passes; each step halves the player's beam damage","t":"byte","b":[0],"x":[4687,4902,4907,8574,8581,8795,12981]},{"a":3329,"l":"thrust_dir","c":"The direction the speed keys or joystick last pushed: 1, $FF or 0","t":"byte","b":[0],"x":[5103,5124,9248,9254,9298,9337,29930]},{"a":3330,"l":"newtonian","c":"0 for cruise flight, nonzero for Newtonian (CTRL-E)","t":"byte","b":[0],"x":[5086,5107,5128,5133,9241,9280,9319,12729,12755,29925]},{"a":3331,"l":"joy_used","c":"Nonzero while the joystick was used last (a key clears it), so steering reads the stick","t":"byte","b":[0],"x":[3952,9351,41797,42083]},{"a":3332,"l":"encounter_types","c":"The ship types of the last encounter ($0D04-$0D06, $FF none), which enter_sector creates","t":"byte","b":[255],"x":[5686,5721,10643,11062,11374,11398,11522,29253]},{"a":3333,"l":"a_0D05","c":"The encounter's second ship type","t":"byte","b":[255],"x":[5681,11363,11384,11474,29256]},{"a":3334,"l":"a_0D06","c":"The encounter's third ship type","t":"byte","b":[255],"x":[5676,11366,11392,11490,29259]},{"a":3335,"l":"ships_near","c":"The number of ships near that have no target; HELM is refused while any are","t":"byte","b":[0],"x":[5713,9632,9676,10106,10658,11358,11552]},{"a":3336,"l":"cargo_spoils","c":"One byte per cargo kind: negative for the kinds that spoil, which helm_hazard_check turns into kind $14, spoiled cargo","t":"byte","b":[0,0,0,128,0,0,128,0],"x":[10820]},{"a":3344,"t":"byte","b":[0,0,128,0,0,128,0,128]},{"a":3352,"t":"byte","b":[0,0,0,128,0,0,0,0]},{"a":3360,"l":"win_left","c":"The current text window's left column","t":"byte","b":[2],"x":[15269,39657,40539,41042,41125,41342,41356,41488,41513]},{"a":3361,"l":"win_right","c":"The current text window's right column","t":"byte","b":[37],"x":[10872,15265,39707,40547,41145,41338,41541]},{"a":3362,"l":"win_top","c":"The current text window's top pixel row","t":"byte","b":[184],"x":[40553,41130,41405,41508]},{"a":3363,"l":"win_bottom","c":"The current text window's bottom pixel row","t":"byte","b":[184],"x":[39662,40561,41052,41479,41493,41530]},{"a":3364,"l":"win_lines","c":"The current window's lines to a page","t":"byte","b":[1],"x":[40530,41068,41119,41347]},{"a":3365,"l":"reverse_mask","c":"$FF for reversed text, 0 for plain, EORed into each glyph byte","t":"byte","b":[0],"x":[41088,41098,41266]},{"a":3366,"l":"lines_left","c":"Lines left before print_char waits for a key","t":"byte","b":[1],"x":[40533,41047,41063,41071,41122]},{"a":3367,"l":"last_char","c":"The last character print_char was given","t":"byte","b":[16],"x":[41031]},{"a":3368,"l":"text_mirrored","c":"Nonzero while text goes into both bitmaps","t":"byte","b":[1],"x":[40899,40994,41294,41318,41379]},{"a":3369,"l":"message_timer","c":"Counts down every 16 passes after a message; at zero the message line is cleared","t":"byte","b":[255,68,79,78,69,0],"x":[4887,4892,39649]},{"a":3375,"l":"chart_brackets","c":"Nonzero to draw the chart cursor's brackets (CHART and SCAN)","t":"byte","b":[0],"x":[9755,9776,10121,10194,34637]},{"a":3376,"l":"chart_col","c":"The chart's left column on screen","t":"byte","b":[1],"x":[9571,34398,34545,34681,42174]},{"a":3377,"l":"chart_row","c":"The chart's top pixel row","t":"byte","b":[185],"x":[9576,34392,34688,42179]},{"a":3378,"l":"chart_scroll","c":"The pixel rows the chart's first and last tile rows are cut by, for smooth scrolling","t":"byte","b":[0],"x":[9581,34490,34503,34512,42184]},{"a":3379,"l":"chart_rows","c":"The chart window buffer's row offsets, 11 apart","t":"byte","b":[0,11,22,33,44,55,66,77],"x":[34667]},{"a":3387,"t":"byte","b":[88]},{"a":3388,"l":"view_mode","c":"The camera view: 0 cockpit, 1 chase, 2 cinematic (key V)","t":"byte","b":[0],"x":[5163,5170,8844,25881,26032,26085,27426,27445]},{"a":3389,"l":"draw_list","c":"The draw list's count, then the entry being drawn","t":"byte","b":[0],"x":[15928,15967,15970,15981,16028,16041,16115,16315,16357,25601,25764]},{"a":3390,"l":"view_front","c":"The view's front distance, a log word, from in_view","t":"byte","b":[174],"x":[15953,16105,16138,16231,16342]},{"a":3391,"l":"a_0D3F","c":"The front distance's whole part","t":"byte","b":[253,0,0,0,0,0,0,0],"x":[15959,16110,16147,16240,16349]},{"a":3399,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3407,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3415,"t":"byte","b":[0,0,0,0,0,253,255,0]},{"a":3423,"t":"byte","b":[0,0,62,208,255]},{"a":3428,"l":"proj_xscale","c":"The projection's horizontal scale, a log word (zoom plus log2 of the window width)","t":"byte","b":[249],"x":[26287,26368,26379,26520]},{"a":3429,"l":"a_0D65","c":"The horizontal scale's whole part","t":"byte","b":[7],"x":[26295,26376,26388,26527]},{"a":3430,"l":"proj_yscale","c":"The projection's vertical scale, a little smaller","t":"byte","b":[200],"x":[26385,26396,26556]},{"a":3431,"l":"a_0D67","c":"The vertical scale's whole part","t":"byte","b":[7],"x":[26393,26405,26563]},{"a":3432,"l":"proj_zoom","c":"The zoom set_projection was given, a log word: the view's horizontal slope","t":"byte","b":[0],"x":[16254,26316,26362,26413]},{"a":3433,"l":"a_0D69","c":"The zoom's whole part","t":"byte","b":[0],"x":[16261,26321,26371,26418]},{"a":3434,"l":"proj_vslope","c":"The view's vertical slope, a log word","t":"byte","b":[28],"x":[16161,26402,26436]},{"a":3435,"l":"a_0D6B","c":"The vertical slope's whole part","t":"byte","b":[1],"x":[16168,26410,26441]},{"a":3436,"l":"proj_hedge","c":"log2 of sqrt(1 + slope squared) for the horizontal edges, for in_view","t":"byte","b":[128],"x":[16235,26428]},{"a":3437,"l":"a_0D6D","c":"The horizontal edge factor's whole part","t":"byte","b":[0],"x":[16243,26433]},{"a":3438,"l":"proj_vedge","c":"log2 of sqrt(1 + slope squared) for the vertical edges","t":"byte","b":[64],"x":[16142,26451]},{"a":3439,"l":"a_0D6F","c":"The vertical edge factor's whole part","t":"byte","b":[1],"x":[16150,26456]},{"a":3440,"l":"draw_depth_lo","c":"The depth of each draw-list entry, low bytes (14 entries)","t":"byte","b":[148,134,0,0,0,0,0,0],"x":[16016,16021,16332]},{"a":3448,"t":"byte","b":[0,0,0,0,0,0]},{"a":3454,"l":"draw_depth_hi","c":"The depth of each draw-list entry, high bytes ($FF once drawn)","t":"byte","b":[5,4,0,0,0,0,0,0],"x":[16003,16046,16320]},{"a":3462,"t":"byte","b":[0,0,0,0,0,0]},{"a":3468,"l":"draw_size","c":"The screen size of each draw-list entry","t":"byte","b":[1,2,0,0,0,0,0,0],"x":[16360,25815]},{"a":3476,"t":"byte","b":[0,0,0,0,0,0]},{"a":3482,"l":"draw_slot","c":"The slot of each draw-list entry","t":"byte","b":[14,14,0,0,0,0,0,0],"x":[16336,25604]},{"a":3490,"t":"byte","b":[0,0,0,0,0,0]},{"a":3496,"l":"identity","c":"The identity orientation, three rows of three log-form numbers (1 on the diagonal, $E69C for zero); $0DAB a zero vector in log form, $0DBA the unit z axis, $0DC3 nine zero bytes (a linear zero vector)","t":"byte","b":[0,0,0,156,230,0,156,230],"x":[13674]},{"a":3504,"t":"byte","b":[0,156,230,0,0,0,0,156]},{"a":3512,"t":"byte","b":[230,0,156,230,0,156,230,0]},{"a":3520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":3528,"t":"byte","b":[0,0,0,0,0,0,0,156]},{"a":3536,"t":"byte","b":[230,0,156,230,0,156,230,255]},{"a":3544,"t":"byte","b":[0,0,0,156,230,0,156,230]},{"a":3552,"t":"byte","b":[255,156,230,255,0,0,0]},{"a":3559,"l":"sr_init","c":"Start-up and main loop. Resets the stack, runs sr_setup ($14CB, which loads and runs INIT), then loops for ever: each pass calls the per-frame routines in order, from the clock and flight update at $1239 to the screen update at $8ED3. $A470 returning carry set sends the loop back to its top early","t":"code","b":[162,255],"m":"ldx","x":[1024],"o":"#$FF"},{"a":3561,"t":"code","b":[154],"m":"txs"},{"a":3562,"t":"code","b":[32,203,20],"m":"jsr","oa":5323,"o":"sr_setup"},{"a":3565,"l":"b_0DED","c":"The main loop proper: $1239 clock and flight update, $1BB2, $3689, $7634, $74D3, $787B, $75FC, $135F (keys), $6AB3, then $A470; if that returns carry set the pass ends here, otherwise $6519, $7772, $A488, $24B3, $798F and $8ED3 follow","t":"code","b":[32,57,18],"m":"jsr","oa":4665,"x":[3595,3615],"o":"frame_update"},{"a":3568,"t":"code","b":[32,178,27],"m":"jsr","oa":7090,"o":"age_objects"},{"a":3571,"t":"code","b":[32,137,54],"m":"jsr","oa":13961,"o":"ship_ai"},{"a":3574,"t":"code","b":[32,52,118],"m":"jsr","oa":30260,"o":"turn_objects"},{"a":3577,"t":"code","b":[32,211,116],"m":"jsr","oa":29907,"o":"apply_thrust"},{"a":3580,"t":"code","b":[32,123,120],"m":"jsr","oa":30843,"o":"gravity"},{"a":3583,"t":"code","b":[32,252,117],"m":"jsr","oa":30204,"o":"move_objects"},{"a":3586,"t":"code","b":[32,95,19],"m":"jsr","oa":4959,"o":"do_key"},{"a":3589,"t":"code","b":[32,179,106],"m":"jsr","oa":27315,"o":"check_collisions"},{"a":3592,"t":"code","b":[32,112,164],"m":"jsr","oa":42096,"o":"frame_skip3"},{"a":3595,"t":"code","b":[176,224],"m":"bcs","oa":3565,"o":"b_0DED"},{"a":3597,"t":"code","b":[32,25,101],"m":"jsr","oa":25881,"o":"update_camera"},{"a":3600,"t":"code","b":[32,114,119],"m":"jsr","oa":30578,"o":"place_particles"},{"a":3603,"t":"code","b":[32,136,164],"m":"jsr","oa":42120,"o":"draw_frame"},{"a":3606,"t":"code","b":[32,179,36],"m":"jsr","oa":9395,"o":"sector_hazard"},{"a":3609,"t":"code","b":[32,143,121],"m":"jsr","oa":31119,"o":"draw_target_arrows"},{"a":3612,"t":"code","b":[32,211,142],"m":"jsr","oa":36563,"o":"flip_buffers"},{"a":3615,"t":"code","b":[76,237,13],"m":"jmp","oa":3565,"o":"b_0DED"},{"a":3618,"l":"setup_irq","c":"Sets up the machine for play: the processor port's low bits to 01 (RAM with the I/O in), $02 to $40, a raster interrupt at line $32, CIA 1 interrupts off, and the vectors: NMI ($0318 and $FFFA) to $0E9E, BRK ($0316) and reset ($FFFC) to $0E9F, both an RTI; IRQ at $FFFE to $0EA0 and the KERNAL's $0314 to $0EA5, so the interrupt runs whether the KERNAL is banked in or not. Then clears the key buffer ($0ECD) and the sound ($1067), banks everything out ($0E85) and enables interrupts","t":"code","b":[120],"m":"sei","x":[5324]},{"a":3619,"t":"code","b":[165,1],"m":"lda","oa":1,"o":"zp_port"},{"a":3621,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":3623,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":3625,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":3627,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":3629,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"zp_02"},{"a":3631,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":3633,"t":"code","b":[141,18,208],"m":"sta","o":"vic_raster"},{"a":3636,"t":"code","b":[173,17,208],"m":"lda","o":"vic_control1"},{"a":3639,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":3641,"t":"code","b":[141,17,208],"m":"sta","o":"vic_control1"},{"a":3644,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":3646,"t":"code","b":[141,26,208],"m":"sta","o":"vic_irq_enable"},{"a":3649,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":3651,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":3654,"t":"code","b":[162,158],"m":"ldx","o":"#$9E"},{"a":3656,"t":"code","b":[160,14],"m":"ldy","o":"#$0E"},{"a":3658,"t":"code","b":[142,24,3],"m":"stx","oa":792,"o":"nmi_vector"},{"a":3661,"t":"code","b":[140,25,3],"m":"sty","oa":793,"o":"a_0319"},{"a":3664,"t":"code","b":[142,250,255],"m":"stx","oa":65530,"o":"cpu_vectors"},{"a":3667,"t":"code","b":[140,251,255],"m":"sty","oa":65531,"o":"$FFFB"},{"a":3670,"t":"code","b":[162,159],"m":"ldx","o":"#$9F"},{"a":3672,"t":"code","b":[160,14],"m":"ldy","o":"#$0E"},{"a":3674,"t":"code","b":[142,22,3],"m":"stx","oa":790,"o":"brk_vector"},{"a":3677,"t":"code","b":[140,23,3],"m":"sty","oa":791,"o":"a_0317"},{"a":3680,"t":"code","b":[142,252,255],"m":"stx","oa":65532,"o":"$FFFC"},{"a":3683,"t":"code","b":[140,253,255],"m":"sty","oa":65533,"o":"$FFFD"},{"a":3686,"t":"code","b":[162,165],"m":"ldx","o":"#$A5"},{"a":3688,"t":"code","b":[160,14],"m":"ldy","o":"#$0E"},{"a":3690,"t":"code","b":[142,20,3],"m":"stx","oa":788,"o":"irq_vector"},{"a":3693,"t":"code","b":[140,21,3],"m":"sty","oa":789,"o":"a_0315"},{"a":3696,"t":"code","b":[162,160],"m":"ldx","o":"#$A0"},{"a":3698,"t":"code","b":[160,14],"m":"ldy","o":"#$0E"},{"a":3700,"t":"code","b":[142,254,255],"m":"stx","oa":65534,"o":"$FFFE"},{"a":3703,"t":"code","b":[140,255,255],"m":"sty","oa":65535,"o":"$FFFF"},{"a":3706,"t":"code","b":[32,205,14],"m":"jsr","oa":3789,"o":"clear_keybuf"},{"a":3709,"t":"code","b":[32,103,16],"m":"jsr","oa":4199,"o":"sound_init"},{"a":3712,"t":"code","b":[32,133,14],"m":"jsr","oa":3717,"o":"bank_all_ram"},{"a":3715,"t":"code","b":[88],"m":"cli"},{"a":3716,"t":"code","b":[96],"m":"rts"},{"a":3717,"l":"bank_all_ram","c":"Clears the low two bits of the processor port $01: all RAM, the I/O and both ROMs banked out. Called after every stretch of code that needed the chips or the KERNAL","t":"code","b":[165,1],"m":"lda","oa":1,"x":[3712,6137,6394,7314,42087],"o":"zp_port"},{"a":3719,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":3721,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":3723,"t":"code","b":[96],"m":"rts"},{"a":3724,"l":"bank_io_in","c":"Sets the processor port's low bits to 01: RAM everywhere except the I/O area at $D000-$DFFF","t":"code","b":[165,1],"m":"lda","oa":1,"x":[7307,42061,42071],"o":"zp_port"},{"a":3726,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":3728,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":3730,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":3732,"t":"code","b":[96],"m":"rts"},{"a":3733,"l":"bank_kernal_in","c":"Sets the processor port's low bits to 10: the KERNAL ROM and the I/O in, BASIC out. Used around every KERNAL call the loader makes","t":"code","b":[165,1],"m":"lda","oa":1,"x":[6115,6300],"o":"zp_port"},{"a":3735,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":3737,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":3739,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":3741,"t":"code","b":[96],"m":"rts"},{"a":3742,"l":"nmi_rti","c":"The NMI handler: returns at once, so RESTORE does nothing","t":"code","b":[64],"m":"rti"},{"a":3743,"l":"reset_rti","c":"What the reset vector at $FFFC points to while the game runs: an RTI","t":"code","b":[64],"m":"rti"},{"a":3744,"l":"irq_entry","c":"The raster interrupt as entered through $FFFE (all RAM): saves A, X and Y, then falls into irq_body","t":"code","b":[72],"m":"pha"},{"a":3745,"t":"code","b":[138],"m":"txa"},{"a":3746,"t":"code","b":[72],"m":"pha"},{"a":3747,"t":"code","b":[152],"m":"tya"},{"a":3748,"t":"code","b":[72],"m":"pha"},{"a":3749,"l":"irq_body","c":"The raster interrupt's body, also the KERNAL's $0314 target while the KERNAL is in for a load: saves the processor port and banks the I/O in; on a raster interrupt it acknowledges it, counts the frame in $16 (stopping at 255), reads the keyboard into the buffer ($0ED6) and steps the sound effects ($10D2), then restores the port and the registers","t":"code","b":[165,1],"m":"lda","oa":1,"o":"zp_port"},{"a":3751,"t":"code","b":[72],"m":"pha"},{"a":3752,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":3754,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":3756,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":3758,"t":"code","b":[173,25,208],"m":"lda","o":"vic_irq_status"},{"a":3761,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":3763,"t":"code","b":[240,15],"m":"beq","oa":3780,"o":"b_0EC4"},{"a":3765,"t":"code","b":[141,25,208],"m":"sta","o":"vic_irq_status"},{"a":3768,"t":"code","b":[230,22],"m":"inc","oa":22,"o":"frame_count"},{"a":3770,"t":"code","b":[208,2],"m":"bne","oa":3774,"o":"b_0EBE"},{"a":3772,"t":"code","b":[198,22],"m":"dec","oa":22,"o":"frame_count"},{"a":3774,"l":"b_0EBE","t":"code","b":[32,214,14],"m":"jsr","oa":3798,"x":[3770],"o":"keyscan_to_buffer"},{"a":3777,"t":"code","b":[32,210,16],"m":"jsr","oa":4306,"o":"sound_step"},{"a":3780,"l":"b_0EC4","t":"code","b":[104],"m":"pla","x":[3763]},{"a":3781,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":3783,"t":"code","b":[104],"m":"pla"},{"a":3784,"t":"code","b":[168],"m":"tay"},{"a":3785,"t":"code","b":[104],"m":"pla"},{"a":3786,"t":"code","b":[170],"m":"tax"},{"a":3787,"t":"code","b":[104],"m":"pla"},{"a":3788,"t":"code","b":[64],"m":"rti"},{"a":3789,"l":"clear_keybuf","c":"Empties the keyboard buffer: no keys waiting ($03 = 0) and room for two ($04 = 2)","t":"code","b":[169,2],"m":"lda","x":[3706],"o":"#$02"},{"a":3791,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"key_room"},{"a":3793,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3795,"t":"code","b":[133,3],"m":"sta","oa":3,"o":"key_count"},{"a":3797,"t":"code","b":[96],"m":"rts"},{"a":3798,"l":"keyscan_to_buffer","c":"Called by the interrupt every frame: scans the keyboard ($0EF5) and, when it returns a key, appends it to the buffer at $05; with the buffer full the oldest key is dropped to make room","t":"code","b":[32,245,14],"m":"jsr","oa":3829,"x":[3774],"o":"keyscan"},{"a":3801,"t":"code","b":[240,25],"m":"beq","oa":3828,"o":"r_0EF4"},{"a":3803,"t":"code","b":[166,3],"m":"ldx","oa":3,"o":"key_count"},{"a":3805,"t":"code","b":[228,4],"m":"cpx","oa":4,"o":"key_room"},{"a":3807,"t":"code","b":[144,15],"m":"bcc","oa":3824,"o":"b_0EF0"},{"a":3809,"t":"code","b":[198,3],"m":"dec","oa":3,"o":"key_count"},{"a":3811,"t":"code","b":[168],"m":"tay"},{"a":3812,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":3814,"l":"b_0EE6","t":"code","b":[181,6],"m":"lda","oa":6,"x":[3821],"o":"zpf_06,x"},{"a":3816,"t":"code","b":[149,5],"m":"sta","oa":5,"o":"key_buffer,x"},{"a":3818,"t":"code","b":[232],"m":"inx"},{"a":3819,"t":"code","b":[228,3],"m":"cpx","oa":3,"o":"key_count"},{"a":3821,"t":"code","b":[144,247],"m":"bcc","oa":3814,"o":"b_0EE6"},{"a":3823,"t":"code","b":[152],"m":"tya"},{"a":3824,"l":"b_0EF0","t":"code","b":[149,5],"m":"sta","oa":5,"x":[3807],"o":"key_buffer,x"},{"a":3826,"t":"code","b":[230,3],"m":"inc","oa":3,"o":"key_count"},{"a":3828,"l":"r_0EF4","t":"code","b":[96],"m":"rts","x":[3801]},{"a":3829,"l":"keyscan","c":"Scans the keyboard, the C128's extra keys included: notes the CTRL ($13), left SHIFT ($14) and right SHIFT ($15) states, then reads the eight C64 rows and the C128's three extra rows through $D02F, ignoring the modifier keys (mask table $0FDC). Returns zero with no key, or a repeat not yet due (first repeat after 30 frames, then every 6). Otherwise returns the key's character from the table at $0FEF: CTRL with a letter gives its control code, SHIFT with a letter gives the capital, SHIFT with a digit or punctuation key gives the symbol from $1047/$1057. A key on the C128 keypad (index $40 or more) ignores the modifiers. Also clears $0D03 on any key","t":"code","b":[162,255],"m":"ldx","x":[3798],"o":"#$FF"},{"a":3831,"t":"code","b":[142,2,220],"m":"stx","o":"cia1_ddr_a"},{"a":3834,"t":"code","b":[232],"m":"inx"},{"a":3835,"t":"code","b":[142,3,220],"m":"stx","o":"cia1_ddr_b"},{"a":3838,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":3840,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":3843,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":3846,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":3848,"t":"code","b":[133,19],"m":"sta","oa":19,"o":"key_ctrl"},{"a":3850,"t":"code","b":[169,191],"m":"lda","o":"#$BF"},{"a":3852,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":3855,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":3858,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":3860,"t":"code","b":[133,21],"m":"sta","oa":21,"o":"key_rshift"},{"a":3862,"t":"code","b":[169,253],"m":"lda","o":"#$FD"},{"a":3864,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":3867,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":3870,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":3872,"t":"code","b":[133,20],"m":"sta","oa":20,"o":"key_lshift"},{"a":3874,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":3876,"t":"code","b":[141,47,208],"m":"sta","o":"$D02F"},{"a":3879,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":3881,"l":"b_0F29","t":"code","b":[141,0,220],"m":"sta","x":[3905],"o":"cia1_port_a"},{"a":3884,"t":"code","b":[172,1,220],"m":"ldy","o":"cia1_port_b"},{"a":3887,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":3889,"t":"code","b":[240,12],"m":"beq","oa":3903,"o":"b_0F3F"},{"a":3891,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"key_last"},{"a":3893,"t":"code","b":[152],"m":"tya"},{"a":3894,"t":"code","b":[29,220,15],"m":"ora","oa":4060,"o":"key_row_mask,x"},{"a":3897,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":3899,"t":"code","b":[208,39],"m":"bne","oa":3940,"o":"b_0F64"},{"a":3901,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"key_last"},{"a":3903,"l":"b_0F3F","t":"code","b":[232],"m":"inx","x":[3889]},{"a":3904,"t":"code","b":[106],"m":"ror","o":"a"},{"a":3905,"t":"code","b":[176,230],"m":"bcs","oa":3881,"o":"b_0F29"},{"a":3907,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":3909,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":3912,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":3914,"l":"b_0F4A","t":"code","b":[141,47,208],"m":"sta","x":[3926],"o":"$D02F"},{"a":3917,"t":"code","b":[172,1,220],"m":"ldy","o":"cia1_port_b"},{"a":3920,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":3922,"t":"code","b":[208,15],"m":"bne","oa":3939,"o":"b_0F63"},{"a":3924,"t":"code","b":[232],"m":"inx"},{"a":3925,"t":"code","b":[106],"m":"ror","o":"a"},{"a":3926,"t":"code","b":[176,242],"m":"bcs","oa":3914,"o":"b_0F4A"},{"a":3928,"t":"code","b":[140,47,208],"m":"sty","o":"$D02F"},{"a":3931,"t":"code","b":[132,16],"m":"sty","oa":16,"o":"key_held"},{"a":3933,"t":"code","b":[200],"m":"iny"},{"a":3934,"t":"code","b":[140,2,220],"m":"sty","o":"cia1_ddr_a"},{"a":3937,"t":"code","b":[152],"m":"tya"},{"a":3938,"t":"code","b":[96],"m":"rts"},{"a":3939,"l":"b_0F63","t":"code","b":[152],"m":"tya","x":[3922]},{"a":3940,"l":"b_0F64","t":"code","b":[160,255],"m":"ldy","x":[3899],"o":"#$FF"},{"a":3942,"t":"code","b":[140,0,220],"m":"sty","o":"cia1_port_a"},{"a":3945,"t":"code","b":[140,47,208],"m":"sty","o":"$D02F"},{"a":3948,"t":"code","b":[200],"m":"iny"},{"a":3949,"t":"code","b":[140,2,220],"m":"sty","o":"cia1_ddr_a"},{"a":3952,"t":"code","b":[140,3,13],"m":"sty","oa":3331,"o":"joy_used"},{"a":3955,"t":"code","b":[136],"m":"dey"},{"a":3956,"l":"b_0F74","t":"code","b":[200],"m":"iny","x":[3958]},{"a":3957,"t":"code","b":[10],"m":"asl","o":"a"},{"a":3958,"t":"code","b":[176,252],"m":"bcs","oa":3956,"o":"b_0F74"},{"a":3960,"t":"code","b":[152],"m":"tya"},{"a":3961,"t":"code","b":[125,228,15],"m":"adc","oa":4068,"o":"key_row_base,x"},{"a":3964,"t":"code","b":[170],"m":"tax"},{"a":3965,"t":"code","b":[228,16],"m":"cpx","oa":16,"o":"key_held"},{"a":3967,"t":"code","b":[240,12],"m":"beq","oa":3981,"o":"b_0F8D"},{"a":3969,"t":"code","b":[134,16],"m":"stx","oa":16,"o":"key_held"},{"a":3971,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":3973,"t":"code","b":[133,17],"m":"sta","oa":17,"o":"key_delay"},{"a":3975,"l":"b_0F87","t":"code","b":[169,6],"m":"lda","x":[3992],"o":"#$06"},{"a":3977,"t":"code","b":[133,18],"m":"sta","oa":18,"o":"key_rate"},{"a":3979,"t":"code","b":[208,16],"m":"bne","oa":3997,"o":"b_0F9D"},{"a":3981,"l":"b_0F8D","t":"code","b":[165,17],"m":"lda","oa":17,"x":[3967],"o":"key_delay"},{"a":3983,"t":"code","b":[240,5],"m":"beq","oa":3990,"o":"b_0F96"},{"a":3985,"t":"code","b":[198,17],"m":"dec","oa":17,"o":"key_delay"},{"a":3987,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3989,"t":"code","b":[96],"m":"rts"},{"a":3990,"l":"b_0F96","t":"code","b":[198,18],"m":"dec","oa":18,"x":[3983],"o":"key_rate"},{"a":3992,"t":"code","b":[240,237],"m":"beq","oa":3975,"o":"b_0F87"},{"a":3994,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":3996,"t":"code","b":[96],"m":"rts"},{"a":3997,"l":"b_0F9D","t":"code","b":[224,64],"m":"cpx","x":[3979],"o":"#$40"},{"a":3999,"t":"code","b":[176,12],"m":"bcs","oa":4013,"o":"b_0FAD"},{"a":4001,"t":"code","b":[165,19],"m":"lda","oa":19,"o":"key_ctrl"},{"a":4003,"t":"code","b":[240,12],"m":"beq","oa":4017,"o":"b_0FB1"},{"a":4005,"t":"code","b":[165,20],"m":"lda","oa":20,"o":"key_lshift"},{"a":4007,"t":"code","b":[240,22],"m":"beq","oa":4031,"o":"b_0FBF"},{"a":4009,"t":"code","b":[165,21],"m":"lda","oa":21,"o":"key_rshift"},{"a":4011,"t":"code","b":[240,18],"m":"beq","oa":4031,"o":"b_0FBF"},{"a":4013,"l":"b_0FAD","t":"code","b":[189,239,15],"m":"lda","oa":4079,"x":[3999,4022,4026],"o":"key_chars,x"},{"a":4016,"t":"code","b":[96],"m":"rts"},{"a":4017,"l":"b_0FB1","t":"code","b":[189,239,15],"m":"lda","oa":4079,"x":[4003],"o":"key_chars,x"},{"a":4020,"t":"code","b":[201,97],"m":"cmp","o":"#$61"},{"a":4022,"t":"code","b":[144,245],"m":"bcc","oa":4013,"o":"b_0FAD"},{"a":4024,"t":"code","b":[201,123],"m":"cmp","o":"#$7B"},{"a":4026,"t":"code","b":[176,241],"m":"bcs","oa":4013,"o":"b_0FAD"},{"a":4028,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":4030,"t":"code","b":[96],"m":"rts"},{"a":4031,"l":"b_0FBF","t":"code","b":[189,239,15],"m":"lda","oa":4079,"x":[4007,4011],"o":"key_chars,x"},{"a":4034,"t":"code","b":[201,97],"m":"cmp","o":"#$61"},{"a":4036,"t":"code","b":[144,7],"m":"bcc","oa":4045,"o":"b_0FCD"},{"a":4038,"t":"code","b":[201,123],"m":"cmp","o":"#$7B"},{"a":4040,"t":"code","b":[176,3],"m":"bcs","oa":4045,"o":"b_0FCD"},{"a":4042,"t":"code","b":[105,224],"m":"adc","o":"#$E0"},{"a":4044,"t":"code","b":[96],"m":"rts"},{"a":4045,"l":"b_0FCD","t":"code","b":[162,15],"m":"ldx","x":[4036,4040],"o":"#$0F"},{"a":4047,"l":"b_0FCF","t":"code","b":[221,71,16],"m":"cmp","oa":4167,"x":[4053],"o":"shift_from,x"},{"a":4050,"t":"code","b":[240,4],"m":"beq","oa":4056,"o":"b_0FD8"},{"a":4052,"t":"code","b":[202],"m":"dex"},{"a":4053,"t":"code","b":[16,248],"m":"bpl","oa":4047,"o":"b_0FCF"},{"a":4055,"t":"code","b":[96],"m":"rts"},{"a":4056,"l":"b_0FD8","t":"code","b":[189,87,16],"m":"lda","oa":4183,"x":[4050],"o":"shift_to,x"},{"a":4059,"t":"code","b":[96],"m":"rts"},{"a":4060,"l":"key_row_mask","c":"One byte per keyboard row, ORed into the row's read so the modifier keys never count as a keypress: row 1 bit 7 (left SHIFT), row 6 bit 4 (right SHIFT), row 7 bit 2 (CTRL)","t":"byte","b":[4,16,0,0,0,0,128,0],"x":[3894]},{"a":4068,"l":"key_row_base","c":"The index of each row's first key in key_chars: 0, 8, 16, ... 80, eight keys a row for the C64's eight rows and the C128's three","t":"byte","b":[0,8,16,24,32,40,48,56],"x":[3961]},{"a":4076,"t":"byte","b":[64,72,80]},{"a":4079,"l":"key_chars","c":"The character each key gives, 88 entries: the C64's eight rows from row 7, bit 7 first, down to row 0, then the C128's three extra rows from $102F the same way. ASCII with lower-case letters; $80 marks a key that gives nothing (the modifiers, RUN/STOP, C=, F3, F5, and the C128's HELP, ALT and NO SCROLL). F1 gives $1B, ESC, and F7 $1F. The C128's keys are the keypad digits, Enter and full stop, its cursor keys, ESC, TAB and LINE FEED ($0A)","t":"byte","b":[128,113,128,32,50,128,8,49],"x":[4013,4017,4031]},{"a":4087,"t":"byte","b":[47,11,61,128,128,59,42,128]},{"a":4095,"t":"byte","b":[44]},{"a":4096,"l":"key_chars_17","c":"key_chars from entry 17 on, where a page boundary cuts it: '@', ':', '.', '-', then 'l', 'p', '+', 'n' and the rest of the matrix, and from $102F the C128's extra keys","t":"byte","b":[64,58,46,45,108,112,43,110]},{"a":4104,"t":"byte","b":[111,107,109,48,106,105,57,118]},{"a":4112,"t":"byte","b":[117,104,98,56,103,121,55,120]},{"a":4120,"t":"byte","b":[116,102,99,54,100,114,53,128]},{"a":4128,"t":"byte","b":[101,115,122,52,97,119,51,10]},{"a":4136,"t":"byte","b":[128,128,27,31,21,13,127,128]},{"a":4144,"t":"byte","b":[21,8,10,11,46,48,128,51]},{"a":4152,"t":"byte","b":[57,54,13,10,45,43,27,49]},{"a":4160,"t":"byte","b":[55,52,50,9,53,56,128]},{"a":4167,"l":"shift_from","c":"The unshifted keys that have a shifted symbol: 1-9, colon, semicolon, comma, full stop, slash, cursor down and cursor right codes","t":"byte","b":[49,50,51,52,53,54,55,56],"x":[4047]},{"a":4175,"t":"byte","b":[57,58,59,44,46,47,10,21]},{"a":4183,"l":"shift_to","c":"What SHIFT turns each key in shift_from into: ! \" # $ % & ' ( ) [ ] < > ?, cursor up ($0B) and cursor left ($08)","t":"byte","b":[33,34,35,36,37,38,39,40],"x":[4056]},{"a":4191,"t":"byte","b":[41,91,93,60,62,63,11,8]},{"a":4199,"l":"sound_init","c":"Silences the sound: clears the three voices' effect timers ($28-$2A) and repeat counts ($2B-$2D), sets the voice mask $1D to $FF and the engine-hum flag $1E to 0, zeroes the three voices' frequencies and the filter routing, and sets the volume to full","t":"code","b":[162,2],"m":"ldx","x":[3709],"o":"#$02"},{"a":4201,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4203,"l":"b_106B","t":"code","b":[149,40],"m":"sta","oa":40,"x":[4208],"o":"voice_timer,x"},{"a":4205,"t":"code","b":[149,43],"m":"sta","oa":43,"o":"voice_repeats,x"},{"a":4207,"t":"code","b":[202],"m":"dex"},{"a":4208,"t":"code","b":[16,249],"m":"bpl","oa":4203,"o":"b_106B"},{"a":4210,"t":"code","b":[134,29],"m":"stx","oa":29,"o":"voice_mask"},{"a":4212,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":4214,"t":"code","b":[141,0,212],"m":"sta","o":"sid_v1_freq_lo"},{"a":4217,"t":"code","b":[141,1,212],"m":"sta","o":"sid_v1_freq_hi"},{"a":4220,"t":"code","b":[141,7,212],"m":"sta","o":"sid_v2_freq_lo"},{"a":4223,"t":"code","b":[141,8,212],"m":"sta","o":"sid_v2_freq_hi"},{"a":4226,"t":"code","b":[141,14,212],"m":"sta","o":"sid_v3_freq_lo"},{"a":4229,"t":"code","b":[141,15,212],"m":"sta","o":"sid_v3_freq_hi"},{"a":4232,"t":"code","b":[141,23,212],"m":"sta","o":"sid_filter_resonance"},{"a":4235,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":4237,"t":"code","b":[141,24,212],"m":"sta","o":"sid_filter_mode_volume"},{"a":4240,"t":"code","b":[96],"m":"rts"},{"a":4241,"l":"sound_play","c":"Starts sound effect A (0-13; anything higher is ignored). The effect's tables at $11AD-$122B give its voice and its start frequency, frequency step, attack/decay, sustain/release, waveform, length, gate-off point and repeat count; they are copied into that voice's slots with interrupts off, and its timer cleared so the interrupt starts it on the next frame","t":"code","b":[201,14],"m":"cmp","x":[6164,7926,8529,8753,8762,8778,9456,10672,27616,27851,28261],"o":"#$0E"},{"a":4243,"t":"code","b":[176,60],"m":"bcs","oa":4305,"o":"r_10D1"},{"a":4245,"t":"code","b":[168],"m":"tay"},{"a":4246,"t":"code","b":[190,173,17],"m":"ldx","oa":4525,"o":"sfx_voice,y"},{"a":4249,"t":"code","b":[120],"m":"sei"},{"a":4250,"t":"code","b":[185,187,17],"m":"lda","oa":4539,"o":"sfx_freq_hi,y"},{"a":4253,"t":"code","b":[157,152,17],"m":"sta","oa":4504,"o":"voice_freq_hi_start,x"},{"a":4256,"t":"code","b":[185,201,17],"m":"lda","oa":4553,"o":"sfx_step_lo,y"},{"a":4259,"t":"code","b":[157,155,17],"m":"sta","oa":4507,"o":"voice_step_lo,x"},{"a":4262,"t":"code","b":[185,215,17],"m":"lda","oa":4567,"o":"sfx_step_hi,y"},{"a":4265,"t":"code","b":[157,158,17],"m":"sta","oa":4510,"o":"voice_step_hi,x"},{"a":4268,"t":"code","b":[185,229,17],"m":"lda","oa":4581,"o":"sfx_ad,y"},{"a":4271,"t":"code","b":[157,167,17],"m":"sta","oa":4519,"o":"voice_ad,x"},{"a":4274,"t":"code","b":[185,243,17],"m":"lda","oa":4595,"o":"sfx_sr,y"},{"a":4277,"t":"code","b":[157,170,17],"m":"sta","oa":4522,"o":"voice_sr,x"},{"a":4280,"t":"code","b":[185,1,18],"m":"lda","oa":4609,"o":"sfx_wave,y"},{"a":4283,"t":"code","b":[149,31],"m":"sta","oa":31,"o":"voice_wave,x"},{"a":4285,"t":"code","b":[185,15,18],"m":"lda","oa":4623,"o":"sfx_length,y"},{"a":4288,"t":"code","b":[149,34],"m":"sta","oa":34,"o":"voice_length,x"},{"a":4290,"t":"code","b":[185,29,18],"m":"lda","oa":4637,"o":"sfx_gateoff,y"},{"a":4293,"t":"code","b":[149,37],"m":"sta","oa":37,"o":"voice_gateoff,x"},{"a":4295,"t":"code","b":[185,43,18],"m":"lda","oa":4651,"o":"sfx_repeats,y"},{"a":4298,"t":"code","b":[149,43],"m":"sta","oa":43,"o":"voice_repeats,x"},{"a":4300,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4302,"t":"code","b":[149,40],"m":"sta","oa":40,"o":"voice_timer,x"},{"a":4304,"t":"code","b":[88],"m":"cli"},{"a":4305,"l":"r_10D1","t":"code","b":[96],"m":"rts","x":[4243]},{"a":4306,"l":"sound_step","c":"Called by the interrupt every frame for each of the three voices: starts a waiting repeat of the voice's effect (resets the frequency, retriggers the envelope with the effect's waveform), otherwise adds the frequency step to the voice's frequency, takes the gate off at the gate-off point and silences the voice when its timer runs out. With voice 1 idle it plays the engine hum: a pulse whose pitch follows the speed in $0415 (its size, either direction), unless $1D or $1E masks it off","t":"code","b":[162,2],"m":"ldx","x":[3777],"o":"#$02"},{"a":4308,"l":"b_10D4","t":"code","b":[188,149,17],"m":"ldy","oa":4501,"x":[4425],"o":"voice_reg_offset,x"},{"a":4311,"t":"code","b":[181,40],"m":"lda","oa":40,"o":"voice_timer,x"},{"a":4313,"t":"code","b":[208,55],"m":"bne","oa":4370,"o":"b_1112"},{"a":4315,"t":"code","b":[181,43],"m":"lda","oa":43,"o":"voice_repeats,x"},{"a":4317,"t":"code","b":[240,105],"m":"beq","oa":4424,"o":"b_1148"},{"a":4319,"t":"code","b":[48,103],"m":"bmi","oa":4424,"o":"b_1148"},{"a":4321,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4323,"t":"code","b":[157,161,17],"m":"sta","oa":4513,"o":"voice_freq_lo,x"},{"a":4326,"t":"code","b":[189,152,17],"m":"lda","oa":4504,"o":"voice_freq_hi_start,x"},{"a":4329,"t":"code","b":[157,164,17],"m":"sta","oa":4516,"o":"voice_freq_hi,x"},{"a":4332,"t":"code","b":[181,34],"m":"lda","oa":34,"o":"voice_length,x"},{"a":4334,"t":"code","b":[149,40],"m":"sta","oa":40,"o":"voice_timer,x"},{"a":4336,"t":"code","b":[214,43],"m":"dec","oa":43,"o":"voice_repeats,x"},{"a":4338,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":4340,"t":"code","b":[153,4,212],"m":"sta","o":"sid_v1_control,y"},{"a":4343,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4345,"t":"code","b":[153,4,212],"m":"sta","o":"sid_v1_control,y"},{"a":4348,"t":"code","b":[189,167,17],"m":"lda","oa":4519,"o":"voice_ad,x"},{"a":4351,"t":"code","b":[153,5,212],"m":"sta","o":"sid_v1_attack_decay,y"},{"a":4354,"t":"code","b":[189,170,17],"m":"lda","oa":4522,"o":"voice_sr,x"},{"a":4357,"t":"code","b":[153,6,212],"m":"sta","o":"sid_v1_sustain_release,y"},{"a":4360,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":4362,"t":"code","b":[153,3,212],"m":"sta","o":"sid_v1_pulse_hi,y"},{"a":4365,"t":"code","b":[181,31],"m":"lda","oa":31,"o":"voice_wave,x"},{"a":4367,"t":"code","b":[153,4,212],"m":"sta","o":"sid_v1_control,y"},{"a":4370,"l":"b_1112","t":"code","b":[24],"m":"clc","x":[4313]},{"a":4371,"t":"code","b":[189,161,17],"m":"lda","oa":4513,"o":"voice_freq_lo,x"},{"a":4374,"t":"code","b":[125,155,17],"m":"adc","oa":4507,"o":"voice_step_lo,x"},{"a":4377,"t":"code","b":[157,161,17],"m":"sta","oa":4513,"o":"voice_freq_lo,x"},{"a":4380,"t":"code","b":[37,29],"m":"and","oa":29,"o":"voice_mask"},{"a":4382,"t":"code","b":[153,0,212],"m":"sta","o":"sid_v1_freq_lo,y"},{"a":4385,"t":"code","b":[189,164,17],"m":"lda","oa":4516,"o":"voice_freq_hi,x"},{"a":4388,"t":"code","b":[125,158,17],"m":"adc","oa":4510,"o":"voice_step_hi,x"},{"a":4391,"t":"code","b":[157,164,17],"m":"sta","oa":4516,"o":"voice_freq_hi,x"},{"a":4394,"t":"code","b":[37,29],"m":"and","oa":29,"o":"voice_mask"},{"a":4396,"t":"code","b":[153,1,212],"m":"sta","o":"sid_v1_freq_hi,y"},{"a":4399,"t":"code","b":[181,40],"m":"lda","oa":40,"o":"voice_timer,x"},{"a":4401,"t":"code","b":[213,37],"m":"cmp","oa":37,"o":"voice_gateoff,x"},{"a":4403,"t":"code","b":[208,7],"m":"bne","oa":4412,"o":"b_113C"},{"a":4405,"t":"code","b":[181,31],"m":"lda","oa":31,"o":"voice_wave,x"},{"a":4407,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":4409,"t":"code","b":[153,4,212],"m":"sta","o":"sid_v1_control,y"},{"a":4412,"l":"b_113C","t":"code","b":[214,40],"m":"dec","oa":40,"x":[4403],"o":"voice_timer,x"},{"a":4414,"t":"code","b":[208,8],"m":"bne","oa":4424,"o":"b_1148"},{"a":4416,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4418,"t":"code","b":[153,0,212],"m":"sta","o":"sid_v1_freq_lo,y"},{"a":4421,"t":"code","b":[153,1,212],"m":"sta","o":"sid_v1_freq_hi,y"},{"a":4424,"l":"b_1148","t":"code","b":[202],"m":"dex","x":[4317,4319,4414]},{"a":4425,"t":"code","b":[16,137],"m":"bpl","oa":4308,"o":"b_10D4"},{"a":4427,"t":"code","b":[165,40],"m":"lda","oa":40,"o":"voice_timer"},{"a":4429,"t":"code","b":[208,69],"m":"bne","oa":4500,"o":"r_1194"},{"a":4431,"t":"code","b":[165,43],"m":"lda","oa":43,"o":"voice_repeats"},{"a":4433,"t":"code","b":[208,4],"m":"bne","oa":4439,"o":"b_1157"},{"a":4435,"t":"code","b":[198,43],"m":"dec","oa":43,"o":"voice_repeats"},{"a":4437,"t":"code","b":[133,31],"m":"sta","oa":31,"o":"voice_wave"},{"a":4439,"l":"b_1157","t":"code","b":[169,8],"m":"lda","x":[4433],"o":"#$08"},{"a":4441,"t":"code","b":[141,4,212],"m":"sta","o":"sid_v1_control"},{"a":4444,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4446,"t":"code","b":[141,4,212],"m":"sta","o":"sid_v1_control"},{"a":4449,"t":"code","b":[173,21,4],"m":"lda","oa":1045,"o":"slot_speed"},{"a":4452,"t":"code","b":[37,29],"m":"and","oa":29,"o":"voice_mask"},{"a":4454,"t":"code","b":[37,30],"m":"and","oa":30,"o":"hum_on"},{"a":4456,"t":"code","b":[240,42],"m":"beq","oa":4500,"o":"r_1194"},{"a":4458,"t":"code","b":[16,5],"m":"bpl","oa":4465,"o":"b_1171"},{"a":4460,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":4462,"t":"code","b":[24],"m":"clc"},{"a":4463,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":4465,"l":"b_1171","t":"code","b":[10],"m":"asl","x":[4458],"o":"a"},{"a":4466,"t":"code","b":[42],"m":"rol","o":"a"},{"a":4467,"t":"code","b":[42],"m":"rol","o":"a"},{"a":4468,"t":"code","b":[170],"m":"tax"},{"a":4469,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":4471,"t":"code","b":[141,0,212],"m":"sta","o":"sid_v1_freq_lo"},{"a":4474,"t":"code","b":[138],"m":"txa"},{"a":4475,"t":"code","b":[42],"m":"rol","o":"a"},{"a":4476,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":4478,"t":"code","b":[141,1,212],"m":"sta","o":"sid_v1_freq_hi"},{"a":4481,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4483,"t":"code","b":[141,5,212],"m":"sta","o":"sid_v1_attack_decay"},{"a":4486,"t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":4488,"t":"code","b":[141,6,212],"m":"sta","o":"sid_v1_sustain_release"},{"a":4491,"t":"code","b":[165,31],"m":"lda","oa":31,"o":"voice_wave"},{"a":4493,"t":"code","b":[73,17],"m":"eor","o":"#$11"},{"a":4495,"t":"code","b":[133,31],"m":"sta","oa":31,"o":"voice_wave"},{"a":4497,"t":"code","b":[141,4,212],"m":"sta","o":"sid_v1_control"},{"a":4500,"l":"r_1194","t":"code","b":[96],"m":"rts","x":[4429,4456]},{"a":4501,"l":"voice_reg_offset","c":"The SID register offset of each voice: 0, 7, 14","t":"byte","b":[0,7,14],"x":[4308]},{"a":4504,"l":"voice_freq_hi_start","c":"Per voice: the high byte of the frequency an effect starts at","t":"byte","b":[0,28,0],"x":[4253,4326]},{"a":4507,"l":"voice_step_lo","c":"Per voice: the low byte of the frequency step added every frame","t":"byte","b":[0,0,0],"x":[4259,4374]},{"a":4510,"l":"voice_step_hi","c":"Per voice: the high byte of the frequency step","t":"byte","b":[0,0,0],"x":[4265,4388]},{"a":4513,"l":"voice_freq_lo","c":"Per voice: the effect's frequency, low byte, before the mask: sound_step adds the step to it every frame and writes it to the SID ANDed with $1D. The engine hum writes voice 1's SID frequency directly and leaves this alone","t":"byte","b":[0,0,0],"x":[4323,4371,4377]},{"a":4516,"l":"voice_freq_hi","c":"Per voice: the effect's frequency, high byte, before the mask (see $11A1)","t":"byte","b":[0,28,0],"x":[4329,4385,4391]},{"a":4519,"l":"voice_ad","c":"Per voice: the effect's attack/decay value","t":"byte","b":[0,0,0],"x":[4271,4348]},{"a":4522,"l":"voice_sr","c":"Per voice: the effect's sustain/release value","t":"byte","b":[0,244,0],"x":[4277,4354]},{"a":4525,"l":"sfx_voice","c":"Sound effect table, 14 entries: the voice each effect plays on (0-2)","t":"byte","b":[2,2,2,0,1,2,2,1],"x":[4246]},{"a":4533,"t":"byte","b":[1,2,2,2,1,0]},{"a":4539,"l":"sfx_freq_hi","c":"Sound effect table: the frequency each effect starts at (high byte)","t":"byte","b":[16,16,12,28,28,8,2,16],"x":[4250]},{"a":4547,"t":"byte","b":[0,1,0,4,32,128]},{"a":4553,"l":"sfx_step_lo","c":"Sound effect table: the frequency step's low byte","t":"byte","b":[128,128,128,0,0,240,254,128],"x":[4256]},{"a":4561,"t":"byte","b":[128,254,4,0,0,0]},{"a":4567,"l":"sfx_step_hi","c":"Sound effect table: the frequency step's high byte ($FF for a falling sweep)","t":"byte","b":[255,255,0,0,0,255,255,0],"x":[4262]},{"a":4575,"t":"byte","b":[0,255,0,0,255,6]},{"a":4581,"l":"sfx_ad","c":"Sound effect table: attack/decay","t":"byte","b":[0,0,0,151,0,0,0,151],"x":[4268]},{"a":4589,"t":"byte","b":[0,0,168,0,0,160]},{"a":4595,"l":"sfx_sr","c":"Sound effect table: sustain/release","t":"byte","b":[39,71,119,247,244,247,55,119],"x":[4274]},{"a":4603,"t":"byte","b":[119,240,118,119,119,119]},{"a":4609,"l":"sfx_wave","c":"Sound effect table: the waveform and gate written to the control register ($81 noise, $41 pulse, $21 sawtooth, $11 triangle)","t":"byte","b":[129,129,65,33,17,129,129,129],"x":[4280]},{"a":4617,"t":"byte","b":[129,129,129,129,129,129]},{"a":4623,"l":"sfx_length","c":"Sound effect table: how many frames each repeat lasts","t":"byte","b":[32,32,64,32,4,32,32,32],"x":[4285]},{"a":4631,"t":"byte","b":[32,32,64,16,32,32]},{"a":4637,"l":"sfx_gateoff","c":"Sound effect table: the frame count at which the gate is released","t":"byte","b":[16,16,32,16,3,16,16,16],"x":[4290]},{"a":4645,"t":"byte","b":[16,16,16,15,16,16]},{"a":4651,"l":"sfx_repeats","c":"Sound effect table: how many times the effect plays","t":"byte","b":[1,1,3,3,3,1,1,1],"x":[4295]},{"a":4659,"t":"byte","b":[1,1,1,1,1,1]},{"a":4665,"l":"frame_update","c":"The main loop's first call. Counts down $0836; fires the beam ($20EC) when auto fire ($0CFF) is on, the player's target ($0445) is a ship slot (0-5) and $0D00 has counted down to zero; every seventh pass with $3A clear runs $3102. Every 256th pass: $1DDF, then the player's orientation ($044B) made square again ($923E), then, with fewer than three ships in slots 1-5 (in use, $0403 clear), it may add one: $2C8A picks a type with $077C divided by 8 as the chance (none when it returns N set: no ship, or a type of a negative faction), and a merchant type (faction 1) is skipped one time in two ($A2C5 negative); $1D4A/$1D6A when $08F9 for that type is clear, then $1E73 and $1949 create it, and ships whose distance ($7947, a log) is $0B49 or more (about 2,500 units) are removed ($1A5F with A=$FF); that loop tests $0403 with Y, which holds what the routine called last left there, not the slot it is looking at. Every 16th pass: counts $0D29 down to clear the message line ($A178), counts $0D00 down, and computes $0C04/$0C05 from $073B/$073C and a value from $2EDB and $B451","t":"code","b":[173,54,8],"m":"lda","oa":2102,"x":[3565],"o":"missile_reload"},{"a":4668,"t":"code","b":[240,3],"m":"beq","oa":4673,"o":"b_1241"},{"a":4670,"t":"code","b":[206,54,8],"m":"dec","oa":2102,"o":"missile_reload"},{"a":4673,"l":"b_1241","t":"code","b":[173,255,12],"m":"lda","oa":3327,"x":[4668],"o":"auto_fire"},{"a":4676,"t":"code","b":[240,19],"m":"beq","oa":4697,"o":"b_1259"},{"a":4678,"t":"code","b":[173,69,4],"m":"lda","oa":1093,"o":"slot_target"},{"a":4681,"t":"code","b":[48,14],"m":"bmi","oa":4697,"o":"b_1259"},{"a":4683,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":4685,"t":"code","b":[176,10],"m":"bcs","oa":4697,"o":"b_1259"},{"a":4687,"t":"code","b":[173,0,13],"m":"lda","oa":3328,"o":"beam_heat"},{"a":4690,"t":"code","b":[208,5],"m":"bne","oa":4697,"o":"b_1259"},{"a":4692,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4694,"t":"code","b":[32,236,32],"m":"jsr","oa":8428,"o":"fire_beam"},{"a":4697,"l":"b_1259","t":"code","b":[165,58],"m":"lda","oa":58,"x":[4676,4681,4685,4690],"o":"draw_buffer"},{"a":4699,"t":"code","b":[208,13],"m":"bne","oa":4714,"o":"b_126A"},{"a":4701,"t":"code","b":[206,93,19],"m":"dec","oa":4957,"o":"flight_step_count"},{"a":4704,"t":"code","b":[208,8],"m":"bne","oa":4714,"o":"b_126A"},{"a":4706,"t":"code","b":[32,2,49],"m":"jsr","oa":12546,"o":"update_cockpit"},{"a":4709,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":4711,"t":"code","b":[141,93,19],"m":"sta","oa":4957,"o":"flight_step_count"},{"a":4714,"l":"b_126A","t":"code","b":[230,94],"m":"inc","oa":94,"x":[4699,4704],"o":"pass_count"},{"a":4716,"t":"code","b":[240,3],"m":"beq","oa":4721,"o":"b_1271"},{"a":4718,"t":"code","b":[76,17,19],"m":"jmp","oa":4881,"o":"j_1311"},{"a":4721,"l":"b_1271","t":"code","b":[238,94,19],"m":"inc","oa":4958,"x":[4716],"o":"clock_ticks"},{"a":4724,"t":"code","b":[32,223,29],"m":"jsr","oa":7647,"o":"target_status"},{"a":4727,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":4729,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":4731,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":4733,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":4735,"t":"code","b":[32,62,146],"m":"jsr","oa":37438,"o":"mat_orthonormal"},{"a":4738,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":4740,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":4742,"l":"b_1286","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[4756],"o":"slot_in_use,y"},{"a":4745,"t":"code","b":[240,8],"m":"beq","oa":4755,"o":"b_1293"},{"a":4747,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":4750,"t":"code","b":[208,3],"m":"bne","oa":4755,"o":"b_1293"},{"a":4752,"t":"code","b":[202],"m":"dex"},{"a":4753,"t":"code","b":[240,80],"m":"beq","oa":4835,"o":"b_12E3"},{"a":4755,"l":"b_1293","t":"code","b":[136],"m":"dey","x":[4745,4750]},{"a":4756,"t":"code","b":[208,240],"m":"bne","oa":4742,"o":"b_1286"},{"a":4758,"t":"code","b":[173,124,7],"m":"lda","oa":1916,"o":"danger"},{"a":4761,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":4762,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":4763,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":4764,"t":"code","b":[32,138,44],"m":"jsr","oa":11402,"o":"pick_ship_with_chance"},{"a":4767,"t":"code","b":[48,66],"m":"bmi","oa":4835,"o":"b_12E3"},{"a":4769,"t":"code","b":[133,188],"m":"sta","oa":188,"o":"model_groupsizes"},{"a":4771,"t":"code","b":[224,1],"m":"cpx","o":"#$01"},{"a":4773,"t":"code","b":[208,5],"m":"bne","oa":4780,"o":"b_12AC"},{"a":4775,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":4778,"t":"code","b":[48,55],"m":"bmi","oa":4835,"o":"b_12E3"},{"a":4780,"l":"b_12AC","t":"code","b":[165,188],"m":"lda","oa":188,"x":[4773],"o":"model_groupsizes"},{"a":4782,"t":"code","b":[10],"m":"asl","o":"a"},{"a":4783,"t":"code","b":[168],"m":"tay"},{"a":4784,"t":"code","b":[185,249,8],"m":"lda","oa":2297,"o":"type_draw_hi,y"},{"a":4787,"t":"code","b":[208,6],"m":"bne","oa":4795,"o":"b_12BB"},{"a":4789,"t":"code","b":[32,74,29],"m":"jsr","oa":7498,"o":"reset_models"},{"a":4792,"t":"code","b":[32,106,29],"m":"jsr","oa":7530,"o":"load_slot_models"},{"a":4795,"l":"b_12BB","t":"code","b":[169,93],"m":"lda","x":[4787],"o":"#$5D"},{"a":4797,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":4799,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":4801,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":4803,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":4805,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":4807,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4809,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":4811,"t":"code","b":[169,226],"m":"lda","o":"#$E2"},{"a":4813,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":4815,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":4817,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":4819,"t":"code","b":[32,115,30],"m":"jsr","oa":7795,"o":"random_offset"},{"a":4822,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":4824,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":4826,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4828,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":4830,"t":"code","b":[166,188],"m":"ldx","oa":188,"o":"model_groupsizes"},{"a":4832,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":4835,"l":"b_12E3","t":"code","b":[162,5],"m":"ldx","x":[4753,4767,4778],"o":"#$05"},{"a":4837,"t":"code","b":[134,188],"m":"stx","oa":188,"o":"model_groupsizes"},{"a":4839,"l":"b_12E7","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[4879],"o":"slot_in_use,x"},{"a":4842,"t":"code","b":[240,31],"m":"beq","oa":4875,"o":"b_130B"},{"a":4844,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":4847,"t":"code","b":[208,26],"m":"bne","oa":4875,"o":"b_130B"},{"a":4849,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":4851,"t":"code","b":[32,71,121],"m":"jsr","oa":31047,"o":"bearing"},{"a":4854,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":4856,"t":"code","b":[48,17],"m":"bmi","oa":4875,"o":"b_130B"},{"a":4858,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":4860,"t":"code","b":[201,73],"m":"cmp","o":"#$49"},{"a":4862,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":4864,"t":"code","b":[233,11],"m":"sbc","o":"#$0B"},{"a":4866,"t":"code","b":[144,7],"m":"bcc","oa":4875,"o":"b_130B"},{"a":4868,"t":"code","b":[164,188],"m":"ldy","oa":188,"o":"model_groupsizes"},{"a":4870,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":4872,"t":"code","b":[32,95,26],"m":"jsr","oa":6751,"o":"destroy_object"},{"a":4875,"l":"b_130B","t":"code","b":[198,188],"m":"dec","oa":188,"x":[4842,4847,4856,4866],"o":"model_groupsizes"},{"a":4877,"t":"code","b":[166,188],"m":"ldx","oa":188,"o":"model_groupsizes"},{"a":4879,"t":"code","b":[208,214],"m":"bne","oa":4839,"o":"b_12E7"},{"a":4881,"l":"j_1311","t":"code","b":[165,94],"m":"lda","oa":94,"x":[4718],"o":"pass_count"},{"a":4883,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":4885,"t":"code","b":[208,69],"m":"bne","oa":4956,"o":"r_135C"},{"a":4887,"t":"code","b":[173,41,13],"m":"lda","oa":3369,"o":"message_timer"},{"a":4890,"t":"code","b":[48,10],"m":"bmi","oa":4902,"o":"b_1326"},{"a":4892,"t":"code","b":[206,41,13],"m":"dec","oa":3369,"o":"message_timer"},{"a":4895,"t":"code","b":[16,5],"m":"bpl","oa":4902,"o":"b_1326"},{"a":4897,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":4899,"t":"code","b":[32,120,161],"m":"jsr","oa":41336,"o":"scroll_window"},{"a":4902,"l":"b_1326","t":"code","b":[173,0,13],"m":"lda","oa":3328,"x":[4890,4895],"o":"beam_heat"},{"a":4905,"t":"code","b":[240,3],"m":"beq","oa":4910,"o":"b_132E"},{"a":4907,"t":"code","b":[206,0,13],"m":"dec","oa":3328,"o":"beam_heat"},{"a":4910,"l":"b_132E","t":"code","b":[32,219,46],"m":"jsr","oa":11995,"x":[4905],"o":"cargo_count"},{"a":4913,"t":"code","b":[138],"m":"txa"},{"a":4914,"t":"code","b":[24],"m":"clc"},{"a":4915,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":4917,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":4919,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4921,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":4923,"t":"code","b":[32,81,180],"m":"jsr","oa":46161,"o":"$B451"},{"a":4926,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":4928,"t":"code","b":[56],"m":"sec"},{"a":4929,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":4931,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":4933,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":4935,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":4937,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":4939,"t":"code","b":[173,59,7],"m":"lda","oa":1851,"o":"engine_thrust"},{"a":4942,"t":"code","b":[24],"m":"clc"},{"a":4943,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":4945,"t":"code","b":[141,4,12],"m":"sta","oa":3076,"o":"type_thrust"},{"a":4948,"t":"code","b":[173,60,7],"m":"lda","oa":1852,"o":"a_073C"},{"a":4951,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":4953,"t":"code","b":[141,5,12],"m":"sta","oa":3077,"o":"a_0C05"},{"a":4956,"l":"r_135C","t":"code","b":[96],"m":"rts","x":[4885]},{"a":4957,"l":"flight_step_count","c":"Counts main-loop passes down from 7 to the next flight step at $3102","t":"byte","b":[2],"x":[4701,4711]},{"a":4958,"l":"clock_ticks","c":"Counts the 256-pass periods of frame_update","t":"byte","b":[1],"x":[4721]},{"a":4959,"l":"do_key","c":"Calls $2419, then takes a key from the buffer ($A24D, letters as capitals) and runs its command: the key is looked up in key_cmds ($145C), only its first 25 entries (up to V) while $0838 is set; the handler's address less one is pushed from key_handlers ($1481) and reached with RTS. A key that is no command is dropped","t":"code","b":[32,25,36],"m":"jsr","oa":9241,"x":[3586,29174],"o":"joystick_flight"},{"a":4962,"t":"code","b":[32,77,162],"m":"jsr","oa":41549,"o":"get_key"},{"a":4965,"t":"code","b":[176,1],"m":"bcs","oa":4968,"o":"b_1368"},{"a":4967,"t":"code","b":[96],"m":"rts"},{"a":4968,"l":"b_1368","t":"code","b":[160,36],"m":"ldy","x":[4965],"o":"#$24"},{"a":4970,"t":"code","b":[174,56,8],"m":"ldx","oa":2104,"o":"in_wormhole"},{"a":4973,"t":"code","b":[240,2],"m":"beq","oa":4977,"o":"b_1371"},{"a":4975,"t":"code","b":[160,24],"m":"ldy","o":"#$18"},{"a":4977,"l":"b_1371","t":"code","b":[217,92,20],"m":"cmp","oa":5212,"x":[4973,4983],"o":"key_cmds,y"},{"a":4980,"t":"code","b":[240,4],"m":"beq","oa":4986,"o":"b_137A"},{"a":4982,"t":"code","b":[136],"m":"dey"},{"a":4983,"t":"code","b":[16,248],"m":"bpl","oa":4977,"o":"b_1371"},{"a":4985,"t":"code","b":[96],"m":"rts"},{"a":4986,"l":"b_137A","t":"code","b":[152],"m":"tya","x":[4980]},{"a":4987,"t":"code","b":[10],"m":"asl","o":"a"},{"a":4988,"t":"code","b":[168],"m":"tay"},{"a":4989,"t":"code","b":[185,130,20],"m":"lda","oa":5250,"o":"key_handlers_hi,y"},{"a":4992,"t":"code","b":[72],"m":"pha"},{"a":4993,"t":"code","b":[185,129,20],"m":"lda","oa":5249,"o":"key_handlers,y"},{"a":4996,"t":"code","b":[72],"m":"pha"},{"a":4997,"t":"code","b":[96],"m":"rts"},{"a":4998,"l":"key_turn_left","c":"Key A, 4 or cursor left: one step more turn to the left (the player's turn rate $0516 down, at most $46 either way)","t":"code","b":[174,22,5],"m":"ldx","oa":1302,"o":"slot_turn"},{"a":5001,"t":"code","b":[202],"m":"dex"},{"a":5002,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5005,"t":"code","b":[142,22,5],"m":"stx","oa":1302,"o":"slot_turn"},{"a":5008,"t":"code","b":[96],"m":"rts"},{"a":5009,"l":"key_turn_right","c":"Key D, 6 or cursor right: one step more turn to the right ($0516 up)","t":"code","b":[174,22,5],"m":"ldx","oa":1302,"o":"slot_turn"},{"a":5012,"t":"code","b":[232],"m":"inx"},{"a":5013,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5016,"t":"code","b":[142,22,5],"m":"stx","oa":1302,"o":"slot_turn"},{"a":5019,"t":"code","b":[96],"m":"rts"},{"a":5020,"l":"key_pitch_up","c":"Key W, 8 or cursor up: one step more pitch ($0508 up)","t":"code","b":[174,8,5],"m":"ldx","oa":1288,"o":"slot_pitch"},{"a":5023,"t":"code","b":[232],"m":"inx"},{"a":5024,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5027,"t":"code","b":[142,8,5],"m":"stx","oa":1288,"o":"slot_pitch"},{"a":5030,"t":"code","b":[96],"m":"rts"},{"a":5031,"l":"key_pitch_down","c":"Key X, 2 or cursor down: one step more pitch the other way ($0508 down)","t":"code","b":[174,8,5],"m":"ldx","oa":1288,"o":"slot_pitch"},{"a":5034,"t":"code","b":[202],"m":"dex"},{"a":5035,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5038,"t":"code","b":[142,8,5],"m":"stx","oa":1288,"o":"slot_pitch"},{"a":5041,"t":"code","b":[96],"m":"rts"},{"a":5042,"l":"key_stop_turn","c":"Key S or 5: stops all rotation, pitch ($0508), turn ($0516) and roll ($050F) to zero","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5044,"t":"code","b":[141,8,5],"m":"sta","oa":1288,"o":"slot_pitch"},{"a":5047,"t":"code","b":[141,22,5],"m":"sta","oa":1302,"o":"slot_turn"},{"a":5050,"t":"code","b":[141,15,5],"m":"sta","oa":1295,"o":"slot_roll"},{"a":5053,"t":"code","b":[96],"m":"rts"},{"a":5054,"l":"key_roll_left","c":"Key Z or 1: one step more roll ($050F down)","t":"code","b":[174,15,5],"m":"ldx","oa":1295,"o":"slot_roll"},{"a":5057,"t":"code","b":[202],"m":"dex"},{"a":5058,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5061,"t":"code","b":[142,15,5],"m":"stx","oa":1295,"o":"slot_roll"},{"a":5064,"t":"code","b":[96],"m":"rts"},{"a":5065,"l":"key_roll_right","c":"Key C or 3: one step more roll the other way ($050F up)","t":"code","b":[174,15,5],"m":"ldx","oa":1295,"o":"slot_roll"},{"a":5068,"t":"code","b":[232],"m":"inx"},{"a":5069,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5072,"t":"code","b":[142,15,5],"m":"stx","oa":1295,"o":"slot_roll"},{"a":5075,"t":"code","b":[96],"m":"rts"},{"a":5076,"l":"key_jettison","c":"Key J: jettison. Calls $2ECF and prints the message at $CECF (X is the low byte)","t":"code","b":[32,207,46],"m":"jsr","oa":11983,"o":"cargo_jettison"},{"a":5079,"t":"code","b":[162,207],"m":"ldx","o":"#$CF"},{"a":5081,"t":"code","b":[169,206],"m":"lda","o":"#$CE"},{"a":5083,"t":"code","b":[76,220,154],"m":"jmp","oa":39644,"o":"print_message"},{"a":5086,"l":"key_slower","c":"Key minus: unless $0D02 is set, one step less speed for the player's ship ($0415, slot 0 of the speed array), clamped to -$46; sets $0D01 to 1","t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":5089,"t":"code","b":[208,10],"m":"bne","oa":5101,"o":"b_13ED"},{"a":5091,"t":"code","b":[174,21,4],"m":"ldx","oa":1045,"o":"slot_speed"},{"a":5094,"t":"code","b":[202],"m":"dex"},{"a":5095,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5098,"t":"code","b":[142,21,4],"m":"stx","oa":1045,"o":"slot_speed"},{"a":5101,"l":"b_13ED","t":"code","b":[169,1],"m":"lda","x":[5089],"o":"#$01"},{"a":5103,"t":"code","b":[141,1,13],"m":"sta","oa":3329,"o":"thrust_dir"},{"a":5106,"t":"code","b":[96],"m":"rts"},{"a":5107,"l":"key_faster","c":"Key plus: unless $0D02 is set, one step more speed ($0415), clamped to $46; sets $0D01 to $FF","t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":5110,"t":"code","b":[208,10],"m":"bne","oa":5122,"o":"b_1402"},{"a":5112,"t":"code","b":[174,21,4],"m":"ldx","oa":1045,"o":"slot_speed"},{"a":5115,"t":"code","b":[232],"m":"inx"},{"a":5116,"t":"code","b":[32,76,20],"m":"jsr","oa":5196,"o":"clamp_rate"},{"a":5119,"t":"code","b":[142,21,4],"m":"stx","oa":1045,"o":"slot_speed"},{"a":5122,"l":"b_1402","t":"code","b":[169,255],"m":"lda","x":[5110],"o":"#$FF"},{"a":5124,"t":"code","b":[141,1,13],"m":"sta","oa":3329,"o":"thrust_dir"},{"a":5127,"t":"code","b":[96],"m":"rts"},{"a":5128,"l":"key_flight_mode","c":"CTRL-E, or F7 (character $1F): toggles $0D02, which the speed keys and $2419 test: cruise or Newtonian flight","t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":5131,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":5133,"t":"code","b":[141,2,13],"m":"sta","oa":3330,"o":"newtonian"},{"a":5136,"t":"code","b":[96],"m":"rts"},{"a":5137,"l":"key_tac_mode","c":"CTRL-T or I: toggles $7C and redraws the TAC display ($311E, $3114)","t":"code","b":[165,124],"m":"lda","oa":124,"o":"tac_mode"},{"a":5139,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":5141,"t":"code","b":[133,124],"m":"sta","oa":124,"o":"tac_mode"},{"a":5143,"t":"code","b":[32,30,49],"m":"jsr","oa":12574,"o":"clear_tac"},{"a":5146,"t":"code","b":[76,20,49],"m":"jmp","oa":12564,"o":"draw_tac"},{"a":5149,"l":"key_auto_fire","c":"Key L: toggles automatic beam fire ($0CFF), only when $073E (fitted equipment) is set","t":"code","b":[173,62,7],"m":"lda","oa":1854,"o":"item_beam_lock"},{"a":5152,"t":"code","b":[240,8],"m":"beq","oa":5162,"o":"r_142A"},{"a":5154,"t":"code","b":[173,255,12],"m":"lda","oa":3327,"o":"auto_fire"},{"a":5157,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":5159,"t":"code","b":[141,255,12],"m":"sta","oa":3327,"o":"auto_fire"},{"a":5162,"l":"r_142A","t":"code","b":[96],"m":"rts","x":[5152]},{"a":5163,"l":"key_view","c":"Key V: the next camera view ($0D3C counts 2, 1, 0 and wraps to 2), then redraws the view ($65B0)","t":"code","b":[206,60,13],"m":"dec","oa":3388,"o":"view_mode"},{"a":5166,"t":"code","b":[16,5],"m":"bpl","oa":5173,"o":"b_1435"},{"a":5168,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":5170,"t":"code","b":[141,60,13],"m":"sta","oa":3388,"o":"view_mode"},{"a":5173,"l":"b_1435","t":"code","b":[76,176,101],"m":"jmp","oa":26032,"x":[5166],"o":"set_view"},{"a":5176,"l":"key_escape","c":"ESC, which on a C64 is F1: waits for a key ($A431) with the engine hum off ($1E)","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5178,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":5180,"t":"code","b":[32,49,164],"m":"jsr","oa":42033,"o":"wait_key"},{"a":5183,"t":"code","b":[198,30],"m":"dec","oa":30,"o":"hum_on"},{"a":5185,"t":"code","b":[96],"m":"rts"},{"a":5186,"l":"key_navigation","c":"Key N: Navigation Control ($2543), with the engine hum off while it runs","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5188,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":5190,"t":"code","b":[32,67,37],"m":"jsr","oa":9539,"o":"navigation"},{"a":5193,"t":"code","b":[198,30],"m":"dec","oa":30,"o":"hum_on"},{"a":5195,"t":"code","b":[96],"m":"rts"},{"a":5196,"l":"clamp_rate","c":"Clamps X, a signed rate or speed, to -$46..$46","t":"code","b":[48,7],"m":"bmi","oa":5205,"x":[5002,5013,5024,5035,5058,5069,5095,5116],"o":"b_1455"},{"a":5198,"t":"code","b":[224,71],"m":"cpx","o":"#$47"},{"a":5200,"t":"code","b":[144,2],"m":"bcc","oa":5204,"o":"r_1454"},{"a":5202,"t":"code","b":[162,70],"m":"ldx","o":"#$46"},{"a":5204,"l":"r_1454","t":"code","b":[96],"m":"rts","x":[5200,5207]},{"a":5205,"l":"b_1455","t":"code","b":[224,186],"m":"cpx","x":[5196],"o":"#$BA"},{"a":5207,"t":"code","b":[176,251],"m":"bcs","oa":5204,"o":"r_1454"},{"a":5209,"t":"code","b":[162,186],"m":"ldx","o":"#$BA"},{"a":5211,"t":"code","b":[96],"m":"rts"},{"a":5212,"l":"key_cmds","c":"The 37 keys that are commands in flight, in the order of key_handlers: 4 A cursor-left, 6 D cursor-right, 8 W cursor-up, 2 X cursor-down, 5 S, 1 Z, 3 C, J, minus, plus, ESC (F1), CTRL-E, $1F (F7), V, T, CTRL-T, I, L, 0, space, R, full stop, N, CTRL-S, G, Return","t":"byte","b":[52,65,8,54,68,21,56,87],"x":[4977]},{"a":5220,"t":"byte","b":[11,50,88,10,53,83,49,90]},{"a":5228,"t":"byte","b":[51,67,74,45,43,27,5,31]},{"a":5236,"t":"byte","b":[86,84,20,73,76,48,32,82]},{"a":5244,"t":"byte","b":[46,78,19,71,13]},{"a":5249,"l":"key_handlers","c":"The command handlers for key_cmds, each address less one (do_key reaches them with RTS): turn, pitch, stop, roll, jettison ($13D4), speed ($13DE, $13F3), ESC ($1438), flight mode ($1408), view ($142B), next target ($1D82), TAC mode ($1411), auto fire ($141D), fire ($1DBE), next weapon ($1E5C), navigation ($1442), save ($154E), surrender ($392A), and Return, which also takes the next target ($1D82)","t":"byte","b":[133],"x":[4993]},{"a":5250,"l":"key_handlers_hi","c":"High bytes of key_handlers' words: do_key reads each handler as the pair at $1481+2n","t":"byte","b":[19,133,19,133,19,144,19,144],"x":[4989]},{"a":5258,"t":"byte","b":[19,144,19,155,19,155,19,155]},{"a":5266,"t":"byte","b":[19,166,19,166,19,166,19,177]},{"a":5274,"t":"byte","b":[19,177,19,189,19,189,19,200]},{"a":5282,"t":"byte","b":[19,200,19,211,19,221,19,242]},{"a":5290,"t":"byte","b":[19,55,20,7,20,7,20,42]},{"a":5298,"t":"byte","b":[20,129,29,16,20,16,20,28]},{"a":5306,"t":"byte","b":[20,189,29,189,29,91,30,91]},{"a":5314,"t":"byte","b":[30,65,20,77,21,41,57,129]},{"a":5322,"t":"byte","b":[29]},{"a":5323,"l":"sr_setup","c":"Run once from sr_init: sets up the interrupt and vectors ($0E22), swaps the KERNAL's zero page in ($17B5), loads INIT to $E900 and jumps to it; INIT's RTS returns to the main loop","t":"code","b":[8],"m":"php","x":[3562]},{"a":5324,"t":"code","b":[32,34,14],"m":"jsr","oa":3618,"o":"setup_irq"},{"a":5327,"t":"code","b":[32,181,23],"m":"jsr","oa":6069,"o":"swap_kernal_zp"},{"a":5330,"t":"code","b":[162,194],"m":"ldx","o":"#$C2"},{"a":5332,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5334,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5336,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5338,"t":"code","b":[169,233],"m":"lda","o":"#$E9"},{"a":5340,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5342,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":5345,"t":"code","b":[40],"m":"plp"},{"a":5346,"t":"code","b":[76,0,233],"m":"jmp","oa":59648,"o":"$E900"},{"a":5349,"l":"load_end","c":"Loads END to $E900 with the engine hum off: END is INIT's bytes, put back after a base has used $E900","t":"code","b":[169,0],"m":"lda","x":[7056],"o":"#$00"},{"a":5351,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":5353,"t":"code","b":[162,249],"m":"ldx","o":"#$F9"},{"a":5355,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5357,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5359,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5361,"t":"code","b":[169,233],"m":"lda","o":"#$E9"},{"a":5363,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5365,"t":"code","b":[76,101,23],"m":"jmp","oa":5989,"o":"load_file"},{"a":5368,"l":"load_seg0","c":"Loads SEG0, the flight overlay, to $A500","t":"code","b":[162,233],"m":"ldx","x":[9899,28884],"o":"#$E9"},{"a":5370,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5372,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5374,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5376,"t":"code","b":[169,165],"m":"lda","o":"#$A5"},{"a":5378,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5380,"t":"code","b":[76,101,23],"m":"jmp","oa":5989,"o":"load_file"},{"a":5383,"l":"load_seg1","c":"Loads SEG1, the base overlay, to $A500 and SEG1A to $E400","t":"code","b":[162,238],"m":"ldx","x":[9879,28848],"o":"#$EE"},{"a":5385,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5387,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5389,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5391,"t":"code","b":[169,165],"m":"lda","o":"#$A5"},{"a":5393,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5395,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":5398,"t":"code","b":[162,243],"m":"ldx","o":"#$F3"},{"a":5400,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5402,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5404,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5406,"t":"code","b":[169,228],"m":"lda","o":"#$E4"},{"a":5408,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5410,"t":"code","b":[76,101,23],"m":"jmp","oa":5989,"o":"load_file"},{"a":5413,"l":"restore_after_disk","c":"Called after a save or an INIT reload: selects screen 0 ($1BEE), redraws ($8F40) and puts the view back ($9E4C with Y=0)","t":"code","b":[169,0],"m":"lda","x":[5528,11889],"o":"#$00"},{"a":5415,"t":"code","b":[32,238,27],"m":"jsr","oa":7150,"o":"load_picture"},{"a":5418,"t":"code","b":[32,64,143],"m":"jsr","oa":36672,"o":"copy_to_bank1"},{"a":5421,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5423,"t":"code","b":[76,76,158],"m":"jmp","oa":40524,"o":"select_window"},{"a":5426,"l":"load_won","c":"The ending: with the engine hum off, sets the disk prompt to BOOT ($1859), loads WON from side 1 to $6800, swaps the KERNAL's zero page back ($17B5) and jumps to WON at $6800. Reached from dock ($7094) when docking anywhere in system 9 ($071D), the Manchi system whose map is Q9","t":"code","b":[169,0],"m":"lda","x":[28827],"o":"#$00"},{"a":5428,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":5430,"t":"code","b":[32,89,24],"m":"jsr","oa":6233,"o":"prompt_boot_disk"},{"a":5433,"t":"code","b":[162,220],"m":"ldx","o":"#$DC"},{"a":5435,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5437,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5439,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5441,"t":"code","b":[169,104],"m":"lda","o":"#$68"},{"a":5443,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5445,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":5448,"t":"code","b":[32,181,23],"m":"jsr","oa":6069,"o":"swap_kernal_zp"},{"a":5451,"t":"code","b":[76,0,104],"m":"jmp","oa":26624,"o":"j_6800"},{"a":5454,"l":"key_save","c":"CTRL-S: asks the question at $CF9B (Save game? Y/N, a key through $A24D). Y: $B981 and $8EF6, then the prompt is set to BOOT, SPB is loaded to $4000 as a check that the BOOT disk is in, and the game state $0403-$0801 is saved as \"@0:SAVED\" ($1783); the prompt goes back to DATA and the screen is restored ($1525). Any other key just clears the message line ($A178)","t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5456,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":5459,"t":"code","b":[162,155],"m":"ldx","o":"#$9B"},{"a":5461,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":5463,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":5466,"t":"code","b":[32,77,162],"m":"jsr","oa":41549,"o":"get_key"},{"a":5469,"l":"b_155D","t":"code","b":[32,77,162],"m":"jsr","oa":41549,"x":[5472],"o":"get_key"},{"a":5472,"t":"code","b":[144,251],"m":"bcc","oa":5469,"o":"b_155D"},{"a":5474,"t":"code","b":[201,89],"m":"cmp","o":"#$59"},{"a":5476,"t":"code","b":[208,53],"m":"bne","oa":5531,"o":"b_159B"},{"a":5478,"t":"code","b":[32,129,185],"m":"jsr","oa":47489,"o":"$B981"},{"a":5481,"t":"code","b":[32,246,142],"m":"jsr","oa":36598,"o":"show_bank3"},{"a":5484,"t":"code","b":[32,89,24],"m":"jsr","oa":6233,"o":"prompt_boot_disk"},{"a":5487,"t":"code","b":[162,204],"m":"ldx","o":"#$CC"},{"a":5489,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5491,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5493,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5495,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":5497,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5499,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":5502,"t":"code","b":[162,224],"m":"ldx","o":"#$E0"},{"a":5504,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":5506,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":5508,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":5510,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":5512,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":5514,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":5516,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":5518,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":5520,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":5522,"t":"code","b":[32,131,23],"m":"jsr","oa":6019,"o":"save_file"},{"a":5525,"t":"code","b":[32,100,24],"m":"jsr","oa":6244,"o":"prompt_data_disk"},{"a":5528,"t":"code","b":[76,37,21],"m":"jmp","oa":5413,"o":"restore_after_disk"},{"a":5531,"l":"b_159B","t":"code","b":[169,1],"m":"lda","x":[5476],"o":"#$01"},{"a":5533,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"scroll_window"},{"a":5536,"l":"enter_sector","c":"Sets up the objects of the sector the ship is in (from $7256 and INIT): $040F = $40, $0782 and the surrender, taunt and gravity-warning flags ($0832-$0834) cleared; slots 19-1 emptied ($1A8A), the models forgotten ($1D4A), and the 21-byte type list at $C6 set to $FF. Into the list go the types of the sector's kind (sector_object_lists, by the kind $2F75 gives for $071E/$071F) from $DA down; up to three of the map's entries in the sector ($3030) at $C9-$C7, skipping entry 0 (the ship) and types with bit 7 set and counting types of $64 and up in $0782 instead (a base, bit 7 at $5550, also notes its file, $16B2); and the encounter's types $0D06, $0D05 and $0D04 at $CA-$CC. Each listed type is then placed at random ($167F) and made ($1949); with ships near ($0D07), one of the encounter's first type ($0D04) gets the player, slot 0, as its target ($0445). Ends with the player's speed at 5 ($0415) and velocity ($0545-$054D) cleared","t":"code","b":[169,64],"m":"lda","x":[9797,29270],"o":"#$40"},{"a":5538,"t":"code","b":[141,15,4],"m":"sta","oa":1039,"o":"slot_cooldown"},{"a":5541,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5543,"t":"code","b":[141,130,7],"m":"sta","oa":1922,"o":"special_entries"},{"a":5546,"t":"code","b":[141,50,8],"m":"sta","oa":2098,"o":"surrendered"},{"a":5549,"t":"code","b":[141,51,8],"m":"sta","oa":2099,"o":"taunted"},{"a":5552,"t":"code","b":[141,52,8],"m":"sta","oa":2100,"o":"gravity_warned"},{"a":5555,"t":"code","b":[160,20],"m":"ldy","o":"#$14"},{"a":5557,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":5559,"l":"b_15B7","t":"code","b":[153,198,0],"m":"sta","oa":198,"x":[5563],"o":"slot_a,y"},{"a":5562,"t":"code","b":[136],"m":"dey"},{"a":5563,"t":"code","b":[16,250],"m":"bpl","oa":5559,"o":"b_15B7"},{"a":5565,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":5567,"l":"b_15BF","t":"code","b":[32,138,26],"m":"jsr","oa":6794,"x":[5571],"o":"free_slot"},{"a":5570,"t":"code","b":[136],"m":"dey"},{"a":5571,"t":"code","b":[208,250],"m":"bne","oa":5567,"o":"b_15BF"},{"a":5573,"t":"code","b":[32,74,29],"m":"jsr","oa":7498,"o":"reset_models"},{"a":5576,"t":"code","b":[174,30,7],"m":"ldx","oa":1822,"o":"cur_sector_x"},{"a":5579,"t":"code","b":[172,31,7],"m":"ldy","oa":1823,"o":"cur_sector_y"},{"a":5582,"t":"code","b":[32,117,47],"m":"jsr","oa":12149,"o":"sector_kind"},{"a":5585,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":5586,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":5587,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":5588,"t":"code","b":[168],"m":"tay"},{"a":5589,"t":"code","b":[185,201,22],"m":"lda","oa":5833,"o":"sector_object_lists,y"},{"a":5592,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":5594,"t":"code","b":[185,202,22],"m":"lda","oa":5834,"o":"f_16CA,y"},{"a":5597,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":5599,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":5601,"t":"code","b":[162,20],"m":"ldx","o":"#$14"},{"a":5603,"l":"b_15E3","t":"code","b":[200],"m":"iny","x":[5620]},{"a":5604,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":5606,"t":"code","b":[133,188],"m":"sta","oa":188,"o":"model_groupsizes"},{"a":5608,"t":"code","b":[240,12],"m":"beq","oa":5622,"o":"b_15F6"},{"a":5610,"t":"code","b":[200],"m":"iny"},{"a":5611,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":5613,"l":"b_15ED","t":"code","b":[149,198],"m":"sta","oa":198,"x":[5618],"o":"slot_a,x"},{"a":5615,"t":"code","b":[202],"m":"dex"},{"a":5616,"t":"code","b":[198,188],"m":"dec","oa":188,"o":"model_groupsizes"},{"a":5618,"t":"code","b":[208,249],"m":"bne","oa":5613,"o":"b_15ED"},{"a":5620,"t":"code","b":[240,237],"m":"beq","oa":5603,"o":"b_15E3"},{"a":5622,"l":"b_15F6","t":"code","b":[174,30,7],"m":"ldx","oa":1822,"x":[5608],"o":"cur_sector_x"},{"a":5625,"t":"code","b":[172,31,7],"m":"ldy","oa":1823,"o":"cur_sector_y"},{"a":5628,"t":"code","b":[32,48,48],"m":"jsr","oa":12336,"o":"sector_entries"},{"a":5631,"t":"code","b":[136],"m":"dey"},{"a":5632,"t":"code","b":[48,42],"m":"bmi","oa":5676,"o":"b_162C"},{"a":5634,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":5636,"l":"b_1604","t":"code","b":[177,116],"m":"lda","oa":116,"x":[5674],"o":"(src1_ptr),y"},{"a":5638,"t":"code","b":[240,33],"m":"beq","oa":5673,"o":"b_1629"},{"a":5640,"t":"code","b":[132,189],"m":"sty","oa":189,"o":"zpa_BD"},{"a":5642,"t":"code","b":[168],"m":"tay"},{"a":5643,"t":"code","b":[185,144,85],"m":"lda","oa":21904,"o":"$5590,y"},{"a":5646,"t":"code","b":[48,23],"m":"bmi","oa":5671,"o":"b_1627"},{"a":5648,"t":"code","b":[201,100],"m":"cmp","o":"#$64"},{"a":5650,"t":"code","b":[144,6],"m":"bcc","oa":5658,"o":"b_161A"},{"a":5652,"t":"code","b":[32,123,22],"m":"jsr","oa":5755,"o":"count_special_entry"},{"a":5655,"t":"code","b":[76,39,22],"m":"jmp","oa":5671,"o":"b_1627"},{"a":5658,"l":"b_161A","t":"code","b":[149,199],"m":"sta","oa":199,"x":[5650],"o":"slot_b,x"},{"a":5660,"t":"code","b":[185,80,85],"m":"lda","oa":21840,"o":"$5550,y"},{"a":5663,"t":"code","b":[16,3],"m":"bpl","oa":5668,"o":"b_1624"},{"a":5665,"t":"code","b":[32,178,22],"m":"jsr","oa":5810,"o":"base_file_from_map"},{"a":5668,"l":"b_1624","t":"code","b":[202],"m":"dex","x":[5663]},{"a":5669,"t":"code","b":[48,5],"m":"bmi","oa":5676,"o":"b_162C"},{"a":5671,"l":"b_1627","t":"code","b":[164,189],"m":"ldy","oa":189,"x":[5646,5655],"o":"zpa_BD"},{"a":5673,"l":"b_1629","t":"code","b":[136],"m":"dey","x":[5638]},{"a":5674,"t":"code","b":[16,216],"m":"bpl","oa":5636,"o":"b_1604"},{"a":5676,"l":"b_162C","t":"code","b":[173,6,13],"m":"lda","oa":3334,"x":[5632,5669],"o":"a_0D06"},{"a":5679,"t":"code","b":[133,202],"m":"sta","oa":202,"o":"zpa_CA"},{"a":5681,"t":"code","b":[173,5,13],"m":"lda","oa":3333,"o":"a_0D05"},{"a":5684,"t":"code","b":[133,203],"m":"sta","oa":203,"o":"zpa_CB"},{"a":5686,"t":"code","b":[173,4,13],"m":"lda","oa":3332,"o":"encounter_types"},{"a":5689,"t":"code","b":[133,204],"m":"sta","oa":204,"o":"zpa_CC"},{"a":5691,"t":"code","b":[160,20],"m":"ldy","o":"#$14"},{"a":5693,"t":"code","b":[140,34,23],"m":"sty","oa":5922,"o":"slot_counter"},{"a":5696,"l":"b_1640","t":"code","b":[182,198],"m":"ldx","oa":198,"x":[5737],"o":"slot_a,y"},{"a":5698,"t":"code","b":[48,31],"m":"bmi","oa":5731,"o":"b_1663"},{"a":5700,"t":"code","b":[32,127,22],"m":"jsr","oa":5759,"o":"place_object"},{"a":5703,"t":"code","b":[172,34,23],"m":"ldy","oa":5922,"o":"slot_counter"},{"a":5706,"t":"code","b":[182,198],"m":"ldx","oa":198,"o":"slot_a,y"},{"a":5708,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":5711,"t":"code","b":[48,18],"m":"bmi","oa":5731,"o":"b_1663"},{"a":5713,"t":"code","b":[173,7,13],"m":"lda","oa":3335,"o":"ships_near"},{"a":5716,"t":"code","b":[240,13],"m":"beq","oa":5731,"o":"b_1663"},{"a":5718,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":5721,"t":"code","b":[205,4,13],"m":"cmp","oa":3332,"o":"encounter_types"},{"a":5724,"t":"code","b":[208,5],"m":"bne","oa":5731,"o":"b_1663"},{"a":5726,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5728,"t":"code","b":[153,69,4],"m":"sta","oa":1093,"o":"slot_target,y"},{"a":5731,"l":"b_1663","t":"code","b":[206,34,23],"m":"dec","oa":5922,"x":[5698,5711,5716,5724],"o":"slot_counter"},{"a":5734,"t":"code","b":[172,34,23],"m":"ldy","oa":5922,"o":"slot_counter"},{"a":5737,"t":"code","b":[16,213],"m":"bpl","oa":5696,"o":"b_1640"},{"a":5739,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":5741,"t":"code","b":[141,21,4],"m":"sta","oa":1045,"o":"slot_speed"},{"a":5744,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":5746,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5748,"l":"b_1674","t":"code","b":[153,69,5],"m":"sta","oa":1349,"x":[5752],"o":"slot_velocity,y"},{"a":5751,"t":"code","b":[136],"m":"dey"},{"a":5752,"t":"code","b":[16,250],"m":"bpl","oa":5748,"o":"b_1674"},{"a":5754,"t":"code","b":[96],"m":"rts"},{"a":5755,"l":"count_special_entry","c":"Counts a system map entry of type $64 or more in $0782","t":"code","b":[238,130,7],"m":"inc","oa":1922,"x":[5652],"o":"special_entries"},{"a":5758,"t":"code","b":[96],"m":"rts"},{"a":5759,"l":"place_object","c":"Sets up position words for a new object: takes the object type's word at $0A1D, multiplied by 8, as the range in $60/$61, and calls $1E73 with the source block at $065D and destination $006B","t":"code","b":[138],"m":"txa","x":[5700]},{"a":5760,"t":"code","b":[10],"m":"asl","o":"a"},{"a":5761,"t":"code","b":[170],"m":"tax"},{"a":5762,"t":"code","b":[189,29,10],"m":"lda","oa":2589,"o":"type_radius,x"},{"a":5765,"t":"code","b":[10],"m":"asl","o":"a"},{"a":5766,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":5768,"t":"code","b":[189,30,10],"m":"lda","oa":2590,"o":"f_0A1E,x"},{"a":5771,"t":"code","b":[42],"m":"rol","o":"a"},{"a":5772,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":5774,"t":"code","b":[6,96],"m":"asl","oa":96,"o":"acc_mid"},{"a":5776,"t":"code","b":[38,97],"m":"rol","oa":97,"o":"acc_hi"},{"a":5778,"t":"code","b":[6,96],"m":"asl","oa":96,"o":"acc_mid"},{"a":5780,"t":"code","b":[38,97],"m":"rol","oa":97,"o":"acc_hi"},{"a":5782,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":5784,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":5786,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":5788,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":5790,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":5792,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":5794,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":5796,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":5798,"t":"code","b":[32,115,30],"m":"jsr","oa":7795,"o":"random_offset"},{"a":5801,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":5803,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":5805,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":5807,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":5809,"t":"code","b":[96],"m":"rts"},{"a":5810,"l":"base_file_from_map","c":"For a map entry with bit 7 set at $5550, a base: copies its map file's name, three characters such as \"L00\", from the system map's table at $5620 plus its $55B0 offset into $0778-$077A, where docking finds it","t":"code","b":[185,176,85],"m":"lda","oa":21936,"x":[5665],"o":"$55B0,y"},{"a":5813,"t":"code","b":[168],"m":"tay"},{"a":5814,"t":"code","b":[185,32,86],"m":"lda","oa":22048,"o":"$5620,y"},{"a":5817,"t":"code","b":[141,120,7],"m":"sta","oa":1912,"o":"base_file"},{"a":5820,"t":"code","b":[185,33,86],"m":"lda","oa":22049,"o":"$5621,y"},{"a":5823,"t":"code","b":[141,121,7],"m":"sta","oa":1913,"o":"base_file_system"},{"a":5826,"t":"code","b":[185,34,86],"m":"lda","oa":22050,"o":"$5622,y"},{"a":5829,"t":"code","b":[141,122,7],"m":"sta","oa":1914,"o":"base_file_number"},{"a":5832,"t":"code","b":[96],"m":"rts"},{"a":5833,"l":"sector_object_lists","c":"Ten pointers to zero-terminated lists of (count, object type) pairs that enter_sector writes into the slots, chosen by the sector's kind","t":"byte","b":[221],"x":[5589]},{"a":5834,"l":"f_16CA","c":"The high bytes of sector_object_lists' pointers, read in pairs with $16C9","t":"byte","b":[22,224,22,225,22,230,22,233],"x":[5594]},{"a":5842,"t":"byte","b":[22,234,22,237,22,242,22,247]},{"a":5850,"t":"byte","b":[22,254,22]},{"a":5853,"c":"The lists themselves, as (count, type) pairs ending with a zero count","t":"byte","b":[6,22,0,0,3,26,5,25]},{"a":5861,"t":"byte","b":[0,8,27,0,0,8,30,0]},{"a":5869,"t":"byte","b":[1,29,5,22,0,1,28,5]},{"a":5877,"t":"byte","b":[22,0,1,28,1,29,4,22]},{"a":5885,"t":"byte","b":[0,1,21,4,22,0]},{"a":5891,"l":"sector_kind_flags","c":"One byte per sector kind (0-9, the kind times 16 from $2F75): bit 7 doubles the HELM travel time through it","t":"byte","b":[0,0,128,128,0,128,128,128],"x":[10720]},{"a":5899,"t":"byte","b":[128,128]},{"a":5901,"l":"sector_kind_texts","c":"Pointers per sector kind to the text QUERY gives for it (texts in the disk text at $CFxx; $1721 is an empty string)","t":"byte","b":[33],"x":[10984]},{"a":5902,"l":"f_170E","c":"The high bytes of sector_kind_texts' pointers","t":"byte","b":[23,33,23,24,207,23,207,33],"x":[10989]},{"a":5910,"t":"byte","b":[23,22,207,21,207,20,207,19]},{"a":5918,"t":"byte","b":[207,18,207,0]},{"a":5922,"l":"slot_counter","c":"enter_sector's loop counter over the 21 slots","t":"byte","b":[255],"x":[5693,5703,5731,5734]},{"a":5923,"l":"start_game_objects","c":"From INIT: puts object type 0, the player's ship, in slot 0 ($196F with X=Y=0, $74/$75 at $0DC3), sets $0433 (slot 0) to 4, then falls into copy_ship_stats","t":"code","b":[169,195],"m":"lda","o":"#$C3"},{"a":5925,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":5927,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":5929,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":5931,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":5933,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":5935,"t":"code","b":[32,111,25],"m":"jsr","oa":6511,"o":"create_in_slot"},{"a":5938,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":5940,"t":"code","b":[141,51,4],"m":"sta","oa":1075,"o":"slot_faction"},{"a":5943,"l":"copy_ship_stats","c":"Copies six bytes of the player's ship ($0735-$073A) into the type-0 entries of the per-type tables ($0AA9, $0AAA, $0C2B, $0C45, $0C52, $0C6C), and $072A plus 2 into $0C79, so the player's ship is described like any other type","t":"code","b":[173,53,7],"m":"lda","oa":1845,"x":[6974],"o":"ship_stats"},{"a":5946,"t":"code","b":[141,169,10],"m":"sta","oa":2729,"o":"type_armour"},{"a":5949,"t":"code","b":[173,54,7],"m":"lda","oa":1846,"o":"a_0736"},{"a":5952,"t":"code","b":[141,170,10],"m":"sta","oa":2730,"o":"type_armour_hi"},{"a":5955,"t":"code","b":[173,55,7],"m":"lda","oa":1847,"o":"a_0737"},{"a":5958,"t":"code","b":[141,43,12],"m":"sta","oa":3115,"o":"type_ecm"},{"a":5961,"t":"code","b":[173,56,7],"m":"lda","oa":1848,"o":"a_0738"},{"a":5964,"t":"code","b":[141,69,12],"m":"sta","oa":3141,"o":"type_systems"},{"a":5967,"t":"code","b":[173,57,7],"m":"lda","oa":1849,"o":"a_0739"},{"a":5970,"t":"code","b":[141,82,12],"m":"sta","oa":3154,"o":"type_beam"},{"a":5973,"t":"code","b":[173,58,7],"m":"lda","oa":1850,"o":"a_073A"},{"a":5976,"t":"code","b":[141,108,12],"m":"sta","oa":3180,"o":"type_shields"},{"a":5979,"t":"code","b":[173,42,7],"m":"lda","oa":1834,"o":"rank"},{"a":5982,"t":"code","b":[24],"m":"clc"},{"a":5983,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":5985,"t":"code","b":[141,121,12],"m":"sta","oa":3193,"o":"type_rank"},{"a":5988,"t":"code","b":[96],"m":"rts"},{"a":5989,"l":"load_file","c":"Loads a file through the KERNAL: X/Y point to its zero-terminated name, $80/$81 give the destination. Swaps the KERNAL's zero page in and banks the KERNAL in ($17C6), LOAD with secondary address 0 (to the destination), then puts everything back ($17F8); a failed load shows the disk prompt and tries again until it succeeds","t":"code","b":[165,128],"m":"lda","oa":128,"x":[5342,5365,5380,5395,5410,5445,5499,7167,7355,9917,11919,42169],"o":"tmp80"},{"a":5991,"t":"code","b":[141,49,24],"m":"sta","oa":6193,"o":"io_addr"},{"a":5994,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":5996,"t":"code","b":[141,50,24],"m":"sta","oa":6194,"o":"a_1832"},{"a":5999,"l":"b_176F","t":"code","b":[32,198,23],"m":"jsr","oa":6086,"x":[6016],"o":"open_for_io"},{"a":6002,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6004,"t":"code","b":[174,49,24],"m":"ldx","oa":6193,"o":"io_addr"},{"a":6007,"t":"code","b":[172,50,24],"m":"ldy","oa":6194,"o":"a_1832"},{"a":6010,"t":"code","b":[32,213,255],"m":"jsr","oa":65493,"o":"KERNAL_LOAD"},{"a":6013,"t":"code","b":[32,248,23],"m":"jsr","oa":6136,"o":"close_after_io"},{"a":6016,"t":"code","b":[176,237],"m":"bcs","oa":5999,"o":"b_176F"},{"a":6018,"t":"code","b":[96],"m":"rts"},{"a":6019,"l":"save_file","c":"Saves memory through the KERNAL: X/Y point to the name, $80/$81 the start and $82/$83 the end (exclusive). Same set-up and retry as load_file","t":"code","b":[165,128],"m":"lda","oa":128,"x":[5522],"o":"tmp80"},{"a":6021,"t":"code","b":[141,49,24],"m":"sta","oa":6193,"o":"io_addr"},{"a":6024,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":6026,"t":"code","b":[141,50,24],"m":"sta","oa":6194,"o":"a_1832"},{"a":6029,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":6031,"t":"code","b":[141,51,24],"m":"sta","oa":6195,"o":"a_1833"},{"a":6034,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":6036,"t":"code","b":[141,52,24],"m":"sta","oa":6196,"o":"a_1834"},{"a":6039,"l":"b_1797","t":"code","b":[32,198,23],"m":"jsr","oa":6086,"x":[6066],"o":"open_for_io"},{"a":6042,"t":"code","b":[173,49,24],"m":"lda","oa":6193,"o":"io_addr"},{"a":6045,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":6047,"t":"code","b":[173,50,24],"m":"lda","oa":6194,"o":"a_1832"},{"a":6050,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":6052,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":6054,"t":"code","b":[174,51,24],"m":"ldx","oa":6195,"o":"a_1833"},{"a":6057,"t":"code","b":[172,52,24],"m":"ldy","oa":6196,"o":"a_1834"},{"a":6060,"t":"code","b":[32,216,255],"m":"jsr","oa":65496,"o":"KERNAL_SAVE"},{"a":6063,"t":"code","b":[32,248,23],"m":"jsr","oa":6136,"o":"close_after_io"},{"a":6066,"t":"code","b":[176,227],"m":"bcs","oa":6039,"o":"b_1797"},{"a":6068,"t":"code","b":[96],"m":"rts"},{"a":6069,"l":"swap_kernal_zp","c":"Swaps $90-$C4 with the copy at $0190-$01C4: the KERNAL's own zero page goes in for a load, the game's comes back after. Called in pairs","t":"code","b":[162,52],"m":"ldx","x":[5327,5448,6112,6140,6297,6397],"o":"#$34"},{"a":6071,"l":"b_17B7","t":"code","b":[189,0,1],"m":"lda","oa":256,"x":[6083],"o":"f_0100,x"},{"a":6074,"t":"code","b":[180,144],"m":"ldy","oa":144,"o":"tmp90,x"},{"a":6076,"t":"code","b":[149,144],"m":"sta","oa":144,"o":"tmp90,x"},{"a":6078,"t":"code","b":[152],"m":"tya"},{"a":6079,"t":"code","b":[157,0,1],"m":"sta","oa":256,"o":"f_0100,x"},{"a":6082,"t":"code","b":[202],"m":"dex"},{"a":6083,"t":"code","b":[16,242],"m":"bpl","oa":6071,"o":"b_17B7"},{"a":6085,"t":"code","b":[96],"m":"rts"},{"a":6086,"l":"open_for_io","c":"Common start of a load or save: stops the engine hum ($1D = 0), keeps the name pointer, measures the name, swaps the KERNAL's zero page in, banks the KERNAL in, and calls SETLFS 1,8,0 and SETNAM","t":"code","b":[169,0],"m":"lda","x":[5999,6039],"o":"#$00"},{"a":6088,"t":"code","b":[133,29],"m":"sta","oa":29,"o":"voice_mask"},{"a":6090,"t":"code","b":[142,242,23],"m":"stx","oa":6130,"o":"a_17F2"},{"a":6093,"t":"code","b":[140,244,23],"m":"sty","oa":6132,"o":"a_17F4"},{"a":6096,"t":"code","b":[134,128],"m":"stx","oa":128,"o":"tmp80"},{"a":6098,"t":"code","b":[132,129],"m":"sty","oa":129,"o":"tmp81"},{"a":6100,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6102,"l":"b_17D6","t":"code","b":[177,128],"m":"lda","oa":128,"x":[6107],"o":"(tmp80),y"},{"a":6104,"t":"code","b":[240,3],"m":"beq","oa":6109,"o":"b_17DD"},{"a":6106,"t":"code","b":[200],"m":"iny"},{"a":6107,"t":"code","b":[208,249],"m":"bne","oa":6102,"o":"b_17D6"},{"a":6109,"l":"b_17DD","t":"code","b":[140,240,23],"m":"sty","oa":6128,"x":[6104],"o":"a_17F0"},{"a":6112,"t":"code","b":[32,181,23],"m":"jsr","oa":6069,"o":"swap_kernal_zp"},{"a":6115,"t":"code","b":[32,149,14],"m":"jsr","oa":3733,"o":"bank_kernal_in"},{"a":6118,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6120,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":6122,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":6124,"t":"code","b":[32,186,255],"m":"jsr","oa":65466,"o":"KERNAL_SETLFS"},{"a":6127,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":6128,"t":"note","l":"a_17F0","c":"The operand of LDA # before SETNAM: the name's length, written by open_for_io","note":"inside the item at $17EF","x":[6109]},{"a":6129,"t":"code","b":[162,253],"m":"ldx","o":"#$FD"},{"a":6130,"t":"note","l":"a_17F2","c":"The operand of LDX # before SETNAM: the name's low byte, written by open_for_io","note":"inside the item at $17F1","x":[6090,6154]},{"a":6131,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":6132,"t":"note","l":"a_17F4","c":"The operand of LDY # before SETNAM in open_for_io: the name's high byte, written by open_for_io","note":"inside the item at $17F3","x":[6093,6157]},{"a":6133,"t":"code","b":[76,189,255],"m":"jmp","oa":65469,"o":"KERNAL_SETNAM"},{"a":6136,"l":"close_after_io","c":"Common end of a load or save: banks everything out, swaps the game's zero page back, turns the hum mask back on ($1D = $FF); if the KERNAL returned an error (carry set) it shows the disk prompt ($1812). Returns with the KERNAL's carry and X/Y as they were","t":"code","b":[8],"m":"php","x":[6013,6063]},{"a":6137,"t":"code","b":[32,133,14],"m":"jsr","oa":3717,"o":"bank_all_ram"},{"a":6140,"t":"code","b":[32,181,23],"m":"jsr","oa":6069,"o":"swap_kernal_zp"},{"a":6143,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6145,"t":"code","b":[133,29],"m":"sta","oa":29,"o":"voice_mask"},{"a":6147,"t":"code","b":[40],"m":"plp"},{"a":6148,"t":"code","b":[8],"m":"php"},{"a":6149,"t":"code","b":[144,3],"m":"bcc","oa":6154,"o":"b_180A"},{"a":6151,"t":"code","b":[32,18,24],"m":"jsr","oa":6162,"o":"disk_prompt"},{"a":6154,"l":"b_180A","t":"code","b":[174,242,23],"m":"ldx","oa":6130,"x":[6149],"o":"a_17F2"},{"a":6157,"t":"code","b":[172,244,23],"m":"ldy","oa":6132,"o":"a_17F4"},{"a":6160,"t":"code","b":[40],"m":"plp"},{"a":6161,"t":"code","b":[96],"m":"rts"},{"a":6162,"l":"disk_prompt","c":"After a failed load or save: plays effect 4, prints \"Insert \" and the disk named by $1857/$1858 (\"BOOT disk...\" or \"DATA disk...\"), waits for a key and clears the line","t":"code","b":[169,4],"m":"lda","x":[6151,6403],"o":"#$04"},{"a":6164,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":6167,"t":"code","b":[162,53],"m":"ldx","o":"#$35"},{"a":6169,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":6171,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":6174,"t":"code","b":[174,87,24],"m":"ldx","oa":6231,"o":"disk_name_ptr"},{"a":6177,"t":"code","b":[172,88,24],"m":"ldy","oa":6232,"o":"a_1858"},{"a":6180,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":6183,"t":"code","b":[32,49,164],"m":"jsr","oa":42033,"o":"wait_key"},{"a":6186,"t":"code","b":[162,86],"m":"ldx","o":"#$56"},{"a":6188,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":6190,"t":"code","b":[76,220,154],"m":"jmp","oa":39644,"o":"print_message"},{"a":6193,"l":"io_addr","c":"The load address, then the save end address, kept for the retry","t":"byte","b":[0],"x":[5991,6004,6021,6042]},{"a":6194,"l":"a_1832","c":"io_addr's high byte","t":"byte","b":[64],"x":[5996,6007,6026,6047]},{"a":6195,"l":"a_1833","c":"The save's end address, low then high, kept by save_file for the retry","t":"byte","b":[0],"x":[6031,6054]},{"a":6196,"l":"a_1834","c":"The save end address's high byte","t":"byte","b":[0],"x":[6036,6057]},{"a":6197,"l":"str_insert","c":"The disk prompt's strings: \"Insert \", \"BOOT disk...\", \"DATA disk...\"","t":"byte","b":[73,110,115,101,114,116,32,0]},{"a":6205,"t":"byte","b":[66,79,79,84,32,100,105,115]},{"a":6213,"t":"byte","b":[107,46,46,46,0,68,65,84]},{"a":6221,"t":"byte","b":[65,32,100,105,115,107,46,46]},{"a":6229,"t":"byte","b":[46,0]},{"a":6231,"l":"disk_name_ptr","c":"Points to the disk name disk_prompt shows: $183D (BOOT) or $184A (DATA)","t":"byte","b":[74],"x":[6174,6237,6248]},{"a":6232,"l":"a_1858","c":"disk_name_ptr's high byte","t":"byte","b":[24],"x":[6177,6240,6251]},{"a":6233,"l":"prompt_boot_disk","c":"Sets the disk prompt to \"BOOT disk...\"","t":"code","b":[162,61],"m":"ldx","x":[5430,5484],"o":"#$3D"},{"a":6235,"t":"code","b":[160,24],"m":"ldy","o":"#$18"},{"a":6237,"t":"code","b":[142,87,24],"m":"stx","oa":6231,"o":"disk_name_ptr"},{"a":6240,"t":"code","b":[140,88,24],"m":"sty","oa":6232,"o":"a_1858"},{"a":6243,"t":"code","b":[96],"m":"rts"},{"a":6244,"l":"prompt_data_disk","c":"Sets the disk prompt to \"DATA disk...\"","t":"code","b":[162,74],"m":"ldx","x":[5525],"o":"#$4A"},{"a":6246,"t":"code","b":[160,24],"m":"ldy","o":"#$18"},{"a":6248,"t":"code","b":[142,87,24],"m":"stx","oa":6231,"o":"disk_name_ptr"},{"a":6251,"t":"code","b":[140,88,24],"m":"sty","oa":6232,"o":"a_1858"},{"a":6254,"t":"code","b":[96],"m":"rts"},{"a":6255,"l":"read_block","c":"Reads one 256-byte block of the disk, by number, into ($80): X is the block number's low byte and Y its high byte. Converts it to a track and sector with the sectors-per-track table ($190A), writes them into the command \"U1 5 0 tt ss\", opens \"#\" as channel 5 and the command channel 15 with that command, and reads 256 bytes; on an error it shows the disk prompt and tries again","t":"code","b":[138],"m":"txa","x":[40127,40139]},{"a":6256,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":6258,"l":"b_1872","t":"code","b":[192,1],"m":"cpy","x":[6271,6274],"o":"#$01"},{"a":6260,"t":"code","b":[176,5],"m":"bcs","oa":6267,"o":"b_187B"},{"a":6262,"t":"code","b":[221,9,25],"m":"cmp","oa":6409,"o":"f_1909,x"},{"a":6265,"t":"code","b":[144,9],"m":"bcc","oa":6276,"o":"b_1884"},{"a":6267,"l":"b_187B","t":"code","b":[253,9,25],"m":"sbc","oa":6409,"x":[6260],"o":"f_1909,x"},{"a":6270,"t":"code","b":[232],"m":"inx"},{"a":6271,"t":"code","b":[176,241],"m":"bcs","oa":6258,"o":"b_1872"},{"a":6273,"t":"code","b":[136],"m":"dey"},{"a":6274,"t":"code","b":[144,238],"m":"bcc","oa":6258,"o":"b_1872"},{"a":6276,"l":"b_1884","t":"code","b":[168],"m":"tay","x":[6265]},{"a":6277,"t":"code","b":[138],"m":"txa"},{"a":6278,"t":"code","b":[32,59,25],"m":"jsr","oa":6459,"o":"to_decimal"},{"a":6281,"t":"code","b":[142,53,25],"m":"stx","oa":6453,"o":"a_1935"},{"a":6284,"t":"code","b":[141,54,25],"m":"sta","oa":6454,"o":"a_1936"},{"a":6287,"t":"code","b":[152],"m":"tya"},{"a":6288,"t":"code","b":[32,59,25],"m":"jsr","oa":6459,"o":"to_decimal"},{"a":6291,"t":"code","b":[142,56,25],"m":"stx","oa":6456,"o":"a_1938"},{"a":6294,"t":"code","b":[141,57,25],"m":"sta","oa":6457,"o":"a_1939"},{"a":6297,"l":"j_1899","t":"code","b":[32,181,23],"m":"jsr","oa":6069,"x":[6406],"o":"swap_kernal_zp"},{"a":6300,"t":"code","b":[32,149,14],"m":"jsr","oa":3733,"o":"bank_kernal_in"},{"a":6303,"t":"code","b":[162,45],"m":"ldx","o":"#$2D"},{"a":6305,"t":"code","b":[160,25],"m":"ldy","o":"#$19"},{"a":6307,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6309,"t":"code","b":[32,189,255],"m":"jsr","oa":65469,"o":"KERNAL_SETNAM"},{"a":6312,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":6314,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":6316,"t":"code","b":[168],"m":"tay"},{"a":6317,"t":"code","b":[32,186,255],"m":"jsr","oa":65466,"o":"KERNAL_SETLFS"},{"a":6320,"t":"code","b":[32,192,255],"m":"jsr","oa":65472,"o":"KERNAL_OPEN"},{"a":6323,"t":"code","b":[176,55],"m":"bcs","oa":6380,"o":"b_18EC"},{"a":6325,"t":"code","b":[162,46],"m":"ldx","o":"#$2E"},{"a":6327,"t":"code","b":[160,25],"m":"ldy","o":"#$19"},{"a":6329,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":6331,"t":"code","b":[32,189,255],"m":"jsr","oa":65469,"o":"KERNAL_SETNAM"},{"a":6334,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":6336,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":6338,"t":"code","b":[168],"m":"tay"},{"a":6339,"t":"code","b":[32,186,255],"m":"jsr","oa":65466,"o":"KERNAL_SETLFS"},{"a":6342,"t":"code","b":[32,192,255],"m":"jsr","oa":65472,"o":"KERNAL_OPEN"},{"a":6345,"t":"code","b":[176,33],"m":"bcs","oa":6380,"o":"b_18EC"},{"a":6347,"t":"code","b":[32,183,255],"m":"jsr","oa":65463,"o":"KERNAL_READST"},{"a":6350,"t":"code","b":[56],"m":"sec"},{"a":6351,"t":"code","b":[41,195],"m":"and","o":"#$C3"},{"a":6353,"t":"code","b":[208,25],"m":"bne","oa":6380,"o":"b_18EC"},{"a":6355,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":6357,"t":"code","b":[32,198,255],"m":"jsr","oa":65478,"o":"KERNAL_CHKIN"},{"a":6360,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6362,"t":"code","b":[141,58,25],"m":"sta","oa":6458,"o":"block_byte_count"},{"a":6365,"l":"b_18DD","t":"code","b":[32,207,255],"m":"jsr","oa":65487,"x":[6378],"o":"KERNAL_CHRIN"},{"a":6368,"t":"code","b":[176,10],"m":"bcs","oa":6380,"o":"b_18EC"},{"a":6370,"t":"code","b":[172,58,25],"m":"ldy","oa":6458,"o":"block_byte_count"},{"a":6373,"t":"code","b":[145,128],"m":"sta","oa":128,"o":"(tmp80),y"},{"a":6375,"t":"code","b":[238,58,25],"m":"inc","oa":6458,"o":"block_byte_count"},{"a":6378,"t":"code","b":[208,241],"m":"bne","oa":6365,"o":"b_18DD"},{"a":6380,"l":"b_18EC","t":"code","b":[8],"m":"php","x":[6323,6345,6353,6368]},{"a":6381,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":6383,"t":"code","b":[32,195,255],"m":"jsr","oa":65475,"o":"KERNAL_CLOSE"},{"a":6386,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":6388,"t":"code","b":[32,195,255],"m":"jsr","oa":65475,"o":"KERNAL_CLOSE"},{"a":6391,"t":"code","b":[32,231,255],"m":"jsr","oa":65511,"o":"KERNAL_CLALL"},{"a":6394,"t":"code","b":[32,133,14],"m":"jsr","oa":3717,"o":"bank_all_ram"},{"a":6397,"t":"code","b":[32,181,23],"m":"jsr","oa":6069,"o":"swap_kernal_zp"},{"a":6400,"t":"code","b":[40],"m":"plp"},{"a":6401,"t":"code","b":[144,6],"m":"bcc","oa":6409,"o":"f_1909"},{"a":6403,"t":"code","b":[32,18,24],"m":"jsr","oa":6162,"o":"disk_prompt"},{"a":6406,"t":"code","b":[76,153,24],"m":"jmp","oa":6297,"o":"j_1899"},{"a":6409,"l":"f_1909","c":"The RTS at the end of read_block, and the byte before the sectors-per-track table, which read_block indexes from track 1","t":"code","b":[96],"m":"rts","x":[6262,6267,6401]},{"a":6410,"l":"sectors_per_track","c":"Sectors on each track of a 1541 disk: 21 on tracks 1-17, 19 on 18-24, 18 on 25-30, 17 on 31-35","t":"byte","b":[21,21,21,21,21,21,21,21]},{"a":6418,"t":"byte","b":[21,21,21,21,21,21,21,21]},{"a":6426,"t":"byte","b":[21,19,19,19,19,19,19,19]},{"a":6434,"t":"byte","b":[18,18,18,18,18,18,17,17]},{"a":6442,"t":"byte","b":[17,17,17]},{"a":6445,"l":"str_block_cmd","c":"The channel name \"#\" and the block-read command \"U1 5 0 tt ss\" that read_block fills in","t":"byte","b":[35,85,49,32,53,32,48,32]},{"a":6453,"l":"a_1935","c":"The track number's tens digit in read_block's command string","t":"byte","b":[50],"x":[6281]},{"a":6454,"l":"a_1936","c":"The track's units digit in read_block's command (the tens at $1935)","t":"byte","b":[49,32],"x":[6284]},{"a":6456,"l":"a_1938","c":"The sector number's two digits in read_block's command string","t":"byte","b":[49],"x":[6291]},{"a":6457,"l":"a_1939","c":"The sector number's units digit in read_block's command","t":"byte","b":[51],"x":[6294]},{"a":6458,"l":"block_byte_count","c":"read_block's count of bytes read","t":"byte","b":[0],"x":[6362,6370,6375]},{"a":6459,"l":"to_decimal","c":"Converts A (0-99) to two ASCII digits: tens in X, units in A","t":"code","b":[162,48],"m":"ldx","x":[6278,6288],"o":"#$30"},{"a":6461,"l":"b_193D","t":"code","b":[201,10],"m":"cmp","x":[6468],"o":"#$0A"},{"a":6463,"t":"code","b":[144,5],"m":"bcc","oa":6470,"o":"b_1946"},{"a":6465,"t":"code","b":[233,10],"m":"sbc","o":"#$0A"},{"a":6467,"t":"code","b":[232],"m":"inx"},{"a":6468,"t":"code","b":[176,247],"m":"bcs","oa":6461,"o":"b_193D"},{"a":6470,"l":"b_1946","t":"code","b":[105,48],"m":"adc","x":[6463],"o":"#$30"},{"a":6472,"t":"code","b":[96],"m":"rts"},{"a":6473,"l":"create_object","c":"Creates an object of type X in a free slot and returns the slot in Y ($FF if none was free). Types below $0D (ships and missiles) take a ship slot 5-1, types $0D-$10 slot 6 alone, types $11 and up a slot 19-7. Falls into fill_slot","t":"code","b":[134,148],"m":"stx","oa":148,"x":[4832,5708,7141,7912,9488,27584,27830,27891,28271,29666,29789],"o":"tmp94"},{"a":6475,"t":"code","b":[224,17],"m":"cpx","o":"#$11"},{"a":6477,"t":"code","b":[144,6],"m":"bcc","oa":6485,"o":"b_1955"},{"a":6479,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":6481,"t":"code","b":[162,13],"m":"ldx","o":"#$0D"},{"a":6483,"t":"code","b":[16,14],"m":"bpl","oa":6499,"o":"b_1963"},{"a":6485,"l":"b_1955","t":"code","b":[224,13],"m":"cpx","x":[6477],"o":"#$0D"},{"a":6487,"t":"code","b":[144,6],"m":"bcc","oa":6495,"o":"b_195F"},{"a":6489,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":6491,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":6493,"t":"code","b":[16,4],"m":"bpl","oa":6499,"o":"b_1963"},{"a":6495,"l":"b_195F","t":"code","b":[160,5],"m":"ldy","x":[6487],"o":"#$05"},{"a":6497,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":6499,"l":"b_1963","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[6483,6493,6506],"o":"slot_in_use,y"},{"a":6502,"t":"code","b":[240,9],"m":"beq","oa":6513,"o":"fill_slot"},{"a":6504,"t":"code","b":[136],"m":"dey"},{"a":6505,"t":"code","b":[202],"m":"dex"},{"a":6506,"t":"code","b":[208,247],"m":"bne","oa":6499,"o":"b_1963"},{"a":6508,"t":"code","b":[76,89,26],"m":"jmp","oa":6745,"o":"j_1A59"},{"a":6511,"l":"create_in_slot","c":"Puts an object of type X into slot Y without looking for a free one (INIT uses it for the player's ship in slot 0)","t":"code","b":[134,148],"m":"stx","oa":148,"x":[5935],"o":"tmp94"},{"a":6513,"l":"fill_slot","c":"Sets up slot Y for type X: marks it in use ($05F9, $0649), stores the type ($060D), sets $0635 nonzero when the type's $0A1D word is nonzero, takes the type's $0AA9 word as the slot's hit points ($051D), and copies the 9-byte position at ($74) into the slot's entry of the position block at $065D (9 bytes a slot, offsets from $0846; $9570). Slots 0-6 get their rotation rates cleared and the 27-byte record at $0DA8 copied into their entry of the block at $044B (27 bytes a slot, offsets from $083C; $90F6). Ship slots 0-5 get speed, $0409, $041B and $0403 cleared, $0445, $0439, $043F and $0433 set to $FF, and the 9-byte record at $0DC3 copied into their entry of the block at $0545. A ship in slots 1-5 whose type has flag bit 5 counts $0403 up; any other gets a random turn rate, $041B = 1, $043F = 0, $0433 from its type's $0C1E, and the three bytes $85-$87 that $3E0D returns stored at $0421+3*slot. Finally loads the type's model ($1C95)","t":"code","b":[132,149],"m":"sty","oa":149,"x":[6502],"o":"tmp95"},{"a":6515,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6517,"t":"code","b":[153,73,6],"m":"sta","oa":1609,"o":"slot_drawn,y"},{"a":6520,"t":"code","b":[153,249,5],"m":"sta","oa":1529,"o":"slot_in_use,y"},{"a":6523,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":6525,"t":"code","b":[138],"m":"txa"},{"a":6526,"t":"code","b":[153,13,6],"m":"sta","oa":1549,"o":"slot_type,y"},{"a":6529,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6530,"t":"code","b":[170],"m":"tax"},{"a":6531,"t":"code","b":[189,29,10],"m":"lda","oa":2589,"o":"type_radius,x"},{"a":6534,"t":"code","b":[29,30,10],"m":"ora","oa":2590,"o":"f_0A1E,x"},{"a":6537,"t":"code","b":[153,53,6],"m":"sta","oa":1589,"o":"slot_solid,y"},{"a":6540,"t":"code","b":[165,149],"m":"lda","oa":149,"o":"tmp95"},{"a":6542,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6543,"t":"code","b":[168],"m":"tay"},{"a":6544,"t":"code","b":[189,169,10],"m":"lda","oa":2729,"o":"type_armour,x"},{"a":6547,"t":"code","b":[153,29,5],"m":"sta","oa":1309,"o":"slot_armour,y"},{"a":6550,"t":"code","b":[189,170,10],"m":"lda","oa":2730,"o":"type_armour_hi,x"},{"a":6553,"t":"code","b":[153,30,5],"m":"sta","oa":1310,"o":"f_051E,y"},{"a":6556,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":6558,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":6560,"t":"code","b":[24],"m":"clc"},{"a":6561,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":6564,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":6566,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":6568,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":6570,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":6572,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":6575,"t":"code","b":[166,149],"m":"ldx","oa":149,"o":"tmp95"},{"a":6577,"t":"code","b":[224,7],"m":"cpx","o":"#$07"},{"a":6579,"t":"code","b":[144,3],"m":"bcc","oa":6584,"o":"b_19B8"},{"a":6581,"t":"code","b":[76,82,26],"m":"jmp","oa":6738,"o":"j_1A52"},{"a":6584,"l":"b_19B8","t":"code","b":[169,0],"m":"lda","x":[6579],"o":"#$00"},{"a":6586,"t":"code","b":[157,8,5],"m":"sta","oa":1288,"o":"slot_pitch,x"},{"a":6589,"t":"code","b":[157,22,5],"m":"sta","oa":1302,"o":"slot_turn,x"},{"a":6592,"t":"code","b":[157,15,5],"m":"sta","oa":1295,"o":"slot_roll,x"},{"a":6595,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":6597,"t":"code","b":[24],"m":"clc"},{"a":6598,"t":"code","b":[125,60,8],"m":"adc","oa":2108,"o":"orient_offsets,x"},{"a":6601,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":6603,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":6605,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":6607,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":6609,"t":"code","b":[32,246,144],"m":"jsr","oa":37110,"o":"copy_identity"},{"a":6612,"t":"code","b":[166,149],"m":"ldx","oa":149,"o":"tmp95"},{"a":6614,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":6616,"t":"code","b":[176,120],"m":"bcs","oa":6738,"o":"j_1A52"},{"a":6618,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6620,"t":"code","b":[157,21,4],"m":"sta","oa":1045,"o":"slot_speed,x"},{"a":6623,"t":"code","b":[157,9,4],"m":"sta","oa":1033,"o":"slot_damage,x"},{"a":6626,"t":"code","b":[157,27,4],"m":"sta","oa":1051,"o":"slot_ai_state,x"},{"a":6629,"t":"code","b":[157,3,4],"m":"sta","oa":1027,"o":"slot_missile,x"},{"a":6632,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6634,"t":"code","b":[157,69,4],"m":"sta","oa":1093,"o":"slot_target,x"},{"a":6637,"t":"code","b":[157,57,4],"m":"sta","oa":1081,"o":"slot_attacker,x"},{"a":6640,"t":"code","b":[157,63,4],"m":"sta","oa":1087,"o":"slot_tactic,x"},{"a":6643,"t":"code","b":[157,51,4],"m":"sta","oa":1075,"o":"slot_faction,x"},{"a":6646,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":6648,"t":"code","b":[24],"m":"clc"},{"a":6649,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":6652,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":6654,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":6656,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":6658,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":6660,"t":"code","b":[169,195],"m":"lda","o":"#$C3"},{"a":6662,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":6664,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":6666,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":6668,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":6671,"t":"code","b":[166,149],"m":"ldx","oa":149,"o":"tmp95"},{"a":6673,"t":"code","b":[240,63],"m":"beq","oa":6738,"o":"j_1A52"},{"a":6675,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":6677,"t":"code","b":[185,213,8],"m":"lda","oa":2261,"o":"type_flags,y"},{"a":6680,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":6682,"t":"code","b":[208,51],"m":"bne","oa":6735,"o":"b_1A4F"},{"a":6684,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":6687,"t":"code","b":[157,22,5],"m":"sta","oa":1302,"o":"slot_turn,x"},{"a":6690,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6692,"t":"code","b":[157,27,4],"m":"sta","oa":1051,"o":"slot_ai_state,x"},{"a":6695,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6697,"t":"code","b":[157,63,4],"m":"sta","oa":1087,"o":"slot_tactic,x"},{"a":6700,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":6702,"t":"code","b":[185,30,12],"m":"lda","oa":3102,"o":"type_faction,y"},{"a":6705,"t":"code","b":[157,51,4],"m":"sta","oa":1075,"o":"slot_faction,x"},{"a":6708,"t":"code","b":[32,13,62],"m":"jsr","oa":15885,"o":"random_label"},{"a":6711,"t":"code","b":[165,149],"m":"lda","oa":149,"o":"tmp95"},{"a":6713,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6714,"t":"code","b":[101,149],"m":"adc","oa":149,"o":"tmp95"},{"a":6716,"t":"code","b":[168],"m":"tay"},{"a":6717,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":6719,"t":"code","b":[153,33,4],"m":"sta","oa":1057,"o":"slot_label,y"},{"a":6722,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":6724,"t":"code","b":[153,34,4],"m":"sta","oa":1058,"o":"f_0422,y"},{"a":6727,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":6729,"t":"code","b":[153,35,4],"m":"sta","oa":1059,"o":"f_0423,y"},{"a":6732,"t":"code","b":[76,82,26],"m":"jmp","oa":6738,"o":"j_1A52"},{"a":6735,"l":"b_1A4F","t":"code","b":[254,3,4],"m":"inc","oa":1027,"x":[6682],"o":"slot_missile,x"},{"a":6738,"l":"j_1A52","c":"Every path of fill_slot ends here: load the model for the type, and return the slot in Y, or $FF when the model could not be placed (carry set)","t":"code","b":[164,148],"m":"ldy","oa":148,"x":[6581,6616,6673,6732],"o":"tmp94"},{"a":6740,"t":"code","b":[32,149,28],"m":"jsr","oa":7317,"o":"load_model"},{"a":6743,"t":"code","b":[144,3],"m":"bcc","oa":6748,"o":"b_1A5C"},{"a":6745,"l":"j_1A59","c":"No free slot: return $FF in Y","t":"code","b":[160,255],"m":"ldy","x":[6508],"o":"#$FF"},{"a":6747,"t":"code","b":[96],"m":"rts"},{"a":6748,"l":"b_1A5C","t":"code","b":[164,149],"m":"ldy","oa":149,"x":[6743],"o":"tmp95"},{"a":6750,"t":"code","b":[96],"m":"rts"},{"a":6751,"l":"destroy_object","c":"Takes the object in slot Y out of play; A says how: $FF removes it quietly, 0 means the player destroyed it. Clears the TAC when it was the player's target ($311E), empties the slot ($1A8A); for A = 0 and a ship slot whose $0403 is clear, gives the reward ($1ABF); unless A is $FF, ends at $24F6 with the slot","t":"code","b":[132,138],"m":"sty","oa":138,"x":[4872,28488],"o":"tmp8A"},{"a":6753,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":6755,"t":"code","b":[204,69,4],"m":"cpy","oa":1093,"o":"slot_target"},{"a":6758,"t":"code","b":[208,3],"m":"bne","oa":6763,"o":"b_1A6B"},{"a":6760,"t":"code","b":[32,30,49],"m":"jsr","oa":12574,"o":"clear_tac"},{"a":6763,"l":"b_1A6B","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[6758],"o":"tmp8A"},{"a":6765,"t":"code","b":[32,138,26],"m":"jsr","oa":6794,"o":"free_slot"},{"a":6768,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":6770,"t":"code","b":[48,21],"m":"bmi","oa":6793,"o":"r_1A89"},{"a":6772,"t":"code","b":[208,14],"m":"bne","oa":6788,"o":"b_1A84"},{"a":6774,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":6776,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":6778,"t":"code","b":[176,8],"m":"bcs","oa":6788,"o":"b_1A84"},{"a":6780,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":6783,"t":"code","b":[208,3],"m":"bne","oa":6788,"o":"b_1A84"},{"a":6785,"t":"code","b":[32,191,26],"m":"jsr","oa":6847,"o":"kill_reward"},{"a":6788,"l":"b_1A84","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[6772,6778,6783],"o":"tmp8A"},{"a":6790,"t":"code","b":[76,246,36],"m":"jmp","oa":9462,"o":"explode"},{"a":6793,"l":"r_1A89","t":"code","b":[96],"m":"rts","x":[6770]},{"a":6794,"l":"free_slot","c":"Empties slot Y: clears its in-use flags ($0649, $0635, $05F9) and, among ship slots 0-5, every target ($0445) and $0439 that pointed at it, remembering in $8C the last ship that had it as its target. Slot 0 is the player's ship: freeing it is the end of the game ($1B90)","t":"code","b":[152],"m":"tya","x":[5567,6765,7126,14868,14876,15206,15251,27822,27878,28298,28365,29100,29549]},{"a":6795,"t":"code","b":[208,3],"m":"bne","oa":6800,"o":"b_1A90"},{"a":6797,"t":"code","b":[76,144,27],"m":"jmp","oa":7056,"o":"player_destroyed"},{"a":6800,"l":"b_1A90","t":"code","b":[169,0],"m":"lda","x":[6795],"o":"#$00"},{"a":6802,"t":"code","b":[153,73,6],"m":"sta","oa":1609,"o":"slot_drawn,y"},{"a":6805,"t":"code","b":[153,53,6],"m":"sta","oa":1589,"o":"slot_solid,y"},{"a":6808,"t":"code","b":[153,249,5],"m":"sta","oa":1529,"o":"slot_in_use,y"},{"a":6811,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":6813,"t":"code","b":[132,138],"m":"sty","oa":138,"o":"tmp8A"},{"a":6815,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":6817,"l":"b_1AA1","t":"code","b":[189,69,4],"m":"lda","oa":1093,"x":[6844],"o":"slot_target,x"},{"a":6820,"t":"code","b":[197,138],"m":"cmp","oa":138,"o":"tmp8A"},{"a":6822,"t":"code","b":[208,7],"m":"bne","oa":6831,"o":"b_1AAF"},{"a":6824,"t":"code","b":[134,140],"m":"stx","oa":140,"o":"tmp8C"},{"a":6826,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6828,"t":"code","b":[157,69,4],"m":"sta","oa":1093,"o":"slot_target,x"},{"a":6831,"l":"b_1AAF","t":"code","b":[189,57,4],"m":"lda","oa":1081,"x":[6822],"o":"slot_attacker,x"},{"a":6834,"t":"code","b":[197,138],"m":"cmp","oa":138,"o":"tmp8A"},{"a":6836,"t":"code","b":[208,5],"m":"bne","oa":6843,"o":"b_1ABB"},{"a":6838,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":6840,"t":"code","b":[157,57,4],"m":"sta","oa":1081,"o":"slot_attacker,x"},{"a":6843,"l":"b_1ABB","t":"code","b":[202],"m":"dex","x":[6836]},{"a":6844,"t":"code","b":[16,227],"m":"bpl","oa":6817,"o":"b_1AA1"},{"a":6846,"t":"code","b":[96],"m":"rts"},{"a":6847,"l":"kill_reward","c":"The player has destroyed the ship in slot $8A. A type-6 ship counts in $079A when $079C is set; then, by the ship's $0433: 0 adds a random amount and 3 adds nothing extra, and either adds 32 times its type's $0C79 to the credits ($2F22) with the messages at $1B96 and $1BAF; then, on a negative random number, takes the type's $0C79 off $072B, and when that borrows and $072A is below 5, puts $072B back to 7 shifted left $072A times and raises $072A ($1737 copies it). With a random number below $40 the standing ($3C90) changes: up with the faction of the ship that had targeted it ($8C), down with its own unless it is type $0C. A ship whose $0433 is 1 or 2 adds ($0C79+2)*16 to $0726/$0727","t":"code","b":[173,156,7],"m":"lda","oa":1948,"x":[6785],"o":"a_079C"},{"a":6850,"t":"code","b":[240,15],"m":"beq","oa":6867,"o":"b_1AD3"},{"a":6852,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":6854,"t":"code","b":[217,13,6],"m":"cmp","oa":1549,"o":"slot_type,y"},{"a":6857,"t":"code","b":[208,8],"m":"bne","oa":6867,"o":"b_1AD3"},{"a":6859,"t":"code","b":[238,154,7],"m":"inc","oa":1946,"o":"kills_079A"},{"a":6862,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":6864,"t":"code","b":[141,156,7],"m":"sta","oa":1948,"o":"a_079C"},{"a":6867,"l":"b_1AD3","t":"code","b":[169,0],"m":"lda","x":[6850,6857],"o":"#$00"},{"a":6869,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":6871,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":6873,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":6876,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":6878,"t":"code","b":[208,8],"m":"bne","oa":6888,"o":"b_1AE8"},{"a":6880,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":6883,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":6885,"t":"code","b":[76,236,26],"m":"jmp","oa":6892,"o":"j_1AEC"},{"a":6888,"l":"b_1AE8","t":"code","b":[201,3],"m":"cmp","x":[6878],"o":"#$03"},{"a":6890,"t":"code","b":[208,41],"m":"bne","oa":6933,"o":"b_1B15"},{"a":6892,"l":"j_1AEC","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[6885],"o":"tmp8A"},{"a":6894,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":6897,"t":"code","b":[189,121,12],"m":"lda","oa":3193,"o":"type_rank,x"},{"a":6900,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6901,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6902,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6903,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6904,"t":"code","b":[10],"m":"asl","o":"a"},{"a":6905,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":6907,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":6909,"t":"code","b":[144,2],"m":"bcc","oa":6913,"o":"b_1B01"},{"a":6911,"t":"code","b":[230,97],"m":"inc","oa":97,"o":"acc_hi"},{"a":6913,"l":"b_1B01","t":"code","b":[32,34,47],"m":"jsr","oa":12066,"x":[6909],"o":"add_credits"},{"a":6916,"t":"code","b":[162,150],"m":"ldx","o":"#$96"},{"a":6918,"t":"code","b":[169,27],"m":"lda","o":"#$1B"},{"a":6920,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":6923,"t":"code","b":[32,191,158],"m":"jsr","oa":40639,"o":"print_number"},{"a":6926,"t":"code","b":[162,175],"m":"ldx","o":"#$AF"},{"a":6928,"t":"code","b":[160,27],"m":"ldy","o":"#$1B"},{"a":6930,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":6933,"l":"b_1B15","t":"code","b":[32,197,162],"m":"jsr","oa":41669,"x":[6890],"o":"random"},{"a":6936,"t":"code","b":[16,117],"m":"bpl","oa":7055,"o":"r_1B8F"},{"a":6938,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":6940,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":6943,"t":"code","b":[173,43,7],"m":"lda","oa":1835,"o":"rank_points"},{"a":6946,"t":"code","b":[56],"m":"sec"},{"a":6947,"t":"code","b":[253,121,12],"m":"sbc","oa":3193,"o":"type_rank,x"},{"a":6950,"t":"code","b":[141,43,7],"m":"sta","oa":1835,"o":"rank_points"},{"a":6953,"t":"code","b":[176,22],"m":"bcs","oa":6977,"o":"b_1B41"},{"a":6955,"t":"code","b":[172,42,7],"m":"ldy","oa":1834,"o":"rank"},{"a":6958,"t":"code","b":[192,5],"m":"cpy","o":"#$05"},{"a":6960,"t":"code","b":[176,15],"m":"bcs","oa":6977,"o":"b_1B41"},{"a":6962,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":6964,"l":"b_1B34","t":"code","b":[10],"m":"asl","x":[6966],"o":"a"},{"a":6965,"t":"code","b":[136],"m":"dey"},{"a":6966,"t":"code","b":[208,252],"m":"bne","oa":6964,"o":"b_1B34"},{"a":6968,"t":"code","b":[141,43,7],"m":"sta","oa":1835,"o":"rank_points"},{"a":6971,"t":"code","b":[238,42,7],"m":"inc","oa":1834,"o":"rank"},{"a":6974,"t":"code","b":[32,55,23],"m":"jsr","oa":5943,"o":"copy_ship_stats"},{"a":6977,"l":"b_1B41","t":"code","b":[32,197,162],"m":"jsr","oa":41669,"x":[6953,6960],"o":"random"},{"a":6980,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":6982,"t":"code","b":[176,34],"m":"bcs","oa":7018,"o":"b_1B6A"},{"a":6984,"t":"code","b":[166,140],"m":"ldx","oa":140,"o":"tmp8C"},{"a":6986,"t":"code","b":[240,13],"m":"beq","oa":7001,"o":"b_1B59"},{"a":6988,"t":"code","b":[189,3,4],"m":"lda","oa":1027,"o":"slot_missile,x"},{"a":6991,"t":"code","b":[208,8],"m":"bne","oa":7001,"o":"b_1B59"},{"a":6993,"t":"code","b":[188,51,4],"m":"ldy","oa":1075,"o":"slot_faction,x"},{"a":6996,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":6998,"t":"code","b":[32,144,60],"m":"jsr","oa":15504,"o":"change_standing"},{"a":7001,"l":"b_1B59","t":"code","b":[166,138],"m":"ldx","oa":138,"x":[6986,6991],"o":"tmp8A"},{"a":7003,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":7006,"t":"code","b":[201,12],"m":"cmp","o":"#$0C"},{"a":7008,"t":"code","b":[240,45],"m":"beq","oa":7055,"o":"r_1B8F"},{"a":7010,"t":"code","b":[188,51,4],"m":"ldy","oa":1075,"o":"slot_faction,x"},{"a":7013,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":7015,"t":"code","b":[32,144,60],"m":"jsr","oa":15504,"o":"change_standing"},{"a":7018,"l":"b_1B6A","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[6982],"o":"tmp8A"},{"a":7020,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":7023,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":7025,"t":"code","b":[240,4],"m":"beq","oa":7031,"o":"b_1B77"},{"a":7027,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":7029,"t":"code","b":[208,24],"m":"bne","oa":7055,"o":"r_1B8F"},{"a":7031,"l":"b_1B77","t":"code","b":[190,13,6],"m":"ldx","oa":1549,"x":[7025],"o":"slot_type,y"},{"a":7034,"t":"code","b":[189,121,12],"m":"lda","oa":3193,"o":"type_rank,x"},{"a":7037,"t":"code","b":[24],"m":"clc"},{"a":7038,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":7040,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7041,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7042,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7043,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7044,"t":"code","b":[109,38,7],"m":"adc","oa":1830,"o":"bounty"},{"a":7047,"t":"code","b":[141,38,7],"m":"sta","oa":1830,"o":"bounty"},{"a":7050,"t":"code","b":[144,3],"m":"bcc","oa":7055,"o":"r_1B8F"},{"a":7052,"t":"code","b":[238,39,7],"m":"inc","oa":1831,"o":"a_0727"},{"a":7055,"l":"r_1B8F","t":"code","b":[96],"m":"rts","x":[6936,7008,7029,7050]},{"a":7056,"l":"player_destroyed","c":"Slot 0 was freed: the player's ship is gone. Loads END (INIT's bytes) to $E900 and jumps into it at $E972","t":"code","b":[32,229,20],"m":"jsr","oa":5349,"x":[6797,29358],"o":"load_end"},{"a":7059,"t":"code","b":[76,114,233],"m":"jmp","oa":59762,"o":"$E972"},{"a":7062,"l":"str_bounty","c":"\"Bounty awarded for kill:\" (kill_reward), zero-ended, then at $1BAF \"cr\", printed after the amount","t":"byte","b":[66,111,117,110,116,121,32,97]},{"a":7070,"t":"byte","b":[119,97,114,100,101,100,32,102]},{"a":7078,"t":"byte","b":[111,114,32,107,105,108,108,58]},{"a":7086,"t":"byte","b":[0,99,114,0]},{"a":7090,"l":"age_objects","c":"The main loop's second call. For every slot in use whose type has flag bit 3 (missiles, the type $22 object) its hit points ($051D) count down by one each pass; when they run out the object is removed ($1A8A), and if its $0403 was set it becomes a type $22 object in its place ($7C52, $1949)","t":"code","b":[160,19],"m":"ldy","x":[3568],"o":"#$13"},{"a":7092,"l":"b_1BB4","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[7147],"o":"slot_in_use,y"},{"a":7095,"t":"code","b":[240,49],"m":"beq","oa":7146,"o":"b_1BEA"},{"a":7097,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":7100,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":7103,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":7105,"t":"code","b":[240,39],"m":"beq","oa":7146,"o":"b_1BEA"},{"a":7107,"t":"code","b":[152],"m":"tya"},{"a":7108,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7109,"t":"code","b":[170],"m":"tax"},{"a":7110,"t":"code","b":[189,29,5],"m":"lda","oa":1309,"o":"slot_armour,x"},{"a":7113,"t":"code","b":[208,3],"m":"bne","oa":7118,"o":"b_1BCE"},{"a":7115,"t":"code","b":[222,30,5],"m":"dec","oa":1310,"o":"f_051E,x"},{"a":7118,"l":"b_1BCE","t":"code","b":[222,29,5],"m":"dec","oa":1309,"x":[7113],"o":"slot_armour,x"},{"a":7121,"t":"code","b":[189,30,5],"m":"lda","oa":1310,"o":"f_051E,x"},{"a":7124,"t":"code","b":[16,20],"m":"bpl","oa":7146,"o":"b_1BEA"},{"a":7126,"t":"code","b":[32,138,26],"m":"jsr","oa":6794,"o":"free_slot"},{"a":7129,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":7132,"t":"code","b":[240,12],"m":"beq","oa":7146,"o":"b_1BEA"},{"a":7134,"t":"code","b":[132,168],"m":"sty","oa":168,"o":"model_refpts"},{"a":7136,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":7139,"t":"code","b":[162,34],"m":"ldx","o":"#$22"},{"a":7141,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":7144,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":7146,"l":"b_1BEA","t":"code","b":[136],"m":"dey","x":[7095,7105,7124,7132]},{"a":7147,"t":"code","b":[16,199],"m":"bpl","oa":7092,"o":"b_1BB4"},{"a":7149,"t":"code","b":[96],"m":"rts"},{"a":7150,"l":"load_picture","c":"Loads picture A (0 PIT.PAC, the cockpit; 1 NAV.PAC; 2 LAND.PAC; 3 H.PAC; names from the table at $1C15) to $4000 and unpacks it to the bitmap at $C000 (unpack_picture)","t":"code","b":[10],"m":"asl","x":[5415,9561],"o":"a"},{"a":7151,"t":"code","b":[168],"m":"tay"},{"a":7152,"t":"code","b":[190,21,28],"m":"ldx","oa":7189,"o":"picture_names,y"},{"a":7155,"t":"code","b":[185,22,28],"m":"lda","oa":7190,"o":"f_1C16,y"},{"a":7158,"t":"code","b":[168],"m":"tay"},{"a":7159,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7161,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":7163,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":7165,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":7167,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":7170,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7172,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":7174,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":7176,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":7178,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7180,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":7182,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":7184,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":7186,"t":"code","b":[76,29,28],"m":"jmp","oa":7197,"o":"unpack_picture"},{"a":7189,"l":"picture_names","c":"Pointers to the four picture files' names in the loader's name table: PIT.PAC, NAV.PAC, LAND.PAC, H.PAC","t":"byte","b":[253],"x":[7152]},{"a":7190,"l":"f_1C16","c":"The high bytes of picture_names' pointers","t":"byte","b":[7,5,8,13,8,22,8],"x":[7155]},{"a":7197,"l":"unpack_picture","c":"Unpacks a picture from ($74) to ($78). First clears the 1 KB at ($78)+$2000 (the screen matrix that follows the bitmap) and sets the border black. The packed stream is a run of records: a byte n of 1-$7F repeats the next byte n times; $80+n copies the next n bytes; 0 ends it, and the byte after it is the border colour","t":"code","b":[165,116],"m":"lda","oa":116,"x":[7186],"o":"src1_ptr"},{"a":7199,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":7201,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":7203,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":7205,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":7207,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":7209,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":7211,"t":"code","b":[72],"m":"pha"},{"a":7212,"t":"code","b":[24],"m":"clc"},{"a":7213,"t":"code","b":[105,32],"m":"adc","o":"#$20"},{"a":7215,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":7217,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":7219,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":7221,"t":"code","b":[152],"m":"tya"},{"a":7222,"l":"b_1C36","t":"code","b":[145,130],"m":"sta","oa":130,"x":[7225,7230],"o":"(tmp82),y"},{"a":7224,"t":"code","b":[200],"m":"iny"},{"a":7225,"t":"code","b":[208,251],"m":"bne","oa":7222,"o":"b_1C36"},{"a":7227,"t":"code","b":[230,131],"m":"inc","oa":131,"o":"tmp83"},{"a":7229,"t":"code","b":[202],"m":"dex"},{"a":7230,"t":"code","b":[208,246],"m":"bne","oa":7222,"o":"b_1C36"},{"a":7232,"t":"code","b":[32,138,28],"m":"jsr","oa":7306,"o":"set_border"},{"a":7235,"t":"code","b":[104],"m":"pla"},{"a":7236,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":7238,"l":"j_1C46","t":"code","b":[160,0],"m":"ldy","x":[7300],"o":"#$00"},{"a":7240,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(tmp80),y"},{"a":7242,"t":"code","b":[240,59],"m":"beq","oa":7303,"o":"b_1C87"},{"a":7244,"t":"code","b":[48,15],"m":"bmi","oa":7261,"o":"b_1C5D"},{"a":7246,"t":"code","b":[170],"m":"tax"},{"a":7247,"t":"code","b":[200],"m":"iny"},{"a":7248,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(tmp80),y"},{"a":7250,"t":"code","b":[136],"m":"dey"},{"a":7251,"l":"b_1C53","t":"code","b":[145,130],"m":"sta","oa":130,"x":[7255],"o":"(tmp82),y"},{"a":7253,"t":"code","b":[200],"m":"iny"},{"a":7254,"t":"code","b":[202],"m":"dex"},{"a":7255,"t":"code","b":[208,250],"m":"bne","oa":7251,"o":"b_1C53"},{"a":7257,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":7259,"t":"code","b":[16,18],"m":"bpl","oa":7279,"o":"b_1C6F"},{"a":7261,"l":"b_1C5D","t":"code","b":[41,127],"m":"and","x":[7244],"o":"#$7F"},{"a":7263,"t":"code","b":[170],"m":"tax"},{"a":7264,"t":"code","b":[230,128],"m":"inc","oa":128,"o":"tmp80"},{"a":7266,"t":"code","b":[208,2],"m":"bne","oa":7270,"o":"b_1C66"},{"a":7268,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":7270,"l":"b_1C66","t":"code","b":[177,128],"m":"lda","oa":128,"x":[7266,7276],"o":"(tmp80),y"},{"a":7272,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(tmp82),y"},{"a":7274,"t":"code","b":[200],"m":"iny"},{"a":7275,"t":"code","b":[202],"m":"dex"},{"a":7276,"t":"code","b":[208,248],"m":"bne","oa":7270,"o":"b_1C66"},{"a":7278,"t":"code","b":[152],"m":"tya"},{"a":7279,"l":"b_1C6F","t":"code","b":[24],"m":"clc","x":[7259]},{"a":7280,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":7282,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":7284,"t":"code","b":[138],"m":"txa"},{"a":7285,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":7287,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":7289,"t":"code","b":[24],"m":"clc"},{"a":7290,"t":"code","b":[152],"m":"tya"},{"a":7291,"t":"code","b":[101,130],"m":"adc","oa":130,"o":"tmp82"},{"a":7293,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":7295,"t":"code","b":[138],"m":"txa"},{"a":7296,"t":"code","b":[101,131],"m":"adc","oa":131,"o":"tmp83"},{"a":7298,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":7300,"t":"code","b":[76,70,28],"m":"jmp","oa":7238,"o":"j_1C46"},{"a":7303,"l":"b_1C87","t":"code","b":[200],"m":"iny","x":[7242]},{"a":7304,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(tmp80),y"},{"a":7306,"l":"set_border","c":"Sets the border colour to A, banking the I/O in for the write","t":"code","b":[72],"m":"pha","x":[7232]},{"a":7307,"t":"code","b":[32,140,14],"m":"jsr","oa":3724,"o":"bank_io_in"},{"a":7310,"t":"code","b":[104],"m":"pla"},{"a":7311,"t":"code","b":[141,32,208],"m":"sta","o":"vic_border"},{"a":7314,"t":"code","b":[76,133,14],"m":"jmp","oa":3717,"o":"bank_all_ram"},{"a":7317,"l":"load_model","c":"Loads the model for object type Y if the type has one ($093E) and it is not loaded yet. The file name is the model's 4-byte entry at $0961; it goes to the model heap's next free address ($1D80). Then relocates it there: the prologue's LDA #lo / LDA #hi (bytes 1 and 5) get the load address added, its stores and jump are rewritten to STA $7A, STA $7B, JMP $7C61 (the model drawer), and the 15 words from byte $11 get the load address added. Every type that uses the same model is pointed at it ($08F8/$08F9), and the heap pointer moves on by the size word at byte $2F. Returns carry clear","t":"code","b":[132,138],"m":"sty","oa":138,"x":[6740,7542],"o":"tmp8A"},{"a":7319,"t":"code","b":[190,62,9],"m":"ldx","oa":2366,"o":"type_model,y"},{"a":7322,"t":"code","b":[16,2],"m":"bpl","oa":7326,"o":"b_1C9E"},{"a":7324,"l":"b_1C9C","t":"code","b":[24],"m":"clc","x":[7332]},{"a":7325,"t":"code","b":[96],"m":"rts"},{"a":7326,"l":"b_1C9E","t":"code","b":[152],"m":"tya","x":[7322]},{"a":7327,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7328,"t":"code","b":[168],"m":"tay"},{"a":7329,"t":"code","b":[185,249,8],"m":"lda","oa":2297,"o":"type_draw_hi,y"},{"a":7332,"t":"code","b":[208,246],"m":"bne","oa":7324,"o":"b_1C9C"},{"a":7334,"t":"code","b":[138],"m":"txa"},{"a":7335,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7336,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7337,"t":"code","b":[105,97],"m":"adc","o":"#$61"},{"a":7339,"t":"code","b":[170],"m":"tax"},{"a":7340,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7342,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":7344,"t":"code","b":[168],"m":"tay"},{"a":7345,"t":"code","b":[173,128,29],"m":"lda","oa":7552,"o":"model_heap_next"},{"a":7348,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":7350,"t":"code","b":[173,129,29],"m":"lda","oa":7553,"o":"a_1D81"},{"a":7353,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":7355,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":7358,"t":"code","b":[173,128,29],"m":"lda","oa":7552,"o":"model_heap_next"},{"a":7361,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":7363,"t":"code","b":[173,129,29],"m":"lda","oa":7553,"o":"a_1D81"},{"a":7366,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":7368,"t":"code","b":[160,47],"m":"ldy","o":"#$2F"},{"a":7370,"t":"code","b":[173,128,29],"m":"lda","oa":7552,"o":"model_heap_next"},{"a":7373,"t":"code","b":[24],"m":"clc"},{"a":7374,"t":"code","b":[113,139],"m":"adc","oa":139,"o":"(tmp8B),y"},{"a":7376,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"tmp8E"},{"a":7378,"t":"code","b":[200],"m":"iny"},{"a":7379,"t":"code","b":[173,129,29],"m":"lda","oa":7553,"o":"a_1D81"},{"a":7382,"t":"code","b":[113,139],"m":"adc","oa":139,"o":"(tmp8B),y"},{"a":7384,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"tmp8F"},{"a":7386,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":7388,"t":"code","b":[177,139],"m":"lda","oa":139,"o":"(tmp8B),y"},{"a":7390,"t":"code","b":[24],"m":"clc"},{"a":7391,"t":"code","b":[109,128,29],"m":"adc","oa":7552,"o":"model_heap_next"},{"a":7394,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7396,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":7398,"t":"code","b":[177,139],"m":"lda","oa":139,"o":"(tmp8B),y"},{"a":7400,"t":"code","b":[109,129,29],"m":"adc","oa":7553,"o":"a_1D81"},{"a":7403,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7405,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":7407,"t":"code","b":[169,122],"m":"lda","o":"#$7A"},{"a":7409,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7411,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":7413,"t":"code","b":[169,123],"m":"lda","o":"#$7B"},{"a":7415,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7417,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":7419,"t":"code","b":[169,97],"m":"lda","o":"#$61"},{"a":7421,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7423,"t":"code","b":[200],"m":"iny"},{"a":7424,"t":"code","b":[169,124],"m":"lda","o":"#$7C"},{"a":7426,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7428,"t":"code","b":[162,15],"m":"ldx","o":"#$0F"},{"a":7430,"t":"code","b":[160,17],"m":"ldy","o":"#$11"},{"a":7432,"l":"b_1D08","t":"code","b":[177,139],"m":"lda","oa":139,"x":[7450],"o":"(tmp8B),y"},{"a":7434,"t":"code","b":[24],"m":"clc"},{"a":7435,"t":"code","b":[109,128,29],"m":"adc","oa":7552,"o":"model_heap_next"},{"a":7438,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7440,"t":"code","b":[200],"m":"iny"},{"a":7441,"t":"code","b":[177,139],"m":"lda","oa":139,"o":"(tmp8B),y"},{"a":7443,"t":"code","b":[109,129,29],"m":"adc","oa":7553,"o":"a_1D81"},{"a":7446,"t":"code","b":[145,139],"m":"sta","oa":139,"o":"(tmp8B),y"},{"a":7448,"t":"code","b":[200],"m":"iny"},{"a":7449,"t":"code","b":[202],"m":"dex"},{"a":7450,"t":"code","b":[208,236],"m":"bne","oa":7432,"o":"b_1D08"},{"a":7452,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":7454,"t":"code","b":[185,62,9],"m":"lda","oa":2366,"o":"type_model,y"},{"a":7457,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":7459,"t":"code","b":[160,34],"m":"ldy","o":"#$22"},{"a":7461,"l":"b_1D25","t":"code","b":[165,141],"m":"lda","oa":141,"x":[7484],"o":"tmp8D"},{"a":7463,"t":"code","b":[217,62,9],"m":"cmp","oa":2366,"o":"type_model,y"},{"a":7466,"t":"code","b":[208,15],"m":"bne","oa":7483,"o":"b_1D3B"},{"a":7468,"t":"code","b":[152],"m":"tya"},{"a":7469,"t":"code","b":[10],"m":"asl","o":"a"},{"a":7470,"t":"code","b":[170],"m":"tax"},{"a":7471,"t":"code","b":[173,128,29],"m":"lda","oa":7552,"o":"model_heap_next"},{"a":7474,"t":"code","b":[157,248,8],"m":"sta","oa":2296,"o":"type_draw,x"},{"a":7477,"t":"code","b":[173,129,29],"m":"lda","oa":7553,"o":"a_1D81"},{"a":7480,"t":"code","b":[157,249,8],"m":"sta","oa":2297,"o":"type_draw_hi,x"},{"a":7483,"l":"b_1D3B","t":"code","b":[136],"m":"dey","x":[7466]},{"a":7484,"t":"code","b":[16,231],"m":"bpl","oa":7461,"o":"b_1D25"},{"a":7486,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"tmp8E"},{"a":7488,"t":"code","b":[141,128,29],"m":"sta","oa":7552,"o":"model_heap_next"},{"a":7491,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"tmp8F"},{"a":7493,"t":"code","b":[141,129,29],"m":"sta","oa":7553,"o":"a_1D81"},{"a":7496,"t":"code","b":[24],"m":"clc"},{"a":7497,"t":"code","b":[96],"m":"rts"},{"a":7498,"l":"reset_models","c":"Forgets every loaded model: clears the model pointer of each object type that has a model, and puts the heap pointer back to $E400","t":"code","b":[169,0],"m":"lda","x":[4789,5573,9876,28830,29106],"o":"#$00"},{"a":7500,"t":"code","b":[160,69],"m":"ldy","o":"#$45"},{"a":7502,"t":"code","b":[162,34],"m":"ldx","o":"#$22"},{"a":7504,"l":"b_1D50","t":"code","b":[189,62,9],"m":"lda","oa":2366,"x":[7517],"o":"type_model,x"},{"a":7507,"t":"code","b":[48,5],"m":"bmi","oa":7514,"o":"b_1D5A"},{"a":7509,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7511,"t":"code","b":[153,248,8],"m":"sta","oa":2296,"o":"type_draw,y"},{"a":7514,"l":"b_1D5A","t":"code","b":[136],"m":"dey","x":[7507]},{"a":7515,"t":"code","b":[136],"m":"dey"},{"a":7516,"t":"code","b":[202],"m":"dex"},{"a":7517,"t":"code","b":[16,241],"m":"bpl","oa":7504,"o":"b_1D50"},{"a":7519,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7521,"t":"code","b":[141,128,29],"m":"sta","oa":7552,"o":"model_heap_next"},{"a":7524,"t":"code","b":[169,228],"m":"lda","o":"#$E4"},{"a":7526,"t":"code","b":[141,129,29],"m":"sta","oa":7553,"o":"a_1D81"},{"a":7529,"t":"code","b":[96],"m":"rts"},{"a":7530,"l":"load_slot_models","c":"Loads the model for every object in slots 19-1 ($1C95), after reset_models or a reload","t":"code","b":[162,19],"m":"ldx","x":[4792,9902,28881],"o":"#$13"},{"a":7532,"t":"code","b":[134,189],"m":"stx","oa":189,"o":"zpa_BD"},{"a":7534,"l":"b_1D6E","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[7549],"o":"slot_in_use,x"},{"a":7537,"t":"code","b":[240,6],"m":"beq","oa":7545,"o":"b_1D79"},{"a":7539,"t":"code","b":[188,13,6],"m":"ldy","oa":1549,"o":"slot_type,x"},{"a":7542,"t":"code","b":[32,149,28],"m":"jsr","oa":7317,"o":"load_model"},{"a":7545,"l":"b_1D79","t":"code","b":[198,189],"m":"dec","oa":189,"x":[7537],"o":"zpa_BD"},{"a":7547,"t":"code","b":[166,189],"m":"ldx","oa":189,"o":"zpa_BD"},{"a":7549,"t":"code","b":[208,239],"m":"bne","oa":7534,"o":"b_1D6E"},{"a":7551,"t":"code","b":[96],"m":"rts"},{"a":7552,"l":"model_heap_next","c":"The address where the next model will be loaded, $E400 after reset_models","t":"byte","b":[0],"x":[7345,7358,7370,7391,7435,7471,7488,7521]},{"a":7553,"l":"a_1D81","c":"model_heap_next's high byte","t":"byte","b":[228],"x":[7350,7363,7379,7400,7443,7477,7493,7526]},{"a":7554,"l":"key_next_target","c":"Key T or Return: auto fire off, then the player's target ($0445) moves to the next slot in use after it: a ship slot (1-5) with $0403 clear, or, in slots 6-19, an object whose type has flag bit 0 (bases, planets and the like) or is type $14; past slot 19 the target becomes none ($FF). Redraws the TAC ($311E, $3114)","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7556,"t":"code","b":[141,255,12],"m":"sta","oa":3327,"o":"auto_fire"},{"a":7559,"t":"code","b":[174,69,4],"m":"ldx","oa":1093,"o":"slot_target"},{"a":7562,"t":"code","b":[16,2],"m":"bpl","oa":7566,"o":"b_1D8E"},{"a":7564,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":7566,"l":"b_1D8E","t":"code","b":[232],"m":"inx","x":[7562,7578,7587,7603]},{"a":7567,"t":"code","b":[224,20],"m":"cpx","o":"#$14"},{"a":7569,"t":"code","b":[144,4],"m":"bcc","oa":7575,"o":"b_1D97"},{"a":7571,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":7573,"t":"code","b":[48,30],"m":"bmi","oa":7605,"o":"b_1DB5"},{"a":7575,"l":"b_1D97","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[7569],"o":"slot_in_use,x"},{"a":7578,"t":"code","b":[240,242],"m":"beq","oa":7566,"o":"b_1D8E"},{"a":7580,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":7582,"t":"code","b":[176,7],"m":"bcs","oa":7591,"o":"b_1DA7"},{"a":7584,"t":"code","b":[189,3,4],"m":"lda","oa":1027,"o":"slot_missile,x"},{"a":7587,"t":"code","b":[208,233],"m":"bne","oa":7566,"o":"b_1D8E"},{"a":7589,"t":"code","b":[240,14],"m":"beq","oa":7605,"o":"b_1DB5"},{"a":7591,"l":"b_1DA7","t":"code","b":[188,13,6],"m":"ldy","oa":1549,"x":[7582],"o":"slot_type,x"},{"a":7594,"t":"code","b":[192,20],"m":"cpy","o":"#$14"},{"a":7596,"t":"code","b":[240,7],"m":"beq","oa":7605,"o":"b_1DB5"},{"a":7598,"t":"code","b":[185,213,8],"m":"lda","oa":2261,"o":"type_flags,y"},{"a":7601,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":7603,"t":"code","b":[240,217],"m":"beq","oa":7566,"o":"b_1D8E"},{"a":7605,"l":"b_1DB5","t":"code","b":[142,69,4],"m":"stx","oa":1093,"x":[7573,7589,7596],"o":"slot_target"},{"a":7608,"t":"code","b":[32,30,49],"m":"jsr","oa":12574,"o":"clear_tac"},{"a":7611,"t":"code","b":[76,20,49],"m":"jmp","oa":12564,"o":"draw_tac"},{"a":7614,"l":"key_fire","c":"Key space or 0: fires the selected weapon ($0CFE): 0 the beam ($20EC), 1-3 a missile of type 9, 10 or 11 ($1EAD), all from slot 0","t":"code","b":[160,0],"m":"ldy","x":[9267],"o":"#$00"},{"a":7616,"t":"code","b":[173,254,12],"m":"lda","oa":3326,"o":"weapon"},{"a":7619,"t":"code","b":[240,23],"m":"beq","oa":7644,"o":"b_1DDC"},{"a":7621,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":7623,"t":"code","b":[240,9],"m":"beq","oa":7634,"o":"b_1DD2"},{"a":7625,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":7627,"t":"code","b":[240,10],"m":"beq","oa":7639,"o":"b_1DD7"},{"a":7629,"t":"code","b":[162,11],"m":"ldx","o":"#$0B"},{"a":7631,"t":"code","b":[76,173,30],"m":"jmp","oa":7853,"o":"launch_missile"},{"a":7634,"l":"b_1DD2","t":"code","b":[162,9],"m":"ldx","x":[7623],"o":"#$09"},{"a":7636,"t":"code","b":[76,173,30],"m":"jmp","oa":7853,"o":"launch_missile"},{"a":7639,"l":"b_1DD7","t":"code","b":[162,10],"m":"ldx","x":[7627],"o":"#$0A"},{"a":7641,"t":"code","b":[76,173,30],"m":"jmp","oa":7853,"o":"launch_missile"},{"a":7644,"l":"b_1DDC","t":"code","b":[76,236,32],"m":"jmp","oa":8428,"x":[7619],"o":"fire_beam"},{"a":7647,"l":"target_status","c":"Every 256 main-loop passes (frame_update): when the player's target is a ship slot whose $0433 is not 3, and that ship has no target of its own or has the player: prints the message at $1E5B with the ship's name ($366D) and one of the texts from $CE9E chosen by its type ($0C) or $0433 and a random number. A ship not hostile to the player ($387E) and with no target greets it once (the texts 8 on); a hostile one, or one targeting the player, speaks once and then one time in four ($0833 says one has spoken)","t":"code","b":[172,69,4],"m":"ldy","oa":1093,"x":[4724],"o":"slot_target"},{"a":7650,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":7652,"t":"code","b":[144,1],"m":"bcc","oa":7655,"o":"b_1DE7"},{"a":7654,"l":"r_1DE6","t":"code","b":[96],"m":"rts","x":[7660,7667,7679,7696]},{"a":7655,"l":"b_1DE7","t":"code","b":[185,51,4],"m":"lda","oa":1075,"x":[7652],"o":"slot_faction,y"},{"a":7658,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":7660,"t":"code","b":[240,248],"m":"beq","oa":7654,"o":"r_1DE6"},{"a":7662,"t":"code","b":[190,69,4],"m":"ldx","oa":1093,"o":"slot_target,y"},{"a":7665,"t":"code","b":[240,19],"m":"beq","oa":7686,"o":"b_1E06"},{"a":7667,"t":"code","b":[16,241],"m":"bpl","oa":7654,"o":"r_1DE6"},{"a":7669,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":7671,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":7674,"t":"code","b":[48,10],"m":"bmi","oa":7686,"o":"b_1E06"},{"a":7676,"t":"code","b":[173,51,8],"m":"lda","oa":2099,"o":"taunted"},{"a":7679,"t":"code","b":[208,229],"m":"bne","oa":7654,"o":"r_1DE6"},{"a":7681,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":7683,"t":"code","b":[76,20,30],"m":"jmp","oa":7700,"o":"j_1E14"},{"a":7686,"l":"b_1E06","t":"code","b":[173,51,8],"m":"lda","oa":2099,"x":[7665,7674],"o":"taunted"},{"a":7689,"t":"code","b":[240,7],"m":"beq","oa":7698,"o":"b_1E12"},{"a":7691,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":7693,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":7696,"t":"code","b":[208,212],"m":"bne","oa":7654,"o":"r_1DE6"},{"a":7698,"l":"b_1E12","t":"code","b":[169,0],"m":"lda","x":[7689],"o":"#$00"},{"a":7700,"l":"j_1E14","t":"code","b":[133,149],"m":"sta","oa":149,"x":[7683],"o":"tmp95"},{"a":7702,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7704,"t":"code","b":[141,51,8],"m":"sta","oa":2099,"o":"taunted"},{"a":7707,"t":"code","b":[162,91],"m":"ldx","o":"#$5B"},{"a":7709,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":7711,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":7714,"t":"code","b":[173,69,4],"m":"lda","oa":1093,"o":"slot_target"},{"a":7717,"t":"code","b":[32,109,54],"m":"jsr","oa":13933,"o":"print_ship_label"},{"a":7720,"t":"code","b":[169,58],"m":"lda","o":"#$3A"},{"a":7722,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":7725,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"cursor_col"},{"a":7727,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7729,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":7732,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":7734,"t":"code","b":[172,69,4],"m":"ldy","oa":1093,"o":"slot_target"},{"a":7737,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":7740,"t":"code","b":[201,12],"m":"cmp","o":"#$0C"},{"a":7742,"t":"code","b":[208,4],"m":"bne","oa":7748,"o":"b_1E44"},{"a":7744,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":7746,"t":"code","b":[16,7],"m":"bpl","oa":7755,"o":"b_1E4B"},{"a":7748,"l":"b_1E44","t":"code","b":[185,51,4],"m":"lda","oa":1075,"x":[7742],"o":"slot_faction,y"},{"a":7751,"t":"code","b":[16,2],"m":"bpl","oa":7755,"o":"b_1E4B"},{"a":7753,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":7755,"l":"b_1E4B","t":"code","b":[10],"m":"asl","x":[7746,7751],"o":"a"},{"a":7756,"t":"code","b":[101,148],"m":"adc","oa":148,"o":"tmp94"},{"a":7758,"t":"code","b":[101,149],"m":"adc","oa":149,"o":"tmp95"},{"a":7760,"t":"code","b":[105,158],"m":"adc","o":"#$9E"},{"a":7762,"t":"code","b":[170],"m":"tax"},{"a":7763,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":7765,"t":"code","b":[105,206],"m":"adc","o":"#$CE"},{"a":7767,"t":"code","b":[168],"m":"tay"},{"a":7768,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":7771,"l":"str_empty","c":"An empty string: target_status prints it to clear the message line before its own text","t":"byte","b":[0]},{"a":7772,"l":"key_next_weapon","c":"Key R or full stop: selects the next weapon downwards ($0CFE 3, 2, 1, 0 and round), skipping a missile type the ship has none of ($0731 + weapon), then redraws ($3102)","t":"code","b":[206,254,12],"m":"dec","oa":3326,"x":[7790],"o":"weapon"},{"a":7775,"t":"code","b":[240,15],"m":"beq","oa":7792,"o":"b_1E70"},{"a":7777,"t":"code","b":[16,5],"m":"bpl","oa":7784,"o":"b_1E68"},{"a":7779,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":7781,"t":"code","b":[141,254,12],"m":"sta","oa":3326,"o":"weapon"},{"a":7784,"l":"b_1E68","t":"code","b":[172,254,12],"m":"ldy","oa":3326,"x":[7777],"o":"weapon"},{"a":7787,"t":"code","b":[185,49,7],"m":"lda","oa":1841,"o":"missile_count,y"},{"a":7790,"t":"code","b":[240,236],"m":"beq","oa":7772,"o":"key_next_weapon"},{"a":7792,"l":"b_1E70","t":"code","b":[76,2,49],"m":"jmp","oa":12546,"x":[7775],"o":"update_cockpit"},{"a":7795,"l":"random_offset","c":"Puts at ($78) the 9-byte position at ($74) moved by a random amount on each axis: the top two bytes of each coordinate (offsets 7, 4 and 1) get a random value from -R to R-1 added, where R is the word $60/$61 ($A27D gives a random number below 2R)","t":"code","b":[165,96],"m":"lda","oa":96,"x":[4819,5798,30773],"o":"acc_mid"},{"a":7797,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":7799,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":7801,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":7803,"t":"code","b":[6,96],"m":"asl","oa":96,"o":"acc_mid"},{"a":7805,"t":"code","b":[38,97],"m":"rol","oa":97,"o":"acc_hi"},{"a":7807,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":7809,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":7811,"l":"b_1E83","t":"code","b":[32,125,162],"m":"jsr","oa":41597,"x":[7850],"o":"random_word"},{"a":7814,"t":"code","b":[165,98],"m":"lda","oa":98,"o":"arg_lo"},{"a":7816,"t":"code","b":[56],"m":"sec"},{"a":7817,"t":"code","b":[229,133],"m":"sbc","oa":133,"o":"tmp85"},{"a":7819,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":7821,"t":"code","b":[165,99],"m":"lda","oa":99,"o":"arg_mid"},{"a":7823,"t":"code","b":[229,134],"m":"sbc","oa":134,"o":"tmp86"},{"a":7825,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":7827,"t":"code","b":[164,135],"m":"ldy","oa":135,"o":"tmp87"},{"a":7829,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":7831,"t":"code","b":[24],"m":"clc"},{"a":7832,"t":"code","b":[101,98],"m":"adc","oa":98,"o":"arg_lo"},{"a":7834,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":7836,"t":"code","b":[200],"m":"iny"},{"a":7837,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":7839,"t":"code","b":[101,99],"m":"adc","oa":99,"o":"arg_mid"},{"a":7841,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":7843,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":7845,"t":"code","b":[56],"m":"sec"},{"a":7846,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":7848,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":7850,"t":"code","b":[16,215],"m":"bpl","oa":7811,"o":"b_1E83"},{"a":7852,"t":"code","b":[96],"m":"rts"},{"a":7853,"l":"launch_missile","c":"Ship slot Y launches a missile of type X (9, 10 or 11). Not when its $0409 bit 0 is set. A computer ship needs no ship with $0403 set and a nonzero $0433 present; the player needs $0836 at zero and one of the type left ($0732 + type - 9). The missile is created ($7C52, create_object); for the player it plays effect 7, uses up one missile and sets $0836 to $7E. The missile's $0433 is the launcher, its speed $4B; unless it is type 11 or the launcher has no target, it takes the launcher's target, $041B = 3, and $043F = 4 (swerve) when a random number from 0 to 100 is under the target type's ECM ($0C2B) and the target is a ship whose ECM works ($0409 bit 5 clear), else 2 (pursue). It copies the launcher's $0545 block and 27-byte $044B block; a type 11 missile from a computer ship also gets $7C52/$92CC/$923E aiming work; its position comes from the launcher's ($9108, $934B, $9759)","t":"code","b":[185,9,4],"m":"lda","oa":1033,"x":[7631,7636,7641,14609],"o":"slot_damage,y"},{"a":7856,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":7858,"t":"code","b":[208,59],"m":"bne","oa":7919,"o":"r_1EEF"},{"a":7860,"t":"code","b":[132,158],"m":"sty","oa":158,"o":"model_polys"},{"a":7862,"t":"code","b":[134,159],"m":"stx","oa":159,"o":"model_axes"},{"a":7864,"t":"code","b":[152],"m":"tya"},{"a":7865,"t":"code","b":[240,22],"m":"beq","oa":7889,"o":"b_1ED1"},{"a":7867,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":7869,"l":"b_1EBD","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[7885],"o":"slot_in_use,y"},{"a":7872,"t":"code","b":[240,10],"m":"beq","oa":7884,"o":"b_1ECC"},{"a":7874,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":7877,"t":"code","b":[240,5],"m":"beq","oa":7884,"o":"b_1ECC"},{"a":7879,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":7882,"t":"code","b":[208,35],"m":"bne","oa":7919,"o":"r_1EEF"},{"a":7884,"l":"b_1ECC","t":"code","b":[136],"m":"dey","x":[7872,7877]},{"a":7885,"t":"code","b":[208,238],"m":"bne","oa":7869,"o":"b_1EBD"},{"a":7887,"t":"code","b":[240,16],"m":"beq","oa":7905,"o":"b_1EE1"},{"a":7889,"l":"b_1ED1","t":"code","b":[173,54,8],"m":"lda","oa":2102,"x":[7865],"o":"missile_reload"},{"a":7892,"t":"code","b":[208,25],"m":"bne","oa":7919,"o":"r_1EEF"},{"a":7894,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":7896,"t":"code","b":[56],"m":"sec"},{"a":7897,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":7899,"t":"code","b":[170],"m":"tax"},{"a":7900,"t":"code","b":[189,50,7],"m":"lda","oa":1842,"o":"missiles_sm1,x"},{"a":7903,"t":"code","b":[240,14],"m":"beq","oa":7919,"o":"r_1EEF"},{"a":7905,"l":"b_1EE1","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[7887],"o":"model_polys"},{"a":7907,"t":"code","b":[166,159],"m":"ldx","oa":159,"o":"model_axes"},{"a":7909,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":7912,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":7915,"t":"code","b":[132,160],"m":"sty","oa":160,"o":"model_reflist"},{"a":7917,"t":"code","b":[16,1],"m":"bpl","oa":7920,"o":"b_1EF0"},{"a":7919,"l":"r_1EEF","t":"code","b":[96],"m":"rts","x":[7858,7882,7892,7903]},{"a":7920,"l":"b_1EF0","t":"code","b":[165,158],"m":"lda","oa":158,"x":[7917],"o":"model_polys"},{"a":7922,"t":"code","b":[208,19],"m":"bne","oa":7943,"o":"b_1F07"},{"a":7924,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":7926,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":7929,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":7931,"t":"code","b":[56],"m":"sec"},{"a":7932,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":7934,"t":"code","b":[170],"m":"tax"},{"a":7935,"t":"code","b":[222,50,7],"m":"dec","oa":1842,"o":"missiles_sm1,x"},{"a":7938,"t":"code","b":[169,126],"m":"lda","o":"#$7E"},{"a":7940,"t":"code","b":[141,54,8],"m":"sta","oa":2102,"o":"missile_reload"},{"a":7943,"l":"b_1F07","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[7922],"o":"model_polys"},{"a":7945,"t":"code","b":[152],"m":"tya"},{"a":7946,"t":"code","b":[166,160],"m":"ldx","oa":160,"o":"model_reflist"},{"a":7948,"t":"code","b":[157,51,4],"m":"sta","oa":1075,"o":"slot_faction,x"},{"a":7951,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":7953,"t":"code","b":[157,21,4],"m":"sta","oa":1045,"o":"slot_speed,x"},{"a":7956,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":7958,"t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":7960,"t":"code","b":[240,57],"m":"beq","oa":8019,"o":"b_1F53"},{"a":7962,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":7965,"t":"code","b":[48,52],"m":"bmi","oa":8019,"o":"b_1F53"},{"a":7967,"t":"code","b":[157,69,4],"m":"sta","oa":1093,"o":"slot_target,x"},{"a":7970,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":7972,"t":"code","b":[157,27,4],"m":"sta","oa":1051,"o":"slot_ai_state,x"},{"a":7975,"t":"code","b":[188,69,4],"m":"ldy","oa":1093,"o":"slot_target,x"},{"a":7978,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":7980,"t":"code","b":[176,30],"m":"bcs","oa":8012,"o":"b_1F4C"},{"a":7982,"t":"code","b":[185,9,4],"m":"lda","oa":1033,"o":"slot_damage,y"},{"a":7985,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":7987,"t":"code","b":[208,23],"m":"bne","oa":8012,"o":"b_1F4C"},{"a":7989,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":7992,"t":"code","b":[189,43,12],"m":"lda","oa":3115,"o":"type_ecm,x"},{"a":7995,"t":"code","b":[133,161],"m":"sta","oa":161,"o":"zpa_A1"},{"a":7997,"t":"code","b":[240,13],"m":"beq","oa":8012,"o":"b_1F4C"},{"a":7999,"t":"code","b":[169,100],"m":"lda","o":"#$64"},{"a":8001,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":8004,"t":"code","b":[197,161],"m":"cmp","oa":161,"o":"zpa_A1"},{"a":8006,"t":"code","b":[176,4],"m":"bcs","oa":8012,"o":"b_1F4C"},{"a":8008,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":8010,"t":"code","b":[16,2],"m":"bpl","oa":8014,"o":"b_1F4E"},{"a":8012,"l":"b_1F4C","t":"code","b":[169,2],"m":"lda","x":[7980,7987,7997,8006],"o":"#$02"},{"a":8014,"l":"b_1F4E","t":"code","b":[166,160],"m":"ldx","oa":160,"x":[8010],"o":"model_reflist"},{"a":8016,"t":"code","b":[157,63,4],"m":"sta","oa":1087,"o":"slot_tactic,x"},{"a":8019,"l":"b_1F53","t":"code","b":[166,160],"m":"ldx","oa":160,"x":[7960,7965],"o":"model_reflist"},{"a":8021,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":8023,"t":"code","b":[24],"m":"clc"},{"a":8024,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":8027,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8029,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":8031,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8033,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8035,"t":"code","b":[166,158],"m":"ldx","oa":158,"o":"model_polys"},{"a":8037,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":8039,"t":"code","b":[24],"m":"clc"},{"a":8040,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":8043,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8045,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":8047,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8049,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8051,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":8054,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":8056,"t":"code","b":[24],"m":"clc"},{"a":8057,"t":"code","b":[125,60,8],"m":"adc","oa":2108,"o":"orient_offsets,x"},{"a":8060,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8062,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":8064,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8066,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8068,"t":"code","b":[166,160],"m":"ldx","oa":160,"o":"model_reflist"},{"a":8070,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":8072,"t":"code","b":[24],"m":"clc"},{"a":8073,"t":"code","b":[125,60,8],"m":"adc","oa":2108,"o":"orient_offsets,x"},{"a":8076,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8078,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":8080,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8082,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8084,"t":"code","b":[160,26],"m":"ldy","o":"#$1A"},{"a":8086,"l":"b_1F96","t":"code","b":[177,116],"m":"lda","oa":116,"x":[8091],"o":"(src1_ptr),y"},{"a":8088,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":8090,"t":"code","b":[136],"m":"dey"},{"a":8091,"t":"code","b":[16,249],"m":"bpl","oa":8086,"o":"b_1F96"},{"a":8093,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":8095,"t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":8097,"t":"code","b":[208,52],"m":"bne","oa":8151,"o":"b_1FD7"},{"a":8099,"t":"code","b":[164,158],"m":"ldy","oa":158,"o":"model_polys"},{"a":8101,"t":"code","b":[240,48],"m":"beq","oa":8151,"o":"b_1FD7"},{"a":8103,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":8106,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":8108,"t":"code","b":[24],"m":"clc"},{"a":8109,"t":"code","b":[105,18],"m":"adc","o":"#$12"},{"a":8111,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8113,"t":"code","b":[144,2],"m":"bcc","oa":8117,"o":"b_1FB5"},{"a":8115,"t":"code","b":[230,121],"m":"inc","oa":121,"o":"zpa_79"},{"a":8117,"l":"b_1FB5","t":"code","b":[190,69,4],"m":"ldx","oa":1093,"x":[8113],"o":"slot_target,y"},{"a":8120,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8122,"t":"code","b":[24],"m":"clc"},{"a":8123,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":8126,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8128,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8130,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8132,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8134,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":8137,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":8139,"t":"code","b":[56],"m":"sec"},{"a":8140,"t":"code","b":[233,18],"m":"sbc","o":"#$12"},{"a":8142,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8144,"t":"code","b":[176,2],"m":"bcs","oa":8148,"o":"b_1FD4"},{"a":8146,"t":"code","b":[198,121],"m":"dec","oa":121,"o":"zpa_79"},{"a":8148,"l":"b_1FD4","t":"code","b":[32,62,146],"m":"jsr","oa":37438,"x":[8144],"o":"mat_orthonormal"},{"a":8151,"l":"b_1FD7","t":"code","b":[169,24],"m":"lda","x":[8097,8101],"o":"#$18"},{"a":8153,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8155,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":8157,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8159,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":8161,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8163,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":8165,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8167,"t":"code","b":[166,160],"m":"ldx","oa":160,"o":"model_reflist"},{"a":8169,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8171,"t":"code","b":[24],"m":"clc"},{"a":8172,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":8175,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8177,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8179,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8181,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8183,"t":"code","b":[32,8,145],"m":"jsr","oa":37128,"o":"vec_times_rows"},{"a":8186,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":8188,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8190,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":8192,"l":"j_2000","t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8194,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":8197,"t":"code","b":[164,158],"m":"ldy","oa":158,"o":"model_polys"},{"a":8199,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8201,"t":"code","b":[24],"m":"clc"},{"a":8202,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":8205,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8207,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8209,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8211,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8213,"t":"code","b":[76,89,151],"m":"jmp","oa":38745,"o":"vec_add_lin"},{"a":8216,"l":"missile_launch_offset","c":"The 9-byte vector launch_missile adds ($9108, with the launcher's orientation) to put a new missile ahead of its launcher: three 3-byte coordinates","t":"byte","b":[156,230,0,0,0,255,0,0]},{"a":8224,"t":"byte","b":[255]},{"a":8225,"l":"advance_clock","c":"Advances the clock by A hours: each time the hours ($0720) pass 23 they go back to 0 and the date moves on a day ($203A)","t":"code","b":[170],"m":"tax","x":[10529]},{"a":8226,"t":"code","b":[240,21],"m":"beq","oa":8249,"o":"r_2039"},{"a":8228,"l":"b_2024","t":"code","b":[238,32,7],"m":"inc","oa":1824,"x":[8247],"o":"clock_hours"},{"a":8231,"t":"code","b":[173,32,7],"m":"lda","oa":1824,"o":"clock_hours"},{"a":8234,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":8236,"t":"code","b":[144,8],"m":"bcc","oa":8246,"o":"b_2036"},{"a":8238,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8240,"t":"code","b":[141,32,7],"m":"sta","oa":1824,"o":"clock_hours"},{"a":8243,"t":"code","b":[32,58,32],"m":"jsr","oa":8250,"o":"next_day"},{"a":8246,"l":"b_2036","t":"code","b":[202],"m":"dex","x":[8236]},{"a":8247,"t":"code","b":[208,235],"m":"bne","oa":8228,"o":"b_2024"},{"a":8249,"l":"r_2039","t":"code","b":[96],"m":"rts","x":[8226]},{"a":8250,"l":"next_day","c":"Moves the date on a day: counts days elapsed ($0724/$0725), then the day of the month ($0721) up to the month's length ($20AF), the month ($0722) up to 12 and the year ($0723) up to 99, each going back to 1 (the year to 0)","t":"code","b":[238,36,7],"m":"inc","oa":1828,"x":[8243],"o":"days_elapsed"},{"a":8253,"t":"code","b":[208,3],"m":"bne","oa":8258,"o":"b_2042"},{"a":8255,"t":"code","b":[238,37,7],"m":"inc","oa":1829,"o":"a_0725"},{"a":8258,"l":"b_2042","t":"code","b":[238,33,7],"m":"inc","oa":1825,"x":[8253],"o":"clock_day"},{"a":8261,"t":"code","b":[172,34,7],"m":"ldy","oa":1826,"o":"clock_month"},{"a":8264,"t":"code","b":[185,175,32],"m":"lda","oa":8367,"o":"month_days,y"},{"a":8267,"t":"code","b":[205,33,7],"m":"cmp","oa":1825,"o":"clock_day"},{"a":8270,"t":"code","b":[176,35],"m":"bcs","oa":8307,"o":"r_2073"},{"a":8272,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":8274,"t":"code","b":[141,33,7],"m":"sta","oa":1825,"o":"clock_day"},{"a":8277,"t":"code","b":[238,34,7],"m":"inc","oa":1826,"o":"clock_month"},{"a":8280,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":8282,"t":"code","b":[205,34,7],"m":"cmp","oa":1826,"o":"clock_month"},{"a":8285,"t":"code","b":[176,20],"m":"bcs","oa":8307,"o":"r_2073"},{"a":8287,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":8289,"t":"code","b":[141,34,7],"m":"sta","oa":1826,"o":"clock_month"},{"a":8292,"t":"code","b":[238,35,7],"m":"inc","oa":1827,"o":"clock_year"},{"a":8295,"t":"code","b":[169,99],"m":"lda","o":"#$63"},{"a":8297,"t":"code","b":[205,35,7],"m":"cmp","oa":1827,"o":"clock_year"},{"a":8300,"t":"code","b":[176,5],"m":"bcs","oa":8307,"o":"r_2073"},{"a":8302,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8304,"t":"code","b":[141,35,7],"m":"sta","oa":1827,"o":"clock_year"},{"a":8307,"l":"r_2073","t":"code","b":[96],"m":"rts","x":[8270,8285,8300]},{"a":8308,"l":"print_date","c":"Prints the date: the day ($9F56), a space, the month's three letters (from $20B8) and the year","t":"code","b":[173,33,7],"m":"lda","oa":1825,"x":[9646,10551],"o":"clock_day"},{"a":8311,"t":"code","b":[32,86,159],"m":"jsr","oa":40790,"o":"print_signed"},{"a":8314,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":8316,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":8319,"t":"code","b":[173,34,7],"m":"lda","oa":1826,"o":"clock_month"},{"a":8322,"t":"code","b":[10],"m":"asl","o":"a"},{"a":8323,"t":"code","b":[10],"m":"asl","o":"a"},{"a":8324,"t":"code","b":[24],"m":"clc"},{"a":8325,"t":"code","b":[105,184],"m":"adc","o":"#$B8"},{"a":8327,"t":"code","b":[170],"m":"tax"},{"a":8328,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":8330,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8332,"t":"code","b":[168],"m":"tay"},{"a":8333,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":8336,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":8338,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":8341,"t":"code","b":[173,35,7],"m":"lda","oa":1827,"o":"clock_year"},{"a":8344,"t":"code","b":[76,86,159],"m":"jmp","oa":40790,"o":"print_signed"},{"a":8347,"l":"print_time","c":"Prints the time: the hours ($0720, $9F56) and \":00 HRS\"","t":"code","b":[173,32,7],"m":"lda","oa":1824,"x":[9657,10540],"o":"clock_hours"},{"a":8350,"t":"code","b":[32,86,159],"m":"jsr","oa":40790,"o":"print_signed"},{"a":8353,"t":"code","b":[162,168],"m":"ldx","o":"#$A8"},{"a":8355,"t":"code","b":[160,32],"m":"ldy","o":"#$20"},{"a":8357,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":8360,"l":"str_hrs","c":"\":00 HRS\", printed after the hours","t":"byte","b":[58,48,48,32,72,82,83]},{"a":8367,"l":"month_days","c":"The length of each month, indexed by month 1-12 (the byte before January is the string's end): 31 28 31 30 31 30 31 31 30 31 30 31","t":"byte","b":[0,31,28,31,30,31,30,31],"x":[8264]},{"a":8375,"t":"byte","b":[31,30,31,30,31]},{"a":8380,"l":"month_names","c":"The months' names, four bytes each with a zero, JAN to DEC: print_date finds month m at $20B8 + 4m","t":"byte","b":[74,65,78,0,70,69,66,0]},{"a":8388,"t":"byte","b":[77,65,82,0,65,80,82,0]},{"a":8396,"t":"byte","b":[77,65,89,0,74,85,78,0]},{"a":8404,"t":"byte","b":[74,85,76,0,65,85,71,0]},{"a":8412,"t":"byte","b":[83,69,80,0,79,67,84,0]},{"a":8420,"t":"byte","b":[78,79,86,0,68,69,67,0]},{"a":8428,"l":"fire_beam","c":"Ship slot Y fires its beam, if its $0409 bit 1 is clear and its type has a beam ($0C52, kept in $A9). The player's beam goes along the ship's own axis (the vector at $045D); a computer ship's goes toward its target, the direction worked out into $0896 ($7C52, $92CC, $9669); no target, no shot. trace_beam finds what it hits. A player with no target draws the beam ($2279) with effect 12 even when it hits nothing; a computer ship's miss, and the player's miss with a target, draw nothing. A hit on the shooter's target does the damage ($2222); the player's beam also hits a ship slot (0-5) it was not aimed at when that ship's type does damage ($0AEF) and its $0433 is not 0 (the player's own missiles, and ships of faction 0, are passed through). Each shot of the player's adds one to the beam heat $0D00, up to 8","t":"code","b":[132,168],"m":"sty","oa":168,"x":[4694,7644,14630],"o":"model_refpts"},{"a":8430,"t":"code","b":[185,9,4],"m":"lda","oa":1033,"o":"slot_damage,y"},{"a":8433,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":8435,"t":"code","b":[208,28],"m":"bne","oa":8465,"o":"r_2111"},{"a":8437,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":8440,"t":"code","b":[189,82,12],"m":"lda","oa":3154,"o":"type_beam,x"},{"a":8443,"t":"code","b":[133,169],"m":"sta","oa":169,"o":"zpa_A9"},{"a":8445,"t":"code","b":[240,18],"m":"beq","oa":8465,"o":"r_2111"},{"a":8447,"t":"code","b":[152],"m":"tya"},{"a":8448,"t":"code","b":[208,10],"m":"bne","oa":8460,"o":"b_210C"},{"a":8450,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8452,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8454,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":8456,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8458,"t":"code","b":[208,45],"m":"bne","oa":8505,"o":"b_2139"},{"a":8460,"l":"b_210C","t":"code","b":[190,69,4],"m":"ldx","oa":1093,"x":[8448],"o":"slot_target,y"},{"a":8463,"t":"code","b":[16,1],"m":"bpl","oa":8466,"o":"b_2112"},{"a":8465,"l":"r_2111","t":"code","b":[96],"m":"rts","x":[8435,8445]},{"a":8466,"l":"b_2112","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[8463],"o":"slot_pos_ptr"},{"a":8469,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8471,"t":"code","b":[24],"m":"clc"},{"a":8472,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":8475,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8477,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8479,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8481,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8483,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8485,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8487,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8489,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8491,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":8494,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8496,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8498,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8500,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8502,"t":"code","b":[32,105,150],"m":"jsr","oa":38505,"o":"vec_normalise"},{"a":8505,"l":"b_2139","t":"code","b":[164,168],"m":"ldy","oa":168,"x":[8458],"o":"model_refpts"},{"a":8507,"t":"code","b":[32,137,33],"m":"jsr","oa":8585,"o":"trace_beam"},{"a":8510,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":8512,"t":"code","b":[208,21],"m":"bne","oa":8535,"o":"b_2157"},{"a":8514,"t":"code","b":[190,69,4],"m":"ldx","oa":1093,"o":"slot_target,y"},{"a":8517,"t":"code","b":[16,16],"m":"bpl","oa":8535,"o":"b_2157"},{"a":8519,"t":"code","b":[170],"m":"tax"},{"a":8520,"t":"code","b":[16,43],"m":"bpl","oa":8565,"o":"b_2175"},{"a":8522,"t":"code","b":[165,169],"m":"lda","oa":169,"o":"zpa_A9"},{"a":8524,"t":"code","b":[32,121,34],"m":"jsr","oa":8825,"o":"draw_beam"},{"a":8527,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":8529,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":8532,"t":"code","b":[76,126,33],"m":"jmp","oa":8574,"o":"j_217E"},{"a":8535,"l":"b_2157","t":"code","b":[170],"m":"tax","x":[8512,8517]},{"a":8536,"t":"code","b":[48,46],"m":"bmi","oa":8584,"o":"r_2188"},{"a":8538,"t":"code","b":[217,69,4],"m":"cmp","oa":1093,"o":"slot_target,y"},{"a":8541,"t":"code","b":[240,22],"m":"beq","oa":8565,"o":"b_2175"},{"a":8543,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":8545,"t":"code","b":[176,37],"m":"bcs","oa":8584,"o":"r_2188"},{"a":8547,"t":"code","b":[188,13,6],"m":"ldy","oa":1549,"o":"slot_type,x"},{"a":8550,"t":"code","b":[185,239,10],"m":"lda","oa":2799,"o":"type_damage,y"},{"a":8553,"t":"code","b":[240,29],"m":"beq","oa":8584,"o":"r_2188"},{"a":8555,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":8557,"t":"code","b":[208,25],"m":"bne","oa":8584,"o":"r_2188"},{"a":8559,"t":"code","b":[152],"m":"tya"},{"a":8560,"t":"code","b":[221,51,4],"m":"cmp","oa":1075,"o":"slot_faction,x"},{"a":8563,"t":"code","b":[240,19],"m":"beq","oa":8584,"o":"r_2188"},{"a":8565,"l":"b_2175","t":"code","b":[165,169],"m":"lda","oa":169,"x":[8520,8541],"o":"zpa_A9"},{"a":8567,"t":"code","b":[32,34,34],"m":"jsr","oa":8738,"o":"beam_hit"},{"a":8570,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":8572,"t":"code","b":[208,10],"m":"bne","oa":8584,"o":"r_2188"},{"a":8574,"l":"j_217E","t":"code","b":[173,0,13],"m":"lda","oa":3328,"x":[8532],"o":"beam_heat"},{"a":8577,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":8579,"t":"code","b":[240,3],"m":"beq","oa":8584,"o":"r_2188"},{"a":8581,"t":"code","b":[238,0,13],"m":"inc","oa":3328,"o":"beam_heat"},{"a":8584,"l":"r_2188","t":"code","b":[96],"m":"rts","x":[8536,8545,8553,8557,8563,8572,8579]},{"a":8585,"l":"trace_beam","c":"Follows the beam from ship slot $A8 in 50 steps along the direction at ($74) (scaled by $95A0 and $934B by the log $0300 with its sign turned, into $0896): at each step every object with a hit radius ($0635) other than the shooter is tested ($74A3) against its type's radius ($0A1D) plus 2. Returns the first slot hit, or $FF","t":"code","b":[169,0],"m":"lda","x":[8507],"o":"#$00"},{"a":8587,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":8589,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":8591,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":8593,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":8595,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":8597,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8599,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8601,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8603,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8605,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":8608,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8610,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8612,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8614,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8616,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":8619,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8621,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8623,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8625,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8627,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":8629,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":8632,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":8634,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8636,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8638,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8640,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":8643,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":8645,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8647,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8649,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8651,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":8653,"t":"code","b":[133,172],"m":"sta","oa":172,"o":"model_normref"},{"a":8655,"l":"b_21CF","t":"code","b":[32,89,151],"m":"jsr","oa":38745,"x":[8730],"o":"vec_add_lin"},{"a":8658,"t":"code","b":[162,19],"m":"ldx","o":"#$13"},{"a":8660,"t":"code","b":[134,170],"m":"stx","oa":170,"o":"model_normvec"},{"a":8662,"l":"b_21D6","t":"code","b":[189,53,6],"m":"lda","oa":1589,"x":[8726],"o":"slot_solid,x"},{"a":8665,"t":"code","b":[240,55],"m":"beq","oa":8722,"o":"b_2212"},{"a":8667,"t":"code","b":[228,168],"m":"cpx","oa":168,"o":"model_refpts"},{"a":8669,"t":"code","b":[240,51],"m":"beq","oa":8722,"o":"b_2212"},{"a":8671,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":8674,"t":"code","b":[10],"m":"asl","o":"a"},{"a":8675,"t":"code","b":[168],"m":"tay"},{"a":8676,"t":"code","b":[185,29,10],"m":"lda","oa":2589,"o":"type_radius,y"},{"a":8679,"t":"code","b":[24],"m":"clc"},{"a":8680,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":8682,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":8684,"t":"code","b":[185,30,10],"m":"lda","oa":2590,"o":"f_0A1E,y"},{"a":8687,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8689,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":8691,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":8693,"t":"code","b":[72],"m":"pha"},{"a":8694,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":8696,"t":"code","b":[72],"m":"pha"},{"a":8697,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8699,"t":"code","b":[24],"m":"clc"},{"a":8700,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":8703,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8705,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8707,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":8709,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8711,"t":"code","b":[32,163,116],"m":"jsr","oa":29859,"o":"within_range"},{"a":8714,"t":"code","b":[104],"m":"pla"},{"a":8715,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8717,"t":"code","b":[104],"m":"pla"},{"a":8718,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8720,"t":"code","b":[176,13],"m":"bcs","oa":8735,"o":"b_221F"},{"a":8722,"l":"b_2212","t":"code","b":[198,170],"m":"dec","oa":170,"x":[8665,8669],"o":"model_normvec"},{"a":8724,"t":"code","b":[166,170],"m":"ldx","oa":170,"o":"model_normvec"},{"a":8726,"t":"code","b":[16,190],"m":"bpl","oa":8662,"o":"b_21D6"},{"a":8728,"t":"code","b":[198,172],"m":"dec","oa":172,"o":"model_normref"},{"a":8730,"t":"code","b":[208,179],"m":"bne","oa":8655,"o":"b_21CF"},{"a":8732,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":8734,"t":"code","b":[96],"m":"rts"},{"a":8735,"l":"b_221F","t":"code","b":[165,170],"m":"lda","oa":170,"x":[8720],"o":"model_normvec"},{"a":8737,"t":"code","b":[96],"m":"rts"},{"a":8738,"l":"beam_hit","c":"The beam from slot $B2 hits slot $B3 with power $B4: draws it ($2279); effect 12 when the player fired; effect 1 and $0835 = $FF when the player is hit, effect 0 when one computer ship hits another. The damage is the table entry at $2414 for the power's low three bits, halved once for each step of the player's beam heat ($0D00); power 4 passes A = $FF, so the shields do not reduce it, the others A = 1, so the shields count one step less. Ends in $6EA0 with the shooter in X and the victim in Y","t":"code","b":[132,178],"m":"sty","oa":178,"x":[8567],"o":"model_backcol"},{"a":8740,"t":"code","b":[134,179],"m":"stx","oa":179,"o":"zpa_B3"},{"a":8742,"t":"code","b":[133,180],"m":"sta","oa":180,"o":"model_frontcol"},{"a":8744,"t":"code","b":[32,121,34],"m":"jsr","oa":8825,"o":"draw_beam"},{"a":8747,"t":"code","b":[164,178],"m":"ldy","oa":178,"o":"model_backcol"},{"a":8749,"t":"code","b":[208,5],"m":"bne","oa":8756,"o":"b_2234"},{"a":8751,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":8753,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":8756,"l":"b_2234","t":"code","b":[166,179],"m":"ldx","oa":179,"x":[8749],"o":"zpa_B3"},{"a":8758,"t":"code","b":[208,12],"m":"bne","oa":8772,"o":"b_2244"},{"a":8760,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":8762,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":8765,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":8767,"t":"code","b":[141,53,8],"m":"sta","oa":2101,"o":"killer"},{"a":8770,"t":"code","b":[48,9],"m":"bmi","oa":8781,"o":"b_224D"},{"a":8772,"l":"b_2244","t":"code","b":[164,178],"m":"ldy","oa":178,"x":[8758],"o":"model_backcol"},{"a":8774,"t":"code","b":[240,5],"m":"beq","oa":8781,"o":"b_224D"},{"a":8776,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8778,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":8781,"l":"b_224D","t":"code","b":[165,180],"m":"lda","oa":180,"x":[8770,8774],"o":"model_frontcol"},{"a":8783,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":8785,"t":"code","b":[168],"m":"tay"},{"a":8786,"t":"code","b":[185,20,36],"m":"lda","oa":9236,"o":"beam_damage,y"},{"a":8789,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":8791,"t":"code","b":[164,178],"m":"ldy","oa":178,"o":"model_backcol"},{"a":8793,"t":"code","b":[208,10],"m":"bne","oa":8805,"o":"b_2265"},{"a":8795,"t":"code","b":[173,0,13],"m":"lda","oa":3328,"o":"beam_heat"},{"a":8798,"t":"code","b":[240,5],"m":"beq","oa":8805,"o":"b_2265"},{"a":8800,"l":"b_2260","t":"code","b":[70,128],"m":"lsr","oa":128,"x":[8803],"o":"tmp80"},{"a":8802,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":8803,"t":"code","b":[208,251],"m":"bne","oa":8800,"o":"b_2260"},{"a":8805,"l":"b_2265","t":"code","b":[162,1],"m":"ldx","x":[8793,8798],"o":"#$01"},{"a":8807,"t":"code","b":[165,180],"m":"lda","oa":180,"o":"model_frontcol"},{"a":8809,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":8811,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":8813,"t":"code","b":[208,2],"m":"bne","oa":8817,"o":"b_2271"},{"a":8815,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":8817,"l":"b_2271","t":"code","b":[138],"m":"txa","x":[8813]},{"a":8818,"t":"code","b":[166,178],"m":"ldx","oa":178,"o":"model_backcol"},{"a":8820,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":8822,"t":"code","b":[76,160,110],"m":"jmp","oa":28320,"o":"damage"},{"a":8825,"l":"draw_beam","c":"Draws a beam shot from slot $B2 at slot $B3 with power $B4, its pattern from $2410 ($8F80). From the player in the cockpit view ($0D3C = 0) it fills the two triangles of the cockpit's guns ($23F9 and $2405) between screen updates ($8EEB); a computer ship's beam that hits the player flashes the window ($901D). Otherwise it projects both ends ($23BA), skipping the shot when either is behind the viewer, and fills a thin triangle ($8288 with 3 corners at $FD00): the near end, the far end, and the far end moved 4 pixels along the shorter axis","t":"code","b":[132,178],"m":"sty","oa":178,"x":[8524,8744],"o":"model_backcol"},{"a":8827,"t":"code","b":[134,179],"m":"stx","oa":179,"o":"zpa_B3"},{"a":8829,"t":"code","b":[133,180],"m":"sta","oa":180,"o":"model_frontcol"},{"a":8831,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":8833,"t":"code","b":[168],"m":"tay"},{"a":8834,"t":"code","b":[190,16,36],"m":"ldx","oa":9232,"o":"beam_patterns,y"},{"a":8837,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":8840,"t":"code","b":[164,178],"m":"ldy","oa":178,"o":"model_backcol"},{"a":8842,"t":"code","b":[208,48],"m":"bne","oa":8892,"o":"b_22BC"},{"a":8844,"t":"code","b":[173,60,13],"m":"lda","oa":3388,"o":"view_mode"},{"a":8847,"t":"code","b":[208,51],"m":"bne","oa":8900,"o":"b_22C4"},{"a":8849,"t":"code","b":[32,235,142],"m":"jsr","oa":36587,"o":"flip_draw_buffer"},{"a":8852,"t":"code","b":[160,11],"m":"ldy","o":"#$0B"},{"a":8854,"l":"b_2296","t":"code","b":[185,249,35],"m":"lda","oa":9209,"x":[8861],"o":"cockpit_beam_shapes,y"},{"a":8857,"t":"code","b":[153,0,253],"m":"sta","oa":64768,"o":"f_FD00,y"},{"a":8860,"t":"code","b":[136],"m":"dey"},{"a":8861,"t":"code","b":[16,247],"m":"bpl","oa":8854,"o":"b_2296"},{"a":8863,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":8865,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":8867,"t":"code","b":[32,136,130],"m":"jsr","oa":33416,"o":"fill_polygon"},{"a":8870,"t":"code","b":[160,11],"m":"ldy","o":"#$0B"},{"a":8872,"l":"b_22A8","t":"code","b":[185,5,36],"m":"lda","oa":9221,"x":[8879],"o":"f_2405,y"},{"a":8875,"t":"code","b":[153,0,253],"m":"sta","oa":64768,"o":"f_FD00,y"},{"a":8878,"t":"code","b":[136],"m":"dey"},{"a":8879,"t":"code","b":[16,247],"m":"bpl","oa":8872,"o":"b_22A8"},{"a":8881,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":8883,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":8885,"t":"code","b":[32,136,130],"m":"jsr","oa":33416,"o":"fill_polygon"},{"a":8888,"t":"code","b":[32,235,142],"m":"jsr","oa":36587,"o":"flip_draw_buffer"},{"a":8891,"t":"code","b":[96],"m":"rts"},{"a":8892,"l":"b_22BC","t":"code","b":[166,179],"m":"ldx","oa":179,"x":[8842],"o":"zpa_B3"},{"a":8894,"t":"code","b":[208,4],"m":"bne","oa":8900,"o":"b_22C4"},{"a":8896,"t":"code","b":[76,29,144],"m":"jmp","oa":36893,"o":"fill_window"},{"a":8899,"l":"r_22C3","t":"code","b":[96],"m":"rts","x":[8906,8994]},{"a":8900,"l":"b_22C4","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[8847,8894],"o":"slot_pos_ptr"},{"a":8903,"t":"code","b":[32,186,35],"m":"jsr","oa":9146,"o":"project_point"},{"a":8906,"t":"code","b":[16,247],"m":"bpl","oa":8899,"o":"r_22C3"},{"a":8908,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":8910,"t":"code","b":[141,0,253],"m":"sta","oa":64768,"o":"f_FD00"},{"a":8913,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":8915,"t":"code","b":[141,1,253],"m":"sta","oa":64769,"o":"a_FD01"},{"a":8918,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":8920,"t":"code","b":[141,2,253],"m":"sta","oa":64770,"o":"a_FD02"},{"a":8923,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":8925,"t":"code","b":[141,3,253],"m":"sta","oa":64771,"o":"a_FD03"},{"a":8928,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":8930,"t":"code","b":[16,56],"m":"bpl","oa":8988,"o":"b_231C"},{"a":8932,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8934,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8936,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":8938,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8940,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8942,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":8944,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8946,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":8948,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":8950,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":8952,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8954,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":8956,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":8958,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":8960,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":8963,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":8965,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":8967,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":8969,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":8971,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":8974,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":8976,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":8978,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":8980,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":8982,"t":"code","b":[32,89,151],"m":"jsr","oa":38745,"o":"vec_add_lin"},{"a":8985,"t":"code","b":[76,31,35],"m":"jmp","oa":8991,"o":"j_231F"},{"a":8988,"l":"b_231C","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[8930],"o":"slot_pos_ptr"},{"a":8991,"l":"j_231F","t":"code","b":[32,186,35],"m":"jsr","oa":9146,"x":[8985],"o":"project_point"},{"a":8994,"t":"code","b":[16,159],"m":"bpl","oa":8899,"o":"r_22C3"},{"a":8996,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":8998,"t":"code","b":[141,4,253],"m":"sta","oa":64772,"o":"a_FD04"},{"a":9001,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":9003,"t":"code","b":[141,5,253],"m":"sta","oa":64773,"o":"a_FD05"},{"a":9006,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":9008,"t":"code","b":[141,6,253],"m":"sta","oa":64774,"o":"a_FD06"},{"a":9011,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":9013,"t":"code","b":[141,7,253],"m":"sta","oa":64775,"o":"a_FD07"},{"a":9016,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":9018,"t":"code","b":[56],"m":"sec"},{"a":9019,"t":"code","b":[237,0,253],"m":"sbc","oa":64768,"o":"f_FD00"},{"a":9022,"t":"code","b":[133,181],"m":"sta","oa":181,"o":"zpa_B5"},{"a":9024,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":9026,"t":"code","b":[237,1,253],"m":"sbc","oa":64769,"o":"a_FD01"},{"a":9029,"t":"code","b":[133,182],"m":"sta","oa":182,"o":"model_vertlists"},{"a":9031,"t":"code","b":[16,13],"m":"bpl","oa":9046,"o":"b_2356"},{"a":9033,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9035,"t":"code","b":[56],"m":"sec"},{"a":9036,"t":"code","b":[229,181],"m":"sbc","oa":181,"o":"zpa_B5"},{"a":9038,"t":"code","b":[133,181],"m":"sta","oa":181,"o":"zpa_B5"},{"a":9040,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9042,"t":"code","b":[229,182],"m":"sbc","oa":182,"o":"model_vertlists"},{"a":9044,"t":"code","b":[133,182],"m":"sta","oa":182,"o":"model_vertlists"},{"a":9046,"l":"b_2356","t":"code","b":[165,83],"m":"lda","oa":83,"x":[9031],"o":"screen_y"},{"a":9048,"t":"code","b":[56],"m":"sec"},{"a":9049,"t":"code","b":[237,2,253],"m":"sbc","oa":64770,"o":"a_FD02"},{"a":9052,"t":"code","b":[133,183],"m":"sta","oa":183,"o":"zpa_B7"},{"a":9054,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":9056,"t":"code","b":[237,3,253],"m":"sbc","oa":64771,"o":"a_FD03"},{"a":9059,"t":"code","b":[133,184],"m":"sta","oa":184,"o":"model_vertcounts"},{"a":9061,"t":"code","b":[16,13],"m":"bpl","oa":9076,"o":"b_2374"},{"a":9063,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9065,"t":"code","b":[56],"m":"sec"},{"a":9066,"t":"code","b":[229,183],"m":"sbc","oa":183,"o":"zpa_B7"},{"a":9068,"t":"code","b":[133,183],"m":"sta","oa":183,"o":"zpa_B7"},{"a":9070,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9072,"t":"code","b":[229,184],"m":"sbc","oa":184,"o":"model_vertcounts"},{"a":9074,"t":"code","b":[133,184],"m":"sta","oa":184,"o":"model_vertcounts"},{"a":9076,"l":"b_2374","t":"code","b":[165,181],"m":"lda","oa":181,"x":[9061],"o":"zpa_B5"},{"a":9078,"t":"code","b":[197,183],"m":"cmp","oa":183,"o":"zpa_B7"},{"a":9080,"t":"code","b":[165,182],"m":"lda","oa":182,"o":"model_vertlists"},{"a":9082,"t":"code","b":[229,184],"m":"sbc","oa":184,"o":"model_vertcounts"},{"a":9084,"t":"code","b":[176,28],"m":"bcs","oa":9114,"o":"b_239A"},{"a":9086,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":9088,"t":"code","b":[24],"m":"clc"},{"a":9089,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":9091,"t":"code","b":[141,8,253],"m":"sta","oa":64776,"o":"a_FD08"},{"a":9094,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":9096,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":9098,"t":"code","b":[141,9,253],"m":"sta","oa":64777,"o":"a_FD09"},{"a":9101,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":9103,"t":"code","b":[141,10,253],"m":"sta","oa":64778,"o":"a_FD0A"},{"a":9106,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":9108,"t":"code","b":[141,11,253],"m":"sta","oa":64779,"o":"a_FD0B"},{"a":9111,"t":"code","b":[76,179,35],"m":"jmp","oa":9139,"o":"j_23B3"},{"a":9114,"l":"b_239A","t":"code","b":[165,81],"m":"lda","oa":81,"x":[9084],"o":"screen_x"},{"a":9116,"t":"code","b":[141,8,253],"m":"sta","oa":64776,"o":"a_FD08"},{"a":9119,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":9121,"t":"code","b":[141,9,253],"m":"sta","oa":64777,"o":"a_FD09"},{"a":9124,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":9126,"t":"code","b":[24],"m":"clc"},{"a":9127,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":9129,"t":"code","b":[141,10,253],"m":"sta","oa":64778,"o":"a_FD0A"},{"a":9132,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":9134,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":9136,"t":"code","b":[141,11,253],"m":"sta","oa":64779,"o":"a_FD0B"},{"a":9139,"l":"j_23B3","t":"code","b":[169,3],"m":"lda","x":[9111],"o":"#$03"},{"a":9141,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":9143,"t":"code","b":[76,136,130],"m":"jmp","oa":33416,"o":"fill_polygon"},{"a":9146,"l":"project_point","c":"Projects the point at ($74) for the beam as the camera sees it ($58 its position, $5A its orientation): subtracts ($92CC), rotates into the view ($9160 into $0896) and projects ($6773); returns $089E's sign (negative when the point is in front)","t":"code","b":[165,88],"m":"lda","oa":88,"x":[8903,8991],"o":"camera_pos_ptr"},{"a":9148,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":9150,"t":"code","b":[165,89],"m":"lda","oa":89,"o":"zpa_59"},{"a":9152,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":9154,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":9156,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":9158,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9160,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":9162,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":9165,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":9167,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":9169,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9171,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":9173,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"camera_orient_ptr"},{"a":9175,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":9177,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":9179,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":9181,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":9183,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":9185,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":9187,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":9189,"t":"code","b":[32,96,145],"m":"jsr","oa":37216,"o":"mat_times_vec"},{"a":9192,"t":"code","b":[173,158,8],"m":"lda","oa":2206,"o":"a_089E"},{"a":9195,"t":"code","b":[72],"m":"pha"},{"a":9196,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":9198,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":9200,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":9202,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":9204,"t":"code","b":[32,115,103],"m":"jsr","oa":26483,"o":"project"},{"a":9207,"t":"code","b":[104],"m":"pla"},{"a":9208,"t":"code","b":[96],"m":"rts"},{"a":9209,"l":"cockpit_beam_shapes","c":"The two triangles draw_beam fills for the player's beam in the cockpit view, three corners of two words (x, y) each: (-2,0) (113,45) (23,0) from the top left, and at $2405 (252,0) (137,45) (227,0) from the top right, meeting near the view's centre","t":"byte","b":[254,255,0,0,113,0,45,0],"x":[8854]},{"a":9217,"t":"byte","b":[23,0,0,0]},{"a":9221,"l":"f_2405","c":"The right-hand gun's triangle for cockpit_beam_shapes: (252,0) (137,45) (227,0)","t":"byte","b":[252,0,0,0,137,0,45,0],"x":[8872]},{"a":9229,"t":"byte","b":[227,0,0]},{"a":9232,"l":"beam_patterns","c":"The fill value draw_beam passes to $8F80 for each power value 0-3","t":"byte","b":[0,105,113,121],"x":[8834]},{"a":9236,"l":"beam_damage","c":"The damage of a beam hit for each power value 0-3","t":"byte","b":[0,10,15,20,20],"x":[8786]},{"a":9241,"l":"joystick_flight","c":"Called by do_key before the keys: reads the joysticks. Fire on the joystick in port 2 fires the selected weapon. Up and down on the joystick in port 1 change the player's speed ($0415) by one, held at $46 and -$46, and refuse to cross zero in one push (a push from zero needs $0D01 clear); in Newtonian flight ($0D02) neither changes the speed. The direction pushed is kept in $0D01 (1, $FF or 0). Then, while $0D03 is set (no key pressed since a stick was used), the port 2 stick's smoothed position ($A3B1) sets the pitch ($0508) and turn ($0516) rates directly through joy_rates","t":"code","b":[173,2,13],"m":"lda","oa":3330,"x":[4959],"o":"newtonian"},{"a":9244,"t":"code","b":[240,5],"m":"beq","oa":9251,"o":"b_2423"},{"a":9246,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9248,"t":"code","b":[141,1,13],"m":"sta","oa":3329,"o":"thrust_dir"},{"a":9251,"l":"b_2423","t":"code","b":[32,44,36],"m":"jsr","oa":9260,"x":[9244],"o":"joystick_speed"},{"a":9254,"t":"code","b":[142,1,13],"m":"stx","oa":3329,"o":"thrust_dir"},{"a":9257,"t":"code","b":[76,132,36],"m":"jmp","oa":9348,"o":"joystick_steer"},{"a":9260,"l":"joystick_speed","c":"The fire and speed part of joystick_flight: fire from port 2 (read_joystick2), up and down from port 1 (read_joystick1); returns X = $FF after a push forward, 1 after a pull back, 0 otherwise","t":"code","b":[32,86,164],"m":"jsr","oa":42070,"x":[9251],"o":"read_joystick2"},{"a":9263,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":9265,"t":"code","b":[240,6],"m":"beq","oa":9273,"o":"b_2439"},{"a":9267,"t":"code","b":[32,190,29],"m":"jsr","oa":7614,"o":"key_fire"},{"a":9270,"l":"b_2436","t":"code","b":[162,0],"m":"ldx","x":[9317],"o":"#$00"},{"a":9272,"t":"code","b":[96],"m":"rts"},{"a":9273,"l":"b_2439","t":"code","b":[32,76,164],"m":"jsr","oa":42060,"x":[9265],"o":"read_joystick1"},{"a":9276,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":9278,"t":"code","b":[240,32],"m":"beq","oa":9312,"o":"b_2460"},{"a":9280,"t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":9283,"t":"code","b":[208,21],"m":"bne","oa":9306,"o":"b_245A"},{"a":9285,"t":"code","b":[173,21,4],"m":"lda","oa":1045,"o":"slot_speed"},{"a":9288,"t":"code","b":[48,4],"m":"bmi","oa":9294,"o":"b_244E"},{"a":9290,"t":"code","b":[201,70],"m":"cmp","o":"#$46"},{"a":9292,"t":"code","b":[176,15],"m":"bcs","oa":9309,"o":"b_245D"},{"a":9294,"l":"b_244E","t":"code","b":[201,0],"m":"cmp","x":[9288],"o":"#$00"},{"a":9296,"t":"code","b":[208,5],"m":"bne","oa":9303,"o":"b_2457"},{"a":9298,"t":"code","b":[173,1,13],"m":"lda","oa":3329,"o":"thrust_dir"},{"a":9301,"t":"code","b":[208,3],"m":"bne","oa":9306,"o":"b_245A"},{"a":9303,"l":"b_2457","t":"code","b":[238,21,4],"m":"inc","oa":1045,"x":[9296],"o":"slot_speed"},{"a":9306,"l":"b_245A","t":"code","b":[162,255],"m":"ldx","x":[9283,9301],"o":"#$FF"},{"a":9308,"t":"code","b":[96],"m":"rts"},{"a":9309,"l":"b_245D","t":"code","b":[162,0],"m":"ldx","x":[9292,9331],"o":"#$00"},{"a":9311,"t":"code","b":[96],"m":"rts"},{"a":9312,"l":"b_2460","t":"code","b":[32,76,164],"m":"jsr","oa":42060,"x":[9278],"o":"read_joystick1"},{"a":9315,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":9317,"t":"code","b":[240,207],"m":"beq","oa":9270,"o":"b_2436"},{"a":9319,"t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":9322,"t":"code","b":[208,21],"m":"bne","oa":9345,"o":"b_2481"},{"a":9324,"t":"code","b":[173,21,4],"m":"lda","oa":1045,"o":"slot_speed"},{"a":9327,"t":"code","b":[16,4],"m":"bpl","oa":9333,"o":"b_2475"},{"a":9329,"t":"code","b":[201,187],"m":"cmp","o":"#$BB"},{"a":9331,"t":"code","b":[144,232],"m":"bcc","oa":9309,"o":"b_245D"},{"a":9333,"l":"b_2475","t":"code","b":[201,0],"m":"cmp","x":[9327],"o":"#$00"},{"a":9335,"t":"code","b":[208,5],"m":"bne","oa":9342,"o":"b_247E"},{"a":9337,"t":"code","b":[173,1,13],"m":"lda","oa":3329,"o":"thrust_dir"},{"a":9340,"t":"code","b":[208,3],"m":"bne","oa":9345,"o":"b_2481"},{"a":9342,"l":"b_247E","t":"code","b":[206,21,4],"m":"dec","oa":1045,"x":[9335],"o":"slot_speed"},{"a":9345,"l":"b_2481","t":"code","b":[162,1],"m":"ldx","x":[9322,9340],"o":"#$01"},{"a":9347,"t":"code","b":[96],"m":"rts"},{"a":9348,"l":"joystick_steer","c":"Sets the pitch and turn rates from the stick's smoothed X and Y ($A3B1), each divided by 8 and looked up in joy_rates, while $0D03 is set","t":"code","b":[32,177,163],"m":"jsr","oa":41905,"x":[9257],"o":"joystick_eased"},{"a":9351,"t":"code","b":[173,3,13],"m":"lda","oa":3331,"o":"joy_used"},{"a":9354,"t":"code","b":[240,22],"m":"beq","oa":9378,"o":"r_24A2"},{"a":9356,"t":"code","b":[152],"m":"tya"},{"a":9357,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9358,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9359,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9360,"t":"code","b":[168],"m":"tay"},{"a":9361,"t":"code","b":[185,163,36],"m":"lda","oa":9379,"o":"joy_rates,y"},{"a":9364,"t":"code","b":[141,8,5],"m":"sta","oa":1288,"o":"slot_pitch"},{"a":9367,"t":"code","b":[138],"m":"txa"},{"a":9368,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9369,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9370,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9371,"t":"code","b":[168],"m":"tay"},{"a":9372,"t":"code","b":[185,163,36],"m":"lda","oa":9379,"o":"joy_rates,y"},{"a":9375,"t":"code","b":[141,22,5],"m":"sta","oa":1302,"o":"slot_turn"},{"a":9378,"l":"r_24A2","t":"code","b":[96],"m":"rts","x":[9354]},{"a":9379,"l":"joy_rates","c":"Rotation rate for each sixteenth of the stick's smoothed travel: -10 -6 -4 -3 -2 -1 0 0 0 1 2 3 4 6 10 10","t":"byte","b":[246,250,252,253,254,255,0,0],"x":[9361,9372]},{"a":9387,"t":"byte","b":[0,1,2,3,4,6,10,10]},{"a":9395,"l":"sector_hazard","c":"The main loop's call for the sector's hazards. While the sector has hazard entries ($0782), now and then (a random number up to $8B coming out $80 or more) it draws a flash of pattern 5 at a random place in the view ($8B24) with a random size from 1 to $C0; one of size $AD or more also plays effect 11 and strikes the ship ($6E8D)","t":"code","b":[173,130,7],"m":"lda","oa":1922,"x":[3606],"o":"special_entries"},{"a":9398,"t":"code","b":[240,53],"m":"beq","oa":9453,"o":"r_24ED"},{"a":9400,"t":"code","b":[169,139],"m":"lda","o":"#$8B"},{"a":9402,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":9405,"t":"code","b":[16,46],"m":"bpl","oa":9453,"o":"r_24ED"},{"a":9407,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":9409,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":9412,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9414,"t":"code","b":[133,82],"m":"sta","oa":82,"o":"zpa_52"},{"a":9416,"t":"code","b":[133,84],"m":"sta","oa":84,"o":"zpa_54"},{"a":9418,"t":"code","b":[165,65],"m":"lda","oa":65,"o":"window_width"},{"a":9420,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":9423,"t":"code","b":[133,81],"m":"sta","oa":81,"o":"screen_x"},{"a":9425,"t":"code","b":[165,66],"m":"lda","oa":66,"o":"window_height"},{"a":9427,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":9430,"t":"code","b":[133,83],"m":"sta","oa":83,"o":"screen_y"},{"a":9432,"t":"code","b":[169,191],"m":"lda","o":"#$BF"},{"a":9434,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":9437,"t":"code","b":[24],"m":"clc"},{"a":9438,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":9440,"t":"code","b":[72],"m":"pha"},{"a":9441,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":9443,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":9445,"t":"code","b":[32,36,139],"m":"jsr","oa":35620,"o":"spray_triangles"},{"a":9448,"t":"code","b":[104],"m":"pla"},{"a":9449,"t":"code","b":[201,173],"m":"cmp","o":"#$AD"},{"a":9451,"t":"code","b":[176,1],"m":"bcs","oa":9454,"o":"b_24EE"},{"a":9453,"l":"r_24ED","t":"code","b":[96],"m":"rts","x":[9398,9405]},{"a":9454,"l":"b_24EE","t":"code","b":[169,11],"m":"lda","x":[9451],"o":"#$0B"},{"a":9456,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":9459,"t":"code","b":[76,141,110],"m":"jmp","oa":28301,"o":"jolt_player"},{"a":9462,"l":"explode","c":"Scatters debris where the object in slot Y was: up to ten objects of type $18 created at its position, each with a random velocity ($251E)","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[6790],"o":"slot_pos_ptr"},{"a":9465,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":9467,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":9469,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":9471,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":9473,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":9475,"t":"code","b":[141,66,37],"m":"sta","oa":9538,"o":"debris_count"},{"a":9478,"l":"b_2506","t":"code","b":[165,122],"m":"lda","oa":122,"x":[9499],"o":"model_ptr"},{"a":9480,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":9482,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":9484,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":9486,"t":"code","b":[162,24],"m":"ldx","o":"#$18"},{"a":9488,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":9491,"t":"code","b":[48,8],"m":"bmi","oa":9501,"o":"r_251D"},{"a":9493,"t":"code","b":[32,30,37],"m":"jsr","oa":9502,"o":"random_velocity"},{"a":9496,"t":"code","b":[206,66,37],"m":"dec","oa":9538,"o":"debris_count"},{"a":9499,"t":"code","b":[208,233],"m":"bne","oa":9478,"o":"b_2506"},{"a":9501,"l":"r_251D","t":"code","b":[96],"m":"rts","x":[9491]},{"a":9502,"l":"random_velocity","c":"Gives slot Y a random velocity: each of its three 3-byte components in the velocity block at $0545 gets a random low byte and a top word of 0 or $FFFF by a second random number's sign","t":"code","b":[190,70,8],"m":"ldx","oa":2118,"x":[9493],"o":"pos_offsets,y"},{"a":9505,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":9507,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":9509,"l":"b_2525","t":"code","b":[32,197,162],"m":"jsr","oa":41669,"x":[9535],"o":"random"},{"a":9512,"t":"code","b":[157,69,5],"m":"sta","oa":1349,"o":"slot_velocity,x"},{"a":9515,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":9517,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":9520,"t":"code","b":[16,1],"m":"bpl","oa":9523,"o":"b_2533"},{"a":9522,"t":"code","b":[136],"m":"dey"},{"a":9523,"l":"b_2533","t":"code","b":[152],"m":"tya","x":[9520]},{"a":9524,"t":"code","b":[157,70,5],"m":"sta","oa":1350,"o":"f_0546,x"},{"a":9527,"t":"code","b":[157,71,5],"m":"sta","oa":1351,"o":"f_0547,x"},{"a":9530,"t":"code","b":[232],"m":"inx"},{"a":9531,"t":"code","b":[232],"m":"inx"},{"a":9532,"t":"code","b":[232],"m":"inx"},{"a":9533,"t":"code","b":[198,133],"m":"dec","oa":133,"o":"tmp85"},{"a":9535,"t":"code","b":[16,228],"m":"bpl","oa":9509,"o":"b_2525"},{"a":9537,"t":"code","b":[96],"m":"rts"},{"a":9538,"l":"debris_count","c":"explode's count of debris objects still to make","t":"byte","b":[0],"x":[9475,9496]},{"a":9539,"l":"navigation","c":"Key N, Navigation Control. Prints \"Switching to navigation panel\", shows the $C000 bitmap, loads NAV.PAC as the picture ($1BEE) and NAV.TIL to $4000 ($26B1), loads the system's map ($2E7A), sets the full-screen window ($8810), copies the ship's sector ($071E/$071F) to the chart's cursor ($C6/$C7) and to the map's entry 0 ($5510/$5530), plots the course ($2880), counts in $0D07 the ships in slots 1-5 whose target is the player (slot 0) and greys the menu's HELM line by it ($26C0), then loops: date, time, the chart ($2669) and the menu ($25CA). COCKPIT leaves the loop by dropping its return address ($2634)","t":"code","b":[162,211],"m":"ldx","x":[5190],"o":"#$D3"},{"a":9541,"t":"code","b":[169,38],"m":"lda","o":"#$26"},{"a":9543,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":9546,"t":"code","b":[32,246,142],"m":"jsr","oa":36598,"o":"show_bank3"},{"a":9549,"t":"code","b":[32,100,161],"m":"jsr","oa":41316,"o":"mirror_text_off"},{"a":9552,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9554,"t":"code","b":[133,58],"m":"sta","oa":58,"o":"draw_buffer"},{"a":9556,"t":"code","b":[141,200,0],"m":"sta","oa":200,"o":"radius_lo"},{"a":9559,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":9561,"t":"code","b":[32,238,27],"m":"jsr","oa":7150,"o":"load_picture"},{"a":9564,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":9566,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":9569,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":9571,"t":"code","b":[141,48,13],"m":"sta","oa":3376,"o":"chart_col"},{"a":9574,"t":"code","b":[169,183],"m":"lda","o":"#$B7"},{"a":9576,"t":"code","b":[141,49,13],"m":"sta","oa":3377,"o":"chart_row"},{"a":9579,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9581,"t":"code","b":[141,50,13],"m":"sta","oa":3378,"o":"chart_scroll"},{"a":9584,"t":"code","b":[32,177,38],"m":"jsr","oa":9905,"o":"load_nav_tiles"},{"a":9587,"t":"code","b":[32,122,46],"m":"jsr","oa":11898,"o":"load_system_map"},{"a":9590,"t":"code","b":[32,16,136],"m":"jsr","oa":34832,"o":"window_full"},{"a":9593,"t":"code","b":[173,30,7],"m":"lda","oa":1822,"o":"cur_sector_x"},{"a":9596,"t":"code","b":[141,198,0],"m":"sta","oa":198,"o":"slot_a"},{"a":9599,"t":"code","b":[141,16,85],"m":"sta","oa":21776,"o":"$5510"},{"a":9602,"t":"code","b":[173,31,7],"m":"lda","oa":1823,"o":"cur_sector_y"},{"a":9605,"t":"code","b":[141,199,0],"m":"sta","oa":199,"o":"slot_b"},{"a":9608,"t":"code","b":[141,48,85],"m":"sta","oa":21808,"o":"$5530"},{"a":9611,"t":"code","b":[32,128,40],"m":"jsr","oa":10368,"o":"plot_course"},{"a":9614,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":9616,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":9618,"l":"b_2592","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[9630],"o":"slot_in_use,y"},{"a":9621,"t":"code","b":[240,6],"m":"beq","oa":9629,"o":"b_259D"},{"a":9623,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":9626,"t":"code","b":[208,1],"m":"bne","oa":9629,"o":"b_259D"},{"a":9628,"t":"code","b":[232],"m":"inx"},{"a":9629,"l":"b_259D","t":"code","b":[136],"m":"dey","x":[9621,9626]},{"a":9630,"t":"code","b":[208,242],"m":"bne","oa":9618,"o":"b_2592"},{"a":9632,"t":"code","b":[142,7,13],"m":"stx","oa":3335,"o":"ships_near"},{"a":9635,"t":"code","b":[32,192,38],"m":"jsr","oa":9920,"o":"nav_menu_colour"},{"a":9638,"l":"j_25A6","t":"code","b":[169,28],"m":"lda","x":[9671],"o":"#$1C"},{"a":9640,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":9642,"t":"code","b":[169,47],"m":"lda","o":"#$2F"},{"a":9644,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":9646,"t":"code","b":[32,116,32],"m":"jsr","oa":8308,"o":"print_date"},{"a":9649,"t":"code","b":[169,28],"m":"lda","o":"#$1C"},{"a":9651,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":9653,"t":"code","b":[169,56],"m":"lda","o":"#$38"},{"a":9655,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":9657,"t":"code","b":[32,155,32],"m":"jsr","oa":8347,"o":"print_time"},{"a":9660,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":9662,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":9665,"t":"code","b":[32,105,38],"m":"jsr","oa":9833,"o":"draw_chart_cursor"},{"a":9668,"t":"code","b":[32,202,37],"m":"jsr","oa":9674,"o":"nav_menu"},{"a":9671,"t":"code","b":[76,166,37],"m":"jmp","oa":9638,"o":"j_25A6"},{"a":9674,"l":"nav_menu","c":"The Navigation Control menu: CHART, HELM, STATUS, QUERY, SCAN, COCKPIT (strings from $26F1; HELM is offered only when no ship is near, $0D07, and the chart's destination is set, $FC00 positive). The choice jumps to CHART $2787, HELM $2728, STATUS $2694, QUERY $2A69, SCAN $2619 or COCKPIT $2634","t":"code","b":[162,0],"m":"ldx","x":[9668],"o":"#$00"},{"a":9676,"t":"code","b":[173,7,13],"m":"lda","oa":3335,"o":"ships_near"},{"a":9679,"t":"code","b":[208,6],"m":"bne","oa":9687,"o":"b_25D7"},{"a":9681,"t":"code","b":[173,0,252],"m":"lda","oa":64512,"o":"a_FC00"},{"a":9684,"t":"code","b":[48,1],"m":"bmi","oa":9687,"o":"b_25D7"},{"a":9686,"t":"code","b":[232],"m":"inx"},{"a":9687,"l":"b_25D7","t":"code","b":[142,35,39],"m":"stx","oa":10019,"x":[9679,9684],"o":"a_2723"},{"a":9690,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":9692,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":9694,"t":"code","b":[169,174],"m":"lda","o":"#$AE"},{"a":9696,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":9698,"t":"code","b":[169,34],"m":"lda","o":"#$22"},{"a":9700,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":9702,"t":"code","b":[169,39],"m":"lda","o":"#$27"},{"a":9704,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":9706,"t":"code","b":[169,241],"m":"lda","o":"#$F1"},{"a":9708,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":9710,"t":"code","b":[169,38],"m":"lda","o":"#$26"},{"a":9712,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":9714,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":9716,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":9718,"t":"code","b":[32,222,153],"m":"jsr","oa":39390,"o":"menu"},{"a":9721,"t":"code","b":[240,27],"m":"beq","oa":9750,"o":"b_2616"},{"a":9723,"t":"code","b":[192,2],"m":"cpy","o":"#$02"},{"a":9725,"t":"code","b":[144,20],"m":"bcc","oa":9747,"o":"b_2613"},{"a":9727,"t":"code","b":[240,15],"m":"beq","oa":9744,"o":"b_2610"},{"a":9729,"t":"code","b":[192,4],"m":"cpy","o":"#$04"},{"a":9731,"t":"code","b":[144,8],"m":"bcc","oa":9741,"o":"b_260D"},{"a":9733,"t":"code","b":[240,3],"m":"beq","oa":9738,"o":"b_260A"},{"a":9735,"t":"code","b":[76,52,38],"m":"jmp","oa":9780,"o":"nav_cockpit"},{"a":9738,"l":"b_260A","t":"code","b":[76,25,38],"m":"jmp","oa":9753,"x":[9733],"o":"nav_scan"},{"a":9741,"l":"b_260D","t":"code","b":[76,105,42],"m":"jmp","oa":10857,"x":[9731],"o":"nav_query"},{"a":9744,"l":"b_2610","t":"code","b":[76,148,38],"m":"jmp","oa":9876,"x":[9727],"o":"nav_status"},{"a":9747,"l":"b_2613","t":"code","b":[76,40,39],"m":"jmp","oa":10024,"x":[9725],"o":"nav_helm"},{"a":9750,"l":"b_2616","t":"code","b":[76,135,39],"m":"jmp","oa":10119,"x":[9721],"o":"nav_chart"},{"a":9753,"l":"nav_scan","c":"SCAN: moves the chart cursor with the keys or the stick ($A33F, $264D), naming its sector ($27D6) and redrawing the chart with the cursor's brackets ($0D2F), until Return, Space or fire ends it","t":"code","b":[169,1],"m":"lda","x":[9738],"o":"#$01"},{"a":9755,"t":"code","b":[141,47,13],"m":"sta","oa":3375,"o":"chart_brackets"},{"a":9758,"l":"b_261E","t":"code","b":[32,214,39],"m":"jsr","oa":10198,"x":[9772],"o":"nav_cursor_info"},{"a":9761,"t":"code","b":[32,63,163],"m":"jsr","oa":41791,"o":"key_direction"},{"a":9764,"t":"code","b":[176,8],"m":"bcs","oa":9774,"o":"b_262E"},{"a":9766,"t":"code","b":[32,77,38],"m":"jsr","oa":9805,"o":"move_cursor"},{"a":9769,"t":"code","b":[32,105,38],"m":"jsr","oa":9833,"o":"draw_chart_cursor"},{"a":9772,"t":"code","b":[240,240],"m":"beq","oa":9758,"o":"b_261E"},{"a":9774,"l":"b_262E","t":"code","b":[169,0],"m":"lda","x":[9764],"o":"#$00"},{"a":9776,"t":"code","b":[141,47,13],"m":"sta","oa":3375,"o":"chart_brackets"},{"a":9779,"t":"code","b":[96],"m":"rts"},{"a":9780,"l":"nav_cockpit","c":"COCKPIT: when the ship has moved ($C8), takes the new sector from $5510/$5530 and sets it up (enter_sector); then leaves navigation by dropping the menu's return address and going back to the cockpit ($2E71)","t":"code","b":[173,200,0],"m":"lda","oa":200,"x":[9735],"o":"radius_lo"},{"a":9783,"t":"code","b":[240,15],"m":"beq","oa":9800,"o":"b_2648"},{"a":9785,"t":"code","b":[173,16,85],"m":"lda","oa":21776,"o":"$5510"},{"a":9788,"t":"code","b":[141,30,7],"m":"sta","oa":1822,"o":"cur_sector_x"},{"a":9791,"t":"code","b":[173,48,85],"m":"lda","oa":21808,"o":"$5530"},{"a":9794,"t":"code","b":[141,31,7],"m":"sta","oa":1823,"o":"cur_sector_y"},{"a":9797,"t":"code","b":[32,160,21],"m":"jsr","oa":5536,"o":"enter_sector"},{"a":9800,"l":"b_2648","t":"code","b":[104],"m":"pla","x":[9783]},{"a":9801,"t":"code","b":[104],"m":"pla"},{"a":9802,"t":"code","b":[76,113,46],"m":"jmp","oa":11889,"o":"back_to_cockpit"},{"a":9805,"l":"move_cursor","c":"Moves the chart cursor ($C6, $C7) by X across and Y up (the chart's rows count from the bottom), unless that leaves the 32 by 32 chart: carry set then, and the cursor stays","t":"code","b":[138],"m":"txa","x":[9766,10161]},{"a":9806,"t":"code","b":[24],"m":"clc"},{"a":9807,"t":"code","b":[109,198,0],"m":"adc","oa":198,"o":"slot_a"},{"a":9810,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":9812,"t":"code","b":[176,18],"m":"bcs","oa":9832,"o":"r_2668"},{"a":9814,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":9816,"t":"code","b":[152],"m":"tya"},{"a":9817,"t":"code","b":[109,199,0],"m":"adc","oa":199,"o":"slot_b"},{"a":9820,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":9822,"t":"code","b":[176,8],"m":"bcs","oa":9832,"o":"r_2668"},{"a":9824,"t":"code","b":[141,199,0],"m":"sta","oa":199,"o":"slot_b"},{"a":9827,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":9829,"t":"code","b":[141,198,0],"m":"sta","oa":198,"o":"slot_a"},{"a":9832,"l":"r_2668","t":"code","b":[96],"m":"rts","x":[9812,9822]},{"a":9833,"l":"draw_chart_cursor","c":"Redraws the chart around the cursor: marks the cursor's sector ($3069 with 5, $2F9C), draws ($8638, $28DD, $8658), and moves the frame counter $5E on every other call","t":"code","b":[174,198,0],"m":"ldx","oa":198,"x":[9665,9769,10145,10558],"o":"slot_a"},{"a":9836,"t":"code","b":[172,199,0],"m":"ldy","oa":199,"o":"slot_b"},{"a":9839,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":9841,"t":"code","b":[32,105,48],"m":"jsr","oa":12393,"o":"fill_chart_window"},{"a":9844,"t":"code","b":[174,198,0],"m":"ldx","oa":198,"o":"slot_a"},{"a":9847,"t":"code","b":[172,199,0],"m":"ldy","oa":199,"o":"slot_b"},{"a":9850,"t":"code","b":[32,156,47],"m":"jsr","oa":12188,"o":"draw_map_objects"},{"a":9853,"t":"code","b":[32,56,134],"m":"jsr","oa":34360,"o":"animate_chart"},{"a":9856,"t":"code","b":[32,221,40],"m":"jsr","oa":10461,"o":"draw_course"},{"a":9859,"t":"code","b":[32,88,134],"m":"jsr","oa":34392,"o":"draw_chart"},{"a":9862,"t":"code","b":[230,189],"m":"inc","oa":189,"o":"zpa_BD"},{"a":9864,"t":"code","b":[165,189],"m":"lda","oa":189,"o":"zpa_BD"},{"a":9866,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":9867,"t":"code","b":[144,2],"m":"bcc","oa":9871,"o":"b_268F"},{"a":9869,"t":"code","b":[230,94],"m":"inc","oa":94,"o":"pass_count"},{"a":9871,"l":"b_268F","t":"code","b":[169,1],"m":"lda","x":[9867],"o":"#$01"},{"a":9873,"t":"code","b":[76,23,163],"m":"jmp","oa":41751,"o":"wait_ticks"},{"a":9876,"l":"nav_status","c":"STATUS: the status page is in the base overlay, so this forgets the models, loads SEG1 over SEG0, runs its status page ($AB87 with X = $1D, Y = $AE, A = 7), then loads SEG0 back and reloads the models","t":"code","b":[32,74,29],"m":"jsr","oa":7498,"x":[9744],"o":"reset_models"},{"a":9879,"t":"code","b":[32,7,21],"m":"jsr","oa":5383,"o":"load_seg1"},{"a":9882,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":9884,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":9887,"t":"code","b":[32,64,47],"m":"jsr","oa":12096,"o":"clear_view"},{"a":9890,"t":"code","b":[162,29],"m":"ldx","o":"#$1D"},{"a":9892,"t":"code","b":[160,174],"m":"ldy","o":"#$AE"},{"a":9894,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":9896,"t":"code","b":[32,135,171],"m":"jsr","oa":43911,"o":"$AB87"},{"a":9899,"t":"code","b":[32,248,20],"m":"jsr","oa":5368,"o":"load_seg0"},{"a":9902,"t":"code","b":[76,106,29],"m":"jmp","oa":7530,"o":"load_slot_models"},{"a":9905,"l":"load_nav_tiles","c":"Loads NAV.TIL, the navigation chart's tiles, to $4000","t":"code","b":[162,28],"m":"ldx","x":[9584,29262],"o":"#$1C"},{"a":9907,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":9909,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":9911,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":9913,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":9915,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":9917,"t":"code","b":[76,101,23],"m":"jmp","oa":5989,"o":"load_file"},{"a":9920,"l":"nav_menu_colour","c":"Colours the HELM line of the menu: $5C, or $78 when X is nonzero, written to 7 cells of two screen rows at $E1FD and $E225","t":"code","b":[169,92],"m":"lda","x":[9635,10111],"o":"#$5C"},{"a":9922,"t":"code","b":[202],"m":"dex"},{"a":9923,"t":"code","b":[48,2],"m":"bmi","oa":9927,"o":"b_26C7"},{"a":9925,"t":"code","b":[169,120],"m":"lda","o":"#$78"},{"a":9927,"l":"b_26C7","t":"code","b":[162,6],"m":"ldx","x":[9923],"o":"#$06"},{"a":9929,"l":"b_26C9","t":"code","b":[157,37,226],"m":"sta","oa":57893,"x":[9936],"o":"f_E225,x"},{"a":9932,"t":"code","b":[157,253,225],"m":"sta","oa":57853,"o":"f_E1FD,x"},{"a":9935,"t":"code","b":[202],"m":"dex"},{"a":9936,"t":"code","b":[16,247],"m":"bpl","oa":9929,"o":"b_26C9"},{"a":9938,"t":"code","b":[96],"m":"rts"},{"a":9939,"l":"str_switch_nav","c":"\"Switching to navigation panel\"","t":"byte","b":[83,119,105,116,99,104,105,110]},{"a":9947,"t":"byte","b":[103,32,116,111,32,110,97,118]},{"a":9955,"t":"byte","b":[105,103,97,116,105,111,110,32]},{"a":9963,"t":"byte","b":[112,97,110,101,108,0]},{"a":9969,"l":"nav_menu_items","c":"Pointers to the six menu items' names","t":"byte","b":[253,38,3,39,8,39,15,39]},{"a":9977,"t":"byte","b":[21,39,26,39]},{"a":9981,"c":"The menu items' names: CHART, HELM, STATUS, QUERY, SCAN, COCKPIT","t":"byte","b":[67,72,65,82,84,0,72,69]},{"a":9989,"t":"byte","b":[76,77,0,83,84,65,84,85]},{"a":9997,"t":"byte","b":[83,0,81,85,69,82,89,0]},{"a":10005,"t":"byte","b":[83,67,65,78,0,67,79,67]},{"a":10013,"t":"byte","b":[75,80,73,84,0]},{"a":10018,"l":"nav_item_enabled","c":"One flag a menu item: 1 offered, 0 greyed out (HELM's, at $2723, is set by nav_menu)","t":"byte","b":[1]},{"a":10019,"l":"a_2723","c":"HELM's enabled flag in nav_item_enabled, written by nav_menu","t":"byte","b":[1,1,1,1,1],"x":[9687]},{"a":10024,"l":"nav_helm","c":"HELM, the autopilot: flies the course in $FC00/$FC20 a sector at a time from the ship's chart position ($5510/$5530). When the course runs out it prints \"Ship has arrived at destination\" ($2847) and returns. Each step: draws the move ($30D7), marks that the ship moved ($C8), moves the ship's position, lets the time pass ($290F), recomputes the rest of the course ($2880), and stops when ships are near after an encounter ($0D07, recolouring the menu) or when helm_step_time returns nonzero ($B4: fire or a key during the step or its encounter)","t":"code","b":[173,16,85],"m":"lda","oa":21776,"x":[9747],"o":"$5510"},{"a":10027,"t":"code","b":[141,198,0],"m":"sta","oa":198,"o":"slot_a"},{"a":10030,"t":"code","b":[173,48,85],"m":"lda","oa":21808,"o":"$5530"},{"a":10033,"t":"code","b":[141,199,0],"m":"sta","oa":199,"o":"slot_b"},{"a":10036,"l":"b_2734","t":"code","b":[173,0,252],"m":"lda","oa":64512,"x":[10116],"o":"a_FC00"},{"a":10039,"t":"code","b":[16,7],"m":"bpl","oa":10048,"o":"b_2740"},{"a":10041,"t":"code","b":[162,71],"m":"ldx","o":"#$47"},{"a":10043,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":10045,"t":"code","b":[76,220,154],"m":"jmp","oa":39644,"o":"print_message"},{"a":10048,"l":"b_2740","t":"code","b":[141,198,0],"m":"sta","oa":198,"x":[10039],"o":"slot_a"},{"a":10051,"t":"code","b":[56],"m":"sec"},{"a":10052,"t":"code","b":[237,16,85],"m":"sbc","oa":21776,"o":"$5510"},{"a":10055,"t":"code","b":[170],"m":"tax"},{"a":10056,"t":"code","b":[173,32,252],"m":"lda","oa":64544,"o":"a_FC20"},{"a":10059,"t":"code","b":[141,199,0],"m":"sta","oa":199,"o":"slot_b"},{"a":10062,"t":"code","b":[56],"m":"sec"},{"a":10063,"t":"code","b":[237,48,85],"m":"sbc","oa":21808,"o":"$5530"},{"a":10066,"t":"code","b":[168],"m":"tay"},{"a":10067,"t":"code","b":[132,179],"m":"sty","oa":179,"o":"zpa_B3"},{"a":10069,"t":"code","b":[138],"m":"txa"},{"a":10070,"t":"code","b":[37,179],"m":"and","oa":179,"o":"zpa_B3"},{"a":10072,"t":"code","b":[133,179],"m":"sta","oa":179,"o":"zpa_B3"},{"a":10074,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10076,"t":"code","b":[32,215,48],"m":"jsr","oa":12503,"o":"set_ship_heading"},{"a":10079,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":10081,"t":"code","b":[141,200,0],"m":"sta","oa":200,"o":"radius_lo"},{"a":10084,"t":"code","b":[174,198,0],"m":"ldx","oa":198,"o":"slot_a"},{"a":10087,"t":"code","b":[142,16,85],"m":"stx","oa":21776,"o":"$5510"},{"a":10090,"t":"code","b":[172,199,0],"m":"ldy","oa":199,"o":"slot_b"},{"a":10093,"t":"code","b":[140,48,85],"m":"sty","oa":21808,"o":"$5530"},{"a":10096,"t":"code","b":[165,179],"m":"lda","oa":179,"o":"zpa_B3"},{"a":10098,"t":"code","b":[32,15,41],"m":"jsr","oa":10511,"o":"helm_step_time"},{"a":10101,"t":"code","b":[133,180],"m":"sta","oa":180,"o":"model_frontcol"},{"a":10103,"t":"code","b":[32,128,40],"m":"jsr","oa":10368,"o":"plot_course"},{"a":10106,"t":"code","b":[174,7,13],"m":"ldx","oa":3335,"o":"ships_near"},{"a":10109,"t":"code","b":[240,3],"m":"beq","oa":10114,"o":"b_2782"},{"a":10111,"t":"code","b":[76,192,38],"m":"jmp","oa":9920,"o":"nav_menu_colour"},{"a":10114,"l":"b_2782","t":"code","b":[165,180],"m":"lda","oa":180,"x":[10109],"o":"model_frontcol"},{"a":10116,"t":"code","b":[240,174],"m":"beq","oa":10036,"o":"b_2734"},{"a":10118,"t":"code","b":[96],"m":"rts"},{"a":10119,"l":"nav_chart","c":"CHART: the cursor starts on the ship; the cursor keys or the stick move it ($A33F, move_cursor) and each move makes it the destination ($072C/$072D) and recomputes the course ($2880). Return, Space or fire leaves; with a course set it prints \"Course laid in Nav computer\" ($282B). $072C is $FF (no destination) from opening the chart until the cursor first moves","t":"code","b":[169,255],"m":"lda","x":[9750],"o":"#$FF"},{"a":10121,"t":"code","b":[141,47,13],"m":"sta","oa":3375,"o":"chart_brackets"},{"a":10124,"t":"code","b":[141,44,7],"m":"sta","oa":1836,"o":"dest_x"},{"a":10127,"t":"code","b":[173,16,85],"m":"lda","oa":21776,"o":"$5510"},{"a":10130,"t":"code","b":[141,198,0],"m":"sta","oa":198,"o":"slot_a"},{"a":10133,"t":"code","b":[173,48,85],"m":"lda","oa":21808,"o":"$5530"},{"a":10136,"t":"code","b":[141,199,0],"m":"sta","oa":199,"o":"slot_b"},{"a":10139,"l":"b_279B","t":"code","b":[32,214,39],"m":"jsr","oa":10198,"x":[10178],"o":"nav_cursor_info"},{"a":10142,"t":"code","b":[32,128,40],"m":"jsr","oa":10368,"o":"plot_course"},{"a":10145,"l":"b_27A1","t":"code","b":[32,105,38],"m":"jsr","oa":9833,"x":[10159,10164],"o":"draw_chart_cursor"},{"a":10148,"t":"code","b":[208,30],"m":"bne","oa":10180,"o":"b_27C4"},{"a":10150,"t":"code","b":[32,63,163],"m":"jsr","oa":41791,"o":"key_direction"},{"a":10153,"t":"code","b":[176,25],"m":"bcs","oa":10180,"o":"b_27C4"},{"a":10155,"t":"code","b":[138],"m":"txa"},{"a":10156,"t":"code","b":[208,3],"m":"bne","oa":10161,"o":"b_27B1"},{"a":10158,"t":"code","b":[152],"m":"tya"},{"a":10159,"t":"code","b":[240,240],"m":"beq","oa":10145,"o":"b_27A1"},{"a":10161,"l":"b_27B1","t":"code","b":[32,77,38],"m":"jsr","oa":9805,"x":[10156],"o":"move_cursor"},{"a":10164,"t":"code","b":[176,235],"m":"bcs","oa":10145,"o":"b_27A1"},{"a":10166,"t":"code","b":[173,198,0],"m":"lda","oa":198,"o":"slot_a"},{"a":10169,"t":"code","b":[141,44,7],"m":"sta","oa":1836,"o":"dest_x"},{"a":10172,"t":"code","b":[173,199,0],"m":"lda","oa":199,"o":"slot_b"},{"a":10175,"t":"code","b":[141,45,7],"m":"sta","oa":1837,"o":"dest_y"},{"a":10178,"t":"code","b":[16,215],"m":"bpl","oa":10139,"o":"b_279B"},{"a":10180,"l":"b_27C4","t":"code","b":[173,0,252],"m":"lda","oa":64512,"x":[10148,10153],"o":"a_FC00"},{"a":10183,"t":"code","b":[48,7],"m":"bmi","oa":10192,"o":"b_27D0"},{"a":10185,"t":"code","b":[162,43],"m":"ldx","o":"#$2B"},{"a":10187,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":10189,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":10192,"l":"b_27D0","t":"code","b":[169,0],"m":"lda","x":[10183],"o":"#$00"},{"a":10194,"t":"code","b":[141,47,13],"m":"sta","oa":3375,"o":"chart_brackets"},{"a":10197,"t":"code","b":[96],"m":"rts"},{"a":10198,"l":"nav_cursor_info","c":"Prints \"SC\" and the cursor's sector coordinates on the chart's info line ($9F56), and below it \"-message-\" when the sector at the cursor is one of the 31 entries of the system map's list at $5510/$5530 whose message word at $55D1 is not $FF, or blanks otherwise","t":"code","b":[169,28],"m":"lda","x":[9758,10139],"o":"#$1C"},{"a":10200,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":10202,"t":"code","b":[169,56],"m":"lda","o":"#$38"},{"a":10204,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":10206,"t":"code","b":[162,103],"m":"ldx","o":"#$67"},{"a":10208,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":10210,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":10213,"t":"code","b":[173,198,0],"m":"lda","oa":198,"o":"slot_a"},{"a":10216,"t":"code","b":[32,86,159],"m":"jsr","oa":40790,"o":"print_signed"},{"a":10219,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":10221,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":10224,"t":"code","b":[173,199,0],"m":"lda","oa":199,"o":"slot_b"},{"a":10227,"t":"code","b":[32,86,159],"m":"jsr","oa":40790,"o":"print_signed"},{"a":10230,"t":"code","b":[169,28],"m":"lda","o":"#$1C"},{"a":10232,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":10234,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":10236,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":10238,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":10240,"l":"b_2800","t":"code","b":[173,198,0],"m":"lda","oa":198,"x":[10267],"o":"slot_a"},{"a":10243,"t":"code","b":[217,16,85],"m":"cmp","oa":21776,"o":"$5510,y"},{"a":10246,"t":"code","b":[208,18],"m":"bne","oa":10266,"o":"b_281A"},{"a":10248,"t":"code","b":[173,199,0],"m":"lda","oa":199,"o":"slot_b"},{"a":10251,"t":"code","b":[217,48,85],"m":"cmp","oa":21808,"o":"$5530,y"},{"a":10254,"t":"code","b":[208,10],"m":"bne","oa":10266,"o":"b_281A"},{"a":10256,"t":"code","b":[152],"m":"tya"},{"a":10257,"t":"code","b":[10],"m":"asl","o":"a"},{"a":10258,"t":"code","b":[170],"m":"tax"},{"a":10259,"t":"code","b":[189,209,85],"m":"lda","oa":21969,"o":"$55D1,x"},{"a":10262,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":10264,"t":"code","b":[208,10],"m":"bne","oa":10276,"o":"b_2824"},{"a":10266,"l":"b_281A","t":"code","b":[136],"m":"dey","x":[10246,10254]},{"a":10267,"t":"code","b":[208,227],"m":"bne","oa":10240,"o":"b_2800"},{"a":10269,"t":"code","b":[162,118],"m":"ldx","o":"#$76"},{"a":10271,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":10273,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":10276,"l":"b_2824","t":"code","b":[162,108],"m":"ldx","x":[10264],"o":"#$6C"},{"a":10278,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":10280,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":10283,"l":"str_course_laid","c":"\"Course laid in Nav computer\", then \"Ship has arrived at destination\" at $2847, \"SC\" at $2867, \"-message-\" at $286C and a blank line at $2876","t":"byte","b":[67,111,117,114,115,101,32,108]},{"a":10291,"t":"byte","b":[97,105,100,32,105,110,32,78]},{"a":10299,"t":"byte","b":[97,118,32,99,111,109,112,117]},{"a":10307,"t":"byte","b":[116,101,114,0,83,104,105,112]},{"a":10315,"t":"byte","b":[32,104,97,115,32,97,114,114]},{"a":10323,"t":"byte","b":[105,118,101,100,32,97,116,32]},{"a":10331,"t":"byte","b":[100,101,115,116,105,110,97,116]},{"a":10339,"t":"byte","b":[105,111,110,0,83,67,32,32]},{"a":10347,"t":"byte","b":[0,45,109,101,115,115,97,103]},{"a":10355,"t":"byte","b":[101,45,0,32,32,32,32,32]},{"a":10363,"t":"byte","b":[32,32,32,32,0]},{"a":10368,"l":"plot_course","c":"Works out the course from the ship's sector ($5510/$5530) to the destination ($072C/$072D) as a list of sectors: each step moves one sector along each axis that still differs, so diagonally until one coordinate matches; the X list goes to $FC00 and the Y list to $FC20, ended by $FF. No destination ($072C negative), no course","t":"code","b":[160,31],"m":"ldy","x":[9611,10103,10142],"o":"#$1F"},{"a":10370,"t":"code","b":[132,135],"m":"sty","oa":135,"o":"tmp87"},{"a":10372,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":10374,"l":"b_2886","t":"code","b":[153,0,252],"m":"sta","oa":64512,"x":[10378],"o":"a_FC00,y"},{"a":10377,"t":"code","b":[136],"m":"dey"},{"a":10378,"t":"code","b":[16,250],"m":"bpl","oa":10374,"o":"b_2886"},{"a":10380,"t":"code","b":[173,44,7],"m":"lda","oa":1836,"o":"dest_x"},{"a":10383,"t":"code","b":[48,75],"m":"bmi","oa":10460,"o":"r_28DC"},{"a":10385,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10387,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":10389,"t":"code","b":[173,16,85],"m":"lda","oa":21776,"o":"$5510"},{"a":10392,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":10394,"t":"code","b":[173,48,85],"m":"lda","oa":21808,"o":"$5530"},{"a":10397,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":10399,"l":"b_289F","t":"code","b":[162,0],"m":"ldx","x":[10458],"o":"#$00"},{"a":10401,"t":"code","b":[173,44,7],"m":"lda","oa":1836,"o":"dest_x"},{"a":10404,"t":"code","b":[197,133],"m":"cmp","oa":133,"o":"tmp85"},{"a":10406,"t":"code","b":[240,6],"m":"beq","oa":10414,"o":"b_28AE"},{"a":10408,"t":"code","b":[16,3],"m":"bpl","oa":10413,"o":"b_28AD"},{"a":10410,"t":"code","b":[202],"m":"dex"},{"a":10411,"t":"code","b":[48,1],"m":"bmi","oa":10414,"o":"b_28AE"},{"a":10413,"l":"b_28AD","t":"code","b":[232],"m":"inx","x":[10408]},{"a":10414,"l":"b_28AE","t":"code","b":[160,0],"m":"ldy","x":[10406,10411],"o":"#$00"},{"a":10416,"t":"code","b":[173,45,7],"m":"lda","oa":1837,"o":"dest_y"},{"a":10419,"t":"code","b":[197,134],"m":"cmp","oa":134,"o":"tmp86"},{"a":10421,"t":"code","b":[240,6],"m":"beq","oa":10429,"o":"b_28BD"},{"a":10423,"t":"code","b":[16,3],"m":"bpl","oa":10428,"o":"b_28BC"},{"a":10425,"t":"code","b":[136],"m":"dey"},{"a":10426,"t":"code","b":[48,1],"m":"bmi","oa":10429,"o":"b_28BD"},{"a":10428,"l":"b_28BC","t":"code","b":[200],"m":"iny","x":[10423]},{"a":10429,"l":"b_28BD","t":"code","b":[134,136],"m":"stx","oa":136,"x":[10421,10426],"o":"tmp88"},{"a":10431,"t":"code","b":[152],"m":"tya"},{"a":10432,"t":"code","b":[5,136],"m":"ora","oa":136,"o":"tmp88"},{"a":10434,"t":"code","b":[240,24],"m":"beq","oa":10460,"o":"r_28DC"},{"a":10436,"t":"code","b":[138],"m":"txa"},{"a":10437,"t":"code","b":[24],"m":"clc"},{"a":10438,"t":"code","b":[101,133],"m":"adc","oa":133,"o":"tmp85"},{"a":10440,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":10442,"t":"code","b":[166,135],"m":"ldx","oa":135,"o":"tmp87"},{"a":10444,"t":"code","b":[157,0,252],"m":"sta","oa":64512,"o":"a_FC00,x"},{"a":10447,"t":"code","b":[152],"m":"tya"},{"a":10448,"t":"code","b":[24],"m":"clc"},{"a":10449,"t":"code","b":[101,134],"m":"adc","oa":134,"o":"tmp86"},{"a":10451,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":10453,"t":"code","b":[157,32,252],"m":"sta","oa":64544,"o":"a_FC20,x"},{"a":10456,"t":"code","b":[230,135],"m":"inc","oa":135,"o":"tmp87"},{"a":10458,"t":"code","b":[16,195],"m":"bpl","oa":10399,"o":"b_289F"},{"a":10460,"l":"r_28DC","t":"code","b":[96],"m":"rts","x":[10383,10434]},{"a":10461,"l":"draw_course","c":"Marks each sector of the course on the chart: for each one visible ($3013) it plots ($8763) and changes the chart cell at $FA00 from $7D to 7","t":"code","b":[173,198,0],"m":"lda","oa":198,"x":[9856],"o":"slot_a"},{"a":10464,"t":"code","b":[133,81],"m":"sta","oa":81,"o":"screen_x"},{"a":10466,"t":"code","b":[173,199,0],"m":"lda","oa":199,"o":"slot_b"},{"a":10469,"t":"code","b":[133,83],"m":"sta","oa":83,"o":"screen_y"},{"a":10471,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":10473,"t":"code","b":[132,138],"m":"sty","oa":138,"o":"tmp8A"},{"a":10475,"l":"b_28EB","t":"code","b":[190,0,252],"m":"ldx","oa":64512,"x":[10508],"o":"a_FC00,y"},{"a":10478,"t":"code","b":[48,30],"m":"bmi","oa":10510,"o":"r_290E"},{"a":10480,"t":"code","b":[185,32,252],"m":"lda","oa":64544,"o":"a_FC20,y"},{"a":10483,"t":"code","b":[168],"m":"tay"},{"a":10484,"t":"code","b":[32,19,48],"m":"jsr","oa":12307,"o":"in_chart_window"},{"a":10487,"t":"code","b":[176,15],"m":"bcs","oa":10504,"o":"b_2908"},{"a":10489,"t":"code","b":[32,99,135],"m":"jsr","oa":34659,"o":"chart_cell_index"},{"a":10492,"t":"code","b":[185,0,250],"m":"lda","oa":64000,"o":"f_FA00,y"},{"a":10495,"t":"code","b":[201,125],"m":"cmp","o":"#$7D"},{"a":10497,"t":"code","b":[208,5],"m":"bne","oa":10504,"o":"b_2908"},{"a":10499,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":10501,"t":"code","b":[153,0,250],"m":"sta","oa":64000,"o":"f_FA00,y"},{"a":10504,"l":"b_2908","t":"code","b":[230,138],"m":"inc","oa":138,"x":[10487,10497],"o":"tmp8A"},{"a":10506,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":10508,"t":"code","b":[16,221],"m":"bpl","oa":10475,"o":"b_28EB"},{"a":10510,"l":"r_290E","t":"code","b":[96],"m":"rts","x":[10478]},{"a":10511,"l":"helm_step_time","c":"The time one HELM step takes: $29CA gives the hours (5 straight, 7 diagonal, doubled in slow sectors and with a damaged drive); the clock advances an hour at a time with the time and date redrawn and, until the trip is stopped, the chart ($2669); fire, or a key waiting, stops it ($AB, counted up each hour from then). When the day changes: damage repairs itself ($2A53), the daily lists $07AE-$07BB and $0783 are cleared and the random generator reseeded ($A2DC). Then the chances of the step: spoiled cargo ($2A15), the map's entries moved ($2D38), the message line (window 1) cleared, the counters $0832-$0834 cleared and an encounter ($2991). Returns $AB, nonzero to stop","t":"code","b":[72],"m":"pha","x":[10098]},{"a":10512,"t":"code","b":[173,33,7],"m":"lda","oa":1825,"o":"clock_day"},{"a":10515,"t":"code","b":[133,169],"m":"sta","oa":169,"o":"zpa_A9"},{"a":10517,"t":"code","b":[104],"m":"pla"},{"a":10518,"t":"code","b":[32,202,41],"m":"jsr","oa":10698,"o":"step_hours"},{"a":10521,"t":"code","b":[133,170],"m":"sta","oa":170,"o":"model_normvec"},{"a":10523,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10525,"t":"code","b":[133,171],"m":"sta","oa":171,"o":"zpa_AB"},{"a":10527,"l":"b_291F","t":"code","b":[169,1],"m":"lda","x":[10572],"o":"#$01"},{"a":10529,"t":"code","b":[32,33,32],"m":"jsr","oa":8225,"o":"advance_clock"},{"a":10532,"t":"code","b":[169,28],"m":"lda","o":"#$1C"},{"a":10534,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":10536,"t":"code","b":[169,56],"m":"lda","o":"#$38"},{"a":10538,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":10540,"t":"code","b":[32,155,32],"m":"jsr","oa":8347,"o":"print_time"},{"a":10543,"t":"code","b":[169,28],"m":"lda","o":"#$1C"},{"a":10545,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":10547,"t":"code","b":[169,47],"m":"lda","o":"#$2F"},{"a":10549,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":10551,"t":"code","b":[32,116,32],"m":"jsr","oa":8308,"o":"print_date"},{"a":10554,"t":"code","b":[165,171],"m":"lda","oa":171,"o":"zpa_AB"},{"a":10556,"t":"code","b":[208,10],"m":"bne","oa":10568,"o":"b_2948"},{"a":10558,"t":"code","b":[32,105,38],"m":"jsr","oa":9833,"o":"draw_chart_cursor"},{"a":10561,"t":"code","b":[208,5],"m":"bne","oa":10568,"o":"b_2948"},{"a":10563,"t":"code","b":[32,77,162],"m":"jsr","oa":41549,"o":"get_key"},{"a":10566,"t":"code","b":[144,2],"m":"bcc","oa":10570,"o":"b_294A"},{"a":10568,"l":"b_2948","t":"code","b":[230,171],"m":"inc","oa":171,"x":[10556,10561],"o":"zpa_AB"},{"a":10570,"l":"b_294A","t":"code","b":[198,170],"m":"dec","oa":170,"x":[10566],"o":"model_normvec"},{"a":10572,"t":"code","b":[208,209],"m":"bne","oa":10527,"o":"b_291F"},{"a":10574,"t":"code","b":[165,169],"m":"lda","oa":169,"o":"zpa_A9"},{"a":10576,"t":"code","b":[205,33,7],"m":"cmp","oa":1825,"o":"clock_day"},{"a":10579,"t":"code","b":[240,27],"m":"beq","oa":10608,"o":"b_2970"},{"a":10581,"t":"code","b":[32,83,42],"m":"jsr","oa":10835,"o":"daily_repair"},{"a":10584,"t":"code","b":[160,13],"m":"ldy","o":"#$0D"},{"a":10586,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10588,"l":"b_295C","t":"code","b":[153,174,7],"m":"sta","oa":1966,"x":[10592],"o":"daily_lists,y"},{"a":10591,"t":"code","b":[136],"m":"dey"},{"a":10592,"t":"code","b":[16,250],"m":"bpl","oa":10588,"o":"b_295C"},{"a":10594,"t":"code","b":[141,131,7],"m":"sta","oa":1923,"o":"shot_a_base"},{"a":10597,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":10600,"t":"code","b":[170],"m":"tax"},{"a":10601,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":10604,"t":"code","b":[168],"m":"tay"},{"a":10605,"t":"code","b":[32,220,162],"m":"jsr","oa":41692,"o":"random_seed"},{"a":10608,"l":"b_2970","t":"code","b":[165,168],"m":"lda","oa":168,"x":[10579],"o":"model_refpts"},{"a":10610,"t":"code","b":[32,21,42],"m":"jsr","oa":10773,"o":"helm_hazard_check"},{"a":10613,"t":"code","b":[32,56,45],"m":"jsr","oa":11576,"o":"move_map_objects"},{"a":10616,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":10618,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":10621,"t":"code","b":[32,120,161],"m":"jsr","oa":41336,"o":"scroll_window"},{"a":10624,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10626,"t":"code","b":[141,50,8],"m":"sta","oa":2098,"o":"surrendered"},{"a":10629,"t":"code","b":[141,51,8],"m":"sta","oa":2099,"o":"taunted"},{"a":10632,"t":"code","b":[141,52,8],"m":"sta","oa":2100,"o":"gravity_warned"},{"a":10635,"t":"code","b":[32,145,41],"m":"jsr","oa":10641,"o":"helm_encounter"},{"a":10638,"t":"code","b":[165,171],"m":"lda","oa":171,"o":"zpa_AB"},{"a":10640,"t":"code","b":[96],"m":"rts"},{"a":10641,"l":"helm_encounter","c":"Checks for an encounter in the step's sector ($2C1E with the hours); when one comes, prints \"Under attack\" (with ships near, $0D07) or \"Space craft detected\", plays effect 4 and waits 20 ticks of wait_ticks (about two seconds); fire during the wait, or a key waiting after it, sets $AB to stop the autopilot. With ships near, nav_helm stops anyway ($277A). Sets $0D04 to $FF first","t":"code","b":[169,255],"m":"lda","x":[10635],"o":"#$FF"},{"a":10643,"t":"code","b":[141,4,13],"m":"sta","oa":3332,"o":"encounter_types"},{"a":10646,"t":"code","b":[165,168],"m":"lda","oa":168,"o":"model_refpts"},{"a":10648,"t":"code","b":[32,30,44],"m":"jsr","oa":11294,"o":"encounter_roll"},{"a":10651,"t":"code","b":[16,1],"m":"bpl","oa":10654,"o":"b_299E"},{"a":10653,"t":"code","b":[96],"m":"rts"},{"a":10654,"l":"b_299E","t":"code","b":[162,0],"m":"ldx","x":[10651],"o":"#$00"},{"a":10656,"t":"code","b":[169,42],"m":"lda","o":"#$2A"},{"a":10658,"t":"code","b":[172,7,13],"m":"ldy","oa":3335,"o":"ships_near"},{"a":10661,"t":"code","b":[240,4],"m":"beq","oa":10667,"o":"b_29AB"},{"a":10663,"t":"code","b":[162,243],"m":"ldx","o":"#$F3"},{"a":10665,"t":"code","b":[169,41],"m":"lda","o":"#$29"},{"a":10667,"l":"b_29AB","t":"code","b":[32,220,154],"m":"jsr","oa":39644,"x":[10661],"o":"print_message"},{"a":10670,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":10672,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":10675,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":10677,"t":"code","b":[133,170],"m":"sta","oa":170,"o":"model_normvec"},{"a":10679,"l":"b_29B7","t":"code","b":[169,1],"m":"lda","x":[10688],"o":"#$01"},{"a":10681,"t":"code","b":[32,23,163],"m":"jsr","oa":41751,"o":"wait_ticks"},{"a":10684,"t":"code","b":[208,9],"m":"bne","oa":10695,"o":"b_29C7"},{"a":10686,"t":"code","b":[198,170],"m":"dec","oa":170,"o":"model_normvec"},{"a":10688,"t":"code","b":[208,245],"m":"bne","oa":10679,"o":"b_29B7"},{"a":10690,"t":"code","b":[32,77,162],"m":"jsr","oa":41549,"o":"get_key"},{"a":10693,"t":"code","b":[144,2],"m":"bcc","oa":10697,"o":"r_29C9"},{"a":10695,"l":"b_29C7","t":"code","b":[230,171],"m":"inc","oa":171,"x":[10684],"o":"zpa_AB"},{"a":10697,"l":"r_29C9","t":"code","b":[96],"m":"rts","x":[10693]},{"a":10698,"l":"step_hours","c":"The hours a HELM step costs: 5 for a straight step, 7 for a diagonal one (A nonzero); doubled when the sector's kind ($2F75, divided by 16) has bit 7 in sector_kind_flags, and doubled again when the player's $0409 has bit 2 (a damaged drive)","t":"code","b":[201,0],"m":"cmp","x":[10518],"o":"#$00"},{"a":10700,"t":"code","b":[240,4],"m":"beq","oa":10706,"o":"b_29D2"},{"a":10702,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":10704,"t":"code","b":[16,2],"m":"bpl","oa":10708,"o":"b_29D4"},{"a":10706,"l":"b_29D2","t":"code","b":[169,5],"m":"lda","x":[10700],"o":"#$05"},{"a":10708,"l":"b_29D4","t":"code","b":[133,168],"m":"sta","oa":168,"x":[10704],"o":"model_refpts"},{"a":10710,"t":"code","b":[32,117,47],"m":"jsr","oa":12149,"o":"sector_kind"},{"a":10713,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10714,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10715,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10716,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10717,"t":"code","b":[170],"m":"tax"},{"a":10718,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":10720,"t":"code","b":[189,3,23],"m":"lda","oa":5891,"o":"sector_kind_flags,x"},{"a":10723,"t":"code","b":[16,2],"m":"bpl","oa":10727,"o":"b_29E7"},{"a":10725,"t":"code","b":[6,168],"m":"asl","oa":168,"o":"model_refpts"},{"a":10727,"l":"b_29E7","t":"code","b":[173,9,4],"m":"lda","oa":1033,"x":[10723],"o":"slot_damage"},{"a":10730,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":10732,"t":"code","b":[240,2],"m":"beq","oa":10736,"o":"b_29F0"},{"a":10734,"t":"code","b":[6,168],"m":"asl","oa":168,"o":"model_refpts"},{"a":10736,"l":"b_29F0","t":"code","b":[165,168],"m":"lda","oa":168,"x":[10732],"o":"model_refpts"},{"a":10738,"t":"code","b":[96],"m":"rts"},{"a":10739,"l":"str_under_attack","c":"\"Under attack\", then \"Space craft detected\" at $2A00","t":"byte","b":[85,110,100,101,114,32,97,116]},{"a":10747,"t":"byte","b":[116,97,99,107,0,83,112,97]},{"a":10755,"t":"byte","b":[99,101,32,99,114,97,102,116]},{"a":10763,"t":"byte","b":[32,100,101,116,101,99,116,101]},{"a":10771,"t":"byte","b":[100,0]},{"a":10773,"l":"helm_hazard_check","c":"Per HELM step, with A the step's hours: a random 0-100 ($A298, 101 outcomes) under A / 2, rounded down, and four times that when the sector has a map entry of type $64 (an ion storm, query_hazard_names), spoils cargo: the hold is searched from its last slot ($0777 - 1) down, and the first slot holding a kind that spoils (cargo_spoils negative) becomes kind $14","t":"code","b":[74],"m":"lsr","x":[10610],"o":"a"},{"a":10774,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":10776,"t":"code","b":[174,16,85],"m":"ldx","oa":21776,"o":"$5510"},{"a":10779,"t":"code","b":[172,48,85],"m":"ldy","oa":21808,"o":"$5530"},{"a":10782,"t":"code","b":[32,48,48],"m":"jsr","oa":12336,"o":"sector_entries"},{"a":10785,"l":"b_2A21","t":"code","b":[136],"m":"dey","x":[10796]},{"a":10786,"t":"code","b":[48,14],"m":"bmi","oa":10802,"o":"b_2A32"},{"a":10788,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":10790,"t":"code","b":[170],"m":"tax"},{"a":10791,"t":"code","b":[189,144,85],"m":"lda","oa":21904,"o":"$5590,x"},{"a":10794,"t":"code","b":[201,100],"m":"cmp","o":"#$64"},{"a":10796,"t":"code","b":[208,243],"m":"bne","oa":10785,"o":"b_2A21"},{"a":10798,"t":"code","b":[6,148],"m":"asl","oa":148,"o":"tmp94"},{"a":10800,"t":"code","b":[6,148],"m":"asl","oa":148,"o":"tmp94"},{"a":10802,"l":"b_2A32","t":"code","b":[169,100],"m":"lda","x":[10786],"o":"#$64"},{"a":10804,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":10807,"t":"code","b":[197,148],"m":"cmp","oa":148,"o":"tmp94"},{"a":10809,"t":"code","b":[176,23],"m":"bcs","oa":10834,"o":"r_2A52"},{"a":10811,"t":"code","b":[172,119,7],"m":"ldy","oa":1911,"o":"cargo_slots"},{"a":10814,"t":"code","b":[136],"m":"dey"},{"a":10815,"l":"b_2A3F","t":"code","b":[190,103,7],"m":"ldx","oa":1895,"x":[10832],"o":"cargo_kind,y"},{"a":10818,"t":"code","b":[48,11],"m":"bmi","oa":10831,"o":"b_2A4F"},{"a":10820,"t":"code","b":[189,8,13],"m":"lda","oa":3336,"o":"cargo_spoils,x"},{"a":10823,"t":"code","b":[16,6],"m":"bpl","oa":10831,"o":"b_2A4F"},{"a":10825,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":10827,"t":"code","b":[153,103,7],"m":"sta","oa":1895,"o":"cargo_kind,y"},{"a":10830,"t":"code","b":[96],"m":"rts"},{"a":10831,"l":"b_2A4F","t":"code","b":[136],"m":"dey","x":[10818,10823]},{"a":10832,"t":"code","b":[16,237],"m":"bpl","oa":10815,"o":"b_2A3F"},{"a":10834,"l":"r_2A52","t":"code","b":[96],"m":"rts","x":[10809]},{"a":10835,"l":"daily_repair","c":"When $0740 is set, a new day clears random bits of the player's damage flags ($0409 ANDed with two random numbers ORed together)","t":"code","b":[173,64,7],"m":"lda","oa":1856,"x":[10581],"o":"item_repair_droid"},{"a":10838,"t":"code","b":[240,16],"m":"beq","oa":10856,"o":"r_2A68"},{"a":10840,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":10843,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":10845,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":10848,"t":"code","b":[5,138],"m":"ora","oa":138,"o":"tmp8A"},{"a":10850,"t":"code","b":[45,9,4],"m":"and","oa":1033,"o":"slot_damage"},{"a":10853,"t":"code","b":[141,9,4],"m":"sta","oa":1033,"o":"slot_damage"},{"a":10856,"l":"r_2A68","t":"code","b":[96],"m":"rts","x":[10838]},{"a":10857,"l":"nav_query","c":"QUERY: describes the sector under the chart cursor. Prints the system's name from the map ($5505) and the coordinates, then builds the rest in the text buffer at $FA00 ($9DEE appends): \"FEATURES \" with a name for each of the sector's map entries that is a real object ($2BC0), and the sector kind's text (sector_kind_texts, a disk text when its high byte is $C0-$CF); then \"SHIPS \" with, for the ship's own sector, the objects it met there ($0D04-$0D06 after a HELM trip) or the ships present in slots 1-5 whose type's $0AEF is zero; \"none\" where a list is empty. Prints the buffer ($9AFA). Then it searches the sector's entries from the last one back and prints the message of the first whose message word's high byte ($55D1 + 2 * entry) is not $FF, and waits for a key","t":"code","b":[160,3],"m":"ldy","x":[9741],"o":"#$03"},{"a":10859,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":10862,"t":"code","b":[32,64,47],"m":"jsr","oa":12096,"o":"clear_view"},{"a":10865,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":10867,"t":"code","b":[160,85],"m":"ldy","o":"#$55"},{"a":10869,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":10872,"t":"code","b":[173,33,13],"m":"lda","oa":3361,"o":"win_right"},{"a":10875,"t":"code","b":[56],"m":"sec"},{"a":10876,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":10878,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":10880,"t":"code","b":[173,198,0],"m":"lda","oa":198,"o":"slot_a"},{"a":10883,"t":"code","b":[32,86,159],"m":"jsr","oa":40790,"o":"print_signed"},{"a":10886,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":10888,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":10891,"t":"code","b":[173,199,0],"m":"lda","oa":199,"o":"slot_b"},{"a":10894,"t":"code","b":[32,86,159],"m":"jsr","oa":40790,"o":"print_signed"},{"a":10897,"t":"code","b":[162,13],"m":"ldx","o":"#$0D"},{"a":10899,"t":"code","b":[160,44],"m":"ldy","o":"#$2C"},{"a":10901,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":10904,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10906,"t":"code","b":[133,168],"m":"sta","oa":168,"o":"model_refpts"},{"a":10908,"t":"code","b":[141,0,250],"m":"sta","oa":64000,"o":"f_FA00"},{"a":10911,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":10913,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":10915,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":10917,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":10919,"t":"code","b":[169,246],"m":"lda","o":"#$F6"},{"a":10921,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":10923,"t":"code","b":[169,43],"m":"lda","o":"#$2B"},{"a":10925,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":10927,"t":"code","b":[32,238,157],"m":"jsr","oa":40430,"o":"append_text"},{"a":10930,"t":"code","b":[174,198,0],"m":"ldx","oa":198,"o":"slot_a"},{"a":10933,"t":"code","b":[172,199,0],"m":"ldy","oa":199,"o":"slot_b"},{"a":10936,"t":"code","b":[32,48,48],"m":"jsr","oa":12336,"o":"sector_entries"},{"a":10939,"t":"code","b":[136],"m":"dey"},{"a":10940,"t":"code","b":[48,29],"m":"bmi","oa":10971,"o":"b_2ADB"},{"a":10942,"t":"code","b":[132,169],"m":"sty","oa":169,"o":"zpa_A9"},{"a":10944,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":10946,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":10948,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":10950,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":10952,"l":"b_2AC8","t":"code","b":[177,118],"m":"lda","oa":118,"x":[10969],"o":"(src2_ptr),y"},{"a":10954,"t":"code","b":[168],"m":"tay"},{"a":10955,"t":"code","b":[185,144,85],"m":"lda","oa":21904,"o":"$5590,y"},{"a":10958,"t":"code","b":[48,5],"m":"bmi","oa":10965,"o":"b_2AD5"},{"a":10960,"t":"code","b":[240,3],"m":"beq","oa":10965,"o":"b_2AD5"},{"a":10962,"t":"code","b":[32,192,43],"m":"jsr","oa":11200,"o":"query_name"},{"a":10965,"l":"b_2AD5","t":"code","b":[198,169],"m":"dec","oa":169,"x":[10958,10960],"o":"zpa_A9"},{"a":10967,"t":"code","b":[164,169],"m":"ldy","oa":169,"o":"zpa_A9"},{"a":10969,"t":"code","b":[16,237],"m":"bpl","oa":10952,"o":"b_2AC8"},{"a":10971,"l":"b_2ADB","t":"code","b":[174,198,0],"m":"ldx","oa":198,"x":[10940],"o":"slot_a"},{"a":10974,"t":"code","b":[172,199,0],"m":"ldy","oa":199,"o":"slot_b"},{"a":10977,"t":"code","b":[32,117,47],"m":"jsr","oa":12149,"o":"sector_kind"},{"a":10980,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10981,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10982,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":10983,"t":"code","b":[168],"m":"tay"},{"a":10984,"t":"code","b":[185,13,23],"m":"lda","oa":5901,"o":"sector_kind_texts,y"},{"a":10987,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":10989,"t":"code","b":[185,14,23],"m":"lda","oa":5902,"o":"f_170E,y"},{"a":10992,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":10994,"t":"code","b":[201,192],"m":"cmp","o":"#$C0"},{"a":10996,"t":"code","b":[144,10],"m":"bcc","oa":11008,"o":"b_2B00"},{"a":10998,"t":"code","b":[201,208],"m":"cmp","o":"#$D0"},{"a":11000,"t":"code","b":[176,6],"m":"bcs","oa":11008,"o":"b_2B00"},{"a":11002,"t":"code","b":[32,238,157],"m":"jsr","oa":40430,"o":"append_text"},{"a":11005,"t":"code","b":[76,3,43],"m":"jmp","oa":11011,"o":"j_2B03"},{"a":11008,"l":"b_2B00","t":"code","b":[32,159,43],"m":"jsr","oa":11167,"x":[10996,11000],"o":"query_end_list"},{"a":11011,"l":"j_2B03","t":"code","b":[169,7],"m":"lda","x":[11005],"o":"#$07"},{"a":11013,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11015,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":11017,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11019,"t":"code","b":[32,238,157],"m":"jsr","oa":40430,"o":"append_text"},{"a":11022,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11024,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11026,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":11028,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11030,"t":"code","b":[32,238,157],"m":"jsr","oa":40430,"o":"append_text"},{"a":11033,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11035,"t":"code","b":[133,168],"m":"sta","oa":168,"o":"model_refpts"},{"a":11037,"t":"code","b":[173,198,0],"m":"lda","oa":198,"o":"slot_a"},{"a":11040,"t":"code","b":[205,16,85],"m":"cmp","oa":21776,"o":"$5510"},{"a":11043,"t":"code","b":[208,60],"m":"bne","oa":11105,"o":"b_2B61"},{"a":11045,"t":"code","b":[173,199,0],"m":"lda","oa":199,"o":"slot_b"},{"a":11048,"t":"code","b":[205,48,85],"m":"cmp","oa":21808,"o":"$5530"},{"a":11051,"t":"code","b":[208,52],"m":"bne","oa":11105,"o":"b_2B61"},{"a":11053,"t":"code","b":[173,200,0],"m":"lda","oa":200,"o":"radius_lo"},{"a":11056,"t":"code","b":[240,20],"m":"beq","oa":11078,"o":"b_2B46"},{"a":11058,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":11060,"t":"code","b":[132,169],"m":"sty","oa":169,"o":"zpa_A9"},{"a":11062,"l":"b_2B36","t":"code","b":[185,4,13],"m":"lda","oa":3332,"x":[11074],"o":"encounter_types,y"},{"a":11065,"t":"code","b":[48,3],"m":"bmi","oa":11070,"o":"b_2B3E"},{"a":11067,"t":"code","b":[32,192,43],"m":"jsr","oa":11200,"o":"query_name"},{"a":11070,"l":"b_2B3E","t":"code","b":[198,169],"m":"dec","oa":169,"x":[11065],"o":"zpa_A9"},{"a":11072,"t":"code","b":[164,169],"m":"ldy","oa":169,"o":"zpa_A9"},{"a":11074,"t":"code","b":[16,242],"m":"bpl","oa":11062,"o":"b_2B36"},{"a":11076,"t":"code","b":[48,27],"m":"bmi","oa":11105,"o":"b_2B61"},{"a":11078,"l":"b_2B46","t":"code","b":[160,5],"m":"ldy","x":[11056],"o":"#$05"},{"a":11080,"t":"code","b":[132,169],"m":"sty","oa":169,"o":"zpa_A9"},{"a":11082,"l":"b_2B4A","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[11103],"o":"slot_in_use,y"},{"a":11085,"t":"code","b":[240,12],"m":"beq","oa":11099,"o":"b_2B5B"},{"a":11087,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":11090,"t":"code","b":[170],"m":"tax"},{"a":11091,"t":"code","b":[188,239,10],"m":"ldy","oa":2799,"o":"type_damage,x"},{"a":11094,"t":"code","b":[208,3],"m":"bne","oa":11099,"o":"b_2B5B"},{"a":11096,"t":"code","b":[32,192,43],"m":"jsr","oa":11200,"o":"query_name"},{"a":11099,"l":"b_2B5B","t":"code","b":[198,169],"m":"dec","oa":169,"x":[11085,11094],"o":"zpa_A9"},{"a":11101,"t":"code","b":[164,169],"m":"ldy","oa":169,"o":"zpa_A9"},{"a":11103,"t":"code","b":[208,233],"m":"bne","oa":11082,"o":"b_2B4A"},{"a":11105,"l":"b_2B61","t":"code","b":[32,159,43],"m":"jsr","oa":11167,"x":[11043,11051,11076],"o":"query_end_list"},{"a":11108,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":11110,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11112,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":11114,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11116,"t":"code","b":[32,238,157],"m":"jsr","oa":40430,"o":"append_text"},{"a":11119,"t":"code","b":[166,120],"m":"ldx","oa":120,"o":"dest_ptr"},{"a":11121,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":11123,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":11126,"t":"code","b":[174,198,0],"m":"ldx","oa":198,"o":"slot_a"},{"a":11129,"t":"code","b":[172,199,0],"m":"ldy","oa":199,"o":"slot_b"},{"a":11132,"t":"code","b":[32,48,48],"m":"jsr","oa":12336,"o":"sector_entries"},{"a":11135,"t":"code","b":[136],"m":"dey"},{"a":11136,"t":"code","b":[48,26],"m":"bmi","oa":11164,"o":"b_2B9C"},{"a":11138,"l":"b_2B82","t":"code","b":[177,116],"m":"lda","oa":116,"x":[11162],"o":"(src1_ptr),y"},{"a":11140,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11141,"t":"code","b":[170],"m":"tax"},{"a":11142,"t":"code","b":[189,209,85],"m":"lda","oa":21969,"o":"$55D1,x"},{"a":11145,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":11147,"t":"code","b":[240,12],"m":"beq","oa":11161,"o":"b_2B99"},{"a":11149,"t":"code","b":[72],"m":"pha"},{"a":11150,"t":"code","b":[189,208,85],"m":"lda","oa":21968,"o":"$55D0,x"},{"a":11153,"t":"code","b":[170],"m":"tax"},{"a":11154,"t":"code","b":[104],"m":"pla"},{"a":11155,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":11158,"t":"code","b":[76,156,43],"m":"jmp","oa":11164,"o":"b_2B9C"},{"a":11161,"l":"b_2B99","t":"code","b":[136],"m":"dey","x":[11147]},{"a":11162,"t":"code","b":[16,230],"m":"bpl","oa":11138,"o":"b_2B82"},{"a":11164,"l":"b_2B9C","t":"code","b":[76,49,164],"m":"jmp","oa":42033,"x":[11136,11158],"o":"wait_key"},{"a":11167,"l":"query_end_list","c":"Ends a QUERY list: after names it takes off the last \", \"; with none it appends \"none\"","t":"code","b":[165,168],"m":"lda","oa":168,"x":[11008,11105],"o":"model_refpts"},{"a":11169,"t":"code","b":[240,18],"m":"beq","oa":11189,"o":"b_2BB5"},{"a":11171,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":11173,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11175,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":11177,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11179,"t":"code","b":[32,133,155],"m":"jsr","oa":39813,"o":"text_length"},{"a":11182,"t":"code","b":[136],"m":"dey"},{"a":11183,"t":"code","b":[136],"m":"dey"},{"a":11184,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11186,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":11188,"t":"code","b":[96],"m":"rts"},{"a":11189,"l":"b_2BB5","t":"code","b":[169,241],"m":"lda","x":[11169],"o":"#$F1"},{"a":11191,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11193,"t":"code","b":[169,43],"m":"lda","o":"#$2B"},{"a":11195,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11197,"t":"code","b":[76,238,157],"m":"jmp","oa":40430,"o":"append_text"},{"a":11200,"l":"query_name","c":"Appends the name of map entry type A: types below $64 by the object type's name pointer ($0B12/$0B13), $64 and up from query_hazard_names ($2C12); then \", \"","t":"code","b":[201,100],"m":"cmp","x":[10962,11067,11096],"o":"#$64"},{"a":11202,"t":"code","b":[144,17],"m":"bcc","oa":11221,"o":"b_2BD5"},{"a":11204,"t":"code","b":[233,100],"m":"sbc","o":"#$64"},{"a":11206,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11207,"t":"code","b":[168],"m":"tay"},{"a":11208,"t":"code","b":[185,18,44],"m":"lda","oa":11282,"o":"query_hazard_names,y"},{"a":11211,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11213,"t":"code","b":[185,19,44],"m":"lda","oa":11283,"o":"f_2C13,y"},{"a":11216,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11218,"t":"code","b":[76,225,43],"m":"jmp","oa":11233,"o":"j_2BE1"},{"a":11221,"l":"b_2BD5","t":"code","b":[10],"m":"asl","x":[11202],"o":"a"},{"a":11222,"t":"code","b":[168],"m":"tay"},{"a":11223,"t":"code","b":[185,18,11],"m":"lda","oa":2834,"o":"type_names,y"},{"a":11226,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11228,"t":"code","b":[185,19,11],"m":"lda","oa":2835,"o":"type_names_hi,y"},{"a":11231,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11233,"l":"j_2BE1","t":"code","b":[32,238,157],"m":"jsr","oa":40430,"x":[11218],"o":"append_text"},{"a":11236,"t":"code","b":[230,168],"m":"inc","oa":168,"o":"model_refpts"},{"a":11238,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":11240,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":11242,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":11244,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":11246,"t":"code","b":[76,238,157],"m":"jmp","oa":40430,"o":"append_text"},{"a":11249,"l":"str_none","c":"\"none\", then \"FEATURES \" ($2BF6), \"SHIPS \" ($2C00), two carriage returns ($2C07), \", \" ($2C0A) and the line breaks at $2C0D","t":"byte","b":[110,111,110,101,0,70,69,65]},{"a":11257,"t":"byte","b":[84,85,82,69,83,32,0,83]},{"a":11265,"t":"byte","b":[72,73,80,83,32,0]},{"a":11271,"l":"f_2C07","c":"Two carriage returns, the separator after each QUERY section","t":"byte","b":[13,13,0,44,32,0,13,18]},{"a":11279,"t":"byte","b":[13,13,0]},{"a":11282,"l":"query_hazard_names","c":"Name pointers for map entry types from $64: type $64 is \"Ion Storm\" ($2C14)","t":"byte","b":[20],"x":[11208]},{"a":11283,"l":"f_2C13","c":"The high byte of query_hazard_names' pointer for type $64","t":"byte","b":[44,73,111,110,32,83,116,111],"x":[11213]},{"a":11291,"t":"byte","b":[114,109,0]},{"a":11294,"l":"encounter_roll","c":"Rolls for an encounter after A hours of HELM travel: the chance grows with the hours and the system's danger level ($077C, both through $B451, less $495, $B5E0), kept in $96. Up to three ship types are drawn ($2C8C) into $0D04-$0D06 with their factions in $97-$99 (none: $FF); with at least one, $2CD2 decides whether they attack ($0D07). The BMI after the first draw reads the N of pick_ship's last load, the faction for a ship (never negative for the types the classes hold) or $FF for none. Returns the first type, negative for none","t":"code","b":[133,96],"m":"sta","oa":96,"x":[10648,29267],"o":"acc_mid"},{"a":11296,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11298,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":11300,"t":"code","b":[32,81,180],"m":"jsr","oa":46161,"o":"$B451"},{"a":11303,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":11305,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":11307,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":11309,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":11311,"t":"code","b":[173,124,7],"m":"lda","oa":1916,"o":"danger"},{"a":11314,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":11316,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11318,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":11320,"t":"code","b":[32,81,180],"m":"jsr","oa":46161,"o":"$B451"},{"a":11323,"t":"code","b":[165,98],"m":"lda","oa":98,"o":"arg_lo"},{"a":11325,"t":"code","b":[24],"m":"clc"},{"a":11326,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":11328,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":11330,"t":"code","b":[165,99],"m":"lda","oa":99,"o":"arg_mid"},{"a":11332,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":11334,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":11336,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":11338,"t":"code","b":[56],"m":"sec"},{"a":11339,"t":"code","b":[233,149],"m":"sbc","o":"#$95"},{"a":11341,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":11343,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":11345,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":11347,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":11349,"t":"code","b":[32,224,181],"m":"jsr","oa":46560,"o":"$B5E0"},{"a":11352,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":11354,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":11356,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11358,"t":"code","b":[141,7,13],"m":"sta","oa":3335,"o":"ships_near"},{"a":11361,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":11363,"t":"code","b":[141,5,13],"m":"sta","oa":3333,"o":"a_0D05"},{"a":11366,"t":"code","b":[141,6,13],"m":"sta","oa":3334,"o":"a_0D06"},{"a":11369,"t":"code","b":[32,140,44],"m":"jsr","oa":11404,"o":"pick_ship"},{"a":11372,"t":"code","b":[134,151],"m":"stx","oa":151,"o":"tmp97"},{"a":11374,"t":"code","b":[141,4,13],"m":"sta","oa":3332,"o":"encounter_types"},{"a":11377,"t":"code","b":[48,19],"m":"bmi","oa":11398,"o":"b_2C86"},{"a":11379,"t":"code","b":[32,140,44],"m":"jsr","oa":11404,"o":"pick_ship"},{"a":11382,"t":"code","b":[134,152],"m":"stx","oa":152,"o":"tmp98"},{"a":11384,"t":"code","b":[141,5,13],"m":"sta","oa":3333,"o":"a_0D05"},{"a":11387,"t":"code","b":[32,140,44],"m":"jsr","oa":11404,"o":"pick_ship"},{"a":11390,"t":"code","b":[134,153],"m":"stx","oa":153,"o":"tmp99"},{"a":11392,"t":"code","b":[141,6,13],"m":"sta","oa":3334,"o":"a_0D06"},{"a":11395,"t":"code","b":[32,210,44],"m":"jsr","oa":11474,"o":"encounter_hostile"},{"a":11398,"l":"b_2C86","t":"code","b":[173,4,13],"m":"lda","oa":3332,"x":[11377],"o":"encounter_types"},{"a":11401,"t":"code","b":[96],"m":"rts"},{"a":11402,"l":"pick_ship_with_chance","c":"Sets the chance in $96, then picks a ship type as pick_ship does","t":"code","b":[133,150],"m":"sta","oa":150,"x":[4764],"o":"tmp96"},{"a":11404,"l":"pick_ship","c":"A random number below 100 at or over the chance $96 gives no ship ($FF). Otherwise a second random number below 100 is spent across the system's five class weights ($077D-$0781, the last first) to choose a class, and one of the class's four entries in ship_class_types ($2D24) is picked: a random number from 0 to 15 under 4 picks that entry; otherwise a random number from 0 to the player's rank value ($0C79), halved, picks it, 3 at most, so a low rank gets the first entries and a higher one the third and fourth. Returns the type in A and its faction ($0C1E) in X","t":"code","b":[169,99],"m":"lda","x":[11369,11379,11387],"o":"#$63"},{"a":11406,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":11409,"t":"code","b":[197,150],"m":"cmp","oa":150,"o":"tmp96"},{"a":11411,"t":"code","b":[176,16],"m":"bcs","oa":11429,"o":"b_2CA5"},{"a":11413,"t":"code","b":[169,99],"m":"lda","o":"#$63"},{"a":11415,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":11418,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":11420,"t":"code","b":[56],"m":"sec"},{"a":11421,"l":"b_2C9D","t":"code","b":[249,125,7],"m":"sbc","oa":1917,"x":[11427],"o":"class_weights,y"},{"a":11424,"t":"code","b":[136],"m":"dey"},{"a":11425,"t":"code","b":[144,5],"m":"bcc","oa":11432,"o":"b_2CA8"},{"a":11427,"t":"code","b":[16,248],"m":"bpl","oa":11421,"o":"b_2C9D"},{"a":11429,"l":"b_2CA5","t":"code","b":[169,255],"m":"lda","x":[11411],"o":"#$FF"},{"a":11431,"t":"code","b":[96],"m":"rts"},{"a":11432,"l":"b_2CA8","t":"code","b":[132,148],"m":"sty","oa":148,"x":[11425],"o":"tmp94"},{"a":11434,"t":"code","b":[200],"m":"iny"},{"a":11435,"t":"code","b":[152],"m":"tya"},{"a":11436,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11437,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11438,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"tmp95"},{"a":11440,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":11442,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":11445,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":11447,"t":"code","b":[144,13],"m":"bcc","oa":11462,"o":"b_2CC6"},{"a":11449,"t":"code","b":[173,121,12],"m":"lda","oa":3193,"o":"type_rank"},{"a":11452,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":11455,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11456,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":11458,"t":"code","b":[144,2],"m":"bcc","oa":11462,"o":"b_2CC6"},{"a":11460,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":11462,"l":"b_2CC6","t":"code","b":[24],"m":"clc","x":[11447,11458]},{"a":11463,"t":"code","b":[101,149],"m":"adc","oa":149,"o":"tmp95"},{"a":11465,"t":"code","b":[168],"m":"tay"},{"a":11466,"t":"code","b":[185,36,45],"m":"lda","oa":11556,"o":"ship_class_types,y"},{"a":11469,"t":"code","b":[168],"m":"tay"},{"a":11470,"t":"code","b":[190,30,12],"m":"ldx","oa":3102,"o":"type_faction,y"},{"a":11473,"t":"code","b":[96],"m":"rts"},{"a":11474,"l":"encounter_hostile","c":"Decides whether the encounter attacks: if the second or third ship is hostile to the first ($387E returns $FE) they fight each other and leave the player alone; with $073D set, a random number below $56 also lets them pass; otherwise the first ship's attitude to the player ($387E with X=4): hostile ($FE) means an attack ($0D07 counts up), $FF or a neutral faction 0 attacks half the time (a negative random number)","t":"code","b":[174,5,13],"m":"ldx","oa":3333,"x":[11395],"o":"a_0D05"},{"a":11477,"t":"code","b":[48,11],"m":"bmi","oa":11490,"o":"b_2CE2"},{"a":11479,"t":"code","b":[166,152],"m":"ldx","oa":152,"o":"tmp98"},{"a":11481,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":11483,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":11486,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":11488,"t":"code","b":[240,56],"m":"beq","oa":11546,"o":"r_2D1A"},{"a":11490,"l":"b_2CE2","t":"code","b":[174,6,13],"m":"ldx","oa":3334,"x":[11477],"o":"a_0D06"},{"a":11493,"t":"code","b":[48,11],"m":"bmi","oa":11506,"o":"b_2CF2"},{"a":11495,"t":"code","b":[166,153],"m":"ldx","oa":153,"o":"tmp99"},{"a":11497,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":11499,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":11502,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":11504,"t":"code","b":[240,40],"m":"beq","oa":11546,"o":"r_2D1A"},{"a":11506,"l":"b_2CF2","t":"code","b":[173,61,7],"m":"lda","oa":1853,"x":[11493],"o":"item_stealth_box"},{"a":11509,"t":"code","b":[240,7],"m":"beq","oa":11518,"o":"b_2CFE"},{"a":11511,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":11514,"t":"code","b":[201,86],"m":"cmp","o":"#$56"},{"a":11516,"t":"code","b":[144,28],"m":"bcc","oa":11546,"o":"r_2D1A"},{"a":11518,"l":"b_2CFE","t":"code","b":[162,4],"m":"ldx","x":[11509],"o":"#$04"},{"a":11520,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":11522,"t":"code","b":[172,4,13],"m":"ldy","oa":3332,"o":"encounter_types"},{"a":11525,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":11528,"t":"code","b":[208,8],"m":"bne","oa":11538,"o":"b_2D12"},{"a":11530,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":11532,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":11534,"t":"code","b":[240,11],"m":"beq","oa":11547,"o":"b_2D1B"},{"a":11536,"t":"code","b":[208,8],"m":"bne","oa":11546,"o":"r_2D1A"},{"a":11538,"l":"b_2D12","t":"code","b":[201,255],"m":"cmp","x":[11528],"o":"#$FF"},{"a":11540,"t":"code","b":[240,5],"m":"beq","oa":11547,"o":"b_2D1B"},{"a":11542,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":11544,"t":"code","b":[240,6],"m":"beq","oa":11552,"o":"b_2D20"},{"a":11546,"l":"r_2D1A","t":"code","b":[96],"m":"rts","x":[11488,11504,11516,11536,11550]},{"a":11547,"l":"b_2D1B","t":"code","b":[32,197,162],"m":"jsr","oa":41669,"x":[11534,11540],"o":"random"},{"a":11550,"t":"code","b":[16,250],"m":"bpl","oa":11546,"o":"r_2D1A"},{"a":11552,"l":"b_2D20","t":"code","b":[238,7,13],"m":"inc","oa":3335,"x":[11544],"o":"ships_near"},{"a":11555,"t":"code","b":[96],"m":"rts"},{"a":11556,"l":"ship_class_types","c":"Four object types for each of the five ship classes pick_ship chooses from: class 0 types 12 12 12 12, then 2 2 5 5, 7 8 7 8, 3 3 6 6, 1 1 4 4","t":"byte","b":[12,12,12,12,2,2,5,5],"x":[11466]},{"a":11564,"t":"byte","b":[7,8,7,8,3,3,6,6]},{"a":11572,"t":"byte","b":[1,1,4,4]},{"a":11576,"l":"move_map_objects","c":"Once a day of HELM travel: every map entry with a motion kind (flags at $5550, bits 0-2) is moved by its kind's routine, the address from map_motion_routines written into the JSR at $2D56","t":"code","b":[162,31],"m":"ldx","x":[10613],"o":"#$1F"},{"a":11578,"t":"code","b":[134,158],"m":"stx","oa":158,"o":"model_polys"},{"a":11580,"l":"b_2D3C","t":"code","b":[189,16,85],"m":"lda","oa":21776,"x":[11613],"o":"$5510,x"},{"a":11583,"t":"code","b":[48,24],"m":"bmi","oa":11609,"o":"b_2D59"},{"a":11585,"t":"code","b":[189,80,85],"m":"lda","oa":21840,"o":"$5550,x"},{"a":11588,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":11590,"t":"code","b":[240,17],"m":"beq","oa":11609,"o":"b_2D59"},{"a":11592,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11593,"t":"code","b":[168],"m":"tay"},{"a":11594,"t":"code","b":[185,7,46],"m":"lda","oa":11783,"o":"f_2E07,y"},{"a":11597,"t":"code","b":[141,87,45],"m":"sta","oa":11607,"o":"a_2D57"},{"a":11600,"t":"code","b":[185,8,46],"m":"lda","oa":11784,"o":"f_2E08,y"},{"a":11603,"t":"code","b":[141,88,45],"m":"sta","oa":11608,"o":"a_2D58"},{"a":11606,"c":"JSR whose operand move_map_objects rewrites to the entry's motion routine","t":"code","b":[32,86,45],"m":"jsr","oa":11606,"x":[11606],"o":"$2D56"},{"a":11607,"t":"note","l":"a_2D57","c":"Low byte of the JSR operand move_map_objects rewrites","note":"inside the item at $2D56","x":[11597]},{"a":11608,"t":"note","l":"a_2D58","c":"High byte of the JSR operand move_map_objects rewrites","note":"inside the item at $2D56","x":[11603]},{"a":11609,"l":"b_2D59","t":"code","b":[198,158],"m":"dec","oa":158,"x":[11583,11590],"o":"model_polys"},{"a":11611,"t":"code","b":[166,158],"m":"ldx","oa":158,"o":"model_polys"},{"a":11613,"t":"code","b":[208,221],"m":"bne","oa":11580,"o":"b_2D3C"},{"a":11615,"t":"code","b":[96],"m":"rts"},{"a":11616,"l":"place_orbiting_objects","c":"When a system map is loaded: puts each entry of motion kind 3 or 4 (the orbits) at its place for the date, through the JSR at $2D82 rewritten the same way","t":"code","b":[162,31],"m":"ldx","x":[11933],"o":"#$1F"},{"a":11618,"l":"b_2D62","t":"code","b":[189,16,85],"m":"lda","oa":21776,"x":[11654],"o":"$5510,x"},{"a":11621,"t":"code","b":[48,30],"m":"bmi","oa":11653,"o":"b_2D85"},{"a":11623,"t":"code","b":[189,80,85],"m":"lda","oa":21840,"o":"$5550,x"},{"a":11626,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":11628,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":11630,"t":"code","b":[240,4],"m":"beq","oa":11636,"o":"b_2D74"},{"a":11632,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":11634,"t":"code","b":[208,17],"m":"bne","oa":11653,"o":"b_2D85"},{"a":11636,"l":"b_2D74","t":"code","b":[10],"m":"asl","x":[11630],"o":"a"},{"a":11637,"t":"code","b":[168],"m":"tay"},{"a":11638,"t":"code","b":[185,7,46],"m":"lda","oa":11783,"o":"f_2E07,y"},{"a":11641,"t":"code","b":[141,131,45],"m":"sta","oa":11651,"o":"a_2D83"},{"a":11644,"t":"code","b":[185,8,46],"m":"lda","oa":11784,"o":"f_2E08,y"},{"a":11647,"t":"code","b":[141,132,45],"m":"sta","oa":11652,"o":"a_2D84"},{"a":11650,"c":"JSR rewritten by place_orbiting_objects to the orbit routine","t":"code","b":[32,186,45],"m":"jsr","oa":11706,"o":"motion_small_orbit"},{"a":11651,"t":"note","l":"a_2D83","c":"Low byte of the JSR operand place_orbiting_objects rewrites","note":"inside the item at $2D82","x":[11641]},{"a":11652,"t":"note","l":"a_2D84","c":"High byte of the JSR operand place_orbiting_objects rewrites","note":"inside the item at $2D82","x":[11647]},{"a":11653,"l":"b_2D85","t":"code","b":[202],"m":"dex","x":[11621,11634]},{"a":11654,"t":"code","b":[208,218],"m":"bne","oa":11618,"o":"b_2D62"},{"a":11656,"t":"code","b":[96],"m":"rts"},{"a":11657,"l":"motion_wander","c":"Motion kind 1: the entry moves a random step of -1, 0 or 1 across and down, staying on the 32 by 32 chart","t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":11659,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":11662,"t":"code","b":[170],"m":"tax"},{"a":11663,"t":"code","b":[202],"m":"dex"},{"a":11664,"t":"code","b":[134,159],"m":"stx","oa":159,"o":"model_axes"},{"a":11666,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":11668,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":11671,"t":"code","b":[168],"m":"tay"},{"a":11672,"t":"code","b":[136],"m":"dey"},{"a":11673,"t":"code","b":[166,159],"m":"ldx","oa":159,"o":"model_axes"},{"a":11675,"t":"code","b":[132,160],"m":"sty","oa":160,"o":"model_reflist"},{"a":11677,"t":"code","b":[164,158],"m":"ldy","oa":158,"o":"model_polys"},{"a":11679,"t":"code","b":[138],"m":"txa"},{"a":11680,"t":"code","b":[24],"m":"clc"},{"a":11681,"t":"code","b":[121,16,85],"m":"adc","oa":21776,"o":"$5510,y"},{"a":11684,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":11686,"t":"code","b":[176,3],"m":"bcs","oa":11691,"o":"b_2DAB"},{"a":11688,"t":"code","b":[153,16,85],"m":"sta","oa":21776,"o":"$5510,y"},{"a":11691,"l":"b_2DAB","t":"code","b":[165,160],"m":"lda","oa":160,"x":[11686],"o":"model_reflist"},{"a":11693,"t":"code","b":[24],"m":"clc"},{"a":11694,"t":"code","b":[121,48,85],"m":"adc","oa":21808,"o":"$5530,y"},{"a":11697,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":11699,"t":"code","b":[176,3],"m":"bcs","oa":11704,"o":"r_2DB8"},{"a":11701,"t":"code","b":[153,48,85],"m":"sta","oa":21808,"o":"$5530,y"},{"a":11704,"l":"r_2DB8","t":"code","b":[96],"m":"rts","x":[11699]},{"a":11705,"l":"motion_none","c":"Motion kind 2: an RTS, the entry stays where it is","t":"code","b":[96],"m":"rts"},{"a":11706,"l":"motion_small_orbit","c":"Motion kind 3: places the entry on the 16-step orbit at $2E11 by the day count ($0724/2 plus the system's phase $5610). An entry whose picture ($5570) is $6C-$6F gets the picture for its quarter of the orbit ($2DD2)","t":"code","b":[173,36,7],"m":"lda","oa":1828,"x":[11650],"o":"days_elapsed"},{"a":11709,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11710,"t":"code","b":[24],"m":"clc"},{"a":11711,"t":"code","b":[109,16,86],"m":"adc","oa":22032,"o":"$5610"},{"a":11714,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":11716,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11717,"t":"code","b":[168],"m":"tay"},{"a":11718,"t":"code","b":[185,17,46],"m":"lda","oa":11793,"o":"orbit_small,y"},{"a":11721,"t":"code","b":[157,16,85],"m":"sta","oa":21776,"o":"$5510,x"},{"a":11724,"t":"code","b":[185,18,46],"m":"lda","oa":11794,"o":"f_2E12,y"},{"a":11727,"t":"code","b":[157,48,85],"m":"sta","oa":21808,"o":"$5530,x"},{"a":11730,"l":"b_2DD2","t":"code","b":[189,112,85],"m":"lda","oa":21872,"x":[11783],"o":"$5570,x"},{"a":11733,"t":"code","b":[201,108],"m":"cmp","o":"#$6C"},{"a":11735,"t":"code","b":[144,17],"m":"bcc","oa":11754,"o":"r_2DEA"},{"a":11737,"t":"code","b":[201,112],"m":"cmp","o":"#$70"},{"a":11739,"t":"code","b":[176,13],"m":"bcs","oa":11754,"o":"r_2DEA"},{"a":11741,"t":"code","b":[152],"m":"tya"},{"a":11742,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11743,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11744,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11745,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":11747,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":11749,"t":"code","b":[105,108],"m":"adc","o":"#$6C"},{"a":11751,"t":"code","b":[157,112,85],"m":"sta","oa":21872,"o":"$5570,x"},{"a":11754,"l":"r_2DEA","t":"code","b":[96],"m":"rts","x":[11735,11739]},{"a":11755,"l":"motion_large_orbit","c":"Motion kind 4: places the entry on the 32-step orbit at $2E31 by the day count ($0724/4 plus $5611), then sets its picture like motion_small_orbit","t":"code","b":[173,36,7],"m":"lda","oa":1828,"o":"days_elapsed"},{"a":11758,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11759,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11760,"t":"code","b":[24],"m":"clc"},{"a":11761,"t":"code","b":[109,17,86],"m":"adc","oa":22033,"o":"$5611"},{"a":11764,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":11766,"t":"code","b":[10],"m":"asl","o":"a"},{"a":11767,"t":"code","b":[168],"m":"tay"},{"a":11768,"t":"code","b":[185,49,46],"m":"lda","oa":11825,"o":"orbit_large,y"},{"a":11771,"t":"code","b":[157,16,85],"m":"sta","oa":21776,"o":"$5510,x"},{"a":11774,"t":"code","b":[185,50,46],"m":"lda","oa":11826,"o":"f_2E32,y"},{"a":11777,"t":"code","b":[157,48,85],"m":"sta","oa":21808,"o":"$5530,x"},{"a":11780,"t":"code","b":[152],"m":"tya"},{"a":11781,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":11782,"t":"code","b":[168],"m":"tay"},{"a":11783,"l":"f_2E07","c":"The BPL that ends motion_large_orbit; its two bytes are also where motion kind 0 would read its routine in map_motion_routines","t":"code","b":[16,201],"m":"bpl","oa":11730,"x":[11594,11638],"o":"b_2DD2"},{"a":11784,"t":"note","l":"f_2E08","c":"The BPL's offset byte, also the high byte motion kind 0 would read","note":"inside the item at $2E07","x":[11600,11644]},{"a":11785,"l":"map_motion_routines","c":"The motion routine of each kind from 1: $2D89 wander, $2DB9 none, $2DBA small orbit, $2DEB large orbit","t":"byte","b":[137,45,185,45,186,45,235,45]},{"a":11793,"l":"orbit_small","c":"The 16 chart positions (x, y) of the small orbit, a circle of radius 3 around the centre of the chart (16,16)","t":"byte","b":[16],"x":[11718]},{"a":11794,"l":"f_2E12","c":"The y coordinates of orbit_small's positions, read in pairs with the x at $2E11","t":"byte","b":[19,17,19,18,18,19,17,19],"x":[11724]},{"a":11802,"t":"byte","b":[16,19,15,18,14,17,13,16]},{"a":11810,"t":"byte","b":[13,15,13,14,14,13,15,13]},{"a":11818,"t":"byte","b":[16,13,17,14,18,15,19]},{"a":11825,"l":"orbit_large","c":"The 32 chart positions (x, y) of the large orbit, a circle of radius 6 around the centre","t":"byte","b":[16],"x":[11768]},{"a":11826,"l":"f_2E32","c":"The y coordinates of orbit_large's positions, read in pairs with the x at $2E31","t":"byte","b":[22,17,22,18,21,19,21,20],"x":[11774]},{"a":11834,"t":"byte","b":[20,21,19,21,18,22,17,22]},{"a":11842,"t":"byte","b":[16,22,15,21,14,21,13,20]},{"a":11850,"t":"byte","b":[12,19,11,18,11,17,10,16]},{"a":11858,"t":"byte","b":[10,15,10,14,11,13,11,12]},{"a":11866,"t":"byte","b":[12,11,13,11,14,10,15,10]},{"a":11874,"t":"byte","b":[16,10,17,11,18,11,19,12]},{"a":11882,"t":"byte","b":[20,13,21,14,21,15,22]},{"a":11889,"l":"back_to_cockpit","c":"Leaves navigation or a base screen for the cockpit: restores the picture and view ($1525), $A14C, and redraws the cockpit ($3102)","t":"code","b":[32,37,21],"m":"jsr","oa":5413,"x":[9802,28975],"o":"restore_after_disk"},{"a":11892,"t":"code","b":[32,76,161],"m":"jsr","oa":41292,"o":"mirror_text_on"},{"a":11895,"t":"code","b":[76,2,49],"m":"jmp","oa":12546,"o":"update_cockpit"},{"a":11898,"l":"load_system_map","c":"Loads the system map of system $071D: the file \"Q\" with the system's digit ($2EA0) to $5100. Copies the system's six encounter bytes ($5612: danger level and five class weights) to $077C-$0781 and places the orbiting objects ($2D60)","t":"code","b":[173,29,7],"m":"lda","oa":1821,"x":[9587,29030,29210,29234],"o":"cur_system"},{"a":11901,"t":"code","b":[24],"m":"clc"},{"a":11902,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":11904,"t":"code","b":[141,161,46],"m":"sta","oa":11937,"o":"a_2EA1"},{"a":11907,"t":"code","b":[162,160],"m":"ldx","o":"#$A0"},{"a":11909,"t":"code","b":[160,46],"m":"ldy","o":"#$2E"},{"a":11911,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":11913,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":11915,"t":"code","b":[169,81],"m":"lda","o":"#$51"},{"a":11917,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":11919,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":11922,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":11924,"l":"b_2E94","t":"code","b":[185,18,86],"m":"lda","oa":22034,"x":[11931],"o":"$5612,y"},{"a":11927,"t":"code","b":[153,124,7],"m":"sta","oa":1916,"o":"danger,y"},{"a":11930,"t":"code","b":[136],"m":"dey"},{"a":11931,"t":"code","b":[16,247],"m":"bpl","oa":11924,"o":"b_2E94"},{"a":11933,"t":"code","b":[76,96,45],"m":"jmp","oa":11616,"o":"place_orbiting_objects"},{"a":11936,"l":"str_system_file","c":"The system map's file name, \"Q\" and a digit load_system_map writes","t":"byte","b":[81]},{"a":11937,"l":"a_2EA1","c":"The system digit of str_system_file, written by load_system_map","t":"byte","b":[48,0],"x":[11904]},{"a":11939,"l":"cargo_add","c":"Puts cargo of kind A into the first empty hold slot from the top ($0767 negative), noting X, the price paid, in $076F. Carry set when the hold is full","t":"code","b":[134,128],"m":"stx","oa":128,"x":[15187],"o":"tmp80"},{"a":11941,"t":"code","b":[172,119,7],"m":"ldy","oa":1911,"o":"cargo_slots"},{"a":11944,"t":"code","b":[136],"m":"dey"},{"a":11945,"l":"b_2EA9","t":"code","b":[190,103,7],"m":"ldx","oa":1895,"x":[11951],"o":"cargo_kind,y"},{"a":11948,"t":"code","b":[48,5],"m":"bmi","oa":11955,"o":"b_2EB3"},{"a":11950,"t":"code","b":[136],"m":"dey"},{"a":11951,"t":"code","b":[16,248],"m":"bpl","oa":11945,"o":"b_2EA9"},{"a":11953,"t":"code","b":[56],"m":"sec"},{"a":11954,"t":"code","b":[96],"m":"rts"},{"a":11955,"l":"b_2EB3","t":"code","b":[153,103,7],"m":"sta","oa":1895,"x":[11948],"o":"cargo_kind,y"},{"a":11958,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":11960,"t":"code","b":[153,111,7],"m":"sta","oa":1903,"o":"cargo_paid,y"},{"a":11963,"t":"code","b":[24],"m":"clc"},{"a":11964,"t":"code","b":[96],"m":"rts"},{"a":11965,"l":"cargo_remove","c":"Called from the base overlay (SEG1, $AF57): finds the first hold slot from the top holding cargo kind A ($0767 counted from slot $0777) and empties it ($FF); returns with Z set when none was found","t":"code","b":[172,119,7],"m":"ldy","oa":1911,"o":"cargo_slots"},{"a":11968,"l":"b_2EC0","t":"code","b":[217,102,7],"m":"cmp","oa":1894,"x":[11974],"o":"f_0766,y"},{"a":11971,"t":"code","b":[240,4],"m":"beq","oa":11977,"o":"b_2EC9"},{"a":11973,"t":"code","b":[136],"m":"dey"},{"a":11974,"t":"code","b":[208,248],"m":"bne","oa":11968,"o":"b_2EC0"},{"a":11976,"t":"code","b":[96],"m":"rts"},{"a":11977,"l":"b_2EC9","t":"code","b":[169,255],"m":"lda","x":[11971],"o":"#$FF"},{"a":11979,"t":"code","b":[153,102,7],"m":"sta","oa":1894,"o":"f_0766,y"},{"a":11982,"t":"code","b":[96],"m":"rts"},{"a":11983,"l":"cargo_jettison","c":"Empties every hold slot ($0767-$076E set to $FF, $0777 slots)","t":"code","b":[172,119,7],"m":"ldy","oa":1911,"x":[5076,14846],"o":"cargo_slots"},{"a":11986,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":11988,"l":"b_2ED4","t":"code","b":[153,102,7],"m":"sta","oa":1894,"x":[11992],"o":"f_0766,y"},{"a":11991,"t":"code","b":[136],"m":"dey"},{"a":11992,"t":"code","b":[208,250],"m":"bne","oa":11988,"o":"b_2ED4"},{"a":11994,"t":"code","b":[96],"m":"rts"},{"a":11995,"l":"cargo_count","c":"Counts the hold slots in use: returns 0 for none, $FF for a full hold, otherwise the count","t":"code","b":[172,119,7],"m":"ldy","oa":1911,"x":[4910,14834,15154],"o":"cargo_slots"},{"a":11998,"t":"code","b":[136],"m":"dey"},{"a":11999,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":12001,"l":"b_2EE1","t":"code","b":[185,103,7],"m":"lda","oa":1895,"x":[12008],"o":"cargo_kind,y"},{"a":12004,"t":"code","b":[48,1],"m":"bmi","oa":12007,"o":"b_2EE7"},{"a":12006,"t":"code","b":[232],"m":"inx"},{"a":12007,"l":"b_2EE7","t":"code","b":[136],"m":"dey","x":[12004]},{"a":12008,"t":"code","b":[16,247],"m":"bpl","oa":12001,"o":"b_2EE1"},{"a":12010,"t":"code","b":[138],"m":"txa"},{"a":12011,"t":"code","b":[240,7],"m":"beq","oa":12020,"o":"r_2EF4"},{"a":12013,"t":"code","b":[236,119,7],"m":"cpx","oa":1911,"o":"cargo_slots"},{"a":12016,"t":"code","b":[208,3],"m":"bne","oa":12021,"o":"b_2EF5"},{"a":12018,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":12020,"l":"r_2EF4","t":"code","b":[96],"m":"rts","x":[12011]},{"a":12021,"l":"b_2EF5","t":"code","b":[138],"m":"txa","x":[12016]},{"a":12022,"t":"code","b":[96],"m":"rts"},{"a":12023,"l":"print_disk_text_cf9c","c":"Prints the disk text $CF9C+A","t":"code","b":[24],"m":"clc","x":[15117]},{"a":12024,"t":"code","b":[105,156],"m":"adc","o":"#$9C"},{"a":12026,"t":"code","b":[170],"m":"tax"},{"a":12027,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":12029,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12031,"t":"code","b":[168],"m":"tay"},{"a":12032,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":12035,"l":"pay_credits","c":"Takes the word $60/$61 off the credits ($0728/$0729) if there are enough: carry set when paid, clear (and nothing taken) when not","t":"code","b":[173,40,7],"m":"lda","oa":1832,"x":[14795],"o":"credits"},{"a":12038,"t":"code","b":[197,96],"m":"cmp","oa":96,"o":"acc_mid"},{"a":12040,"t":"code","b":[173,41,7],"m":"lda","oa":1833,"o":"a_0729"},{"a":12043,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":12045,"t":"code","b":[144,18],"m":"bcc","oa":12065,"o":"r_2F21"},{"a":12047,"t":"code","b":[173,40,7],"m":"lda","oa":1832,"o":"credits"},{"a":12050,"t":"code","b":[56],"m":"sec"},{"a":12051,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":12053,"t":"code","b":[141,40,7],"m":"sta","oa":1832,"o":"credits"},{"a":12056,"t":"code","b":[173,41,7],"m":"lda","oa":1833,"o":"a_0729"},{"a":12059,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":12061,"t":"code","b":[141,41,7],"m":"sta","oa":1833,"o":"a_0729"},{"a":12064,"t":"code","b":[56],"m":"sec"},{"a":12065,"l":"r_2F21","t":"code","b":[96],"m":"rts","x":[12045]},{"a":12066,"l":"add_credits","c":"Adds the word $60/$61 to the credits ($0728/$0729), stopping at $FFFF","t":"code","b":[173,40,7],"m":"lda","oa":1832,"x":[6913],"o":"credits"},{"a":12069,"t":"code","b":[24],"m":"clc"},{"a":12070,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":12072,"t":"code","b":[141,40,7],"m":"sta","oa":1832,"o":"credits"},{"a":12075,"t":"code","b":[173,41,7],"m":"lda","oa":1833,"o":"a_0729"},{"a":12078,"t":"code","b":[101,97],"m":"adc","oa":97,"o":"acc_hi"},{"a":12080,"t":"code","b":[141,41,7],"m":"sta","oa":1833,"o":"a_0729"},{"a":12083,"t":"code","b":[144,10],"m":"bcc","oa":12095,"o":"r_2F3F"},{"a":12085,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":12087,"t":"code","b":[141,40,7],"m":"sta","oa":1832,"o":"credits"},{"a":12090,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":12092,"t":"code","b":[141,41,7],"m":"sta","oa":1833,"o":"a_0729"},{"a":12095,"l":"r_2F3F","t":"code","b":[96],"m":"rts","x":[12083]},{"a":12096,"l":"clear_view","c":"Clears the view window, x 24-199 and y 40-183 ($8E17), and draws it in pattern 1 ($8F80, $901D)","t":"code","b":[169,24],"m":"lda","x":[9887,10862],"o":"#$18"},{"a":12098,"t":"code","b":[133,81],"m":"sta","oa":81,"o":"screen_x"},{"a":12100,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":12102,"t":"code","b":[133,82],"m":"sta","oa":82,"o":"zpa_52"},{"a":12104,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":12106,"t":"code","b":[169,199],"m":"lda","o":"#$C7"},{"a":12108,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":12110,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":12112,"t":"code","b":[133,83],"m":"sta","oa":83,"o":"screen_y"},{"a":12114,"t":"code","b":[169,183],"m":"lda","o":"#$B7"},{"a":12116,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":12118,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":12120,"t":"code","b":[56],"m":"sec"},{"a":12121,"t":"code","b":[229,81],"m":"sbc","oa":81,"o":"screen_x"},{"a":12123,"t":"code","b":[133,65],"m":"sta","oa":65,"o":"window_width"},{"a":12125,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":12127,"t":"code","b":[56],"m":"sec"},{"a":12128,"t":"code","b":[229,83],"m":"sbc","oa":83,"o":"screen_y"},{"a":12130,"t":"code","b":[133,66],"m":"sta","oa":66,"o":"window_height"},{"a":12132,"t":"code","b":[166,81],"m":"ldx","oa":81,"o":"screen_x"},{"a":12134,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":12136,"t":"code","b":[164,83],"m":"ldy","oa":83,"o":"screen_y"},{"a":12138,"t":"code","b":[32,23,142],"m":"jsr","oa":36375,"o":"set_window"},{"a":12141,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":12143,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12146,"t":"code","b":[76,29,144],"m":"jmp","oa":36893,"o":"fill_window"},{"a":12149,"l":"sector_kind","c":"The kind of the sector at X, Y on the loaded system map: the tile code in the 32 by 32 grid at $5100 (row 31-Y; the LDY's operand at $2F96 is rewritten), looked up in the tile set's table at $5000. The kind is a multiple of 16","t":"code","b":[169,0],"m":"lda","x":[5582,10710,10977],"o":"#$00"},{"a":12151,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":12153,"t":"code","b":[132,129],"m":"sty","oa":129,"o":"tmp81"},{"a":12155,"t":"code","b":[169,31],"m":"lda","o":"#$1F"},{"a":12157,"t":"code","b":[56],"m":"sec"},{"a":12158,"t":"code","b":[229,129],"m":"sbc","oa":129,"o":"tmp81"},{"a":12160,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12161,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12162,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12163,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12164,"t":"code","b":[38,128],"m":"rol","oa":128,"o":"tmp80"},{"a":12166,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12167,"t":"code","b":[38,128],"m":"rol","oa":128,"o":"tmp80"},{"a":12169,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12171,"t":"code","b":[141,150,47],"m":"sta","oa":12182,"o":"a_2F96"},{"a":12174,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":12176,"t":"code","b":[105,81],"m":"adc","o":"#$51"},{"a":12178,"t":"code","b":[141,151,47],"m":"sta","oa":12183,"o":"a_2F97"},{"a":12181,"c":"LDY from the map grid; sector_kind writes the address of row 31-Y into its operand, and X picks the column","t":"code","b":[188,64,84],"m":"ldy","oa":21568,"o":"$5440,x"},{"a":12182,"t":"note","l":"a_2F96","c":"Low byte of sector_kind's rewritten LDY operand","note":"inside the item at $2F95","x":[12171]},{"a":12183,"t":"note","l":"a_2F97","c":"High byte of sector_kind's rewritten LDY operand: the grid row's page","note":"inside the item at $2F95","x":[12178]},{"a":12184,"t":"code","b":[185,0,80],"m":"lda","oa":20480,"o":"$5000,y"},{"a":12187,"t":"code","b":[96],"m":"rts"},{"a":12188,"l":"draw_map_objects","c":"Puts the system map's entries into the chart window buffer at $FA00 around the cursor X, Y: each entry with a picture ($5570, a tile code) inside the window ($3013) replaces the cell ($8763 finds it) unless the cell's tile hides things (bit 3 of its attribute at $5000). An entry with a heading (flag bits 3-4, set by set_ship_heading) shows the tile for that heading, a quarter or half the heading value added as the tile's attribute bits 0-1 allow; a tile with attribute bit 2 animates by the frame counter's low bits unless the entry's flag bit 5 is set","t":"code","b":[134,81],"m":"stx","oa":81,"x":[9850],"o":"screen_x"},{"a":12190,"t":"code","b":[132,83],"m":"sty","oa":83,"o":"screen_y"},{"a":12192,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":12194,"t":"code","b":[132,133],"m":"sty","oa":133,"o":"tmp85"},{"a":12196,"l":"b_2FA4","t":"code","b":[190,112,85],"m":"ldx","oa":21872,"x":[12304],"o":"$5570,y"},{"a":12199,"t":"code","b":[48,99],"m":"bmi","oa":12300,"o":"b_300C"},{"a":12201,"t":"code","b":[134,135],"m":"stx","oa":135,"o":"tmp87"},{"a":12203,"t":"code","b":[189,0,80],"m":"lda","oa":20480,"o":"$5000,x"},{"a":12206,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":12208,"t":"code","b":[190,16,85],"m":"ldx","oa":21776,"o":"$5510,y"},{"a":12211,"t":"code","b":[48,87],"m":"bmi","oa":12300,"o":"b_300C"},{"a":12213,"t":"code","b":[185,48,85],"m":"lda","oa":21808,"o":"$5530,y"},{"a":12216,"t":"code","b":[168],"m":"tay"},{"a":12217,"t":"code","b":[32,19,48],"m":"jsr","oa":12307,"o":"in_chart_window"},{"a":12220,"t":"code","b":[176,78],"m":"bcs","oa":12300,"o":"b_300C"},{"a":12222,"t":"code","b":[32,99,135],"m":"jsr","oa":34659,"o":"chart_cell_index"},{"a":12225,"t":"code","b":[190,0,250],"m":"ldx","oa":64000,"o":"f_FA00,y"},{"a":12228,"t":"code","b":[189,0,80],"m":"lda","oa":20480,"o":"$5000,x"},{"a":12231,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":12233,"t":"code","b":[208,65],"m":"bne","oa":12300,"o":"b_300C"},{"a":12235,"t":"code","b":[166,133],"m":"ldx","oa":133,"o":"tmp85"},{"a":12237,"t":"code","b":[189,80,85],"m":"lda","oa":21840,"o":"$5550,x"},{"a":12240,"t":"code","b":[41,24],"m":"and","o":"#$18"},{"a":12242,"t":"code","b":[240,22],"m":"beq","oa":12266,"o":"b_2FEA"},{"a":12244,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12245,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":12247,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"tmp88"},{"a":12249,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12250,"t":"code","b":[176,2],"m":"bcs","oa":12254,"o":"b_2FDE"},{"a":12252,"t":"code","b":[70,134],"m":"lsr","oa":134,"o":"tmp86"},{"a":12254,"l":"b_2FDE","t":"code","b":[74],"m":"lsr","x":[12250],"o":"a"},{"a":12255,"t":"code","b":[176,2],"m":"bcs","oa":12259,"o":"b_2FE3"},{"a":12257,"t":"code","b":[70,134],"m":"lsr","oa":134,"o":"tmp86"},{"a":12259,"l":"b_2FE3","t":"code","b":[165,135],"m":"lda","oa":135,"x":[12255],"o":"tmp87"},{"a":12261,"t":"code","b":[24],"m":"clc"},{"a":12262,"t":"code","b":[101,134],"m":"adc","oa":134,"o":"tmp86"},{"a":12264,"t":"code","b":[16,3],"m":"bpl","oa":12269,"o":"b_2FED"},{"a":12266,"l":"b_2FEA","t":"code","b":[189,112,85],"m":"lda","oa":21872,"x":[12242],"o":"$5570,x"},{"a":12269,"l":"b_2FED","t":"code","b":[153,0,250],"m":"sta","oa":64000,"x":[12264],"o":"f_FA00,y"},{"a":12272,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"tmp88"},{"a":12274,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":12276,"t":"code","b":[240,22],"m":"beq","oa":12300,"o":"b_300C"},{"a":12278,"t":"code","b":[166,133],"m":"ldx","oa":133,"o":"tmp85"},{"a":12280,"t":"code","b":[189,80,85],"m":"lda","oa":21840,"o":"$5550,x"},{"a":12283,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":12285,"t":"code","b":[208,13],"m":"bne","oa":12300,"o":"b_300C"},{"a":12287,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"tmp88"},{"a":12289,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":12291,"t":"code","b":[37,94],"m":"and","oa":94,"o":"pass_count"},{"a":12293,"t":"code","b":[24],"m":"clc"},{"a":12294,"t":"code","b":[121,0,250],"m":"adc","oa":64000,"o":"f_FA00,y"},{"a":12297,"t":"code","b":[153,0,250],"m":"sta","oa":64000,"o":"f_FA00,y"},{"a":12300,"l":"b_300C","t":"code","b":[198,133],"m":"dec","oa":133,"x":[12199,12211,12220,12233,12276,12285],"o":"tmp85"},{"a":12302,"t":"code","b":[164,133],"m":"ldy","oa":133,"o":"tmp85"},{"a":12304,"t":"code","b":[16,146],"m":"bpl","oa":12196,"o":"b_2FA4"},{"a":12306,"t":"code","b":[96],"m":"rts"},{"a":12307,"l":"in_chart_window","c":"Carry clear when the sector X, Y lies in the chart window around ($51, $53): under 6 columns and 5 rows away. Returns X and Y as offsets from the centre","t":"code","b":[138],"m":"txa","x":[10484,12217]},{"a":12308,"t":"code","b":[56],"m":"sec"},{"a":12309,"t":"code","b":[229,81],"m":"sbc","oa":81,"o":"screen_x"},{"a":12311,"t":"code","b":[170],"m":"tax"},{"a":12312,"t":"code","b":[16,4],"m":"bpl","oa":12318,"o":"b_301E"},{"a":12314,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":12316,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":12318,"l":"b_301E","t":"code","b":[201,6],"m":"cmp","x":[12312],"o":"#$06"},{"a":12320,"t":"code","b":[176,13],"m":"bcs","oa":12335,"o":"r_302F"},{"a":12322,"t":"code","b":[152],"m":"tya"},{"a":12323,"t":"code","b":[56],"m":"sec"},{"a":12324,"t":"code","b":[229,83],"m":"sbc","oa":83,"o":"screen_y"},{"a":12326,"t":"code","b":[168],"m":"tay"},{"a":12327,"t":"code","b":[16,4],"m":"bpl","oa":12333,"o":"b_302D"},{"a":12329,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":12331,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":12333,"l":"b_302D","t":"code","b":[201,5],"m":"cmp","x":[12327],"o":"#$05"},{"a":12335,"l":"r_302F","t":"code","b":[96],"m":"rts","x":[12320]},{"a":12336,"l":"sector_entries","c":"Lists the system map entries (of the 32 at $5510/$5530) that lie in sector X, Y: their numbers go to $3061, the pointer to the list in $74/$75 and the count in Y","t":"code","b":[169,0],"m":"lda","x":[5628,10782,10936,11132],"o":"#$00"},{"a":12338,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":12340,"t":"code","b":[138],"m":"txa"},{"a":12341,"t":"code","b":[132,128],"m":"sty","oa":128,"o":"tmp80"},{"a":12343,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":12345,"l":"b_3039","t":"code","b":[217,16,85],"m":"cmp","oa":21776,"x":[12372],"o":"$5510,y"},{"a":12348,"t":"code","b":[208,21],"m":"bne","oa":12371,"o":"b_3053"},{"a":12350,"t":"code","b":[190,48,85],"m":"ldx","oa":21808,"o":"$5530,y"},{"a":12353,"t":"code","b":[228,128],"m":"cpx","oa":128,"o":"tmp80"},{"a":12355,"t":"code","b":[208,14],"m":"bne","oa":12371,"o":"b_3053"},{"a":12357,"t":"code","b":[72],"m":"pha"},{"a":12358,"t":"code","b":[138],"m":"txa"},{"a":12359,"t":"code","b":[72],"m":"pha"},{"a":12360,"t":"code","b":[152],"m":"tya"},{"a":12361,"t":"code","b":[166,129],"m":"ldx","oa":129,"o":"tmp81"},{"a":12363,"t":"code","b":[157,97,48],"m":"sta","oa":12385,"o":"sector_entry_list,x"},{"a":12366,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":12368,"t":"code","b":[104],"m":"pla"},{"a":12369,"t":"code","b":[170],"m":"tax"},{"a":12370,"t":"code","b":[104],"m":"pla"},{"a":12371,"l":"b_3053","t":"code","b":[136],"m":"dey","x":[12348,12355]},{"a":12372,"t":"code","b":[16,227],"m":"bpl","oa":12345,"o":"b_3039"},{"a":12374,"t":"code","b":[169,97],"m":"lda","o":"#$61"},{"a":12376,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":12378,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":12380,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":12382,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":12384,"t":"code","b":[96],"m":"rts"},{"a":12385,"l":"sector_entry_list","c":"The entry numbers sector_entries finds, up to eight","t":"byte","b":[11,0,0,0,0,0,0,0],"x":[12363]},{"a":12393,"l":"fill_chart_window","c":"Fills the chart window buffer ($FA00, 11 cells across by 9 down, filled from the end) with the map grid's tiles around X, Y: columns X-5 to X+5 and rows Y-4 to Y+4 (rows counted from the bottom). Cells off the chart get tile A, or, when A is $2C, the tiles $2C and $2D in a checkerboard","t":"code","b":[133,132],"m":"sta","oa":132,"x":[9841,42232],"o":"tmp84"},{"a":12395,"t":"code","b":[138],"m":"txa"},{"a":12396,"t":"code","b":[24],"m":"clc"},{"a":12397,"t":"code","b":[105,5],"m":"adc","o":"#$05"},{"a":12399,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":12401,"t":"code","b":[56],"m":"sec"},{"a":12402,"t":"code","b":[233,11],"m":"sbc","o":"#$0B"},{"a":12404,"t":"code","b":[141,178,48],"m":"sta","oa":12466,"o":"a_30B2"},{"a":12407,"t":"code","b":[152],"m":"tya"},{"a":12408,"t":"code","b":[56],"m":"sec"},{"a":12409,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":12411,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":12413,"t":"code","b":[162,99],"m":"ldx","o":"#$63"},{"a":12415,"l":"b_307F","t":"code","b":[169,0],"m":"lda","x":[12472],"o":"#$00"},{"a":12417,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":12419,"t":"code","b":[169,31],"m":"lda","o":"#$1F"},{"a":12421,"t":"code","b":[56],"m":"sec"},{"a":12422,"t":"code","b":[229,131],"m":"sbc","oa":131,"o":"tmp83"},{"a":12424,"t":"code","b":[160,32],"m":"ldy","o":"#$20"},{"a":12426,"t":"code","b":[176,2],"m":"bcs","oa":12430,"o":"b_308E"},{"a":12428,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":12430,"l":"b_308E","t":"code","b":[140,167,48],"m":"sty","oa":12455,"x":[12426],"o":"a_30A7"},{"a":12433,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12434,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12435,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12436,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12437,"t":"code","b":[38,129],"m":"rol","oa":129,"o":"tmp81"},{"a":12439,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12440,"t":"code","b":[38,129],"m":"rol","oa":129,"o":"tmp81"},{"a":12442,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":12444,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":12446,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":12448,"t":"code","b":[105,81],"m":"adc","o":"#$51"},{"a":12450,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":12452,"t":"code","b":[164,130],"m":"ldy","oa":130,"o":"tmp82"},{"a":12454,"l":"b_30A6","t":"code","b":[192,32],"m":"cpy","x":[12467],"o":"#$20"},{"a":12455,"t":"note","l":"a_30A7","c":"The operand of CPY #: fill_chart_window writes $20 here for rows on the chart and 0 for rows off it, so a row off the chart takes the off-chart tile at every column","note":"inside the item at $30A6","x":[12430]},{"a":12456,"t":"code","b":[176,17],"m":"bcs","oa":12475,"o":"b_30BB"},{"a":12458,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(tmp80),y"},{"a":12460,"l":"b_30AC","t":"code","b":[157,255,249],"m":"sta","oa":63999,"x":[12479,12497,12501],"o":"f_F9FF,x"},{"a":12463,"t":"code","b":[202],"m":"dex"},{"a":12464,"t":"code","b":[136],"m":"dey"},{"a":12465,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":12466,"t":"note","l":"a_30B2","c":"The operand of CPY #: fill_chart_window writes the window's left column here (X-6), where each row stops","note":"inside the item at $30B1","x":[12404]},{"a":12467,"t":"code","b":[208,241],"m":"bne","oa":12454,"o":"b_30A6"},{"a":12469,"t":"code","b":[230,131],"m":"inc","oa":131,"o":"tmp83"},{"a":12471,"t":"code","b":[138],"m":"txa"},{"a":12472,"t":"code","b":[208,197],"m":"bne","oa":12415,"o":"b_307F"},{"a":12474,"t":"code","b":[96],"m":"rts"},{"a":12475,"l":"b_30BB","t":"code","b":[165,132],"m":"lda","oa":132,"x":[12456],"o":"tmp84"},{"a":12477,"t":"code","b":[201,44],"m":"cmp","o":"#$2C"},{"a":12479,"t":"code","b":[208,235],"m":"bne","oa":12460,"o":"b_30AC"},{"a":12481,"t":"code","b":[152],"m":"tya"},{"a":12482,"t":"code","b":[106],"m":"ror","o":"a"},{"a":12483,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":12485,"t":"code","b":[144,5],"m":"bcc","oa":12492,"o":"b_30CC"},{"a":12487,"t":"code","b":[106],"m":"ror","o":"a"},{"a":12488,"t":"code","b":[144,5],"m":"bcc","oa":12495,"o":"b_30CF"},{"a":12490,"t":"code","b":[176,7],"m":"bcs","oa":12499,"o":"b_30D3"},{"a":12492,"l":"b_30CC","t":"code","b":[106],"m":"ror","x":[12485],"o":"a"},{"a":12493,"t":"code","b":[144,4],"m":"bcc","oa":12499,"o":"b_30D3"},{"a":12495,"l":"b_30CF","t":"code","b":[169,44],"m":"lda","x":[12488],"o":"#$2C"},{"a":12497,"t":"code","b":[16,217],"m":"bpl","oa":12460,"o":"b_30AC"},{"a":12499,"l":"b_30D3","t":"code","b":[169,45],"m":"lda","x":[12490,12493],"o":"#$2D"},{"a":12501,"t":"code","b":[16,213],"m":"bpl","oa":12460,"o":"b_30AC"},{"a":12503,"l":"set_ship_heading","c":"Sets the heading of map entry A from the step X, Y: right 0, up 8, left $10, down $18, written into bits 3-4 of its flags ($5550); no step, no change","t":"code","b":[133,128],"m":"sta","oa":128,"x":[10076],"o":"tmp80"},{"a":12505,"t":"code","b":[138],"m":"txa"},{"a":12506,"t":"code","b":[48,15],"m":"bmi","oa":12523,"o":"b_30EB"},{"a":12508,"t":"code","b":[208,17],"m":"bne","oa":12527,"o":"b_30EF"},{"a":12510,"t":"code","b":[152],"m":"tya"},{"a":12511,"t":"code","b":[48,6],"m":"bmi","oa":12519,"o":"b_30E7"},{"a":12513,"t":"code","b":[240,30],"m":"beq","oa":12545,"o":"r_3101"},{"a":12515,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":12517,"t":"code","b":[16,10],"m":"bpl","oa":12529,"o":"b_30F1"},{"a":12519,"l":"b_30E7","t":"code","b":[169,24],"m":"lda","x":[12511],"o":"#$18"},{"a":12521,"t":"code","b":[16,6],"m":"bpl","oa":12529,"o":"b_30F1"},{"a":12523,"l":"b_30EB","t":"code","b":[169,16],"m":"lda","x":[12506],"o":"#$10"},{"a":12525,"t":"code","b":[16,2],"m":"bpl","oa":12529,"o":"b_30F1"},{"a":12527,"l":"b_30EF","t":"code","b":[169,0],"m":"lda","x":[12508],"o":"#$00"},{"a":12529,"l":"b_30F1","t":"code","b":[133,129],"m":"sta","oa":129,"x":[12517,12521,12525],"o":"tmp81"},{"a":12531,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":12533,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":12535,"t":"code","b":[164,128],"m":"ldy","oa":128,"o":"tmp80"},{"a":12537,"t":"code","b":[57,80,85],"m":"and","oa":21840,"o":"$5550,y"},{"a":12540,"t":"code","b":[5,129],"m":"ora","oa":129,"o":"tmp81"},{"a":12542,"t":"code","b":[153,80,85],"m":"sta","oa":21840,"o":"$5550,y"},{"a":12545,"l":"r_3101","t":"code","b":[96],"m":"rts","x":[12513]},{"a":12546,"l":"update_cockpit","c":"Redraws the cockpit's instruments (from frame_update every seventh pass, and after keys that change them): $8810, the speed ($31B2), the hit points ($3240), the weapon ($329C), the attack lamp ($3129) and the threat lamps ($314D), then falls into draw_tac","t":"code","b":[32,16,136],"m":"jsr","oa":34832,"x":[4706,7792,11895],"o":"window_full"},{"a":12549,"t":"code","b":[32,178,49],"m":"jsr","oa":12722,"o":"draw_speed"},{"a":12552,"t":"code","b":[32,64,50],"m":"jsr","oa":12864,"o":"draw_armour_bar"},{"a":12555,"t":"code","b":[32,156,50],"m":"jsr","oa":12956,"o":"draw_weapon"},{"a":12558,"t":"code","b":[32,41,49],"m":"jsr","oa":12585,"o":"attack_lamp"},{"a":12561,"t":"code","b":[32,77,49],"m":"jsr","oa":12621,"o":"threat_lamps"},{"a":12564,"l":"draw_tac","c":"Redraws the TAC display: the data page ($336F) when $7C is 0, the target's picture ($3501) otherwise","t":"code","b":[165,124],"m":"lda","oa":124,"x":[5146,7611],"o":"tac_mode"},{"a":12566,"t":"code","b":[208,3],"m":"bne","oa":12571,"o":"b_311B"},{"a":12568,"t":"code","b":[76,111,51],"m":"jmp","oa":13167,"o":"tac_data"},{"a":12571,"l":"b_311B","t":"code","b":[76,1,53],"m":"jmp","oa":13569,"x":[12566],"o":"tac_picture"},{"a":12574,"l":"clear_tac","c":"Clears the TAC display: pattern 1 ($8F80), then $B788 and $B839 in SEG0","t":"code","b":[162,1],"m":"ldx","x":[5143,6760,7608,14879,15254,29109],"o":"#$01"},{"a":12576,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12579,"t":"code","b":[32,136,183],"m":"jsr","oa":46984,"o":"$B788"},{"a":12582,"t":"code","b":[76,57,184],"m":"jmp","oa":47161,"o":"$B839"},{"a":12585,"l":"attack_lamp","c":"Lights the lamp at screen cell $E2F1 (and its copy at $62F1) in colour $8A when something in slots 1-5 whose type's $0AEF is not zero (a missile, or a ship that is no threat) has the player (slot 0) as its target; $C5 otherwise","t":"code","b":[160,5],"m":"ldy","x":[12558],"o":"#$05"},{"a":12587,"l":"b_312B","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[12606],"o":"slot_in_use,y"},{"a":12590,"t":"code","b":[240,13],"m":"beq","oa":12605,"o":"b_313D"},{"a":12592,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":12595,"t":"code","b":[208,8],"m":"bne","oa":12605,"o":"b_313D"},{"a":12597,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":12600,"t":"code","b":[189,239,10],"m":"lda","oa":2799,"o":"type_damage,x"},{"a":12603,"t":"code","b":[208,7],"m":"bne","oa":12612,"o":"b_3144"},{"a":12605,"l":"b_313D","t":"code","b":[136],"m":"dey","x":[12590,12595]},{"a":12606,"t":"code","b":[208,235],"m":"bne","oa":12587,"o":"b_312B"},{"a":12608,"t":"code","b":[169,197],"m":"lda","o":"#$C5"},{"a":12610,"t":"code","b":[208,2],"m":"bne","oa":12614,"o":"b_3146"},{"a":12612,"l":"b_3144","t":"code","b":[169,138],"m":"lda","x":[12603],"o":"#$8A"},{"a":12614,"l":"b_3146","t":"code","b":[141,241,226],"m":"sta","oa":58097,"x":[12610],"o":"a_E2F1"},{"a":12617,"t":"code","b":[141,241,98],"m":"sta","oa":25329,"o":"a_62F1"},{"a":12620,"t":"code","b":[96],"m":"rts"},{"a":12621,"l":"threat_lamps","c":"Sets the three lamps at $E33B, $E363 and $E38B (with copies at $63xx): for each of up to three ships in slots 1-5 whose type's $0AEF is zero, a level of 1 for present, 2 with a target, 3 with the player as its target; each level picks a colour from threat_colours ($319F). A fourth and fifth such ship count in $89 and $8A, which no lamp shows","t":"code","b":[169,255],"m":"lda","x":[12561],"o":"#$FF"},{"a":12623,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":12625,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":12627,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":12629,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":12631,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":12633,"l":"b_3159","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[12667],"o":"slot_in_use,y"},{"a":12636,"t":"code","b":[240,28],"m":"beq","oa":12666,"o":"b_317A"},{"a":12638,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":12641,"t":"code","b":[189,239,10],"m":"lda","oa":2799,"o":"type_damage,x"},{"a":12644,"t":"code","b":[208,20],"m":"bne","oa":12666,"o":"b_317A"},{"a":12646,"t":"code","b":[230,133],"m":"inc","oa":133,"o":"tmp85"},{"a":12648,"t":"code","b":[166,133],"m":"ldx","oa":133,"o":"tmp85"},{"a":12650,"t":"code","b":[246,134],"m":"inc","oa":134,"o":"tmp86,x"},{"a":12652,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":12655,"t":"code","b":[48,9],"m":"bmi","oa":12666,"o":"b_317A"},{"a":12657,"t":"code","b":[246,134],"m":"inc","oa":134,"o":"tmp86,x"},{"a":12659,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":12662,"t":"code","b":[208,2],"m":"bne","oa":12666,"o":"b_317A"},{"a":12664,"t":"code","b":[246,134],"m":"inc","oa":134,"o":"tmp86,x"},{"a":12666,"l":"b_317A","t":"code","b":[136],"m":"dey","x":[12636,12644,12655,12662]},{"a":12667,"t":"code","b":[208,220],"m":"bne","oa":12633,"o":"b_3159"},{"a":12669,"t":"code","b":[166,134],"m":"ldx","oa":134,"o":"tmp86"},{"a":12671,"t":"code","b":[32,159,49],"m":"jsr","oa":12703,"o":"threat_colour"},{"a":12674,"t":"code","b":[141,139,227],"m":"sta","oa":58251,"o":"a_E38B"},{"a":12677,"t":"code","b":[141,139,99],"m":"sta","oa":25483,"o":"a_638B"},{"a":12680,"t":"code","b":[166,135],"m":"ldx","oa":135,"o":"tmp87"},{"a":12682,"t":"code","b":[32,159,49],"m":"jsr","oa":12703,"o":"threat_colour"},{"a":12685,"t":"code","b":[141,99,227],"m":"sta","oa":58211,"o":"a_E363"},{"a":12688,"t":"code","b":[141,99,99],"m":"sta","oa":25443,"o":"a_6363"},{"a":12691,"t":"code","b":[166,136],"m":"ldx","oa":136,"o":"tmp88"},{"a":12693,"t":"code","b":[32,159,49],"m":"jsr","oa":12703,"o":"threat_colour"},{"a":12696,"t":"code","b":[141,59,227],"m":"sta","oa":58171,"o":"a_E33B"},{"a":12699,"t":"code","b":[141,59,99],"m":"sta","oa":25403,"o":"a_633B"},{"a":12702,"t":"code","b":[96],"m":"rts"},{"a":12703,"l":"threat_colour","c":"Colour for a threat lamp level X+1, 0-3, from threat_colours","t":"code","b":[232],"m":"inx","x":[12671,12682,12693]},{"a":12704,"t":"code","b":[16,2],"m":"bpl","oa":12708,"o":"b_31A4"},{"a":12706,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":12708,"l":"b_31A4","t":"code","b":[224,4],"m":"cpx","x":[12704],"o":"#$04"},{"a":12710,"t":"code","b":[144,2],"m":"bcc","oa":12714,"o":"b_31AA"},{"a":12712,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":12714,"l":"b_31AA","t":"code","b":[189,174,49],"m":"lda","oa":12718,"x":[12710],"o":"threat_colours,x"},{"a":12717,"t":"code","b":[96],"m":"rts"},{"a":12718,"l":"threat_colours","c":"The threat lamps' colours for levels 0-3: $BC $C5 $24 $8A","t":"byte","b":[188,197,36,138],"x":[12714]},{"a":12722,"l":"draw_speed","c":"The speed readout. In Newtonian flight ($0D02) the shown speed is the ship's actual speed ($7C21, at most 99), also written to $0415; \"CF\" or \"NF\" (from $323A) is printed, a reversed mark when the drive is damaged ($0409 bit 2), then the number ($9F56); then the speed bar: $7C21's value (at most $42) fills the bar at x $18-$5A, row $21, in pattern 5 against pattern 1 ($8C23)","t":"code","b":[160,0],"m":"ldy","x":[12549,29364],"o":"#$00"},{"a":12724,"t":"code","b":[32,33,124],"m":"jsr","oa":31777,"o":"speed_of"},{"a":12727,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":12729,"t":"code","b":[174,2,13],"m":"ldx","oa":3330,"o":"newtonian"},{"a":12732,"t":"code","b":[240,9],"m":"beq","oa":12743,"o":"b_31C7"},{"a":12734,"t":"code","b":[201,100],"m":"cmp","o":"#$64"},{"a":12736,"t":"code","b":[144,2],"m":"bcc","oa":12740,"o":"b_31C4"},{"a":12738,"t":"code","b":[169,99],"m":"lda","o":"#$63"},{"a":12740,"l":"b_31C4","t":"code","b":[141,21,4],"m":"sta","oa":1045,"x":[12736],"o":"slot_speed"},{"a":12743,"l":"b_31C7","t":"code","b":[169,3],"m":"lda","x":[12732],"o":"#$03"},{"a":12745,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":12747,"t":"code","b":[169,18],"m":"lda","o":"#$12"},{"a":12749,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":12751,"t":"code","b":[162,58],"m":"ldx","o":"#$3A"},{"a":12753,"t":"code","b":[160,50],"m":"ldy","o":"#$32"},{"a":12755,"t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":12758,"t":"code","b":[240,4],"m":"beq","oa":12764,"o":"b_31DC"},{"a":12760,"t":"code","b":[162,61],"m":"ldx","o":"#$3D"},{"a":12762,"t":"code","b":[160,50],"m":"ldy","o":"#$32"},{"a":12764,"l":"b_31DC","t":"code","b":[32,155,155],"m":"jsr","oa":39835,"x":[12758],"o":"print_text"},{"a":12767,"t":"code","b":[173,9,4],"m":"lda","oa":1033,"o":"slot_damage"},{"a":12770,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":12772,"t":"code","b":[240,5],"m":"beq","oa":12779,"o":"b_31EB"},{"a":12774,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":12776,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":12779,"l":"b_31EB","t":"code","b":[169,8],"m":"lda","x":[12772],"o":"#$08"},{"a":12781,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":12783,"t":"code","b":[173,21,4],"m":"lda","oa":1045,"o":"slot_speed"},{"a":12786,"t":"code","b":[48,8],"m":"bmi","oa":12796,"o":"b_31FC"},{"a":12788,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":12790,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":12793,"t":"code","b":[173,21,4],"m":"lda","oa":1045,"o":"slot_speed"},{"a":12796,"l":"b_31FC","t":"code","b":[32,86,159],"m":"jsr","oa":40790,"x":[12786],"o":"print_signed"},{"a":12799,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":12801,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":12804,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":12806,"t":"code","b":[201,67],"m":"cmp","o":"#$43"},{"a":12808,"t":"code","b":[144,2],"m":"bcc","oa":12812,"o":"b_320C"},{"a":12810,"t":"code","b":[169,66],"m":"lda","o":"#$42"},{"a":12812,"l":"b_320C","t":"code","b":[133,138],"m":"sta","oa":138,"x":[12808],"o":"tmp8A"},{"a":12814,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":12816,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12819,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":12821,"t":"code","b":[201,66],"m":"cmp","o":"#$42"},{"a":12823,"t":"code","b":[240,13],"m":"beq","oa":12838,"o":"b_3226"},{"a":12825,"t":"code","b":[24],"m":"clc"},{"a":12826,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":12828,"t":"code","b":[170],"m":"tax"},{"a":12829,"t":"code","b":[169,66],"m":"lda","o":"#$42"},{"a":12831,"t":"code","b":[229,138],"m":"sbc","oa":138,"o":"tmp8A"},{"a":12833,"t":"code","b":[160,33],"m":"ldy","o":"#$21"},{"a":12835,"t":"code","b":[32,35,140],"m":"jsr","oa":35875,"o":"draw_bar"},{"a":12838,"l":"b_3226","t":"code","b":[162,5],"m":"ldx","x":[12823],"o":"#$05"},{"a":12840,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12843,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":12845,"t":"code","b":[240,10],"m":"beq","oa":12857,"o":"r_3239"},{"a":12847,"t":"code","b":[56],"m":"sec"},{"a":12848,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":12850,"t":"code","b":[162,24],"m":"ldx","o":"#$18"},{"a":12852,"t":"code","b":[160,33],"m":"ldy","o":"#$21"},{"a":12854,"t":"code","b":[76,35,140],"m":"jmp","oa":35875,"o":"draw_bar"},{"a":12857,"l":"r_3239","t":"code","b":[96],"m":"rts","x":[12845]},{"a":12858,"l":"str_cruise_newton","c":"\"CF\" for cruise flight and \"NF\" for Newtonian, the speed readout's labels","t":"byte","b":[67,70,0,78,70,0]},{"a":12864,"l":"draw_armour_bar","c":"The hit-points bar: a quarter of the player's hit points (bits 2-8 of $051D/$051E), plus one, at most $3C, drawn at x $4E, row $13, in pattern 4 against pattern 1, in pattern 7 (the warning colour) when under 15","t":"code","b":[32,34,136],"m":"jsr","oa":34850,"x":[12552,29367],"o":"window_right"},{"a":12867,"t":"code","b":[173,29,5],"m":"lda","oa":1309,"o":"slot_armour"},{"a":12870,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":12872,"t":"code","b":[173,30,5],"m":"lda","oa":1310,"o":"f_051E"},{"a":12875,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":12877,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":12879,"t":"code","b":[10],"m":"asl","o":"a"},{"a":12880,"t":"code","b":[102,97],"m":"ror","oa":97,"o":"acc_hi"},{"a":12882,"t":"code","b":[102,96],"m":"ror","oa":96,"o":"acc_mid"},{"a":12884,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":12886,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12887,"t":"code","b":[24],"m":"clc"},{"a":12888,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":12890,"t":"code","b":[201,61],"m":"cmp","o":"#$3D"},{"a":12892,"t":"code","b":[144,2],"m":"bcc","oa":12896,"o":"b_3260"},{"a":12894,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":12896,"l":"b_3260","t":"code","b":[133,138],"m":"sta","oa":138,"x":[12892],"o":"tmp8A"},{"a":12898,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":12900,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12903,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":12905,"t":"code","b":[201,60],"m":"cmp","o":"#$3C"},{"a":12907,"t":"code","b":[240,13],"m":"beq","oa":12922,"o":"b_327A"},{"a":12909,"t":"code","b":[24],"m":"clc"},{"a":12910,"t":"code","b":[105,78],"m":"adc","o":"#$4E"},{"a":12912,"t":"code","b":[170],"m":"tax"},{"a":12913,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":12915,"t":"code","b":[229,138],"m":"sbc","oa":138,"o":"tmp8A"},{"a":12917,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":12919,"t":"code","b":[32,35,140],"m":"jsr","oa":35875,"o":"draw_bar"},{"a":12922,"l":"b_327A","t":"code","b":[162,4],"m":"ldx","x":[12907],"o":"#$04"},{"a":12924,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12927,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":12929,"t":"code","b":[240,21],"m":"beq","oa":12952,"o":"b_3298"},{"a":12931,"t":"code","b":[56],"m":"sec"},{"a":12932,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":12934,"t":"code","b":[201,15],"m":"cmp","o":"#$0F"},{"a":12936,"t":"code","b":[176,7],"m":"bcs","oa":12945,"o":"b_3291"},{"a":12938,"t":"code","b":[72],"m":"pha"},{"a":12939,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":12941,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":12944,"t":"code","b":[104],"m":"pla"},{"a":12945,"l":"b_3291","t":"code","b":[162,78],"m":"ldx","x":[12936],"o":"#$4E"},{"a":12947,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":12949,"t":"code","b":[32,35,140],"m":"jsr","oa":35875,"o":"draw_bar"},{"a":12952,"l":"b_3298","t":"code","b":[32,16,136],"m":"jsr","oa":34832,"x":[12929],"o":"window_full"},{"a":12955,"t":"code","b":[96],"m":"rts"},{"a":12956,"l":"draw_weapon","c":"The weapon readout at column $1E, row $1E. For the beam: a reversed mark when it is damaged ($0409 bit 1), the heat level ($0D00/2, at most 3) as one of four symbols, A or M for automatic or manual fire, then \" -\". For a missile: its symbol ($7C), the count left and a space. The cells under the first character ($E366, $E33E) get colour $5D, or $2A when a missile cannot be fired (none left, or reloading, $0836). The launcher's damage ($0409 bit 0) was meant to reverse the count and stop it too, but the AND #$01 at $32F2 tests what print_char left in A, $BC or 0, so it never does. Then the weapon's two-character name ($3363) and its colours at $E36B/$E343 ($3367) and $E36C/$E344 ($336B), each also written to the copy at $63xx","t":"code","b":[169,30],"m":"lda","x":[12555],"o":"#$1E"},{"a":12958,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":12960,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":12962,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":12964,"t":"code","b":[173,9,4],"m":"lda","oa":1033,"o":"slot_damage"},{"a":12967,"t":"code","b":[172,254,12],"m":"ldy","oa":3326,"o":"weapon"},{"a":12970,"t":"code","b":[208,59],"m":"bne","oa":13031,"o":"b_32E7"},{"a":12972,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":12974,"t":"code","b":[240,5],"m":"beq","oa":12981,"o":"b_32B5"},{"a":12976,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":12978,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":12981,"l":"b_32B5","t":"code","b":[173,0,13],"m":"lda","oa":3328,"x":[12974],"o":"beam_heat"},{"a":12984,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":12985,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":12987,"t":"code","b":[144,3],"m":"bcc","oa":12992,"o":"b_32C0"},{"a":12989,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":12991,"t":"code","b":[24],"m":"clc"},{"a":12992,"l":"b_32C0","t":"code","b":[105,9],"m":"adc","x":[12987],"o":"#$09"},{"a":12994,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":12997,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"cursor_col"},{"a":12999,"t":"code","b":[169,77],"m":"lda","o":"#$4D"},{"a":13001,"t":"code","b":[174,255,12],"m":"ldx","oa":3327,"o":"auto_fire"},{"a":13004,"t":"code","b":[240,2],"m":"beq","oa":13008,"o":"b_32D0"},{"a":13006,"t":"code","b":[169,65],"m":"lda","o":"#$41"},{"a":13008,"l":"b_32D0","t":"code","b":[32,71,160],"m":"jsr","oa":41031,"x":[13004],"o":"print_char"},{"a":13011,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":13013,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13016,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":13018,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13021,"t":"code","b":[169,45],"m":"lda","o":"#$2D"},{"a":13023,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13026,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":13028,"t":"code","b":[76,35,51],"m":"jmp","oa":13091,"o":"j_3323"},{"a":13031,"l":"b_32E7","t":"code","b":[169,124],"m":"lda","x":[12970],"o":"#$7C"},{"a":13033,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13036,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"cursor_col"},{"a":13038,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13040,"t":"code","b":[132,139],"m":"sty","oa":139,"o":"tmp8B"},{"a":13042,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":13044,"t":"code","b":[240,7],"m":"beq","oa":13053,"o":"b_32FD"},{"a":13046,"t":"code","b":[230,139],"m":"inc","oa":139,"o":"tmp8B"},{"a":13048,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":13050,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13053,"l":"b_32FD","t":"code","b":[172,254,12],"m":"ldy","oa":3326,"x":[13044],"o":"weapon"},{"a":13056,"t":"code","b":[185,49,7],"m":"lda","oa":1841,"o":"missile_count,y"},{"a":13059,"t":"code","b":[208,2],"m":"bne","oa":13063,"o":"b_3307"},{"a":13061,"t":"code","b":[230,139],"m":"inc","oa":139,"o":"tmp8B"},{"a":13063,"l":"b_3307","t":"code","b":[32,86,159],"m":"jsr","oa":40790,"x":[13059],"o":"print_signed"},{"a":13066,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":13068,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13071,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":13073,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13076,"t":"code","b":[174,54,8],"m":"ldx","oa":2102,"o":"missile_reload"},{"a":13079,"t":"code","b":[240,2],"m":"beq","oa":13083,"o":"b_331B"},{"a":13081,"t":"code","b":[230,139],"m":"inc","oa":139,"o":"tmp8B"},{"a":13083,"l":"b_331B","t":"code","b":[169,93],"m":"lda","x":[13079],"o":"#$5D"},{"a":13085,"t":"code","b":[166,139],"m":"ldx","oa":139,"o":"tmp8B"},{"a":13087,"t":"code","b":[240,2],"m":"beq","oa":13091,"o":"j_3323"},{"a":13089,"t":"code","b":[169,42],"m":"lda","o":"#$2A"},{"a":13091,"l":"j_3323","t":"code","b":[141,102,227],"m":"sta","oa":58214,"x":[13028,13087],"o":"a_E366"},{"a":13094,"t":"code","b":[141,62,227],"m":"sta","oa":58174,"o":"a_E33E"},{"a":13097,"t":"code","b":[141,102,99],"m":"sta","oa":25446,"o":"a_6366"},{"a":13100,"t":"code","b":[141,62,99],"m":"sta","oa":25406,"o":"a_633E"},{"a":13103,"t":"code","b":[172,254,12],"m":"ldy","oa":3326,"o":"weapon"},{"a":13106,"t":"code","b":[185,99,51],"m":"lda","oa":13155,"o":"weapon_chars,y"},{"a":13109,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":13111,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13114,"t":"code","b":[166,138],"m":"ldx","oa":138,"o":"tmp8A"},{"a":13116,"t":"code","b":[232],"m":"inx"},{"a":13117,"t":"code","b":[138],"m":"txa"},{"a":13118,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13121,"t":"code","b":[172,254,12],"m":"ldy","oa":3326,"o":"weapon"},{"a":13124,"t":"code","b":[185,103,51],"m":"lda","oa":13159,"o":"weapon_colours,y"},{"a":13127,"t":"code","b":[141,107,227],"m":"sta","oa":58219,"o":"a_E36B"},{"a":13130,"t":"code","b":[141,67,227],"m":"sta","oa":58179,"o":"a_E343"},{"a":13133,"t":"code","b":[141,107,99],"m":"sta","oa":25451,"o":"a_636B"},{"a":13136,"t":"code","b":[141,67,99],"m":"sta","oa":25411,"o":"a_6343"},{"a":13139,"t":"code","b":[185,107,51],"m":"lda","oa":13163,"o":"f_336B,y"},{"a":13142,"t":"code","b":[141,108,227],"m":"sta","oa":58220,"o":"a_E36C"},{"a":13145,"t":"code","b":[141,68,227],"m":"sta","oa":58180,"o":"a_E344"},{"a":13148,"t":"code","b":[141,108,99],"m":"sta","oa":25452,"o":"a_636C"},{"a":13151,"t":"code","b":[141,68,99],"m":"sta","oa":25412,"o":"a_6344"},{"a":13154,"t":"code","b":[96],"m":"rts"},{"a":13155,"l":"weapon_chars","c":"The first of the two characters naming each weapon (beam, then the three missile types), the second being the next character","t":"byte","b":[5,3,1,7],"x":[13106]},{"a":13159,"l":"weapon_colours","c":"The screen colours of each weapon's name, two tables of four ($3367 and $336B)","t":"byte","b":[135,40,138,135],"x":[13124]},{"a":13163,"l":"f_336B","c":"The second colour table of weapon_colours, written to $E36C/$E344","t":"byte","b":[135,178,186,135],"x":[13139]},{"a":13167,"l":"tac_data","c":"The TAC's data page. With no target, an empty name line, the hit points of the player ($345D) and the systems ($3480). For a ship target (slots 0-5): name ($33B5), its label ($33EA), the range ($33F8), its tactic ($3435), hit points and systems. Any other target: name and range. Ends in $87FE","t":"code","b":[172,69,4],"m":"ldy","oa":1093,"x":[12568],"o":"slot_target"},{"a":13170,"t":"code","b":[132,138],"m":"sty","oa":138,"o":"tmp8A"},{"a":13172,"t":"code","b":[16,20],"m":"bpl","oa":13194,"o":"b_338A"},{"a":13174,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13176,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":13178,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":13180,"t":"code","b":[32,181,51],"m":"jsr","oa":13237,"o":"tac_name"},{"a":13183,"t":"code","b":[198,80],"m":"dec","oa":80,"o":"cursor_row"},{"a":13185,"t":"code","b":[32,93,52],"m":"jsr","oa":13405,"o":"tac_armour"},{"a":13188,"t":"code","b":[32,128,52],"m":"jsr","oa":13440,"o":"tac_systems"},{"a":13191,"t":"code","b":[76,254,135],"m":"jmp","oa":34814,"o":"window_view"},{"a":13194,"l":"b_338A","t":"code","b":[185,13,6],"m":"lda","oa":1549,"x":[13172],"o":"slot_type,y"},{"a":13197,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":13199,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":13201,"t":"code","b":[176,23],"m":"bcs","oa":13226,"o":"b_33AA"},{"a":13203,"t":"code","b":[32,181,51],"m":"jsr","oa":13237,"o":"tac_name"},{"a":13206,"t":"code","b":[32,234,51],"m":"jsr","oa":13290,"o":"tac_label"},{"a":13209,"t":"code","b":[198,80],"m":"dec","oa":80,"o":"cursor_row"},{"a":13211,"t":"code","b":[32,248,51],"m":"jsr","oa":13304,"o":"tac_range"},{"a":13214,"t":"code","b":[32,53,52],"m":"jsr","oa":13365,"o":"tac_tactic"},{"a":13217,"t":"code","b":[32,93,52],"m":"jsr","oa":13405,"o":"tac_armour"},{"a":13220,"t":"code","b":[32,128,52],"m":"jsr","oa":13440,"o":"tac_systems"},{"a":13223,"t":"code","b":[76,254,135],"m":"jmp","oa":34814,"o":"window_view"},{"a":13226,"l":"b_33AA","t":"code","b":[32,181,51],"m":"jsr","oa":13237,"x":[13201],"o":"tac_name"},{"a":13229,"t":"code","b":[198,80],"m":"dec","oa":80,"o":"cursor_row"},{"a":13231,"t":"code","b":[32,248,51],"m":"jsr","oa":13304,"o":"tac_range"},{"a":13234,"t":"code","b":[76,254,135],"m":"jmp","oa":34814,"o":"window_view"},{"a":13237,"l":"tac_name","c":"Prints the target's type name ($0B12/$0B13) at column $0E, row $2E, padded with spaces to column $15; a reversed mark first when the target is a ship targeting the player","t":"code","b":[166,138],"m":"ldx","oa":138,"x":[13180,13203,13226],"o":"tmp8A"},{"a":13239,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":13241,"t":"code","b":[176,10],"m":"bcs","oa":13253,"o":"b_33C5"},{"a":13243,"t":"code","b":[189,69,4],"m":"lda","oa":1093,"o":"slot_target,x"},{"a":13246,"t":"code","b":[208,5],"m":"bne","oa":13253,"o":"b_33C5"},{"a":13248,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":13250,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13253,"l":"b_33C5","t":"code","b":[169,14],"m":"lda","x":[13241,13246],"o":"#$0E"},{"a":13255,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":13257,"t":"code","b":[169,46],"m":"lda","o":"#$2E"},{"a":13259,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":13261,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":13263,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13264,"t":"code","b":[168],"m":"tay"},{"a":13265,"t":"code","b":[190,18,11],"m":"ldx","oa":2834,"o":"type_names,y"},{"a":13268,"t":"code","b":[185,19,11],"m":"lda","oa":2835,"o":"type_names_hi,y"},{"a":13271,"t":"code","b":[168],"m":"tay"},{"a":13272,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":13275,"l":"j_33DB","t":"code","b":[165,79],"m":"lda","oa":79,"x":[13286],"o":"cursor_col"},{"a":13277,"t":"code","b":[201,21],"m":"cmp","o":"#$15"},{"a":13279,"t":"code","b":[176,8],"m":"bcs","oa":13289,"o":"r_33E9"},{"a":13281,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":13283,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13286,"t":"code","b":[76,219,51],"m":"jmp","oa":13275,"o":"j_33DB"},{"a":13289,"l":"r_33E9","t":"code","b":[96],"m":"rts","x":[13279]},{"a":13290,"l":"tac_label","c":"Prints the target's own three-character label ($366D) at column $15, then turns reverse off","t":"code","b":[169,21],"m":"lda","x":[13206],"o":"#$15"},{"a":13292,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":13294,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":13296,"t":"code","b":[32,109,54],"m":"jsr","oa":13933,"o":"print_ship_label"},{"a":13299,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":13301,"t":"code","b":[76,71,160],"m":"jmp","oa":41031,"o":"print_char"},{"a":13304,"l":"tac_range","c":"Prints \"RAN \" and the range to the target: the distance from the player ($7947), a log, plus 2 (four times the distance) and made a number ($B5E0); $75 or more in the top byte prints \"30+ km\", otherwise the number ($9EBF) and \"m\"","t":"code","b":[169,14],"m":"lda","x":[13211,13231],"o":"#$0E"},{"a":13306,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":13308,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":13310,"t":"code","b":[56],"m":"sec"},{"a":13311,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":13313,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":13315,"t":"code","b":[162,236],"m":"ldx","o":"#$EC"},{"a":13317,"t":"code","b":[160,52],"m":"ldy","o":"#$34"},{"a":13319,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":13322,"t":"code","b":[166,138],"m":"ldx","oa":138,"o":"tmp8A"},{"a":13324,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13326,"t":"code","b":[32,71,121],"m":"jsr","oa":31047,"o":"bearing"},{"a":13329,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":13331,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":13333,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":13335,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":13337,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":13339,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":13341,"t":"code","b":[32,224,181],"m":"jsr","oa":46560,"o":"$B5E0"},{"a":13344,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":13346,"t":"code","b":[201,117],"m":"cmp","o":"#$75"},{"a":13348,"t":"code","b":[144,7],"m":"bcc","oa":13357,"o":"b_342D"},{"a":13350,"t":"code","b":[162,229],"m":"ldx","o":"#$E5"},{"a":13352,"t":"code","b":[160,52],"m":"ldy","o":"#$34"},{"a":13354,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":13357,"l":"b_342D","t":"code","b":[32,191,158],"m":"jsr","oa":40639,"x":[13348],"o":"print_number"},{"a":13360,"t":"code","b":[169,109],"m":"lda","o":"#$6D"},{"a":13362,"t":"code","b":[76,71,160],"m":"jmp","oa":41031,"o":"print_char"},{"a":13365,"l":"tac_tactic","c":"Prints \"TAC \" and the ship's tactic ($043F), its name from the list of eight-byte names at $0CAE","t":"code","b":[169,14],"m":"lda","x":[13214],"o":"#$0E"},{"a":13367,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":13369,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":13371,"t":"code","b":[56],"m":"sec"},{"a":13372,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":13374,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":13376,"t":"code","b":[162,241],"m":"ldx","o":"#$F1"},{"a":13378,"t":"code","b":[160,52],"m":"ldy","o":"#$34"},{"a":13380,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":13383,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":13385,"t":"code","b":[185,63,4],"m":"lda","oa":1087,"o":"slot_tactic,y"},{"a":13388,"t":"code","b":[48,14],"m":"bmi","oa":13404,"o":"r_345C"},{"a":13390,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13391,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13392,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13393,"t":"code","b":[105,174],"m":"adc","o":"#$AE"},{"a":13395,"t":"code","b":[170],"m":"tax"},{"a":13396,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13398,"t":"code","b":[105,12],"m":"adc","o":"#$0C"},{"a":13400,"t":"code","b":[168],"m":"tay"},{"a":13401,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":13404,"l":"r_345C","t":"code","b":[96],"m":"rts","x":[13388]},{"a":13405,"l":"tac_armour","c":"Prints \"ARM  \" and the slot's hit points ($051D, $9EBF)","t":"code","b":[169,14],"m":"lda","x":[13185,13217],"o":"#$0E"},{"a":13407,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":13409,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":13411,"t":"code","b":[56],"m":"sec"},{"a":13412,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":13414,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":13416,"t":"code","b":[162,246],"m":"ldx","o":"#$F6"},{"a":13418,"t":"code","b":[160,52],"m":"ldy","o":"#$34"},{"a":13420,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":13423,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":13425,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13426,"t":"code","b":[168],"m":"tay"},{"a":13427,"t":"code","b":[185,29,5],"m":"lda","oa":1309,"o":"slot_armour,y"},{"a":13430,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":13432,"t":"code","b":[185,30,5],"m":"lda","oa":1310,"o":"f_051E,y"},{"a":13435,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":13437,"t":"code","b":[76,191,158],"m":"jmp","oa":40639,"o":"print_number"},{"a":13440,"l":"tac_systems","c":"Prints \"SYS \" and six system letters, c f a e b m, for the bits $20 $10 $08 $04 $02 $01: a space for a system the ship's type does not have ($0C45), reversed for one damaged ($0409)","t":"code","b":[169,14],"m":"lda","x":[13188,13220],"o":"#$0E"},{"a":13442,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":13444,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":13446,"t":"code","b":[56],"m":"sec"},{"a":13447,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":13449,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":13451,"t":"code","b":[162,252],"m":"ldx","o":"#$FC"},{"a":13453,"t":"code","b":[160,52],"m":"ldy","o":"#$34"},{"a":13455,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":13458,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":13460,"t":"code","b":[160,99],"m":"ldy","o":"#$63"},{"a":13462,"t":"code","b":[32,188,52],"m":"jsr","oa":13500,"o":"tac_system_letter"},{"a":13465,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":13467,"t":"code","b":[160,102],"m":"ldy","o":"#$66"},{"a":13469,"t":"code","b":[32,188,52],"m":"jsr","oa":13500,"o":"tac_system_letter"},{"a":13472,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":13474,"t":"code","b":[160,97],"m":"ldy","o":"#$61"},{"a":13476,"t":"code","b":[32,188,52],"m":"jsr","oa":13500,"o":"tac_system_letter"},{"a":13479,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":13481,"t":"code","b":[160,101],"m":"ldy","o":"#$65"},{"a":13483,"t":"code","b":[32,188,52],"m":"jsr","oa":13500,"o":"tac_system_letter"},{"a":13486,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":13488,"t":"code","b":[160,98],"m":"ldy","o":"#$62"},{"a":13490,"t":"code","b":[32,188,52],"m":"jsr","oa":13500,"o":"tac_system_letter"},{"a":13493,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":13495,"t":"code","b":[160,109],"m":"ldy","o":"#$6D"},{"a":13497,"t":"code","b":[76,188,52],"m":"jmp","oa":13500,"o":"tac_system_letter"},{"a":13500,"l":"tac_system_letter","c":"One letter of tac_systems: bit A of the type's systems ($0C45) and of the slot's damage ($0409) decide blank, reversed or plain; Y holds the letter","t":"code","b":[132,140],"m":"sty","oa":140,"x":[13462,13469,13476,13483,13490,13497],"o":"tmp8C"},{"a":13502,"t":"code","b":[164,139],"m":"ldy","oa":139,"o":"tmp8B"},{"a":13504,"t":"code","b":[57,69,12],"m":"and","oa":3141,"o":"type_systems,y"},{"a":13507,"t":"code","b":[208,6],"m":"bne","oa":13515,"o":"b_34CB"},{"a":13509,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":13511,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":13513,"t":"code","b":[208,11],"m":"bne","oa":13526,"o":"b_34D6"},{"a":13515,"l":"b_34CB","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[13507],"o":"tmp8A"},{"a":13517,"t":"code","b":[57,9,4],"m":"and","oa":1033,"o":"slot_damage,y"},{"a":13520,"t":"code","b":[240,4],"m":"beq","oa":13526,"o":"b_34D6"},{"a":13522,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":13524,"t":"code","b":[208,2],"m":"bne","oa":13528,"o":"b_34D8"},{"a":13526,"l":"b_34D6","t":"code","b":[169,16],"m":"lda","x":[13513,13520],"o":"#$10"},{"a":13528,"l":"b_34D8","t":"code","b":[32,71,160],"m":"jsr","oa":41031,"x":[13524],"o":"print_char"},{"a":13531,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":13533,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13536,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":13538,"t":"code","b":[76,71,160],"m":"jmp","oa":41031,"o":"print_char"},{"a":13541,"l":"str_30km","c":"\"30+ km\", printed in place of the range when it is too great for the number ($75 or more in its top byte, tac_range); then the TAC labels \"RAN \" ($34EC), \"TAC \" ($34F1), \"ARM  \" ($34F6) and \"SYS \" ($34FC)","t":"byte","b":[51,48,43,32,107,109,0]},{"a":13548,"l":"f_34EC","c":"\"RAN \", the TAC's label for the range, zero-ended; print_text's patched LDA at $9BAA still pointed here when the snapshot was taken","t":"byte","b":[82,65,78,32,0,84,65,67]},{"a":13556,"t":"byte","b":[32,0,65,82,77,32,32,0]},{"a":13564,"t":"byte","b":[83,89,83,32,0],"x":[39850]},{"a":13569,"l":"tac_picture","c":"The TAC's picture page: the player's target (or the player's own ship with none) drawn in the TAC window in 3D. Clears the window (pattern 1, $B788, $8E17 at x $70, y 9, $4F by $2D), sets the drawing scale ($66CA with $0200), draws the model ($354C), then $B839, puts back the main view's flag $3A and scale ($66CA with 0) and ends in $87FE","t":"code","b":[172,69,4],"m":"ldy","oa":1093,"x":[12571],"o":"slot_target"},{"a":13572,"t":"code","b":[16,2],"m":"bpl","oa":13576,"o":"b_3508"},{"a":13574,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":13576,"l":"b_3508","t":"code","b":[132,162],"m":"sty","oa":162,"x":[13572],"o":"model_axisidx"},{"a":13578,"t":"code","b":[165,58],"m":"lda","oa":58,"o":"draw_buffer"},{"a":13580,"t":"code","b":[72],"m":"pha"},{"a":13581,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13583,"t":"code","b":[133,58],"m":"sta","oa":58,"o":"draw_buffer"},{"a":13585,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":13587,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":13590,"t":"code","b":[32,136,183],"m":"jsr","oa":46984,"o":"$B788"},{"a":13593,"t":"code","b":[169,79],"m":"lda","o":"#$4F"},{"a":13595,"t":"code","b":[133,65],"m":"sta","oa":65,"o":"window_width"},{"a":13597,"t":"code","b":[169,45],"m":"lda","o":"#$2D"},{"a":13599,"t":"code","b":[133,66],"m":"sta","oa":66,"o":"window_height"},{"a":13601,"t":"code","b":[162,112],"m":"ldx","o":"#$70"},{"a":13603,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13605,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":13607,"t":"code","b":[32,23,142],"m":"jsr","oa":36375,"o":"set_window"},{"a":13610,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13612,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":13614,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":13616,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":13618,"t":"code","b":[32,202,102],"m":"jsr","oa":26314,"o":"set_projection"},{"a":13621,"t":"code","b":[32,76,53],"m":"jsr","oa":13644,"o":"tac_draw_model"},{"a":13624,"t":"code","b":[32,57,184],"m":"jsr","oa":47161,"o":"$B839"},{"a":13627,"t":"code","b":[104],"m":"pla"},{"a":13628,"t":"code","b":[133,58],"m":"sta","oa":58,"o":"draw_buffer"},{"a":13630,"t":"code","b":[32,254,135],"m":"jsr","oa":34814,"o":"window_view"},{"a":13633,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13635,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":13637,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13639,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":13641,"t":"code","b":[76,202,102],"m":"jmp","oa":26314,"o":"set_projection"},{"a":13644,"l":"tac_draw_model","c":"Draws slot $A2's model in the TAC: the viewing distance is the type's $0A63 word plus $02CE (kept at $366A). The camera is the player's orientation (slot 0's block at $044B, or the identity at $0DA8 when the TAC shows the player's own ship) with its third row replaced by the way from the slot to the player ($92CC) and made orthonormal ($923E); that row times the distance ($95A0) is turned into the slot's frame by the slot's orientation (the identity past slot 6, $9160, $934B), and the two orientations are multiplied into $0D40 ($91B0). Then jumps into the model's own code through the type's model pointer ($08F8/$08F9) with the type's $0999 and $0A63 words in $76/$77 and $5F/$60","t":"code","b":[164,162],"m":"ldy","oa":162,"x":[13621],"o":"model_axisidx"},{"a":13646,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":13649,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13650,"t":"code","b":[168],"m":"tay"},{"a":13651,"t":"code","b":[169,206],"m":"lda","o":"#$CE"},{"a":13653,"t":"code","b":[24],"m":"clc"},{"a":13654,"t":"code","b":[121,99,10],"m":"adc","oa":2659,"o":"type_scale,y"},{"a":13657,"t":"code","b":[141,106,54],"m":"sta","oa":13930,"o":"tac_distance"},{"a":13660,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":13662,"t":"code","b":[121,100,10],"m":"adc","oa":2660,"o":"type_scale_whole,y"},{"a":13665,"t":"code","b":[141,107,54],"m":"sta","oa":13931,"o":"a_366B"},{"a":13668,"t":"code","b":[160,26],"m":"ldy","o":"#$1A"},{"a":13670,"t":"code","b":[165,162],"m":"lda","oa":162,"o":"model_axisidx"},{"a":13672,"t":"code","b":[208,12],"m":"bne","oa":13686,"o":"b_3576"},{"a":13674,"l":"b_356A","t":"code","b":[185,168,13],"m":"lda","oa":3496,"x":[13681],"o":"identity,y"},{"a":13677,"t":"code","b":[153,134,0],"m":"sta","oa":134,"o":"tmp86,y"},{"a":13680,"t":"code","b":[136],"m":"dey"},{"a":13681,"t":"code","b":[16,247],"m":"bpl","oa":13674,"o":"b_356A"},{"a":13683,"t":"code","b":[76,127,53],"m":"jmp","oa":13695,"o":"j_357F"},{"a":13686,"l":"b_3576","t":"code","b":[185,75,4],"m":"lda","oa":1099,"x":[13672,13693],"o":"slot_orient,y"},{"a":13689,"t":"code","b":[153,134,0],"m":"sta","oa":134,"o":"tmp86,y"},{"a":13692,"t":"code","b":[136],"m":"dey"},{"a":13693,"t":"code","b":[16,247],"m":"bpl","oa":13686,"o":"b_3576"},{"a":13695,"l":"j_357F","t":"code","b":[169,93],"m":"lda","x":[13683],"o":"#$5D"},{"a":13697,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":13699,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":13701,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":13703,"t":"code","b":[164,162],"m":"ldy","oa":162,"o":"model_axisidx"},{"a":13705,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":13707,"t":"code","b":[24],"m":"clc"},{"a":13708,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":13711,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":13713,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":13715,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13717,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":13719,"t":"code","b":[169,152],"m":"lda","o":"#$98"},{"a":13721,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":13723,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13725,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":13727,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":13730,"t":"code","b":[169,134],"m":"lda","o":"#$86"},{"a":13732,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":13734,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13736,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":13738,"t":"code","b":[32,62,146],"m":"jsr","oa":37438,"o":"mat_orthonormal"},{"a":13741,"t":"code","b":[169,152],"m":"lda","o":"#$98"},{"a":13743,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":13745,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13747,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":13749,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":13751,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":13753,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":13755,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":13757,"t":"code","b":[173,106,54],"m":"lda","oa":13930,"o":"tac_distance"},{"a":13760,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":13762,"t":"code","b":[173,107,54],"m":"lda","oa":13931,"o":"a_366B"},{"a":13765,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":13767,"t":"code","b":[173,108,54],"m":"lda","oa":13932,"o":"a_366C"},{"a":13770,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":13772,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":13775,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":13777,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":13779,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":13781,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":13783,"t":"code","b":[164,162],"m":"ldy","oa":162,"o":"model_axisidx"},{"a":13785,"t":"code","b":[192,7],"m":"cpy","o":"#$07"},{"a":13787,"t":"code","b":[176,14],"m":"bcs","oa":13803,"o":"b_35EB"},{"a":13789,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":13791,"t":"code","b":[24],"m":"clc"},{"a":13792,"t":"code","b":[121,60,8],"m":"adc","oa":2108,"o":"orient_offsets,y"},{"a":13795,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":13797,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":13799,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":13801,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":13803,"l":"b_35EB","t":"code","b":[165,118],"m":"lda","oa":118,"x":[13787],"o":"src2_ptr"},{"a":13805,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":13807,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":13809,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":13811,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":13813,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":13815,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":13817,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":13819,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":13821,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":13823,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":13825,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":13827,"t":"code","b":[32,96,145],"m":"jsr","oa":37216,"o":"mat_times_vec"},{"a":13830,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":13832,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":13834,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":13836,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":13838,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":13841,"t":"code","b":[165,122],"m":"lda","oa":122,"o":"model_ptr"},{"a":13843,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":13845,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":13847,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":13849,"t":"code","b":[169,134],"m":"lda","o":"#$86"},{"a":13851,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":13853,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":13855,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":13857,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":13859,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":13861,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":13863,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":13865,"t":"code","b":[32,176,145],"m":"jsr","oa":37296,"o":"mat_times_mat"},{"a":13868,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":13870,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":13872,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":13874,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":13876,"t":"code","b":[169,100],"m":"lda","o":"#$64"},{"a":13878,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":13880,"t":"code","b":[169,54],"m":"lda","o":"#$36"},{"a":13882,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":13884,"t":"code","b":[164,162],"m":"ldy","oa":162,"o":"model_axisidx"},{"a":13886,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":13889,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13890,"t":"code","b":[168],"m":"tay"},{"a":13891,"t":"code","b":[185,153,9],"m":"lda","oa":2457,"o":"type_drawdata,y"},{"a":13894,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":13896,"t":"code","b":[185,154,9],"m":"lda","oa":2458,"o":"type_drawdata_hi,y"},{"a":13899,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":13901,"t":"code","b":[185,99,10],"m":"lda","oa":2659,"o":"type_scale,y"},{"a":13904,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":13906,"t":"code","b":[185,100,10],"m":"lda","oa":2660,"o":"type_scale_whole,y"},{"a":13909,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":13911,"t":"code","b":[185,248,8],"m":"lda","oa":2296,"o":"type_draw,y"},{"a":13914,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":13916,"t":"code","b":[185,249,8],"m":"lda","oa":2297,"o":"type_draw_hi,y"},{"a":13919,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":13921,"t":"code","b":[108,133,0],"m":"jmp","oa":133,"o":"(tmp85)"},{"a":13924,"l":"tac_model_record","c":"Nine bytes whose address tac_draw_model passes to the model's code in $74/$75, with $0D40 in $78/$79","t":"byte","b":[156,230,0,156,230,0]},{"a":13930,"l":"tac_distance","c":"The viewing distance tac_draw_model works out, three bytes","t":"byte","b":[206],"x":[13657,13757]},{"a":13931,"l":"a_366B","c":"tac_distance's middle byte","t":"byte","b":[2],"x":[13665,13762]},{"a":13932,"l":"a_366C","c":"tac_distance's top byte","t":"byte","b":[255],"x":[13767]},{"a":13933,"l":"print_ship_label","c":"Prints the three-character label of ship slot A, kept at $0421+3*A (each ship has one, from fill_slot)","t":"code","b":[133,128],"m":"sta","oa":128,"x":[7717,13296],"o":"tmp80"},{"a":13935,"t":"code","b":[10],"m":"asl","o":"a"},{"a":13936,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":13938,"t":"code","b":[168],"m":"tay"},{"a":13939,"t":"code","b":[185,35,4],"m":"lda","oa":1059,"o":"f_0423,y"},{"a":13942,"t":"code","b":[72],"m":"pha"},{"a":13943,"t":"code","b":[185,34,4],"m":"lda","oa":1058,"o":"f_0422,y"},{"a":13946,"t":"code","b":[72],"m":"pha"},{"a":13947,"t":"code","b":[185,33,4],"m":"lda","oa":1057,"o":"slot_label,y"},{"a":13950,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13953,"t":"code","b":[104],"m":"pla"},{"a":13954,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":13957,"t":"code","b":[104],"m":"pla"},{"a":13958,"t":"code","b":[76,71,160],"m":"jmp","oa":41031,"o":"print_char"},{"a":13961,"l":"ship_ai","c":"The computer ships' minds, every 17th call (counter $3808, 16 down to -1): for each ship in slots 5-1 whose AI state ($041B) is not 0: works out the distance to its target ($7947, kept in $D0-$D4); every third time round (counter $3809), for a ship whose $0403 is clear, a ship without a target looks for one ($3701), one with a target reconsiders its attitude ($3739) and tactic ($375F). Every time, a ship with a target sets its speed ($37A8), steers ($3CAB) and may fire ($38C1). Then $3A2D","t":"code","b":[206,8,56],"m":"dec","oa":14344,"x":[3571],"o":"ai_tick"},{"a":13964,"t":"code","b":[16,114],"m":"bpl","oa":14080,"o":"r_3700"},{"a":13966,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":13968,"t":"code","b":[141,8,56],"m":"sta","oa":14344,"o":"ai_tick"},{"a":13971,"t":"code","b":[206,9,56],"m":"dec","oa":14345,"o":"ai_think_tick"},{"a":13974,"t":"code","b":[16,5],"m":"bpl","oa":13981,"o":"b_369D"},{"a":13976,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":13978,"t":"code","b":[141,9,56],"m":"sta","oa":14345,"o":"ai_think_tick"},{"a":13981,"l":"b_369D","t":"code","b":[162,5],"m":"ldx","x":[13974],"o":"#$05"},{"a":13983,"t":"code","b":[134,213],"m":"stx","oa":213,"o":"ai_slot"},{"a":13985,"l":"b_36A1","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[14075],"o":"slot_in_use,x"},{"a":13988,"t":"code","b":[240,81],"m":"beq","oa":14071,"o":"b_36F7"},{"a":13990,"t":"code","b":[189,27,4],"m":"lda","oa":1051,"o":"slot_ai_state,x"},{"a":13993,"t":"code","b":[240,76],"m":"beq","oa":14071,"o":"b_36F7"},{"a":13995,"l":"b_36AB","t":"code","b":[164,213],"m":"ldy","oa":213,"x":[14047],"o":"ai_slot"},{"a":13997,"t":"code","b":[190,69,4],"m":"ldx","oa":1093,"o":"slot_target,y"},{"a":14000,"t":"code","b":[48,23],"m":"bmi","oa":14025,"o":"b_36C9"},{"a":14002,"t":"code","b":[32,71,121],"m":"jsr","oa":31047,"o":"bearing"},{"a":14005,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":14007,"t":"code","b":[133,208],"m":"sta","oa":208,"o":"ai_dist"},{"a":14009,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":14011,"t":"code","b":[133,209],"m":"sta","oa":209,"o":"zpa_D1"},{"a":14013,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":14015,"t":"code","b":[133,210],"m":"sta","oa":210,"o":"ai_dot"},{"a":14017,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":14019,"t":"code","b":[133,211],"m":"sta","oa":211,"o":"zpa_D3"},{"a":14021,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":14023,"t":"code","b":[133,212],"m":"sta","oa":212,"o":"zpa_D4"},{"a":14025,"l":"b_36C9","t":"code","b":[173,9,56],"m":"lda","oa":14345,"x":[14000],"o":"ai_think_tick"},{"a":14028,"t":"code","b":[208,25],"m":"bne","oa":14055,"o":"b_36E7"},{"a":14030,"t":"code","b":[166,213],"m":"ldx","oa":213,"o":"ai_slot"},{"a":14032,"t":"code","b":[189,3,4],"m":"lda","oa":1027,"o":"slot_missile,x"},{"a":14035,"t":"code","b":[208,18],"m":"bne","oa":14055,"o":"b_36E7"},{"a":14037,"t":"code","b":[189,69,4],"m":"lda","oa":1093,"o":"slot_target,x"},{"a":14040,"t":"code","b":[16,7],"m":"bpl","oa":14049,"o":"b_36E1"},{"a":14042,"t":"code","b":[32,1,55],"m":"jsr","oa":14081,"o":"ai_find_target"},{"a":14045,"t":"code","b":[144,24],"m":"bcc","oa":14071,"o":"b_36F7"},{"a":14047,"t":"code","b":[176,202],"m":"bcs","oa":13995,"o":"b_36AB"},{"a":14049,"l":"b_36E1","t":"code","b":[32,57,55],"m":"jsr","oa":14137,"x":[14040],"o":"ai_attitude"},{"a":14052,"t":"code","b":[32,95,55],"m":"jsr","oa":14175,"o":"ai_tactic"},{"a":14055,"l":"b_36E7","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14028,14035],"o":"ai_slot"},{"a":14057,"t":"code","b":[189,69,4],"m":"lda","oa":1093,"o":"slot_target,x"},{"a":14060,"t":"code","b":[48,9],"m":"bmi","oa":14071,"o":"b_36F7"},{"a":14062,"t":"code","b":[32,168,55],"m":"jsr","oa":14248,"o":"ai_speed"},{"a":14065,"t":"code","b":[32,171,60],"m":"jsr","oa":15531,"o":"ai_steer"},{"a":14068,"t":"code","b":[32,193,56],"m":"jsr","oa":14529,"o":"ai_fire"},{"a":14071,"l":"b_36F7","t":"code","b":[198,213],"m":"dec","oa":213,"x":[13988,13993,14045,14060],"o":"ai_slot"},{"a":14073,"t":"code","b":[166,213],"m":"ldx","oa":213,"o":"ai_slot"},{"a":14075,"t":"code","b":[208,164],"m":"bne","oa":13985,"o":"b_36A1"},{"a":14077,"t":"code","b":[76,45,58],"m":"jmp","oa":14893,"o":"merchant_surrender"},{"a":14080,"l":"r_3700","t":"code","b":[96],"m":"rts","x":[13964]},{"a":14081,"l":"ai_find_target","c":"A ship without a target takes the one in $0439 if it has been given one; otherwise looks for an enemy ($3811). Found: it becomes the target ($0445), and $C6. None: AI state 1, tactic 0 (cruise) at that tactic's speed ($0C9A), and one time in eight $3CDC","t":"code","b":[188,57,4],"m":"ldy","oa":1081,"x":[14042],"o":"slot_attacker,x"},{"a":14084,"t":"code","b":[16,5],"m":"bpl","oa":14091,"o":"b_370B"},{"a":14086,"t":"code","b":[32,17,56],"m":"jsr","oa":14353,"o":"ai_find_enemy"},{"a":14089,"t":"code","b":[48,15],"m":"bmi","oa":14106,"o":"b_371A"},{"a":14091,"l":"b_370B","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14084],"o":"ai_slot"},{"a":14093,"t":"code","b":[152],"m":"tya"},{"a":14094,"t":"code","b":[157,69,4],"m":"sta","oa":1093,"o":"slot_target,x"},{"a":14097,"t":"code","b":[132,198],"m":"sty","oa":198,"o":"slot_a"},{"a":14099,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":14101,"t":"code","b":[157,57,4],"m":"sta","oa":1081,"o":"slot_attacker,x"},{"a":14104,"t":"code","b":[56],"m":"sec"},{"a":14105,"t":"code","b":[96],"m":"rts"},{"a":14106,"l":"b_371A","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14089],"o":"ai_slot"},{"a":14108,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":14110,"t":"code","b":[157,27,4],"m":"sta","oa":1051,"o":"slot_ai_state,x"},{"a":14113,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":14115,"t":"code","b":[157,63,4],"m":"sta","oa":1087,"o":"slot_tactic,x"},{"a":14118,"t":"code","b":[168],"m":"tay"},{"a":14119,"t":"code","b":[185,154,12],"m":"lda","oa":3226,"o":"tactic_speed,y"},{"a":14122,"t":"code","b":[157,21,4],"m":"sta","oa":1045,"o":"slot_speed,x"},{"a":14125,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":14128,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":14130,"t":"code","b":[176,3],"m":"bcs","oa":14135,"o":"b_3737"},{"a":14132,"t":"code","b":[32,220,60],"m":"jsr","oa":15580,"o":"random_rates"},{"a":14135,"l":"b_3737","t":"code","b":[24],"m":"clc","x":[14130]},{"a":14136,"t":"code","b":[96],"m":"rts"},{"a":14137,"l":"ai_attitude","c":"Unless its AI state is 2, the ship decides how it stands to its target ($3BE0): AI state $FE to fight, or $FF with tactic 7 (flee)","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14049],"o":"ai_slot"},{"a":14139,"t":"code","b":[189,27,4],"m":"lda","oa":1051,"o":"slot_ai_state,x"},{"a":14142,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":14144,"t":"code","b":[240,28],"m":"beq","oa":14174,"o":"r_375E"},{"a":14146,"t":"code","b":[188,69,4],"m":"ldy","oa":1093,"o":"slot_target,x"},{"a":14149,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":14151,"t":"code","b":[32,224,59],"m":"jsr","oa":15328,"o":"ai_fight_score"},{"a":14154,"t":"code","b":[48,6],"m":"bmi","oa":14162,"o":"b_3752"},{"a":14156,"t":"code","b":[166,213],"m":"ldx","oa":213,"o":"ai_slot"},{"a":14158,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":14160,"t":"code","b":[208,9],"m":"bne","oa":14171,"o":"b_375B"},{"a":14162,"l":"b_3752","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14154],"o":"ai_slot"},{"a":14164,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":14166,"t":"code","b":[157,63,4],"m":"sta","oa":1087,"o":"slot_tactic,x"},{"a":14169,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":14171,"l":"b_375B","t":"code","b":[157,27,4],"m":"sta","oa":1051,"x":[14160],"o":"slot_ai_state,x"},{"a":14174,"l":"r_375E","t":"code","b":[96],"m":"rts","x":[14144]},{"a":14175,"l":"ai_tactic","c":"For a ship that is fighting ($041B = $FE): beyond $0861 in distance (a log: about 333 units) the tactic is 2 (pursue). Otherwise a ship cruising or pursuing takes the type's own tactic ($0C38), and one in any other tactic changes, one time in ten (a random number of $E6 or more), to one of seven drawn from ai_tactic_choices. The distance test is signed: a negative log (very close) counts as near","t":"code","b":[164,213],"m":"ldy","oa":213,"x":[14052],"o":"ai_slot"},{"a":14177,"t":"code","b":[185,27,4],"m":"lda","oa":1051,"o":"slot_ai_state,y"},{"a":14180,"t":"code","b":[16,65],"m":"bpl","oa":14247,"o":"r_37A7"},{"a":14182,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":14184,"t":"code","b":[240,61],"m":"beq","oa":14247,"o":"r_37A7"},{"a":14186,"t":"code","b":[169,97],"m":"lda","o":"#$61"},{"a":14188,"t":"code","b":[197,208],"m":"cmp","oa":208,"o":"ai_dist"},{"a":14190,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":14192,"t":"code","b":[229,209],"m":"sbc","oa":209,"o":"zpa_D1"},{"a":14194,"t":"code","b":[16,8],"m":"bpl","oa":14204,"o":"b_377C"},{"a":14196,"t":"code","b":[164,213],"m":"ldy","oa":213,"o":"ai_slot"},{"a":14198,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":14200,"t":"code","b":[153,63,4],"m":"sta","oa":1087,"o":"slot_tactic,y"},{"a":14203,"t":"code","b":[96],"m":"rts"},{"a":14204,"l":"b_377C","t":"code","b":[185,63,4],"m":"lda","oa":1087,"x":[14194],"o":"slot_tactic,y"},{"a":14207,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":14209,"t":"code","b":[240,20],"m":"beq","oa":14231,"o":"b_3797"},{"a":14211,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":14213,"t":"code","b":[240,16],"m":"beq","oa":14231,"o":"b_3797"},{"a":14215,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":14218,"t":"code","b":[201,230],"m":"cmp","o":"#$E6"},{"a":14220,"t":"code","b":[144,25],"m":"bcc","oa":14247,"o":"r_37A7"},{"a":14222,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":14224,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":14227,"t":"code","b":[164,213],"m":"ldy","oa":213,"o":"ai_slot"},{"a":14229,"t":"code","b":[16,9],"m":"bpl","oa":14240,"o":"b_37A0"},{"a":14231,"l":"b_3797","t":"code","b":[190,13,6],"m":"ldx","oa":1549,"x":[14209,14213],"o":"slot_type,y"},{"a":14234,"t":"code","b":[189,56,12],"m":"lda","oa":3128,"o":"type_tactic,x"},{"a":14237,"t":"code","b":[76,164,55],"m":"jmp","oa":14244,"o":"j_37A4"},{"a":14240,"l":"b_37A0","t":"code","b":[170],"m":"tax","x":[14229]},{"a":14241,"t":"code","b":[189,10,56],"m":"lda","oa":14346,"o":"ai_tactic_choices,x"},{"a":14244,"l":"j_37A4","t":"code","b":[153,63,4],"m":"sta","oa":1087,"x":[14237],"o":"slot_tactic,y"},{"a":14247,"l":"r_37A7","t":"code","b":[96],"m":"rts","x":[14180,14184,14220]},{"a":14248,"l":"ai_speed","c":"Sets the ship's speed ($0415) from its tactic: the tactic's speed ($0C9A), or, against a ship target, by the tactic's speed rule ($0CA4): negative takes the target's speed ($7C21), 1 the average of the two, 2 one from the distance ($37E7), 0 leaves the tactic's speed","t":"code","b":[188,63,4],"m":"ldy","oa":1087,"x":[14062],"o":"slot_tactic,x"},{"a":14251,"t":"code","b":[185,154,12],"m":"lda","oa":3226,"o":"tactic_speed,y"},{"a":14254,"t":"code","b":[133,199],"m":"sta","oa":199,"o":"slot_b"},{"a":14256,"t":"code","b":[189,69,4],"m":"lda","oa":1093,"o":"slot_target,x"},{"a":14259,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":14261,"t":"code","b":[176,40],"m":"bcs","oa":14303,"o":"b_37DF"},{"a":14263,"t":"code","b":[133,198],"m":"sta","oa":198,"o":"slot_a"},{"a":14265,"t":"code","b":[185,164,12],"m":"lda","oa":3236,"o":"tactic_speedrule,y"},{"a":14268,"t":"code","b":[240,33],"m":"beq","oa":14303,"o":"b_37DF"},{"a":14270,"t":"code","b":[72],"m":"pha"},{"a":14271,"t":"code","b":[164,198],"m":"ldy","oa":198,"o":"slot_a"},{"a":14273,"t":"code","b":[32,33,124],"m":"jsr","oa":31777,"o":"speed_of"},{"a":14276,"t":"code","b":[133,200],"m":"sta","oa":200,"o":"radius_lo"},{"a":14278,"t":"code","b":[104],"m":"pla"},{"a":14279,"t":"code","b":[16,6],"m":"bpl","oa":14287,"o":"b_37CF"},{"a":14281,"t":"code","b":[165,200],"m":"lda","oa":200,"o":"radius_lo"},{"a":14283,"t":"code","b":[133,199],"m":"sta","oa":199,"o":"slot_b"},{"a":14285,"t":"code","b":[16,16],"m":"bpl","oa":14303,"o":"b_37DF"},{"a":14287,"l":"b_37CF","t":"code","b":[201,1],"m":"cmp","x":[14279],"o":"#$01"},{"a":14289,"t":"code","b":[208,9],"m":"bne","oa":14300,"o":"b_37DC"},{"a":14291,"t":"code","b":[165,200],"m":"lda","oa":200,"o":"radius_lo"},{"a":14293,"t":"code","b":[101,199],"m":"adc","oa":199,"o":"slot_b"},{"a":14295,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":14296,"t":"code","b":[133,199],"m":"sta","oa":199,"o":"slot_b"},{"a":14298,"t":"code","b":[16,3],"m":"bpl","oa":14303,"o":"b_37DF"},{"a":14300,"l":"b_37DC","t":"code","b":[32,231,55],"m":"jsr","oa":14311,"x":[14289],"o":"ai_closing_speed"},{"a":14303,"l":"b_37DF","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14261,14268,14285,14298],"o":"ai_slot"},{"a":14305,"t":"code","b":[165,199],"m":"lda","oa":199,"o":"slot_b"},{"a":14307,"t":"code","b":[157,21,4],"m":"sta","oa":1045,"o":"slot_speed,x"},{"a":14310,"t":"code","b":[96],"m":"rts"},{"a":14311,"l":"ai_closing_speed","c":"Speed rule 2: 5 when the target is more than about 45 degrees off the nose (negative $D4 or $D2/$D3 below $FF7D), otherwise $4B while far ($D0/$D1, a log, at $0861 or over: about 333 units) and the tactic's speed while close","t":"code","b":[165,212],"m":"lda","oa":212,"x":[14300],"o":"zpa_D4"},{"a":14313,"t":"code","b":[48,10],"m":"bmi","oa":14325,"o":"b_37F5"},{"a":14315,"t":"code","b":[165,210],"m":"lda","oa":210,"o":"ai_dot"},{"a":14317,"t":"code","b":[201,125],"m":"cmp","o":"#$7D"},{"a":14319,"t":"code","b":[165,211],"m":"lda","oa":211,"o":"zpa_D3"},{"a":14321,"t":"code","b":[233,255],"m":"sbc","o":"#$FF"},{"a":14323,"t":"code","b":[16,4],"m":"bpl","oa":14329,"o":"b_37F9"},{"a":14325,"l":"b_37F5","t":"code","b":[169,5],"m":"lda","x":[14313],"o":"#$05"},{"a":14327,"t":"code","b":[16,12],"m":"bpl","oa":14341,"o":"b_3805"},{"a":14329,"l":"b_37F9","t":"code","b":[165,208],"m":"lda","oa":208,"x":[14323],"o":"ai_dist"},{"a":14331,"t":"code","b":[201,97],"m":"cmp","o":"#$61"},{"a":14333,"t":"code","b":[165,209],"m":"lda","oa":209,"o":"zpa_D1"},{"a":14335,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":14337,"t":"code","b":[48,4],"m":"bmi","oa":14343,"o":"r_3807"},{"a":14339,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":14341,"l":"b_3805","t":"code","b":[133,199],"m":"sta","oa":199,"x":[14327],"o":"slot_b"},{"a":14343,"l":"r_3807","t":"code","b":[96],"m":"rts","x":[14337]},{"a":14344,"l":"ai_tick","c":"Counts ship_ai's calls from 16 down; the minds run when it passes zero, on every 17th call","t":"byte","b":[10],"x":[13961,13968]},{"a":14345,"l":"ai_think_tick","c":"Counts ship_ai's passes 2, 1, 0: target, attitude and tactic are reconsidered at 0","t":"byte","b":[1],"x":[13971,13978,14025]},{"a":14346,"l":"ai_tactic_choices","c":"The seven tactics ai_tactic draws from: close, follow, swerve, stand, circle, elude, ram","t":"byte","b":[3,1,4,5,6,8,9],"x":[14241]},{"a":14353,"l":"ai_find_enemy","c":"Looks among ship slots 0-5 (not itself, in use, $0403 clear) for the one its faction most dislikes ($387E most negative, $FE before $FF); if none, takes the target of a ship of a faction it is allied to (attitude 2). Returns the slot in Y, negative for none","t":"code","b":[134,136],"m":"stx","oa":136,"x":[14086],"o":"tmp88"},{"a":14355,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":14357,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":14359,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":14361,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":14363,"l":"b_381B","t":"code","b":[196,136],"m":"cpy","oa":136,"x":[14406],"o":"tmp88"},{"a":14365,"t":"code","b":[240,38],"m":"beq","oa":14405,"o":"b_3845"},{"a":14367,"t":"code","b":[185,249,5],"m":"lda","oa":1529,"o":"slot_in_use,y"},{"a":14370,"t":"code","b":[240,33],"m":"beq","oa":14405,"o":"b_3845"},{"a":14372,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":14375,"t":"code","b":[208,28],"m":"bne","oa":14405,"o":"b_3845"},{"a":14377,"t":"code","b":[190,51,4],"m":"ldx","oa":1075,"o":"slot_faction,y"},{"a":14380,"t":"code","b":[132,133],"m":"sty","oa":133,"o":"tmp85"},{"a":14382,"t":"code","b":[164,136],"m":"ldy","oa":136,"o":"tmp88"},{"a":14384,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":14387,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":14390,"t":"code","b":[164,133],"m":"ldy","oa":133,"o":"tmp85"},{"a":14392,"t":"code","b":[170],"m":"tax"},{"a":14393,"t":"code","b":[16,10],"m":"bpl","oa":14405,"o":"b_3845"},{"a":14395,"t":"code","b":[197,135],"m":"cmp","oa":135,"o":"tmp87"},{"a":14397,"t":"code","b":[240,2],"m":"beq","oa":14401,"o":"b_3841"},{"a":14399,"t":"code","b":[176,4],"m":"bcs","oa":14405,"o":"b_3845"},{"a":14401,"l":"b_3841","t":"code","b":[133,135],"m":"sta","oa":135,"x":[14397],"o":"tmp87"},{"a":14403,"t":"code","b":[132,134],"m":"sty","oa":134,"o":"tmp86"},{"a":14405,"l":"b_3845","t":"code","b":[136],"m":"dey","x":[14365,14370,14375,14393,14399]},{"a":14406,"t":"code","b":[16,211],"m":"bpl","oa":14363,"o":"b_381B"},{"a":14408,"t":"code","b":[164,134],"m":"ldy","oa":134,"o":"tmp86"},{"a":14410,"t":"code","b":[16,45],"m":"bpl","oa":14457,"o":"r_3879"},{"a":14412,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":14414,"l":"b_384E","t":"code","b":[196,136],"m":"cpy","oa":136,"x":[14459],"o":"tmp88"},{"a":14416,"t":"code","b":[240,40],"m":"beq","oa":14458,"o":"b_387A"},{"a":14418,"t":"code","b":[185,249,5],"m":"lda","oa":1529,"o":"slot_in_use,y"},{"a":14421,"t":"code","b":[240,35],"m":"beq","oa":14458,"o":"b_387A"},{"a":14423,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":14426,"t":"code","b":[48,30],"m":"bmi","oa":14458,"o":"b_387A"},{"a":14428,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":14431,"t":"code","b":[208,25],"m":"bne","oa":14458,"o":"b_387A"},{"a":14433,"t":"code","b":[190,51,4],"m":"ldx","oa":1075,"o":"slot_faction,y"},{"a":14436,"t":"code","b":[132,133],"m":"sty","oa":133,"o":"tmp85"},{"a":14438,"t":"code","b":[164,136],"m":"ldy","oa":136,"o":"tmp88"},{"a":14440,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":14443,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":14446,"t":"code","b":[164,133],"m":"ldy","oa":133,"o":"tmp85"},{"a":14448,"t":"code","b":[170],"m":"tax"},{"a":14449,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":14451,"t":"code","b":[208,5],"m":"bne","oa":14458,"o":"b_387A"},{"a":14453,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":14456,"t":"code","b":[168],"m":"tay"},{"a":14457,"l":"r_3879","t":"code","b":[96],"m":"rts","x":[14410]},{"a":14458,"l":"b_387A","t":"code","b":[136],"m":"dey","x":[14416,14421,14426,14431,14451]},{"a":14459,"t":"code","b":[16,209],"m":"bpl","oa":14414,"o":"b_384E"},{"a":14461,"t":"code","b":[96],"m":"rts"},{"a":14462,"l":"faction_attitude","c":"How faction A stands to faction X: from the player (X = 4) it is the player's standing with that faction ($072E+A), except that a type-$0C ship (in Y) is unfriendly ($FF) while the player has a bounty ($0726/$0727), and otherwise takes the standing like any other ship (the LDA #0 at $3899 is overwritten by the next instruction); a negative faction gives 0. Between two computer factions it is faction_table entry A*4+X. $FE is hostile, $FF unfriendly, 0 neutral, 1 friendly, 2 allied","t":"code","b":[134,128],"m":"stx","oa":128,"x":[7671,11483,11499,11525,14387,14443,14722,15066,15445],"o":"tmp80"},{"a":14464,"t":"code","b":[224,4],"m":"cpx","o":"#$04"},{"a":14466,"t":"code","b":[208,27],"m":"bne","oa":14495,"o":"b_389F"},{"a":14468,"t":"code","b":[170],"m":"tax"},{"a":14469,"t":"code","b":[48,39],"m":"bmi","oa":14510,"o":"b_38AE"},{"a":14471,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":14473,"t":"code","b":[217,13,6],"m":"cmp","oa":1549,"o":"slot_type,y"},{"a":14476,"t":"code","b":[208,13],"m":"bne","oa":14491,"o":"b_389B"},{"a":14478,"t":"code","b":[173,39,7],"m":"lda","oa":1831,"o":"a_0727"},{"a":14481,"t":"code","b":[13,38,7],"m":"ora","oa":1830,"o":"bounty"},{"a":14484,"t":"code","b":[240,3],"m":"beq","oa":14489,"o":"b_3899"},{"a":14486,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":14488,"t":"code","b":[96],"m":"rts"},{"a":14489,"l":"b_3899","t":"code","b":[169,0],"m":"lda","x":[14484],"o":"#$00"},{"a":14491,"l":"b_389B","t":"code","b":[189,46,7],"m":"lda","oa":1838,"x":[14476],"o":"standings,x"},{"a":14494,"t":"code","b":[96],"m":"rts"},{"a":14495,"l":"b_389F","t":"code","b":[166,128],"m":"ldx","oa":128,"x":[14466],"o":"tmp80"},{"a":14497,"t":"code","b":[48,11],"m":"bmi","oa":14510,"o":"b_38AE"},{"a":14499,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14500,"t":"code","b":[176,8],"m":"bcs","oa":14510,"o":"b_38AE"},{"a":14502,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14503,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":14505,"t":"code","b":[170],"m":"tax"},{"a":14506,"t":"code","b":[189,177,56],"m":"lda","oa":14513,"o":"faction_table,x"},{"a":14509,"t":"code","b":[96],"m":"rts"},{"a":14510,"l":"b_38AE","t":"code","b":[169,0],"m":"lda","x":[14469,14497,14500],"o":"#$00"},{"a":14512,"t":"code","b":[96],"m":"rts"},{"a":14513,"l":"faction_table","c":"How each of the four factions stands to each other, row by faction: 1 FF FF FE / 0 1 1 FF / FF 2 2 FE / FE FE FE 2","t":"byte","b":[1,255,255,254,0,1,1,255],"x":[14506]},{"a":14521,"t":"byte","b":[255,2,2,254,254,254,254,2]},{"a":14529,"l":"ai_fire","c":"A fighting or fleeing ship ($041B negative, $0403 clear) whose distance to its target is below $08A4 as a log (about 400 units, a beam's reach in trace_beam) fires three times in ten (a random number below $4D). The flag $BD is set when the value $7947 left in $D2-$D4 has a positive top byte and a low word at or above $FFCB as a signed comparison: the target within about 30 degrees of the nose. Then three times in ten a missile of its type's kind ($0C5F + 8; none with a damaged launcher, $0409 bit 0, or a type without missiles), a type 11 missile only with $BD set; otherwise the beam ($20EC), with $BD set or when its type's beam value ($0C52) has bit 7 set","t":"code","b":[164,213],"m":"ldy","oa":213,"x":[14068],"o":"ai_slot"},{"a":14531,"t":"code","b":[185,27,4],"m":"lda","oa":1051,"o":"slot_ai_state,y"},{"a":14534,"t":"code","b":[16,97],"m":"bpl","oa":14633,"o":"r_3929"},{"a":14536,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":14539,"t":"code","b":[208,92],"m":"bne","oa":14633,"o":"r_3929"},{"a":14541,"t":"code","b":[165,208],"m":"lda","oa":208,"o":"ai_dist"},{"a":14543,"t":"code","b":[201,164],"m":"cmp","o":"#$A4"},{"a":14545,"t":"code","b":[165,209],"m":"lda","oa":209,"o":"zpa_D1"},{"a":14547,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":14549,"t":"code","b":[16,82],"m":"bpl","oa":14633,"o":"r_3929"},{"a":14551,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":14554,"t":"code","b":[201,77],"m":"cmp","o":"#$4D"},{"a":14556,"t":"code","b":[176,75],"m":"bcs","oa":14633,"o":"r_3929"},{"a":14558,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":14560,"t":"code","b":[165,212],"m":"lda","oa":212,"o":"zpa_D4"},{"a":14562,"t":"code","b":[48,11],"m":"bmi","oa":14575,"o":"b_38EF"},{"a":14564,"t":"code","b":[165,210],"m":"lda","oa":210,"o":"ai_dot"},{"a":14566,"t":"code","b":[201,203],"m":"cmp","o":"#$CB"},{"a":14568,"t":"code","b":[165,211],"m":"lda","oa":211,"o":"zpa_D3"},{"a":14570,"t":"code","b":[233,255],"m":"sbc","o":"#$FF"},{"a":14572,"t":"code","b":[48,1],"m":"bmi","oa":14575,"o":"b_38EF"},{"a":14574,"t":"code","b":[232],"m":"inx"},{"a":14575,"l":"b_38EF","t":"code","b":[134,189],"m":"stx","oa":189,"x":[14562,14572],"o":"zpa_BD"},{"a":14577,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":14580,"t":"code","b":[201,77],"m":"cmp","o":"#$4D"},{"a":14582,"t":"code","b":[176,32],"m":"bcs","oa":14616,"o":"b_3918"},{"a":14584,"t":"code","b":[164,213],"m":"ldy","oa":213,"o":"ai_slot"},{"a":14586,"t":"code","b":[185,9,4],"m":"lda","oa":1033,"o":"slot_damage,y"},{"a":14589,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":14591,"t":"code","b":[208,23],"m":"bne","oa":14616,"o":"b_3918"},{"a":14593,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":14596,"t":"code","b":[189,95,12],"m":"lda","oa":3167,"o":"type_missile_kind,x"},{"a":14599,"t":"code","b":[240,15],"m":"beq","oa":14616,"o":"b_3918"},{"a":14601,"t":"code","b":[24],"m":"clc"},{"a":14602,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":14604,"t":"code","b":[170],"m":"tax"},{"a":14605,"t":"code","b":[224,11],"m":"cpx","o":"#$0B"},{"a":14607,"t":"code","b":[240,3],"m":"beq","oa":14612,"o":"b_3914"},{"a":14609,"l":"b_3911","t":"code","b":[76,173,30],"m":"jmp","oa":7853,"x":[14614],"o":"launch_missile"},{"a":14612,"l":"b_3914","t":"code","b":[165,189],"m":"lda","oa":189,"x":[14607],"o":"zpa_BD"},{"a":14614,"t":"code","b":[208,249],"m":"bne","oa":14609,"o":"b_3911"},{"a":14616,"l":"b_3918","t":"code","b":[164,213],"m":"ldy","oa":213,"x":[14582,14591,14599],"o":"ai_slot"},{"a":14618,"t":"code","b":[165,189],"m":"lda","oa":189,"o":"zpa_BD"},{"a":14620,"t":"code","b":[208,8],"m":"bne","oa":14630,"o":"b_3926"},{"a":14622,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":14625,"t":"code","b":[189,82,12],"m":"lda","oa":3154,"o":"type_beam,x"},{"a":14628,"t":"code","b":[16,3],"m":"bpl","oa":14633,"o":"r_3929"},{"a":14630,"l":"b_3926","t":"code","b":[76,236,32],"m":"jmp","oa":8428,"x":[14620],"o":"fire_beam"},{"a":14633,"l":"r_3929","t":"code","b":[96],"m":"rts","x":[14534,14539,14549,14556,14628]},{"a":14634,"l":"key_surrender","c":"Key G, surrender. Clears the view and shows the surrender text ($CF88). It counts only with exactly one ship fighting the player and the first time ($0832): then the rank count $072B gains $072A. A faction hostile to the player refuses ($CF81); one time in five any other ignores it ($CF7F). The Imperium (faction 2) asks for the bounty ($0726/$0727) plus 50 credits ($CF87, Y/N $3BA1): paid, the bounty is cleared ($CF86) and that ship and every computer ship's missile leave; too little money, $CF85. Any other faction asks for the cargo ($CF84): yes with an empty hold gives $CF83, otherwise the hold is emptied ($CF82) and the ship and the missiles leave. After either, print_wrapped is called again with what clear_tac left in A and X. Refusing gives $CF80","t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":14636,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":14639,"t":"code","b":[32,129,185],"m":"jsr","oa":47489,"o":"$B981"},{"a":14642,"t":"code","b":[32,242,186],"m":"jsr","oa":47858,"o":"$BAF2"},{"a":14645,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":14647,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":14650,"t":"code","b":[162,136],"m":"ldx","o":"#$88"},{"a":14652,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14654,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":14657,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":14659,"t":"code","b":[32,23,163],"m":"jsr","oa":41751,"o":"wait_ticks"},{"a":14662,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":14664,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":14666,"l":"b_394A","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[14685],"o":"slot_in_use,y"},{"a":14669,"t":"code","b":[240,13],"m":"beq","oa":14684,"o":"b_395C"},{"a":14671,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":14674,"t":"code","b":[208,8],"m":"bne","oa":14684,"o":"b_395C"},{"a":14676,"t":"code","b":[185,27,4],"m":"lda","oa":1051,"o":"slot_ai_state,y"},{"a":14679,"t":"code","b":[16,3],"m":"bpl","oa":14684,"o":"b_395C"},{"a":14681,"t":"code","b":[132,158],"m":"sty","oa":158,"o":"model_polys"},{"a":14683,"t":"code","b":[232],"m":"inx"},{"a":14684,"l":"b_395C","t":"code","b":[136],"m":"dey","x":[14669,14674,14679]},{"a":14685,"t":"code","b":[208,235],"m":"bne","oa":14666,"o":"b_394A"},{"a":14687,"t":"code","b":[202],"m":"dex"},{"a":14688,"t":"code","b":[208,53],"m":"bne","oa":14743,"o":"b_3997"},{"a":14690,"t":"code","b":[173,50,8],"m":"lda","oa":2098,"o":"surrendered"},{"a":14693,"t":"code","b":[208,48],"m":"bne","oa":14743,"o":"b_3997"},{"a":14695,"t":"code","b":[238,50,8],"m":"inc","oa":2098,"o":"surrendered"},{"a":14698,"t":"code","b":[173,43,7],"m":"lda","oa":1835,"o":"rank_points"},{"a":14701,"t":"code","b":[24],"m":"clc"},{"a":14702,"t":"code","b":[109,42,7],"m":"adc","oa":1834,"o":"rank"},{"a":14705,"t":"code","b":[141,43,7],"m":"sta","oa":1835,"o":"rank_points"},{"a":14708,"t":"code","b":[144,5],"m":"bcc","oa":14715,"o":"b_397B"},{"a":14710,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":14712,"t":"code","b":[141,43,7],"m":"sta","oa":1835,"o":"rank_points"},{"a":14715,"l":"b_397B","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[14708],"o":"model_polys"},{"a":14717,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":14720,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":14722,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":14725,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":14727,"t":"code","b":[208,7],"m":"bne","oa":14736,"o":"b_3990"},{"a":14729,"t":"code","b":[162,129],"m":"ldx","o":"#$81"},{"a":14731,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14733,"t":"code","b":[76,34,58],"m":"jmp","oa":14882,"o":"j_3A22"},{"a":14736,"l":"b_3990","t":"code","b":[169,4],"m":"lda","x":[14727],"o":"#$04"},{"a":14738,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":14741,"t":"code","b":[208,7],"m":"bne","oa":14750,"o":"b_399E"},{"a":14743,"l":"b_3997","t":"code","b":[162,127],"m":"ldx","x":[14688,14693],"o":"#$7F"},{"a":14745,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14747,"t":"code","b":[76,34,58],"m":"jmp","oa":14882,"o":"j_3A22"},{"a":14750,"l":"b_399E","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[14741],"o":"model_polys"},{"a":14752,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":14755,"t":"code","b":[48,16],"m":"bmi","oa":14773,"o":"b_39B5"},{"a":14757,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":14759,"t":"code","b":[208,61],"m":"bne","oa":14822,"o":"b_39E6"},{"a":14761,"t":"code","b":[162,135],"m":"ldx","o":"#$87"},{"a":14763,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14765,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":14768,"t":"code","b":[32,161,59],"m":"jsr","oa":15265,"o":"ask_agree"},{"a":14771,"t":"code","b":[240,7],"m":"beq","oa":14780,"o":"b_39BC"},{"a":14773,"l":"b_39B5","t":"code","b":[162,128],"m":"ldx","x":[14755,14832],"o":"#$80"},{"a":14775,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14777,"t":"code","b":[76,34,58],"m":"jmp","oa":14882,"o":"j_3A22"},{"a":14780,"l":"b_39BC","t":"code","b":[173,38,7],"m":"lda","oa":1830,"x":[14771],"o":"bounty"},{"a":14783,"t":"code","b":[24],"m":"clc"},{"a":14784,"t":"code","b":[105,50],"m":"adc","o":"#$32"},{"a":14786,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":14788,"t":"code","b":[173,39,7],"m":"lda","oa":1831,"o":"a_0727"},{"a":14791,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":14793,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":14795,"t":"code","b":[32,3,47],"m":"jsr","oa":12035,"o":"pay_credits"},{"a":14798,"t":"code","b":[144,15],"m":"bcc","oa":14815,"o":"b_39DF"},{"a":14800,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":14802,"t":"code","b":[141,38,7],"m":"sta","oa":1830,"o":"bounty"},{"a":14805,"t":"code","b":[141,39,7],"m":"sta","oa":1831,"o":"a_0727"},{"a":14808,"t":"code","b":[162,134],"m":"ldx","o":"#$86"},{"a":14810,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14812,"t":"code","b":[76,5,58],"m":"jmp","oa":14853,"o":"j_3A05"},{"a":14815,"l":"b_39DF","t":"code","b":[162,133],"m":"ldx","x":[14798],"o":"#$85"},{"a":14817,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14819,"t":"code","b":[76,34,58],"m":"jmp","oa":14882,"o":"j_3A22"},{"a":14822,"l":"b_39E6","t":"code","b":[162,132],"m":"ldx","x":[14759],"o":"#$84"},{"a":14824,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14826,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":14829,"t":"code","b":[32,161,59],"m":"jsr","oa":15265,"o":"ask_agree"},{"a":14832,"t":"code","b":[208,195],"m":"bne","oa":14773,"o":"b_39B5"},{"a":14834,"t":"code","b":[32,219,46],"m":"jsr","oa":11995,"o":"cargo_count"},{"a":14837,"t":"code","b":[208,7],"m":"bne","oa":14846,"o":"b_39FE"},{"a":14839,"t":"code","b":[162,131],"m":"ldx","o":"#$83"},{"a":14841,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14843,"t":"code","b":[76,34,58],"m":"jmp","oa":14882,"o":"j_3A22"},{"a":14846,"l":"b_39FE","t":"code","b":[32,207,46],"m":"jsr","oa":11983,"x":[14837],"o":"cargo_jettison"},{"a":14849,"t":"code","b":[162,130],"m":"ldx","o":"#$82"},{"a":14851,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":14853,"l":"j_3A05","t":"code","b":[32,250,154],"m":"jsr","oa":39674,"x":[14812],"o":"print_wrapped"},{"a":14856,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":14858,"l":"b_3A0A","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[14872],"o":"slot_in_use,y"},{"a":14861,"t":"code","b":[240,8],"m":"beq","oa":14871,"o":"b_3A17"},{"a":14863,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":14866,"t":"code","b":[240,3],"m":"beq","oa":14871,"o":"b_3A17"},{"a":14868,"t":"code","b":[32,138,26],"m":"jsr","oa":6794,"o":"free_slot"},{"a":14871,"l":"b_3A17","t":"code","b":[136],"m":"dey","x":[14861,14866]},{"a":14872,"t":"code","b":[208,240],"m":"bne","oa":14858,"o":"b_3A0A"},{"a":14874,"t":"code","b":[164,158],"m":"ldy","oa":158,"o":"model_polys"},{"a":14876,"t":"code","b":[32,138,26],"m":"jsr","oa":6794,"o":"free_slot"},{"a":14879,"t":"code","b":[32,30,49],"m":"jsr","oa":12574,"o":"clear_tac"},{"a":14882,"l":"j_3A22","t":"code","b":[32,250,154],"m":"jsr","oa":39674,"x":[14733,14747,14777,14819,14843],"o":"print_wrapped"},{"a":14885,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":14887,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":14890,"t":"code","b":[76,49,164],"m":"jmp","oa":42033,"o":"wait_key"},{"a":14893,"l":"merchant_surrender","c":"Checked after ship_ai: a badly damaged merchant offers its cargo. Only once per encounter ($0832), when the player's target is a ship of faction 1 targeting the player, with under a quarter of its type's hit points ($0AA9 word / 4), no other ship targeting it or the player. The chance is a random 0-100 ($A298, 101 outcomes) under $43, halved when the player has under a quarter of its own hit points and again when that faction is hostile to the player. Then the view shows the offer ($CF8D and a random cargo name, $2EF7 with 0-19, and \"?\") with AGREE or REFUSE ($3BA1): refused, $CF8C; agreed, $CF8B, and with room in the hold ($CF89 if full) one or two units of that cargo ($CF8A, cargo_add), every computer ship's missile and the ship leave, the standing with faction 1 may drop (one time in four), and $079A counts it when $079B is set","t":"code","b":[173,50,8],"m":"lda","oa":2098,"x":[14077],"o":"surrendered"},{"a":14896,"t":"code","b":[208,67],"m":"bne","oa":14965,"o":"r_3A75"},{"a":14898,"t":"code","b":[172,69,4],"m":"ldy","oa":1093,"o":"slot_target"},{"a":14901,"t":"code","b":[132,158],"m":"sty","oa":158,"o":"model_polys"},{"a":14903,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":14905,"t":"code","b":[176,58],"m":"bcs","oa":14965,"o":"r_3A75"},{"a":14907,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":14910,"t":"code","b":[208,53],"m":"bne","oa":14965,"o":"r_3A75"},{"a":14912,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":14915,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":14917,"t":"code","b":[208,46],"m":"bne","oa":14965,"o":"r_3A75"},{"a":14919,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":14922,"t":"code","b":[133,159],"m":"sta","oa":159,"o":"model_axes"},{"a":14924,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14925,"t":"code","b":[168],"m":"tay"},{"a":14926,"t":"code","b":[185,170,10],"m":"lda","oa":2730,"o":"type_armour_hi,y"},{"a":14929,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14930,"t":"code","b":[185,170,10],"m":"lda","oa":2730,"o":"type_armour_hi,y"},{"a":14933,"t":"code","b":[106],"m":"ror","o":"a"},{"a":14934,"t":"code","b":[133,161],"m":"sta","oa":161,"o":"zpa_A1"},{"a":14936,"t":"code","b":[185,169,10],"m":"lda","oa":2729,"o":"type_armour,y"},{"a":14939,"t":"code","b":[106],"m":"ror","o":"a"},{"a":14940,"t":"code","b":[133,160],"m":"sta","oa":160,"o":"model_reflist"},{"a":14942,"t":"code","b":[165,161],"m":"lda","oa":161,"o":"zpa_A1"},{"a":14944,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14945,"t":"code","b":[102,161],"m":"ror","oa":161,"o":"zpa_A1"},{"a":14947,"t":"code","b":[102,160],"m":"ror","oa":160,"o":"model_reflist"},{"a":14949,"t":"code","b":[165,158],"m":"lda","oa":158,"o":"model_polys"},{"a":14951,"t":"code","b":[10],"m":"asl","o":"a"},{"a":14952,"t":"code","b":[168],"m":"tay"},{"a":14953,"t":"code","b":[185,29,5],"m":"lda","oa":1309,"o":"slot_armour,y"},{"a":14956,"t":"code","b":[197,160],"m":"cmp","oa":160,"o":"model_reflist"},{"a":14958,"t":"code","b":[185,30,5],"m":"lda","oa":1310,"o":"f_051E,y"},{"a":14961,"t":"code","b":[229,161],"m":"sbc","oa":161,"o":"zpa_A1"},{"a":14963,"t":"code","b":[144,1],"m":"bcc","oa":14966,"o":"b_3A76"},{"a":14965,"l":"r_3A75","t":"code","b":[96],"m":"rts","x":[14896,14905,14910,14917,14983,15007,15082]},{"a":14966,"l":"b_3A76","t":"code","b":[160,5],"m":"ldy","x":[14963],"o":"#$05"},{"a":14968,"t":"code","b":[165,158],"m":"lda","oa":158,"o":"model_polys"},{"a":14970,"l":"b_3A7A","t":"code","b":[190,249,5],"m":"ldx","oa":1529,"x":[14986],"o":"slot_in_use,y"},{"a":14973,"t":"code","b":[240,10],"m":"beq","oa":14985,"o":"b_3A89"},{"a":14975,"t":"code","b":[217,69,4],"m":"cmp","oa":1093,"o":"slot_target,y"},{"a":14978,"t":"code","b":[208,5],"m":"bne","oa":14985,"o":"b_3A89"},{"a":14980,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":14983,"t":"code","b":[240,236],"m":"beq","oa":14965,"o":"r_3A75"},{"a":14985,"l":"b_3A89","t":"code","b":[136],"m":"dey","x":[14973,14978]},{"a":14986,"t":"code","b":[208,238],"m":"bne","oa":14970,"o":"b_3A7A"},{"a":14988,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":14990,"l":"b_3A8E","t":"code","b":[190,249,5],"m":"ldx","oa":1529,"x":[15010],"o":"slot_in_use,y"},{"a":14993,"t":"code","b":[240,14],"m":"beq","oa":15009,"o":"b_3AA1"},{"a":14995,"t":"code","b":[185,69,4],"m":"lda","oa":1093,"o":"slot_target,y"},{"a":14998,"t":"code","b":[208,9],"m":"bne","oa":15009,"o":"b_3AA1"},{"a":15000,"t":"code","b":[196,158],"m":"cpy","oa":158,"o":"model_polys"},{"a":15002,"t":"code","b":[240,5],"m":"beq","oa":15009,"o":"b_3AA1"},{"a":15004,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":15007,"t":"code","b":[240,212],"m":"beq","oa":14965,"o":"r_3A75"},{"a":15009,"l":"b_3AA1","t":"code","b":[136],"m":"dey","x":[14993,14998,15002]},{"a":15010,"t":"code","b":[208,234],"m":"bne","oa":14990,"o":"b_3A8E"},{"a":15012,"t":"code","b":[169,67],"m":"lda","o":"#$43"},{"a":15014,"t":"code","b":[133,162],"m":"sta","oa":162,"o":"model_axisidx"},{"a":15016,"t":"code","b":[173,170,10],"m":"lda","oa":2730,"o":"type_armour_hi"},{"a":15019,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15020,"t":"code","b":[173,170,10],"m":"lda","oa":2730,"o":"type_armour_hi"},{"a":15023,"t":"code","b":[106],"m":"ror","o":"a"},{"a":15024,"t":"code","b":[133,161],"m":"sta","oa":161,"o":"zpa_A1"},{"a":15026,"t":"code","b":[173,169,10],"m":"lda","oa":2729,"o":"type_armour"},{"a":15029,"t":"code","b":[106],"m":"ror","o":"a"},{"a":15030,"t":"code","b":[133,160],"m":"sta","oa":160,"o":"model_reflist"},{"a":15032,"t":"code","b":[165,161],"m":"lda","oa":161,"o":"zpa_A1"},{"a":15034,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15035,"t":"code","b":[102,161],"m":"ror","oa":161,"o":"zpa_A1"},{"a":15037,"t":"code","b":[102,160],"m":"ror","oa":160,"o":"model_reflist"},{"a":15039,"t":"code","b":[173,29,5],"m":"lda","oa":1309,"o":"slot_armour"},{"a":15042,"t":"code","b":[197,160],"m":"cmp","oa":160,"o":"model_reflist"},{"a":15044,"t":"code","b":[173,30,5],"m":"lda","oa":1310,"o":"f_051E"},{"a":15047,"t":"code","b":[229,161],"m":"sbc","oa":161,"o":"zpa_A1"},{"a":15049,"t":"code","b":[176,2],"m":"bcs","oa":15053,"o":"b_3ACD"},{"a":15051,"t":"code","b":[70,162],"m":"lsr","oa":162,"o":"model_axisidx"},{"a":15053,"l":"b_3ACD","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[15049],"o":"model_polys"},{"a":15055,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":15058,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15060,"t":"code","b":[208,2],"m":"bne","oa":15064,"o":"b_3AD8"},{"a":15062,"t":"code","b":[70,162],"m":"lsr","oa":162,"o":"model_axisidx"},{"a":15064,"l":"b_3AD8","t":"code","b":[162,4],"m":"ldx","x":[15060],"o":"#$04"},{"a":15066,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":15069,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":15071,"t":"code","b":[208,2],"m":"bne","oa":15075,"o":"b_3AE3"},{"a":15073,"t":"code","b":[70,162],"m":"lsr","oa":162,"o":"model_axisidx"},{"a":15075,"l":"b_3AE3","t":"code","b":[169,100],"m":"lda","x":[15071],"o":"#$64"},{"a":15077,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":15080,"t":"code","b":[197,162],"m":"cmp","oa":162,"o":"model_axisidx"},{"a":15082,"t":"code","b":[176,137],"m":"bcs","oa":14965,"o":"r_3A75"},{"a":15084,"t":"code","b":[238,50,8],"m":"inc","oa":2098,"o":"surrendered"},{"a":15087,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":15089,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":15092,"t":"code","b":[32,129,185],"m":"jsr","oa":47489,"o":"$B981"},{"a":15095,"t":"code","b":[32,242,186],"m":"jsr","oa":47858,"o":"$BAF2"},{"a":15098,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":15100,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":15103,"t":"code","b":[162,141],"m":"ldx","o":"#$8D"},{"a":15105,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":15107,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":15110,"t":"code","b":[169,19],"m":"lda","o":"#$13"},{"a":15112,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":15115,"t":"code","b":[133,163],"m":"sta","oa":163,"o":"zpa_A3"},{"a":15117,"t":"code","b":[32,247,46],"m":"jsr","oa":12023,"o":"print_disk_text_cf9c"},{"a":15120,"t":"code","b":[162,203],"m":"ldx","o":"#$CB"},{"a":15122,"t":"code","b":[169,59],"m":"lda","o":"#$3B"},{"a":15124,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":15127,"t":"code","b":[32,161,59],"m":"jsr","oa":15265,"o":"ask_agree"},{"a":15130,"t":"code","b":[240,10],"m":"beq","oa":15142,"o":"b_3B26"},{"a":15132,"t":"code","b":[162,140],"m":"ldx","o":"#$8C"},{"a":15134,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":15136,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":15139,"t":"code","b":[76,153,59],"m":"jmp","oa":15257,"o":"j_3B99"},{"a":15142,"l":"b_3B26","t":"code","b":[162,139],"m":"ldx","x":[15130],"o":"#$8B"},{"a":15144,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":15146,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":15149,"t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":15151,"t":"code","b":[32,23,163],"m":"jsr","oa":41751,"o":"wait_ticks"},{"a":15154,"t":"code","b":[32,219,46],"m":"jsr","oa":11995,"o":"cargo_count"},{"a":15157,"t":"code","b":[16,10],"m":"bpl","oa":15169,"o":"b_3B41"},{"a":15159,"t":"code","b":[162,137],"m":"ldx","o":"#$89"},{"a":15161,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":15163,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":15166,"t":"code","b":[76,153,59],"m":"jmp","oa":15257,"o":"j_3B99"},{"a":15169,"l":"b_3B41","t":"code","b":[162,138],"m":"ldx","x":[15157],"o":"#$8A"},{"a":15171,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":15173,"t":"code","b":[32,250,154],"m":"jsr","oa":39674,"o":"print_wrapped"},{"a":15176,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15178,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":15181,"t":"code","b":[133,160],"m":"sta","oa":160,"o":"model_reflist"},{"a":15183,"l":"b_3B4F","t":"code","b":[162,0],"m":"ldx","x":[15192],"o":"#$00"},{"a":15185,"t":"code","b":[165,163],"m":"lda","oa":163,"o":"zpa_A3"},{"a":15187,"t":"code","b":[32,163,46],"m":"jsr","oa":11939,"o":"cargo_add"},{"a":15190,"t":"code","b":[198,160],"m":"dec","oa":160,"o":"model_reflist"},{"a":15192,"t":"code","b":[16,245],"m":"bpl","oa":15183,"o":"b_3B4F"},{"a":15194,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":15196,"l":"b_3B5C","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[15210],"o":"slot_in_use,y"},{"a":15199,"t":"code","b":[240,8],"m":"beq","oa":15209,"o":"b_3B69"},{"a":15201,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":15204,"t":"code","b":[240,3],"m":"beq","oa":15209,"o":"b_3B69"},{"a":15206,"t":"code","b":[32,138,26],"m":"jsr","oa":6794,"o":"free_slot"},{"a":15209,"l":"b_3B69","t":"code","b":[136],"m":"dey","x":[15199,15204]},{"a":15210,"t":"code","b":[208,240],"m":"bne","oa":15196,"o":"b_3B5C"},{"a":15212,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":15215,"t":"code","b":[201,64],"m":"cmp","o":"#$40"},{"a":15217,"t":"code","b":[176,10],"m":"bcs","oa":15229,"o":"b_3B7D"},{"a":15219,"t":"code","b":[166,158],"m":"ldx","oa":158,"o":"model_polys"},{"a":15221,"t":"code","b":[188,51,4],"m":"ldy","oa":1075,"o":"slot_faction,x"},{"a":15224,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":15226,"t":"code","b":[32,144,60],"m":"jsr","oa":15504,"o":"change_standing"},{"a":15229,"l":"b_3B7D","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[15217],"o":"model_polys"},{"a":15231,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15233,"t":"code","b":[217,51,4],"m":"cmp","oa":1075,"o":"slot_faction,y"},{"a":15236,"t":"code","b":[208,13],"m":"bne","oa":15251,"o":"b_3B93"},{"a":15238,"t":"code","b":[173,155,7],"m":"lda","oa":1947,"o":"a_079B"},{"a":15241,"t":"code","b":[240,8],"m":"beq","oa":15251,"o":"b_3B93"},{"a":15243,"t":"code","b":[238,154,7],"m":"inc","oa":1946,"o":"kills_079A"},{"a":15246,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15248,"t":"code","b":[141,155,7],"m":"sta","oa":1947,"o":"a_079B"},{"a":15251,"l":"b_3B93","t":"code","b":[32,138,26],"m":"jsr","oa":6794,"x":[15236,15241],"o":"free_slot"},{"a":15254,"t":"code","b":[32,30,49],"m":"jsr","oa":12574,"o":"clear_tac"},{"a":15257,"l":"j_3B99","t":"code","b":[160,0],"m":"ldy","x":[15139,15166],"o":"#$00"},{"a":15259,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":15262,"t":"code","b":[76,49,164],"m":"jmp","oa":42033,"o":"wait_key"},{"a":15265,"l":"ask_agree","c":"Shows the two-item menu AGREE / REFUSE ($99DE with the list of pointers at $3BCF) centred on the message window, then prints character $11. Returns Z set for AGREE","t":"code","b":[173,33,13],"m":"lda","oa":3361,"x":[14768,14829,15127],"o":"win_right"},{"a":15268,"t":"code","b":[24],"m":"clc"},{"a":15269,"t":"code","b":[109,32,13],"m":"adc","oa":3360,"o":"win_left"},{"a":15272,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":15274,"t":"code","b":[70,79],"m":"lsr","oa":79,"o":"cursor_col"},{"a":15276,"t":"code","b":[198,79],"m":"dec","oa":79,"o":"cursor_col"},{"a":15278,"t":"code","b":[198,79],"m":"dec","oa":79,"o":"cursor_col"},{"a":15280,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15282,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":15284,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":15286,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":15288,"t":"code","b":[169,59],"m":"lda","o":"#$3B"},{"a":15290,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":15292,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":15294,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":15296,"t":"code","b":[32,222,153],"m":"jsr","oa":39390,"o":"menu"},{"a":15299,"t":"code","b":[8],"m":"php"},{"a":15300,"t":"code","b":[169,17],"m":"lda","o":"#$11"},{"a":15302,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":15305,"t":"code","b":[40],"m":"plp"},{"a":15306,"t":"code","b":[96],"m":"rts"},{"a":15307,"l":"str_quote_end","c":"The closing quote and line breaks after an offer, then the pointers to \"AGREE\" and \"REFUSE\" ($3BD3) and the words themselves","t":"byte","b":[34,13,13,0,211,59,217,59]},{"a":15315,"t":"byte","b":[65,71,82,69,69,0,82,69]},{"a":15323,"t":"byte","b":[70,85,83,69,0]},{"a":15328,"l":"ai_fight_score","c":"Whether ship X fights target Y: a score from 4 less than A, plus the ship's hit points in eighths of its type's maximum, plus half the difference of the two types' rank values ($0C79), plus one when the factions are hostile, plus two when the target already has a given target ($0439), minus two when the ship has one, minus one for faction 1, plus two for faction 2, and exactly 2 for faction 3. Returns it in A: negative means flee. A target past slot 5 always gives 1","t":"code","b":[134,142],"m":"stx","oa":142,"x":[14151],"o":"tmp8E"},{"a":15330,"t":"code","b":[132,144],"m":"sty","oa":144,"o":"tmp90"},{"a":15332,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":15334,"t":"code","b":[144,3],"m":"bcc","oa":15339,"o":"b_3BEB"},{"a":15336,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":15338,"t":"code","b":[96],"m":"rts"},{"a":15339,"l":"b_3BEB","t":"code","b":[56],"m":"sec","x":[15334]},{"a":15340,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":15342,"t":"code","b":[133,145],"m":"sta","oa":145,"o":"tmp91"},{"a":15344,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":15347,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"tmp8F"},{"a":15349,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15350,"t":"code","b":[168],"m":"tay"},{"a":15351,"t":"code","b":[185,170,10],"m":"lda","oa":2730,"o":"type_armour_hi,y"},{"a":15354,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15355,"t":"code","b":[185,170,10],"m":"lda","oa":2730,"o":"type_armour_hi,y"},{"a":15358,"t":"code","b":[106],"m":"ror","o":"a"},{"a":15359,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":15361,"t":"code","b":[185,169,10],"m":"lda","oa":2729,"o":"type_armour,y"},{"a":15364,"t":"code","b":[106],"m":"ror","o":"a"},{"a":15365,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":15367,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":15369,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15370,"t":"code","b":[102,141],"m":"ror","oa":141,"o":"tmp8D"},{"a":15372,"t":"code","b":[102,140],"m":"ror","oa":140,"o":"tmp8C"},{"a":15374,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":15376,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15377,"t":"code","b":[102,141],"m":"ror","oa":141,"o":"tmp8D"},{"a":15379,"t":"code","b":[102,140],"m":"ror","oa":140,"o":"tmp8C"},{"a":15381,"t":"code","b":[138],"m":"txa"},{"a":15382,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15383,"t":"code","b":[168],"m":"tay"},{"a":15384,"t":"code","b":[185,29,5],"m":"lda","oa":1309,"o":"slot_armour,y"},{"a":15387,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":15389,"t":"code","b":[185,30,5],"m":"lda","oa":1310,"o":"f_051E,y"},{"a":15392,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":15394,"l":"b_3C22","t":"code","b":[230,145],"m":"inc","oa":145,"x":[15409],"o":"tmp91"},{"a":15396,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":15398,"t":"code","b":[56],"m":"sec"},{"a":15399,"t":"code","b":[229,140],"m":"sbc","oa":140,"o":"tmp8C"},{"a":15401,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":15403,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":15405,"t":"code","b":[229,141],"m":"sbc","oa":141,"o":"tmp8D"},{"a":15407,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":15409,"t":"code","b":[16,239],"m":"bpl","oa":15394,"o":"b_3C22"},{"a":15411,"t":"code","b":[164,144],"m":"ldy","oa":144,"o":"tmp90"},{"a":15413,"t":"code","b":[166,143],"m":"ldx","oa":143,"o":"tmp8F"},{"a":15415,"t":"code","b":[189,121,12],"m":"lda","oa":3193,"o":"type_rank,x"},{"a":15418,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":15421,"t":"code","b":[56],"m":"sec"},{"a":15422,"t":"code","b":[253,121,12],"m":"sbc","oa":3193,"o":"type_rank,x"},{"a":15425,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":15427,"t":"code","b":[6,138],"m":"asl","oa":138,"o":"tmp8A"},{"a":15429,"t":"code","b":[106],"m":"ror","o":"a"},{"a":15430,"t":"code","b":[24],"m":"clc"},{"a":15431,"t":"code","b":[101,145],"m":"adc","oa":145,"o":"tmp91"},{"a":15433,"t":"code","b":[133,145],"m":"sta","oa":145,"o":"tmp91"},{"a":15435,"t":"code","b":[164,144],"m":"ldy","oa":144,"o":"tmp90"},{"a":15437,"t":"code","b":[190,51,4],"m":"ldx","oa":1075,"o":"slot_faction,y"},{"a":15440,"t":"code","b":[164,142],"m":"ldy","oa":142,"o":"tmp8E"},{"a":15442,"t":"code","b":[185,51,4],"m":"lda","oa":1075,"o":"slot_faction,y"},{"a":15445,"t":"code","b":[32,126,56],"m":"jsr","oa":14462,"o":"faction_attitude"},{"a":15448,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":15450,"t":"code","b":[208,2],"m":"bne","oa":15454,"o":"b_3C5E"},{"a":15452,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"tmp91"},{"a":15454,"l":"b_3C5E","t":"code","b":[164,144],"m":"ldy","oa":144,"x":[15450],"o":"tmp90"},{"a":15456,"t":"code","b":[185,57,4],"m":"lda","oa":1081,"o":"slot_attacker,y"},{"a":15459,"t":"code","b":[48,4],"m":"bmi","oa":15465,"o":"b_3C69"},{"a":15461,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"tmp91"},{"a":15463,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"tmp91"},{"a":15465,"l":"b_3C69","t":"code","b":[164,142],"m":"ldy","oa":142,"x":[15459],"o":"tmp8E"},{"a":15467,"t":"code","b":[185,57,4],"m":"lda","oa":1081,"o":"slot_attacker,y"},{"a":15470,"t":"code","b":[48,4],"m":"bmi","oa":15476,"o":"b_3C74"},{"a":15472,"t":"code","b":[198,145],"m":"dec","oa":145,"o":"tmp91"},{"a":15474,"t":"code","b":[198,145],"m":"dec","oa":145,"o":"tmp91"},{"a":15476,"l":"b_3C74","t":"code","b":[185,51,4],"m":"lda","oa":1075,"x":[15470],"o":"slot_faction,y"},{"a":15479,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15481,"t":"code","b":[208,2],"m":"bne","oa":15485,"o":"b_3C7D"},{"a":15483,"t":"code","b":[198,145],"m":"dec","oa":145,"o":"tmp91"},{"a":15485,"l":"b_3C7D","t":"code","b":[201,2],"m":"cmp","x":[15481],"o":"#$02"},{"a":15487,"t":"code","b":[208,4],"m":"bne","oa":15493,"o":"b_3C85"},{"a":15489,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"tmp91"},{"a":15491,"t":"code","b":[230,145],"m":"inc","oa":145,"o":"tmp91"},{"a":15493,"l":"b_3C85","t":"code","b":[201,3],"m":"cmp","x":[15487],"o":"#$03"},{"a":15495,"t":"code","b":[208,4],"m":"bne","oa":15501,"o":"b_3C8D"},{"a":15497,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":15499,"t":"code","b":[133,145],"m":"sta","oa":145,"o":"tmp91"},{"a":15501,"l":"b_3C8D","t":"code","b":[165,145],"m":"lda","oa":145,"x":[15495],"o":"tmp91"},{"a":15503,"t":"code","b":[96],"m":"rts"},{"a":15504,"l":"change_standing","c":"Changes the player's standing with faction Y by A, between -2 and 2; a negative faction or faction 3 is left alone","t":"code","b":[133,128],"m":"sta","oa":128,"x":[6998,7015,15226],"o":"tmp80"},{"a":15506,"t":"code","b":[152],"m":"tya"},{"a":15507,"t":"code","b":[48,21],"m":"bmi","oa":15530,"o":"r_3CAA"},{"a":15509,"t":"code","b":[192,3],"m":"cpy","o":"#$03"},{"a":15511,"t":"code","b":[240,17],"m":"beq","oa":15530,"o":"r_3CAA"},{"a":15513,"t":"code","b":[185,46,7],"m":"lda","oa":1838,"o":"standings,y"},{"a":15516,"t":"code","b":[24],"m":"clc"},{"a":15517,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":15519,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":15521,"t":"code","b":[144,4],"m":"bcc","oa":15527,"o":"b_3CA7"},{"a":15523,"t":"code","b":[201,254],"m":"cmp","o":"#$FE"},{"a":15525,"t":"code","b":[144,3],"m":"bcc","oa":15530,"o":"r_3CAA"},{"a":15527,"l":"b_3CA7","t":"code","b":[153,46,7],"m":"sta","oa":1838,"x":[15521],"o":"standings,y"},{"a":15530,"l":"r_3CAA","t":"code","b":[96],"m":"rts","x":[15507,15511,15525]},{"a":15531,"l":"ai_steer","c":"Steers a computer ship once it has stopped rotating: by its tactic's steering mode ($0C86): negative none, 3 random rates ($3CDC), 2 turn to the target's heading (its forward vector, $045D+27*slot, or $0DBA past slot 6), 0 turn toward the target, 1 turn away from it","t":"code","b":[166,213],"m":"ldx","oa":213,"x":[14065],"o":"ai_slot"},{"a":15533,"t":"code","b":[189,8,5],"m":"lda","oa":1288,"o":"slot_pitch,x"},{"a":15536,"t":"code","b":[29,22,5],"m":"ora","oa":1302,"o":"slot_turn,x"},{"a":15539,"t":"code","b":[29,15,5],"m":"ora","oa":1295,"o":"slot_roll,x"},{"a":15542,"t":"code","b":[208,54],"m":"bne","oa":15598,"o":"r_3CEE"},{"a":15544,"t":"code","b":[188,63,4],"m":"ldy","oa":1087,"o":"slot_tactic,x"},{"a":15547,"t":"code","b":[48,49],"m":"bmi","oa":15598,"o":"r_3CEE"},{"a":15549,"t":"code","b":[189,69,4],"m":"lda","oa":1093,"o":"slot_target,x"},{"a":15552,"t":"code","b":[133,158],"m":"sta","oa":158,"o":"model_polys"},{"a":15554,"t":"code","b":[185,134,12],"m":"lda","oa":3206,"o":"tactic_steer,y"},{"a":15557,"t":"code","b":[48,39],"m":"bmi","oa":15598,"o":"r_3CEE"},{"a":15559,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":15561,"t":"code","b":[240,17],"m":"beq","oa":15580,"o":"random_rates"},{"a":15563,"t":"code","b":[188,69,4],"m":"ldy","oa":1093,"o":"slot_target,x"},{"a":15566,"t":"code","b":[48,30],"m":"bmi","oa":15598,"o":"r_3CEE"},{"a":15568,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":15570,"t":"code","b":[240,90],"m":"beq","oa":15662,"o":"b_3D2E"},{"a":15572,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":15574,"t":"code","b":[240,80],"m":"beq","oa":15656,"o":"b_3D28"},{"a":15576,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":15578,"t":"code","b":[240,19],"m":"beq","oa":15599,"o":"b_3CEF"},{"a":15580,"l":"random_rates","c":"Gives ship X random turn, pitch and roll rates, each -32 to 32 ($3D61)","t":"code","b":[32,97,61],"m":"jsr","oa":15713,"x":[14132,15561,28424],"o":"random_rate"},{"a":15583,"t":"code","b":[157,22,5],"m":"sta","oa":1302,"o":"slot_turn,x"},{"a":15586,"t":"code","b":[32,97,61],"m":"jsr","oa":15713,"o":"random_rate"},{"a":15589,"t":"code","b":[157,8,5],"m":"sta","oa":1288,"o":"slot_pitch,x"},{"a":15592,"t":"code","b":[32,97,61],"m":"jsr","oa":15713,"o":"random_rate"},{"a":15595,"t":"code","b":[157,15,5],"m":"sta","oa":1295,"o":"slot_roll,x"},{"a":15598,"l":"r_3CEE","t":"code","b":[96],"m":"rts","x":[15542,15547,15557,15566]},{"a":15599,"l":"b_3CEF","t":"code","b":[169,150],"m":"lda","x":[15578],"o":"#$96"},{"a":15601,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":15603,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15605,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":15607,"t":"code","b":[164,158],"m":"ldy","oa":158,"o":"model_polys"},{"a":15609,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":15611,"t":"code","b":[176,17],"m":"bcs","oa":15630,"o":"b_3D0E"},{"a":15613,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":15615,"t":"code","b":[24],"m":"clc"},{"a":15616,"t":"code","b":[121,60,8],"m":"adc","oa":2108,"o":"orient_offsets,y"},{"a":15619,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":15621,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15623,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":15625,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":15627,"t":"code","b":[76,22,61],"m":"jmp","oa":15638,"o":"j_3D16"},{"a":15630,"l":"b_3D0E","t":"code","b":[169,186],"m":"lda","x":[15611],"o":"#$BA"},{"a":15632,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":15634,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":15636,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":15638,"l":"j_3D16","t":"code","b":[169,0],"m":"lda","x":[15627],"o":"#$00"},{"a":15640,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":15642,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15644,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":15646,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":15648,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":15650,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":15653,"t":"code","b":[76,78,61],"m":"jmp","oa":15694,"o":"j_3D4E"},{"a":15656,"l":"b_3D28","t":"code","b":[164,213],"m":"ldy","oa":213,"x":[15574],"o":"ai_slot"},{"a":15658,"t":"code","b":[166,158],"m":"ldx","oa":158,"o":"model_polys"},{"a":15660,"t":"code","b":[16,4],"m":"bpl","oa":15666,"o":"b_3D32"},{"a":15662,"l":"b_3D2E","t":"code","b":[164,158],"m":"ldy","oa":158,"x":[15570],"o":"model_polys"},{"a":15664,"t":"code","b":[166,213],"m":"ldx","oa":213,"o":"ai_slot"},{"a":15666,"l":"b_3D32","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[15660],"o":"slot_pos_ptr"},{"a":15669,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":15671,"t":"code","b":[24],"m":"clc"},{"a":15672,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":15675,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":15677,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":15679,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":15681,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":15683,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":15685,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":15687,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15689,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":15691,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":15694,"l":"j_3D4E","t":"code","b":[169,150],"m":"lda","x":[15653],"o":"#$96"},{"a":15696,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":15698,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15700,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":15702,"t":"code","b":[166,213],"m":"ldx","oa":213,"o":"ai_slot"},{"a":15704,"t":"code","b":[188,63,4],"m":"ldy","oa":1087,"o":"slot_tactic,x"},{"a":15707,"t":"code","b":[185,144,12],"m":"lda","oa":3216,"o":"tactic_angle,y"},{"a":15710,"t":"code","b":[76,105,61],"m":"jmp","oa":15721,"o":"steer_toward"},{"a":15713,"l":"random_rate","c":"A random rate from -32 to 32: the random byte's low six bits less $1F, less one more when random's carry is clear","t":"code","b":[32,197,162],"m":"jsr","oa":41669,"x":[15580,15586,15592],"o":"random"},{"a":15716,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":15718,"t":"code","b":[233,31],"m":"sbc","o":"#$1F"},{"a":15720,"t":"code","b":[96],"m":"rts"},{"a":15721,"l":"steer_toward","c":"Turns ship X toward the direction at ($74): rotates it into the ship's frame ($9160 with the ship's orientation), finds its two angles in 1024ths of a turn ($983B into $6F-$73), takes the tactic's offset (A, from $0C90) off the size of the first, so that the ship settles with the target that far to one side, and divides each angle by the type's turning step (its log less $0BE2's), clamped to a signed byte ($B447, $B5C5, $B771): the steps for the turn rate ($0516) and, its sign turned, the pitch rate ($0508)","t":"code","b":[133,150],"m":"sta","oa":150,"x":[15710],"o":"tmp96"},{"a":15723,"t":"code","b":[134,149],"m":"stx","oa":149,"o":"tmp95"},{"a":15725,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":15728,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15729,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":15731,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":15733,"t":"code","b":[24],"m":"clc"},{"a":15734,"t":"code","b":[125,60,8],"m":"adc","oa":2108,"o":"orient_offsets,x"},{"a":15737,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":15739,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":15741,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":15743,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":15745,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":15747,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":15749,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15751,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":15753,"t":"code","b":[32,96,145],"m":"jsr","oa":37216,"o":"mat_times_vec"},{"a":15756,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":15758,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":15760,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":15762,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":15764,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":15766,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":15768,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15770,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":15772,"t":"code","b":[32,59,152],"m":"jsr","oa":38971,"o":"vec_angles"},{"a":15775,"t":"code","b":[165,112],"m":"lda","oa":112,"o":"zpa_70"},{"a":15777,"t":"code","b":[16,16],"m":"bpl","oa":15795,"o":"b_3DB3"},{"a":15779,"t":"code","b":[165,111],"m":"lda","oa":111,"o":"zpa_6F"},{"a":15781,"t":"code","b":[24],"m":"clc"},{"a":15782,"t":"code","b":[101,150],"m":"adc","oa":150,"o":"tmp96"},{"a":15784,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":15786,"t":"code","b":[165,112],"m":"lda","oa":112,"o":"zpa_70"},{"a":15788,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":15790,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":15792,"t":"code","b":[76,192,61],"m":"jmp","oa":15808,"o":"j_3DC0"},{"a":15795,"l":"b_3DB3","t":"code","b":[165,111],"m":"lda","oa":111,"x":[15777],"o":"zpa_6F"},{"a":15797,"t":"code","b":[56],"m":"sec"},{"a":15798,"t":"code","b":[229,150],"m":"sbc","oa":150,"o":"tmp96"},{"a":15800,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":15802,"t":"code","b":[165,112],"m":"lda","oa":112,"o":"zpa_70"},{"a":15804,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":15806,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":15808,"l":"j_3DC0","t":"code","b":[32,71,180],"m":"jsr","oa":46151,"x":[15792],"o":"$B447"},{"a":15811,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":15813,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":15815,"t":"code","b":[56],"m":"sec"},{"a":15816,"t":"code","b":[249,226,11],"m":"sbc","oa":3042,"o":"type_turn,y"},{"a":15819,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":15821,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":15823,"t":"code","b":[249,227,11],"m":"sbc","oa":3043,"o":"f_0BE3,y"},{"a":15826,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":15828,"t":"code","b":[32,197,181],"m":"jsr","oa":46533,"o":"$B5C5"},{"a":15831,"t":"code","b":[32,113,183],"m":"jsr","oa":46961,"o":"$B771"},{"a":15834,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":15836,"t":"code","b":[153,22,5],"m":"sta","oa":1302,"o":"slot_turn,y"},{"a":15839,"t":"code","b":[165,114],"m":"lda","oa":114,"o":"zpa_72"},{"a":15841,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":15843,"t":"code","b":[165,115],"m":"lda","oa":115,"o":"zpa_73"},{"a":15845,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":15847,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":15850,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":15852,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":15854,"t":"code","b":[56],"m":"sec"},{"a":15855,"t":"code","b":[249,226,11],"m":"sbc","oa":3042,"o":"type_turn,y"},{"a":15858,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":15860,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":15862,"t":"code","b":[249,227,11],"m":"sbc","oa":3043,"o":"f_0BE3,y"},{"a":15865,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":15867,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":15869,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":15871,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":15873,"t":"code","b":[32,197,181],"m":"jsr","oa":46533,"o":"$B5C5"},{"a":15876,"t":"code","b":[32,113,183],"m":"jsr","oa":46961,"o":"$B771"},{"a":15879,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":15881,"t":"code","b":[153,8,5],"m":"sta","oa":1288,"o":"slot_pitch,y"},{"a":15884,"t":"code","b":[96],"m":"rts"},{"a":15885,"l":"random_label","c":"Makes a ship's three-character label in $85-$87 ($3E1D each)","t":"code","b":[32,29,62],"m":"jsr","oa":15901,"x":[6708],"o":"random_label_char"},{"a":15888,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":15890,"t":"code","b":[32,29,62],"m":"jsr","oa":15901,"o":"random_label_char"},{"a":15893,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":15895,"t":"code","b":[32,29,62],"m":"jsr","oa":15901,"o":"random_label_char"},{"a":15898,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":15900,"t":"code","b":[96],"m":"rts"},{"a":15901,"l":"random_label_char","c":"A random digit 0-9 or capital letter A-Z","t":"code","b":[169,35],"m":"lda","x":[15885,15890,15895],"o":"#$23"},{"a":15903,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":15906,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":15908,"t":"code","b":[176,3],"m":"bcs","oa":15913,"o":"b_3E29"},{"a":15910,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":15912,"t":"code","b":[96],"m":"rts"},{"a":15913,"l":"b_3E29","t":"code","b":[105,54],"m":"adc","x":[15908],"o":"#$36"},{"a":15915,"t":"code","b":[96],"m":"rts"},{"a":15916,"l":"build_draw_list","c":"The 3D view's draw list, from $A488 each frame: clears every slot's on-screen flag ($0621), tests every object in use against the view ($3EB8 with the type's radius from $0A63), keeping up to 14 in view; then draws them from the farthest to the nearest: each time the remaining entry with the greatest depth ($0D7E/$0D70) is drawn ($6400 with carry set, then $7033) and taken off the list","t":"code","b":[160,19],"m":"ldy","x":[42123],"o":"#$13"},{"a":15918,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15920,"l":"b_3E30","t":"code","b":[153,33,6],"m":"sta","oa":1569,"x":[15924],"o":"slot_onscreen,y"},{"a":15923,"t":"code","b":[136],"m":"dey"},{"a":15924,"t":"code","b":[16,250],"m":"bpl","oa":15920,"o":"b_3E30"},{"a":15926,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15928,"t":"code","b":[141,61,13],"m":"sta","oa":3389,"o":"draw_list"},{"a":15931,"t":"code","b":[169,19],"m":"lda","o":"#$13"},{"a":15933,"t":"code","b":[133,92],"m":"sta","oa":92,"o":"drawn_slot"},{"a":15935,"l":"b_3E3F","t":"code","b":[164,92],"m":"ldy","oa":92,"x":[15979],"o":"drawn_slot"},{"a":15937,"t":"code","b":[185,73,6],"m":"lda","oa":1609,"o":"slot_drawn,y"},{"a":15940,"t":"code","b":[240,35],"m":"beq","oa":15977,"o":"b_3E69"},{"a":15942,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":15945,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":15948,"t":"code","b":[10],"m":"asl","o":"a"},{"a":15949,"t":"code","b":[170],"m":"tax"},{"a":15950,"t":"code","b":[189,99,10],"m":"lda","oa":2659,"o":"type_scale,x"},{"a":15953,"t":"code","b":[141,62,13],"m":"sta","oa":3390,"o":"view_front"},{"a":15956,"t":"code","b":[189,100,10],"m":"lda","oa":2660,"o":"type_scale_whole,x"},{"a":15959,"t":"code","b":[141,63,13],"m":"sta","oa":3391,"o":"a_0D3F"},{"a":15962,"t":"code","b":[32,184,62],"m":"jsr","oa":16056,"o":"in_view"},{"a":15965,"t":"code","b":[144,10],"m":"bcc","oa":15977,"o":"b_3E69"},{"a":15967,"t":"code","b":[238,61,13],"m":"inc","oa":3389,"o":"draw_list"},{"a":15970,"t":"code","b":[173,61,13],"m":"lda","oa":3389,"o":"draw_list"},{"a":15973,"t":"code","b":[201,14],"m":"cmp","o":"#$0E"},{"a":15975,"t":"code","b":[240,4],"m":"beq","oa":15981,"o":"b_3E6D"},{"a":15977,"l":"b_3E69","t":"code","b":[198,92],"m":"dec","oa":92,"x":[15940,15965],"o":"drawn_slot"},{"a":15979,"t":"code","b":[16,210],"m":"bpl","oa":15935,"o":"b_3E3F"},{"a":15981,"l":"b_3E6D","t":"code","b":[174,61,13],"m":"ldx","oa":3389,"x":[15975],"o":"draw_list"},{"a":15984,"t":"code","b":[202],"m":"dex"},{"a":15985,"t":"code","b":[48,67],"m":"bmi","oa":16054,"o":"r_3EB6"},{"a":15987,"t":"code","b":[142,183,62],"m":"stx","oa":16055,"o":"draw_list_count"},{"a":15990,"t":"code","b":[142,130,62],"m":"stx","oa":16002,"o":"a_3E82"},{"a":15993,"l":"b_3E79","t":"code","b":[169,0],"m":"lda","x":[16052],"o":"#$00"},{"a":15995,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":15997,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":15999,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":16001,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":16002,"t":"note","l":"a_3E82","c":"The operand of LDX #: build_draw_list writes the number of entries less one here, the index the search for the farthest entry starts from","note":"inside the item at $3E81","x":[15990]},{"a":16003,"l":"b_3E83","t":"code","b":[188,126,13],"m":"ldy","oa":3454,"x":[16032],"o":"draw_depth_hi,x"},{"a":16006,"t":"code","b":[48,23],"m":"bmi","oa":16031,"o":"b_3E9F"},{"a":16008,"t":"code","b":[196,129],"m":"cpy","oa":129,"o":"tmp81"},{"a":16010,"t":"code","b":[144,19],"m":"bcc","oa":16031,"o":"b_3E9F"},{"a":16012,"t":"code","b":[208,7],"m":"bne","oa":16021,"o":"b_3E95"},{"a":16014,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":16016,"t":"code","b":[221,112,13],"m":"cmp","oa":3440,"o":"draw_depth_lo,x"},{"a":16019,"t":"code","b":[176,10],"m":"bcs","oa":16031,"o":"b_3E9F"},{"a":16021,"l":"b_3E95","t":"code","b":[189,112,13],"m":"lda","oa":3440,"x":[16012],"o":"draw_depth_lo,x"},{"a":16024,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":16026,"t":"code","b":[132,129],"m":"sty","oa":129,"o":"tmp81"},{"a":16028,"t":"code","b":[142,61,13],"m":"stx","oa":3389,"o":"draw_list"},{"a":16031,"l":"b_3E9F","t":"code","b":[202],"m":"dex","x":[16006,16010,16019]},{"a":16032,"t":"code","b":[16,225],"m":"bpl","oa":16003,"o":"b_3E83"},{"a":16034,"t":"code","b":[56],"m":"sec"},{"a":16035,"t":"code","b":[32,0,100],"m":"jsr","oa":25600,"o":"draw_object"},{"a":16038,"t":"code","b":[32,51,112],"m":"jsr","oa":28723,"o":"dock_check"},{"a":16041,"t":"code","b":[174,61,13],"m":"ldx","oa":3389,"o":"draw_list"},{"a":16044,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":16046,"t":"code","b":[157,126,13],"m":"sta","oa":3454,"o":"draw_depth_hi,x"},{"a":16049,"t":"code","b":[206,183,62],"m":"dec","oa":16055,"o":"draw_list_count"},{"a":16052,"t":"code","b":[16,195],"m":"bpl","oa":15993,"o":"b_3E79"},{"a":16054,"l":"r_3EB6","t":"code","b":[96],"m":"rts","x":[15985]},{"a":16055,"l":"draw_list_count","c":"build_draw_list's count of entries still to draw","t":"byte","b":[255],"x":[15987,16049]},{"a":16056,"l":"in_view","c":"Whether the object at ($58) relative to the viewer ($5A) is in the view: its distance along the view axis must be within its radius of the front ($94E7, $0D3E), and its sideways and vertical distances inside the view's slopes ($B398 with $0D6A-$0D6F and $0D68-$0D69). The three view coordinates go to $FF05-$FF0D + 9*entry. In view: depth to $0D7E/$0D70, the slot to $0D9A, on-screen flag $0621 set, and the size from $66AF to $0D8C; a far, small object (size under $0B) is drawn at once ($6400) and the carry comes back clear. Carry set when it is to be drawn later","t":"code","b":[169,159],"m":"lda","x":[15962],"o":"#$9F"},{"a":16058,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":16060,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":16062,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":16064,"t":"code","b":[165,88],"m":"lda","oa":88,"o":"camera_pos_ptr"},{"a":16066,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":16068,"t":"code","b":[165,89],"m":"lda","oa":89,"o":"zpa_59"},{"a":16070,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":16072,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":16075,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"camera_orient_ptr"},{"a":16077,"t":"code","b":[24],"m":"clc"},{"a":16078,"t":"code","b":[105,18],"m":"adc","o":"#$12"},{"a":16080,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":16082,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":16084,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":16086,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":16088,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":16090,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":16092,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":16094,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":16096,"t":"code","b":[32,231,148],"m":"jsr","oa":38119,"o":"vec_dot"},{"a":16099,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":16101,"t":"code","b":[48,12],"m":"bmi","oa":16115,"o":"b_3EF3"},{"a":16103,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16105,"t":"code","b":[205,62,13],"m":"cmp","oa":3390,"o":"view_front"},{"a":16108,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16110,"t":"code","b":[237,63,13],"m":"sbc","oa":3391,"o":"a_0D3F"},{"a":16113,"t":"code","b":[16,82],"m":"bpl","oa":16197,"o":"b_3F45"},{"a":16115,"l":"b_3EF3","t":"code","b":[174,61,13],"m":"ldx","oa":3389,"x":[16101],"o":"draw_list"},{"a":16118,"t":"code","b":[188,70,8],"m":"ldy","oa":2118,"o":"pos_offsets,x"},{"a":16121,"t":"code","b":[132,148],"m":"sty","oa":148,"o":"tmp94"},{"a":16123,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16125,"t":"code","b":[153,11,255],"m":"sta","oa":65291,"o":"f_FF0B,y"},{"a":16128,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16130,"t":"code","b":[153,12,255],"m":"sta","oa":65292,"o":"f_FF0C,y"},{"a":16133,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":16135,"t":"code","b":[153,13,255],"m":"sta","oa":65293,"o":"f_FF0D,y"},{"a":16138,"t":"code","b":[173,62,13],"m":"lda","oa":3390,"o":"view_front"},{"a":16141,"t":"code","b":[24],"m":"clc"},{"a":16142,"t":"code","b":[109,110,13],"m":"adc","oa":3438,"o":"proj_vedge"},{"a":16145,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":16147,"t":"code","b":[173,63,13],"m":"lda","oa":3391,"o":"a_0D3F"},{"a":16150,"t":"code","b":[109,111,13],"m":"adc","oa":3439,"o":"a_0D6F"},{"a":16153,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":16155,"t":"code","b":[32,152,179],"m":"jsr","oa":45976,"o":"$B398"},{"a":16158,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16160,"t":"code","b":[56],"m":"sec"},{"a":16161,"t":"code","b":[237,106,13],"m":"sbc","oa":3434,"o":"proj_vslope"},{"a":16164,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":16166,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16168,"t":"code","b":[237,107,13],"m":"sbc","oa":3435,"o":"a_0D6B"},{"a":16171,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":16173,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":16175,"t":"code","b":[56],"m":"sec"},{"a":16176,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":16178,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":16180,"t":"code","b":[176,2],"m":"bcs","oa":16184,"o":"b_3F38"},{"a":16182,"t":"code","b":[198,117],"m":"dec","oa":117,"o":"zpa_75"},{"a":16184,"l":"b_3F38","t":"code","b":[32,231,148],"m":"jsr","oa":38119,"x":[16180],"o":"vec_dot"},{"a":16187,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16189,"t":"code","b":[197,101],"m":"cmp","oa":101,"o":"axpy_s"},{"a":16191,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16193,"t":"code","b":[229,102],"m":"sbc","oa":102,"o":"zpa_66"},{"a":16195,"t":"code","b":[48,2],"m":"bmi","oa":16199,"o":"b_3F47"},{"a":16197,"l":"b_3F45","t":"code","b":[24],"m":"clc","x":[16113,16285,16323]},{"a":16198,"t":"code","b":[96],"m":"rts"},{"a":16199,"l":"b_3F47","t":"code","b":[164,148],"m":"ldy","oa":148,"x":[16195],"o":"tmp94"},{"a":16201,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16203,"t":"code","b":[153,8,255],"m":"sta","oa":65288,"o":"f_FF08,y"},{"a":16206,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16208,"t":"code","b":[153,9,255],"m":"sta","oa":65289,"o":"f_FF09,y"},{"a":16211,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":16213,"t":"code","b":[153,10,255],"m":"sta","oa":65290,"o":"f_FF0A,y"},{"a":16216,"t":"code","b":[185,11,255],"m":"lda","oa":65291,"o":"f_FF0B,y"},{"a":16219,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":16221,"t":"code","b":[185,12,255],"m":"lda","oa":65292,"o":"f_FF0C,y"},{"a":16224,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":16226,"t":"code","b":[185,13,255],"m":"lda","oa":65293,"o":"f_FF0D,y"},{"a":16229,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":16231,"t":"code","b":[173,62,13],"m":"lda","oa":3390,"o":"view_front"},{"a":16234,"t":"code","b":[24],"m":"clc"},{"a":16235,"t":"code","b":[109,108,13],"m":"adc","oa":3436,"o":"proj_hedge"},{"a":16238,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":16240,"t":"code","b":[173,63,13],"m":"lda","oa":3391,"o":"a_0D3F"},{"a":16243,"t":"code","b":[109,109,13],"m":"adc","oa":3437,"o":"a_0D6D"},{"a":16246,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":16248,"t":"code","b":[32,152,179],"m":"jsr","oa":45976,"o":"$B398"},{"a":16251,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16253,"t":"code","b":[56],"m":"sec"},{"a":16254,"t":"code","b":[237,104,13],"m":"sbc","oa":3432,"o":"proj_zoom"},{"a":16257,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":16259,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16261,"t":"code","b":[237,105,13],"m":"sbc","oa":3433,"o":"a_0D69"},{"a":16264,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":16266,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"camera_orient_ptr"},{"a":16268,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":16270,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":16272,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":16274,"t":"code","b":[32,231,148],"m":"jsr","oa":38119,"o":"vec_dot"},{"a":16277,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16279,"t":"code","b":[197,101],"m":"cmp","oa":101,"o":"axpy_s"},{"a":16281,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16283,"t":"code","b":[229,102],"m":"sbc","oa":102,"o":"zpa_66"},{"a":16285,"t":"code","b":[16,166],"m":"bpl","oa":16197,"o":"b_3F45"},{"a":16287,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":16289,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16291,"t":"code","b":[153,5,255],"m":"sta","oa":65285,"o":"f_FF05,y"},{"a":16294,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16296,"t":"code","b":[153,6,255],"m":"sta","oa":65286,"o":"f_FF06,y"},{"a":16299,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":16301,"t":"code","b":[153,7,255],"m":"sta","oa":65287,"o":"f_FF07,y"},{"a":16304,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":16306,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":16308,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":16310,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":16312,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":16315,"t":"code","b":[174,61,13],"m":"ldx","oa":3389,"o":"draw_list"},{"a":16318,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16320,"t":"code","b":[157,126,13],"m":"sta","oa":3454,"o":"draw_depth_hi,x"},{"a":16323,"t":"code","b":[48,128],"m":"bmi","oa":16197,"o":"b_3F45"},{"a":16325,"t":"code","b":[164,92],"m":"ldy","oa":92,"o":"drawn_slot"},{"a":16327,"t":"code","b":[153,33,6],"m":"sta","oa":1569,"o":"slot_onscreen,y"},{"a":16330,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16332,"t":"code","b":[157,112,13],"m":"sta","oa":3440,"o":"draw_depth_lo,x"},{"a":16335,"t":"code","b":[152],"m":"tya"},{"a":16336,"t":"code","b":[157,154,13],"m":"sta","oa":3482,"o":"draw_slot,x"},{"a":16339,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":16341,"t":"code","b":[56],"m":"sec"},{"a":16342,"t":"code","b":[237,62,13],"m":"sbc","oa":3390,"o":"view_front"},{"a":16345,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":16347,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":16349,"t":"code","b":[237,63,13],"m":"sbc","oa":3391,"o":"a_0D3F"},{"a":16352,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":16354,"t":"code","b":[32,175,102],"m":"jsr","oa":26287,"o":"screen_size"},{"a":16357,"t":"code","b":[172,61,13],"m":"ldy","oa":3389,"o":"draw_list"},{"a":16360,"t":"code","b":[153,140,13],"m":"sta","oa":3468,"o":"draw_size,y"},{"a":16363,"t":"code","b":[201,11],"m":"cmp","o":"#$0B"},{"a":16365,"t":"code","b":[176,4],"m":"bcs","oa":16371,"o":"r_3FF3"},{"a":16367,"t":"code","b":[32,0,100],"m":"jsr","oa":25600,"o":"draw_object"},{"a":16370,"t":"code","b":[24],"m":"clc"},{"a":16371,"l":"r_3FF3","t":"code","b":[96],"m":"rts","x":[16365]},{"a":16372,"l":"sr_end_zeros","c":"The last 12 bytes of SR, zeros that nothing reads","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":16380,"t":"byte","b":[0,0,0,0]},{"a":16384,"t":"gap","n":9216,"x":[34577]},{"a":25600,"l":"draw_object","c":"Draws draw-list entry $0D3D (its slot from $0D9A to $5C, type to $5D). With the carry set and a slot below 7 (an object with an orientation): the position relative to the camera ($58) rotated into the object's frame ($92CC, $9160, $934B) into $0D5B, and the object's orientation times the camera's ($5A) into $0D40 ($91B0). Otherwise the plain linear difference into $0D5B and the orientation at $0DCC. Then ($74) = the entry's view coordinates at $FF05, ($76) = the type's draw-data word ($0999), $5F/$60 = its scale ($0A63), $4D = its screen size ($0D8C), and the type's draw routine ($08F8) is entered through ($94). A far, small 3D object (carry clear, type flag bit 7) is drawn as a dot instead ($8834 with $6518, half size); a type without flag bit 7 gets its colour pattern ($8F80) and its centre projected ($6773) first, unless it is behind the viewer","t":"code","b":[8],"m":"php","x":[16035,16367]},{"a":25601,"t":"code","b":[174,61,13],"m":"ldx","oa":3389,"o":"draw_list"},{"a":25604,"t":"code","b":[188,154,13],"m":"ldy","oa":3482,"o":"draw_slot,x"},{"a":25607,"t":"code","b":[132,92],"m":"sty","oa":92,"o":"drawn_slot"},{"a":25609,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":25612,"t":"code","b":[134,93],"m":"stx","oa":93,"o":"drawn_type"},{"a":25614,"t":"code","b":[144,118],"m":"bcc","oa":25734,"o":"b_6486"},{"a":25616,"t":"code","b":[192,7],"m":"cpy","o":"#$07"},{"a":25618,"t":"code","b":[176,114],"m":"bcs","oa":25734,"o":"b_6486"},{"a":25620,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":25623,"t":"code","b":[165,88],"m":"lda","oa":88,"o":"camera_pos_ptr"},{"a":25625,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25627,"t":"code","b":[165,89],"m":"lda","oa":89,"o":"zpa_59"},{"a":25629,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25631,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":25633,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25635,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":25637,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25639,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":25642,"t":"code","b":[164,92],"m":"ldy","oa":92,"o":"drawn_slot"},{"a":25644,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":25646,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":25648,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":25650,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":25652,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":25654,"t":"code","b":[24],"m":"clc"},{"a":25655,"t":"code","b":[121,60,8],"m":"adc","oa":2108,"o":"orient_offsets,y"},{"a":25658,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25660,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":25662,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":25664,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25666,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":25668,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":25670,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":25672,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":25674,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":25676,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25678,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":25680,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25682,"t":"code","b":[32,96,145],"m":"jsr","oa":37216,"o":"mat_times_vec"},{"a":25685,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":25687,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":25689,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":25691,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":25693,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":25696,"t":"code","b":[165,122],"m":"lda","oa":122,"o":"model_ptr"},{"a":25698,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":25700,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":25702,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":25704,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"camera_orient_ptr"},{"a":25706,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25708,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":25710,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25712,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":25714,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25716,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":25718,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25720,"t":"code","b":[32,176,145],"m":"jsr","oa":37296,"o":"mat_times_mat"},{"a":25723,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":25725,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25727,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":25729,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25731,"t":"code","b":[76,164,100],"m":"jmp","oa":25764,"o":"j_64A4"},{"a":25734,"l":"b_6486","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[25614,25618],"o":"slot_pos_ptr"},{"a":25737,"t":"code","b":[165,88],"m":"lda","oa":88,"o":"camera_pos_ptr"},{"a":25739,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25741,"t":"code","b":[165,89],"m":"lda","oa":89,"o":"zpa_59"},{"a":25743,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25745,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":25747,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25749,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":25751,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25753,"t":"code","b":[32,158,151],"m":"jsr","oa":38814,"o":"vec_sub_lin"},{"a":25756,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":25758,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25760,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":25762,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25764,"l":"j_64A4","t":"code","b":[174,61,13],"m":"ldx","oa":3389,"x":[25731],"o":"draw_list"},{"a":25767,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":25769,"t":"code","b":[24],"m":"clc"},{"a":25770,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":25773,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":25775,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":25777,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":25779,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":25781,"t":"code","b":[165,93],"m":"lda","oa":93,"o":"drawn_type"},{"a":25783,"t":"code","b":[10],"m":"asl","o":"a"},{"a":25784,"t":"code","b":[168],"m":"tay"},{"a":25785,"t":"code","b":[185,153,9],"m":"lda","oa":2457,"o":"type_drawdata,y"},{"a":25788,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25790,"t":"code","b":[185,154,9],"m":"lda","oa":2458,"o":"type_drawdata_hi,y"},{"a":25793,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25795,"t":"code","b":[185,99,10],"m":"lda","oa":2659,"o":"type_scale,y"},{"a":25798,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":25800,"t":"code","b":[185,100,10],"m":"lda","oa":2660,"o":"type_scale_whole,y"},{"a":25803,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":25805,"t":"code","b":[185,248,8],"m":"lda","oa":2296,"o":"type_draw,y"},{"a":25808,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":25810,"t":"code","b":[185,249,8],"m":"lda","oa":2297,"o":"type_draw_hi,y"},{"a":25813,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"tmp95"},{"a":25815,"t":"code","b":[189,140,13],"m":"lda","oa":3468,"o":"draw_size,x"},{"a":25818,"t":"code","b":[133,77],"m":"sta","oa":77,"o":"object_size"},{"a":25820,"t":"code","b":[40],"m":"plp"},{"a":25821,"t":"code","b":[176,29],"m":"bcs","oa":25852,"o":"b_64FC"},{"a":25823,"t":"code","b":[166,93],"m":"ldx","oa":93,"o":"drawn_type"},{"a":25825,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":25828,"t":"code","b":[16,22],"m":"bpl","oa":25852,"o":"b_64FC"},{"a":25830,"t":"code","b":[70,77],"m":"lsr","oa":77,"o":"object_size"},{"a":25832,"t":"code","b":[230,77],"m":"inc","oa":77,"o":"object_size"},{"a":25834,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":25836,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25838,"t":"code","b":[169,101],"m":"lda","o":"#$65"},{"a":25840,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25842,"t":"code","b":[169,52],"m":"lda","o":"#$34"},{"a":25844,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":25846,"t":"code","b":[169,136],"m":"lda","o":"#$88"},{"a":25848,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"tmp95"},{"a":25850,"t":"code","b":[208,7],"m":"bne","oa":25859,"o":"b_6503"},{"a":25852,"l":"b_64FC","t":"code","b":[166,93],"m":"ldx","oa":93,"x":[25821,25828],"o":"drawn_type"},{"a":25854,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":25857,"t":"code","b":[48,17],"m":"bmi","oa":25876,"o":"b_6514"},{"a":25859,"l":"b_6503","t":"code","b":[160,8],"m":"ldy","x":[25850],"o":"#$08"},{"a":25861,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":25863,"t":"code","b":[16,14],"m":"bpl","oa":25879,"o":"r_6517"},{"a":25865,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":25867,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":25869,"t":"code","b":[170],"m":"tax"},{"a":25870,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":25873,"t":"code","b":[32,115,103],"m":"jsr","oa":26483,"o":"project"},{"a":25876,"l":"b_6514","t":"code","b":[108,148,0],"m":"jmp","oa":148,"x":[25857],"o":"(tmp94)"},{"a":25879,"l":"r_6517","t":"code","b":[96],"m":"rts","x":[25863]},{"a":25880,"l":"far_dot_colour","c":"The colour byte for draw_object's far objects: $99, read by $8834 as its draw data","t":"byte","b":[153]},{"a":25881,"l":"update_camera","c":"Moves the camera of the outside views, from the main loop: nothing in the cockpit ($0D3C = 0). Chase view (1): the camera at $668B is moved along $0896 by a step of sign(12 - d) * sqrt(|12 - d|) / 128, d its distance from the player (camera_offset). Cinematic view (2): once the ship is 100 or more away ($06A4 in log form) the camera is put back ahead of it (place_camera). Then both look at the ship: the offset becomes row 2 of the camera's orientation at $6694, $0DB1 (straight up) row 1, and mat_orthonormal finishes it","t":"code","b":[173,60,13],"m":"lda","oa":3388,"x":[3597,29011,29163],"o":"view_mode"},{"a":25884,"t":"code","b":[208,1],"m":"bne","oa":25887,"o":"b_651F"},{"a":25886,"t":"code","b":[96],"m":"rts"},{"a":25887,"l":"b_651F","t":"code","b":[201,1],"m":"cmp","x":[25884],"o":"#$01"},{"a":25889,"t":"code","b":[208,76],"m":"bne","oa":25967,"o":"b_656F"},{"a":25891,"t":"code","b":[32,56,102],"m":"jsr","oa":26168,"o":"camera_offset"},{"a":25894,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":25896,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":25898,"t":"code","b":[169,149],"m":"lda","o":"#$95"},{"a":25900,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":25902,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":25904,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":25906,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":25908,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":25910,"t":"code","b":[32,146,179],"m":"jsr","oa":45970,"o":"$B392"},{"a":25913,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":25915,"t":"code","b":[10],"m":"asl","o":"a"},{"a":25916,"t":"code","b":[102,96],"m":"ror","oa":96,"o":"acc_mid"},{"a":25918,"t":"code","b":[102,95],"m":"ror","oa":95,"o":"acc_lo"},{"a":25920,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":25922,"t":"code","b":[56],"m":"sec"},{"a":25923,"t":"code","b":[233,7],"m":"sbc","o":"#$07"},{"a":25925,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":25927,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":25929,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25931,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":25933,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25935,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":25938,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":25940,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":25942,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":25944,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":25946,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":25949,"t":"code","b":[169,139],"m":"lda","o":"#$8B"},{"a":25951,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25953,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":25955,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":25957,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25959,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":25961,"t":"code","b":[32,89,151],"m":"jsr","oa":38745,"o":"vec_add_lin"},{"a":25964,"t":"code","b":[76,127,101],"m":"jmp","oa":25983,"o":"j_657F"},{"a":25967,"l":"b_656F","t":"code","b":[32,56,102],"m":"jsr","oa":26168,"x":[25889],"o":"camera_offset"},{"a":25970,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":25972,"t":"code","b":[201,164],"m":"cmp","o":"#$A4"},{"a":25974,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":25976,"t":"code","b":[233,6],"m":"sbc","o":"#$06"},{"a":25978,"t":"code","b":[48,3],"m":"bmi","oa":25983,"o":"j_657F"},{"a":25980,"t":"code","b":[32,243,101],"m":"jsr","oa":26099,"o":"place_camera"},{"a":25983,"l":"j_657F","t":"code","b":[169,107],"m":"lda","x":[25964,25978],"o":"#$6B"},{"a":25985,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":25987,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":25989,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":25991,"t":"code","b":[169,166],"m":"lda","o":"#$A6"},{"a":25993,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":25995,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":25997,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":25999,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":26002,"t":"code","b":[169,177],"m":"lda","o":"#$B1"},{"a":26004,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":26006,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":26008,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":26010,"t":"code","b":[169,157],"m":"lda","o":"#$9D"},{"a":26012,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":26014,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26016,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":26018,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":26021,"t":"code","b":[169,148],"m":"lda","o":"#$94"},{"a":26023,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":26025,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26027,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":26029,"t":"code","b":[76,62,146],"m":"jmp","oa":37438,"o":"mat_orthonormal"},{"a":26032,"l":"set_view","c":"Sets up the view mode in $0D3C (from the V key, $6B22 and INIT): the cockpit puts the camera at the player's position ($065D) with the player's orientation ($044B) and stops the player's own ship being drawn ($0649 = 0); the outside views draw it and use the camera at $668B/$6694, placed ahead (place_camera). Prints the view's name (view_names)","t":"code","b":[173,60,13],"m":"lda","oa":3388,"x":[5173,27448],"o":"view_mode"},{"a":26035,"t":"code","b":[208,24],"m":"bne","oa":26061,"o":"b_65CD"},{"a":26037,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26039,"t":"code","b":[141,73,6],"m":"sta","oa":1609,"o":"slot_drawn"},{"a":26042,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":26044,"t":"code","b":[133,88],"m":"sta","oa":88,"o":"camera_pos_ptr"},{"a":26046,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":26048,"t":"code","b":[133,89],"m":"sta","oa":89,"o":"zpa_59"},{"a":26050,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":26052,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"camera_orient_ptr"},{"a":26054,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":26056,"t":"code","b":[133,91],"m":"sta","oa":91,"o":"zpa_5B"},{"a":26058,"t":"code","b":[76,229,101],"m":"jmp","oa":26085,"o":"j_65E5"},{"a":26061,"l":"b_65CD","t":"code","b":[169,1],"m":"lda","x":[26035],"o":"#$01"},{"a":26063,"t":"code","b":[141,73,6],"m":"sta","oa":1609,"o":"slot_drawn"},{"a":26066,"t":"code","b":[169,148],"m":"lda","o":"#$94"},{"a":26068,"t":"code","b":[133,90],"m":"sta","oa":90,"o":"camera_orient_ptr"},{"a":26070,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26072,"t":"code","b":[133,91],"m":"sta","oa":91,"o":"zpa_5B"},{"a":26074,"t":"code","b":[169,139],"m":"lda","o":"#$8B"},{"a":26076,"t":"code","b":[133,88],"m":"sta","oa":88,"o":"camera_pos_ptr"},{"a":26078,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26080,"t":"code","b":[133,89],"m":"sta","oa":89,"o":"zpa_59"},{"a":26082,"t":"code","b":[32,243,101],"m":"jsr","oa":26099,"o":"place_camera"},{"a":26085,"l":"j_65E5","t":"code","b":[173,60,13],"m":"lda","oa":3388,"x":[26058],"o":"view_mode"},{"a":26088,"t":"code","b":[10],"m":"asl","o":"a"},{"a":26089,"t":"code","b":[168],"m":"tay"},{"a":26090,"t":"code","b":[190,94,102],"m":"ldx","oa":26206,"o":"view_names,y"},{"a":26093,"t":"code","b":[185,95,102],"m":"lda","oa":26207,"o":"f_665F,y"},{"a":26096,"t":"code","b":[76,220,154],"m":"jmp","oa":39644,"o":"print_message"},{"a":26099,"l":"place_camera","c":"Puts the outside camera ahead of the ship: the player's velocity ($0545) in log form, normalised, times 80 ($0652 in log form), back to linear, with 10 added to x's middle byte, plus the player's position ($065D), into $668B","t":"code","b":[169,69],"m":"lda","x":[25980,26082],"o":"#$45"},{"a":26101,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":26103,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":26105,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":26107,"t":"code","b":[169,139],"m":"lda","o":"#$8B"},{"a":26109,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":26111,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26113,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":26115,"t":"code","b":[32,114,147],"m":"jsr","oa":37746,"o":"vec_lin_to_log"},{"a":26118,"t":"code","b":[169,139],"m":"lda","o":"#$8B"},{"a":26120,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":26122,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26124,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":26126,"t":"code","b":[32,105,150],"m":"jsr","oa":38505,"o":"vec_normalise"},{"a":26129,"t":"code","b":[169,82],"m":"lda","o":"#$52"},{"a":26131,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26133,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":26135,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26137,"t":"code","b":[32,229,149],"m":"jsr","oa":38373,"o":"vec_scale"},{"a":26140,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":26143,"t":"code","b":[173,140,102],"m":"lda","oa":26252,"o":"a_668C"},{"a":26146,"t":"code","b":[24],"m":"clc"},{"a":26147,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":26149,"t":"code","b":[141,140,102],"m":"sta","oa":26252,"o":"a_668C"},{"a":26152,"t":"code","b":[144,3],"m":"bcc","oa":26157,"o":"b_662D"},{"a":26154,"t":"code","b":[238,141,102],"m":"inc","oa":26253,"o":"a_668D"},{"a":26157,"l":"b_662D","t":"code","b":[169,93],"m":"lda","x":[26152],"o":"#$5D"},{"a":26159,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":26161,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":26163,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":26165,"t":"code","b":[76,89,151],"m":"jmp","oa":38745,"o":"vec_add_lin"},{"a":26168,"l":"camera_offset","c":"The camera's offset from the player in log form ($668B less $065D, $92CC) into $6B-$73, and its length ($9531) in $5F/$60","t":"code","b":[169,139],"m":"lda","x":[25891,25967],"o":"#$8B"},{"a":26170,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":26172,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":26174,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":26176,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":26178,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":26180,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":26182,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":26184,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":26186,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":26188,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26190,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":26192,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":26195,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":26197,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":26199,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26201,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":26203,"t":"code","b":[76,49,149],"m":"jmp","oa":38193,"o":"vec_length"},{"a":26206,"l":"view_names","c":"Three pointers to the view names: cockpit, chase, cinematic","t":"byte","b":[100],"x":[26090]},{"a":26207,"l":"f_665F","c":"The high bytes of the view name pointers, read at $665F + 2 * view","t":"byte","b":[102,113,102,124,102],"x":[26093]},{"a":26212,"l":"str_cockpit_view","c":"\"Cockpit view\"","t":"byte","b":[67,111,99,107,112,105,116,32]},{"a":26220,"t":"byte","b":[118,105,101,119,0]},{"a":26225,"l":"str_chase_view","c":"\"Chase view\"","t":"byte","b":[67,104,97,115,101,32,118,105]},{"a":26233,"t":"byte","b":[101,119,0]},{"a":26236,"l":"str_cinematic_view","c":"\"Cinematic view\"","t":"byte","b":[67,105,110,101,109,97,116,105]},{"a":26244,"t":"byte","b":[99,32,118,105,101,119,0]},{"a":26251,"l":"camera_pos","c":"The outside views' camera position, 9 bytes (three linear 24-bit numbers)","t":"byte","b":[0]},{"a":26252,"l":"a_668C","c":"x's middle byte of camera_pos, where place_camera adds 10","t":"byte","b":[0],"x":[26143,26149]},{"a":26253,"l":"a_668D","c":"x's high byte of camera_pos, carried into by place_camera","t":"byte","b":[0,0,0,0,0,0,0],"x":[26154]},{"a":26260,"l":"camera_orient","c":"The outside views' camera orientation, 27 bytes: three rows of three log-form numbers; row 2 at $66A6 points from the ship to the camera","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26268,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26276,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26284,"t":"byte","b":[0,0,0]},{"a":26287,"l":"screen_size","c":"An object's size on screen from its log depth in $5F/$60 (less the view's front $0D3E, from in_view): the antilog of $0D64 less it, $FF when that is 256 or more; returned in A","t":"code","b":[173,100,13],"m":"lda","oa":3428,"x":[16354],"o":"proj_xscale"},{"a":26290,"t":"code","b":[56],"m":"sec"},{"a":26291,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":26293,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26295,"t":"code","b":[173,101,13],"m":"lda","oa":3429,"o":"a_0D65"},{"a":26298,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":26300,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26302,"t":"code","b":[32,224,181],"m":"jsr","oa":46560,"o":"$B5E0"},{"a":26305,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26307,"t":"code","b":[166,97],"m":"ldx","oa":97,"o":"acc_hi"},{"a":26309,"t":"code","b":[240,2],"m":"beq","oa":26313,"o":"r_66C9"},{"a":26311,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":26313,"l":"r_66C9","t":"code","b":[96],"m":"rts","x":[26309]},{"a":26314,"l":"set_projection","c":"Sets up the projection from the log-form zoom in $5F/$60 (0 from INIT, the TAC's own from $3532/$3549), kept in $0D68: $0D64 = zoom plus log2 of the view's width $41, $0D66 = $0D64 less $31/256 (a slightly smaller vertical scale), $0D6A = $0D66 less log2 of the height $42; $0D6C and $0D6E = log2 of sqrt(1 + v*v) for $0D68 and $0D6A ($675C), the view's edges for in_view","t":"code","b":[165,95],"m":"lda","oa":95,"x":[13618,13641],"o":"acc_lo"},{"a":26316,"t":"code","b":[141,104,13],"m":"sta","oa":3432,"o":"proj_zoom"},{"a":26319,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26321,"t":"code","b":[141,105,13],"m":"sta","oa":3433,"o":"a_0D69"},{"a":26324,"t":"code","b":[165,65],"m":"lda","oa":65,"o":"window_width"},{"a":26326,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26328,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26330,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":26332,"t":"code","b":[32,81,180],"m":"jsr","oa":46161,"o":"$B451"},{"a":26335,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":26337,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":26339,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26341,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":26343,"t":"code","b":[165,66],"m":"lda","oa":66,"o":"window_height"},{"a":26345,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26347,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26349,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":26351,"t":"code","b":[32,81,180],"m":"jsr","oa":46161,"o":"$B451"},{"a":26354,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":26356,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":26358,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26360,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":26362,"t":"code","b":[173,104,13],"m":"lda","oa":3432,"o":"proj_zoom"},{"a":26365,"t":"code","b":[24],"m":"clc"},{"a":26366,"t":"code","b":[101,132],"m":"adc","oa":132,"o":"tmp84"},{"a":26368,"t":"code","b":[141,100,13],"m":"sta","oa":3428,"o":"proj_xscale"},{"a":26371,"t":"code","b":[173,105,13],"m":"lda","oa":3433,"o":"a_0D69"},{"a":26374,"t":"code","b":[101,133],"m":"adc","oa":133,"o":"tmp85"},{"a":26376,"t":"code","b":[141,101,13],"m":"sta","oa":3429,"o":"a_0D65"},{"a":26379,"t":"code","b":[173,100,13],"m":"lda","oa":3428,"o":"proj_xscale"},{"a":26382,"t":"code","b":[24],"m":"clc"},{"a":26383,"t":"code","b":[105,207],"m":"adc","o":"#$CF"},{"a":26385,"t":"code","b":[141,102,13],"m":"sta","oa":3430,"o":"proj_yscale"},{"a":26388,"t":"code","b":[173,101,13],"m":"lda","oa":3429,"o":"a_0D65"},{"a":26391,"t":"code","b":[105,255],"m":"adc","o":"#$FF"},{"a":26393,"t":"code","b":[141,103,13],"m":"sta","oa":3431,"o":"a_0D67"},{"a":26396,"t":"code","b":[173,102,13],"m":"lda","oa":3430,"o":"proj_yscale"},{"a":26399,"t":"code","b":[56],"m":"sec"},{"a":26400,"t":"code","b":[229,134],"m":"sbc","oa":134,"o":"tmp86"},{"a":26402,"t":"code","b":[141,106,13],"m":"sta","oa":3434,"o":"proj_vslope"},{"a":26405,"t":"code","b":[173,103,13],"m":"lda","oa":3431,"o":"a_0D67"},{"a":26408,"t":"code","b":[229,135],"m":"sbc","oa":135,"o":"tmp87"},{"a":26410,"t":"code","b":[141,107,13],"m":"sta","oa":3435,"o":"a_0D6B"},{"a":26413,"t":"code","b":[173,104,13],"m":"lda","oa":3432,"o":"proj_zoom"},{"a":26416,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26418,"t":"code","b":[173,105,13],"m":"lda","oa":3433,"o":"a_0D69"},{"a":26421,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26423,"t":"code","b":[32,92,103],"m":"jsr","oa":26460,"o":"log_hypot1"},{"a":26426,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":26428,"t":"code","b":[141,108,13],"m":"sta","oa":3436,"o":"proj_hedge"},{"a":26431,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26433,"t":"code","b":[141,109,13],"m":"sta","oa":3437,"o":"a_0D6D"},{"a":26436,"t":"code","b":[173,106,13],"m":"lda","oa":3434,"o":"proj_vslope"},{"a":26439,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26441,"t":"code","b":[173,107,13],"m":"lda","oa":3435,"o":"a_0D6B"},{"a":26444,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26446,"t":"code","b":[32,92,103],"m":"jsr","oa":26460,"o":"log_hypot1"},{"a":26449,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":26451,"t":"code","b":[141,110,13],"m":"sta","oa":3438,"o":"proj_vedge"},{"a":26454,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26456,"t":"code","b":[141,111,13],"m":"sta","oa":3439,"o":"a_0D6F"},{"a":26459,"t":"code","b":[96],"m":"rts"},{"a":26460,"l":"log_hypot1","c":"log2 of sqrt(1 + v*v) for the log-form v in $5F/$60: the log doubled, 1 added ($B398 with 0), and halved","t":"code","b":[6,95],"m":"asl","oa":95,"x":[26423,26446],"o":"acc_lo"},{"a":26462,"t":"code","b":[38,96],"m":"rol","oa":96,"o":"acc_mid"},{"a":26464,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26466,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":26468,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":26470,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":26472,"t":"code","b":[32,152,179],"m":"jsr","oa":45976,"o":"$B398"},{"a":26475,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26477,"t":"code","b":[10],"m":"asl","o":"a"},{"a":26478,"t":"code","b":[102,96],"m":"ror","oa":96,"o":"acc_mid"},{"a":26480,"t":"code","b":[102,95],"m":"ror","oa":95,"o":"acc_lo"},{"a":26482,"t":"code","b":[96],"m":"rts"},{"a":26483,"l":"project","c":"Projects the log-form point at ($74) to the screen: x and y each divided by twice z (their logs less z's plus one), scaled by $0D64 and $0D66; when either log is 13 or more both are pulled in by the excess so the larger lands at 8192, which keeps the direction for clipping. Back to linear ($B5C5): x plus the centre $56 into $51/$52, y plus $57 into $53/$54","t":"code","b":[160,6],"m":"ldy","x":[9204,25873,31189,32318,32700],"o":"#$06"},{"a":26485,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26487,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":26489,"t":"code","b":[200],"m":"iny"},{"a":26490,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26492,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":26494,"t":"code","b":[230,99],"m":"inc","oa":99,"o":"arg_mid"},{"a":26496,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":26498,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26500,"t":"code","b":[56],"m":"sec"},{"a":26501,"t":"code","b":[229,98],"m":"sbc","oa":98,"o":"arg_lo"},{"a":26503,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26505,"t":"code","b":[200],"m":"iny"},{"a":26506,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26508,"t":"code","b":[229,99],"m":"sbc","oa":99,"o":"arg_mid"},{"a":26510,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26512,"t":"code","b":[200],"m":"iny"},{"a":26513,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26515,"t":"code","b":[133,103],"m":"sta","oa":103,"o":"zpa_67"},{"a":26517,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":26519,"t":"code","b":[24],"m":"clc"},{"a":26520,"t":"code","b":[109,100,13],"m":"adc","oa":3428,"o":"proj_xscale"},{"a":26523,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":26525,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26527,"t":"code","b":[109,101,13],"m":"adc","oa":3429,"o":"a_0D65"},{"a":26530,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":26532,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":26534,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26536,"t":"code","b":[56],"m":"sec"},{"a":26537,"t":"code","b":[229,98],"m":"sbc","oa":98,"o":"arg_lo"},{"a":26539,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26541,"t":"code","b":[200],"m":"iny"},{"a":26542,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26544,"t":"code","b":[229,99],"m":"sbc","oa":99,"o":"arg_mid"},{"a":26546,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26548,"t":"code","b":[200],"m":"iny"},{"a":26549,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":26551,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":26553,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":26555,"t":"code","b":[24],"m":"clc"},{"a":26556,"t":"code","b":[109,102,13],"m":"adc","oa":3430,"o":"proj_yscale"},{"a":26559,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26561,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26563,"t":"code","b":[109,103,13],"m":"adc","oa":3431,"o":"a_0D67"},{"a":26566,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26568,"t":"code","b":[197,102],"m":"cmp","oa":102,"o":"zpa_66"},{"a":26570,"t":"code","b":[16,2],"m":"bpl","oa":26574,"o":"b_67CE"},{"a":26572,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":26574,"l":"b_67CE","t":"code","b":[168],"m":"tay","x":[26570]},{"a":26575,"t":"code","b":[48,21],"m":"bmi","oa":26598,"o":"b_67E6"},{"a":26577,"t":"code","b":[56],"m":"sec"},{"a":26578,"t":"code","b":[233,13],"m":"sbc","o":"#$0D"},{"a":26580,"t":"code","b":[48,16],"m":"bmi","oa":26598,"o":"b_67E6"},{"a":26582,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":26584,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26586,"t":"code","b":[56],"m":"sec"},{"a":26587,"t":"code","b":[229,128],"m":"sbc","oa":128,"o":"tmp80"},{"a":26589,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26591,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":26593,"t":"code","b":[56],"m":"sec"},{"a":26594,"t":"code","b":[229,128],"m":"sbc","oa":128,"o":"tmp80"},{"a":26596,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":26598,"l":"b_67E6","t":"code","b":[32,197,181],"m":"jsr","oa":46533,"x":[26575,26580],"o":"$B5C5"},{"a":26601,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26603,"t":"code","b":[24],"m":"clc"},{"a":26604,"t":"code","b":[101,87],"m":"adc","oa":87,"o":"window_cy"},{"a":26606,"t":"code","b":[133,83],"m":"sta","oa":83,"o":"screen_y"},{"a":26608,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":26610,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":26612,"t":"code","b":[133,84],"m":"sta","oa":84,"o":"zpa_54"},{"a":26614,"t":"code","b":[165,101],"m":"lda","oa":101,"o":"axpy_s"},{"a":26616,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":26618,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":26620,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":26622,"t":"code","b":[165,103],"m":"lda","oa":103,"o":"zpa_67"},{"a":26624,"l":"j_6800","c":"Mid-instruction in MAIN. SR's $154B jumps here as WON's entry, after the ending has loaded WON over MAIN at $6800","t":"code","b":[133,97],"m":"sta","oa":97,"x":[5451],"o":"acc_hi"},{"a":26626,"t":"code","b":[32,197,181],"m":"jsr","oa":46533,"o":"$B5C5"},{"a":26629,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":26631,"t":"code","b":[24],"m":"clc"},{"a":26632,"t":"code","b":[101,86],"m":"adc","oa":86,"o":"window_cx"},{"a":26634,"t":"code","b":[133,81],"m":"sta","oa":81,"o":"screen_x"},{"a":26636,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":26638,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":26640,"t":"code","b":[133,82],"m":"sta","oa":82,"o":"zpa_52"},{"a":26642,"t":"code","b":[96],"m":"rts"},{"a":26643,"l":"model_missile","c":"The missiles' built-in model (types 9 and 10; type 10 recoloured by its draw data at $0A16): the prologue every model starts with, which puts its header's address ($681E) in $7A/$7B and jumps to draw_model","t":"code","b":[169,30],"m":"lda","o":"#$1E"},{"a":26645,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":26647,"t":"code","b":[169,104],"m":"lda","o":"#$68"},{"a":26649,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":26651,"t":"code","b":[76,97,124],"m":"jmp","oa":31841,"o":"draw_model"},{"a":26654,"l":"model_missile_header","c":"model_missile's header, 36 bytes copied to $9A-$BD: $9A set once its normals are made, then the counts (10 points, 2 reference points, 4 normals, 7 polygons, 10 axis vectors) and the pointers to its tables at $6842-$6929","t":"byte","b":[0,10,2,4,7,10,66,104]},{"a":26662,"t":"byte","b":[168,104,68,104,158,104,178,104]},{"a":26670,"t":"byte","b":[196,104,232,104,236,104,243,104]},{"a":26678,"t":"byte","b":[250,104,1,105,15,105,8,105]},{"a":26686,"t":"byte","b":[36,105,40,105]},{"a":26690,"l":"model_missile_tables","c":"model_missile's tables: point parents and axes, the axis vectors in log form, reference points, normals (filled in on first use), the polygons' order, normal and colours, their vertex counts and vertex lists","t":"byte","b":[2,3,164,5,255,217,4,255]},{"a":26698,"t":"byte","b":[164,6,0,164,5,0,217,4]},{"a":26706,"t":"byte","b":[255,164,6,0,156,230,0,217]},{"a":26714,"t":"byte","b":[5,0,164,6,0,156,230,0]},{"a":26722,"t":"byte","b":[156,230,0,164,6,255,63,6]},{"a":26730,"t":"byte","b":[255,117,5,255,82,6,0,164]},{"a":26738,"t":"byte","b":[4,255,217,3,255,156,230,0]},{"a":26746,"t":"byte","b":[63,6,0,117,5,255,82,6]},{"a":26754,"t":"byte","b":[0,164,4,0,217,3,255,156]},{"a":26762,"t":"byte","b":[230,0,156,230,0,117,6,0]},{"a":26770,"t":"byte","b":[82,6,0,156,230,0,217,4]},{"a":26778,"t":"byte","b":[0,156,230,0,255,255,255,255]},{"a":26786,"t":"byte","b":[255,255,255,255,255,255,0,1]},{"a":26794,"t":"byte","b":[2,3,4,5,6,7,8,9]},{"a":26802,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26810,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26818,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26826,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26834,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26842,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":26850,"t":"byte","b":[0,0,0,0,0,0,1,1]},{"a":26858,"t":"byte","b":[1,0,0,0,0,0,2,1]},{"a":26866,"t":"byte","b":[1,0,1,2,3,0,0,0]},{"a":26874,"t":"byte","b":[255,255,255,255,0,0,0,92]},{"a":26882,"t":"byte","b":[92,92,18,0,0,0,3,3]},{"a":26890,"t":"byte","b":[3,3,3,3,3,2,0,3]},{"a":26898,"t":"byte","b":[2,3,1,3,0,1,2,1]},{"a":26906,"t":"byte","b":[0,0,4,5,1,7,6,2]},{"a":26914,"t":"byte","b":[8,9,0,1,2,3,4,0]},{"a":26922,"l":"model_sunracer","c":"The player's Sunracer, type 0's built-in model: prologue with its header at $6935","t":"code","b":[169,53],"m":"lda","o":"#$35"},{"a":26924,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":26926,"t":"code","b":[169,105],"m":"lda","o":"#$69"},{"a":26928,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":26930,"t":"code","b":[76,97,124],"m":"jmp","oa":31841,"o":"draw_model"},{"a":26933,"l":"model_sunracer_header","c":"model_sunracer's header: 19 points, 3 reference points, 8 normals, 10 polygons, 11 axis vectors, and the pointers to its tables at $6959-$6AB2","t":"byte","b":[0,19,3,8,10,11,89,105]},{"a":26941,"t":"byte","b":[210,105,92,105,191,105,229,105]},{"a":26949,"t":"byte","b":[0,106,72,106,80,106,90,106]},{"a":26957,"t":"byte","b":[100,106,110,106,130,106,120,106]},{"a":26965,"t":"byte","b":[171,106,177,106]},{"a":26969,"l":"model_sunracer_tables","c":"model_sunracer's tables, laid out as model_missile's","t":"byte","b":[0,5,7,164,5,255,156,230]},{"a":26977,"t":"byte","b":[0,164,6,0,164,6,0,156]},{"a":26985,"t":"byte","b":[230,0,156,230,0,232,4,255]},{"a":26993,"t":"byte","b":[82,5,0,164,6,0,232,5]},{"a":27001,"t":"byte","b":[0,156,230,0,156,230,0,156]},{"a":27009,"t":"byte","b":[230,0,156,230,0,33,7,0]},{"a":27017,"t":"byte","b":[82,3,255,156,230,0,164,6]},{"a":27025,"t":"byte","b":[255,82,4,0,156,230,0,156]},{"a":27033,"t":"byte","b":[230,0,156,230,0,156,230,0]},{"a":27041,"t":"byte","b":[82,4,255,82,5,0,156,230]},{"a":27049,"t":"byte","b":[0,156,230,0,156,230,0,82]},{"a":27057,"t":"byte","b":[4,0,232,4,0,156,230,0]},{"a":27065,"t":"byte","b":[82,3,0,232,3,0,255,0]},{"a":27073,"t":"byte","b":[0,2,255,4,4,6,255,8]},{"a":27081,"t":"byte","b":[0,10,2,12,255,8,15,15]},{"a":27089,"t":"byte","b":[17,0,252,1,252,2,252,3]},{"a":27097,"t":"byte","b":[252,5,6,248,7,8,7,7]},{"a":27105,"t":"byte","b":[9,6,10,6,0,0,0,0]},{"a":27113,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27121,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27129,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27137,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27145,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27153,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27161,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27169,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27177,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27185,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27193,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":27201,"t":"byte","b":[0,0,0,0,0,0,0,1]},{"a":27209,"t":"byte","b":[0,0,2,0,1,1,2,0]},{"a":27217,"t":"byte","b":[0,0,0,0,0,0,0,1]},{"a":27225,"t":"byte","b":[5,0,1,2,3,4,5,6]},{"a":27233,"t":"byte","b":[7,1,5,255,255,255,255,255]},{"a":27241,"t":"byte","b":[255,255,255,0,255,55,50,52]},{"a":27249,"t":"byte","b":[52,18,0,55,55,50,81,4]},{"a":27257,"t":"byte","b":[6,4,4,4,4,3,3,5]},{"a":27265,"t":"byte","b":[4,4,5,7,6,0,2,3]},{"a":27273,"t":"byte","b":[9,8,1,0,1,5,4,6]},{"a":27281,"t":"byte","b":[7,3,2,0,4,6,2,5]},{"a":27289,"t":"byte","b":[8,9,7,1,8,5,7,9]},{"a":27297,"t":"byte","b":[3,10,11,14,13,12,15,16]},{"a":27305,"t":"byte","b":[18,17,0,1,2,3,4,5]},{"a":27313,"t":"byte","b":[6,0]},{"a":27315,"l":"check_collisions","c":"Tests every pair of objects for contact, once a pass from the main loop. For each ship slot 5..0 with a hit radius ($0635), against every slot 19..0 with one: the two types' radii ($0A1D words) are added and within_range ($74A3) checks the two positions box-wise against the sum; on contact on_contact ($6B22) handles the pair. Each ship slot's collision cooldown $040F counts down by one. $0837 starts each pass at $FF: on_contact sets it to the base the player touched","t":"code","b":[169,255],"m":"lda","x":[3589],"o":"#$FF"},{"a":27317,"t":"code","b":[141,55,8],"m":"sta","oa":2103,"o":"touched"},{"a":27320,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":27322,"t":"code","b":[134,198],"m":"stx","oa":198,"o":"slot_a"},{"a":27324,"l":"b_6ABC","t":"code","b":[189,53,6],"m":"lda","oa":1589,"x":[27423],"o":"slot_solid,x"},{"a":27327,"t":"code","b":[240,81],"m":"beq","oa":27410,"o":"b_6B12"},{"a":27329,"c":"The ship's radius in $C8/$C9","t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":27332,"t":"code","b":[10],"m":"asl","o":"a"},{"a":27333,"t":"code","b":[168],"m":"tay"},{"a":27334,"t":"code","b":[185,29,10],"m":"lda","oa":2589,"o":"type_radius,y"},{"a":27337,"t":"code","b":[133,200],"m":"sta","oa":200,"o":"radius_lo"},{"a":27339,"t":"code","b":[185,30,10],"m":"lda","oa":2590,"o":"f_0A1E,y"},{"a":27342,"t":"code","b":[133,201],"m":"sta","oa":201,"o":"radius_hi"},{"a":27344,"t":"code","b":[162,19],"m":"ldx","o":"#$13"},{"a":27346,"t":"code","b":[134,199],"m":"stx","oa":199,"o":"slot_b"},{"a":27348,"l":"b_6AD4","t":"code","b":[189,53,6],"m":"lda","oa":1589,"x":[27408],"o":"slot_solid,x"},{"a":27351,"t":"code","b":[240,51],"m":"beq","oa":27404,"o":"b_6B0C"},{"a":27353,"t":"code","b":[228,198],"m":"cpx","oa":198,"o":"slot_a"},{"a":27355,"t":"code","b":[240,47],"m":"beq","oa":27404,"o":"b_6B0C"},{"a":27357,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":27360,"t":"code","b":[10],"m":"asl","o":"a"},{"a":27361,"t":"code","b":[168],"m":"tay"},{"a":27362,"t":"code","b":[165,200],"m":"lda","oa":200,"o":"radius_lo"},{"a":27364,"t":"code","b":[24],"m":"clc"},{"a":27365,"t":"code","b":[121,29,10],"m":"adc","oa":2589,"o":"type_radius,y"},{"a":27368,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":27370,"t":"code","b":[165,201],"m":"lda","oa":201,"o":"radius_hi"},{"a":27372,"t":"code","b":[121,30,10],"m":"adc","oa":2590,"o":"f_0A1E,y"},{"a":27375,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":27377,"c":"($74) the ship's position, ($76) the other object's position; $60/$61 the sum of the radii","t":"code","b":[164,198],"m":"ldy","oa":198,"o":"slot_a"},{"a":27379,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":27382,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":27384,"t":"code","b":[24],"m":"clc"},{"a":27385,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":27388,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":27390,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":27392,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":27394,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":27396,"t":"code","b":[32,163,116],"m":"jsr","oa":29859,"o":"within_range"},{"a":27399,"t":"code","b":[144,3],"m":"bcc","oa":27404,"o":"b_6B0C"},{"a":27401,"t":"code","b":[32,34,107],"m":"jsr","oa":27426,"o":"on_contact"},{"a":27404,"l":"b_6B0C","t":"code","b":[198,199],"m":"dec","oa":199,"x":[27351,27355,27399],"o":"slot_b"},{"a":27406,"t":"code","b":[166,199],"m":"ldx","oa":199,"o":"slot_b"},{"a":27408,"t":"code","b":[16,194],"m":"bpl","oa":27348,"o":"b_6AD4"},{"a":27410,"l":"b_6B12","c":"The ship's collision cooldown ($040F) counts down to zero","t":"code","b":[166,198],"m":"ldx","oa":198,"x":[27327],"o":"slot_a"},{"a":27412,"t":"code","b":[189,15,4],"m":"lda","oa":1039,"o":"slot_cooldown,x"},{"a":27415,"t":"code","b":[240,3],"m":"beq","oa":27420,"o":"b_6B1C"},{"a":27417,"t":"code","b":[222,15,4],"m":"dec","oa":1039,"o":"slot_cooldown,x"},{"a":27420,"l":"b_6B1C","t":"code","b":[202],"m":"dex","x":[27415]},{"a":27421,"t":"code","b":[134,198],"m":"stx","oa":198,"o":"slot_a"},{"a":27423,"t":"code","b":[16,155],"m":"bpl","oa":27324,"o":"b_6ABC"},{"a":27425,"t":"code","b":[96],"m":"rts"},{"a":27426,"l":"on_contact","c":"Slot $C6 (a ship) touches slot $C7. In an outside view ($0D3C nonzero) touching a base (type flag bit 0) just puts the view back in the cockpit (set_view). In the cockpit view, when one of the two is the player and the other's type has flag bit 7 (a 3D model) without bit 5 (not a missile), the other's slot goes in $0837 and nothing else happens here: dock_check ($7033) settles the touch when that object is drawn, so something out of view cannot be rammed. Every other pair goes to collide ($6B6C)","t":"code","b":[173,60,13],"m":"lda","oa":3388,"x":[27401],"o":"view_mode"},{"a":27429,"t":"code","b":[240,20],"m":"beq","oa":27451,"o":"b_6B3B"},{"a":27431,"t":"code","b":[164,199],"m":"ldy","oa":199,"o":"slot_b"},{"a":27433,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":27436,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":27439,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":27441,"t":"code","b":[240,50],"m":"beq","oa":27493,"o":"b_6B65"},{"a":27443,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":27445,"t":"code","b":[141,60,13],"m":"sta","oa":3388,"o":"view_mode"},{"a":27448,"t":"code","b":[76,176,101],"m":"jmp","oa":26032,"o":"set_view"},{"a":27451,"l":"b_6B3B","t":"code","b":[166,198],"m":"ldx","oa":198,"x":[27429],"o":"slot_a"},{"a":27453,"t":"code","b":[208,18],"m":"bne","oa":27473,"o":"b_6B51"},{"a":27455,"t":"code","b":[164,199],"m":"ldy","oa":199,"o":"slot_b"},{"a":27457,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":27460,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":27463,"t":"code","b":[16,28],"m":"bpl","oa":27493,"o":"b_6B65"},{"a":27465,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":27467,"t":"code","b":[208,24],"m":"bne","oa":27493,"o":"b_6B65"},{"a":27469,"t":"code","b":[140,55,8],"m":"sty","oa":2103,"o":"touched"},{"a":27472,"t":"code","b":[96],"m":"rts"},{"a":27473,"l":"b_6B51","t":"code","b":[164,199],"m":"ldy","oa":199,"x":[27453],"o":"slot_b"},{"a":27475,"t":"code","b":[208,16],"m":"bne","oa":27493,"o":"b_6B65"},{"a":27477,"t":"code","b":[188,13,6],"m":"ldy","oa":1549,"o":"slot_type,x"},{"a":27480,"t":"code","b":[185,213,8],"m":"lda","oa":2261,"o":"type_flags,y"},{"a":27483,"t":"code","b":[16,8],"m":"bpl","oa":27493,"o":"b_6B65"},{"a":27485,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":27487,"t":"code","b":[208,4],"m":"bne","oa":27493,"o":"b_6B65"},{"a":27489,"t":"code","b":[142,55,8],"m":"stx","oa":2103,"o":"touched"},{"a":27492,"t":"code","b":[96],"m":"rts"},{"a":27493,"l":"b_6B65","t":"code","b":[166,198],"m":"ldx","oa":198,"x":[27441,27463,27467,27475,27483,27487],"o":"slot_a"},{"a":27495,"t":"code","b":[164,199],"m":"ldy","oa":199,"o":"slot_b"},{"a":27497,"t":"code","b":[76,108,107],"m":"jmp","oa":27500,"o":"collide"},{"a":27500,"l":"collide","c":"The collision proper between slot X and slot Y ($B2/$B3, their types in $B8/$B9; Y's type is also kept in $0835 as the last thing that hit). By the second object's type: type $1B blows up the first (hit_shard); a Malir gate ($14) touched by the player goes to gate_contact ($6C54); when either is a missile (flag bit 5) missile_hit ($6C7E); a hazard (flag bit 6) hazard_hit ($6CC5); anything else is a ram ($6BC3)","t":"code","b":[134,178],"m":"stx","oa":178,"x":[27497,28767],"o":"model_backcol"},{"a":27502,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":27505,"t":"code","b":[133,184],"m":"sta","oa":184,"o":"model_vertcounts"},{"a":27507,"t":"code","b":[132,179],"m":"sty","oa":179,"o":"zpa_B3"},{"a":27509,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":27512,"t":"code","b":[133,185],"m":"sta","oa":185,"o":"zpa_B9"},{"a":27514,"t":"code","b":[141,53,8],"m":"sta","oa":2101,"o":"killer"},{"a":27517,"t":"code","b":[201,27],"m":"cmp","o":"#$1B"},{"a":27519,"t":"code","b":[240,41],"m":"beq","oa":27562,"o":"hit_shard"},{"a":27521,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":27523,"t":"code","b":[208,7],"m":"bne","oa":27532,"o":"b_6B8C"},{"a":27525,"t":"code","b":[224,0],"m":"cpx","o":"#$00"},{"a":27527,"t":"code","b":[208,3],"m":"bne","oa":27532,"o":"b_6B8C"},{"a":27529,"t":"code","b":[76,84,108],"m":"jmp","oa":27732,"o":"gate_contact"},{"a":27532,"l":"b_6B8C","t":"code","b":[166,184],"m":"ldx","oa":184,"x":[27523,27527],"o":"model_vertcounts"},{"a":27534,"t":"code","b":[164,185],"m":"ldy","oa":185,"o":"zpa_B9"},{"a":27536,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":27539,"t":"code","b":[25,213,8],"m":"ora","oa":2261,"o":"type_flags,y"},{"a":27542,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":27544,"t":"code","b":[240,3],"m":"beq","oa":27549,"o":"b_6B9D"},{"a":27546,"t":"code","b":[76,126,108],"m":"jmp","oa":27774,"o":"missile_hit"},{"a":27549,"l":"b_6B9D","t":"code","b":[185,213,8],"m":"lda","oa":2261,"x":[27544],"o":"type_flags,y"},{"a":27552,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":27554,"t":"code","b":[240,3],"m":"beq","oa":27559,"o":"b_6BA7"},{"a":27556,"t":"code","b":[76,197,108],"m":"jmp","oa":27845,"o":"hazard_hit"},{"a":27559,"l":"b_6BA7","t":"code","b":[76,195,107],"m":"jmp","oa":27587,"x":[27554],"o":"ram"},{"a":27562,"l":"hit_shard","c":"Type $1B (a hazard and a particle): it explodes and the first object takes its damage ($0AEF, 33) through blow_up ($6E4B); a new $1B is made at the origin ($0DC3), which place_particles ($7772) then moves near the camera","t":"code","b":[164,185],"m":"ldy","oa":185,"x":[27519],"o":"zpa_B9"},{"a":27564,"t":"code","b":[185,239,10],"m":"lda","oa":2799,"o":"type_damage,y"},{"a":27567,"t":"code","b":[166,179],"m":"ldx","oa":179,"o":"zpa_B3"},{"a":27569,"t":"code","b":[164,178],"m":"ldy","oa":178,"o":"model_backcol"},{"a":27571,"t":"code","b":[32,75,110],"m":"jsr","oa":28235,"o":"blow_up"},{"a":27574,"t":"code","b":[169,195],"m":"lda","o":"#$C3"},{"a":27576,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":27578,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":27580,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":27582,"t":"code","b":[162,27],"m":"ldx","o":"#$1B"},{"a":27584,"t":"code","b":[76,73,25],"m":"jmp","oa":6473,"o":"create_object"},{"a":27587,"l":"ram","c":"Two objects ram each other. Each ship's cooldown is checked (contact_cooldown, which leaves when it was already running); when the player is one of them the window flashes (set_colour with the code in $8C, fill_window) and sound 9 plays. The damage is the relative speed: the two velocities ($0545 blocks) subtracted (vec_sub_to_log), the difference's length (vec_length) times 8 (3 added to the log's whole part), back to a whole number (log_to_lin), of which only the low byte is kept in $B7. Each takes that damage from the other (damage, $6EA0), then the two bounce apart ($6D08)","t":"code","b":[166,178],"m":"ldx","oa":178,"x":[27559],"o":"model_backcol"},{"a":27589,"t":"code","b":[32,246,108],"m":"jsr","oa":27894,"o":"contact_cooldown"},{"a":27592,"t":"code","b":[166,179],"m":"ldx","oa":179,"o":"zpa_B3"},{"a":27594,"t":"code","b":[32,246,108],"m":"jsr","oa":27894,"o":"contact_cooldown"},{"a":27597,"t":"code","b":[165,178],"m":"lda","oa":178,"o":"model_backcol"},{"a":27599,"t":"code","b":[240,4],"m":"beq","oa":27605,"o":"b_6BD5"},{"a":27601,"t":"code","b":[165,179],"m":"lda","oa":179,"o":"zpa_B3"},{"a":27603,"t":"code","b":[208,14],"m":"bne","oa":27619,"o":"b_6BE3"},{"a":27605,"l":"b_6BD5","t":"code","b":[174,140,0],"m":"ldx","oa":140,"x":[27599],"o":"tmp8C"},{"a":27608,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":27611,"t":"code","b":[32,29,144],"m":"jsr","oa":36893,"o":"fill_window"},{"a":27614,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":27616,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":27619,"l":"b_6BE3","t":"code","b":[164,178],"m":"ldy","oa":178,"x":[27603],"o":"model_backcol"},{"a":27621,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":27623,"t":"code","b":[24],"m":"clc"},{"a":27624,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":27627,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":27629,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":27631,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":27633,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":27635,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":27637,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":27639,"t":"code","b":[24],"m":"clc"},{"a":27640,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":27643,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":27645,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":27647,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":27649,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":27651,"t":"code","b":[169,186],"m":"lda","o":"#$BA"},{"a":27653,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":27655,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":27657,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":27659,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":27662,"t":"code","b":[169,186],"m":"lda","o":"#$BA"},{"a":27664,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":27666,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":27668,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":27670,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":27673,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":27675,"t":"code","b":[24],"m":"clc"},{"a":27676,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":27678,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":27680,"t":"code","b":[32,224,181],"m":"jsr","oa":46560,"o":"$B5E0"},{"a":27683,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":27685,"t":"code","b":[133,183],"m":"sta","oa":183,"o":"zpa_B7"},{"a":27687,"t":"code","b":[165,183],"m":"lda","oa":183,"o":"zpa_B7"},{"a":27689,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":27691,"c":"X attacker, Y victim, A = 0 (shields count fully)","t":"code","b":[166,179],"m":"ldx","oa":179,"o":"zpa_B3"},{"a":27693,"t":"code","b":[164,178],"m":"ldy","oa":178,"o":"model_backcol"},{"a":27695,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":27697,"t":"code","b":[32,160,110],"m":"jsr","oa":28320,"o":"damage"},{"a":27700,"t":"code","b":[165,183],"m":"lda","oa":183,"o":"zpa_B7"},{"a":27702,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":27704,"t":"code","b":[166,178],"m":"ldx","oa":178,"o":"model_backcol"},{"a":27706,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":27708,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":27710,"t":"code","b":[176,5],"m":"bcs","oa":27717,"o":"b_6C45"},{"a":27712,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":27714,"t":"code","b":[32,160,110],"m":"jsr","oa":28320,"o":"damage"},{"a":27717,"l":"b_6C45","c":"Bounce: $7A/$7B point at the difference vector at $BA","t":"code","b":[169,186],"m":"lda","x":[27710],"o":"#$BA"},{"a":27719,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":27721,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":27723,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":27725,"t":"code","b":[166,178],"m":"ldx","oa":178,"o":"model_backcol"},{"a":27727,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":27729,"t":"code","b":[76,8,109],"m":"jmp","oa":27912,"o":"bounce"},{"a":27732,"l":"gate_contact","c":"The player touches a Malir gate: the dot product (vec_dot) of the ship's third orientation row ($045D) with the unit z axis ($0DBA) must be at least 0.8 either way (its log above $FFAE), that is the ship must be lined up with the gate's axis, and the speed (speed_of) 20 or more; then the trip starts (gate_jump, $7134). Otherwise nothing happens","t":"code","b":[169,93],"m":"lda","x":[27529],"o":"#$5D"},{"a":27734,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":27736,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":27738,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":27740,"t":"code","b":[169,186],"m":"lda","o":"#$BA"},{"a":27742,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":27744,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":27746,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":27748,"t":"code","b":[32,231,148],"m":"jsr","oa":38119,"o":"vec_dot"},{"a":27751,"t":"code","b":[169,174],"m":"lda","o":"#$AE"},{"a":27753,"t":"code","b":[197,95],"m":"cmp","oa":95,"o":"acc_lo"},{"a":27755,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":27757,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":27759,"t":"code","b":[16,12],"m":"bpl","oa":27773,"o":"r_6C7D"},{"a":27761,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":27763,"t":"code","b":[32,33,124],"m":"jsr","oa":31777,"o":"speed_of"},{"a":27766,"t":"code","b":[201,20],"m":"cmp","o":"#$14"},{"a":27768,"t":"code","b":[144,3],"m":"bcc","oa":27773,"o":"r_6C7D"},{"a":27770,"t":"code","b":[76,52,113],"m":"jmp","oa":28980,"o":"gate_jump"},{"a":27773,"l":"r_6C7D","t":"code","b":[96],"m":"rts","x":[27759,27768]},{"a":27774,"l":"missile_hit","c":"A missile is in the collision. The missile is made the first object ($B2, slots and types swapped when it was the second), its type kept in $0835. A missile does not hit the ship that launched it ($0433). Touching anything in slot 6 and up, or a ship other than the one it is aimed at ($0445), it just turns into an explosion (type $22 at its position, the missile freed); a missile with no target hits any ship. A hit explodes the missile against the ship with its type's damage ($0AEF: 100 for type 9, 250 for type 10, 75 for type 11, the plasma torpedo by its death text) through blow_up ($6E4B)","t":"code","b":[189,213,8],"m":"lda","oa":2261,"x":[27546],"o":"type_flags,x"},{"a":27777,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":27779,"t":"code","b":[208,14],"m":"bne","oa":27795,"o":"b_6C93"},{"a":27781,"t":"code","b":[134,185],"m":"stx","oa":185,"o":"zpa_B9"},{"a":27783,"t":"code","b":[132,184],"m":"sty","oa":184,"o":"model_vertcounts"},{"a":27785,"t":"code","b":[166,178],"m":"ldx","oa":178,"o":"model_backcol"},{"a":27787,"t":"code","b":[165,179],"m":"lda","oa":179,"o":"zpa_B3"},{"a":27789,"t":"code","b":[133,178],"m":"sta","oa":178,"o":"model_backcol"},{"a":27791,"t":"code","b":[134,179],"m":"stx","oa":179,"o":"zpa_B3"},{"a":27793,"t":"code","b":[16,3],"m":"bpl","oa":27798,"o":"b_6C96"},{"a":27795,"l":"b_6C93","t":"code","b":[142,53,8],"m":"stx","oa":2101,"x":[27779],"o":"killer"},{"a":27798,"l":"b_6C96","t":"code","b":[164,178],"m":"ldy","oa":178,"x":[27793],"o":"model_backcol"},{"a":27800,"t":"code","b":[166,179],"m":"ldx","oa":179,"o":"zpa_B3"},{"a":27802,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":27804,"t":"code","b":[176,16],"m":"bcs","oa":27822,"o":"b_6CAE"},{"a":27806,"t":"code","b":[138],"m":"txa"},{"a":27807,"t":"code","b":[217,51,4],"m":"cmp","oa":1075,"o":"slot_faction,y"},{"a":27810,"t":"code","b":[208,1],"m":"bne","oa":27813,"o":"b_6CA5"},{"a":27812,"t":"code","b":[96],"m":"rts"},{"a":27813,"l":"b_6CA5","t":"code","b":[185,69,4],"m":"lda","oa":1093,"x":[27810],"o":"slot_target,y"},{"a":27816,"t":"code","b":[48,15],"m":"bmi","oa":27833,"o":"b_6CB9"},{"a":27818,"t":"code","b":[197,179],"m":"cmp","oa":179,"o":"zpa_B3"},{"a":27820,"t":"code","b":[240,11],"m":"beq","oa":27833,"o":"b_6CB9"},{"a":27822,"l":"b_6CAE","t":"code","b":[32,138,26],"m":"jsr","oa":6794,"x":[27804],"o":"free_slot"},{"a":27825,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":27828,"t":"code","b":[162,34],"m":"ldx","o":"#$22"},{"a":27830,"t":"code","b":[76,73,25],"m":"jmp","oa":6473,"o":"create_object"},{"a":27833,"l":"b_6CB9","t":"code","b":[166,184],"m":"ldx","oa":184,"x":[27816,27820],"o":"model_vertcounts"},{"a":27835,"t":"code","b":[189,239,10],"m":"lda","oa":2799,"o":"type_damage,x"},{"a":27838,"t":"code","b":[166,178],"m":"ldx","oa":178,"o":"model_backcol"},{"a":27840,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":27842,"t":"code","b":[76,75,110],"m":"jmp","oa":28235,"o":"blow_up"},{"a":27845,"l":"hazard_hit","c":"The second object is a hazard (flag bit 6: planets, the black hole, type $1A, which the death texts make a corrosive gas cloud, and the stars $1C and $1D). The player hears sound 11; the first object takes the hazard's damage ($0AEF; 255 for planets and the black hole) with no attacker (X = $FF) and A = $FF (no shield reduction). A gas cloud ($1A) touched is replaced by a new one at the origin","t":"code","b":[164,178],"m":"ldy","oa":178,"x":[27556],"o":"model_backcol"},{"a":27847,"t":"code","b":[208,5],"m":"bne","oa":27854,"o":"b_6CCE"},{"a":27849,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":27851,"t":"code","b":[32,145,16],"m":"jsr","oa":4241,"o":"sound_play"},{"a":27854,"l":"b_6CCE","t":"code","b":[164,185],"m":"ldy","oa":185,"x":[27847],"o":"zpa_B9"},{"a":27856,"t":"code","b":[185,239,10],"m":"lda","oa":2799,"o":"type_damage,y"},{"a":27859,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":27861,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":27863,"t":"code","b":[164,178],"m":"ldy","oa":178,"o":"model_backcol"},{"a":27865,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":27867,"t":"code","b":[32,160,110],"m":"jsr","oa":28320,"o":"damage"},{"a":27870,"t":"code","b":[165,185],"m":"lda","oa":185,"o":"zpa_B9"},{"a":27872,"t":"code","b":[201,26],"m":"cmp","o":"#$1A"},{"a":27874,"t":"code","b":[208,35],"m":"bne","oa":27911,"o":"r_6D07"},{"a":27876,"t":"code","b":[164,179],"m":"ldy","oa":179,"o":"zpa_B3"},{"a":27878,"t":"code","b":[32,138,26],"m":"jsr","oa":6794,"o":"free_slot"},{"a":27881,"t":"code","b":[169,195],"m":"lda","o":"#$C3"},{"a":27883,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":27885,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":27887,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":27889,"t":"code","b":[162,26],"m":"ldx","o":"#$1A"},{"a":27891,"t":"code","b":[76,73,25],"m":"jmp","oa":6473,"o":"create_object"},{"a":27894,"l":"contact_cooldown","c":"For a ship slot X (below 6): sets its collision cooldown $040F to 2 and, when it was already running, drops the caller's return address so the caller (ram) leaves at once. This keeps one contact from doing damage on every frame","t":"code","b":[224,6],"m":"cpx","x":[27589,27594],"o":"#$06"},{"a":27896,"t":"code","b":[176,13],"m":"bcs","oa":27911,"o":"r_6D07"},{"a":27898,"t":"code","b":[188,15,4],"m":"ldy","oa":1039,"o":"slot_cooldown,x"},{"a":27901,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":27903,"t":"code","b":[157,15,4],"m":"sta","oa":1039,"o":"slot_cooldown,x"},{"a":27906,"t":"code","b":[152],"m":"tya"},{"a":27907,"t":"code","b":[240,2],"m":"beq","oa":27911,"o":"r_6D07"},{"a":27909,"t":"code","b":[104],"m":"pla"},{"a":27910,"t":"code","b":[104],"m":"pla"},{"a":27911,"l":"r_6D07","t":"code","b":[96],"m":"rts","x":[27874,27896,27907]},{"a":27912,"l":"bounce","c":"Separates slot X and slot Y ($94/$95) after a ram: both are backed off one step along their velocities (back_off) and given a random turn (jolt_turn). When the second has flag bit 4 (it moves) the bounce is an elastic collision with the radii ($0A1D) as the masses: with d the relative velocity at ($7A) (first less second), the first's velocity becomes the second's plus d (r1-r2)/(r1+r2) and the second's becomes its own plus d 2r1/(r1+r2), the textbook head-on result. Against something that does not move, the first just reverses its velocity (reverse_velocity)","t":"code","b":[134,148],"m":"stx","oa":148,"x":[27729],"o":"tmp94"},{"a":27914,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":27916,"t":"code","b":[32,29,110],"m":"jsr","oa":28189,"o":"back_off"},{"a":27919,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":27921,"t":"code","b":[32,57,110],"m":"jsr","oa":28217,"o":"jolt_turn"},{"a":27924,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":27926,"t":"code","b":[32,29,110],"m":"jsr","oa":28189,"o":"back_off"},{"a":27929,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":27931,"t":"code","b":[32,57,110],"m":"jsr","oa":28217,"o":"jolt_turn"},{"a":27934,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":27936,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":27939,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":27942,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":27944,"t":"code","b":[208,5],"m":"bne","oa":27951,"o":"b_6D2F"},{"a":27946,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":27948,"t":"code","b":[76,4,110],"m":"jmp","oa":28164,"o":"reverse_velocity"},{"a":27951,"l":"b_6D2F","t":"code","b":[138],"m":"txa","x":[27944]},{"a":27952,"t":"code","b":[10],"m":"asl","o":"a"},{"a":27953,"t":"code","b":[168],"m":"tay"},{"a":27954,"t":"code","b":[185,29,10],"m":"lda","oa":2589,"o":"type_radius,y"},{"a":27957,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":27959,"t":"code","b":[185,30,10],"m":"lda","oa":2590,"o":"f_0A1E,y"},{"a":27962,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":27964,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":27966,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":27969,"t":"code","b":[10],"m":"asl","o":"a"},{"a":27970,"t":"code","b":[168],"m":"tay"},{"a":27971,"t":"code","b":[185,29,10],"m":"lda","oa":2589,"o":"type_radius,y"},{"a":27974,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"tmp98"},{"a":27976,"t":"code","b":[185,30,10],"m":"lda","oa":2590,"o":"f_0A1E,y"},{"a":27979,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"tmp99"},{"a":27981,"t":"code","b":[165,150],"m":"lda","oa":150,"o":"tmp96"},{"a":27983,"t":"code","b":[24],"m":"clc"},{"a":27984,"t":"code","b":[101,152],"m":"adc","oa":152,"o":"tmp98"},{"a":27986,"t":"code","b":[133,154],"m":"sta","oa":154,"o":"model_inited"},{"a":27988,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":27990,"t":"code","b":[101,153],"m":"adc","oa":153,"o":"tmp99"},{"a":27992,"t":"code","b":[133,155],"m":"sta","oa":155,"o":"model_points"},{"a":27994,"t":"code","b":[165,152],"m":"lda","oa":152,"o":"tmp98"},{"a":27996,"t":"code","b":[56],"m":"sec"},{"a":27997,"t":"code","b":[229,150],"m":"sbc","oa":150,"o":"tmp96"},{"a":27999,"t":"code","b":[133,157],"m":"sta","oa":157,"o":"model_normals"},{"a":28001,"t":"code","b":[165,153],"m":"lda","oa":153,"o":"tmp99"},{"a":28003,"t":"code","b":[229,151],"m":"sbc","oa":151,"o":"tmp97"},{"a":28005,"t":"code","b":[133,158],"m":"sta","oa":158,"o":"model_polys"},{"a":28007,"t":"code","b":[165,154],"m":"lda","oa":154,"o":"model_inited"},{"a":28009,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":28011,"t":"code","b":[165,155],"m":"lda","oa":155,"o":"model_points"},{"a":28013,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":28015,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":28018,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":28020,"t":"code","b":[133,154],"m":"sta","oa":154,"o":"model_inited"},{"a":28022,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":28024,"t":"code","b":[133,155],"m":"sta","oa":155,"o":"model_points"},{"a":28026,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":28028,"t":"code","b":[133,156],"m":"sta","oa":156,"o":"model_refs"},{"a":28030,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":28032,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":28034,"t":"code","b":[24],"m":"clc"},{"a":28035,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":28038,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":28040,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28042,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":28044,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":28046,"t":"code","b":[165,157],"m":"lda","oa":157,"o":"model_normals"},{"a":28048,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":28050,"t":"code","b":[165,158],"m":"lda","oa":158,"o":"model_polys"},{"a":28052,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":28054,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":28057,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":28059,"t":"code","b":[56],"m":"sec"},{"a":28060,"t":"code","b":[229,154],"m":"sbc","oa":154,"o":"model_inited"},{"a":28062,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":28064,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":28066,"t":"code","b":[229,155],"m":"sbc","oa":155,"o":"model_points"},{"a":28068,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":28070,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":28072,"t":"code","b":[69,156],"m":"eor","oa":156,"o":"model_refs"},{"a":28074,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":28076,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":28078,"t":"code","b":[32,209,109],"m":"jsr","oa":28113,"o":"s_6DD1"},{"a":28081,"t":"code","b":[165,152],"m":"lda","oa":152,"o":"tmp98"},{"a":28083,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":28085,"t":"code","b":[165,153],"m":"lda","oa":153,"o":"tmp99"},{"a":28087,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":28089,"t":"code","b":[32,81,180],"m":"jsr","oa":46161,"o":"$B451"},{"a":28092,"t":"code","b":[230,96],"m":"inc","oa":96,"o":"acc_mid"},{"a":28094,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":28096,"t":"code","b":[56],"m":"sec"},{"a":28097,"t":"code","b":[229,154],"m":"sbc","oa":154,"o":"model_inited"},{"a":28099,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":28101,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":28103,"t":"code","b":[229,155],"m":"sbc","oa":155,"o":"model_points"},{"a":28105,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":28107,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28109,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":28111,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":28113,"l":"s_6DD1","c":"Velocity of slot Y = the second's velocity (at ($76)) plus the vector at ($7A) times the log-form ratio in $5F-$61 (vec_scale_signed, vec_log_to_lin, vec_add_lin)","t":"code","b":[132,159],"m":"sty","oa":159,"x":[28078],"o":"model_axes"},{"a":28115,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":28117,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":28119,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28121,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":28123,"t":"code","b":[165,122],"m":"lda","oa":122,"o":"model_ptr"},{"a":28125,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":28127,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":28129,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":28131,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":28134,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":28136,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":28138,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28140,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":28142,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":28145,"t":"code","b":[164,159],"m":"ldy","oa":159,"o":"model_axes"},{"a":28147,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":28149,"t":"code","b":[24],"m":"clc"},{"a":28150,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":28153,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":28155,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28157,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":28159,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":28161,"t":"code","b":[76,89,151],"m":"jmp","oa":38745,"o":"vec_add_lin"},{"a":28164,"l":"reverse_velocity","c":"Negates the velocity of slot Y (its $0545 block, vec_neg_lin)","t":"code","b":[169,69],"m":"lda","x":[27948,28963],"o":"#$45"},{"a":28166,"t":"code","b":[24],"m":"clc"},{"a":28167,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":28170,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":28172,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28174,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":28176,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":28178,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":28180,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":28182,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":28184,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":28186,"t":"code","b":[76,227,151],"m":"jmp","oa":38883,"o":"vec_neg_lin"},{"a":28189,"l":"back_off","c":"Moves slot Y back one step: its position less its velocity (vec_sub_lin)","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[27916,27926,28894,28899,28958],"o":"slot_pos_ptr"},{"a":28192,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":28194,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":28196,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":28198,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":28200,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":28202,"t":"code","b":[24],"m":"clc"},{"a":28203,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":28206,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":28208,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28210,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":28212,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":28214,"t":"code","b":[76,158,151],"m":"jmp","oa":38814,"o":"vec_sub_lin"},{"a":28217,"l":"jolt_turn","c":"A computer ship (slot 1-5) gets a random turn rate ($0516) after a ram","t":"code","b":[192,6],"m":"cpy","x":[27921,27931],"o":"#$06"},{"a":28219,"t":"code","b":[176,13],"m":"bcs","oa":28234,"o":"r_6E4A"},{"a":28221,"t":"code","b":[152],"m":"tya"},{"a":28222,"t":"code","b":[240,10],"m":"beq","oa":28234,"o":"r_6E4A"},{"a":28224,"t":"code","b":[132,160],"m":"sty","oa":160,"o":"model_reflist"},{"a":28226,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":28229,"t":"code","b":[164,160],"m":"ldy","oa":160,"o":"model_reflist"},{"a":28231,"t":"code","b":[153,22,5],"m":"sta","oa":1302,"o":"slot_turn,y"},{"a":28234,"l":"r_6E4A","t":"code","b":[96],"m":"rts","x":[28219,28222]},{"a":28235,"l":"blow_up","c":"Slot X (a missile or a type $1B hazard) explodes against slot Y, which takes damage A ($AA). When Y is the player the window flashes (code $12), the ship is jolted (jolt_player) and sound 5 plays, otherwise sound 6. An explosion (type $17) is made at X's position, Y takes the damage (damage, attacker X, with A = 1 when X is a type 11 missile so the shields count one step less), and X's slot is freed","t":"code","b":[133,170],"m":"sta","oa":170,"x":[27571,27842],"o":"model_normvec"},{"a":28237,"t":"code","b":[134,168],"m":"stx","oa":168,"o":"model_refpts"},{"a":28239,"t":"code","b":[132,169],"m":"sty","oa":169,"o":"zpa_A9"},{"a":28241,"t":"code","b":[152],"m":"tya"},{"a":28242,"t":"code","b":[208,15],"m":"bne","oa":28259,"o":"b_6E63"},{"a":28244,"t":"code","b":[162,18],"m":"ldx","o":"#$12"},{"a":28246,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":28249,"t":"code","b":[32,29,144],"m":"jsr","oa":36893,"o":"fill_window"},{"a":28252,"t":"code","b":[32,141,110],"m":"jsr","oa":28301,"o":"jolt_player"},{"a":28255,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28257,"t":"code","b":[208,2],"m":"bne","oa":28261,"o":"b_6E65"},{"a":28259,"l":"b_6E63","t":"code","b":[169,6],"m":"lda","x":[28242],"o":"#$06"},{"a":28261,"l":"b_6E65","t":"code","b":[32,145,16],"m":"jsr","oa":4241,"x":[28257],"o":"sound_play"},{"a":28264,"t":"code","b":[162,23],"m":"ldx","o":"#$17"},{"a":28266,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":28268,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":28271,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":28274,"t":"code","b":[165,170],"m":"lda","oa":170,"o":"model_normvec"},{"a":28276,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":28278,"t":"code","b":[166,168],"m":"ldx","oa":168,"o":"model_refpts"},{"a":28280,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28282,"t":"code","b":[188,13,6],"m":"ldy","oa":1549,"o":"slot_type,x"},{"a":28285,"t":"code","b":[192,11],"m":"cpy","o":"#$0B"},{"a":28287,"t":"code","b":[208,2],"m":"bne","oa":28291,"o":"b_6E83"},{"a":28289,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":28291,"l":"b_6E83","t":"code","b":[164,169],"m":"ldy","oa":169,"x":[28287],"o":"zpa_A9"},{"a":28293,"t":"code","b":[32,160,110],"m":"jsr","oa":28320,"o":"damage"},{"a":28296,"t":"code","b":[164,168],"m":"ldy","oa":168,"o":"model_refpts"},{"a":28298,"t":"code","b":[76,138,26],"m":"jmp","oa":6794,"o":"free_slot"},{"a":28301,"l":"jolt_player","c":"Puts random numbers in the low bytes of the player's three velocity components ($0545, $0548, $054B): a small random jolt","t":"code","b":[32,197,162],"m":"jsr","oa":41669,"x":[9459,28252],"o":"random"},{"a":28304,"t":"code","b":[141,69,5],"m":"sta","oa":1349,"o":"slot_velocity"},{"a":28307,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":28310,"t":"code","b":[141,72,5],"m":"sta","oa":1352,"o":"a_0548"},{"a":28313,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":28316,"t":"code","b":[141,75,5],"m":"sta","oa":1355,"o":"a_054B"},{"a":28319,"t":"code","b":[96],"m":"rts"},{"a":28320,"l":"damage","c":"Slot Y takes damage $80 from slot X (X = $FF for no attacker); A ($A0) is 0 normally, 1 for a type 11 missile (one step of the shields less), $FF for no shield reduction. Nothing for zero damage. A slot 6 and up is never damaged, but a base (type flag bit 0) hit by the player sets $0783, which the base code reads when you dock ($A5B1 in SEG1) and which is cleared when the day changes. A ship with $0403 set is simply freed. Otherwise the ship may remember its attacker in $0439 ($6EDC: the player, a missile's launcher, or a ship that was aiming at it, unless the attacker is in slot 6 and up or is already its target), the damage is cut by the shields (shield_reduce), and a computer ship is sent spinning (random_rates) when a random number from 0 to the damage comes out 6 or more. A hit of 10 or more knocks out a system one time in five ($6F4B) instead of reaching the armour; any other hit comes off the armour word ($051D/$051E), and below zero the ship is destroyed (destroy_object) with the credit going to the attacker (or a missile's launcher, $0433)","t":"code","b":[134,158],"m":"stx","oa":158,"x":[8822,27697,27714,27867,28293],"o":"model_polys"},{"a":28322,"t":"code","b":[132,159],"m":"sty","oa":159,"o":"model_axes"},{"a":28324,"t":"code","b":[133,160],"m":"sta","oa":160,"o":"model_reflist"},{"a":28326,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":28328,"t":"code","b":[133,161],"m":"sta","oa":161,"o":"zpa_A1"},{"a":28330,"t":"code","b":[240,22],"m":"beq","oa":28354,"o":"r_6EC2"},{"a":28332,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":28334,"t":"code","b":[144,19],"m":"bcc","oa":28355,"o":"b_6EC3"},{"a":28336,"t":"code","b":[138],"m":"txa"},{"a":28337,"t":"code","b":[208,15],"m":"bne","oa":28354,"o":"r_6EC2"},{"a":28339,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":28342,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":28345,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":28347,"t":"code","b":[240,5],"m":"beq","oa":28354,"o":"r_6EC2"},{"a":28349,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":28351,"t":"code","b":[141,131,7],"m":"sta","oa":1923,"o":"shot_a_base"},{"a":28354,"l":"r_6EC2","t":"code","b":[96],"m":"rts","x":[28330,28337,28347,28409,28462]},{"a":28355,"l":"b_6EC3","t":"code","b":[190,13,6],"m":"ldx","oa":1549,"x":[28334],"o":"slot_type,y"},{"a":28358,"t":"code","b":[134,162],"m":"stx","oa":162,"o":"model_axisidx"},{"a":28360,"t":"code","b":[185,3,4],"m":"lda","oa":1027,"o":"slot_missile,y"},{"a":28363,"t":"code","b":[240,3],"m":"beq","oa":28368,"o":"b_6ED0"},{"a":28365,"t":"code","b":[76,138,26],"m":"jmp","oa":6794,"o":"free_slot"},{"a":28368,"l":"b_6ED0","t":"code","b":[166,158],"m":"ldx","oa":158,"x":[28363],"o":"model_polys"},{"a":28370,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":28372,"t":"code","b":[176,32],"m":"bcs","oa":28406,"o":"b_6EF6"},{"a":28374,"t":"code","b":[138],"m":"txa"},{"a":28375,"t":"code","b":[217,69,4],"m":"cmp","oa":1093,"o":"slot_target,y"},{"a":28378,"t":"code","b":[240,26],"m":"beq","oa":28406,"o":"b_6EF6"},{"a":28380,"c":"Records the attacker in $0439, the code above having left out an attacker in slot 6 and up or one that is already this ship's target: the player is recorded; a missile ($0403 set) whose launcher byte ($0433) is 0 or more records its launcher, whatever the missile was aimed at; any other ship is recorded only when it was aiming at this one ($0445)","t":"code","b":[138],"m":"txa"},{"a":28381,"t":"code","b":[240,18],"m":"beq","oa":28401,"o":"b_6EF1"},{"a":28383,"t":"code","b":[189,3,4],"m":"lda","oa":1027,"o":"slot_missile,x"},{"a":28386,"t":"code","b":[240,5],"m":"beq","oa":28393,"o":"b_6EE9"},{"a":28388,"t":"code","b":[189,51,4],"m":"lda","oa":1075,"o":"slot_faction,x"},{"a":28391,"t":"code","b":[16,8],"m":"bpl","oa":28401,"o":"b_6EF1"},{"a":28393,"l":"b_6EE9","t":"code","b":[189,69,4],"m":"lda","oa":1093,"x":[28386],"o":"slot_target,x"},{"a":28396,"t":"code","b":[197,159],"m":"cmp","oa":159,"o":"model_axes"},{"a":28398,"t":"code","b":[208,6],"m":"bne","oa":28406,"o":"b_6EF6"},{"a":28400,"t":"code","b":[138],"m":"txa"},{"a":28401,"l":"b_6EF1","t":"code","b":[164,159],"m":"ldy","oa":159,"x":[28381,28391],"o":"model_axes"},{"a":28403,"t":"code","b":[153,57,4],"m":"sta","oa":1081,"o":"slot_attacker,y"},{"a":28406,"l":"b_6EF6","t":"code","b":[32,136,111],"m":"jsr","oa":28552,"x":[28372,28378,28398],"o":"shield_reduce"},{"a":28409,"t":"code","b":[240,199],"m":"beq","oa":28354,"o":"r_6EC2"},{"a":28411,"t":"code","b":[166,159],"m":"ldx","oa":159,"o":"model_axes"},{"a":28413,"t":"code","b":[240,12],"m":"beq","oa":28427,"o":"b_6F0B"},{"a":28415,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":28418,"t":"code","b":[201,6],"m":"cmp","o":"#$06"},{"a":28420,"t":"code","b":[144,5],"m":"bcc","oa":28427,"o":"b_6F0B"},{"a":28422,"t":"code","b":[166,159],"m":"ldx","oa":159,"o":"model_axes"},{"a":28424,"t":"code","b":[32,220,60],"m":"jsr","oa":15580,"o":"random_rates"},{"a":28427,"l":"b_6F0B","c":"A hit of 10 or more knocks out a system one time in five","t":"code","b":[165,161],"m":"lda","oa":161,"x":[28413,28420],"o":"zpa_A1"},{"a":28429,"t":"code","b":[201,10],"m":"cmp","o":"#$0A"},{"a":28431,"t":"code","b":[144,7],"m":"bcc","oa":28440,"o":"b_6F18"},{"a":28433,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":28435,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":28438,"t":"code","b":[240,51],"m":"beq","oa":28491,"o":"b_6F4B"},{"a":28440,"l":"b_6F18","c":"The armour word of slot Y less the damage","t":"code","b":[165,159],"m":"lda","oa":159,"x":[28431,28514],"o":"model_axes"},{"a":28442,"t":"code","b":[168],"m":"tay"},{"a":28443,"t":"code","b":[10],"m":"asl","o":"a"},{"a":28444,"t":"code","b":[170],"m":"tax"},{"a":28445,"t":"code","b":[189,29,5],"m":"lda","oa":1309,"o":"slot_armour,x"},{"a":28448,"t":"code","b":[56],"m":"sec"},{"a":28449,"t":"code","b":[229,161],"m":"sbc","oa":161,"o":"zpa_A1"},{"a":28451,"t":"code","b":[157,29,5],"m":"sta","oa":1309,"o":"slot_armour,x"},{"a":28454,"t":"code","b":[176,3],"m":"bcs","oa":28459,"o":"b_6F2B"},{"a":28456,"t":"code","b":[222,30,5],"m":"dec","oa":1310,"o":"f_051E,x"},{"a":28459,"l":"b_6F2B","t":"code","b":[189,30,5],"m":"lda","oa":1310,"x":[28454],"o":"f_051E,x"},{"a":28462,"t":"code","b":[16,146],"m":"bpl","oa":28354,"o":"r_6EC2"},{"a":28464,"t":"code","b":[166,158],"m":"ldx","oa":158,"o":"model_polys"},{"a":28466,"t":"code","b":[48,16],"m":"bmi","oa":28484,"o":"b_6F44"},{"a":28468,"t":"code","b":[188,13,6],"m":"ldy","oa":1549,"o":"slot_type,x"},{"a":28471,"t":"code","b":[185,213,8],"m":"lda","oa":2261,"o":"type_flags,y"},{"a":28474,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":28476,"t":"code","b":[240,6],"m":"beq","oa":28484,"o":"b_6F44"},{"a":28478,"t":"code","b":[189,51,4],"m":"lda","oa":1075,"o":"slot_faction,x"},{"a":28481,"t":"code","b":[76,70,111],"m":"jmp","oa":28486,"o":"j_6F46"},{"a":28484,"l":"b_6F44","t":"code","b":[165,158],"m":"lda","oa":158,"x":[28466,28476],"o":"model_polys"},{"a":28486,"l":"j_6F46","t":"code","b":[164,159],"m":"ldy","oa":159,"x":[28481],"o":"model_axes"},{"a":28488,"t":"code","b":[76,95,26],"m":"jmp","oa":6751,"o":"destroy_object"},{"a":28491,"l":"b_6F4B","c":"Knocks out a random system ($6FC7; picked again when the first pick is the laser or the launcher): sets its bit in $0409, and for the player prints \"<system> hit\" on the message line ($9E4C, $9ADC) when the ship has that system ($0C45). The armour is spared; a system already out passes the damage on to the armour instead","t":"code","b":[32,199,111],"m":"jsr","oa":28615,"x":[28438],"o":"random_system"},{"a":28494,"t":"code","b":[165,164],"m":"lda","oa":164,"o":"model_axisvec"},{"a":28496,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":28498,"t":"code","b":[240,4],"m":"beq","oa":28504,"o":"b_6F58"},{"a":28500,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":28502,"t":"code","b":[208,3],"m":"bne","oa":28507,"o":"b_6F5B"},{"a":28504,"l":"b_6F58","t":"code","b":[32,199,111],"m":"jsr","oa":28615,"x":[28498],"o":"random_system"},{"a":28507,"l":"b_6F5B","t":"code","b":[164,159],"m":"ldy","oa":159,"x":[28502],"o":"model_axes"},{"a":28509,"t":"code","b":[185,9,4],"m":"lda","oa":1033,"o":"slot_damage,y"},{"a":28512,"t":"code","b":[37,164],"m":"and","oa":164,"o":"model_axisvec"},{"a":28514,"t":"code","b":[208,180],"m":"bne","oa":28440,"o":"b_6F18"},{"a":28516,"t":"code","b":[185,9,4],"m":"lda","oa":1033,"o":"slot_damage,y"},{"a":28519,"t":"code","b":[5,164],"m":"ora","oa":164,"o":"model_axisvec"},{"a":28521,"t":"code","b":[153,9,4],"m":"sta","oa":1033,"o":"slot_damage,y"},{"a":28524,"t":"code","b":[152],"m":"tya"},{"a":28525,"t":"code","b":[208,87],"m":"bne","oa":28614,"o":"r_6FC6"},{"a":28527,"t":"code","b":[173,69,12],"m":"lda","oa":3141,"o":"type_systems"},{"a":28530,"t":"code","b":[37,164],"m":"and","oa":164,"o":"model_axisvec"},{"a":28532,"t":"code","b":[240,80],"m":"beq","oa":28614,"o":"r_6FC6"},{"a":28534,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":28536,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":28539,"t":"code","b":[165,163],"m":"lda","oa":163,"o":"zpa_A3"},{"a":28541,"t":"code","b":[10],"m":"asl","o":"a"},{"a":28542,"t":"code","b":[168],"m":"tay"},{"a":28543,"t":"code","b":[190,217,111],"m":"ldx","oa":28633,"o":"system_msgs,y"},{"a":28546,"t":"code","b":[185,218,111],"m":"lda","oa":28634,"o":"f_6FDA,y"},{"a":28549,"t":"code","b":[76,220,154],"m":"jmp","oa":39644,"o":"print_message"},{"a":28552,"l":"shield_reduce","c":"The damage after the shields, in A. With A = $FF ($A0 negative) the damage stands. Otherwise bearing ($7947) gives the dot product of the victim's third orientation row with the line from attacker to victim; ROR $61 puts bit 0 of its sign in the carry, set for a hit from behind (the third row points to the ship's rear). A hit from behind uses the low nibble of the type's shield strengths ($0C6C), unless the aft shield is out ($0409 bit 3); from the front the high nibble, unless the fore shield is out (bit 4). Each step of strength halves the damage, one step less when $A0 is 1","t":"code","b":[165,160],"m":"lda","oa":160,"x":[28406],"o":"model_reflist"},{"a":28554,"t":"code","b":[48,56],"m":"bmi","oa":28612,"o":"b_6FC4"},{"a":28556,"t":"code","b":[166,158],"m":"ldx","oa":158,"o":"model_polys"},{"a":28558,"t":"code","b":[164,159],"m":"ldy","oa":159,"o":"model_axes"},{"a":28560,"t":"code","b":[32,71,121],"m":"jsr","oa":31047,"o":"bearing"},{"a":28563,"t":"code","b":[102,97],"m":"ror","oa":97,"o":"acc_hi"},{"a":28565,"t":"code","b":[164,159],"m":"ldy","oa":159,"o":"model_axes"},{"a":28567,"t":"code","b":[166,162],"m":"ldx","oa":162,"o":"model_axisidx"},{"a":28569,"t":"code","b":[189,108,12],"m":"lda","oa":3180,"o":"type_shields,x"},{"a":28572,"t":"code","b":[133,165],"m":"sta","oa":165,"o":"zpa_A5"},{"a":28574,"t":"code","b":[185,9,4],"m":"lda","oa":1033,"o":"slot_damage,y"},{"a":28577,"t":"code","b":[176,12],"m":"bcs","oa":28591,"o":"b_6FAF"},{"a":28579,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":28581,"t":"code","b":[208,29],"m":"bne","oa":28612,"o":"b_6FC4"},{"a":28583,"t":"code","b":[165,165],"m":"lda","oa":165,"o":"zpa_A5"},{"a":28585,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":28586,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":28587,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":28588,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":28589,"t":"code","b":[16,6],"m":"bpl","oa":28597,"o":"b_6FB5"},{"a":28591,"l":"b_6FAF","t":"code","b":[41,8],"m":"and","x":[28577],"o":"#$08"},{"a":28593,"t":"code","b":[208,17],"m":"bne","oa":28612,"o":"b_6FC4"},{"a":28595,"t":"code","b":[165,165],"m":"lda","oa":165,"o":"zpa_A5"},{"a":28597,"l":"b_6FB5","t":"code","b":[41,15],"m":"and","x":[28589],"o":"#$0F"},{"a":28599,"t":"code","b":[240,11],"m":"beq","oa":28612,"o":"b_6FC4"},{"a":28601,"t":"code","b":[166,160],"m":"ldx","oa":160,"o":"model_reflist"},{"a":28603,"t":"code","b":[208,2],"m":"bne","oa":28607,"o":"b_6FBF"},{"a":28605,"l":"b_6FBD","t":"code","b":[70,161],"m":"lsr","oa":161,"x":[28610],"o":"zpa_A1"},{"a":28607,"l":"b_6FBF","t":"code","b":[56],"m":"sec","x":[28603]},{"a":28608,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":28610,"t":"code","b":[208,249],"m":"bne","oa":28605,"o":"b_6FBD"},{"a":28612,"l":"b_6FC4","t":"code","b":[165,161],"m":"lda","oa":161,"x":[28554,28581,28593,28599],"o":"zpa_A1"},{"a":28614,"l":"r_6FC6","t":"code","b":[96],"m":"rts","x":[28525,28532]},{"a":28615,"l":"random_system","c":"A random system 0-5 in $A3 and its bit (1 shl $A3) in $A4: launcher, laser, engine, aft shield, fore shield, ECM","t":"code","b":[169,5],"m":"lda","x":[28491,28504],"o":"#$05"},{"a":28617,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":28620,"t":"code","b":[133,163],"m":"sta","oa":163,"o":"zpa_A3"},{"a":28622,"t":"code","b":[170],"m":"tax"},{"a":28623,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28625,"t":"code","b":[56],"m":"sec"},{"a":28626,"l":"b_6FD2","t":"code","b":[42],"m":"rol","x":[28628],"o":"a"},{"a":28627,"t":"code","b":[202],"m":"dex"},{"a":28628,"t":"code","b":[16,252],"m":"bpl","oa":28626,"o":"b_6FD2"},{"a":28630,"t":"code","b":[133,164],"m":"sta","oa":164,"o":"model_axisvec"},{"a":28632,"t":"code","b":[96],"m":"rts"},{"a":28633,"l":"system_msgs","c":"Pointers to the six \"<system> hit\" messages, indexed by the bit number of $0409","t":"word","b":[229,111,242,111,252,111,7,112],"d":[28645,28658,28668,28679],"x":[28543]},{"a":28634,"t":"note","l":"f_6FDA","c":"The high bytes of the system message pointers, read at $6FDA + 2 * bit","note":"inside the item at $6FD9","x":[28546]},{"a":28641,"t":"word","b":[22,112,38,112],"d":[28694,28710]},{"a":28645,"l":"str_system_hit","c":"The messages, zero-ended: \"Launcher hit\", \"Laser hit\", \"Engine hit\", \"Aft Shield hit\", \"Fore Shield hit\", \"ECM Unit hit\"","t":"byte","b":[76,97,117,110,99,104,101,114]},{"a":28653,"t":"byte","b":[32,104,105,116,0,76,97,115]},{"a":28661,"t":"byte","b":[101,114,32,104,105,116,0,69]},{"a":28669,"t":"byte","b":[110,103,105,110,101,32,104,105]},{"a":28677,"t":"byte","b":[116,0,65,102,116,32,83,104]},{"a":28685,"t":"byte","b":[105,101,108,100,32,104,105,116]},{"a":28693,"t":"byte","b":[0,70,111,114,101,32,83,104]},{"a":28701,"t":"byte","b":[105,101,108,100,32,104,105,116]},{"a":28709,"t":"byte","b":[0,69,67,77,32,85,110,105]},{"a":28717,"t":"byte","b":[116,32,104,105,116,0]},{"a":28723,"l":"dock_check","c":"Called by build_draw_list ($3EA6) after each object is drawn, for the object the player touched in the cockpit view ($0837 against the drawn slot in $5C), when its face signs are fresh. facing_face finds the first group of the model's faces all turned toward the player: none, and nothing happens; group 0 (a base's docking face) with a base (flag bit 0) and the player's speed (speed_of) under 21 docks (dock, dropping the caller's return); any other group is a collision (collide)","t":"code","b":[165,92],"m":"lda","oa":92,"x":[16038],"o":"drawn_slot"},{"a":28725,"t":"code","b":[205,55,8],"m":"cmp","oa":2103,"o":"touched"},{"a":28728,"t":"code","b":[208,86],"m":"bne","oa":28816,"o":"r_7090"},{"a":28730,"t":"code","b":[32,98,112],"m":"jsr","oa":28770,"o":"facing_face"},{"a":28733,"t":"code","b":[48,81],"m":"bmi","oa":28816,"o":"r_7090"},{"a":28735,"t":"code","b":[208,23],"m":"bne","oa":28760,"o":"b_7058"},{"a":28737,"t":"code","b":[164,93],"m":"ldy","oa":93,"o":"drawn_type"},{"a":28739,"t":"code","b":[185,213,8],"m":"lda","oa":2261,"o":"type_flags,y"},{"a":28742,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":28744,"t":"code","b":[240,14],"m":"beq","oa":28760,"o":"b_7058"},{"a":28746,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":28748,"t":"code","b":[32,33,124],"m":"jsr","oa":31777,"o":"speed_of"},{"a":28751,"t":"code","b":[201,21],"m":"cmp","o":"#$15"},{"a":28753,"t":"code","b":[176,5],"m":"bcs","oa":28760,"o":"b_7058"},{"a":28755,"t":"code","b":[104],"m":"pla"},{"a":28756,"t":"code","b":[104],"m":"pla"},{"a":28757,"t":"code","b":[76,148,112],"m":"jmp","oa":28820,"o":"dock"},{"a":28760,"l":"b_7058","t":"code","b":[162,0],"m":"ldx","x":[28735,28744,28753],"o":"#$00"},{"a":28762,"t":"code","b":[172,55,8],"m":"ldy","oa":2103,"o":"touched"},{"a":28765,"t":"code","b":[104],"m":"pla"},{"a":28766,"t":"code","b":[104],"m":"pla"},{"a":28767,"t":"code","b":[76,108,107],"m":"jmp","oa":27500,"o":"collide"},{"a":28770,"l":"facing_face","c":"Walks the model's face groups (($BC) the size of each, ending with 0; ($BA) the normals they list): returns in Y the first group whose faces all have a negative sign in $FA36 (face_signs: turned toward the viewer), Z set for group 0; Y = $FF (N set) when there is none","t":"code","b":[160,0],"m":"ldy","x":[28730],"o":"#$00"},{"a":28772,"t":"code","b":[132,128],"m":"sty","oa":128,"o":"tmp80"},{"a":28774,"t":"code","b":[132,129],"m":"sty","oa":129,"o":"tmp81"},{"a":28776,"l":"b_7068","t":"code","b":[177,188],"m":"lda","oa":188,"x":[28812],"o":"(model_groupsizes),y"},{"a":28778,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":28780,"t":"code","b":[240,35],"m":"beq","oa":28817,"o":"b_7091"},{"a":28782,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":28784,"t":"code","b":[164,128],"m":"ldy","oa":128,"o":"tmp80"},{"a":28786,"l":"b_7072","t":"code","b":[177,186],"m":"lda","oa":186,"x":[28797],"o":"(model_groups),y"},{"a":28788,"t":"code","b":[170],"m":"tax"},{"a":28789,"t":"code","b":[189,54,250],"m":"lda","oa":64054,"o":"f_FA36,x"},{"a":28792,"t":"code","b":[16,7],"m":"bpl","oa":28801,"o":"b_7081"},{"a":28794,"t":"code","b":[200],"m":"iny"},{"a":28795,"t":"code","b":[198,130],"m":"dec","oa":130,"o":"tmp82"},{"a":28797,"t":"code","b":[208,243],"m":"bne","oa":28786,"o":"b_7072"},{"a":28799,"t":"code","b":[240,13],"m":"beq","oa":28814,"o":"b_708E"},{"a":28801,"l":"b_7081","t":"code","b":[165,128],"m":"lda","oa":128,"x":[28792],"o":"tmp80"},{"a":28803,"t":"code","b":[24],"m":"clc"},{"a":28804,"t":"code","b":[101,131],"m":"adc","oa":131,"o":"tmp83"},{"a":28806,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":28808,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":28810,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":28812,"t":"code","b":[16,218],"m":"bpl","oa":28776,"o":"b_7068"},{"a":28814,"l":"b_708E","t":"code","b":[164,129],"m":"ldy","oa":129,"x":[28799],"o":"tmp81"},{"a":28816,"l":"r_7090","t":"code","b":[96],"m":"rts","x":[28728,28733]},{"a":28817,"l":"b_7091","t":"code","b":[160,255],"m":"ldy","x":[28780],"o":"#$FF"},{"a":28819,"t":"code","b":[96],"m":"rts"},{"a":28820,"l":"dock","c":"Docks. In system 9 ($071D, the Manchi system) the game is won: load_won. Otherwise the models are reset, the screen cleared to colour 1 and bank 3 shown, the hum stopped ($1E = 0), SEG1 loaded over SEG0 and the base run (station_run, $A49A) until the player leaves. Then the slot models and SEG0 come back, the speed is set to 0, the ship is backed off twice along its velocity, its velocity made a unit vector away from the base (times 4 at a base whose map byte $5610 is $10), backed off once more, reversed, and given a collision cooldown of 8; the view goes back to the cockpit","t":"code","b":[173,29,7],"m":"lda","oa":1821,"x":[28757],"o":"cur_system"},{"a":28823,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":28825,"t":"code","b":[208,3],"m":"bne","oa":28830,"o":"b_709E"},{"a":28827,"t":"code","b":[76,50,21],"m":"jmp","oa":5426,"o":"load_won"},{"a":28830,"l":"b_709E","t":"code","b":[32,74,29],"m":"jsr","oa":7498,"x":[28825],"o":"reset_models"},{"a":28833,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":28835,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":28838,"t":"code","b":[32,129,185],"m":"jsr","oa":47489,"o":"$B981"},{"a":28841,"t":"code","b":[32,246,142],"m":"jsr","oa":36598,"o":"show_bank3"},{"a":28844,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28846,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":28848,"t":"code","b":[32,7,21],"m":"jsr","oa":5383,"o":"load_seg1"},{"a":28851,"t":"code","b":[32,154,164],"m":"jsr","oa":42138,"o":"station_run"},{"a":28854,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28856,"t":"code","b":[141,50,113],"m":"sta","oa":28978,"o":"exit_speed"},{"a":28859,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28861,"t":"code","b":[141,51,113],"m":"sta","oa":28979,"o":"a_7133"},{"a":28864,"t":"code","b":[173,16,86],"m":"lda","oa":22032,"o":"$5610"},{"a":28867,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":28869,"t":"code","b":[208,10],"m":"bne","oa":28881,"o":"b_70D1"},{"a":28871,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28873,"t":"code","b":[141,50,113],"m":"sta","oa":28978,"o":"exit_speed"},{"a":28876,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":28878,"t":"code","b":[141,51,113],"m":"sta","oa":28979,"o":"a_7133"},{"a":28881,"l":"b_70D1","t":"code","b":[32,106,29],"m":"jsr","oa":7530,"x":[28869],"o":"load_slot_models"},{"a":28884,"t":"code","b":[32,248,20],"m":"jsr","oa":5368,"o":"load_seg0"},{"a":28887,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28889,"t":"code","b":[141,21,4],"m":"sta","oa":1045,"o":"slot_speed"},{"a":28892,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":28894,"t":"code","b":[32,29,110],"m":"jsr","oa":28189,"o":"back_off"},{"a":28897,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":28899,"t":"code","b":[32,29,110],"m":"jsr","oa":28189,"o":"back_off"},{"a":28902,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":28904,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":28906,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28908,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":28910,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":28912,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":28914,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28916,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":28918,"t":"code","b":[32,114,147],"m":"jsr","oa":37746,"o":"vec_lin_to_log"},{"a":28921,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":28923,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":28925,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28927,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":28929,"t":"code","b":[32,105,150],"m":"jsr","oa":38505,"o":"vec_normalise"},{"a":28932,"t":"code","b":[173,50,113],"m":"lda","oa":28978,"o":"exit_speed"},{"a":28935,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":28937,"t":"code","b":[173,51,113],"m":"lda","oa":28979,"o":"a_7133"},{"a":28940,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":28942,"t":"code","b":[32,229,149],"m":"jsr","oa":38373,"o":"vec_scale"},{"a":28945,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":28947,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":28949,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":28951,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":28953,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":28956,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":28958,"t":"code","b":[32,29,110],"m":"jsr","oa":28189,"o":"back_off"},{"a":28961,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":28963,"t":"code","b":[32,4,110],"m":"jsr","oa":28164,"o":"reverse_velocity"},{"a":28966,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":28968,"t":"code","b":[141,15,4],"m":"sta","oa":1039,"o":"slot_cooldown"},{"a":28971,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":28973,"t":"code","b":[133,30],"m":"sta","oa":30,"o":"hum_on"},{"a":28975,"t":"code","b":[76,113,46],"m":"jmp","oa":11889,"o":"back_to_cockpit"},{"a":28978,"l":"exit_speed","c":"The log of the speed the ship leaves a base with: $0000 (1) normally, $0200 (4) at a base whose map byte $5610 is $10","t":"byte","b":[0],"x":[28856,28873,28932]},{"a":28979,"l":"a_7133","c":"The whole part of the exit speed's log: 0 for speed 1, 2 for speed 4","t":"byte","b":[0],"x":[28861,28878,28937]},{"a":28980,"l":"gate_jump","c":"The Malir gate trip. No base touched, no destination ($072C = $FF), speed $7F, the player's thrust doubled ($0C05 + 1), and 256 passes of flying with the particles streaming past (the flight routines without the keys). Then the current system's map is loaded and the gate in this sector found in it (type $14 at the sector $071E/$071F); its entry ($55B0) points to four bytes at $5630: the system, the sector across and down it leads to, and the number of rings to pass, kept in gate_dest. \"Entering worm hole\" ($CF1D) is printed, every slot but the player's freed, the ship turned to face along z at speed 5 and put at the origin with no velocity, the wormhole made (make_wormhole) and flown ($0838 = 1) until wormhole_rings says it is over. Enough rings passed: the system and sector become the gate's, the new map is loaded, \"Entering \" ($CF1B) and the system's name ($5505) printed; too few: \"Faulty jump!\" ($CF1C) and the old map reloaded. The sector is then entered ($0D04-$0D06 = $FF, the navigation tiles, an encounter roll of $10, enter_sector), and the thrust put back","t":"code","b":[169,255],"m":"lda","x":[27770],"o":"#$FF"},{"a":28982,"t":"code","b":[141,55,8],"m":"sta","oa":2103,"o":"touched"},{"a":28985,"t":"code","b":[141,44,7],"m":"sta","oa":1836,"o":"dest_x"},{"a":28988,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":28990,"t":"code","b":[141,21,4],"m":"sta","oa":1045,"o":"slot_speed"},{"a":28993,"t":"code","b":[238,5,12],"m":"inc","oa":3077,"o":"a_0C05"},{"a":28996,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":28998,"t":"code","b":[133,94],"m":"sta","oa":94,"o":"pass_count"},{"a":29000,"l":"b_7148","c":"256 frames of the jump: thrust, movement, then unless the frame is skipped (frame_skip3), the camera, the particles, drawing and showing the frame","t":"code","b":[32,211,116],"m":"jsr","oa":29907,"x":[29025],"o":"apply_thrust"},{"a":29003,"t":"code","b":[32,252,117],"m":"jsr","oa":30204,"o":"move_objects"},{"a":29006,"t":"code","b":[32,112,164],"m":"jsr","oa":42096,"o":"frame_skip3"},{"a":29009,"t":"code","b":[176,12],"m":"bcs","oa":29023,"o":"b_715F"},{"a":29011,"t":"code","b":[32,25,101],"m":"jsr","oa":25881,"o":"update_camera"},{"a":29014,"t":"code","b":[32,114,119],"m":"jsr","oa":30578,"o":"place_particles"},{"a":29017,"t":"code","b":[32,136,164],"m":"jsr","oa":42120,"o":"draw_frame"},{"a":29020,"t":"code","b":[32,103,114],"m":"jsr","oa":29287,"o":"show_frame"},{"a":29023,"l":"b_715F","t":"code","b":[230,94],"m":"inc","oa":94,"x":[29009],"o":"pass_count"},{"a":29025,"t":"code","b":[208,229],"m":"bne","oa":29000,"o":"b_7148"},{"a":29027,"t":"code","b":[32,246,142],"m":"jsr","oa":36598,"o":"show_bank3"},{"a":29030,"t":"code","b":[32,122,46],"m":"jsr","oa":11898,"o":"load_system_map"},{"a":29033,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":29035,"l":"b_716B","c":"Finds the Malir gate (type $14) in the current sector among the map's 32 entries","t":"code","b":[169,20],"m":"lda","x":[29059],"o":"#$14"},{"a":29037,"t":"code","b":[217,144,85],"m":"cmp","oa":21904,"o":"$5590,y"},{"a":29040,"t":"code","b":[208,16],"m":"bne","oa":29058,"o":"b_7182"},{"a":29042,"t":"code","b":[173,30,7],"m":"lda","oa":1822,"o":"cur_sector_x"},{"a":29045,"t":"code","b":[217,16,85],"m":"cmp","oa":21776,"o":"$5510,y"},{"a":29048,"t":"code","b":[208,8],"m":"bne","oa":29058,"o":"b_7182"},{"a":29050,"t":"code","b":[173,31,7],"m":"lda","oa":1823,"o":"cur_sector_y"},{"a":29053,"t":"code","b":[217,48,85],"m":"cmp","oa":21808,"o":"$5530,y"},{"a":29056,"t":"code","b":[240,3],"m":"beq","oa":29061,"o":"b_7185"},{"a":29058,"l":"b_7182","t":"code","b":[136],"m":"dey","x":[29040,29048]},{"a":29059,"t":"code","b":[16,230],"m":"bpl","oa":29035,"o":"b_716B"},{"a":29061,"l":"b_7185","t":"code","b":[190,176,85],"m":"ldx","oa":21936,"x":[29056],"o":"$55B0,y"},{"a":29064,"t":"code","b":[189,48,86],"m":"lda","oa":22064,"o":"$5630,x"},{"a":29067,"t":"code","b":[141,189,114],"m":"sta","oa":29373,"o":"gate_dest"},{"a":29070,"t":"code","b":[189,49,86],"m":"lda","oa":22065,"o":"$5631,x"},{"a":29073,"t":"code","b":[141,190,114],"m":"sta","oa":29374,"o":"a_72BE"},{"a":29076,"t":"code","b":[189,50,86],"m":"lda","oa":22066,"o":"$5632,x"},{"a":29079,"t":"code","b":[141,191,114],"m":"sta","oa":29375,"o":"a_72BF"},{"a":29082,"t":"code","b":[189,51,86],"m":"lda","oa":22067,"o":"$5633,x"},{"a":29085,"t":"code","b":[141,192,114],"m":"sta","oa":29376,"o":"a_72C0"},{"a":29088,"c":"$CF1D printed, then everything but the player cleared away","t":"code","b":[32,64,143],"m":"jsr","oa":36672,"o":"copy_to_bank1"},{"a":29091,"t":"code","b":[162,29],"m":"ldx","o":"#$1D"},{"a":29093,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":29095,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":29098,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":29100,"l":"b_71AC","t":"code","b":[32,138,26],"m":"jsr","oa":6794,"x":[29104],"o":"free_slot"},{"a":29103,"t":"code","b":[136],"m":"dey"},{"a":29104,"t":"code","b":[208,250],"m":"bne","oa":29100,"o":"b_71AC"},{"a":29106,"t":"code","b":[32,74,29],"m":"jsr","oa":7498,"o":"reset_models"},{"a":29109,"t":"code","b":[32,30,49],"m":"jsr","oa":12574,"o":"clear_tac"},{"a":29112,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":29114,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":29116,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":29118,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":29120,"t":"code","b":[32,246,144],"m":"jsr","oa":37110,"o":"copy_identity"},{"a":29123,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":29125,"t":"code","b":[141,21,4],"m":"sta","oa":1045,"o":"slot_speed"},{"a":29128,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":29130,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29132,"l":"b_71CC","t":"code","b":[153,69,5],"m":"sta","oa":1349,"x":[29139],"o":"slot_velocity,y"},{"a":29135,"t":"code","b":[153,93,6],"m":"sta","oa":1629,"o":"slot_position,y"},{"a":29138,"t":"code","b":[136],"m":"dey"},{"a":29139,"t":"code","b":[16,247],"m":"bpl","oa":29132,"o":"b_71CC"},{"a":29141,"t":"code","b":[32,44,116],"m":"jsr","oa":29740,"o":"make_wormhole"},{"a":29144,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":29146,"t":"code","b":[141,56,8],"m":"sta","oa":2104,"o":"in_wormhole"},{"a":29149,"l":"b_71DD","c":"The wormhole loop: thrust, turning, movement, drawing unless skipped (frame_skip5), the keys, wormhole_step and wormhole_rings, while it returns carry set","t":"code","b":[32,211,116],"m":"jsr","oa":29907,"x":[29183],"o":"apply_thrust"},{"a":29152,"t":"code","b":[32,52,118],"m":"jsr","oa":30260,"o":"turn_objects"},{"a":29155,"t":"code","b":[32,252,117],"m":"jsr","oa":30204,"o":"move_objects"},{"a":29158,"t":"code","b":[32,124,164],"m":"jsr","oa":42108,"o":"frame_skip5"},{"a":29161,"t":"code","b":[176,9],"m":"bcs","oa":29172,"o":"b_71F4"},{"a":29163,"t":"code","b":[32,25,101],"m":"jsr","oa":25881,"o":"update_camera"},{"a":29166,"t":"code","b":[32,136,164],"m":"jsr","oa":42120,"o":"draw_frame"},{"a":29169,"t":"code","b":[32,211,142],"m":"jsr","oa":36563,"o":"flip_buffers"},{"a":29172,"l":"b_71F4","t":"code","b":[230,94],"m":"inc","oa":94,"x":[29161],"o":"pass_count"},{"a":29174,"t":"code","b":[32,95,19],"m":"jsr","oa":4959,"o":"do_key"},{"a":29177,"t":"code","b":[32,120,114],"m":"jsr","oa":29304,"o":"wormhole_step"},{"a":29180,"t":"code","b":[32,193,114],"m":"jsr","oa":29377,"o":"wormhole_rings"},{"a":29183,"t":"code","b":[176,220],"m":"bcs","oa":29149,"o":"b_71DD"},{"a":29185,"t":"code","b":[32,246,142],"m":"jsr","oa":36598,"o":"show_bank3"},{"a":29188,"t":"code","b":[32,100,161],"m":"jsr","oa":41316,"o":"mirror_text_off"},{"a":29191,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29193,"t":"code","b":[133,58],"m":"sta","oa":58,"o":"draw_buffer"},{"a":29195,"c":"Rings passed against the number needed ($72C0)","t":"code","b":[173,162,116],"m":"lda","oa":29858,"o":"a_74A2"},{"a":29198,"t":"code","b":[205,192,114],"m":"cmp","oa":29376,"o":"a_72C0"},{"a":29201,"t":"code","b":[176,13],"m":"bcs","oa":29216,"o":"b_7220"},{"a":29203,"t":"code","b":[162,28],"m":"ldx","o":"#$1C"},{"a":29205,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":29207,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":29210,"t":"code","b":[32,122,46],"m":"jsr","oa":11898,"o":"load_system_map"},{"a":29213,"t":"code","b":[76,67,114],"m":"jmp","oa":29251,"o":"j_7243"},{"a":29216,"l":"b_7220","t":"code","b":[173,189,114],"m":"lda","oa":29373,"x":[29201],"o":"gate_dest"},{"a":29219,"t":"code","b":[141,29,7],"m":"sta","oa":1821,"o":"cur_system"},{"a":29222,"t":"code","b":[173,190,114],"m":"lda","oa":29374,"o":"a_72BE"},{"a":29225,"t":"code","b":[141,30,7],"m":"sta","oa":1822,"o":"cur_sector_x"},{"a":29228,"t":"code","b":[173,191,114],"m":"lda","oa":29375,"o":"a_72BF"},{"a":29231,"t":"code","b":[141,31,7],"m":"sta","oa":1823,"o":"cur_sector_y"},{"a":29234,"t":"code","b":[32,122,46],"m":"jsr","oa":11898,"o":"load_system_map"},{"a":29237,"t":"code","b":[162,27],"m":"ldx","o":"#$1B"},{"a":29239,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":29241,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":29244,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":29246,"t":"code","b":[160,85],"m":"ldy","o":"#$55"},{"a":29248,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":29251,"l":"j_7243","t":"code","b":[169,255],"m":"lda","x":[29213],"o":"#$FF"},{"a":29253,"t":"code","b":[141,4,13],"m":"sta","oa":3332,"o":"encounter_types"},{"a":29256,"t":"code","b":[141,5,13],"m":"sta","oa":3333,"o":"a_0D05"},{"a":29259,"t":"code","b":[141,6,13],"m":"sta","oa":3334,"o":"a_0D06"},{"a":29262,"t":"code","b":[32,177,38],"m":"jsr","oa":9905,"o":"load_nav_tiles"},{"a":29265,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":29267,"t":"code","b":[32,30,44],"m":"jsr","oa":11294,"o":"encounter_roll"},{"a":29270,"t":"code","b":[32,160,21],"m":"jsr","oa":5536,"o":"enter_sector"},{"a":29273,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29275,"t":"code","b":[141,56,8],"m":"sta","oa":2104,"o":"in_wormhole"},{"a":29278,"t":"code","b":[206,5,12],"m":"dec","oa":3077,"o":"a_0C05"},{"a":29281,"t":"code","b":[32,76,161],"m":"jsr","oa":41292,"o":"mirror_text_on"},{"a":29284,"t":"code","b":[76,64,143],"m":"jmp","oa":36672,"o":"copy_to_bank1"},{"a":29287,"l":"show_frame","c":"Shows the buffer just drawn: bank 3 or bank 1 by $3A bit 7, and flips the drawing buffer (flip_draw_buffer)","t":"code","b":[165,58],"m":"lda","oa":58,"x":[29020],"o":"draw_buffer"},{"a":29289,"t":"code","b":[240,6],"m":"beq","oa":29297,"o":"b_7271"},{"a":29291,"t":"code","b":[32,26,143],"m":"jsr","oa":36634,"o":"show_bank1"},{"a":29294,"t":"code","b":[76,116,114],"m":"jmp","oa":29300,"o":"j_7274"},{"a":29297,"l":"b_7271","t":"code","b":[32,246,142],"m":"jsr","oa":36598,"x":[29289],"o":"show_bank3"},{"a":29300,"l":"j_7274","t":"code","b":[32,235,142],"m":"jsr","oa":36587,"x":[29294],"o":"flip_draw_buffer"},{"a":29303,"l":"r_7277","t":"code","b":[96],"m":"rts","x":[29330]},{"a":29304,"l":"wormhole_step","c":"Each wormhole frame: the ship moves a quarter unit along -z ($0663-$0665), and every 8th frame, unless $0741 is set, the armour word $051D/$051E loses one; below zero the player dies ($0835 = $1A, player_destroyed), with the corrosive-gas death text. Then the panel's speed and armour are redrawn","t":"code","b":[173,99,6],"m":"lda","oa":1635,"x":[29177],"o":"a_0663"},{"a":29307,"t":"code","b":[56],"m":"sec"},{"a":29308,"t":"code","b":[233,64],"m":"sbc","o":"#$40"},{"a":29310,"t":"code","b":[141,99,6],"m":"sta","oa":1635,"o":"a_0663"},{"a":29313,"t":"code","b":[176,11],"m":"bcs","oa":29326,"o":"b_728E"},{"a":29315,"t":"code","b":[173,100,6],"m":"lda","oa":1636,"o":"a_0664"},{"a":29318,"t":"code","b":[208,3],"m":"bne","oa":29323,"o":"b_728B"},{"a":29320,"t":"code","b":[206,101,6],"m":"dec","oa":1637,"o":"a_0665"},{"a":29323,"l":"b_728B","t":"code","b":[206,100,6],"m":"dec","oa":1636,"x":[29318],"o":"a_0664"},{"a":29326,"l":"b_728E","t":"code","b":[165,94],"m":"lda","oa":94,"x":[29313],"o":"pass_count"},{"a":29328,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":29330,"t":"code","b":[208,227],"m":"bne","oa":29303,"o":"r_7277"},{"a":29332,"t":"code","b":[173,65,7],"m":"lda","oa":1857,"o":"item_null_damper"},{"a":29335,"t":"code","b":[208,24],"m":"bne","oa":29361,"o":"b_72B1"},{"a":29337,"t":"code","b":[173,29,5],"m":"lda","oa":1309,"o":"slot_armour"},{"a":29340,"t":"code","b":[208,3],"m":"bne","oa":29345,"o":"b_72A1"},{"a":29342,"t":"code","b":[206,30,5],"m":"dec","oa":1310,"o":"f_051E"},{"a":29345,"l":"b_72A1","t":"code","b":[206,29,5],"m":"dec","oa":1309,"x":[29340],"o":"slot_armour"},{"a":29348,"t":"code","b":[173,30,5],"m":"lda","oa":1310,"o":"f_051E"},{"a":29351,"t":"code","b":[16,8],"m":"bpl","oa":29361,"o":"b_72B1"},{"a":29353,"t":"code","b":[169,26],"m":"lda","o":"#$1A"},{"a":29355,"t":"code","b":[141,53,8],"m":"sta","oa":2101,"o":"killer"},{"a":29358,"t":"code","b":[76,144,27],"m":"jmp","oa":7056,"o":"player_destroyed"},{"a":29361,"l":"b_72B1","t":"code","b":[32,16,136],"m":"jsr","oa":34832,"x":[29335,29351],"o":"window_full"},{"a":29364,"t":"code","b":[32,178,49],"m":"jsr","oa":12722,"o":"draw_speed"},{"a":29367,"t":"code","b":[32,64,50],"m":"jsr","oa":12864,"o":"draw_armour_bar"},{"a":29370,"t":"code","b":[76,254,135],"m":"jmp","oa":34814,"o":"window_view"},{"a":29373,"l":"gate_dest","c":"Where the gate leads, from the system map: the system, the sector across, the sector down, and the number of rings to pass","t":"byte","b":[0],"x":[29067,29216]},{"a":29374,"l":"a_72BE","c":"The sector across that the gate leads to","t":"byte","b":[0],"x":[29073,29222]},{"a":29375,"l":"a_72BF","c":"The sector down that the gate leads to","t":"byte","b":[0],"x":[29079,29228]},{"a":29376,"l":"a_72C0","c":"The rings of type $21 the gate needs passed for the jump to work","t":"byte","b":[0],"x":[29085,29198,29558]},{"a":29377,"l":"wormhole_rings","c":"Carry set while the trip goes on. When the ship reaches the next ring position ($749C/$749D, every 14 units along -z): finds the rearmost and the foremost ring within 224 units; if the ship is not inside the rearmost (within_range with type $1F's radius, $0A5B) the trip is over (carry clear). Otherwise the rearmost is freed, counted when it is a type $21 ring, and unless enough are passed a new ring is made 14 units beyond the foremost, its x and y drifted by the bend (ring_drift)","t":"code","b":[173,156,116],"m":"lda","oa":29852,"x":[29180],"o":"a_749C"},{"a":29380,"t":"code","b":[205,100,6],"m":"cmp","oa":1636,"o":"a_0664"},{"a":29383,"t":"code","b":[173,157,116],"m":"lda","oa":29853,"o":"a_749D"},{"a":29386,"t":"code","b":[237,101,6],"m":"sbc","oa":1637,"o":"a_0665"},{"a":29389,"t":"code","b":[16,2],"m":"bpl","oa":29393,"o":"b_72D1"},{"a":29391,"t":"code","b":[56],"m":"sec"},{"a":29392,"t":"code","b":[96],"m":"rts"},{"a":29393,"l":"b_72D1","t":"code","b":[173,156,116],"m":"lda","oa":29852,"x":[29389],"o":"a_749C"},{"a":29396,"t":"code","b":[56],"m":"sec"},{"a":29397,"t":"code","b":[233,14],"m":"sbc","o":"#$0E"},{"a":29399,"t":"code","b":[141,156,116],"m":"sta","oa":29852,"o":"a_749C"},{"a":29402,"t":"code","b":[176,3],"m":"bcs","oa":29407,"o":"b_72DF"},{"a":29404,"t":"code","b":[206,157,116],"m":"dec","oa":29853,"o":"a_749D"},{"a":29407,"l":"b_72DF","t":"code","b":[173,100,6],"m":"lda","oa":1636,"x":[29402],"o":"a_0664"},{"a":29410,"t":"code","b":[56],"m":"sec"},{"a":29411,"t":"code","b":[233,224],"m":"sbc","o":"#$E0"},{"a":29413,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"tmp98"},{"a":29415,"t":"code","b":[173,101,6],"m":"lda","oa":1637,"o":"a_0665"},{"a":29418,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":29420,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"tmp99"},{"a":29422,"t":"code","b":[173,100,6],"m":"lda","oa":1636,"o":"a_0664"},{"a":29425,"t":"code","b":[24],"m":"clc"},{"a":29426,"t":"code","b":[105,224],"m":"adc","o":"#$E0"},{"a":29428,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":29430,"t":"code","b":[173,101,6],"m":"lda","oa":1637,"o":"a_0665"},{"a":29433,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":29435,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":29437,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":29439,"l":"b_72FF","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[29498],"o":"slot_in_use,y"},{"a":29442,"t":"code","b":[240,51],"m":"beq","oa":29495,"o":"b_7337"},{"a":29444,"t":"code","b":[190,70,8],"m":"ldx","oa":2118,"o":"pos_offsets,y"},{"a":29447,"t":"code","b":[165,152],"m":"lda","oa":152,"o":"tmp98"},{"a":29449,"t":"code","b":[221,100,6],"m":"cmp","oa":1636,"o":"a_0664,x"},{"a":29452,"t":"code","b":[165,153],"m":"lda","oa":153,"o":"tmp99"},{"a":29454,"t":"code","b":[253,101,6],"m":"sbc","oa":1637,"o":"a_0665,x"},{"a":29457,"t":"code","b":[16,12],"m":"bpl","oa":29471,"o":"b_731F"},{"a":29459,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":29461,"t":"code","b":[189,100,6],"m":"lda","oa":1636,"o":"a_0664,x"},{"a":29464,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"tmp98"},{"a":29466,"t":"code","b":[189,101,6],"m":"lda","oa":1637,"o":"a_0665,x"},{"a":29469,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"tmp99"},{"a":29471,"l":"b_731F","t":"code","b":[189,100,6],"m":"lda","oa":1636,"x":[29457],"o":"a_0664,x"},{"a":29474,"t":"code","b":[197,150],"m":"cmp","oa":150,"o":"tmp96"},{"a":29476,"t":"code","b":[189,101,6],"m":"lda","oa":1637,"o":"a_0665,x"},{"a":29479,"t":"code","b":[229,151],"m":"sbc","oa":151,"o":"tmp97"},{"a":29481,"t":"code","b":[16,12],"m":"bpl","oa":29495,"o":"b_7337"},{"a":29483,"t":"code","b":[132,148],"m":"sty","oa":148,"o":"tmp94"},{"a":29485,"t":"code","b":[189,100,6],"m":"lda","oa":1636,"o":"a_0664,x"},{"a":29488,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":29490,"t":"code","b":[189,101,6],"m":"lda","oa":1637,"o":"a_0665,x"},{"a":29493,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":29495,"l":"b_7337","t":"code","b":[136],"m":"dey","x":[29442,29481]},{"a":29496,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":29498,"t":"code","b":[176,195],"m":"bcs","oa":29439,"o":"b_72FF"},{"a":29500,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":29502,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":29505,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":29507,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":29509,"t":"code","b":[24],"m":"clc"},{"a":29510,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":29513,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":29515,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":29517,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":29519,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":29521,"t":"code","b":[173,91,10],"m":"lda","oa":2651,"o":"a_0A5B"},{"a":29524,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":29526,"t":"code","b":[173,92,10],"m":"lda","oa":2652,"o":"a_0A5C"},{"a":29529,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":29531,"t":"code","b":[32,163,116],"m":"jsr","oa":29859,"o":"within_range"},{"a":29534,"t":"code","b":[176,1],"m":"bcs","oa":29537,"o":"b_7361"},{"a":29536,"l":"r_7360","t":"code","b":[96],"m":"rts","x":[29561]},{"a":29537,"l":"b_7361","t":"code","b":[164,149],"m":"ldy","oa":149,"x":[29534],"o":"tmp95"},{"a":29539,"t":"code","b":[185,13,6],"m":"lda","oa":1549,"o":"slot_type,y"},{"a":29542,"t":"code","b":[201,33],"m":"cmp","o":"#$21"},{"a":29544,"t":"code","b":[208,3],"m":"bne","oa":29549,"o":"b_736D"},{"a":29546,"t":"code","b":[238,162,116],"m":"inc","oa":29858,"o":"a_74A2"},{"a":29549,"l":"b_736D","t":"code","b":[32,138,26],"m":"jsr","oa":6794,"x":[29544],"o":"free_slot"},{"a":29552,"t":"code","b":[173,162,116],"m":"lda","oa":29858,"o":"a_74A2"},{"a":29555,"t":"code","b":[24],"m":"clc"},{"a":29556,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":29558,"t":"code","b":[205,192,114],"m":"cmp","oa":29376,"o":"a_72C0"},{"a":29561,"t":"code","b":[176,229],"m":"bcs","oa":29536,"o":"r_7360"},{"a":29563,"t":"code","b":[238,155,116],"m":"inc","oa":29851,"o":"ring_count"},{"a":29566,"t":"code","b":[206,158,116],"m":"dec","oa":29854,"o":"a_749E"},{"a":29569,"t":"code","b":[16,25],"m":"bpl","oa":29596,"o":"b_739C"},{"a":29571,"c":"A new bend: random length 0..19, half of it, random direction 0..7, from straight","t":"code","b":[169,19],"m":"lda","o":"#$13"},{"a":29573,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":29576,"t":"code","b":[141,158,116],"m":"sta","oa":29854,"o":"a_749E"},{"a":29579,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":29580,"t":"code","b":[141,159,116],"m":"sta","oa":29855,"o":"a_749F"},{"a":29583,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":29585,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":29588,"t":"code","b":[141,161,116],"m":"sta","oa":29857,"o":"a_74A1"},{"a":29591,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29593,"t":"code","b":[141,160,116],"m":"sta","oa":29856,"o":"a_74A0"},{"a":29596,"l":"b_739C","t":"code","b":[164,148],"m":"ldy","oa":148,"x":[29569],"o":"tmp94"},{"a":29598,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":29601,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":29603,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":29605,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29607,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":29609,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":29612,"t":"code","b":[173,114,0],"m":"lda","oa":114,"o":"zpa_72"},{"a":29615,"t":"code","b":[56],"m":"sec"},{"a":29616,"t":"code","b":[233,14],"m":"sbc","o":"#$0E"},{"a":29618,"t":"code","b":[141,114,0],"m":"sta","oa":114,"o":"zpa_72"},{"a":29621,"t":"code","b":[176,3],"m":"bcs","oa":29626,"o":"b_73BA"},{"a":29623,"t":"code","b":[206,115,0],"m":"dec","oa":115,"o":"zpa_73"},{"a":29626,"l":"b_73BA","t":"code","b":[160,1],"m":"ldy","x":[29621],"o":"#$01"},{"a":29628,"t":"code","b":[32,231,115],"m":"jsr","oa":29671,"o":"ring_drift"},{"a":29631,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":29633,"t":"code","b":[32,231,115],"m":"jsr","oa":29671,"o":"ring_drift"},{"a":29636,"c":"The bend's amount grows by 2 a ring for the first half, then falls","t":"code","b":[206,159,116],"m":"dec","oa":29855,"o":"a_749F"},{"a":29639,"t":"code","b":[16,8],"m":"bpl","oa":29649,"o":"b_73D1"},{"a":29641,"t":"code","b":[206,160,116],"m":"dec","oa":29856,"o":"a_74A0"},{"a":29644,"t":"code","b":[206,160,116],"m":"dec","oa":29856,"o":"a_74A0"},{"a":29647,"t":"code","b":[16,6],"m":"bpl","oa":29655,"o":"b_73D7"},{"a":29649,"l":"b_73D1","t":"code","b":[238,160,116],"m":"inc","oa":29856,"x":[29639],"o":"a_74A0"},{"a":29652,"t":"code","b":[238,160,116],"m":"inc","oa":29856,"o":"a_74A0"},{"a":29655,"l":"b_73D7","t":"code","b":[169,107],"m":"lda","x":[29647],"o":"#$6B"},{"a":29657,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":29659,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29661,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":29663,"t":"code","b":[32,127,116],"m":"jsr","oa":29823,"o":"ring_type"},{"a":29666,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":29669,"t":"code","b":[56],"m":"sec"},{"a":29670,"t":"code","b":[96],"m":"rts"},{"a":29671,"l":"ring_drift","c":"Adds the bend amount ($74A0) to the new ring's x (Y = 1) or y (Y = 4) integer part, with the sign for the bend direction from drift_signs","t":"code","b":[132,154],"m":"sty","oa":154,"x":[29628,29633],"o":"model_inited"},{"a":29673,"t":"code","b":[173,160,116],"m":"lda","oa":29856,"o":"a_74A0"},{"a":29676,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":29678,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29680,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":29682,"t":"code","b":[174,161,116],"m":"ldx","oa":29857,"o":"a_74A1"},{"a":29685,"t":"code","b":[189,147,116],"m":"lda","oa":29843,"o":"f_7493,x"},{"a":29688,"t":"code","b":[164,154],"m":"ldy","oa":154,"o":"model_inited"},{"a":29690,"t":"code","b":[192,1],"m":"cpy","o":"#$01"},{"a":29692,"t":"code","b":[240,3],"m":"beq","oa":29697,"o":"b_7401"},{"a":29694,"t":"code","b":[189,145,116],"m":"lda","oa":29841,"o":"drift_signs,x"},{"a":29697,"l":"b_7401","t":"code","b":[72],"m":"pha","x":[29692]},{"a":29698,"t":"code","b":[104],"m":"pla"},{"a":29699,"t":"code","b":[240,17],"m":"beq","oa":29718,"o":"b_7416"},{"a":29701,"t":"code","b":[16,19],"m":"bpl","oa":29722,"o":"b_741A"},{"a":29703,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29705,"t":"code","b":[56],"m":"sec"},{"a":29706,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":29708,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":29710,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29712,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":29714,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":29716,"t":"code","b":[48,4],"m":"bmi","oa":29722,"o":"b_741A"},{"a":29718,"l":"b_7416","t":"code","b":[133,96],"m":"sta","oa":96,"x":[29699],"o":"acc_mid"},{"a":29720,"t":"code","b":[240,0],"m":"beq","oa":29722,"o":"b_741A"},{"a":29722,"l":"b_741A","t":"code","b":[185,107,0],"m":"lda","oa":107,"x":[29701,29716,29720],"o":"scratch_vec,y"},{"a":29725,"t":"code","b":[24],"m":"clc"},{"a":29726,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":29728,"t":"code","b":[153,107,0],"m":"sta","oa":107,"o":"scratch_vec,y"},{"a":29731,"t":"code","b":[185,108,0],"m":"lda","oa":108,"o":"f_006C,y"},{"a":29734,"t":"code","b":[101,97],"m":"adc","oa":97,"o":"acc_hi"},{"a":29736,"t":"code","b":[153,108,0],"m":"sta","oa":108,"o":"f_006C,y"},{"a":29739,"t":"code","b":[96],"m":"rts"},{"a":29740,"l":"make_wormhole","c":"The first eight rings, one every 14 units along -z from the origin, and the ring counters set: next ring position 14 units ahead of the ship, none passed","t":"code","b":[169,195],"m":"lda","x":[29141],"o":"#$C3"},{"a":29742,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":29744,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":29746,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":29748,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":29750,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":29752,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29754,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":29756,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":29759,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":29761,"t":"code","b":[141,155,116],"m":"sta","oa":29851,"o":"ring_count"},{"a":29764,"l":"b_7444","t":"code","b":[173,114,0],"m":"lda","oa":114,"x":[29795],"o":"zpa_72"},{"a":29767,"t":"code","b":[56],"m":"sec"},{"a":29768,"t":"code","b":[233,14],"m":"sbc","o":"#$0E"},{"a":29770,"t":"code","b":[141,114,0],"m":"sta","oa":114,"o":"zpa_72"},{"a":29773,"t":"code","b":[176,3],"m":"bcs","oa":29778,"o":"b_7452"},{"a":29775,"t":"code","b":[206,115,0],"m":"dec","oa":115,"o":"zpa_73"},{"a":29778,"l":"b_7452","t":"code","b":[169,107],"m":"lda","x":[29773],"o":"#$6B"},{"a":29780,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":29782,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29784,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":29786,"t":"code","b":[32,127,116],"m":"jsr","oa":29823,"o":"ring_type"},{"a":29789,"t":"code","b":[32,73,25],"m":"jsr","oa":6473,"o":"create_object"},{"a":29792,"t":"code","b":[206,155,116],"m":"dec","oa":29851,"o":"ring_count"},{"a":29795,"t":"code","b":[16,223],"m":"bpl","oa":29764,"o":"b_7444"},{"a":29797,"t":"code","b":[238,155,116],"m":"inc","oa":29851,"o":"ring_count"},{"a":29800,"t":"code","b":[173,100,6],"m":"lda","oa":1636,"o":"a_0664"},{"a":29803,"t":"code","b":[56],"m":"sec"},{"a":29804,"t":"code","b":[233,14],"m":"sbc","o":"#$0E"},{"a":29806,"t":"code","b":[141,156,116],"m":"sta","oa":29852,"o":"a_749C"},{"a":29809,"t":"code","b":[173,101,6],"m":"lda","oa":1637,"o":"a_0665"},{"a":29812,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":29814,"t":"code","b":[141,157,116],"m":"sta","oa":29853,"o":"a_749D"},{"a":29817,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":29819,"t":"code","b":[141,162,116],"m":"sta","oa":29858,"o":"a_74A2"},{"a":29822,"t":"code","b":[96],"m":"rts"},{"a":29823,"l":"ring_type","c":"The type of ring number $749B: $1F for an odd number, $20 for 2 mod 4, $21 (the rings that count) for 0 mod 4","t":"code","b":[162,31],"m":"ldx","x":[29663,29786],"o":"#$1F"},{"a":29825,"t":"code","b":[173,155,116],"m":"lda","oa":29851,"o":"ring_count"},{"a":29828,"t":"code","b":[106],"m":"ror","o":"a"},{"a":29829,"t":"code","b":[176,9],"m":"bcs","oa":29840,"o":"r_7490"},{"a":29831,"t":"code","b":[162,32],"m":"ldx","o":"#$20"},{"a":29833,"t":"code","b":[42],"m":"rol","o":"a"},{"a":29834,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":29836,"t":"code","b":[208,2],"m":"bne","oa":29840,"o":"r_7490"},{"a":29838,"t":"code","b":[162,33],"m":"ldx","o":"#$21"},{"a":29840,"l":"r_7490","t":"code","b":[96],"m":"rts","x":[29829,29836]},{"a":29841,"l":"drift_signs","c":"Signs of the drift for the eight bend directions, overlapped: y signs from $7491 (0, 1, 1, 1, 0, -1, -1, -1), x signs from $7493 (1, 1, 0, -1, -1, -1, 0, 1)","t":"byte","b":[0,1],"x":[29694]},{"a":29843,"l":"f_7493","c":"The x signs of the drift for the eight bend directions (1, 1, 0, -1, -1, -1, 0, 1), overlapping the y signs two bytes on","t":"byte","b":[1,1,0,255,255,255,0,1],"x":[29685]},{"a":29851,"l":"ring_count","c":"Rings made in this bend sequence; $749C/$749D the next ring position; $749E/$749F the bend's length and half; $74A0 the bend amount; $74A1 the bend direction; $74A2 the rings passed","t":"byte","b":[0],"x":[29563,29761,29792,29797,29825]},{"a":29852,"l":"a_749C","c":"Low byte of the next ring position along -z, moved 14 units on for each ring","t":"byte","b":[0],"x":[29377,29393,29399,29806]},{"a":29853,"l":"a_749D","c":"High byte of the next ring position along -z","t":"byte","b":[0],"x":[29383,29404,29814]},{"a":29854,"l":"a_749E","c":"Rings left in the current bend, counted down; below zero a new bend starts with a random length of 0 to 19","t":"byte","b":[0],"x":[29566,29576]},{"a":29855,"l":"a_749F","c":"Rings left in the bend's first half, while its amount grows by 2 a ring; after that it falls by 2","t":"byte","b":[0],"x":[29580,29636]},{"a":29856,"l":"a_74A0","c":"The bend amount, added to each new ring's x and y with the direction's signs","t":"byte","b":[0],"x":[29593,29641,29644,29649,29652,29673]},{"a":29857,"l":"a_74A1","c":"The bend direction, 0 to 7, an index into the drift signs","t":"byte","b":[0],"x":[29588,29682]},{"a":29858,"l":"a_74A2","c":"Rings of type $21 passed in this trip, compared with the gate's count at $72C0","t":"byte","b":[0],"x":[29195,29546,29552,29819]},{"a":29859,"l":"within_range","c":"Carry set when the positions at ($74) and ($76) are within the distance in $60/$61 on every axis, clear as soon as one axis is not: the integer parts of z, y and x (bytes 7-8, 4-5, 1-2) compared one by one, a box rather than a sphere. Used for collisions and the wormhole's rings","t":"code","b":[160,7],"m":"ldy","x":[8711,27396,29531],"o":"#$07"},{"a":29861,"l":"b_74A5","t":"code","b":[177,116],"m":"lda","oa":116,"x":[29904],"o":"(src1_ptr),y"},{"a":29863,"t":"code","b":[56],"m":"sec"},{"a":29864,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":29866,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":29868,"t":"code","b":[200],"m":"iny"},{"a":29869,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":29871,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":29873,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":29875,"t":"code","b":[16,13],"m":"bpl","oa":29890,"o":"b_74C2"},{"a":29877,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":29879,"t":"code","b":[24],"m":"clc"},{"a":29880,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":29882,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":29884,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":29886,"t":"code","b":[144,18],"m":"bcc","oa":29906,"o":"r_74D2"},{"a":29888,"t":"code","b":[176,10],"m":"bcs","oa":29900,"o":"b_74CC"},{"a":29890,"l":"b_74C2","t":"code","b":[165,96],"m":"lda","oa":96,"x":[29875],"o":"acc_mid"},{"a":29892,"t":"code","b":[197,128],"m":"cmp","oa":128,"o":"tmp80"},{"a":29894,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":29896,"t":"code","b":[229,129],"m":"sbc","oa":129,"o":"tmp81"},{"a":29898,"t":"code","b":[144,6],"m":"bcc","oa":29906,"o":"r_74D2"},{"a":29900,"l":"b_74CC","t":"code","b":[136],"m":"dey","x":[29888]},{"a":29901,"t":"code","b":[136],"m":"dey"},{"a":29902,"t":"code","b":[136],"m":"dey"},{"a":29903,"t":"code","b":[136],"m":"dey"},{"a":29904,"t":"code","b":[16,211],"m":"bpl","oa":29861,"o":"b_74A5"},{"a":29906,"l":"r_74D2","t":"code","b":[96],"m":"rts","x":[29886,29898]},{"a":29907,"l":"apply_thrust","c":"Speeds up or slows every ship toward its set speed: computer ships 5..1 always in cruise (cruise_thrust); the player in cruise when $0D02 is 0. In Newtonian flight ($0D02 set) the player's velocity changes only while the speed keys are held ($0D01 the direction): the type's thrust ($0C04, a quarter with the engine out) along the ship's axis is added, unless the new speed would pass the limit (a length of about 4.4 units a frame, 70 in the game's speed units)","t":"code","b":[162,5],"m":"ldx","x":[3577,29000,29149],"o":"#$05"},{"a":29909,"t":"code","b":[134,148],"m":"stx","oa":148,"o":"tmp94"},{"a":29911,"l":"b_74D7","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[29923],"o":"slot_in_use,x"},{"a":29914,"t":"code","b":[240,3],"m":"beq","oa":29919,"o":"b_74DF"},{"a":29916,"t":"code","b":[32,64,117],"m":"jsr","oa":30016,"o":"cruise_thrust"},{"a":29919,"l":"b_74DF","t":"code","b":[198,148],"m":"dec","oa":148,"x":[29914],"o":"tmp94"},{"a":29921,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":29923,"t":"code","b":[208,242],"m":"bne","oa":29911,"o":"b_74D7"},{"a":29925,"t":"code","b":[173,2,13],"m":"lda","oa":3330,"o":"newtonian"},{"a":29928,"t":"code","b":[240,86],"m":"beq","oa":30016,"o":"cruise_thrust"},{"a":29930,"t":"code","b":[173,1,13],"m":"lda","oa":3329,"o":"thrust_dir"},{"a":29933,"t":"code","b":[240,80],"m":"beq","oa":30015,"o":"r_753F"},{"a":29935,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":29937,"t":"code","b":[173,4,12],"m":"lda","oa":3076,"o":"type_thrust"},{"a":29940,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":29942,"t":"code","b":[173,5,12],"m":"lda","oa":3077,"o":"a_0C05"},{"a":29945,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":29947,"t":"code","b":[32,238,117],"m":"jsr","oa":30190,"o":"engine_damage"},{"a":29950,"t":"code","b":[32,200,117],"m":"jsr","oa":30152,"o":"forward_times"},{"a":29953,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":29955,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":29957,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":29959,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":29961,"t":"code","b":[32,89,151],"m":"jsr","oa":38745,"o":"vec_add_lin"},{"a":29964,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":29966,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":29968,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":29970,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":29972,"t":"code","b":[32,114,147],"m":"jsr","oa":37746,"o":"vec_lin_to_log"},{"a":29975,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":29977,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":29979,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":29981,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":29983,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":29986,"t":"code","b":[169,33],"m":"lda","o":"#$21"},{"a":29988,"t":"code","b":[197,95],"m":"cmp","oa":95,"o":"acc_lo"},{"a":29990,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":29992,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":29994,"t":"code","b":[48,19],"m":"bmi","oa":30015,"o":"r_753F"},{"a":29996,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":29998,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30000,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":30002,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30004,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":30006,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30008,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30010,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30012,"t":"code","b":[76,112,149],"m":"jmp","oa":38256,"o":"copy9"},{"a":30015,"l":"r_753F","t":"code","b":[96],"m":"rts","x":[29933,29994]},{"a":30016,"l":"cruise_thrust","c":"Cruise flight for ship X: the wanted velocity is minus the third orientation row times the set speed ($0415) / 16; the velocity moves toward it by at most the type's thrust ($0C04 log word, a quarter with the engine out) each frame, or takes it when closer than that","t":"code","b":[169,0],"m":"lda","x":[29916,29928],"o":"#$00"},{"a":30018,"t":"code","b":[56],"m":"sec"},{"a":30019,"t":"code","b":[253,21,4],"m":"sbc","oa":1045,"o":"slot_speed,x"},{"a":30022,"t":"code","b":[32,60,180],"m":"jsr","oa":46140,"o":"$B43C"},{"a":30025,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":30027,"t":"code","b":[56],"m":"sec"},{"a":30028,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":30030,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30032,"t":"code","b":[32,200,117],"m":"jsr","oa":30152,"o":"forward_times"},{"a":30035,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":30037,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":30039,"t":"code","b":[24],"m":"clc"},{"a":30040,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":30043,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30045,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30047,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30049,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30051,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":30053,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30055,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":30057,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30059,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":30062,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":30064,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30066,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":30068,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30070,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":30073,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":30075,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":30077,"t":"code","b":[24],"m":"clc"},{"a":30078,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":30081,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30083,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30085,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30087,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30089,"t":"code","b":[189,13,6],"m":"lda","oa":1549,"o":"slot_type,x"},{"a":30092,"t":"code","b":[10],"m":"asl","o":"a"},{"a":30093,"t":"code","b":[168],"m":"tay"},{"a":30094,"t":"code","b":[185,4,12],"m":"lda","oa":3076,"o":"type_thrust,y"},{"a":30097,"t":"code","b":[56],"m":"sec"},{"a":30098,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":30100,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":30102,"t":"code","b":[185,5,12],"m":"lda","oa":3077,"o":"a_0C05,y"},{"a":30105,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":30107,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30109,"t":"code","b":[32,238,117],"m":"jsr","oa":30190,"o":"engine_damage"},{"a":30112,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":30114,"t":"code","b":[16,17],"m":"bpl","oa":30133,"o":"b_75B5"},{"a":30116,"t":"code","b":[32,229,149],"m":"jsr","oa":38373,"o":"vec_scale"},{"a":30119,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":30122,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":30124,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30126,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":30128,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30130,"t":"code","b":[76,89,151],"m":"jmp","oa":38745,"o":"vec_add_lin"},{"a":30133,"l":"b_75B5","t":"code","b":[165,118],"m":"lda","oa":118,"x":[30114],"o":"src2_ptr"},{"a":30135,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30137,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":30139,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30141,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":30143,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30145,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":30147,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30149,"t":"code","b":[76,112,149],"m":"jmp","oa":38256,"o":"copy9"},{"a":30152,"l":"forward_times","c":"The third orientation row of ship $94 times the log-form number in $5F-$61, as a linear vector at $0896","t":"code","b":[166,148],"m":"ldx","oa":148,"x":[29950,30032],"o":"tmp94"},{"a":30154,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":30156,"t":"code","b":[24],"m":"clc"},{"a":30157,"t":"code","b":[125,60,8],"m":"adc","oa":2108,"o":"orient_offsets,x"},{"a":30160,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30162,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":30164,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30166,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30168,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":30170,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30172,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":30174,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30176,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":30179,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":30181,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30183,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":30185,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30187,"t":"code","b":[76,75,147],"m":"jmp","oa":37707,"o":"vec_log_to_lin"},{"a":30190,"l":"engine_damage","c":"Divides the log-form number in $5F/$60 by 4 when ship $94's engine is out ($0409 bit 2)","t":"code","b":[166,148],"m":"ldx","oa":148,"x":[29947,30109],"o":"tmp94"},{"a":30192,"t":"code","b":[189,9,4],"m":"lda","oa":1033,"o":"slot_damage,x"},{"a":30195,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":30197,"t":"code","b":[240,4],"m":"beq","oa":30203,"o":"r_75FB"},{"a":30199,"t":"code","b":[198,96],"m":"dec","oa":96,"o":"acc_mid"},{"a":30201,"t":"code","b":[198,96],"m":"dec","oa":96,"o":"acc_mid"},{"a":30203,"l":"r_75FB","t":"code","b":[96],"m":"rts","x":[30197]},{"a":30204,"l":"move_objects","c":"Adds each moving object's velocity ($0545 block) to its position ($065D block): every slot 19..0 in use whose type has flag bit 4","t":"code","b":[162,19],"m":"ldx","x":[3583,29003,29155],"o":"#$13"},{"a":30206,"l":"b_75FE","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[30257],"o":"slot_in_use,x"},{"a":30209,"t":"code","b":[240,45],"m":"beq","oa":30256,"o":"b_7630"},{"a":30211,"t":"code","b":[188,13,6],"m":"ldy","oa":1549,"o":"slot_type,x"},{"a":30214,"t":"code","b":[185,213,8],"m":"lda","oa":2261,"o":"type_flags,y"},{"a":30217,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":30219,"t":"code","b":[240,35],"m":"beq","oa":30256,"o":"b_7630"},{"a":30221,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":30223,"t":"code","b":[24],"m":"clc"},{"a":30224,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":30227,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30229,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30231,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30233,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30235,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":30237,"t":"code","b":[24],"m":"clc"},{"a":30238,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":30241,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30243,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30245,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":30247,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30249,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30251,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30253,"t":"code","b":[32,89,151],"m":"jsr","oa":38745,"o":"vec_add_lin"},{"a":30256,"l":"b_7630","t":"code","b":[202],"m":"dex","x":[30209,30219]},{"a":30257,"t":"code","b":[16,203],"m":"bpl","oa":30206,"o":"b_75FE"},{"a":30259,"t":"code","b":[96],"m":"rts"},{"a":30260,"l":"turn_objects","c":"Turns the ships and the planet: slots 6..1 with a pitch, turn or roll rate are turned by turn_ship (slot 6, the planet, has its turn rate stepped up each frame so it keeps spinning). Then the player's three rates ($050F roll, $0516 turn, $0508 pitch, in 1024ths of a turn) become radians and turn the player's orientation ($044B, turn_by_rates), and the camera's orientation is transposed into $0DCC for drawing","t":"code","b":[162,6],"m":"ldx","x":[3574,29152],"o":"#$06"},{"a":30262,"t":"code","b":[134,148],"m":"stx","oa":148,"o":"tmp94"},{"a":30264,"l":"b_7638","t":"code","b":[189,249,5],"m":"lda","oa":1529,"x":[30294],"o":"slot_in_use,x"},{"a":30267,"t":"code","b":[240,21],"m":"beq","oa":30290,"o":"b_7652"},{"a":30269,"t":"code","b":[224,6],"m":"cpx","o":"#$06"},{"a":30271,"t":"code","b":[144,3],"m":"bcc","oa":30276,"o":"b_7644"},{"a":30273,"t":"code","b":[254,22,5],"m":"inc","oa":1302,"o":"slot_turn,x"},{"a":30276,"l":"b_7644","t":"code","b":[189,15,5],"m":"lda","oa":1295,"x":[30271],"o":"slot_roll,x"},{"a":30279,"t":"code","b":[29,22,5],"m":"ora","oa":1302,"o":"slot_turn,x"},{"a":30282,"t":"code","b":[29,8,5],"m":"ora","oa":1288,"o":"slot_pitch,x"},{"a":30285,"t":"code","b":[240,3],"m":"beq","oa":30290,"o":"b_7652"},{"a":30287,"t":"code","b":[32,221,118],"m":"jsr","oa":30429,"o":"turn_ship"},{"a":30290,"l":"b_7652","t":"code","b":[198,148],"m":"dec","oa":148,"x":[30267,30285],"o":"tmp94"},{"a":30292,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":30294,"t":"code","b":[208,224],"m":"bne","oa":30264,"o":"b_7638"},{"a":30296,"t":"code","b":[169,149],"m":"lda","o":"#$95"},{"a":30298,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30300,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30302,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30304,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":30306,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30308,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":30310,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30312,"t":"code","b":[173,15,5],"m":"lda","oa":1295,"o":"slot_roll"},{"a":30315,"t":"code","b":[32,193,118],"m":"jsr","oa":30401,"o":"rate_to_radians"},{"a":30318,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":30320,"t":"code","b":[141,155,0],"m":"sta","oa":155,"o":"model_points"},{"a":30323,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":30325,"t":"code","b":[141,156,0],"m":"sta","oa":156,"o":"model_refs"},{"a":30328,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":30330,"t":"code","b":[141,157,0],"m":"sta","oa":157,"o":"model_normals"},{"a":30333,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":30335,"t":"code","b":[173,22,5],"m":"lda","oa":1302,"o":"slot_turn"},{"a":30338,"t":"code","b":[32,193,118],"m":"jsr","oa":30401,"o":"rate_to_radians"},{"a":30341,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":30343,"t":"code","b":[141,152,0],"m":"sta","oa":152,"o":"tmp98"},{"a":30346,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":30348,"t":"code","b":[141,153,0],"m":"sta","oa":153,"o":"tmp99"},{"a":30351,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":30353,"t":"code","b":[141,154,0],"m":"sta","oa":154,"o":"model_inited"},{"a":30356,"t":"code","b":[166,148],"m":"ldx","oa":148,"o":"tmp94"},{"a":30358,"t":"code","b":[173,8,5],"m":"lda","oa":1288,"o":"slot_pitch"},{"a":30361,"t":"code","b":[32,193,118],"m":"jsr","oa":30401,"o":"rate_to_radians"},{"a":30364,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":30366,"t":"code","b":[141,149,0],"m":"sta","oa":149,"o":"tmp95"},{"a":30369,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":30371,"t":"code","b":[141,150,0],"m":"sta","oa":150,"o":"tmp96"},{"a":30374,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":30376,"t":"code","b":[141,151,0],"m":"sta","oa":151,"o":"tmp97"},{"a":30379,"t":"code","b":[32,55,144],"m":"jsr","oa":36919,"o":"turn_by_rates"},{"a":30382,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"camera_orient_ptr"},{"a":30384,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30386,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":30388,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30390,"t":"code","b":[169,204],"m":"lda","o":"#$CC"},{"a":30392,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30394,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":30396,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30398,"t":"code","b":[76,250,145],"m":"jmp","oa":37370,"o":"mat_transpose"},{"a":30401,"l":"rate_to_radians","c":"The signed byte in A, an angle in 1024ths of a turn, to log-form radians: int16_to_log, less $0759 (log2 of 1024 / 2 pi)","t":"code","b":[160,0],"m":"ldy","x":[30315,30338,30361],"o":"#$00"},{"a":30403,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30405,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":30407,"t":"code","b":[16,1],"m":"bpl","oa":30410,"o":"b_76CA"},{"a":30409,"t":"code","b":[136],"m":"dey"},{"a":30410,"l":"b_76CA","t":"code","b":[132,97],"m":"sty","oa":97,"x":[30407],"o":"acc_hi"},{"a":30412,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":30415,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":30417,"t":"code","b":[56],"m":"sec"},{"a":30418,"t":"code","b":[233,89],"m":"sbc","o":"#$59"},{"a":30420,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":30422,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":30424,"t":"code","b":[233,7],"m":"sbc","o":"#$07"},{"a":30426,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30428,"t":"code","b":[96],"m":"rts"},{"a":30429,"l":"turn_ship","c":"Turns computer ship X: its type's turning step ($0BE2, a log word in 1024ths of a turn) is used on each axis whose rate is nonzero, with the rate's sign, and the rate counted one step toward zero; the angles turn the ship's orientation ($044B block, turn_by_rates)","t":"code","b":[189,13,6],"m":"lda","oa":1549,"x":[30287],"o":"slot_type,x"},{"a":30432,"t":"code","b":[10],"m":"asl","o":"a"},{"a":30433,"t":"code","b":[168],"m":"tay"},{"a":30434,"t":"code","b":[185,226,11],"m":"lda","oa":3042,"o":"type_turn,y"},{"a":30437,"t":"code","b":[56],"m":"sec"},{"a":30438,"t":"code","b":[233,89],"m":"sbc","o":"#$59"},{"a":30440,"t":"code","b":[133,158],"m":"sta","oa":158,"o":"model_polys"},{"a":30442,"t":"code","b":[185,227,11],"m":"lda","oa":3043,"o":"f_0BE3,y"},{"a":30445,"t":"code","b":[233,7],"m":"sbc","o":"#$07"},{"a":30447,"t":"code","b":[133,159],"m":"sta","oa":159,"o":"model_axes"},{"a":30449,"t":"code","b":[169,149],"m":"lda","o":"#$95"},{"a":30451,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30453,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30455,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30457,"t":"code","b":[32,104,149],"m":"jsr","oa":38248,"o":"copy9_from_0DAB"},{"a":30460,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":30462,"t":"code","b":[189,8,5],"m":"lda","oa":1288,"o":"slot_pitch,x"},{"a":30465,"t":"code","b":[240,24],"m":"beq","oa":30491,"o":"b_771B"},{"a":30467,"t":"code","b":[16,6],"m":"bpl","oa":30475,"o":"b_770B"},{"a":30469,"t":"code","b":[254,8,5],"m":"inc","oa":1288,"o":"slot_pitch,x"},{"a":30472,"t":"code","b":[136],"m":"dey"},{"a":30473,"t":"code","b":[48,3],"m":"bmi","oa":30478,"o":"b_770E"},{"a":30475,"l":"b_770B","t":"code","b":[222,8,5],"m":"dec","oa":1288,"x":[30467],"o":"slot_pitch,x"},{"a":30478,"l":"b_770E","t":"code","b":[140,151,0],"m":"sty","oa":151,"x":[30473],"o":"tmp97"},{"a":30481,"t":"code","b":[165,158],"m":"lda","oa":158,"o":"model_polys"},{"a":30483,"t":"code","b":[141,149,0],"m":"sta","oa":149,"o":"tmp95"},{"a":30486,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":30488,"t":"code","b":[141,150,0],"m":"sta","oa":150,"o":"tmp96"},{"a":30491,"l":"b_771B","t":"code","b":[160,0],"m":"ldy","x":[30465],"o":"#$00"},{"a":30493,"t":"code","b":[189,22,5],"m":"lda","oa":1302,"o":"slot_turn,x"},{"a":30496,"t":"code","b":[240,24],"m":"beq","oa":30522,"o":"b_773A"},{"a":30498,"t":"code","b":[16,6],"m":"bpl","oa":30506,"o":"b_772A"},{"a":30500,"t":"code","b":[254,22,5],"m":"inc","oa":1302,"o":"slot_turn,x"},{"a":30503,"t":"code","b":[136],"m":"dey"},{"a":30504,"t":"code","b":[48,3],"m":"bmi","oa":30509,"o":"b_772D"},{"a":30506,"l":"b_772A","t":"code","b":[222,22,5],"m":"dec","oa":1302,"x":[30498],"o":"slot_turn,x"},{"a":30509,"l":"b_772D","t":"code","b":[140,154,0],"m":"sty","oa":154,"x":[30504],"o":"model_inited"},{"a":30512,"t":"code","b":[165,158],"m":"lda","oa":158,"o":"model_polys"},{"a":30514,"t":"code","b":[141,152,0],"m":"sta","oa":152,"o":"tmp98"},{"a":30517,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":30519,"t":"code","b":[141,153,0],"m":"sta","oa":153,"o":"tmp99"},{"a":30522,"l":"b_773A","t":"code","b":[160,0],"m":"ldy","x":[30496],"o":"#$00"},{"a":30524,"t":"code","b":[189,15,5],"m":"lda","oa":1295,"o":"slot_roll,x"},{"a":30527,"t":"code","b":[240,24],"m":"beq","oa":30553,"o":"b_7759"},{"a":30529,"t":"code","b":[16,6],"m":"bpl","oa":30537,"o":"b_7749"},{"a":30531,"t":"code","b":[254,15,5],"m":"inc","oa":1295,"o":"slot_roll,x"},{"a":30534,"t":"code","b":[136],"m":"dey"},{"a":30535,"t":"code","b":[48,3],"m":"bmi","oa":30540,"o":"b_774C"},{"a":30537,"l":"b_7749","t":"code","b":[222,15,5],"m":"dec","oa":1295,"x":[30529],"o":"slot_roll,x"},{"a":30540,"l":"b_774C","t":"code","b":[140,157,0],"m":"sty","oa":157,"x":[30535],"o":"model_normals"},{"a":30543,"t":"code","b":[165,158],"m":"lda","oa":158,"o":"model_polys"},{"a":30545,"t":"code","b":[141,155,0],"m":"sta","oa":155,"o":"model_points"},{"a":30548,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":30550,"t":"code","b":[141,156,0],"m":"sta","oa":156,"o":"model_refs"},{"a":30553,"l":"b_7759","t":"code","b":[169,75],"m":"lda","x":[30527],"o":"#$4B"},{"a":30555,"t":"code","b":[24],"m":"clc"},{"a":30556,"t":"code","b":[125,60,8],"m":"adc","oa":2108,"o":"orient_offsets,x"},{"a":30559,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30561,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":30563,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30565,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30567,"t":"code","b":[169,149],"m":"lda","o":"#$95"},{"a":30569,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30571,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30573,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30575,"t":"code","b":[76,55,144],"m":"jmp","oa":36919,"o":"turn_by_rates"},{"a":30578,"l":"place_particles","c":"Re-places the space particles (types with flag bit 2) in slots 19..6 that are off screen or too close: their on-screen value $0621 (set by build_draw_list) 0 or 7 and more. They go around a point ahead of the camera (place_particle), so the particles always stream past the viewer","t":"code","b":[169,0],"m":"lda","x":[3600,29014],"o":"#$00"},{"a":30580,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":30582,"t":"code","b":[160,19],"m":"ldy","o":"#$13"},{"a":30584,"t":"code","b":[132,138],"m":"sty","oa":138,"o":"tmp8A"},{"a":30586,"l":"b_777A","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[30619],"o":"slot_in_use,y"},{"a":30589,"t":"code","b":[240,22],"m":"beq","oa":30613,"o":"b_7795"},{"a":30591,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":30594,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":30597,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":30599,"t":"code","b":[240,12],"m":"beq","oa":30613,"o":"b_7795"},{"a":30601,"t":"code","b":[185,33,6],"m":"lda","oa":1569,"o":"slot_onscreen,y"},{"a":30604,"t":"code","b":[240,4],"m":"beq","oa":30610,"o":"b_7792"},{"a":30606,"t":"code","b":[201,7],"m":"cmp","o":"#$07"},{"a":30608,"t":"code","b":[144,3],"m":"bcc","oa":30613,"o":"b_7795"},{"a":30610,"l":"b_7792","t":"code","b":[32,158,119],"m":"jsr","oa":30622,"x":[30604],"o":"place_particle"},{"a":30613,"l":"b_7795","t":"code","b":[198,138],"m":"dec","oa":138,"x":[30589,30599,30608],"o":"tmp8A"},{"a":30615,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":30617,"t":"code","b":[192,6],"m":"cpy","o":"#$06"},{"a":30619,"t":"code","b":[176,221],"m":"bcs","oa":30586,"o":"b_777A"},{"a":30621,"t":"code","b":[96],"m":"rts"},{"a":30622,"l":"place_particle","c":"A particle in slot Y: a moving one (flag bit 4) has its velocity cleared ($0DC3). The first one this frame works out the centre: a point 37 units ahead of the camera ($7838), pushed 21 units further along the way that point has moved since last time ($7872); every particle then goes to the centre plus a random offset of up to 10 (random_offset)","t":"code","b":[189,213,8],"m":"lda","oa":2261,"x":[30610],"o":"type_flags,x"},{"a":30625,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":30627,"t":"code","b":[240,25],"m":"beq","oa":30654,"o":"b_77BE"},{"a":30629,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":30631,"t":"code","b":[24],"m":"clc"},{"a":30632,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":30635,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30637,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30639,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30641,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30643,"t":"code","b":[169,195],"m":"lda","o":"#$C3"},{"a":30645,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30647,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":30649,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30651,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":30654,"l":"b_77BE","t":"code","b":[166,139],"m":"ldx","oa":139,"x":[30627],"o":"tmp8B"},{"a":30656,"t":"code","b":[208,83],"m":"bne","oa":30741,"o":"b_7815"},{"a":30658,"t":"code","b":[232],"m":"inx"},{"a":30659,"t":"code","b":[134,139],"m":"stx","oa":139,"o":"tmp8B"},{"a":30661,"t":"code","b":[32,56,120],"m":"jsr","oa":30776,"o":"ahead_of_camera"},{"a":30664,"t":"code","b":[169,148],"m":"lda","o":"#$94"},{"a":30666,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30668,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30670,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30672,"t":"code","b":[169,114],"m":"lda","o":"#$72"},{"a":30674,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30676,"t":"code","b":[169,120],"m":"lda","o":"#$78"},{"a":30678,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30680,"t":"code","b":[32,158,151],"m":"jsr","oa":38814,"o":"vec_sub_lin"},{"a":30683,"t":"code","b":[169,148],"m":"lda","o":"#$94"},{"a":30685,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30687,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30689,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30691,"t":"code","b":[32,114,147],"m":"jsr","oa":37746,"o":"vec_lin_to_log"},{"a":30694,"t":"code","b":[32,105,150],"m":"jsr","oa":38505,"o":"vec_normalise"},{"a":30697,"t":"code","b":[169,99],"m":"lda","o":"#$63"},{"a":30699,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":30701,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":30703,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30705,"t":"code","b":[32,229,149],"m":"jsr","oa":38373,"o":"vec_scale"},{"a":30708,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":30711,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":30713,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30715,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":30717,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30719,"t":"code","b":[32,89,151],"m":"jsr","oa":38745,"o":"vec_add_lin"},{"a":30722,"t":"code","b":[169,114],"m":"lda","o":"#$72"},{"a":30724,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30726,"t":"code","b":[169,120],"m":"lda","o":"#$78"},{"a":30728,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30730,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":30732,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30734,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":30736,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30738,"t":"code","b":[32,112,149],"m":"jsr","oa":38256,"o":"copy9"},{"a":30741,"l":"b_7815","t":"code","b":[169,148],"m":"lda","x":[30656],"o":"#$94"},{"a":30743,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30745,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30747,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30749,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":30751,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":30753,"t":"code","b":[24],"m":"clc"},{"a":30754,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":30757,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30759,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":30761,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30763,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30765,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":30767,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30769,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30771,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":30773,"t":"code","b":[76,115,30],"m":"jmp","oa":7795,"o":"random_offset"},{"a":30776,"l":"ahead_of_camera","c":"The point 37 units ahead of the camera ($011D): the camera's position ($58) plus its third orientation row ($5A + 18) times -37 (log $0533, sign $FF)","t":"code","b":[169,51],"m":"lda","x":[30661],"o":"#$33"},{"a":30778,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":30780,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30782,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30784,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":30786,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":30788,"t":"code","b":[165,90],"m":"lda","oa":90,"o":"camera_orient_ptr"},{"a":30790,"t":"code","b":[24],"m":"clc"},{"a":30791,"t":"code","b":[105,18],"m":"adc","o":"#$12"},{"a":30793,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30795,"t":"code","b":[165,91],"m":"lda","oa":91,"o":"zpa_5B"},{"a":30797,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30799,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30801,"t":"code","b":[169,29],"m":"lda","o":"#$1D"},{"a":30803,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30805,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":30807,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30809,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":30812,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":30814,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30816,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":30818,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30820,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":30823,"t":"code","b":[165,88],"m":"lda","oa":88,"o":"camera_pos_ptr"},{"a":30825,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30827,"t":"code","b":[165,89],"m":"lda","oa":89,"o":"zpa_59"},{"a":30829,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30831,"t":"code","b":[76,89,151],"m":"jmp","oa":38745,"o":"vec_add_lin"},{"a":30834,"l":"last_ahead","c":"The point ahead of the camera from the last time particles were placed (9 bytes, a linear position)","t":"byte","b":[0,0,0,0,0,0,226,125]},{"a":30842,"t":"byte","b":[255]},{"a":30843,"l":"gravity","c":"Gravity. For each object in slots 19..6 whose type has flag bit 1 (planets, the black hole and the stars $1C and $1D), each ship slot 5..0 with a radius is pulled toward it (gravity_pull) and the pull added to its velocity. The strength is from the type's $0A63 log word, less 2, doubled","t":"code","b":[160,19],"m":"ldy","x":[3580],"o":"#$13"},{"a":30845,"t":"code","b":[132,148],"m":"sty","oa":148,"o":"tmp94"},{"a":30847,"l":"b_787F","t":"code","b":[185,249,5],"m":"lda","oa":1529,"x":[30953],"o":"slot_in_use,y"},{"a":30850,"t":"code","b":[240,95],"m":"beq","oa":30947,"o":"b_78E3"},{"a":30852,"t":"code","b":[190,13,6],"m":"ldx","oa":1549,"o":"slot_type,y"},{"a":30855,"t":"code","b":[189,213,8],"m":"lda","oa":2261,"o":"type_flags,x"},{"a":30858,"t":"code","b":[41,2],"m":"and","o":"#$02"},{"a":30860,"t":"code","b":[240,85],"m":"beq","oa":30947,"o":"b_78E3"},{"a":30862,"t":"code","b":[138],"m":"txa"},{"a":30863,"t":"code","b":[10],"m":"asl","o":"a"},{"a":30864,"t":"code","b":[170],"m":"tax"},{"a":30865,"t":"code","b":[189,99,10],"m":"lda","oa":2659,"o":"type_scale,x"},{"a":30868,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":30870,"t":"code","b":[189,100,10],"m":"lda","oa":2660,"o":"type_scale_whole,x"},{"a":30873,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":30875,"t":"code","b":[198,151],"m":"dec","oa":151,"o":"tmp97"},{"a":30877,"t":"code","b":[198,151],"m":"dec","oa":151,"o":"tmp97"},{"a":30879,"t":"code","b":[6,150],"m":"asl","oa":150,"o":"tmp96"},{"a":30881,"t":"code","b":[38,151],"m":"rol","oa":151,"o":"tmp97"},{"a":30883,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":30885,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":30887,"l":"b_78A7","t":"code","b":[185,53,6],"m":"lda","oa":1589,"x":[30945],"o":"slot_solid,y"},{"a":30890,"t":"code","b":[240,49],"m":"beq","oa":30941,"o":"b_78DD"},{"a":30892,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":30894,"t":"code","b":[24],"m":"clc"},{"a":30895,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":30898,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30900,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":30902,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30904,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30906,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":30908,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":30911,"t":"code","b":[32,236,120],"m":"jsr","oa":30956,"o":"gravity_pull"},{"a":30914,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":30916,"t":"code","b":[169,69],"m":"lda","o":"#$45"},{"a":30918,"t":"code","b":[24],"m":"clc"},{"a":30919,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":30922,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30924,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":30926,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":30928,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30930,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":30932,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":30934,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":30936,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":30938,"t":"code","b":[32,89,151],"m":"jsr","oa":38745,"o":"vec_add_lin"},{"a":30941,"l":"b_78DD","t":"code","b":[198,149],"m":"dec","oa":149,"x":[30890],"o":"tmp95"},{"a":30943,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":30945,"t":"code","b":[16,196],"m":"bpl","oa":30887,"o":"b_78A7"},{"a":30947,"l":"b_78E3","t":"code","b":[198,148],"m":"dec","oa":148,"x":[30850,30860],"o":"tmp94"},{"a":30949,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":30951,"t":"code","b":[192,5],"m":"cpy","o":"#$05"},{"a":30953,"t":"code","b":[208,148],"m":"bne","oa":30847,"o":"b_787F"},{"a":30955,"t":"code","b":[96],"m":"rts"},{"a":30956,"l":"gravity_pull","c":"The pull of object ($74) on ship ($76) at $6B: the unit vector toward the object times the strength over the distance squared (log: $96/$97 less twice the log of the distance), so it falls with the square of the distance. When the pull on the player reaches 2^-9 (log $F700) \"Warning: nearing strong gravity well\" ($CF1E) is printed, once ($0834, cleared each HELM step)","t":"code","b":[169,107],"m":"lda","x":[30911],"o":"#$6B"},{"a":30958,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":30960,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30962,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":30964,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":30967,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":30969,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":30971,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":30973,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":30975,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":30978,"t":"code","b":[32,108,150],"m":"jsr","oa":38508,"o":"vec_div"},{"a":30981,"t":"code","b":[6,95],"m":"asl","oa":95,"o":"acc_lo"},{"a":30983,"t":"code","b":[38,96],"m":"rol","oa":96,"o":"acc_mid"},{"a":30985,"t":"code","b":[165,150],"m":"lda","oa":150,"o":"tmp96"},{"a":30987,"t":"code","b":[56],"m":"sec"},{"a":30988,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":30990,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":30992,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":30994,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":30996,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":30998,"t":"code","b":[165,149],"m":"lda","oa":149,"o":"tmp95"},{"a":31000,"t":"code","b":[208,39],"m":"bne","oa":31041,"o":"b_7941"},{"a":31002,"t":"code","b":[173,52,8],"m":"lda","oa":2100,"o":"gravity_warned"},{"a":31005,"t":"code","b":[208,34],"m":"bne","oa":31041,"o":"b_7941"},{"a":31007,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":31009,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":31011,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":31013,"t":"code","b":[233,247],"m":"sbc","o":"#$F7"},{"a":31015,"t":"code","b":[48,24],"m":"bmi","oa":31041,"o":"b_7941"},{"a":31017,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":31019,"t":"code","b":[72],"m":"pha"},{"a":31020,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":31022,"t":"code","b":[72],"m":"pha"},{"a":31023,"t":"code","b":[162,30],"m":"ldx","o":"#$1E"},{"a":31025,"t":"code","b":[169,207],"m":"lda","o":"#$CF"},{"a":31027,"t":"code","b":[32,220,154],"m":"jsr","oa":39644,"o":"print_message"},{"a":31030,"t":"code","b":[104],"m":"pla"},{"a":31031,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31033,"t":"code","b":[104],"m":"pla"},{"a":31034,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31036,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":31038,"t":"code","b":[141,52,8],"m":"sta","oa":2100,"o":"gravity_warned"},{"a":31041,"l":"b_7941","t":"code","b":[32,229,149],"m":"jsr","oa":38373,"x":[31000,31005,31015],"o":"vec_scale"},{"a":31044,"t":"code","b":[76,75,147],"m":"jmp","oa":37707,"o":"vec_log_to_lin"},{"a":31047,"l":"bearing","c":"For slot X and slot Y: the vector from X to Y in log form at $0896, its length in log form in $80/$81 (also $5F/$60), made a unit vector, and its dot product with Y's third orientation row ($045D block) in $5F-$61. Y is saved into the operand at $797D for that last step","t":"code","b":[140,125,121],"m":"sty","oa":31101,"x":[4851,13326,14002,28560],"o":"a_797D"},{"a":31050,"t":"code","b":[32,82,124],"m":"jsr","oa":31826,"o":"slot_pos_ptr"},{"a":31053,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":31055,"t":"code","b":[24],"m":"clc"},{"a":31056,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":31059,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":31061,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":31063,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":31065,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":31067,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":31069,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":31071,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":31073,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":31075,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":31078,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":31080,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31082,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":31084,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31086,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":31089,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":31091,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":31093,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":31095,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":31097,"t":"code","b":[32,108,150],"m":"jsr","oa":38508,"o":"vec_div"},{"a":31100,"c":"The LDY operand at $797D is the slot saved at $7947","t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":31101,"t":"note","l":"a_797D","c":"The slot bearing saves at $7947, the LDY operand that picks Y's orientation for the dot product","note":"inside the item at $797C","x":[31047]},{"a":31102,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":31104,"t":"code","b":[24],"m":"clc"},{"a":31105,"t":"code","b":[121,60,8],"m":"adc","oa":2108,"o":"orient_offsets,y"},{"a":31108,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":31110,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":31112,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":31114,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":31116,"t":"code","b":[76,231,148],"m":"jmp","oa":38119,"o":"vec_dot"},{"a":31119,"l":"draw_target_arrows","c":"The four arrowheads that point to the player's target ($0445). The target's position relative to the player, turned into the ship's frame (mat_times_vec with $044B) and projected; each screen coordinate held to the window, counting how many were inside. When the target is ahead (its z sign in $08A7 negative) and on screen, the arrowheads sit on the four edges pointing in at its x and y; otherwise they are drawn 5 pixels (3 rows) in and point outward, toward where it lies","t":"code","b":[162,0],"m":"ldx","x":[3609],"o":"#$00"},{"a":31121,"t":"code","b":[188,69,4],"m":"ldy","oa":1093,"o":"slot_target,x"},{"a":31124,"t":"code","b":[16,1],"m":"bpl","oa":31127,"o":"b_7997"},{"a":31126,"t":"code","b":[96],"m":"rts"},{"a":31127,"l":"b_7997","t":"code","b":[32,82,124],"m":"jsr","oa":31826,"x":[31124],"o":"slot_pos_ptr"},{"a":31130,"t":"code","b":[169,93],"m":"lda","o":"#$5D"},{"a":31132,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":31134,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":31136,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":31138,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":31140,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":31142,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":31144,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":31146,"t":"code","b":[32,204,146],"m":"jsr","oa":37580,"o":"vec_sub_to_log"},{"a":31149,"t":"code","b":[169,107],"m":"lda","o":"#$6B"},{"a":31151,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31153,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":31155,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31157,"t":"code","b":[169,75],"m":"lda","o":"#$4B"},{"a":31159,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":31161,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":31163,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":31165,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":31167,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":31169,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":31171,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":31173,"t":"code","b":[32,96,145],"m":"jsr","oa":37216,"o":"mat_times_vec"},{"a":31176,"t":"code","b":[173,167,8],"m":"lda","oa":2215,"o":"a_08A7"},{"a":31179,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":31181,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":31183,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31185,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":31187,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31189,"t":"code","b":[32,115,103],"m":"jsr","oa":26483,"o":"project"},{"a":31192,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":31194,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":31196,"t":"code","b":[166,81],"m":"ldx","oa":81,"o":"screen_x"},{"a":31198,"t":"code","b":[164,82],"m":"ldy","oa":82,"o":"zpa_52"},{"a":31200,"t":"code","b":[16,4],"m":"bpl","oa":31206,"o":"b_79E6"},{"a":31202,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":31204,"t":"code","b":[240,4],"m":"beq","oa":31210,"o":"b_79EA"},{"a":31206,"l":"b_79E6","t":"code","b":[240,6],"m":"beq","oa":31214,"x":[31200],"o":"b_79EE"},{"a":31208,"l":"b_79E8","t":"code","b":[166,65],"m":"ldx","oa":65,"x":[31216],"o":"window_width"},{"a":31210,"l":"b_79EA","t":"code","b":[160,0],"m":"ldy","x":[31204],"o":"#$00"},{"a":31212,"t":"code","b":[240,6],"m":"beq","oa":31220,"o":"b_79F4"},{"a":31214,"l":"b_79EE","t":"code","b":[228,67],"m":"cpx","oa":67,"x":[31206],"o":"window_width1"},{"a":31216,"t":"code","b":[176,246],"m":"bcs","oa":31208,"o":"b_79E8"},{"a":31218,"t":"code","b":[198,139],"m":"dec","oa":139,"o":"tmp8B"},{"a":31220,"l":"b_79F4","t":"code","b":[134,81],"m":"stx","oa":81,"x":[31212],"o":"screen_x"},{"a":31222,"t":"code","b":[132,82],"m":"sty","oa":82,"o":"zpa_52"},{"a":31224,"t":"code","b":[166,83],"m":"ldx","oa":83,"o":"screen_y"},{"a":31226,"t":"code","b":[164,84],"m":"ldy","oa":84,"o":"zpa_54"},{"a":31228,"t":"code","b":[16,4],"m":"bpl","oa":31234,"o":"b_7A02"},{"a":31230,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":31232,"t":"code","b":[240,4],"m":"beq","oa":31238,"o":"b_7A06"},{"a":31234,"l":"b_7A02","t":"code","b":[240,6],"m":"beq","oa":31242,"x":[31228],"o":"b_7A0A"},{"a":31236,"l":"b_7A04","t":"code","b":[166,66],"m":"ldx","oa":66,"x":[31244],"o":"window_height"},{"a":31238,"l":"b_7A06","t":"code","b":[160,0],"m":"ldy","x":[31232],"o":"#$00"},{"a":31240,"t":"code","b":[240,6],"m":"beq","oa":31248,"o":"b_7A10"},{"a":31242,"l":"b_7A0A","t":"code","b":[228,68],"m":"cpx","oa":68,"x":[31234],"o":"window_height1"},{"a":31244,"t":"code","b":[176,246],"m":"bcs","oa":31236,"o":"b_7A04"},{"a":31246,"t":"code","b":[198,139],"m":"dec","oa":139,"o":"tmp8B"},{"a":31248,"l":"b_7A10","t":"code","b":[134,83],"m":"stx","oa":83,"x":[31240],"o":"screen_y"},{"a":31250,"t":"code","b":[132,84],"m":"sty","oa":84,"o":"zpa_54"},{"a":31252,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":31254,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":31257,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":31259,"t":"code","b":[16,38],"m":"bpl","oa":31299,"o":"b_7A43"},{"a":31261,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":31263,"t":"code","b":[208,34],"m":"bne","oa":31299,"o":"b_7A43"},{"a":31265,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":31267,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":31269,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":31271,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":31273,"t":"code","b":[32,111,122],"m":"jsr","oa":31343,"o":"arrow_right"},{"a":31276,"t":"code","b":[165,65],"m":"lda","oa":65,"o":"window_width"},{"a":31278,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":31280,"t":"code","b":[32,223,122],"m":"jsr","oa":31455,"o":"arrow_left"},{"a":31283,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":31285,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":31287,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":31289,"t":"code","b":[32,79,123],"m":"jsr","oa":31567,"o":"arrow_up"},{"a":31292,"t":"code","b":[165,66],"m":"lda","oa":66,"o":"window_height"},{"a":31294,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":31296,"t":"code","b":[76,181,123],"m":"jmp","oa":31669,"o":"arrow_down"},{"a":31299,"l":"b_7A43","t":"code","b":[169,0],"m":"lda","x":[31259,31263],"o":"#$00"},{"a":31301,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":31303,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":31305,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":31307,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":31309,"t":"code","b":[32,223,122],"m":"jsr","oa":31455,"o":"arrow_left"},{"a":31312,"t":"code","b":[165,65],"m":"lda","oa":65,"o":"window_width"},{"a":31314,"t":"code","b":[56],"m":"sec"},{"a":31315,"t":"code","b":[233,5],"m":"sbc","o":"#$05"},{"a":31317,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":31319,"t":"code","b":[32,111,122],"m":"jsr","oa":31343,"o":"arrow_right"},{"a":31322,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":31324,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":31326,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":31328,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":31330,"t":"code","b":[32,181,123],"m":"jsr","oa":31669,"o":"arrow_down"},{"a":31333,"t":"code","b":[165,66],"m":"lda","oa":66,"o":"window_height"},{"a":31335,"t":"code","b":[56],"m":"sec"},{"a":31336,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":31338,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":31340,"t":"code","b":[76,79,123],"m":"jmp","oa":31567,"o":"arrow_up"},{"a":31343,"l":"arrow_right","c":"An arrowhead 9 rows high at x $47, row $53 (the target's y) as its middle: one pixel wide at the top widening to 5 and back, pointing right","t":"code","b":[165,83],"m":"lda","oa":83,"x":[31273,31319],"o":"screen_y"},{"a":31345,"t":"code","b":[56],"m":"sec"},{"a":31346,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":31348,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":31350,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":31352,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":31354,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":31356,"t":"code","b":[165,71],"m":"lda","oa":71,"o":"clip_x1"},{"a":31358,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":31360,"t":"code","b":[165,72],"m":"lda","oa":72,"o":"zpa_48"},{"a":31362,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":31364,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31367,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31369,"t":"code","b":[208,2],"m":"bne","oa":31373,"o":"b_7A8D"},{"a":31371,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31373,"l":"b_7A8D","t":"code","b":[230,73],"m":"inc","oa":73,"x":[31369],"o":"clip_x2"},{"a":31375,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31378,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31380,"t":"code","b":[208,2],"m":"bne","oa":31384,"o":"b_7A98"},{"a":31382,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31384,"l":"b_7A98","t":"code","b":[230,73],"m":"inc","oa":73,"x":[31380],"o":"clip_x2"},{"a":31386,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31389,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31391,"t":"code","b":[208,2],"m":"bne","oa":31395,"o":"b_7AA3"},{"a":31393,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31395,"l":"b_7AA3","t":"code","b":[230,73],"m":"inc","oa":73,"x":[31391],"o":"clip_x2"},{"a":31397,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31400,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31402,"t":"code","b":[208,2],"m":"bne","oa":31406,"o":"b_7AAE"},{"a":31404,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31406,"l":"b_7AAE","t":"code","b":[230,73],"m":"inc","oa":73,"x":[31402],"o":"clip_x2"},{"a":31408,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31411,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31413,"t":"code","b":[208,2],"m":"bne","oa":31417,"o":"b_7AB9"},{"a":31415,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31417,"l":"b_7AB9","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31413],"o":"clip_x2"},{"a":31419,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31422,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31424,"t":"code","b":[208,2],"m":"bne","oa":31428,"o":"b_7AC4"},{"a":31426,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31428,"l":"b_7AC4","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31424],"o":"clip_x2"},{"a":31430,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31433,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31435,"t":"code","b":[208,2],"m":"bne","oa":31439,"o":"b_7ACF"},{"a":31437,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31439,"l":"b_7ACF","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31435],"o":"clip_x2"},{"a":31441,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31444,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31446,"t":"code","b":[208,2],"m":"bne","oa":31450,"o":"b_7ADA"},{"a":31448,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31450,"l":"b_7ADA","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31446],"o":"clip_x2"},{"a":31452,"t":"code","b":[76,115,140],"m":"jmp","oa":35955,"o":"span_clipped"},{"a":31455,"l":"arrow_left","c":"The same arrowhead pointing left, ending at x $47","t":"code","b":[165,83],"m":"lda","oa":83,"x":[31280,31309],"o":"screen_y"},{"a":31457,"t":"code","b":[56],"m":"sec"},{"a":31458,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":31460,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":31462,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":31464,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":31466,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":31468,"t":"code","b":[165,71],"m":"lda","oa":71,"o":"clip_x1"},{"a":31470,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":31472,"t":"code","b":[165,72],"m":"lda","oa":72,"o":"zpa_48"},{"a":31474,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":31476,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31479,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31481,"t":"code","b":[208,2],"m":"bne","oa":31485,"o":"b_7AFD"},{"a":31483,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31485,"l":"b_7AFD","t":"code","b":[198,71],"m":"dec","oa":71,"x":[31481],"o":"clip_x1"},{"a":31487,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31490,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31492,"t":"code","b":[208,2],"m":"bne","oa":31496,"o":"b_7B08"},{"a":31494,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31496,"l":"b_7B08","t":"code","b":[198,71],"m":"dec","oa":71,"x":[31492],"o":"clip_x1"},{"a":31498,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31501,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31503,"t":"code","b":[208,2],"m":"bne","oa":31507,"o":"b_7B13"},{"a":31505,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31507,"l":"b_7B13","t":"code","b":[198,71],"m":"dec","oa":71,"x":[31503],"o":"clip_x1"},{"a":31509,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31512,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31514,"t":"code","b":[208,2],"m":"bne","oa":31518,"o":"b_7B1E"},{"a":31516,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31518,"l":"b_7B1E","t":"code","b":[198,71],"m":"dec","oa":71,"x":[31514],"o":"clip_x1"},{"a":31520,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31523,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31525,"t":"code","b":[208,2],"m":"bne","oa":31529,"o":"b_7B29"},{"a":31527,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31529,"l":"b_7B29","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31525],"o":"clip_x1"},{"a":31531,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31534,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31536,"t":"code","b":[208,2],"m":"bne","oa":31540,"o":"b_7B34"},{"a":31538,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31540,"l":"b_7B34","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31536],"o":"clip_x1"},{"a":31542,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31545,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31547,"t":"code","b":[208,2],"m":"bne","oa":31551,"o":"b_7B3F"},{"a":31549,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31551,"l":"b_7B3F","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31547],"o":"clip_x1"},{"a":31553,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31556,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31558,"t":"code","b":[208,2],"m":"bne","oa":31562,"o":"b_7B4A"},{"a":31560,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31562,"l":"b_7B4A","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31558],"o":"clip_x1"},{"a":31564,"t":"code","b":[76,115,140],"m":"jmp","oa":35955,"o":"span_clipped"},{"a":31567,"l":"arrow_up","c":"An arrowhead at the target's x ($51, even) and row $4B: 8 pixels wide narrowing over 4 rows upward","t":"code","b":[165,81],"m":"lda","oa":81,"x":[31289,31340],"o":"screen_x"},{"a":31569,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":31571,"t":"code","b":[56],"m":"sec"},{"a":31572,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":31574,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":31576,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":31578,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":31580,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":31582,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":31584,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":31586,"t":"code","b":[24],"m":"clc"},{"a":31587,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":31589,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":31591,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":31593,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":31595,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":31597,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31600,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31602,"t":"code","b":[208,2],"m":"bne","oa":31606,"o":"b_7B76"},{"a":31604,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31606,"l":"b_7B76","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31602],"o":"clip_x1"},{"a":31608,"t":"code","b":[208,2],"m":"bne","oa":31612,"o":"b_7B7C"},{"a":31610,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":31612,"l":"b_7B7C","t":"code","b":[165,73],"m":"lda","oa":73,"x":[31608],"o":"clip_x2"},{"a":31614,"t":"code","b":[208,2],"m":"bne","oa":31618,"o":"b_7B82"},{"a":31616,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":31618,"l":"b_7B82","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31614],"o":"clip_x2"},{"a":31620,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31623,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31625,"t":"code","b":[208,2],"m":"bne","oa":31629,"o":"b_7B8D"},{"a":31627,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31629,"l":"b_7B8D","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31625],"o":"clip_x1"},{"a":31631,"t":"code","b":[208,2],"m":"bne","oa":31635,"o":"b_7B93"},{"a":31633,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":31635,"l":"b_7B93","t":"code","b":[165,73],"m":"lda","oa":73,"x":[31631],"o":"clip_x2"},{"a":31637,"t":"code","b":[208,2],"m":"bne","oa":31641,"o":"b_7B99"},{"a":31639,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":31641,"l":"b_7B99","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31637],"o":"clip_x2"},{"a":31643,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31646,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":31648,"t":"code","b":[208,2],"m":"bne","oa":31652,"o":"b_7BA4"},{"a":31650,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":31652,"l":"b_7BA4","t":"code","b":[230,71],"m":"inc","oa":71,"x":[31648],"o":"clip_x1"},{"a":31654,"t":"code","b":[208,2],"m":"bne","oa":31658,"o":"b_7BAA"},{"a":31656,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":31658,"l":"b_7BAA","t":"code","b":[165,73],"m":"lda","oa":73,"x":[31654],"o":"clip_x2"},{"a":31660,"t":"code","b":[208,2],"m":"bne","oa":31664,"o":"b_7BB0"},{"a":31662,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":31664,"l":"b_7BB0","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31660],"o":"clip_x2"},{"a":31666,"t":"code","b":[76,115,140],"m":"jmp","oa":35955,"o":"span_clipped"},{"a":31669,"l":"arrow_down","c":"The same arrowhead pointing down from row $4B","t":"code","b":[165,81],"m":"lda","oa":81,"x":[31296,31330],"o":"screen_x"},{"a":31671,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":31673,"t":"code","b":[56],"m":"sec"},{"a":31674,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":31676,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":31678,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":31680,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":31682,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":31684,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":31686,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":31688,"t":"code","b":[24],"m":"clc"},{"a":31689,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":31691,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":31693,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":31695,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":31697,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":31699,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31702,"t":"code","b":[165,75],"m":"lda","oa":75,"o":"clip_row"},{"a":31704,"t":"code","b":[208,2],"m":"bne","oa":31708,"o":"b_7BDC"},{"a":31706,"t":"code","b":[198,76],"m":"dec","oa":76,"o":"zpa_4C"},{"a":31708,"l":"b_7BDC","t":"code","b":[198,75],"m":"dec","oa":75,"x":[31704],"o":"clip_row"},{"a":31710,"t":"code","b":[230,71],"m":"inc","oa":71,"o":"clip_x1"},{"a":31712,"t":"code","b":[208,2],"m":"bne","oa":31716,"o":"b_7BE4"},{"a":31714,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":31716,"l":"b_7BE4","t":"code","b":[165,73],"m":"lda","oa":73,"x":[31712],"o":"clip_x2"},{"a":31718,"t":"code","b":[208,2],"m":"bne","oa":31722,"o":"b_7BEA"},{"a":31720,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":31722,"l":"b_7BEA","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31718],"o":"clip_x2"},{"a":31724,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31727,"t":"code","b":[165,75],"m":"lda","oa":75,"o":"clip_row"},{"a":31729,"t":"code","b":[208,2],"m":"bne","oa":31733,"o":"b_7BF5"},{"a":31731,"t":"code","b":[198,76],"m":"dec","oa":76,"o":"zpa_4C"},{"a":31733,"l":"b_7BF5","t":"code","b":[198,75],"m":"dec","oa":75,"x":[31729],"o":"clip_row"},{"a":31735,"t":"code","b":[230,71],"m":"inc","oa":71,"o":"clip_x1"},{"a":31737,"t":"code","b":[208,2],"m":"bne","oa":31741,"o":"b_7BFD"},{"a":31739,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":31741,"l":"b_7BFD","t":"code","b":[165,73],"m":"lda","oa":73,"x":[31737],"o":"clip_x2"},{"a":31743,"t":"code","b":[208,2],"m":"bne","oa":31747,"o":"b_7C03"},{"a":31745,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":31747,"l":"b_7C03","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31743],"o":"clip_x2"},{"a":31749,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":31752,"t":"code","b":[165,75],"m":"lda","oa":75,"o":"clip_row"},{"a":31754,"t":"code","b":[208,2],"m":"bne","oa":31758,"o":"b_7C0E"},{"a":31756,"t":"code","b":[198,76],"m":"dec","oa":76,"o":"zpa_4C"},{"a":31758,"l":"b_7C0E","t":"code","b":[198,75],"m":"dec","oa":75,"x":[31754],"o":"clip_row"},{"a":31760,"t":"code","b":[230,71],"m":"inc","oa":71,"o":"clip_x1"},{"a":31762,"t":"code","b":[208,2],"m":"bne","oa":31766,"o":"b_7C16"},{"a":31764,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":31766,"l":"b_7C16","t":"code","b":[165,73],"m":"lda","oa":73,"x":[31762],"o":"clip_x2"},{"a":31768,"t":"code","b":[208,2],"m":"bne","oa":31772,"o":"b_7C1C"},{"a":31770,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":31772,"l":"b_7C1C","t":"code","b":[198,73],"m":"dec","oa":73,"x":[31768],"o":"clip_x2"},{"a":31774,"t":"code","b":[76,115,140],"m":"jmp","oa":35955,"o":"span_clipped"},{"a":31777,"l":"speed_of","c":"The speed of slot Y, a whole number in A: its velocity's length times 16 (4 added to the log's whole part), back from log form. Docking wants under 21, a Malir gate 20 or more","t":"code","b":[169,69],"m":"lda","x":[12724,14273,27763,28748],"o":"#$45"},{"a":31779,"t":"code","b":[24],"m":"clc"},{"a":31780,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":31783,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31785,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":31787,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":31789,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31791,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":31793,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":31795,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":31797,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":31799,"t":"code","b":[32,114,147],"m":"jsr","oa":37746,"o":"vec_lin_to_log"},{"a":31802,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":31804,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31806,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":31808,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31810,"t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":31813,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":31815,"t":"code","b":[24],"m":"clc"},{"a":31816,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":31818,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":31820,"t":"code","b":[32,224,181],"m":"jsr","oa":46560,"o":"$B5E0"},{"a":31823,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":31825,"t":"code","b":[96],"m":"rts"},{"a":31826,"l":"slot_pos_ptr","c":"Points ($74) at slot Y's position: $065D plus 9 * Y ($0846)","t":"code","b":[169,93],"m":"lda","x":[7136,7909,8103,8466,8629,8900,8988,9462,15666,15942,25620,25734,27379,27825,28189,28268,29502,29598,30908,31050,31127],"o":"#$5D"},{"a":31828,"t":"code","b":[24],"m":"clc"},{"a":31829,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":31832,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":31834,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":31836,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":31838,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":31840,"t":"code","b":[96],"m":"rts"},{"a":31841,"l":"draw_model","c":"Every 3D model's code starts by putting its 36-byte header's address in $7A/$7B and jumping here, with ($74) its position relative to the camera (log form), ($78) its orientation, ($76) an optional colour table and $5F/$60 its scale. The header is copied to $9A-$BD; the first time ($9A = 0) the model is prepared (prepare_model). Then the points are placed (place_points), the faces tested (face_signs) and the polygons drawn (draw_polygons)","t":"code","b":[165,116],"m":"lda","oa":116,"x":[26651,26930],"o":"src1_ptr"},{"a":31843,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"tmp98"},{"a":31845,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":31847,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"tmp99"},{"a":31849,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":31851,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":31853,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":31855,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":31857,"t":"code","b":[160,35],"m":"ldy","o":"#$23"},{"a":31859,"l":"b_7C73","t":"code","b":[177,122],"m":"lda","oa":122,"x":[31865],"o":"(model_ptr),y"},{"a":31861,"t":"code","b":[153,154,0],"m":"sta","oa":154,"o":"model_inited,y"},{"a":31864,"t":"code","b":[136],"m":"dey"},{"a":31865,"t":"code","b":[16,248],"m":"bpl","oa":31859,"o":"b_7C73"},{"a":31867,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":31869,"t":"code","b":[240,6],"m":"beq","oa":31877,"o":"b_7C85"},{"a":31871,"t":"code","b":[133,181],"m":"sta","oa":181,"o":"zpa_B5"},{"a":31873,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":31875,"t":"code","b":[133,180],"m":"sta","oa":180,"o":"model_frontcol"},{"a":31877,"l":"b_7C85","t":"code","b":[165,154],"m":"lda","oa":154,"x":[31869],"o":"model_inited"},{"a":31879,"t":"code","b":[208,9],"m":"bne","oa":31890,"o":"b_7C92"},{"a":31881,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":31883,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":31885,"t":"code","b":[145,122],"m":"sta","oa":122,"o":"(model_ptr),y"},{"a":31887,"t":"code","b":[32,155,124],"m":"jsr","oa":31899,"o":"prepare_model"},{"a":31890,"l":"b_7C92","t":"code","b":[32,171,125],"m":"jsr","oa":32171,"x":[31879],"o":"place_points"},{"a":31893,"t":"code","b":[32,102,126],"m":"jsr","oa":32358,"o":"face_signs"},{"a":31896,"t":"code","b":[76,214,126],"m":"jmp","oa":32470,"o":"draw_polygons"},{"a":31899,"l":"prepare_model","c":"A model's first use: each axis vector's log has the scale in $5F/$60 less $06A4 (100) added, unless the component is near zero (whole part below -10); the points are worked out in the model's own frame (place_points with the identity at $0DA8 and the zero vector at $0DAB); the reference points ($A0) are stored, linear and negated, in the table at ($A8); and each normal ($AA) is made as the cross product of two edges of its polygon, from the vertex list ($B6, the counts at $B8)","t":"code","b":[165,95],"m":"lda","oa":95,"x":[31887],"o":"acc_lo"},{"a":31901,"t":"code","b":[56],"m":"sec"},{"a":31902,"t":"code","b":[233,164],"m":"sbc","o":"#$A4"},{"a":31904,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":31906,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":31908,"t":"code","b":[233,6],"m":"sbc","o":"#$06"},{"a":31910,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":31912,"t":"code","b":[165,159],"m":"lda","oa":159,"o":"model_axes"},{"a":31914,"t":"code","b":[10],"m":"asl","o":"a"},{"a":31915,"t":"code","b":[24],"m":"clc"},{"a":31916,"t":"code","b":[101,159],"m":"adc","oa":159,"o":"model_axes"},{"a":31918,"t":"code","b":[170],"m":"tax"},{"a":31919,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":31921,"l":"b_7CB1","t":"code","b":[200],"m":"iny","x":[31946]},{"a":31922,"t":"code","b":[177,164],"m":"lda","oa":164,"o":"(model_axisvec),y"},{"a":31924,"t":"code","b":[201,246],"m":"cmp","o":"#$F6"},{"a":31926,"t":"code","b":[48,15],"m":"bmi","oa":31943,"o":"b_7CC7"},{"a":31928,"t":"code","b":[136],"m":"dey"},{"a":31929,"t":"code","b":[177,164],"m":"lda","oa":164,"o":"(model_axisvec),y"},{"a":31931,"t":"code","b":[24],"m":"clc"},{"a":31932,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":31934,"t":"code","b":[145,164],"m":"sta","oa":164,"o":"(model_axisvec),y"},{"a":31936,"t":"code","b":[200],"m":"iny"},{"a":31937,"t":"code","b":[177,164],"m":"lda","oa":164,"o":"(model_axisvec),y"},{"a":31939,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":31941,"t":"code","b":[145,164],"m":"sta","oa":164,"o":"(model_axisvec),y"},{"a":31943,"l":"b_7CC7","t":"code","b":[200],"m":"iny","x":[31926]},{"a":31944,"t":"code","b":[200],"m":"iny"},{"a":31945,"t":"code","b":[202],"m":"dex"},{"a":31946,"t":"code","b":[208,229],"m":"bne","oa":31921,"o":"b_7CB1"},{"a":31948,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":31950,"t":"code","b":[72],"m":"pha"},{"a":31951,"t":"code","b":[165,150],"m":"lda","oa":150,"o":"tmp96"},{"a":31953,"t":"code","b":[72],"m":"pha"},{"a":31954,"t":"code","b":[165,153],"m":"lda","oa":153,"o":"tmp99"},{"a":31956,"t":"code","b":[72],"m":"pha"},{"a":31957,"t":"code","b":[165,152],"m":"lda","oa":152,"o":"tmp98"},{"a":31959,"t":"code","b":[72],"m":"pha"},{"a":31960,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":31962,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":31964,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":31966,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":31968,"t":"code","b":[169,171],"m":"lda","o":"#$AB"},{"a":31970,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"tmp98"},{"a":31972,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":31974,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"tmp99"},{"a":31976,"t":"code","b":[32,171,125],"m":"jsr","oa":32171,"o":"place_points"},{"a":31979,"t":"code","b":[104],"m":"pla"},{"a":31980,"t":"code","b":[133,152],"m":"sta","oa":152,"o":"tmp98"},{"a":31982,"t":"code","b":[104],"m":"pla"},{"a":31983,"t":"code","b":[133,153],"m":"sta","oa":153,"o":"tmp99"},{"a":31985,"t":"code","b":[104],"m":"pla"},{"a":31986,"t":"code","b":[133,150],"m":"sta","oa":150,"o":"tmp96"},{"a":31988,"t":"code","b":[104],"m":"pla"},{"a":31989,"t":"code","b":[133,151],"m":"sta","oa":151,"o":"tmp97"},{"a":31991,"t":"code","b":[164,156],"m":"ldy","oa":156,"o":"model_refs"},{"a":31993,"t":"code","b":[208,1],"m":"bne","oa":31996,"o":"b_7CFC"},{"a":31995,"t":"code","b":[96],"m":"rts"},{"a":31996,"l":"b_7CFC","t":"code","b":[136],"m":"dey","x":[31993]},{"a":31997,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":31999,"l":"b_7CFF","t":"code","b":[164,149],"m":"ldy","oa":149,"x":[32036],"o":"tmp95"},{"a":32001,"t":"code","b":[177,160],"m":"lda","oa":160,"o":"(model_reflist),y"},{"a":32003,"t":"code","b":[32,110,127],"m":"jsr","oa":32622,"o":"point_ptr"},{"a":32006,"t":"code","b":[165,168],"m":"lda","oa":168,"o":"model_refpts"},{"a":32008,"t":"code","b":[24],"m":"clc"},{"a":32009,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32012,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32014,"t":"code","b":[165,169],"m":"lda","oa":169,"o":"zpa_A9"},{"a":32016,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32018,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32020,"t":"code","b":[32,75,147],"m":"jsr","oa":37707,"o":"vec_log_to_lin"},{"a":32023,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":32025,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32027,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":32029,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32031,"t":"code","b":[32,227,151],"m":"jsr","oa":38883,"o":"vec_neg_lin"},{"a":32034,"t":"code","b":[198,149],"m":"dec","oa":149,"o":"tmp95"},{"a":32036,"t":"code","b":[16,217],"m":"bpl","oa":31999,"o":"b_7CFF"},{"a":32038,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32040,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":32042,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"tmp95"},{"a":32044,"l":"b_7D2C","t":"code","b":[164,149],"m":"ldy","oa":149,"x":[32168],"o":"tmp95"},{"a":32046,"t":"code","b":[177,182],"m":"lda","oa":182,"o":"(model_vertlists),y"},{"a":32048,"t":"code","b":[32,110,127],"m":"jsr","oa":32622,"o":"point_ptr"},{"a":32051,"t":"code","b":[200],"m":"iny"},{"a":32052,"t":"code","b":[177,182],"m":"lda","oa":182,"o":"(model_vertlists),y"},{"a":32054,"t":"code","b":[170],"m":"tax"},{"a":32055,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32057,"t":"code","b":[24],"m":"clc"},{"a":32058,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32061,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32063,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32065,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32067,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32069,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":32071,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32073,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":32075,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32077,"t":"code","b":[32,222,150],"m":"jsr","oa":38622,"o":"vec_sub_log"},{"a":32080,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":32082,"t":"code","b":[200],"m":"iny"},{"a":32083,"t":"code","b":[200],"m":"iny"},{"a":32084,"t":"code","b":[177,182],"m":"lda","oa":182,"o":"(model_vertlists),y"},{"a":32086,"t":"code","b":[32,110,127],"m":"jsr","oa":32622,"o":"point_ptr"},{"a":32089,"t":"code","b":[136],"m":"dey"},{"a":32090,"t":"code","b":[177,182],"m":"lda","oa":182,"o":"(model_vertlists),y"},{"a":32092,"t":"code","b":[170],"m":"tax"},{"a":32093,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32095,"t":"code","b":[24],"m":"clc"},{"a":32096,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32099,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32101,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32103,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32105,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32107,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":32109,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32111,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":32113,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32115,"t":"code","b":[32,222,150],"m":"jsr","oa":38622,"o":"vec_sub_log"},{"a":32118,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":32120,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32122,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":32124,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32126,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":32128,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32130,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":32132,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32134,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":32136,"t":"code","b":[165,170],"m":"lda","oa":170,"o":"model_normvec"},{"a":32138,"t":"code","b":[24],"m":"clc"},{"a":32139,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32142,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32144,"t":"code","b":[165,171],"m":"lda","oa":171,"o":"zpa_AB"},{"a":32146,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32148,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32150,"t":"code","b":[32,220,147],"m":"jsr","oa":37852,"o":"vec_cross"},{"a":32153,"t":"code","b":[164,148],"m":"ldy","oa":148,"o":"tmp94"},{"a":32155,"t":"code","b":[165,149],"m":"lda","oa":149,"o":"tmp95"},{"a":32157,"t":"code","b":[24],"m":"clc"},{"a":32158,"t":"code","b":[113,184],"m":"adc","oa":184,"o":"(model_vertcounts),y"},{"a":32160,"t":"code","b":[133,149],"m":"sta","oa":149,"o":"tmp95"},{"a":32162,"t":"code","b":[230,148],"m":"inc","oa":148,"o":"tmp94"},{"a":32164,"t":"code","b":[165,148],"m":"lda","oa":148,"o":"tmp94"},{"a":32166,"t":"code","b":[197,157],"m":"cmp","oa":157,"o":"model_normals"},{"a":32168,"t":"code","b":[208,130],"m":"bne","oa":32044,"o":"b_7D2C"},{"a":32170,"t":"code","b":[96],"m":"rts"},{"a":32171,"l":"place_points","c":"Places the model's points: each axis vector ($A4, $9F of them) is turned by the orientation ($96, vec_times_rows) into $FA52; then each point ($9B of them) is its parent (the position ($98) for a negative entry in ($A6), else an earlier point) plus or minus an axis vector (($A2), negative to subtract), into $FB00 + 9 * n; a point in front of the viewer (z negative) is projected ($6773) and its screen x and y kept at $FC20 + 4 * n","t":"code","b":[164,159],"m":"ldy","oa":159,"x":[31890,31976],"o":"model_axes"},{"a":32173,"t":"code","b":[136],"m":"dey"},{"a":32174,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":32176,"l":"b_7DB0","t":"code","b":[164,149],"m":"ldy","oa":149,"x":[32219],"o":"tmp95"},{"a":32178,"t":"code","b":[165,164],"m":"lda","oa":164,"o":"model_axisvec"},{"a":32180,"t":"code","b":[24],"m":"clc"},{"a":32181,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32184,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32186,"t":"code","b":[165,165],"m":"lda","oa":165,"o":"zpa_A5"},{"a":32188,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32190,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32192,"t":"code","b":[165,150],"m":"lda","oa":150,"o":"tmp96"},{"a":32194,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32196,"t":"code","b":[165,151],"m":"lda","oa":151,"o":"tmp97"},{"a":32198,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32200,"t":"code","b":[169,82],"m":"lda","o":"#$52"},{"a":32202,"t":"code","b":[24],"m":"clc"},{"a":32203,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32206,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32208,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":32210,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32212,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32214,"t":"code","b":[32,8,145],"m":"jsr","oa":37128,"o":"vec_times_rows"},{"a":32217,"t":"code","b":[198,149],"m":"dec","oa":149,"o":"tmp95"},{"a":32219,"t":"code","b":[16,211],"m":"bpl","oa":32176,"o":"b_7DB0"},{"a":32221,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":32223,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":32225,"l":"j_7DE1","t":"code","b":[169,0],"m":"lda","x":[32354],"o":"#$00"},{"a":32227,"t":"code","b":[24],"m":"clc"},{"a":32228,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32231,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32233,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32235,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32237,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32239,"t":"code","b":[177,166],"m":"lda","oa":166,"o":"(model_parents),y"},{"a":32241,"t":"code","b":[48,6],"m":"bmi","oa":32249,"o":"b_7DF9"},{"a":32243,"t":"code","b":[32,110,127],"m":"jsr","oa":32622,"o":"point_ptr"},{"a":32246,"t":"code","b":[76,1,126],"m":"jmp","oa":32257,"o":"j_7E01"},{"a":32249,"l":"b_7DF9","t":"code","b":[165,152],"m":"lda","oa":152,"x":[32241],"o":"tmp98"},{"a":32251,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32253,"t":"code","b":[165,153],"m":"lda","oa":153,"o":"tmp99"},{"a":32255,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32257,"l":"j_7E01","t":"code","b":[177,162],"m":"lda","oa":162,"x":[32246],"o":"(model_axisidx),y"},{"a":32259,"t":"code","b":[48,21],"m":"bmi","oa":32282,"o":"b_7E1A"},{"a":32261,"t":"code","b":[170],"m":"tax"},{"a":32262,"t":"code","b":[169,82],"m":"lda","o":"#$52"},{"a":32264,"t":"code","b":[24],"m":"clc"},{"a":32265,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32268,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32270,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":32272,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32274,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32276,"t":"code","b":[32,171,150],"m":"jsr","oa":38571,"o":"vec_add_log"},{"a":32279,"t":"code","b":[76,51,126],"m":"jmp","oa":32307,"o":"j_7E33"},{"a":32282,"l":"b_7E1A","t":"code","b":[73,255],"m":"eor","x":[32259],"o":"#$FF"},{"a":32284,"t":"code","b":[24],"m":"clc"},{"a":32285,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":32287,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":32289,"t":"code","b":[170],"m":"tax"},{"a":32290,"t":"code","b":[169,82],"m":"lda","o":"#$52"},{"a":32292,"t":"code","b":[24],"m":"clc"},{"a":32293,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32296,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32298,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":32300,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32302,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32304,"t":"code","b":[32,222,150],"m":"jsr","oa":38622,"o":"vec_sub_log"},{"a":32307,"l":"j_7E33","t":"code","b":[165,149],"m":"lda","oa":149,"x":[32279],"o":"tmp95"},{"a":32309,"t":"code","b":[32,110,127],"m":"jsr","oa":32622,"o":"point_ptr"},{"a":32312,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":32314,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":32316,"t":"code","b":[16,28],"m":"bpl","oa":32346,"o":"b_7E5A"},{"a":32318,"t":"code","b":[32,115,103],"m":"jsr","oa":26483,"o":"project"},{"a":32321,"t":"code","b":[165,149],"m":"lda","oa":149,"o":"tmp95"},{"a":32323,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32324,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32325,"t":"code","b":[170],"m":"tax"},{"a":32326,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":32328,"t":"code","b":[157,32,252],"m":"sta","oa":64544,"o":"a_FC20,x"},{"a":32331,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":32333,"t":"code","b":[157,33,252],"m":"sta","oa":64545,"o":"f_FC21,x"},{"a":32336,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":32338,"t":"code","b":[157,34,252],"m":"sta","oa":64546,"o":"f_FC22,x"},{"a":32341,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":32343,"t":"code","b":[157,35,252],"m":"sta","oa":64547,"o":"f_FC23,x"},{"a":32346,"l":"b_7E5A","t":"code","b":[230,149],"m":"inc","oa":149,"x":[32316],"o":"tmp95"},{"a":32348,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":32350,"t":"code","b":[196,155],"m":"cpy","oa":155,"o":"model_points"},{"a":32352,"t":"code","b":[240,3],"m":"beq","oa":32357,"o":"r_7E65"},{"a":32354,"t":"code","b":[76,225,125],"m":"jmp","oa":32225,"o":"j_7DE1"},{"a":32357,"l":"r_7E65","t":"code","b":[96],"m":"rts","x":[32352,32362]},{"a":32358,"l":"face_signs","c":"For each reference point ($9C), its offset from the viewer ($0D5B) in log form into $FA00; for each normal ($9D), the sign of its dot product with its reference point's offset (($AC) says which) into $FA36: negative when that face is turned toward the viewer","t":"code","b":[165,156],"m":"lda","oa":156,"x":[31893],"o":"model_refs"},{"a":32360,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":32362,"t":"code","b":[240,249],"m":"beq","oa":32357,"o":"r_7E65"},{"a":32364,"t":"code","b":[165,168],"m":"lda","oa":168,"o":"model_refpts"},{"a":32366,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32368,"t":"code","b":[165,169],"m":"lda","oa":169,"o":"zpa_A9"},{"a":32370,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32372,"t":"code","b":[169,91],"m":"lda","o":"#$5B"},{"a":32374,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32376,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":32378,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32380,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32382,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32384,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":32386,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":32388,"l":"b_7E84","t":"code","b":[32,204,146],"m":"jsr","oa":37580,"x":[32415],"o":"vec_sub_to_log"},{"a":32391,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":32393,"t":"code","b":[24],"m":"clc"},{"a":32394,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":32396,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32398,"t":"code","b":[144,2],"m":"bcc","oa":32402,"o":"b_7E92"},{"a":32400,"t":"code","b":[230,117],"m":"inc","oa":117,"o":"zpa_75"},{"a":32402,"l":"b_7E92","t":"code","b":[165,120],"m":"lda","oa":120,"x":[32398],"o":"dest_ptr"},{"a":32404,"t":"code","b":[24],"m":"clc"},{"a":32405,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":32407,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":32409,"t":"code","b":[144,2],"m":"bcc","oa":32413,"o":"b_7E9D"},{"a":32411,"t":"code","b":[230,121],"m":"inc","oa":121,"o":"zpa_79"},{"a":32413,"l":"b_7E9D","t":"code","b":[198,148],"m":"dec","oa":148,"x":[32409],"o":"tmp94"},{"a":32415,"t":"code","b":[208,227],"m":"bne","oa":32388,"o":"b_7E84"},{"a":32417,"t":"code","b":[164,157],"m":"ldy","oa":157,"o":"model_normals"},{"a":32419,"t":"code","b":[136],"m":"dey"},{"a":32420,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":32422,"l":"b_7EA6","t":"code","b":[164,149],"m":"ldy","oa":149,"x":[32467],"o":"tmp95"},{"a":32424,"t":"code","b":[165,170],"m":"lda","oa":170,"o":"model_normvec"},{"a":32426,"t":"code","b":[24],"m":"clc"},{"a":32427,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32430,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32432,"t":"code","b":[165,171],"m":"lda","oa":171,"o":"zpa_AB"},{"a":32434,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32436,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32438,"t":"code","b":[177,172],"m":"lda","oa":172,"o":"(model_normref),y"},{"a":32440,"t":"code","b":[170],"m":"tax"},{"a":32441,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32443,"t":"code","b":[24],"m":"clc"},{"a":32444,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32447,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32449,"t":"code","b":[169,250],"m":"lda","o":"#$FA"},{"a":32451,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32453,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32455,"t":"code","b":[32,231,148],"m":"jsr","oa":38119,"o":"vec_dot"},{"a":32458,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":32460,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":32462,"t":"code","b":[153,54,250],"m":"sta","oa":64054,"o":"f_FA36,y"},{"a":32465,"t":"code","b":[198,149],"m":"dec","oa":149,"o":"tmp95"},{"a":32467,"t":"code","b":[16,209],"m":"bpl","oa":32422,"o":"b_7EA6"},{"a":32469,"t":"code","b":[96],"m":"rts"},{"a":32470,"l":"draw_polygons","c":"Draws the model's polygons ($9E) in three passes for a painter's order: first those on the far side of the plane that ($AE) names for them (by its normal's sign in $FA36, a negative entry reversing the test), then those with 0 in ($AE), then the near ones (draw_polygon)","t":"code","b":[160,0],"m":"ldy","x":[31896],"o":"#$00"},{"a":32472,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":32474,"l":"b_7EDA","t":"code","b":[177,174],"m":"lda","oa":174,"x":[32506],"o":"(model_planes),y"},{"a":32476,"t":"code","b":[240,22],"m":"beq","oa":32500,"o":"b_7EF4"},{"a":32478,"t":"code","b":[16,11],"m":"bpl","oa":32491,"o":"b_7EEB"},{"a":32480,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":32482,"t":"code","b":[170],"m":"tax"},{"a":32483,"t":"code","b":[232],"m":"inx"},{"a":32484,"t":"code","b":[189,54,250],"m":"lda","oa":64054,"o":"f_FA36,x"},{"a":32487,"t":"code","b":[48,11],"m":"bmi","oa":32500,"o":"b_7EF4"},{"a":32489,"t":"code","b":[16,6],"m":"bpl","oa":32497,"o":"b_7EF1"},{"a":32491,"l":"b_7EEB","t":"code","b":[170],"m":"tax","x":[32478]},{"a":32492,"t":"code","b":[189,54,250],"m":"lda","oa":64054,"o":"f_FA36,x"},{"a":32495,"t":"code","b":[16,3],"m":"bpl","oa":32500,"o":"b_7EF4"},{"a":32497,"l":"b_7EF1","t":"code","b":[32,54,127],"m":"jsr","oa":32566,"x":[32489],"o":"draw_polygon"},{"a":32500,"l":"b_7EF4","t":"code","b":[230,149],"m":"inc","oa":149,"x":[32476,32487,32495],"o":"tmp95"},{"a":32502,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":32504,"t":"code","b":[196,158],"m":"cpy","oa":158,"o":"model_polys"},{"a":32506,"t":"code","b":[208,222],"m":"bne","oa":32474,"o":"b_7EDA"},{"a":32508,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":32510,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":32512,"l":"b_7F00","t":"code","b":[177,174],"m":"lda","oa":174,"x":[32525],"o":"(model_planes),y"},{"a":32514,"t":"code","b":[208,3],"m":"bne","oa":32519,"o":"b_7F07"},{"a":32516,"t":"code","b":[32,54,127],"m":"jsr","oa":32566,"o":"draw_polygon"},{"a":32519,"l":"b_7F07","t":"code","b":[230,149],"m":"inc","oa":149,"x":[32514],"o":"tmp95"},{"a":32521,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":32523,"t":"code","b":[196,158],"m":"cpy","oa":158,"o":"model_polys"},{"a":32525,"t":"code","b":[208,241],"m":"bne","oa":32512,"o":"b_7F00"},{"a":32527,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":32529,"t":"code","b":[132,149],"m":"sty","oa":149,"o":"tmp95"},{"a":32531,"l":"b_7F13","t":"code","b":[177,174],"m":"lda","oa":174,"x":[32563],"o":"(model_planes),y"},{"a":32533,"t":"code","b":[240,22],"m":"beq","oa":32557,"o":"b_7F2D"},{"a":32535,"t":"code","b":[16,11],"m":"bpl","oa":32548,"o":"b_7F24"},{"a":32537,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":32539,"t":"code","b":[170],"m":"tax"},{"a":32540,"t":"code","b":[232],"m":"inx"},{"a":32541,"t":"code","b":[189,54,250],"m":"lda","oa":64054,"o":"f_FA36,x"},{"a":32544,"t":"code","b":[16,11],"m":"bpl","oa":32557,"o":"b_7F2D"},{"a":32546,"t":"code","b":[48,6],"m":"bmi","oa":32554,"o":"b_7F2A"},{"a":32548,"l":"b_7F24","t":"code","b":[170],"m":"tax","x":[32535]},{"a":32549,"t":"code","b":[189,54,250],"m":"lda","oa":64054,"o":"f_FA36,x"},{"a":32552,"t":"code","b":[48,3],"m":"bmi","oa":32557,"o":"b_7F2D"},{"a":32554,"l":"b_7F2A","t":"code","b":[32,54,127],"m":"jsr","oa":32566,"x":[32546],"o":"draw_polygon"},{"a":32557,"l":"b_7F2D","t":"code","b":[230,149],"m":"inc","oa":149,"x":[32533,32544,32552],"o":"tmp95"},{"a":32559,"t":"code","b":[164,149],"m":"ldy","oa":149,"o":"tmp95"},{"a":32561,"t":"code","b":[196,158],"m":"cpy","oa":158,"o":"model_polys"},{"a":32563,"t":"code","b":[208,222],"m":"bne","oa":32531,"o":"b_7F13"},{"a":32565,"t":"code","b":[96],"m":"rts"},{"a":32566,"l":"draw_polygon","c":"Draws polygon Y: the colour from ($B4) when its normal ($B0) faces the viewer, else from ($B2), $FF meaning not drawn from that side ($8F80 sets the pattern); its vertex count from ($B8) and its vertex list found by summing the counts before it in ($B6). Then on to clip_polygon","t":"code","b":[132,128],"m":"sty","oa":128,"x":[32497,32516,32554],"o":"tmp80"},{"a":32568,"t":"code","b":[177,176],"m":"lda","oa":176,"o":"(model_polynorm),y"},{"a":32570,"t":"code","b":[170],"m":"tax"},{"a":32571,"t":"code","b":[189,54,250],"m":"lda","oa":64054,"o":"f_FA36,x"},{"a":32574,"t":"code","b":[16,7],"m":"bpl","oa":32583,"o":"b_7F47"},{"a":32576,"t":"code","b":[177,178],"m":"lda","oa":178,"o":"(model_backcol),y"},{"a":32578,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":32580,"t":"code","b":[208,7],"m":"bne","oa":32589,"o":"b_7F4D"},{"a":32582,"l":"r_7F46","t":"code","b":[96],"m":"rts","x":[32587]},{"a":32583,"l":"b_7F47","t":"code","b":[177,180],"m":"lda","oa":180,"x":[32574],"o":"(model_frontcol),y"},{"a":32585,"t":"code","b":[201,255],"m":"cmp","o":"#$FF"},{"a":32587,"t":"code","b":[240,249],"m":"beq","oa":32582,"o":"r_7F46"},{"a":32589,"l":"b_7F4D","t":"code","b":[170],"m":"tax","x":[32580]},{"a":32590,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":32593,"t":"code","b":[164,128],"m":"ldy","oa":128,"o":"tmp80"},{"a":32595,"t":"code","b":[177,184],"m":"lda","oa":184,"o":"(model_vertcounts),y"},{"a":32597,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":32599,"t":"code","b":[24],"m":"clc"},{"a":32600,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32602,"l":"b_7F5A","t":"code","b":[136],"m":"dey","x":[32607]},{"a":32603,"t":"code","b":[48,4],"m":"bmi","oa":32609,"o":"b_7F61"},{"a":32605,"t":"code","b":[113,184],"m":"adc","oa":184,"o":"(model_vertcounts),y"},{"a":32607,"t":"code","b":[208,249],"m":"bne","oa":32602,"o":"b_7F5A"},{"a":32609,"l":"b_7F61","t":"code","b":[101,182],"m":"adc","oa":182,"x":[32603],"o":"model_vertlists"},{"a":32611,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32613,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32615,"t":"code","b":[101,183],"m":"adc","oa":183,"o":"zpa_B7"},{"a":32617,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32619,"t":"code","b":[76,126,127],"m":"jmp","oa":32638,"o":"clip_polygon"},{"a":32622,"l":"point_ptr","c":"Points ($74) at model point A: $FB00 plus 9 * A","t":"code","b":[170],"m":"tax","x":[32003,32048,32086,32243,32309]},{"a":32623,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32625,"t":"code","b":[24],"m":"clc"},{"a":32626,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32629,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32631,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32633,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":32635,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32637,"t":"code","b":[96],"m":"rts"},{"a":32638,"l":"clip_polygon","c":"Copies the polygon's vertex numbers to $FD40 and clips it to the wedge in front of the viewer: none in front, it is dropped; all in front, it goes straight to fill; else clip_edges runs twice (the planes y = -4z and y = 4z, $86 = $FF then 0), new points made from $1C on are projected, and the screen coordinates of the vertices go to $FD00 (4 bytes each) for fill_polygon ($8288)","t":"code","b":[169,28],"m":"lda","x":[32619],"o":"#$1C"},{"a":32640,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":32642,"t":"code","b":[164,85],"m":"ldy","oa":85,"o":"clip_count"},{"a":32644,"t":"code","b":[136],"m":"dey"},{"a":32645,"l":"b_7F85","t":"code","b":[177,116],"m":"lda","oa":116,"x":[32651],"o":"(src1_ptr),y"},{"a":32647,"t":"code","b":[153,64,253],"m":"sta","oa":64832,"o":"f_FD40,y"},{"a":32650,"t":"code","b":[136],"m":"dey"},{"a":32651,"t":"code","b":[16,248],"m":"bpl","oa":32645,"o":"b_7F85"},{"a":32653,"t":"code","b":[32,140,128],"m":"jsr","oa":32908,"o":"count_in_front"},{"a":32656,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":32658,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":32660,"t":"code","b":[32,227,127],"m":"jsr","oa":32739,"o":"clip_edges"},{"a":32663,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32665,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":32667,"t":"code","b":[32,227,127],"m":"jsr","oa":32739,"o":"clip_edges"},{"a":32670,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32672,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":32674,"l":"b_7FA2","t":"code","b":[164,132],"m":"ldy","oa":132,"x":[32734],"o":"tmp84"},{"a":32676,"t":"code","b":[190,80,253],"m":"ldx","oa":64848,"o":"KERNAL_RAMTASj,y"},{"a":32679,"t":"code","b":[224,28],"m":"cpx","o":"#$1C"},{"a":32681,"t":"code","b":[144,45],"m":"bcc","oa":32728,"o":"b_7FD8"},{"a":32683,"t":"code","b":[134,129],"m":"stx","oa":129,"o":"tmp81"},{"a":32685,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32687,"t":"code","b":[24],"m":"clc"},{"a":32688,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32691,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32693,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32695,"t":"code","b":[125,110,8],"m":"adc","oa":2158,"o":"clip_scratch,x"},{"a":32698,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32700,"t":"code","b":[32,115,103],"m":"jsr","oa":26483,"o":"project"},{"a":32703,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":32705,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32706,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32707,"t":"code","b":[170],"m":"tax"},{"a":32708,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":32710,"t":"code","b":[157,32,252],"m":"sta","oa":64544,"o":"a_FC20,x"},{"a":32713,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":32715,"t":"code","b":[157,33,252],"m":"sta","oa":64545,"o":"f_FC21,x"},{"a":32718,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":32720,"t":"code","b":[157,34,252],"m":"sta","oa":64546,"o":"f_FC22,x"},{"a":32723,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":32725,"t":"code","b":[157,35,252],"m":"sta","oa":64547,"o":"f_FC23,x"},{"a":32728,"l":"b_7FD8","t":"code","b":[230,132],"m":"inc","oa":132,"x":[32681],"o":"tmp84"},{"a":32730,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":32732,"t":"code","b":[197,85],"m":"cmp","oa":85,"o":"clip_count"},{"a":32734,"t":"code","b":[144,194],"m":"bcc","oa":32674,"o":"b_7FA2"},{"a":32736,"t":"code","b":[76,182,128],"m":"jmp","oa":32950,"o":"j_80B6"},{"a":32739,"l":"clip_edges","c":"Walks the polygon's vertices at $FD40 testing each against one plane (plane_side): an edge crossing it gets a new vertex at the crossing (new_vertex), vertices inside are kept; the survivors go back to $FD40. None left: the polygon is dropped (the return address pulled)","t":"code","b":[165,85],"m":"lda","oa":85,"x":[32660,32667],"o":"clip_count"},{"a":32741,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":32743,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32745,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":32747,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":32749,"t":"code","b":[32,231,128],"m":"jsr","oa":32999,"o":"plane_side"},{"a":32752,"l":"b_7FF0","t":"code","b":[165,129],"m":"lda","oa":129,"x":[32806],"o":"tmp81"},{"a":32754,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":32756,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":32758,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":32760,"t":"code","b":[164,132],"m":"ldy","oa":132,"o":"tmp84"},{"a":32762,"t":"code","b":[136],"m":"dey"},{"a":32763,"t":"code","b":[32,231,128],"m":"jsr","oa":32999,"o":"plane_side"},{"a":32766,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":32768,"t":"code","b":[208,14],"m":"bne","oa":32784,"o":"b_8010"},{"a":32770,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":32772,"t":"code","b":[240,30],"m":"beq","oa":32804,"o":"b_8024"},{"a":32774,"t":"code","b":[166,128],"m":"ldx","oa":128,"o":"tmp80"},{"a":32776,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":32778,"t":"code","b":[32,58,128],"m":"jsr","oa":32826,"o":"new_vertex"},{"a":32781,"t":"code","b":[76,36,128],"m":"jmp","oa":32804,"o":"b_8024"},{"a":32784,"l":"b_8010","t":"code","b":[165,130],"m":"lda","oa":130,"x":[32768],"o":"tmp82"},{"a":32786,"t":"code","b":[208,7],"m":"bne","oa":32795,"o":"b_801B"},{"a":32788,"t":"code","b":[166,129],"m":"ldx","oa":129,"o":"tmp81"},{"a":32790,"t":"code","b":[164,128],"m":"ldy","oa":128,"o":"tmp80"},{"a":32792,"t":"code","b":[32,58,128],"m":"jsr","oa":32826,"o":"new_vertex"},{"a":32795,"l":"b_801B","t":"code","b":[166,85],"m":"ldx","oa":85,"x":[32786],"o":"clip_count"},{"a":32797,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":32799,"t":"code","b":[157,80,253],"m":"sta","oa":64848,"o":"KERNAL_RAMTASj,x"},{"a":32802,"t":"code","b":[230,85],"m":"inc","oa":85,"o":"clip_count"},{"a":32804,"l":"b_8024","t":"code","b":[198,132],"m":"dec","oa":132,"x":[32772,32781],"o":"tmp84"},{"a":32806,"t":"code","b":[208,200],"m":"bne","oa":32752,"o":"b_7FF0"},{"a":32808,"t":"code","b":[166,85],"m":"ldx","oa":85,"o":"clip_count"},{"a":32810,"t":"code","b":[208,3],"m":"bne","oa":32815,"o":"b_802F"},{"a":32812,"t":"code","b":[104],"m":"pla"},{"a":32813,"t":"code","b":[104],"m":"pla"},{"a":32814,"t":"code","b":[96],"m":"rts"},{"a":32815,"l":"b_802F","t":"code","b":[202],"m":"dex","x":[32810]},{"a":32816,"l":"b_8030","t":"code","b":[189,80,253],"m":"lda","oa":64848,"x":[32823],"o":"KERNAL_RAMTASj,x"},{"a":32819,"t":"code","b":[157,64,253],"m":"sta","oa":64832,"o":"f_FD40,x"},{"a":32822,"t":"code","b":[202],"m":"dex"},{"a":32823,"t":"code","b":[16,247],"m":"bpl","oa":32816,"o":"b_8030"},{"a":32825,"t":"code","b":[96],"m":"rts"},{"a":32826,"l":"new_vertex","c":"The crossing of the edge from point X to point Y with the plane, by intersect_far or intersect_near ($86), written as a new point at $85 (from $1C up) and added to the vertex list at $FD50","t":"code","b":[169,0],"m":"lda","x":[32778,32792],"o":"#$00"},{"a":32828,"t":"code","b":[24],"m":"clc"},{"a":32829,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32832,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32834,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32836,"t":"code","b":[125,110,8],"m":"adc","oa":2158,"o":"clip_scratch,x"},{"a":32839,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32841,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32843,"t":"code","b":[24],"m":"clc"},{"a":32844,"t":"code","b":[121,70,8],"m":"adc","oa":2118,"o":"pos_offsets,y"},{"a":32847,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":32849,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32851,"t":"code","b":[121,110,8],"m":"adc","oa":2158,"o":"clip_scratch,y"},{"a":32854,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":32856,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":32858,"t":"code","b":[16,6],"m":"bpl","oa":32866,"o":"b_8062"},{"a":32860,"t":"code","b":[32,96,129],"m":"jsr","oa":33120,"o":"intersect_pos"},{"a":32863,"t":"code","b":[76,101,128],"m":"jmp","oa":32869,"o":"j_8065"},{"a":32866,"l":"b_8062","t":"code","b":[32,75,129],"m":"jsr","oa":33099,"x":[32858],"o":"intersect_neg"},{"a":32869,"l":"j_8065","t":"code","b":[166,133],"m":"ldx","oa":133,"x":[32863],"o":"tmp85"},{"a":32871,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32873,"t":"code","b":[24],"m":"clc"},{"a":32874,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":32877,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":32879,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":32881,"t":"code","b":[125,110,8],"m":"adc","oa":2158,"o":"clip_scratch,x"},{"a":32884,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":32886,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":32888,"l":"b_8078","t":"code","b":[185,107,0],"m":"lda","oa":107,"x":[32894],"o":"scratch_vec,y"},{"a":32891,"t":"code","b":[145,116],"m":"sta","oa":116,"o":"(src1_ptr),y"},{"a":32893,"t":"code","b":[136],"m":"dey"},{"a":32894,"t":"code","b":[16,248],"m":"bpl","oa":32888,"o":"b_8078"},{"a":32896,"t":"code","b":[166,85],"m":"ldx","oa":85,"o":"clip_count"},{"a":32898,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":32900,"t":"code","b":[157,80,253],"m":"sta","oa":64848,"o":"KERNAL_RAMTASj,x"},{"a":32903,"t":"code","b":[230,133],"m":"inc","oa":133,"o":"tmp85"},{"a":32905,"t":"code","b":[230,85],"m":"inc","oa":85,"o":"clip_count"},{"a":32907,"t":"code","b":[96],"m":"rts"},{"a":32908,"l":"count_in_front","c":"Counts the polygon's vertices with z negative (in front) from $FB08: none, the polygon is dropped (the caller's return address pulled); all of them, clipping is skipped (on to $80B6); otherwise clipping goes ahead","t":"code","b":[166,85],"m":"ldx","oa":85,"x":[32653],"o":"clip_count"},{"a":32910,"t":"code","b":[202],"m":"dex"},{"a":32911,"t":"code","b":[134,132],"m":"stx","oa":132,"o":"tmp84"},{"a":32913,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":32915,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":32917,"l":"b_8095","t":"code","b":[166,132],"m":"ldx","oa":132,"x":[32934],"o":"tmp84"},{"a":32919,"t":"code","b":[188,64,253],"m":"ldy","oa":64832,"o":"f_FD40,x"},{"a":32922,"t":"code","b":[190,70,8],"m":"ldx","oa":2118,"o":"pos_offsets,y"},{"a":32925,"t":"code","b":[189,8,251],"m":"lda","oa":64264,"o":"f_FB08,x"},{"a":32928,"t":"code","b":[16,2],"m":"bpl","oa":32932,"o":"b_80A4"},{"a":32930,"t":"code","b":[230,96],"m":"inc","oa":96,"o":"acc_mid"},{"a":32932,"l":"b_80A4","t":"code","b":[198,132],"m":"dec","oa":132,"x":[32928],"o":"tmp84"},{"a":32934,"t":"code","b":[16,237],"m":"bpl","oa":32917,"o":"b_8095"},{"a":32936,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":32938,"t":"code","b":[208,3],"m":"bne","oa":32943,"o":"b_80AF"},{"a":32940,"t":"code","b":[104],"m":"pla"},{"a":32941,"t":"code","b":[104],"m":"pla"},{"a":32942,"t":"code","b":[96],"m":"rts"},{"a":32943,"l":"b_80AF","t":"code","b":[197,85],"m":"cmp","oa":85,"x":[32938],"o":"clip_count"},{"a":32945,"t":"code","b":[240,1],"m":"beq","oa":32948,"o":"b_80B4"},{"a":32947,"t":"code","b":[96],"m":"rts"},{"a":32948,"l":"b_80B4","t":"code","b":[104],"m":"pla","x":[32945]},{"a":32949,"t":"code","b":[104],"m":"pla"},{"a":32950,"l":"j_80B6","c":"Copies each vertex's screen coordinates from $FC20 to $FD00 in order and fills the polygon ($8288)","t":"code","b":[166,85],"m":"ldx","oa":85,"x":[32736],"o":"clip_count"},{"a":32952,"t":"code","b":[202],"m":"dex"},{"a":32953,"t":"code","b":[134,132],"m":"stx","oa":132,"o":"tmp84"},{"a":32955,"l":"b_80BB","t":"code","b":[164,132],"m":"ldy","oa":132,"x":[32994],"o":"tmp84"},{"a":32957,"t":"code","b":[185,64,253],"m":"lda","oa":64832,"o":"f_FD40,y"},{"a":32960,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32961,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32962,"t":"code","b":[168],"m":"tay"},{"a":32963,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":32965,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32966,"t":"code","b":[10],"m":"asl","o":"a"},{"a":32967,"t":"code","b":[170],"m":"tax"},{"a":32968,"t":"code","b":[185,32,252],"m":"lda","oa":64544,"o":"a_FC20,y"},{"a":32971,"t":"code","b":[157,0,253],"m":"sta","oa":64768,"o":"f_FD00,x"},{"a":32974,"t":"code","b":[185,33,252],"m":"lda","oa":64545,"o":"f_FC21,y"},{"a":32977,"t":"code","b":[157,1,253],"m":"sta","oa":64769,"o":"a_FD01,x"},{"a":32980,"t":"code","b":[185,34,252],"m":"lda","oa":64546,"o":"f_FC22,y"},{"a":32983,"t":"code","b":[157,2,253],"m":"sta","oa":64770,"o":"a_FD02,x"},{"a":32986,"t":"code","b":[185,35,252],"m":"lda","oa":64547,"o":"f_FC23,y"},{"a":32989,"t":"code","b":[157,3,253],"m":"sta","oa":64771,"o":"a_FD03,x"},{"a":32992,"t":"code","b":[198,132],"m":"dec","oa":132,"o":"tmp84"},{"a":32994,"t":"code","b":[16,215],"m":"bpl","oa":32955,"o":"b_80BB"},{"a":32996,"t":"code","b":[76,136,130],"m":"jmp","oa":33416,"o":"fill_polygon"},{"a":32999,"l":"plane_side","c":"Which side of a clipping plane vertex Y of $FD40 is on, in $83 (1 inside, 0 outside): y's log against z's plus 2 (four times z), with the signs; $86 negative tests y <= -4z, else y >= 4z, the two together keeping only the wedge in front of the viewer. The final test is the BPL or BMI patched in at $8146","t":"code","b":[165,134],"m":"lda","oa":134,"x":[32749,32763],"o":"tmp86"},{"a":33001,"t":"code","b":[48,7],"m":"bmi","oa":33010,"o":"b_80F2"},{"a":33003,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":33005,"t":"code","b":[162,16],"m":"ldx","o":"#$10"},{"a":33007,"t":"code","b":[76,246,128],"m":"jmp","oa":33014,"o":"j_80F6"},{"a":33010,"l":"b_80F2","t":"code","b":[169,0],"m":"lda","x":[33001],"o":"#$00"},{"a":33012,"t":"code","b":[162,48],"m":"ldx","o":"#$30"},{"a":33014,"l":"j_80F6","t":"code","b":[133,97],"m":"sta","oa":97,"x":[33007],"o":"acc_hi"},{"a":33016,"t":"code","b":[142,70,129],"m":"stx","oa":33094,"o":"a_8146"},{"a":33019,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":33021,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":33023,"t":"code","b":[190,64,253],"m":"ldx","oa":64832,"o":"f_FD40,y"},{"a":33026,"t":"code","b":[134,129],"m":"stx","oa":129,"o":"tmp81"},{"a":33028,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33030,"t":"code","b":[24],"m":"clc"},{"a":33031,"t":"code","b":[125,70,8],"m":"adc","oa":2118,"o":"pos_offsets,x"},{"a":33034,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":33036,"t":"code","b":[169,251],"m":"lda","o":"#$FB"},{"a":33038,"t":"code","b":[125,110,8],"m":"adc","oa":2158,"o":"clip_scratch,x"},{"a":33041,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":33043,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":33045,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33047,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33049,"t":"code","b":[200],"m":"iny"},{"a":33050,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33052,"t":"code","b":[24],"m":"clc"},{"a":33053,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":33055,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33057,"t":"code","b":[200],"m":"iny"},{"a":33058,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33060,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":33062,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33064,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33066,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":33068,"t":"code","b":[81,116],"m":"eor","oa":116,"o":"(src1_ptr),y"},{"a":33070,"t":"code","b":[48,20],"m":"bmi","oa":33092,"o":"b_8144"},{"a":33072,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":33074,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33076,"t":"code","b":[209,116],"m":"cmp","oa":116,"o":"(src1_ptr),y"},{"a":33078,"t":"code","b":[200],"m":"iny"},{"a":33079,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33081,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":33083,"t":"code","b":[16,7],"m":"bpl","oa":33092,"o":"b_8144"},{"a":33085,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33087,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":33089,"t":"code","b":[76,70,129],"m":"jmp","oa":33094,"o":"a_8146"},{"a":33092,"l":"b_8144","t":"code","b":[165,97],"m":"lda","oa":97,"x":[33070,33083],"o":"acc_hi"},{"a":33094,"l":"a_8146","c":"The BPL here becomes BMI (opcode $30) for the other plane: plane_side writes $10 or $30 into it","t":"code","b":[16,2],"m":"bpl","oa":33098,"x":[33016,33089],"o":"r_814A"},{"a":33096,"t":"code","b":[198,131],"m":"dec","oa":131,"o":"tmp83"},{"a":33098,"l":"r_814A","t":"code","b":[96],"m":"rts","x":[33094]},{"a":33099,"l":"intersect_neg","c":"The crossing with the plane y = -4z: intersect_core with $68-$6A = $0200, sign $FF, then the new point's z sign inverted","t":"code","b":[169,0],"m":"lda","x":[32866],"o":"#$00"},{"a":33101,"t":"code","b":[133,104],"m":"sta","oa":104,"o":"plane_x"},{"a":33103,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":33105,"t":"code","b":[133,105],"m":"sta","oa":105,"o":"zpa_69"},{"a":33107,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":33109,"t":"code","b":[133,106],"m":"sta","oa":106,"o":"zpa_6A"},{"a":33111,"t":"code","b":[32,108,129],"m":"jsr","oa":33132,"o":"intersect_core"},{"a":33114,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":33116,"t":"code","b":[141,115,0],"m":"sta","oa":115,"o":"zpa_73"},{"a":33119,"t":"code","b":[96],"m":"rts"},{"a":33120,"l":"intersect_pos","c":"The crossing with the plane y = 4z: intersect_core with $68-$6A = $0200, sign 0","t":"code","b":[169,0],"m":"lda","x":[32860],"o":"#$00"},{"a":33122,"t":"code","b":[133,104],"m":"sta","oa":104,"o":"plane_x"},{"a":33124,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":33126,"t":"code","b":[133,105],"m":"sta","oa":105,"o":"zpa_69"},{"a":33128,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33130,"t":"code","b":[133,106],"m":"sta","oa":106,"o":"zpa_6A"},{"a":33132,"l":"intersect_core","c":"Where the edge from ($74) to ($76) meets the plane: the edge vector ($96DE into $6B-$73, its signs flipped), the fraction along it from the ends' distances to the plane ($B35B), x and y of the crossing ($B392), and z set to y / 4 (y's log less $0200)","t":"code","b":[169,107],"m":"lda","x":[33111],"o":"#$6B"},{"a":33134,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":33136,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33138,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":33140,"t":"code","b":[32,222,150],"m":"jsr","oa":38622,"o":"vec_sub_log"},{"a":33143,"t":"code","b":[173,109,0],"m":"lda","oa":109,"o":"a_006D"},{"a":33146,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":33148,"t":"code","b":[141,109,0],"m":"sta","oa":109,"o":"a_006D"},{"a":33151,"t":"code","b":[173,112,0],"m":"lda","oa":112,"o":"zpa_70"},{"a":33154,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":33156,"t":"code","b":[141,112,0],"m":"sta","oa":112,"o":"zpa_70"},{"a":33159,"t":"code","b":[173,115,0],"m":"lda","oa":115,"o":"zpa_73"},{"a":33162,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":33164,"t":"code","b":[141,115,0],"m":"sta","oa":115,"o":"zpa_73"},{"a":33167,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":33169,"t":"code","b":[165,104],"m":"lda","oa":104,"o":"plane_x"},{"a":33171,"t":"code","b":[24],"m":"clc"},{"a":33172,"t":"code","b":[113,116],"m":"adc","oa":116,"o":"(src1_ptr),y"},{"a":33174,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33176,"t":"code","b":[200],"m":"iny"},{"a":33177,"t":"code","b":[165,105],"m":"lda","oa":105,"o":"zpa_69"},{"a":33179,"t":"code","b":[113,116],"m":"adc","oa":116,"o":"(src1_ptr),y"},{"a":33181,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33183,"t":"code","b":[200],"m":"iny"},{"a":33184,"t":"code","b":[165,106],"m":"lda","oa":106,"o":"zpa_6A"},{"a":33186,"t":"code","b":[81,116],"m":"eor","oa":116,"o":"(src1_ptr),y"},{"a":33188,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33190,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":33192,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33194,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33196,"t":"code","b":[200],"m":"iny"},{"a":33197,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33199,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33201,"t":"code","b":[200],"m":"iny"},{"a":33202,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33204,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33206,"t":"code","b":[32,91,179],"m":"jsr","oa":45915,"o":"$B35B"},{"a":33209,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33211,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":33213,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33215,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":33217,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33219,"t":"code","b":[133,103],"m":"sta","oa":103,"o":"zpa_67"},{"a":33221,"t":"code","b":[173,110,0],"m":"lda","oa":110,"o":"a_006E"},{"a":33224,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33226,"t":"code","b":[173,111,0],"m":"lda","oa":111,"o":"zpa_6F"},{"a":33229,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33231,"t":"code","b":[173,112,0],"m":"lda","oa":112,"o":"zpa_70"},{"a":33234,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33236,"t":"code","b":[165,104],"m":"lda","oa":104,"o":"plane_x"},{"a":33238,"t":"code","b":[24],"m":"clc"},{"a":33239,"t":"code","b":[109,113,0],"m":"adc","oa":113,"o":"a_0071"},{"a":33242,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33244,"t":"code","b":[165,105],"m":"lda","oa":105,"o":"zpa_69"},{"a":33246,"t":"code","b":[109,114,0],"m":"adc","oa":114,"o":"zpa_72"},{"a":33249,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33251,"t":"code","b":[165,106],"m":"lda","oa":106,"o":"zpa_6A"},{"a":33253,"t":"code","b":[77,115,0],"m":"eor","oa":115,"o":"zpa_73"},{"a":33256,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33258,"t":"code","b":[32,91,179],"m":"jsr","oa":45915,"o":"$B35B"},{"a":33261,"t":"code","b":[165,101],"m":"lda","oa":101,"o":"axpy_s"},{"a":33263,"t":"code","b":[56],"m":"sec"},{"a":33264,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":33266,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":33268,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":33270,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":33272,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":33274,"t":"code","b":[165,103],"m":"lda","oa":103,"o":"zpa_67"},{"a":33276,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":33278,"t":"code","b":[133,103],"m":"sta","oa":103,"o":"zpa_67"},{"a":33280,"t":"code","b":[165,101],"m":"lda","oa":101,"o":"axpy_s"},{"a":33282,"t":"code","b":[24],"m":"clc"},{"a":33283,"t":"code","b":[109,107,0],"m":"adc","oa":107,"o":"scratch_vec"},{"a":33286,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33288,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":33290,"t":"code","b":[109,108,0],"m":"adc","oa":108,"o":"f_006C"},{"a":33293,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33295,"t":"code","b":[165,103],"m":"lda","oa":103,"o":"zpa_67"},{"a":33297,"t":"code","b":[77,109,0],"m":"eor","oa":109,"o":"a_006D"},{"a":33300,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33302,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":33304,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33306,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33308,"t":"code","b":[200],"m":"iny"},{"a":33309,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33311,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33313,"t":"code","b":[200],"m":"iny"},{"a":33314,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33316,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33318,"t":"code","b":[32,146,179],"m":"jsr","oa":45970,"o":"$B392"},{"a":33321,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33323,"t":"code","b":[141,107,0],"m":"sta","oa":107,"o":"scratch_vec"},{"a":33326,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33328,"t":"code","b":[141,108,0],"m":"sta","oa":108,"o":"f_006C"},{"a":33331,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33333,"t":"code","b":[141,109,0],"m":"sta","oa":109,"o":"a_006D"},{"a":33336,"t":"code","b":[165,101],"m":"lda","oa":101,"o":"axpy_s"},{"a":33338,"t":"code","b":[24],"m":"clc"},{"a":33339,"t":"code","b":[109,110,0],"m":"adc","oa":110,"o":"a_006E"},{"a":33342,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33344,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":33346,"t":"code","b":[109,111,0],"m":"adc","oa":111,"o":"zpa_6F"},{"a":33349,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33351,"t":"code","b":[165,103],"m":"lda","oa":103,"o":"zpa_67"},{"a":33353,"t":"code","b":[77,112,0],"m":"eor","oa":112,"o":"zpa_70"},{"a":33356,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33358,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":33360,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33362,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33364,"t":"code","b":[200],"m":"iny"},{"a":33365,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33367,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33369,"t":"code","b":[200],"m":"iny"},{"a":33370,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":33372,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33374,"t":"code","b":[32,146,179],"m":"jsr","oa":45970,"o":"$B392"},{"a":33377,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33379,"t":"code","b":[141,110,0],"m":"sta","oa":110,"o":"a_006E"},{"a":33382,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33384,"t":"code","b":[141,111,0],"m":"sta","oa":111,"o":"zpa_6F"},{"a":33387,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33389,"t":"code","b":[141,112,0],"m":"sta","oa":112,"o":"zpa_70"},{"a":33392,"t":"code","b":[173,110,0],"m":"lda","oa":110,"o":"a_006E"},{"a":33395,"t":"code","b":[56],"m":"sec"},{"a":33396,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":33398,"t":"code","b":[141,113,0],"m":"sta","oa":113,"o":"a_0071"},{"a":33401,"t":"code","b":[173,111,0],"m":"lda","oa":111,"o":"zpa_6F"},{"a":33404,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":33406,"t":"code","b":[141,114,0],"m":"sta","oa":114,"o":"zpa_72"},{"a":33409,"t":"code","b":[173,112,0],"m":"lda","oa":112,"o":"zpa_70"},{"a":33412,"t":"code","b":[141,115,0],"m":"sta","oa":115,"o":"zpa_73"},{"a":33415,"t":"code","b":[96],"m":"rts"},{"a":33416,"l":"fill_polygon","c":"Fills the polygon of $55 vertices (2 to 8) whose screen coordinates are at $FD00 (x and y, 16 bits each): when all of them are inside the window ($43 wide, $44 high) it goes straight to scan_fill; otherwise it is clipped to y 0 to $42 and x 0 to $41 (clip_side four times) first","t":"code","b":[165,85],"m":"lda","oa":85,"x":[8867,8885,9143,32996,35820,35872],"o":"clip_count"},{"a":33418,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":33420,"t":"code","b":[144,4],"m":"bcc","oa":33426,"o":"r_8292"},{"a":33422,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":33424,"t":"code","b":[144,1],"m":"bcc","oa":33427,"o":"b_8293"},{"a":33426,"l":"r_8292","t":"code","b":[96],"m":"rts","x":[33420]},{"a":33427,"l":"b_8293","t":"code","b":[10],"m":"asl","x":[33424],"o":"a"},{"a":33428,"t":"code","b":[10],"m":"asl","o":"a"},{"a":33429,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":33431,"t":"code","b":[170],"m":"tax"},{"a":33432,"t":"code","b":[202],"m":"dex"},{"a":33433,"l":"b_8299","t":"code","b":[189,0,253],"m":"lda","oa":64768,"x":[33440],"o":"f_FD00,x"},{"a":33436,"t":"code","b":[208,31],"m":"bne","oa":33469,"o":"b_82BD"},{"a":33438,"t":"code","b":[202],"m":"dex"},{"a":33439,"t":"code","b":[202],"m":"dex"},{"a":33440,"t":"code","b":[16,247],"m":"bpl","oa":33433,"o":"b_8299"},{"a":33442,"t":"code","b":[166,134],"m":"ldx","oa":134,"o":"tmp86"},{"a":33444,"t":"code","b":[202],"m":"dex"},{"a":33445,"t":"code","b":[202],"m":"dex"},{"a":33446,"l":"b_82A6","t":"code","b":[189,0,253],"m":"lda","oa":64768,"x":[33464],"o":"f_FD00,x"},{"a":33449,"t":"code","b":[197,68],"m":"cmp","oa":68,"o":"window_height1"},{"a":33451,"t":"code","b":[176,16],"m":"bcs","oa":33469,"o":"b_82BD"},{"a":33453,"t":"code","b":[202],"m":"dex"},{"a":33454,"t":"code","b":[202],"m":"dex"},{"a":33455,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":33458,"t":"code","b":[197,67],"m":"cmp","oa":67,"o":"window_width1"},{"a":33460,"t":"code","b":[176,7],"m":"bcs","oa":33469,"o":"b_82BD"},{"a":33462,"t":"code","b":[202],"m":"dex"},{"a":33463,"t":"code","b":[202],"m":"dex"},{"a":33464,"t":"code","b":[16,236],"m":"bpl","oa":33446,"o":"b_82A6"},{"a":33466,"t":"code","b":[76,14,133],"m":"jmp","oa":34062,"o":"scan_fill"},{"a":33469,"l":"b_82BD","t":"code","b":[166,134],"m":"ldx","oa":134,"x":[33436,33451,33460],"o":"tmp86"},{"a":33471,"t":"code","b":[32,245,132],"m":"jsr","oa":34037,"o":"close_polygon"},{"a":33474,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":33476,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":33478,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":33480,"t":"code","b":[166,68],"m":"ldx","oa":68,"o":"window_height1"},{"a":33482,"t":"code","b":[164,66],"m":"ldy","oa":66,"o":"window_height"},{"a":33484,"t":"code","b":[32,247,130],"m":"jsr","oa":33527,"o":"clip_side"},{"a":33487,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":33489,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":33491,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":33493,"t":"code","b":[32,247,130],"m":"jsr","oa":33527,"o":"clip_side"},{"a":33496,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33498,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":33500,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":33502,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":33504,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":33506,"t":"code","b":[32,247,130],"m":"jsr","oa":33527,"o":"clip_side"},{"a":33509,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":33511,"t":"code","b":[166,67],"m":"ldx","oa":67,"o":"window_width1"},{"a":33513,"t":"code","b":[164,65],"m":"ldy","oa":65,"o":"window_width"},{"a":33515,"t":"code","b":[32,247,130],"m":"jsr","oa":33527,"o":"clip_side"},{"a":33518,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":33520,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":33521,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":33522,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":33524,"t":"code","b":[76,14,133],"m":"jmp","oa":34062,"o":"scan_fill"},{"a":33527,"l":"clip_side","c":"Clips the polygon at $FD00 against one side of the window: A is the branch opcode (BMI or BPL) patched into $8320 and $8343 to say which side is inside, X the limit and Y the coordinate given to new vertices, $81 0 for x or 2 for y. Vertices inside are kept and each edge that crosses the side adds a vertex on it (clip_point), into $FD80 and back to $FD00; with none left the polygon is dropped","t":"code","b":[141,32,131],"m":"sta","oa":33568,"x":[33484,33493,33506,33515],"o":"a_8320"},{"a":33530,"t":"code","b":[141,67,131],"m":"sta","oa":33603,"o":"a_8343"},{"a":33533,"t":"code","b":[134,133],"m":"stx","oa":133,"o":"tmp85"},{"a":33535,"t":"code","b":[132,132],"m":"sty","oa":132,"o":"tmp84"},{"a":33537,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":33539,"t":"code","b":[208,3],"m":"bne","oa":33544,"o":"b_8308"},{"a":33541,"t":"code","b":[76,175,131],"m":"jmp","oa":33711,"o":"j_83AF"},{"a":33544,"l":"b_8308","t":"code","b":[169,0],"m":"lda","x":[33539],"o":"#$00"},{"a":33546,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":33548,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":33550,"t":"code","b":[24],"m":"clc"},{"a":33551,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":33553,"t":"code","b":[170],"m":"tax"},{"a":33554,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33556,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":33558,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":33561,"t":"code","b":[197,133],"m":"cmp","oa":133,"o":"tmp85"},{"a":33563,"t":"code","b":[189,1,253],"m":"lda","oa":64769,"o":"a_FD01,x"},{"a":33566,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":33568,"l":"a_8320","c":"The branch clip_side patches: BMI or BPL for the side being clipped","t":"code","b":[16,2],"m":"bpl","oa":33572,"x":[33527],"o":"b_8324"},{"a":33570,"t":"code","b":[198,131],"m":"dec","oa":131,"o":"tmp83"},{"a":33572,"l":"b_8324","t":"code","b":[165,134],"m":"lda","oa":134,"x":[33568],"o":"tmp86"},{"a":33574,"t":"code","b":[56],"m":"sec"},{"a":33575,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":33577,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":33579,"l":"b_832B","t":"code","b":[165,134],"m":"lda","oa":134,"x":[33688],"o":"tmp86"},{"a":33581,"t":"code","b":[24],"m":"clc"},{"a":33582,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":33584,"t":"code","b":[170],"m":"tax"},{"a":33585,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":33587,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":33589,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33591,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":33593,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":33596,"t":"code","b":[197,133],"m":"cmp","oa":133,"o":"tmp85"},{"a":33598,"t":"code","b":[189,1,253],"m":"lda","oa":64769,"o":"a_FD01,x"},{"a":33601,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":33603,"l":"a_8343","c":"The second branch clip_side patches, for the edge's other end","t":"code","b":[16,2],"m":"bpl","oa":33607,"x":[33530],"o":"b_8347"},{"a":33605,"t":"code","b":[198,131],"m":"dec","oa":131,"o":"tmp83"},{"a":33607,"l":"b_8347","t":"code","b":[165,131],"m":"lda","oa":131,"x":[33603],"o":"tmp83"},{"a":33609,"t":"code","b":[5,130],"m":"ora","oa":130,"o":"tmp82"},{"a":33611,"t":"code","b":[240,33],"m":"beq","oa":33646,"o":"b_836E"},{"a":33613,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":33615,"t":"code","b":[69,130],"m":"eor","oa":130,"o":"tmp82"},{"a":33617,"t":"code","b":[240,62],"m":"beq","oa":33681,"o":"b_8391"},{"a":33619,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":33621,"t":"code","b":[240,13],"m":"beq","oa":33636,"o":"b_8364"},{"a":33623,"t":"code","b":[164,134],"m":"ldy","oa":134,"o":"tmp86"},{"a":33625,"t":"code","b":[152],"m":"tya"},{"a":33626,"t":"code","b":[24],"m":"clc"},{"a":33627,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":33629,"t":"code","b":[170],"m":"tax"},{"a":33630,"t":"code","b":[32,178,131],"m":"jsr","oa":33714,"o":"clip_point"},{"a":33633,"t":"code","b":[76,145,131],"m":"jmp","oa":33681,"o":"b_8391"},{"a":33636,"l":"b_8364","t":"code","b":[166,134],"m":"ldx","oa":134,"x":[33621],"o":"tmp86"},{"a":33638,"t":"code","b":[138],"m":"txa"},{"a":33639,"t":"code","b":[24],"m":"clc"},{"a":33640,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":33642,"t":"code","b":[168],"m":"tay"},{"a":33643,"t":"code","b":[32,178,131],"m":"jsr","oa":33714,"o":"clip_point"},{"a":33646,"l":"b_836E","t":"code","b":[166,134],"m":"ldx","oa":134,"x":[33611],"o":"tmp86"},{"a":33648,"t":"code","b":[164,135],"m":"ldy","oa":135,"o":"tmp87"},{"a":33650,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":33653,"t":"code","b":[153,128,253],"m":"sta","oa":64896,"o":"f_FD80,y"},{"a":33656,"t":"code","b":[189,1,253],"m":"lda","oa":64769,"o":"a_FD01,x"},{"a":33659,"t":"code","b":[153,129,253],"m":"sta","oa":64897,"o":"f_FD81,y"},{"a":33662,"t":"code","b":[189,2,253],"m":"lda","oa":64770,"o":"a_FD02,x"},{"a":33665,"t":"code","b":[153,130,253],"m":"sta","oa":64898,"o":"f_FD82,y"},{"a":33668,"t":"code","b":[189,3,253],"m":"lda","oa":64771,"o":"a_FD03,x"},{"a":33671,"t":"code","b":[153,131,253],"m":"sta","oa":64899,"o":"f_FD83,y"},{"a":33674,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":33676,"t":"code","b":[24],"m":"clc"},{"a":33677,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":33679,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":33681,"l":"b_8391","t":"code","b":[165,134],"m":"lda","oa":134,"x":[33617,33633],"o":"tmp86"},{"a":33683,"t":"code","b":[56],"m":"sec"},{"a":33684,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":33686,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":33688,"t":"code","b":[16,145],"m":"bpl","oa":33579,"o":"b_832B"},{"a":33690,"t":"code","b":[166,135],"m":"ldx","oa":135,"o":"tmp87"},{"a":33692,"t":"code","b":[134,134],"m":"stx","oa":134,"o":"tmp86"},{"a":33694,"t":"code","b":[240,15],"m":"beq","oa":33711,"o":"j_83AF"},{"a":33696,"t":"code","b":[202],"m":"dex"},{"a":33697,"l":"b_83A1","t":"code","b":[189,128,253],"m":"lda","oa":64896,"x":[33704],"o":"f_FD80,x"},{"a":33700,"t":"code","b":[157,0,253],"m":"sta","oa":64768,"o":"f_FD00,x"},{"a":33703,"t":"code","b":[202],"m":"dex"},{"a":33704,"t":"code","b":[16,247],"m":"bpl","oa":33697,"o":"b_83A1"},{"a":33706,"t":"code","b":[166,134],"m":"ldx","oa":134,"o":"tmp86"},{"a":33708,"t":"code","b":[76,245,132],"m":"jmp","oa":34037,"o":"close_polygon"},{"a":33711,"l":"j_83AF","t":"code","b":[104],"m":"pla","x":[33541,33694]},{"a":33712,"t":"code","b":[104],"m":"pla"},{"a":33713,"t":"code","b":[96],"m":"rts"},{"a":33714,"l":"clip_point","c":"Where the edge from vertex X to vertex Y crosses the window side: on an x side ($81 = 0) x is the side's value and y is interpolated, y1 + (y2 - y1) * (x - x1) / (x2 - x1), with logs ($B447, $B5C5); on a y side the other way round. Appended to $FD80","t":"code","b":[189,0,253],"m":"lda","oa":64768,"x":[33630,33643],"o":"f_FD00,x"},{"a":33717,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":33719,"t":"code","b":[189,1,253],"m":"lda","oa":64769,"o":"a_FD01,x"},{"a":33722,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":33724,"t":"code","b":[189,2,253],"m":"lda","oa":64770,"o":"a_FD02,x"},{"a":33727,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":33729,"t":"code","b":[189,3,253],"m":"lda","oa":64771,"o":"a_FD03,x"},{"a":33732,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":33734,"t":"code","b":[185,0,253],"m":"lda","oa":64768,"o":"f_FD00,y"},{"a":33737,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":33739,"t":"code","b":[185,1,253],"m":"lda","oa":64769,"o":"a_FD01,y"},{"a":33742,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":33744,"t":"code","b":[185,2,253],"m":"lda","oa":64770,"o":"a_FD02,y"},{"a":33747,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"tmp8E"},{"a":33749,"t":"code","b":[185,3,253],"m":"lda","oa":64771,"o":"a_FD03,y"},{"a":33752,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"tmp8F"},{"a":33754,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":33756,"t":"code","b":[240,3],"m":"beq","oa":33761,"o":"b_83E1"},{"a":33758,"t":"code","b":[76,107,132],"m":"jmp","oa":33899,"o":"j_846B"},{"a":33761,"l":"b_83E1","t":"code","b":[166,135],"m":"ldx","oa":135,"x":[33756],"o":"tmp87"},{"a":33763,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":33765,"t":"code","b":[157,128,253],"m":"sta","oa":64896,"o":"f_FD80,x"},{"a":33768,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33770,"t":"code","b":[157,129,253],"m":"sta","oa":64897,"o":"f_FD81,x"},{"a":33773,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"tmp8E"},{"a":33775,"t":"code","b":[56],"m":"sec"},{"a":33776,"t":"code","b":[229,138],"m":"sbc","oa":138,"o":"tmp8A"},{"a":33778,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33780,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"tmp8F"},{"a":33782,"t":"code","b":[229,139],"m":"sbc","oa":139,"o":"tmp8B"},{"a":33784,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33786,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":33789,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33791,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33793,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33795,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33797,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33799,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33801,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":33803,"t":"code","b":[56],"m":"sec"},{"a":33804,"t":"code","b":[229,136],"m":"sbc","oa":136,"o":"tmp88"},{"a":33806,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33808,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":33810,"t":"code","b":[229,137],"m":"sbc","oa":137,"o":"tmp89"},{"a":33812,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33814,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":33817,"t":"code","b":[165,98],"m":"lda","oa":98,"o":"arg_lo"},{"a":33819,"t":"code","b":[56],"m":"sec"},{"a":33820,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":33822,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33824,"t":"code","b":[165,99],"m":"lda","oa":99,"o":"arg_mid"},{"a":33826,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":33828,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33830,"t":"code","b":[165,100],"m":"lda","oa":100,"o":"arg_sign"},{"a":33832,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":33834,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33836,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":33838,"t":"code","b":[56],"m":"sec"},{"a":33839,"t":"code","b":[229,136],"m":"sbc","oa":136,"o":"tmp88"},{"a":33841,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33843,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33845,"t":"code","b":[229,137],"m":"sbc","oa":137,"o":"tmp89"},{"a":33847,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33849,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":33852,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33854,"t":"code","b":[24],"m":"clc"},{"a":33855,"t":"code","b":[101,98],"m":"adc","oa":98,"o":"arg_lo"},{"a":33857,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33859,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33861,"t":"code","b":[101,99],"m":"adc","oa":99,"o":"arg_mid"},{"a":33863,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33865,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33867,"t":"code","b":[69,100],"m":"eor","oa":100,"o":"arg_sign"},{"a":33869,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33871,"t":"code","b":[32,197,181],"m":"jsr","oa":46533,"o":"$B5C5"},{"a":33874,"t":"code","b":[166,135],"m":"ldx","oa":135,"o":"tmp87"},{"a":33876,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33878,"t":"code","b":[24],"m":"clc"},{"a":33879,"t":"code","b":[101,138],"m":"adc","oa":138,"o":"tmp8A"},{"a":33881,"t":"code","b":[157,130,253],"m":"sta","oa":64898,"o":"f_FD82,x"},{"a":33884,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33886,"t":"code","b":[101,139],"m":"adc","oa":139,"o":"tmp8B"},{"a":33888,"t":"code","b":[157,131,253],"m":"sta","oa":64899,"o":"f_FD83,x"},{"a":33891,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":33893,"t":"code","b":[24],"m":"clc"},{"a":33894,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":33896,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":33898,"t":"code","b":[96],"m":"rts"},{"a":33899,"l":"j_846B","t":"code","b":[166,135],"m":"ldx","oa":135,"x":[33758],"o":"tmp87"},{"a":33901,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":33903,"t":"code","b":[157,130,253],"m":"sta","oa":64898,"o":"f_FD82,x"},{"a":33906,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33908,"t":"code","b":[157,131,253],"m":"sta","oa":64899,"o":"f_FD83,x"},{"a":33911,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":33913,"t":"code","b":[56],"m":"sec"},{"a":33914,"t":"code","b":[229,136],"m":"sbc","oa":136,"o":"tmp88"},{"a":33916,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33918,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":33920,"t":"code","b":[229,137],"m":"sbc","oa":137,"o":"tmp89"},{"a":33922,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33924,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":33927,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33929,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33931,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33933,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33935,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":33937,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33939,"t":"code","b":[165,142],"m":"lda","oa":142,"o":"tmp8E"},{"a":33941,"t":"code","b":[56],"m":"sec"},{"a":33942,"t":"code","b":[229,138],"m":"sbc","oa":138,"o":"tmp8A"},{"a":33944,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33946,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"tmp8F"},{"a":33948,"t":"code","b":[229,139],"m":"sbc","oa":139,"o":"tmp8B"},{"a":33950,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33952,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":33955,"t":"code","b":[165,98],"m":"lda","oa":98,"o":"arg_lo"},{"a":33957,"t":"code","b":[56],"m":"sec"},{"a":33958,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":33960,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":33962,"t":"code","b":[165,99],"m":"lda","oa":99,"o":"arg_mid"},{"a":33964,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":33966,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":33968,"t":"code","b":[165,100],"m":"lda","oa":100,"o":"arg_sign"},{"a":33970,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":33972,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":33974,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":33976,"t":"code","b":[56],"m":"sec"},{"a":33977,"t":"code","b":[229,138],"m":"sbc","oa":138,"o":"tmp8A"},{"a":33979,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":33981,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":33983,"t":"code","b":[229,139],"m":"sbc","oa":139,"o":"tmp8B"},{"a":33985,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":33987,"t":"code","b":[32,71,180],"m":"jsr","oa":46151,"o":"$B447"},{"a":33990,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":33992,"t":"code","b":[24],"m":"clc"},{"a":33993,"t":"code","b":[101,98],"m":"adc","oa":98,"o":"arg_lo"},{"a":33995,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":33997,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":33999,"t":"code","b":[101,99],"m":"adc","oa":99,"o":"arg_mid"},{"a":34001,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":34003,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":34005,"t":"code","b":[69,100],"m":"eor","oa":100,"o":"arg_sign"},{"a":34007,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":34009,"t":"code","b":[32,197,181],"m":"jsr","oa":46533,"o":"$B5C5"},{"a":34012,"t":"code","b":[166,135],"m":"ldx","oa":135,"o":"tmp87"},{"a":34014,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":34016,"t":"code","b":[24],"m":"clc"},{"a":34017,"t":"code","b":[101,136],"m":"adc","oa":136,"o":"tmp88"},{"a":34019,"t":"code","b":[157,128,253],"m":"sta","oa":64896,"o":"f_FD80,x"},{"a":34022,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":34024,"t":"code","b":[101,137],"m":"adc","oa":137,"o":"tmp89"},{"a":34026,"t":"code","b":[157,129,253],"m":"sta","oa":64897,"o":"f_FD81,x"},{"a":34029,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":34031,"t":"code","b":[24],"m":"clc"},{"a":34032,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":34034,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":34036,"t":"code","b":[96],"m":"rts"},{"a":34037,"l":"close_polygon","c":"Copies vertex 0 after the last (at X) so the edge walk can close the polygon","t":"code","b":[173,0,253],"m":"lda","oa":64768,"x":[33471,33708],"o":"f_FD00"},{"a":34040,"t":"code","b":[157,0,253],"m":"sta","oa":64768,"o":"f_FD00,x"},{"a":34043,"t":"code","b":[173,1,253],"m":"lda","oa":64769,"o":"a_FD01"},{"a":34046,"t":"code","b":[157,1,253],"m":"sta","oa":64769,"o":"a_FD01,x"},{"a":34049,"t":"code","b":[173,2,253],"m":"lda","oa":64770,"o":"a_FD02"},{"a":34052,"t":"code","b":[157,2,253],"m":"sta","oa":64770,"o":"a_FD02,x"},{"a":34055,"t":"code","b":[173,3,253],"m":"lda","oa":64771,"o":"a_FD03"},{"a":34058,"t":"code","b":[157,3,253],"m":"sta","oa":64771,"o":"a_FD03,x"},{"a":34061,"t":"code","b":[96],"m":"rts"},{"a":34062,"l":"scan_fill","c":"Fills the polygon at $FD00 row by row: from the lowest vertex (the greatest y, rows counting up from the bottom) it walks the edges on the two sides (left_edge, right_edge), stepping x by the slope with an error term and INX or DEX patched into $854C and $855D, and draws each row's span ($8C9C) until the two sides meet","t":"code","b":[165,85],"m":"lda","oa":85,"x":[33466,33524],"o":"clip_count"},{"a":34064,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":34066,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34067,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34068,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":34070,"t":"code","b":[170],"m":"tax"},{"a":34071,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34073,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":34075,"t":"code","b":[240,10],"m":"beq","oa":34087,"o":"b_8527"},{"a":34077,"l":"b_851D","t":"code","b":[221,2,253],"m":"cmp","oa":64770,"x":[34091],"o":"a_FD02,x"},{"a":34080,"t":"code","b":[176,5],"m":"bcs","oa":34087,"o":"b_8527"},{"a":34082,"t":"code","b":[189,2,253],"m":"lda","oa":64770,"o":"a_FD02,x"},{"a":34085,"t":"code","b":[134,136],"m":"stx","oa":136,"o":"tmp88"},{"a":34087,"l":"b_8527","t":"code","b":[202],"m":"dex","x":[34075,34080]},{"a":34088,"t":"code","b":[202],"m":"dex"},{"a":34089,"t":"code","b":[202],"m":"dex"},{"a":34090,"t":"code","b":[202],"m":"dex"},{"a":34091,"t":"code","b":[16,240],"m":"bpl","oa":34077,"o":"b_851D"},{"a":34093,"t":"code","b":[166,136],"m":"ldx","oa":136,"o":"tmp88"},{"a":34095,"t":"code","b":[134,137],"m":"stx","oa":137,"o":"tmp89"},{"a":34097,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":34100,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":34102,"t":"code","b":[133,145],"m":"sta","oa":145,"o":"tmp91"},{"a":34104,"t":"code","b":[189,2,253],"m":"lda","oa":64770,"o":"a_FD02,x"},{"a":34107,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":34109,"t":"code","b":[32,148,133],"m":"jsr","oa":34196,"o":"left_edge"},{"a":34112,"t":"code","b":[32,231,133],"m":"jsr","oa":34279,"o":"right_edge"},{"a":34115,"l":"b_8543","t":"code","b":[166,139],"m":"ldx","oa":139,"x":[34176,34181,34193],"o":"tmp8B"},{"a":34117,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":34119,"t":"code","b":[56],"m":"sec"},{"a":34120,"t":"code","b":[229,130],"m":"sbc","oa":130,"o":"tmp82"},{"a":34122,"t":"code","b":[176,5],"m":"bcs","oa":34129,"o":"b_8551"},{"a":34124,"l":"b_854C","t":"code","b":[202],"m":"dex","x":[34127,34261]},{"a":34125,"t":"code","b":[101,131],"m":"adc","oa":131,"o":"tmp83"},{"a":34127,"t":"code","b":[144,251],"m":"bcc","oa":34124,"o":"b_854C"},{"a":34129,"l":"b_8551","t":"code","b":[133,134],"m":"sta","oa":134,"x":[34122],"o":"tmp86"},{"a":34131,"t":"code","b":[134,139],"m":"stx","oa":139,"o":"tmp8B"},{"a":34133,"t":"code","b":[166,143],"m":"ldx","oa":143,"o":"tmp8F"},{"a":34135,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":34137,"t":"code","b":[229,132],"m":"sbc","oa":132,"o":"tmp84"},{"a":34139,"t":"code","b":[176,5],"m":"bcs","oa":34146,"o":"b_8562"},{"a":34141,"l":"b_855D","t":"code","b":[202],"m":"dex","x":[34144,34345]},{"a":34142,"t":"code","b":[101,133],"m":"adc","oa":133,"o":"tmp85"},{"a":34144,"t":"code","b":[144,251],"m":"bcc","oa":34141,"o":"b_855D"},{"a":34146,"l":"b_8562","t":"code","b":[133,135],"m":"sta","oa":135,"x":[34139],"o":"tmp87"},{"a":34148,"t":"code","b":[134,143],"m":"stx","oa":143,"o":"tmp8F"},{"a":34150,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":34152,"t":"code","b":[197,143],"m":"cmp","oa":143,"o":"tmp8F"},{"a":34154,"t":"code","b":[144,3],"m":"bcc","oa":34159,"o":"b_856F"},{"a":34156,"t":"code","b":[170],"m":"tax"},{"a":34157,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"tmp8F"},{"a":34159,"l":"b_856F","t":"code","b":[133,69],"m":"sta","oa":69,"x":[34154],"o":"span_left"},{"a":34161,"t":"code","b":[164,140],"m":"ldy","oa":140,"o":"tmp8C"},{"a":34163,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":34166,"t":"code","b":[198,140],"m":"dec","oa":140,"o":"tmp8C"},{"a":34168,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":34170,"t":"code","b":[197,142],"m":"cmp","oa":142,"o":"tmp8E"},{"a":34172,"t":"code","b":[240,10],"m":"beq","oa":34184,"o":"b_8588"},{"a":34174,"t":"code","b":[197,146],"m":"cmp","oa":146,"o":"tmp92"},{"a":34176,"t":"code","b":[208,193],"m":"bne","oa":34115,"o":"b_8543"},{"a":34178,"l":"b_8582","t":"code","b":[32,231,133],"m":"jsr","oa":34279,"x":[34191],"o":"right_edge"},{"a":34181,"t":"code","b":[76,67,133],"m":"jmp","oa":34115,"o":"b_8543"},{"a":34184,"l":"b_8588","t":"code","b":[32,148,133],"m":"jsr","oa":34196,"x":[34172],"o":"left_edge"},{"a":34187,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":34189,"t":"code","b":[197,146],"m":"cmp","oa":146,"o":"tmp92"},{"a":34191,"t":"code","b":[240,241],"m":"beq","oa":34178,"o":"b_8582"},{"a":34193,"t":"code","b":[76,67,133],"m":"jmp","oa":34115,"o":"b_8543"},{"a":34196,"l":"left_edge","c":"Starts the next edge on one side of scan_fill: the previous vertex, the edge's height in $83 and width in $82, and INX or DEX ($E8/$CA) patched in at $854C for its direction; edges of no height are skipped, and running out of vertices ends the fill","t":"code","b":[198,138],"m":"dec","oa":138,"x":[34109,34184,34236,34238],"o":"tmp8A"},{"a":34198,"t":"code","b":[48,76],"m":"bmi","oa":34276,"o":"b_85E4"},{"a":34200,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"tmp88"},{"a":34202,"t":"code","b":[56],"m":"sec"},{"a":34203,"t":"code","b":[233,4],"m":"sbc","o":"#$04"},{"a":34205,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":34207,"t":"code","b":[16,5],"m":"bpl","oa":34214,"o":"b_85A6"},{"a":34209,"t":"code","b":[24],"m":"clc"},{"a":34210,"t":"code","b":[101,85],"m":"adc","oa":85,"o":"clip_count"},{"a":34212,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":34214,"l":"b_85A6","t":"code","b":[170],"m":"tax","x":[34207]},{"a":34215,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":34217,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":34219,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":34222,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":34224,"t":"code","b":[189,2,253],"m":"lda","oa":64770,"o":"a_FD02,x"},{"a":34227,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"tmp8E"},{"a":34229,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":34231,"t":"code","b":[56],"m":"sec"},{"a":34232,"t":"code","b":[229,142],"m":"sbc","oa":142,"o":"tmp8E"},{"a":34234,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":34236,"t":"code","b":[240,214],"m":"beq","oa":34196,"o":"left_edge"},{"a":34238,"t":"code","b":[144,212],"m":"bcc","oa":34196,"o":"left_edge"},{"a":34240,"t":"code","b":[162,232],"m":"ldx","o":"#$E8"},{"a":34242,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":34244,"t":"code","b":[56],"m":"sec"},{"a":34245,"t":"code","b":[229,139],"m":"sbc","oa":139,"o":"tmp8B"},{"a":34247,"t":"code","b":[208,3],"m":"bne","oa":34252,"o":"b_85CC"},{"a":34249,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":34251,"t":"code","b":[96],"m":"rts"},{"a":34252,"l":"b_85CC","t":"code","b":[176,7],"m":"bcs","oa":34261,"x":[34247],"o":"b_85D5"},{"a":34254,"t":"code","b":[162,202],"m":"ldx","o":"#$CA"},{"a":34256,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":34258,"t":"code","b":[56],"m":"sec"},{"a":34259,"t":"code","b":[229,141],"m":"sbc","oa":141,"o":"tmp8D"},{"a":34261,"l":"b_85D5","t":"code","b":[142,76,133],"m":"stx","oa":34124,"x":[34252],"o":"b_854C"},{"a":34264,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":34266,"t":"code","b":[197,131],"m":"cmp","oa":131,"o":"tmp83"},{"a":34268,"t":"code","b":[176,2],"m":"bcs","oa":34272,"o":"b_85E0"},{"a":34270,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":34272,"l":"b_85E0","t":"code","b":[74],"m":"lsr","x":[34268],"o":"a"},{"a":34273,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":34275,"t":"code","b":[96],"m":"rts"},{"a":34276,"l":"b_85E4","t":"code","b":[104],"m":"pla","x":[34198,34281]},{"a":34277,"t":"code","b":[104],"m":"pla"},{"a":34278,"t":"code","b":[96],"m":"rts"},{"a":34279,"l":"right_edge","c":"The same for the other side of scan_fill: the next vertex, height in $85, width in $84, the step patched in at $855D","t":"code","b":[198,138],"m":"dec","oa":138,"x":[34112,34178,34320,34322],"o":"tmp8A"},{"a":34281,"t":"code","b":[48,249],"m":"bmi","oa":34276,"o":"b_85E4"},{"a":34283,"t":"code","b":[165,137],"m":"lda","oa":137,"o":"tmp89"},{"a":34285,"t":"code","b":[24],"m":"clc"},{"a":34286,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":34288,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":34290,"t":"code","b":[197,85],"m":"cmp","oa":85,"o":"clip_count"},{"a":34292,"t":"code","b":[144,4],"m":"bcc","oa":34298,"o":"b_85FA"},{"a":34294,"t":"code","b":[229,85],"m":"sbc","oa":85,"o":"clip_count"},{"a":34296,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":34298,"l":"b_85FA","t":"code","b":[170],"m":"tax","x":[34292]},{"a":34299,"t":"code","b":[165,145],"m":"lda","oa":145,"o":"tmp91"},{"a":34301,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"tmp8F"},{"a":34303,"t":"code","b":[189,0,253],"m":"lda","oa":64768,"o":"f_FD00,x"},{"a":34306,"t":"code","b":[133,145],"m":"sta","oa":145,"o":"tmp91"},{"a":34308,"t":"code","b":[189,2,253],"m":"lda","oa":64770,"o":"a_FD02,x"},{"a":34311,"t":"code","b":[133,146],"m":"sta","oa":146,"o":"tmp92"},{"a":34313,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":34315,"t":"code","b":[56],"m":"sec"},{"a":34316,"t":"code","b":[229,146],"m":"sbc","oa":146,"o":"tmp92"},{"a":34318,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":34320,"t":"code","b":[240,213],"m":"beq","oa":34279,"o":"right_edge"},{"a":34322,"t":"code","b":[144,211],"m":"bcc","oa":34279,"o":"right_edge"},{"a":34324,"t":"code","b":[162,232],"m":"ldx","o":"#$E8"},{"a":34326,"t":"code","b":[165,145],"m":"lda","oa":145,"o":"tmp91"},{"a":34328,"t":"code","b":[56],"m":"sec"},{"a":34329,"t":"code","b":[229,143],"m":"sbc","oa":143,"o":"tmp8F"},{"a":34331,"t":"code","b":[208,3],"m":"bne","oa":34336,"o":"b_8620"},{"a":34333,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":34335,"t":"code","b":[96],"m":"rts"},{"a":34336,"l":"b_8620","t":"code","b":[176,7],"m":"bcs","oa":34345,"x":[34331],"o":"b_8629"},{"a":34338,"t":"code","b":[162,202],"m":"ldx","o":"#$CA"},{"a":34340,"t":"code","b":[165,143],"m":"lda","oa":143,"o":"tmp8F"},{"a":34342,"t":"code","b":[56],"m":"sec"},{"a":34343,"t":"code","b":[229,145],"m":"sbc","oa":145,"o":"tmp91"},{"a":34345,"l":"b_8629","t":"code","b":[142,93,133],"m":"stx","oa":34141,"x":[34336],"o":"b_855D"},{"a":34348,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":34350,"t":"code","b":[197,133],"m":"cmp","oa":133,"o":"tmp85"},{"a":34352,"t":"code","b":[176,2],"m":"bcs","oa":34356,"o":"b_8634"},{"a":34354,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":34356,"l":"b_8634","t":"code","b":[74],"m":"lsr","x":[34352],"o":"a"},{"a":34357,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":34359,"t":"code","b":[96],"m":"rts"},{"a":34360,"l":"animate_chart","c":"Animates the chart window buffer at $FA00 (99 cells): a cell whose tile's attribute ($5000) has bit 2 clear and a frame count in bits 0-1 gets that count ANDed with the frame counter $5E added to its tile number","t":"code","b":[160,98],"m":"ldy","x":[9853],"o":"#$62"},{"a":34362,"l":"b_863A","t":"code","b":[190,0,250],"m":"ldx","oa":64000,"x":[34389],"o":"f_FA00,y"},{"a":34365,"t":"code","b":[189,0,80],"m":"lda","oa":20480,"o":"$5000,x"},{"a":34368,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":34370,"t":"code","b":[208,16],"m":"bne","oa":34388,"o":"b_8654"},{"a":34372,"t":"code","b":[189,0,80],"m":"lda","oa":20480,"o":"$5000,x"},{"a":34375,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":34377,"t":"code","b":[240,9],"m":"beq","oa":34388,"o":"b_8654"},{"a":34379,"t":"code","b":[37,94],"m":"and","oa":94,"o":"pass_count"},{"a":34381,"t":"code","b":[24],"m":"clc"},{"a":34382,"t":"code","b":[121,0,250],"m":"adc","oa":64000,"o":"f_FA00,y"},{"a":34385,"t":"code","b":[153,0,250],"m":"sta","oa":64000,"o":"f_FA00,y"},{"a":34388,"l":"b_8654","t":"code","b":[136],"m":"dey","x":[34370,34377]},{"a":34389,"t":"code","b":[16,227],"m":"bpl","oa":34362,"o":"b_863A"},{"a":34391,"t":"code","b":[96],"m":"rts"},{"a":34392,"l":"draw_chart","c":"Draws the chart window at $FA00 into the bitmap: 9 rows of 11 tiles, each tile 16 pixels high and two bytes wide, its pixel row r at $4080 + $100 * r + tile (left byte) and $4000 + $100 * r + tile (right byte), patched into the loads at $871A and $8711; then each cell's colour from $5080 + tile into the screen matrix. The row stride and the bitmap position come from $0D30-$0D32, and the cursor brackets are drawn on the middle row when $0D2F is set ($8779)","t":"code","b":[174,49,13],"m":"ldx","oa":3377,"x":[9859],"o":"chart_row"},{"a":34395,"t":"code","b":[232],"m":"inx"},{"a":34396,"t":"code","b":[134,135],"m":"stx","oa":135,"o":"tmp87"},{"a":34398,"t":"code","b":[173,48,13],"m":"lda","oa":3376,"o":"chart_col"},{"a":34401,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34402,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34403,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34404,"t":"code","b":[141,223,134],"m":"sta","oa":34527,"o":"a_86DF"},{"a":34407,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34409,"t":"code","b":[42],"m":"rol","o":"a"},{"a":34410,"t":"code","b":[141,230,134],"m":"sta","oa":34534,"o":"a_86E6"},{"a":34413,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":34415,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":34417,"t":"code","b":[169,245],"m":"lda","o":"#$F5"},{"a":34419,"t":"code","b":[141,14,135],"m":"sta","oa":34574,"o":"a_870E"},{"a":34422,"t":"code","b":[169,249],"m":"lda","o":"#$F9"},{"a":34424,"t":"code","b":[141,15,135],"m":"sta","oa":34575,"o":"a_870F"},{"a":34427,"t":"code","b":[169,245],"m":"lda","o":"#$F5"},{"a":34429,"t":"code","b":[141,56,135],"m":"sta","oa":34616,"o":"a_8738"},{"a":34432,"t":"code","b":[169,249],"m":"lda","o":"#$F9"},{"a":34434,"t":"code","b":[141,57,135],"m":"sta","oa":34617,"o":"a_8739"},{"a":34437,"l":"j_8685","t":"code","b":[169,15],"m":"lda","x":[34655],"o":"#$0F"},{"a":34439,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":34441,"t":"code","b":[169,63],"m":"lda","o":"#$3F"},{"a":34443,"t":"code","b":[141,19,135],"m":"sta","oa":34579,"o":"a_8713"},{"a":34446,"t":"code","b":[169,63],"m":"lda","o":"#$3F"},{"a":34448,"t":"code","b":[141,28,135],"m":"sta","oa":34588,"o":"a_871C"},{"a":34451,"t":"code","b":[173,14,135],"m":"lda","oa":34574,"o":"a_870E"},{"a":34454,"t":"code","b":[24],"m":"clc"},{"a":34455,"t":"code","b":[105,11],"m":"adc","o":"#$0B"},{"a":34457,"t":"code","b":[141,14,135],"m":"sta","oa":34574,"o":"a_870E"},{"a":34460,"t":"code","b":[144,3],"m":"bcc","oa":34465,"o":"b_86A1"},{"a":34462,"t":"code","b":[238,15,135],"m":"inc","oa":34575,"o":"a_870F"},{"a":34465,"l":"b_86A1","t":"code","b":[173,56,135],"m":"lda","oa":34616,"x":[34460],"o":"a_8738"},{"a":34468,"t":"code","b":[24],"m":"clc"},{"a":34469,"t":"code","b":[105,11],"m":"adc","o":"#$0B"},{"a":34471,"t":"code","b":[141,56,135],"m":"sta","oa":34616,"o":"a_8738"},{"a":34474,"t":"code","b":[144,3],"m":"bcc","oa":34479,"o":"b_86AF"},{"a":34476,"t":"code","b":[238,57,135],"m":"inc","oa":34617,"o":"a_8739"},{"a":34479,"l":"b_86AF","t":"code","b":[165,134],"m":"lda","oa":134,"x":[34474],"o":"tmp86"},{"a":34481,"t":"code","b":[240,4],"m":"beq","oa":34487,"o":"b_86B7"},{"a":34483,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":34485,"t":"code","b":[208,31],"m":"bne","oa":34518,"o":"b_86D6"},{"a":34487,"l":"b_86B7","t":"code","b":[169,15],"m":"lda","x":[34481],"o":"#$0F"},{"a":34489,"t":"code","b":[56],"m":"sec"},{"a":34490,"t":"code","b":[237,50,13],"m":"sbc","oa":3378,"o":"chart_scroll"},{"a":34493,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":34495,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":34497,"t":"code","b":[240,19],"m":"beq","oa":34518,"o":"b_86D6"},{"a":34499,"t":"code","b":[173,19,135],"m":"lda","oa":34579,"o":"a_8713"},{"a":34502,"t":"code","b":[24],"m":"clc"},{"a":34503,"t":"code","b":[109,50,13],"m":"adc","oa":3378,"o":"chart_scroll"},{"a":34506,"t":"code","b":[141,19,135],"m":"sta","oa":34579,"o":"a_8713"},{"a":34509,"t":"code","b":[173,28,135],"m":"lda","oa":34588,"o":"a_871C"},{"a":34512,"t":"code","b":[109,50,13],"m":"adc","oa":3378,"o":"chart_scroll"},{"a":34515,"t":"code","b":[141,28,135],"m":"sta","oa":34588,"o":"a_871C"},{"a":34518,"l":"b_86D6","t":"code","b":[198,135],"m":"dec","oa":135,"x":[34485,34497,34635],"o":"tmp87"},{"a":34520,"t":"code","b":[164,135],"m":"ldy","oa":135,"o":"tmp87"},{"a":34522,"t":"code","b":[185,0,235],"m":"lda","oa":60160,"o":"row_addr_lo,y"},{"a":34525,"t":"code","b":[24],"m":"clc"},{"a":34526,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":34527,"t":"note","l":"a_86DF","c":"Low byte of the chart's column in a bitmap row (8 * $0D30), patched in by draw_chart and added to each pixel row's address","note":"inside the item at $86DE","x":[34404]},{"a":34528,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":34530,"t":"code","b":[185,0,236],"m":"lda","oa":60416,"o":"row_addr_hi,y"},{"a":34533,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":34534,"t":"note","l":"a_86E6","c":"High byte of the chart's column offset in a bitmap row (the carry out of 8 * $0D30), patched in by draw_chart","note":"inside the item at $86E5","x":[34410]},{"a":34535,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":34537,"t":"code","b":[185,200,236],"m":"lda","oa":60616,"o":"div8,y"},{"a":34540,"t":"code","b":[168],"m":"tay"},{"a":34541,"t":"code","b":[185,200,235],"m":"lda","oa":60360,"o":"screen_row_lo,y"},{"a":34544,"t":"code","b":[24],"m":"clc"},{"a":34545,"t":"code","b":[109,48,13],"m":"adc","oa":3376,"o":"chart_col"},{"a":34548,"t":"code","b":[133,25],"m":"sta","oa":25,"o":"cell_ptr"},{"a":34550,"t":"code","b":[185,225,235],"m":"lda","oa":60385,"o":"screen_row_hi,y"},{"a":34553,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":34555,"t":"code","b":[133,26],"m":"sta","oa":26,"o":"zpa_1A"},{"a":34557,"t":"code","b":[238,19,135],"m":"inc","oa":34579,"o":"a_8713"},{"a":34560,"t":"code","b":[238,28,135],"m":"inc","oa":34588,"o":"a_871C"},{"a":34563,"t":"code","b":[160,168],"m":"ldy","o":"#$A8"},{"a":34565,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":34567,"t":"code","b":[141,12,135],"m":"sta","oa":34572,"o":"a_870C"},{"a":34570,"t":"code","b":[56],"m":"sec"},{"a":34571,"l":"b_870B","t":"code","b":[162,0],"m":"ldx","x":[34598],"o":"#$00"},{"a":34572,"t":"note","l":"a_870C","c":"The tile being drawn on the chart row, counted down from 10 to 0 (11 tiles): draw_chart's LDX operand","note":"inside the item at $870B","x":[34567,34595]},{"a":34573,"t":"code","b":[189,0,250],"m":"lda","oa":64000,"o":"f_FA00,x"},{"a":34574,"t":"note","l":"a_870E","c":"Low byte of the address of the chart row's 11 tile numbers in the window buffer at $FA00, moved on 11 for each tile row","note":"inside the item at $870D","x":[34419,34451,34457]},{"a":34575,"t":"note","l":"a_870F","c":"High byte of the address of the chart row's tile numbers","note":"inside the item at $870D","x":[34424,34462]},{"a":34576,"t":"code","b":[170],"m":"tax"},{"a":34577,"t":"code","b":[189,0,64],"m":"lda","oa":16384,"o":"$4000,x"},{"a":34579,"t":"note","l":"a_8713","c":"High byte of the address of a tile's right-half pixel byte ($4000 + $100 * pixel row + tile): stepped for each pixel row and set back for each tile row; the first tile row starts $0D32 rows in","note":"inside the item at $8711","x":[34443,34499,34506,34557]},{"a":34580,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":34582,"t":"code","b":[152],"m":"tya"},{"a":34583,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":34585,"t":"code","b":[168],"m":"tay"},{"a":34586,"t":"code","b":[189,128,64],"m":"lda","oa":16512,"o":"$4080,x"},{"a":34588,"t":"note","l":"a_871C","c":"High byte of the address of a tile's left-half pixel byte ($4080 + $100 * pixel row + tile), stepped with $8713","note":"inside the item at $871A","x":[34448,34509,34515,34560]},{"a":34589,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":34591,"t":"code","b":[152],"m":"tya"},{"a":34592,"t":"code","b":[233,8],"m":"sbc","o":"#$08"},{"a":34594,"t":"code","b":[168],"m":"tay"},{"a":34595,"t":"code","b":[206,12,135],"m":"dec","oa":34572,"o":"a_870C"},{"a":34598,"t":"code","b":[16,227],"m":"bpl","oa":34571,"o":"b_870B"},{"a":34600,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":34602,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":34604,"t":"code","b":[208,27],"m":"bne","oa":34633,"o":"b_8749"},{"a":34606,"t":"code","b":[160,21],"m":"ldy","o":"#$15"},{"a":34608,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":34610,"t":"code","b":[141,54,135],"m":"sta","oa":34614,"o":"a_8736"},{"a":34613,"l":"b_8735","t":"code","b":[162,0],"m":"ldx","x":[34631],"o":"#$00"},{"a":34614,"t":"note","l":"a_8736","c":"The tile being coloured, counted down from 10 to 0: the LDX operand of the screen matrix pass, made once every 8 pixel rows","note":"inside the item at $8735","x":[34610,34628]},{"a":34615,"t":"code","b":[189,0,250],"m":"lda","oa":64000,"o":"f_FA00,x"},{"a":34616,"t":"note","l":"a_8738","c":"Low byte of the tile row's address for the colour pass, kept in step with $870E","note":"inside the item at $8737","x":[34429,34465,34471]},{"a":34617,"t":"note","l":"a_8739","c":"High byte of the tile row's address for the colour pass","note":"inside the item at $8737","x":[34434,34476]},{"a":34618,"t":"code","b":[170],"m":"tax"},{"a":34619,"t":"code","b":[189,128,80],"m":"lda","oa":20608,"o":"$5080,x"},{"a":34622,"t":"code","b":[145,25],"m":"sta","oa":25,"o":"(cell_ptr),y"},{"a":34624,"t":"code","b":[136],"m":"dey"},{"a":34625,"t":"code","b":[145,25],"m":"sta","oa":25,"o":"(cell_ptr),y"},{"a":34627,"t":"code","b":[136],"m":"dey"},{"a":34628,"t":"code","b":[206,54,135],"m":"dec","oa":34614,"o":"a_8736"},{"a":34631,"t":"code","b":[16,236],"m":"bpl","oa":34613,"o":"b_8735"},{"a":34633,"l":"b_8749","t":"code","b":[198,133],"m":"dec","oa":133,"x":[34604],"o":"tmp85"},{"a":34635,"t":"code","b":[16,137],"m":"bpl","oa":34518,"o":"b_86D6"},{"a":34637,"t":"code","b":[173,47,13],"m":"lda","oa":3375,"o":"chart_brackets"},{"a":34640,"t":"code","b":[240,9],"m":"beq","oa":34651,"o":"b_875B"},{"a":34642,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":34644,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":34646,"t":"code","b":[208,3],"m":"bne","oa":34651,"o":"b_875B"},{"a":34648,"t":"code","b":[32,121,135],"m":"jsr","oa":34681,"o":"draw_brackets"},{"a":34651,"l":"b_875B","t":"code","b":[198,134],"m":"dec","oa":134,"x":[34640,34646],"o":"tmp86"},{"a":34653,"t":"code","b":[48,3],"m":"bmi","oa":34658,"o":"r_8762"},{"a":34655,"t":"code","b":[76,133,134],"m":"jmp","oa":34437,"o":"j_8685"},{"a":34658,"l":"r_8762","t":"code","b":[96],"m":"rts","x":[34653]},{"a":34659,"l":"chart_cell_index","c":"The chart window cell for column X and row Y relative to the cursor: X + 5 plus the row's offset from $0D33 (4 - Y), returned in Y","t":"code","b":[132,128],"m":"sty","oa":128,"x":[10489,12222],"o":"tmp80"},{"a":34661,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":34663,"t":"code","b":[56],"m":"sec"},{"a":34664,"t":"code","b":[229,128],"m":"sbc","oa":128,"o":"tmp80"},{"a":34666,"t":"code","b":[168],"m":"tay"},{"a":34667,"t":"code","b":[185,51,13],"m":"lda","oa":3379,"o":"chart_rows,y"},{"a":34670,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":34672,"t":"code","b":[138],"m":"txa"},{"a":34673,"t":"code","b":[24],"m":"clc"},{"a":34674,"t":"code","b":[105,5],"m":"adc","o":"#$05"},{"a":34676,"t":"code","b":[24],"m":"clc"},{"a":34677,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":34679,"t":"code","b":[168],"m":"tay"},{"a":34680,"t":"code","b":[96],"m":"rts"},{"a":34681,"l":"draw_brackets","c":"Draws the chart cursor's brackets on the middle cell: 16 pixel rows, each masked with tile $7E's bytes ($407E, $40FE) and ORed with tile $7F's ($407F, $40FF), at 10 columns right of $0D30","t":"code","b":[173,48,13],"m":"lda","oa":3376,"x":[34648],"o":"chart_col"},{"a":34684,"t":"code","b":[24],"m":"clc"},{"a":34685,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":34687,"t":"code","b":[170],"m":"tax"},{"a":34688,"t":"code","b":[173,49,13],"m":"lda","oa":3377,"o":"chart_row"},{"a":34691,"t":"code","b":[56],"m":"sec"},{"a":34692,"t":"code","b":[233,64],"m":"sbc","o":"#$40"},{"a":34694,"t":"code","b":[168],"m":"tay"},{"a":34695,"t":"code","b":[134,128],"m":"stx","oa":128,"o":"tmp80"},{"a":34697,"t":"code","b":[132,129],"m":"sty","oa":129,"o":"tmp81"},{"a":34699,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":34701,"t":"code","b":[141,217,135],"m":"sta","oa":34777,"o":"a_87D9"},{"a":34704,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":34706,"t":"code","b":[141,218,135],"m":"sta","oa":34778,"o":"a_87DA"},{"a":34709,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":34711,"t":"code","b":[141,220,135],"m":"sta","oa":34780,"o":"a_87DC"},{"a":34714,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":34716,"t":"code","b":[141,221,135],"m":"sta","oa":34781,"o":"a_87DD"},{"a":34719,"t":"code","b":[169,126],"m":"lda","o":"#$7E"},{"a":34721,"t":"code","b":[141,229,135],"m":"sta","oa":34789,"o":"a_87E5"},{"a":34724,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":34726,"t":"code","b":[141,230,135],"m":"sta","oa":34790,"o":"a_87E6"},{"a":34729,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":34731,"t":"code","b":[141,232,135],"m":"sta","oa":34792,"o":"a_87E8"},{"a":34734,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":34736,"t":"code","b":[141,233,135],"m":"sta","oa":34793,"o":"a_87E9"},{"a":34739,"t":"code","b":[162,15],"m":"ldx","o":"#$0F"},{"a":34741,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":34743,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34744,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34745,"t":"code","b":[10],"m":"asl","o":"a"},{"a":34746,"t":"code","b":[141,202,135],"m":"sta","oa":34762,"o":"a_87CA"},{"a":34749,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34751,"t":"code","b":[42],"m":"rol","o":"a"},{"a":34752,"t":"code","b":[141,209,135],"m":"sta","oa":34769,"o":"a_87D1"},{"a":34755,"l":"b_87C3","t":"code","b":[164,129],"m":"ldy","oa":129,"x":[34811],"o":"tmp81"},{"a":34757,"t":"code","b":[185,0,235],"m":"lda","oa":60160,"o":"row_addr_lo,y"},{"a":34760,"t":"code","b":[24],"m":"clc"},{"a":34761,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":34762,"t":"note","l":"a_87CA","c":"Low byte of the brackets' column in a bitmap row (8 * ($0D30 + 10)), patched by draw_brackets","note":"inside the item at $87C9","x":[34746]},{"a":34763,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":34765,"t":"code","b":[185,0,236],"m":"lda","oa":60416,"o":"row_addr_hi,y"},{"a":34768,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":34769,"t":"note","l":"a_87D1","c":"High byte of the brackets' column offset, the carry out, patched by draw_brackets","note":"inside the item at $87D0","x":[34752]},{"a":34770,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":34772,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":34774,"t":"code","b":[177,56],"m":"lda","oa":56,"o":"(bitmap_ptr),y"},{"a":34776,"t":"code","b":[45,254,64],"m":"and","oa":16638,"o":"$40FE"},{"a":34777,"t":"note","l":"a_87D9","c":"Low byte of the mask for the brackets' first byte, the left one: tile $7E's left half ($40FE onward)","note":"inside the item at $87D8","x":[34701]},{"a":34778,"t":"note","l":"a_87DA","c":"High byte of the first byte's mask address, stepped once a pixel row","note":"inside the item at $87D8","x":[34706,34796]},{"a":34779,"t":"code","b":[13,255,64],"m":"ora","oa":16639,"o":"$40FF"},{"a":34780,"t":"note","l":"a_87DC","c":"Low byte of the pattern ORed into the brackets' first byte: tile $7F's left half ($40FF onward)","note":"inside the item at $87DB","x":[34711]},{"a":34781,"t":"note","l":"a_87DD","c":"High byte of the first byte's pattern address, stepped once a pixel row","note":"inside the item at $87DB","x":[34716,34799]},{"a":34782,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":34784,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":34786,"t":"code","b":[177,56],"m":"lda","oa":56,"o":"(bitmap_ptr),y"},{"a":34788,"t":"code","b":[45,126,64],"m":"and","oa":16510,"o":"$407E"},{"a":34789,"t":"note","l":"a_87E5","c":"Low byte of the mask for the brackets' second byte, the right one: tile $7E's right half ($407E onward)","note":"inside the item at $87E4","x":[34721]},{"a":34790,"t":"note","l":"a_87E6","c":"High byte of the second byte's mask address, stepped once a pixel row","note":"inside the item at $87E4","x":[34726,34802]},{"a":34791,"t":"code","b":[13,127,64],"m":"ora","oa":16511,"o":"$407F"},{"a":34792,"t":"note","l":"a_87E8","c":"Low byte of the pattern ORed into the brackets' second byte: tile $7F's right half ($407F onward)","note":"inside the item at $87E7","x":[34731]},{"a":34793,"t":"note","l":"a_87E9","c":"High byte of the second byte's pattern address, stepped once a pixel row","note":"inside the item at $87E7","x":[34736,34805]},{"a":34794,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":34796,"t":"code","b":[238,218,135],"m":"inc","oa":34778,"o":"a_87DA"},{"a":34799,"t":"code","b":[238,221,135],"m":"inc","oa":34781,"o":"a_87DD"},{"a":34802,"t":"code","b":[238,230,135],"m":"inc","oa":34790,"o":"a_87E6"},{"a":34805,"t":"code","b":[238,233,135],"m":"inc","oa":34793,"o":"a_87E9"},{"a":34808,"t":"code","b":[198,129],"m":"dec","oa":129,"o":"tmp81"},{"a":34810,"t":"code","b":[202],"m":"dex"},{"a":34811,"t":"code","b":[16,198],"m":"bpl","oa":34755,"o":"b_87C3"},{"a":34813,"t":"code","b":[96],"m":"rts"},{"a":34814,"l":"window_view","c":"Sets the drawing window to the 3D view: 251 by 102 pixels from x 34, row 73 counted from the bottom (set_window)","t":"code","b":[169,251],"m":"lda","x":[13191,13223,13234,13630,29370],"o":"#$FB"},{"a":34816,"t":"code","b":[133,65],"m":"sta","oa":65,"o":"window_width"},{"a":34818,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":34820,"t":"code","b":[133,66],"m":"sta","oa":66,"o":"window_height"},{"a":34822,"t":"code","b":[162,34],"m":"ldx","o":"#$22"},{"a":34824,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34826,"t":"code","b":[160,73],"m":"ldy","o":"#$49"},{"a":34828,"t":"code","b":[32,23,142],"m":"jsr","oa":36375,"o":"set_window"},{"a":34831,"t":"code","b":[96],"m":"rts"},{"a":34832,"l":"window_full","c":"Sets the drawing window to $41 = $3F, $42 = 199 from (0, 0) (set_window)","t":"code","b":[169,63],"m":"lda","x":[9590,12546,12952,29361],"o":"#$3F"},{"a":34834,"t":"code","b":[133,65],"m":"sta","oa":65,"o":"window_width"},{"a":34836,"t":"code","b":[169,199],"m":"lda","o":"#$C7"},{"a":34838,"t":"code","b":[133,66],"m":"sta","oa":66,"o":"window_height"},{"a":34840,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":34842,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34844,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":34846,"t":"code","b":[32,23,142],"m":"jsr","oa":36375,"o":"set_window"},{"a":34849,"t":"code","b":[96],"m":"rts"},{"a":34850,"l":"window_right","c":"Sets the drawing window to $41 = $9F, $42 = 199 from x $A0, row 0 (set_window), the screen's right half","t":"code","b":[169,159],"m":"lda","x":[12864],"o":"#$9F"},{"a":34852,"t":"code","b":[133,65],"m":"sta","oa":65,"o":"window_width"},{"a":34854,"t":"code","b":[169,199],"m":"lda","o":"#$C7"},{"a":34856,"t":"code","b":[133,66],"m":"sta","oa":66,"o":"window_height"},{"a":34858,"t":"code","b":[162,160],"m":"ldx","o":"#$A0"},{"a":34860,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34862,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":34864,"t":"code","b":[32,23,142],"m":"jsr","oa":36375,"o":"set_window"},{"a":34867,"t":"code","b":[96],"m":"rts"},{"a":34868,"l":"draw_disc","c":"A 2D object's draw routine: a filled disc of diameter $4D centred on the projected point $51-$54 (a single point below 2), drawn as horizontal spans ($8C73) with a midpoint circle. Used by types 21, 22, 25, 26 and 34 and by distant 3D objects","t":"code","b":[165,77],"m":"lda","oa":77,"x":[35318,35333,35342,35365,35375],"o":"object_size"},{"a":34870,"t":"code","b":[201,2],"m":"cmp","o":"#$02"},{"a":34872,"t":"code","b":[176,23],"m":"bcs","oa":34897,"o":"b_8851"},{"a":34874,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":34876,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":34878,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":34880,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":34882,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":34884,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":34886,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":34888,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":34890,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":34892,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":34894,"t":"code","b":[76,115,140],"m":"jmp","oa":35955,"o":"span_clipped"},{"a":34897,"l":"b_8851","t":"code","b":[74],"m":"lsr","x":[34872],"o":"a"},{"a":34898,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":34900,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":34902,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":34904,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":34906,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":34908,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":34910,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":34912,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":34914,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":34916,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":34918,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":34920,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":34922,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":34924,"t":"code","b":[24],"m":"clc"},{"a":34925,"t":"code","b":[101,136],"m":"adc","oa":136,"o":"tmp88"},{"a":34927,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":34929,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":34931,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":34933,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":34935,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":34937,"t":"code","b":[56],"m":"sec"},{"a":34938,"t":"code","b":[229,136],"m":"sbc","oa":136,"o":"tmp88"},{"a":34940,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":34942,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":34944,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":34946,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":34948,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":34950,"t":"code","b":[106],"m":"ror","o":"a"},{"a":34951,"t":"code","b":[176,15],"m":"bcs","oa":34968,"o":"b_8898"},{"a":34953,"t":"code","b":[230,71],"m":"inc","oa":71,"o":"clip_x1"},{"a":34955,"t":"code","b":[208,2],"m":"bne","oa":34959,"o":"b_888F"},{"a":34957,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":34959,"l":"b_888F","t":"code","b":[230,133],"m":"inc","oa":133,"x":[34955],"o":"tmp85"},{"a":34961,"t":"code","b":[208,2],"m":"bne","oa":34965,"o":"b_8895"},{"a":34963,"t":"code","b":[230,134],"m":"inc","oa":134,"o":"tmp86"},{"a":34965,"l":"b_8895","t":"code","b":[76,155,136],"m":"jmp","oa":34971,"x":[34961],"o":"j_889B"},{"a":34968,"l":"b_8898","t":"code","b":[32,115,140],"m":"jsr","oa":35955,"x":[34951],"o":"span_clipped"},{"a":34971,"l":"j_889B","t":"code","b":[230,137],"m":"inc","oa":137,"x":[34965,35036,35040],"o":"tmp89"},{"a":34973,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":34975,"t":"code","b":[208,2],"m":"bne","oa":34979,"o":"b_88A3"},{"a":34977,"t":"code","b":[230,76],"m":"inc","oa":76,"o":"zpa_4C"},{"a":34979,"l":"b_88A3","t":"code","b":[165,133],"m":"lda","oa":133,"x":[34975],"o":"tmp85"},{"a":34981,"t":"code","b":[208,2],"m":"bne","oa":34985,"o":"b_88A9"},{"a":34983,"t":"code","b":[198,134],"m":"dec","oa":134,"o":"tmp86"},{"a":34985,"l":"b_88A9","t":"code","b":[198,133],"m":"dec","oa":133,"x":[34981],"o":"tmp85"},{"a":34987,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":34989,"t":"code","b":[24],"m":"clc"},{"a":34990,"t":"code","b":[101,137],"m":"adc","oa":137,"o":"tmp89"},{"a":34992,"t":"code","b":[48,21],"m":"bmi","oa":35015,"o":"b_88C7"},{"a":34994,"t":"code","b":[56],"m":"sec"},{"a":34995,"l":"b_88B3","t":"code","b":[229,136],"m":"sbc","oa":136,"x":[35013],"o":"tmp88"},{"a":34997,"t":"code","b":[198,136],"m":"dec","oa":136,"o":"tmp88"},{"a":34999,"t":"code","b":[166,73],"m":"ldx","oa":73,"o":"clip_x2"},{"a":35001,"t":"code","b":[208,2],"m":"bne","oa":35005,"o":"b_88BD"},{"a":35003,"t":"code","b":[198,74],"m":"dec","oa":74,"o":"zpa_4A"},{"a":35005,"l":"b_88BD","t":"code","b":[198,73],"m":"dec","oa":73,"x":[35001],"o":"clip_x2"},{"a":35007,"t":"code","b":[230,71],"m":"inc","oa":71,"o":"clip_x1"},{"a":35009,"t":"code","b":[208,2],"m":"bne","oa":35013,"o":"b_88C5"},{"a":35011,"t":"code","b":[230,72],"m":"inc","oa":72,"o":"zpa_48"},{"a":35013,"l":"b_88C5","t":"code","b":[176,236],"m":"bcs","oa":34995,"x":[35009],"o":"b_88B3"},{"a":35015,"l":"b_88C7","t":"code","b":[133,135],"m":"sta","oa":135,"x":[34992],"o":"tmp87"},{"a":35017,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":35020,"t":"code","b":[165,134],"m":"lda","oa":134,"o":"tmp86"},{"a":35022,"t":"code","b":[208,5],"m":"bne","oa":35029,"o":"b_88D5"},{"a":35024,"t":"code","b":[164,133],"m":"ldy","oa":133,"o":"tmp85"},{"a":35026,"t":"code","b":[32,121,140],"m":"jsr","oa":35961,"o":"s_8C79"},{"a":35029,"l":"b_88D5","t":"code","b":[165,137],"m":"lda","oa":137,"x":[35022],"o":"tmp89"},{"a":35031,"t":"code","b":[197,138],"m":"cmp","oa":138,"o":"tmp8A"},{"a":35033,"t":"code","b":[240,8],"m":"beq","oa":35043,"o":"r_88E3"},{"a":35035,"t":"code","b":[106],"m":"ror","o":"a"},{"a":35036,"t":"code","b":[176,189],"m":"bcs","oa":34971,"o":"j_889B"},{"a":35038,"t":"code","b":[230,135],"m":"inc","oa":135,"o":"tmp87"},{"a":35040,"t":"code","b":[76,155,136],"m":"jmp","oa":34971,"o":"j_889B"},{"a":35043,"l":"r_88E3","t":"code","b":[96],"m":"rts","x":[35033]},{"a":35044,"l":"draw_ring","c":"Types 31-33's draw routine: a circle's outline of diameter $4D, the two ends of each row plotted as short spans ($899B); nothing at 250 or more","t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35046,"t":"code","b":[201,250],"m":"cmp","o":"#$FA"},{"a":35048,"t":"code","b":[144,1],"m":"bcc","oa":35051,"o":"b_88EB"},{"a":35050,"t":"code","b":[96],"m":"rts"},{"a":35051,"l":"b_88EB","t":"code","b":[74],"m":"lsr","x":[35048],"o":"a"},{"a":35052,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":35054,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":35056,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":35058,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":35060,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":35062,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":35064,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35066,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":35068,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":35070,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35072,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":35074,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":35076,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35078,"t":"code","b":[24],"m":"clc"},{"a":35079,"t":"code","b":[101,134],"m":"adc","oa":134,"o":"tmp86"},{"a":35081,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":35083,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35085,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35087,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":35089,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35091,"t":"code","b":[56],"m":"sec"},{"a":35092,"t":"code","b":[229,134],"m":"sbc","oa":134,"o":"tmp86"},{"a":35094,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":35096,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35098,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":35100,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":35102,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":35104,"t":"code","b":[208,5],"m":"bne","oa":35111,"o":"b_8927"},{"a":35106,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":35108,"t":"code","b":[32,155,137],"m":"jsr","oa":35227,"o":"s_899B"},{"a":35111,"l":"b_8927","t":"code","b":[230,135],"m":"inc","oa":135,"x":[35104,35164,35179,35186],"o":"tmp87"},{"a":35113,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":35115,"t":"code","b":[208,2],"m":"bne","oa":35119,"o":"b_892F"},{"a":35117,"t":"code","b":[230,130],"m":"inc","oa":130,"o":"tmp82"},{"a":35119,"l":"b_892F","t":"code","b":[165,131],"m":"lda","oa":131,"x":[35115],"o":"tmp83"},{"a":35121,"t":"code","b":[208,2],"m":"bne","oa":35125,"o":"b_8935"},{"a":35123,"t":"code","b":[198,132],"m":"dec","oa":132,"o":"tmp84"},{"a":35125,"l":"b_8935","t":"code","b":[198,131],"m":"dec","oa":131,"x":[35121],"o":"tmp83"},{"a":35127,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":35129,"t":"code","b":[24],"m":"clc"},{"a":35130,"t":"code","b":[101,135],"m":"adc","oa":135,"o":"tmp87"},{"a":35132,"t":"code","b":[48,21],"m":"bmi","oa":35155,"o":"b_8953"},{"a":35134,"t":"code","b":[56],"m":"sec"},{"a":35135,"l":"b_893F","t":"code","b":[229,134],"m":"sbc","oa":134,"x":[35153],"o":"tmp86"},{"a":35137,"t":"code","b":[198,134],"m":"dec","oa":134,"o":"tmp86"},{"a":35139,"t":"code","b":[166,140],"m":"ldx","oa":140,"o":"tmp8C"},{"a":35141,"t":"code","b":[208,2],"m":"bne","oa":35145,"o":"b_8949"},{"a":35143,"t":"code","b":[198,141],"m":"dec","oa":141,"o":"tmp8D"},{"a":35145,"l":"b_8949","t":"code","b":[198,140],"m":"dec","oa":140,"x":[35141],"o":"tmp8C"},{"a":35147,"t":"code","b":[230,138],"m":"inc","oa":138,"o":"tmp8A"},{"a":35149,"t":"code","b":[208,2],"m":"bne","oa":35153,"o":"b_8951"},{"a":35151,"t":"code","b":[230,139],"m":"inc","oa":139,"o":"tmp8B"},{"a":35153,"l":"b_8951","t":"code","b":[176,236],"m":"bcs","oa":35135,"x":[35149],"o":"b_893F"},{"a":35155,"l":"b_8953","t":"code","b":[133,133],"m":"sta","oa":133,"x":[35132],"o":"tmp85"},{"a":35157,"t":"code","b":[165,135],"m":"lda","oa":135,"o":"tmp87"},{"a":35159,"t":"code","b":[197,136],"m":"cmp","oa":136,"o":"tmp88"},{"a":35161,"t":"code","b":[240,26],"m":"beq","oa":35189,"o":"b_8975"},{"a":35163,"t":"code","b":[106],"m":"ror","o":"a"},{"a":35164,"t":"code","b":[176,201],"m":"bcs","oa":35111,"o":"b_8927"},{"a":35166,"t":"code","b":[230,133],"m":"inc","oa":133,"o":"tmp85"},{"a":35168,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":35170,"t":"code","b":[208,5],"m":"bne","oa":35177,"o":"b_8969"},{"a":35172,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":35174,"t":"code","b":[32,155,137],"m":"jsr","oa":35227,"o":"s_899B"},{"a":35177,"l":"b_8969","t":"code","b":[165,132],"m":"lda","oa":132,"x":[35170],"o":"tmp84"},{"a":35179,"t":"code","b":[208,186],"m":"bne","oa":35111,"o":"b_8927"},{"a":35181,"t":"code","b":[164,131],"m":"ldy","oa":131,"o":"tmp83"},{"a":35183,"t":"code","b":[32,155,137],"m":"jsr","oa":35227,"o":"s_899B"},{"a":35186,"t":"code","b":[76,39,137],"m":"jmp","oa":35111,"o":"b_8927"},{"a":35189,"l":"b_8975","c":"draw_ring's top and bottom rows as spans ($8C73)","t":"code","b":[165,138],"m":"lda","oa":138,"x":[35161],"o":"tmp8A"},{"a":35191,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":35193,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":35195,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":35197,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":35199,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":35201,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":35203,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":35205,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":35207,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":35209,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":35211,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":35213,"t":"code","b":[32,115,140],"m":"jsr","oa":35955,"o":"span_clipped"},{"a":35216,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":35218,"t":"code","b":[133,75],"m":"sta","oa":75,"o":"clip_row"},{"a":35220,"t":"code","b":[165,132],"m":"lda","oa":132,"o":"tmp84"},{"a":35222,"t":"code","b":[133,76],"m":"sta","oa":76,"o":"zpa_4C"},{"a":35224,"t":"code","b":[76,115,140],"m":"jmp","oa":35955,"o":"span_clipped"},{"a":35227,"l":"s_899B","c":"Plots the two ends of draw_ring's row Y, one pixel wide each ($8C79)","t":"code","b":[132,137],"m":"sty","oa":137,"x":[35108,35174,35183],"o":"tmp89"},{"a":35229,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":35231,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":35233,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":35235,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":35237,"t":"code","b":[165,71],"m":"lda","oa":71,"o":"clip_x1"},{"a":35239,"t":"code","b":[24],"m":"clc"},{"a":35240,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":35242,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":35244,"t":"code","b":[165,72],"m":"lda","oa":72,"o":"zpa_48"},{"a":35246,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35248,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":35250,"t":"code","b":[32,121,140],"m":"jsr","oa":35961,"o":"s_8C79"},{"a":35253,"t":"code","b":[164,137],"m":"ldy","oa":137,"o":"tmp89"},{"a":35255,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":35257,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":35259,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":35261,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":35263,"t":"code","b":[165,73],"m":"lda","oa":73,"o":"clip_x2"},{"a":35265,"t":"code","b":[56],"m":"sec"},{"a":35266,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":35268,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":35270,"t":"code","b":[165,74],"m":"lda","oa":74,"o":"zpa_4A"},{"a":35272,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":35274,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":35276,"t":"code","b":[76,121,140],"m":"jmp","oa":35961,"o":"s_8C79"},{"a":35279,"l":"draw_burst","c":"Types 28 and 29's draw routine: a ragged disc (draw_ragged); below size 4 a full-size disc in colour 2 over it; from 4 up a disc smaller by s = size/8 + 1 in colour $DE when the type's colour code ($8FC9) is $D9 (type 29), else $D6, then one smaller again by s in colour 2","t":"code","b":[32,41,138],"m":"jsr","oa":35369,"o":"draw_ragged"},{"a":35282,"t":"code","b":[162,217],"m":"ldx","o":"#$D9"},{"a":35284,"t":"code","b":[236,201,143],"m":"cpx","oa":36809,"o":"colour_code"},{"a":35287,"t":"code","b":[240,4],"m":"beq","oa":35293,"o":"b_89DD"},{"a":35289,"t":"code","b":[162,214],"m":"ldx","o":"#$D6"},{"a":35291,"t":"code","b":[208,2],"m":"bne","oa":35295,"o":"b_89DF"},{"a":35293,"l":"b_89DD","t":"code","b":[162,222],"m":"ldx","x":[35287],"o":"#$DE"},{"a":35295,"l":"b_89DF","t":"code","b":[32,128,143],"m":"jsr","oa":36736,"x":[35291],"o":"set_colour"},{"a":35298,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35300,"t":"code","b":[201,4],"m":"cmp","o":"#$04"},{"a":35302,"t":"code","b":[144,24],"m":"bcc","oa":35328,"o":"b_8A00"},{"a":35304,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35305,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35306,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35307,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":35309,"t":"code","b":[230,148],"m":"inc","oa":148,"o":"tmp94"},{"a":35311,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35313,"t":"code","b":[56],"m":"sec"},{"a":35314,"t":"code","b":[229,148],"m":"sbc","oa":148,"o":"tmp94"},{"a":35316,"t":"code","b":[133,77],"m":"sta","oa":77,"o":"object_size"},{"a":35318,"t":"code","b":[32,52,136],"m":"jsr","oa":34868,"o":"draw_disc"},{"a":35321,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35323,"t":"code","b":[56],"m":"sec"},{"a":35324,"t":"code","b":[229,148],"m":"sbc","oa":148,"o":"tmp94"},{"a":35326,"t":"code","b":[133,77],"m":"sta","oa":77,"o":"object_size"},{"a":35328,"l":"b_8A00","t":"code","b":[162,2],"m":"ldx","x":[35302],"o":"#$02"},{"a":35330,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":35333,"t":"code","b":[76,52,136],"m":"jmp","oa":34868,"o":"draw_disc"},{"a":35336,"l":"draw_annulus","c":"Type 30's draw routine: a disc in the colour code read from $0099, then, from size 4 up, a disc three-quarters its size in colour 0, leaving a ring","t":"code","b":[174,153,0],"m":"ldx","oa":153,"o":"tmp99"},{"a":35339,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":35342,"t":"code","b":[32,52,136],"m":"jsr","oa":34868,"o":"draw_disc"},{"a":35345,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35347,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35348,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35349,"t":"code","b":[240,17],"m":"beq","oa":35368,"o":"r_8A28"},{"a":35351,"t":"code","b":[133,148],"m":"sta","oa":148,"o":"tmp94"},{"a":35353,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35355,"t":"code","b":[56],"m":"sec"},{"a":35356,"t":"code","b":[229,148],"m":"sbc","oa":148,"o":"tmp94"},{"a":35358,"t":"code","b":[133,77],"m":"sta","oa":77,"o":"object_size"},{"a":35360,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":35362,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":35365,"t":"code","b":[76,52,136],"m":"jmp","oa":34868,"o":"draw_disc"},{"a":35368,"l":"r_8A28","t":"code","b":[96],"m":"rts","x":[35349]},{"a":35369,"l":"draw_ragged","c":"Type 11's draw routine (the third missile) and draw_burst's: below size 12 a plain disc; otherwise a disc whose rows are each moved by 0-2 pixels from the 16-entry table at $8B0B, read from a position at $8B0A that moves on each time, so the edge shimmers","t":"code","b":[165,77],"m":"lda","oa":77,"x":[35279],"o":"object_size"},{"a":35371,"t":"code","b":[201,12],"m":"cmp","o":"#$0C"},{"a":35373,"t":"code","b":[176,3],"m":"bcs","oa":35378,"o":"b_8A32"},{"a":35375,"t":"code","b":[76,52,136],"m":"jmp","oa":34868,"o":"draw_disc"},{"a":35378,"l":"b_8A32","t":"code","b":[233,1],"m":"sbc","x":[35373],"o":"#$01"},{"a":35380,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":35382,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35383,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":35385,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":35387,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":35389,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":35391,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":35393,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":35395,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35397,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":35399,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":35401,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35403,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":35405,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":35407,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35409,"t":"code","b":[24],"m":"clc"},{"a":35410,"t":"code","b":[101,134],"m":"adc","oa":134,"o":"tmp86"},{"a":35412,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":35414,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35416,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35418,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":35420,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35422,"t":"code","b":[56],"m":"sec"},{"a":35423,"t":"code","b":[229,134],"m":"sbc","oa":134,"o":"tmp86"},{"a":35425,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":35427,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35429,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":35431,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":35433,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":35435,"t":"code","b":[106],"m":"ror","o":"a"},{"a":35436,"t":"code","b":[176,15],"m":"bcs","oa":35453,"o":"b_8A7D"},{"a":35438,"t":"code","b":[230,137],"m":"inc","oa":137,"o":"tmp89"},{"a":35440,"t":"code","b":[208,2],"m":"bne","oa":35444,"o":"b_8A74"},{"a":35442,"t":"code","b":[230,138],"m":"inc","oa":138,"o":"tmp8A"},{"a":35444,"l":"b_8A74","t":"code","b":[230,131],"m":"inc","oa":131,"x":[35440],"o":"tmp83"},{"a":35446,"t":"code","b":[208,2],"m":"bne","oa":35450,"o":"b_8A7A"},{"a":35448,"t":"code","b":[230,132],"m":"inc","oa":132,"o":"tmp84"},{"a":35450,"l":"b_8A7A","t":"code","b":[76,150,138],"m":"jmp","oa":35478,"x":[35446],"o":"j_8A96"},{"a":35453,"l":"b_8A7D","t":"code","b":[165,84],"m":"lda","oa":84,"x":[35436],"o":"zpa_54"},{"a":35455,"t":"code","b":[208,21],"m":"bne","oa":35478,"o":"j_8A96"},{"a":35457,"t":"code","b":[165,137],"m":"lda","oa":137,"o":"tmp89"},{"a":35459,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":35461,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":35463,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":35465,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":35467,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":35469,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":35471,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":35473,"t":"code","b":[164,83],"m":"ldy","oa":83,"o":"screen_y"},{"a":35475,"t":"code","b":[32,121,140],"m":"jsr","oa":35961,"o":"s_8C79"},{"a":35478,"l":"j_8A96","t":"code","b":[230,135],"m":"inc","oa":135,"x":[35450,35455,35586,35590],"o":"tmp87"},{"a":35480,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":35482,"t":"code","b":[208,2],"m":"bne","oa":35486,"o":"b_8A9E"},{"a":35484,"t":"code","b":[230,130],"m":"inc","oa":130,"o":"tmp82"},{"a":35486,"l":"b_8A9E","t":"code","b":[165,131],"m":"lda","oa":131,"x":[35482],"o":"tmp83"},{"a":35488,"t":"code","b":[208,2],"m":"bne","oa":35492,"o":"b_8AA4"},{"a":35490,"t":"code","b":[198,132],"m":"dec","oa":132,"o":"tmp84"},{"a":35492,"l":"b_8AA4","t":"code","b":[198,131],"m":"dec","oa":131,"x":[35488],"o":"tmp83"},{"a":35494,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":35496,"t":"code","b":[24],"m":"clc"},{"a":35497,"t":"code","b":[101,135],"m":"adc","oa":135,"o":"tmp87"},{"a":35499,"t":"code","b":[48,21],"m":"bmi","oa":35522,"o":"b_8AC2"},{"a":35501,"t":"code","b":[56],"m":"sec"},{"a":35502,"l":"b_8AAE","t":"code","b":[229,134],"m":"sbc","oa":134,"x":[35520],"o":"tmp86"},{"a":35504,"t":"code","b":[198,134],"m":"dec","oa":134,"o":"tmp86"},{"a":35506,"t":"code","b":[166,139],"m":"ldx","oa":139,"o":"tmp8B"},{"a":35508,"t":"code","b":[208,2],"m":"bne","oa":35512,"o":"b_8AB8"},{"a":35510,"t":"code","b":[198,140],"m":"dec","oa":140,"o":"tmp8C"},{"a":35512,"l":"b_8AB8","t":"code","b":[198,139],"m":"dec","oa":139,"x":[35508],"o":"tmp8B"},{"a":35514,"t":"code","b":[230,137],"m":"inc","oa":137,"o":"tmp89"},{"a":35516,"t":"code","b":[208,2],"m":"bne","oa":35520,"o":"b_8AC0"},{"a":35518,"t":"code","b":[230,138],"m":"inc","oa":138,"o":"tmp8A"},{"a":35520,"l":"b_8AC0","t":"code","b":[176,236],"m":"bcs","oa":35502,"x":[35516],"o":"b_8AAE"},{"a":35522,"l":"b_8AC2","t":"code","b":[133,133],"m":"sta","oa":133,"x":[35499],"o":"tmp85"},{"a":35524,"t":"code","b":[238,10,139],"m":"inc","oa":35594,"o":"a_8B0A"},{"a":35527,"t":"code","b":[173,10,139],"m":"lda","oa":35594,"o":"a_8B0A"},{"a":35530,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":35532,"t":"code","b":[170],"m":"tax"},{"a":35533,"t":"code","b":[165,137],"m":"lda","oa":137,"o":"tmp89"},{"a":35535,"t":"code","b":[56],"m":"sec"},{"a":35536,"t":"code","b":[253,11,139],"m":"sbc","oa":35595,"o":"f_8B0B,x"},{"a":35539,"t":"code","b":[133,71],"m":"sta","oa":71,"o":"clip_x1"},{"a":35541,"t":"code","b":[165,138],"m":"lda","oa":138,"o":"tmp8A"},{"a":35543,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":35545,"t":"code","b":[133,72],"m":"sta","oa":72,"o":"zpa_48"},{"a":35547,"t":"code","b":[165,139],"m":"lda","oa":139,"o":"tmp8B"},{"a":35549,"t":"code","b":[24],"m":"clc"},{"a":35550,"t":"code","b":[125,11,139],"m":"adc","oa":35595,"o":"f_8B0B,x"},{"a":35553,"t":"code","b":[133,73],"m":"sta","oa":73,"o":"clip_x2"},{"a":35555,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":35557,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35559,"t":"code","b":[133,74],"m":"sta","oa":74,"o":"zpa_4A"},{"a":35561,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":35563,"t":"code","b":[208,5],"m":"bne","oa":35570,"o":"b_8AF2"},{"a":35565,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":35567,"t":"code","b":[32,121,140],"m":"jsr","oa":35961,"o":"s_8C79"},{"a":35570,"l":"b_8AF2","t":"code","b":[165,132],"m":"lda","oa":132,"x":[35563],"o":"tmp84"},{"a":35572,"t":"code","b":[208,5],"m":"bne","oa":35579,"o":"b_8AFB"},{"a":35574,"t":"code","b":[164,131],"m":"ldy","oa":131,"o":"tmp83"},{"a":35576,"t":"code","b":[32,121,140],"m":"jsr","oa":35961,"o":"s_8C79"},{"a":35579,"l":"b_8AFB","t":"code","b":[165,135],"m":"lda","oa":135,"x":[35572],"o":"tmp87"},{"a":35581,"t":"code","b":[197,136],"m":"cmp","oa":136,"o":"tmp88"},{"a":35583,"t":"code","b":[240,8],"m":"beq","oa":35593,"o":"r_8B09"},{"a":35585,"t":"code","b":[106],"m":"ror","o":"a"},{"a":35586,"t":"code","b":[176,146],"m":"bcs","oa":35478,"o":"j_8A96"},{"a":35588,"t":"code","b":[230,133],"m":"inc","oa":133,"o":"tmp85"},{"a":35590,"t":"code","b":[76,150,138],"m":"jmp","oa":35478,"o":"j_8A96"},{"a":35593,"l":"r_8B09","t":"code","b":[96],"m":"rts","x":[35583]},{"a":35594,"l":"a_8B0A","c":"draw_ragged's position in its table, counted up each row","t":"byte","b":[0],"x":[35524,35527]},{"a":35595,"l":"f_8B0B","c":"draw_ragged's 16 row offsets: 0 1 0 2 1 2 0 1 0 2 1 1 0 2 0 2","t":"byte","b":[0,1,0,2,1,2,0,1],"x":[35536,35550]},{"a":35603,"t":"byte","b":[0,2,1,1,0,2,0,2]},{"a":35611,"l":"draw_sparks","c":"Type 23's draw routine: seven random triangles the size of $4D (spray_triangles with a shift of 1)","t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35613,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":35615,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":35617,"t":"code","b":[76,36,139],"m":"jmp","oa":35620,"o":"spray_triangles"},{"a":35620,"l":"spray_triangles","c":"Draws Y small triangles of size A around the projected point (also from $24E5 for explosions): each has one corner at a random offset within the size and two close to the centre, $A3 (the size shifted right by X + 3) either side, in a random pattern ($8F5B), filled ($8288)","t":"code","b":[132,162],"m":"sty","oa":162,"x":[9445,35617],"o":"model_axisidx"},{"a":35622,"t":"code","b":[133,77],"m":"sta","oa":77,"o":"object_size"},{"a":35624,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35625,"t":"code","b":[133,164],"m":"sta","oa":164,"o":"model_axisvec"},{"a":35627,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":35628,"l":"b_8B2C","t":"code","b":[74],"m":"lsr","x":[35630],"o":"a"},{"a":35629,"t":"code","b":[202],"m":"dex"},{"a":35630,"t":"code","b":[16,252],"m":"bpl","oa":35628,"o":"b_8B2C"},{"a":35632,"t":"code","b":[133,163],"m":"sta","oa":163,"o":"zpa_A3"},{"a":35634,"l":"b_8B32","t":"code","b":[32,58,139],"m":"jsr","oa":35642,"x":[35639],"o":"spray_triangle"},{"a":35637,"t":"code","b":[198,162],"m":"dec","oa":162,"o":"model_axisidx"},{"a":35639,"t":"code","b":[208,249],"m":"bne","oa":35634,"o":"b_8B32"},{"a":35641,"t":"code","b":[96],"m":"rts"},{"a":35642,"l":"spray_triangle","c":"One triangle of spray_triangles: two random offsets ($A298) centred on zero into $9E/$A0, the three corners into $FD00-$FD0B, the near pair set across the longer offset","t":"code","b":[165,77],"m":"lda","oa":77,"x":[35634],"o":"object_size"},{"a":35644,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":35647,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":35649,"t":"code","b":[229,164],"m":"sbc","oa":164,"o":"model_axisvec"},{"a":35651,"t":"code","b":[133,158],"m":"sta","oa":158,"o":"model_polys"},{"a":35653,"t":"code","b":[16,1],"m":"bpl","oa":35656,"o":"b_8B48"},{"a":35655,"t":"code","b":[202],"m":"dex"},{"a":35656,"l":"b_8B48","t":"code","b":[134,159],"m":"stx","oa":159,"x":[35653],"o":"model_axes"},{"a":35658,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"object_size"},{"a":35660,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":35663,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":35665,"t":"code","b":[229,164],"m":"sbc","oa":164,"o":"model_axisvec"},{"a":35667,"t":"code","b":[133,160],"m":"sta","oa":160,"o":"model_reflist"},{"a":35669,"t":"code","b":[16,1],"m":"bpl","oa":35672,"o":"b_8B58"},{"a":35671,"t":"code","b":[202],"m":"dex"},{"a":35672,"l":"b_8B58","t":"code","b":[134,161],"m":"stx","oa":161,"x":[35669],"o":"zpa_A1"},{"a":35674,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35676,"t":"code","b":[24],"m":"clc"},{"a":35677,"t":"code","b":[101,158],"m":"adc","oa":158,"o":"model_polys"},{"a":35679,"t":"code","b":[141,0,253],"m":"sta","oa":64768,"o":"f_FD00"},{"a":35682,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35684,"t":"code","b":[101,159],"m":"adc","oa":159,"o":"model_axes"},{"a":35686,"t":"code","b":[141,1,253],"m":"sta","oa":64769,"o":"a_FD01"},{"a":35689,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35691,"t":"code","b":[24],"m":"clc"},{"a":35692,"t":"code","b":[101,160],"m":"adc","oa":160,"o":"model_reflist"},{"a":35694,"t":"code","b":[141,2,253],"m":"sta","oa":64770,"o":"a_FD02"},{"a":35697,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35699,"t":"code","b":[101,161],"m":"adc","oa":161,"o":"zpa_A1"},{"a":35701,"t":"code","b":[141,3,253],"m":"sta","oa":64771,"o":"a_FD03"},{"a":35704,"t":"code","b":[165,160],"m":"lda","oa":160,"o":"model_reflist"},{"a":35706,"t":"code","b":[197,158],"m":"cmp","oa":158,"o":"model_polys"},{"a":35708,"t":"code","b":[16,53],"m":"bpl","oa":35763,"o":"b_8BB3"},{"a":35710,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35712,"t":"code","b":[141,4,253],"m":"sta","oa":64772,"o":"a_FD04"},{"a":35715,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35717,"t":"code","b":[141,5,253],"m":"sta","oa":64773,"o":"a_FD05"},{"a":35720,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35722,"t":"code","b":[24],"m":"clc"},{"a":35723,"t":"code","b":[101,163],"m":"adc","oa":163,"o":"zpa_A3"},{"a":35725,"t":"code","b":[141,6,253],"m":"sta","oa":64774,"o":"a_FD06"},{"a":35728,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35730,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35732,"t":"code","b":[141,7,253],"m":"sta","oa":64775,"o":"a_FD07"},{"a":35735,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35737,"t":"code","b":[141,8,253],"m":"sta","oa":64776,"o":"a_FD08"},{"a":35740,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35742,"t":"code","b":[141,9,253],"m":"sta","oa":64777,"o":"a_FD09"},{"a":35745,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35747,"t":"code","b":[56],"m":"sec"},{"a":35748,"t":"code","b":[229,163],"m":"sbc","oa":163,"o":"zpa_A3"},{"a":35750,"t":"code","b":[141,10,253],"m":"sta","oa":64778,"o":"a_FD0A"},{"a":35753,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35755,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":35757,"t":"code","b":[141,11,253],"m":"sta","oa":64779,"o":"a_FD0B"},{"a":35760,"t":"code","b":[76,229,139],"m":"jmp","oa":35813,"o":"j_8BE5"},{"a":35763,"l":"b_8BB3","t":"code","b":[165,81],"m":"lda","oa":81,"x":[35708],"o":"screen_x"},{"a":35765,"t":"code","b":[24],"m":"clc"},{"a":35766,"t":"code","b":[101,163],"m":"adc","oa":163,"o":"zpa_A3"},{"a":35768,"t":"code","b":[141,4,253],"m":"sta","oa":64772,"o":"a_FD04"},{"a":35771,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35773,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35775,"t":"code","b":[141,5,253],"m":"sta","oa":64773,"o":"a_FD05"},{"a":35778,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35780,"t":"code","b":[141,6,253],"m":"sta","oa":64774,"o":"a_FD06"},{"a":35783,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35785,"t":"code","b":[141,7,253],"m":"sta","oa":64775,"o":"a_FD07"},{"a":35788,"t":"code","b":[165,81],"m":"lda","oa":81,"o":"screen_x"},{"a":35790,"t":"code","b":[56],"m":"sec"},{"a":35791,"t":"code","b":[229,163],"m":"sbc","oa":163,"o":"zpa_A3"},{"a":35793,"t":"code","b":[141,8,253],"m":"sta","oa":64776,"o":"a_FD08"},{"a":35796,"t":"code","b":[165,82],"m":"lda","oa":82,"o":"zpa_52"},{"a":35798,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":35800,"t":"code","b":[141,9,253],"m":"sta","oa":64777,"o":"a_FD09"},{"a":35803,"t":"code","b":[165,83],"m":"lda","oa":83,"o":"screen_y"},{"a":35805,"t":"code","b":[141,10,253],"m":"sta","oa":64778,"o":"a_FD0A"},{"a":35808,"t":"code","b":[165,84],"m":"lda","oa":84,"o":"zpa_54"},{"a":35810,"t":"code","b":[141,11,253],"m":"sta","oa":64779,"o":"a_FD0B"},{"a":35813,"l":"j_8BE5","t":"code","b":[32,91,143],"m":"jsr","oa":36699,"x":[35760],"o":"spark_pattern"},{"a":35816,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":35818,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":35820,"t":"code","b":[76,136,130],"m":"jmp","oa":33416,"o":"fill_polygon"},{"a":35823,"l":"draw_flicker","c":"Types 24 and 27's draw routine: one triangle with its three corners at random offsets from the projected point, up to the size, filled ($8288); a new shape each frame","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":35825,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":35827,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":35829,"t":"code","b":[133,138],"m":"sta","oa":138,"o":"tmp8A"},{"a":35831,"l":"b_8BF7","t":"code","b":[165,77],"m":"lda","oa":77,"x":[35866],"o":"object_size"},{"a":35833,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":35836,"t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":35838,"t":"code","b":[165,140],"m":"lda","oa":140,"o":"tmp8C"},{"a":35840,"t":"code","b":[73,2],"m":"eor","o":"#$02"},{"a":35842,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":35844,"t":"code","b":[170],"m":"tax"},{"a":35845,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":35847,"t":"code","b":[181,81],"m":"lda","oa":81,"o":"screen_x,x"},{"a":35849,"t":"code","b":[24],"m":"clc"},{"a":35850,"t":"code","b":[101,139],"m":"adc","oa":139,"o":"tmp8B"},{"a":35852,"t":"code","b":[153,0,253],"m":"sta","oa":64768,"o":"f_FD00,y"},{"a":35855,"t":"code","b":[181,82],"m":"lda","oa":82,"o":"zpa_52,x"},{"a":35857,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":35859,"t":"code","b":[153,1,253],"m":"sta","oa":64769,"o":"a_FD01,y"},{"a":35862,"t":"code","b":[198,138],"m":"dec","oa":138,"o":"tmp8A"},{"a":35864,"t":"code","b":[198,138],"m":"dec","oa":138,"o":"tmp8A"},{"a":35866,"t":"code","b":[16,219],"m":"bpl","oa":35831,"o":"b_8BF7"},{"a":35868,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":35870,"t":"code","b":[133,85],"m":"sta","oa":85,"o":"clip_count"},{"a":35872,"t":"code","b":[76,136,130],"m":"jmp","oa":33416,"o":"fill_polygon"},{"a":35875,"l":"draw_bar","c":"Draws a bar 8 rows high at row Y from x X to X + A, its first four rows into one display buffer and the next four into the other ($8EEB flips between them), for the cockpit's gauges","t":"code","b":[134,69],"m":"stx","oa":69,"x":[12835,12854,12919,12949],"o":"span_left"},{"a":35877,"t":"code","b":[132,75],"m":"sty","oa":75,"o":"clip_row"},{"a":35879,"t":"code","b":[24],"m":"clc"},{"a":35880,"t":"code","b":[101,69],"m":"adc","oa":69,"o":"span_left"},{"a":35882,"t":"code","b":[133,70],"m":"sta","oa":70,"o":"zpa_46"},{"a":35884,"t":"code","b":[170],"m":"tax"},{"a":35885,"t":"code","b":[32,235,142],"m":"jsr","oa":36587,"o":"flip_draw_buffer"},{"a":35888,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35891,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35893,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":35895,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35897,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35900,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35902,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":35904,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35906,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35909,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35911,"t":"code","b":[230,75],"m":"inc","oa":75,"o":"clip_row"},{"a":35913,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35915,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35918,"t":"code","b":[32,235,142],"m":"jsr","oa":36587,"o":"flip_draw_buffer"},{"a":35921,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35923,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35925,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35928,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35930,"t":"code","b":[198,75],"m":"dec","oa":75,"o":"clip_row"},{"a":35932,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35934,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35937,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35939,"t":"code","b":[198,75],"m":"dec","oa":75,"o":"clip_row"},{"a":35941,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35943,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":35946,"t":"code","b":[166,70],"m":"ldx","oa":70,"o":"zpa_46"},{"a":35948,"t":"code","b":[198,75],"m":"dec","oa":75,"o":"clip_row"},{"a":35950,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35952,"t":"code","b":[76,156,140],"m":"jmp","oa":35996,"o":"span"},{"a":35955,"l":"span_clipped","c":"Draws the span from x $47/$48 to $49/$4A on row $4B/$4C, clipped to the 3D view: nothing for a row of 103 or more or a span off either side, the ends held to 0 and 251","t":"code","b":[165,76],"m":"lda","oa":76,"x":[31364,31375,31386,31397,31408,31419,31430,31441,31452,31476,31487,31498,31509,31520,31531,31542,31553,31564,31597,31620,31643,31666,31699,31724,31749,31774,34894,34968,35017,35213,35224],"o":"zpa_4C"},{"a":35957,"t":"code","b":[208,32],"m":"bne","oa":35991,"o":"r_8C97"},{"a":35959,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":35961,"l":"s_8C79","c":"span_clipped's entry with the row already in Y","t":"code","b":[192,103],"m":"cpy","x":[35026,35250,35276,35475,35567,35576],"o":"#$67"},{"a":35962,"t":"note","l":"a_8C7A","c":"The window's height plus one (set_window), the first row span_clipped refuses","note":"inside the item at $8C79","x":[36537]},{"a":35963,"t":"code","b":[176,26],"m":"bcs","oa":35991,"o":"r_8C97"},{"a":35965,"t":"code","b":[165,74],"m":"lda","oa":74,"o":"zpa_4A"},{"a":35967,"t":"code","b":[48,22],"m":"bmi","oa":35991,"o":"r_8C97"},{"a":35969,"t":"code","b":[208,6],"m":"bne","oa":35977,"o":"b_8C89"},{"a":35971,"t":"code","b":[166,73],"m":"ldx","oa":73,"o":"clip_x2"},{"a":35973,"t":"code","b":[224,252],"m":"cpx","o":"#$FC"},{"a":35974,"t":"note","l":"a_8C86","c":"The window's width plus one, the first x span_clipped holds a right end back from","note":"inside the item at $8C85","x":[36552]},{"a":35975,"t":"code","b":[144,2],"m":"bcc","oa":35979,"o":"b_8C8B"},{"a":35977,"l":"b_8C89","t":"code","b":[162,251],"m":"ldx","x":[35969],"o":"#$FB"},{"a":35978,"t":"note","l":"a_8C8A","c":"The window's last x (its width less one), where span_clipped puts a right end that is past it","note":"inside the item at $8C89","x":[36546]},{"a":35979,"l":"b_8C8B","t":"code","b":[165,72],"m":"lda","oa":72,"x":[35975],"o":"zpa_48"},{"a":35981,"t":"code","b":[48,9],"m":"bmi","oa":35992,"o":"b_8C98"},{"a":35983,"t":"code","b":[208,6],"m":"bne","oa":35991,"o":"r_8C97"},{"a":35985,"t":"code","b":[165,71],"m":"lda","oa":71,"o":"clip_x1"},{"a":35987,"t":"code","b":[201,252],"m":"cmp","o":"#$FC"},{"a":35988,"t":"note","l":"a_8C94","c":"The window's width plus one, the first x at which span_clipped drops a span off the right side","note":"inside the item at $8C93","x":[36555]},{"a":35989,"t":"code","b":[144,3],"m":"bcc","oa":35994,"o":"b_8C9A"},{"a":35991,"l":"r_8C97","t":"code","b":[96],"m":"rts","x":[35957,35963,35967,35983]},{"a":35992,"l":"b_8C98","t":"code","b":[169,0],"m":"lda","x":[35981],"o":"#$00"},{"a":35994,"l":"b_8C9A","t":"code","b":[133,69],"m":"sta","oa":69,"x":[35989],"o":"span_left"},{"a":35996,"l":"span","c":"Draws one row of a fill from x $45 to X on window row Y: the bitmap address from EXTERN's row tables (their operands made window-relative by set_window), its high byte EORed with $3A so it lands in the buffer being drawn; the screen matrix colours of each cell it covers are masked with $17 and set from $18. The two patterns $3D and $3E alternate on odd and even rows (offsets patched from $8E11-$8E16). One byte, partial bytes at the ends, and whole bytes in between with an unrolled store every 8 bytes","t":"code","b":[185,73,235],"m":"lda","oa":60233,"x":[34163,35888,35897,35906,35915,35925,35934,35943,35952,36907],"o":"row_addr_lo_view,y"},{"a":35997,"t":"note","l":"a_8C9D","c":"Low byte of span's row address table: EXTERN's $EB00 plus the window's bottom row","note":"inside the item at $8C9C","x":[36386]},{"a":35998,"t":"note","l":"a_8C9E","c":"High byte of span's row address table, with the carry from adding the bottom row","note":"inside the item at $8C9C","x":[36393]},{"a":35999,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":36001,"t":"code","b":[185,73,236],"m":"lda","oa":60489,"o":"row_addr_hi_view,y"},{"a":36002,"t":"note","l":"a_8CA2","c":"Low byte of span's row address high-byte table: $EC00 plus the window's bottom row","note":"inside the item at $8CA1","x":[36401]},{"a":36003,"t":"note","l":"a_8CA3","c":"High byte of the table of row address high bytes","note":"inside the item at $8CA1","x":[36408]},{"a":36004,"t":"code","b":[69,58],"m":"eor","oa":58,"o":"draw_buffer"},{"a":36006,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":36008,"t":"code","b":[132,128],"m":"sty","oa":128,"o":"tmp80"},{"a":36010,"t":"code","b":[185,17,237],"m":"lda","oa":60689,"o":"div8_view_row,y"},{"a":36011,"t":"note","l":"a_8CAB","c":"Low byte of span's text-row table: $ECC8 (n divided by 8) plus the window's bottom row","note":"inside the item at $8CAA","x":[36416]},{"a":36012,"t":"note","l":"a_8CAC","c":"High byte of span's text-row table","note":"inside the item at $8CAA","x":[36423]},{"a":36013,"t":"code","b":[168],"m":"tay"},{"a":36014,"t":"code","b":[185,200,235],"m":"lda","oa":60360,"o":"screen_row_lo,y"},{"a":36017,"t":"code","b":[133,25],"m":"sta","oa":25,"o":"cell_ptr"},{"a":36019,"t":"code","b":[185,225,235],"m":"lda","oa":60385,"o":"screen_row_hi,y"},{"a":36022,"t":"code","b":[69,58],"m":"eor","oa":58,"o":"draw_buffer"},{"a":36024,"t":"code","b":[133,26],"m":"sta","oa":26,"o":"zpa_1A"},{"a":36026,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":36028,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":36030,"t":"code","b":[168],"m":"tay"},{"a":36031,"t":"code","b":[185,17,142],"m":"lda","oa":36369,"o":"f_8E11,y"},{"a":36034,"t":"code","b":[141,20,141],"m":"sta","oa":36116,"o":"a_8D14"},{"a":36037,"t":"code","b":[185,19,142],"m":"lda","oa":36371,"o":"f_8E13,y"},{"a":36040,"t":"code","b":[141,90,141],"m":"sta","oa":36186,"o":"a_8D5A"},{"a":36043,"t":"code","b":[185,21,142],"m":"lda","oa":36373,"o":"f_8E15,y"},{"a":36046,"t":"code","b":[141,252,141],"m":"sta","oa":36348,"o":"a_8DFC"},{"a":36049,"t":"code","b":[164,69],"m":"ldy","oa":69,"o":"span_left"},{"a":36051,"t":"code","b":[185,42,238],"m":"lda","oa":60970,"o":"x_byte_offsets_view,y"},{"a":36052,"t":"note","l":"a_8CD4","c":"Low byte of the x byte offset table ($EE08) plus the window's left x, for the bitmap's low byte","note":"inside the item at $8CD3","x":[36436]},{"a":36053,"t":"note","l":"a_8CD5","c":"High byte of the x byte offset table plus the window's left x","note":"inside the item at $8CD3","x":[36439]},{"a":36054,"t":"code","b":[41,248],"m":"and","o":"#$F8"},{"a":36056,"t":"code","b":[24],"m":"clc"},{"a":36057,"t":"code","b":[101,56],"m":"adc","oa":56,"o":"bitmap_ptr"},{"a":36059,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":36061,"t":"code","b":[185,42,238],"m":"lda","oa":60970,"o":"x_byte_offsets_view,y"},{"a":36062,"t":"note","l":"a_8CDE","c":"Low byte of the x byte offset table again, its second read for the bitmap's high byte","note":"inside the item at $8CDD","x":[36442]},{"a":36063,"t":"note","l":"a_8CDF","c":"High byte of the second read of the x byte offset table","note":"inside the item at $8CDD","x":[36445]},{"a":36064,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":36066,"t":"code","b":[101,57],"m":"adc","oa":57,"o":"zpa_39"},{"a":36068,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":36070,"t":"code","b":[185,234,236],"m":"lda","oa":60650,"o":"div8_view_x,y"},{"a":36071,"t":"note","l":"a_8CE7","c":"Low byte of the column table ($ECC8, x divided by 8) plus the window's left x, for the span's first screen cell","note":"inside the item at $8CE6","x":[36458]},{"a":36072,"t":"note","l":"a_8CE8","c":"High byte of the column table read for the first screen cell","note":"inside the item at $8CE6","x":[36461]},{"a":36073,"t":"code","b":[24],"m":"clc"},{"a":36074,"t":"code","b":[101,25],"m":"adc","oa":25,"o":"cell_ptr"},{"a":36076,"t":"code","b":[133,25],"m":"sta","oa":25,"o":"cell_ptr"},{"a":36078,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36080,"t":"code","b":[101,26],"m":"adc","oa":26,"o":"zpa_1A"},{"a":36082,"t":"code","b":[133,26],"m":"sta","oa":26,"o":"zpa_1A"},{"a":36084,"t":"code","b":[165,24],"m":"lda","oa":24,"o":"matrix_value"},{"a":36086,"t":"code","b":[240,8],"m":"beq","oa":36096,"o":"b_8D00"},{"a":36088,"t":"code","b":[138],"m":"txa"},{"a":36089,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":36091,"t":"code","b":[170],"m":"tax"},{"a":36092,"t":"code","b":[152],"m":"tya"},{"a":36093,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":36095,"t":"code","b":[168],"m":"tay"},{"a":36096,"l":"b_8D00","t":"code","b":[189,234,236],"m":"lda","oa":60650,"x":[36086],"o":"div8_view_x,x"},{"a":36097,"t":"note","l":"a_8D01","c":"Low byte of the column table read for the span's right end","note":"inside the item at $8D00","x":[36464]},{"a":36098,"t":"note","l":"a_8D02","c":"High byte of the column table read for the right end","note":"inside the item at $8D00","x":[36467]},{"a":36099,"t":"code","b":[56],"m":"sec"},{"a":36100,"t":"code","b":[249,234,236],"m":"sbc","oa":60650,"o":"div8_view_x,y"},{"a":36101,"t":"note","l":"a_8D05","c":"Low byte of the column table read subtracted for the left end, giving the cells the span covers","note":"inside the item at $8D04","x":[36470]},{"a":36102,"t":"note","l":"a_8D06","c":"High byte of the column table read for the left end","note":"inside the item at $8D04","x":[36473]},{"a":36103,"t":"code","b":[208,50],"m":"bne","oa":36155,"o":"b_8D3B"},{"a":36105,"t":"code","b":[189,170,240],"m":"lda","oa":61610,"o":"right_masks_view,x"},{"a":36106,"t":"note","l":"a_8D0A","c":"Low byte of the right mask table ($F088) plus the window's left x, for a span inside one byte","note":"inside the item at $8D09","x":[36486]},{"a":36107,"t":"note","l":"a_8D0B","c":"High byte of the right mask table read for a one-byte span","note":"inside the item at $8D09","x":[36489]},{"a":36108,"t":"code","b":[57,106,239],"m":"and","oa":61290,"o":"left_masks_view,y"},{"a":36109,"t":"note","l":"a_8D0D","c":"Low byte of the left mask table ($EF48) plus the window's left x, for a one-byte span","note":"inside the item at $8D0C","x":[36514]},{"a":36110,"t":"note","l":"a_8D0E","c":"High byte of the left mask table read for a one-byte span","note":"inside the item at $8D0C","x":[36517]},{"a":36111,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":36113,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":36115,"t":"code","b":[240,19],"m":"beq","oa":36136,"o":"$8D28"},{"a":36116,"t":"note","l":"a_8D14","c":"The branch offset span patches by row parity (from $8E11) to use $3D or $3E for a span inside one byte","note":"inside the item at $8D13","x":[36034]},{"a":36117,"l":"b_8D15","t":"code","b":[177,25],"m":"lda","oa":25,"o":"(cell_ptr),y"},{"a":36119,"t":"code","b":[37,23],"m":"and","oa":23,"o":"matrix_mask"},{"a":36121,"t":"code","b":[5,24],"m":"ora","oa":24,"o":"matrix_value"},{"a":36123,"t":"code","b":[145,25],"m":"sta","oa":25,"o":"(cell_ptr),y"},{"a":36125,"t":"code","b":[177,56],"m":"lda","oa":56,"o":"(bitmap_ptr),y"},{"a":36127,"t":"code","b":[69,61],"m":"eor","oa":61,"o":"pattern_even"},{"a":36129,"t":"code","b":[37,128],"m":"and","oa":128,"o":"tmp80"},{"a":36131,"t":"code","b":[81,56],"m":"eor","oa":56,"o":"(bitmap_ptr),y"},{"a":36133,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36135,"t":"code","b":[96],"m":"rts"},{"a":36136,"c":"span's single-byte case with the odd-row pattern $3E","t":"code","b":[177,25],"m":"lda","oa":25,"x":[36115],"o":"(cell_ptr),y"},{"a":36138,"t":"code","b":[37,23],"m":"and","oa":23,"o":"matrix_mask"},{"a":36140,"t":"code","b":[5,24],"m":"ora","oa":24,"o":"matrix_value"},{"a":36142,"t":"code","b":[145,25],"m":"sta","oa":25,"o":"(cell_ptr),y"},{"a":36144,"t":"code","b":[177,56],"m":"lda","oa":56,"o":"(bitmap_ptr),y"},{"a":36146,"t":"code","b":[69,62],"m":"eor","oa":62,"o":"pattern_odd"},{"a":36148,"t":"code","b":[37,128],"m":"and","oa":128,"o":"tmp80"},{"a":36150,"t":"code","b":[81,56],"m":"eor","oa":56,"o":"(bitmap_ptr),y"},{"a":36152,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36154,"t":"code","b":[96],"m":"rts"},{"a":36155,"l":"b_8D3B","t":"code","b":[133,128],"m":"sta","oa":128,"x":[36103],"o":"tmp80"},{"a":36157,"t":"code","b":[168],"m":"tay"},{"a":36158,"l":"b_8D3E","t":"code","b":[177,25],"m":"lda","oa":25,"x":[36167],"o":"(cell_ptr),y"},{"a":36160,"t":"code","b":[37,23],"m":"and","oa":23,"o":"matrix_mask"},{"a":36162,"t":"code","b":[5,24],"m":"ora","oa":24,"o":"matrix_value"},{"a":36164,"t":"code","b":[145,25],"m":"sta","oa":25,"o":"(cell_ptr),y"},{"a":36166,"t":"code","b":[136],"m":"dey"},{"a":36167,"t":"code","b":[16,245],"m":"bpl","oa":36158,"o":"b_8D3E"},{"a":36169,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":36171,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36172,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36173,"t":"code","b":[10],"m":"asl","o":"a"},{"a":36174,"t":"code","b":[168],"m":"tay"},{"a":36175,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36176,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":36178,"t":"code","b":[105,125],"m":"adc","o":"#$7D"},{"a":36180,"t":"code","b":[141,116,141],"m":"sta","oa":36212,"o":"a_8D74"},{"a":36183,"t":"code","b":[177,56],"m":"lda","oa":56,"o":"(bitmap_ptr),y"},{"a":36185,"t":"code","b":[176,13],"m":"bcs","oa":36200,"o":"b_8D68"},{"a":36186,"t":"note","l":"a_8D5A","c":"The branch offset span patches (from $8E13) for the left partial byte's pattern","note":"inside the item at $8D59","x":[36040]},{"a":36187,"t":"code","b":[69,61],"m":"eor","oa":61,"o":"pattern_even"},{"a":36189,"t":"code","b":[61,170,240],"m":"and","oa":61610,"o":"right_masks_view,x"},{"a":36190,"t":"note","l":"a_8D5E","c":"Low byte of the right mask table read for the right end's partial byte, even rows","note":"inside the item at $8D5D","x":[36492]},{"a":36191,"t":"note","l":"a_8D5F","c":"High byte of the right mask table read for the right end, even rows","note":"inside the item at $8D5D","x":[36495]},{"a":36192,"t":"code","b":[81,56],"m":"eor","oa":56,"o":"(bitmap_ptr),y"},{"a":36194,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36196,"t":"code","b":[165,61],"m":"lda","oa":61,"o":"pattern_even"},{"a":36198,"t":"code","b":[176,11],"m":"bcs","oa":36211,"o":"b_8D73"},{"a":36200,"l":"b_8D68","t":"code","b":[69,62],"m":"eor","oa":62,"x":[36185],"o":"pattern_odd"},{"a":36202,"t":"code","b":[61,170,240],"m":"and","oa":61610,"o":"right_masks_view,x"},{"a":36203,"t":"note","l":"a_8D6B","c":"Low byte of the right mask table read for the right end's partial byte, odd rows","note":"inside the item at $8D6A","x":[36498]},{"a":36204,"t":"note","l":"a_8D6C","c":"High byte of the right mask table read for the right end, odd rows","note":"inside the item at $8D6A","x":[36501]},{"a":36205,"t":"code","b":[81,56],"m":"eor","oa":56,"o":"(bitmap_ptr),y"},{"a":36207,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36209,"t":"code","b":[165,62],"m":"lda","oa":62,"o":"pattern_odd"},{"a":36211,"l":"b_8D73","t":"code","b":[176,92],"m":"bcs","oa":36305,"x":[36198],"o":"$8DD1"},{"a":36212,"t":"note","l":"a_8D74","c":"The branch offset span patches to enter the unrolled stores at the right place for the span's length","note":"inside the item at $8D73","x":[36180]},{"a":36213,"t":"code","b":[160,240],"m":"ldy","o":"#$F0"},{"a":36215,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36217,"t":"code","b":[160,232],"m":"ldy","o":"#$E8"},{"a":36219,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36221,"t":"code","b":[160,224],"m":"ldy","o":"#$E0"},{"a":36223,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36225,"t":"code","b":[160,216],"m":"ldy","o":"#$D8"},{"a":36227,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36229,"t":"code","b":[160,208],"m":"ldy","o":"#$D0"},{"a":36231,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36233,"t":"code","b":[160,200],"m":"ldy","o":"#$C8"},{"a":36235,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36237,"t":"code","b":[160,192],"m":"ldy","o":"#$C0"},{"a":36239,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36241,"t":"code","b":[160,184],"m":"ldy","o":"#$B8"},{"a":36243,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36245,"t":"code","b":[160,176],"m":"ldy","o":"#$B0"},{"a":36247,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36249,"t":"code","b":[160,168],"m":"ldy","o":"#$A8"},{"a":36251,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36253,"t":"code","b":[160,160],"m":"ldy","o":"#$A0"},{"a":36255,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36257,"t":"code","b":[160,152],"m":"ldy","o":"#$98"},{"a":36259,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36261,"t":"code","b":[160,144],"m":"ldy","o":"#$90"},{"a":36263,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36265,"t":"code","b":[160,136],"m":"ldy","o":"#$88"},{"a":36267,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36269,"t":"code","b":[160,128],"m":"ldy","o":"#$80"},{"a":36271,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36273,"t":"code","b":[160,120],"m":"ldy","o":"#$78"},{"a":36275,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36277,"t":"code","b":[160,112],"m":"ldy","o":"#$70"},{"a":36279,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36281,"t":"code","b":[160,104],"m":"ldy","o":"#$68"},{"a":36283,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36285,"t":"code","b":[160,96],"m":"ldy","o":"#$60"},{"a":36287,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36289,"t":"code","b":[160,88],"m":"ldy","o":"#$58"},{"a":36291,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36293,"t":"code","b":[160,80],"m":"ldy","o":"#$50"},{"a":36295,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36297,"t":"code","b":[160,72],"m":"ldy","o":"#$48"},{"a":36299,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36301,"t":"code","b":[160,64],"m":"ldy","o":"#$40"},{"a":36303,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36305,"t":"code","b":[160,56],"m":"ldy","x":[36211],"o":"#$38"},{"a":36307,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36309,"t":"code","b":[160,48],"m":"ldy","o":"#$30"},{"a":36311,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36313,"t":"code","b":[160,40],"m":"ldy","o":"#$28"},{"a":36315,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36317,"t":"code","b":[160,32],"m":"ldy","o":"#$20"},{"a":36319,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36321,"l":"b_8DE1","t":"code","b":[160,24],"m":"ldy","o":"#$18"},{"a":36323,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36325,"t":"code","b":[160,16],"m":"ldy","o":"#$10"},{"a":36327,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36329,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":36331,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36333,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":36335,"t":"code","b":[166,69],"m":"ldx","oa":69,"o":"span_left"},{"a":36337,"t":"code","b":[165,24],"m":"lda","oa":24,"o":"matrix_value"},{"a":36339,"t":"code","b":[240,4],"m":"beq","oa":36345,"o":"b_8DF9"},{"a":36341,"t":"code","b":[138],"m":"txa"},{"a":36342,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":36344,"t":"code","b":[170],"m":"tax"},{"a":36345,"l":"b_8DF9","t":"code","b":[177,56],"m":"lda","oa":56,"x":[36339],"o":"(bitmap_ptr),y"},{"a":36347,"t":"code","b":[176,10],"m":"bcs","oa":36359,"o":"b_8E07"},{"a":36348,"t":"note","l":"a_8DFC","c":"The branch offset span patches (from $8E15) for the right partial byte's pattern","note":"inside the item at $8DFB","x":[36046]},{"a":36349,"t":"code","b":[69,61],"m":"eor","oa":61,"o":"pattern_even"},{"a":36351,"t":"code","b":[61,106,239],"m":"and","oa":61290,"o":"left_masks_view,x"},{"a":36352,"t":"note","l":"a_8E00","c":"Low byte of the left mask table read for the left end's partial byte, even rows","note":"inside the item at $8DFF","x":[36520]},{"a":36353,"t":"note","l":"a_8E01","c":"High byte of the left mask table read for the left end, even rows","note":"inside the item at $8DFF","x":[36523]},{"a":36354,"t":"code","b":[81,56],"m":"eor","oa":56,"o":"(bitmap_ptr),y"},{"a":36356,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36358,"t":"code","b":[96],"m":"rts"},{"a":36359,"l":"b_8E07","t":"code","b":[69,62],"m":"eor","oa":62,"x":[36347],"o":"pattern_odd"},{"a":36361,"t":"code","b":[61,106,239],"m":"and","oa":61290,"o":"left_masks_view,x"},{"a":36362,"t":"note","l":"a_8E0A","c":"Low byte of the left mask table read for the left end's partial byte, odd rows","note":"inside the item at $8E09","x":[36526]},{"a":36363,"t":"note","l":"a_8E0B","c":"High byte of the left mask table read for the left end, odd rows","note":"inside the item at $8E09","x":[36529]},{"a":36364,"t":"code","b":[81,56],"m":"eor","oa":56,"o":"(bitmap_ptr),y"},{"a":36366,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":36368,"t":"code","b":[96],"m":"rts"},{"a":36369,"l":"f_8E11","c":"span's branch offsets by row parity for its three patterned writes, at $8E11, $8E13 and $8E15: 0 for even rows ($3D), the jump to the $3E version for odd rows","t":"byte","b":[0,19],"x":[36031]},{"a":36371,"l":"f_8E13","c":"The branch offsets for the left partial byte, even and odd rows","t":"byte","b":[0,13],"x":[36037]},{"a":36373,"l":"f_8E15","c":"The branch offsets for the right partial byte, even and odd rows","t":"byte","b":[0,10],"x":[36043]},{"a":36375,"l":"set_window","c":"Sets the drawing window: Y its bottom row, A/X its left x, $41/$42 its width and height. The left edge and bottom are added into the operands of span's table reads ($8C9D-$8E0B) so callers work in window coordinates; $43/$44 = width and height plus one, $56/$57 = half of each, the centre","t":"code","b":[132,130],"m":"sty","oa":130,"x":[12138,13607,34828,34846,34864],"o":"tmp82"},{"a":36377,"t":"code","b":[134,128],"m":"stx","oa":128,"o":"tmp80"},{"a":36379,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":36381,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36383,"t":"code","b":[24],"m":"clc"},{"a":36384,"t":"code","b":[101,130],"m":"adc","oa":130,"o":"tmp82"},{"a":36386,"t":"code","b":[141,157,140],"m":"sta","oa":35997,"o":"a_8C9D"},{"a":36389,"t":"code","b":[169,235],"m":"lda","o":"#$EB"},{"a":36391,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":36393,"t":"code","b":[141,158,140],"m":"sta","oa":35998,"o":"a_8C9E"},{"a":36396,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36398,"t":"code","b":[24],"m":"clc"},{"a":36399,"t":"code","b":[101,130],"m":"adc","oa":130,"o":"tmp82"},{"a":36401,"t":"code","b":[141,162,140],"m":"sta","oa":36002,"o":"a_8CA2"},{"a":36404,"t":"code","b":[169,236],"m":"lda","o":"#$EC"},{"a":36406,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":36408,"t":"code","b":[141,163,140],"m":"sta","oa":36003,"o":"a_8CA3"},{"a":36411,"t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":36413,"t":"code","b":[24],"m":"clc"},{"a":36414,"t":"code","b":[101,130],"m":"adc","oa":130,"o":"tmp82"},{"a":36416,"t":"code","b":[141,171,140],"m":"sta","oa":36011,"o":"a_8CAB"},{"a":36419,"t":"code","b":[169,236],"m":"lda","o":"#$EC"},{"a":36421,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":36423,"t":"code","b":[141,172,140],"m":"sta","oa":36012,"o":"a_8CAC"},{"a":36426,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":36428,"t":"code","b":[24],"m":"clc"},{"a":36429,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":36431,"t":"code","b":[170],"m":"tax"},{"a":36432,"t":"code","b":[169,238],"m":"lda","o":"#$EE"},{"a":36434,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":36436,"t":"code","b":[142,212,140],"m":"stx","oa":36052,"o":"a_8CD4"},{"a":36439,"t":"code","b":[141,213,140],"m":"sta","oa":36053,"o":"a_8CD5"},{"a":36442,"t":"code","b":[142,222,140],"m":"stx","oa":36062,"o":"a_8CDE"},{"a":36445,"t":"code","b":[141,223,140],"m":"sta","oa":36063,"o":"a_8CDF"},{"a":36448,"t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":36450,"t":"code","b":[24],"m":"clc"},{"a":36451,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":36453,"t":"code","b":[170],"m":"tax"},{"a":36454,"t":"code","b":[169,236],"m":"lda","o":"#$EC"},{"a":36456,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":36458,"t":"code","b":[142,231,140],"m":"stx","oa":36071,"o":"a_8CE7"},{"a":36461,"t":"code","b":[141,232,140],"m":"sta","oa":36072,"o":"a_8CE8"},{"a":36464,"t":"code","b":[142,1,141],"m":"stx","oa":36097,"o":"a_8D01"},{"a":36467,"t":"code","b":[141,2,141],"m":"sta","oa":36098,"o":"a_8D02"},{"a":36470,"t":"code","b":[142,5,141],"m":"stx","oa":36101,"o":"a_8D05"},{"a":36473,"t":"code","b":[141,6,141],"m":"sta","oa":36102,"o":"a_8D06"},{"a":36476,"t":"code","b":[169,136],"m":"lda","o":"#$88"},{"a":36478,"t":"code","b":[24],"m":"clc"},{"a":36479,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":36481,"t":"code","b":[170],"m":"tax"},{"a":36482,"t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":36484,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":36486,"t":"code","b":[142,10,141],"m":"stx","oa":36106,"o":"a_8D0A"},{"a":36489,"t":"code","b":[141,11,141],"m":"sta","oa":36107,"o":"a_8D0B"},{"a":36492,"t":"code","b":[142,94,141],"m":"stx","oa":36190,"o":"a_8D5E"},{"a":36495,"t":"code","b":[141,95,141],"m":"sta","oa":36191,"o":"a_8D5F"},{"a":36498,"t":"code","b":[142,107,141],"m":"stx","oa":36203,"o":"a_8D6B"},{"a":36501,"t":"code","b":[141,108,141],"m":"sta","oa":36204,"o":"a_8D6C"},{"a":36504,"t":"code","b":[169,72],"m":"lda","o":"#$48"},{"a":36506,"t":"code","b":[24],"m":"clc"},{"a":36507,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":36509,"t":"code","b":[170],"m":"tax"},{"a":36510,"t":"code","b":[169,239],"m":"lda","o":"#$EF"},{"a":36512,"t":"code","b":[101,129],"m":"adc","oa":129,"o":"tmp81"},{"a":36514,"t":"code","b":[142,13,141],"m":"stx","oa":36109,"o":"a_8D0D"},{"a":36517,"t":"code","b":[141,14,141],"m":"sta","oa":36110,"o":"a_8D0E"},{"a":36520,"t":"code","b":[142,0,142],"m":"stx","oa":36352,"o":"a_8E00"},{"a":36523,"t":"code","b":[141,1,142],"m":"sta","oa":36353,"o":"a_8E01"},{"a":36526,"t":"code","b":[142,10,142],"m":"stx","oa":36362,"o":"a_8E0A"},{"a":36529,"t":"code","b":[141,11,142],"m":"sta","oa":36363,"o":"a_8E0B"},{"a":36532,"t":"code","b":[164,66],"m":"ldy","oa":66,"o":"window_height"},{"a":36534,"t":"code","b":[200],"m":"iny"},{"a":36535,"t":"code","b":[132,68],"m":"sty","oa":68,"o":"window_height1"},{"a":36537,"t":"code","b":[140,122,140],"m":"sty","oa":35962,"o":"a_8C7A"},{"a":36540,"t":"code","b":[152],"m":"tya"},{"a":36541,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36542,"t":"code","b":[133,87],"m":"sta","oa":87,"o":"window_cy"},{"a":36544,"t":"code","b":[166,65],"m":"ldx","oa":65,"o":"window_width"},{"a":36546,"t":"code","b":[142,138,140],"m":"stx","oa":35978,"o":"a_8C8A"},{"a":36549,"t":"code","b":[232],"m":"inx"},{"a":36550,"t":"code","b":[134,67],"m":"stx","oa":67,"o":"window_width1"},{"a":36552,"t":"code","b":[142,134,140],"m":"stx","oa":35974,"o":"a_8C86"},{"a":36555,"t":"code","b":[142,148,140],"m":"stx","oa":35988,"o":"a_8C94"},{"a":36558,"t":"code","b":[138],"m":"txa"},{"a":36559,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36560,"t":"code","b":[133,86],"m":"sta","oa":86,"o":"window_cx"},{"a":36562,"t":"code","b":[96],"m":"rts"},{"a":36563,"l":"flip_buffers","c":"The end of a 3D frame: colour 1 is set ($8F80), whose clear byte $3B the view clears use; then the buffer just drawn is shown and the other cleared for the next frame: with $3A set, bank 1 is shown ($8F1A) and the $C000 view cleared ($B981); else bank 3 ($8EF6) and the $4000 view cleared ($BAF2); then $3A is flipped","t":"code","b":[162,1],"m":"ldx","x":[3612,29169],"o":"#$01"},{"a":36565,"t":"code","b":[32,128,143],"m":"jsr","oa":36736,"o":"set_colour"},{"a":36568,"t":"code","b":[165,58],"m":"lda","oa":58,"o":"draw_buffer"},{"a":36570,"t":"code","b":[240,9],"m":"beq","oa":36581,"o":"b_8EE5"},{"a":36572,"t":"code","b":[32,26,143],"m":"jsr","oa":36634,"o":"show_bank1"},{"a":36575,"t":"code","b":[32,129,185],"m":"jsr","oa":47489,"o":"$B981"},{"a":36578,"t":"code","b":[76,235,142],"m":"jmp","oa":36587,"o":"flip_draw_buffer"},{"a":36581,"l":"b_8EE5","t":"code","b":[32,246,142],"m":"jsr","oa":36598,"x":[36570],"o":"show_bank3"},{"a":36584,"t":"code","b":[32,242,186],"m":"jsr","oa":47858,"o":"$BAF2"},{"a":36587,"l":"flip_draw_buffer","c":"Flips bit 7 of $3A, the buffer drawing goes to ($C000 or $4000), keeping A and the flags","t":"code","b":[8],"m":"php","x":[8849,8888,29300,35885,35918,36578]},{"a":36588,"t":"code","b":[72],"m":"pha"},{"a":36589,"t":"code","b":[165,58],"m":"lda","oa":58,"o":"draw_buffer"},{"a":36591,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":36593,"t":"code","b":[133,58],"m":"sta","oa":58,"o":"draw_buffer"},{"a":36595,"t":"code","b":[104],"m":"pla"},{"a":36596,"t":"code","b":[40],"m":"plp"},{"a":36597,"t":"code","b":[96],"m":"rts"},{"a":36598,"l":"show_bank3","c":"Shows the VIC's bank 3: bitmap $C000, screen $E000 ($DD00 bits 0-1 cleared)","t":"code","b":[8],"m":"php","x":[5481,9546,28841,29027,29185,29297,36581,42148]},{"a":36599,"t":"code","b":[72],"m":"pha"},{"a":36600,"t":"code","b":[120],"m":"sei"},{"a":36601,"t":"code","b":[165,1],"m":"lda","oa":1,"o":"zp_port"},{"a":36603,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":36605,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":36607,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":36609,"t":"code","b":[173,2,221],"m":"lda","o":"cia2_ddr_a"},{"a":36612,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":36614,"t":"code","b":[141,2,221],"m":"sta","o":"cia2_ddr_a"},{"a":36617,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":36620,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":36622,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":36625,"t":"code","b":[165,1],"m":"lda","oa":1,"o":"zp_port"},{"a":36627,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":36629,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":36631,"t":"code","b":[104],"m":"pla"},{"a":36632,"t":"code","b":[40],"m":"plp"},{"a":36633,"t":"code","b":[96],"m":"rts"},{"a":36634,"l":"show_bank1","c":"Shows the VIC's bank 1: bitmap $4000, screen $6000 ($DD00 bits 0-1 = 2)","t":"code","b":[8],"m":"php","x":[29291,36572]},{"a":36635,"t":"code","b":[72],"m":"pha"},{"a":36636,"t":"code","b":[120],"m":"sei"},{"a":36637,"t":"code","b":[165,1],"m":"lda","oa":1,"o":"zp_port"},{"a":36639,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":36641,"t":"code","b":[9,1],"m":"ora","o":"#$01"},{"a":36643,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":36645,"t":"code","b":[173,2,221],"m":"lda","o":"cia2_ddr_a"},{"a":36648,"t":"code","b":[9,3],"m":"ora","o":"#$03"},{"a":36650,"t":"code","b":[141,2,221],"m":"sta","o":"cia2_ddr_a"},{"a":36653,"t":"code","b":[173,0,221],"m":"lda","o":"cia2_port_a"},{"a":36656,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":36658,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":36660,"t":"code","b":[141,0,221],"m":"sta","o":"cia2_port_a"},{"a":36663,"t":"code","b":[165,1],"m":"lda","oa":1,"o":"zp_port"},{"a":36665,"t":"code","b":[41,252],"m":"and","o":"#$FC"},{"a":36667,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zp_port"},{"a":36669,"t":"code","b":[104],"m":"pla"},{"a":36670,"t":"code","b":[40],"m":"plp"},{"a":36671,"t":"code","b":[96],"m":"rts"},{"a":36672,"l":"copy_to_bank1","c":"Copies $C000-$E3FF (the bitmap and its screen) to $4000-$63FF, so both buffers hold the same picture ($A2F6)","t":"code","b":[169,0],"m":"lda","x":[5418,29088,29284],"o":"#$00"},{"a":36674,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":36676,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":36678,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":36680,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36682,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":36684,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":36686,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":36688,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36690,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":36692,"t":"code","b":[169,36],"m":"lda","o":"#$24"},{"a":36694,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":36696,"t":"code","b":[76,246,162],"m":"jmp","oa":41718,"o":"copy_memory"},{"a":36699,"l":"spark_pattern","c":"A random pair of patterns for a spark: one of three ($A298), or of the next three when $F1DC is negative, into $3D/$3E from $8F74/$8F7A","t":"code","b":[169,2],"m":"lda","x":[35813],"o":"#$02"},{"a":36701,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":36704,"t":"code","b":[174,220,241],"m":"ldx","oa":61916,"o":"colour_clear"},{"a":36707,"t":"code","b":[16,3],"m":"bpl","oa":36712,"o":"b_8F68"},{"a":36709,"t":"code","b":[24],"m":"clc"},{"a":36710,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":36712,"l":"b_8F68","t":"code","b":[170],"m":"tax","x":[36707]},{"a":36713,"t":"code","b":[189,116,143],"m":"lda","oa":36724,"o":"spark_patterns_even,x"},{"a":36716,"t":"code","b":[133,61],"m":"sta","oa":61,"o":"pattern_even"},{"a":36718,"t":"code","b":[189,122,143],"m":"lda","oa":36730,"o":"spark_patterns_odd,x"},{"a":36721,"t":"code","b":[133,62],"m":"sta","oa":62,"o":"pattern_odd"},{"a":36723,"t":"code","b":[96],"m":"rts"},{"a":36724,"l":"spark_patterns_even","c":"spark_pattern's even-row patterns: $44 $55 $DD $88 $AA $EE","t":"byte","b":[68,85,221,136,170,238],"x":[36713]},{"a":36730,"l":"spark_patterns_odd","c":"spark_pattern's odd-row patterns: $11 $55 $77 $22 $AA $BB","t":"byte","b":[17,85,119,34,170,187],"x":[36718]},{"a":36736,"l":"set_colour","c":"Sets the drawing colour from code X (kept at $8FC9): codes below $13 go through the palette at $F1E6, others use their low three bits plus one; the two row patterns $3D/$3E and the clear byte $3B come from $F1C8/$F1D2/$F1DC, and the screen matrix's nybble mask $17 and value $18 from $8FDD/$8FFD by $8FCA (codes below $13) or the code shifted down three","t":"code","b":[142,201,143],"m":"stx","oa":36809,"x":[8837,9409,12143,12576,12816,12840,12900,12924,12941,13587,14636,15089,25870,27608,28246,28835,31254,32590,35295,35330,35339,35362,36565],"o":"colour_code"},{"a":36739,"t":"code","b":[224,19],"m":"cpx","o":"#$13"},{"a":36741,"t":"code","b":[176,6],"m":"bcs","oa":36749,"o":"b_8F8D"},{"a":36743,"t":"code","b":[189,230,241],"m":"lda","oa":61926,"o":"palette,x"},{"a":36746,"t":"code","b":[170],"m":"tax"},{"a":36747,"t":"code","b":[144,5],"m":"bcc","oa":36754,"o":"b_8F92"},{"a":36749,"l":"b_8F8D","t":"code","b":[138],"m":"txa","x":[36741]},{"a":36750,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":36752,"t":"code","b":[170],"m":"tax"},{"a":36753,"t":"code","b":[232],"m":"inx"},{"a":36754,"l":"b_8F92","t":"code","b":[189,200,241],"m":"lda","oa":61896,"x":[36747],"o":"colour_even,x"},{"a":36757,"t":"code","b":[133,61],"m":"sta","oa":61,"o":"pattern_even"},{"a":36759,"t":"code","b":[189,210,241],"m":"lda","oa":61906,"o":"colour_odd,x"},{"a":36762,"t":"code","b":[133,62],"m":"sta","oa":62,"o":"pattern_odd"},{"a":36764,"t":"code","b":[189,220,241],"m":"lda","oa":61916,"o":"colour_clear,x"},{"a":36767,"t":"code","b":[133,59],"m":"sta","oa":59,"o":"clear_byte"},{"a":36769,"t":"code","b":[173,201,143],"m":"lda","oa":36809,"o":"colour_code"},{"a":36772,"t":"code","b":[201,19],"m":"cmp","o":"#$13"},{"a":36774,"t":"code","b":[176,6],"m":"bcs","oa":36782,"o":"b_8FAE"},{"a":36776,"t":"code","b":[170],"m":"tax"},{"a":36777,"t":"code","b":[189,202,143],"m":"lda","oa":36810,"o":"colour_cell_index,x"},{"a":36780,"t":"code","b":[144,3],"m":"bcc","oa":36785,"o":"b_8FB1"},{"a":36782,"l":"b_8FAE","t":"code","b":[74],"m":"lsr","x":[36774],"o":"a"},{"a":36783,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36784,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":36785,"l":"b_8FB1","t":"code","b":[170],"m":"tax","x":[36780]},{"a":36786,"t":"code","b":[189,221,143],"m":"lda","oa":36829,"o":"colour_cell_mask,x"},{"a":36789,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"matrix_mask"},{"a":36791,"t":"code","b":[189,253,143],"m":"lda","oa":36861,"o":"colour_cell_value,x"},{"a":36794,"t":"code","b":[133,24],"m":"sta","oa":24,"o":"matrix_value"},{"a":36796,"t":"code","b":[96],"m":"rts"},{"a":36797,"l":"set_flash_colour","c":"Sets the value $9002 gives set_colour, $80 or $70 by the buffer in $3A","t":"code","b":[169,128],"m":"lda","x":[42120],"o":"#$80"},{"a":36799,"t":"code","b":[166,58],"m":"ldx","oa":58,"o":"draw_buffer"},{"a":36801,"t":"code","b":[240,2],"m":"beq","oa":36805,"o":"b_8FC5"},{"a":36803,"t":"code","b":[169,112],"m":"lda","o":"#$70"},{"a":36805,"l":"b_8FC5","t":"code","b":[141,2,144],"m":"sta","oa":36866,"x":[36801],"o":"a_9002"},{"a":36808,"t":"code","b":[96],"m":"rts"},{"a":36809,"l":"colour_code","c":"The last colour code set_colour was given","t":"byte","b":[1],"x":[35284,36736,36769]},{"a":36810,"l":"colour_cell_index","c":"For colour codes 0-$12: which entry of $8FDD/$8FFD sets the screen matrix","t":"byte","b":[0,0,0,0,1,2,3,4],"x":[36777]},{"a":36818,"t":"byte","b":[1,1,2,2,3,3,4,4]},{"a":36826,"t":"byte","b":[0,0,5]},{"a":36829,"l":"colour_cell_mask","c":"32 masks for the screen matrix byte: $FF, $F0 or $0F keep the nybble that stays","t":"byte","b":[255,240,240,240,240,15,240,240],"x":[36786]},{"a":36837,"t":"byte","b":[240,240,15,240,240,15,15,15]},{"a":36845,"t":"byte","b":[0,240,0,15,15,0,240,15]},{"a":36853,"t":"byte","b":[0,240,15,15,15,240,0,0]},{"a":36861,"l":"colour_cell_value","c":"32 values ORed into the screen matrix byte; entry 5 is $9002","t":"byte","b":[0,5,4,6,8],"x":[36791]},{"a":36866,"l":"a_9002","c":"colour_cell_value's entry 5, rewritten each frame by set_flash_colour","t":"byte","b":[128,13,14,10,4,96,2,10],"x":[36805]},{"a":36874,"t":"byte","b":[32,128,112,40,11,203,192,96]},{"a":36882,"t":"byte","b":[99,3,144,152,8,112,48,96]},{"a":36890,"t":"byte","b":[4,205,110]},{"a":36893,"l":"fill_window","c":"Fills the whole drawing window with the current colour, every row from $42 down to 0 ($8C9C)","t":"code","b":[164,66],"m":"ldy","oa":66,"x":[8896,12146,27611,28249],"o":"window_height"},{"a":36895,"t":"code","b":[132,75],"m":"sty","oa":75,"o":"clip_row"},{"a":36897,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36899,"t":"code","b":[133,69],"m":"sta","oa":69,"o":"span_left"},{"a":36901,"t":"code","b":[165,65],"m":"lda","oa":65,"o":"window_width"},{"a":36903,"t":"code","b":[133,70],"m":"sta","oa":70,"o":"zpa_46"},{"a":36905,"l":"b_9029","t":"code","b":[166,70],"m":"ldx","oa":70,"x":[36916],"o":"zpa_46"},{"a":36907,"t":"code","b":[32,156,140],"m":"jsr","oa":35996,"o":"span"},{"a":36910,"t":"code","b":[198,75],"m":"dec","oa":75,"o":"clip_row"},{"a":36912,"t":"code","b":[164,75],"m":"ldy","oa":75,"o":"clip_row"},{"a":36914,"t":"code","b":[192,255],"m":"cpy","o":"#$FF"},{"a":36916,"t":"code","b":[208,243],"m":"bne","oa":36905,"o":"b_9029"},{"a":36918,"t":"code","b":[96],"m":"rts"},{"a":36919,"l":"turn_by_rates","c":"Turns the orientation at ($78) by the three log-form angles at ($74): each angle that is not tiny (whole part -8 or more) rotates one pair of rows (rows 1 and 2, 2 and 0, 0 and 1; $9094/$9095)","t":"code","b":[165,116],"m":"lda","oa":116,"x":[30379,30575],"o":"src1_ptr"},{"a":36921,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":36923,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":36925,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":36927,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":36929,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":36931,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":36933,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":36935,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":36937,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":36939,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":36941,"l":"b_904D","t":"code","b":[164,132],"m":"ldy","oa":132,"x":[37009],"o":"tmp84"},{"a":36943,"t":"code","b":[177,134],"m":"lda","oa":134,"o":"(tmp86),y"},{"a":36945,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":36947,"t":"code","b":[200],"m":"iny"},{"a":36948,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":36950,"t":"code","b":[177,134],"m":"lda","oa":134,"o":"(tmp86),y"},{"a":36952,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":36954,"t":"code","b":[233,248],"m":"sbc","o":"#$F8"},{"a":36956,"t":"code","b":[48,38],"m":"bmi","oa":36996,"o":"b_9084"},{"a":36958,"t":"code","b":[200],"m":"iny"},{"a":36959,"t":"code","b":[177,134],"m":"lda","oa":134,"o":"(tmp86),y"},{"a":36961,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":36963,"t":"code","b":[166,133],"m":"ldx","oa":133,"o":"tmp85"},{"a":36965,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"tmp88"},{"a":36967,"t":"code","b":[24],"m":"clc"},{"a":36968,"t":"code","b":[125,148,144],"m":"adc","oa":37012,"o":"turn_row_offsets,x"},{"a":36971,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":36973,"t":"code","b":[165,137],"m":"lda","oa":137,"o":"tmp89"},{"a":36975,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":36977,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":36979,"t":"code","b":[165,136],"m":"lda","oa":136,"o":"tmp88"},{"a":36981,"t":"code","b":[24],"m":"clc"},{"a":36982,"t":"code","b":[125,149,144],"m":"adc","oa":37013,"o":"f_9095,x"},{"a":36985,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":36987,"t":"code","b":[165,137],"m":"lda","oa":137,"o":"tmp89"},{"a":36989,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":36991,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":36993,"t":"code","b":[32,152,144],"m":"jsr","oa":37016,"o":"turn_pair"},{"a":36996,"l":"b_9084","t":"code","b":[165,132],"m":"lda","oa":132,"x":[36956],"o":"tmp84"},{"a":36998,"t":"code","b":[24],"m":"clc"},{"a":36999,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":37001,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":37003,"t":"code","b":[230,133],"m":"inc","oa":133,"o":"tmp85"},{"a":37005,"t":"code","b":[165,133],"m":"lda","oa":133,"o":"tmp85"},{"a":37007,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":37009,"t":"code","b":[144,186],"m":"bcc","oa":36941,"o":"b_904D"},{"a":37011,"t":"code","b":[96],"m":"rts"},{"a":37012,"l":"turn_row_offsets","c":"turn_by_rates' row offsets for each angle: 9 and 18, 18 and 0, 0 and 9 (read as $9094 + n and $9095 + n)","t":"byte","b":[9],"x":[36968]},{"a":37013,"l":"f_9095","c":"turn_by_rates' second row offset for each angle (18, 0, 9)","t":"byte","b":[18,0,9],"x":[36982]},{"a":37016,"l":"turn_pair","c":"Rotates the rows at ($74) and ($78) by the small log-form angle in $5F-$61: b = normalise(b + angle * a), a = normalise(a - angle * b), with the products in $089F and $08A8","t":"code","b":[165,116],"m":"lda","oa":116,"x":[36993],"o":"src1_ptr"},{"a":37018,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":37020,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":37022,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":37024,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37026,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":37028,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37030,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":37032,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":37034,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37036,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":37038,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37040,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":37043,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":37045,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37047,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":37049,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37051,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":37053,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37055,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":37057,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37059,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":37062,"t":"code","b":[169,159],"m":"lda","o":"#$9F"},{"a":37064,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37066,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":37068,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":37070,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":37072,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37074,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":37076,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37078,"t":"code","b":[32,171,150],"m":"jsr","oa":38571,"o":"vec_add_log"},{"a":37081,"t":"code","b":[32,105,150],"m":"jsr","oa":38505,"o":"vec_normalise"},{"a":37084,"t":"code","b":[169,168],"m":"lda","o":"#$A8"},{"a":37086,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37088,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":37090,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":37092,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":37094,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37096,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37098,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":37100,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37102,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37104,"t":"code","b":[32,222,150],"m":"jsr","oa":38622,"o":"vec_sub_log"},{"a":37107,"t":"code","b":[76,105,150],"m":"jmp","oa":38505,"o":"vec_normalise"},{"a":37110,"l":"copy_identity","c":"Copies the 27-byte identity orientation at $0DA8 (three rows of three log-form numbers: 1 on the diagonal, $E69C elsewhere) to ($78)","t":"code","b":[169,168],"m":"lda","x":[6609,29120],"o":"#$A8"},{"a":37112,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37114,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":37116,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37118,"t":"code","b":[160,26],"m":"ldy","o":"#$1A"},{"a":37120,"l":"b_9100","t":"code","b":[177,116],"m":"lda","oa":116,"x":[37125],"o":"(src1_ptr),y"},{"a":37122,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37124,"t":"code","b":[136],"m":"dey"},{"a":37125,"t":"code","b":[16,249],"m":"bpl","oa":37120,"o":"b_9100"},{"a":37127,"t":"code","b":[96],"m":"rts"},{"a":37128,"l":"vec_times_rows","c":"Sums the rows at ($76) (three of 9 bytes) weighted by the components of the log-form vector at ($74): out = v0*row0 + v1*row1 + v2*row2, written to ($78). A component whose whole part is below -7 ($F9) is skipped; the first one kept starts the sum ($95A0), later ones add to it ($9711)","t":"code","b":[165,116],"m":"lda","oa":116,"x":[8183,32214],"o":"src1_ptr"},{"a":37130,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":37132,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":37134,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":37136,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":37138,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37140,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":37142,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37144,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37146,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37148,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37150,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":37152,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":37154,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":37156,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":37158,"l":"b_9126","t":"code","b":[164,128],"m":"ldy","oa":128,"x":[37213],"o":"tmp80"},{"a":37160,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(tmp82),y"},{"a":37162,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37164,"t":"code","b":[200],"m":"iny"},{"a":37165,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(tmp82),y"},{"a":37167,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37169,"t":"code","b":[201,249],"m":"cmp","o":"#$F9"},{"a":37171,"t":"code","b":[48,20],"m":"bmi","oa":37193,"o":"b_9149"},{"a":37173,"t":"code","b":[200],"m":"iny"},{"a":37174,"t":"code","b":[177,130],"m":"lda","oa":130,"o":"(tmp82),y"},{"a":37176,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37178,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":37180,"t":"code","b":[208,8],"m":"bne","oa":37190,"o":"b_9146"},{"a":37182,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":37184,"t":"code","b":[32,160,149],"m":"jsr","oa":38304,"o":"vec_scale_signed"},{"a":37187,"t":"code","b":[76,73,145],"m":"jmp","oa":37193,"o":"b_9149"},{"a":37190,"l":"b_9146","t":"code","b":[32,17,151],"m":"jsr","oa":38673,"x":[37180],"o":"vec_axpy"},{"a":37193,"l":"b_9149","t":"code","b":[165,116],"m":"lda","oa":116,"x":[37171,37187],"o":"src1_ptr"},{"a":37195,"t":"code","b":[24],"m":"clc"},{"a":37196,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37198,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37200,"t":"code","b":[144,2],"m":"bcc","oa":37204,"o":"b_9154"},{"a":37202,"t":"code","b":[230,117],"m":"inc","oa":117,"o":"zpa_75"},{"a":37204,"l":"b_9154","t":"code","b":[165,128],"m":"lda","oa":128,"x":[37200],"o":"tmp80"},{"a":37206,"t":"code","b":[24],"m":"clc"},{"a":37207,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":37209,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":37211,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":37213,"t":"code","b":[144,199],"m":"bcc","oa":37158,"o":"b_9126"},{"a":37215,"t":"code","b":[96],"m":"rts"},{"a":37216,"l":"mat_times_vec","c":"Multiplies the log-form vector at ($74) by the three rows at ($76): each output component is a dot product ($94E7) with one row, stored at ($78)+0, +3 and +6. Leaves ($76) pointing at the third row","t":"code","b":[32,231,148],"m":"jsr","oa":38119,"x":[9189,13827,15753,25682,31173,37296,37332],"o":"vec_dot"},{"a":37219,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37221,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37223,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37225,"t":"code","b":[200],"m":"iny"},{"a":37226,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37228,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37230,"t":"code","b":[200],"m":"iny"},{"a":37231,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37233,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37235,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":37237,"t":"code","b":[24],"m":"clc"},{"a":37238,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37240,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37242,"t":"code","b":[144,2],"m":"bcc","oa":37246,"o":"b_917E"},{"a":37244,"t":"code","b":[230,119],"m":"inc","oa":119,"o":"zpa_77"},{"a":37246,"l":"b_917E","t":"code","b":[32,231,148],"m":"jsr","oa":38119,"x":[37242],"o":"vec_dot"},{"a":37249,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":37251,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37253,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37255,"t":"code","b":[200],"m":"iny"},{"a":37256,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37258,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37260,"t":"code","b":[200],"m":"iny"},{"a":37261,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37263,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37265,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":37267,"t":"code","b":[24],"m":"clc"},{"a":37268,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37270,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37272,"t":"code","b":[144,2],"m":"bcc","oa":37276,"o":"b_919C"},{"a":37274,"t":"code","b":[230,119],"m":"inc","oa":119,"o":"zpa_77"},{"a":37276,"l":"b_919C","t":"code","b":[32,231,148],"m":"jsr","oa":38119,"x":[37272],"o":"vec_dot"},{"a":37279,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":37281,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37283,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37285,"t":"code","b":[200],"m":"iny"},{"a":37286,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37288,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37290,"t":"code","b":[200],"m":"iny"},{"a":37291,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37293,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37295,"t":"code","b":[96],"m":"rts"},{"a":37296,"l":"mat_times_mat","c":"Multiplies two orientations: the first two rows of ($74) times the matrix at ($76) ($9160 twice) into ($78), and the third row as the cross product of those two ($93DC)","t":"code","b":[32,96,145],"m":"jsr","oa":37216,"x":[13865,25720],"o":"mat_times_vec"},{"a":37299,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":37301,"t":"code","b":[24],"m":"clc"},{"a":37302,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37304,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37306,"t":"code","b":[144,2],"m":"bcc","oa":37310,"o":"b_91BE"},{"a":37308,"t":"code","b":[230,117],"m":"inc","oa":117,"o":"zpa_75"},{"a":37310,"l":"b_91BE","t":"code","b":[165,118],"m":"lda","oa":118,"x":[37306],"o":"src2_ptr"},{"a":37312,"t":"code","b":[56],"m":"sec"},{"a":37313,"t":"code","b":[233,18],"m":"sbc","o":"#$12"},{"a":37315,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37317,"t":"code","b":[176,2],"m":"bcs","oa":37321,"o":"b_91C9"},{"a":37319,"t":"code","b":[198,119],"m":"dec","oa":119,"o":"zpa_77"},{"a":37321,"l":"b_91C9","t":"code","b":[165,120],"m":"lda","oa":120,"x":[37317],"o":"dest_ptr"},{"a":37323,"t":"code","b":[24],"m":"clc"},{"a":37324,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37326,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37328,"t":"code","b":[144,2],"m":"bcc","oa":37332,"o":"b_91D4"},{"a":37330,"t":"code","b":[230,121],"m":"inc","oa":121,"o":"zpa_79"},{"a":37332,"l":"b_91D4","t":"code","b":[32,96,145],"m":"jsr","oa":37216,"x":[37328],"o":"mat_times_vec"},{"a":37335,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37337,"t":"code","b":[56],"m":"sec"},{"a":37338,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":37340,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37342,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37344,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":37346,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37348,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37350,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37352,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37354,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":37356,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37358,"t":"code","b":[24],"m":"clc"},{"a":37359,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37361,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37363,"t":"code","b":[144,2],"m":"bcc","oa":37367,"o":"b_91F7"},{"a":37365,"t":"code","b":[230,121],"m":"inc","oa":121,"o":"zpa_79"},{"a":37367,"l":"b_91F7","t":"code","b":[76,220,147],"m":"jmp","oa":37852,"x":[37363],"o":"vec_cross"},{"a":37370,"l":"mat_transpose","c":"Copies the 3 by 3 log-form matrix at ($74) to ($78) transposed: row r column c goes to row c column r","t":"code","b":[169,0],"m":"lda","x":[30398],"o":"#$00"},{"a":37372,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":37374,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":37376,"l":"b_9200","t":"code","b":[164,128],"m":"ldy","oa":128,"x":[37424,37435],"o":"tmp80"},{"a":37378,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37380,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37382,"t":"code","b":[200],"m":"iny"},{"a":37383,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37385,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37387,"t":"code","b":[200],"m":"iny"},{"a":37388,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37390,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37392,"t":"code","b":[164,129],"m":"ldy","oa":129,"o":"tmp81"},{"a":37394,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37396,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37398,"t":"code","b":[200],"m":"iny"},{"a":37399,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37401,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37403,"t":"code","b":[200],"m":"iny"},{"a":37404,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37406,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37408,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":37410,"t":"code","b":[24],"m":"clc"},{"a":37411,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":37413,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":37415,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":37417,"t":"code","b":[24],"m":"clc"},{"a":37418,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37420,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":37422,"t":"code","b":[201,27],"m":"cmp","o":"#$1B"},{"a":37424,"t":"code","b":[144,206],"m":"bcc","oa":37376,"o":"b_9200"},{"a":37426,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":37428,"t":"code","b":[56],"m":"sec"},{"a":37429,"t":"code","b":[233,24],"m":"sbc","o":"#$18"},{"a":37431,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":37433,"t":"code","b":[201,9],"m":"cmp","o":"#$09"},{"a":37435,"t":"code","b":[144,195],"m":"bcc","oa":37376,"o":"b_9200"},{"a":37437,"t":"code","b":[96],"m":"rts"},{"a":37438,"l":"mat_orthonormal","c":"Straightens the orientation at ($78) so it stays a rotation: row 0 becomes row 1 cross row 2, row 1 becomes row 2 cross row 0 ($93DC), and each row is normalised ($9669)","t":"code","b":[165,120],"m":"lda","oa":120,"x":[4735,8148,13738,26029],"o":"dest_ptr"},{"a":37440,"t":"code","b":[133,122],"m":"sta","oa":122,"o":"model_ptr"},{"a":37442,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37444,"t":"code","b":[133,123],"m":"sta","oa":123,"o":"zpa_7B"},{"a":37446,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37448,"t":"code","b":[24],"m":"clc"},{"a":37449,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37451,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37453,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37455,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":37457,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37459,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37461,"t":"code","b":[24],"m":"clc"},{"a":37462,"t":"code","b":[105,18],"m":"adc","o":"#$12"},{"a":37464,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37466,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37468,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":37470,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":37472,"t":"code","b":[32,220,147],"m":"jsr","oa":37852,"o":"vec_cross"},{"a":37475,"t":"code","b":[165,116],"m":"lda","oa":116,"o":"src1_ptr"},{"a":37477,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37479,"t":"code","b":[165,117],"m":"lda","oa":117,"o":"zpa_75"},{"a":37481,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37483,"t":"code","b":[165,118],"m":"lda","oa":118,"o":"src2_ptr"},{"a":37485,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37487,"t":"code","b":[165,119],"m":"lda","oa":119,"o":"zpa_77"},{"a":37489,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37491,"t":"code","b":[165,122],"m":"lda","oa":122,"o":"model_ptr"},{"a":37493,"t":"code","b":[133,118],"m":"sta","oa":118,"o":"src2_ptr"},{"a":37495,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":37497,"t":"code","b":[133,119],"m":"sta","oa":119,"o":"zpa_77"},{"a":37499,"t":"code","b":[32,220,147],"m":"jsr","oa":37852,"o":"vec_cross"},{"a":37502,"t":"code","b":[165,122],"m":"lda","oa":122,"o":"model_ptr"},{"a":37504,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37506,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":37508,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37510,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37512,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37514,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":37516,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":37518,"t":"code","b":[32,105,150],"m":"jsr","oa":38505,"o":"vec_normalise"},{"a":37521,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37523,"t":"code","b":[24],"m":"clc"},{"a":37524,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37526,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37528,"t":"code","b":[144,2],"m":"bcc","oa":37532,"o":"b_929C"},{"a":37530,"t":"code","b":[230,121],"m":"inc","oa":121,"o":"zpa_79"},{"a":37532,"l":"b_929C","t":"code","b":[165,116],"m":"lda","oa":116,"x":[37528],"o":"src1_ptr"},{"a":37534,"t":"code","b":[24],"m":"clc"},{"a":37535,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37537,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37539,"t":"code","b":[144,2],"m":"bcc","oa":37543,"o":"b_92A7"},{"a":37541,"t":"code","b":[230,117],"m":"inc","oa":117,"o":"zpa_75"},{"a":37543,"l":"b_92A7","t":"code","b":[32,105,150],"m":"jsr","oa":38505,"x":[37539],"o":"vec_normalise"},{"a":37546,"t":"code","b":[165,120],"m":"lda","oa":120,"o":"dest_ptr"},{"a":37548,"t":"code","b":[24],"m":"clc"},{"a":37549,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37551,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37553,"t":"code","b":[144,2],"m":"bcc","oa":37557,"o":"b_92B5"},{"a":37555,"t":"code","b":[230,121],"m":"inc","oa":121,"o":"zpa_79"},{"a":37557,"l":"b_92B5","t":"code","b":[165,116],"m":"lda","oa":116,"x":[37553],"o":"src1_ptr"},{"a":37559,"t":"code","b":[24],"m":"clc"},{"a":37560,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":37562,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":37564,"t":"code","b":[144,2],"m":"bcc","oa":37568,"o":"b_92C0"},{"a":37566,"t":"code","b":[230,117],"m":"inc","oa":117,"o":"zpa_75"},{"a":37568,"l":"b_92C0","t":"code","b":[32,105,150],"m":"jsr","oa":38505,"x":[37564],"o":"vec_normalise"},{"a":37571,"t":"code","b":[165,122],"m":"lda","oa":122,"o":"model_ptr"},{"a":37573,"t":"code","b":[133,120],"m":"sta","oa":120,"o":"dest_ptr"},{"a":37575,"t":"code","b":[165,123],"m":"lda","oa":123,"o":"zpa_7B"},{"a":37577,"t":"code","b":[133,121],"m":"sta","oa":121,"o":"zpa_79"},{"a":37579,"t":"code","b":[96],"m":"rts"},{"a":37580,"l":"vec_sub_to_log","c":"Subtracts the linear position at ($76) from the one at ($74), component by component, and writes the difference at ($78) in log form ($B45A)","t":"code","b":[160,0],"m":"ldy","x":[8134,8491,9162,13727,15691,16072,25639,26192,27659,30059,30964,31075,31146,32388],"o":"#$00"},{"a":37582,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37584,"t":"code","b":[56],"m":"sec"},{"a":37585,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37587,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37589,"t":"code","b":[200],"m":"iny"},{"a":37590,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37592,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37594,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37596,"t":"code","b":[200],"m":"iny"},{"a":37597,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37599,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37601,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37603,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":37606,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37608,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37610,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37612,"t":"code","b":[200],"m":"iny"},{"a":37613,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37615,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37617,"t":"code","b":[200],"m":"iny"},{"a":37618,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37620,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37622,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":37624,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37626,"t":"code","b":[56],"m":"sec"},{"a":37627,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37629,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37631,"t":"code","b":[200],"m":"iny"},{"a":37632,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37634,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37636,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37638,"t":"code","b":[200],"m":"iny"},{"a":37639,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37641,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37643,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37645,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":37648,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":37650,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37652,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37654,"t":"code","b":[200],"m":"iny"},{"a":37655,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37657,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37659,"t":"code","b":[200],"m":"iny"},{"a":37660,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37662,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37664,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":37666,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37668,"t":"code","b":[56],"m":"sec"},{"a":37669,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37671,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37673,"t":"code","b":[200],"m":"iny"},{"a":37674,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37676,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37678,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37680,"t":"code","b":[200],"m":"iny"},{"a":37681,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37683,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":37685,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37687,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":37690,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":37692,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37694,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37696,"t":"code","b":[200],"m":"iny"},{"a":37697,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37699,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37701,"t":"code","b":[200],"m":"iny"},{"a":37702,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37704,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37706,"t":"code","b":[96],"m":"rts"},{"a":37707,"l":"vec_log_to_lin","c":"Converts the log-form vector at ($74) to linear at ($78), signs kept ($B5C5), last component first","t":"code","b":[160,8],"m":"ldy","x":[8194,8616,8971,13838,25693,25946,26140,28142,28953,30119,30187,30708,30820,31044,32020],"o":"#$08"},{"a":37709,"l":"b_934D","t":"code","b":[177,116],"m":"lda","oa":116,"x":[37743],"o":"(src1_ptr),y"},{"a":37711,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37713,"t":"code","b":[136],"m":"dey"},{"a":37714,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37716,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37718,"t":"code","b":[136],"m":"dey"},{"a":37719,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37721,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37723,"t":"code","b":[32,197,181],"m":"jsr","oa":46533,"o":"$B5C5"},{"a":37726,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37728,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37730,"t":"code","b":[200],"m":"iny"},{"a":37731,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37733,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37735,"t":"code","b":[200],"m":"iny"},{"a":37736,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37738,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37740,"t":"code","b":[136],"m":"dey"},{"a":37741,"t":"code","b":[136],"m":"dey"},{"a":37742,"t":"code","b":[136],"m":"dey"},{"a":37743,"t":"code","b":[16,220],"m":"bpl","oa":37709,"o":"b_934D"},{"a":37745,"t":"code","b":[96],"m":"rts"},{"a":37746,"l":"vec_lin_to_log","c":"Converts the linear vector at ($74) to log form at ($78) ($B45A)","t":"code","b":[160,0],"m":"ldy","x":[26115,28918,29972,30691,31799],"o":"#$00"},{"a":37748,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37750,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37752,"t":"code","b":[200],"m":"iny"},{"a":37753,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37755,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37757,"t":"code","b":[200],"m":"iny"},{"a":37758,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37760,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37762,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":37765,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37767,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37769,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37771,"t":"code","b":[200],"m":"iny"},{"a":37772,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37774,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37776,"t":"code","b":[200],"m":"iny"},{"a":37777,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37779,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37781,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":37783,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37785,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37787,"t":"code","b":[200],"m":"iny"},{"a":37788,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37790,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37792,"t":"code","b":[200],"m":"iny"},{"a":37793,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37795,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37797,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":37800,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":37802,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37804,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37806,"t":"code","b":[200],"m":"iny"},{"a":37807,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37809,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37811,"t":"code","b":[200],"m":"iny"},{"a":37812,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37814,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37816,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":37818,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37820,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37822,"t":"code","b":[200],"m":"iny"},{"a":37823,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37825,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37827,"t":"code","b":[200],"m":"iny"},{"a":37828,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37830,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37832,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":37835,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":37837,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37839,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37841,"t":"code","b":[200],"m":"iny"},{"a":37842,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37844,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37846,"t":"code","b":[200],"m":"iny"},{"a":37847,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37849,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37851,"t":"code","b":[96],"m":"rts"},{"a":37852,"l":"vec_cross","c":"The cross product of the log-form vectors at ($74) and ($76), written to ($78): (a1*b2 - a2*b1, a2*b0 - a0*b2, a0*b1 - a1*b0). ($76) is copied to $6B-$73 first, so ($78) may be either input","t":"code","b":[160,0],"m":"ldy","x":[32150,37367,37472,37499],"o":"#$00"},{"a":37854,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37856,"t":"code","b":[141,107,0],"m":"sta","oa":107,"o":"scratch_vec"},{"a":37859,"t":"code","b":[200],"m":"iny"},{"a":37860,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37862,"t":"code","b":[141,108,0],"m":"sta","oa":108,"o":"f_006C"},{"a":37865,"t":"code","b":[200],"m":"iny"},{"a":37866,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37868,"t":"code","b":[141,109,0],"m":"sta","oa":109,"o":"a_006D"},{"a":37871,"t":"code","b":[200],"m":"iny"},{"a":37872,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37874,"t":"code","b":[141,110,0],"m":"sta","oa":110,"o":"a_006E"},{"a":37877,"t":"code","b":[200],"m":"iny"},{"a":37878,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37880,"t":"code","b":[141,111,0],"m":"sta","oa":111,"o":"zpa_6F"},{"a":37883,"t":"code","b":[200],"m":"iny"},{"a":37884,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37886,"t":"code","b":[141,112,0],"m":"sta","oa":112,"o":"zpa_70"},{"a":37889,"t":"code","b":[200],"m":"iny"},{"a":37890,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37892,"t":"code","b":[141,113,0],"m":"sta","oa":113,"o":"a_0071"},{"a":37895,"t":"code","b":[200],"m":"iny"},{"a":37896,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37898,"t":"code","b":[141,114,0],"m":"sta","oa":114,"o":"zpa_72"},{"a":37901,"t":"code","b":[200],"m":"iny"},{"a":37902,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":37904,"t":"code","b":[141,115,0],"m":"sta","oa":115,"o":"zpa_73"},{"a":37907,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":37909,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37911,"t":"code","b":[24],"m":"clc"},{"a":37912,"t":"code","b":[109,113,0],"m":"adc","oa":113,"o":"a_0071"},{"a":37915,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37917,"t":"code","b":[200],"m":"iny"},{"a":37918,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37920,"t":"code","b":[109,114,0],"m":"adc","oa":114,"o":"zpa_72"},{"a":37923,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37925,"t":"code","b":[200],"m":"iny"},{"a":37926,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37928,"t":"code","b":[77,115,0],"m":"eor","oa":115,"o":"zpa_73"},{"a":37931,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":37933,"t":"code","b":[200],"m":"iny"},{"a":37934,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37936,"t":"code","b":[24],"m":"clc"},{"a":37937,"t":"code","b":[109,110,0],"m":"adc","oa":110,"o":"a_006E"},{"a":37940,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":37942,"t":"code","b":[200],"m":"iny"},{"a":37943,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37945,"t":"code","b":[109,111,0],"m":"adc","oa":111,"o":"zpa_6F"},{"a":37948,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":37950,"t":"code","b":[200],"m":"iny"},{"a":37951,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37953,"t":"code","b":[77,112,0],"m":"eor","oa":112,"o":"zpa_70"},{"a":37956,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":37958,"t":"code","b":[32,91,179],"m":"jsr","oa":45915,"o":"$B35B"},{"a":37961,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":37963,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":37965,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37967,"t":"code","b":[200],"m":"iny"},{"a":37968,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":37970,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37972,"t":"code","b":[200],"m":"iny"},{"a":37973,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":37975,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":37977,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":37979,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37981,"t":"code","b":[24],"m":"clc"},{"a":37982,"t":"code","b":[109,107,0],"m":"adc","oa":107,"o":"scratch_vec"},{"a":37985,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":37987,"t":"code","b":[200],"m":"iny"},{"a":37988,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37990,"t":"code","b":[109,108,0],"m":"adc","oa":108,"o":"f_006C"},{"a":37993,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":37995,"t":"code","b":[200],"m":"iny"},{"a":37996,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":37998,"t":"code","b":[77,109,0],"m":"eor","oa":109,"o":"a_006D"},{"a":38001,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38003,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38005,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38007,"t":"code","b":[24],"m":"clc"},{"a":38008,"t":"code","b":[109,113,0],"m":"adc","oa":113,"o":"a_0071"},{"a":38011,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38013,"t":"code","b":[200],"m":"iny"},{"a":38014,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38016,"t":"code","b":[109,114,0],"m":"adc","oa":114,"o":"zpa_72"},{"a":38019,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38021,"t":"code","b":[200],"m":"iny"},{"a":38022,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38024,"t":"code","b":[77,115,0],"m":"eor","oa":115,"o":"zpa_73"},{"a":38027,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38029,"t":"code","b":[32,91,179],"m":"jsr","oa":45915,"o":"$B35B"},{"a":38032,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":38034,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38036,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38038,"t":"code","b":[200],"m":"iny"},{"a":38039,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38041,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38043,"t":"code","b":[200],"m":"iny"},{"a":38044,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":38046,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38048,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38050,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38052,"t":"code","b":[24],"m":"clc"},{"a":38053,"t":"code","b":[109,110,0],"m":"adc","oa":110,"o":"a_006E"},{"a":38056,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38058,"t":"code","b":[200],"m":"iny"},{"a":38059,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38061,"t":"code","b":[109,111,0],"m":"adc","oa":111,"o":"zpa_6F"},{"a":38064,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38066,"t":"code","b":[200],"m":"iny"},{"a":38067,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38069,"t":"code","b":[77,112,0],"m":"eor","oa":112,"o":"zpa_70"},{"a":38072,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38074,"t":"code","b":[200],"m":"iny"},{"a":38075,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38077,"t":"code","b":[24],"m":"clc"},{"a":38078,"t":"code","b":[109,107,0],"m":"adc","oa":107,"o":"scratch_vec"},{"a":38081,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38083,"t":"code","b":[200],"m":"iny"},{"a":38084,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38086,"t":"code","b":[109,108,0],"m":"adc","oa":108,"o":"f_006C"},{"a":38089,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38091,"t":"code","b":[200],"m":"iny"},{"a":38092,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38094,"t":"code","b":[77,109,0],"m":"eor","oa":109,"o":"a_006D"},{"a":38097,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38099,"t":"code","b":[32,91,179],"m":"jsr","oa":45915,"o":"$B35B"},{"a":38102,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":38104,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38106,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38108,"t":"code","b":[200],"m":"iny"},{"a":38109,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38111,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38113,"t":"code","b":[200],"m":"iny"},{"a":38114,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":38116,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38118,"t":"code","b":[96],"m":"rts"},{"a":38119,"l":"vec_dot","c":"The dot product of the log-form vectors at ($74) and ($76): each pair of components multiplied by adding their logs and combining signs, and the three products summed ($B392). Result in log form in $5F-$61","t":"code","b":[160,0],"m":"ldy","x":[16096,16184,16274,27748,31116,32455,37216,37246,37276],"o":"#$00"},{"a":38121,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38123,"t":"code","b":[24],"m":"clc"},{"a":38124,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38126,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38128,"t":"code","b":[200],"m":"iny"},{"a":38129,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38131,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38133,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38135,"t":"code","b":[200],"m":"iny"},{"a":38136,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38138,"t":"code","b":[81,118],"m":"eor","oa":118,"o":"(src2_ptr),y"},{"a":38140,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38142,"t":"code","b":[200],"m":"iny"},{"a":38143,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38145,"t":"code","b":[24],"m":"clc"},{"a":38146,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38148,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38150,"t":"code","b":[200],"m":"iny"},{"a":38151,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38153,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38155,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38157,"t":"code","b":[200],"m":"iny"},{"a":38158,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38160,"t":"code","b":[81,118],"m":"eor","oa":118,"o":"(src2_ptr),y"},{"a":38162,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38164,"t":"code","b":[200],"m":"iny"},{"a":38165,"t":"code","b":[32,146,179],"m":"jsr","oa":45970,"o":"$B392"},{"a":38168,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38170,"t":"code","b":[24],"m":"clc"},{"a":38171,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38173,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38175,"t":"code","b":[200],"m":"iny"},{"a":38176,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38178,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38180,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38182,"t":"code","b":[200],"m":"iny"},{"a":38183,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38185,"t":"code","b":[81,118],"m":"eor","oa":118,"o":"(src2_ptr),y"},{"a":38187,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38189,"t":"code","b":[200],"m":"iny"},{"a":38190,"t":"code","b":[76,146,179],"m":"jmp","oa":45970,"o":"$B392"},{"a":38193,"l":"vec_length","c":"The length of the log-form vector at ($74), in log form in $5F/$60: each log doubled (the square), the three squares added ($B398), and the log halved (the square root)","t":"code","b":[160,0],"m":"ldy","x":[16312,26203,27670,29983,30070,30975,31086,31810,38505,38952],"o":"#$00"},{"a":38195,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38197,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38198,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38200,"t":"code","b":[200],"m":"iny"},{"a":38201,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38203,"t":"code","b":[42],"m":"rol","o":"a"},{"a":38204,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38206,"t":"code","b":[200],"m":"iny"},{"a":38207,"t":"code","b":[200],"m":"iny"},{"a":38208,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38210,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38211,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38213,"t":"code","b":[200],"m":"iny"},{"a":38214,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38216,"t":"code","b":[42],"m":"rol","o":"a"},{"a":38217,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38219,"t":"code","b":[200],"m":"iny"},{"a":38220,"t":"code","b":[200],"m":"iny"},{"a":38221,"t":"code","b":[32,152,179],"m":"jsr","oa":45976,"o":"$B398"},{"a":38224,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38226,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38227,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38229,"t":"code","b":[200],"m":"iny"},{"a":38230,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38232,"t":"code","b":[42],"m":"rol","o":"a"},{"a":38233,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38235,"t":"code","b":[200],"m":"iny"},{"a":38236,"t":"code","b":[200],"m":"iny"},{"a":38237,"t":"code","b":[32,152,179],"m":"jsr","oa":45976,"o":"$B398"},{"a":38240,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38242,"t":"code","b":[10],"m":"asl","o":"a"},{"a":38243,"t":"code","b":[102,96],"m":"ror","oa":96,"o":"acc_mid"},{"a":38245,"t":"code","b":[102,95],"m":"ror","oa":95,"o":"acc_lo"},{"a":38247,"t":"code","b":[96],"m":"rts"},{"a":38248,"l":"copy9_from_0DAB","c":"Copies the 9 bytes at $0DAB to ($78) ($9570)","t":"code","b":[169,171],"m":"lda","x":[30457],"o":"#$AB"},{"a":38250,"t":"code","b":[133,116],"m":"sta","oa":116,"o":"src1_ptr"},{"a":38252,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":38254,"t":"code","b":[133,117],"m":"sta","oa":117,"o":"zpa_75"},{"a":38256,"l":"copy9","c":"Copies 9 bytes from ($74) to ($78): one position or one log-form vector","t":"code","b":[160,0],"m":"ldy","x":[6572,6668,8051,8640,25999,26018,29609,29756,30012,30149,30651,30738],"o":"#$00"},{"a":38258,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38260,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38262,"t":"code","b":[200],"m":"iny"},{"a":38263,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38265,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38267,"t":"code","b":[200],"m":"iny"},{"a":38268,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38270,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38272,"t":"code","b":[200],"m":"iny"},{"a":38273,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38275,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38277,"t":"code","b":[200],"m":"iny"},{"a":38278,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38280,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38282,"t":"code","b":[200],"m":"iny"},{"a":38283,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38285,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38287,"t":"code","b":[200],"m":"iny"},{"a":38288,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38290,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38292,"t":"code","b":[200],"m":"iny"},{"a":38293,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38295,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38297,"t":"code","b":[200],"m":"iny"},{"a":38298,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38300,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38302,"t":"code","b":[200],"m":"iny"},{"a":38303,"t":"code","b":[96],"m":"rts"},{"a":38304,"l":"vec_scale_signed","c":"Multiplies the log-form vector at ($74) by the log-form number in $5F-$61: adds its log to each component's and combines the signs; the result at ($78)","t":"code","b":[160,0],"m":"ldy","x":[8605,8960,13772,15650,25935,28131,30176,30809,37040,37059,37184],"o":"#$00"},{"a":38306,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38308,"t":"code","b":[24],"m":"clc"},{"a":38309,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":38311,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38313,"t":"code","b":[200],"m":"iny"},{"a":38314,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38316,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":38318,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38320,"t":"code","b":[200],"m":"iny"},{"a":38321,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38323,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":38325,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38327,"t":"code","b":[200],"m":"iny"},{"a":38328,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38330,"t":"code","b":[24],"m":"clc"},{"a":38331,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":38333,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38335,"t":"code","b":[200],"m":"iny"},{"a":38336,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38338,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":38340,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38342,"t":"code","b":[200],"m":"iny"},{"a":38343,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38345,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":38347,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38349,"t":"code","b":[200],"m":"iny"},{"a":38350,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38352,"t":"code","b":[24],"m":"clc"},{"a":38353,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":38355,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38357,"t":"code","b":[200],"m":"iny"},{"a":38358,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38360,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":38362,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38364,"t":"code","b":[200],"m":"iny"},{"a":38365,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38367,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":38369,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38371,"t":"code","b":[200],"m":"iny"},{"a":38372,"t":"code","b":[96],"m":"rts"},{"a":38373,"l":"vec_scale","c":"Multiplies the log-form vector at ($74) by the positive log-form number in $5F/$60, signs unchanged; the result at ($78)","t":"code","b":[160,0],"m":"ldy","x":[26137,28942,30116,30705,31041],"o":"#$00"},{"a":38375,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38377,"t":"code","b":[24],"m":"clc"},{"a":38378,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":38380,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38382,"t":"code","b":[200],"m":"iny"},{"a":38383,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38385,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":38387,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38389,"t":"code","b":[200],"m":"iny"},{"a":38390,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38392,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38394,"t":"code","b":[200],"m":"iny"},{"a":38395,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38397,"t":"code","b":[24],"m":"clc"},{"a":38398,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":38400,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38402,"t":"code","b":[200],"m":"iny"},{"a":38403,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38405,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":38407,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38409,"t":"code","b":[200],"m":"iny"},{"a":38410,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38412,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38414,"t":"code","b":[200],"m":"iny"},{"a":38415,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38417,"t":"code","b":[24],"m":"clc"},{"a":38418,"t":"code","b":[101,95],"m":"adc","oa":95,"o":"acc_lo"},{"a":38420,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38422,"t":"code","b":[200],"m":"iny"},{"a":38423,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38425,"t":"code","b":[101,96],"m":"adc","oa":96,"o":"acc_mid"},{"a":38427,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38429,"t":"code","b":[200],"m":"iny"},{"a":38430,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38432,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38434,"t":"code","b":[200],"m":"iny"},{"a":38435,"t":"code","b":[96],"m":"rts"},{"a":38436,"l":"vec_div_signed","c":"Divides the log-form vector at ($74) by the log-form number in $5F-$61 (subtracts its log, combines the signs) into ($78). No code in this run's snapshots calls it","t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38438,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38440,"t":"code","b":[56],"m":"sec"},{"a":38441,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":38443,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38445,"t":"code","b":[200],"m":"iny"},{"a":38446,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38448,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":38450,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38452,"t":"code","b":[200],"m":"iny"},{"a":38453,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38455,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":38457,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38459,"t":"code","b":[200],"m":"iny"},{"a":38460,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38462,"t":"code","b":[56],"m":"sec"},{"a":38463,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":38465,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38467,"t":"code","b":[200],"m":"iny"},{"a":38468,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38470,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":38472,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38474,"t":"code","b":[200],"m":"iny"},{"a":38475,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38477,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":38479,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38481,"t":"code","b":[200],"m":"iny"},{"a":38482,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38484,"t":"code","b":[56],"m":"sec"},{"a":38485,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":38487,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38489,"t":"code","b":[200],"m":"iny"},{"a":38490,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38492,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":38494,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38496,"t":"code","b":[200],"m":"iny"},{"a":38497,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38499,"t":"code","b":[69,97],"m":"eor","oa":97,"o":"acc_hi"},{"a":38501,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38503,"t":"code","b":[200],"m":"iny"},{"a":38504,"t":"code","b":[96],"m":"rts"},{"a":38505,"l":"vec_normalise","c":"Normalises the log-form vector at ($74) into ($78): finds its length ($9531) and divides by it ($966C)","t":"code","b":[32,49,149],"m":"jsr","oa":38193,"x":[8502,26126,28929,30694,37081,37107,37518,37543,37568],"o":"vec_length"},{"a":38508,"l":"vec_div","c":"Divides the log-form vector at ($74) by the positive log-form number in $5F/$60 (subtracts its log from each component's), signs unchanged; the result at ($78)","t":"code","b":[160,0],"m":"ldy","x":[30978,31097],"o":"#$00"},{"a":38510,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38512,"t":"code","b":[56],"m":"sec"},{"a":38513,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":38515,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38517,"t":"code","b":[200],"m":"iny"},{"a":38518,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38520,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":38522,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38524,"t":"code","b":[200],"m":"iny"},{"a":38525,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38527,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38529,"t":"code","b":[200],"m":"iny"},{"a":38530,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38532,"t":"code","b":[56],"m":"sec"},{"a":38533,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":38535,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38537,"t":"code","b":[200],"m":"iny"},{"a":38538,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38540,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":38542,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38544,"t":"code","b":[200],"m":"iny"},{"a":38545,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38547,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38549,"t":"code","b":[200],"m":"iny"},{"a":38550,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38552,"t":"code","b":[56],"m":"sec"},{"a":38553,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":38555,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38557,"t":"code","b":[200],"m":"iny"},{"a":38558,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38560,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":38562,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38564,"t":"code","b":[200],"m":"iny"},{"a":38565,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38567,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38569,"t":"code","b":[200],"m":"iny"},{"a":38570,"t":"code","b":[96],"m":"rts"},{"a":38571,"l":"vec_add_log","c":"Adds the log-form vectors at ($74) and ($76) component by component ($B392) into ($78)","t":"code","b":[160,8],"m":"ldy","x":[32276,37078],"o":"#$08"},{"a":38573,"l":"b_96AD","t":"code","b":[177,116],"m":"lda","oa":116,"x":[38619],"o":"(src1_ptr),y"},{"a":38575,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38577,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38579,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38581,"t":"code","b":[136],"m":"dey"},{"a":38582,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38584,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38586,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38588,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38590,"t":"code","b":[136],"m":"dey"},{"a":38591,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38593,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38595,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38597,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38599,"t":"code","b":[32,146,179],"m":"jsr","oa":45970,"o":"$B392"},{"a":38602,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38604,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38606,"t":"code","b":[200],"m":"iny"},{"a":38607,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38609,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38611,"t":"code","b":[200],"m":"iny"},{"a":38612,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":38614,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38616,"t":"code","b":[136],"m":"dey"},{"a":38617,"t":"code","b":[136],"m":"dey"},{"a":38618,"t":"code","b":[136],"m":"dey"},{"a":38619,"t":"code","b":[16,208],"m":"bpl","oa":38573,"o":"b_96AD"},{"a":38621,"t":"code","b":[96],"m":"rts"},{"a":38622,"l":"vec_sub_log","c":"Subtracts the log-form vector at ($76) from the one at ($74) component by component ($B35B) into ($78)","t":"code","b":[160,8],"m":"ldy","x":[32077,32115,32304,33140,37104],"o":"#$08"},{"a":38624,"l":"b_96E0","t":"code","b":[177,116],"m":"lda","oa":116,"x":[38670],"o":"(src1_ptr),y"},{"a":38626,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38628,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38630,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38632,"t":"code","b":[136],"m":"dey"},{"a":38633,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38635,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38637,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38639,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38641,"t":"code","b":[136],"m":"dey"},{"a":38642,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38644,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38646,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38648,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38650,"t":"code","b":[32,91,179],"m":"jsr","oa":45915,"o":"$B35B"},{"a":38653,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38655,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38657,"t":"code","b":[200],"m":"iny"},{"a":38658,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38660,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38662,"t":"code","b":[200],"m":"iny"},{"a":38663,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":38665,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38667,"t":"code","b":[136],"m":"dey"},{"a":38668,"t":"code","b":[136],"m":"dey"},{"a":38669,"t":"code","b":[136],"m":"dey"},{"a":38670,"t":"code","b":[16,208],"m":"bpl","oa":38624,"o":"b_96E0"},{"a":38672,"t":"code","b":[96],"m":"rts"},{"a":38673,"l":"vec_axpy","c":"For vec_times_rows: ($78) = s * ($74) + ($76), with the log-form number s in $5F-$61 kept at $65-$67, component by component ($B392)","t":"code","b":[165,95],"m":"lda","oa":95,"x":[37190],"o":"acc_lo"},{"a":38675,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":38677,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38679,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":38681,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":38683,"t":"code","b":[133,103],"m":"sta","oa":103,"o":"zpa_67"},{"a":38685,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38687,"l":"b_971F","t":"code","b":[165,101],"m":"lda","oa":101,"x":[38742],"o":"axpy_s"},{"a":38689,"t":"code","b":[24],"m":"clc"},{"a":38690,"t":"code","b":[113,116],"m":"adc","oa":116,"o":"(src1_ptr),y"},{"a":38692,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38694,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38696,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":38698,"t":"code","b":[200],"m":"iny"},{"a":38699,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":38701,"t":"code","b":[113,116],"m":"adc","oa":116,"o":"(src1_ptr),y"},{"a":38703,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38705,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38707,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":38709,"t":"code","b":[200],"m":"iny"},{"a":38710,"t":"code","b":[165,103],"m":"lda","oa":103,"o":"zpa_67"},{"a":38712,"t":"code","b":[81,116],"m":"eor","oa":116,"o":"(src1_ptr),y"},{"a":38714,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38716,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":38718,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":38720,"t":"code","b":[32,146,179],"m":"jsr","oa":45970,"o":"$B392"},{"a":38723,"t":"code","b":[136],"m":"dey"},{"a":38724,"t":"code","b":[136],"m":"dey"},{"a":38725,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38727,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38729,"t":"code","b":[200],"m":"iny"},{"a":38730,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38732,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38734,"t":"code","b":[200],"m":"iny"},{"a":38735,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":38737,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38739,"t":"code","b":[200],"m":"iny"},{"a":38740,"t":"code","b":[192,9],"m":"cpy","o":"#$09"},{"a":38742,"t":"code","b":[144,199],"m":"bcc","oa":38687,"o":"b_971F"},{"a":38744,"t":"code","b":[96],"m":"rts"},{"a":38745,"l":"vec_add_lin","c":"Adds the linear vectors at ($74) and ($76) into ($78), three 24-bit additions","t":"code","b":[160,0],"m":"ldy","x":[8213,8655,8982,25961,26165,28161,29961,30130,30253,30719,30831,30938],"o":"#$00"},{"a":38747,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38749,"t":"code","b":[24],"m":"clc"},{"a":38750,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38752,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38754,"t":"code","b":[200],"m":"iny"},{"a":38755,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38757,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38759,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38761,"t":"code","b":[200],"m":"iny"},{"a":38762,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38764,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38766,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38768,"t":"code","b":[200],"m":"iny"},{"a":38769,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38771,"t":"code","b":[24],"m":"clc"},{"a":38772,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38774,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38776,"t":"code","b":[200],"m":"iny"},{"a":38777,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38779,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38781,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38783,"t":"code","b":[200],"m":"iny"},{"a":38784,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38786,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38788,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38790,"t":"code","b":[200],"m":"iny"},{"a":38791,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38793,"t":"code","b":[24],"m":"clc"},{"a":38794,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38796,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38798,"t":"code","b":[200],"m":"iny"},{"a":38799,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38801,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38803,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38805,"t":"code","b":[200],"m":"iny"},{"a":38806,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38808,"t":"code","b":[113,118],"m":"adc","oa":118,"o":"(src2_ptr),y"},{"a":38810,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38812,"t":"code","b":[200],"m":"iny"},{"a":38813,"t":"code","b":[96],"m":"rts"},{"a":38814,"l":"vec_sub_lin","c":"Subtracts the linear vector at ($76) from the one at ($74) into ($78)","t":"code","b":[160,0],"m":"ldy","x":[25753,28214,30680],"o":"#$00"},{"a":38816,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38818,"t":"code","b":[56],"m":"sec"},{"a":38819,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38821,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38823,"t":"code","b":[200],"m":"iny"},{"a":38824,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38826,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38828,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38830,"t":"code","b":[200],"m":"iny"},{"a":38831,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38833,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38835,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38837,"t":"code","b":[200],"m":"iny"},{"a":38838,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38840,"t":"code","b":[56],"m":"sec"},{"a":38841,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38843,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38845,"t":"code","b":[200],"m":"iny"},{"a":38846,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38848,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38850,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38852,"t":"code","b":[200],"m":"iny"},{"a":38853,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38855,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38857,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38859,"t":"code","b":[200],"m":"iny"},{"a":38860,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38862,"t":"code","b":[56],"m":"sec"},{"a":38863,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38865,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38867,"t":"code","b":[200],"m":"iny"},{"a":38868,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38870,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38872,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38874,"t":"code","b":[200],"m":"iny"},{"a":38875,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38877,"t":"code","b":[241,118],"m":"sbc","oa":118,"o":"(src2_ptr),y"},{"a":38879,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38881,"t":"code","b":[200],"m":"iny"},{"a":38882,"t":"code","b":[96],"m":"rts"},{"a":38883,"l":"vec_neg_lin","c":"Negates the linear vector at ($74) into ($78)","t":"code","b":[160,0],"m":"ldy","x":[28186,32031],"o":"#$00"},{"a":38885,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38887,"t":"code","b":[56],"m":"sec"},{"a":38888,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38890,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38892,"t":"code","b":[200],"m":"iny"},{"a":38893,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38895,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38897,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38899,"t":"code","b":[200],"m":"iny"},{"a":38900,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38902,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38904,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38906,"t":"code","b":[200],"m":"iny"},{"a":38907,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38909,"t":"code","b":[56],"m":"sec"},{"a":38910,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38912,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38914,"t":"code","b":[200],"m":"iny"},{"a":38915,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38917,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38919,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38921,"t":"code","b":[200],"m":"iny"},{"a":38922,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38924,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38926,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38928,"t":"code","b":[200],"m":"iny"},{"a":38929,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38931,"t":"code","b":[56],"m":"sec"},{"a":38932,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38934,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38936,"t":"code","b":[200],"m":"iny"},{"a":38937,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38939,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38941,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38943,"t":"code","b":[200],"m":"iny"},{"a":38944,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38946,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38948,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38950,"t":"code","b":[200],"m":"iny"},{"a":38951,"t":"code","b":[96],"m":"rts"},{"a":38952,"l":"vec_length_store","c":"Finds the length of the log-form vector at ($74) ($9531) and stores it, positive, in the first three bytes at ($78), then runs on into vec_angles. No code in this run's snapshots calls it","t":"code","b":[32,49,149],"m":"jsr","oa":38193,"o":"vec_length"},{"a":38955,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":38957,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38959,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38961,"t":"code","b":[200],"m":"iny"},{"a":38962,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38964,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38966,"t":"code","b":[200],"m":"iny"},{"a":38967,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":38969,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":38971,"l":"vec_angles","c":"The two angles of the log-form vector at ($74), stored at ($78)+3 and +6, in units of 1024 to the turn: the first from x over z with z's sign inverted in $64 ($9981, a full turn), the second from y over the horizontal length sqrt(x*x + z*z) ($98ED)","t":"code","b":[160,0],"m":"ldy","x":[15772],"o":"#$00"},{"a":38973,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38975,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38977,"t":"code","b":[200],"m":"iny"},{"a":38978,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38980,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":38982,"t":"code","b":[200],"m":"iny"},{"a":38983,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":38985,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":38987,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":38989,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":38991,"t":"code","b":[56],"m":"sec"},{"a":38992,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":38994,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":38996,"t":"code","b":[200],"m":"iny"},{"a":38997,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":38999,"t":"code","b":[241,116],"m":"sbc","oa":116,"o":"(src1_ptr),y"},{"a":39001,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39003,"t":"code","b":[200],"m":"iny"},{"a":39004,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39006,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":39008,"t":"code","b":[133,100],"m":"sta","oa":100,"o":"arg_sign"},{"a":39010,"t":"code","b":[32,129,153],"m":"jsr","oa":39297,"o":"arctan2_log"},{"a":39013,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":39015,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":39017,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":39019,"t":"code","b":[200],"m":"iny"},{"a":39020,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39022,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":39024,"t":"code","b":[200],"m":"iny"},{"a":39025,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":39027,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":39029,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39031,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39033,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39034,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39036,"t":"code","b":[200],"m":"iny"},{"a":39037,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39039,"t":"code","b":[42],"m":"rol","o":"a"},{"a":39040,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39042,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":39044,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39046,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39047,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":39049,"t":"code","b":[200],"m":"iny"},{"a":39050,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39052,"t":"code","b":[42],"m":"rol","o":"a"},{"a":39053,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":39055,"t":"code","b":[32,152,179],"m":"jsr","oa":45976,"o":"$B398"},{"a":39058,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39060,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39061,"t":"code","b":[102,96],"m":"ror","oa":96,"o":"acc_mid"},{"a":39063,"t":"code","b":[102,95],"m":"ror","oa":95,"o":"acc_lo"},{"a":39065,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":39067,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39069,"t":"code","b":[56],"m":"sec"},{"a":39070,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":39072,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39074,"t":"code","b":[200],"m":"iny"},{"a":39075,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39077,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39079,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39081,"t":"code","b":[200],"m":"iny"},{"a":39082,"t":"code","b":[177,116],"m":"lda","oa":116,"o":"(src1_ptr),y"},{"a":39084,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39086,"t":"code","b":[32,237,152],"m":"jsr","oa":39149,"o":"arctan_log"},{"a":39089,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":39091,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":39093,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":39095,"t":"code","b":[200],"m":"iny"},{"a":39096,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39098,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":39100,"t":"code","b":[200],"m":"iny"},{"a":39101,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":39103,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":39105,"t":"code","b":[96],"m":"rts"},{"a":39106,"l":"arcsin_units","c":"The arcsine of the log-form number in $5F-$61, as arctan(x / sqrt(|x*x - 1|)): keeps the log in $65/$66, gets log(|x*x - 1|) from twice the log through SEG0's subtraction entry $B2E7, halves it, subtracts it from the kept log and runs on into arctan_log. Part of a group ($98C2-$99BD) nothing outside it calls in this run's snapshots","t":"code","b":[165,95],"m":"lda","oa":95,"x":[39246,39268],"o":"acc_lo"},{"a":39108,"t":"code","b":[133,101],"m":"sta","oa":101,"o":"axpy_s"},{"a":39110,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39112,"t":"code","b":[133,102],"m":"sta","oa":102,"o":"zpa_66"},{"a":39114,"t":"code","b":[6,95],"m":"asl","oa":95,"o":"acc_lo"},{"a":39116,"t":"code","b":[38,96],"m":"rol","oa":96,"o":"acc_mid"},{"a":39118,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39120,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":39122,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39124,"t":"code","b":[133,99],"m":"sta","oa":99,"o":"arg_mid"},{"a":39126,"t":"code","b":[32,231,178],"m":"jsr","oa":45799,"o":"$B2E7"},{"a":39129,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39131,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39132,"t":"code","b":[102,96],"m":"ror","oa":96,"o":"acc_mid"},{"a":39134,"t":"code","b":[102,95],"m":"ror","oa":95,"o":"acc_lo"},{"a":39136,"t":"code","b":[165,101],"m":"lda","oa":101,"o":"axpy_s"},{"a":39138,"t":"code","b":[56],"m":"sec"},{"a":39139,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":39141,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39143,"t":"code","b":[165,102],"m":"lda","oa":102,"o":"zpa_66"},{"a":39145,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39147,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39149,"l":"arctan_log","c":"The angle whose tangent is the log-form number in $5F-$61, in units of 1024 to the turn (128 is 45 degrees), as a 24-bit number with the angle in $60/$61: a ratio of 1 or more has its log negated (the ratio inverted); the log plus $04F4 (the ratio times about 31), back to linear, indexes the arctangent table at $99BE; an inverted ratio gives 256 less the angle, and a negative sign negates it","t":"code","b":[165,97],"m":"lda","oa":97,"x":[39086,39262,39297],"o":"acc_hi"},{"a":39151,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":39153,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39155,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":39157,"t":"code","b":[48,13],"m":"bmi","oa":39172,"o":"b_9904"},{"a":39159,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39161,"t":"code","b":[56],"m":"sec"},{"a":39162,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":39164,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39166,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39168,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39170,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39172,"l":"b_9904","t":"code","b":[165,95],"m":"lda","oa":95,"x":[39157],"o":"acc_lo"},{"a":39174,"t":"code","b":[24],"m":"clc"},{"a":39175,"t":"code","b":[105,244],"m":"adc","o":"#$F4"},{"a":39177,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39179,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39181,"t":"code","b":[105,4],"m":"adc","o":"#$04"},{"a":39183,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39185,"t":"code","b":[32,224,181],"m":"jsr","oa":46560,"o":"$B5E0"},{"a":39188,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39190,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39192,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39194,"t":"code","b":[166,96],"m":"ldx","oa":96,"o":"acc_mid"},{"a":39196,"t":"code","b":[189,190,153],"m":"lda","oa":39358,"o":"arctan_table,x"},{"a":39199,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39201,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":39203,"t":"code","b":[48,13],"m":"bmi","oa":39218,"o":"b_9932"},{"a":39205,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39207,"t":"code","b":[56],"m":"sec"},{"a":39208,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39210,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39212,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":39214,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":39216,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39218,"l":"b_9932","t":"code","b":[165,128],"m":"lda","oa":128,"x":[39203],"o":"tmp80"},{"a":39220,"t":"code","b":[16,13],"m":"bpl","oa":39235,"o":"r_9943"},{"a":39222,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39224,"t":"code","b":[56],"m":"sec"},{"a":39225,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39227,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39229,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39231,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":39233,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39235,"l":"r_9943","t":"code","b":[96],"m":"rts","x":[39220]},{"a":39236,"l":"arcsin_rad","c":"Unused: the arcsine of the log-form number in radians, log form ($98C2, $99A8); below about 0.33 (log $FE67) the number is returned as it is, the arcsine of a small number being close to it","t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":39238,"t":"code","b":[201,103],"m":"cmp","o":"#$67"},{"a":39240,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39242,"t":"code","b":[233,254],"m":"sbc","o":"#$FE"},{"a":39244,"t":"code","b":[48,44],"m":"bmi","oa":39290,"o":"r_997A"},{"a":39246,"t":"code","b":[32,194,152],"m":"jsr","oa":39106,"o":"arcsin_units"},{"a":39249,"t":"code","b":[76,168,153],"m":"jmp","oa":39336,"o":"units_to_radians"},{"a":39252,"l":"arctan_rad","c":"Unused: the arctangent in radians ($98ED, $99A8); below about 0.2 (log $FDAE) the number is returned as it is","t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":39254,"t":"code","b":[201,174],"m":"cmp","o":"#$AE"},{"a":39256,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39258,"t":"code","b":[233,253],"m":"sbc","o":"#$FD"},{"a":39260,"t":"code","b":[48,28],"m":"bmi","oa":39290,"o":"r_997A"},{"a":39262,"t":"code","b":[32,237,152],"m":"jsr","oa":39149,"o":"arctan_log"},{"a":39265,"t":"code","b":[76,168,153],"m":"jmp","oa":39336,"o":"units_to_radians"},{"a":39268,"l":"arccos_units","c":"Unused: the arccosine, 256 (90 degrees) less the arcsine ($98C2), in units of 1024 to the turn","t":"code","b":[32,194,152],"m":"jsr","oa":39106,"x":[39291],"o":"arcsin_units"},{"a":39271,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39273,"t":"code","b":[56],"m":"sec"},{"a":39274,"t":"code","b":[229,95],"m":"sbc","oa":95,"o":"acc_lo"},{"a":39276,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39278,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":39280,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39282,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39284,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39286,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":39287,"t":"note","l":"arccos_rad","c":"Misplaced label: $9977 is the operand of the SBC at $9976. The unused arccosine in radians starts at $997B (JSR arccos_units, JMP units_to_radians)","note":"inside the item at $9976"},{"a":39288,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39290,"l":"r_997A","t":"code","b":[96],"m":"rts","x":[39244,39260]},{"a":39291,"t":"code","b":[32,100,153],"m":"jsr","oa":39268,"o":"arccos_units"},{"a":39294,"t":"code","b":[76,168,153],"m":"jmp","oa":39336,"o":"units_to_radians"},{"a":39297,"l":"arctan2_log","c":"arctan_log for a vector's angle from two components: when $64 has bit 7 set the angle moves to the other half of the turn, 512 less it, or -512 less it when negative","t":"code","b":[32,237,152],"m":"jsr","oa":39149,"x":[39010],"o":"arctan_log"},{"a":39300,"t":"code","b":[165,100],"m":"lda","oa":100,"o":"arg_sign"},{"a":39302,"t":"code","b":[16,31],"m":"bpl","oa":39335,"o":"r_99A7"},{"a":39304,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":39306,"t":"code","b":[16,14],"m":"bpl","oa":39322,"o":"b_999A"},{"a":39308,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39310,"t":"code","b":[56],"m":"sec"},{"a":39311,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39313,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39315,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":39317,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":39319,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39321,"t":"code","b":[96],"m":"rts"},{"a":39322,"l":"b_999A","t":"code","b":[169,0],"m":"lda","x":[39306],"o":"#$00"},{"a":39324,"t":"code","b":[56],"m":"sec"},{"a":39325,"t":"code","b":[229,96],"m":"sbc","oa":96,"o":"acc_mid"},{"a":39327,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39329,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":39331,"t":"code","b":[229,97],"m":"sbc","oa":97,"o":"acc_hi"},{"a":39333,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":39335,"l":"r_99A7","t":"code","b":[96],"m":"rts","x":[39302]},{"a":39336,"l":"units_to_radians","c":"Converts an angle in units of 1024 to the turn to radians in log form: to log form ($B45A), then less $0759, log2 of 1024 over two pi. Y is kept in the operand at $99AF","t":"code","b":[140,175,153],"m":"sty","oa":39343,"x":[39249,39265,39294],"o":"a_99AF"},{"a":39339,"t":"code","b":[32,90,180],"m":"jsr","oa":46170,"o":"$B45A"},{"a":39342,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39343,"t":"note","l":"a_99AF","c":"The caller's Y, kept in the LDY operand at $99AE while units_to_radians calls lin_to_log","note":"inside the item at $99AE","x":[39336]},{"a":39344,"t":"code","b":[165,95],"m":"lda","oa":95,"o":"acc_lo"},{"a":39346,"t":"code","b":[56],"m":"sec"},{"a":39347,"t":"code","b":[233,89],"m":"sbc","o":"#$59"},{"a":39349,"t":"code","b":[133,95],"m":"sta","oa":95,"o":"acc_lo"},{"a":39351,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":39353,"t":"code","b":[233,7],"m":"sbc","o":"#$07"},{"a":39355,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":39357,"t":"code","b":[96],"m":"rts"},{"a":39358,"l":"arctan_table","c":"32 angles for tangents 0 to 31/32, in units of 1024 to the turn: 0, 5, 10 ... 126 (just under 45 degrees, 128)","t":"byte","b":[0,5,10,15,20,25,30,35],"x":[39196]},{"a":39366,"t":"byte","b":[40,45,50,54,59,63,67,72]},{"a":39374,"t":"byte","b":[76,80,84,88,91,95,98,102]},{"a":39382,"t":"byte","b":[105,108,112,115,117,120,123,126]},{"a":39390,"l":"menu","c":"A menu of A items ($8B), each Y characters wide ($8A): ($7A) points to the items' text addresses (two bytes each), and when $79 is nonzero ($78) to a flag for each, 0 for an item that cannot be chosen (drawn dimmed). Draws the items one text line apart from the cursor ($9A62), lets the player choose ($99F2), blanks them ($9AAF) and returns the choice in Y","t":"code","b":[133,139],"m":"sta","oa":139,"x":[9718,15296],"o":"tmp8B"},{"a":39392,"t":"code","b":[132,138],"m":"sty","oa":138,"o":"tmp8A"},{"a":39394,"t":"code","b":[32,98,154],"m":"jsr","oa":39522,"o":"menu_draw"},{"a":39397,"t":"code","b":[32,242,153],"m":"jsr","oa":39410,"o":"menu_select"},{"a":39400,"t":"code","b":[32,175,154],"m":"jsr","oa":39599,"o":"menu_blank"},{"a":39403,"t":"code","b":[164,140],"m":"ldy","oa":140,"o":"tmp8C"},{"a":39405,"t":"code","b":[96],"m":"rts"},{"a":39406,"l":"menu_choose","c":"The choosing part alone, for a menu already on the screen (A items, Y wide): called by the base and Hive! code ($AFB7 and others in SEG1)","t":"code","b":[133,139],"m":"sta","oa":139,"o":"tmp8B"},{"a":39408,"t":"code","b":[132,138],"m":"sty","oa":138,"o":"tmp8A"},{"a":39410,"l":"menu_select","c":"Waits for the fire button to be let go, puts the bar on the first item ($9F8F) and loops: up and down (keys or joystick, $9AA3) move the bar a line ($50 + or - 9), Return, Space or fire chooses. A chosen item whose flag is 0 is refused; the bar blinks three times and the item's number is returned in Y","t":"code","b":[32,68,164],"m":"jsr","oa":42052,"x":[39397],"o":"wait_fire_up"},{"a":39413,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39415,"t":"code","b":[133,140],"m":"sta","oa":140,"o":"tmp8C"},{"a":39417,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":39419,"t":"code","b":[32,143,159],"m":"jsr","oa":40847,"o":"invert_bar"},{"a":39422,"l":"j_99FE","t":"code","b":[32,39,164],"m":"jsr","oa":42023,"x":[39485,39499],"o":"fire_pressed"},{"a":39425,"t":"code","b":[208,61],"m":"bne","oa":39488,"o":"b_9A40"},{"a":39427,"t":"code","b":[32,163,154],"m":"jsr","oa":39587,"o":"menu_key"},{"a":39430,"t":"code","b":[240,48],"m":"beq","oa":39480,"o":"b_9A38"},{"a":39432,"t":"code","b":[48,20],"m":"bmi","oa":39454,"o":"b_9A1E"},{"a":39434,"t":"code","b":[166,140],"m":"ldx","oa":140,"o":"tmp8C"},{"a":39436,"t":"code","b":[240,42],"m":"beq","oa":39480,"o":"b_9A38"},{"a":39438,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":39440,"t":"code","b":[32,143,159],"m":"jsr","oa":40847,"o":"invert_bar"},{"a":39443,"t":"code","b":[198,140],"m":"dec","oa":140,"o":"tmp8C"},{"a":39445,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":39447,"t":"code","b":[24],"m":"clc"},{"a":39448,"t":"code","b":[105,9],"m":"adc","o":"#$09"},{"a":39450,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39452,"t":"code","b":[208,21],"m":"bne","oa":39475,"o":"b_9A33"},{"a":39454,"l":"b_9A1E","t":"code","b":[166,140],"m":"ldx","oa":140,"x":[39432],"o":"tmp8C"},{"a":39456,"t":"code","b":[232],"m":"inx"},{"a":39457,"t":"code","b":[228,139],"m":"cpx","oa":139,"o":"tmp8B"},{"a":39459,"t":"code","b":[176,19],"m":"bcs","oa":39480,"o":"b_9A38"},{"a":39461,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":39463,"t":"code","b":[32,143,159],"m":"jsr","oa":40847,"o":"invert_bar"},{"a":39466,"t":"code","b":[230,140],"m":"inc","oa":140,"o":"tmp8C"},{"a":39468,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":39470,"t":"code","b":[56],"m":"sec"},{"a":39471,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":39473,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39475,"l":"b_9A33","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[39452],"o":"tmp8A"},{"a":39477,"t":"code","b":[32,143,159],"m":"jsr","oa":40847,"o":"invert_bar"},{"a":39480,"l":"b_9A38","t":"code","b":[169,1],"m":"lda","x":[39430,39436,39459],"o":"#$01"},{"a":39482,"t":"code","b":[32,23,163],"m":"jsr","oa":41751,"o":"wait_ticks"},{"a":39485,"t":"code","b":[76,254,153],"m":"jmp","oa":39422,"o":"j_99FE"},{"a":39488,"l":"b_9A40","c":"Chosen: wait for fire to be let go, refuse a disabled item, then blink the bar","t":"code","b":[32,68,164],"m":"jsr","oa":42052,"x":[39425,39596],"o":"wait_fire_up"},{"a":39491,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":39493,"t":"code","b":[240,6],"m":"beq","oa":39501,"o":"b_9A4D"},{"a":39495,"t":"code","b":[164,140],"m":"ldy","oa":140,"o":"tmp8C"},{"a":39497,"t":"code","b":[177,120],"m":"lda","oa":120,"o":"(dest_ptr),y"},{"a":39499,"t":"code","b":[240,177],"m":"beq","oa":39422,"o":"j_99FE"},{"a":39501,"l":"b_9A4D","t":"code","b":[169,2],"m":"lda","x":[39493],"o":"#$02"},{"a":39503,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"tmp8F"},{"a":39505,"l":"b_9A51","t":"code","b":[164,138],"m":"ldy","oa":138,"x":[39517],"o":"tmp8A"},{"a":39507,"t":"code","b":[32,143,159],"m":"jsr","oa":40847,"o":"invert_bar"},{"a":39510,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":39512,"t":"code","b":[32,23,163],"m":"jsr","oa":41751,"o":"wait_ticks"},{"a":39515,"t":"code","b":[198,143],"m":"dec","oa":143,"o":"tmp8F"},{"a":39517,"t":"code","b":[16,242],"m":"bpl","oa":39505,"o":"b_9A51"},{"a":39519,"t":"code","b":[164,140],"m":"ldy","oa":140,"o":"tmp8C"},{"a":39521,"t":"code","b":[96],"m":"rts"},{"a":39522,"l":"menu_draw","c":"Prints the $8F items from the cursor down, one text line (9 pixel rows) apart, each at the same column, dimming ($9FF3) those whose flag is 0; the cursor row is put back after","t":"code","b":[133,143],"m":"sta","oa":143,"x":[39394],"o":"tmp8F"},{"a":39524,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39526,"t":"code","b":[133,144],"m":"sta","oa":144,"o":"tmp90"},{"a":39528,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":39530,"t":"code","b":[133,142],"m":"sta","oa":142,"o":"tmp8E"},{"a":39532,"l":"b_9A6C","t":"code","b":[165,144],"m":"lda","oa":144,"x":[39580],"o":"tmp90"},{"a":39534,"t":"code","b":[10],"m":"asl","o":"a"},{"a":39535,"t":"code","b":[168],"m":"tay"},{"a":39536,"t":"code","b":[177,122],"m":"lda","oa":122,"o":"(model_ptr),y"},{"a":39538,"t":"code","b":[170],"m":"tax"},{"a":39539,"t":"code","b":[200],"m":"iny"},{"a":39540,"t":"code","b":[177,122],"m":"lda","oa":122,"o":"(model_ptr),y"},{"a":39542,"t":"code","b":[168],"m":"tay"},{"a":39543,"t":"code","b":[165,79],"m":"lda","oa":79,"o":"cursor_col"},{"a":39545,"t":"code","b":[72],"m":"pha"},{"a":39546,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":39549,"t":"code","b":[104],"m":"pla"},{"a":39550,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":39552,"t":"code","b":[165,121],"m":"lda","oa":121,"o":"zpa_79"},{"a":39554,"t":"code","b":[240,11],"m":"beq","oa":39567,"o":"b_9A8F"},{"a":39556,"t":"code","b":[164,144],"m":"ldy","oa":144,"o":"tmp90"},{"a":39558,"t":"code","b":[177,120],"m":"lda","oa":120,"o":"(dest_ptr),y"},{"a":39560,"t":"code","b":[208,5],"m":"bne","oa":39567,"o":"b_9A8F"},{"a":39562,"t":"code","b":[164,138],"m":"ldy","oa":138,"o":"tmp8A"},{"a":39564,"t":"code","b":[32,243,159],"m":"jsr","oa":40947,"o":"dim_item"},{"a":39567,"l":"b_9A8F","t":"code","b":[198,143],"m":"dec","oa":143,"x":[39554,39560],"o":"tmp8F"},{"a":39569,"t":"code","b":[240,11],"m":"beq","oa":39582,"o":"b_9A9E"},{"a":39571,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":39573,"t":"code","b":[56],"m":"sec"},{"a":39574,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":39576,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39578,"t":"code","b":[230,144],"m":"inc","oa":144,"o":"tmp90"},{"a":39580,"t":"code","b":[208,206],"m":"bne","oa":39532,"o":"b_9A6C"},{"a":39582,"l":"b_9A9E","t":"code","b":[165,142],"m":"lda","oa":142,"x":[39569],"o":"tmp8E"},{"a":39584,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39586,"t":"code","b":[96],"m":"rts"},{"a":39587,"l":"menu_key","c":"Reads the keys or the joystick as a direction ($A33F): returns the up-down step in A (1 up, $FF down, 0 none); Return or Space jumps straight to choosing","t":"code","b":[32,63,163],"m":"jsr","oa":41791,"x":[39427],"o":"key_direction"},{"a":39590,"t":"code","b":[176,2],"m":"bcs","oa":39594,"o":"b_9AAA"},{"a":39592,"t":"code","b":[152],"m":"tya"},{"a":39593,"t":"code","b":[96],"m":"rts"},{"a":39594,"l":"b_9AAA","t":"code","b":[104],"m":"pla","x":[39590]},{"a":39595,"t":"code","b":[104],"m":"pla"},{"a":39596,"t":"code","b":[76,64,154],"m":"jmp","oa":39488,"o":"b_9A40"},{"a":39599,"l":"menu_blank","c":"Blanks the menu's lines: Y spaces on each of the $8B lines from the first item's position","t":"code","b":[165,142],"m":"lda","oa":142,"x":[39400],"o":"tmp8E"},{"a":39601,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39603,"t":"code","b":[165,79],"m":"lda","oa":79,"o":"cursor_col"},{"a":39605,"t":"code","b":[133,141],"m":"sta","oa":141,"o":"tmp8D"},{"a":39607,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39609,"t":"code","b":[133,144],"m":"sta","oa":144,"o":"tmp90"},{"a":39611,"l":"b_9ABB","t":"code","b":[165,138],"m":"lda","oa":138,"x":[39641],"o":"tmp8A"},{"a":39613,"t":"code","b":[133,143],"m":"sta","oa":143,"o":"tmp8F"},{"a":39615,"t":"code","b":[165,141],"m":"lda","oa":141,"o":"tmp8D"},{"a":39617,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":39619,"l":"b_9AC3","t":"code","b":[169,32],"m":"lda","x":[39626],"o":"#$20"},{"a":39621,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":39624,"t":"code","b":[198,143],"m":"dec","oa":143,"o":"tmp8F"},{"a":39626,"t":"code","b":[208,247],"m":"bne","oa":39619,"o":"b_9AC3"},{"a":39628,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":39630,"t":"code","b":[56],"m":"sec"},{"a":39631,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":39633,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39635,"t":"code","b":[230,144],"m":"inc","oa":144,"o":"tmp90"},{"a":39637,"t":"code","b":[165,144],"m":"lda","oa":144,"o":"tmp90"},{"a":39639,"t":"code","b":[197,139],"m":"cmp","oa":139,"o":"tmp8B"},{"a":39641,"t":"code","b":[208,224],"m":"bne","oa":39611,"o":"b_9ABB"},{"a":39643,"t":"code","b":[96],"m":"rts"},{"a":39644,"l":"print_message","c":"Prints the text at A (high byte) and X (low byte) as a message: $0D29 set to 10, the current window (callers select window 0, the message line, first) scrolled up two lines or, when it is one line high, blanked ($A178), and the text printed from its bottom left corner (print_text)","t":"code","b":[72],"m":"pha","x":[5083,5463,6171,6190,6920,7711,9543,10045,10189,10667,26096,28549,29095,29207,29241,31027]},{"a":39645,"t":"code","b":[138],"m":"txa"},{"a":39646,"t":"code","b":[72],"m":"pha"},{"a":39647,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":39649,"t":"code","b":[141,41,13],"m":"sta","oa":3369,"o":"message_timer"},{"a":39652,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":39654,"t":"code","b":[32,120,161],"m":"jsr","oa":41336,"o":"scroll_window"},{"a":39657,"t":"code","b":[173,32,13],"m":"lda","oa":3360,"o":"win_left"},{"a":39660,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":39662,"t":"code","b":[173,35,13],"m":"lda","oa":3363,"o":"win_bottom"},{"a":39665,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":39667,"t":"code","b":[104],"m":"pla"},{"a":39668,"t":"code","b":[170],"m":"tax"},{"a":39669,"t":"code","b":[104],"m":"pla"},{"a":39670,"t":"code","b":[168],"m":"tay"},{"a":39671,"t":"code","b":[76,155,155],"m":"jmp","oa":39835,"o":"print_text"},{"a":39674,"l":"print_wrapped","c":"Prints the text at A (high byte) and X (low byte), disk text included ($9BB7), word-wrapped to the current window: each line is cut at the last space that fits ($9B19), put at $FF05 and printed","t":"code","b":[168],"m":"tay","x":[11123,11155,14654,14765,14826,14853,14882,15107,15124,15136,15146,15163,15173]},{"a":39675,"t":"code","b":[32,183,155],"m":"jsr","oa":39863,"o":"resolve_text"},{"a":39678,"t":"code","b":[134,116],"m":"stx","oa":116,"o":"src1_ptr"},{"a":39680,"t":"code","b":[132,117],"m":"sty","oa":117,"o":"zpa_75"},{"a":39682,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39684,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":39686,"l":"b_9B06","t":"code","b":[164,134],"m":"ldy","oa":134,"x":[39702],"o":"tmp86"},{"a":39688,"t":"code","b":[32,25,155],"m":"jsr","oa":39705,"o":"wrap_line"},{"a":39691,"t":"code","b":[132,134],"m":"sty","oa":134,"o":"tmp86"},{"a":39693,"t":"code","b":[8],"m":"php"},{"a":39694,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":39696,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":39698,"t":"code","b":[32,155,155],"m":"jsr","oa":39835,"o":"print_text"},{"a":39701,"t":"code","b":[40],"m":"plp"},{"a":39702,"t":"code","b":[144,238],"m":"bcc","oa":39686,"o":"b_9B06"},{"a":39704,"t":"code","b":[96],"m":"rts"},{"a":39705,"l":"wrap_line","c":"Copies the next line of the text at ($74) from offset Y into $FF05, as much as fits between the cursor and the window's right edge ($0D21): leading spaces skipped, cut back to the last space when the room runs out, and ended with $0D. Carry set at the end of the text. A $0D in the text straight after an automatic break is dropped ($9B84). A word wider than the whole window is cut back to nothing every time, so print_wrapped prints new lines for ever","t":"code","b":[162,0],"m":"ldx","x":[39688],"o":"#$00"},{"a":39707,"t":"code","b":[173,33,13],"m":"lda","oa":3361,"o":"win_right"},{"a":39710,"t":"code","b":[56],"m":"sec"},{"a":39711,"t":"code","b":[229,79],"m":"sbc","oa":79,"o":"cursor_col"},{"a":39713,"t":"code","b":[144,57],"m":"bcc","oa":39772,"o":"b_9B5C"},{"a":39715,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":39717,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":39719,"t":"code","b":[136],"m":"dey"},{"a":39720,"l":"b_9B28","t":"code","b":[200],"m":"iny","x":[39723]},{"a":39721,"t":"code","b":[209,116],"m":"cmp","oa":116,"o":"(src1_ptr),y"},{"a":39723,"t":"code","b":[240,251],"m":"beq","oa":39720,"o":"b_9B28"},{"a":39725,"l":"b_9B2D","t":"code","b":[177,116],"m":"lda","oa":116,"x":[39740],"o":"(src1_ptr),y"},{"a":39727,"t":"code","b":[157,5,255],"m":"sta","oa":65285,"o":"f_FF05,x"},{"a":39730,"t":"code","b":[240,57],"m":"beq","oa":39789,"o":"b_9B6D"},{"a":39732,"t":"code","b":[200],"m":"iny"},{"a":39733,"t":"code","b":[232],"m":"inx"},{"a":39734,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":39736,"t":"code","b":[144,53],"m":"bcc","oa":39791,"o":"b_9B6F"},{"a":39738,"t":"code","b":[198,135],"m":"dec","oa":135,"o":"tmp87"},{"a":39740,"t":"code","b":[16,239],"m":"bpl","oa":39725,"o":"b_9B2D"},{"a":39742,"t":"code","b":[202],"m":"dex"},{"a":39743,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":39745,"t":"code","b":[221,5,255],"m":"cmp","oa":65285,"o":"f_FF05,x"},{"a":39748,"t":"code","b":[176,13],"m":"bcs","oa":39763,"o":"b_9B53"},{"a":39750,"t":"code","b":[209,116],"m":"cmp","oa":116,"o":"(src1_ptr),y"},{"a":39752,"t":"code","b":[176,9],"m":"bcs","oa":39763,"o":"b_9B53"},{"a":39754,"l":"b_9B4A","t":"code","b":[136],"m":"dey","x":[39761]},{"a":39755,"t":"code","b":[202],"m":"dex"},{"a":39756,"t":"code","b":[48,13],"m":"bmi","oa":39771,"o":"b_9B5B"},{"a":39758,"t":"code","b":[221,5,255],"m":"cmp","oa":65285,"o":"f_FF05,x"},{"a":39761,"t":"code","b":[208,247],"m":"bne","oa":39754,"o":"b_9B4A"},{"a":39763,"l":"b_9B53","t":"code","b":[221,5,255],"m":"cmp","oa":65285,"x":[39748,39752,39769],"o":"f_FF05,x"},{"a":39766,"t":"code","b":[208,3],"m":"bne","oa":39771,"o":"b_9B5B"},{"a":39768,"t":"code","b":[202],"m":"dex"},{"a":39769,"t":"code","b":[16,248],"m":"bpl","oa":39763,"o":"b_9B53"},{"a":39771,"l":"b_9B5B","t":"code","b":[232],"m":"inx","x":[39756,39766]},{"a":39772,"l":"b_9B5C","t":"code","b":[169,13],"m":"lda","x":[39713],"o":"#$0D"},{"a":39774,"t":"code","b":[157,5,255],"m":"sta","oa":65285,"o":"f_FF05,x"},{"a":39777,"t":"code","b":[232],"m":"inx"},{"a":39778,"t":"code","b":[238,132,155],"m":"inc","oa":39812,"o":"wrap_flag"},{"a":39781,"l":"b_9B65","t":"code","b":[169,0],"m":"lda","x":[39793,39810],"o":"#$00"},{"a":39783,"t":"code","b":[157,5,255],"m":"sta","oa":65285,"o":"f_FF05,x"},{"a":39786,"t":"code","b":[202],"m":"dex"},{"a":39787,"t":"code","b":[24],"m":"clc"},{"a":39788,"t":"code","b":[96],"m":"rts"},{"a":39789,"l":"b_9B6D","t":"code","b":[56],"m":"sec","x":[39730]},{"a":39790,"t":"code","b":[96],"m":"rts"},{"a":39791,"l":"b_9B6F","t":"code","b":[201,13],"m":"cmp","x":[39736],"o":"#$0D"},{"a":39793,"t":"code","b":[208,242],"m":"bne","oa":39781,"o":"b_9B65"},{"a":39795,"t":"code","b":[224,1],"m":"cpx","o":"#$01"},{"a":39797,"t":"code","b":[208,6],"m":"bne","oa":39805,"o":"b_9B7D"},{"a":39799,"t":"code","b":[173,132,155],"m":"lda","oa":39812,"o":"wrap_flag"},{"a":39802,"t":"code","b":[240,1],"m":"beq","oa":39805,"o":"b_9B7D"},{"a":39804,"t":"code","b":[202],"m":"dex"},{"a":39805,"l":"b_9B7D","t":"code","b":[169,0],"m":"lda","x":[39797,39802],"o":"#$00"},{"a":39807,"t":"code","b":[141,132,155],"m":"sta","oa":39812,"o":"wrap_flag"},{"a":39810,"t":"code","b":[240,225],"m":"beq","oa":39781,"o":"b_9B65"},{"a":39812,"l":"wrap_flag","c":"Set when wrap_line broke a line itself","t":"byte","b":[0],"x":[39778,39799,39807]},{"a":39813,"l":"text_length","c":"The length of the text at ($74), disk text included, in Y; the address is patched into the LDA at $9B95","t":"code","b":[166,116],"m":"ldx","oa":116,"x":[11179],"o":"src1_ptr"},{"a":39815,"t":"code","b":[164,117],"m":"ldy","oa":117,"o":"zpa_75"},{"a":39817,"t":"code","b":[32,183,155],"m":"jsr","oa":39863,"o":"resolve_text"},{"a":39820,"t":"code","b":[142,150,155],"m":"stx","oa":39830,"o":"a_9B96"},{"a":39823,"t":"code","b":[140,151,155],"m":"sty","oa":39831,"o":"a_9B97"},{"a":39826,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":39828,"l":"b_9B94","t":"code","b":[200],"m":"iny","x":[39832]},{"a":39829,"t":"code","b":[185,255,255],"m":"lda","oa":65535,"o":"$FFFF,y"},{"a":39830,"t":"note","l":"a_9B96","c":"Low byte of the text's address, patched by text_length into the LDA at $9B95","note":"inside the item at $9B95","x":[39820]},{"a":39831,"t":"note","l":"a_9B97","c":"High byte of the text's address for text_length ($FF until patched)","note":"inside the item at $9B95","x":[39823]},{"a":39832,"t":"code","b":[208,250],"m":"bne","oa":39828,"o":"b_9B94"},{"a":39834,"t":"code","b":[96],"m":"rts"},{"a":39835,"l":"print_text","c":"Prints the zero-ended text at Y (high byte) and X (low byte) character by character (print_char), after resolving a disk-text number ($9BB7); the address is patched into the LDA at $9BAA","t":"code","b":[32,183,155],"m":"jsr","oa":39863,"x":[6180,6930,7768,8333,8357,10210,10273,10280,10869,10901,12032,12764,13272,13319,13354,13380,13401,13420,13455,29248,39546,39671,39698],"o":"resolve_text"},{"a":39838,"t":"code","b":[142,171,155],"m":"stx","oa":39851,"o":"a_9BAB"},{"a":39841,"t":"code","b":[140,172,155],"m":"sty","oa":39852,"o":"a_9BAC"},{"a":39844,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":39846,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":39848,"l":"b_9BA8","t":"code","b":[164,133],"m":"ldy","oa":133,"x":[39860],"o":"tmp85"},{"a":39850,"t":"code","b":[185,252,52],"m":"lda","oa":13564,"o":"$34FC,y"},{"a":39851,"t":"note","l":"a_9BAB","c":"Low byte of the text print_text prints, patched in after resolve_text","note":"inside the item at $9BAA","x":[39838]},{"a":39852,"t":"note","l":"a_9BAC","c":"High byte of the text print_text prints","note":"inside the item at $9BAA","x":[39841]},{"a":39853,"t":"code","b":[240,7],"m":"beq","oa":39862,"o":"r_9BB6"},{"a":39855,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":39858,"t":"code","b":[230,133],"m":"inc","oa":133,"o":"tmp85"},{"a":39860,"t":"code","b":[208,242],"m":"bne","oa":39848,"o":"b_9BA8"},{"a":39862,"l":"r_9BB6","t":"code","b":[96],"m":"rts","x":[39853]},{"a":39863,"l":"resolve_text","c":"Turns a text address in Y/X into one that can be read. $FFFF means no text: the caller's return address is dropped, so the caller returns at once. An address from $C000 to $CFFF is a disk-text number, (Y - $C0) * 256 + X: the text is fetched from disk, decoded into $BF00 and X/Y returned as $BF00. Anything else is returned as it is","t":"code","b":[192,192],"m":"cpy","x":[39675,39817,39835,40434,40475,40486],"o":"#$C0"},{"a":39865,"t":"code","b":[144,4],"m":"bcc","oa":39871,"o":"b_9BBF"},{"a":39867,"t":"code","b":[192,208],"m":"cpy","o":"#$D0"},{"a":39869,"t":"code","b":[144,11],"m":"bcc","oa":39882,"o":"b_9BCA"},{"a":39871,"l":"b_9BBF","t":"code","b":[192,255],"m":"cpy","x":[39865],"o":"#$FF"},{"a":39873,"t":"code","b":[208,6],"m":"bne","oa":39881,"o":"r_9BC9"},{"a":39875,"t":"code","b":[224,255],"m":"cpx","o":"#$FF"},{"a":39877,"t":"code","b":[208,2],"m":"bne","oa":39881,"o":"r_9BC9"},{"a":39879,"t":"code","b":[104],"m":"pla"},{"a":39880,"t":"code","b":[104],"m":"pla"},{"a":39881,"l":"r_9BC9","t":"code","b":[96],"m":"rts","x":[39873,39877]},{"a":39882,"l":"b_9BCA","c":"Disk text: subtracts the counts in SPB's table at $BD00 (one word for each 512-byte block of text) until the number goes negative, giving the block (Y/2) and the text's place in it; the text that is the last in its block may run on into the next, which $9CB2 notes","t":"code","b":[134,130],"m":"stx","oa":130,"x":[39869],"o":"tmp82"},{"a":39884,"t":"code","b":[152],"m":"tya"},{"a":39885,"t":"code","b":[56],"m":"sec"},{"a":39886,"t":"code","b":[233,192],"m":"sbc","o":"#$C0"},{"a":39888,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":39890,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39892,"t":"code","b":[140,178,156],"m":"sty","oa":40114,"o":"a_9CB2"},{"a":39895,"l":"b_9BD7","t":"code","b":[165,130],"m":"lda","oa":130,"x":[39914],"o":"tmp82"},{"a":39897,"t":"code","b":[56],"m":"sec"},{"a":39898,"t":"code","b":[249,0,189],"m":"sbc","oa":48384,"o":"spb,y"},{"a":39901,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":39903,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":39905,"t":"code","b":[249,1,189],"m":"sbc","oa":48385,"o":"spb_hi,y"},{"a":39908,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":39910,"t":"code","b":[48,4],"m":"bmi","oa":39916,"o":"b_9BEC"},{"a":39912,"t":"code","b":[200],"m":"iny"},{"a":39913,"t":"code","b":[200],"m":"iny"},{"a":39914,"t":"code","b":[208,235],"m":"bne","oa":39895,"o":"b_9BD7"},{"a":39916,"l":"b_9BEC","t":"code","b":[165,130],"m":"lda","oa":130,"x":[39910],"o":"tmp82"},{"a":39918,"t":"code","b":[37,131],"m":"and","oa":131,"o":"tmp83"},{"a":39920,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":39922,"t":"code","b":[208,3],"m":"bne","oa":39927,"o":"b_9BF7"},{"a":39924,"t":"code","b":[238,178,156],"m":"inc","oa":40114,"o":"a_9CB2"},{"a":39927,"l":"b_9BF7","t":"code","b":[165,130],"m":"lda","oa":130,"x":[39922],"o":"tmp82"},{"a":39929,"t":"code","b":[24],"m":"clc"},{"a":39930,"t":"code","b":[121,0,189],"m":"adc","oa":48384,"o":"spb,y"},{"a":39933,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":39935,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":39937,"t":"code","b":[121,1,189],"m":"adc","oa":48385,"o":"spb_hi,y"},{"a":39940,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":39942,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":39944,"t":"code","b":[72],"m":"pha"},{"a":39945,"t":"code","b":[165,130],"m":"lda","oa":130,"o":"tmp82"},{"a":39947,"t":"code","b":[72],"m":"pha"},{"a":39948,"c":"Two blocks are kept: $F600 holds block $9CB0 and $F800 block $9CB1. A block already in one buffer is moved or kept; otherwise it is read from disk into $F600 ($9CB6)","t":"code","b":[152],"m":"tya"},{"a":39949,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":39950,"t":"code","b":[170],"m":"tax"},{"a":39951,"t":"code","b":[142,179,156],"m":"stx","oa":40115,"o":"a_9CB3"},{"a":39954,"t":"code","b":[141,180,156],"m":"sta","oa":40116,"o":"a_9CB4"},{"a":39957,"t":"code","b":[232],"m":"inx"},{"a":39958,"t":"code","b":[236,176,156],"m":"cpx","oa":40112,"o":"text_block"},{"a":39961,"t":"code","b":[208,23],"m":"bne","oa":39986,"o":"b_9C32"},{"a":39963,"t":"code","b":[142,177,156],"m":"stx","oa":40113,"o":"a_9CB1"},{"a":39966,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":39968,"l":"b_9C20","t":"code","b":[185,0,246],"m":"lda","oa":62976,"x":[39975],"o":"f_F600,y"},{"a":39971,"t":"code","b":[153,0,248],"m":"sta","oa":63488,"o":"f_F800,y"},{"a":39974,"t":"code","b":[200],"m":"iny"},{"a":39975,"t":"code","b":[208,247],"m":"bne","oa":39968,"o":"b_9C20"},{"a":39977,"l":"b_9C29","t":"code","b":[185,0,247],"m":"lda","oa":63232,"x":[39984],"o":"f_F700,y"},{"a":39980,"t":"code","b":[153,0,249],"m":"sta","oa":63744,"o":"f_F900,y"},{"a":39983,"t":"code","b":[200],"m":"iny"},{"a":39984,"t":"code","b":[208,247],"m":"bne","oa":39977,"o":"b_9C29"},{"a":39986,"l":"b_9C32","t":"code","b":[202],"m":"dex","x":[39961]},{"a":39987,"t":"code","b":[236,176,156],"m":"cpx","oa":40112,"o":"text_block"},{"a":39990,"t":"code","b":[142,176,156],"m":"stx","oa":40112,"o":"text_block"},{"a":39993,"t":"code","b":[240,32],"m":"beq","oa":40027,"o":"b_9C5B"},{"a":39995,"t":"code","b":[236,177,156],"m":"cpx","oa":40113,"o":"a_9CB1"},{"a":39998,"t":"code","b":[208,22],"m":"bne","oa":40022,"o":"b_9C56"},{"a":40000,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":40002,"l":"b_9C42","t":"code","b":[185,0,248],"m":"lda","oa":63488,"x":[40009],"o":"f_F800,y"},{"a":40005,"t":"code","b":[153,0,246],"m":"sta","oa":62976,"o":"f_F600,y"},{"a":40008,"t":"code","b":[200],"m":"iny"},{"a":40009,"t":"code","b":[208,247],"m":"bne","oa":40002,"o":"b_9C42"},{"a":40011,"l":"b_9C4B","t":"code","b":[185,0,249],"m":"lda","oa":63744,"x":[40018],"o":"f_F900,y"},{"a":40014,"t":"code","b":[153,0,247],"m":"sta","oa":63232,"o":"f_F700,y"},{"a":40017,"t":"code","b":[200],"m":"iny"},{"a":40018,"t":"code","b":[208,247],"m":"bne","oa":40011,"o":"b_9C4B"},{"a":40020,"t":"code","b":[240,5],"m":"beq","oa":40027,"o":"b_9C5B"},{"a":40022,"l":"b_9C56","t":"code","b":[162,246],"m":"ldx","x":[39998],"o":"#$F6"},{"a":40024,"t":"code","b":[32,182,156],"m":"jsr","oa":40118,"o":"read_text_block"},{"a":40027,"l":"b_9C5B","c":"A text that may run over the block's end gets the next block in $F800","t":"code","b":[173,178,156],"m":"lda","oa":40114,"x":[39993,40020],"o":"a_9CB2"},{"a":40030,"t":"code","b":[240,24],"m":"beq","oa":40056,"o":"b_9C78"},{"a":40032,"t":"code","b":[174,176,156],"m":"ldx","oa":40112,"o":"text_block"},{"a":40035,"t":"code","b":[224,255],"m":"cpx","o":"#$FF"},{"a":40037,"t":"code","b":[240,17],"m":"beq","oa":40056,"o":"b_9C78"},{"a":40039,"t":"code","b":[232],"m":"inx"},{"a":40040,"t":"code","b":[236,177,156],"m":"cpx","oa":40113,"o":"a_9CB1"},{"a":40043,"t":"code","b":[142,177,156],"m":"stx","oa":40113,"o":"a_9CB1"},{"a":40046,"t":"code","b":[240,8],"m":"beq","oa":40056,"o":"b_9C78"},{"a":40048,"t":"code","b":[162,248],"m":"ldx","o":"#$F8"},{"a":40050,"t":"code","b":[238,180,156],"m":"inc","oa":40116,"o":"a_9CB4"},{"a":40053,"t":"code","b":[32,182,156],"m":"jsr","oa":40118,"o":"read_text_block"},{"a":40056,"l":"b_9C78","c":"Decodes from the block's buffer ($9D40): a block that does not start with a fresh text first skips the end of the one before, then the texts before ours are skipped, and ours decoded into $BF00 up to its zero","t":"code","b":[104],"m":"pla","x":[40030,40037,40046]},{"a":40057,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":40059,"t":"code","b":[104],"m":"pla"},{"a":40060,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":40062,"t":"code","b":[169,246],"m":"lda","o":"#$F6"},{"a":40064,"t":"code","b":[174,176,156],"m":"ldx","oa":40112,"o":"text_block"},{"a":40067,"t":"code","b":[236,179,156],"m":"cpx","oa":40115,"o":"a_9CB3"},{"a":40070,"t":"code","b":[240,2],"m":"beq","oa":40074,"o":"b_9C8A"},{"a":40072,"t":"code","b":[169,248],"m":"lda","o":"#$F8"},{"a":40074,"l":"b_9C8A","t":"code","b":[32,64,157],"m":"jsr","oa":40256,"x":[40070],"o":"start_bits"},{"a":40077,"t":"code","b":[48,5],"m":"bmi","oa":40084,"o":"b_9C94"},{"a":40079,"l":"b_9C8F","t":"code","b":[32,224,156],"m":"jsr","oa":40160,"x":[40082,40094],"o":"decode_char"},{"a":40082,"t":"code","b":[208,251],"m":"bne","oa":40079,"o":"b_9C8F"},{"a":40084,"l":"b_9C94","t":"code","b":[165,130],"m":"lda","oa":130,"x":[40077],"o":"tmp82"},{"a":40086,"t":"code","b":[208,2],"m":"bne","oa":40090,"o":"b_9C9A"},{"a":40088,"t":"code","b":[198,131],"m":"dec","oa":131,"o":"tmp83"},{"a":40090,"l":"b_9C9A","t":"code","b":[198,130],"m":"dec","oa":130,"x":[40086],"o":"tmp82"},{"a":40092,"t":"code","b":[165,131],"m":"lda","oa":131,"o":"tmp83"},{"a":40094,"t":"code","b":[16,239],"m":"bpl","oa":40079,"o":"b_9C8F"},{"a":40096,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":40098,"l":"b_9CA2","t":"code","b":[232],"m":"inx","x":[40105]},{"a":40099,"t":"code","b":[32,224,156],"m":"jsr","oa":40160,"o":"decode_char"},{"a":40102,"t":"code","b":[157,0,191],"m":"sta","oa":48896,"o":"f_BF00,x"},{"a":40105,"t":"code","b":[208,247],"m":"bne","oa":40098,"o":"b_9CA2"},{"a":40107,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":40109,"t":"code","b":[160,191],"m":"ldy","o":"#$BF"},{"a":40111,"t":"code","b":[96],"m":"rts"},{"a":40112,"l":"text_block","c":"The text block held in $F600 ($FF none); $9CB1 the block in $F800; $9CB2 set when the text may run into the next block; $9CB3 the block wanted; $9CB4 the block to read","t":"byte","b":[255],"x":[39958,39987,39990,40032,40064]},{"a":40113,"l":"a_9CB1","c":"The text block held in $F800 ($FF none)","t":"byte","b":[255],"x":[39963,39995,40040,40043]},{"a":40114,"l":"a_9CB2","c":"Set when the text wanted is the last in its block and may run on into the next","t":"byte","b":[0],"x":[39892,39924,40027]},{"a":40115,"l":"a_9CB3","c":"The text block wanted, from SPB's counts","t":"byte","b":[0],"x":[39951,40067]},{"a":40116,"l":"a_9CB4","c":"The text block to read from disk, a word ($9CB4/$9CB5)","t":"byte","b":[0,0],"x":[39954,40050,40142]},{"a":40118,"l":"read_text_block","c":"Reads text block $9CB4 into the buffer whose page is in X ($F6 or $F8): two disk blocks, numbers $01AD + 2 * block and the one after, through read_block","t":"code","b":[169,0],"m":"lda","x":[40024,40053],"o":"#$00"},{"a":40120,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":40122,"t":"code","b":[134,129],"m":"stx","oa":129,"o":"tmp81"},{"a":40124,"t":"code","b":[32,206,156],"m":"jsr","oa":40142,"o":"s_9CCE"},{"a":40127,"t":"code","b":[32,111,24],"m":"jsr","oa":6255,"o":"read_block"},{"a":40130,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":40132,"t":"code","b":[32,206,156],"m":"jsr","oa":40142,"o":"s_9CCE"},{"a":40135,"t":"code","b":[232],"m":"inx"},{"a":40136,"t":"code","b":[208,1],"m":"bne","oa":40139,"o":"b_9CCB"},{"a":40138,"t":"code","b":[200],"m":"iny"},{"a":40139,"l":"b_9CCB","t":"code","b":[76,111,24],"m":"jmp","oa":6255,"x":[40136],"o":"read_block"},{"a":40142,"l":"s_9CCE","c":"The disk block number of text block $9CB4: $01AD + 2 * block, in X (low) and Y (high)","t":"code","b":[173,180,156],"m":"lda","oa":40116,"x":[40124,40132],"o":"a_9CB4"},{"a":40145,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":40147,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40148,"t":"code","b":[144,2],"m":"bcc","oa":40152,"o":"b_9CD8"},{"a":40150,"t":"code","b":[200],"m":"iny"},{"a":40151,"t":"code","b":[24],"m":"clc"},{"a":40152,"l":"b_9CD8","t":"code","b":[105,173],"m":"adc","x":[40148],"o":"#$AD"},{"a":40154,"t":"code","b":[170],"m":"tax"},{"a":40155,"t":"code","b":[152],"m":"tya"},{"a":40156,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":40158,"t":"code","b":[168],"m":"tay"},{"a":40159,"t":"code","b":[96],"m":"rts"},{"a":40160,"l":"decode_char","c":"Decodes one character with the Huffman tree at $9D66: from its root, each bit read ($9D1E) picks the left (0) or right (1) entry; an entry below $80 is the distance from that entry to the next pair, one with bit 7 set is a character in its low 7 bits. The character $1B (entry $9B) is an escape: the next 7 bits, high bit first, are the character itself. Returns it in A, Z set for the zero that ends a text","t":"code","b":[142,26,157],"m":"stx","oa":40218,"x":[40079,40099],"o":"a_9D1A"},{"a":40163,"t":"code","b":[169,102],"m":"lda","o":"#$66"},{"a":40165,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":40167,"t":"code","b":[169,157],"m":"lda","o":"#$9D"},{"a":40169,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":40171,"t":"code","b":[174,93,157],"m":"ldx","oa":40285,"o":"bit_number"},{"a":40174,"l":"b_9CEE","t":"code","b":[32,30,157],"m":"jsr","oa":40222,"x":[40187,40191],"o":"read_bit"},{"a":40177,"t":"code","b":[177,128],"m":"lda","oa":128,"o":"(tmp80),y"},{"a":40179,"t":"code","b":[48,12],"m":"bmi","oa":40193,"o":"b_9D01"},{"a":40181,"t":"code","b":[192,1],"m":"cpy","o":"#$01"},{"a":40183,"t":"code","b":[101,128],"m":"adc","oa":128,"o":"tmp80"},{"a":40185,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":40187,"t":"code","b":[144,241],"m":"bcc","oa":40174,"o":"b_9CEE"},{"a":40189,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":40191,"t":"code","b":[208,237],"m":"bne","oa":40174,"o":"b_9CEE"},{"a":40193,"l":"b_9D01","t":"code","b":[201,155],"m":"cmp","x":[40179],"o":"#$9B"},{"a":40195,"t":"code","b":[208,17],"m":"bne","oa":40214,"o":"b_9D16"},{"a":40197,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":40199,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":40201,"l":"b_9D09","t":"code","b":[32,30,157],"m":"jsr","oa":40222,"x":[40210],"o":"read_bit"},{"a":40204,"t":"code","b":[192,1],"m":"cpy","o":"#$01"},{"a":40206,"t":"code","b":[38,129],"m":"rol","oa":129,"o":"tmp81"},{"a":40208,"t":"code","b":[198,128],"m":"dec","oa":128,"o":"tmp80"},{"a":40210,"t":"code","b":[208,245],"m":"bne","oa":40201,"o":"b_9D09"},{"a":40212,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":40214,"l":"b_9D16","t":"code","b":[142,93,157],"m":"stx","oa":40285,"x":[40195],"o":"bit_number"},{"a":40217,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":40218,"t":"note","l":"a_9D1A","c":"decode_char's caller's X, kept in the LDX operand at $9D19 and given back on return","note":"inside the item at $9D19","x":[40160]},{"a":40219,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":40221,"t":"code","b":[96],"m":"rts"},{"a":40222,"l":"read_bit","c":"The next bit of the text, in Y (0 or 1): from the byte whose address is patched into the LDA at $9D20, low bit first (masks at $9D5E). After the eighth bit the address moves on; past $F7FF it skips $F800, the next block's first byte, so a text runs on from $F600 into $F800","t":"code","b":[160,0],"m":"ldy","x":[40174,40201],"o":"#$00"},{"a":40224,"t":"code","b":[173,1,246],"m":"lda","oa":62977,"o":"a_F601"},{"a":40225,"t":"note","l":"a_9D21","c":"Low byte of the address of the byte read_bit is reading, set by start_bits and moved on after every eighth bit","note":"inside the item at $9D20","x":[40240,40277]},{"a":40226,"t":"note","l":"a_9D22","c":"High byte of the address read_bit reads: $F6, $F7, then $F8 from $F801 on, skipping that block's first byte","note":"inside the item at $9D20","x":[40245,40248,40256]},{"a":40227,"t":"code","b":[61,94,157],"m":"and","oa":40286,"o":"bit_masks,x"},{"a":40230,"t":"code","b":[240,1],"m":"beq","oa":40233,"o":"b_9D29"},{"a":40232,"t":"code","b":[200],"m":"iny"},{"a":40233,"l":"b_9D29","t":"code","b":[232],"m":"inx","x":[40230]},{"a":40234,"t":"code","b":[224,8],"m":"cpx","o":"#$08"},{"a":40236,"t":"code","b":[208,17],"m":"bne","oa":40255,"o":"r_9D3F"},{"a":40238,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":40240,"l":"b_9D30","t":"code","b":[238,33,157],"m":"inc","oa":40225,"x":[40253],"o":"a_9D21"},{"a":40243,"t":"code","b":[208,10],"m":"bne","oa":40255,"o":"r_9D3F"},{"a":40245,"t":"code","b":[238,34,157],"m":"inc","oa":40226,"o":"a_9D22"},{"a":40248,"t":"code","b":[173,34,157],"m":"lda","oa":40226,"o":"a_9D22"},{"a":40251,"t":"code","b":[201,248],"m":"cmp","o":"#$F8"},{"a":40253,"t":"code","b":[240,241],"m":"beq","oa":40240,"o":"b_9D30"},{"a":40255,"l":"r_9D3F","t":"code","b":[96],"m":"rts","x":[40236,40243]},{"a":40256,"l":"start_bits","c":"Starts the bit reader at the block in page A ($F6 or $F8). The block's first byte gives where its first fresh text begins: below 8, bit (that value) of byte 1; otherwise bit (value AND 7) of byte 2. Bit 7 of it, returned in N, says whether the block starts with a fresh text","t":"code","b":[141,34,157],"m":"sta","oa":40226,"x":[40074],"o":"a_9D22"},{"a":40259,"t":"code","b":[141,72,157],"m":"sta","oa":40264,"o":"a_9D48"},{"a":40262,"t":"code","b":[173,0,246],"m":"lda","oa":62976,"o":"f_F600"},{"a":40264,"t":"note","l":"a_9D48","c":"The page start_bits starts in ($F6 or $F8), so the LDA at $9D46 reads that block's first byte","note":"inside the item at $9D46","x":[40259]},{"a":40265,"t":"code","b":[8],"m":"php"},{"a":40266,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":40268,"t":"code","b":[201,8],"m":"cmp","o":"#$08"},{"a":40270,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":40272,"t":"code","b":[144,3],"m":"bcc","oa":40277,"o":"b_9D55"},{"a":40274,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":40276,"t":"code","b":[200],"m":"iny"},{"a":40277,"l":"b_9D55","t":"code","b":[140,33,157],"m":"sty","oa":40225,"x":[40272],"o":"a_9D21"},{"a":40280,"t":"code","b":[141,93,157],"m":"sta","oa":40285,"o":"bit_number"},{"a":40283,"t":"code","b":[40],"m":"plp"},{"a":40284,"t":"code","b":[96],"m":"rts"},{"a":40285,"l":"bit_number","c":"The bit within the current byte the reader is at","t":"byte","b":[0],"x":[40171,40214,40280]},{"a":40286,"l":"bit_masks","c":"$01, $02, $04 ... $80: the bit masks, low bit first","t":"byte","b":[1,2,4,8,16,32,64,128],"x":[40227]},{"a":40294,"l":"huffman_tree","c":"The text compression's Huffman tree, 136 bytes: pairs of entries (left, right) from the root; below $80 the distance on to the next pair, $80 and up a character plus $80, $9B the escape to a 7-bit literal","t":"byte","b":[2,39,2,5,78,1,128,243]},{"a":40302,"t":"byte","b":[2,13,2,225,2,236,230,1]},{"a":40310,"t":"byte","b":[2,201,2,53,141,206,244,1]},{"a":40318,"t":"byte","b":[245,1,231,1,2,87,2,191]},{"a":40326,"t":"byte","b":[2,205,204,1,2,186,179,145]},{"a":40334,"t":"byte","b":[2,9,20,1,8,1,2,31]},{"a":40342,"t":"byte","b":[249,155,160,77,2,232,2,31]},{"a":40350,"t":"byte","b":[235,1,2,173,161,63,239,1]},{"a":40358,"t":"byte","b":[2,3,227,162,2,237,167,246]},{"a":40366,"t":"byte","b":[2,194,2,198,170,203,2,228]},{"a":40374,"t":"byte","b":[18,172,238,1,174,47,2,226]},{"a":40382,"t":"byte","b":[2,25,2,193,207,1,2,176]},{"a":40390,"t":"byte","b":[177,213,10,1,12,1,196,1]},{"a":40398,"t":"byte","b":[2,234,178,181,217,1,199,195]},{"a":40406,"t":"byte","b":[197,13,200,215,212,1,2,211]},{"a":40414,"t":"byte","b":[210,1,202,250,208,9,214,248]},{"a":40422,"t":"byte","b":[229,1,242,233,240,247,254,241]},{"a":40430,"l":"append_text","c":"Appends the text at ($74), disk text included, to the zero-ended text at ($78) (at most 255 bytes in all); the source address is patched into the LDA at $9E06","t":"code","b":[166,116],"m":"ldx","oa":116,"x":[10927,11002,11019,11030,11116,11197,11233,11246],"o":"src1_ptr"},{"a":40432,"t":"code","b":[164,117],"m":"ldy","oa":117,"o":"zpa_75"},{"a":40434,"t":"code","b":[32,183,155],"m":"jsr","oa":39863,"o":"resolve_text"},{"a":40437,"t":"code","b":[142,7,158],"m":"stx","oa":40455,"o":"a_9E07"},{"a":40440,"t":"code","b":[140,8,158],"m":"sty","oa":40456,"o":"a_9E08"},{"a":40443,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":40445,"l":"b_9DFD","t":"code","b":[177,120],"m":"lda","oa":120,"x":[40450],"o":"(dest_ptr),y"},{"a":40447,"t":"code","b":[240,3],"m":"beq","oa":40452,"o":"b_9E04"},{"a":40449,"t":"code","b":[200],"m":"iny"},{"a":40450,"t":"code","b":[208,249],"m":"bne","oa":40445,"o":"b_9DFD"},{"a":40452,"l":"b_9E04","t":"code","b":[162,0],"m":"ldx","x":[40447],"o":"#$00"},{"a":40454,"l":"b_9E06","t":"code","b":[189,255,255],"m":"lda","oa":65535,"x":[40463],"o":"$FFFF,x"},{"a":40455,"t":"note","l":"a_9E07","c":"Low byte of the text append_text copies, patched in after resolve_text","note":"inside the item at $9E06","x":[40437]},{"a":40456,"t":"note","l":"a_9E08","c":"High byte of the text append_text copies","note":"inside the item at $9E06","x":[40440]},{"a":40457,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":40459,"t":"code","b":[240,9],"m":"beq","oa":40470,"o":"r_9E16"},{"a":40461,"t":"code","b":[232],"m":"inx"},{"a":40462,"t":"code","b":[200],"m":"iny"},{"a":40463,"t":"code","b":[208,245],"m":"bne","oa":40454,"o":"b_9E06"},{"a":40465,"t":"code","b":[136],"m":"dey"},{"a":40466,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40468,"t":"code","b":[145,120],"m":"sta","oa":120,"o":"(dest_ptr),y"},{"a":40470,"l":"r_9E16","t":"code","b":[96],"m":"rts","x":[40459]},{"a":40471,"l":"find_text","c":"Looks for the text at ($78) inside the text at ($74), either one possibly a disk text: Z set when it is found, otherwise Y = $FF with N set. Called by the base's conversation code ($E714 in SEG1A) to match a typed keyword","t":"code","b":[166,116],"m":"ldx","oa":116,"o":"src1_ptr"},{"a":40473,"t":"code","b":[164,117],"m":"ldy","oa":117,"o":"zpa_75"},{"a":40475,"t":"code","b":[32,183,155],"m":"jsr","oa":39863,"o":"resolve_text"},{"a":40478,"t":"code","b":[134,118],"m":"stx","oa":118,"o":"src2_ptr"},{"a":40480,"t":"code","b":[132,119],"m":"sty","oa":119,"o":"zpa_77"},{"a":40482,"t":"code","b":[166,120],"m":"ldx","oa":120,"o":"dest_ptr"},{"a":40484,"t":"code","b":[164,121],"m":"ldy","oa":121,"o":"zpa_79"},{"a":40486,"t":"code","b":[32,183,155],"m":"jsr","oa":39863,"o":"resolve_text"},{"a":40489,"t":"code","b":[134,120],"m":"stx","oa":120,"o":"dest_ptr"},{"a":40491,"t":"code","b":[132,121],"m":"sty","oa":121,"o":"zpa_79"},{"a":40493,"l":"b_9E2D","t":"code","b":[32,64,158],"m":"jsr","oa":40512,"x":[40508],"o":"s_9E40"},{"a":40496,"t":"code","b":[240,13],"m":"beq","oa":40511,"o":"r_9E3F"},{"a":40498,"t":"code","b":[230,118],"m":"inc","oa":118,"o":"src2_ptr"},{"a":40500,"t":"code","b":[208,2],"m":"bne","oa":40504,"o":"b_9E38"},{"a":40502,"t":"code","b":[230,119],"m":"inc","oa":119,"o":"zpa_77"},{"a":40504,"l":"b_9E38","t":"code","b":[160,0],"m":"ldy","x":[40500],"o":"#$00"},{"a":40506,"t":"code","b":[177,118],"m":"lda","oa":118,"o":"(src2_ptr),y"},{"a":40508,"t":"code","b":[208,239],"m":"bne","oa":40493,"o":"b_9E2D"},{"a":40510,"t":"code","b":[136],"m":"dey"},{"a":40511,"l":"r_9E3F","t":"code","b":[96],"m":"rts","x":[40496]},{"a":40512,"l":"s_9E40","c":"Z set when the text at ($78) matches the start of ($76)","t":"code","b":[160,255],"m":"ldy","x":[40493],"o":"#$FF"},{"a":40514,"l":"b_9E42","t":"code","b":[200],"m":"iny","x":[40521]},{"a":40515,"t":"code","b":[177,120],"m":"lda","oa":120,"o":"(dest_ptr),y"},{"a":40517,"t":"code","b":[240,4],"m":"beq","oa":40523,"o":"r_9E4B"},{"a":40519,"t":"code","b":[209,118],"m":"cmp","oa":118,"o":"(src2_ptr),y"},{"a":40521,"t":"code","b":[240,247],"m":"beq","oa":40514,"o":"b_9E42"},{"a":40523,"l":"r_9E4B","t":"code","b":[96],"m":"rts","x":[40517]},{"a":40524,"l":"select_window","c":"Makes text window Y current (0 the message line at the top, 1 a single line near the bottom, 2 the bottom four lines, 3-6 larger panels): its lines before a pause ($0D24, $0D26), left and right columns ($0D20, $0D21), top and bottom pixel rows counted from the bottom ($0D22, $0D23), from the tables at $9E9C-$9EBE; the cursor goes to its top left ($4F, $50)","t":"code","b":[140,155,158],"m":"sty","oa":40603,"x":[5423,5456,9566,9662,9884,10618,10859,14647,14887,15100,15259,28536,42221],"o":"window_number"},{"a":40527,"t":"code","b":[185,156,158],"m":"lda","oa":40604,"o":"window_lines,y"},{"a":40530,"t":"code","b":[141,36,13],"m":"sta","oa":3364,"o":"win_lines"},{"a":40533,"t":"code","b":[141,38,13],"m":"sta","oa":3366,"o":"lines_left"},{"a":40536,"t":"code","b":[185,163,158],"m":"lda","oa":40611,"o":"f_9EA3,y"},{"a":40539,"t":"code","b":[141,32,13],"m":"sta","oa":3360,"o":"win_left"},{"a":40542,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":40544,"t":"code","b":[185,170,158],"m":"lda","oa":40618,"o":"f_9EAA,y"},{"a":40547,"t":"code","b":[141,33,13],"m":"sta","oa":3361,"o":"win_right"},{"a":40550,"t":"code","b":[185,177,158],"m":"lda","oa":40625,"o":"f_9EB1,y"},{"a":40553,"t":"code","b":[141,34,13],"m":"sta","oa":3362,"o":"win_top"},{"a":40556,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":40558,"t":"code","b":[185,184,158],"m":"lda","oa":40632,"o":"f_9EB8,y"},{"a":40561,"t":"code","b":[141,35,13],"m":"sta","oa":3363,"o":"win_bottom"},{"a":40564,"t":"code","b":[96],"m":"rts"},{"a":40565,"l":"restore_cursor","c":"Puts back the cursor saved for the current window ($9E91 and $9E96 by the window number in $9E9B). Nothing in any loaded state calls this or save_cursor","t":"code","b":[172,155,158],"m":"ldy","oa":40603,"o":"window_number"},{"a":40568,"t":"code","b":[185,145,158],"m":"lda","oa":40593,"o":"f_9E91,y"},{"a":40571,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":40573,"t":"code","b":[185,150,158],"m":"lda","oa":40598,"o":"f_9E96,y"},{"a":40576,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":40578,"t":"code","b":[96],"m":"rts"},{"a":40579,"l":"save_cursor","c":"Saves the cursor ($4F, $50) for the current window, at $9E91 and $9E96 by the window number in $9E9B","t":"code","b":[172,155,158],"m":"ldy","oa":40603,"o":"window_number"},{"a":40582,"t":"code","b":[165,79],"m":"lda","oa":79,"o":"cursor_col"},{"a":40584,"t":"code","b":[153,145,158],"m":"sta","oa":40593,"o":"f_9E91,y"},{"a":40587,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":40589,"t":"code","b":[153,150,158],"m":"sta","oa":40598,"o":"f_9E96,y"},{"a":40592,"l":"saved_cursors","c":"$60, save_cursor's RTS, shown here as data under a misplaced label; the saved columns are at $9E91-$9E95 and the rows at $9E96-$9E9A","t":"byte","b":[96]},{"a":40593,"l":"f_9E91","c":"The cursor columns saved for the windows (save_cursor, which nothing calls)","t":"byte","b":[0,0,0,0,0],"x":[40568,40584]},{"a":40598,"l":"f_9E96","c":"The cursor rows saved for the windows (save_cursor, which nothing calls)","t":"byte","b":[0,0,0,0,0],"x":[40573,40589]},{"a":40603,"l":"window_number","c":"The text window selected last","t":"byte","b":[0],"x":[40524,40565,40579]},{"a":40604,"l":"window_lines","c":"The seven windows: lines before a pause, then from $9EA3 the left columns, $9EAA the right columns, $9EB1 the top rows and $9EB8 the bottom rows (pixel rows counted from the bottom; one line is 9)","t":"byte","b":[1,1,4,15,13,10,15],"x":[40527]},{"a":40611,"l":"f_9EA3","c":"Each of the seven text windows' left column","t":"byte","b":[2,3,2,4,2,5,10],"x":[40536]},{"a":40618,"l":"f_9EAA","c":"Each of the seven text windows' right column","t":"byte","b":[37,36,37,23,21,34,29],"x":[40544]},{"a":40625,"l":"f_9EB1","c":"Each of the seven text windows' top pixel row","t":"byte","b":[184,16,38,170,178,162,170],"x":[40550]},{"a":40632,"l":"f_9EB8","c":"Each of the seven text windows' bottom pixel row","t":"byte","b":[184,16,11,53,70,90,53],"x":[40558]},{"a":40639,"l":"print_number","c":"Prints the unsigned 16-bit number in $60/$61 as five decimal digits, leading zeros as spaces (the last digit always shown): counts ten-thousands, thousands, hundreds, tens and units into $88-$84 by repeated subtraction","t":"code","b":[169,255],"m":"lda","x":[6923,13357,13437],"o":"#$FF"},{"a":40641,"t":"code","b":[133,133],"m":"sta","oa":133,"o":"tmp85"},{"a":40643,"t":"code","b":[133,134],"m":"sta","oa":134,"o":"tmp86"},{"a":40645,"t":"code","b":[133,135],"m":"sta","oa":135,"o":"tmp87"},{"a":40647,"t":"code","b":[133,136],"m":"sta","oa":136,"o":"tmp88"},{"a":40649,"l":"b_9EC9","t":"code","b":[230,136],"m":"inc","oa":136,"x":[40664],"o":"tmp88"},{"a":40651,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":40653,"t":"code","b":[56],"m":"sec"},{"a":40654,"t":"code","b":[233,16],"m":"sbc","o":"#$10"},{"a":40656,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":40658,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":40660,"t":"code","b":[233,39],"m":"sbc","o":"#$27"},{"a":40662,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":40664,"t":"code","b":[176,239],"m":"bcs","oa":40649,"o":"b_9EC9"},{"a":40666,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":40668,"t":"code","b":[24],"m":"clc"},{"a":40669,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":40671,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":40673,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":40675,"t":"code","b":[105,39],"m":"adc","o":"#$27"},{"a":40677,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":40679,"l":"b_9EE7","t":"code","b":[230,135],"m":"inc","oa":135,"x":[40694],"o":"tmp87"},{"a":40681,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":40683,"t":"code","b":[56],"m":"sec"},{"a":40684,"t":"code","b":[233,232],"m":"sbc","o":"#$E8"},{"a":40686,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":40688,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":40690,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":40692,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":40694,"t":"code","b":[176,239],"m":"bcs","oa":40679,"o":"b_9EE7"},{"a":40696,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":40698,"t":"code","b":[24],"m":"clc"},{"a":40699,"t":"code","b":[105,232],"m":"adc","o":"#$E8"},{"a":40701,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":40703,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":40705,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":40707,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":40709,"l":"b_9F05","t":"code","b":[230,134],"m":"inc","oa":134,"x":[40724],"o":"tmp86"},{"a":40711,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":40713,"t":"code","b":[56],"m":"sec"},{"a":40714,"t":"code","b":[233,100],"m":"sbc","o":"#$64"},{"a":40716,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":40718,"t":"code","b":[165,97],"m":"lda","oa":97,"o":"acc_hi"},{"a":40720,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":40722,"t":"code","b":[133,97],"m":"sta","oa":97,"o":"acc_hi"},{"a":40724,"t":"code","b":[176,239],"m":"bcs","oa":40709,"o":"b_9F05"},{"a":40726,"t":"code","b":[165,96],"m":"lda","oa":96,"o":"acc_mid"},{"a":40728,"t":"code","b":[24],"m":"clc"},{"a":40729,"t":"code","b":[105,100],"m":"adc","o":"#$64"},{"a":40731,"t":"code","b":[133,96],"m":"sta","oa":96,"o":"acc_mid"},{"a":40733,"t":"code","b":[144,2],"m":"bcc","oa":40737,"o":"b_9F21"},{"a":40735,"t":"code","b":[230,97],"m":"inc","oa":97,"o":"acc_hi"},{"a":40737,"l":"b_9F21","t":"code","b":[56],"m":"sec","x":[40733]},{"a":40738,"l":"b_9F22","t":"code","b":[230,133],"m":"inc","oa":133,"x":[40742],"o":"tmp85"},{"a":40740,"t":"code","b":[233,10],"m":"sbc","o":"#$0A"},{"a":40742,"t":"code","b":[176,250],"m":"bcs","oa":40738,"o":"b_9F22"},{"a":40744,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":40746,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":40748,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":40750,"t":"code","b":[132,96],"m":"sty","oa":96,"o":"acc_mid"},{"a":40752,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40754,"t":"code","b":[133,137],"m":"sta","oa":137,"o":"tmp89"},{"a":40756,"l":"b_9F34","t":"code","b":[185,132,0],"m":"lda","oa":132,"x":[40787],"o":"tmp84,y"},{"a":40759,"t":"code","b":[24],"m":"clc"},{"a":40760,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":40762,"t":"code","b":[201,48],"m":"cmp","o":"#$30"},{"a":40764,"t":"code","b":[240,4],"m":"beq","oa":40770,"o":"b_9F42"},{"a":40766,"t":"code","b":[230,137],"m":"inc","oa":137,"o":"tmp89"},{"a":40768,"t":"code","b":[208,10],"m":"bne","oa":40780,"o":"b_9F4C"},{"a":40770,"l":"b_9F42","t":"code","b":[192,0],"m":"cpy","x":[40764],"o":"#$00"},{"a":40772,"t":"code","b":[240,6],"m":"beq","oa":40780,"o":"b_9F4C"},{"a":40774,"t":"code","b":[166,137],"m":"ldx","oa":137,"o":"tmp89"},{"a":40776,"t":"code","b":[208,2],"m":"bne","oa":40780,"o":"b_9F4C"},{"a":40778,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":40780,"l":"b_9F4C","t":"code","b":[32,71,160],"m":"jsr","oa":41031,"x":[40768,40772,40776],"o":"print_char"},{"a":40783,"t":"code","b":[198,96],"m":"dec","oa":96,"o":"acc_mid"},{"a":40785,"t":"code","b":[164,96],"m":"ldy","oa":96,"o":"acc_mid"},{"a":40787,"t":"code","b":[16,223],"m":"bpl","oa":40756,"o":"b_9F34"},{"a":40789,"t":"code","b":[96],"m":"rts"},{"a":40790,"l":"print_signed","c":"Prints the signed byte in A: a minus sign when negative, then its tens and units digits ($9F7A); the hundreds are dropped","t":"code","b":[133,133],"m":"sta","oa":133,"x":[8311,8344,8350,10216,10227,10883,10894,12796,13063],"o":"tmp85"},{"a":40792,"t":"code","b":[170],"m":"tax"},{"a":40793,"t":"code","b":[16,11],"m":"bpl","oa":40806,"o":"b_9F66"},{"a":40795,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":40797,"t":"code","b":[170],"m":"tax"},{"a":40798,"t":"code","b":[232],"m":"inx"},{"a":40799,"t":"code","b":[134,133],"m":"stx","oa":133,"o":"tmp85"},{"a":40801,"t":"code","b":[169,45],"m":"lda","o":"#$2D"},{"a":40803,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":40806,"l":"b_9F66","t":"code","b":[165,133],"m":"lda","oa":133,"x":[40793],"o":"tmp85"},{"a":40808,"t":"code","b":[32,122,159],"m":"jsr","oa":40826,"o":"split_digits"},{"a":40811,"t":"code","b":[72],"m":"pha"},{"a":40812,"t":"code","b":[138],"m":"txa"},{"a":40813,"t":"code","b":[24],"m":"clc"},{"a":40814,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":40816,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":40819,"t":"code","b":[104],"m":"pla"},{"a":40820,"t":"code","b":[24],"m":"clc"},{"a":40821,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":40823,"t":"code","b":[76,71,160],"m":"jmp","oa":41031,"o":"print_char"},{"a":40826,"l":"split_digits","c":"Splits A into hundreds (Y), tens (X) and units (A) by repeated subtraction","t":"code","b":[160,255],"m":"ldy","x":[40808],"o":"#$FF"},{"a":40828,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":40830,"t":"code","b":[56],"m":"sec"},{"a":40831,"l":"b_9F7F","t":"code","b":[200],"m":"iny","x":[40834]},{"a":40832,"t":"code","b":[233,100],"m":"sbc","o":"#$64"},{"a":40834,"t":"code","b":[176,251],"m":"bcs","oa":40831,"o":"b_9F7F"},{"a":40836,"t":"code","b":[105,100],"m":"adc","o":"#$64"},{"a":40838,"t":"code","b":[56],"m":"sec"},{"a":40839,"l":"b_9F87","t":"code","b":[232],"m":"inx","x":[40842]},{"a":40840,"t":"code","b":[233,10],"m":"sbc","o":"#$0A"},{"a":40842,"t":"code","b":[176,251],"m":"bcs","oa":40839,"o":"b_9F87"},{"a":40844,"t":"code","b":[105,10],"m":"adc","o":"#$0A"},{"a":40846,"t":"code","b":[96],"m":"rts"},{"a":40847,"l":"invert_bar","c":"Inverts the menu bar at the cursor: 9 pixel rows from $50 up, Y + 2 character cells from column $4F - 1 (one either side of the item), with only the right two pixels of the first cell and the left four of the last inverted, so the bar has narrow ends; in both buffers when text is mirrored ($0D28)","t":"code","b":[200],"m":"iny","x":[39419,39440,39463,39477,39507]},{"a":40848,"t":"code","b":[140,205,159],"m":"sty","oa":40909,"o":"a_9FCD"},{"a":40851,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":40853,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":40855,"t":"code","b":[166,80],"m":"ldx","oa":80,"o":"cursor_row"},{"a":40857,"t":"code","b":[134,129],"m":"stx","oa":129,"o":"tmp81"},{"a":40859,"t":"code","b":[165,79],"m":"lda","oa":79,"o":"cursor_col"},{"a":40861,"t":"code","b":[56],"m":"sec"},{"a":40862,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":40864,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40865,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40866,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40867,"t":"code","b":[141,179,159],"m":"sta","oa":40883,"o":"a_9FB3"},{"a":40870,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40872,"t":"code","b":[42],"m":"rol","o":"a"},{"a":40873,"t":"code","b":[141,188,159],"m":"sta","oa":40892,"o":"a_9FBC"},{"a":40876,"l":"b_9FAC","t":"code","b":[166,129],"m":"ldx","oa":129,"x":[40944],"o":"tmp81"},{"a":40878,"t":"code","b":[189,0,235],"m":"lda","oa":60160,"o":"row_addr_lo,x"},{"a":40881,"t":"code","b":[24],"m":"clc"},{"a":40882,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":40883,"t":"note","l":"a_9FB3","c":"Low byte of the menu bar's column in a bitmap row (8 * (cursor column - 1)), patched by invert_bar","note":"inside the item at $9FB2","x":[40867]},{"a":40884,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":40886,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":40888,"t":"code","b":[189,0,236],"m":"lda","oa":60416,"o":"row_addr_hi,x"},{"a":40891,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":40892,"t":"note","l":"a_9FBC","c":"High byte of the menu bar's column offset, the carry out, patched by invert_bar","note":"inside the item at $9FBB","x":[40873]},{"a":40893,"t":"code","b":[69,58],"m":"eor","oa":58,"o":"draw_buffer"},{"a":40895,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":40897,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":40899,"t":"code","b":[172,40,13],"m":"ldy","oa":3368,"o":"text_mirrored"},{"a":40902,"t":"code","b":[240,4],"m":"beq","oa":40908,"o":"b_9FCC"},{"a":40904,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":40906,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":40908,"l":"b_9FCC","t":"code","b":[162,0],"m":"ldx","x":[40902],"o":"#$00"},{"a":40909,"t":"note","l":"a_9FCD","c":"The menu bar's last cell, the item's width plus one (invert_bar's LDX operand)","note":"inside the item at $9FCC","x":[40848]},{"a":40910,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":40912,"l":"b_9FD0","t":"code","b":[177,56],"m":"lda","oa":56,"x":[40938],"o":"(bitmap_ptr),y"},{"a":40914,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":40916,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":40918,"t":"code","b":[208,2],"m":"bne","oa":40922,"o":"b_9FDA"},{"a":40920,"t":"code","b":[73,252],"m":"eor","o":"#$FC"},{"a":40922,"l":"b_9FDA","t":"code","b":[224,0],"m":"cpx","x":[40918],"o":"#$00"},{"a":40924,"t":"code","b":[208,2],"m":"bne","oa":40928,"o":"b_9FE0"},{"a":40926,"t":"code","b":[73,15],"m":"eor","o":"#$0F"},{"a":40928,"l":"b_9FE0","t":"code","b":[145,56],"m":"sta","oa":56,"x":[40924],"o":"(bitmap_ptr),y"},{"a":40930,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(tmp82),y"},{"a":40932,"t":"code","b":[152],"m":"tya"},{"a":40933,"t":"code","b":[24],"m":"clc"},{"a":40934,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":40936,"t":"code","b":[168],"m":"tay"},{"a":40937,"t":"code","b":[202],"m":"dex"},{"a":40938,"t":"code","b":[16,228],"m":"bpl","oa":40912,"o":"b_9FD0"},{"a":40940,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":40942,"t":"code","b":[198,128],"m":"dec","oa":128,"o":"tmp80"},{"a":40944,"t":"code","b":[208,186],"m":"bne","oa":40876,"o":"b_9FAC"},{"a":40946,"t":"code","b":[96],"m":"rts"},{"a":40947,"l":"dim_item","c":"Dims Y characters of the text line at the cursor: each byte shifted right and masked with $55 leaves every other pixel, so the item looks greyed out","t":"code","b":[136],"m":"dey","x":[39564]},{"a":40948,"t":"code","b":[140,44,160],"m":"sty","oa":41004,"o":"a_A02C"},{"a":40951,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":40953,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":40955,"t":"code","b":[166,80],"m":"ldx","oa":80,"o":"cursor_row"},{"a":40957,"t":"code","b":[134,129],"m":"stx","oa":129,"o":"tmp81"},{"a":40959,"t":"code","b":[165,79],"m":"lda","oa":79,"o":"cursor_col"},{"a":40961,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40962,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40963,"t":"code","b":[10],"m":"asl","o":"a"},{"a":40964,"t":"code","b":[141,20,160],"m":"sta","oa":40980,"o":"a_A014"},{"a":40967,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":40969,"t":"code","b":[42],"m":"rol","o":"a"},{"a":40970,"t":"code","b":[141,29,160],"m":"sta","oa":40989,"o":"a_A01D"},{"a":40973,"l":"b_A00D","t":"code","b":[166,129],"m":"ldx","oa":129,"x":[41028],"o":"tmp81"},{"a":40975,"t":"code","b":[189,0,235],"m":"lda","oa":60160,"o":"row_addr_lo,x"},{"a":40978,"t":"code","b":[24],"m":"clc"},{"a":40979,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":40980,"t":"note","l":"a_A014","c":"Low byte of the dimmed item's column in a bitmap row (8 * cursor column), patched by dim_item","note":"inside the item at $A013","x":[40964]},{"a":40981,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":40983,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":40985,"t":"code","b":[189,0,236],"m":"lda","oa":60416,"o":"row_addr_hi,x"},{"a":40988,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":40989,"t":"note","l":"a_A01D","c":"High byte of the dimmed item's column offset, patched by dim_item","note":"inside the item at $A01C","x":[40970]},{"a":40990,"t":"code","b":[69,58],"m":"eor","oa":58,"o":"draw_buffer"},{"a":40992,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":40994,"t":"code","b":[172,40,13],"m":"ldy","oa":3368,"o":"text_mirrored"},{"a":40997,"t":"code","b":[240,2],"m":"beq","oa":41001,"o":"b_A029"},{"a":40999,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":41001,"l":"b_A029","t":"code","b":[133,131],"m":"sta","oa":131,"x":[40997],"o":"tmp83"},{"a":41003,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":41004,"t":"note","l":"a_A02C","c":"The dimmed item's last cell, its width less one (dim_item's LDX operand)","note":"inside the item at $A02B","x":[40948]},{"a":41005,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":41007,"l":"b_A02F","t":"code","b":[177,56],"m":"lda","oa":56,"x":[41022],"o":"(bitmap_ptr),y"},{"a":41009,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":41010,"t":"code","b":[41,85],"m":"and","o":"#$55"},{"a":41012,"t":"code","b":[145,56],"m":"sta","oa":56,"o":"(bitmap_ptr),y"},{"a":41014,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(tmp82),y"},{"a":41016,"t":"code","b":[152],"m":"tya"},{"a":41017,"t":"code","b":[24],"m":"clc"},{"a":41018,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":41020,"t":"code","b":[168],"m":"tay"},{"a":41021,"t":"code","b":[202],"m":"dex"},{"a":41022,"t":"code","b":[16,239],"m":"bpl","oa":41007,"o":"b_A02F"},{"a":41024,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":41026,"t":"code","b":[198,128],"m":"dec","oa":128,"o":"tmp80"},{"a":41028,"t":"code","b":[208,199],"m":"bne","oa":40973,"o":"b_A00D"},{"a":41030,"t":"code","b":[96],"m":"rts"},{"a":41031,"l":"print_char","c":"Prints character A at the cursor ($4F column, $50 row) in the current window and moves on. Controls: $0D a new line, the window scrolling ($A178) when at its bottom and waiting for a key ($A431) when a page has filled ($0D26); $0E waits for a key and clears the window; $0F reverse on, $10 reverse off ($0D25); $11 clears the window and homes the cursor; $12 fills the rest of the line with character $7B. Other codes are drawn from the font at $F200 (8 bytes each, bit 7 ignored), into the drawing buffer and, when mirrored, the other one; a cell with any pixels gets colour $BC in the screen matrix","t":"code","b":[141,39,13],"m":"sta","oa":3367,"x":[7722,8316,8338,10221,10888,12776,12790,12801,12978,12994,13008,13013,13018,13023,13033,13050,13068,13073,13111,13118,13250,13283,13301,13362,13528,13533,13538,13950,13954,13958,15302,39621,39855,40780,40803,40816,40823,41142,41500,41538],"o":"last_char"},{"a":41034,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":41036,"t":"code","b":[176,115],"m":"bcs","oa":41153,"o":"b_A0C1"},{"a":41038,"t":"code","b":[201,13],"m":"cmp","o":"#$0D"},{"a":41040,"t":"code","b":[208,40],"m":"bne","oa":41082,"o":"b_A07A"},{"a":41042,"t":"code","b":[173,32,13],"m":"lda","oa":3360,"o":"win_left"},{"a":41045,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":41047,"t":"code","b":[206,38,13],"m":"dec","oa":3366,"o":"lines_left"},{"a":41050,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":41052,"t":"code","b":[205,35,13],"m":"cmp","oa":3363,"o":"win_bottom"},{"a":41055,"t":"code","b":[240,6],"m":"beq","oa":41063,"o":"b_A067"},{"a":41057,"t":"code","b":[56],"m":"sec"},{"a":41058,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":41060,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":41062,"t":"code","b":[96],"m":"rts"},{"a":41063,"l":"b_A067","t":"code","b":[173,38,13],"m":"lda","oa":3366,"x":[41055],"o":"lines_left"},{"a":41066,"t":"code","b":[208,9],"m":"bne","oa":41077,"o":"b_A075"},{"a":41068,"t":"code","b":[173,36,13],"m":"lda","oa":3364,"o":"win_lines"},{"a":41071,"t":"code","b":[141,38,13],"m":"sta","oa":3366,"o":"lines_left"},{"a":41074,"t":"code","b":[32,49,164],"m":"jsr","oa":42033,"o":"wait_key"},{"a":41077,"l":"b_A075","t":"code","b":[169,1],"m":"lda","x":[41066],"o":"#$01"},{"a":41079,"t":"code","b":[76,120,161],"m":"jmp","oa":41336,"o":"scroll_window"},{"a":41082,"l":"b_A07A","t":"code","b":[201,15],"m":"cmp","x":[41040],"o":"#$0F"},{"a":41084,"t":"code","b":[208,6],"m":"bne","oa":41092,"o":"b_A084"},{"a":41086,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":41088,"t":"code","b":[141,37,13],"m":"sta","oa":3365,"o":"reverse_mask"},{"a":41091,"t":"code","b":[96],"m":"rts"},{"a":41092,"l":"b_A084","t":"code","b":[201,16],"m":"cmp","x":[41084],"o":"#$10"},{"a":41094,"t":"code","b":[208,6],"m":"bne","oa":41102,"o":"b_A08E"},{"a":41096,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41098,"t":"code","b":[141,37,13],"m":"sta","oa":3365,"o":"reverse_mask"},{"a":41101,"t":"code","b":[96],"m":"rts"},{"a":41102,"l":"b_A08E","t":"code","b":[201,14],"m":"cmp","x":[41094],"o":"#$0E"},{"a":41104,"t":"code","b":[208,6],"m":"bne","oa":41112,"o":"b_A098"},{"a":41106,"t":"code","b":[32,49,164],"m":"jsr","oa":42033,"o":"wait_key"},{"a":41109,"t":"code","b":[76,156,160],"m":"jmp","oa":41116,"o":"j_A09C"},{"a":41112,"l":"b_A098","t":"code","b":[201,17],"m":"cmp","x":[41104],"o":"#$11"},{"a":41114,"t":"code","b":[208,20],"m":"bne","oa":41136,"o":"b_A0B0"},{"a":41116,"l":"j_A09C","t":"code","b":[32,36,162],"m":"jsr","oa":41508,"x":[41109],"o":"clear_window"},{"a":41119,"t":"code","b":[173,36,13],"m":"lda","oa":3364,"o":"win_lines"},{"a":41122,"t":"code","b":[141,38,13],"m":"sta","oa":3366,"o":"lines_left"},{"a":41125,"t":"code","b":[173,32,13],"m":"lda","oa":3360,"o":"win_left"},{"a":41128,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":41130,"t":"code","b":[173,34,13],"m":"lda","oa":3362,"o":"win_top"},{"a":41133,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":41135,"t":"code","b":[96],"m":"rts"},{"a":41136,"l":"b_A0B0","t":"code","b":[201,18],"m":"cmp","x":[41114],"o":"#$12"},{"a":41138,"t":"code","b":[208,13],"m":"bne","oa":41153,"o":"b_A0C1"},{"a":41140,"l":"b_A0B4","t":"code","b":[169,123],"m":"lda","x":[41150],"o":"#$7B"},{"a":41142,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":41145,"t":"code","b":[173,33,13],"m":"lda","oa":3361,"o":"win_right"},{"a":41148,"t":"code","b":[197,79],"m":"cmp","oa":79,"o":"cursor_col"},{"a":41150,"t":"code","b":[176,244],"m":"bcs","oa":41140,"o":"b_A0B4"},{"a":41152,"t":"code","b":[96],"m":"rts"},{"a":41153,"l":"b_A0C1","c":"Drawing a character: its font address ($F200 + 8 * (A AND $7F): the first ASL drops bit 7) goes into the LDA at $A12F, the row into the LDY at $A0F9 and the column's byte offset into the ADCs at $A0FF and $A108; eight pixel rows","t":"code","b":[10],"m":"asl","x":[41036,41138],"o":"a"},{"a":41154,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":41156,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41158,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":41160,"t":"code","b":[6,128],"m":"asl","oa":128,"o":"tmp80"},{"a":41162,"t":"code","b":[38,129],"m":"rol","oa":129,"o":"tmp81"},{"a":41164,"t":"code","b":[6,128],"m":"asl","oa":128,"o":"tmp80"},{"a":41166,"t":"code","b":[38,129],"m":"rol","oa":129,"o":"tmp81"},{"a":41168,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":41170,"t":"code","b":[24],"m":"clc"},{"a":41171,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41173,"t":"code","b":[141,48,161],"m":"sta","oa":41264,"o":"a_A130"},{"a":41176,"t":"code","b":[165,129],"m":"lda","oa":129,"o":"tmp81"},{"a":41178,"t":"code","b":[105,242],"m":"adc","o":"#$F2"},{"a":41180,"t":"code","b":[141,49,161],"m":"sta","oa":41265,"o":"a_A131"},{"a":41183,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":41185,"t":"code","b":[141,250,160],"m":"sta","oa":41210,"o":"a_A0FA"},{"a":41188,"t":"code","b":[165,79],"m":"lda","oa":79,"o":"cursor_col"},{"a":41190,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41191,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41192,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41193,"t":"code","b":[141,0,161],"m":"sta","oa":41216,"o":"a_A100"},{"a":41196,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41198,"t":"code","b":[42],"m":"rol","o":"a"},{"a":41199,"t":"code","b":[141,9,161],"m":"sta","oa":41225,"o":"a_A109"},{"a":41202,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":41204,"t":"code","b":[141,46,161],"m":"sta","oa":41262,"o":"a_A12E"},{"a":41207,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":41209,"l":"b_A0F9","t":"code","b":[160,35],"m":"ldy","x":[41287],"o":"#$23"},{"a":41210,"t":"note","l":"a_A0FA","c":"The pixel row print_char draws, set from the cursor row ($50) and stepped up for each of the glyph's 8 rows","note":"inside the item at $A0F9","x":[41185,41281]},{"a":41211,"t":"code","b":[185,0,235],"m":"lda","oa":60160,"o":"row_addr_lo,y"},{"a":41214,"t":"code","b":[24],"m":"clc"},{"a":41215,"t":"code","b":[105,184],"m":"adc","o":"#$B8"},{"a":41216,"t":"note","l":"a_A100","c":"Low byte of the character cell's offset in its bitmap row (8 * cursor column), patched by print_char","note":"inside the item at $A0FF","x":[41193]},{"a":41217,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":41219,"t":"code","b":[133,130],"m":"sta","oa":130,"o":"tmp82"},{"a":41221,"t":"code","b":[185,0,236],"m":"lda","oa":60416,"o":"row_addr_hi,y"},{"a":41224,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41225,"t":"note","l":"a_A109","c":"High byte of the character cell's offset in its bitmap row","note":"inside the item at $A108","x":[41199]},{"a":41226,"t":"code","b":[69,58],"m":"eor","oa":58,"o":"draw_buffer"},{"a":41228,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":41230,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":41232,"t":"code","b":[133,131],"m":"sta","oa":131,"o":"tmp83"},{"a":41234,"t":"code","b":[185,200,236],"m":"lda","oa":60616,"o":"div8,y"},{"a":41237,"t":"code","b":[168],"m":"tay"},{"a":41238,"t":"code","b":[185,200,235],"m":"lda","oa":60360,"o":"screen_row_lo,y"},{"a":41241,"t":"code","b":[24],"m":"clc"},{"a":41242,"t":"code","b":[101,79],"m":"adc","oa":79,"o":"cursor_col"},{"a":41244,"t":"code","b":[133,25],"m":"sta","oa":25,"o":"cell_ptr"},{"a":41246,"t":"code","b":[133,27],"m":"sta","oa":27,"o":"cell_ptr2"},{"a":41248,"t":"code","b":[185,225,235],"m":"lda","oa":60385,"o":"screen_row_hi,y"},{"a":41251,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41253,"t":"code","b":[69,58],"m":"eor","oa":58,"o":"draw_buffer"},{"a":41255,"t":"code","b":[133,26],"m":"sta","oa":26,"o":"zpa_1A"},{"a":41257,"t":"code","b":[73,128],"m":"eor","o":"#$80"},{"a":41259,"t":"code","b":[133,28],"m":"sta","oa":28,"o":"zpa_1C"},{"a":41261,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":41262,"t":"note","l":"a_A12E","c":"The glyph byte print_char draws next, counted down from 7 so the glyph's bottom row lands on the cursor row","note":"inside the item at $A12D","x":[41204,41284]},{"a":41263,"t":"code","b":[185,104,245],"m":"lda","oa":62824,"o":"font_glyph_6D,y"},{"a":41264,"t":"note","l":"a_A130","c":"Low byte of the glyph's address in the font ($F200 + 8 * (character AND $7F)), patched by print_char","note":"inside the item at $A12F","x":[41173]},{"a":41265,"t":"note","l":"a_A131","c":"High byte of the glyph's address in the font","note":"inside the item at $A12F","x":[41180]},{"a":41266,"t":"code","b":[77,37,13],"m":"eor","oa":3365,"o":"reverse_mask"},{"a":41269,"t":"code","b":[129,128],"m":"sta","oa":128,"o":"(tmp80,x)"},{"a":41271,"l":"a_A137","c":"The opcode of print_char's second pixel store: $81, STA (zp,X), while text is mirrored; $EA, NOP, otherwise","t":"code","b":[129,130],"m":"sta","oa":130,"x":[41299,41323],"o":"(tmp82,x)"},{"a":41272,"t":"note","l":"a_A138","c":"The second pixel store's operand: $82, the same byte in the other bitmap, or $EA when it is a NOP","note":"inside the item at $A137","x":[41307,41326]},{"a":41273,"t":"code","b":[240,6],"m":"beq","oa":41281,"o":"b_A141"},{"a":41275,"t":"code","b":[169,188],"m":"lda","o":"#$BC"},{"a":41277,"t":"code","b":[129,25],"m":"sta","oa":25,"o":"(cell_ptr,x)"},{"a":41279,"l":"a_A13F","c":"The opcode of print_char's second colour store: $81, STA (zp,X), while text is mirrored; $EA, NOP, otherwise","t":"code","b":[129,27],"m":"sta","oa":27,"x":[41302,41329],"o":"(cell_ptr2,x)"},{"a":41280,"t":"note","l":"a_A140","c":"The second colour store's operand: $1B, the same cell in the other screen matrix, or $EA when it is a NOP","note":"inside the item at $A13F","x":[41312,41332]},{"a":41281,"l":"b_A141","t":"code","b":[238,250,160],"m":"inc","oa":41210,"x":[41273],"o":"a_A0FA"},{"a":41284,"t":"code","b":[206,46,161],"m":"dec","oa":41262,"o":"a_A12E"},{"a":41287,"t":"code","b":[16,176],"m":"bpl","oa":41209,"o":"b_A0F9"},{"a":41289,"t":"code","b":[230,79],"m":"inc","oa":79,"o":"cursor_col"},{"a":41291,"t":"code","b":[96],"m":"rts"},{"a":41292,"l":"mirror_text_on","c":"Text goes into both bitmaps ($0D28 = 1): the second STA instructions at $A137 and $A13F become STA ($82,X) and STA ($1B,X)","t":"code","b":[169,1],"m":"lda","x":[11892,29281],"o":"#$01"},{"a":41294,"t":"code","b":[141,40,13],"m":"sta","oa":3368,"o":"text_mirrored"},{"a":41297,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":41299,"t":"code","b":[141,55,161],"m":"sta","oa":41271,"o":"a_A137"},{"a":41302,"t":"code","b":[141,63,161],"m":"sta","oa":41279,"o":"a_A13F"},{"a":41305,"t":"code","b":[169,130],"m":"lda","o":"#$82"},{"a":41307,"t":"code","b":[141,56,161],"m":"sta","oa":41272,"o":"a_A138"},{"a":41310,"t":"code","b":[169,27],"m":"lda","o":"#$1B"},{"a":41312,"t":"code","b":[141,64,161],"m":"sta","oa":41280,"o":"a_A140"},{"a":41315,"t":"code","b":[96],"m":"rts"},{"a":41316,"l":"mirror_text_off","c":"Text goes only into the drawing buffer ($0D28 = 0): the second STA instructions at $A137 and $A13F become NOPs","t":"code","b":[169,0],"m":"lda","x":[9549,29188,42151],"o":"#$00"},{"a":41318,"t":"code","b":[141,40,13],"m":"sta","oa":3368,"o":"text_mirrored"},{"a":41321,"t":"code","b":[169,234],"m":"lda","o":"#$EA"},{"a":41323,"t":"code","b":[141,55,161],"m":"sta","oa":41271,"o":"a_A137"},{"a":41326,"t":"code","b":[141,56,161],"m":"sta","oa":41272,"o":"a_A138"},{"a":41329,"t":"code","b":[141,63,161],"m":"sta","oa":41279,"o":"a_A13F"},{"a":41332,"t":"code","b":[141,64,161],"m":"sta","oa":41280,"o":"a_A140"},{"a":41335,"t":"code","b":[96],"m":"rts"},{"a":41336,"l":"scroll_window","c":"Scrolls the current window up A lines, one pixel row at a time (9 to a line), so the text rolls smoothly; a window one line high is simply blanked ($A210). Works on the $C000 bitmap, copying to the $4000 one as well when text is mirrored","t":"code","b":[133,129],"m":"sta","oa":129,"x":[4899,5533,10621,39654,41079],"o":"tmp81"},{"a":41338,"t":"code","b":[173,33,13],"m":"lda","oa":3361,"o":"win_right"},{"a":41341,"t":"code","b":[56],"m":"sec"},{"a":41342,"t":"code","b":[237,32,13],"m":"sbc","oa":3360,"o":"win_left"},{"a":41345,"t":"code","b":[133,132],"m":"sta","oa":132,"o":"tmp84"},{"a":41347,"t":"code","b":[172,36,13],"m":"ldy","oa":3364,"o":"win_lines"},{"a":41350,"t":"code","b":[136],"m":"dey"},{"a":41351,"t":"code","b":[208,3],"m":"bne","oa":41356,"o":"b_A18C"},{"a":41353,"t":"code","b":[76,16,162],"m":"jmp","oa":41488,"o":"j_A210"},{"a":41356,"l":"b_A18C","t":"code","b":[173,32,13],"m":"lda","oa":3360,"x":[41351],"o":"win_left"},{"a":41359,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41360,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41361,"t":"code","b":[10],"m":"asl","o":"a"},{"a":41362,"t":"code","b":[141,201,161],"m":"sta","oa":41417,"o":"a_A1C9"},{"a":41365,"t":"code","b":[141,216,161],"m":"sta","oa":41432,"o":"a_A1D8"},{"a":41368,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41370,"t":"code","b":[42],"m":"rol","o":"a"},{"a":41371,"t":"code","b":[141,208,161],"m":"sta","oa":41424,"o":"a_A1D0"},{"a":41374,"t":"code","b":[141,225,161],"m":"sta","oa":41441,"o":"a_A1E1"},{"a":41377,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":41379,"t":"code","b":[174,40,13],"m":"ldx","oa":3368,"o":"text_mirrored"},{"a":41382,"t":"code","b":[240,2],"m":"beq","oa":41386,"o":"b_A1AA"},{"a":41384,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":41386,"l":"b_A1AA","t":"code","b":[141,229,161],"m":"sta","oa":41445,"x":[41382],"o":"a_A1E5"},{"a":41389,"l":"b_A1AD","t":"code","b":[169,9],"m":"lda","x":[41402],"o":"#$09"},{"a":41391,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":41393,"l":"b_A1B1","t":"code","b":[32,189,161],"m":"jsr","oa":41405,"x":[41398],"o":"s_A1BD"},{"a":41396,"t":"code","b":[198,128],"m":"dec","oa":128,"o":"tmp80"},{"a":41398,"t":"code","b":[208,249],"m":"bne","oa":41393,"o":"b_A1B1"},{"a":41400,"t":"code","b":[198,129],"m":"dec","oa":129,"o":"tmp81"},{"a":41402,"t":"code","b":[208,241],"m":"bne","oa":41389,"o":"b_A1AD"},{"a":41404,"t":"code","b":[96],"m":"rts"},{"a":41405,"l":"s_A1BD","c":"Moves every pixel row of the window up by one, from the top row down to the bottom one ($0D23)","t":"code","b":[173,34,13],"m":"lda","oa":3362,"x":[41393],"o":"win_top"},{"a":41408,"t":"code","b":[24],"m":"clc"},{"a":41409,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":41411,"t":"code","b":[170],"m":"tax"},{"a":41412,"l":"j_A1C4","t":"code","b":[189,0,235],"m":"lda","oa":60160,"x":[41485],"o":"row_addr_lo,x"},{"a":41415,"t":"code","b":[24],"m":"clc"},{"a":41416,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41417,"t":"note","l":"a_A1C9","c":"Low byte of the window's left edge in a bitmap row (8 * left column), added to the source row's address by scroll_window","note":"inside the item at $A1C8","x":[41362]},{"a":41418,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"bitmap_ptr"},{"a":41420,"t":"code","b":[189,0,236],"m":"lda","oa":60416,"o":"row_addr_hi,x"},{"a":41423,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41424,"t":"note","l":"a_A1D0","c":"High byte of the left edge offset for the source row","note":"inside the item at $A1CF","x":[41371]},{"a":41425,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"zpa_39"},{"a":41427,"t":"code","b":[189,1,235],"m":"lda","oa":60161,"o":"row_addr_lo_up,x"},{"a":41430,"t":"code","b":[24],"m":"clc"},{"a":41431,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41432,"t":"note","l":"a_A1D8","c":"Low byte of the left edge offset for the destination row, the one above","note":"inside the item at $A1D7","x":[41365]},{"a":41433,"t":"code","b":[133,25],"m":"sta","oa":25,"o":"cell_ptr"},{"a":41435,"t":"code","b":[133,27],"m":"sta","oa":27,"o":"cell_ptr2"},{"a":41437,"t":"code","b":[189,1,236],"m":"lda","oa":60417,"o":"row_addr_hi_up,x"},{"a":41440,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41441,"t":"note","l":"a_A1E1","c":"High byte of the left edge offset for the destination row","note":"inside the item at $A1E0","x":[41374]},{"a":41442,"t":"code","b":[133,26],"m":"sta","oa":26,"o":"zpa_1A"},{"a":41444,"t":"code","b":[73,0],"m":"eor","o":"#$00"},{"a":41445,"t":"note","l":"a_A1E5","c":"$80 while text is mirrored, so scroll_window's second destination is the same row in the $4000 bitmap; 0 otherwise","note":"inside the item at $A1E4","x":[41386]},{"a":41446,"t":"code","b":[133,28],"m":"sta","oa":28,"o":"zpa_1C"},{"a":41448,"t":"code","b":[134,130],"m":"stx","oa":130,"o":"tmp82"},{"a":41450,"t":"code","b":[166,132],"m":"ldx","oa":132,"o":"tmp84"},{"a":41452,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":41454,"t":"code","b":[24],"m":"clc"},{"a":41455,"l":"b_A1EF","t":"code","b":[177,56],"m":"lda","oa":56,"x":[41475],"o":"(bitmap_ptr),y"},{"a":41457,"t":"code","b":[145,25],"m":"sta","oa":25,"o":"(cell_ptr),y"},{"a":41459,"t":"code","b":[145,27],"m":"sta","oa":27,"o":"(cell_ptr2),y"},{"a":41461,"t":"code","b":[152],"m":"tya"},{"a":41462,"t":"code","b":[105,8],"m":"adc","o":"#$08"},{"a":41464,"t":"code","b":[168],"m":"tay"},{"a":41465,"t":"code","b":[144,7],"m":"bcc","oa":41474,"o":"b_A202"},{"a":41467,"t":"code","b":[24],"m":"clc"},{"a":41468,"t":"code","b":[230,57],"m":"inc","oa":57,"o":"zpa_39"},{"a":41470,"t":"code","b":[230,26],"m":"inc","oa":26,"o":"zpa_1A"},{"a":41472,"t":"code","b":[230,28],"m":"inc","oa":28,"o":"zpa_1C"},{"a":41474,"l":"b_A202","t":"code","b":[202],"m":"dex","x":[41465]},{"a":41475,"t":"code","b":[16,234],"m":"bpl","oa":41455,"o":"b_A1EF"},{"a":41477,"t":"code","b":[166,130],"m":"ldx","oa":130,"o":"tmp82"},{"a":41479,"t":"code","b":[236,35,13],"m":"cpx","oa":3363,"o":"win_bottom"},{"a":41482,"t":"code","b":[144,23],"m":"bcc","oa":41507,"o":"r_A223"},{"a":41484,"t":"code","b":[202],"m":"dex"},{"a":41485,"t":"code","b":[76,196,161],"m":"jmp","oa":41412,"o":"j_A1C4"},{"a":41488,"l":"j_A210","c":"Blanks a one-line window with spaces, which leaves the cursor one column past its right edge: wrap_line then finds no room, so print_wrapped prints new lines for ever there when a text needs a second line","t":"code","b":[173,32,13],"m":"lda","oa":3360,"x":[41353],"o":"win_left"},{"a":41491,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":41493,"t":"code","b":[173,35,13],"m":"lda","oa":3363,"o":"win_bottom"},{"a":41496,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":41498,"l":"b_A21A","t":"code","b":[169,32],"m":"lda","x":[41505],"o":"#$20"},{"a":41500,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":41503,"t":"code","b":[198,132],"m":"dec","oa":132,"o":"tmp84"},{"a":41505,"t":"code","b":[16,247],"m":"bpl","oa":41498,"o":"b_A21A"},{"a":41507,"l":"r_A223","t":"code","b":[96],"m":"rts","x":[41482]},{"a":41508,"l":"clear_window","c":"Fills every line of the current window with spaces, from the top row down","t":"code","b":[173,34,13],"m":"lda","oa":3362,"x":[41116],"o":"win_top"},{"a":41511,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":41513,"l":"b_A229","t":"code","b":[173,32,13],"m":"lda","oa":3360,"x":[41533],"o":"win_left"},{"a":41516,"t":"code","b":[133,79],"m":"sta","oa":79,"o":"cursor_col"},{"a":41518,"t":"code","b":[32,64,162],"m":"jsr","oa":41536,"o":"s_A240"},{"a":41521,"t":"code","b":[165,80],"m":"lda","oa":80,"o":"cursor_row"},{"a":41523,"t":"code","b":[56],"m":"sec"},{"a":41524,"t":"code","b":[233,9],"m":"sbc","o":"#$09"},{"a":41526,"t":"code","b":[133,80],"m":"sta","oa":80,"o":"cursor_row"},{"a":41528,"t":"code","b":[144,5],"m":"bcc","oa":41535,"o":"r_A23F"},{"a":41530,"t":"code","b":[205,35,13],"m":"cmp","oa":3363,"o":"win_bottom"},{"a":41533,"t":"code","b":[176,234],"m":"bcs","oa":41513,"o":"b_A229"},{"a":41535,"l":"r_A23F","t":"code","b":[96],"m":"rts","x":[41528]},{"a":41536,"l":"s_A240","c":"Spaces from the cursor to the window's right edge","t":"code","b":[169,32],"m":"lda","x":[41518,41546],"o":"#$20"},{"a":41538,"t":"code","b":[32,71,160],"m":"jsr","oa":41031,"o":"print_char"},{"a":41541,"t":"code","b":[173,33,13],"m":"lda","oa":3361,"o":"win_right"},{"a":41544,"t":"code","b":[197,79],"m":"cmp","oa":79,"o":"cursor_col"},{"a":41546,"t":"code","b":[176,244],"m":"bcs","oa":41536,"o":"s_A240"},{"a":41548,"t":"code","b":[96],"m":"rts"},{"a":41549,"l":"get_key","c":"Takes a key from the keyboard buffer: carry set and the key in A, a to z made capitals; carry clear (A = $FF) when none is waiting","t":"code","b":[32,94,162],"m":"jsr","oa":41566,"x":[4962,5466,5469,10563,10690,41791,42033,42038],"o":"s_A25E"},{"a":41552,"t":"code","b":[144,11],"m":"bcc","oa":41565,"o":"r_A25D"},{"a":41554,"t":"code","b":[201,97],"m":"cmp","o":"#$61"},{"a":41556,"t":"code","b":[144,6],"m":"bcc","oa":41564,"o":"b_A25C"},{"a":41558,"t":"code","b":[201,123],"m":"cmp","o":"#$7B"},{"a":41560,"t":"code","b":[176,3],"m":"bcs","oa":41565,"o":"r_A25D"},{"a":41562,"t":"code","b":[105,224],"m":"adc","o":"#$E0"},{"a":41564,"l":"b_A25C","t":"code","b":[56],"m":"sec","x":[41556]},{"a":41565,"l":"r_A25D","t":"code","b":[96],"m":"rts","x":[41552,41560]},{"a":41566,"l":"s_A25E","c":"The keyboard buffer: $03 keys waiting at $05 onward; the first is taken and the rest moved down","t":"code","b":[165,3],"m":"lda","oa":3,"x":[41549],"o":"key_count"},{"a":41568,"t":"code","b":[240,23],"m":"beq","oa":41593,"o":"b_A279"},{"a":41570,"t":"code","b":[198,3],"m":"dec","oa":3,"o":"key_count"},{"a":41572,"t":"code","b":[165,5],"m":"lda","oa":5,"o":"key_buffer"},{"a":41574,"t":"code","b":[72],"m":"pha"},{"a":41575,"t":"code","b":[138],"m":"txa"},{"a":41576,"t":"code","b":[72],"m":"pha"},{"a":41577,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":41579,"l":"b_A26B","t":"code","b":[181,6],"m":"lda","oa":6,"x":[41586],"o":"zpf_06,x"},{"a":41581,"t":"code","b":[149,5],"m":"sta","oa":5,"o":"key_buffer,x"},{"a":41583,"t":"code","b":[232],"m":"inx"},{"a":41584,"t":"code","b":[228,3],"m":"cpx","oa":3,"o":"key_count"},{"a":41586,"t":"code","b":[144,247],"m":"bcc","oa":41579,"o":"b_A26B"},{"a":41588,"t":"code","b":[104],"m":"pla"},{"a":41589,"t":"code","b":[170],"m":"tax"},{"a":41590,"t":"code","b":[104],"m":"pla"},{"a":41591,"t":"code","b":[56],"m":"sec"},{"a":41592,"t":"code","b":[96],"m":"rts"},{"a":41593,"l":"b_A279","t":"code","b":[169,255],"m":"lda","x":[41568],"o":"#$FF"},{"a":41595,"t":"code","b":[24],"m":"clc"},{"a":41596,"t":"code","b":[96],"m":"rts"},{"a":41597,"l":"random_word","c":"A random 16-bit number from 0 to $60/$61 in $62/$63: the high byte from 0 to $61, and the low byte from 0 to $60 when the high byte came out at its limit, any value otherwise","t":"code","b":[165,97],"m":"lda","oa":97,"x":[7811],"o":"acc_hi"},{"a":41599,"t":"code","b":[240,3],"m":"beq","oa":41604,"o":"b_A284"},{"a":41601,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":41604,"l":"b_A284","t":"code","b":[133,99],"m":"sta","oa":99,"x":[41599],"o":"arg_mid"},{"a":41606,"t":"code","b":[197,97],"m":"cmp","oa":97,"o":"acc_hi"},{"a":41608,"t":"code","b":[240,6],"m":"beq","oa":41616,"o":"b_A290"},{"a":41610,"t":"code","b":[32,197,162],"m":"jsr","oa":41669,"o":"random"},{"a":41613,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":41615,"t":"code","b":[96],"m":"rts"},{"a":41616,"l":"b_A290","t":"code","b":[165,96],"m":"lda","oa":96,"x":[41608],"o":"acc_mid"},{"a":41618,"t":"code","b":[32,152,162],"m":"jsr","oa":41624,"o":"random_upto"},{"a":41621,"t":"code","b":[133,98],"m":"sta","oa":98,"o":"arg_lo"},{"a":41623,"t":"code","b":[96],"m":"rts"},{"a":41624,"l":"random_upto","c":"A random number from 0 to A (inclusive) in A and Y: a mask covering A's highest bit is made, and random bytes ($A2C5's sum, inline) are masked until one is not above A","t":"code","b":[133,129],"m":"sta","oa":129,"x":[7693,7729,8001,9402,9420,9427,9434,10804,11406,11415,11442,11452,11659,11668,14224,14738,15077,15112,15178,15903,28415,28435,28617,29573,29585,35644,35660,35833,36701,41601,41618],"o":"tmp81"},{"a":41626,"t":"code","b":[160,255],"m":"ldy","o":"#$FF"},{"a":41628,"t":"code","b":[132,128],"m":"sty","oa":128,"o":"tmp80"},{"a":41630,"l":"b_A29E","t":"code","b":[10],"m":"asl","x":[41635],"o":"a"},{"a":41631,"t":"code","b":[176,4],"m":"bcs","oa":41637,"o":"b_A2A5"},{"a":41633,"t":"code","b":[70,128],"m":"lsr","oa":128,"o":"tmp80"},{"a":41635,"t":"code","b":[208,249],"m":"bne","oa":41630,"o":"b_A29E"},{"a":41637,"l":"b_A2A5","t":"code","b":[173,241,162],"m":"lda","oa":41713,"x":[41631,41665],"o":"a_A2F1"},{"a":41640,"t":"code","b":[24],"m":"clc"},{"a":41641,"t":"code","b":[109,240,162],"m":"adc","oa":41712,"o":"a_A2F0"},{"a":41644,"t":"code","b":[141,240,162],"m":"sta","oa":41712,"o":"a_A2F0"},{"a":41647,"t":"code","b":[109,239,162],"m":"adc","oa":41711,"o":"a_A2EF"},{"a":41650,"t":"code","b":[141,239,162],"m":"sta","oa":41711,"o":"a_A2EF"},{"a":41653,"t":"code","b":[109,238,162],"m":"adc","oa":41710,"o":"random_state"},{"a":41656,"t":"code","b":[141,238,162],"m":"sta","oa":41710,"o":"random_state"},{"a":41659,"t":"code","b":[37,128],"m":"and","oa":128,"o":"tmp80"},{"a":41661,"t":"code","b":[197,129],"m":"cmp","oa":129,"o":"tmp81"},{"a":41663,"t":"code","b":[240,2],"m":"beq","oa":41667,"o":"b_A2C3"},{"a":41665,"t":"code","b":[176,226],"m":"bcs","oa":41637,"o":"b_A2A5"},{"a":41667,"l":"b_A2C3","t":"code","b":[168],"m":"tay","x":[41663]},{"a":41668,"t":"code","b":[96],"m":"rts"},{"a":41669,"l":"random","c":"The next random byte, in A: the constant $A2F1 is added into $A2F0, that into $A2EF and that into $A2EE, the carries running through, and $A2EE is the result","t":"code","b":[173,241,162],"m":"lda","oa":41713,"x":[4775,6684,6880,6933,6977,9509,9517,10597,10601,10840,10845,11511,11547,14125,14215,14551,14577,15212,15713,28226,28301,28307,28313,41610],"o":"a_A2F1"},{"a":41672,"t":"code","b":[24],"m":"clc"},{"a":41673,"t":"code","b":[109,240,162],"m":"adc","oa":41712,"o":"a_A2F0"},{"a":41676,"t":"code","b":[141,240,162],"m":"sta","oa":41712,"o":"a_A2F0"},{"a":41679,"t":"code","b":[109,239,162],"m":"adc","oa":41711,"o":"a_A2EF"},{"a":41682,"t":"code","b":[141,239,162],"m":"sta","oa":41711,"o":"a_A2EF"},{"a":41685,"t":"code","b":[109,238,162],"m":"adc","oa":41710,"o":"random_state"},{"a":41688,"t":"code","b":[141,238,162],"m":"sta","oa":41710,"o":"random_state"},{"a":41691,"t":"code","b":[96],"m":"rts"},{"a":41692,"l":"random_seed","c":"Seeds the random generator: X, Y and $A2F4 into $A2EE-$A2F0 (from the HELM clock when the day changes, $296D)","t":"code","b":[142,242,162],"m":"stx","oa":41714,"x":[10605],"o":"a_A2F2"},{"a":41695,"t":"code","b":[140,243,162],"m":"sty","oa":41715,"o":"a_A2F3"},{"a":41698,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":41700,"l":"b_A2E4","t":"code","b":[185,242,162],"m":"lda","oa":41714,"x":[41707],"o":"a_A2F2,y"},{"a":41703,"t":"code","b":[153,238,162],"m":"sta","oa":41710,"o":"random_state,y"},{"a":41706,"t":"code","b":[136],"m":"dey"},{"a":41707,"t":"code","b":[16,247],"m":"bpl","oa":41700,"o":"b_A2E4"},{"a":41709,"t":"code","b":[96],"m":"rts"},{"a":41710,"l":"random_state","c":"The generator's three bytes ($A2EE-$A2F0), the constant added each time ($A2F1, $A9) and the seed bytes ($A2F2-$A2F4)","t":"byte","b":[130],"x":[41653,41656,41685,41688,41703]},{"a":41711,"l":"a_A2EF","c":"The generator's middle byte, which takes $A2F0's sum each step","t":"byte","b":[73],"x":[41647,41650,41679,41682]},{"a":41712,"l":"a_A2F0","c":"The generator's low byte, to which the constant at $A2F1 is added each step","t":"byte","b":[166],"x":[41641,41644,41673,41676]},{"a":41713,"l":"a_A2F1","c":"The constant $A9 added into the generator each step","t":"byte","b":[169],"x":[41637,41669]},{"a":41714,"l":"a_A2F2","c":"The seed's first byte (random_seed's X), copied to $A2EE","t":"byte","b":[120],"x":[41692,41700]},{"a":41715,"l":"a_A2F3","c":"The seed's second byte (random_seed's Y), copied to $A2EF; then $A2F4, $F4, copied to $A2F0","t":"byte","b":[53,244,169],"x":[41695]},{"a":41718,"l":"copy_memory","c":"Copies $85 whole pages and then $84 bytes from ($80) to ($82)","t":"code","b":[160,0],"m":"ldy","x":[36696],"o":"#$00"},{"a":41720,"t":"code","b":[166,133],"m":"ldx","oa":133,"o":"tmp85"},{"a":41722,"t":"code","b":[240,14],"m":"beq","oa":41738,"o":"b_A30A"},{"a":41724,"l":"b_A2FC","t":"code","b":[177,128],"m":"lda","oa":128,"x":[41729,41736],"o":"(tmp80),y"},{"a":41726,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(tmp82),y"},{"a":41728,"t":"code","b":[200],"m":"iny"},{"a":41729,"t":"code","b":[208,249],"m":"bne","oa":41724,"o":"b_A2FC"},{"a":41731,"t":"code","b":[230,129],"m":"inc","oa":129,"o":"tmp81"},{"a":41733,"t":"code","b":[230,131],"m":"inc","oa":131,"o":"tmp83"},{"a":41735,"t":"code","b":[202],"m":"dex"},{"a":41736,"t":"code","b":[208,242],"m":"bne","oa":41724,"o":"b_A2FC"},{"a":41738,"l":"b_A30A","t":"code","b":[166,132],"m":"ldx","oa":132,"x":[41722],"o":"tmp84"},{"a":41740,"t":"code","b":[240,8],"m":"beq","oa":41750,"o":"r_A316"},{"a":41742,"l":"b_A30E","t":"code","b":[177,128],"m":"lda","oa":128,"x":[41748],"o":"(tmp80),y"},{"a":41744,"t":"code","b":[145,130],"m":"sta","oa":130,"o":"(tmp82),y"},{"a":41746,"t":"code","b":[200],"m":"iny"},{"a":41747,"t":"code","b":[202],"m":"dex"},{"a":41748,"t":"code","b":[208,248],"m":"bne","oa":41742,"o":"b_A30E"},{"a":41750,"l":"r_A316","t":"code","b":[96],"m":"rts","x":[41740]},{"a":41751,"l":"wait_ticks","c":"Waits A ticks of about a tenth of a second each (76 x 256 turns of a delay loop), noting whether fire was pressed meanwhile: returns $C0 if it was, else 0. The three RTS at $A46D-$A46F it calls are empty hooks","t":"code","b":[162,0],"m":"ldx","x":[9873,10681,14659,15151,39482,39512],"o":"#$00"},{"a":41753,"t":"code","b":[134,128],"m":"stx","oa":128,"o":"tmp80"},{"a":41755,"t":"code","b":[32,109,164],"m":"jsr","oa":42093,"o":"r_A46D"},{"a":41758,"l":"b_A31E","t":"code","b":[162,76],"m":"ldx","x":[41783],"o":"#$4C"},{"a":41760,"l":"b_A320","t":"code","b":[160,0],"m":"ldy","x":[41769],"o":"#$00"},{"a":41762,"l":"b_A322","t":"code","b":[136],"m":"dey","x":[41763]},{"a":41763,"t":"code","b":[208,253],"m":"bne","oa":41762,"o":"b_A322"},{"a":41765,"t":"code","b":[32,111,164],"m":"jsr","oa":42095,"o":"r_A46F"},{"a":41768,"t":"code","b":[202],"m":"dex"},{"a":41769,"t":"code","b":[208,245],"m":"bne","oa":41760,"o":"b_A320"},{"a":41771,"t":"code","b":[72],"m":"pha"},{"a":41772,"t":"code","b":[32,39,164],"m":"jsr","oa":42023,"o":"fire_pressed"},{"a":41775,"t":"code","b":[5,128],"m":"ora","oa":128,"o":"tmp80"},{"a":41777,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":41779,"t":"code","b":[104],"m":"pla"},{"a":41780,"t":"code","b":[56],"m":"sec"},{"a":41781,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":41783,"t":"code","b":[208,229],"m":"bne","oa":41758,"o":"b_A31E"},{"a":41785,"t":"code","b":[32,110,164],"m":"jsr","oa":42094,"o":"r_A46E"},{"a":41788,"t":"code","b":[165,128],"m":"lda","oa":128,"o":"tmp80"},{"a":41790,"t":"code","b":[96],"m":"rts"},{"a":41791,"l":"key_direction","c":"A key or the joystick as a direction: X across (-1 left, 1 right) and Y up and down (1 up, -1 down). Keys from the table at $A375: W, 8 or code $0B up; X, 2 or $0A down; A, 4 or $08 left; D, 6 or $15 right; Q, E, Z, C or 7, 9, 1, 3 the diagonals. Return or Space give carry set (choose), other keys nothing. With no key, the joystick is read ($A406) when it has been used ($0D03)","t":"code","b":[32,77,162],"m":"jsr","oa":41549,"x":[9761,10150,39587],"o":"get_key"},{"a":41794,"t":"code","b":[72],"m":"pha"},{"a":41795,"t":"code","b":[176,18],"m":"bcs","oa":41815,"o":"b_A357"},{"a":41797,"t":"code","b":[173,3,13],"m":"lda","oa":3331,"o":"joy_used"},{"a":41800,"t":"code","b":[240,6],"m":"beq","oa":41808,"o":"b_A350"},{"a":41802,"t":"code","b":[32,6,164],"m":"jsr","oa":41990,"o":"joystick_direction"},{"a":41805,"t":"code","b":[24],"m":"clc"},{"a":41806,"t":"code","b":[104],"m":"pla"},{"a":41807,"t":"code","b":[96],"m":"rts"},{"a":41808,"l":"b_A350","t":"code","b":[24],"m":"clc","x":[41800,41833]},{"a":41809,"l":"b_A351","t":"code","b":[162,0],"m":"ldx","x":[41827,41831],"o":"#$00"},{"a":41811,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":41813,"t":"code","b":[104],"m":"pla"},{"a":41814,"t":"code","b":[96],"m":"rts"},{"a":41815,"l":"b_A357","t":"code","b":[160,19],"m":"ldy","x":[41795],"o":"#$13"},{"a":41817,"l":"b_A359","t":"code","b":[217,117,163],"m":"cmp","oa":41845,"x":[41823],"o":"direction_keys,y"},{"a":41820,"t":"code","b":[240,13],"m":"beq","oa":41835,"o":"b_A36B"},{"a":41822,"t":"code","b":[136],"m":"dey"},{"a":41823,"t":"code","b":[16,248],"m":"bpl","oa":41817,"o":"b_A359"},{"a":41825,"t":"code","b":[201,13],"m":"cmp","o":"#$0D"},{"a":41827,"t":"code","b":[240,236],"m":"beq","oa":41809,"o":"b_A351"},{"a":41829,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":41831,"t":"code","b":[240,232],"m":"beq","oa":41809,"o":"b_A351"},{"a":41833,"t":"code","b":[208,229],"m":"bne","oa":41808,"o":"b_A350"},{"a":41835,"l":"b_A36B","t":"code","b":[190,137,163],"m":"ldx","oa":41865,"x":[41820],"o":"f_A389,y"},{"a":41838,"t":"code","b":[185,157,163],"m":"lda","oa":41885,"o":"f_A39D,y"},{"a":41841,"t":"code","b":[168],"m":"tay"},{"a":41842,"t":"code","b":[24],"m":"clc"},{"a":41843,"t":"code","b":[104],"m":"pla"},{"a":41844,"t":"code","b":[96],"m":"rts"},{"a":41845,"l":"direction_keys","c":"The 20 direction keys, then from $A389 their X steps and from $A39D their Y steps","t":"byte","b":[87,56,11,88,50,10,65,52],"x":[41817]},{"a":41853,"t":"byte","b":[8,68,54,21,81,55,69,57]},{"a":41861,"t":"byte","b":[90,49,67,51]},{"a":41865,"l":"f_A389","c":"Each direction key's step across: -1, 0 or 1","t":"byte","b":[0,0,0,0,0,0,255,255],"x":[41835]},{"a":41873,"t":"byte","b":[255,1,1,1,255,255,1,1]},{"a":41881,"t":"byte","b":[255,255,1,1]},{"a":41885,"l":"f_A39D","c":"Each direction key's step up and down: -1, 0 or 1","t":"byte","b":[1,1,1,255,255,255,0,0],"x":[41838]},{"a":41893,"t":"byte","b":[0,0,0,0,1,1,1,1]},{"a":41901,"t":"byte","b":[255,255,255,255]},{"a":41905,"l":"joystick_eased","c":"The joystick as a position 0-$7F on each axis ($3F centred), eased: with A = 1 each call moves the kept position ($A404, $A405) an eighth of the way toward where the stick is (centre, or $00 or $7F at either side). Used for flying by joystick ($2484)","t":"code","b":[169,1],"m":"lda","x":[9348],"o":"#$01"},{"a":41907,"l":"s_A3B3","c":"With A = 0 the stick's position is returned as it is","t":"code","b":[141,3,164],"m":"sta","oa":41987,"x":[41992],"o":"ease_flag"},{"a":41910,"t":"code","b":[162,63],"m":"ldx","o":"#$3F"},{"a":41912,"t":"code","b":[160,63],"m":"ldy","o":"#$3F"},{"a":41914,"t":"code","b":[32,86,164],"m":"jsr","oa":42070,"o":"read_joystick2"},{"a":41917,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":41918,"t":"code","b":[144,2],"m":"bcc","oa":41922,"o":"b_A3C2"},{"a":41920,"t":"code","b":[160,127],"m":"ldy","o":"#$7F"},{"a":41922,"l":"b_A3C2","t":"code","b":[74],"m":"lsr","x":[41918],"o":"a"},{"a":41923,"t":"code","b":[144,2],"m":"bcc","oa":41927,"o":"b_A3C7"},{"a":41925,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":41927,"l":"b_A3C7","t":"code","b":[74],"m":"lsr","x":[41923],"o":"a"},{"a":41928,"t":"code","b":[144,2],"m":"bcc","oa":41932,"o":"b_A3CC"},{"a":41930,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":41932,"l":"b_A3CC","t":"code","b":[74],"m":"lsr","x":[41928],"o":"a"},{"a":41933,"t":"code","b":[144,2],"m":"bcc","oa":41937,"o":"b_A3D1"},{"a":41935,"t":"code","b":[162,127],"m":"ldx","o":"#$7F"},{"a":41937,"l":"b_A3D1","t":"code","b":[173,3,164],"m":"lda","oa":41987,"x":[41933],"o":"ease_flag"},{"a":41940,"t":"code","b":[240,44],"m":"beq","oa":41986,"o":"r_A402"},{"a":41942,"t":"code","b":[138],"m":"txa"},{"a":41943,"t":"code","b":[24],"m":"clc"},{"a":41944,"t":"code","b":[109,4,164],"m":"adc","oa":41988,"o":"a_A404"},{"a":41947,"t":"code","b":[106],"m":"ror","o":"a"},{"a":41948,"t":"code","b":[24],"m":"clc"},{"a":41949,"t":"code","b":[109,4,164],"m":"adc","oa":41988,"o":"a_A404"},{"a":41952,"t":"code","b":[106],"m":"ror","o":"a"},{"a":41953,"t":"code","b":[24],"m":"clc"},{"a":41954,"t":"code","b":[109,4,164],"m":"adc","oa":41988,"o":"a_A404"},{"a":41957,"t":"code","b":[106],"m":"ror","o":"a"},{"a":41958,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41960,"t":"code","b":[141,4,164],"m":"sta","oa":41988,"o":"a_A404"},{"a":41963,"t":"code","b":[170],"m":"tax"},{"a":41964,"t":"code","b":[152],"m":"tya"},{"a":41965,"t":"code","b":[24],"m":"clc"},{"a":41966,"t":"code","b":[109,5,164],"m":"adc","oa":41989,"o":"a_A405"},{"a":41969,"t":"code","b":[106],"m":"ror","o":"a"},{"a":41970,"t":"code","b":[24],"m":"clc"},{"a":41971,"t":"code","b":[109,5,164],"m":"adc","oa":41989,"o":"a_A405"},{"a":41974,"t":"code","b":[106],"m":"ror","o":"a"},{"a":41975,"t":"code","b":[24],"m":"clc"},{"a":41976,"t":"code","b":[109,5,164],"m":"adc","oa":41989,"o":"a_A405"},{"a":41979,"t":"code","b":[106],"m":"ror","o":"a"},{"a":41980,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":41982,"t":"code","b":[141,5,164],"m":"sta","oa":41989,"o":"a_A405"},{"a":41985,"t":"code","b":[168],"m":"tay"},{"a":41986,"l":"r_A402","t":"code","b":[96],"m":"rts","x":[41940]},{"a":41987,"l":"ease_flag","c":"1 to ease the joystick position; $A404 and $A405 the eased position across and up-down","t":"byte","b":[1],"x":[41907,41937]},{"a":41988,"l":"a_A404","c":"The eased joystick position across, $00 left to $7F right, $3F centred","t":"byte","b":[63],"x":[41944,41949,41954,41960]},{"a":41989,"l":"a_A405","c":"The eased joystick position up and down, $00 down to $7F up, $3F centred","t":"byte","b":[63],"x":[41966,41971,41976,41982]},{"a":41990,"l":"joystick_direction","c":"The joystick as -1, 0 or 1 across (X) and up-down (Y), from its position without easing ($A416)","t":"code","b":[169,0],"m":"lda","x":[41802],"o":"#$00"},{"a":41992,"t":"code","b":[32,179,163],"m":"jsr","oa":41907,"o":"s_A3B3"},{"a":41995,"t":"code","b":[138],"m":"txa"},{"a":41996,"t":"code","b":[32,22,164],"m":"jsr","oa":42006,"o":"s_A416"},{"a":41999,"t":"code","b":[170],"m":"tax"},{"a":42000,"t":"code","b":[152],"m":"tya"},{"a":42001,"t":"code","b":[32,22,164],"m":"jsr","oa":42006,"o":"s_A416"},{"a":42004,"t":"code","b":[168],"m":"tay"},{"a":42005,"t":"code","b":[96],"m":"rts"},{"a":42006,"l":"s_A416","c":"A position below $2B gives -1, below $55 0, otherwise 1","t":"code","b":[201,43],"m":"cmp","x":[41996,42001],"o":"#$2B"},{"a":42008,"t":"code","b":[176,3],"m":"bcs","oa":42013,"o":"b_A41D"},{"a":42010,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":42012,"t":"code","b":[96],"m":"rts"},{"a":42013,"l":"b_A41D","t":"code","b":[201,85],"m":"cmp","x":[42008],"o":"#$55"},{"a":42015,"t":"code","b":[176,3],"m":"bcs","oa":42020,"o":"b_A424"},{"a":42017,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42019,"t":"code","b":[96],"m":"rts"},{"a":42020,"l":"b_A424","t":"code","b":[169,1],"m":"lda","x":[42015],"o":"#$01"},{"a":42022,"t":"code","b":[96],"m":"rts"},{"a":42023,"l":"fire_pressed","c":"$C0 in A (Z clear) while the fire button of the joystick in port 2 is pressed, else 0","t":"code","b":[32,86,164],"m":"jsr","oa":42070,"x":[39422,41772,42043],"o":"read_joystick2"},{"a":42026,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":42028,"t":"code","b":[240,2],"m":"beq","oa":42032,"o":"r_A430"},{"a":42030,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":42032,"l":"r_A430","t":"code","b":[96],"m":"rts","x":[42028]},{"a":42033,"l":"wait_key","c":"Empties the keyboard buffer, then waits for a key (carry set) or a press of fire, which it waits to see released","t":"code","b":[32,77,162],"m":"jsr","oa":41549,"x":[5180,6183,11164,14890,15262,41074,41106,42036,42199],"o":"get_key"},{"a":42036,"t":"code","b":[176,251],"m":"bcs","oa":42033,"o":"wait_key"},{"a":42038,"l":"b_A436","t":"code","b":[32,77,162],"m":"jsr","oa":41549,"x":[42046],"o":"get_key"},{"a":42041,"t":"code","b":[176,8],"m":"bcs","oa":42051,"o":"r_A443"},{"a":42043,"t":"code","b":[32,39,164],"m":"jsr","oa":42023,"o":"fire_pressed"},{"a":42046,"t":"code","b":[240,246],"m":"beq","oa":42038,"o":"b_A436"},{"a":42048,"t":"code","b":[32,68,164],"m":"jsr","oa":42052,"o":"wait_fire_up"},{"a":42051,"l":"r_A443","t":"code","b":[96],"m":"rts","x":[42041]},{"a":42052,"l":"wait_fire_up","c":"Waits until the fire button is let go","t":"code","b":[32,86,164],"m":"jsr","oa":42070,"x":[39410,39488,42048,42057],"o":"read_joystick2"},{"a":42055,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":42057,"t":"code","b":[208,249],"m":"bne","oa":42052,"o":"wait_fire_up"},{"a":42059,"t":"code","b":[96],"m":"rts"},{"a":42060,"l":"read_joystick1","c":"Reads the joystick in port 1 ($DC01): its five switches, 1 for closed, in A, with $0D03 set when any is; the I/O is banked in for the read","t":"code","b":[120],"m":"sei","x":[9273,9312]},{"a":42061,"t":"code","b":[32,140,14],"m":"jsr","oa":3724,"o":"bank_io_in"},{"a":42064,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":42067,"t":"code","b":[76,93,164],"m":"jmp","oa":42077,"o":"j_A45D"},{"a":42070,"l":"read_joystick2","c":"The same for the joystick in port 2 ($DC00)","t":"code","b":[120],"m":"sei","x":[9260,41914,42023,42052]},{"a":42071,"t":"code","b":[32,140,14],"m":"jsr","oa":3724,"o":"bank_io_in"},{"a":42074,"t":"code","b":[173,0,220],"m":"lda","o":"cia1_port_a"},{"a":42077,"l":"j_A45D","t":"code","b":[73,255],"m":"eor","x":[42067],"o":"#$FF"},{"a":42079,"t":"code","b":[41,31],"m":"and","o":"#$1F"},{"a":42081,"t":"code","b":[240,3],"m":"beq","oa":42086,"o":"b_A466"},{"a":42083,"t":"code","b":[141,3,13],"m":"sta","oa":3331,"o":"joy_used"},{"a":42086,"l":"b_A466","t":"code","b":[72],"m":"pha","x":[42081]},{"a":42087,"t":"code","b":[32,133,14],"m":"jsr","oa":3717,"o":"bank_all_ram"},{"a":42090,"t":"code","b":[104],"m":"pla"},{"a":42091,"t":"code","b":[88],"m":"cli"},{"a":42092,"t":"code","b":[96],"m":"rts"},{"a":42093,"l":"r_A46D","c":"Three empty hooks, RTS each, called by wait_ticks","t":"code","b":[96],"m":"rts","x":[41755]},{"a":42094,"l":"r_A46E","t":"code","b":[96],"m":"rts","x":[41785]},{"a":42095,"l":"r_A46F","t":"code","b":[96],"m":"rts","x":[41765]},{"a":42096,"l":"frame_skip3","c":"Frame pacing for the main loop: 3 frames are taken off the lag count $2E and the interrupt's frame counter $16 restarted at 1. Carry set (the lag was 3 or more) tells the loop to skip drawing this pass","t":"code","b":[165,46],"m":"lda","oa":46,"x":[3592,29006],"o":"frame_lag"},{"a":42098,"t":"code","b":[56],"m":"sec"},{"a":42099,"t":"code","b":[233,3],"m":"sbc","o":"#$03"},{"a":42101,"t":"code","b":[133,46],"m":"sta","oa":46,"o":"frame_lag"},{"a":42103,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":42105,"t":"code","b":[133,22],"m":"sta","oa":22,"o":"frame_count"},{"a":42107,"t":"code","b":[96],"m":"rts"},{"a":42108,"l":"frame_skip5","c":"The same with 5 frames, for the wormhole","t":"code","b":[165,46],"m":"lda","oa":46,"x":[29158],"o":"frame_lag"},{"a":42110,"t":"code","b":[56],"m":"sec"},{"a":42111,"t":"code","b":[233,5],"m":"sbc","o":"#$05"},{"a":42113,"t":"code","b":[133,46],"m":"sta","oa":46,"o":"frame_lag"},{"a":42115,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":42117,"t":"code","b":[133,22],"m":"sta","oa":22,"o":"frame_count"},{"a":42119,"t":"code","b":[96],"m":"rts"},{"a":42120,"l":"draw_frame","c":"Draws the frame (set_flash_colour, then build_draw_list) and adds the frames it took ($16) to the lag count: the count was left below zero by frame_skip, so it ends up zero when the drawing took no longer than allowed and holds the frames it overran otherwise","t":"code","b":[32,189,143],"m":"jsr","oa":36797,"x":[3603,29017,29166],"o":"set_flash_colour"},{"a":42123,"t":"code","b":[32,44,62],"m":"jsr","oa":15916,"o":"build_draw_list"},{"a":42126,"t":"code","b":[165,46],"m":"lda","oa":46,"o":"frame_lag"},{"a":42128,"t":"code","b":[24],"m":"clc"},{"a":42129,"t":"code","b":[101,22],"m":"adc","oa":22,"o":"frame_count"},{"a":42131,"t":"code","b":[176,2],"m":"bcs","oa":42135,"o":"b_A497"},{"a":42133,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42135,"l":"b_A497","t":"code","b":[133,46],"m":"sta","oa":46,"x":[42131],"o":"frame_lag"},{"a":42137,"t":"code","b":[96],"m":"rts"},{"a":42138,"l":"station_run","c":"The base, after SEG1 is loaded (from dock). Shows bank 3 with text in one buffer, sets up SEG1 ($A55D), loads the base's map file (name at $0778) to $5100, sets $0D30-$0D32, runs SEG1's and SEG1A's set-up ($A575, $A54E, $A584, $E46C), waits for a key, then loops: draw the view ($A4EB) and SEG1's step ($A674) until $A673 is set","t":"code","b":[169,0],"m":"lda","x":[28851],"o":"#$00"},{"a":42140,"t":"code","b":[141,58,8],"m":"sta","oa":2106,"o":"drunk"},{"a":42143,"t":"code","b":[141,59,8],"m":"sta","oa":2107,"o":"alarm"},{"a":42146,"t":"code","b":[133,58],"m":"sta","oa":58,"o":"draw_buffer"},{"a":42148,"t":"code","b":[32,246,142],"m":"jsr","oa":36598,"o":"show_bank3"},{"a":42151,"t":"code","b":[32,100,161],"m":"jsr","oa":41316,"o":"mirror_text_off"},{"a":42154,"t":"code","b":[32,93,165],"m":"jsr","oa":42333,"o":"$A55D"},{"a":42157,"t":"code","b":[162,120],"m":"ldx","o":"#$78"},{"a":42159,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":42161,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42163,"t":"code","b":[133,128],"m":"sta","oa":128,"o":"tmp80"},{"a":42165,"t":"code","b":[169,81],"m":"lda","o":"#$51"},{"a":42167,"t":"code","b":[133,129],"m":"sta","oa":129,"o":"tmp81"},{"a":42169,"t":"code","b":[32,101,23],"m":"jsr","oa":5989,"o":"load_file"},{"a":42172,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":42174,"t":"code","b":[141,48,13],"m":"sta","oa":3376,"o":"chart_col"},{"a":42177,"t":"code","b":[169,191],"m":"lda","o":"#$BF"},{"a":42179,"t":"code","b":[141,49,13],"m":"sta","oa":3377,"o":"chart_row"},{"a":42182,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":42184,"t":"code","b":[141,50,13],"m":"sta","oa":3378,"o":"chart_scroll"},{"a":42187,"t":"code","b":[32,117,165],"m":"jsr","oa":42357,"o":"$A575"},{"a":42190,"t":"code","b":[32,78,165],"m":"jsr","oa":42318,"o":"$A54E"},{"a":42193,"t":"code","b":[32,132,165],"m":"jsr","oa":42372,"o":"$A584"},{"a":42196,"t":"code","b":[32,108,228],"m":"jsr","oa":58476,"o":"$E46C"},{"a":42199,"t":"code","b":[32,49,164],"m":"jsr","oa":42033,"o":"wait_key"},{"a":42202,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":42204,"t":"code","b":[141,115,166],"m":"sta","oa":42611,"o":"$A673"},{"a":42207,"l":"b_A4DF","t":"code","b":[32,235,164],"m":"jsr","oa":42219,"x":[42216],"o":"station_view"},{"a":42210,"t":"code","b":[32,116,166],"m":"jsr","oa":42612,"o":"$A674"},{"a":42213,"t":"code","b":[173,115,166],"m":"lda","oa":42611,"o":"$A673"},{"a":42216,"t":"code","b":[240,245],"m":"beq","oa":42207,"o":"b_A4DF"},{"a":42218,"t":"code","b":[96],"m":"rts"},{"a":42219,"l":"station_view","c":"Draws the base's view: window 2, then the chart window filled with tile $2C around the player's place in the map ($5510, $5530); the routine runs on into SEG1 at $A500, which is only there in a base: the LDY at $A4FE takes its high byte from $A500","t":"code","b":[160,2],"m":"ldy","x":[42207],"o":"#$02"},{"a":42221,"t":"code","b":[32,76,158],"m":"jsr","oa":40524,"o":"select_window"},{"a":42224,"t":"code","b":[174,16,85],"m":"ldx","oa":21776,"o":"$5510"},{"a":42227,"t":"code","b":[172,48,85],"m":"ldy","oa":21808,"o":"$5530"},{"a":42230,"t":"code","b":[169,44],"m":"lda","o":"#$2C"},{"a":42232,"t":"code","b":[32,105,48],"m":"jsr","oa":12393,"o":"fill_chart_window"},{"a":42235,"t":"code","b":[174,16,85],"m":"ldx","oa":21776,"o":"$5510"},{"a":42238,"t":"code","b":[172,48,255],"m":"ldy","oa":65328,"o":"a_FF30"},{"a":42241,"t":"gap","n":6143},{"a":48384,"l":"spb","c":"SPB: the number of texts in each 512-byte block of disk text, one word a block for 115 blocks; resolve_text subtracts them from a text number to find its block","t":"byte","b":[7],"x":[39898,39930]},{"a":48385,"l":"spb_hi","c":"The high bytes of SPB's counts, read at $BD01 + 2 * block","t":"byte","b":[0,6,0,5,0,3,0,45],"x":[39905,39937]},{"a":48393,"t":"byte","b":[0,10,0,8,0,3,0,46]},{"a":48401,"t":"byte","b":[0,7,0,55,0,10,0,3]},{"a":48409,"t":"byte","b":[0,6,0,3,0,42,0,10]},{"a":48417,"t":"byte","b":[0,10,0,9,0,33,0,9]},{"a":48425,"t":"byte","b":[0,8,0,62,0,8,0,16]},{"a":48433,"t":"byte","b":[0,5,0,27,0,9,0,48]},{"a":48441,"t":"byte","b":[0,8,0,29,0,35,0,4]},{"a":48449,"t":"byte","b":[0,57,0,16,0,45,0,15]},{"a":48457,"t":"byte","b":[0,7,0,45,0,23,0,12]},{"a":48465,"t":"byte","b":[0,6,0,34,0,7,0,47]},{"a":48473,"t":"byte","b":[0,6,0,6,0,51,0,7]},{"a":48481,"t":"byte","b":[0,55,0,8,0,11,0,42]},{"a":48489,"t":"byte","b":[0,9,0,26,0,36,0,8]},{"a":48497,"t":"byte","b":[0,4,0,49,0,10,0,16]},{"a":48505,"t":"byte","b":[0,44,0,18,0,40,0,15]},{"a":48513,"t":"byte","b":[0,6,0,43,0,4,0,10]},{"a":48521,"t":"byte","b":[0,20,0,38,0,52,0,4]},{"a":48529,"t":"byte","b":[0,60,0,6,0,7,0,57]},{"a":48537,"t":"byte","b":[0,10,0,14,0,36,0,8]},{"a":48545,"t":"byte","b":[0,12,0,46,0,13,0,51]},{"a":48553,"t":"byte","b":[0,15,0,56,0,11,0,28]},{"a":48561,"t":"byte","b":[0,23,0,16,1,254,3,152]},{"a":48569,"t":"byte","b":[1,9,0,16,0,40,0,29]},{"a":48577,"t":"byte","b":[0,18,0,18,0,25,0,32]},{"a":48585,"t":"byte","b":[0,11,0,4,0,4,0,6]},{"a":48593,"t":"byte","b":[0,11,0,17,0,12,0,7]},{"a":48601,"t":"byte","b":[0,20,0,11,0,30,0,22]},{"a":48609,"t":"byte","b":[0,14,0,53,0]},{"a":48614,"t":"gap","n":11546},{"a":60160,"l":"row_addr_lo","c":"EXTERN's row address table, low bytes: the address in the $C000 bitmap of each of the 200 pixel rows, the bottom row first (EORed with $3A for the $4000 bitmap)","t":"byte","b":[7],"x":[34522,34757,40878,40975,41211,41412]},{"a":60161,"l":"row_addr_lo_up","c":"The row address low bytes one row up, read by scroll_window for the row a pixel row moves to","t":"byte","b":[6,5,4,3,2,1,0,199],"x":[41427]},{"a":60169,"t":"byte","b":[198,197,196,195,194,193,192,135]},{"a":60177,"t":"byte","b":[134,133,132,131,130,129,128,71]},{"a":60185,"t":"byte","b":[70,69,68,67,66,65,64,7]},{"a":60193,"t":"byte","b":[6,5,4,3,2,1,0,199]},{"a":60201,"t":"byte","b":[198,197,196,195,194,193,192,135]},{"a":60209,"t":"byte","b":[134,133,132,131,130,129,128,71]},{"a":60217,"t":"byte","b":[70,69,68,67,66,65,64,7]},{"a":60225,"t":"byte","b":[6,5,4,3,2,1,0,199]},{"a":60233,"l":"row_addr_lo_view","c":"The row address low bytes from row 73, the 3D view's bottom row, where set_window last pointed span","t":"byte","b":[198,197,196,195,194,193,192,135],"x":[35996]},{"a":60241,"t":"byte","b":[134,133,132,131,130,129,128,71]},{"a":60249,"t":"byte","b":[70,69,68,67,66,65,64,7]},{"a":60257,"t":"byte","b":[6,5,4,3,2,1,0,199]},{"a":60265,"t":"byte","b":[198,197,196,195,194,193,192,135]},{"a":60273,"t":"byte","b":[134,133,132,131,130,129,128,71]},{"a":60281,"t":"byte","b":[70,69,68,67,66,65,64,7]},{"a":60289,"t":"byte","b":[6,5,4,3,2,1,0,199]},{"a":60297,"t":"byte","b":[198,197,196,195,194,193,192,135]},{"a":60305,"t":"byte","b":[134,133,132,131,130,129,128,71]},{"a":60313,"t":"byte","b":[70,69,68,67,66,65,64,7]},{"a":60321,"t":"byte","b":[6,5,4,3,2,1,0,199]},{"a":60329,"t":"byte","b":[198,197,196,195,194,193,192,135]},{"a":60337,"t":"byte","b":[134,133,132,131,130,129,128,71]},{"a":60345,"t":"byte","b":[70,69,68,67,66,65,64,7]},{"a":60353,"t":"byte","b":[6,5,4,3,2,1,0]},{"a":60360,"l":"screen_row_lo","c":"The screen matrix row addresses, low bytes, for the 25 text rows, the bottom row first","t":"byte","b":[192,152,112,72,32,248,208,168],"x":[34541,36014,41238]},{"a":60368,"t":"byte","b":[128,88,48,8,224,184,144,104]},{"a":60376,"t":"byte","b":[64,24,240,200,160,120,80,40]},{"a":60384,"t":"byte","b":[0]},{"a":60385,"l":"screen_row_hi","c":"The screen matrix row addresses, high bytes ($E3 down to $E0, EORed with $3A for $6000)","t":"byte","b":[227,227,227,227,227,226,226,226],"x":[34550,36019,41248]},{"a":60393,"t":"byte","b":[226,226,226,226,225,225,225,225]},{"a":60401,"t":"byte","b":[225,225,224,224,224,224,224,224]},{"a":60409,"t":"byte","b":[224,0,0,0,0,0,0]},{"a":60416,"l":"row_addr_hi","c":"EXTERN's row address table, high bytes, for each of the 200 pixel rows, the bottom row first","t":"byte","b":[222],"x":[34530,34765,40888,40985,41221,41420]},{"a":60417,"l":"row_addr_hi_up","c":"The row address high bytes one row up, for scroll_window's destination","t":"byte","b":[222,222,222,222,222,222,222,220],"x":[41437]},{"a":60425,"t":"byte","b":[220,220,220,220,220,220,220,219]},{"a":60433,"t":"byte","b":[219,219,219,219,219,219,219,218]},{"a":60441,"t":"byte","b":[218,218,218,218,218,218,218,217]},{"a":60449,"t":"byte","b":[217,217,217,217,217,217,217,215]},{"a":60457,"t":"byte","b":[215,215,215,215,215,215,215,214]},{"a":60465,"t":"byte","b":[214,214,214,214,214,214,214,213]},{"a":60473,"t":"byte","b":[213,213,213,213,213,213,213,212]},{"a":60481,"t":"byte","b":[212,212,212,212,212,212,212,210]},{"a":60489,"l":"row_addr_hi_view","c":"The row address high bytes from row 73, the 3D view's bottom row","t":"byte","b":[210,210,210,210,210,210,210,209],"x":[36001]},{"a":60497,"t":"byte","b":[209,209,209,209,209,209,209,208]},{"a":60505,"t":"byte","b":[208,208,208,208,208,208,208,207]},{"a":60513,"t":"byte","b":[207,207,207,207,207,207,207,205]},{"a":60521,"t":"byte","b":[205,205,205,205,205,205,205,204]},{"a":60529,"t":"byte","b":[204,204,204,204,204,204,204,203]},{"a":60537,"t":"byte","b":[203,203,203,203,203,203,203,202]},{"a":60545,"t":"byte","b":[202,202,202,202,202,202,202,200]},{"a":60553,"t":"byte","b":[200,200,200,200,200,200,200,199]},{"a":60561,"t":"byte","b":[199,199,199,199,199,199,199,198]},{"a":60569,"t":"byte","b":[198,198,198,198,198,198,198,197]},{"a":60577,"t":"byte","b":[197,197,197,197,197,197,197,195]},{"a":60585,"t":"byte","b":[195,195,195,195,195,195,195,194]},{"a":60593,"t":"byte","b":[194,194,194,194,194,194,194,193]},{"a":60601,"t":"byte","b":[193,193,193,193,193,193,193,192]},{"a":60609,"t":"byte","b":[192,192,192,192,192,192,192]},{"a":60616,"l":"div8","c":"n divided by 8 for n from 0 to 319: a pixel row's text row, or an x position's column","t":"byte","b":[0,0,0,0,0,0,0,0],"x":[34537,41234]},{"a":60624,"t":"byte","b":[1,1,1,1,1,1,1,1]},{"a":60632,"t":"byte","b":[2,2,2,2,2,2,2,2]},{"a":60640,"t":"byte","b":[3,3,3,3,3,3,3,3]},{"a":60648,"t":"byte","b":[4,4]},{"a":60650,"l":"div8_view_x","c":"The column table from x 34, the 3D view's left edge, where set_window last pointed span","t":"byte","b":[4,4,4,4,4,4,5,5],"x":[36070,36096,36100]},{"a":60658,"t":"byte","b":[5,5,5,5,5,5,6,6]},{"a":60666,"t":"byte","b":[6,6,6,6,6,6,7,7]},{"a":60674,"t":"byte","b":[7,7,7,7,7,7,8,8]},{"a":60682,"t":"byte","b":[8,8,8,8,8,8,9]},{"a":60689,"l":"div8_view_row","c":"The text row table from row 73, the 3D view's bottom row","t":"byte","b":[9,9,9,9,9,9,9,10],"x":[36010]},{"a":60697,"t":"byte","b":[10,10,10,10,10,10,10,11]},{"a":60705,"t":"byte","b":[11,11,11,11,11,11,11,12]},{"a":60713,"t":"byte","b":[12,12,12,12,12,12,12,13]},{"a":60721,"t":"byte","b":[13,13,13,13,13,13,13,14]},{"a":60729,"t":"byte","b":[14,14,14,14,14,14,14,15]},{"a":60737,"t":"byte","b":[15,15,15,15,15,15,15,16]},{"a":60745,"t":"byte","b":[16,16,16,16,16,16,16,17]},{"a":60753,"t":"byte","b":[17,17,17,17,17,17,17,18]},{"a":60761,"t":"byte","b":[18,18,18,18,18,18,18,19]},{"a":60769,"t":"byte","b":[19,19,19,19,19,19,19,20]},{"a":60777,"t":"byte","b":[20,20,20,20,20,20,20,21]},{"a":60785,"t":"byte","b":[21,21,21,21,21,21,21,22]},{"a":60793,"t":"byte","b":[22,22,22,22,22,22,22,23]},{"a":60801,"t":"byte","b":[23,23,23,23,23,23,23,24]},{"a":60809,"t":"byte","b":[24,24,24,24,24,24,24,25]},{"a":60817,"t":"byte","b":[25,25,25,25,25,25,25,26]},{"a":60825,"t":"byte","b":[26,26,26,26,26,26,26,27]},{"a":60833,"t":"byte","b":[27,27,27,27,27,27,27,28]},{"a":60841,"t":"byte","b":[28,28,28,28,28,28,28,29]},{"a":60849,"t":"byte","b":[29,29,29,29,29,29,29,30]},{"a":60857,"t":"byte","b":[30,30,30,30,30,30,30,31]},{"a":60865,"t":"byte","b":[31,31,31,31,31,31,31,32]},{"a":60873,"t":"byte","b":[32,32,32,32,32,32,32,33]},{"a":60881,"t":"byte","b":[33,33,33,33,33,33,33,34]},{"a":60889,"t":"byte","b":[34,34,34,34,34,34,34,35]},{"a":60897,"t":"byte","b":[35,35,35,35,35,35,35,36]},{"a":60905,"t":"byte","b":[36,36,36,36,36,36,36,37]},{"a":60913,"t":"byte","b":[37,37,37,37,37,37,37,38]},{"a":60921,"t":"byte","b":[38,38,38,38,38,38,38,39]},{"a":60929,"t":"byte","b":[39,39,39,39,39,39,39]},{"a":60936,"l":"x_byte_offsets","c":"For x from 0 to 319, the offset of x's byte in a bitmap row (8 * (x / 8)): its low byte in the top five bits, its high byte in the bottom three","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":60944,"t":"byte","b":[8,8,8,8,8,8,8,8]},{"a":60952,"t":"byte","b":[16,16,16,16,16,16,16,16]},{"a":60960,"t":"byte","b":[24,24,24,24,24,24,24,24]},{"a":60968,"t":"byte","b":[32,32]},{"a":60970,"l":"x_byte_offsets_view","c":"The x byte offsets from x 34, the 3D view's left edge","t":"byte","b":[32,32,32,32,32,32,40,40],"x":[36051,36061]},{"a":60978,"t":"byte","b":[40,40,40,40,40,40,48,48]},{"a":60986,"t":"byte","b":[48,48,48,48,48,48,56,56]},{"a":60994,"t":"byte","b":[56,56,56,56,56,56,64,64]},{"a":61002,"t":"byte","b":[64,64,64,64,64,64,72,72]},{"a":61010,"t":"byte","b":[72,72,72,72,72,72,80,80]},{"a":61018,"t":"byte","b":[80,80,80,80,80,80,88,88]},{"a":61026,"t":"byte","b":[88,88,88,88,88,88,96,96]},{"a":61034,"t":"byte","b":[96,96,96,96,96,96,104,104]},{"a":61042,"t":"byte","b":[104,104,104,104,104,104,112,112]},{"a":61050,"t":"byte","b":[112,112,112,112,112,112,120,120]},{"a":61058,"t":"byte","b":[120,120,120,120,120,120,128,128]},{"a":61066,"t":"byte","b":[128,128,128,128,128,128,136,136]},{"a":61074,"t":"byte","b":[136,136,136,136,136,136,144,144]},{"a":61082,"t":"byte","b":[144,144,144,144,144,144,152,152]},{"a":61090,"t":"byte","b":[152,152,152,152,152,152,160,160]},{"a":61098,"t":"byte","b":[160,160,160,160,160,160,168,168]},{"a":61106,"t":"byte","b":[168,168,168,168,168,168,176,176]},{"a":61114,"t":"byte","b":[176,176,176,176,176,176,184,184]},{"a":61122,"t":"byte","b":[184,184,184,184,184,184,192,192]},{"a":61130,"t":"byte","b":[192,192,192,192,192,192,200,200]},{"a":61138,"t":"byte","b":[200,200,200,200,200,200,208,208]},{"a":61146,"t":"byte","b":[208,208,208,208,208,208,216,216]},{"a":61154,"t":"byte","b":[216,216,216,216,216,216,224,224]},{"a":61162,"t":"byte","b":[224,224,224,224,224,224,232,232]},{"a":61170,"t":"byte","b":[232,232,232,232,232,232,240,240]},{"a":61178,"t":"byte","b":[240,240,240,240,240,240,248,248]},{"a":61186,"t":"byte","b":[248,248,248,248,248,248,1,1]},{"a":61194,"t":"byte","b":[1,1,1,1,1,1,9,9]},{"a":61202,"t":"byte","b":[9,9,9,9,9,9,17,17]},{"a":61210,"t":"byte","b":[17,17,17,17,17,17,25,25]},{"a":61218,"t":"byte","b":[25,25,25,25,25,25,33,33]},{"a":61226,"t":"byte","b":[33,33,33,33,33,33,41,41]},{"a":61234,"t":"byte","b":[41,41,41,41,41,41,49,49]},{"a":61242,"t":"byte","b":[49,49,49,49,49,49,57,57]},{"a":61250,"t":"byte","b":[57,57,57,57,57,57]},{"a":61256,"l":"left_masks","c":"For x from 0 to 319, the mask of the pixels from x to the right end of its byte ($FF, $7F ... $01), for a span's left end","t":"byte","b":[255,127,63,31,15,7,3,1]},{"a":61264,"t":"byte","b":[255,127,63,31,15,7,3,1]},{"a":61272,"t":"byte","b":[255,127,63,31,15,7,3,1]},{"a":61280,"t":"byte","b":[255,127,63,31,15,7,3,1]},{"a":61288,"t":"byte","b":[255,127]},{"a":61290,"l":"left_masks_view","c":"The left masks from x 34, the 3D view's left edge","t":"byte","b":[63,31,15,7,3,1,255,127],"x":[36108,36351,36361]},{"a":61298,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61306,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61314,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61322,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61330,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61338,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61346,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61354,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61362,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61370,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61378,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61386,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61394,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61402,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61410,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61418,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61426,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61434,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61442,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61450,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61458,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61466,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61474,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61482,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61490,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61498,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61506,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61514,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61522,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61530,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61538,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61546,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61554,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61562,"t":"byte","b":[63,31,15,7,3,1,255,127]},{"a":61570,"t":"byte","b":[63,31,15,7,3,1]},{"a":61576,"l":"right_masks","c":"For x from 0 to 319, the mask of the pixels from the left of its byte to x ($80, $C0 ... $FF), for a span's right end","t":"byte","b":[128,192,224,240,248,252,254,255]},{"a":61584,"t":"byte","b":[128,192,224,240,248,252,254,255]},{"a":61592,"t":"byte","b":[128,192,224,240,248,252,254,255]},{"a":61600,"t":"byte","b":[128,192,224,240,248,252,254,255]},{"a":61608,"t":"byte","b":[128,192]},{"a":61610,"l":"right_masks_view","c":"The right masks from x 34, the 3D view's left edge","t":"byte","b":[224,240,248,252,254,255,128,192],"x":[36105,36189,36202]},{"a":61618,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61626,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61634,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61642,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61650,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61658,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61666,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61674,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61682,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61690,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61698,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61706,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61714,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61722,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61730,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61738,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61746,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61754,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61762,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61770,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61778,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61786,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61794,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61802,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61810,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61818,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61826,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61834,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61842,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61850,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61858,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61866,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61874,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61882,"t":"byte","b":[224,240,248,252,254,255,128,192]},{"a":61890,"t":"byte","b":[224,240,248,252,254,255]},{"a":61896,"l":"colour_even","c":"The even-row fill pattern of each of the 10 drawing colours (set_colour)","t":"byte","b":[0,68,85,136,153,170,204,221],"x":[36754]},{"a":61904,"t":"byte","b":[238,255]},{"a":61906,"l":"colour_odd","c":"The odd-row fill pattern of each of the 10 drawing colours","t":"byte","b":[0,17,85,34,102,170,51,119],"x":[36759]},{"a":61914,"t":"byte","b":[187,255]},{"a":61916,"l":"colour_clear","c":"The clear byte of each of the 10 drawing colours, for $3B; spark_pattern tests colour 0's, which is 0 and never written, so the second three spark patterns are never used","t":"byte","b":[0,85,85,170,170,170,255,85],"x":[36704,36764]},{"a":61924,"t":"byte","b":[170,255]},{"a":61926,"l":"palette","c":"The palette: the colour (0 to 9) for each drawing code below $13","t":"byte","b":[9,0,9,0,5,5,5,5],"x":[36743]},{"a":61934,"t":"byte","b":[8,3,8,3,8,3,8,3]},{"a":61942,"t":"byte","b":[6,6,2,0,0,0,0,0]},{"a":61950,"t":"byte","b":[0,0]},{"a":61952,"l":"font","c":"The font: 128 glyphs of 8 bytes, the top row first, drawn by print_char (codes $20 and up; those below are controls)","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":61960,"t":"byte","b":[48,60,149,189,149,60,48,0]},{"a":61968,"t":"byte","b":[0,0,144,169,144,0,0,0]},{"a":61976,"t":"byte","b":[48,60,106,126,106,60,48,0]},{"a":61984,"t":"byte","b":[0,0,189,191,189,0,0,0]},{"a":61992,"t":"byte","b":[0,4,2,255,2,4,0,0]},{"a":62000,"t":"byte","b":[64,132,224,249,224,132,64,0]},{"a":62008,"t":"byte","b":[0,1,6,6,6,6,1,0]},{"a":62016,"t":"byte","b":[80,164,249,249,249,249,164,80]},{"a":62024,"t":"byte","b":[20,105,190,255,255,190,105,20]},{"a":62032,"t":"byte","b":[0,20,105,190,190,105,20,0]},{"a":62040,"t":"byte","b":[0,0,20,105,105,20,0,0]},{"a":62048,"t":"byte","b":[0,0,0,20,20,0,0,0]},{"a":62056,"t":"byte","b":[0,20,105,105,105,105,20,0]},{"a":62064,"t":"byte","b":[0,20,105,105,105,105,20,0]},{"a":62072,"t":"byte","b":[0,20,105,105,105,105,20,0]},{"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,0,0,0,0,0,0,0]},{"a":62104,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62112,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62120,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62128,"t":"byte","b":[0,0,29,51,59,51,29,0]},{"a":62136,"t":"byte","b":[0,0,12,60,12,12,63,0]},{"a":62144,"t":"byte","b":[0,0,61,3,29,48,63,0]},{"a":62152,"t":"byte","b":[0,0,61,3,13,3,61,0]},{"a":62160,"t":"byte","b":[0,0,3,15,51,63,3,0]},{"a":62168,"t":"byte","b":[0,0,63,48,61,3,61,0]},{"a":62176,"t":"byte","b":[0,0,28,48,61,51,29,0]},{"a":62184,"t":"byte","b":[0,0,63,3,10,12,12,0]},{"a":62192,"t":"byte","b":[0,0,29,51,29,51,29,0]},{"a":62200,"t":"byte","b":[0,0,29,51,31,3,13,0]},{"a":62208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62216,"t":"byte","b":[12,12,12,8,4,0,12,0]},{"a":62224,"t":"byte","b":[51,34,17,0,0,0,0,0]},{"a":62232,"t":"byte","b":[51,191,55,220,254,204,0,0]},{"a":62240,"t":"byte","b":[12,47,56,46,11,62,12,0]},{"a":62248,"t":"byte","b":[50,35,10,12,40,50,35,0]},{"a":62256,"t":"byte","b":[12,31,56,28,56,31,12,0]},{"a":62264,"t":"byte","b":[12,8,16,0,0,0,0,0]},{"a":62272,"t":"byte","b":[6,12,12,12,12,12,6,0]},{"a":62280,"t":"byte","b":[36,12,12,12,12,12,36,0]},{"a":62288,"t":"byte","b":[0,12,59,29,59,12,0,0]},{"a":62296,"t":"byte","b":[0,12,12,63,12,12,0,0]},{"a":62304,"t":"byte","b":[0,0,0,0,0,12,8,16]},{"a":62312,"t":"byte","b":[0,0,0,63,0,0,0,0]},{"a":62320,"t":"byte","b":[0,0,0,0,0,0,12,0]},{"a":62328,"t":"byte","b":[2,7,10,29,40,52,32,0]},{"a":62336,"t":"byte","b":[29,51,55,59,55,51,29,0]},{"a":62344,"t":"byte","b":[12,60,12,12,12,12,63,0]},{"a":62352,"t":"byte","b":[29,51,3,13,40,48,63,0]},{"a":62360,"t":"byte","b":[29,51,3,13,3,51,29,0]},{"a":62368,"t":"byte","b":[11,15,43,51,63,3,3,0]},{"a":62376,"t":"byte","b":[63,48,61,3,3,51,29,0]},{"a":62384,"t":"byte","b":[12,40,48,61,51,51,29,0]},{"a":62392,"t":"byte","b":[63,3,7,10,13,12,12,0]},{"a":62400,"t":"byte","b":[29,51,55,29,55,51,29,0]},{"a":62408,"t":"byte","b":[29,51,51,31,3,10,12,0]},{"a":62416,"t":"byte","b":[0,0,12,0,0,12,0,0]},{"a":62424,"t":"byte","b":[0,0,12,0,0,12,8,16]},{"a":62432,"t":"byte","b":[0,3,12,48,12,3,0,0]},{"a":62440,"t":"byte","b":[0,0,63,0,63,0,0,0]},{"a":62448,"t":"byte","b":[0,48,12,3,12,48,0,0]},{"a":62456,"t":"byte","b":[29,51,3,10,12,0,12,0]},{"a":62464,"t":"byte","b":[29,51,59,59,48,30,0,0]},{"a":62472,"t":"byte","b":[29,46,51,51,63,51,51,0]},{"a":62480,"t":"byte","b":[61,51,51,61,51,51,61,0]},{"a":62488,"t":"byte","b":[29,51,48,48,48,51,29,0]},{"a":62496,"t":"byte","b":[61,51,51,51,51,51,61,0]},{"a":62504,"t":"byte","b":[63,48,48,60,48,48,63,0]},{"a":62512,"t":"byte","b":[63,48,48,60,48,48,48,0]},{"a":62520,"t":"byte","b":[29,51,48,59,51,51,31,0]},{"a":62528,"t":"byte","b":[51,51,51,63,51,51,51,0]},{"a":62536,"t":"byte","b":[63,12,12,12,12,12,63,0]},{"a":62544,"t":"byte","b":[63,12,12,12,12,28,52,0]},{"a":62552,"t":"byte","b":[51,51,58,60,58,51,51,0]},{"a":62560,"t":"byte","b":[48,48,48,48,48,48,63,0]},{"a":62568,"t":"byte","b":[55,59,63,59,55,51,51,0]},{"a":62576,"t":"byte","b":[35,55,59,63,59,55,50,0]},{"a":62584,"t":"byte","b":[29,51,51,51,51,51,29,0]},{"a":62592,"t":"byte","b":[61,51,51,51,61,48,48,0]},{"a":62600,"t":"byte","b":[29,51,51,51,55,59,29,3]},{"a":62608,"t":"byte","b":[61,51,51,61,58,51,51,0]},{"a":62616,"t":"byte","b":[29,51,48,29,3,51,29,0]},{"a":62624,"t":"byte","b":[63,12,12,12,12,12,12,0]},{"a":62632,"t":"byte","b":[51,51,51,51,51,51,29,0]},{"a":62640,"t":"byte","b":[51,51,55,59,46,29,8,0]},{"a":62648,"t":"byte","b":[51,51,55,59,63,59,55,0]},{"a":62656,"t":"byte","b":[51,55,46,12,46,55,51,0]},{"a":62664,"t":"byte","b":[51,51,59,46,12,12,12,0]},{"a":62672,"t":"byte","b":[63,3,10,12,40,48,63,0]},{"a":62680,"t":"byte","b":[15,12,12,12,12,12,15,0]},{"a":62688,"t":"byte","b":[32,52,40,29,10,7,2,0]},{"a":62696,"t":"byte","b":[60,12,12,12,12,12,60,0]},{"a":62704,"t":"byte","b":[29,46,63,12,12,12,12,0]},{"a":62712,"t":"byte","b":[0,0,0,0,0,0,0,255]},{"a":62720,"t":"byte","b":[244,252,12,12,63,46,29,0]},{"a":62728,"t":"byte","b":[0,0,29,3,31,51,31,0]},{"a":62736,"t":"byte","b":[48,48,61,51,51,51,61,0]},{"a":62744,"t":"byte","b":[0,0,29,51,48,51,29,0]},{"a":62752,"t":"byte","b":[3,3,31,51,51,51,31,0]},{"a":62760,"t":"byte","b":[0,0,29,51,63,48,30,0]},{"a":62768,"t":"byte","b":[29,51,48,60,48,48,48,0]},{"a":62776,"t":"byte","b":[0,0,31,51,51,31,3,13]},{"a":62784,"t":"byte","b":[48,48,61,51,51,51,51,0]},{"a":62792,"t":"byte","b":[12,0,12,12,12,12,12,0]},{"a":62800,"t":"byte","b":[12,0,12,12,12,12,12,52]},{"a":62808,"t":"byte","b":[48,48,51,58,60,58,51,0]},{"a":62816,"t":"byte","b":[12,12,12,12,12,12,12,0]},{"a":62824,"l":"font_glyph_6D","c":"Inside the font, glyph $6D: the address left in print_char's patched LDA when the snapshot was taken","t":"byte","b":[0,0,55,63,59,55,51,0],"x":[41263]},{"a":62832,"t":"byte","b":[0,0,61,51,51,51,51,0]},{"a":62840,"t":"byte","b":[0,0,29,51,51,51,29,0]},{"a":62848,"t":"byte","b":[0,0,61,51,51,51,61,48]},{"a":62856,"t":"byte","b":[0,0,31,51,51,51,31,3]},{"a":62864,"t":"byte","b":[0,0,61,51,48,48,48,0]},{"a":62872,"t":"byte","b":[0,0,31,48,29,3,61,0]},{"a":62880,"t":"byte","b":[12,12,63,12,12,12,7,0]},{"a":62888,"t":"byte","b":[0,0,51,51,51,51,31,0]},{"a":62896,"t":"byte","b":[0,0,51,59,46,29,8,0]},{"a":62904,"t":"byte","b":[0,0,51,55,59,63,55,0]},{"a":62912,"t":"byte","b":[0,0,51,42,12,42,51,0]},{"a":62920,"t":"byte","b":[0,0,51,51,51,31,3,13]},{"a":62928,"t":"byte","b":[0,0,63,3,12,48,63,0]},{"a":62936,"t":"byte","b":[0,0,0,0,255,0,0,0]},{"a":62944,"t":"byte","b":[0,20,105,105,105,105,20,0]},{"a":62952,"t":"byte","b":[0,2,7,138,221,184,116,32]},{"a":62960,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":62968,"t":"byte","b":[0,255,195,195,195,195,255,0]},{"a":62976,"t":"gap","n":2554,"x":[39968,40005,40262]},{"a":65530,"l":"cpu_vectors","c":"The processor's vectors, used while the ROMs are banked out: NMI to $0E9E and reset to $0E9F, both an RTI, and IRQ to $0EA0 (setup_irq)","t":"word","b":[158,14,159,14,160,14],"d":[3742,3743,3744],"x":[3664]}]}