{
 "schema": 1,
 "platform": "c64",
 "game": "north-and-south",
 "part": "menu",
 "build": "PAL cassette, four sides, Cyberload fast loader; the original release as the Ultimate Tape Archive V4.0 has it (entry 7562)",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    25592,
    25599,
    "runtime: the menu's sprite pointers, written every frame by $1653, $16AF and $15AA"
   ],
   [
    0,
    4095,
    "The loader and the script"
   ],
   [
    44032,
    63025,
    "The loader and the script"
   ],
   [
    65530,
    65535,
    "The loader and the script"
   ],
   [
    3072,
    4095,
    "The strategic map"
   ],
   [
    44032,
    53246,
    "3 parts: The strategic map, The ending, The battle"
   ],
   [
    57344,
    63025,
    "The strategic map"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ],
  "elsewhere": [
   [
    0,
    4095,
    "The loader and the script"
   ],
   [
    44032,
    63025,
    "The loader and the script"
   ],
   [
    65530,
    65535,
    "The loader and the script"
   ],
   [
    3072,
    4095,
    "The strategic map"
   ],
   [
    44032,
    53246,
    "3 parts: The strategic map, The ending, The battle"
   ],
   [
    57344,
    63025,
    "The strategic map"
   ]
  ]
 },
 "blocks": [
  {
   "start": 4096,
   "end": 4119,
   "type": "Code"
  },
  {
   "start": 4120,
   "end": 4408,
   "type": "Byte"
  },
  {
   "start": 4409,
   "end": 4410,
   "type": "Undefined"
  },
  {
   "start": 4411,
   "end": 5000,
   "type": "Code"
  },
  {
   "start": 5001,
   "end": 5019,
   "type": "Byte"
  },
  {
   "start": 5020,
   "end": 5368,
   "type": "Code"
  },
  {
   "start": 5369,
   "end": 5460,
   "type": "Byte"
  },
  {
   "start": 5461,
   "end": 6674,
   "type": "Code"
  },
  {
   "start": 6675,
   "end": 25591,
   "type": "Byte"
  },
  {
   "start": 25592,
   "end": 25599,
   "type": "Undefined"
  },
  {
   "start": 25600,
   "end": 44031,
   "type": "Byte"
  },
  {
   "start": 63026,
   "end": 63034,
   "type": "Code"
  },
  {
   "start": 63035,
   "end": 63132,
   "type": "Undefined"
  },
  {
   "start": 63133,
   "end": 64333,
   "type": "Code"
  },
  {
   "start": 64334,
   "end": 65529,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 4096,
   "name": "menu_main",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4111,
   "name": "j_100F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4120,
   "name": "head_sprites_union",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4123,
   "name": "head_sprites_conf",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4126,
   "name": "cursor_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4127,
   "name": "cursor_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4128,
   "name": "cursor_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4129,
   "name": "panel_bytes",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4130,
   "name": "panel_width",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4131,
   "name": "panel_height",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4132,
   "name": "panel_widths",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4150,
   "name": "panel_heights",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4168,
   "name": "panel_bitmaps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4169,
   "name": "f_1049",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4204,
   "name": "panel_screens",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4205,
   "name": "f_106D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4240,
   "name": "panel_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4241,
   "name": "f_1091",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4276,
   "name": "panel_dest_bitmap",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4277,
   "name": "f_10B5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4294,
   "name": "panel_dest_screen",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4295,
   "name": "f_10C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4312,
   "name": "click_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4313,
   "name": "click_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4314,
   "name": "f_10DA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4337,
   "name": "click_left_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4349,
   "name": "click_left_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4361,
   "name": "click_right_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4373,
   "name": "click_right_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4385,
   "name": "click_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4397,
   "name": "click_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4409,
   "name": "flash_time",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4410,
   "name": "flash_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4411,
   "name": "click_year",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4429,
   "name": "click_union_window",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4461,
   "name": "b_116D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4486,
   "name": "b_1186",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4499,
   "name": "click_union_head",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4511,
   "name": "b_119F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4518,
   "name": "click_conf_window",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4552,
   "name": "b_11C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4577,
   "name": "b_11E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4590,
   "name": "click_conf_head",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4602,
   "name": "b_11FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4612,
   "name": "click_indians",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4630,
   "name": "b_1216",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4643,
   "name": "click_storm",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4661,
   "name": "b_1235",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4674,
   "name": "click_reinforcements",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4692,
   "name": "b_1254",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4705,
   "name": "click_arcade",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4728,
   "name": "b_1278",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4736,
   "name": "click_joystick",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4744,
   "name": "r_1288",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4745,
   "name": "b_1289",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4771,
   "name": "click_photographer",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4793,
   "name": "r_12B9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4794,
   "name": "flash_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4811,
   "name": "r_12CB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4812,
   "name": "flash_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4827,
   "name": "r_12DB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4828,
   "name": "click_go",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4851,
   "name": "b_12F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4896,
   "name": "b_1320",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4898,
   "name": "a_1322",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4904,
   "name": "a_1328",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4907,
   "name": "a_132B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4913,
   "name": "a_1331",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4941,
   "name": "b_134D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4946,
   "name": "b_1352",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4966,
   "name": "to_grey",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5001,
   "name": "grey_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5002,
   "name": "grey_save",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5003,
   "name": "grey_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5019,
   "name": "frame_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5020,
   "name": "frame_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5028,
   "name": "r_13A4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5029,
   "name": "menu_video",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5168,
   "name": "j_1430",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5182,
   "name": "b_143E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5198,
   "name": "b_144E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5213,
   "name": "b_145D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5219,
   "name": "b_1463",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5225,
   "name": "b_1469",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5236,
   "name": "b_1474",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5241,
   "name": "b_1479",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5270,
   "name": "r_1496",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5271,
   "name": "menu_joy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5289,
   "name": "b_14A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5293,
   "name": "b_14AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5297,
   "name": "b_14B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5301,
   "name": "b_14B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5313,
   "name": "menu_key",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5325,
   "name": "b_14CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5352,
   "name": "b_14E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5360,
   "name": "b_14F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5366,
   "name": "b_14F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5369,
   "name": "menu_joy_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5370,
   "name": "menu_joy_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5371,
   "name": "menu_joy_fire",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5372,
   "name": "menu_key_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5380,
   "name": "menu_key_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5388,
   "name": "menu_key_row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5460,
   "name": "menu_key_code",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5461,
   "name": "menu_colour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5463,
   "name": "b_1557",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5496,
   "name": "menu_irq_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5546,
   "name": "menu_irq_heads",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5579,
   "name": "b_15CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5632,
   "name": "b_1600",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5643,
   "name": "menu_irq_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5704,
   "name": "b_1648",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5715,
   "name": "heads_top",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5792,
   "name": "heads_low",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5807,
   "name": "cursor_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5841,
   "name": "cursor_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5848,
   "name": "cursor_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5862,
   "name": "b_16E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5869,
   "name": "b_16ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5876,
   "name": "b_16F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5883,
   "name": "r_16FB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5884,
   "name": "cursor_stick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5897,
   "name": "b_1709",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5900,
   "name": "b_170C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5910,
   "name": "b_1716",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5913,
   "name": "r_1719",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5914,
   "name": "cursor_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5926,
   "name": "b_1726",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5943,
   "name": "r_1737",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5944,
   "name": "cursor_right",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5956,
   "name": "b_1744",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5973,
   "name": "r_1755",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5974,
   "name": "cursor_up",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5990,
   "name": "r_1766",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5991,
   "name": "cursor_down",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6007,
   "name": "r_1777",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6008,
   "name": "draw_year",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6021,
   "name": "draw_panel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6123,
   "name": "b_17EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6124,
   "name": "a_17EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6125,
   "name": "a_17ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6127,
   "name": "a_17EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6128,
   "name": "a_17F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6179,
   "name": "b_1823",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6183,
   "name": "b_1827",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6184,
   "name": "a_1828",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6185,
   "name": "a_1829",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6187,
   "name": "a_182B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6188,
   "name": "a_182C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6190,
   "name": "a_182E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6191,
   "name": "a_182F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6193,
   "name": "a_1831",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6194,
   "name": "a_1832",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6264,
   "name": "draw_menu",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6276,
   "name": "b_1884",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6331,
   "name": "b_18BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6364,
   "name": "b_18DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6386,
   "name": "b_18F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6398,
   "name": "j_18FE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6424,
   "name": "b_1918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6446,
   "name": "b_192E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6458,
   "name": "j_193A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6473,
   "name": "b_1949",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6480,
   "name": "j_1950",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6495,
   "name": "b_195F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6502,
   "name": "j_1966",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6517,
   "name": "b_1975",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6524,
   "name": "j_197C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6539,
   "name": "b_198B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6546,
   "name": "j_1992",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6554,
   "name": "r_199A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6555,
   "name": "b_199B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6576,
   "name": "click_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6584,
   "name": "r_19B8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6585,
   "name": "menu_click",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6602,
   "name": "r_19CA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6603,
   "name": "b_19CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6605,
   "name": "b_19CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6648,
   "name": "b_19F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6652,
   "name": "b_19FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6673,
   "name": "a_1A11",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6674,
   "name": "a_1A12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6675,
   "name": "menu_fill_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7699,
   "name": "menu_fill_1_1e13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8723,
   "name": "menu_fill_1_2213",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9747,
   "name": "menu_fill_1_2613",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10771,
   "name": "menu_fill_1_2a13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11795,
   "name": "menu_fill_1_2e13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12819,
   "name": "menu_fill_1_3213",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13843,
   "name": "menu_fill_1_3613",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14867,
   "name": "menu_fill_1_3a13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15891,
   "name": "menu_fill_1_3e13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "menu_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "menu_bitmap_4400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18432,
   "name": "menu_bitmap_4800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "menu_bitmap_4c00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "menu_bitmap_5000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "menu_bitmap_5400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "menu_bitmap_5800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "menu_bitmap_5c00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24384,
   "name": "menu_fill_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "menu_screen",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25576,
   "name": "menu_screen_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25592,
   "name": "a_63F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25593,
   "name": "a_63F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25594,
   "name": "a_63FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25595,
   "name": "a_63FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25596,
   "name": "a_63FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25600,
   "name": "head_sprites",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "head_sprites_6800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27136,
   "name": "cursor_sprite",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27200,
   "name": "menu_fill_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28224,
   "name": "menu_fill_3_6e40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29248,
   "name": "menu_fill_3_7240",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30272,
   "name": "menu_fill_3_7640",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31296,
   "name": "menu_fill_3_7a40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32320,
   "name": "menu_fill_3_7e40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "menu_fill_3_8000",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33344,
   "name": "menu_fill_3_8240",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34368,
   "name": "menu_fill_3_8640",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35392,
   "name": "menu_fill_3_8a40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36416,
   "name": "menu_fill_3_8e40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36864,
   "name": "menu_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37120,
   "name": "menu_colours_9100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37376,
   "name": "menu_colours_9200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37632,
   "name": "menu_colours_9300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37864,
   "name": "panel02_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38440,
   "name": "panel02_bitmap_row7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38536,
   "name": "panel02_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38608,
   "name": "panel02_screen_row7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38620,
   "name": "panel02_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38692,
   "name": "panel02_colour_row7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38704,
   "name": "panel03_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38824,
   "name": "panel03_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38839,
   "name": "panel03_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38854,
   "name": "panel12_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39574,
   "name": "panel12_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39664,
   "name": "panel12_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39754,
   "name": "panel08_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39874,
   "name": "panel08_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39889,
   "name": "panel08_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39904,
   "name": "panel00_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40576,
   "name": "panel00_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40660,
   "name": "panel00_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40744,
   "name": "panel01_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "panel01_bitmap_a000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41416,
   "name": "panel01_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41500,
   "name": "panel01_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41584,
   "name": "panel04_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41704,
   "name": "panel04_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41719,
   "name": "panel04_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41734,
   "name": "panel05_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41854,
   "name": "panel05_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41869,
   "name": "panel05_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41884,
   "name": "panel06_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42004,
   "name": "panel06_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42019,
   "name": "panel06_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42034,
   "name": "panel07_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42154,
   "name": "panel07_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42169,
   "name": "panel07_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42184,
   "name": "panel09_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42304,
   "name": "panel09_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42319,
   "name": "panel09_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42334,
   "name": "panel13_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43054,
   "name": "panel13_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43144,
   "name": "panel13_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43234,
   "name": "panel14_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43314,
   "name": "panel14_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43324,
   "name": "panel14_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43334,
   "name": "panel15_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43414,
   "name": "panel15_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43424,
   "name": "panel15_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43434,
   "name": "panel16_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43514,
   "name": "panel16_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43524,
   "name": "panel16_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43534,
   "name": "panel17_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43614,
   "name": "panel17_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43624,
   "name": "panel17_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43634,
   "name": "panel11_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43754,
   "name": "panel11_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43769,
   "name": "panel11_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43784,
   "name": "panel10_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43904,
   "name": "panel10_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43919,
   "name": "panel10_colour",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43934,
   "name": "menu_fill_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63026,
   "name": "sfx_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63029,
   "name": "sfx_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63032,
   "name": "sfx_play",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63035,
   "name": "sfx_instr_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63038,
   "name": "sfx_voice_on",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63041,
   "name": "sfx_tick",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63044,
   "name": "sfx_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63047,
   "name": "sfx_release",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63050,
   "name": "sfx_sid",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63053,
   "name": "sfx_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63056,
   "name": "sfx_repeat",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63059,
   "name": "sfx_header3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63062,
   "name": "sfx_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63065,
   "name": "sfx_instr_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63068,
   "name": "sfx_vib",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63071,
   "name": "sfx_pulse_sweep",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63074,
   "name": "sfx_effects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63077,
   "name": "sfx_instr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63080,
   "name": "sfx_note",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63083,
   "name": "sfx_sound",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63086,
   "name": "sfx_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63089,
   "name": "sfx_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63092,
   "name": "sfx_wave",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63095,
   "name": "sfx_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63098,
   "name": "sfx_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63101,
   "name": "sfx_pulse_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63104,
   "name": "sfx_filter_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63107,
   "name": "sfx_filter_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63110,
   "name": "sfx_filter_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63111,
   "name": "sfx_arp",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63114,
   "name": "sfx_arp_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63117,
   "name": "sfx_arp_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63120,
   "name": "sfx_arp_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63123,
   "name": "sfx_wave_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63126,
   "name": "sfx_note_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63129,
   "name": "sfx_drum_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63132,
   "name": "sfx_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63133,
   "name": "sfx_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 63159,
   "name": "b_F6B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63167,
   "name": "b_F6BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63175,
   "name": "b_F6C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63182,
   "name": "sfx_begin",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 63205,
   "name": "b_F6E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63210,
   "name": "a_F6EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63251,
   "name": "b_F713",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63264,
   "name": "b_F720",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63295,
   "name": "b_F73F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63303,
   "name": "b_F747",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63305,
   "name": "b_F749",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63332,
   "name": "b_F764",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63337,
   "name": "r_F769",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 63338,
   "name": "sfx_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 63339,
   "name": "a_F76B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63341,
   "name": "a_F76D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63346,
   "name": "a_F772",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63351,
   "name": "a_F777",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63357,
   "name": "b_F77D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63407,
   "name": "b_F7AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63440,
   "name": "b_F7D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63443,
   "name": "j_F7D3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 63450,
   "name": "b_F7DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63471,
   "name": "b_F7EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63476,
   "name": "b_F7F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63486,
   "name": "b_F7FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63490,
   "name": "b_F802",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63496,
   "name": "b_F808",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63511,
   "name": "sfx_voice_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63526,
   "name": "sfx_next",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 63549,
   "name": "b_F83D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63572,
   "name": "b_F854",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63577,
   "name": "b_F859",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63586,
   "name": "b_F862",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63626,
   "name": "b_F88A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63632,
   "name": "b_F890",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63659,
   "name": "b_F8AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63671,
   "name": "b_F8B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63686,
   "name": "j_F8C6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 63699,
   "name": "b_F8D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63722,
   "name": "b_F8EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63737,
   "name": "b_F8F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63755,
   "name": "b_F90B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63763,
   "name": "b_F913",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63820,
   "name": "b_F94C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63822,
   "name": "b_F94E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63825,
   "name": "b_F951",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63842,
   "name": "b_F962",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63847,
   "name": "b_F967",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63871,
   "name": "b_F97F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63877,
   "name": "b_F985",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63885,
   "name": "sfx_effects_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63892,
   "name": "b_F994",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63923,
   "name": "b_F9B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63929,
   "name": "b_F9B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63966,
   "name": "j_F9DE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 64005,
   "name": "b_FA05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64025,
   "name": "b_FA19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64066,
   "name": "b_FA42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64088,
   "name": "b_FA58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64098,
   "name": "b_FA62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64112,
   "name": "b_FA70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64122,
   "name": "b_FA7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64130,
   "name": "b_FA82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64165,
   "name": "b_FAA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64173,
   "name": "b_FAAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64174,
   "name": "a_FAAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 64204,
   "name": "b_FACC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64213,
   "name": "a_FAD5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 64220,
   "name": "b_FADC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64224,
   "name": "b_FAE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64228,
   "name": "j_FAE4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 64253,
   "name": "b_FAFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64262,
   "name": "b_FB06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64291,
   "name": "b_FB23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64305,
   "name": "b_FB31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 64319,
   "name": "r_FB3F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 64320,
   "name": "sfx_set_freq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 64334,
   "name": "sfx_note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64430,
   "name": "sfx_note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64526,
   "name": "sfx_sounds_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64542,
   "name": "sfx_sounds_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64558,
   "name": "sfx_pattern_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64592,
   "name": "sfx_pattern_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64626,
   "name": "sfx_arp_pointers",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64641,
   "name": "sfx_filter_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64645,
   "name": "sfx_filter_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64650,
   "name": "sfx_wave_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64652,
   "name": "sfx_wave_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64654,
   "name": "sfx_noteprog_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64656,
   "name": "sfx_noteprog_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64658,
   "name": "sfx_programs",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64742,
   "name": "sfx_arps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64778,
   "name": "sfx_instruments",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64779,
   "name": "sfx_instruments_fd0b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64780,
   "name": "sfx_instruments_fd0c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64781,
   "name": "sfx_instruments_fd0d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64782,
   "name": "sfx_instruments_fd0e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64783,
   "name": "sfx_instruments_fd0f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64784,
   "name": "sfx_instruments_fd10",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64785,
   "name": "sfx_instruments_fd11",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64905,
   "name": "sfx_drums",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64907,
   "name": "sfx_drums_fd8b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64910,
   "name": "sfx_sound_data",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 4096,
   "type": "line",
   "text": "the menu, called by the script at $0806 once OC and OM are loaded: sets the machine up ($13A5), copies the picture's colours ($1555), starts the raster interrupts ($1578), draws every panel as the settings say ($1878) and the year ($1778), then loops on the click ($19B9) and the photographer's gag ($12BA) until GO ($12DC) leaves it."
  },
  {
   "address": 4120,
   "type": "line",
   "text": "the Union character's first sprite pointer for each difficulty ($0380, 0 to 2): $90, $94, $98; four sprites a head ($1653, $15EA)."
  },
  {
   "address": 4123,
   "type": "line",
   "text": "the Confederate character's first sprite pointer for each difficulty ($0381): $9C, $A0, $A4."
  },
  {
   "address": 4126,
   "type": "line",
   "text": "the cursor's x in sprite coordinates, low byte; moved four pixels a frame, from 30 to 320 ($16D1)."
  },
  {
   "address": 4127,
   "type": "line",
   "text": "the cursor's x, high byte."
  },
  {
   "address": 4128,
   "type": "line",
   "text": "the cursor's y in sprite coordinates, from 60 to 224, moved four pixels a frame."
  },
  {
   "address": 4129,
   "type": "line",
   "text": "the width of the panel being drawn in bitmap bytes, eight a cell ($17E3)."
  },
  {
   "address": 4130,
   "type": "line",
   "text": "the width of the panel being drawn in cells."
  },
  {
   "address": 4131,
   "type": "line",
   "text": "the height of the panel being drawn in rows of cells."
  },
  {
   "address": 4132,
   "type": "line",
   "text": "the width in cells of each of the eighteen panel pictures: the two flags and the computer 12, the disasters' and icons' pictures 3, the photographer 10, the four years 5."
  },
  {
   "address": 4150,
   "type": "line",
   "text": "the height in rows of each of the eighteen panel pictures: 7, 7, 6, then 5 for the next nine, 9 and 9 for the photographer, 2 for the years."
  },
  {
   "address": 4168,
   "type": "line",
   "text": "the address of each panel picture's bitmap, eighteen pointers from $1048 (picture n at $1048 + 2n): 0 the Union flag, 1 the Confederate flag, 2 the computer, 3 a disaster or icon panel switched off, 4 to 6 the Indians, the storm and the ship's ladder, 7 arcade, 8 strategic, 9 the joystick panel when two people play, 10 and 11 joystick and keyboard, 12 and 13 the photographer with and without his flash, 14 to 17 the years 1861 to 1864."
  },
  {
   "address": 4169,
   "type": "line",
   "text": "the high bytes of panel_bitmaps' eighteen pointers, interleaved with their low bytes from $1048."
  },
  {
   "address": 4204,
   "type": "line",
   "text": "the address of each panel picture's screen bytes (its two colours a cell), eighteen pointers in the same order."
  },
  {
   "address": 4205,
   "type": "line",
   "text": "the high bytes of panel_screens' pointers, interleaved with the low bytes from $106C."
  },
  {
   "address": 4240,
   "type": "line",
   "text": "the address of each panel picture's colour RAM bytes, eighteen pointers in the same order."
  },
  {
   "address": 4241,
   "type": "line",
   "text": "the high bytes of panel_colours' pointers, interleaved with the low bytes from $1090."
  },
  {
   "address": 4276,
   "type": "line",
   "text": "where each of the nine panels is drawn in the bitmap at $4000: 0 the Union's window, 1 the Confederacy's, 2 to 4 the three disasters, 5 arcade or strategic, 6 the joystick panel, 7 the photographer, 8 the calendar."
  },
  {
   "address": 4277,
   "type": "line",
   "text": "the high bytes of panel_dest_bitmap's nine pointers, interleaved with the low bytes from $10B4."
  },
  {
   "address": 4294,
   "type": "line",
   "text": "where each of the nine panels is drawn on the screen at $6000; colour RAM is the same place $7800 higher."
  },
  {
   "address": 4295,
   "type": "line",
   "text": "the high bytes of panel_dest_screen's nine pointers, interleaved with the low bytes from $10C6."
  },
  {
   "address": 4312,
   "type": "line",
   "text": "frames before another click counts: 20 after each, counted down by $19B0."
  },
  {
   "address": 4313,
   "type": "line",
   "text": "the routine for each of the twelve places a click does something, twelve pointers: the Union's window $114D, the Union's head $1193, the disasters $1204, $1223 and $1242, the Confederacy's window $11A6, its head $11EE, arcade or strategic $1261, the calendar $113B, the joystick panel $1280, the photographer $12A3 and GO $12DC."
  },
  {
   "address": 4314,
   "type": "line",
   "text": "the high bytes of click_handlers' pointers, interleaved with the low bytes from $10D9."
  },
  {
   "address": 4337,
   "type": "line",
   "text": "the left edge of each of the twelve places, low byte, in sprite coordinates."
  },
  {
   "address": 4349,
   "type": "line",
   "text": "the left edge's high byte (1 for the Confederacy's window and head)."
  },
  {
   "address": 4361,
   "type": "line",
   "text": "the right edge of each place, low byte."
  },
  {
   "address": 4373,
   "type": "line",
   "text": "the right edge's high byte."
  },
  {
   "address": 4385,
   "type": "line",
   "text": "the top edge of each place."
  },
  {
   "address": 4397,
   "type": "line",
   "text": "the bottom edge of each place (the click must be above it)."
  },
  {
   "address": 4409,
   "type": "line",
   "text": "frames the photographer's flash shows: 10 after a click on him ($12A3), counted down by $12CC."
  },
  {
   "address": 4410,
   "type": "line",
   "text": "set to 1 by $12CC when the flash is over; the main loop then draws the photographer without it ($12BA)."
  },
  {
   "address": 4411,
   "type": "line",
   "text": "the calendar: the next year, 1861 to 1864 and round again ($0389, kept in $037E too), drawn by $1778."
  },
  {
   "address": 4429,
   "type": "line",
   "text": "the Union's window: a person or the computer plays the Union ($0382 flipped), with sound 6 (the computer) or 7 (a person), the window drawn ($1785) and the joystick panel drawn for the new players: picture 9 when two people play, nothing (3) when the computer plays both, and the joystick or keyboard ($0388 + 10) when one person plays."
  },
  {
   "address": 4499,
   "type": "line",
   "text": "the Union character's head: the next difficulty for the Union, 0 to 2 and round ($0380), with sound 0 to 2."
  },
  {
   "address": 4518,
   "type": "line",
   "text": "the Confederacy's window: a person or the computer ($0383 flipped), with sound 8 or 9, the window and the joystick panel drawn as for the Union."
  },
  {
   "address": 4590,
   "type": "line",
   "text": "the Confederate character's head: the next difficulty for the Confederacy ($0381), with sound 3 to 5."
  },
  {
   "address": 4612,
   "type": "line",
   "text": "the first disaster, the Indians (and the Mexican): on or off ($0384), sound 13 when it goes on, the panel drawn."
  },
  {
   "address": 4643,
   "type": "line",
   "text": "the second disaster, the storm: on or off ($0385), sound 15 when it goes on."
  },
  {
   "address": 4674,
   "type": "line",
   "text": "the third disaster, the European reinforcements: on or off ($0386), sound 12 when it goes on."
  },
  {
   "address": 4705,
   "type": "line",
   "text": "arcade or strategic: $0387 flipped, sound 10 when the arcade comes back, its picture (7) or the strategic one (8) drawn."
  },
  {
   "address": 4736,
   "type": "line",
   "text": "the joystick panel: only when one person plays, flips joystick or keyboard ($0388) and draws it."
  },
  {
   "address": 4771,
   "type": "line",
   "text": "the photographer, a gag: unless his flash is still showing, sound 14 and his picture with the flash (12) for 10 frames ($1139)."
  },
  {
   "address": 4794,
   "type": "line",
   "text": "in the main loop: once $113A says the flash is over, draws the photographer without it (13)."
  },
  {
   "address": 4812,
   "type": "line",
   "text": "once a frame from the interrupt: counts the flash down and sets $113A at its end."
  },
  {
   "address": 4828,
   "type": "line",
   "text": "GO: the photograph is taken. Sound 11, a white border with the screen blanked for two frames ($139B), then every colour of the screen at $6000 and of colour RAM is turned into a grey ($1366), the picture is left for 200 frames, the raster interrupt is switched off, and it returns to the script past the menu loop (the two pla take menu_main's own return to $100F)."
  },
  {
   "address": 4898,
   "type": "line",
   "text": "the high byte of the screen load in GO's grey loop, stepped a page each pass ($1337)."
  },
  {
   "address": 4904,
   "type": "line",
   "text": "the high byte of the screen store in GO's grey loop, stepped with $1322."
  },
  {
   "address": 4907,
   "type": "line",
   "text": "the high byte of the colour RAM load in GO's grey loop, stepped a page each pass ($133D)."
  },
  {
   "address": 4913,
   "type": "line",
   "text": "the high byte of the colour RAM store in GO's grey loop, stepped with $132B; the loop from here counts the passes, the last one stopping at $F7 so as to leave the sprite pointers alone."
  },
  {
   "address": 4966,
   "type": "line",
   "text": "the grey for a byte of two colours: each nibble through $138B. X is kept."
  },
  {
   "address": 5001,
   "type": "line",
   "text": "the high nibble of to_grey's result."
  },
  {
   "address": 5002,
   "type": "line",
   "text": "to_grey's copy of X."
  },
  {
   "address": 5003,
   "type": "line",
   "text": "the grey for each of the sixteen colours: black stays black, white stays white, the darker colours turn dark grey (11) or mid grey (12) and the lighter ones light grey (15)."
  },
  {
   "address": 5019,
   "type": "line",
   "text": "frames left of a wait, counted down by $139C from the interrupt: 2 for GO's flash and 200 for its picture."
  },
  {
   "address": 5020,
   "type": "line",
   "text": "counts $139B down to 0, once a frame."
  },
  {
   "address": 5029,
   "type": "line",
   "text": "the menu's machine: all RAM but I/O ($01 = $35), video bank 1, black border and background, sprites off, a multicolour bitmap at $4000 with its screen at $6000 ($D018 = $80, $D011 = $28 for now, blank until $1555 turns it on, $D016 = $1F), the raster and CIA interrupts off, $DC00 = $7F, the CIAs' timers stopped; sprites 1 to 4 multicolour (the characters' heads, colours 6 and 12 with the shared 10 and 0), sprites 0 to 4 on; then the sound driver's init ($F632)."
  },
  {
   "address": 5168,
   "type": "line",
   "text": "unreached: a run-length unpacker from ($10) to ($12), $14/$15 bytes long, eight items to a control byte (a 1 bit takes a byte, a 0 bit a run); nothing calls it."
  },
  {
   "address": 5271,
   "type": "line",
   "text": "reads joystick 2 into $14F9 (left -1, right +1), $14FA (up -1, down +1) and $14FB (0 while fire is held)."
  },
  {
   "address": 5313,
   "type": "line",
   "text": "the key pressed, as the title's read_key does with its own tables ($14FC): its code, or $FF for none; the interrupt keeps it in $1554."
  },
  {
   "address": 5369,
   "type": "line",
   "text": "joystick 2's left or right, -1, 0 or +1."
  },
  {
   "address": 5370,
   "type": "line",
   "text": "joystick 2's up or down, -1, 0 or +1."
  },
  {
   "address": 5371,
   "type": "line",
   "text": "0 while fire on joystick 2 is held, 1 otherwise."
  },
  {
   "address": 5372,
   "type": "line",
   "text": "the eight row selects and column bytes, as at $8207 in the title."
  },
  {
   "address": 5380,
   "type": "line",
   "text": "the low bytes of each row's key codes, from $1514 for row 7 to $154C for row 0; the high bytes ($15) at $150C."
  },
  {
   "address": 5388,
   "type": "line",
   "text": "the high bytes of the rows' pointers; from $1514 the 64 key codes, as in the title's table: $50, $4C, $5A and $58 for P, L, Z and X, $20 for space."
  },
  {
   "address": 5460,
   "type": "line",
   "text": "the key the interrupt read this frame ($14C1)."
  },
  {
   "address": 5461,
   "type": "line",
   "text": "copies the picture's colour RAM, 1,024 bytes from $9000, and turns the screen on ($D011 = $38)."
  },
  {
   "address": 5496,
   "type": "line",
   "text": "the raster interrupt at line $55 for $15AA; the NMI and reset vectors on an rti ($15A9), so RESTORE does nothing; interrupts on."
  },
  {
   "address": 5545,
   "type": "line",
   "text": "rti: the menu's NMI handler."
  },
  {
   "address": 5546,
   "type": "line",
   "text": "the raster interrupt at line $55: arms line $FA for $160B, moves the heads' sprites down to y 90 ($16A0) and, once the beam is past line $58, points them at the next two frames of each head ($63F9-$63FC), so that four sprites show each head, two above and the same two again below."
  },
  {
   "address": 5643,
   "type": "line",
   "text": "the raster interrupt at line $FA, the frame's work: arms line $54 for $15AA, puts the heads' top sprites back ($1653) and the cursor ($16AF), moves the cursor by key or joystick ($16D1), reads the keyboard ($14C1) and the joystick ($1497), counts down the click wait ($19B0), the flash ($12CC) and the frame wait ($139C), and plays the sound ($F638)."
  },
  {
   "address": 5715,
   "type": "line",
   "text": "the heads' upper sprites: sprites 1 and 2 the Union character's for its difficulty ($1018), sprites 3 and 4 the Confederate's ($101B), at y 69, x 79 and 103 for the Union, 295 and 319 for the Confederacy."
  },
  {
   "address": 5792,
   "type": "line",
   "text": "moves sprites 1 to 4 down to y 90 for the heads' lower halves."
  },
  {
   "address": 5807,
   "type": "line",
   "text": "sprite 0, the cursor (pointer $A8, white), at $101E/$1020."
  },
  {
   "address": 5841,
   "type": "line",
   "text": "the cursor's move this frame: by the keys P (up), L (down), Z (left) and X (right) ($16D8), then by the joystick ($16FC), four pixels a step, kept between x 30 and 320 and y 60 and 224."
  },
  {
   "address": 5848,
   "type": "line",
   "text": "moves the cursor by the key read this frame: P up, L down, Z left, X right."
  },
  {
   "address": 5884,
   "type": "line",
   "text": "moves the cursor by joystick 2."
  },
  {
   "address": 5914,
   "type": "line",
   "text": "four pixels left, unless x is below 30."
  },
  {
   "address": 5944,
   "type": "line",
   "text": "four pixels right, unless x is 320 or more."
  },
  {
   "address": 5974,
   "type": "line",
   "text": "four pixels up, unless y is below 60."
  },
  {
   "address": 5991,
   "type": "line",
   "text": "four pixels down, unless y is 224 or more."
  },
  {
   "address": 6008,
   "type": "line",
   "text": "draws the calendar (panel 8) with the picture of the year chosen, 14 + $0389."
  },
  {
   "address": 6021,
   "type": "line",
   "text": "draws panel A with picture X: the picture's width and height ($1024, $1036), its bitmap, screen and colour bytes ($1048, $106C, $1090) and the panel's place ($10B4, $10C6) go into the copy loops' own operands, then the bitmap is copied row by row (eight bytes a cell) and the screen and colour bytes cell by cell, the destination stepping 320 bytes and 40 cells a row."
  },
  {
   "address": 6124,
   "type": "line",
   "text": "the low byte of the bitmap source in draw_panel, set from $1048 and stepped a row ($17FD)."
  },
  {
   "address": 6125,
   "type": "line",
   "text": "the high byte of the bitmap source in draw_panel."
  },
  {
   "address": 6127,
   "type": "line",
   "text": "the low byte of the bitmap store in draw_panel, set from $10B4 and stepped 320 bytes a row ($180E)."
  },
  {
   "address": 6128,
   "type": "line",
   "text": "the high byte of the bitmap store in draw_panel, set from $10B5 and stepped 320 bytes a row ($1814); the loop from here steps the source on by a row."
  },
  {
   "address": 6184,
   "type": "line",
   "text": "the low byte of the screen source in draw_panel, set from $106C and stepped a row ($183D)."
  },
  {
   "address": 6185,
   "type": "line",
   "text": "the high byte of the screen source in draw_panel."
  },
  {
   "address": 6187,
   "type": "line",
   "text": "the low byte of the screen store in draw_panel, set from $10C6 and stepped 40 cells a row ($1860); the colour store's low byte at $1831 is set with it."
  },
  {
   "address": 6188,
   "type": "line",
   "text": "the high byte of the screen store in draw_panel."
  },
  {
   "address": 6190,
   "type": "line",
   "text": "the low byte of the colour source in draw_panel, set from $1090 and stepped a row ($184F)."
  },
  {
   "address": 6191,
   "type": "line",
   "text": "the high byte of the colour source in draw_panel."
  },
  {
   "address": 6193,
   "type": "line",
   "text": "the low byte of the colour RAM store in draw_panel, the same as the screen store's."
  },
  {
   "address": 6194,
   "type": "line",
   "text": "the high byte of the colour RAM store in draw_panel, set $78 above the screen store's at $17DA and $1871; the loop from here steps to the next row of cells."
  },
  {
   "address": 6264,
   "type": "line",
   "text": "draws the panels. The first time ($037F clear) it sets the defaults: $0380-$0389 cleared (1861, both sides' disasters off, the joystick), then the Confederacy the computer ($0383), the arcade on ($0387) and the Union at difficulty 2, a captain ($0380; the Confederacy stays at 0, a corporal), and draws the computer in the Confederacy's window, the three disasters off and the joystick (picture 10) on its panel. Later it redraws every panel from the settings, the year from $037E."
  },
  {
   "address": 6576,
   "type": "line",
   "text": "counts the click wait $10D8 down to 0, once a frame."
  },
  {
   "address": 6585,
   "type": "line",
   "text": "once the click wait is over, a press of space or of fire looks for the place under the cursor among the twelve ($10F1-$112D, the last first) and goes to its routine ($10D9) with the wait set to 20 frames; a press anywhere else does nothing."
  },
  {
   "address": 6673,
   "type": "line",
   "text": "the low byte of the jmp at $1A10, the routine of the place clicked, written at $1A07 from $10D9."
  },
  {
   "address": 6674,
   "type": "line",
   "text": "the high byte of the jmp at $1A10, written at $1A0D from $10DA."
  },
  {
   "address": 6675,
   "type": "line",
   "text": "filler the file was saved with, 9,709 bytes that nothing reads: the RAM pattern of the machine it was saved on ($00 $00 $FF $FF, with a stray byte here and there)."
  },
  {
   "address": 7699,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $1E13-$2212 of the block at $1A13."
  },
  {
   "address": 8723,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $2213-$2612 of the block at $1A13."
  },
  {
   "address": 9747,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $2613-$2A12 of the block at $1A13."
  },
  {
   "address": 10771,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $2A13-$2E12 of the block at $1A13."
  },
  {
   "address": 11795,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $2E13-$3212 of the block at $1A13."
  },
  {
   "address": 12819,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $3213-$3612 of the block at $1A13."
  },
  {
   "address": 13843,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $3613-$3A12 of the block at $1A13."
  },
  {
   "address": 14867,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $3A13-$3E12 of the block at $1A13."
  },
  {
   "address": 15891,
   "type": "line",
   "text": "menu_fill_1, continued: bytes $3E13-$3FFF of the block at $1A13."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "the menu's multicolour bitmap, 8,000 bytes in video bank 1, the picture in the manual: the two sides' windows with their flags and characters, a wooden frame with the panels of the disasters, the arcade, the calendar and the joystick, the photographer and his camera, his wagon, and NORTH & SOUTH along the bottom. $1785 draws the panels over it as the settings change."
  },
  {
   "address": 17408,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $4400-$47FF of the block at $4000."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $4800-$4BFF of the block at $4000."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $4C00-$4FFF of the block at $4000."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $5000-$53FF of the block at $4000."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $5400-$57FF of the block at $4000."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $5800-$5BFF of the block at $4000."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "menu_bitmap, continued: bytes $5C00-$5F3F of the block at $4000."
  },
  {
   "address": 24384,
   "type": "line",
   "text": "192 bytes after the bitmap that nothing reads: the RAM pattern the file was saved with."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "the menu picture's screen, two colours for each cell of the bitmap (high nibble the %01 pixels, low nibble the %10); the panels' cells are rewritten by $1785 and every cell turned grey by GO ($12DC)."
  },
  {
   "address": 25576,
   "type": "line",
   "text": "16 bytes between the screen and the sprite pointers that the video chip does not show: the RAM pattern."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "the six heads' sprites, pointers $90 to $A7, four to a head (two above, two below): the Union's three characters for the difficulties at $90, $94 and $98, the Confederacy's at $9C, $A0 and $A4."
  },
  {
   "address": 26624,
   "type": "line",
   "text": "head_sprites, continued: bytes $6800-$69FF of the block at $6400."
  },
  {
   "address": 27136,
   "type": "line",
   "text": "the cursor's sprite, pointer $A8: an arrow pointing up and left."
  },
  {
   "address": 27200,
   "type": "line",
   "text": "filler the file was saved with, 9,664 bytes that nothing reads: the RAM pattern of the machine it was saved on."
  },
  {
   "address": 28224,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $6E40-$723F of the block at $6A40."
  },
  {
   "address": 29248,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $7240-$763F of the block at $6A40."
  },
  {
   "address": 30272,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $7640-$7A3F of the block at $6A40."
  },
  {
   "address": 31296,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $7A40-$7E3F of the block at $6A40."
  },
  {
   "address": 32320,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $7E40-$7FFF of the block at $6A40."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $8000-$823F of the block at $6A40."
  },
  {
   "address": 33344,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $8240-$863F of the block at $6A40."
  },
  {
   "address": 34368,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $8640-$8A3F of the block at $6A40."
  },
  {
   "address": 35392,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $8A40-$8E3F of the block at $6A40."
  },
  {
   "address": 36416,
   "type": "line",
   "text": "menu_fill_3, continued: bytes $8E40-$8FFF of the block at $6A40."
  },
  {
   "address": 36864,
   "type": "line",
   "text": "the menu picture's colour RAM, 1,000 bytes ($1555 copies 1,024 from here, the last 24 not shown): the colour of the %11 pixels of each cell."
  },
  {
   "address": 37120,
   "type": "line",
   "text": "menu_colours, continued: bytes $9100-$91FF of the block at $9000."
  },
  {
   "address": 37376,
   "type": "line",
   "text": "menu_colours, continued: bytes $9200-$92FF of the block at $9000."
  },
  {
   "address": 37632,
   "type": "line",
   "text": "menu_colours, continued: bytes $9300-$93E7 of the block at $9000."
  },
  {
   "address": 37864,
   "type": "line",
   "text": "picture 2 of the menu's panels, the computer: its bitmap, 576 bytes, 12 cells by 6 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 38440,
   "type": "line",
   "text": "a seventh row of the computer's picture, 96 bytes of bitmap that $1785 does not draw: its height is 6 ($103A), the flags' 7."
  },
  {
   "address": 38536,
   "type": "line",
   "text": "picture 2 of the menu's panels, the computer: its screen, 72 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 38608,
   "type": "line",
   "text": "the screen bytes of the computer's seventh row, which are not drawn."
  },
  {
   "address": 38620,
   "type": "line",
   "text": "picture 2 of the menu's panels, the computer: its colour, 72 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 38692,
   "type": "line",
   "text": "the colour bytes of the computer's seventh row, which are not drawn."
  },
  {
   "address": 38704,
   "type": "line",
   "text": "picture 3 of the menu's panels, a panel switched off: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 38824,
   "type": "line",
   "text": "picture 3 of the menu's panels, a panel switched off: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 38839,
   "type": "line",
   "text": "picture 3 of the menu's panels, a panel switched off: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 38854,
   "type": "line",
   "text": "picture 12 of the menu's panels, the photographer with his flash: its bitmap, 720 bytes, 10 cells by 9 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 39574,
   "type": "line",
   "text": "picture 12 of the menu's panels, the photographer with his flash: its screen, 90 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 39664,
   "type": "line",
   "text": "picture 12 of the menu's panels, the photographer with his flash: its colour, 90 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 39754,
   "type": "line",
   "text": "picture 8 of the menu's panels, strategic: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 39874,
   "type": "line",
   "text": "picture 8 of the menu's panels, strategic: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 39889,
   "type": "line",
   "text": "picture 8 of the menu's panels, strategic: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 39904,
   "type": "line",
   "text": "picture 0 of the menu's panels, the Union flag: its bitmap, 672 bytes, 12 cells by 7 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 40576,
   "type": "line",
   "text": "picture 0 of the menu's panels, the Union flag: its screen, 84 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 40660,
   "type": "line",
   "text": "picture 0 of the menu's panels, the Union flag: its colour, 84 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 40744,
   "type": "line",
   "text": "picture 1 of the menu's panels, the Confederate flag: its bitmap, 672 bytes, 12 cells by 7 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "panel01_bitmap, continued past the memory map's edge at $A000: the Confederate flag's bitmap up to $A1C7."
  },
  {
   "address": 41416,
   "type": "line",
   "text": "picture 1 of the menu's panels, the Confederate flag: its screen, 84 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 41500,
   "type": "line",
   "text": "picture 1 of the menu's panels, the Confederate flag: its colour, 84 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 41584,
   "type": "line",
   "text": "picture 4 of the menu's panels, the Indians: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 41704,
   "type": "line",
   "text": "picture 4 of the menu's panels, the Indians: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 41719,
   "type": "line",
   "text": "picture 4 of the menu's panels, the Indians: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 41734,
   "type": "line",
   "text": "picture 5 of the menu's panels, the storm: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 41854,
   "type": "line",
   "text": "picture 5 of the menu's panels, the storm: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 41869,
   "type": "line",
   "text": "picture 5 of the menu's panels, the storm: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 41884,
   "type": "line",
   "text": "picture 6 of the menu's panels, the ship's ladder: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 42004,
   "type": "line",
   "text": "picture 6 of the menu's panels, the ship's ladder: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 42019,
   "type": "line",
   "text": "picture 6 of the menu's panels, the ship's ladder: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 42034,
   "type": "line",
   "text": "picture 7 of the menu's panels, arcade: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 42154,
   "type": "line",
   "text": "picture 7 of the menu's panels, arcade: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 42169,
   "type": "line",
   "text": "picture 7 of the menu's panels, arcade: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 42184,
   "type": "line",
   "text": "picture 9 of the menu's panels, the joystick panel for two people: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 42304,
   "type": "line",
   "text": "picture 9 of the menu's panels, the joystick panel for two people: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 42319,
   "type": "line",
   "text": "picture 9 of the menu's panels, the joystick panel for two people: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 42334,
   "type": "line",
   "text": "picture 13 of the menu's panels, the photographer: its bitmap, 720 bytes, 10 cells by 9 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43054,
   "type": "line",
   "text": "picture 13 of the menu's panels, the photographer: its screen, 90 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43144,
   "type": "line",
   "text": "picture 13 of the menu's panels, the photographer: its colour, 90 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43234,
   "type": "line",
   "text": "picture 14 of the menu's panels, 1861: its bitmap, 80 bytes, 5 cells by 2 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43314,
   "type": "line",
   "text": "picture 14 of the menu's panels, 1861: its screen, 10 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43324,
   "type": "line",
   "text": "picture 14 of the menu's panels, 1861: its colour, 10 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43334,
   "type": "line",
   "text": "picture 15 of the menu's panels, 1862: its bitmap, 80 bytes, 5 cells by 2 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43414,
   "type": "line",
   "text": "picture 15 of the menu's panels, 1862: its screen, 10 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43424,
   "type": "line",
   "text": "picture 15 of the menu's panels, 1862: its colour, 10 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43434,
   "type": "line",
   "text": "picture 16 of the menu's panels, 1863: its bitmap, 80 bytes, 5 cells by 2 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43514,
   "type": "line",
   "text": "picture 16 of the menu's panels, 1863: its screen, 10 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43524,
   "type": "line",
   "text": "picture 16 of the menu's panels, 1863: its colour, 10 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43534,
   "type": "line",
   "text": "picture 17 of the menu's panels, 1864: its bitmap, 80 bytes, 5 cells by 2 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43614,
   "type": "line",
   "text": "picture 17 of the menu's panels, 1864: its screen, 10 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43624,
   "type": "line",
   "text": "picture 17 of the menu's panels, 1864: its colour, 10 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43634,
   "type": "line",
   "text": "picture 11 of the menu's panels, the keyboard: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43754,
   "type": "line",
   "text": "picture 11 of the menu's panels, the keyboard: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43769,
   "type": "line",
   "text": "picture 11 of the menu's panels, the keyboard: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43784,
   "type": "line",
   "text": "picture 10 of the menu's panels, the joystick: its bitmap, 120 bytes, 3 cells by 5 rows, eight bytes a cell; drawn by $1785."
  },
  {
   "address": 43904,
   "type": "line",
   "text": "picture 10 of the menu's panels, the joystick: its screen, 15 bytes, two colours a cell, high nibble the %01 pixels; drawn by $1785."
  },
  {
   "address": 43919,
   "type": "line",
   "text": "picture 10 of the menu's panels, the joystick: its colour, 15 bytes for colour RAM, the %11 pixels; drawn by $1785."
  },
  {
   "address": 43934,
   "type": "line",
   "text": "98 bytes after the last panel picture that nothing reads: the RAM pattern the file was saved with."
  },
  {
   "address": 63026,
   "type": "line",
   "text": "the menu's sound driver, by its entry vectors: $F632 resets it (jmp $F69D), $F635 starts sound A (jmp $F6CE), $F638 plays a frame (jmp $F76A). The menu calls $F632 once ($142C), $F635 on each click that changes a setting, and $F638 from its frame interrupt ($1645). A sound is a short tune on one to three voices: a few notes, or a fanfare."
  },
  {
   "address": 63029,
   "type": "line",
   "text": "the driver's entry for starting sound A: jmp $F6CE."
  },
  {
   "address": 63032,
   "type": "line",
   "text": "the driver's frame entry: jmp $F76A."
  },
  {
   "address": 63035,
   "type": "line",
   "text": "each voice's offset added to its instrument numbers, from the order list's bytes $70 to $7F."
  },
  {
   "address": 63038,
   "type": "line",
   "text": "1 while the voice plays a sound, 0 when it has ended."
  },
  {
   "address": 63041,
   "type": "line",
   "text": "frames left of the voice's tick."
  },
  {
   "address": 63044,
   "type": "line",
   "text": "each voice's transpose, added to its notes ($F90C); the init clears it and nothing stores to it, so it stays 0."
  },
  {
   "address": 63047,
   "type": "line",
   "text": "the tick of the note at which the voice's gate is released: the instrument's release point, or the note's length if that is shorter."
  },
  {
   "address": 63050,
   "type": "line",
   "text": "each voice's offset of its registers in the SID: 0, 7, 14."
  },
  {
   "address": 63053,
   "type": "line",
   "text": "ticks left of the voice's note."
  },
  {
   "address": 63056,
   "type": "line",
   "text": "how the voice goes on at the end of a pattern: bit 7 set for a sound of one pattern a voice, then bit 6 loops it and otherwise the voice stops; clear, a count of repeats before the voice's order list moves on."
  },
  {
   "address": 63059,
   "type": "line",
   "text": "the sound header's third byte for each voice it uses ($F70F); stored and never read."
  },
  {
   "address": 63062,
   "type": "line",
   "text": "the voice's frames per tick, from the sound's header: bit 7 makes every other tick one frame longer, a swing."
  },
  {
   "address": 63065,
   "type": "line",
   "text": "the instrument's fifth byte: bit 3 keeps the pulse width, the low three bits choose a filter program ($FC81), the high nibble the release point."
  },
  {
   "address": 63068,
   "type": "line",
   "text": "the instrument's sixth byte, stored at each note ($F9D5) and never read."
  },
  {
   "address": 63071,
   "type": "line",
   "text": "the instrument's seventh byte: a low nibble other than 0 sweeps the pulse width up and down between $0300 and $0D00, $80 a frame."
  },
  {
   "address": 63074,
   "type": "line",
   "text": "the instrument's eighth byte: bit 7 runs a waveform and a note program, bit 6 an arpeggio, the low nibble without bit 7 a drum start ($FD89)."
  },
  {
   "address": 63077,
   "type": "line",
   "text": "the voice's instrument times 8, an index into the instruments at $FD0A."
  },
  {
   "address": 63080,
   "type": "line",
   "text": "the note the voice plays."
  },
  {
   "address": 63083,
   "type": "line",
   "text": "which sound the voice plays, for its order list ($F862)."
  },
  {
   "address": 63086,
   "type": "line",
   "text": "the frequency's low byte the next frame writes to the SID."
  },
  {
   "address": 63089,
   "type": "line",
   "text": "the frequency's high byte for the SID."
  },
  {
   "address": 63092,
   "type": "line",
   "text": "the waveform and gate byte for the SID's control register, ANDed with the gate mask ($F1,x) as it is written."
  },
  {
   "address": 63095,
   "type": "line",
   "text": "the attack and decay for the SID."
  },
  {
   "address": 63098,
   "type": "line",
   "text": "the sustain and release for the SID."
  },
  {
   "address": 63101,
   "type": "line",
   "text": "the pulse sweep's direction, 0 up, 1 down."
  },
  {
   "address": 63104,
   "type": "line",
   "text": "the position in the voice's filter program."
  },
  {
   "address": 63107,
   "type": "line",
   "text": "frames left of the filter program's step."
  },
  {
   "address": 63110,
   "type": "line",
   "text": "how much the filter cutoff moves a frame in the program's step."
  },
  {
   "address": 63111,
   "type": "line",
   "text": "the voice's arpeggio times 4, from the pattern bytes $60-$7F: an index into $FCE6."
  },
  {
   "address": 63114,
   "type": "line",
   "text": "the arpeggio's step, 0 to 3."
  },
  {
   "address": 63117,
   "type": "line",
   "text": "frames to the arpeggio's next step."
  },
  {
   "address": 63120,
   "type": "line",
   "text": "the arpeggio step's semitones above the note."
  },
  {
   "address": 63123,
   "type": "line",
   "text": "the position in the voice's waveform program."
  },
  {
   "address": 63126,
   "type": "line",
   "text": "the position in the voice's note program."
  },
  {
   "address": 63129,
   "type": "line",
   "text": "frames left of a drum start's first waveform."
  },
  {
   "address": 63132,
   "type": "line",
   "text": "the sound header's first byte while a sound starts, shifted right a bit at a time: bits 0 to 2 the voices it uses, bit 4 an order list for each voice rather than one pattern, bit 6 the loop."
  },
  {
   "address": 63133,
   "type": "line",
   "text": "sets the test bit of each voice, clears the SID's registers, sets the volume to 15 (the operand at $F76D), clears the filter ($F772, $F76B) and the voices' state ($F63B-$F649, $E0-$FF)."
  },
  {
   "address": 63182,
   "type": "line",
   "text": "starts sound A: its header through $FC0E/$FC1E; for each voice the header names, the voice takes the sound ($F66B), its loop flag, speed and third byte, and either the pattern the header gives (one pattern a voice) or the start of its own order list (bit 4), released, its note timer at 1 so that it starts on the next frame."
  },
  {
   "address": 63210,
   "type": "line",
   "text": "the operand of the lda # whose value goes into each voice's $F66B: the sound being started, written at $F6CE; the loop from here sets the voice's loop flag, speed and third byte from the header."
  },
  {
   "address": 63338,
   "type": "line",
   "text": "one frame of the sounds: the volume and filter mode (the operands at $F76B and $F76D, written by the filter program) to $D418, the filter's resonance and voices and cutoff to $D417 and $D416, each voice's shadow registers to the SID; then for each voice that plays, its tick (with the swing), the release of its gate at the release point, the next pattern byte when its note's time is up ($F826), and its effects ($F98D)."
  },
  {
   "address": 63339,
   "type": "line",
   "text": "the operand of the lda # of the volume byte for $D418: the filter mode, the high nibble, written by the filter program ($FA32) and cleared by the reset."
  },
  {
   "address": 63341,
   "type": "line",
   "text": "the operand of the ora # of the volume byte: 15, set by the reset."
  },
  {
   "address": 63346,
   "type": "line",
   "text": "the operand of the lda # for $D417, the filter's resonance and the voices it takes: written by the pattern command $FE ($F8CD) and cleared by the reset."
  },
  {
   "address": 63351,
   "type": "line",
   "text": "the operand of the lda # for $D416, the filter's cutoff: set by the filter program's start ($FA38) and moved each frame by its step ($FA77); the code from here writes each voice's registers."
  },
  {
   "address": 63494,
   "type": "line",
   "text": "unreached: a loop that silences the three voices (frequency 0), which no instruction reaches."
  },
  {
   "address": 63511,
   "type": "line",
   "text": "silences voice X (frequency 0) and marks it ended ($F63E = 0); also where the pattern byte $FE lands when a voice's order list ends ($F8A8)."
  },
  {
   "address": 63526,
   "type": "line",
   "text": "reads the voice's pattern ($E5,x through $FC2E/$FC50, position $E8,x). At its end ($FF): for a one-pattern sound, loops it or ends the voice; for an order list, repeats the pattern while $F650 counts or takes the order list's next byte (through the sound's header: $FE ends the voice, $70-$7F sets the instrument offset, anything else is the next pattern). In the pattern: $FE and a byte sets the filter's resonance and voices ($F772), $C0-$DF an instrument, $80-$BF the note length, $60-$7F an arpeggio, and below $60 a note. A note takes its instrument's waveform, envelope, pulse and effects ($FD0A)."
  },
  {
   "address": 63885,
   "type": "line",
   "text": "one frame of a voice's effects: on a new note a drum start ($FD89) and the effects' reset; the pulse sweep; the filter program ($FC81: its first step sets the filter mode and cutoff, then each step moves the cutoff); the waveform and note programs (bit 7); the end of the drum start; the arpeggio (bit 6)."
  },
  {
   "address": 64174,
   "type": "line",
   "text": "the operand of the ldy # that picks the note program, written at $FA84 with the waveform program's number; the code from here reads the voice's note program."
  },
  {
   "address": 64213,
   "type": "line",
   "text": "the operand of the lda # that holds the note program's step, written at $FACC; the code from here adds it to the note, or takes it as a note of its own, and sets the frequency."
  },
  {
   "address": 64320,
   "type": "line",
   "text": "the frequency of note A from the tables at $FB4E (low bytes) and $FBAE (high), into the voice's shadow registers."
  },
  {
   "address": 64334,
   "type": "line",
   "text": "the low bytes of the SID frequencies of the 96 notes."
  },
  {
   "address": 64430,
   "type": "line",
   "text": "the high bytes of the SID frequencies of the 96 notes."
  },
  {
   "address": 64526,
   "type": "line",
   "text": "the low bytes of the sixteen sounds' headers, sound 0 to 15; the high bytes at $FC1E. The menu plays 0 to 2 and 3 to 5 for the two sides' difficulties, 6 to 9 for the two windows, 10 for the arcade, 11 for GO, 12, 13 and 15 for the disasters and 14 for the photographer."
  },
  {
   "address": 64542,
   "type": "line",
   "text": "the high bytes of the sixteen sounds' headers."
  },
  {
   "address": 64558,
   "type": "line",
   "text": "the low bytes of the 34 patterns' addresses; the high bytes at $FC50."
  },
  {
   "address": 64592,
   "type": "line",
   "text": "the high bytes of the 34 patterns' addresses."
  },
  {
   "address": 64626,
   "type": "line",
   "text": "fifteen bytes no instruction reads: low bytes $E6 to $02 four apart and high bytes $FC and $FD, pointers to the arpeggios at $FCE6, which the driver indexes directly instead ($FB28)."
  },
  {
   "address": 64641,
   "type": "line",
   "text": "the low bytes of the filter programs' addresses, programs 1 to 3 ($FCAD, $FCD3, $FCD8); entry 0 is not used."
  },
  {
   "address": 64645,
   "type": "line",
   "text": "the high bytes of the filter programs' addresses."
  },
  {
   "address": 64650,
   "type": "line",
   "text": "the low bytes of the two waveform programs' addresses ($FC92, $FC9D)."
  },
  {
   "address": 64652,
   "type": "line",
   "text": "the high bytes of the waveform programs' addresses."
  },
  {
   "address": 64654,
   "type": "line",
   "text": "the low bytes of the two note programs' addresses ($FC96, $FCA5)."
  },
  {
   "address": 64656,
   "type": "line",
   "text": "the high bytes of the note programs' addresses."
  },
  {
   "address": 64658,
   "type": "line",
   "text": "the waveform, note and filter programs, lists of bytes with $FF and a position to loop and $FE to stop."
  },
  {
   "address": 64742,
   "type": "line",
   "text": "the arpeggios, four semitone offsets each, nine of them."
  },
  {
   "address": 64778,
   "type": "line",
   "text": "the instruments, eight bytes each: pulse width, waveform, attack and decay, sustain and release, flags (filter program and release point), an unused byte, the pulse sweep, effects."
  },
  {
   "address": 64779,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD0B-$FD0B of the block at $FD0A."
  },
  {
   "address": 64780,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD0C-$FD0C of the block at $FD0A."
  },
  {
   "address": 64781,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD0D-$FD0D of the block at $FD0A."
  },
  {
   "address": 64782,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD0E-$FD0E of the block at $FD0A."
  },
  {
   "address": 64783,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD0F-$FD0F of the block at $FD0A."
  },
  {
   "address": 64784,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD10-$FD10 of the block at $FD0A."
  },
  {
   "address": 64785,
   "type": "line",
   "text": "sfx_instruments, continued: bytes $FD11-$FD88 of the block at $FD0A."
  },
  {
   "address": 64905,
   "type": "line",
   "text": "the drum starts: lengths at $FD8A and first waveforms from $FD8C, by the instrument's low nibble."
  },
  {
   "address": 64907,
   "type": "line",
   "text": "sfx_drums, continued: bytes $FD8B-$FD8D of the block at $FD89."
  },
  {
   "address": 64910,
   "type": "line",
   "text": "the sixteen sounds: each a header (the voices it uses and whether it has an order list or one pattern a voice, the speed, a byte stored and not read, then either a pattern for each voice or pointers to each voice's order list) with its order lists and patterns: notes below $60, arpeggios $60-$7F, lengths $80-$BF, instruments $C0-$DF, the filter command $FE, each pattern ending in $FF."
  }
 ]
}