{
 "schema": 1,
 "platform": "c64",
 "game": "short-circuit",
 "build": "G64 disk image of a cracked original: a loader program, a second program of 1,026 bytes that sets up a fast loader, and one 64,508-byte program that holds both parts of the game",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    49152,
    50175,
    "screen RAM"
   ],
   [
    49152,
    50175,
    "the screen memory and sprite pointers of video bank 3: the start-up at $9762 clears and redraws the screens before they are shown, so the loaded bytes are never displayed"
   ]
  ],
  "extra": [
   [
    55296,
    57343,
    "character set"
   ]
  ],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 262,
   "type": "Undefined"
  },
  {
   "start": 263,
   "end": 281,
   "type": "Code"
  },
  {
   "start": 282,
   "end": 1023,
   "type": "Undefined"
  },
  {
   "start": 1024,
   "end": 1652,
   "type": "Code"
  },
  {
   "start": 1653,
   "end": 1660,
   "type": "Undefined"
  },
  {
   "start": 1661,
   "end": 1760,
   "type": "Code"
  },
  {
   "start": 1761,
   "end": 1792,
   "type": "Undefined"
  },
  {
   "start": 1793,
   "end": 3049,
   "type": "Code"
  },
  {
   "start": 3050,
   "end": 3061,
   "type": "Byte"
  },
  {
   "start": 3062,
   "end": 3774,
   "type": "Code"
  },
  {
   "start": 3775,
   "end": 5626,
   "type": "Byte"
  },
  {
   "start": 5627,
   "end": 5728,
   "type": "Code"
  },
  {
   "start": 5729,
   "end": 5737,
   "type": "Byte"
  },
  {
   "start": 5738,
   "end": 6601,
   "type": "Code"
  },
  {
   "start": 6602,
   "end": 6616,
   "type": "Byte"
  },
  {
   "start": 6617,
   "end": 6674,
   "type": "Code"
  },
  {
   "start": 6675,
   "end": 6714,
   "type": "Byte"
  },
  {
   "start": 6715,
   "end": 7104,
   "type": "Code"
  },
  {
   "start": 7105,
   "end": 7124,
   "type": "Byte"
  },
  {
   "start": 7125,
   "end": 7213,
   "type": "Code"
  },
  {
   "start": 7214,
   "end": 7311,
   "type": "Byte"
  },
  {
   "start": 7312,
   "end": 8650,
   "type": "Code"
  },
  {
   "start": 8651,
   "end": 8654,
   "type": "Byte"
  },
  {
   "start": 8655,
   "end": 8793,
   "type": "Code"
  },
  {
   "start": 8794,
   "end": 8797,
   "type": "Byte"
  },
  {
   "start": 8798,
   "end": 9207,
   "type": "Code"
  },
  {
   "start": 9208,
   "end": 9215,
   "type": "Byte"
  },
  {
   "start": 9216,
   "end": 9400,
   "type": "Code"
  },
  {
   "start": 9401,
   "end": 9432,
   "type": "Byte"
  },
  {
   "start": 9433,
   "end": 9729,
   "type": "Code"
  },
  {
   "start": 9730,
   "end": 9763,
   "type": "Byte"
  },
  {
   "start": 9764,
   "end": 10183,
   "type": "Code"
  },
  {
   "start": 10184,
   "end": 10189,
   "type": "Byte"
  },
  {
   "start": 10190,
   "end": 11040,
   "type": "Code"
  },
  {
   "start": 11041,
   "end": 11044,
   "type": "Byte"
  },
  {
   "start": 11045,
   "end": 11709,
   "type": "Code"
  },
  {
   "start": 11710,
   "end": 11713,
   "type": "Byte"
  },
  {
   "start": 11714,
   "end": 12477,
   "type": "Code"
  },
  {
   "start": 12478,
   "end": 12487,
   "type": "Byte"
  },
  {
   "start": 12488,
   "end": 14373,
   "type": "Code"
  },
  {
   "start": 14374,
   "end": 14393,
   "type": "Byte"
  },
  {
   "start": 14394,
   "end": 14468,
   "type": "Code"
  },
  {
   "start": 14469,
   "end": 14488,
   "type": "Byte"
  },
  {
   "start": 14489,
   "end": 15071,
   "type": "Code"
  },
  {
   "start": 15072,
   "end": 15083,
   "type": "Byte"
  },
  {
   "start": 15084,
   "end": 15216,
   "type": "Code"
  },
  {
   "start": 15217,
   "end": 15240,
   "type": "Byte"
  },
  {
   "start": 15241,
   "end": 15839,
   "type": "Code"
  },
  {
   "start": 15840,
   "end": 24551,
   "type": "Byte"
  },
  {
   "start": 24552,
   "end": 24575,
   "type": "Undefined"
  },
  {
   "start": 24576,
   "end": 35119,
   "type": "Byte"
  },
  {
   "start": 35120,
   "end": 35181,
   "type": "Code"
  },
  {
   "start": 35182,
   "end": 35469,
   "type": "Byte"
  },
  {
   "start": 35470,
   "end": 35563,
   "type": "Code"
  },
  {
   "start": 35564,
   "end": 38215,
   "type": "Byte"
  },
  {
   "start": 38216,
   "end": 38389,
   "type": "Code"
  },
  {
   "start": 38390,
   "end": 38395,
   "type": "Undefined"
  },
  {
   "start": 38396,
   "end": 38629,
   "type": "Code"
  },
  {
   "start": 38630,
   "end": 38637,
   "type": "Byte"
  },
  {
   "start": 38638,
   "end": 38750,
   "type": "Code"
  },
  {
   "start": 38751,
   "end": 38753,
   "type": "Byte"
  },
  {
   "start": 38754,
   "end": 38851,
   "type": "Code"
  },
  {
   "start": 38852,
   "end": 38855,
   "type": "Byte"
  },
  {
   "start": 38856,
   "end": 39129,
   "type": "Code"
  },
  {
   "start": 39130,
   "end": 39137,
   "type": "Byte"
  },
  {
   "start": 39138,
   "end": 39344,
   "type": "Code"
  },
  {
   "start": 39345,
   "end": 39356,
   "type": "Byte"
  },
  {
   "start": 39357,
   "end": 39758,
   "type": "Code"
  },
  {
   "start": 39759,
   "end": 40624,
   "type": "Byte"
  },
  {
   "start": 40625,
   "end": 44191,
   "type": "Code"
  },
  {
   "start": 44192,
   "end": 49150,
   "type": "Byte"
  },
  {
   "start": 49151,
   "end": 49151,
   "type": "Undefined"
  },
  {
   "start": 49152,
   "end": 65531,
   "type": "Byte"
  },
  {
   "start": 65532,
   "end": 65535,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2,
   "name": "zpa_02",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3,
   "name": "zpa_03",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4,
   "name": "zpa_04",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5,
   "name": "zpa_05",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6,
   "name": "zpa_06",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7,
   "name": "zpa_07",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8,
   "name": "zpa_08",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9,
   "name": "zpa_09",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10,
   "name": "zpa_0A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11,
   "name": "zpa_0B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14,
   "name": "zpa_0E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15,
   "name": "zpa_0F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16,
   "name": "zpp_10",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 32,
   "name": "zpa_20",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33,
   "name": "zpa_21",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34,
   "name": "zpa_22",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36,
   "name": "zpp_24",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 37,
   "name": "zpa_25",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpa_2A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43,
   "name": "zpa_2B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44,
   "name": "zpa_2C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45,
   "name": "zpa_2D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpa_2E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48,
   "name": "zpp_30",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 98,
   "name": "zpa_62",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 99,
   "name": "zpa_63",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 100,
   "name": "zpa_64",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 133,
   "name": "zpp_85",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 145,
   "name": "zpa_91",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 174,
   "name": "zpa_AE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 175,
   "name": "zpa_AF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 189,
   "name": "zpa_BD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 195,
   "name": "zpa_C3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 196,
   "name": "zpa_C4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 224,
   "name": "zpf_E0",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 225,
   "name": "zpf_E1",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 226,
   "name": "zpp_E2",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 227,
   "name": "zpa_E3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 228,
   "name": "zpp_E4",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 229,
   "name": "zpa_E5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 230,
   "name": "zpf_E6",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 231,
   "name": "zpa_E7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 232,
   "name": "zpa_E8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 233,
   "name": "zpf_E9",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 234,
   "name": "zpa_EA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 235,
   "name": "zpa_EB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 236,
   "name": "zpf_EC",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 237,
   "name": "zpa_ED",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 238,
   "name": "zpa_EE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 239,
   "name": "zpa_EF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 240,
   "name": "zpa_F0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 241,
   "name": "zpa_F1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 242,
   "name": "zpa_F2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 243,
   "name": "zpa_F3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 244,
   "name": "zpa_F4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 245,
   "name": "zpa_F5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 246,
   "name": "zpa_F6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 247,
   "name": "zpa_F7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 248,
   "name": "zpa_F8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 249,
   "name": "zpa_F9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 250,
   "name": "zpa_FA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "zpa_FD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 255,
   "name": "zpa_FF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 263,
   "name": "loader_stack_address",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 281,
   "name": "r_0119",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 512,
   "name": "mode",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 513,
   "name": "a_0201",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 514,
   "name": "a_0202",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 515,
   "name": "a_0203",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 516,
   "name": "a_0204",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 517,
   "name": "a_0205",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 518,
   "name": "a_0206",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 519,
   "name": "a_0207",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 520,
   "name": "msg_queue_len",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 521,
   "name": "a_0209",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 522,
   "name": "inventory_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 523,
   "name": "a_020B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 524,
   "name": "a_020C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 525,
   "name": "a_020D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 526,
   "name": "a_020E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 527,
   "name": "a_020F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 528,
   "name": "a_0210",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 529,
   "name": "a_0211",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 530,
   "name": "a_0212",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 531,
   "name": "a_0213",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 532,
   "name": "a_0214",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 533,
   "name": "a_0215",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 534,
   "name": "a_0216",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 535,
   "name": "a_0217",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 536,
   "name": "a_0218",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 537,
   "name": "a_0219",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 538,
   "name": "a_021A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 539,
   "name": "a_021B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 540,
   "name": "a_021C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 541,
   "name": "a_021D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 542,
   "name": "a_021E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 543,
   "name": "a_021F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 544,
   "name": "a_0220",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 545,
   "name": "a_0221",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 546,
   "name": "a_0222",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 547,
   "name": "a_0223",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 549,
   "name": "a_0225",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 550,
   "name": "a_0226",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 551,
   "name": "a_0227",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 552,
   "name": "a_0228",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 553,
   "name": "a_0229",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 554,
   "name": "a_022A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 555,
   "name": "a_022B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 557,
   "name": "a_022D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 559,
   "name": "a_022F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 560,
   "name": "a_0230",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 561,
   "name": "a_0231",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 562,
   "name": "a_0232",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 563,
   "name": "a_0233",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 564,
   "name": "a_0234",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 565,
   "name": "a_0235",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 566,
   "name": "a_0236",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 567,
   "name": "a_0237",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 570,
   "name": "a_023A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 571,
   "name": "a_023B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 572,
   "name": "a_023C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 573,
   "name": "a_023D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 574,
   "name": "a_023E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 575,
   "name": "a_023F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 576,
   "name": "a_0240",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 577,
   "name": "a_0241",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 578,
   "name": "a_0242",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 579,
   "name": "a_0243",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 580,
   "name": "a_0244",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 581,
   "name": "a_0245",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 582,
   "name": "a_0246",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 583,
   "name": "a_0247",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 584,
   "name": "a_0248",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 585,
   "name": "a_0249",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 586,
   "name": "a_024A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 587,
   "name": "a_024B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 588,
   "name": "a_024C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 589,
   "name": "a_024D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 590,
   "name": "a_024E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 595,
   "name": "a_0253",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 596,
   "name": "a_0254",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 597,
   "name": "a_0255",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 598,
   "name": "a_0256",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 603,
   "name": "a_025B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 604,
   "name": "a_025C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 605,
   "name": "f_025D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 606,
   "name": "a_025E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 611,
   "name": "a_0263",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 612,
   "name": "a_0264",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 613,
   "name": "a_0265",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 614,
   "name": "a_0266",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 619,
   "name": "a_026B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 627,
   "name": "f_0273",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 635,
   "name": "f_027B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 643,
   "name": "f_0283",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 651,
   "name": "f_028B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 659,
   "name": "a_0293",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 660,
   "name": "a_0294",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 661,
   "name": "a_0295",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 662,
   "name": "a_0296",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 663,
   "name": "a_0297",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 664,
   "name": "a_0298",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 665,
   "name": "a_0299",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 666,
   "name": "a_029A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 667,
   "name": "a_029B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 668,
   "name": "a_029C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 669,
   "name": "a_029D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 670,
   "name": "a_029E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 671,
   "name": "a_029F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 672,
   "name": "a_02A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 673,
   "name": "a_02A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 674,
   "name": "a_02A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 675,
   "name": "a_02A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 676,
   "name": "a_02A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 677,
   "name": "a_02A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 678,
   "name": "a_02A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 679,
   "name": "a_02A7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 681,
   "name": "a_02A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 682,
   "name": "a_02AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 683,
   "name": "a_02AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 684,
   "name": "a_02AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 685,
   "name": "a_02AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 686,
   "name": "a_02AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 687,
   "name": "f_02AF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 699,
   "name": "a_02BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 700,
   "name": "a_02BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 701,
   "name": "a_02BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 702,
   "name": "frame_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 703,
   "name": "a_02BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 704,
   "name": "a_02C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 705,
   "name": "a_02C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 706,
   "name": "a_02C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 707,
   "name": "a_02C3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 708,
   "name": "f_02C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 709,
   "name": "f_02C5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 720,
   "name": "a_02D0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 721,
   "name": "a_02D1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 722,
   "name": "a_02D2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 723,
   "name": "a_02D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 724,
   "name": "a_02D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 725,
   "name": "a_02D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 726,
   "name": "a_02D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 727,
   "name": "f_02D7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 731,
   "name": "f_02DB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 735,
   "name": "inventory",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 736,
   "name": "f_02E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 743,
   "name": "a_02E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 744,
   "name": "a_02E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 745,
   "name": "a_02E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 746,
   "name": "a_02EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 747,
   "name": "a_02EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 748,
   "name": "a_02EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 749,
   "name": "a_02ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 750,
   "name": "a_02EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 751,
   "name": "a_02EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 752,
   "name": "a_02F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 753,
   "name": "a_02F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 754,
   "name": "a_02F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 755,
   "name": "a_02F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 756,
   "name": "a_02F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 757,
   "name": "a_02F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 758,
   "name": "a_02F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 759,
   "name": "a_02F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 760,
   "name": "a_02F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 761,
   "name": "a_02F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 762,
   "name": "a_02FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 763,
   "name": "a_02FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 764,
   "name": "selected_action",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 765,
   "name": "a_02FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 766,
   "name": "a_02FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 767,
   "name": "a_02FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 768,
   "name": "a_0300",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 769,
   "name": "a_0301",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 770,
   "name": "a_0302",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 771,
   "name": "a_0303",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 772,
   "name": "a_0304",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 773,
   "name": "a_0305",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 774,
   "name": "a_0306",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 775,
   "name": "a_0307",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 776,
   "name": "a_0308",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 777,
   "name": "a_0309",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 778,
   "name": "a_030A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 779,
   "name": "a_030B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 780,
   "name": "a_030C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 781,
   "name": "a_030D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 782,
   "name": "a_030E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 783,
   "name": "a_030F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 784,
   "name": "a_0310",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 785,
   "name": "a_0311",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 786,
   "name": "a_0312",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 787,
   "name": "a_0313",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 788,
   "name": "a_0314",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 789,
   "name": "a_0315",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 790,
   "name": "a_0316",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 791,
   "name": "a_0317",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 792,
   "name": "a_0318",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 794,
   "name": "a_031A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 795,
   "name": "a_031B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 937,
   "name": "skip_operand_03A9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1024,
   "name": "game_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1060,
   "name": "b_0424",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1073,
   "name": "b_0431",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1109,
   "name": "main_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1147,
   "name": "main_loop_scroll_check",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1218,
   "name": "b_04C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1226,
   "name": "b_04CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1232,
   "name": "b_04D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1256,
   "name": "main_loop_frame",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1264,
   "name": "b_04F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1281,
   "name": "b_0501",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1289,
   "name": "b_0509",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1320,
   "name": "b_0528",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1388,
   "name": "b_056C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1408,
   "name": "main_loop_idle",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1414,
   "name": "read_fire_and_direction_edges",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1431,
   "name": "b_0597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1447,
   "name": "b_05A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1449,
   "name": "skip_operand_05A9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1452,
   "name": "j_05AC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1465,
   "name": "b_05B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1482,
   "name": "b_05CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1488,
   "name": "player_move_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1524,
   "name": "b_05F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1527,
   "name": "r_05F7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1528,
   "name": "player_move_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1555,
   "name": "player_move_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1569,
   "name": "b_0621",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1576,
   "name": "b_0628",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1588,
   "name": "b_0634",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1594,
   "name": "walk_right_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1617,
   "name": "b_0651",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1629,
   "name": "walk_step_chain",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1653,
   "name": "action_dispatch_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1654,
   "name": "f_0676",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1661,
   "name": "action_select_poll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1688,
   "name": "r_0698",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1689,
   "name": "b_0699",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1707,
   "name": "b_06AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1713,
   "name": "draw_action_label",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1722,
   "name": "b_06BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1732,
   "name": "j_06C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1742,
   "name": "j_06CE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1756,
   "name": "b_06DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1761,
   "name": "action_names",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1793,
   "name": "install_irq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1848,
   "name": "irq_entry",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1875,
   "name": "b_0753",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1895,
   "name": "irq_panel_band",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1933,
   "name": "irq_scroll_and_exit",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1945,
   "name": "b_0799",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1952,
   "name": "irq_frame_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1961,
   "name": "skip_operand_07A9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2000,
   "name": "irq_clock_tick",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 2014,
   "name": "b_07DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2020,
   "name": "draw_clock",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2095,
   "name": "blink_colon",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2107,
   "name": "b_083B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2109,
   "name": "j_083D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2116,
   "name": "clock_digit_chars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2142,
   "name": "irq_top_band",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2150,
   "name": "set_clock",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2171,
   "name": "scroll_screen_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2204,
   "name": "b_089C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2212,
   "name": "b_08A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2223,
   "name": "b_08AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2226,
   "name": "b_08B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2251,
   "name": "b_08CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2266,
   "name": "b_08DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2274,
   "name": "b_08E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2287,
   "name": "b_08EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2290,
   "name": "shift_map_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2298,
   "name": "j_08FA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2450,
   "name": "b_0992",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2453,
   "name": "shift_map_right",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2461,
   "name": "j_099D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2611,
   "name": "refill_edge_column",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2618,
   "name": "b_0A3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2648,
   "name": "b_0A58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2667,
   "name": "j_0A6B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2680,
   "name": "b_0A78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2705,
   "name": "r_0A91",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2706,
   "name": "draw_tile_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2743,
   "name": "fetch_tile_chars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2760,
   "name": "b_0AC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2763,
   "name": "j_0ACB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2766,
   "name": "b_0ACE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2787,
   "name": "tile_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2795,
   "name": "b_0AEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2816,
   "name": "write_column_buffer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2825,
   "name": "b_0B09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2827,
   "name": "b_0B0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2874,
   "name": "r_0B3A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2875,
   "name": "build_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2881,
   "name": "b_0B41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2906,
   "name": "b_0B5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2933,
   "name": "b_0B75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3000,
   "name": "playfield_colour_fill",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3050,
   "name": "playfield_row_pointers",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3056,
   "name": "room_row_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3057,
   "name": "f_0BF1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3062,
   "name": "action_search",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3068,
   "name": "b_0BFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3074,
   "name": "b_0C02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3083,
   "name": "b_0C0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3117,
   "name": "mode_search_finish",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3123,
   "name": "b_0C33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3141,
   "name": "b_0C45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3154,
   "name": "b_0C52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3161,
   "name": "b_0C59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3198,
   "name": "b_0C7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3206,
   "name": "b_0C86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3252,
   "name": "b_0CB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3275,
   "name": "b_0CCB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3322,
   "name": "j_0CFA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3336,
   "name": "b_0D08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3351,
   "name": "b_0D17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3364,
   "name": "clear_mode",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3369,
   "name": "queue_prompt",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3374,
   "name": "locate_player_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3407,
   "name": "b_0D4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3426,
   "name": "find_objects_here",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3444,
   "name": "b_0D74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3457,
   "name": "b_0D81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3467,
   "name": "b_0D8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3473,
   "name": "b_0D91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3481,
   "name": "b_0D99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3489,
   "name": "j_0DA1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3498,
   "name": "b_0DAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3509,
   "name": "b_0DB5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3530,
   "name": "check_container_unlocked",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3539,
   "name": "b_0DD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3552,
   "name": "b_0DE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3554,
   "name": "b_0DE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3564,
   "name": "queue_message_raw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3567,
   "name": "queue_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3573,
   "name": "queue_object_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3579,
   "name": "queue_description_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3585,
   "name": "message_enqueue",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3595,
   "name": "message_start",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3607,
   "name": "b_0E17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3629,
   "name": "b_0E2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3637,
   "name": "b_0E35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3647,
   "name": "b_0E3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3656,
   "name": "message_print_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3667,
   "name": "b_0E53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3673,
   "name": "b_0E59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3708,
   "name": "b_0E7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3715,
   "name": "b_0E83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3727,
   "name": "message_dequeue",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3733,
   "name": "b_0E95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3758,
   "name": "b_0EAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3762,
   "name": "b_0EB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3775,
   "name": "text_messages",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4769,
   "name": "text_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5437,
   "name": "searchable_tile_ids",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5480,
   "name": "object_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5481,
   "name": "f_1569",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5482,
   "name": "f_156A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5483,
   "name": "f_156B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5544,
   "name": "a_15A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5560,
   "name": "a_15B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5564,
   "name": "container_columns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5572,
   "name": "container_bit_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5580,
   "name": "terminal_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5581,
   "name": "f_15CD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5582,
   "name": "f_15CE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5610,
   "name": "initial_sprite_registers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5627,
   "name": "add_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5657,
   "name": "draw_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5692,
   "name": "draw_bcd_byte",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5703,
   "name": "draw_big_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5729,
   "name": "utilise_option_messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5732,
   "name": "utilise_setup_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5733,
   "name": "f_1665",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5738,
   "name": "action_utilise",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5744,
   "name": "b_1670",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5765,
   "name": "b_1685",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5793,
   "name": "mode_utilise_menu",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5799,
   "name": "b_16A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5810,
   "name": "b_16B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5841,
   "name": "b_16D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5849,
   "name": "b_16D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5888,
   "name": "b_1700",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5896,
   "name": "mode_hide_select",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5902,
   "name": "b_170E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5913,
   "name": "b_1719",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5954,
   "name": "b_1742",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5962,
   "name": "b_174A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5978,
   "name": "mode_hide_do",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5991,
   "name": "b_1767",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5997,
   "name": "b_176D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6015,
   "name": "b_177F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6043,
   "name": "b_179B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6120,
   "name": "mode_input_select",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6126,
   "name": "b_17EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6137,
   "name": "b_17F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6181,
   "name": "b_1825",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6189,
   "name": "b_182D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6205,
   "name": "mode_input_do",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6218,
   "name": "b_184A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6224,
   "name": "b_1850",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6226,
   "name": "b_1852",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6248,
   "name": "b_1868",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6256,
   "name": "b_1870",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6285,
   "name": "mode_describe_select",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6291,
   "name": "b_1893",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6302,
   "name": "b_189E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6338,
   "name": "b_18C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6349,
   "name": "b_18CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6365,
   "name": "mode_describe_do",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6378,
   "name": "b_18EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6384,
   "name": "b_18F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6399,
   "name": "action_laser",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6408,
   "name": "j_1908",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6427,
   "name": "b_191B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6433,
   "name": "b_1921",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6446,
   "name": "r_192E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6447,
   "name": "action_jump",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6456,
   "name": "j_1938",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6475,
   "name": "b_194B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6481,
   "name": "b_1951",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6503,
   "name": "jump_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6515,
   "name": "b_1973",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6554,
   "name": "b_199A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6565,
   "name": "j_19A5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6596,
   "name": "b_19C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6602,
   "name": "jump_arc",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6617,
   "name": "key_pressed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6660,
   "name": "b_1A04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6661,
   "name": "j_1A05",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6675,
   "name": "key_row_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6683,
   "name": "joystick_decode_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6715,
   "name": "mode_walk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6725,
   "name": "b_1A45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6735,
   "name": "b_1A4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6766,
   "name": "r_1A6E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6767,
   "name": "b_1A6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6807,
   "name": "b_1A97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6830,
   "name": "b_1AAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6842,
   "name": "r_1ABA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6843,
   "name": "b_1ABB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6859,
   "name": "j_1ACB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6884,
   "name": "b_1AE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6896,
   "name": "set_walk_frame_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6912,
   "name": "b_1B00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6924,
   "name": "j_1B0C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6937,
   "name": "reset_anim_timer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6943,
   "name": "walk_frame_advance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6956,
   "name": "b_1B2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6962,
   "name": "b_1B32",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6975,
   "name": "set_frame_table",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6993,
   "name": "write_frame_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7009,
   "name": "walk_collision_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7082,
   "name": "j_1BAA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7090,
   "name": "b_1BB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7096,
   "name": "b_1BB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7105,
   "name": "walk_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7106,
   "name": "f_1BC2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7125,
   "name": "sprite_contact_check",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7151,
   "name": "b_1BEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7169,
   "name": "b_1C01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7187,
   "name": "sprite_height_difference",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7195,
   "name": "b_1C1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7200,
   "name": "b_1C20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7214,
   "name": "walk_step_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7215,
   "name": "f_1C2F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7234,
   "name": "walk_frame_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7244,
   "name": "f_1C4C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7245,
   "name": "f_1C4D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7264,
   "name": "f_1C60",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7265,
   "name": "f_1C61",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7290,
   "name": "f_1C7A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7302,
   "name": "f_1C86",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7312,
   "name": "scroll_message_window",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7314,
   "name": "b_1C92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7349,
   "name": "input_key_drawer",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7418,
   "name": "input_lock_check",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7423,
   "name": "j_1CFF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7432,
   "name": "b_1D08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7482,
   "name": "b_1D3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7491,
   "name": "b_1D43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7504,
   "name": "b_1D50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7517,
   "name": "j_1D5D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7527,
   "name": "b_1D67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7560,
   "name": "b_1D88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7573,
   "name": "input_terminal_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7583,
   "name": "b_1D9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7596,
   "name": "j_1DAC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7616,
   "name": "b_1DC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7619,
   "name": "input_terminal_computer",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7638,
   "name": "b_1DD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7646,
   "name": "b_1DDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7669,
   "name": "b_1DF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7692,
   "name": "b_1E0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7722,
   "name": "b_1E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7738,
   "name": "b_1E3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7754,
   "name": "b_1E4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7775,
   "name": "b_1E5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7784,
   "name": "b_1E68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7789,
   "name": "b_1E6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7800,
   "name": "b_1E78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7816,
   "name": "j_1E88",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7832,
   "name": "draw_panel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7834,
   "name": "b_1E9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7878,
   "name": "draw_picture_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7894,
   "name": "b_1ED6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7908,
   "name": "energy_drain_step",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7913,
   "name": "b_1EE9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7919,
   "name": "b_1EEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7954,
   "name": "b_1F12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7962,
   "name": "b_1F1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7972,
   "name": "b_1F24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7976,
   "name": "shield_drain_step",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7981,
   "name": "b_1F2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7987,
   "name": "b_1F33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8022,
   "name": "b_1F56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8030,
   "name": "b_1F5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8040,
   "name": "b_1F68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8044,
   "name": "b_1F6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8050,
   "name": "check_time_limit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8062,
   "name": "read_tenths",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8066,
   "name": "b_1F82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8084,
   "name": "check_position_alarm",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8110,
   "name": "r_1FAE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8111,
   "name": "b_1FAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8124,
   "name": "r_1FBC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8125,
   "name": "check_exit_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8141,
   "name": "r_1FCD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8142,
   "name": "b_1FCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8152,
   "name": "check_laser_pickup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8205,
   "name": "r_200D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8206,
   "name": "b_200E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8218,
   "name": "check_countdown",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8237,
   "name": "b_202D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8249,
   "name": "r_2039",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8250,
   "name": "timed_event",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8302,
   "name": "bcd_digit_to_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8319,
   "name": "b_207F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8323,
   "name": "enemy_walk_twice",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8326,
   "name": "enemy_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8339,
   "name": "b_2093",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8359,
   "name": "b_20A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8387,
   "name": "b_20C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8401,
   "name": "b_20D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8410,
   "name": "b_20DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8434,
   "name": "b_20F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8460,
   "name": "b_210C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8486,
   "name": "b_2126",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8519,
   "name": "r_2147",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8520,
   "name": "b_2148",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8529,
   "name": "b_2151",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8547,
   "name": "reset_enemy_timer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8553,
   "name": "j_2169",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8559,
   "name": "enemy_enter_leave",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8567,
   "name": "b_2177",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8582,
   "name": "b_2186",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8592,
   "name": "r_2190",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8593,
   "name": "b_2191",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8609,
   "name": "j_21A1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8618,
   "name": "b_21AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8621,
   "name": "b_21AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8632,
   "name": "b_21B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8651,
   "name": "enemy_columns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8655,
   "name": "pause_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8667,
   "name": "r_21DB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8668,
   "name": "b_21DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8691,
   "name": "j_21F3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8706,
   "name": "b_2202",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8729,
   "name": "check_decoy_parts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8738,
   "name": "b_2222",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8747,
   "name": "j_222B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8764,
   "name": "b_223C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8781,
   "name": "b_224D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8782,
   "name": "b_224E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8794,
   "name": "decoy_parts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8798,
   "name": "idle_drain_loop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8805,
   "name": "b_2265",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8828,
   "name": "guard_logic",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8834,
   "name": "b_2282",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8840,
   "name": "b_2288",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8869,
   "name": "b_22A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8874,
   "name": "b_22AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8886,
   "name": "b_22B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8901,
   "name": "b_22C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8911,
   "name": "r_22CF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8912,
   "name": "guard_right_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8946,
   "name": "b_22F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8997,
   "name": "b_2325",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9010,
   "name": "r_2332",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9011,
   "name": "guard_left_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9045,
   "name": "b_2355",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9089,
   "name": "b_2381",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9102,
   "name": "capture_ending",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9110,
   "name": "guard_right_animate",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9122,
   "name": "b_23A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9149,
   "name": "b_23BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9165,
   "name": "b_23CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9168,
   "name": "r_23D0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9169,
   "name": "guard_left_animate",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9181,
   "name": "b_23DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9208,
   "name": "guard_walk_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9212,
   "name": "f_23FC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9216,
   "name": "reset_game_state",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9224,
   "name": "b_2408",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9234,
   "name": "b_2412",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9249,
   "name": "b_2421",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9270,
   "name": "check_exit_alarm",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9295,
   "name": "r_244F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9296,
   "name": "b_2450",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9302,
   "name": "b_2456",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9314,
   "name": "draw_picture_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9321,
   "name": "b_2469",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9368,
   "name": "init_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9370,
   "name": "b_249A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9383,
   "name": "b_24A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9401,
   "name": "sprite_start_registers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9417,
   "name": "f_24C9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9425,
   "name": "f_24D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9433,
   "name": "check_time_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9440,
   "name": "b_24E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9447,
   "name": "b_24E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9461,
   "name": "walk_off_screen",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9481,
   "name": "b_2509",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9508,
   "name": "j_2524",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9514,
   "name": "b_252A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9521,
   "name": "j_2531",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9532,
   "name": "b_253C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9554,
   "name": "b_2552",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9600,
   "name": "j_2580",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9606,
   "name": "b_2586",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9613,
   "name": "r_258D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9614,
   "name": "award_column_bonus",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9641,
   "name": "r_25A9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9642,
   "name": "part_one_complete",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9659,
   "name": "b_25BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9683,
   "name": "b_25D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9707,
   "name": "wait_240_frames",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9712,
   "name": "b_25F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9719,
   "name": "b_25F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9730,
   "name": "start_values",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9743,
   "name": "f_260F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9764,
   "name": "part_two_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9916,
   "name": "part_two_main_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9957,
   "name": "b_26E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9965,
   "name": "b_26ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9973,
   "name": "b_26F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10007,
   "name": "b_2717",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10013,
   "name": "b_271D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10051,
   "name": "b_2743",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10054,
   "name": "part_two_frame_tail",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10073,
   "name": "install_part_two_irq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10145,
   "name": "part_two_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10172,
   "name": "b_27BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10184,
   "name": "part_two_irq_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10185,
   "name": "f_27C9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10190,
   "name": "part_two_irq_lower_band",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10237,
   "name": "part_two_irq_exit",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10244,
   "name": "part_two_irq_panel",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10278,
   "name": "b_2826",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10286,
   "name": "part_two_irq_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10329,
   "name": "b_2859",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10335,
   "name": "scroll_sprites_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10354,
   "name": "r_2872",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10355,
   "name": "free_slot_if_off_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10366,
   "name": "b_287E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10372,
   "name": "scroll_sprite_slots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10380,
   "name": "b_288C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10388,
   "name": "b_2894",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10391,
   "name": "j_2897",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10407,
   "name": "b_28A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10422,
   "name": "b_28B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10476,
   "name": "part_two_scroll_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10499,
   "name": "b_2903",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10521,
   "name": "draw_tile_column_p2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10530,
   "name": "b_2922",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10559,
   "name": "tile_address_p2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10567,
   "name": "b_2947",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10582,
   "name": "part_two_nmi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10595,
   "name": "b_2963",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10602,
   "name": "b_296A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10614,
   "name": "b_2976",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10679,
   "name": "part_two_scroll_rows_irq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10690,
   "name": "b_29C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10732,
   "name": "b_29EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10818,
   "name": "draw_part_two_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10824,
   "name": "b_2A48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10849,
   "name": "b_2A61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10876,
   "name": "b_2A7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10964,
   "name": "part_two_colour_fill",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11010,
   "name": "b_2B02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11023,
   "name": "init_row_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11025,
   "name": "b_2B11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11041,
   "name": "part_two_row_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11042,
   "name": "f_2B22",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11045,
   "name": "nmi_serial_exit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11073,
   "name": "b_2B41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11087,
   "name": "draw_part_two_status",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11089,
   "name": "b_2B51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11101,
   "name": "clear_screen_blocks",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11105,
   "name": "b_2B61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11121,
   "name": "read_joystick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11136,
   "name": "b_2B80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11139,
   "name": "part_two_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11159,
   "name": "b_2B97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11172,
   "name": "r_2BA4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11173,
   "name": "b_2BA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11185,
   "name": "b_2BB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11206,
   "name": "j_2BC6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11214,
   "name": "b_2BCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11235,
   "name": "b_2BE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11253,
   "name": "b_2BF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11254,
   "name": "j_2BF6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11265,
   "name": "part_two_jump_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11295,
   "name": "b_2C1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11306,
   "name": "r_2C2A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11307,
   "name": "part_two_duck_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11320,
   "name": "part_two_duck_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11326,
   "name": "b_2C3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11353,
   "name": "b_2C59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11363,
   "name": "b_2C63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11379,
   "name": "part_two_walk_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11385,
   "name": "b_2C79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11393,
   "name": "part_two_walk_left_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11408,
   "name": "b_2C90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11414,
   "name": "part_two_walk_right",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11420,
   "name": "b_2C9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11428,
   "name": "part_two_walk_right_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11435,
   "name": "b_2CAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11443,
   "name": "b_2CB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11468,
   "name": "r_2CCC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11469,
   "name": "part_two_up_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11482,
   "name": "b_2CDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11488,
   "name": "part_two_down_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11501,
   "name": "b_2CED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11515,
   "name": "part_two_up_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11528,
   "name": "b_2D08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11534,
   "name": "part_two_down_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11547,
   "name": "b_2D1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11558,
   "name": "start_shot_slots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11560,
   "name": "b_2D28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11573,
   "name": "b_2D35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11580,
   "name": "update_shots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11582,
   "name": "b_2D3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11587,
   "name": "j_2D43",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11593,
   "name": "b_2D49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11625,
   "name": "b_2D69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11650,
   "name": "b_2D82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11658,
   "name": "b_2D8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11666,
   "name": "duck_frame_pick",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11680,
   "name": "b_2DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11686,
   "name": "b_2DA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11695,
   "name": "b_2DAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11702,
   "name": "b_2DB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11710,
   "name": "duck_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11714,
   "name": "spawn_actor_0222",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11723,
   "name": "b_2DCB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11732,
   "name": "actor_0222_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11751,
   "name": "b_2DE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11800,
   "name": "r_2E18",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11801,
   "name": "spawn_event_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11810,
   "name": "b_2E22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11819,
   "name": "actor_0223_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11838,
   "name": "b_2E3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11865,
   "name": "b_2E59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11869,
   "name": "j_2E5D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11888,
   "name": "b_2E70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11898,
   "name": "spawn_event_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11907,
   "name": "b_2E83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11916,
   "name": "actor_0225_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11935,
   "name": "b_2E9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11978,
   "name": "b_2ECA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11988,
   "name": "spawn_event_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11997,
   "name": "b_2EDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12011,
   "name": "actor_0227_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12027,
   "name": "b_2EFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12046,
   "name": "b_2F0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12054,
   "name": "b_2F16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12072,
   "name": "b_2F28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12124,
   "name": "b_2F5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12142,
   "name": "b_2F6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12159,
   "name": "r_2F7F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12160,
   "name": "spawn_event_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12180,
   "name": "actor_0229_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12203,
   "name": "b_2FAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12216,
   "name": "b_2FB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12230,
   "name": "b_2FC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12241,
   "name": "b_2FD1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12293,
   "name": "b_3005",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12301,
   "name": "b_300D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12314,
   "name": "b_301A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12337,
   "name": "r_3031",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12338,
   "name": "move_actor_helper",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12349,
   "name": "b_303D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12361,
   "name": "spawn_group_pair",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12369,
   "name": "actor_022B_group_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12388,
   "name": "b_3064",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12394,
   "name": "b_306A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12396,
   "name": "b_306C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12407,
   "name": "b_3077",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12417,
   "name": "b_3081",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12432,
   "name": "spawn_group_member",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12457,
   "name": "spawn_group",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12465,
   "name": "b_30B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12476,
   "name": "group_pointer_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12477,
   "name": "r_30BD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12478,
   "name": "group_sprite_tables",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12481,
   "name": "f_30C1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 12488,
   "name": "spawn_actor_0230",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12525,
   "name": "actor_0230_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12543,
   "name": "b_30FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12546,
   "name": "j_3102",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12564,
   "name": "b_3114",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12577,
   "name": "b_3121",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12618,
   "name": "b_314A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12636,
   "name": "move_actor_pair",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12658,
   "name": "b_3172",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12668,
   "name": "spawn_chase_pair",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12704,
   "name": "r_31A0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12705,
   "name": "actor_0232_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12736,
   "name": "r_31C0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12737,
   "name": "spawn_actor_0231",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12765,
   "name": "actor_0231_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12784,
   "name": "b_31F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12818,
   "name": "b_3212",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12862,
   "name": "b_323E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12881,
   "name": "move_pair_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12897,
   "name": "move_pair_b5",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12925,
   "name": "spawn_actor_0233",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12934,
   "name": "b_3286",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12960,
   "name": "actor_0233_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12984,
   "name": "b_32B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12999,
   "name": "damage_player",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13002,
   "name": "j_32CA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13007,
   "name": "b_32CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13010,
   "name": "free_slot_and_damage",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13018,
   "name": "spawn_actor_0235",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13051,
   "name": "r_32FB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13052,
   "name": "actor_0235_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13088,
   "name": "b_3320",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13103,
   "name": "spawn_overlay_actor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13125,
   "name": "overlay_actor_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13148,
   "name": "spawn_actor_0236",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13180,
   "name": "actor_0236_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13216,
   "name": "b_33A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13228,
   "name": "spawn_event_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13243,
   "name": "actor_023A_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13255,
   "name": "b_33C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13265,
   "name": "spawn_event_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13274,
   "name": "b_33DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13283,
   "name": "actor_023D_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13301,
   "name": "b_33F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13315,
   "name": "b_3403",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13364,
   "name": "b_3434",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13381,
   "name": "b_3445",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13390,
   "name": "b_344E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13414,
   "name": "b_3466",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13423,
   "name": "r_346F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13424,
   "name": "spawn_event_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13433,
   "name": "b_3479",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13442,
   "name": "actor_0226_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13461,
   "name": "b_3495",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13504,
   "name": "b_34C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13514,
   "name": "spawn_event_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13523,
   "name": "b_34D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13532,
   "name": "actor_023F_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13551,
   "name": "b_34EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13602,
   "name": "r_3522",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13603,
   "name": "spawn_event_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13612,
   "name": "b_352C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13621,
   "name": "actor_0240_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13640,
   "name": "b_3548",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13691,
   "name": "r_357B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13692,
   "name": "spawn_event_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13707,
   "name": "actor_0244_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13719,
   "name": "b_3597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13729,
   "name": "spawn_event_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13738,
   "name": "b_35AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13747,
   "name": "actor_0242_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13781,
   "name": "b_35D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13793,
   "name": "b_35E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13802,
   "name": "b_35EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13836,
   "name": "b_360C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13847,
   "name": "r_3617",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13848,
   "name": "move_sprite_slot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13867,
   "name": "j_362B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13873,
   "name": "b_3631",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13881,
   "name": "b_3639",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13893,
   "name": "b_3645",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13901,
   "name": "b_364D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13912,
   "name": "b_3658",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13923,
   "name": "alloc_sprite_slot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13926,
   "name": "b_3666",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13939,
   "name": "b_3673",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13963,
   "name": "b_368B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13975,
   "name": "slots_to_vic",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13979,
   "name": "b_369B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14013,
   "name": "animation_clocks",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14035,
   "name": "b_36D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14048,
   "name": "b_36E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14061,
   "name": "b_36ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14074,
   "name": "b_36FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14077,
   "name": "r_36FD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14078,
   "name": "run_actors",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14086,
   "name": "b_3706",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14094,
   "name": "b_370E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14102,
   "name": "b_3716",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14110,
   "name": "b_371E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14121,
   "name": "b_3729",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14129,
   "name": "j_3731",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14140,
   "name": "b_373C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14148,
   "name": "j_3744",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14156,
   "name": "b_374C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14164,
   "name": "b_3754",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14172,
   "name": "b_375C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14180,
   "name": "b_3764",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14188,
   "name": "b_376C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14196,
   "name": "b_3774",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14204,
   "name": "b_377C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14215,
   "name": "b_3787",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14223,
   "name": "j_378F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14231,
   "name": "b_3797",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14239,
   "name": "b_379F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14247,
   "name": "b_37A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14255,
   "name": "b_37AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14257,
   "name": "b_37B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14268,
   "name": "b_37BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14273,
   "name": "j_37C1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14281,
   "name": "b_37C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14291,
   "name": "r_37D3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14292,
   "name": "slot_x_position",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14301,
   "name": "draw_scenery_animation_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14306,
   "name": "b_37E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14324,
   "name": "b_37F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14331,
   "name": "draw_scenery_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14373,
   "name": "r_3825",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14374,
   "name": "scenery_frames_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14375,
   "name": "f_3827",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14376,
   "name": "f_3828",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14377,
   "name": "f_3829",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14386,
   "name": "f_3832",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14394,
   "name": "draw_scenery_animation_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14399,
   "name": "b_383F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14417,
   "name": "b_3851",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14424,
   "name": "draw_scenery_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14469,
   "name": "scenery_frames_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14470,
   "name": "f_3886",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14471,
   "name": "f_3887",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14472,
   "name": "f_3888",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14481,
   "name": "f_3891",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14489,
   "name": "check_exit_blocked",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14533,
   "name": "b_38C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14541,
   "name": "b_38CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14547,
   "name": "maybe_stop_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14555,
   "name": "r_38DB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14569,
   "name": "r_38E9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14588,
   "name": "r_38FC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14629,
   "name": "b_3925",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14662,
   "name": "ground_type_under_player",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14672,
   "name": "sinking_animation",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14678,
   "name": "b_3956",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14716,
   "name": "b_397C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14730,
   "name": "b_398A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14757,
   "name": "b_39A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14799,
   "name": "copy_sprite_block",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14811,
   "name": "b_39DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14826,
   "name": "copy_sprite_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14829,
   "name": "sprite_copy_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14830,
   "name": "sprite_copy_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14837,
   "name": "part_two_win_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14854,
   "name": "b_3A06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14862,
   "name": "end_sequence_wait",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14884,
   "name": "b_3A24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14887,
   "name": "b_3A27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15031,
   "name": "b_3AB7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15037,
   "name": "set_player_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15043,
   "name": "b_3AC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15061,
   "name": "b_3AD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15072,
   "name": "end_sequence_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15073,
   "name": "f_3AE1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 15084,
   "name": "player_fire",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15093,
   "name": "b_3AF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15099,
   "name": "b_3AFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15114,
   "name": "b_3B0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15119,
   "name": "start_laser_shot",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15147,
   "name": "update_laser_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15162,
   "name": "r_3B3A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15163,
   "name": "draw_ending_block",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15165,
   "name": "b_3B3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15186,
   "name": "b_3B52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15216,
   "name": "r_3B70",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15217,
   "name": "laser_graphic",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15241,
   "name": "chase_trigger",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15251,
   "name": "b_3B93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15260,
   "name": "b_3B9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15271,
   "name": "b_3BA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15312,
   "name": "b_3BD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15318,
   "name": "b_3BD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15327,
   "name": "b_3BDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15330,
   "name": "b_3BE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15334,
   "name": "b_3BE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15345,
   "name": "slot_animations",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15358,
   "name": "b_3BFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15363,
   "name": "j_3C03",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15368,
   "name": "r_3C08",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15369,
   "name": "b_3C09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15400,
   "name": "b_3C28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15414,
   "name": "any_effects_active",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15416,
   "name": "b_3C38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15428,
   "name": "r_3C44",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15429,
   "name": "spawn_two_actors",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15462,
   "name": "move_pair_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15475,
   "name": "sound_timer_loop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15482,
   "name": "b_3C7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15493,
   "name": "sound_timer_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15507,
   "name": "sound_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15518,
   "name": "sound_step_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15533,
   "name": "b_3CAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15551,
   "name": "b_3CBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15558,
   "name": "b_3CC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15583,
   "name": "colour_bar_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15608,
   "name": "b_3CF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15638,
   "name": "b_3D16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15723,
   "name": "b_3D6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15742,
   "name": "b_3D7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15840,
   "name": "stale_code_copy",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "part1_map_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16640,
   "name": "part1_map_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16896,
   "name": "part1_map_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17152,
   "name": "part2_start_screen",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17312,
   "name": "part2_char_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17384,
   "name": "mode_handler_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17385,
   "name": "f_43E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17408,
   "name": "part2_map_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17664,
   "name": "part2_map_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17920,
   "name": "part2_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18944,
   "name": "part2_tiles_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19968,
   "name": "part2_tiles_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "part1_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "part1_tiles_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "part1_tiles_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23504,
   "name": "row_pointer_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23520,
   "name": "f_5BE0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23536,
   "name": "f_5BF0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23537,
   "name": "f_5BF1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23542,
   "name": "f_5BF6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 23552,
   "name": "title_picture_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "title_picture_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25600,
   "name": "title_picture_bitmap_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "title_picture_bitmap_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "title_picture_bitmap_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "title_picture_bitmap_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29696,
   "name": "title_picture_bitmap_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "title_picture_bitmap_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "title_picture_bitmap_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32576,
   "name": "picture_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "picture_tail_upper",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33600,
   "name": "picture_tail_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33762,
   "name": "f_83E2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33768,
   "name": "high_score_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33769,
   "name": "f_83E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33770,
   "name": "f_83EA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33771,
   "name": "f_83EB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33772,
   "name": "f_83EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33773,
   "name": "f_83ED",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33828,
   "name": "title_colour_data",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33834,
   "name": "f_842A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33840,
   "name": "f_8430",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33846,
   "name": "a_8436",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33847,
   "name": "a_8437",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33848,
   "name": "f_8438",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33849,
   "name": "f_8439",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33850,
   "name": "a_843A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33851,
   "name": "a_843B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33852,
   "name": "a_843C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33853,
   "name": "a_843D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33854,
   "name": "a_843E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33855,
   "name": "a_843F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33856,
   "name": "a_8440",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33857,
   "name": "a_8441",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33863,
   "name": "a_8447",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33864,
   "name": "char_colours_part1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34120,
   "name": "title_picture_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34370,
   "name": "f_8642",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34620,
   "name": "f_873C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34870,
   "name": "f_8836",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35120,
   "name": "s_8930",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 35126,
   "name": "part_two_column_events",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35132,
   "name": "b_893C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35138,
   "name": "b_8942",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35147,
   "name": "b_894B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35163,
   "name": "b_895B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35171,
   "name": "b_8963",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35182,
   "name": "part2_event_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35438,
   "name": "part2_event_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35439,
   "name": "f_8A6F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35470,
   "name": "look_up_ground",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35485,
   "name": "b_8A9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35490,
   "name": "look_up_ground_row",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35548,
   "name": "terrain_dispatch",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35563,
   "name": "r_8AEB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35564,
   "name": "row_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35567,
   "name": "terrain_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35568,
   "name": "f_8AF0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35583,
   "name": "terrain_type_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35616,
   "name": "a_8B20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35839,
   "name": "part2_unknown_tables",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36752,
   "name": "sprite_frame_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36762,
   "name": "f_8F9A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36766,
   "name": "f_8F9E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36769,
   "name": "f_8FA1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36772,
   "name": "f_8FA4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36775,
   "name": "f_8FA7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36777,
   "name": "f_8FA9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36779,
   "name": "f_8FAB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36781,
   "name": "f_8FAD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36783,
   "name": "f_8FAF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36789,
   "name": "f_8FB5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36791,
   "name": "f_8FB7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36793,
   "name": "f_8FB9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36796,
   "name": "f_8FBC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36798,
   "name": "f_8FBE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36800,
   "name": "f_8FC0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36802,
   "name": "f_8FC2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36804,
   "name": "f_8FC4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36806,
   "name": "f_8FC6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36808,
   "name": "jump_arc_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36840,
   "name": "part2_walk_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36841,
   "name": "f_8FE9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36872,
   "name": "part2_walk_data",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37120,
   "name": "panel_characters",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37187,
   "name": "s_9143",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 37300,
   "name": "f_91B4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37480,
   "name": "picture_characters",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37720,
   "name": "f_9358",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37960,
   "name": "char_colours_part2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 38216,
   "name": "boot_entry",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38227,
   "name": "b_9553",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38241,
   "name": "attract_mode",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38311,
   "name": "b_95A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38325,
   "name": "b_95B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38335,
   "name": "b_95BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38345,
   "name": "b_95C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38384,
   "name": "attract_cycle_call",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38385,
   "name": "attract_cycle_operand_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 38386,
   "name": "attract_cycle_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 38390,
   "name": "f_95F6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38391,
   "name": "f_95F7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38396,
   "name": "attract_irq_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38455,
   "name": "attract_screen_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38474,
   "name": "b_964A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38521,
   "name": "attract_bitmap_show",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38524,
   "name": "b_967C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38583,
   "name": "intro_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38600,
   "name": "b_96C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38630,
   "name": "f_96E6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38631,
   "name": "f_96E7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38638,
   "name": "intro_script_steps",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38715,
   "name": "b_973B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38723,
   "name": "b_9743",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38732,
   "name": "flash_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38738,
   "name": "b_9752",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38750,
   "name": "flash_table_first_entry",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 38751,
   "name": "flash_values",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38754,
   "name": "part_one_prepare",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38764,
   "name": "b_976C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38813,
   "name": "part_one_intro_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38830,
   "name": "b_97AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38852,
   "name": "f_97C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38853,
   "name": "f_97C5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38856,
   "name": "intro_steps_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38887,
   "name": "b_97E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38896,
   "name": "game_over_scores",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38901,
   "name": "b_97F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38930,
   "name": "j_9812",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38945,
   "name": "b_9821",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38955,
   "name": "b_982B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38977,
   "name": "b_9841",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38982,
   "name": "b_9846",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39051,
   "name": "copy_table_byte",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39059,
   "name": "attract_irq_install",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39104,
   "name": "attract_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39130,
   "name": "attract_irq_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39131,
   "name": "f_98DB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39138,
   "name": "attract_irq_handler_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39150,
   "name": "b_98EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39156,
   "name": "attract_irq_handler_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39171,
   "name": "attract_irq_handler_c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39186,
   "name": "attract_irq_handler_d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39213,
   "name": "b_992D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39225,
   "name": "draw_score_pair",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39250,
   "name": "rotate_colour_table",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39256,
   "name": "b_9958",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39272,
   "name": "attract_colour_fill",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39274,
   "name": "b_996A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39345,
   "name": "high_score_heading",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39357,
   "name": "enter_initials",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39380,
   "name": "b_99D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39400,
   "name": "b_99E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39408,
   "name": "b_99F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39419,
   "name": "b_99FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39436,
   "name": "initial_next_letter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39450,
   "name": "b_9A1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39456,
   "name": "initial_previous_letter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39470,
   "name": "b_9A2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39476,
   "name": "draw_high_score_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39478,
   "name": "b_9A36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39493,
   "name": "b_9A45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39552,
   "name": "b_9A80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39651,
   "name": "attract_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39738,
   "name": "abort_key_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39743,
   "name": "start_hit_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39757,
   "name": "b_9B4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39759,
   "name": "music_work_area",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39936,
   "name": "voice1_command_table",
   "type": "Pointer",
   "kind": "user"
  },
  {
   "address": 39988,
   "name": "voice2_command_table",
   "type": "Pointer",
   "kind": "user"
  },
  {
   "address": 40040,
   "name": "voice_table_spare",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40044,
   "name": "voice3_command_table",
   "type": "Pointer",
   "kind": "user"
  },
  {
   "address": 40096,
   "name": "f_9CA0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40097,
   "name": "f_9CA1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40098,
   "name": "a_9CA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40099,
   "name": "a_9CA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40100,
   "name": "a_9CA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40101,
   "name": "a_9CA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40102,
   "name": "a_9CA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40103,
   "name": "a_9CA7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40104,
   "name": "a_9CA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40105,
   "name": "a_9CA9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40106,
   "name": "a_9CAA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40107,
   "name": "a_9CAB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40108,
   "name": "a_9CAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40109,
   "name": "f_9CAD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40110,
   "name": "a_9CAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40111,
   "name": "a_9CAF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40112,
   "name": "a_9CB0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40113,
   "name": "f_9CB1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40114,
   "name": "a_9CB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40115,
   "name": "a_9CB3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40116,
   "name": "a_9CB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40117,
   "name": "a_9CB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40118,
   "name": "a_9CB6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40119,
   "name": "a_9CB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40120,
   "name": "f_9CB8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40121,
   "name": "a_9CB9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40122,
   "name": "a_9CBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40123,
   "name": "a_9CBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40124,
   "name": "a_9CBC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40125,
   "name": "f_9CBD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40126,
   "name": "f_9CBE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40133,
   "name": "f_9CC5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40134,
   "name": "f_9CC6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40141,
   "name": "f_9CCD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40142,
   "name": "f_9CCE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40149,
   "name": "f_9CD5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40150,
   "name": "f_9CD6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40151,
   "name": "a_9CD7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40152,
   "name": "a_9CD8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40153,
   "name": "a_9CD9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40154,
   "name": "a_9CDA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40155,
   "name": "a_9CDB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40156,
   "name": "a_9CDC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40157,
   "name": "a_9CDD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40158,
   "name": "a_9CDE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40159,
   "name": "a_9CDF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40160,
   "name": "a_9CE0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40161,
   "name": "a_9CE1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40162,
   "name": "a_9CE2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40163,
   "name": "a_9CE3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40164,
   "name": "a_9CE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40165,
   "name": "a_9CE5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40166,
   "name": "a_9CE6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40167,
   "name": "a_9CE7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40168,
   "name": "a_9CE8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40169,
   "name": "a_9CE9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40170,
   "name": "a_9CEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40171,
   "name": "a_9CEB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40172,
   "name": "a_9CEC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40173,
   "name": "f_9CED",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40174,
   "name": "a_9CEE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40175,
   "name": "a_9CEF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40176,
   "name": "a_9CF0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40177,
   "name": "a_9CF1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40178,
   "name": "f_9CF2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40179,
   "name": "f_9CF3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40186,
   "name": "f_9CFA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40187,
   "name": "f_9CFB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40194,
   "name": "f_9D02",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40195,
   "name": "f_9D03",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40202,
   "name": "f_9D0A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40203,
   "name": "f_9D0B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40204,
   "name": "a_9D0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40205,
   "name": "a_9D0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40206,
   "name": "a_9D0E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40207,
   "name": "a_9D0F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40208,
   "name": "a_9D10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40209,
   "name": "a_9D11",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40210,
   "name": "a_9D12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40211,
   "name": "a_9D13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40212,
   "name": "a_9D14",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40213,
   "name": "a_9D15",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40214,
   "name": "a_9D16",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40215,
   "name": "a_9D17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40216,
   "name": "a_9D18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40217,
   "name": "a_9D19",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40218,
   "name": "a_9D1A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40219,
   "name": "a_9D1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40220,
   "name": "a_9D1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40221,
   "name": "a_9D1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40222,
   "name": "a_9D1E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40223,
   "name": "a_9D1F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40224,
   "name": "a_9D20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40225,
   "name": "a_9D21",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40226,
   "name": "f_9D22",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40227,
   "name": "a_9D23",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40228,
   "name": "a_9D24",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40229,
   "name": "a_9D25",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40230,
   "name": "a_9D26",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40231,
   "name": "f_9D27",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40232,
   "name": "f_9D28",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40239,
   "name": "f_9D2F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40240,
   "name": "f_9D30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40247,
   "name": "f_9D37",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40248,
   "name": "f_9D38",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40255,
   "name": "f_9D3F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40263,
   "name": "f_9D47",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40271,
   "name": "a_9D4F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40272,
   "name": "a_9D50",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40273,
   "name": "a_9D51",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40274,
   "name": "a_9D52",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40275,
   "name": "a_9D53",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40276,
   "name": "a_9D54",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40277,
   "name": "a_9D55",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40278,
   "name": "a_9D56",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40279,
   "name": "a_9D57",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40280,
   "name": "a_9D58",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40281,
   "name": "a_9D59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40282,
   "name": "a_9D5A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40283,
   "name": "a_9D5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40284,
   "name": "a_9D5C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40285,
   "name": "a_9D5D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40286,
   "name": "a_9D5E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40287,
   "name": "a_9D5F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40288,
   "name": "a_9D60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40289,
   "name": "a_9D61",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40290,
   "name": "a_9D62",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40291,
   "name": "a_9D63",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40292,
   "name": "a_9D64",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40293,
   "name": "f_9D65",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40294,
   "name": "f_9D66",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40295,
   "name": "a_9D67",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40296,
   "name": "a_9D68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40297,
   "name": "a_9D69",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40298,
   "name": "a_9D6A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40299,
   "name": "a_9D6B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40300,
   "name": "a_9D6C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40301,
   "name": "a_9D6D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40302,
   "name": "a_9D6E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40303,
   "name": "a_9D6F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40304,
   "name": "a_9D70",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40305,
   "name": "a_9D71",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40306,
   "name": "a_9D72",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40307,
   "name": "a_9D73",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40308,
   "name": "a_9D74",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40309,
   "name": "a_9D75",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40310,
   "name": "a_9D76",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40311,
   "name": "a_9D77",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40312,
   "name": "a_9D78",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40313,
   "name": "a_9D79",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40314,
   "name": "a_9D7A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40315,
   "name": "a_9D7B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40316,
   "name": "a_9D7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40317,
   "name": "a_9D7D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40318,
   "name": "a_9D7E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40319,
   "name": "a_9D7F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40320,
   "name": "a_9D80",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40321,
   "name": "a_9D81",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40322,
   "name": "a_9D82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40323,
   "name": "a_9D83",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40324,
   "name": "a_9D84",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40325,
   "name": "a_9D85",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40326,
   "name": "a_9D86",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40327,
   "name": "a_9D87",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40328,
   "name": "f_9D88",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40329,
   "name": "f_9D89",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40330,
   "name": "a_9D8A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40331,
   "name": "a_9D8B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40332,
   "name": "a_9D8C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40333,
   "name": "a_9D8D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40334,
   "name": "a_9D8E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40335,
   "name": "a_9D8F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40336,
   "name": "a_9D90",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40337,
   "name": "a_9D91",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40338,
   "name": "a_9D92",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40339,
   "name": "a_9D93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40340,
   "name": "a_9D94",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40341,
   "name": "a_9D95",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40342,
   "name": "a_9D96",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40343,
   "name": "a_9D97",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40344,
   "name": "a_9D98",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40345,
   "name": "a_9D99",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40346,
   "name": "a_9D9A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40347,
   "name": "a_9D9B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40348,
   "name": "a_9D9C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40349,
   "name": "a_9D9D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40350,
   "name": "a_9D9E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40351,
   "name": "a_9D9F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40352,
   "name": "a_9DA0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40353,
   "name": "a_9DA1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40354,
   "name": "a_9DA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40355,
   "name": "a_9DA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40356,
   "name": "a_9DA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40357,
   "name": "a_9DA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40358,
   "name": "a_9DA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40359,
   "name": "a_9DA7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40360,
   "name": "a_9DA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40361,
   "name": "a_9DA9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40362,
   "name": "a_9DAA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40363,
   "name": "f_9DAB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40364,
   "name": "f_9DAC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40365,
   "name": "a_9DAD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40366,
   "name": "a_9DAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40367,
   "name": "a_9DAF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40368,
   "name": "a_9DB0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40369,
   "name": "a_9DB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40370,
   "name": "a_9DB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40371,
   "name": "a_9DB3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40372,
   "name": "a_9DB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40373,
   "name": "a_9DB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40374,
   "name": "a_9DB6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40375,
   "name": "a_9DB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40376,
   "name": "a_9DB8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40377,
   "name": "a_9DB9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40378,
   "name": "a_9DBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40379,
   "name": "a_9DBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40380,
   "name": "a_9DBC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40381,
   "name": "a_9DBD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40382,
   "name": "a_9DBE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40383,
   "name": "a_9DBF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40384,
   "name": "a_9DC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40385,
   "name": "a_9DC1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40386,
   "name": "a_9DC2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40387,
   "name": "a_9DC3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40388,
   "name": "a_9DC4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40389,
   "name": "a_9DC5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40390,
   "name": "a_9DC6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40391,
   "name": "a_9DC7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40392,
   "name": "a_9DC8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40393,
   "name": "a_9DC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40394,
   "name": "a_9DCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40395,
   "name": "a_9DCB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40396,
   "name": "a_9DCC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40397,
   "name": "a_9DCD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40398,
   "name": "a_9DCE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40399,
   "name": "a_9DCF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40400,
   "name": "a_9DD0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40401,
   "name": "f_9DD1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40402,
   "name": "a_9DD2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40403,
   "name": "a_9DD3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40404,
   "name": "a_9DD4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40405,
   "name": "a_9DD5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40406,
   "name": "f_9DD6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40438,
   "name": "f_9DF6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40441,
   "name": "note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40522,
   "name": "note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40625,
   "name": "start_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40647,
   "name": "b_9EC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40699,
   "name": "b_9EFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40715,
   "name": "b_9F0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40716,
   "name": "music_work_byte",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40726,
   "name": "voice1_pw_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40732,
   "name": "voice1_pw_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40749,
   "name": "voice2_pw_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40755,
   "name": "voice2_pw_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40772,
   "name": "voice3_pw_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40778,
   "name": "voice3_pw_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40795,
   "name": "voice1_filter_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40807,
   "name": "voice1_filter_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40832,
   "name": "voice1_pitch_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40842,
   "name": "voice1_pitch_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40867,
   "name": "silence_sid",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40869,
   "name": "b_9FA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40907,
   "name": "voice2_pitch_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40917,
   "name": "voice2_pitch_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40942,
   "name": "voice3_pitch_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40952,
   "name": "voice3_pitch_reset_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40977,
   "name": "v1_cmd_set_transpose",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40985,
   "name": "v1_cmd_call",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41017,
   "name": "v1_cmd_call_machine",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41035,
   "name": "v1_cmd_set_two",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41055,
   "name": "v1_cmd_set_sweep_word",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41075,
   "name": "v1_cmd_copy_block",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41090,
   "name": "b_A082",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41091,
   "name": "v1_copy_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41092,
   "name": "v1_copy_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41104,
   "name": "v1_cmd_loop_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41133,
   "name": "v1_cmd_copy_block_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41146,
   "name": "b_A0BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41147,
   "name": "v1_copy14_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41148,
   "name": "v1_copy14_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41158,
   "name": "v1_cmd_goto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41171,
   "name": "v1_cmd_filter_none",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41193,
   "name": "v1_cmd_set_pitch_mode",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41205,
   "name": "v1_cmd_set_one",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41217,
   "name": "v1_cmd_loop_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41237,
   "name": "b_A115",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41243,
   "name": "v1_cmd_return",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41264,
   "name": "b_A130",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41268,
   "name": "v1_cmd_set_sweep_byte",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41280,
   "name": "v1_cmd_load_envelope",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41291,
   "name": "b_A14B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41310,
   "name": "v2_cmd_call",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41362,
   "name": "v2_cmd_set_two",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41382,
   "name": "v2_cmd_copy_block",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41397,
   "name": "b_A1B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41398,
   "name": "v2_copy_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41399,
   "name": "v2_copy_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41411,
   "name": "v2_cmd_loop_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41440,
   "name": "v2_cmd_copy_block_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41453,
   "name": "b_A1ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41454,
   "name": "v2_copy14_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41455,
   "name": "v2_copy14_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41465,
   "name": "v2_cmd_set_transpose",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41470,
   "name": "v2_cmd_goto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41483,
   "name": "v2_cmd_set_pitch_mode",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41495,
   "name": "v2_cmd_set_one",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41507,
   "name": "v2_cmd_loop_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41527,
   "name": "b_A237",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41533,
   "name": "v2_cmd_return",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41554,
   "name": "b_A252",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41567,
   "name": "v2_cmd_set_sweep_byte",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41590,
   "name": "b_A276",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41609,
   "name": "v3_cmd_call",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41661,
   "name": "v3_cmd_set_two",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41681,
   "name": "v3_cmd_copy_block_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41694,
   "name": "b_A2DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41695,
   "name": "v3_copy16_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41696,
   "name": "v3_copy16_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41706,
   "name": "v3_cmd_copy_block",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41721,
   "name": "b_A2F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41722,
   "name": "v3_copy_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41723,
   "name": "v3_copy_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41735,
   "name": "v3_cmd_loop_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41764,
   "name": "v3_cmd_copy_block_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41777,
   "name": "b_A331",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41778,
   "name": "v3_copy14_source_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41779,
   "name": "v3_copy14_source_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41794,
   "name": "v3_cmd_goto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41807,
   "name": "v3_cmd_filter_route",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 41833,
   "name": "v3_cmd_set_one",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41845,
   "name": "v3_cmd_loop_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41865,
   "name": "b_A389",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41871,
   "name": "v3_cmd_return",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41892,
   "name": "b_A3A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41896,
   "name": "v3_cmd_set_sweep_byte",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41908,
   "name": "v3_cmd_set_transpose",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41917,
   "name": "v3_cmd_load_envelope",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41928,
   "name": "b_A3C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41939,
   "name": "filter_sweep_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 41966,
   "name": "r_A3EE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41967,
   "name": "j_A3EF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41968,
   "name": "b_A3F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41988,
   "name": "b_A404",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42008,
   "name": "b_A418",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42028,
   "name": "b_A42C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42036,
   "name": "b_A434",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42045,
   "name": "j_A43D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42046,
   "name": "b_A43E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42052,
   "name": "j_A444",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42079,
   "name": "b_A45F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42094,
   "name": "b_A46E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42100,
   "name": "reset_sweeps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42102,
   "name": "b_A476",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42123,
   "name": "voice1_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42132,
   "name": "r_A494",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42133,
   "name": "b_A495",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42137,
   "name": "j_A499",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42139,
   "name": "j_A49B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42146,
   "name": "v1_next_event",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42161,
   "name": "v1_command_dispatch_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42163,
   "name": "b_A4B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42166,
   "name": "v1_play_note",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 42174,
   "name": "b_A4BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42198,
   "name": "b_A4D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42317,
   "name": "b_A54D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42415,
   "name": "b_A5AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42422,
   "name": "b_A5B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42425,
   "name": "b_A5B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42437,
   "name": "j_A5C5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42451,
   "name": "b_A5D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42463,
   "name": "b_A5DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42466,
   "name": "voice2_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42475,
   "name": "r_A5EB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42476,
   "name": "b_A5EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42480,
   "name": "j_A5F0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42482,
   "name": "j_A5F2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42489,
   "name": "v2_next_event",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42504,
   "name": "v2_command_dispatch_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42506,
   "name": "b_A60A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42509,
   "name": "v2_play_note",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 42517,
   "name": "b_A615",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42543,
   "name": "b_A62F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42662,
   "name": "b_A6A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42760,
   "name": "b_A708",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42767,
   "name": "b_A70F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42770,
   "name": "b_A712",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42782,
   "name": "j_A71E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42796,
   "name": "b_A72C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42808,
   "name": "b_A738",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42811,
   "name": "voice3_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42820,
   "name": "r_A744",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42821,
   "name": "b_A745",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42825,
   "name": "j_A749",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42827,
   "name": "j_A74B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42834,
   "name": "v3_next_event",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42849,
   "name": "v3_command_dispatch_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42851,
   "name": "b_A763",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42854,
   "name": "v3_play_note",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 42862,
   "name": "b_A76E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42872,
   "name": "b_A778",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42892,
   "name": "b_A78C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43011,
   "name": "b_A803",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43109,
   "name": "b_A865",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43116,
   "name": "b_A86C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43119,
   "name": "b_A86F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43131,
   "name": "j_A87B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43145,
   "name": "b_A889",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43157,
   "name": "b_A895",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43159,
   "name": "r_A897",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43160,
   "name": "voice1_effects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43194,
   "name": "b_A8BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43212,
   "name": "b_A8CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43218,
   "name": "j_A8D2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43228,
   "name": "b_A8DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43244,
   "name": "b_A8EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43247,
   "name": "b_A8EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43263,
   "name": "b_A8FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43289,
   "name": "b_A919",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43310,
   "name": "b_A92E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43325,
   "name": "b_A93D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43331,
   "name": "j_A943",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43341,
   "name": "b_A94D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43366,
   "name": "r_A966",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43367,
   "name": "j_A967",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43368,
   "name": "b_A968",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43388,
   "name": "b_A97C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43408,
   "name": "b_A990",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43428,
   "name": "b_A9A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43436,
   "name": "b_A9AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43445,
   "name": "j_A9B5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43446,
   "name": "b_A9B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43456,
   "name": "r_A9C0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43457,
   "name": "b_A9C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43472,
   "name": "b_A9D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43478,
   "name": "voice2_effects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43512,
   "name": "b_A9F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43530,
   "name": "b_AA0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43541,
   "name": "b_AA15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43557,
   "name": "b_AA25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43560,
   "name": "b_AA28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43576,
   "name": "b_AA38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43602,
   "name": "b_AA52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43623,
   "name": "b_AA67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43638,
   "name": "b_AA76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43644,
   "name": "j_AA7C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43654,
   "name": "b_AA86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43683,
   "name": "r_AAA3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43684,
   "name": "b_AAA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43703,
   "name": "b_AAB7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43737,
   "name": "j_AAD9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43738,
   "name": "b_AADA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43758,
   "name": "b_AAEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43778,
   "name": "b_AB02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43798,
   "name": "b_AB16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43806,
   "name": "b_AB1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43815,
   "name": "j_AB27",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43816,
   "name": "b_AB28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43826,
   "name": "r_AB32",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43827,
   "name": "b_AB33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43842,
   "name": "b_AB42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43848,
   "name": "voice3_effects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43882,
   "name": "b_AB6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43900,
   "name": "b_AB7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43911,
   "name": "b_AB87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43927,
   "name": "b_AB97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43930,
   "name": "b_AB9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43952,
   "name": "b_ABB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43978,
   "name": "b_ABCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43999,
   "name": "b_ABDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44014,
   "name": "b_ABEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44020,
   "name": "j_ABF4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44030,
   "name": "b_ABFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44061,
   "name": "r_AC1D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44062,
   "name": "j_AC1E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44063,
   "name": "b_AC1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44083,
   "name": "b_AC33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44103,
   "name": "b_AC47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44123,
   "name": "b_AC5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44131,
   "name": "b_AC63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44140,
   "name": "j_AC6C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44141,
   "name": "b_AC6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44152,
   "name": "b_AC78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44167,
   "name": "b_AC87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44173,
   "name": "any_voice_playing",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44192,
   "name": "tune_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44193,
   "name": "f_ACA1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44258,
   "name": "music_scripts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45282,
   "name": "music_scripts_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46306,
   "name": "music_scripts_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47330,
   "name": "music_scripts_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48354,
   "name": "music_scripts_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "screen_buffers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49231,
   "name": "f_C04F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49232,
   "name": "f_C050",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49246,
   "name": "f_C05E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49271,
   "name": "f_C077",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49272,
   "name": "f_C078",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49311,
   "name": "f_C09F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49312,
   "name": "f_C0A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49322,
   "name": "f_C0AA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49351,
   "name": "f_C0C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49352,
   "name": "f_C0C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49391,
   "name": "f_C0EF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49392,
   "name": "f_C0F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49408,
   "name": "f_C100",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49431,
   "name": "f_C117",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49432,
   "name": "f_C118",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49433,
   "name": "f_C119",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49434,
   "name": "f_C11A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49467,
   "name": "f_C13B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49471,
   "name": "f_C13F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49472,
   "name": "f_C140",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49473,
   "name": "f_C141",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49474,
   "name": "f_C142",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49511,
   "name": "f_C167",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49512,
   "name": "f_C168",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49551,
   "name": "f_C18F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49552,
   "name": "f_C190",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49562,
   "name": "f_C19A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49591,
   "name": "f_C1B7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49592,
   "name": "f_C1B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49593,
   "name": "f_C1B9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49631,
   "name": "f_C1DF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49632,
   "name": "f_C1E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49664,
   "name": "f_C200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49671,
   "name": "f_C207",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49672,
   "name": "f_C208",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49752,
   "name": "f_C258",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49793,
   "name": "f_C281",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49794,
   "name": "f_C282",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49802,
   "name": "f_C28A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49811,
   "name": "f_C293",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49813,
   "name": "f_C295",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49833,
   "name": "f_C2A9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49834,
   "name": "f_C2AA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49855,
   "name": "f_C2BF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49895,
   "name": "f_C2E7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49896,
   "name": "f_C2E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49913,
   "name": "f_C2F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49914,
   "name": "f_C2FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49917,
   "name": "a_C2FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49923,
   "name": "a_C303",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49924,
   "name": "a_C304",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49932,
   "name": "f_C30C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49935,
   "name": "f_C30F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49953,
   "name": "f_C321",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49954,
   "name": "f_C322",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49957,
   "name": "a_C325",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49975,
   "name": "f_C337",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49980,
   "name": "a_C33C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49981,
   "name": "a_C33D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49982,
   "name": "a_C33E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50015,
   "name": "f_C35F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50016,
   "name": "a_C360",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50017,
   "name": "a_C361",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50027,
   "name": "a_C36B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50028,
   "name": "a_C36C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50035,
   "name": "f_C373",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50042,
   "name": "a_C37A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50043,
   "name": "a_C37B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50168,
   "name": "a_C3F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50169,
   "name": "a_C3F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50170,
   "name": "a_C3FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50171,
   "name": "a_C3FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50172,
   "name": "a_C3FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50173,
   "name": "a_C3FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50174,
   "name": "a_C3FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50175,
   "name": "a_C3FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50176,
   "name": "screen_buffers_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51200,
   "name": "character_set_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52224,
   "name": "character_set_a_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52424,
   "name": "a_CCC8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53248,
   "name": "character_set_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53448,
   "name": "a_D0C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 54272,
   "name": "character_set_b_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "character_set_main",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55375,
   "name": "f_D84F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55376,
   "name": "f_D850",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55386,
   "name": "f_D85A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55415,
   "name": "f_D877",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55416,
   "name": "f_D878",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55455,
   "name": "f_D89F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55456,
   "name": "f_D8A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55466,
   "name": "f_D8AA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55495,
   "name": "f_D8C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55496,
   "name": "f_D8C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55535,
   "name": "f_D8EF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55536,
   "name": "f_D8F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55546,
   "name": "f_D8FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55575,
   "name": "f_D917",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55576,
   "name": "f_D918",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55611,
   "name": "f_D93B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55615,
   "name": "f_D93F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55616,
   "name": "f_D940",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55626,
   "name": "f_D94A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55655,
   "name": "f_D967",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55656,
   "name": "f_D968",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55695,
   "name": "f_D98F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55696,
   "name": "f_D990",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55706,
   "name": "f_D99A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55735,
   "name": "f_D9B7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55736,
   "name": "f_D9B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55775,
   "name": "f_D9DF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55776,
   "name": "f_D9E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55786,
   "name": "f_D9EA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55796,
   "name": "f_D9F4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55815,
   "name": "f_DA07",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55816,
   "name": "f_DA08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55866,
   "name": "f_DA3A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55946,
   "name": "f_DA8A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56026,
   "name": "f_DADA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56046,
   "name": "f_DAEE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56106,
   "name": "f_DB2A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56186,
   "name": "f_DB7A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56320,
   "name": "character_set_main_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56797,
   "name": "f_DDDD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57344,
   "name": "sprite_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58368,
   "name": "sprite_shapes_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59392,
   "name": "sprite_shapes_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60416,
   "name": "sprite_shapes_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60543,
   "name": "f_EC7F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60546,
   "name": "f_EC82",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60604,
   "name": "a_ECBC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60605,
   "name": "a_ECBD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60606,
   "name": "a_ECBE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60607,
   "name": "f_ECBF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60608,
   "name": "a_ECC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60609,
   "name": "a_ECC1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60610,
   "name": "f_ECC2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61440,
   "name": "sprite_shapes_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61856,
   "name": "a_F1A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62464,
   "name": "sprite_shapes_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63488,
   "name": "sprite_shapes_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64512,
   "name": "sprite_shapes_8",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 1,
   "type": "line",
   "text": "The processor port. The start-up at $9548 sets it to $35, so I/O is visible and both ROMs are banked out, and the game runs in that configuration."
  },
  {
   "address": 2,
   "type": "line",
   "text": "The raster band counter of the interrupt chain: it counts 2, 1, 0 and indexes the table of band handlers."
  },
  {
   "address": 3,
   "type": "line",
   "text": "Where the raster handlers save the accumulator."
  },
  {
   "address": 4,
   "type": "line",
   "text": "Where the raster handlers save the X register."
  },
  {
   "address": 5,
   "type": "line",
   "text": "Where the raster handlers save the Y register."
  },
  {
   "address": 6,
   "type": "line",
   "text": "Low byte of the pointer to the screen-map cell that the drawing routines are writing."
  },
  {
   "address": 7,
   "type": "line",
   "text": "High byte of the pointer to the screen-map cell that the drawing routines are writing."
  },
  {
   "address": 8,
   "type": "line",
   "text": "Low byte of the pointer to the screen-map column being written by the column writer."
  },
  {
   "address": 9,
   "type": "line",
   "text": "High byte of the pointer to the screen-map column being written by the column writer."
  },
  {
   "address": 10,
   "type": "line",
   "text": "Low byte of the pointer to the text of the message being typed."
  },
  {
   "address": 11,
   "type": "line",
   "text": "High byte of the pointer to the text of the message being typed."
  },
  {
   "address": 14,
   "type": "line",
   "text": "Low byte of the pointer to the colour-map cell being written."
  },
  {
   "address": 15,
   "type": "line",
   "text": "High byte of the pointer to the colour-map cell being written."
  },
  {
   "address": 16,
   "type": "line",
   "text": "Eight screen-row pointers of part two, copied here from $5BD0 by $2B0F."
  },
  {
   "address": 32,
   "type": "line",
   "text": "The stick direction as decoded from CIA1 port A: 0 for none, 1 to 10 for the eight directions and the two vertical ones; bit 4 holds the fire button in part one's read."
  },
  {
   "address": 33,
   "type": "line",
   "text": "The scroll direction: $01 for right, $FF for left, 0 for no scroll step wanted. The raster handler acts on it."
  },
  {
   "address": 34,
   "type": "line",
   "text": "The horizontal scroll value written to the video register $D016; its low three bits are the pixel phase."
  },
  {
   "address": 36,
   "type": "line",
   "text": "Low byte of the pointer to the character data of the tile being drawn."
  },
  {
   "address": 37,
   "type": "line",
   "text": "High byte of the pointer to the character data of the tile being drawn."
  },
  {
   "address": 42,
   "type": "line",
   "text": "Low byte of a general pointer used by the bulk copy and draw routines."
  },
  {
   "address": 43,
   "type": "line",
   "text": "High byte of a general pointer used by the bulk copy and draw routines."
  },
  {
   "address": 44,
   "type": "line",
   "text": "Low byte of the pointer to Johnny's current walk frame table."
  },
  {
   "address": 45,
   "type": "line",
   "text": "High byte of the pointer to Johnny's current walk frame table."
  },
  {
   "address": 46,
   "type": "line",
   "text": "Scratch: the row offset held while a tile column is drawn."
  },
  {
   "address": 48,
   "type": "line",
   "text": "Eight colour-row pointers of part two, copied here from $5BE0 by $2B0F."
  },
  {
   "address": 98,
   "type": "line",
   "text": "Attract mode: counts the raster lines of the colour bars."
  },
  {
   "address": 99,
   "type": "line",
   "text": "Attract mode: index into the colour table that the colour bars cycle through."
  },
  {
   "address": 100,
   "type": "line",
   "text": "Attract mode: the index of the raster handler to run on the next interrupt."
  },
  {
   "address": 133,
   "type": "line",
   "text": "Data at $0085 (zpp_85): read by loader_stack_address."
  },
  {
   "address": 145,
   "type": "line",
   "text": "Data at $0091 (zpa_91): written by playfield_colour_fill, part_two_colour_fill."
  },
  {
   "address": 174,
   "type": "line",
   "text": "Data at $00AE (zpa_AE): written by loader_stack_address."
  },
  {
   "address": 175,
   "type": "line",
   "text": "Data at $00AF (zpa_AF): written by loader_stack_address."
  },
  {
   "address": 189,
   "type": "line",
   "text": "Data at $00BD (zpa_BD): written by playfield_colour_fill, draw_picture_colours, part_two_colour_fill."
  },
  {
   "address": 195,
   "type": "line",
   "text": "Data at $00C3 (zpa_C3): read by loader_stack_address."
  },
  {
   "address": 196,
   "type": "line",
   "text": "Data at $00C4 (zpa_C4): read by loader_stack_address."
  },
  {
   "address": 224,
   "type": "line",
   "text": "Voice 1's script pointer, low byte."
  },
  {
   "address": 225,
   "type": "line",
   "text": "Voice 1's script pointer, high byte."
  },
  {
   "address": 226,
   "type": "line",
   "text": "Voice 2's script pointer, low byte."
  },
  {
   "address": 227,
   "type": "line",
   "text": "Voice 2's script pointer, high byte."
  },
  {
   "address": 228,
   "type": "line",
   "text": "Voice 3's script pointer, low byte."
  },
  {
   "address": 229,
   "type": "line",
   "text": "Voice 3's script pointer, high byte."
  },
  {
   "address": 230,
   "type": "line",
   "text": "Voice 1's note duration counter."
  },
  {
   "address": 231,
   "type": "line",
   "text": "Voice 2's note duration counter."
  },
  {
   "address": 232,
   "type": "line",
   "text": "Voice 3's note duration counter."
  },
  {
   "address": 233,
   "type": "line",
   "text": "Voice 1's subroutine and loop stack depth, counting down from 7."
  },
  {
   "address": 234,
   "type": "line",
   "text": "Voice 2's subroutine and loop stack depth, counting down from 7."
  },
  {
   "address": 235,
   "type": "line",
   "text": "Voice 3's subroutine and loop stack depth, counting down from 7."
  },
  {
   "address": 236,
   "type": "line",
   "text": "Data at $00EC (zpf_EC): written by start_tune, voice3_pitch_reset_b; read by v1_play_note."
  },
  {
   "address": 237,
   "type": "line",
   "text": "Data at $00ED (zpa_ED): written by v1_cmd_load_envelope, v2_cmd_set_transpose, v2_cmd_return; read by v2_play_note."
  },
  {
   "address": 238,
   "type": "line",
   "text": "Data at $00EE (zpa_EE): written by v2_cmd_set_sweep_byte, v3_copy14_source_high, v3_cmd_set_transpose; read by v3_play_note."
  },
  {
   "address": 239,
   "type": "line",
   "text": "Data at $00EF (zpa_EF): written by v1_cmd_call, v1_cmd_load_envelope, v2_cmd_set_sweep_byte, v3_cmd_load_envelope and 4 more; read by v1_cmd_call, v1_cmd_load_envelope, v2_cmd_set_sweep_byte, v3_cmd_load_envelope and 4 more."
  },
  {
   "address": 240,
   "type": "line",
   "text": "Data at $00F0 (zpa_F0): written by v1_cmd_call, v1_cmd_load_envelope, v2_cmd_set_sweep_byte, v3_cmd_load_envelope and 1 more."
  },
  {
   "address": 241,
   "type": "line",
   "text": "Data at $00F1 (zpa_F1): written by voice1_pw_reset_b, v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 242,
   "type": "line",
   "text": "Data at $00F2 (zpa_F2): written by voice1_pw_reset_b, v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 243,
   "type": "line",
   "text": "Data at $00F3 (zpa_F3): written by voice2_pw_reset_b, v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 244,
   "type": "line",
   "text": "Data at $00F4 (zpa_F4): written by voice2_pw_reset_b, v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 245,
   "type": "line",
   "text": "Data at $00F5 (zpa_F5): written by voice3_pw_reset_b, v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 246,
   "type": "line",
   "text": "Data at $00F6 (zpa_F6): written by voice3_pw_reset_b, v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 247,
   "type": "line",
   "text": "Data at $00F7 (zpa_F7): written by voice1_pitch_reset, voice1_effects; read by voice1_effects."
  },
  {
   "address": 248,
   "type": "line",
   "text": "Data at $00F8 (zpa_F8): written by voice1_pitch_reset, voice1_effects; read by voice1_effects."
  },
  {
   "address": 249,
   "type": "line",
   "text": "Data at $00F9 (zpa_F9): written by voice2_pitch_reset, voice2_effects; read by voice2_effects."
  },
  {
   "address": 250,
   "type": "line",
   "text": "Data at $00FA (zpa_FA): written by voice2_pitch_reset, voice2_effects; read by voice2_effects."
  },
  {
   "address": 251,
   "type": "line",
   "text": "Data at $00FB (zpa_FB): written by voice3_pitch_reset, voice3_effects; read by voice3_effects."
  },
  {
   "address": 252,
   "type": "line",
   "text": "Data at $00FC (zpa_FC): written by voice3_pitch_reset, voice3_effects; read by voice3_effects."
  },
  {
   "address": 253,
   "type": "line",
   "text": "Data at $00FD (zpa_FD): written by start_tune; read by start_tune."
  },
  {
   "address": 255,
   "type": "line",
   "text": "The note byte being played, kept for the transposition test."
  },
  {
   "address": 263,
   "type": "line",
   "text": "An address inside the resident loader's copy in the stack page, which the NMI path at $2B25 jumps to; the game's own stack has grown over most of the loader by the time play begins, so what is there is not reliable."
  },
  {
   "address": 512,
   "type": "line",
   "text": "The current mode of the action menu. 0 is walking; the other values index the handler table at $43E8 (search, take, utilise, hide, input and describe steps)."
  },
  {
   "address": 513,
   "type": "line",
   "text": "Fire is held down (set while fire is held)."
  },
  {
   "address": 514,
   "type": "line",
   "text": "Fire was pressed on this pass."
  },
  {
   "address": 515,
   "type": "line",
   "text": "A direction is held down."
  },
  {
   "address": 516,
   "type": "line",
   "text": "A direction was pressed on this pass."
  },
  {
   "address": 517,
   "type": "line",
   "text": "Data at $0205 (a_0205): written by player_move_up, player_move_down; read by player_move_up, player_move_down."
  },
  {
   "address": 518,
   "type": "line",
   "text": "Out-of-energy flag: set to 1 when the energy or shield bar is empty; the main loops then end the game."
  },
  {
   "address": 519,
   "type": "line",
   "text": "Data at $0207 (a_0207): written by player_move_left, walk_right_step."
  },
  {
   "address": 520,
   "type": "line",
   "text": "Number of messages waiting in the queue at $02C4."
  },
  {
   "address": 521,
   "type": "line",
   "text": "Message printing in progress: set while a message is being typed."
  },
  {
   "address": 522,
   "type": "line",
   "text": "How many objects Johnny holds (at most 4)."
  },
  {
   "address": 523,
   "type": "line",
   "text": "One bit for each locked container, set once it has been opened."
  },
  {
   "address": 524,
   "type": "line",
   "text": "One bit for each locked container, set when the wrong key was put in it."
  },
  {
   "address": 525,
   "type": "line",
   "text": "Jump in progress: set during the rising part of the jump arc."
  },
  {
   "address": 526,
   "type": "line",
   "text": "A jump is under way."
  },
  {
   "address": 527,
   "type": "line",
   "text": "Walk step state: 0 standing, positive moving right through the walk animation, negative moving left."
  },
  {
   "address": 528,
   "type": "line",
   "text": "Security flags: bit 0 and bit 4 record the crossing of the checkpoint column and the clearance."
  },
  {
   "address": 529,
   "type": "line",
   "text": "The alarm has gone off."
  },
  {
   "address": 530,
   "type": "line",
   "text": "The decoy has been built; part one is complete."
  },
  {
   "address": 531,
   "type": "line",
   "text": "Enemy robot walk state: 0 stopped, 1 going forward, $FF going back."
  },
  {
   "address": 532,
   "type": "line",
   "text": "Enemy robot direction flag."
  },
  {
   "address": 533,
   "type": "line",
   "text": "Enemy robot step counter."
  },
  {
   "address": 534,
   "type": "line",
   "text": "Enemy robot step timer, counting down from 6."
  },
  {
   "address": 535,
   "type": "line",
   "text": "Data at $0217 (a_0217): written by pause_check; read by irq_band_panel_mid."
  },
  {
   "address": 536,
   "type": "line",
   "text": "The pause key (F7) is being held."
  },
  {
   "address": 537,
   "type": "line",
   "text": "Guard state: 0 none, 1 guard from the right, 2 guard from the left."
  },
  {
   "address": 538,
   "type": "line",
   "text": "Data at $021A (a_021A): written by guard_logic; read by guard_logic."
  },
  {
   "address": 539,
   "type": "line",
   "text": "The map column under Johnny."
  },
  {
   "address": 540,
   "type": "line",
   "text": "Data at $021C (a_021C): written by input_terminal_computer; read by input_terminal_computer."
  },
  {
   "address": 541,
   "type": "line",
   "text": "Data at $021D (a_021D): written by input_terminal_computer; read by input_terminal_computer."
  },
  {
   "address": 542,
   "type": "line",
   "text": "Data at $021E (a_021E): written by check_exit_alarm; read by check_exit_alarm."
  },
  {
   "address": 543,
   "type": "line",
   "text": "Data at $021F (a_021F): written by award_column_bonus; read by award_column_bonus."
  },
  {
   "address": 544,
   "type": "line",
   "text": "Data at $0220 (a_0220): written by part_two_duck_start, duck_frame_pick; read by duck_frame_pick."
  },
  {
   "address": 545,
   "type": "line",
   "text": "Data at $0221 (a_0221): written by part_two_walk, part_two_duck_step; read by part_two_duck_step, part_two_down_left, part_two_down_right."
  },
  {
   "address": 546,
   "type": "line",
   "text": "Data at $0222 (a_0222): written by spawn_actor_0222, actor_0222_update; read by actor_0222_update, run_actors."
  },
  {
   "address": 547,
   "type": "line",
   "text": "Data at $0223 (a_0223): written by spawn_event_4, actor_0223_update; read by actor_0223_update, run_actors."
  },
  {
   "address": 549,
   "type": "line",
   "text": "Data at $0225 (a_0225): written by spawn_event_2, actor_0225_update; read by actor_0225_update, run_actors."
  },
  {
   "address": 550,
   "type": "line",
   "text": "Data at $0226 (a_0226): written by spawn_event_3, actor_0226_update; read by actor_0226_update, run_actors."
  },
  {
   "address": 551,
   "type": "line",
   "text": "Data at $0227 (a_0227): written by spawn_event_7, actor_0227_update; read by actor_0227_update, run_actors."
  },
  {
   "address": 552,
   "type": "line",
   "text": "Data at $0228 (a_0228): written by actor_0227_update; read by actor_0227_update, run_actors."
  },
  {
   "address": 553,
   "type": "line",
   "text": "Data at $0229 (a_0229): written by spawn_event_6, actor_0229_update, actor_022B_group_update, spawn_group_member; read by actor_0229_update, run_actors, check_exit_blocked."
  },
  {
   "address": 554,
   "type": "line",
   "text": "Data at $022A (a_022A): written by actor_0229_update; read by actor_0229_update, run_actors, check_exit_blocked."
  },
  {
   "address": 555,
   "type": "line",
   "text": "Data at $022B (a_022B): read by actor_022B_group_update, run_actors, end_sequence_wait."
  },
  {
   "address": 557,
   "type": "line",
   "text": "Data at $022D (a_022D): read by actor_022B_group_update."
  },
  {
   "address": 559,
   "type": "line",
   "text": "Data at $022F (a_022F): read by actor_022B_group_update."
  },
  {
   "address": 560,
   "type": "line",
   "text": "Data at $0230 (a_0230): written by spawn_actor_0230, actor_0230_update, move_actor_pair; read by actor_0230_update, spawn_actor_0233, run_actors, part_two_column_events."
  },
  {
   "address": 561,
   "type": "line",
   "text": "Data at $0231 (a_0231): written by spawn_actor_0231, actor_0231_update; read by actor_0231_update, run_actors, part_two_column_events."
  },
  {
   "address": 562,
   "type": "line",
   "text": "Data at $0232 (a_0232): written by move_actor_pair, spawn_chase_pair, spawn_actor_0235; read by actor_0232_update, spawn_actor_0235, run_actors."
  },
  {
   "address": 563,
   "type": "line",
   "text": "Data at $0233 (a_0233): written by spawn_actor_0233, actor_0233_update; read by actor_0230_update, spawn_actor_0233, actor_0233_update, run_actors."
  },
  {
   "address": 564,
   "type": "line",
   "text": "Data at $0234 (a_0234): written by spawn_event_6, actor_0229_update, move_actor_helper; read by actor_0229_update, move_actor_helper."
  },
  {
   "address": 565,
   "type": "line",
   "text": "Data at $0235 (a_0235): written by spawn_actor_0235, actor_0235_update; read by actor_0232_update, spawn_actor_0235, actor_0235_update, run_actors."
  },
  {
   "address": 566,
   "type": "line",
   "text": "Data at $0236 (a_0236): written by spawn_actor_0236, actor_0236_update; read by actor_0236_update, run_actors."
  },
  {
   "address": 567,
   "type": "line",
   "text": "Data at $0237 (a_0237): written by slot_animations; read by slot_animations."
  },
  {
   "address": 570,
   "type": "line",
   "text": "Data at $023A (a_023A): written by spawn_event_5, actor_023A_update; read by run_actors."
  },
  {
   "address": 571,
   "type": "line",
   "text": "Data at $023B (a_023B): written by sinking_animation; read by sinking_animation, set_player_sprite."
  },
  {
   "address": 572,
   "type": "line",
   "text": "Data at $023C (a_023C): written by actor_0231_update, start_laser_shot, update_laser_shot; read by actor_0230_update, actor_0231_update, run_actors, player_fire."
  },
  {
   "address": 573,
   "type": "line",
   "text": "Data at $023D (a_023D): written by spawn_event_11, actor_023D_update; read by actor_023D_update, run_actors."
  },
  {
   "address": 574,
   "type": "line",
   "text": "Data at $023E (a_023E): written by actor_023D_update; read by actor_023D_update, run_actors."
  },
  {
   "address": 575,
   "type": "line",
   "text": "Data at $023F (a_023F): written by spawn_event_12, actor_023F_update; read by actor_023F_update, run_actors."
  },
  {
   "address": 576,
   "type": "line",
   "text": "Data at $0240 (a_0240): written by spawn_event_13, actor_0240_update; read by actor_0240_update, run_actors."
  },
  {
   "address": 577,
   "type": "line",
   "text": "Data at $0241 (a_0241): written by part_two_start, part_two_column_events; read by part_two_column_events."
  },
  {
   "address": 578,
   "type": "line",
   "text": "Data at $0242 (a_0242): written by spawn_event_15, actor_0242_update; read by actor_0242_update, run_actors."
  },
  {
   "address": 579,
   "type": "line",
   "text": "Data at $0243 (a_0243): written by part_two_walk, part_two_duck_step; read by actor_0222_update, actor_023D_update."
  },
  {
   "address": 580,
   "type": "line",
   "text": "Data at $0244 (a_0244): written by spawn_event_14, actor_0244_update; read by run_actors."
  },
  {
   "address": 581,
   "type": "line",
   "text": "Attract mode timer, counted up each frame."
  },
  {
   "address": 582,
   "type": "line",
   "text": "The attract mode's current screen: 0 the credits, 2 the picture."
  },
  {
   "address": 583,
   "type": "line",
   "text": "Data at $0247 (a_0247): written by part_two_irq_lower_band, scroll_sprites_step; read by part_two_irq_lower_band."
  },
  {
   "address": 584,
   "type": "line",
   "text": "Data at $0248 (a_0248): written by scroll_sprites_step; read by scroll_sprites_step."
  },
  {
   "address": 585,
   "type": "line",
   "text": "Part two: set after the energy-out ending has begun."
  },
  {
   "address": 586,
   "type": "line",
   "text": "Part two: set when the chase pair has been started."
  },
  {
   "address": 587,
   "type": "line",
   "text": "X position, low byte, of the eight sprite slots."
  },
  {
   "address": 588,
   "type": "line",
   "text": "Data at $024C (a_024C): written by part_two_start, part_two_walk_left_step, part_two_walk_right_step, actor_0230_update and 2 more; read by actor_0230_update, look_up_ground_row."
  },
  {
   "address": 589,
   "type": "line",
   "text": "Data at $024D (a_024D): written by attract_sprites."
  },
  {
   "address": 590,
   "type": "line",
   "text": "Data at $024E (a_024E): written by attract_sprites; read by spawn_actor_0236."
  },
  {
   "address": 595,
   "type": "line",
   "text": "Y position of the eight sprite slots."
  },
  {
   "address": 596,
   "type": "line",
   "text": "Data at $0254 (a_0254): written by part_two_start, attract_sprites; read by actor_0223_update, actor_0225_update, actor_0227_update, actor_0226_update and 4 more."
  },
  {
   "address": 597,
   "type": "line",
   "text": "Data at $0255 (a_0255): written by attract_sprites."
  },
  {
   "address": 598,
   "type": "line",
   "text": "Data at $0256 (a_0256): written by attract_sprites; read by spawn_actor_0236."
  },
  {
   "address": 603,
   "type": "line",
   "text": "Active flag of the eight sprite slots."
  },
  {
   "address": 604,
   "type": "line",
   "text": "Data at $025C (a_025C): written by part_two_start, end_sequence_wait."
  },
  {
   "address": 605,
   "type": "line",
   "text": "Data at $025D (f_025D): written by intro_sequence; read by chase_trigger."
  },
  {
   "address": 606,
   "type": "line",
   "text": "Data at $025E (a_025E): written by intro_sequence."
  },
  {
   "address": 611,
   "type": "line",
   "text": "Ninth bit of the X position of the eight sprite slots."
  },
  {
   "address": 612,
   "type": "line",
   "text": "Data at $0264 (a_0264): written by part_two_start, end_sequence_wait, attract_sprites."
  },
  {
   "address": 613,
   "type": "line",
   "text": "Data at $0265 (a_0265): written by attract_sprites."
  },
  {
   "address": 614,
   "type": "line",
   "text": "Data at $0266 (a_0266): written by attract_sprites."
  },
  {
   "address": 619,
   "type": "line",
   "text": "Path active flag of the eight sprite slots: the slot is following a jump or shot path."
  },
  {
   "address": 627,
   "type": "line",
   "text": "Path direction of the eight sprite slots: set while the path is going up."
  },
  {
   "address": 635,
   "type": "line",
   "text": "Path step of the eight sprite slots."
  },
  {
   "address": 643,
   "type": "line",
   "text": "Hit-flash flag of the eight sprite slots."
  },
  {
   "address": 651,
   "type": "line",
   "text": "Hit-flash frame of the eight sprite slots."
  },
  {
   "address": 659,
   "type": "line",
   "text": "Data at $0293 (a_0293): written by spawn_overlay_actor, end_sequence_wait; read by run_actors."
  },
  {
   "address": 660,
   "type": "line",
   "text": "Set to 1 by the idle drain loop at $225E to have the message printer run from the interrupt."
  },
  {
   "address": 661,
   "type": "line",
   "text": "Jump arc step counter."
  },
  {
   "address": 662,
   "type": "line",
   "text": "Johnny's facing as last set: the stick value minus one, so 0 is up, 1 down, 3 left, 7 right and the other values the diagonals."
  },
  {
   "address": 663,
   "type": "line",
   "text": "Johnny's wanted facing, the stick value minus one: 0 up, 1 down, 3 left, 7 right and the diagonals; $0296 follows it when he turns."
  },
  {
   "address": 664,
   "type": "line",
   "text": "Walk animation timer, counting down from 3."
  },
  {
   "address": 665,
   "type": "line",
   "text": "Part one puzzle flags: bit 0 logged on, bit 1 link made, bit 2 alarm override, bit 3 sprinkler off."
  },
  {
   "address": 666,
   "type": "line",
   "text": "Energy bar: the number of cells left, counted down by the drain."
  },
  {
   "address": 667,
   "type": "line",
   "text": "Shield bar: the number of cells left, counted down by the drain."
  },
  {
   "address": 668,
   "type": "line",
   "text": "The video memory register value of the panel band."
  },
  {
   "address": 669,
   "type": "line",
   "text": "Part two duck timer."
  },
  {
   "address": 670,
   "type": "line",
   "text": "The video memory register value of the part-two middle band."
  },
  {
   "address": 671,
   "type": "line",
   "text": "Part two: scroll value of the upper band."
  },
  {
   "address": 672,
   "type": "line",
   "text": "Part two: scroll value of the lower band."
  },
  {
   "address": 673,
   "type": "line",
   "text": "The vertical scroll register value for the second band, flipped by the flash routine."
  },
  {
   "address": 674,
   "type": "line",
   "text": "Seconds since the start of part two, worked out from the clock."
  },
  {
   "address": 675,
   "type": "line",
   "text": "Part two: the laser shot's direction, 1 or 2."
  },
  {
   "address": 676,
   "type": "line",
   "text": "Data at $02A4 (a_02A4): written by part_two_main_loop; read by part_two_main_loop."
  },
  {
   "address": 677,
   "type": "line",
   "text": "Animation counter with two states, advanced every fourth pass."
  },
  {
   "address": 678,
   "type": "line",
   "text": "Animation counter with three states, advanced every fourth pass."
  },
  {
   "address": 679,
   "type": "line",
   "text": "Animation counter with four states, advanced every fourth pass."
  },
  {
   "address": 681,
   "type": "line",
   "text": "Animation counter with eight states, advanced every fourth pass."
  },
  {
   "address": 682,
   "type": "line",
   "text": "Countdown to the next advance of the animation counters."
  },
  {
   "address": 683,
   "type": "line",
   "text": "Data at $02AB (a_02AB): written by part_two_scroll_column, draw_tile_column_p2; read by draw_tile_column_p2."
  },
  {
   "address": 684,
   "type": "line",
   "text": "Data at $02AC (a_02AC): written by build_screen, draw_part_two_screen; read by build_screen, draw_part_two_screen."
  },
  {
   "address": 685,
   "type": "line",
   "text": "Scroll phase: the character within the tile at the left of the screen, 0 to 3."
  },
  {
   "address": 686,
   "type": "line",
   "text": "Scroll column: the tile column of the map at the left of the screen."
  },
  {
   "address": 687,
   "type": "line",
   "text": "Data at $02AF (f_02AF): written by fetch_tile_chars; read by write_column_buffer."
  },
  {
   "address": 699,
   "type": "line",
   "text": "Data at $02BB (a_02BB): written by build_screen, draw_part_two_screen; read by build_screen, draw_part_two_screen."
  },
  {
   "address": 700,
   "type": "line",
   "text": "Data at $02BC (a_02BC): written by build_screen, draw_part_two_screen; read by build_screen, draw_part_two_screen."
  },
  {
   "address": 701,
   "type": "line",
   "text": "The last seconds value read from the clock."
  },
  {
   "address": 702,
   "type": "line",
   "text": "Set to 1 by the top raster handler every frame; the main loop only does a full pass when it is set, and clears it at the start of the pass."
  },
  {
   "address": 703,
   "type": "line",
   "text": "Data at $02BF (a_02BF): written by main_loop_frame, irq_scroll_and_exit; read by main_loop_frame."
  },
  {
   "address": 704,
   "type": "line",
   "text": "Data at $02C0 (a_02C0): written by draw_tile_column, fetch_tile_chars; read by fetch_tile_chars."
  },
  {
   "address": 705,
   "type": "line",
   "text": "Data at $02C1 (a_02C1): written by refill_edge_column; read by fetch_tile_chars."
  },
  {
   "address": 706,
   "type": "line",
   "text": "Data at $02C2 (a_02C2): written by locate_player_column; read by locate_player_column."
  },
  {
   "address": 707,
   "type": "line",
   "text": "Data at $02C3 (a_02C3): written by locate_player_column; read by locate_player_column."
  },
  {
   "address": 708,
   "type": "line",
   "text": "The message queue: the numbers of the messages waiting to be typed."
  },
  {
   "address": 709,
   "type": "line",
   "text": "Data at $02C5 (f_02C5): read by message_dequeue."
  },
  {
   "address": 720,
   "type": "line",
   "text": "The typing position in the message window."
  },
  {
   "address": 721,
   "type": "line",
   "text": "The position in the message text being typed."
  },
  {
   "address": 722,
   "type": "line",
   "text": "Countdown to the next character typed."
  },
  {
   "address": 723,
   "type": "line",
   "text": "The index of the object that the current menu entry names."
  },
  {
   "address": 724,
   "type": "line",
   "text": "The delay counter of the search, hide, input and describe modes."
  },
  {
   "address": 725,
   "type": "line",
   "text": "The layer of the object table that the current search covers (3)."
  },
  {
   "address": 726,
   "type": "line",
   "text": "The number of objects found by the last search, or $FF if the search is not allowed."
  },
  {
   "address": 727,
   "type": "line",
   "text": "The numbers of the objects found by the last search."
  },
  {
   "address": 731,
   "type": "line",
   "text": "The description numbers of the objects found by the last search."
  },
  {
   "address": 735,
   "type": "line",
   "text": "Four pairs of bytes, one pair per held object: the object number, then the index of its description text."
  },
  {
   "address": 736,
   "type": "line",
   "text": "Data at $02E0 (f_02E0): written by mode_search_finish, mode_hide_do, input_lock_check; read by mode_hide_do, mode_describe_do, input_lock_check."
  },
  {
   "address": 743,
   "type": "line",
   "text": "The score, high byte of three, in decimal."
  },
  {
   "address": 744,
   "type": "line",
   "text": "The score, middle byte, in decimal."
  },
  {
   "address": 745,
   "type": "line",
   "text": "The score, low byte, in decimal."
  },
  {
   "address": 746,
   "type": "line",
   "text": "Points to add to the score: the high byte."
  },
  {
   "address": 747,
   "type": "line",
   "text": "Points to add to the score: the middle byte."
  },
  {
   "address": 748,
   "type": "line",
   "text": "Points to add to the score: the low byte."
  },
  {
   "address": 749,
   "type": "line",
   "text": "Walking flag: set while Johnny is walking."
  },
  {
   "address": 750,
   "type": "line",
   "text": "Johnny's walk frame number."
  },
  {
   "address": 751,
   "type": "line",
   "text": "The turning steps left when Johnny changes direction."
  },
  {
   "address": 752,
   "type": "line",
   "text": "Data at $02F0 (a_02F0): written by input_key_drawer; read by input_lock_check."
  },
  {
   "address": 753,
   "type": "line",
   "text": "Data at $02F1 (a_02F1): written by input_key_drawer; read by input_lock_check."
  },
  {
   "address": 754,
   "type": "line",
   "text": "Data at $02F2 (a_02F2): written by input_key_drawer; read by input_lock_check."
  },
  {
   "address": 755,
   "type": "line",
   "text": "Data at $02F3 (a_02F3): written by input_key_drawer; read by input_lock_check."
  },
  {
   "address": 756,
   "type": "line",
   "text": "Data at $02F4 (a_02F4): written by energy_drain_step, shield_drain_step; read by energy_drain_step, shield_drain_step."
  },
  {
   "address": 757,
   "type": "line",
   "text": "Data at $02F5 (a_02F5): written by draw_panel, draw_picture_screen."
  },
  {
   "address": 758,
   "type": "line",
   "text": "Data at $02F6 (a_02F6): written by check_laser_pickup, check_countdown; read by check_countdown."
  },
  {
   "address": 759,
   "type": "line",
   "text": "Data at $02F7 (a_02F7): written by check_laser_pickup, check_countdown; read by check_countdown."
  },
  {
   "address": 760,
   "type": "line",
   "text": "Data at $02F8 (a_02F8): written by timed_event."
  },
  {
   "address": 761,
   "type": "line",
   "text": "Data at $02F9 (a_02F9): written by enemy_walk; read by enemy_walk."
  },
  {
   "address": 762,
   "type": "line",
   "text": "Data at $02FA (a_02FA): written by guard_left_animate; read by guard_left_animate."
  },
  {
   "address": 763,
   "type": "line",
   "text": "Data at $02FB (a_02FB): written by guard_right_animate; read by guard_right_animate."
  },
  {
   "address": 764,
   "type": "line",
   "text": "Index 0 to 3 of the action chosen with the space bar: JUMP, LASER, SEARCH, UTILISE."
  },
  {
   "address": 765,
   "type": "line",
   "text": "The space key is being held."
  },
  {
   "address": 766,
   "type": "line",
   "text": "The index in the inventory of the object chosen in a menu."
  },
  {
   "address": 767,
   "type": "line",
   "text": "The number of the object chosen in a menu."
  },
  {
   "address": 768,
   "type": "line",
   "text": "The stick direction saved when a jump started."
  },
  {
   "address": 769,
   "type": "line",
   "text": "Johnny's height saved for the feet probe and the jump."
  },
  {
   "address": 770,
   "type": "line",
   "text": "Scratch byte of the key test."
  },
  {
   "address": 771,
   "type": "line",
   "text": "The walk frame within the frame table."
  },
  {
   "address": 772,
   "type": "line",
   "text": "The scroll column at the last enemy test."
  },
  {
   "address": 773,
   "type": "line",
   "text": "Counter of the end-of-scene walk."
  },
  {
   "address": 774,
   "type": "line",
   "text": "Frame counter: increased by the raster handler each frame; the main loops wait for it and decrement it."
  },
  {
   "address": 775,
   "type": "line",
   "text": "Data at $0307 (a_0307): written by actor_0229_update; read by actor_0229_update."
  },
  {
   "address": 776,
   "type": "line",
   "text": "Data at $0308 (a_0308): written by actor_0222_update, actor_0223_update, actor_0225_update, actor_0227_update and 12 more; read by actor_0222_update, actor_0223_update, actor_0225_update, actor_0227_update and 12 more."
  },
  {
   "address": 777,
   "type": "line",
   "text": "Data at $0309 (a_0309): written by actor_0235_update; read by actor_0235_update."
  },
  {
   "address": 778,
   "type": "line",
   "text": "Data at $030A (a_030A): written by actor_0242_update; read by actor_0242_update."
  },
  {
   "address": 779,
   "type": "line",
   "text": "Data at $030B (a_030B): written by check_exit_blocked; read by part_two_walk_right_step, maybe_stop_walk."
  },
  {
   "address": 780,
   "type": "line",
   "text": "Data at $030C (a_030C): written by look_up_ground; read by look_up_ground_row."
  },
  {
   "address": 781,
   "type": "line",
   "text": "Data at $030D (a_030D): written by maybe_stop_walk, look_up_ground_row."
  },
  {
   "address": 782,
   "type": "line",
   "text": "Data at $030E (a_030E): written by part_two_main_loop, maybe_stop_walk; read by part_two_main_loop, maybe_stop_walk."
  },
  {
   "address": 783,
   "type": "line",
   "text": "Data at $030F (a_030F): written by sinking_animation; read by sinking_animation."
  },
  {
   "address": 784,
   "type": "line",
   "text": "The step number of an intro or ending script."
  },
  {
   "address": 785,
   "type": "line",
   "text": "Attract mode counter that rotates the colour table every sixth tick."
  },
  {
   "address": 786,
   "type": "line",
   "text": "Data at $0312 (a_0312): written by colour_bar_irq; read by colour_bar_irq."
  },
  {
   "address": 787,
   "type": "line",
   "text": "Attract mode: counts the cycles before the screen changes."
  },
  {
   "address": 788,
   "type": "line",
   "text": "Data at $0314 (a_0314): written by intro_script_steps, flash_screen; read by flash_screen."
  },
  {
   "address": 789,
   "type": "line",
   "text": "Data at $0315 (a_0315): written by walk_collision_check, look_up_ground_row; read by walk_collision_check, look_up_ground_row."
  },
  {
   "address": 790,
   "type": "line",
   "text": "Counter of the ending sequence's repeats."
  },
  {
   "address": 791,
   "type": "line",
   "text": "The initial being entered in a new high score."
  },
  {
   "address": 792,
   "type": "line",
   "text": "Time-out counter of the initials entry."
  },
  {
   "address": 794,
   "type": "line",
   "text": "Fractional counter that sets the speed of the music."
  },
  {
   "address": 795,
   "type": "line",
   "text": "Music speed flag: when set, the sound timer runs the music four times as often."
  },
  {
   "address": 937,
   "type": "line",
   "text": "Not a variable. The bytes $A9 $03 that follow a BIT opcode ($2C) in the music driver's commands at $A018, $A15D and $A288: the processor reads them as the operand of BIT and skips them, where an entry at the second byte reads them as LDA #$03. It is the idiom that lets two entries share one tail."
  },
  {
   "address": 1024,
   "type": "line",
   "text": "Entry point of the game proper (the loader's jump at $9548 runs the start-up at $95xx, which falls into here). Sets the CIA2 VIC bank, switches sprites 0 and 1 on with sprite 2 and 3 colours, copies 17 bytes of initial sprite registers from $15EA, builds the opening screen with $0B3B and falls into the main loop."
  },
  {
   "address": 1109,
   "type": "line",
   "text": "Top of the main loop. Runs once per pass: it first checks whether the energy or clock has run out (the flag at $0206), then whether Johnny has walked far enough right to leave the room, then does the per-frame work (scroll, input, messages, mode handler) and loops back here."
  },
  {
   "address": 1147,
   "type": "line",
   "text": "Not out of energy: tests whether the scroll position has reached the room's exit column ($FC) with the sprite inside the exit area and the right screen set; if so the room is left, otherwise it carries on to the scroll and sprite update below."
  },
  {
   "address": 1256,
   "type": "line",
   "text": "Per-frame body of the main loop: if the frame flag at $02BE is clear it only runs $0580 and loops; otherwise it clears the flag, checks for a scroll step, runs the per-pass subsystems in turn (energy and timer checks, input, jump, messages, enemies) and finally dispatches to the handler for the current mode through the table at $43E8, or to the action handler when fire is pressed in mode 0."
  },
  {
   "address": 1408,
   "type": "line",
   "text": "Idle branch of the main loop: runs the keyboard/action poll at $203A and goes back to the top of the loop."
  },
  {
   "address": 1414,
   "type": "line",
   "text": "Turns the joystick state in $20 into edge flags: fire held ($0201), fire pressed this pass ($0202), direction held ($0203) and direction pressed this pass ($0204)."
  },
  {
   "address": 1449,
   "type": "line",
   "text": "Not a variable. The bytes $A9 $05 after a BIT opcode in the commands at $A20D, which the processor skips; the entry one byte later reads them as LDA #$05."
  },
  {
   "address": 1488,
   "type": "line",
   "text": "Moves Johnny's two sprites up one pixel, or does nothing at the top limit ($40), and updates the scroll flag; one of the four per-direction steps the walk code calls through the table at $1C2E."
  },
  {
   "address": 1528,
   "type": "line",
   "text": "Moves Johnny's two sprites down one pixel (limit tested in the caller), part of the per-direction walk steps."
  },
  {
   "address": 1555,
   "type": "line",
   "text": "Moves Johnny's sprites left one pixel unless he is at X $84; if he is at the left limit it sets the scroll direction to left ($FF) instead."
  },
  {
   "address": 1594,
   "type": "line",
   "text": "Moves the player sprite pair one pixel to the right when it is left of $E0 (setting the scroll direction to right); at the right edge it either stops (clears a flag) or asks the scroller to start moving."
  },
  {
   "address": 1629,
   "type": "line",
   "text": "Short entry stubs that combine a vertical step ($05D0 or $05F8) with a horizontal one ($0613 or $063A) for the diagonal directions."
  },
  {
   "address": 1653,
   "type": "line",
   "text": "Four words (address minus one) of the action handlers, indexed by the selected action: JUMP, LASER, SEARCH, UTILISE."
  },
  {
   "address": 1654,
   "type": "line",
   "text": "Data at $0676 (f_0676): read by main_loop_frame."
  },
  {
   "address": 1661,
   "type": "line",
   "text": "Polls the keyboard for the SPACE key (key $3C) and, when pressed and no message is being shown, steps the selected action ($02FC) down through JUMP, LASER, SEARCH, UTILISE, rewrites the action label and queues the beep message."
  },
  {
   "address": 1713,
   "type": "line",
   "text": "Copies the eight-character name of the selected action from the table at $06E1 into the panel text row at $C373, adding $20 to each letter to reach the panel's own character codes (blank maps to $F8)."
  },
  {
   "address": 1761,
   "type": "line",
   "text": "Four eight-character action names, in the order JUMP, LASER, SEARCH, UTILISE, used for the panel label."
  },
  {
   "address": 1793,
   "type": "line",
   "text": "Sets up the raster interrupt system: sets the time-of-day clock to 3:00, disables the CIA interrupts, enables the raster interrupt, points the IRQ vector at $0738 and starts the three-handler chain."
  },
  {
   "address": 1848,
   "type": "line",
   "text": "Raster interrupt handler of part one. Saves the registers, acknowledges the VIC, counts $02 down through 1, 0 and 2, and dispatches by RTS through the table at $5BF0 to the handler for the band: $07A0 at line $F3, $085E at line 0 and $0767 at line $A3."
  },
  {
   "address": 1895,
   "type": "line",
   "text": "Part one's raster handler for the band that starts at line $A3, where the status panel begins (the previous handler set that line). Selects screen 0 and the character set, sets the multicolour colours and the fixed horizontal scroll $18, sets the next interrupt line to $F3, raises the frame flag at $02BE, types the next message character when $0294 is set, and then runs the scroll step if one is wanted."
  },
  {
   "address": 1933,
   "type": "line",
   "text": "Common tail of the raster handlers: when the scroll direction $21 is non-zero it runs the scroll step $087B and sets $02BF to 1, then restores X, Y and A and returns."
  },
  {
   "address": 1952,
   "type": "line",
   "text": "Part one's raster handler for line $F3, below the panel. It sets the screen, colours and scroll register ($D016 from $22, $D011 from $02A1) that the next frame's playfield will use, sets the next interrupt for line 0, counts the frame counter $0306 up, runs the sound driver and, unless the pause flag $0217 is set, updates the clock."
  },
  {
   "address": 1961,
   "type": "line",
   "text": "Not a variable. The bytes $A9 $07 after a BIT opcode in the command at $A0EB, which the processor skips; the entry one byte later reads them as LDA #$07."
  },
  {
   "address": 2000,
   "type": "line",
   "text": "Raster handler that updates the on-screen clock: when the CIA1 time-of-day seconds changed it redraws the digits, otherwise it only flips the colon blink."
  },
  {
   "address": 2020,
   "type": "line",
   "text": "Reads the CIA1 time-of-day clock (hours, minutes, seconds) and writes the digits into the panel's clock characters."
  },
  {
   "address": 2095,
   "type": "line",
   "text": "Sets the clock's colon characters at $C2FD and $C325 to one of two tile values depending on bit 3 of the tenths of seconds, making it blink."
  },
  {
   "address": 2116,
   "type": "line",
   "text": "Writes the four characters of one big clock digit (digit in A, position in Y) into the panel."
  },
  {
   "address": 2142,
   "type": "line",
   "text": "Part one's raster handler for line 0: only sets the next interrupt line to $A3."
  },
  {
   "address": 2150,
   "type": "line",
   "text": "Sets the CIA1 time-of-day clock to X hours and Y minutes, zero seconds and tenths, and redraws it."
  },
  {
   "address": 2171,
   "type": "line",
   "text": "Scrolls the playfield by two pixels in the direction given by the sign of $21 (negative is left): moves sprites 2 and 3, adjusts $22 (the horizontal scroll value) and, when it wraps, shifts the whole 40-column character map and colour map by one column."
  },
  {
   "address": 2290,
   "type": "line",
   "text": "Shifts every row of the character and colour maps one cell to the left (each row is 40 cells, 12 rows of each map), then goes to the column refill at $0A33."
  },
  {
   "address": 2453,
   "type": "line",
   "text": "Shifts every row of the character and colour maps one cell to the right (12 rows of each map), then goes to the column refill at $0A33."
  },
  {
   "address": 2611,
   "type": "line",
   "text": "After a scroll the new edge column is filled from the room's tile map: chooses the tile column to draw by the scroll phase and calls the tile draw at $0A92 and the column write at $0B00."
  },
  {
   "address": 2706,
   "type": "line",
   "text": "Fetches the three tile numbers of one map column from the room map tables at $4000, $4100 and $4200 (indexed by X) and stores their character data in the temporary column buffer at $02AF."
  },
  {
   "address": 2743,
   "type": "line",
   "text": "Looks up one tile's 16 characters (a 4 by 4 block at $5000 plus 16 times the tile number) and copies one column of four of them to the column buffer at $02AF."
  },
  {
   "address": 2787,
   "type": "line",
   "text": "Converts a tile number in A to its character data address: $5000 plus 16 times the number, in zero page $24/$25."
  },
  {
   "address": 2816,
   "type": "line",
   "text": "Writes the twelve characters in the column buffer to the screen map at $C050 and the matching colours (looked up from the table at $8448) to the colour copy at $D850, one column of the playfield."
  },
  {
   "address": 2875,
   "type": "line",
   "text": "Redraws the whole playfield from the room's tile map, starting at the current scroll column: for each of the 10 tile columns and 3 tile rows it expands the tile's characters into the screen map at $C050."
  },
  {
   "address": 3000,
   "type": "line",
   "text": "Second half of $0B3B: sets the scroll phase to $FF and fills the colour map at $D850 from the screen map at $C050, looking each character up in the colour table at $8448 (it reads each character with the undocumented opcode LAX, which loads A and X together)."
  },
  {
   "address": 3050,
   "type": "line",
   "text": "Three screen-map pointers, $C050, $C0F0 and $C190: the start of each of the three tile rows of the playfield."
  },
  {
   "address": 3056,
   "type": "line",
   "text": "Three pointers, $4000, $4100 and $4200, to the three rows of part one's map; $0B3B reads them."
  },
  {
   "address": 3057,
   "type": "line",
   "text": "Data at $0BF1 (f_0BF1): read by build_screen."
  },
  {
   "address": 3062,
   "type": "line",
   "text": "Handler for the SEARCH action (entry 2 of the table at $0675, run when fire is pressed). Does nothing unless mode 0 is active and no message is queued; otherwise finds what is at the player's position with $0D62, and unless the player is too low queues message 0 (EXAMINE) and message 11 (PROCESSING), sets a delay of 100 passes and starts mode 1."
  },
  {
   "address": 3117,
   "type": "line",
   "text": "Second half of the mode 1 handler (search in progress): counts the delay at $02D4 down; at zero it reports the result: a locked container ($0DCA) gives LOCKED and ABORT, nothing found gives FOUND NOTHING and clears the mode, otherwise it queues FOUND and the name of each object found and moves to mode 2."
  },
  {
   "address": 3364,
   "type": "line",
   "text": "Sets the mode ($0200) to 0 and queues message 10, the prompt arrow."
  },
  {
   "address": 3369,
   "type": "line",
   "text": "Queues message 10, the prompt arrow, and returns."
  },
  {
   "address": 3374,
   "type": "line",
   "text": "Computes the map column under Johnny from sprite 0's X position, the scroll phase and the scroll column, and stores it in $021B."
  },
  {
   "address": 3426,
   "type": "line",
   "text": "Looks up what is at the player's map column: checks the tile at that column against the table at $153D, then the object table at $1568, collecting each matching object's number into the list at $02D7 and its name into $02DB; the count goes in $02D6 (negative if the player is too low)."
  },
  {
   "address": 3530,
   "type": "line",
   "text": "Tests whether the container at the player's column is one that needs a key ($15BC), and whether its open flag in $020B is set; returns the carry set if it is still shut."
  },
  {
   "address": 3564,
   "type": "line",
   "text": "Queues the message number in A (without adding an offset)."
  },
  {
   "address": 3567,
   "type": "line",
   "text": "Queues system message A, adding $0B so that 0 is PROCESSING (message 11)."
  },
  {
   "address": 3573,
   "type": "line",
   "text": "Queues the object name for object number A, adding $35 to reach its text (object 0 is LASER ROM, message 53)."
  },
  {
   "address": 3579,
   "type": "line",
   "text": "Queues the description message A, adding $4B to reach its text (description 0 is message 75)."
  },
  {
   "address": 3585,
   "type": "line",
   "text": "Appends the message number in A to the message queue at $02C4 and bumps the queue length."
  },
  {
   "address": 3595,
   "type": "line",
   "text": "Starts printing the message at the head of the queue: finds its text in the message table at $0EBF by counting '!' terminators, and resets the print position."
  },
  {
   "address": 3656,
   "type": "line",
   "text": "Per-pass message printer: if nothing is printing it starts the next queued message; otherwise every third pass it types one more character, handling the control characters (newline, pause, end)."
  },
  {
   "address": 3727,
   "type": "line",
   "text": "Ends the current message: shifts the queue down one entry, clears the printing flag and clears the window, unless the message was the blank prompt."
  },
  {
   "address": 3775,
   "type": "line",
   "text": "Game text, messages 0 to 52, each ended by '!' ($21). Letters are A to Z as 1 to 26, '2' is a line break, '3' is a short pause marker, digits and space are as ASCII. Messages 0 to 9 are the action menu words, 10 is the prompt arrow, 11 onwards the system messages, 48 to 52 the endings and part headings."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "Continues text_messages ($0EBF to $12A0) at offset 321: Game text, messages 0 to 52, each ended by '!' ($21). No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 4769,
   "type": "line",
   "text": "Messages 53 to 88: the names of the 21 objects (53 to 73), a blank (74), and the descriptions (75 to 88) shown by DESCRIBE, each ended by '!'."
  },
  {
   "address": 5437,
   "type": "line",
   "text": "The 43 tile numbers that SEARCH accepts as something to search: $0D62 compares the tile in the room's middle row at the player's column with these."
  },
  {
   "address": 5480,
   "type": "line",
   "text": "The 21 objects, four bytes each: map column, layer (3 for the floor), object number and description number. Taking an object zeroes its column and layer; hiding one writes the container's column and layer back."
  },
  {
   "address": 5481,
   "type": "line",
   "text": "Data at $1569 (f_1569): written by mode_search_finish, mode_hide_do, reset_game_state; read by find_objects_here."
  },
  {
   "address": 5482,
   "type": "line",
   "text": "Data at $156A (f_156A): read by find_objects_here."
  },
  {
   "address": 5483,
   "type": "line",
   "text": "Data at $156B (f_156B): read by find_objects_here."
  },
  {
   "address": 5544,
   "type": "line",
   "text": "Data at $15A8 (a_15A8): read by check_laser_pickup."
  },
  {
   "address": 5560,
   "type": "line",
   "text": "Data at $15B8 (a_15B8): read by read_tenths."
  },
  {
   "address": 5564,
   "type": "line",
   "text": "The eight map columns that hold a locked container (drawer or cabinet), in the order of their bits in $15C4."
  },
  {
   "address": 5572,
   "type": "line",
   "text": "One bit per container, 1 to 128, for the open and key flags at $020B and $020C."
  },
  {
   "address": 5580,
   "type": "line",
   "text": "Ten three-byte entries (map column, then the address minus one of its INPUT handler): the places where an object can be used with INPUT."
  },
  {
   "address": 5581,
   "type": "line",
   "text": "Data at $15CD (f_15CD): read by mode_input_do."
  },
  {
   "address": 5582,
   "type": "line",
   "text": "Data at $15CE (f_15CE): read by mode_input_do."
  },
  {
   "address": 5610,
   "type": "line",
   "text": "Seventeen start values copied to the VIC registers $D000 to $D010 at game start: the sprite positions and the high bits."
  },
  {
   "address": 5627,
   "type": "line",
   "text": "Adds the three bytes at $02EA, $02EB and $02EC to the 6-digit decimal score at $02E7 to $02E9 (decimal mode), then redraws the score digits."
  },
  {
   "address": 5657,
   "type": "line",
   "text": "Draws the three score bytes at $02E7 to $02E9 as six big digits into the panel's score box."
  },
  {
   "address": 5692,
   "type": "line",
   "text": "Draws one score byte as two big digits."
  },
  {
   "address": 5703,
   "type": "line",
   "text": "Writes the four characters of one two-by-two digit (digit in A, column in Y) into the panel screen."
  },
  {
   "address": 5729,
   "type": "line",
   "text": "The message numbers of the sub-menu verbs (HIDE is the first and needs none; then INPUT, DESCRIBE) as the utilise menu cycles."
  },
  {
   "address": 5732,
   "type": "line",
   "text": "Three words (address minus one) of the starting routines of the HIDE, INPUT and DESCRIBE sub-modes."
  },
  {
   "address": 5733,
   "type": "line",
   "text": "Data at $1665 (f_1665): read by mode_utilise_menu."
  },
  {
   "address": 5738,
   "type": "line",
   "text": "Handler for the UTILISE action (entry 3 of the table at $0675). With nothing queued it queues UTILISE, then NOTHING TO USE when Johnny holds nothing (message 15), else it shows FIRE TO with HIDE and enters mode 5."
  },
  {
   "address": 5793,
   "type": "line",
   "text": "Mode 5: a stick press queues NO (declining the verb on offer), then FIRE TO and the next verb of HIDE, INPUT and DESCRIBE, and after the last it queues ABORT and ends the mode; fire jumps through the table at $1664 to the setup of the verb on offer."
  },
  {
   "address": 5896,
   "type": "line",
   "text": "Mode 6: choose which held object to hide: a direction press moves to the next one, fire selects it and moves to mode 7."
  },
  {
   "address": 5978,
   "type": "line",
   "text": "Mode 7: after a delay of 100 passes it checks that the container at this column is unlocked and not full, then moves the chosen object from the inventory into the room's object table at the player's column and layer."
  },
  {
   "address": 6120,
   "type": "line",
   "text": "Mode 10: choose which held object to INPUT: a direction press moves to the next, fire selects it (kept in $02FF) and moves to mode 11."
  },
  {
   "address": 6205,
   "type": "line",
   "text": "Mode 11: after a delay of 100 passes it looks the player's column up in the terminal table at $15CC and jumps to that terminal's handler, or says NO EFFECT."
  },
  {
   "address": 6285,
   "type": "line",
   "text": "Mode 8: choose which held object to DESCRIBE; fire selects and moves to mode 9."
  },
  {
   "address": 6365,
   "type": "line",
   "text": "Mode 9: after a delay of 100 passes it queues the description text of the chosen object (description index plus 75) and returns to mode 0."
  },
  {
   "address": 6399,
   "type": "line",
   "text": "Handler for the LASER action. If a LASER ROM (object 0) is in the inventory it returns at once and nothing more happens here; without one, and with nothing queued, it queues MALFUNCTION and NEED MORE INPUT and the prompt."
  },
  {
   "address": 6447,
   "type": "line",
   "text": "Handler for the JUMP action. Without a JUMP ROM (object 2) in the inventory it queues MALFUNCTION and NEED MORE INPUT; with one, and no jump already under way, it starts a jump: it records Johnny's sprite 1 height and the stick, and begins the arc at $19A5."
  },
  {
   "address": 6503,
   "type": "line",
   "text": "Runs once a pass: while a jump is active it replays the stick direction held at take-off and moves both player sprites up, then down, by the values in the arc table at $19CA."
  },
  {
   "address": 6602,
   "type": "line",
   "text": "Fifteen vertical steps (rise then fall) of a jump, added to or subtracted from the player sprites' Y."
  },
  {
   "address": 6617,
   "type": "line",
   "text": "Tests one key of the keyboard matrix. A is the key number (row times 8 plus column); returns carry set when it is held. Keeps the CIA ports restored afterwards."
  },
  {
   "address": 6675,
   "type": "line",
   "text": "The eight CIA1 port A values that select one keyboard column at a time."
  },
  {
   "address": 6683,
   "type": "line",
   "text": "Sixteen entries indexed by the inverted stick bits; the low bits hold the direction number 0 to 10, and $FF marks impossible combinations such as left plus right."
  },
  {
   "address": 6715,
   "type": "line",
   "text": "Mode 0, walking: moves Johnny by the stick, changing his walk frame when the direction changes, and works the walk cycle and scroll start."
  },
  {
   "address": 6896,
   "type": "line",
   "text": "Writes the pair of sprite pointers of walk frame X into $C3F8 and $C3F9."
  },
  {
   "address": 6937,
   "type": "line",
   "text": "Sets the walk animation tick counter $0298 to 3."
  },
  {
   "address": 6943,
   "type": "line",
   "text": "Advances Johnny's walk animation unless the walk flag is set."
  },
  {
   "address": 6975,
   "type": "line",
   "text": "Selects the frame table for direction Y and starts it."
  },
  {
   "address": 6993,
   "type": "line",
   "text": "Writes the current pair of sprite pointers of the frame table to $C3F8 and $C3F9."
  },
  {
   "address": 7009,
   "type": "line",
   "text": "Looks up the map character one cell ahead of Johnny's feet and stops him when it is a wall (character $76 twice in a row), and after that tests sprite overlaps against sprite 2."
  },
  {
   "address": 7105,
   "type": "line",
   "text": "Pairs of X and Y offsets, one pair for each of the eight directions, that place the feet probe relative to the sprite."
  },
  {
   "address": 7106,
   "type": "line",
   "text": "Data at $1BC2 (f_1BC2): read by walk_collision_check."
  },
  {
   "address": 7125,
   "type": "line",
   "text": "Tests whether the enemy sprites are near Johnny's sprite pair and whether the sprites are enabled, to decide whether he is stopped."
  },
  {
   "address": 7187,
   "type": "line",
   "text": "Returns the difference between the Y positions of sprite 2 and sprite 0."
  },
  {
   "address": 7214,
   "type": "line",
   "text": "Eight words (address minus one) of the walk steps, indexed by direction: up, down, left, right and the diagonals use $05D0, $05F8, $0613 and $063A."
  },
  {
   "address": 7215,
   "type": "line",
   "text": "Data at $1C2F (f_1C2F): read by sprite_height_difference."
  },
  {
   "address": 7234,
   "type": "line",
   "text": "Johnny's walk frame data: direction codes ($1C42), pointers to the frame tables ($1C4C, $1C60) and the sprite pointer pairs of each frame ($1C60 onwards) that $1AF0 and $1B51 write into the sprite pointers at $C3F8."
  },
  {
   "address": 7244,
   "type": "line",
   "text": "Data at $1C4C (f_1C4C): read by set_frame_table."
  },
  {
   "address": 7245,
   "type": "line",
   "text": "Data at $1C4D (f_1C4D): read by set_frame_table."
  },
  {
   "address": 7264,
   "type": "line",
   "text": "Data at $1C60 (f_1C60): read by set_walk_frame_pointers, enemy_walk."
  },
  {
   "address": 7265,
   "type": "line",
   "text": "Data at $1C61 (f_1C61): read by set_walk_frame_pointers, enemy_walk."
  },
  {
   "address": 7290,
   "type": "line",
   "text": "Data at $1C7A (f_1C7A): read by overlay_actor_update."
  },
  {
   "address": 7302,
   "type": "line",
   "text": "Data at $1C86 (f_1C86): read by actor_0231_update, move_pair_b5."
  },
  {
   "address": 7312,
   "type": "line",
   "text": "Scrolls the message window up by one line: copies each of the four text rows up and blanks the last."
  },
  {
   "address": 7349,
   "type": "line",
   "text": "INPUT handler for a container with a key lock: sets the object numbers that open it and the messages to show, then goes to the shared check at $1CFA."
  },
  {
   "address": 7418,
   "type": "line",
   "text": "Shared lock check: finds the container at the player's column in $15BC; the right key object opens it (sets its bit in $020B, adds a score bonus and queues the opened message), a repeat says it is already open, and the other key jams it."
  },
  {
   "address": 7573,
   "type": "line",
   "text": "INPUT handler for the first terminal column: the PASSCARD (object 14) gives SECURITY CLEARANCE GIVEN and sets $0210 to $11; any other object sets the alarm flag $0211, queues ALARM HAS GONE OFF and, when the decoy has not been built, sets $0219 to 1."
  },
  {
   "address": 7619,
   "type": "line",
   "text": "INPUT handler of the computer terminal columns: the object number picks the step - PASSWORD logs on, COMPUTER PROTOCOLS links up, SECURITY DOCUMENT toggles the alarm override, FIRE SYSTEM MANUAL toggles the sprinkler system."
  },
  {
   "address": 7832,
   "type": "line",
   "text": "Copies the status panel's characters from $9100 and $91B4 into the panel screen at $C258 and $C30C and draws the score and clock."
  },
  {
   "address": 7878,
   "type": "line",
   "text": "Fills the colour map from a block of screen characters through the table at $9000 (the character colours), reading each character with the undocumented opcode LAX; part of the picture and panel drawing."
  },
  {
   "address": 7908,
   "type": "line",
   "text": "Drains the energy bar by one step: increments the character in the bar's cell and rolls to the next cell, setting the out-of-energy flag at $0206 when the bar is empty."
  },
  {
   "address": 7976,
   "type": "line",
   "text": "The same drain for the second bar (the one labelled S), at $029B."
  },
  {
   "address": 8050,
   "type": "line",
   "text": "Called once a pass while the alarm flag $0211 is clear: when the clock's minutes digit is zero (each ten minutes) and the byte at $15B8 is not $0D it queues message 32 and jumps to the alarm path at $1DAC."
  },
  {
   "address": 8062,
   "type": "line",
   "text": "Reads the CIA1 time-of-day tenths register, which also releases the clock latch."
  },
  {
   "address": 8084,
   "type": "line",
   "text": "Compares the player's column with $63: crossing it sets or clears a flag in $0210; on a first crossing with the right flag it jumps to $1DAC."
  },
  {
   "address": 8125,
   "type": "line",
   "text": "If the player's column is at or beyond $95 and bit 2 of $0299 is set, it jumps to $1DAC."
  },
  {
   "address": 8152,
   "type": "line",
   "text": "Awards 5000 points and sets a flag the first time the object at $15A8 is gone from the table."
  },
  {
   "address": 8218,
   "type": "line",
   "text": "Counts minutes after the flag is set and starts the sequence at $0219 after four."
  },
  {
   "address": 8250,
   "type": "line",
   "text": "Fires the end-of-game routine at $225E when the timer reaches zero."
  },
  {
   "address": 8302,
   "type": "line",
   "text": "Converts a decimal digit in A into the panel character for it."
  },
  {
   "address": 8323,
   "type": "line",
   "text": "Runs the enemy walk step twice."
  },
  {
   "address": 8326,
   "type": "line",
   "text": "Moves the enemy robot pair (sprites 2 and 3) towards Johnny's height, with a small state machine in $0213 to $0216 for each step."
  },
  {
   "address": 8547,
   "type": "line",
   "text": "Sets the enemy step timer $0216 to 6."
  },
  {
   "address": 8559,
   "type": "line",
   "text": "Switches the enemy sprites on or off at a map column listed in $21CB when Johnny's scroll position matches."
  },
  {
   "address": 8651,
   "type": "line",
   "text": "The four scroll columns at which the enemy robot pair is switched on or off by $216F."
  },
  {
   "address": 8655,
   "type": "line",
   "text": "Polls the F7 key (key 3 of the matrix). While it is first pressed it freezes the time-of-day clock (reading and rewriting the hours register holds the clock) and waits in a loop for a second F7 press, then restores the tenths-of-seconds register to restart the clock and sets $0306 to 1."
  },
  {
   "address": 8729,
   "type": "line",
   "text": "End-of-part-one check made when the player walks into the exit area: needs four objects in the inventory; each of the four listed at $225A found adds 2000 points; if the hold is not full or any is missing it queues two messages (MALFUNCTION and MORE INPUT NEEDED FOR SURVIVAL) and returns with carry set."
  },
  {
   "address": 8794,
   "type": "line",
   "text": "The four object numbers needed to build the decoy robot at the end of part one."
  },
  {
   "address": 8798,
   "type": "line",
   "text": "Waits in a busy loop (about 0.04 s per pass) draining the energy bar and the shield bar one step each until the out-of-energy flag at $0206 is set. Used by the failure endings."
  },
  {
   "address": 8828,
   "type": "line",
   "text": "Once per pass when the alarm state at $0219 is nonzero: decides from sprite 2's position whether the guard comes from the right (state 1) or the left (state 2), then every second pass calls the matching mover ($22D0 or $2333)."
  },
  {
   "address": 8912,
   "type": "line",
   "text": "Brings on sprites 4 and 5 (a guard and its shadow) at the right and walks them left towards Johnny; when they overlap Johnny they trigger the capture ending."
  },
  {
   "address": 9011,
   "type": "line",
   "text": "The same for sprites 6 and 7, which walk in from the left."
  },
  {
   "address": 9102,
   "type": "line",
   "text": "Queues the CAPTURED AND DEACTIVATED message and runs the energy drain loop to the end."
  },
  {
   "address": 9110,
   "type": "line",
   "text": "Moves sprites 4 and 5 two pixels left, flipping between walk frames from the table at $23F8."
  },
  {
   "address": 9169,
   "type": "line",
   "text": "Moves sprites 6 and 7 two pixels right, flipping between walk frames from the table at $23FC."
  },
  {
   "address": 9208,
   "type": "line",
   "text": "Two four-frame cycles of sprite pointers: $F1 to $F4 for the guard walking left, $E2 to $E5 for the guard walking right."
  },
  {
   "address": 9212,
   "type": "line",
   "text": "Data at $23FC (f_23FC): read by guard_left_animate, move_actor_pair."
  },
  {
   "address": 9216,
   "type": "line",
   "text": "Waits for the message queue to empty, zeroes the game's variables from $0200 to $0294, copies 13 start values from $2602 into $0295 onwards and refills the object table at $1568 from the 21 start columns at $260F, each set to layer 3."
  },
  {
   "address": 9270,
   "type": "line",
   "text": "When the scroll column is between $EC and $FB it tests the clock minutes; most of the time it sets the alarm state to 2, otherwise it awards 2000 points once."
  },
  {
   "address": 9314,
   "type": "line",
   "text": "Copies two blocks of 240 bytes from $9268 and $9358 into the screen and colour maps and runs the picture expander at $1EC6, with the VIC set to screen 4 while it does so."
  },
  {
   "address": 9368,
   "type": "line",
   "text": "Copies 16 bytes of start positions to the sprite registers, eight sprite pointers to $C3F8 and eight colours to $D027."
  },
  {
   "address": 9401,
   "type": "line",
   "text": "Sixteen start values for the sprite position registers ($24B9) followed by eight sprite pointers ($24C9) and eight sprite colours ($24D1) that $2498 loads."
  },
  {
   "address": 9417,
   "type": "line",
   "text": "Data at $24C9 (f_24C9): read by init_sprites."
  },
  {
   "address": 9425,
   "type": "line",
   "text": "Data at $24D1 (f_24D1): read by init_sprites."
  },
  {
   "address": 9433,
   "type": "line",
   "text": "Reads the time-of-day clock. At hour 3 with minutes below $30 it enables sprites 0 to 3 and 6 and 7 and returns carry clear; otherwise it leaves only sprites 6 and 7 on and returns carry set, meaning the thirty minutes are up."
  },
  {
   "address": 9461,
   "type": "line",
   "text": "End-of-part-one scene: waits on frame flag $02BE and walks sprites 6 and 7 to the left, changing frame every four pixels, and then moves sprite 0 and 2 to 7 left."
  },
  {
   "address": 9614,
   "type": "line",
   "text": "Gives 2000 points the first time the player's map column is between $3D and $FB."
  },
  {
   "address": 9642,
   "type": "line",
   "text": "Called when part one is won: adds 10000 points, then a bonus for the minutes and the seconds left, plays the walk-off scene and resets the game state."
  },
  {
   "address": 9707,
   "type": "line",
   "text": "Waits until the frame counter $0306 reaches $F0, then calls $AC8D until it returns zero, and clears the counter."
  },
  {
   "address": 9730,
   "type": "line",
   "text": "Thirteen start values for the variables from $0295 ($2602), then the 21 start columns of the objects ($260F) that $2400 loads."
  },
  {
   "address": 9743,
   "type": "line",
   "text": "Data at $260F (f_260F): read by reset_game_state."
  },
  {
   "address": 9764,
   "type": "line",
   "text": "Entry of part two: clears the state, sets sprite colours, positions the player and the lorry, resets the clock to 6:00, draws the panel, programs CIA2 timer A, shows the PART TWO text and falls into the part-two main loop."
  },
  {
   "address": 9916,
   "type": "line",
   "text": "Main loop of part two: handles the energy-out ending, then waits for the frame counter, and each frame runs the scroller, the character, the objects and the obstacles in turn."
  },
  {
   "address": 10054,
   "type": "line",
   "text": "Frame tail of part two: runs the animators, the sound driver call at $8930 and the message printer."
  },
  {
   "address": 10073,
   "type": "line",
   "text": "Installs part two's interrupt set-up: disables the CIA1 interrupts, enables the raster interrupt, selects screen 1 and sets the IRQ vector to $27A1 and the NMI vector to $2956."
  },
  {
   "address": 10145,
   "type": "line",
   "text": "Part two's raster handler. Saves the registers, acknowledges the VIC, steps the band counter at $02 through 2, 1, 0 and dispatches by RTS through the three-entry table at $27C8 to the handler for the band."
  },
  {
   "address": 10184,
   "type": "line",
   "text": "Three words (address minus one) of the part-two raster handlers: $27CE, $2804, $282E, indexed by the band counter."
  },
  {
   "address": 10185,
   "type": "line",
   "text": "Data at $27C9 (f_27C9): read by part_two_irq."
  },
  {
   "address": 10190,
   "type": "line",
   "text": "Part two's raster handler for line $61: sets the lower playfield band's screen from $029E and scroll from $02A0 with the colours $09 and $05, shifts the rows once if $0247 is set, and sets the next interrupt line to $A3."
  },
  {
   "address": 10237,
   "type": "line",
   "text": "Restores A, X and Y and returns from the part-two raster interrupt."
  },
  {
   "address": 10244,
   "type": "line",
   "text": "Part two's raster handler for the band at line $A3: selects the panel's screen and colours with the fixed scroll $18, counts the frame counter $0306 up, runs a scroll step if $21 asks for one, and sets the next interrupt line to $F3."
  },
  {
   "address": 10286,
   "type": "line",
   "text": "Part two's raster handler for line $F3: sets the upper playfield band's screen (0), scroll ($029F) and colours for the next frame, runs the sound timer, updates the clock and sets the next interrupt line to $61."
  },
  {
   "address": 10335,
   "type": "line",
   "text": "One step of part two's sideways scroll: moves sprite slots 2 to 7 one pixel left ($2884), then adds $80 to $0248, whose carry raises the count of pending row shifts at $0247 that the lower band's handler works off."
  },
  {
   "address": 10355,
   "type": "line",
   "text": "Frees sprite slot X when its ninth X bit is clear, or clears the bit."
  },
  {
   "address": 10372,
   "type": "line",
   "text": "Moves the active sprite slots one pixel to the left with the scroll, and at the end of each character shifts the eight rows of the screen map and colour map one place to the left."
  },
  {
   "address": 10476,
   "type": "line",
   "text": "Called from the NMI: advances the scroll position by one pixel step (phase $02AD, column $02AE) and, each time the phase wraps, draws the next 4-by-4 tile column of the scenery into the screen and colour maps through the row pointers in zero page $10 and $30, taking the tile numbers from the map rows at $4400 and $4500."
  },
  {
   "address": 10521,
   "type": "line",
   "text": "Writes one tile column (tile number in A) of part two's scenery: for each of the characters of the tile it stores the character and its colour (from $9448) through the row pointer tables."
  },
  {
   "address": 10559,
   "type": "line",
   "text": "Converts a tile number in A to its character data address, $4600 plus 16 times the number, in zero page $24 and $25."
  },
  {
   "address": 10582,
   "type": "line",
   "text": "Non-maskable interrupt handler of part two, driven by CIA2 timer A. If the serial-port bit is set it goes to $2B25; otherwise on a timer underflow it re-arms the timer, enables interrupts, shifts seven rows of the colour map one cell left and calls $28EC for the new column."
  },
  {
   "address": 10679,
   "type": "line",
   "text": "Shifts eight rows of the part-two screen and colour maps one character to the left, wrapping the first column to the end, to scroll the lower band of the picture by a character."
  },
  {
   "address": 10818,
   "type": "line",
   "text": "Builds part two's whole starting scenery: expands ten tile columns of two rows of tiles each from the map rows at $2B21 into the screen map at $C0F0 and then copies the screen and colour maps for the lower rows from the tile data."
  },
  {
   "address": 10964,
   "type": "line",
   "text": "Fills part two's colour map at $D850 and $D8F0 from the characters on screen, looking each one up in the colour tables at $4320 (characters $80 up) and $9448, reading each character with the undocumented opcode LAX."
  },
  {
   "address": 11023,
   "type": "line",
   "text": "Copies the two 16-byte tables of row pointers from $5BD0 and $5BE0 into zero page $10 to $1F and $30 to $3F."
  },
  {
   "address": 11041,
   "type": "line",
   "text": "Two pointers, to the map rows at $4400 and $4500, used by $2A42."
  },
  {
   "address": 11042,
   "type": "line",
   "text": "Data at $2B22 (f_2B22): read by draw_part_two_screen."
  },
  {
   "address": 11045,
   "type": "line",
   "text": "Handles the CIA2 serial-port NMI source: re-programs timer A with a short count, waits a short loop, restores the serial data register and jumps to $0107."
  },
  {
   "address": 11087,
   "type": "line",
   "text": "Copies 160 bytes of screen data from $4300 into the top of the screen map at $C050."
  },
  {
   "address": 11101,
   "type": "line",
   "text": "Fills four 256-byte blocks of the screen map ($C000, $C100, $C200, $C2E8) with the blank character $F8."
  },
  {
   "address": 11121,
   "type": "line",
   "text": "Reads the joystick on CIA1 port A, inverts the five bits, and looks the result up in the table at $1A1B to get the direction in zero page $20 (a negative table entry gives 0)."
  },
  {
   "address": 11139,
   "type": "line",
   "text": "Part two's player movement: continues a started walk step, or reads the stick and starts a new one, selecting the movement routine from the table at $8FE8 by the stick bits."
  },
  {
   "address": 11265,
   "type": "line",
   "text": "Part two's action for the stick pushed up: unless the sprite slots are already on a path ($026B), it starts slots 0 and 1 on the jump path and sets the jump frames: sprite pointers $A0 and $A1 when Johnny faces right ($0297 is 7), otherwise $A2 and $A3."
  },
  {
   "address": 11307,
   "type": "line",
   "text": "Part two's action for the stick pushed down: clears the walking flag, sets the duck frame choice from $0303, and falls into the duck step at $2C38."
  },
  {
   "address": 11320,
   "type": "line",
   "text": "Part-two duck: counts the duck timer $029D down, sets the duck sprite frame and starts the ducking animation; at zero it ends the duck."
  },
  {
   "address": 11379,
   "type": "line",
   "text": "Part two's action for the stick pushed left: if the walking flag $02ED is set, takes a left step ($2C81) and advances the walk frame."
  },
  {
   "address": 11393,
   "type": "line",
   "text": "Moves the player's two sprites one pixel left, down to X $40, or ends the walk at the limit."
  },
  {
   "address": 11414,
   "type": "line",
   "text": "Part two's action for the stick pushed right: if the walking flag $02ED is set, takes a right step ($2CA4) and advances the walk frame with the table at $0E."
  },
  {
   "address": 11428,
   "type": "line",
   "text": "Moves the player's two sprites one pixel right, up to X $B0, once per call."
  },
  {
   "address": 11469,
   "type": "line",
   "text": "Part two's stick action for up and left: turns Johnny to face left if he is not, otherwise runs the jump start and the left walk."
  },
  {
   "address": 11488,
   "type": "line",
   "text": "Part two's stick action for down and left: turns Johnny to face left, then runs the duck step and the left walk."
  },
  {
   "address": 11515,
   "type": "line",
   "text": "Part two's stick action for up and right: turns Johnny to face right, then runs the jump start and the right walk."
  },
  {
   "address": 11534,
   "type": "line",
   "text": "Part two's stick action for down and right: turns Johnny to face right, then runs the duck step and the right walk."
  },
  {
   "address": 11558,
   "type": "line",
   "text": "Marks Y consecutive entries of the eight-slot shot tables, starting at X, as active and moving up."
  },
  {
   "address": 11580,
   "type": "line",
   "text": "Moves each active entry of the eight-slot table at $026B along a path read from $8FC8, advancing a step counter in $027B and switching direction in $0273 at step $20; an entry that has stepped back to zero is released."
  },
  {
   "address": 11666,
   "type": "line",
   "text": "Chooses the second sprite's pointer from the table at $2DBE (the walk or the duck frame, by the animation phase) and writes it to $C3F9."
  },
  {
   "address": 11710,
   "type": "line",
   "text": "Sprite pointers of the player's second sprite for the walk and duck frames, indexed by the animation phase."
  },
  {
   "address": 11714,
   "type": "line",
   "text": "Event routine: allocates a sprite for the entity in slot $0222 and colours it."
  },
  {
   "address": 11732,
   "type": "line",
   "text": "Event 1's creature (sprite slot in $0222; it enters from the left at height $70). Each pass it moves 3 pixels right ($3618 with carry set); when it leaves the world the slot variable is cleared and 80 points are added. While Johnny is not ducking ($0243 is 0) it hurts him when its X is 0 to 15 pixels beyond his: the shield (carry set at $32C7) loses 3 steps and the creature is removed. Its frame comes from $8F9A and the animation counter $02A7."
  },
  {
   "address": 11801,
   "type": "line",
   "text": "Event 4: allocates a sprite at the right edge at height $98 for the entity in slot $0223 and colours it 8."
  },
  {
   "address": 11819,
   "type": "line",
   "text": "Event 4's creature (slot in $0223; it enters from the right at height $98). Each pass it moves 1 pixel left; leaving the world clears the slot variable and adds 35 points. It hurts Johnny when its X is 4 pixels behind to 7 pixels beyond his and Johnny's second sprite is at height $87 or lower: the shield loses 4 steps. Its frame comes from $8FA7 and the counter $02A5."
  },
  {
   "address": 11898,
   "type": "line",
   "text": "Event 2: allocates a sprite at the right edge at height $8A for the entity in slot $0225 and colours it 1."
  },
  {
   "address": 11916,
   "type": "line",
   "text": "Event 2's creature (slot in $0225; it enters from the right at height $8A). Each pass it moves 3 pixels left; leaving the world clears the slot variable and adds 100 points. It hurts Johnny when its X is 1 to 16 pixels behind his and his second sprite is at height $7C or lower: the shield loses 6 steps. Its frame comes from $8F9E and the counter $02A6."
  },
  {
   "address": 11988,
   "type": "line",
   "text": "Event 7: allocates a sprite at the right edge at height $8D for the pair in slots $0227 and $0228 and colours it 7."
  },
  {
   "address": 12011,
   "type": "line",
   "text": "Event 7's pair of sprites (slots in $0227 and $0228; enters from the right at height $8D). The second sprite is started when the first has come in past X $9A; after that both move 2 pixels left a pass. Leaving the world adds 85 points. When the first is 1 to 12 pixels behind Johnny and his second sprite is at height $85 or lower, the shield loses 5 steps and both are freed."
  },
  {
   "address": 12160,
   "type": "line",
   "text": "Event 6: allocates a sprite at the right edge at height $8C for the entity in slot $0229, sets $0234 to 1 and colours it 9."
  },
  {
   "address": 12180,
   "type": "line",
   "text": "Event 6's pair of sprites (slots in $0229 and $022A; enters from the right at height $8C). Each pass both move one pixel, left or right as the flag at $0234 says ($3032); the second is started when the first has come in past X $9C. When the scroll column reaches $A2 both are removed and 1,500 points are added."
  },
  {
   "address": 12338,
   "type": "line",
   "text": "Moves the entity in X by one pixel step, left or right according to flag $0234."
  },
  {
   "address": 12361,
   "type": "line",
   "text": "Spawns the first two members of a group."
  },
  {
   "address": 12369,
   "type": "line",
   "text": "Starts and moves the group of five sprites in the slots from $022B (the ending sequence's group, started by $3A6E), giving them the frames from $8FAF."
  },
  {
   "address": 12432,
   "type": "line",
   "text": "Allocates a sprite for one member of the group, gives it its colour and its sprite pointer, and records its slot."
  },
  {
   "address": 12457,
   "type": "line",
   "text": "Spawns the group's members, one after another, once the first has crossed column $9C."
  },
  {
   "address": 12476,
   "type": "line",
   "text": "The sprite pointers $8B, $8A, $8C of the group."
  },
  {
   "address": 12478,
   "type": "line",
   "text": "Sprite pointers ($30BE) and Y positions ($30C1) of the members of the group spawned by $30A9."
  },
  {
   "address": 12481,
   "type": "line",
   "text": "Data at $30C1 (f_30C1): read by spawn_group_member."
  },
  {
   "address": 12488,
   "type": "line",
   "text": "Event routine: starts the entity in slot $0230, its sprite pair and colour."
  },
  {
   "address": 12525,
   "type": "line",
   "text": "Event 9's enemy pair (slot in $0230; enters from the left at height $72). It moves with its shadow ($315C) and, when no shot of its own is in flight, starts one ($327D). If Johnny's laser shot is already beyond it, the enemy is shot: 1,000 points are added, the pair's pictures change to $AC and $AB and the pair is removed a few frames later."
  },
  {
   "address": 12636,
   "type": "line",
   "text": "Moves an entity and its shadow sprite one step left, or right, together."
  },
  {
   "address": 12668,
   "type": "line",
   "text": "Starts a pair of entities that chase the player: allocates sprites on the left and right edges once, and sets their colour and pointer."
  },
  {
   "address": 12705,
   "type": "line",
   "text": "The chasing pair's first member (slot in $0232): moves it with its shadow and, when it is 16 or more pixels from Johnny and no effects are active, starts the second member at $32DA."
  },
  {
   "address": 12737,
   "type": "line",
   "text": "Allocates a sprite pair for the entity in $0231 and sets its colour and pointers."
  },
  {
   "address": 12765,
   "type": "line",
   "text": "Event 8's figure (slots in $0231 and the one after it; enters from the left at height $74, colour 15). Each pass both move 3 pixels right. When the figure is within 12 pixels of Johnny the energy loses 24 steps and the message CAPTURED AND DEACTIVATED is queued; if Johnny's laser shot reaches it first the figure is removed and 3,000 points are added."
  },
  {
   "address": 12881,
   "type": "line",
   "text": "Moves sprite slot X and the slot after it one pixel to the right, then jumps to $323E to set the second sprite's frame pointer."
  },
  {
   "address": 12897,
   "type": "line",
   "text": "Moves a sprite pair one step left, setting the first sprite pointer to $B5."
  },
  {
   "address": 12925,
   "type": "line",
   "text": "Allocates a sprite for the entity in $0233 and gives it the position of the entity in $0230."
  },
  {
   "address": 12960,
   "type": "line",
   "text": "The shot of the enemy at $30ED (slot in $0233): each pass it moves 6 pixels right; when it has passed Johnny's X the energy loses 3 steps and it is removed."
  },
  {
   "address": 12999,
   "type": "line",
   "text": "Plays the hit sound ($9B3F), then drains the player's energy bar by Y steps when carry is clear, or the shield bar when carry is set."
  },
  {
   "address": 13010,
   "type": "line",
   "text": "Frees sprite slot X, then drains the energy or shield as $32C7 does, by Y steps."
  },
  {
   "address": 13018,
   "type": "line",
   "text": "Allocates a sprite for the entity in $0235 and gives it the position of the entity in $0232."
  },
  {
   "address": 13052,
   "type": "line",
   "text": "The second member of the chasing pair (slot in $0235): each pass it moves 6 pixels right; when it has passed Johnny's X the energy loses 24 steps and it is removed."
  },
  {
   "address": 13103,
   "type": "line",
   "text": "Allocates two sprites and starts the overlay sprite pair at $0293."
  },
  {
   "address": 13125,
   "type": "line",
   "text": "Per-pass routine of the overlay pair started by $332F."
  },
  {
   "address": 13148,
   "type": "line",
   "text": "Allocates a sprite for the entity in slot $0236 at the height in $0256 and gives it a path."
  },
  {
   "address": 13180,
   "type": "line",
   "text": "The object started by $335C in the ending sequence (slot in $0236): each pass it moves 6 pixels left and, once it has passed Johnny, loses its slot (the hit routine is called with no damage)."
  },
  {
   "address": 13228,
   "type": "line",
   "text": "Event 5: allocates a sprite at the left edge at height $7B for the entity in slot $023A and colours it 3."
  },
  {
   "address": 13243,
   "type": "line",
   "text": "Event 5's creature (slot in $023A; enters from the left at height $7B). Each pass it moves 2 pixels right and is removed when it leaves the world; it does no damage and awards no points."
  },
  {
   "address": 13265,
   "type": "line",
   "text": "Event 11: allocates a sprite at the right edge at height $6A for the entity in slot $023D and colours it 1."
  },
  {
   "address": 13283,
   "type": "line",
   "text": "Event 11's pair of sprites (slots in $023D and $023E; enters from the right at height $6A). The second is started when the first is past X $9C; both move 3 pixels left a pass. While Johnny is not ducking, if the first is 1 to 16 pixels behind his X, the shield loses 8 steps and both are removed. The second leaving the world adds 100 points."
  },
  {
   "address": 13424,
   "type": "line",
   "text": "Event 3: allocates a sprite at the right edge at height $94 for the entity in slot $0226 and colours it 8."
  },
  {
   "address": 13442,
   "type": "line",
   "text": "Event 3's creature (slot in $0226; enters from the right at height $94). Each pass it moves 2 pixels left; leaving the world adds 50 points. It hurts Johnny when it is 1 to 16 pixels behind his X and his second sprite is at height $85 or lower: the shield loses 5 steps."
  },
  {
   "address": 13514,
   "type": "line",
   "text": "Event 12: allocates a sprite at the left edge at height $8C for the entity in slot $023F and colours it 14."
  },
  {
   "address": 13532,
   "type": "line",
   "text": "Event 12's creature (slot in $023F; enters from the left at height $8C). Each pass it moves 2 pixels right; leaving the world adds 500 points. It hurts Johnny when it is 0 to 7 pixels beyond his X and his second sprite is at height $7B or lower: the energy loses 16 steps."
  },
  {
   "address": 13603,
   "type": "line",
   "text": "Event 13: allocates a sprite at the left edge at height $8C for the entity in slot $0240 and colours it 3."
  },
  {
   "address": 13621,
   "type": "line",
   "text": "Event 13's creature (slot in $0240; enters from the left at height $8C). Each pass it moves 3 pixels right; leaving the world adds 500 points. It hurts Johnny when it is 0 to 7 pixels beyond his X and his second sprite is at height $7B or lower: the energy loses 20 steps."
  },
  {
   "address": 13692,
   "type": "line",
   "text": "Event 14: allocates a sprite at the right edge at height $7B for the entity in slot $0244 and colours it 1."
  },
  {
   "address": 13707,
   "type": "line",
   "text": "Event 14's creature (slot in $0244; enters from the right at height $7B). Each pass it moves 1 pixel left and is removed when it leaves the world; it does no damage and awards no points."
  },
  {
   "address": 13729,
   "type": "line",
   "text": "Event 15: allocates a sprite at the right edge at height $8A for the entity in slot $0242 and colours it 7."
  },
  {
   "address": 13747,
   "type": "line",
   "text": "Event 15's creature (slot in $0242; enters from the right at height $8A), which hops: every 48th pass of its walk it starts a jump on its own path ($2D26). Each pass it moves 1 pixel left. When it is within 8 pixels behind to 5 pixels beyond Johnny's X and Johnny is not jumping ($026B is 0) the shield loses 5 steps and it is removed; if Johnny is in the air it goes under him."
  },
  {
   "address": 13848,
   "type": "line",
   "text": "Moves sprite slot X Y pixels horizontally: right when carry is set, left when it is clear, handling the ninth bit of X in $0263. When the slot leaves the world it is freed and carry is returned set; otherwise carry is clear."
  },
  {
   "address": 13923,
   "type": "line",
   "text": "Finds a free one of the eight sprite slots (active flags at $025B), sets its Y from Y; with carry set it starts at the left edge (X = $0C), with carry clear at the right (X = $14B). Returns X = slot, carry set when none is free."
  },
  {
   "address": 13975,
   "type": "line",
   "text": "Copies the eight slots' X, Y, enable and ninth X bit from $024B, $0253, $025B and $0263 into the VIC's sprite registers."
  },
  {
   "address": 14013,
   "type": "line",
   "text": "Every fourth pass advances four animation counters: $02A5 (0 to 1), $02A6 (0 to 2), $02A7 (0 to 3) and $02A9 (0 to 7)."
  },
  {
   "address": 14078,
   "type": "line",
   "text": "Calls the update routine of every entity whose slot variable is non-zero, from $0222 through $0244, and the group and overlay updates."
  },
  {
   "address": 14292,
   "type": "line",
   "text": "Returns in A the X position of slot X halved: the ninth bit rotated into the top of the low byte."
  },
  {
   "address": 14301,
   "type": "line",
   "text": "Scans ten columns of the map row at $4400 starting at the scroll column for tile $59 and for each calls $37FB to draw an animation frame of it."
  },
  {
   "address": 14331,
   "type": "line",
   "text": "Draws one frame of the animated scenery tile $59 at the column given by Y."
  },
  {
   "address": 14374,
   "type": "line",
   "text": "Character frames that $37FB draws for the animated scenery tile $59, four characters per frame."
  },
  {
   "address": 14375,
   "type": "line",
   "text": "Data at $3827 (f_3827): read by draw_scenery_a."
  },
  {
   "address": 14376,
   "type": "line",
   "text": "Data at $3828 (f_3828): read by draw_scenery_a."
  },
  {
   "address": 14377,
   "type": "line",
   "text": "Data at $3829 (f_3829): read by draw_scenery_a."
  },
  {
   "address": 14386,
   "type": "line",
   "text": "Data at $3832 (f_3832): read by draw_scenery_a."
  },
  {
   "address": 14394,
   "type": "line",
   "text": "The same for tile $5A, drawn by $3858 from the frames at $3885."
  },
  {
   "address": 14424,
   "type": "line",
   "text": "Draws one frame of the animated scenery tile $5A at the column given by Y."
  },
  {
   "address": 14469,
   "type": "line",
   "text": "Character frames that $3858 draws for the animated scenery tile $5A."
  },
  {
   "address": 14470,
   "type": "line",
   "text": "Data at $3886 (f_3886): read by draw_scenery_b."
  },
  {
   "address": 14471,
   "type": "line",
   "text": "Data at $3887 (f_3887): read by draw_scenery_b."
  },
  {
   "address": 14472,
   "type": "line",
   "text": "Data at $3888 (f_3888): read by draw_scenery_b."
  },
  {
   "address": 14481,
   "type": "line",
   "text": "Data at $3891 (f_3891): read by draw_scenery_b."
  },
  {
   "address": 14489,
   "type": "line",
   "text": "Tests whether the two entities in slots $0229 and $022A are close to the player and sets $030B and the walk-stop flag when the scroll column is under $A3."
  },
  {
   "address": 14547,
   "type": "line",
   "text": "Calls $8A8E unless the flag at $030B is set."
  },
  {
   "address": 14662,
   "type": "line",
   "text": "Returns in A the column of the character cell under the player's feet: the player's Y minus $78, divided by 8."
  },
  {
   "address": 14672,
   "type": "line",
   "text": "Part two's terrain effect that sinks Johnny: unless it is already running, copies the player's shapes to $E000, switches the sprite pointers to $B2 and $B3 and shifts the two shapes down one row 22 times, five frames apart, draining two steps of energy each time."
  },
  {
   "address": 14799,
   "type": "line",
   "text": "Copies 64 bytes of sprite shape number A to $E000 and onwards, to change the shape of the sprite set aside for the player."
  },
  {
   "address": 14826,
   "type": "line",
   "text": "The copy loop of $39CF."
  },
  {
   "address": 14829,
   "type": "line",
   "text": "The operand of the copy loop in $39CF: its source address low byte."
  },
  {
   "address": 14830,
   "type": "line",
   "text": "The operand of the copy loop in $39CF: its source address high byte."
  },
  {
   "address": 14837,
   "type": "line",
   "text": "Reached at the end of the escape: scores bonus points, frees sprite slots 2 to 5 and runs the end-of-game sequence through the table at $3AE0, one step per frame."
  },
  {
   "address": 14862,
   "type": "line",
   "text": "Waits for the frame counter and runs the step of part two's ending sequence that $0310 selects, through the table at $3AE0."
  },
  {
   "address": 15037,
   "type": "line",
   "text": "Sets the two sprite pointers of the player's pair to one of two frame pairs according to the walking direction in $0297, unless $023B is set."
  },
  {
   "address": 15072,
   "type": "line",
   "text": "Six words (address minus one) of the steps of part two's ending sequence at $3A30, $3A5E, $3A6E, $3A80, $3A93 and $3AAF."
  },
  {
   "address": 15073,
   "type": "line",
   "text": "Data at $3AE1 (f_3AE1): read by end_sequence_wait."
  },
  {
   "address": 15084,
   "type": "line",
   "text": "Reads the fire and direction edges and, on a fire press with no shot already in flight, allocates a sprite slot for a laser shot and starts it at the player's position."
  },
  {
   "address": 15119,
   "type": "line",
   "text": "Allocates a sprite slot for Johnny's laser shot at the left edge, at the height in the table, and copies Johnny's X to it."
  },
  {
   "address": 15147,
   "type": "line",
   "text": "Moves the laser shot slot in $023C five pixels in its direction and frees it when it leaves the world."
  },
  {
   "address": 15163,
   "type": "line",
   "text": "Fills two rows of the screen map with the character $C8 and draws a block of 4 columns by 6 rows of characters from $3B71 with colour 15, used in the ending."
  },
  {
   "address": 15217,
   "type": "line",
   "text": "Six rows of four characters, drawn at $3B3B as a panel."
  },
  {
   "address": 15241,
   "type": "line",
   "text": "Converts the clock to seconds ($02A2), subtracts the scroll column and, when the player is a set distance ahead, starts the chasing pair at $317C or $32DA depending on the number of free slots."
  },
  {
   "address": 15345,
   "type": "line",
   "text": "When the walk animation frame changes, advances the animation of each active effect slot ($0283) and frees the slot after nine frames."
  },
  {
   "address": 15414,
   "type": "line",
   "text": "Returns not equal (non-zero) when any of the eight effect slots at $0283 is active."
  },
  {
   "address": 15429,
   "type": "line",
   "text": "Allocates two sprites at the left of the screen with sprite pointers $BC and $BD and colour 3."
  },
  {
   "address": 15462,
   "type": "line",
   "text": "Moves sprite slot X and the slot after it one pixel to the left."
  },
  {
   "address": 15475,
   "type": "line",
   "text": "Runs the sound timer step four times when the tune is playing."
  },
  {
   "address": 15493,
   "type": "line",
   "text": "Adds $B0 to the sound tick counter $031A and runs the sound driver on each carry."
  },
  {
   "address": 15507,
   "type": "line",
   "text": "Adds $E4 to a fractional counter at $031A and, on each carry, runs the music and sound effect drivers ($A898, $A9D6, $A48B, $A5E2, $A73B), then the common driver tail ($AB48)."
  },
  {
   "address": 15518,
   "type": "line",
   "text": "The sound driver call: runs the voices' step and effect routines and the filter sweep."
  },
  {
   "address": 15583,
   "type": "line",
   "text": "Raster handler that cycles the multicolour background colour $D023 through the table at $8438 line by line, 24 times, then hands the interrupt to the vector at $3D2E and calls the sound driver."
  },
  {
   "address": 15840,
   "type": "line",
   "text": "544 bytes that decode as an older build of part two's ending sequence: its variable accesses use zero-page addresses where the live code uses page-3 addresses, and its calls point at routines that are not there. No instruction refers to it and no recorded run executes it."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "Part one's map, top row of tiles: 256 tile numbers, one per four-character column of the world. The scroll column $02AE indexes it."
  },
  {
   "address": 16640,
   "type": "line",
   "text": "Part one's map, middle row of tiles; the row Johnny walks in. The searchable and container tests read it."
  },
  {
   "address": 16896,
   "type": "line",
   "text": "Part one's map, bottom row of tiles."
  },
  {
   "address": 17152,
   "type": "line",
   "text": "160 character codes (four rows of 40) copied into the top of part two's screen at start by $2B4F."
  },
  {
   "address": 17312,
   "type": "line",
   "text": "The colours of part two's characters $80 to $C7 (72 bytes of $0A, $0B, $0E and $0F): the colour fill at $2AD4 reads this table as $4320 plus the character code."
  },
  {
   "address": 17384,
   "type": "line",
   "text": "Twelve words (address minus one) of the mode handlers, indexed by the mode at $0200."
  },
  {
   "address": 17385,
   "type": "line",
   "text": "Data at $43E9 (f_43E9): read by main_loop_frame."
  },
  {
   "address": 17408,
   "type": "line",
   "text": "Part two's map, upper row of tiles: 256 tile numbers."
  },
  {
   "address": 17664,
   "type": "line",
   "text": "Part two's map, lower row of tiles: 256 tile numbers."
  },
  {
   "address": 17920,
   "type": "line",
   "text": "Part two's 160 tiles, 16 bytes each: a 4 by 4 block of character codes, row after row."
  },
  {
   "address": 18944,
   "type": "line",
   "text": "Bytes $4A00 to $4DFF of part2_tiles (part 2 of 3, 2560 bytes in all): Part two's 160 tiles, 16 bytes each."
  },
  {
   "address": 19968,
   "type": "line",
   "text": "Bytes $4E00 to $4FFF of part2_tiles (part 3 of 3, 2560 bytes in all): Part two's 160 tiles, 16 bytes each."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Part one's 189 tiles, 16 bytes each: a 4 by 4 block of character codes."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "Bytes $5400 to $57FF of part1_tiles (part 2 of 3, 3024 bytes in all): Part one's 189 tiles, 16 bytes each."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "Bytes $5800 to $5BCF of part1_tiles (part 3 of 3, 3024 bytes in all): Part one's 189 tiles, 16 bytes each."
  },
  {
   "address": 23504,
   "type": "line",
   "text": "Sixteen bytes of screen row pointers ($5BD0) and sixteen of colour row pointers ($5BE0), copied to zero page by $2B0F; then the three-word raster handler table of part one ($5BF0) and the eight keyboard column masks ($5BF6)."
  },
  {
   "address": 23520,
   "type": "line",
   "text": "Data at $5BE0 (f_5BE0): read by init_row_pointers."
  },
  {
   "address": 23536,
   "type": "line",
   "text": "Data at $5BF0 (f_5BF0): read by irq_entry."
  },
  {
   "address": 23537,
   "type": "line",
   "text": "Data at $5BF1 (f_5BF1): read by irq_entry."
  },
  {
   "address": 23542,
   "type": "line",
   "text": "Data at $5BF6 (f_5BF6): read by key_pressed."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "The screen memory of the title picture: one byte per cell holding two colours."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "The multicolour bitmap of the title picture, 8,000 bytes."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "Bytes $6400 to $67FF of title_picture_bitmap (part 2 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 26624,
   "type": "line",
   "text": "Bytes $6800 to $6BFF of title_picture_bitmap (part 3 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 27648,
   "type": "line",
   "text": "Bytes $6C00 to $6FFF of title_picture_bitmap (part 4 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 28672,
   "type": "line",
   "text": "Bytes $7000 to $73FF of title_picture_bitmap (part 5 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 29696,
   "type": "line",
   "text": "Bytes $7400 to $77FF of title_picture_bitmap (part 6 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "Bytes $7800 to $7BFF of title_picture_bitmap (part 7 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "Bytes $7C00 to $7F3F of title_picture_bitmap (part 8 of 8, 8000 bytes in all): The multicolour bitmap of the title picture, 8,000 bytes.."
  },
  {
   "address": 32576,
   "type": "line",
   "text": "1,192 bytes after the picture's bitmap that no routine was found to read; the first part is a second copy of the text of messages 75 to 79."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "Bytes $8000 to $83E7 of picture_tail, the part above the 32 KB boundary: the bytes that follow the title picture's bitmap, which no routine was found to read."
  },
  {
   "address": 33600,
   "type": "line",
   "text": "Bytes $8340 to $83E7 of picture_tail (part 2 of 2, 1192 bytes in all): 1,192 bytes after the picture's bitmap that no routine was found to read; the first part is a second copy of the text of messages 75 to 79.."
  },
  {
   "address": 33762,
   "type": "line",
   "text": "Data at $83E2 (f_83E2): read by game_over_scores."
  },
  {
   "address": 33768,
   "type": "line",
   "text": "The ten high scores, six bytes each: a three-byte score in decimal and three initials in lower-case letters."
  },
  {
   "address": 33769,
   "type": "line",
   "text": "Data at $83E9 (f_83E9): written by game_over_scores; read by game_over_scores."
  },
  {
   "address": 33770,
   "type": "line",
   "text": "Data at $83EA (f_83EA): written by game_over_scores; read by game_over_scores."
  },
  {
   "address": 33771,
   "type": "line",
   "text": "Data at $83EB (f_83EB): written by game_over_scores."
  },
  {
   "address": 33772,
   "type": "line",
   "text": "Data at $83EC (f_83EC): written by game_over_scores."
  },
  {
   "address": 33773,
   "type": "line",
   "text": "Data at $83ED (f_83ED): written by game_over_scores."
  },
  {
   "address": 33828,
   "type": "line",
   "text": "Title screen data: character pairs ($8424) and colour values for the credits, and the 16 colours the colour bars cycle through ($8438)."
  },
  {
   "address": 33834,
   "type": "line",
   "text": "Data at $842A (f_842A): read by draw_high_score_table."
  },
  {
   "address": 33840,
   "type": "line",
   "text": "Data at $8430 (f_8430): read by draw_high_score_table."
  },
  {
   "address": 33846,
   "type": "line",
   "text": "Data at $8436 (a_8436): read by draw_high_score_table."
  },
  {
   "address": 33847,
   "type": "line",
   "text": "Data at $8437 (a_8437): read by draw_high_score_table."
  },
  {
   "address": 33848,
   "type": "line",
   "text": "Data at $8438 (f_8438): written by rotate_colour_table; read by colour_bar_irq, rotate_colour_table, attract_colour_fill."
  },
  {
   "address": 33849,
   "type": "line",
   "text": "Data at $8439 (f_8439): read by rotate_colour_table, attract_colour_fill."
  },
  {
   "address": 33850,
   "type": "line",
   "text": "Data at $843A (a_843A): read by attract_colour_fill."
  },
  {
   "address": 33851,
   "type": "line",
   "text": "Data at $843B (a_843B): read by attract_colour_fill."
  },
  {
   "address": 33852,
   "type": "line",
   "text": "Data at $843C (a_843C): read by attract_colour_fill."
  },
  {
   "address": 33853,
   "type": "line",
   "text": "Data at $843D (a_843D): read by attract_colour_fill."
  },
  {
   "address": 33854,
   "type": "line",
   "text": "Data at $843E (a_843E): read by attract_colour_fill."
  },
  {
   "address": 33855,
   "type": "line",
   "text": "Data at $843F (a_843F): read by attract_colour_fill."
  },
  {
   "address": 33856,
   "type": "line",
   "text": "Data at $8440 (a_8440): read by attract_colour_fill."
  },
  {
   "address": 33857,
   "type": "line",
   "text": "Data at $8441 (a_8441): read by attract_colour_fill."
  },
  {
   "address": 33863,
   "type": "line",
   "text": "Data at $8447 (a_8447): written by rotate_colour_table."
  },
  {
   "address": 33864,
   "type": "line",
   "text": "The colour of each of the 256 characters of part one's character set, used when columns are drawn."
  },
  {
   "address": 34120,
   "type": "line",
   "text": "Four blocks of 250 colour values ($8548, $8642, $873C, $8836) copied into colour RAM for the title picture."
  },
  {
   "address": 34370,
   "type": "line",
   "text": "Data at $8642 (f_8642): read by attract_bitmap_show."
  },
  {
   "address": 34434,
   "type": "line",
   "text": "Continues title_picture_colours ($8548 to $8935) at offset 314: Four blocks of 250 colour values ($8548, $8642, $873C, $8836) copied into colour RAM for the title picture. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 34620,
   "type": "line",
   "text": "Data at $873C (f_873C): read by attract_bitmap_show."
  },
  {
   "address": 34684,
   "type": "line",
   "text": "Continues title_picture_colours ($8548 to $8935) at offset 564: Four blocks of 250 colour values ($8548, $8642, $873C, $8836) copied into colour RAM for the title picture. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 34870,
   "type": "line",
   "text": "Data at $8836 (f_8836): read by attract_bitmap_show."
  },
  {
   "address": 34934,
   "type": "line",
   "text": "Continues title_picture_colours ($8548 to $8935) at offset 814: Four blocks of 250 colour values ($8548, $8642, $873C, $8836) copied into colour RAM for the title picture. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 35120,
   "type": "line",
   "text": "Data at $8930 (s_8930): read by part_two_frame_tail."
  },
  {
   "address": 35126,
   "type": "line",
   "text": "Called once a pass: when the scroll column has changed, awards 1000 points every sixteenth column and starts the creature that the event table at $896E names for the new column."
  },
  {
   "address": 35182,
   "type": "line",
   "text": "For each scroll column of part two, an event number from 0 to 15: 0 is nothing, the others start an obstacle or animal."
  },
  {
   "address": 35438,
   "type": "line",
   "text": "Fifteen words (address minus one) of the routines that start each event's creature: $2DC2, $2E7A, $3470, $2E19, $33AC, $2F80, $2ED4, $31C1, $30C8, $33D1, $34CA, $3523, $357C and $35A1."
  },
  {
   "address": 35439,
   "type": "line",
   "text": "Data at $8A6F (f_8A6F): read by part_two_column_events."
  },
  {
   "address": 35470,
   "type": "line",
   "text": "Looks up what is under the player in part two: finds the character under the feet in the screen map, takes its type from the table at $8AFF and jumps to the handler for that type."
  },
  {
   "address": 35490,
   "type": "line",
   "text": "Part of $8A8E: from the player's Y ($0254 less $78, divided by 8), X ($024C less $030C and the scroll phase, divided by 8) and the row offsets at $8AEC it works out which cell of the screen map is under the player's feet, and then looks the character there up in the terrain table."
  },
  {
   "address": 35548,
   "type": "line",
   "text": "Takes the terrain type found under the player ($8AFF) and, unless it is zero, jumps to the handler for it through the table at $8AEF."
  },
  {
   "address": 35564,
   "type": "line",
   "text": "Three offsets, 0, 40 and 80, added to the map row for the three rows under the player's feet."
  },
  {
   "address": 35567,
   "type": "line",
   "text": "Seven words (address minus one) of the handlers for the kinds of ground under the player: $38DC, $38EA, $38FD, $3907, $3913, $392A, $393A."
  },
  {
   "address": 35568,
   "type": "line",
   "text": "Data at $8AF0 (f_8AF0): read by terrain_dispatch."
  },
  {
   "address": 35583,
   "type": "line",
   "text": "For each character code, the kind of ground it is (0 for none), as an index into the handler table at $8AEF."
  },
  {
   "address": 35616,
   "type": "line",
   "text": "Data at $8B20 (a_8B20): read by loader_stack_address."
  },
  {
   "address": 35680,
   "type": "line",
   "text": "Continues terrain_type_table ($8AFF to $8BFE) at offset 97: For each character code, the kind of ground it is (0 for none), as an index into the handler table at $8AEF. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 35839,
   "type": "line",
   "text": "Data after the terrain table whose reader was not found: mostly zeros with a few small values."
  },
  {
   "address": 36752,
   "type": "line",
   "text": "Part two's sprite pointer sequences: effect frames ($8F90), the animals' frames ($8F9A onwards) and the player's."
  },
  {
   "address": 36762,
   "type": "line",
   "text": "Data at $8F9A (f_8F9A): read by actor_0222_update."
  },
  {
   "address": 36766,
   "type": "line",
   "text": "Data at $8F9E (f_8F9E): read by actor_0225_update."
  },
  {
   "address": 36769,
   "type": "line",
   "text": "Data at $8FA1 (f_8FA1): read by actor_0227_update."
  },
  {
   "address": 36772,
   "type": "line",
   "text": "Data at $8FA4 (f_8FA4): read by actor_0227_update."
  },
  {
   "address": 36775,
   "type": "line",
   "text": "Data at $8FA7 (f_8FA7): read by actor_0223_update."
  },
  {
   "address": 36777,
   "type": "line",
   "text": "Data at $8FA9 (f_8FA9): read by actor_0226_update."
  },
  {
   "address": 36779,
   "type": "line",
   "text": "Data at $8FAB (f_8FAB): read by actor_0229_update."
  },
  {
   "address": 36781,
   "type": "line",
   "text": "Data at $8FAD (f_8FAD): read by actor_0229_update."
  },
  {
   "address": 36783,
   "type": "line",
   "text": "Data at $8FAF (f_8FAF): read by actor_022B_group_update."
  },
  {
   "address": 36789,
   "type": "line",
   "text": "Data at $8FB5 (f_8FB5): read by actor_0235_update."
  },
  {
   "address": 36791,
   "type": "line",
   "text": "Data at $8FB7 (f_8FB7): read by actor_0236_update."
  },
  {
   "address": 36793,
   "type": "line",
   "text": "Data at $8FB9 (f_8FB9): read by actor_023A_update."
  },
  {
   "address": 36796,
   "type": "line",
   "text": "Data at $8FBC (f_8FBC): read by actor_023D_update."
  },
  {
   "address": 36798,
   "type": "line",
   "text": "Data at $8FBE (f_8FBE): read by actor_023D_update."
  },
  {
   "address": 36800,
   "type": "line",
   "text": "Data at $8FC0 (f_8FC0): read by actor_023F_update."
  },
  {
   "address": 36802,
   "type": "line",
   "text": "Data at $8FC2 (f_8FC2): read by actor_0240_update."
  },
  {
   "address": 36804,
   "type": "line",
   "text": "Data at $8FC4 (f_8FC4): read by actor_0244_update."
  },
  {
   "address": 36806,
   "type": "line",
   "text": "Data at $8FC6 (f_8FC6): read by actor_0242_update."
  },
  {
   "address": 36808,
   "type": "line",
   "text": "The vertical path of a jump or a shot: 32 steps of 0 or 1 pixel."
  },
  {
   "address": 36840,
   "type": "line",
   "text": "Sixteen words (address minus one) of the part-two player actions indexed by the stick: jump, duck, walk left, walk right and the diagonals."
  },
  {
   "address": 36841,
   "type": "line",
   "text": "Data at $8FE9 (f_8FE9): read by part_two_walk."
  },
  {
   "address": 36872,
   "type": "line",
   "text": "Data after the walk handler table, read by the part-two movement code."
  },
  {
   "address": 37120,
   "type": "line",
   "text": "The characters of the status panel: 180 bytes ($9100) for the upper part and 180 ($91B4) for the lower, copied by $1E98."
  },
  {
   "address": 37187,
   "type": "line",
   "text": "Data at $9143 (s_9143): read by part_two_colour_fill."
  },
  {
   "address": 37300,
   "type": "line",
   "text": "Data at $91B4 (f_91B4): read by draw_panel."
  },
  {
   "address": 37364,
   "type": "line",
   "text": "Continues panel_characters ($9100 to $9267) at offset 244: The characters of the status panel: 180 bytes ($9100) for the upper part and 180 ($91B4) for the lower, copied by $1E98. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 37480,
   "type": "line",
   "text": "Two blocks of 240 characters ($9268 and $9358): a picture drawn into the screen by $2462."
  },
  {
   "address": 37720,
   "type": "line",
   "text": "Data at $9358 (f_9358): read by draw_picture_screen."
  },
  {
   "address": 37784,
   "type": "line",
   "text": "Continues picture_characters ($9268 to $9447) at offset 304: Two blocks of 240 characters ($9268 and $9358): a picture drawn into the screen by $2462. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 37960,
   "type": "line",
   "text": "The colour of each of the 256 characters of part two's character set."
  },
  {
   "address": 38216,
   "type": "line",
   "text": "Hand-over entry point, where the loader's last instruction jumps. Sets the stack and the memory configuration ($01 = $35: I/O visible, no ROMs), clears zero page, the stack page and $0300 to $03FF, sets the SID volume to 15 and falls into the attract mode."
  },
  {
   "address": 38241,
   "type": "line",
   "text": "Attract mode, also the restart point after a game ends: silences the SID, starts tune 5, resets the game state, draws the high-score screen with $9637 and $95FC, then loops polling the stick and keys: fire starts the intro at $96B7, F1 starts part one at $0400, F3 starts part two at $2624; it alternates the screen with the high-score table by timer."
  },
  {
   "address": 38384,
   "type": "line",
   "text": "Calls the routine that the attract mode's cycle table selects (the operand is written at $95E7 and $95EA)."
  },
  {
   "address": 38385,
   "type": "line",
   "text": "The low byte of the cycle routine's address."
  },
  {
   "address": 38386,
   "type": "line",
   "text": "The high byte of the cycle routine's address."
  },
  {
   "address": 38390,
   "type": "line",
   "text": "Data at $95F6 (f_95F6): read by attract_mode."
  },
  {
   "address": 38391,
   "type": "line",
   "text": "Data at $95F7 (f_95F7): read by attract_mode."
  },
  {
   "address": 38396,
   "type": "line",
   "text": "Installs the attract-mode raster interrupt ($3CDF, the colour bars), CIA2 timer A and the raster line $50."
  },
  {
   "address": 38455,
   "type": "line",
   "text": "Sets up the attract screen: character set, video bank 2, multicolour mode, colour RAM filled with colour 9, border and background colours, sprites off, then starts the raster interrupt."
  },
  {
   "address": 38521,
   "type": "line",
   "text": "Copies the colour data for a bitmap screen from $8548, $8642, $873C and $8836 into colour RAM, switches the VIC to bitmap mode in video bank 1 and records screen mode 2 in $0246."
  },
  {
   "address": 38583,
   "type": "line",
   "text": "Intro played when fire is pressed in the attract mode: prepares the screen, starts tune 12, spawns the walking robot sprite, queues message 38 and runs the intro script table at $96E6, one step per frame."
  },
  {
   "address": 38630,
   "type": "line",
   "text": "Data at $96E6 (f_96E6): read by intro_sequence."
  },
  {
   "address": 38631,
   "type": "line",
   "text": "Data at $96E7 (f_96E7): read by intro_sequence."
  },
  {
   "address": 38638,
   "type": "line",
   "text": "The steps of the intro: walks the robot sprite across the screen, makes it jump, flashes the screen, queues message 39 and then jumps to the start of part one."
  },
  {
   "address": 38732,
   "type": "line",
   "text": "Toggles the screen colour register through a short sequence: each call flips $02A1 by the next entry of the table and counts the sequence down."
  },
  {
   "address": 38750,
   "type": "line",
   "text": "The first entry of the colour-flash table is a return instruction ($60), which also ends $974C."
  },
  {
   "address": 38751,
   "type": "line",
   "text": "The three values 3, 7 and 4 that the flash routine at $974C XORs into $02A1, selected by the counter $0314 (3, 2, 1): the screen flashes through three colours at the end of the intro."
  },
  {
   "address": 38754,
   "type": "line",
   "text": "Prepares the part-one screens: video bank 3, clears the screen blocks, fills the picture area with the character $76, draws the panel, installs the part-one interrupt and sets the selected action to SEARCH."
  },
  {
   "address": 38813,
   "type": "line",
   "text": "Intro of part one: prepares the screens, starts the overlay actor, starts tune 12, queues message 40 and runs the steps in the table at $97C4."
  },
  {
   "address": 38852,
   "type": "line",
   "text": "Data at $97C4 (f_97C4): read by part_one_intro_sequence."
  },
  {
   "address": 38853,
   "type": "line",
   "text": "Data at $97C5 (f_97C5): read by part_one_intro_sequence."
  },
  {
   "address": 38856,
   "type": "line",
   "text": "Steps of the part-one intro script: walks the sprite, runs part-one events and ends at the start of part one."
  },
  {
   "address": 38896,
   "type": "line",
   "text": "Game-over routine: compares the final score with the ten entries of the high-score table at $83E8 (six bytes each, from the top); a new high score is inserted by shifting the lower entries down, the message ENTER YOUR INITIALS is shown and the initials are entered by the joystick at $99BD; the table is then updated and the attract mode restarts."
  },
  {
   "address": 39051,
   "type": "line",
   "text": "Copies one byte from the high-score table at $83E8 (X) to the screen row being drawn through the pointer at $2A (Y)."
  },
  {
   "address": 39059,
   "type": "line",
   "text": "Installs the attract mode's raster interrupt: disables CIA1 interrupts, enables the raster interrupt at line $88 and points the IRQ vector at $98C0."
  },
  {
   "address": 39104,
   "type": "line",
   "text": "Raster handler of the attract mode: acknowledges the interrupt and dispatches through the table at $98DA, indexed by $64, to one of four handlers."
  },
  {
   "address": 39130,
   "type": "line",
   "text": "Four words (address minus one) of the attract mode's raster handlers: $98E2, $98F4, $9903 and $9912."
  },
  {
   "address": 39131,
   "type": "line",
   "text": "Data at $98DB (f_98DB): read by attract_irq."
  },
  {
   "address": 39138,
   "type": "line",
   "text": "Raster handler of the attract mode: runs the sound step, then sets the next raster line to $6E."
  },
  {
   "address": 39156,
   "type": "line",
   "text": "Attract-mode raster handler: runs the sound step, selects the handler at $9903 next and sets the next raster line to $BC."
  },
  {
   "address": 39171,
   "type": "line",
   "text": "Attract-mode raster handler: runs the sound step, selects the handler at $9912 next and sets the next raster line to $FF."
  },
  {
   "address": 39186,
   "type": "line",
   "text": "Attract-mode raster handler, last of the frame: runs the sound step, counts the attract timers $0311 and $0245, rotates the colour table and refills the colour RAM every sixth frame, and sets the next raster line to $20."
  },
  {
   "address": 39225,
   "type": "line",
   "text": "Draws one table byte as two score digits into the row being drawn."
  },
  {
   "address": 39250,
   "type": "line",
   "text": "Rotates the 16-entry colour table at $8438 by one place (used by the colour-bar interrupt)."
  },
  {
   "address": 39272,
   "type": "line",
   "text": "Writes the colours of the rotating colour table at $8438 into colour RAM down the rows of the high-score list, so that the list's colours cycle; the colour table is rotated by $9952 every sixth tick."
  },
  {
   "address": 39345,
   "type": "line",
   "text": "The characters of the HIGH SCORES heading."
  },
  {
   "address": 39357,
   "type": "line",
   "text": "Waits for the stick and fire to enter the three initials of a new high score: left and right change the letter, fire accepts it and moves on, with a time-out of 40 ticks."
  },
  {
   "address": 39436,
   "type": "line",
   "text": "Steps the current initial forward one letter, wrapping from Z to A."
  },
  {
   "address": 39456,
   "type": "line",
   "text": "Steps the current initial back one letter, wrapping from A to Z."
  },
  {
   "address": 39476,
   "type": "line",
   "text": "Draws the high-score screen: the headline from $99B1, ten rows each with its rank, six score digits and three initials from the table at $83E8, and the coloured cells."
  },
  {
   "address": 39651,
   "type": "line",
   "text": "Sets up the four sprite slots of the two robots on the high-score screen (sprite pointers $C0 and $C1, colour 3, left pair near X $40, right pair near X $110) and copies them to the VIC."
  },
  {
   "address": 39738,
   "type": "line",
   "text": "Tests the F5 key (key 6), used to abandon a game."
  },
  {
   "address": 39743,
   "type": "line",
   "text": "Starts a hit-flash effect on sprite slot X: if the effect flag at $0283,X is clear it sets it and colours the sprite white."
  },
  {
   "address": 39759,
   "type": "line",
   "text": "The music driver's variables, copied tables and per-voice state, and its note-to-frequency tables ($9DF9 and $9E4A)."
  },
  {
   "address": 39936,
   "type": "line",
   "text": "Jump table of voice 1's script commands (26 entries); the command byte minus $C0 chooses the entry."
  },
  {
   "address": 39988,
   "type": "line",
   "text": "Jump table of voice 2's script commands."
  },
  {
   "address": 40040,
   "type": "line",
   "text": "Four bytes before voice 3's command table: the words $B60A and $B60D, which no code was found to read."
  },
  {
   "address": 40044,
   "type": "line",
   "text": "Jump table of voice 3's script commands (26 entries); the command byte minus $C0 chooses the entry (the reader at $A752 adds $AC to the command to get the low byte of the pointer)."
  },
  {
   "address": 40096,
   "type": "line",
   "text": "Data at $9CA0 (f_9CA0): written by v1_cmd_set_two, v1_copy_source_high, v1_copy14_source_high, v1_cmd_set_one; read by v1_play_note."
  },
  {
   "address": 40097,
   "type": "line",
   "text": "Data at $9CA1 (f_9CA1): written by v1_cmd_set_two; read by v1_play_note."
  },
  {
   "address": 40098,
   "type": "line",
   "text": "Data at $9CA2 (a_9CA2): read by v1_play_note."
  },
  {
   "address": 40099,
   "type": "line",
   "text": "Data at $9CA3 (a_9CA3): read by v1_play_note."
  },
  {
   "address": 40100,
   "type": "line",
   "text": "Data at $9CA4 (a_9CA4): read by v1_play_note."
  },
  {
   "address": 40101,
   "type": "line",
   "text": "Data at $9CA5 (a_9CA5): read by v1_play_note."
  },
  {
   "address": 40102,
   "type": "line",
   "text": "Data at $9CA6 (a_9CA6): read by v1_play_note."
  },
  {
   "address": 40103,
   "type": "line",
   "text": "Data at $9CA7 (a_9CA7): read by v1_play_note."
  },
  {
   "address": 40104,
   "type": "line",
   "text": "Data at $9CA8 (a_9CA8): read by v1_play_note."
  },
  {
   "address": 40105,
   "type": "line",
   "text": "Data at $9CA9 (a_9CA9): read by v1_play_note."
  },
  {
   "address": 40106,
   "type": "line",
   "text": "Data at $9CAA (a_9CAA): read by v1_play_note."
  },
  {
   "address": 40107,
   "type": "line",
   "text": "Data at $9CAB (a_9CAB): read by v1_play_note."
  },
  {
   "address": 40108,
   "type": "line",
   "text": "Data at $9CAC (a_9CAC): read by v1_play_note."
  },
  {
   "address": 40109,
   "type": "line",
   "text": "Data at $9CAD (f_9CAD): written by start_tune, v1_cmd_goto; read by v1_play_note."
  },
  {
   "address": 40110,
   "type": "line",
   "text": "Data at $9CAE (a_9CAE): read by v1_play_note."
  },
  {
   "address": 40111,
   "type": "line",
   "text": "Data at $9CAF (a_9CAF): read by v1_play_note."
  },
  {
   "address": 40112,
   "type": "line",
   "text": "Data at $9CB0 (a_9CB0): read by v1_play_note."
  },
  {
   "address": 40113,
   "type": "line",
   "text": "Data at $9CB1 (f_9CB1): written by start_tune; read by v1_play_note."
  },
  {
   "address": 40114,
   "type": "line",
   "text": "Data at $9CB2 (a_9CB2): read by v1_play_note."
  },
  {
   "address": 40115,
   "type": "line",
   "text": "Data at $9CB3 (a_9CB3): read by v1_play_note."
  },
  {
   "address": 40116,
   "type": "line",
   "text": "Data at $9CB4 (a_9CB4): read by v1_play_note."
  },
  {
   "address": 40117,
   "type": "line",
   "text": "Data at $9CB5 (a_9CB5): read by v1_play_note."
  },
  {
   "address": 40118,
   "type": "line",
   "text": "Data at $9CB6 (a_9CB6): read by v1_play_note."
  },
  {
   "address": 40119,
   "type": "line",
   "text": "Data at $9CB7 (a_9CB7): read by v1_play_note."
  },
  {
   "address": 40120,
   "type": "line",
   "text": "Data at $9CB8 (f_9CB8): written by v1_cmd_load_envelope; read by v1_play_note."
  },
  {
   "address": 40121,
   "type": "line",
   "text": "Data at $9CB9 (a_9CB9): read by v1_play_note."
  },
  {
   "address": 40122,
   "type": "line",
   "text": "Data at $9CBA (a_9CBA): read by v1_play_note."
  },
  {
   "address": 40123,
   "type": "line",
   "text": "Data at $9CBB (a_9CBB): read by v1_play_note."
  },
  {
   "address": 40124,
   "type": "line",
   "text": "Data at $9CBC (a_9CBC): read by v1_play_note."
  },
  {
   "address": 40125,
   "type": "line",
   "text": "Data at $9CBD (f_9CBD): written by v1_cmd_call, v1_cmd_loop_start."
  },
  {
   "address": 40126,
   "type": "line",
   "text": "Data at $9CBE (f_9CBE): read by v1_cmd_loop_end, v1_cmd_return."
  },
  {
   "address": 40133,
   "type": "line",
   "text": "Data at $9CC5 (f_9CC5): written by v1_cmd_call, v1_cmd_loop_start."
  },
  {
   "address": 40134,
   "type": "line",
   "text": "Data at $9CC6 (f_9CC6): read by v1_cmd_loop_end, v1_cmd_return."
  },
  {
   "address": 40141,
   "type": "line",
   "text": "Data at $9CCD (f_9CCD): written by v1_cmd_loop_start."
  },
  {
   "address": 40142,
   "type": "line",
   "text": "Data at $9CCE (f_9CCE): written by v1_cmd_loop_end."
  },
  {
   "address": 40149,
   "type": "line",
   "text": "Data at $9CD5 (f_9CD5): written by v2_cmd_call, v2_copy_source_high, v2_copy14_source_high, v2_cmd_set_one; read by v2_play_note."
  },
  {
   "address": 40150,
   "type": "line",
   "text": "Data at $9CD6 (f_9CD6): written by v2_cmd_call; read by v2_play_note."
  },
  {
   "address": 40151,
   "type": "line",
   "text": "Data at $9CD7 (a_9CD7): read by v2_play_note."
  },
  {
   "address": 40152,
   "type": "line",
   "text": "Data at $9CD8 (a_9CD8): read by v2_play_note."
  },
  {
   "address": 40153,
   "type": "line",
   "text": "Data at $9CD9 (a_9CD9): read by v2_play_note."
  },
  {
   "address": 40154,
   "type": "line",
   "text": "Data at $9CDA (a_9CDA): read by v2_play_note."
  },
  {
   "address": 40155,
   "type": "line",
   "text": "Data at $9CDB (a_9CDB): read by v2_play_note."
  },
  {
   "address": 40156,
   "type": "line",
   "text": "Data at $9CDC (a_9CDC): read by v2_play_note."
  },
  {
   "address": 40157,
   "type": "line",
   "text": "Data at $9CDD (a_9CDD): read by v2_play_note."
  },
  {
   "address": 40158,
   "type": "line",
   "text": "Data at $9CDE (a_9CDE): read by v2_play_note."
  },
  {
   "address": 40159,
   "type": "line",
   "text": "Data at $9CDF (a_9CDF): read by v2_play_note."
  },
  {
   "address": 40160,
   "type": "line",
   "text": "Data at $9CE0 (a_9CE0): read by v2_play_note."
  },
  {
   "address": 40161,
   "type": "line",
   "text": "Data at $9CE1 (a_9CE1): read by v2_play_note."
  },
  {
   "address": 40162,
   "type": "line",
   "text": "Data at $9CE2 (a_9CE2): written by v2_cmd_goto; read by v2_play_note."
  },
  {
   "address": 40163,
   "type": "line",
   "text": "Data at $9CE3 (a_9CE3): read by v2_play_note."
  },
  {
   "address": 40164,
   "type": "line",
   "text": "Data at $9CE4 (a_9CE4): read by v2_play_note."
  },
  {
   "address": 40165,
   "type": "line",
   "text": "Data at $9CE5 (a_9CE5): read by v2_play_note."
  },
  {
   "address": 40166,
   "type": "line",
   "text": "Data at $9CE6 (a_9CE6): read by v2_play_note."
  },
  {
   "address": 40167,
   "type": "line",
   "text": "Data at $9CE7 (a_9CE7): read by v2_play_note."
  },
  {
   "address": 40168,
   "type": "line",
   "text": "Data at $9CE8 (a_9CE8): read by v2_play_note."
  },
  {
   "address": 40169,
   "type": "line",
   "text": "Data at $9CE9 (a_9CE9): read by v2_play_note."
  },
  {
   "address": 40170,
   "type": "line",
   "text": "Data at $9CEA (a_9CEA): read by v2_play_note."
  },
  {
   "address": 40171,
   "type": "line",
   "text": "Data at $9CEB (a_9CEB): read by v2_play_note."
  },
  {
   "address": 40172,
   "type": "line",
   "text": "Data at $9CEC (a_9CEC): read by v2_play_note."
  },
  {
   "address": 40173,
   "type": "line",
   "text": "Data at $9CED (f_9CED): written by v2_cmd_set_sweep_byte; read by v2_play_note."
  },
  {
   "address": 40174,
   "type": "line",
   "text": "Data at $9CEE (a_9CEE): read by v2_play_note."
  },
  {
   "address": 40175,
   "type": "line",
   "text": "Data at $9CEF (a_9CEF): read by v2_play_note."
  },
  {
   "address": 40176,
   "type": "line",
   "text": "Data at $9CF0 (a_9CF0): read by v2_play_note."
  },
  {
   "address": 40177,
   "type": "line",
   "text": "Data at $9CF1 (a_9CF1): read by v2_play_note."
  },
  {
   "address": 40178,
   "type": "line",
   "text": "Data at $9CF2 (f_9CF2): written by v2_cmd_call, v2_cmd_loop_start."
  },
  {
   "address": 40179,
   "type": "line",
   "text": "Data at $9CF3 (f_9CF3): read by v2_cmd_loop_end, v2_cmd_return."
  },
  {
   "address": 40186,
   "type": "line",
   "text": "Data at $9CFA (f_9CFA): written by v2_cmd_call, v2_cmd_loop_start."
  },
  {
   "address": 40187,
   "type": "line",
   "text": "Data at $9CFB (f_9CFB): read by v2_cmd_loop_end, v2_cmd_return."
  },
  {
   "address": 40194,
   "type": "line",
   "text": "Data at $9D02 (f_9D02): written by v2_cmd_loop_start."
  },
  {
   "address": 40195,
   "type": "line",
   "text": "Data at $9D03 (f_9D03): written by v2_cmd_loop_end."
  },
  {
   "address": 40202,
   "type": "line",
   "text": "Data at $9D0A (f_9D0A): written by v3_cmd_call, v3_copy_source_high, v3_copy14_source_high, v3_cmd_set_one; read by v3_play_note."
  },
  {
   "address": 40203,
   "type": "line",
   "text": "Data at $9D0B (f_9D0B): written by v3_cmd_call; read by v3_play_note."
  },
  {
   "address": 40204,
   "type": "line",
   "text": "Data at $9D0C (a_9D0C): read by v3_play_note."
  },
  {
   "address": 40205,
   "type": "line",
   "text": "Data at $9D0D (a_9D0D): read by v3_play_note."
  },
  {
   "address": 40206,
   "type": "line",
   "text": "Data at $9D0E (a_9D0E): read by v3_play_note."
  },
  {
   "address": 40207,
   "type": "line",
   "text": "Data at $9D0F (a_9D0F): read by v3_play_note."
  },
  {
   "address": 40208,
   "type": "line",
   "text": "Data at $9D10 (a_9D10): read by v3_play_note."
  },
  {
   "address": 40209,
   "type": "line",
   "text": "Data at $9D11 (a_9D11): read by v3_play_note."
  },
  {
   "address": 40210,
   "type": "line",
   "text": "Data at $9D12 (a_9D12): read by v3_play_note."
  },
  {
   "address": 40211,
   "type": "line",
   "text": "Data at $9D13 (a_9D13): read by v3_play_note."
  },
  {
   "address": 40212,
   "type": "line",
   "text": "Data at $9D14 (a_9D14): read by v3_play_note."
  },
  {
   "address": 40213,
   "type": "line",
   "text": "Data at $9D15 (a_9D15): read by v3_play_note."
  },
  {
   "address": 40214,
   "type": "line",
   "text": "Data at $9D16 (a_9D16): read by v3_play_note."
  },
  {
   "address": 40215,
   "type": "line",
   "text": "Data at $9D17 (a_9D17): written by v3_cmd_filter_route; read by v3_play_note."
  },
  {
   "address": 40216,
   "type": "line",
   "text": "Data at $9D18 (a_9D18): read by v3_play_note."
  },
  {
   "address": 40217,
   "type": "line",
   "text": "Data at $9D19 (a_9D19): read by v3_play_note."
  },
  {
   "address": 40218,
   "type": "line",
   "text": "Data at $9D1A (a_9D1A): read by v3_play_note."
  },
  {
   "address": 40219,
   "type": "line",
   "text": "Data at $9D1B (a_9D1B): read by v3_play_note."
  },
  {
   "address": 40220,
   "type": "line",
   "text": "Data at $9D1C (a_9D1C): read by v3_play_note."
  },
  {
   "address": 40221,
   "type": "line",
   "text": "Data at $9D1D (a_9D1D): read by v3_play_note."
  },
  {
   "address": 40222,
   "type": "line",
   "text": "Data at $9D1E (a_9D1E): read by v3_play_note."
  },
  {
   "address": 40223,
   "type": "line",
   "text": "Data at $9D1F (a_9D1F): read by v3_play_note."
  },
  {
   "address": 40224,
   "type": "line",
   "text": "Data at $9D20 (a_9D20): read by v3_play_note."
  },
  {
   "address": 40225,
   "type": "line",
   "text": "Data at $9D21 (a_9D21): read by v3_play_note."
  },
  {
   "address": 40226,
   "type": "line",
   "text": "Data at $9D22 (f_9D22): written by v3_cmd_load_envelope; read by v3_play_note."
  },
  {
   "address": 40227,
   "type": "line",
   "text": "Data at $9D23 (a_9D23): read by v3_play_note."
  },
  {
   "address": 40228,
   "type": "line",
   "text": "Data at $9D24 (a_9D24): read by v3_play_note."
  },
  {
   "address": 40229,
   "type": "line",
   "text": "Data at $9D25 (a_9D25): read by v3_play_note."
  },
  {
   "address": 40230,
   "type": "line",
   "text": "Data at $9D26 (a_9D26): read by v3_play_note."
  },
  {
   "address": 40231,
   "type": "line",
   "text": "Data at $9D27 (f_9D27): written by v3_cmd_call, v3_cmd_loop_start."
  },
  {
   "address": 40232,
   "type": "line",
   "text": "Data at $9D28 (f_9D28): read by v3_cmd_loop_end, v3_cmd_return."
  },
  {
   "address": 40239,
   "type": "line",
   "text": "Data at $9D2F (f_9D2F): written by v3_cmd_call, v3_cmd_loop_start."
  },
  {
   "address": 40240,
   "type": "line",
   "text": "Data at $9D30 (f_9D30): read by v3_cmd_loop_end, v3_cmd_return."
  },
  {
   "address": 40247,
   "type": "line",
   "text": "Data at $9D37 (f_9D37): written by v3_cmd_loop_start."
  },
  {
   "address": 40248,
   "type": "line",
   "text": "Data at $9D38 (f_9D38): written by v3_cmd_loop_end."
  },
  {
   "address": 40255,
   "type": "line",
   "text": "Data at $9D3F (f_9D3F): written by v3_copy16_source_high; read by reset_sweeps."
  },
  {
   "address": 40263,
   "type": "line",
   "text": "Data at $9D47 (f_9D47): read by reset_sweeps."
  },
  {
   "address": 40271,
   "type": "line",
   "text": "Data at $9D4F (a_9D4F): written by reset_sweeps; read by filter_sweep_step."
  },
  {
   "address": 40272,
   "type": "line",
   "text": "Data at $9D50 (a_9D50): read by filter_sweep_step."
  },
  {
   "address": 40273,
   "type": "line",
   "text": "Data at $9D51 (a_9D51): read by filter_sweep_step."
  },
  {
   "address": 40274,
   "type": "line",
   "text": "Data at $9D52 (a_9D52): read by filter_sweep_step."
  },
  {
   "address": 40275,
   "type": "line",
   "text": "Data at $9D53 (a_9D53): read by filter_sweep_step."
  },
  {
   "address": 40276,
   "type": "line",
   "text": "Data at $9D54 (a_9D54): read by filter_sweep_step."
  },
  {
   "address": 40277,
   "type": "line",
   "text": "Data at $9D55 (a_9D55): read by filter_sweep_step."
  },
  {
   "address": 40278,
   "type": "line",
   "text": "Data at $9D56 (a_9D56): read by filter_sweep_step."
  },
  {
   "address": 40279,
   "type": "line",
   "text": "Data at $9D57 (a_9D57): written by reset_sweeps; read by voice1_filter_reset_b."
  },
  {
   "address": 40280,
   "type": "line",
   "text": "Data at $9D58 (a_9D58): read by voice1_filter_reset_b."
  },
  {
   "address": 40281,
   "type": "line",
   "text": "Data at $9D59 (a_9D59): read by voice1_filter_reset_b."
  },
  {
   "address": 40282,
   "type": "line",
   "text": "Data at $9D5A (a_9D5A): read by voice1_filter_reset_b."
  },
  {
   "address": 40283,
   "type": "line",
   "text": "Data at $9D5B (a_9D5B): written by filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40284,
   "type": "line",
   "text": "Data at $9D5C (a_9D5C): written by silence_sid, v1_cmd_goto, voice1_effects; read by filter_sweep_step."
  },
  {
   "address": 40285,
   "type": "line",
   "text": "Data at $9D5D (a_9D5D): read by voice1_filter_reset."
  },
  {
   "address": 40286,
   "type": "line",
   "text": "Data at $9D5E (a_9D5E): read by voice1_filter_reset."
  },
  {
   "address": 40287,
   "type": "line",
   "text": "Data at $9D5F (a_9D5F): written by voice1_filter_reset, filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40288,
   "type": "line",
   "text": "Data at $9D60 (a_9D60): written by voice1_filter_reset, filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40289,
   "type": "line",
   "text": "Data at $9D61 (a_9D61): written by voice1_filter_reset_b, filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40290,
   "type": "line",
   "text": "Data at $9D62 (a_9D62): written by voice1_filter_reset_b, filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40291,
   "type": "line",
   "text": "Data at $9D63 (a_9D63): written by voice1_filter_reset_b, filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40292,
   "type": "line",
   "text": "Data at $9D64 (a_9D64): written by voice1_filter_reset_b, filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40293,
   "type": "line",
   "text": "Data at $9D65 (f_9D65): written by v1_cmd_set_sweep_word, v1_cmd_set_sweep_byte, v1_play_note; read by voice1_effects."
  },
  {
   "address": 40294,
   "type": "line",
   "text": "Data at $9D66 (f_9D66): written by v1_cmd_set_sweep_word, v1_play_note; read by voice1_effects."
  },
  {
   "address": 40295,
   "type": "line",
   "text": "Data at $9D67 (a_9D67): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40296,
   "type": "line",
   "text": "Data at $9D68 (a_9D68): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40297,
   "type": "line",
   "text": "Data at $9D69 (a_9D69): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40298,
   "type": "line",
   "text": "Data at $9D6A (a_9D6A): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40299,
   "type": "line",
   "text": "Data at $9D6B (a_9D6B): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40300,
   "type": "line",
   "text": "Data at $9D6C (a_9D6C): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40301,
   "type": "line",
   "text": "Data at $9D6D (a_9D6D): written by v1_play_note; read by voice1_pitch_reset_b."
  },
  {
   "address": 40302,
   "type": "line",
   "text": "Data at $9D6E (a_9D6E): written by v1_play_note; read by voice1_pitch_reset_b."
  },
  {
   "address": 40303,
   "type": "line",
   "text": "Data at $9D6F (a_9D6F): written by v1_play_note; read by voice1_pitch_reset_b."
  },
  {
   "address": 40304,
   "type": "line",
   "text": "Data at $9D70 (a_9D70): written by v1_play_note; read by voice1_pitch_reset_b."
  },
  {
   "address": 40305,
   "type": "line",
   "text": "Data at $9D71 (a_9D71): written by v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40306,
   "type": "line",
   "text": "Data at $9D72 (a_9D72): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40307,
   "type": "line",
   "text": "Data at $9D73 (a_9D73): written by v1_play_note; read by voice1_pw_reset_b."
  },
  {
   "address": 40308,
   "type": "line",
   "text": "Data at $9D74 (a_9D74): written by v1_play_note; read by voice1_pw_reset_b."
  },
  {
   "address": 40309,
   "type": "line",
   "text": "Data at $9D75 (a_9D75): written by v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40310,
   "type": "line",
   "text": "Data at $9D76 (a_9D76): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40311,
   "type": "line",
   "text": "Data at $9D77 (a_9D77): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40312,
   "type": "line",
   "text": "Data at $9D78 (a_9D78): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40313,
   "type": "line",
   "text": "Data at $9D79 (a_9D79): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40314,
   "type": "line",
   "text": "Data at $9D7A (a_9D7A): written by v1_play_note; read by voice1_effects."
  },
  {
   "address": 40315,
   "type": "line",
   "text": "Data at $9D7B (a_9D7B): written by v1_play_note; read by voice1_pw_reset."
  },
  {
   "address": 40316,
   "type": "line",
   "text": "Data at $9D7C (a_9D7C): written by v1_play_note; read by voice1_pw_reset."
  },
  {
   "address": 40317,
   "type": "line",
   "text": "Data at $9D7D (a_9D7D): written by v1_play_note; read by voice1_pitch_reset."
  },
  {
   "address": 40318,
   "type": "line",
   "text": "Data at $9D7E (a_9D7E): written by v1_play_note; read by voice1_pitch_reset."
  },
  {
   "address": 40319,
   "type": "line",
   "text": "Data at $9D7F (a_9D7F): written by v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40320,
   "type": "line",
   "text": "Data at $9D80 (a_9D80): written by v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40321,
   "type": "line",
   "text": "Data at $9D81 (a_9D81): written by silence_sid, v1_play_note, voice1_effects; read by voice1_effects, any_voice_playing."
  },
  {
   "address": 40322,
   "type": "line",
   "text": "Data at $9D82 (a_9D82): written by voice1_pitch_reset_b, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40323,
   "type": "line",
   "text": "Data at $9D83 (a_9D83): written by voice1_pitch_reset_b, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40324,
   "type": "line",
   "text": "Data at $9D84 (a_9D84): written by voice1_pitch_reset_b, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40325,
   "type": "line",
   "text": "Data at $9D85 (a_9D85): written by voice1_pitch_reset_b, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40326,
   "type": "line",
   "text": "Data at $9D86 (a_9D86): written by voice1_pw_reset_b, v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40327,
   "type": "line",
   "text": "Data at $9D87 (a_9D87): written by voice1_pw_reset_b, v1_play_note, voice1_effects; read by voice1_effects."
  },
  {
   "address": 40328,
   "type": "line",
   "text": "Data at $9D88 (f_9D88): written by v2_cmd_set_two, v2_cmd_set_sweep_byte, v2_play_note; read by voice2_effects."
  },
  {
   "address": 40329,
   "type": "line",
   "text": "Data at $9D89 (f_9D89): written by v2_cmd_set_two, v2_play_note; read by voice2_effects."
  },
  {
   "address": 40330,
   "type": "line",
   "text": "Data at $9D8A (a_9D8A): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40331,
   "type": "line",
   "text": "Data at $9D8B (a_9D8B): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40332,
   "type": "line",
   "text": "Data at $9D8C (a_9D8C): written by v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40333,
   "type": "line",
   "text": "Data at $9D8D (a_9D8D): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40334,
   "type": "line",
   "text": "Data at $9D8E (a_9D8E): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40335,
   "type": "line",
   "text": "Data at $9D8F (a_9D8F): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40336,
   "type": "line",
   "text": "Data at $9D90 (a_9D90): written by v2_play_note; read by voice2_pitch_reset_b, voice2_effects."
  },
  {
   "address": 40337,
   "type": "line",
   "text": "Data at $9D91 (a_9D91): written by v2_play_note; read by voice2_pitch_reset_b, voice2_effects."
  },
  {
   "address": 40338,
   "type": "line",
   "text": "Data at $9D92 (a_9D92): written by v2_play_note; read by voice2_pitch_reset_b, voice2_effects."
  },
  {
   "address": 40339,
   "type": "line",
   "text": "Data at $9D93 (a_9D93): written by v2_play_note; read by voice2_pitch_reset_b, voice2_effects."
  },
  {
   "address": 40340,
   "type": "line",
   "text": "Data at $9D94 (a_9D94): written by v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40341,
   "type": "line",
   "text": "Data at $9D95 (a_9D95): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40342,
   "type": "line",
   "text": "Data at $9D96 (a_9D96): written by v2_play_note; read by voice2_pw_reset_b."
  },
  {
   "address": 40343,
   "type": "line",
   "text": "Data at $9D97 (a_9D97): written by v2_play_note; read by voice2_pw_reset_b."
  },
  {
   "address": 40344,
   "type": "line",
   "text": "Data at $9D98 (a_9D98): written by v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40345,
   "type": "line",
   "text": "Data at $9D99 (a_9D99): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40346,
   "type": "line",
   "text": "Data at $9D9A (a_9D9A): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40347,
   "type": "line",
   "text": "Data at $9D9B (a_9D9B): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40348,
   "type": "line",
   "text": "Data at $9D9C (a_9D9C): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40349,
   "type": "line",
   "text": "Data at $9D9D (a_9D9D): written by v2_play_note; read by voice2_effects."
  },
  {
   "address": 40350,
   "type": "line",
   "text": "Data at $9D9E (a_9D9E): written by v2_play_note; read by voice2_pw_reset."
  },
  {
   "address": 40351,
   "type": "line",
   "text": "Data at $9D9F (a_9D9F): written by v2_play_note; read by voice2_pw_reset."
  },
  {
   "address": 40352,
   "type": "line",
   "text": "Data at $9DA0 (a_9DA0): written by v2_play_note; read by voice2_pitch_reset."
  },
  {
   "address": 40353,
   "type": "line",
   "text": "Data at $9DA1 (a_9DA1): written by v2_play_note; read by voice2_pitch_reset."
  },
  {
   "address": 40354,
   "type": "line",
   "text": "Data at $9DA2 (a_9DA2): written by v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40355,
   "type": "line",
   "text": "Data at $9DA3 (a_9DA3): written by v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40356,
   "type": "line",
   "text": "Data at $9DA4 (a_9DA4): written by silence_sid, v2_play_note, voice2_effects; read by voice2_effects, any_voice_playing."
  },
  {
   "address": 40357,
   "type": "line",
   "text": "Data at $9DA5 (a_9DA5): written by voice2_pitch_reset_b, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40358,
   "type": "line",
   "text": "Data at $9DA6 (a_9DA6): written by voice2_pitch_reset_b, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40359,
   "type": "line",
   "text": "Data at $9DA7 (a_9DA7): written by voice2_pitch_reset_b, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40360,
   "type": "line",
   "text": "Data at $9DA8 (a_9DA8): written by voice2_pitch_reset_b, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40361,
   "type": "line",
   "text": "Data at $9DA9 (a_9DA9): written by voice2_pw_reset_b, v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40362,
   "type": "line",
   "text": "Data at $9DAA (a_9DAA): written by voice2_pw_reset_b, v2_play_note, voice2_effects; read by voice2_effects."
  },
  {
   "address": 40363,
   "type": "line",
   "text": "Data at $9DAB (f_9DAB): written by v3_cmd_set_two, v3_cmd_set_sweep_byte, v3_play_note; read by voice3_effects."
  },
  {
   "address": 40364,
   "type": "line",
   "text": "Data at $9DAC (f_9DAC): written by v3_cmd_set_two, v3_play_note; read by voice3_effects."
  },
  {
   "address": 40365,
   "type": "line",
   "text": "Data at $9DAD (a_9DAD): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40366,
   "type": "line",
   "text": "Data at $9DAE (a_9DAE): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40367,
   "type": "line",
   "text": "Data at $9DAF (a_9DAF): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40368,
   "type": "line",
   "text": "Data at $9DB0 (a_9DB0): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40369,
   "type": "line",
   "text": "Data at $9DB1 (a_9DB1): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40370,
   "type": "line",
   "text": "Data at $9DB2 (a_9DB2): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40371,
   "type": "line",
   "text": "Data at $9DB3 (a_9DB3): written by v3_play_note; read by voice3_pitch_reset_b."
  },
  {
   "address": 40372,
   "type": "line",
   "text": "Data at $9DB4 (a_9DB4): written by v3_play_note; read by voice3_pitch_reset_b."
  },
  {
   "address": 40373,
   "type": "line",
   "text": "Data at $9DB5 (a_9DB5): written by v3_play_note; read by voice3_pitch_reset_b."
  },
  {
   "address": 40374,
   "type": "line",
   "text": "Data at $9DB6 (a_9DB6): written by v3_play_note; read by voice3_pitch_reset_b."
  },
  {
   "address": 40375,
   "type": "line",
   "text": "Data at $9DB7 (a_9DB7): written by v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40376,
   "type": "line",
   "text": "Data at $9DB8 (a_9DB8): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40377,
   "type": "line",
   "text": "Data at $9DB9 (a_9DB9): written by v3_play_note; read by voice3_pw_reset_b."
  },
  {
   "address": 40378,
   "type": "line",
   "text": "Data at $9DBA (a_9DBA): written by v3_play_note; read by voice3_pw_reset_b."
  },
  {
   "address": 40379,
   "type": "line",
   "text": "Data at $9DBB (a_9DBB): written by v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40380,
   "type": "line",
   "text": "Data at $9DBC (a_9DBC): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40381,
   "type": "line",
   "text": "Data at $9DBD (a_9DBD): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40382,
   "type": "line",
   "text": "Data at $9DBE (a_9DBE): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40383,
   "type": "line",
   "text": "Data at $9DBF (a_9DBF): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40384,
   "type": "line",
   "text": "Data at $9DC0 (a_9DC0): written by v3_play_note; read by voice3_effects."
  },
  {
   "address": 40385,
   "type": "line",
   "text": "Data at $9DC1 (a_9DC1): written by v3_play_note; read by voice3_pw_reset."
  },
  {
   "address": 40386,
   "type": "line",
   "text": "Data at $9DC2 (a_9DC2): written by v3_play_note; read by voice3_pw_reset."
  },
  {
   "address": 40387,
   "type": "line",
   "text": "Data at $9DC3 (a_9DC3): written by v3_play_note; read by voice3_pitch_reset."
  },
  {
   "address": 40388,
   "type": "line",
   "text": "Data at $9DC4 (a_9DC4): written by v3_play_note; read by voice3_pitch_reset."
  },
  {
   "address": 40389,
   "type": "line",
   "text": "Data at $9DC5 (a_9DC5): written by v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40390,
   "type": "line",
   "text": "Data at $9DC6 (a_9DC6): written by v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40391,
   "type": "line",
   "text": "Data at $9DC7 (a_9DC7): written by silence_sid, v3_play_note, voice3_effects; read by voice3_effects, any_voice_playing."
  },
  {
   "address": 40392,
   "type": "line",
   "text": "Data at $9DC8 (a_9DC8): written by voice3_pitch_reset_b, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40393,
   "type": "line",
   "text": "Data at $9DC9 (a_9DC9): written by voice3_pitch_reset_b, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40394,
   "type": "line",
   "text": "Data at $9DCA (a_9DCA): written by voice3_pitch_reset_b, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40395,
   "type": "line",
   "text": "Data at $9DCB (a_9DCB): written by voice3_pitch_reset_b, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40396,
   "type": "line",
   "text": "Data at $9DCC (a_9DCC): written by voice3_pw_reset_b, v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40397,
   "type": "line",
   "text": "Data at $9DCD (a_9DCD): written by voice3_pw_reset_b, v3_play_note, voice3_effects; read by voice3_effects."
  },
  {
   "address": 40398,
   "type": "line",
   "text": "Data at $9DCE (a_9DCE): written by silence_sid, v1_cmd_goto, v3_cmd_filter_route; read by v1_play_note, v2_play_note, v3_play_note, voice1_effects."
  },
  {
   "address": 40399,
   "type": "line",
   "text": "Data at $9DCF (a_9DCF): written by filter_sweep_step; read by filter_sweep_step."
  },
  {
   "address": 40400,
   "type": "line",
   "text": "Data at $9DD0 (a_9DD0): written by start_tune."
  },
  {
   "address": 40401,
   "type": "line",
   "text": "Data at $9DD1 (f_9DD1): written by start_tune, silence_sid, v1_cmd_return; read by voice1_step, any_voice_playing."
  },
  {
   "address": 40402,
   "type": "line",
   "text": "Data at $9DD2 (a_9DD2): written by silence_sid, v2_cmd_return; read by voice2_step, any_voice_playing."
  },
  {
   "address": 40403,
   "type": "line",
   "text": "Data at $9DD3 (a_9DD3): written by silence_sid, v3_cmd_return; read by voice3_step, any_voice_playing."
  },
  {
   "address": 40404,
   "type": "line",
   "text": "Data at $9DD4 (a_9DD4): written by start_tune; read by start_tune."
  },
  {
   "address": 40405,
   "type": "line",
   "text": "Data at $9DD5 (a_9DD5): written by start_tune; read by start_tune, v1_play_note, v2_play_note, v3_play_note."
  },
  {
   "address": 40406,
   "type": "line",
   "text": "Data at $9DD6 (f_9DD6): written by music_work_byte."
  },
  {
   "address": 40438,
   "type": "line",
   "text": "Data at $9DF6 (f_9DF6): read by start_tune."
  },
  {
   "address": 40441,
   "type": "line",
   "text": "Low bytes of the SID frequency for each note number."
  },
  {
   "address": 40522,
   "type": "line",
   "text": "High bytes of the SID frequency for each note number."
  },
  {
   "address": 40625,
   "type": "line",
   "text": "Starts the tune whose seven-byte record in the table at $ACA0 ends at offset Y (Y is 5, 12, 19, 26 or 33): reads the three voice script addresses, the flag byte and clears each voice's sweep state, sets each voice's duration counter to 1, its transposition to 0 and its stack depth to 7."
  },
  {
   "address": 40716,
   "type": "line",
   "text": "A music driver variable written by $9EB9: the low four bits of the tune's first byte."
  },
  {
   "address": 40726,
   "type": "line",
   "text": "Resets voice 1's pulse-width sweep from its stored start value."
  },
  {
   "address": 40732,
   "type": "line",
   "text": "Second entry of voice 1's pulse-width sweep reset, taking the values in X and Y."
  },
  {
   "address": 40749,
   "type": "line",
   "text": "Resets voice 2's pulse-width sweep from its stored start value."
  },
  {
   "address": 40755,
   "type": "line",
   "text": "Second entry of voice 2's pulse-width sweep reset, taking the values in X and Y."
  },
  {
   "address": 40772,
   "type": "line",
   "text": "Resets voice 3's pulse-width sweep from its stored start value."
  },
  {
   "address": 40778,
   "type": "line",
   "text": "Second entry of voice 3's pulse-width sweep reset, taking the values in X and Y."
  },
  {
   "address": 40795,
   "type": "line",
   "text": "Resets the filter-cutoff sweep."
  },
  {
   "address": 40807,
   "type": "line",
   "text": "Second entry of the filter-sweep reset: restarts the four slope counters from their stored values."
  },
  {
   "address": 40832,
   "type": "line",
   "text": "Resets voice 1's pitch sweep (vibrato or slide) from the stored start values."
  },
  {
   "address": 40842,
   "type": "line",
   "text": "Second entry of voice 1's pitch-sweep reset: restarts the four sweep counters from their stored values."
  },
  {
   "address": 40867,
   "type": "line",
   "text": "Clears all 23 SID registers and the voices' active flags, stopping all sound."
  },
  {
   "address": 40907,
   "type": "line",
   "text": "Resets voice 2's pitch sweep."
  },
  {
   "address": 40917,
   "type": "line",
   "text": "Second entry of voice 2's pitch-sweep reset: restarts the four sweep counters from their stored values."
  },
  {
   "address": 40942,
   "type": "line",
   "text": "Resets voice 3's pitch sweep."
  },
  {
   "address": 40952,
   "type": "line",
   "text": "Second entry of voice 3's pitch-sweep reset: restarts the four sweep counters from their stored values."
  },
  {
   "address": 40977,
   "type": "line",
   "text": "Voice 1 command: sets voice 1's transposition (zero page $EC) from the next script byte."
  },
  {
   "address": 40985,
   "type": "line",
   "text": "Voice 1 command: call a subroutine of the script. Pushes the address after the command on voice 1's return stack (at $9CBD and $9CC5, indexed by $E9), counting the depth down, and continues at the address in the script."
  },
  {
   "address": 41017,
   "type": "line",
   "text": "Voice 1 command: pushes the return address $98A5 and jumps to the machine-code routine whose address follows in the script."
  },
  {
   "address": 41035,
   "type": "line",
   "text": "Voice 1 command: stores the next two script bytes in the parameter block at $9CA0 and $9CA1, indexed by the first byte, and goes on four bytes later."
  },
  {
   "address": 41055,
   "type": "line",
   "text": "Voice 1 command: stores two script bytes in the pitch-sweep parameters at $9D65 and $9D66, indexed by the first byte."
  },
  {
   "address": 41075,
   "type": "line",
   "text": "Voice 1 command: copies a block of parameters from an address given in the script (the loop's source operand is rewritten at $A083 and $A084) into the parameter block at $9CA0, downwards from the index in X."
  },
  {
   "address": 41091,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A082, rewritten at $A079."
  },
  {
   "address": 41092,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A082, rewritten at $A07F."
  },
  {
   "address": 41104,
   "type": "line",
   "text": "Voice 1 command: starts a repeat. Pushes the address after the command on the return stack with the repeat count from the script."
  },
  {
   "address": 41133,
   "type": "line",
   "text": "Voice 1 command: copies the 14 parameter bytes ($9CA0 to $9CAD) from an address given in the script."
  },
  {
   "address": 41147,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A0BA, rewritten at $A0AF."
  },
  {
   "address": 41148,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A0BA, rewritten at $A0B5."
  },
  {
   "address": 41158,
   "type": "line",
   "text": "Voice 1 command: jumps to the address in the script."
  },
  {
   "address": 41171,
   "type": "line",
   "text": "Writes $F0 to the SID filter control $D417 (resonance 15, no voice sent through the filter) and records 3 in $9DCE."
  },
  {
   "address": 41193,
   "type": "line",
   "text": "Voice 1 command with two entries: $A0E9 loads 5 and the entry at $A0EC loads 7 (the other is hidden behind a BIT, see $07A9); both store the number in $9CAD, the byte that switches the voice's pitch sweep on (bits 0 to 2 choose how it repeats), and go on."
  },
  {
   "address": 41205,
   "type": "line",
   "text": "Voice 1 command: stores one script byte in the parameter block at $9CA0, indexed by the first byte."
  },
  {
   "address": 41217,
   "type": "line",
   "text": "Voice 1 command: ends a repeat. Counts the repeat count down and jumps back to the start of the loop, or drops out of it when the count reaches zero."
  },
  {
   "address": 41243,
   "type": "line",
   "text": "Voice 1 command: returns from a subroutine to the address on the return stack, or, with the stack empty, stops the voice."
  },
  {
   "address": 41268,
   "type": "line",
   "text": "Voice 1 command: stores one script byte in the pitch-sweep parameters at $9D65, indexed by the first byte."
  },
  {
   "address": 41280,
   "type": "line",
   "text": "Voice 1 command: copies five bytes from an address given in the script into the voice's waveform and envelope parameters at $9CB8 to $9CBC."
  },
  {
   "address": 41310,
   "type": "line",
   "text": "Voice 2 command: call a subroutine of the script, as $A019 does for voice 1, using voice 2's return stack at $9CF2 and $9CFA."
  },
  {
   "address": 41362,
   "type": "line",
   "text": "Voice 2 command: stores the next two script bytes in the parameter block at $9D88, indexed by the first byte."
  },
  {
   "address": 41382,
   "type": "line",
   "text": "Voice 2 command: copies a block of parameters from an address given in the script into voice 2's parameter block at $9CD5."
  },
  {
   "address": 41398,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A1B5, rewritten at $A1AC."
  },
  {
   "address": 41399,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A1B5, rewritten at $A1B2."
  },
  {
   "address": 41411,
   "type": "line",
   "text": "Voice 2 command: starts a repeat, as $A090 does for voice 1."
  },
  {
   "address": 41440,
   "type": "line",
   "text": "Voice 2 command: copies 14 parameter bytes from an address given in the script into $9CD5 onwards."
  },
  {
   "address": 41454,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A1ED, rewritten at $A1E2."
  },
  {
   "address": 41455,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A1ED, rewritten at $A1E8."
  },
  {
   "address": 41465,
   "type": "line",
   "text": "Voice 2 command: sets voice 2's transposition (zero page $ED) from the next script byte."
  },
  {
   "address": 41470,
   "type": "line",
   "text": "Voice 2 command: jumps to the address in the script."
  },
  {
   "address": 41483,
   "type": "line",
   "text": "Voice 2 command with two entries: $A20B loads 7 and the entry at $A20E loads 5 (hidden behind a BIT, see $05A9); both store the number in $9CE2, voice 2's pitch sweep switch."
  },
  {
   "address": 41495,
   "type": "line",
   "text": "Voice 2 command: stores one script byte in voice 2's parameter block at $9CD5, indexed by the first byte."
  },
  {
   "address": 41507,
   "type": "line",
   "text": "Voice 2 command: ends a repeat, as $A101 does for voice 1."
  },
  {
   "address": 41533,
   "type": "line",
   "text": "Voice 2 command: returns from a subroutine, or, with the stack empty, stops voice 2."
  },
  {
   "address": 41567,
   "type": "line",
   "text": "Voice 2 command: stores one script byte in voice 2's pitch-sweep parameters at $9D88, indexed by the first byte."
  },
  {
   "address": 41609,
   "type": "line",
   "text": "Voice 3 command: call a subroutine of the script, using voice 3's return stack at $9D27 and $9D2F."
  },
  {
   "address": 41661,
   "type": "line",
   "text": "Voice 3 command: stores the next two script bytes in voice 3's pitch-sweep parameters at $9DAB, indexed by the first byte."
  },
  {
   "address": 41681,
   "type": "line",
   "text": "Voice 3 command: copies 16 bytes from an address given in the script into $9D3F onwards."
  },
  {
   "address": 41695,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A2DE, rewritten at $A2D3."
  },
  {
   "address": 41696,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A2DE, rewritten at $A2D9."
  },
  {
   "address": 41706,
   "type": "line",
   "text": "Voice 3 command: copies a block of parameters from an address given in the script into voice 3's parameter block at $9D0A."
  },
  {
   "address": 41722,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A2F9, rewritten at $A2F0."
  },
  {
   "address": 41723,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A2F9, rewritten at $A2F6."
  },
  {
   "address": 41735,
   "type": "line",
   "text": "Voice 3 command: starts a repeat, as $A090 does for voice 1."
  },
  {
   "address": 41764,
   "type": "line",
   "text": "Voice 3 command: copies 14 parameter bytes from an address given in the script into $9D0A onwards."
  },
  {
   "address": 41778,
   "type": "line",
   "text": "The low byte of the source address of the copy loop at $A331, rewritten at $A326."
  },
  {
   "address": 41779,
   "type": "line",
   "text": "The high byte of the source address of the copy loop at $A331, rewritten at $A32C."
  },
  {
   "address": 41794,
   "type": "line",
   "text": "Voice 3 command: jumps to the address in the script."
  },
  {
   "address": 41807,
   "type": "line",
   "text": "Writes $F4 to the SID filter control register $D417 (resonance 15, voice 3 through the filter) and records the voice number in $9DCE."
  },
  {
   "address": 41833,
   "type": "line",
   "text": "Voice 3 command: stores one script byte in voice 3's parameter block at $9D0A, indexed by the first byte."
  },
  {
   "address": 41845,
   "type": "line",
   "text": "Voice 3 command: ends a repeat, as $A101 does for voice 1."
  },
  {
   "address": 41871,
   "type": "line",
   "text": "Voice 3 command: returns from a subroutine, or, with the stack empty, stops voice 3."
  },
  {
   "address": 41896,
   "type": "line",
   "text": "Voice 3 command: stores one script byte in voice 3's pitch-sweep parameters at $9DAB, indexed by the first byte."
  },
  {
   "address": 41908,
   "type": "line",
   "text": "Voice 3 command: sets voice 3's transposition (zero page $EE) from the next script byte."
  },
  {
   "address": 41917,
   "type": "line",
   "text": "Voice 3 command: copies five bytes from an address given in the script into voice 3's waveform and envelope parameters at $9D22 onwards."
  },
  {
   "address": 41939,
   "type": "line",
   "text": "Per-tick update of the filter cutoff sweep: steps the cutoff through up to four slopes and writes $D415 and $D416."
  },
  {
   "address": 42100,
   "type": "line",
   "text": "Copies the stored sweep parameters into their working copies and restarts the filter sweep."
  },
  {
   "address": 42123,
   "type": "line",
   "text": "Per-tick routine of voice 1: counts its note duration down and, when it expires, reads the next script byte. A byte below $C0 is a note (with a duration, written to the SID with its envelope), a byte of $C0 or above is a command through the table at $9C00."
  },
  {
   "address": 42146,
   "type": "line",
   "text": "Reads the next script byte of voice 1: below $C0 it is a note, otherwise a command whose entry is found in the table at $9C00 (the low byte of the jump operand at $A4B0 is rewritten at $A4AD)."
  },
  {
   "address": 42161,
   "type": "line",
   "text": "The operand of the jump through voice 1's command table; the byte at $A4AD stores the command number here."
  },
  {
   "address": 42166,
   "type": "line",
   "text": "The note path of voice 1's event reader: the byte is a note number (less $60 when it is a rest-length variant, and $5F means a rest). The routine adds the transposition, sets the gate bit in the control register, looks the note up in the frequency tables at $9DF9 and $9E4A, writes the frequency, pulse width and envelope to the SID's voice 1 registers and copies the pulse-width, pitch and filter sweep parameters of the voice into their working copies."
  },
  {
   "address": 42466,
   "type": "line",
   "text": "Per-tick routine of voice 2, the same as voice 1's but for the script at $E2 and the SID registers $D407 to $D40D."
  },
  {
   "address": 42489,
   "type": "line",
   "text": "Reads the next script byte of voice 2, as $A4A2 does for voice 1, through the table at $9C34."
  },
  {
   "address": 42504,
   "type": "line",
   "text": "The operand of the jump through voice 2's command table, written at $A604."
  },
  {
   "address": 42509,
   "type": "line",
   "text": "The note path of voice 2's event reader, the same as $A4B6 for voice 2's SID registers $D407 to $D40D and its working copies."
  },
  {
   "address": 42811,
   "type": "line",
   "text": "Per-tick routine of voice 3, the same but for the script at $E4 and SID registers $D40E to $D414."
  },
  {
   "address": 42834,
   "type": "line",
   "text": "Reads the next script byte of voice 3, as $A4A2 does for voice 1, through the table at $9C6C."
  },
  {
   "address": 42849,
   "type": "line",
   "text": "The operand of the jump through voice 3's command table, written at $A75D."
  },
  {
   "address": 42854,
   "type": "line",
   "text": "The note path of voice 3's event reader, the same as $A4B6 for voice 3's SID registers $D40E to $D414 and its working copies; a note of $50 is played without the transposition."
  },
  {
   "address": 43160,
   "type": "line",
   "text": "Per-tick effects of voice 1: gate-off timing, pulse-width sweep and pitch sweep, writing $D402 to $D404 and $D400 and $D401."
  },
  {
   "address": 43478,
   "type": "line",
   "text": "Per-tick effects of voice 2: gate-off timing, pulse width and pitch sweeps, to $D409, $D40A, $D40B, $D407, $D408."
  },
  {
   "address": 43848,
   "type": "line",
   "text": "Per-tick effects of voice 3, to $D410, $D411, $D412 and $D40E, $D40F."
  },
  {
   "address": 44173,
   "type": "line",
   "text": "Returns non-zero when any of the three voices is still playing (the OR of the voices' active flags)."
  },
  {
   "address": 44192,
   "type": "line",
   "text": "The five tunes, seven bytes each: voice 1, voice 2 and voice 3 script addresses as words, then a flag byte whose low four bits $9EB1 keeps in $9F0C. $9EB1 is called with Y = 7 times the tune number plus 5: 5 is the attract tune, 12 the intro, 19 the ending after capture or energy loss, 26 part one and 33 part two."
  },
  {
   "address": 44193,
   "type": "line",
   "text": "Data at $ACA1 (f_ACA1): read by start_tune."
  },
  {
   "address": 44257,
   "type": "line",
   "text": "Continues tune_pointers ($ACA0 to $ACE1) at offset 65: Start addresses of the voices' scripts of each tune, three words per tune; $9EB1 reads them by tune number. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 44258,
   "type": "line",
   "text": "The voices' scripts of every tune: notes, durations and command bytes that the driver at $A48B interprets."
  },
  {
   "address": 45282,
   "type": "line",
   "text": "Bytes $B0E2 to $B4E1 of music_scripts (part 2 of 5, 4893 bytes in all): The voices' scripts of every tune."
  },
  {
   "address": 46306,
   "type": "line",
   "text": "Bytes $B4E2 to $B8E1 of music_scripts (part 3 of 5, 4893 bytes in all): The voices' scripts of every tune."
  },
  {
   "address": 47330,
   "type": "line",
   "text": "Bytes $B8E2 to $BCE1 of music_scripts (part 4 of 5, 4893 bytes in all): The voices' scripts of every tune."
  },
  {
   "address": 48354,
   "type": "line",
   "text": "Bytes $BCE2 to $BFFE of music_scripts (part 5 of 5, 4893 bytes in all): The voices' scripts of every tune."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "Screen memory for the video bank at $C000: the playfield rows at $C050, the panel rows at $C258 and the message window at $C360 and $C3F8 (sprite pointers)."
  },
  {
   "address": 50176,
   "type": "line",
   "text": "Bytes $C400 to $C7FF of screen_buffers (part 2 of 2, 2048 bytes in all): Screen memory for the video bank at $C000."
  },
  {
   "address": 51200,
   "type": "line",
   "text": "A character set of 256 characters."
  },
  {
   "address": 52224,
   "type": "line",
   "text": "Bytes $CC00 to $CFFF of character_set_a (part 2 of 2, 2048 bytes in all): A character set of 256 characters.."
  },
  {
   "address": 52424,
   "type": "line",
   "text": "Data at $CCC8 (a_CCC8): written by draw_picture_colours."
  },
  {
   "address": 52488,
   "type": "line",
   "text": "Continues character_set_a ($C800 to $CFFF) at offset 1288: A character set of 256 characters. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "A character set that the panel band and the pictures use."
  },
  {
   "address": 53448,
   "type": "line",
   "text": "Data at $D0C8 (a_D0C8): written by playfield_colour_fill, draw_picture_colours, part_two_colour_fill."
  },
  {
   "address": 53512,
   "type": "line",
   "text": "Continues character_set_b ($D000 to $D7FF) at offset 264: A character set that the panel band and the pictures use. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 54272,
   "type": "line",
   "text": "Bytes $D400 to $D7FF of character_set_b (part 2 of 2, 2048 bytes in all): A character set that the panel band and the pictures use.."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "The main 2,048-byte character set of part one: tiles' characters, the font and the panel characters."
  },
  {
   "address": 55375,
   "type": "line",
   "text": "Data at $D84F (f_D84F): written by shift_map_left, part_two_scroll_rows_irq; read by shift_map_right."
  },
  {
   "address": 55376,
   "type": "line",
   "text": "Data at $D850 (f_D850): written by shift_map_right, part_one_prepare; read by shift_map_left, part_two_scroll_rows_irq."
  },
  {
   "address": 55386,
   "type": "line",
   "text": "Data at $D85A (f_D85A): written by attract_colour_fill."
  },
  {
   "address": 55415,
   "type": "line",
   "text": "Data at $D877 (f_D877): written by shift_map_left, part_two_scroll_rows_irq; read by shift_map_right."
  },
  {
   "address": 55416,
   "type": "line",
   "text": "Data at $D878 (f_D878): written by shift_map_right; read by shift_map_left, part_two_scroll_rows_irq."
  },
  {
   "address": 55455,
   "type": "line",
   "text": "Data at $D89F (f_D89F): written by shift_map_left, part_two_scroll_rows_irq; read by shift_map_right."
  },
  {
   "address": 55456,
   "type": "line",
   "text": "Data at $D8A0 (f_D8A0): written by shift_map_right; read by shift_map_left, part_two_scroll_rows_irq."
  },
  {
   "address": 55466,
   "type": "line",
   "text": "Data at $D8AA (f_D8AA): written by attract_colour_fill."
  },
  {
   "address": 55495,
   "type": "line",
   "text": "Data at $D8C7 (f_D8C7): written by shift_map_left, part_two_scroll_rows_irq; read by shift_map_right."
  },
  {
   "address": 55496,
   "type": "line",
   "text": "Data at $D8C8 (f_D8C8): written by shift_map_right; read by shift_map_left, part_two_scroll_rows_irq."
  },
  {
   "address": 55535,
   "type": "line",
   "text": "Data at $D8EF (f_D8EF): written by shift_map_left, part_two_nmi, part_two_scroll_rows_irq; read by shift_map_right."
  },
  {
   "address": 55536,
   "type": "line",
   "text": "Data at $D8F0 (f_D8F0): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55546,
   "type": "line",
   "text": "Data at $D8FA (f_D8FA): written by attract_screen_setup, attract_bitmap_show, attract_colour_fill."
  },
  {
   "address": 55575,
   "type": "line",
   "text": "Data at $D917 (f_D917): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55576,
   "type": "line",
   "text": "Data at $D918 (f_D918): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55611,
   "type": "line",
   "text": "Data at $D93B (f_D93B): written by draw_ending_block."
  },
  {
   "address": 55615,
   "type": "line",
   "text": "Data at $D93F (f_D93F): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55616,
   "type": "line",
   "text": "Data at $D940 (f_D940): written by shift_map_right, part_one_prepare; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55626,
   "type": "line",
   "text": "Data at $D94A (f_D94A): written by attract_colour_fill."
  },
  {
   "address": 55655,
   "type": "line",
   "text": "Data at $D967 (f_D967): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55656,
   "type": "line",
   "text": "Data at $D968 (f_D968): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55695,
   "type": "line",
   "text": "Data at $D98F (f_D98F): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55696,
   "type": "line",
   "text": "Data at $D990 (f_D990): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55706,
   "type": "line",
   "text": "Data at $D99A (f_D99A): written by attract_colour_fill."
  },
  {
   "address": 55735,
   "type": "line",
   "text": "Data at $D9B7 (f_D9B7): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55736,
   "type": "line",
   "text": "Data at $D9B8 (f_D9B8): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55775,
   "type": "line",
   "text": "Data at $D9DF (f_D9DF): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55776,
   "type": "line",
   "text": "Data at $D9E0 (f_D9E0): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55786,
   "type": "line",
   "text": "Data at $D9EA (f_D9EA): written by attract_colour_fill."
  },
  {
   "address": 55796,
   "type": "line",
   "text": "Data at $D9F4 (f_D9F4): written by attract_screen_setup, attract_bitmap_show."
  },
  {
   "address": 55815,
   "type": "line",
   "text": "Data at $DA07 (f_DA07): written by shift_map_left, part_two_nmi; read by shift_map_right."
  },
  {
   "address": 55816,
   "type": "line",
   "text": "Data at $DA08 (f_DA08): written by shift_map_right; read by shift_map_left, part_two_nmi."
  },
  {
   "address": 55866,
   "type": "line",
   "text": "Data at $DA3A (f_DA3A): written by attract_colour_fill."
  },
  {
   "address": 55930,
   "type": "line",
   "text": "Continues character_set_main ($D800 to $DFFF) at offset 634: The main 2,048-byte character set of part one: tiles' characters, the font and the panel characters. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 55946,
   "type": "line",
   "text": "Data at $DA8A (f_DA8A): written by attract_colour_fill."
  },
  {
   "address": 56010,
   "type": "line",
   "text": "Continues character_set_main ($D800 to $DFFF) at offset 714: The main 2,048-byte character set of part one: tiles' characters, the font and the panel characters. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 56026,
   "type": "line",
   "text": "Data at $DADA (f_DADA): written by attract_colour_fill."
  },
  {
   "address": 56046,
   "type": "line",
   "text": "Data at $DAEE (f_DAEE): written by attract_screen_setup, attract_bitmap_show."
  },
  {
   "address": 56106,
   "type": "line",
   "text": "Data at $DB2A (f_DB2A): written by attract_colour_fill."
  },
  {
   "address": 56170,
   "type": "line",
   "text": "Continues character_set_main ($D800 to $DFFF) at offset 874: The main 2,048-byte character set of part one: tiles' characters, the font and the panel characters. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 56186,
   "type": "line",
   "text": "Data at $DB7A (f_DB7A): written by attract_colour_fill."
  },
  {
   "address": 56250,
   "type": "line",
   "text": "Continues character_set_main ($D800 to $DFFF) at offset 954: The main 2,048-byte character set of part one: tiles' characters, the font and the panel characters. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 56320,
   "type": "line",
   "text": "Bytes $DC00 to $DFFF of character_set_main (part 2 of 2, 2048 bytes in all): The main 2,048-byte character set of part one."
  },
  {
   "address": 56797,
   "type": "line",
   "text": "Data at $DDDD (f_DDDD): read by v1_cmd_copy_block, v1_cmd_copy_block_14, v2_cmd_copy_block, v2_cmd_copy_block_14 and 3 more."
  },
  {
   "address": 56861,
   "type": "line",
   "text": "Continues character_set_main ($D800 to $DFFF) at offset 1565: The main 2,048-byte character set of part one: tiles' characters, the font and the panel characters. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Sprite shapes and further character data of video bank 3, 64 bytes per shape."
  },
  {
   "address": 58368,
   "type": "line",
   "text": "Bytes $E400 to $E7FF of sprite_shapes (part 2 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  },
  {
   "address": 59392,
   "type": "line",
   "text": "Bytes $E800 to $EBFF of sprite_shapes (part 3 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  },
  {
   "address": 60416,
   "type": "line",
   "text": "Bytes $EC00 to $EFFF of sprite_shapes (part 4 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  },
  {
   "address": 60543,
   "type": "line",
   "text": "Data at $EC7F (f_EC7F): read by sinking_animation."
  },
  {
   "address": 60546,
   "type": "line",
   "text": "Data at $EC82 (f_EC82): written by sinking_animation."
  },
  {
   "address": 60604,
   "type": "line",
   "text": "Data at $ECBC (a_ECBC): read by sinking_animation."
  },
  {
   "address": 60605,
   "type": "line",
   "text": "Data at $ECBD (a_ECBD): read by sinking_animation."
  },
  {
   "address": 60606,
   "type": "line",
   "text": "Data at $ECBE (a_ECBE): read by sinking_animation."
  },
  {
   "address": 60607,
   "type": "line",
   "text": "Data at $ECBF (f_ECBF): read by sinking_animation."
  },
  {
   "address": 60608,
   "type": "line",
   "text": "Data at $ECC0 (a_ECC0): written by sinking_animation."
  },
  {
   "address": 60609,
   "type": "line",
   "text": "Data at $ECC1 (a_ECC1): written by sinking_animation."
  },
  {
   "address": 60610,
   "type": "line",
   "text": "Data at $ECC2 (f_ECC2): written by sinking_animation."
  },
  {
   "address": 60674,
   "type": "line",
   "text": "Continues sprite_shapes ($E000 to $FFFB) at offset 3330: Sprite shapes and further character data of video bank 3, 64 bytes per shape. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 61440,
   "type": "line",
   "text": "Bytes $F000 to $F3FF of sprite_shapes (part 5 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  },
  {
   "address": 61856,
   "type": "line",
   "text": "Data at $F1A0 (a_F1A0): read by v1_cmd_goto."
  },
  {
   "address": 61920,
   "type": "line",
   "text": "Continues sprite_shapes ($E000 to $FFFB) at offset 4576: Sprite shapes and further character data of video bank 3, 64 bytes per shape. No instruction names this address, the data is reached through an index or pointer."
  },
  {
   "address": 62464,
   "type": "line",
   "text": "Bytes $F400 to $F7FF of sprite_shapes (part 6 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  },
  {
   "address": 63488,
   "type": "line",
   "text": "Bytes $F800 to $FBFF of sprite_shapes (part 7 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  },
  {
   "address": 64512,
   "type": "line",
   "text": "Bytes $FC00 to $FFFB of sprite_shapes (part 8 of 8, 8188 bytes in all): Sprite shapes and further character data of video bank 3, 64 bytes per shape.."
  }
 ]
}