{
 "schema": 1,
 "platform": "c64",
 "game": "lemmings",
 "part": "ending",
 "build": "PAL disk release, three disks (Psygnosis 1994); the boot disk unpatched, analysed at the title and at level 1 of Fun",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    0,
    2048,
    "Resident: the loader and the variables"
   ],
   [
    50378,
    65535,
    "Resident: the loader and the variables"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ],
  "elsewhere": [
   [
    0,
    2048,
    "Resident: the loader and the variables"
   ],
   [
    50378,
    65535,
    "Resident: the loader and the variables"
   ]
  ]
 },
 "blocks": [
  {
   "start": 2049,
   "end": 2063,
   "type": "Byte"
  },
  {
   "start": 2064,
   "end": 2069,
   "type": "Code"
  },
  {
   "start": 2070,
   "end": 2222,
   "type": "Byte"
  },
  {
   "start": 2223,
   "end": 2882,
   "type": "Code"
  },
  {
   "start": 2883,
   "end": 2910,
   "type": "Undefined"
  },
  {
   "start": 2911,
   "end": 4108,
   "type": "Code"
  },
  {
   "start": 4109,
   "end": 34926,
   "type": "Byte"
  },
  {
   "start": 34927,
   "end": 35839,
   "type": "Undefined"
  },
  {
   "start": 35840,
   "end": 37863,
   "type": "Byte"
  },
  {
   "start": 37864,
   "end": 40959,
   "type": "Undefined"
  },
  {
   "start": 40960,
   "end": 48959,
   "type": "Byte"
  },
  {
   "start": 48960,
   "end": 50175,
   "type": "Undefined"
  },
  {
   "start": 50176,
   "end": 50262,
   "type": "Code"
  },
  {
   "start": 50263,
   "end": 50266,
   "type": "Undefined"
  },
  {
   "start": 50267,
   "end": 50376,
   "type": "Code"
  },
  {
   "start": 50377,
   "end": 50377,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 2064,
   "name": "end_tune_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2067,
   "name": "end_tune_play",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2070,
   "name": "v_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2073,
   "name": "v_hold",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2076,
   "name": "v_finetune",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2079,
   "name": "v_vibrato_phase",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2082,
   "name": "v_instr_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2085,
   "name": "tune_transpose_v",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2086,
   "name": "tick_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2087,
   "name": "tune_running",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2088,
   "name": "speed_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2089,
   "name": "speed_repeat",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2090,
   "name": "v_sid_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2093,
   "name": "v_gate_mask",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2096,
   "name": "v_steps_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2099,
   "name": "sample_steps_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2100,
   "name": "v_length",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2103,
   "name": "sample_length",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2104,
   "name": "v_repeats",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2107,
   "name": "sample_repeats",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2108,
   "name": "v_active",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2111,
   "name": "v_gate_off",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2114,
   "name": "v_vibrato",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2117,
   "name": "v_vibrato_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2120,
   "name": "v_setting",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2123,
   "name": "v_release_at",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2126,
   "name": "v_instrument",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2129,
   "name": "sample_entry",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2130,
   "name": "v_note",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2133,
   "name": "sample_note",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2134,
   "name": "v_slide_start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2137,
   "name": "v_slide_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2140,
   "name": "v_slide",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2143,
   "name": "v_slide_target",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2146,
   "name": "v_vibrato_start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2149,
   "name": "v_vibrato_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2152,
   "name": "v_vibrato_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2155,
   "name": "v_vibrato_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2158,
   "name": "v_vibrato_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2161,
   "name": "v_vibrato_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2164,
   "name": "tune_offset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2165,
   "name": "v_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2168,
   "name": "v_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2169,
   "name": "s_0879",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 2171,
   "name": "v_pulse_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2174,
   "name": "v_pulse_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2177,
   "name": "v_control",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2180,
   "name": "v_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2183,
   "name": "v_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2186,
   "name": "v_pulse_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2189,
   "name": "v_pulse_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2192,
   "name": "v_pulse_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2195,
   "name": "v_pulse_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2198,
   "name": "v_arpeggio",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2201,
   "name": "v_arp_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2204,
   "name": "v_wave_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2207,
   "name": "v_wave_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2210,
   "name": "v_arp_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2213,
   "name": "v_effect_wait_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2216,
   "name": "v_effect_wait_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2219,
   "name": "v_effect_value",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2222,
   "name": "speed_sign",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2223,
   "name": "end_tune_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2251,
   "name": "b_08CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2253,
   "name": "b_08CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2279,
   "name": "b_08E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2287,
   "name": "b_08EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2295,
   "name": "b_08F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2359,
   "name": "r_0937",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2360,
   "name": "sample_nmi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2367,
   "name": "j_093F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2368,
   "name": "a_0940",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2369,
   "name": "a_0941",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2375,
   "name": "a_0947",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2380,
   "name": "a_094C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2387,
   "name": "b_0953",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2396,
   "name": "a_095C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2399,
   "name": "b_095F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2402,
   "name": "a_0962",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2414,
   "name": "b_096E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2425,
   "name": "b_0979",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2426,
   "name": "a_097A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2431,
   "name": "a_097F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2434,
   "name": "b_0982",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2437,
   "name": "a_0985",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2452,
   "name": "end_tune_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2460,
   "name": "b_099C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2560,
   "name": "b_0A00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2572,
   "name": "b_0A0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2574,
   "name": "end_voices",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 2602,
   "name": "b_0A2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2610,
   "name": "b_0A32",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2620,
   "name": "b_0A3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2624,
   "name": "b_0A40",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2632,
   "name": "r_0A48",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2633,
   "name": "b_0A49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2638,
   "name": "sample_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2666,
   "name": "b_0A6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2680,
   "name": "b_0A78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2711,
   "name": "b_0A97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2723,
   "name": "b_0AA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2735,
   "name": "b_0AAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2751,
   "name": "j_0ABF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2768,
   "name": "a_0AD0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2779,
   "name": "b_0ADB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2795,
   "name": "b_0AEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2806,
   "name": "b_0AF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2883,
   "name": "end_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2911,
   "name": "end_read_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2939,
   "name": "b_0B7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2953,
   "name": "b_0B89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2986,
   "name": "b_0BAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2998,
   "name": "b_0BB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3010,
   "name": "b_0BC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3026,
   "name": "j_0BD2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3068,
   "name": "b_0BFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3102,
   "name": "b_0C1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3129,
   "name": "b_0C39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3149,
   "name": "b_0C4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3169,
   "name": "b_0C61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3174,
   "name": "a_0C66",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3179,
   "name": "b_0C6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3181,
   "name": "j_0C6D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3204,
   "name": "b_0C84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3257,
   "name": "b_0CB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3263,
   "name": "b_0CBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3289,
   "name": "b_0CD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3304,
   "name": "b_0CE8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3310,
   "name": "b_0CEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3326,
   "name": "j_0CFE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3329,
   "name": "end_silence",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3344,
   "name": "b_0D10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3351,
   "name": "end_voice_effects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3358,
   "name": "b_0D1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3397,
   "name": "b_0D45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3428,
   "name": "b_0D64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3434,
   "name": "b_0D6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3488,
   "name": "b_0DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3496,
   "name": "b_0DA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3499,
   "name": "j_0DAB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3519,
   "name": "j_0DBF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3528,
   "name": "b_0DC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3572,
   "name": "b_0DF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3607,
   "name": "b_0E17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3619,
   "name": "b_0E23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3622,
   "name": "b_0E26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3689,
   "name": "j_0E69",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3701,
   "name": "b_0E75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3704,
   "name": "b_0E78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3725,
   "name": "b_0E8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3751,
   "name": "b_0EA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3770,
   "name": "j_0EBA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3780,
   "name": "b_0EC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3799,
   "name": "b_0ED7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3841,
   "name": "b_0F01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3866,
   "name": "b_0F1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3884,
   "name": "b_0F2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3898,
   "name": "b_0F3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3922,
   "name": "a_0F52",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3931,
   "name": "b_0F5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3950,
   "name": "a_0F6E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3956,
   "name": "j_0F74",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3981,
   "name": "b_0F8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3990,
   "name": "b_0F96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4026,
   "name": "b_0FBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4047,
   "name": "j_0FCF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4063,
   "name": "b_0FDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4085,
   "name": "b_0FF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4094,
   "name": "r_0FFE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4095,
   "name": "end_set_freq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4108,
   "name": "f_100C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4109,
   "name": "end_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4204,
   "name": "end_freq_hi_prev",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4205,
   "name": "end_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4301,
   "name": "sample_rates",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4302,
   "name": "sample_rates_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4363,
   "name": "sample_add",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4367,
   "name": "pattern_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4368,
   "name": "pattern_lists_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4375,
   "name": "tune_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4376,
   "name": "tune_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4377,
   "name": "tune_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4378,
   "name": "pattern_addrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4379,
   "name": "pattern_addrs_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4446,
   "name": "effect_ptrs_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4447,
   "name": "effect_ptrs_a_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4464,
   "name": "effect_ptrs_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4465,
   "name": "effect_ptrs_b_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4558,
   "name": "end_instruments",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4559,
   "name": "instr_control",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4560,
   "name": "instr_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4561,
   "name": "instr_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4562,
   "name": "instr_gate",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4563,
   "name": "instr_vibrato",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4564,
   "name": "instr_vibrato_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4565,
   "name": "instrument_setting",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4629,
   "name": "end_instruments_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4709,
   "name": "effect_table_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4711,
   "name": "effect_table_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4714,
   "name": "sample_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4715,
   "name": "sample_start_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4716,
   "name": "sample_end_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4717,
   "name": "sample_end_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4718,
   "name": "sample_setting",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4782,
   "name": "tune_data",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5375,
   "name": "sample_marker",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5376,
   "name": "sample_sound",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6400,
   "name": "sample_sound_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7424,
   "name": "sample_sound_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8448,
   "name": "sample_sound_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9472,
   "name": "sample_sound_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10496,
   "name": "sample_sound_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11520,
   "name": "sample_sound_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12544,
   "name": "sample_sound_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13568,
   "name": "sample_sound_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14592,
   "name": "sample_sound_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15616,
   "name": "sample_sound_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "sample_sound_at_4000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16640,
   "name": "sample_sound_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17664,
   "name": "sample_sound_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18688,
   "name": "sample_sound_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19712,
   "name": "sample_sound_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "s_5000",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20483,
   "name": "s_5003",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20486,
   "name": "s_5006",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20489,
   "name": "s_5009",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20736,
   "name": "sample_sound_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21760,
   "name": "sample_sound_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22784,
   "name": "sample_sound_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23808,
   "name": "sample_sound_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24832,
   "name": "sample_sound_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25856,
   "name": "sample_sound_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26880,
   "name": "sample_sound_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27904,
   "name": "sample_sound_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28928,
   "name": "sample_sound_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29952,
   "name": "sample_sound_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30179,
   "name": "f_75E3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30243,
   "name": "sample_sound_7623",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30976,
   "name": "sample_sound_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32000,
   "name": "sample_sound_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "sample_sound_at_8000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33024,
   "name": "sample_sound_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34048,
   "name": "sample_sound_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34816,
   "name": "sample_sound_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35840,
   "name": "end_screen_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36840,
   "name": "end_colour_ram",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36864,
   "name": "end_colour_ram_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36865,
   "name": "a_9001",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36866,
   "name": "a_9002",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36867,
   "name": "a_9003",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36868,
   "name": "a_9004",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36869,
   "name": "a_9005",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36870,
   "name": "a_9006",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36871,
   "name": "a_9007",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36935,
   "name": "end_colour_ram_9047",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37096,
   "name": "f_90E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37160,
   "name": "end_colour_ram_9128",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37200,
   "name": "j_9150",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37352,
   "name": "f_91E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37416,
   "name": "end_colour_ram_9228",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37608,
   "name": "f_92E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37672,
   "name": "end_colour_ram_9328",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40704,
   "name": "f_9F00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40960,
   "name": "end_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41984,
   "name": "end_bitmap_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43008,
   "name": "end_bitmap_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44032,
   "name": "end_bitmap_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45056,
   "name": "end_bitmap_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46080,
   "name": "end_bitmap_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47104,
   "name": "end_bitmap_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48128,
   "name": "end_bitmap_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50176,
   "name": "end_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 50197,
   "name": "end_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 50204,
   "name": "end_finish",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 50211,
   "name": "b_C423",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50220,
   "name": "b_C42C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50231,
   "name": "b_C437",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50250,
   "name": "b_C44A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50263,
   "name": "end_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50264,
   "name": "end_frames_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50265,
   "name": "end_length",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50266,
   "name": "end_length_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50267,
   "name": "end_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50269,
   "name": "b_C45D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50325,
   "name": "end_restore_kernal",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50353,
   "name": "b_C4B1",
   "type": "Branch",
   "kind": "auto"
  }
 ],
 "comments": [
  {
   "address": 2064,
   "type": "line",
   "text": "the end tune's player, entry 0: start tune A ($08AF)"
  },
  {
   "address": 2067,
   "type": "line",
   "text": "entry 1: one frame of the tune ($0994)"
  },
  {
   "address": 2070,
   "type": "line",
   "text": "per voice: the transpose from the pattern list ($0BB0), added to each note"
  },
  {
   "address": 2073,
   "type": "line",
   "text": "per voice: set by the $FB command, the next note keeps its gate (no release)"
  },
  {
   "address": 2076,
   "type": "line",
   "text": "per voice: added to the frequency's low byte: $10 for an instrument with that setting"
  },
  {
   "address": 2079,
   "type": "line",
   "text": "per voice: the vibrato's phase, cleared at each note"
  },
  {
   "address": 2082,
   "type": "line",
   "text": "per voice: added to every instrument number"
  },
  {
   "address": 2085,
   "type": "line",
   "text": "the tune's instrument transpose for the sample channel"
  },
  {
   "address": 2086,
   "type": "line",
   "text": "$FF on a frame where the tune moves a step, 0 otherwise"
  },
  {
   "address": 2087,
   "type": "line",
   "text": "0 when no tune plays: end_tune_frame then does nothing"
  },
  {
   "address": 2088,
   "type": "line",
   "text": "frames left until the next step"
  },
  {
   "address": 2089,
   "type": "line",
   "text": "how many steps at the second speed"
  },
  {
   "address": 2090,
   "type": "line",
   "text": "per voice: the SID register offset, 0, 7, 14"
  },
  {
   "address": 2093,
   "type": "line",
   "text": "per voice: $FF while the note sounds, $FE to release it"
  },
  {
   "address": 2096,
   "type": "line",
   "text": "per voice: steps left of the note"
  },
  {
   "address": 2099,
   "type": "line",
   "text": "steps left of the sample channel's note"
  },
  {
   "address": 2100,
   "type": "line",
   "text": "per voice: the note's length in steps"
  },
  {
   "address": 2103,
   "type": "line",
   "text": "the sample channel's note length"
  },
  {
   "address": 2104,
   "type": "line",
   "text": "per voice: repeats left of the pattern"
  },
  {
   "address": 2107,
   "type": "line",
   "text": "repeats left of the sample channel's pattern"
  },
  {
   "address": 2108,
   "type": "line",
   "text": "per voice: 0 once its sequence has ended"
  },
  {
   "address": 2111,
   "type": "line",
   "text": "per voice: the instrument's gate-off point and vibrato byte"
  },
  {
   "address": 2114,
   "type": "line",
   "text": "per voice: the vibrato's depth"
  },
  {
   "address": 2117,
   "type": "line",
   "text": "per voice: the vibrato's speed"
  },
  {
   "address": 2120,
   "type": "line",
   "text": "per voice: the instrument's setting byte ($11D5)"
  },
  {
   "address": 2123,
   "type": "line",
   "text": "per voice: the step at which the gate goes off"
  },
  {
   "address": 2126,
   "type": "line",
   "text": "per voice: the instrument's offset in the table ($11CE, eight bytes each)"
  },
  {
   "address": 2129,
   "type": "line",
   "text": "the sample's entry in the table at $126A (times 5)"
  },
  {
   "address": 2130,
   "type": "line",
   "text": "per voice: the note playing, $FF for a rest"
  },
  {
   "address": 2133,
   "type": "line",
   "text": "the sample channel's note, which picks the rate"
  },
  {
   "address": 2134,
   "type": "line",
   "text": "per voice: the step a slide begins"
  },
  {
   "address": 2137,
   "type": "line",
   "text": "per voice: the slide's direction"
  },
  {
   "address": 2140,
   "type": "line",
   "text": "per voice: the slide's speed (from the $FD command)"
  },
  {
   "address": 2143,
   "type": "line",
   "text": "per voice: the note the slide ends on"
  },
  {
   "address": 2146,
   "type": "line",
   "text": "per voice: the step the vibrato begins"
  },
  {
   "address": 2149,
   "type": "line",
   "text": "per voice: the vibrato's counter"
  },
  {
   "address": 2152,
   "type": "line",
   "text": "per voice: frames left in this half of the vibrato"
  },
  {
   "address": 2155,
   "type": "line",
   "text": "per voice: which half of the vibrato"
  },
  {
   "address": 2158,
   "type": "line",
   "text": "per voice: the vibrato's step, low byte"
  },
  {
   "address": 2161,
   "type": "line",
   "text": "per voice: the vibrato's step, high byte"
  },
  {
   "address": 2164,
   "type": "line",
   "text": "the tune's offset in the tune table (the tune number times 12)"
  },
  {
   "address": 2165,
   "type": "line",
   "text": "per voice: the frequency, low byte"
  },
  {
   "address": 2168,
   "type": "line",
   "text": "per voice: the frequency, high byte"
  },
  {
   "address": 2169,
   "type": "line",
   "text": "a byte of the player's variables; the label is play_level's entry in the game's memory, called by the loader's game loop"
  },
  {
   "address": 2171,
   "type": "line",
   "text": "per voice: the pulse width, low byte"
  },
  {
   "address": 2174,
   "type": "line",
   "text": "per voice: the pulse width, high nybble"
  },
  {
   "address": 2177,
   "type": "line",
   "text": "per voice: the waveform and gate byte"
  },
  {
   "address": 2180,
   "type": "line",
   "text": "per voice: attack and decay"
  },
  {
   "address": 2183,
   "type": "line",
   "text": "per voice: sustain and release"
  },
  {
   "address": 2186,
   "type": "line",
   "text": "per voice: the position in the pulse program"
  },
  {
   "address": 2189,
   "type": "line",
   "text": "per voice: frames left of the pulse step"
  },
  {
   "address": 2192,
   "type": "line",
   "text": "per voice: the pulse sweep's direction"
  },
  {
   "address": 2195,
   "type": "line",
   "text": "per voice: the pulse sweep's step"
  },
  {
   "address": 2198,
   "type": "line",
   "text": "per voice: the arpeggio table"
  },
  {
   "address": 2201,
   "type": "line",
   "text": "per voice: the position in the arpeggio"
  },
  {
   "address": 2204,
   "type": "line",
   "text": "per voice: the position in the effect program"
  },
  {
   "address": 2207,
   "type": "line",
   "text": "per voice: frames left of the effect step"
  },
  {
   "address": 2210,
   "type": "line",
   "text": "per voice: added to the arpeggio number"
  },
  {
   "address": 2213,
   "type": "line",
   "text": "per voice: the first effect counter, set to 1 at each note"
  },
  {
   "address": 2216,
   "type": "line",
   "text": "per voice: the second effect counter, set to 1 at each note"
  },
  {
   "address": 2219,
   "type": "line",
   "text": "per voice: the effect's byte from $1265"
  },
  {
   "address": 2222,
   "type": "line",
   "text": "$01 or $FF: the direction the speed counts"
  },
  {
   "address": 2223,
   "type": "line",
   "text": "starts tune A: twelve bytes of the tune table from $1118 (speed, transpose and each voice's sequence list), the SID silenced ($0D01), the filter's resonance and cutoff, every voice's variables cleared, the NMI vector pointed at the sample player ($0938) and CIA 2's timer A allowed to raise it"
  },
  {
   "address": 2360,
   "type": "line",
   "text": "the sample player, run on each NMI from CIA 2's timer A: writes one 4-bit step of the sound to the SID's volume ($D418, plus $34 for the filter's mode), the high and the low half of each byte in turn ($FF counts the halves); at the byte $1F it stops; the timer's speed sets the pitch"
  },
  {
   "address": 2368,
   "type": "line",
   "text": "the low byte of the LDA at $093F, rewritten as the game runs, by $0948, $0966, $0B04"
  },
  {
   "address": 2369,
   "type": "line",
   "text": "the high byte of the LDA at $093F, rewritten as the game runs, by $094D, $096B, $0B0A"
  },
  {
   "address": 2375,
   "type": "line",
   "text": "the operand of the LDA at $0946, rewritten as the game runs, by $0B10"
  },
  {
   "address": 2380,
   "type": "line",
   "text": "the operand of the LDA at $094B, rewritten as the game runs, by $0B16"
  },
  {
   "address": 2396,
   "type": "line",
   "text": "the operand of the BVC at $095B, rewritten as the game runs, by $0B1C"
  },
  {
   "address": 2402,
   "type": "line",
   "text": "the operand of the ADC at $0961, rewritten as the game runs, by $0B26"
  },
  {
   "address": 2426,
   "type": "line",
   "text": "the operand of the LDA at $0979, rewritten as the game runs, by $0953"
  },
  {
   "address": 2431,
   "type": "line",
   "text": "the operand of the BVC at $097E, rewritten as the game runs, by $0B1F"
  },
  {
   "address": 2437,
   "type": "line",
   "text": "the operand of the ADC at $0984, rewritten as the game runs, by $0B29"
  },
  {
   "address": 2452,
   "type": "line",
   "text": "one frame of the tune: the three voices' frequency, pulse, envelope and waveform into the SID; the speed counters; each voice's step ($0A0E); and the sample channel's sequence ($0A4E) when its note ends"
  },
  {
   "address": 2574,
   "type": "line",
   "text": "for each voice: the gate off near a note's end, its effects ($0D17), and when the note is over, the next ($0B5F)"
  },
  {
   "address": 2624,
   "type": "line",
   "text": "the high byte of the STA at $0A3E; referred to by $0A11 BEQ, $0CFE JMP, which do not write it"
  },
  {
   "address": 2638,
   "type": "line",
   "text": "the sample channel: reads the next entry of its sequence (through $111A by the pattern in $F2, the pattern list from $110F): an instrument ($C0 and up: the sample's start, end and settings from the table at $126A, five bytes each), a length ($80-$BF), or a note, whose rate it sets on CIA 2's timer A from the table at $10CD; the timer then starts"
  },
  {
   "address": 2768,
   "type": "line",
   "text": "the operand of the ADC at $0ACF, rewritten as the game runs, by $0AC9"
  },
  {
   "address": 2883,
   "type": "line",
   "text": "bytes after sample_sequence's RTS that no path reaches, $0B43-$0B5E"
  },
  {
   "address": 2911,
   "type": "line",
   "text": "reads a voice's next commands: $FF loops the pattern, the pattern list's entries (transpose, repeats); $FD a slide, $E0-$FF a rest, $C0-$DF an instrument, $80-$BF a length, $60-$7F an arpeggio, and a note below $60; sets the voice's instrument up from the table at $11CE (8 bytes each)"
  },
  {
   "address": 3174,
   "type": "line",
   "text": "the operand of the ADC at $0C65, rewritten as the game runs, by $08D3"
  },
  {
   "address": 3181,
   "type": "line",
   "text": "the high byte of the STY at $0C6B; referred to by $0BF9 JMP, which do not write it"
  },
  {
   "address": 3326,
   "type": "line",
   "text": "the high byte of the STY at $0CFC; referred to by $0C1B JMP, $0CF4 BNE, which do not write it"
  },
  {
   "address": 3329,
   "type": "line",
   "text": "stops the three voices' gates and clears every SID register"
  },
  {
   "address": 3351,
   "type": "line",
   "text": "one voice's effects between notes: its slide ($FD), its wave program ($1265/$1267), the vibrato, the pulse sweep and the filter sweep, then the frequency ($0FFF)"
  },
  {
   "address": 3922,
   "type": "line",
   "text": "the operand of the CMP at $0F51, rewritten as the game runs, by $0EF2"
  },
  {
   "address": 3950,
   "type": "line",
   "text": "the operand of the CMP at $0F6D, rewritten as the game runs, by $0EEB"
  },
  {
   "address": 4095,
   "type": "line",
   "text": "sets a voice's frequency for note A from the table at $100D/$106D"
  },
  {
   "address": 4108,
   "type": "line",
   "text": "the RTS that ends end_set_freq; read as entry -1 of the frequency table"
  },
  {
   "address": 4109,
   "type": "line",
   "text": "the frequencies of 96 notes, low bytes"
  },
  {
   "address": 4204,
   "type": "line",
   "text": "the byte before end_freq_hi, read as entry -1 of it"
  },
  {
   "address": 4205,
   "type": "line",
   "text": "the frequencies, high bytes"
  },
  {
   "address": 4301,
   "type": "line",
   "text": "CIA 2's timer value for each sample note: the time between two steps of the sound, so the pitch"
  },
  {
   "address": 4302,
   "type": "line",
   "text": "the sample rates' high bytes"
  },
  {
   "address": 4363,
   "type": "line",
   "text": "for each sample setting, the value added to every 4-bit step before it goes to $D418 (written into the ADCs at $0961 and $0984)"
  },
  {
   "address": 4367,
   "type": "line",
   "text": "the addresses of each tune's pattern lists, two bytes for each voice and the sample channel"
  },
  {
   "address": 4368,
   "type": "line",
   "text": "the pattern lists' addresses, high bytes"
  },
  {
   "address": 4375,
   "type": "line",
   "text": "the tune's speed: read into the frame counter at $0828 ($09F0, $0A03)"
  },
  {
   "address": 4376,
   "type": "line",
   "text": "the tunes, twelve bytes each: speed and transpose, then the voices' pattern lists"
  },
  {
   "address": 4377,
   "type": "line",
   "text": "the tune's transpose, read at $08D0"
  },
  {
   "address": 4378,
   "type": "line",
   "text": "the addresses of the patterns, low and high bytes"
  },
  {
   "address": 4379,
   "type": "line",
   "text": "the patterns' addresses, high bytes (with $111A)"
  },
  {
   "address": 4446,
   "type": "line",
   "text": "addresses read by end_voice_effects ($0FA2/$0FA7), by the instrument's effect number"
  },
  {
   "address": 4447,
   "type": "line",
   "text": "effect_ptrs_a's high bytes"
  },
  {
   "address": 4464,
   "type": "line",
   "text": "addresses read by end_voice_effects ($0ED9/$0EDE), by the instrument's effect number"
  },
  {
   "address": 4465,
   "type": "line",
   "text": "effect_ptrs_b's high bytes"
  },
  {
   "address": 4558,
   "type": "line",
   "text": "the instruments, eight bytes each: pulse, waveform, attack and decay, sustain and release, gate-off point and vibrato, two effect bytes and the arpeggio"
  },
  {
   "address": 4559,
   "type": "line",
   "text": "the instruments' second byte: the waveform and gate"
  },
  {
   "address": 4560,
   "type": "line",
   "text": "the instruments' third byte: attack and decay"
  },
  {
   "address": 4561,
   "type": "line",
   "text": "the fourth byte: sustain and release"
  },
  {
   "address": 4562,
   "type": "line",
   "text": "the fifth byte: the gate-off point (high nybble) and the vibrato"
  },
  {
   "address": 4563,
   "type": "line",
   "text": "the sixth byte: the vibrato's depth"
  },
  {
   "address": 4564,
   "type": "line",
   "text": "the seventh byte: the vibrato's speed and start"
  },
  {
   "address": 4565,
   "type": "line",
   "text": "the instruments' last byte, the setting: bit 4 a fine-tune of $10, the low bits the effect number ($0CC9)"
  },
  {
   "address": 4629,
   "type": "line",
   "text": "the instruments, continued, $1215-$1264"
  },
  {
   "address": 4709,
   "type": "line",
   "text": "a byte per effect number, copied to $08AB by end_voice_effects ($0D4F)"
  },
  {
   "address": 4711,
   "type": "line",
   "text": "a byte per effect number, copied to the voice's control byte ($0881) by end_voice_effects ($0D55)"
  },
  {
   "address": 4714,
   "type": "line",
   "text": "the samples, five bytes each: start (two bytes), end (two bytes) and a setting; entry 1 runs from $1500 to $886E"
  },
  {
   "address": 4715,
   "type": "line",
   "text": "the samples' start, high bytes"
  },
  {
   "address": 4716,
   "type": "line",
   "text": "the samples' end, low bytes"
  },
  {
   "address": 4717,
   "type": "line",
   "text": "the samples' end, high bytes"
  },
  {
   "address": 4718,
   "type": "line",
   "text": "the fifth byte of each sample's entry, its setting, which picks the value added to its steps ($0B19)"
  },
  {
   "address": 4782,
   "type": "line",
   "text": "the tune's pattern lists and patterns, $12AE-$14FE"
  },
  {
   "address": 5375,
   "type": "line",
   "text": "the byte before the sound, $1F: the sample player stops on it"
  },
  {
   "address": 5376,
   "type": "line",
   "text": "the digitised sound the end sequence plays through the SID's volume: 4-bit steps, two to a byte, $1500-$886E; the congratulations screen before it promises \"a huge applause\""
  },
  {
   "address": 6400,
   "type": "line",
   "text": "the digitised sound, continued: $1900-$1CFF"
  },
  {
   "address": 7424,
   "type": "line",
   "text": "the digitised sound, continued: $1D00-$20FF"
  },
  {
   "address": 8448,
   "type": "line",
   "text": "the digitised sound, continued: $2100-$24FF"
  },
  {
   "address": 9472,
   "type": "line",
   "text": "the digitised sound, continued: $2500-$28FF"
  },
  {
   "address": 10496,
   "type": "line",
   "text": "the digitised sound, continued: $2900-$2CFF"
  },
  {
   "address": 11520,
   "type": "line",
   "text": "the digitised sound, continued: $2D00-$30FF"
  },
  {
   "address": 12544,
   "type": "line",
   "text": "the digitised sound, continued: $3100-$34FF"
  },
  {
   "address": 13568,
   "type": "line",
   "text": "the digitised sound, continued: $3500-$38FF"
  },
  {
   "address": 14592,
   "type": "line",
   "text": "the digitised sound, continued: $3900-$3CFF"
  },
  {
   "address": 15616,
   "type": "line",
   "text": "the digitised sound, continued: $3D00-$40FF"
  },
  {
   "address": 16384,
   "type": "line",
   "text": "the digitised sound, $4000-$40FF, at the edge of video bank 1"
  },
  {
   "address": 16640,
   "type": "line",
   "text": "the digitised sound, continued: $4100-$44FF"
  },
  {
   "address": 17664,
   "type": "line",
   "text": "the digitised sound, continued: $4500-$48FF"
  },
  {
   "address": 18688,
   "type": "line",
   "text": "the digitised sound, continued: $4900-$4CFF"
  },
  {
   "address": 19712,
   "type": "line",
   "text": "the digitised sound, continued: $4D00-$50FF"
  },
  {
   "address": 20480,
   "type": "line",
   "text": "a byte of the sound; the label is the briefing's entry in the game's memory, called by the loader"
  },
  {
   "address": 20483,
   "type": "line",
   "text": "a byte of the sound; the label is the result screen's entry in the game's memory"
  },
  {
   "address": 20486,
   "type": "line",
   "text": "a byte of the sound; the label is the failed-load handler's entry in the game's memory"
  },
  {
   "address": 20489,
   "type": "line",
   "text": "a stretch of the sound; the label is the briefing's $5009, which the loader calls in the game's memory"
  },
  {
   "address": 20736,
   "type": "line",
   "text": "the digitised sound, continued: $5100-$54FF"
  },
  {
   "address": 21760,
   "type": "line",
   "text": "the digitised sound, continued: $5500-$58FF"
  },
  {
   "address": 22784,
   "type": "line",
   "text": "the digitised sound, continued: $5900-$5CFF"
  },
  {
   "address": 23808,
   "type": "line",
   "text": "the digitised sound, continued: $5D00-$60FF"
  },
  {
   "address": 24832,
   "type": "line",
   "text": "the digitised sound, continued: $6100-$64FF"
  },
  {
   "address": 25856,
   "type": "line",
   "text": "the digitised sound, continued: $6500-$68FF"
  },
  {
   "address": 26880,
   "type": "line",
   "text": "the digitised sound, continued: $6900-$6CFF"
  },
  {
   "address": 27904,
   "type": "line",
   "text": "the digitised sound, continued: $6D00-$70FF"
  },
  {
   "address": 28928,
   "type": "line",
   "text": "the digitised sound, continued: $7100-$74FF"
  },
  {
   "address": 29952,
   "type": "line",
   "text": "the digitised sound, continued: $7500-$78FF"
  },
  {
   "address": 30179,
   "type": "line",
   "text": "a byte of the sound; named by a trace through bytes that are not code"
  },
  {
   "address": 30243,
   "type": "line",
   "text": "the digitised sound, $7623-$78FF"
  },
  {
   "address": 30976,
   "type": "line",
   "text": "the digitised sound, continued: $7900-$7CFF"
  },
  {
   "address": 32000,
   "type": "line",
   "text": "the digitised sound, continued: $7D00-$80FF"
  },
  {
   "address": 32768,
   "type": "line",
   "text": "the digitised sound, $8000-$80FF, at the edge of video bank 2"
  },
  {
   "address": 33024,
   "type": "line",
   "text": "the digitised sound, continued: $8100-$84FF"
  },
  {
   "address": 34048,
   "type": "line",
   "text": "the digitised sound, continued: $8500-$886E"
  },
  {
   "address": 34816,
   "type": "line",
   "text": "the digitised sound's last stretch, $8800-$886E"
  },
  {
   "address": 35840,
   "type": "line",
   "text": "the picture's screen colours: two of its four colours for each 4 by 8 cell, $8C00-$8FE7"
  },
  {
   "address": 36840,
   "type": "line",
   "text": "the picture's third colour for each cell, copied into colour RAM by $C45B: $8FE8-$93E7"
  },
  {
   "address": 36864,
   "type": "line",
   "text": "the picture's colour RAM values, $9000-$93E7"
  },
  {
   "address": 36865,
   "type": "line",
   "text": "a colour RAM value of the picture; named as byte 1 of the stash header the loader reads at $9000 in other parts' memory"
  },
  {
   "address": 36866,
   "type": "line",
   "text": "a colour RAM value; named as byte 2 of that header"
  },
  {
   "address": 36867,
   "type": "line",
   "text": "a colour RAM value; named as byte 3 of that header"
  },
  {
   "address": 36868,
   "type": "line",
   "text": "a colour RAM value; named as byte 4 of that header"
  },
  {
   "address": 36869,
   "type": "line",
   "text": "a colour RAM value; named as byte 5 of that header"
  },
  {
   "address": 36870,
   "type": "line",
   "text": "a colour RAM value; named as byte 6 of that header"
  },
  {
   "address": 36871,
   "type": "line",
   "text": "a byte of the picture's colour RAM values; named as the stash header the resident loader reads at $9000-$9007 in other parts' memory"
  },
  {
   "address": 36935,
   "type": "line",
   "text": "the picture's colour RAM values, $9047-$90E7"
  },
  {
   "address": 37096,
   "type": "line",
   "text": "the picture's colour RAM values from $90E8, the second page $C45B copies"
  },
  {
   "address": 37160,
   "type": "line",
   "text": "the picture's colour RAM values, $9128-$91E7"
  },
  {
   "address": 37352,
   "type": "line",
   "text": "the picture's colour RAM values from $91E8, the third page $C45B copies"
  },
  {
   "address": 37416,
   "type": "line",
   "text": "the picture's colour RAM values, $9228-$92E7"
  },
  {
   "address": 37608,
   "type": "line",
   "text": "the picture's colour RAM values from $92E8, the last page $C45B copies"
  },
  {
   "address": 37672,
   "type": "line",
   "text": "the picture's colour RAM values, $9328-$93E7"
  },
  {
   "address": 40704,
   "type": "line",
   "text": "a byte of the empty space between the picture's colours and its bitmap; named as the briefing restore's target in other parts' memory"
  },
  {
   "address": 40960,
   "type": "line",
   "text": "the end sequence's picture, a still multicolour bitmap: a photograph of five people with a lemming among them, $A000-$BF3F"
  },
  {
   "address": 41984,
   "type": "line",
   "text": "the end picture's bitmap, $A400-$A7FF"
  },
  {
   "address": 43008,
   "type": "line",
   "text": "the end picture's bitmap, $A800-$ABFF"
  },
  {
   "address": 44032,
   "type": "line",
   "text": "the end picture's bitmap, $AC00-$AFFF"
  },
  {
   "address": 45056,
   "type": "line",
   "text": "the end picture's bitmap, $B000-$B3FF"
  },
  {
   "address": 46080,
   "type": "line",
   "text": "the end picture's bitmap, $B400-$B7FF"
  },
  {
   "address": 47104,
   "type": "line",
   "text": "the end picture's bitmap, $B800-$BBFF"
  },
  {
   "address": 48128,
   "type": "line",
   "text": "the end picture's bitmap, $BC00-$BF3F"
  },
  {
   "address": 50176,
   "type": "line",
   "text": "the end sequence, entered from the loader ($CD5B) once IC is in: the picture's colours and the bitmap mode ($C45B), all RAM in view ($01 = $35), the end tune started ($0810, tune 0), then the loop at $C415"
  },
  {
   "address": 50197,
   "type": "line",
   "text": "one frame of the end sequence: fire on port 2 ends it; otherwise the tune plays a frame ($0813), a frame count ($C457/$C458) goes up, and at 2,592 frames ($C459/$C45A, about 52 seconds) it ends; it waits for the video chip's raster flag between frames"
  },
  {
   "address": 50204,
   "type": "line",
   "text": "the end: the KERNAL's set-up back ($C495), the SID's registers cleared, then the resident's fresh start ($CB71): PA, the play engine, and the menu are loaded again"
  },
  {
   "address": 50263,
   "type": "line",
   "text": "the frames played so far, low byte ($C457) and high byte ($C458)"
  },
  {
   "address": 50264,
   "type": "line",
   "text": "the frames played, high byte"
  },
  {
   "address": 50265,
   "type": "line",
   "text": "how many frames the end sequence lasts: $0A20 = 2,592"
  },
  {
   "address": 50266,
   "type": "line",
   "text": "the end sequence's length, high byte ($0A of $0A20)"
  },
  {
   "address": 50267,
   "type": "line",
   "text": "shows the picture: copies its colour RAM values from $8FE8-$93E7 to $D800-$DBFF, black border and background, video bank 2 ($8000-$BFFF), the screen colours at $8C00 and the bitmap at $A000 ($D018 = $38), multicolour bitmap mode"
  },
  {
   "address": 50325,
   "type": "line",
   "text": "the KERNAL's interrupts, screen editor and video chip back, as restore_kernal does in the game"
  }
 ]
}