{
 "schema": 1,
 "platform": "c64",
 "game": "platoon",
 "part": "load4",
 "build": "PAL disk, side 1 OVL1 at its hand-over to $0400",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    0,
    1023,
    "zero page, the stack and the game's working variables at $0200-$03FF (the score digits, the joystick and the scratch bytes), all written before they are read"
   ],
   [
    16384,
    18431,
    "the screen, its sprite pointers and the panel, drawn by $38C4, $3BC2 and $3AD4"
   ],
   [
    61184,
    61341,
    "the music driver's workspace for the three voices and its note-length table, set by $E222 before use"
   ],
   [
    58739,
    58739,
    "one byte of the waveform command table $E572 that the emulator's memory map marks as run; no jump in the code reaches it"
   ]
  ],
  "extra": [
   [
    13777,
    13832,
    "the rest of the 120 room kinds from $3591"
   ],
   [
    14098,
    14239,
    "the rest of the room kinds' shape lists from $36D3"
   ],
   [
    14336,
    14531,
    "the rest of the shapes from $37C0"
   ],
   [
    15571,
    15761,
    "the rest of the 256 character colours from $3C93"
   ],
   [
    20480,
    32767,
    "sprite shapes, read by the video chip"
   ],
   [
    32768,
    40287,
    "the ten room maps, read by $3543"
   ],
   [
    40960,
    45055,
    "the title and jungle character sets, copied to $4800"
   ]
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 170,
   "type": "Undefined"
  },
  {
   "start": 171,
   "end": 173,
   "type": "Code"
  },
  {
   "start": 174,
   "end": 255,
   "type": "Undefined"
  },
  {
   "start": 256,
   "end": 301,
   "type": "Code"
  },
  {
   "start": 302,
   "end": 307,
   "type": "Undefined"
  },
  {
   "start": 308,
   "end": 323,
   "type": "Code"
  },
  {
   "start": 324,
   "end": 355,
   "type": "Undefined"
  },
  {
   "start": 356,
   "end": 369,
   "type": "Code"
  },
  {
   "start": 370,
   "end": 1023,
   "type": "Undefined"
  },
  {
   "start": 1024,
   "end": 1368,
   "type": "Code"
  },
  {
   "start": 1369,
   "end": 1474,
   "type": "Undefined"
  },
  {
   "start": 1475,
   "end": 1855,
   "type": "Byte"
  },
  {
   "start": 1856,
   "end": 1919,
   "type": "Undefined"
  },
  {
   "start": 1920,
   "end": 2116,
   "type": "Byte"
  },
  {
   "start": 2117,
   "end": 2220,
   "type": "Undefined"
  },
  {
   "start": 2221,
   "end": 2307,
   "type": "Byte"
  },
  {
   "start": 2308,
   "end": 2391,
   "type": "Code"
  },
  {
   "start": 2392,
   "end": 2701,
   "type": "Undefined"
  },
  {
   "start": 2702,
   "end": 2862,
   "type": "Byte"
  },
  {
   "start": 2863,
   "end": 3098,
   "type": "Code"
  },
  {
   "start": 3099,
   "end": 3101,
   "type": "Undefined"
  },
  {
   "start": 3102,
   "end": 3298,
   "type": "Code"
  },
  {
   "start": 3299,
   "end": 3394,
   "type": "Undefined"
  },
  {
   "start": 3395,
   "end": 3411,
   "type": "Byte"
  },
  {
   "start": 3412,
   "end": 3447,
   "type": "Undefined"
  },
  {
   "start": 3448,
   "end": 3637,
   "type": "Code"
  },
  {
   "start": 3638,
   "end": 3642,
   "type": "Undefined"
  },
  {
   "start": 3643,
   "end": 3859,
   "type": "Code"
  },
  {
   "start": 3860,
   "end": 3964,
   "type": "Undefined"
  },
  {
   "start": 3965,
   "end": 4009,
   "type": "Code"
  },
  {
   "start": 4010,
   "end": 4011,
   "type": "Undefined"
  },
  {
   "start": 4012,
   "end": 4123,
   "type": "Code"
  },
  {
   "start": 4124,
   "end": 4167,
   "type": "Undefined"
  },
  {
   "start": 4168,
   "end": 4247,
   "type": "Code"
  },
  {
   "start": 4248,
   "end": 4507,
   "type": "Undefined"
  },
  {
   "start": 4508,
   "end": 4520,
   "type": "Byte"
  },
  {
   "start": 4521,
   "end": 4562,
   "type": "Code"
  },
  {
   "start": 4563,
   "end": 4801,
   "type": "Undefined"
  },
  {
   "start": 4802,
   "end": 4860,
   "type": "Byte"
  },
  {
   "start": 4861,
   "end": 4929,
   "type": "Undefined"
  },
  {
   "start": 4930,
   "end": 5186,
   "type": "Byte"
  },
  {
   "start": 5187,
   "end": 5393,
   "type": "Code"
  },
  {
   "start": 5394,
   "end": 5400,
   "type": "Undefined"
  },
  {
   "start": 5401,
   "end": 5481,
   "type": "Code"
  },
  {
   "start": 5482,
   "end": 5499,
   "type": "Undefined"
  },
  {
   "start": 5500,
   "end": 5794,
   "type": "Code"
  },
  {
   "start": 5795,
   "end": 5800,
   "type": "Undefined"
  },
  {
   "start": 5801,
   "end": 5835,
   "type": "Code"
  },
  {
   "start": 5836,
   "end": 5836,
   "type": "Undefined"
  },
  {
   "start": 5837,
   "end": 6068,
   "type": "Code"
  },
  {
   "start": 6069,
   "end": 6070,
   "type": "Undefined"
  },
  {
   "start": 6071,
   "end": 6081,
   "type": "Code"
  },
  {
   "start": 6082,
   "end": 6084,
   "type": "Undefined"
  },
  {
   "start": 6085,
   "end": 6176,
   "type": "Code"
  },
  {
   "start": 6177,
   "end": 6252,
   "type": "Undefined"
  },
  {
   "start": 6253,
   "end": 6677,
   "type": "Byte"
  },
  {
   "start": 6678,
   "end": 6727,
   "type": "Code"
  },
  {
   "start": 6728,
   "end": 6746,
   "type": "Undefined"
  },
  {
   "start": 6747,
   "end": 6863,
   "type": "Code"
  },
  {
   "start": 6864,
   "end": 6881,
   "type": "Undefined"
  },
  {
   "start": 6882,
   "end": 6999,
   "type": "Code"
  },
  {
   "start": 7000,
   "end": 7004,
   "type": "Undefined"
  },
  {
   "start": 7005,
   "end": 7715,
   "type": "Code"
  },
  {
   "start": 7716,
   "end": 7729,
   "type": "Undefined"
  },
  {
   "start": 7730,
   "end": 8104,
   "type": "Code"
  },
  {
   "start": 8105,
   "end": 8110,
   "type": "Undefined"
  },
  {
   "start": 8111,
   "end": 8301,
   "type": "Code"
  },
  {
   "start": 8302,
   "end": 8303,
   "type": "Undefined"
  },
  {
   "start": 8304,
   "end": 8646,
   "type": "Code"
  },
  {
   "start": 8647,
   "end": 8647,
   "type": "Undefined"
  },
  {
   "start": 8648,
   "end": 8840,
   "type": "Code"
  },
  {
   "start": 8841,
   "end": 8904,
   "type": "Undefined"
  },
  {
   "start": 8905,
   "end": 8927,
   "type": "Byte"
  },
  {
   "start": 8928,
   "end": 9108,
   "type": "Code"
  },
  {
   "start": 9109,
   "end": 9211,
   "type": "Undefined"
  },
  {
   "start": 9212,
   "end": 9212,
   "type": "Byte"
  },
  {
   "start": 9213,
   "end": 9234,
   "type": "Code"
  },
  {
   "start": 9235,
   "end": 9238,
   "type": "Undefined"
  },
  {
   "start": 9239,
   "end": 9468,
   "type": "Code"
  },
  {
   "start": 9469,
   "end": 9472,
   "type": "Undefined"
  },
  {
   "start": 9473,
   "end": 9696,
   "type": "Code"
  },
  {
   "start": 9697,
   "end": 9717,
   "type": "Undefined"
  },
  {
   "start": 9718,
   "end": 10274,
   "type": "Code"
  },
  {
   "start": 10275,
   "end": 10294,
   "type": "Undefined"
  },
  {
   "start": 10295,
   "end": 10430,
   "type": "Code"
  },
  {
   "start": 10431,
   "end": 10465,
   "type": "Undefined"
  },
  {
   "start": 10466,
   "end": 10918,
   "type": "Code"
  },
  {
   "start": 10919,
   "end": 10928,
   "type": "Byte"
  },
  {
   "start": 10929,
   "end": 11173,
   "type": "Code"
  },
  {
   "start": 11174,
   "end": 11176,
   "type": "Byte"
  },
  {
   "start": 11177,
   "end": 11459,
   "type": "Code"
  },
  {
   "start": 11460,
   "end": 11460,
   "type": "Byte"
  },
  {
   "start": 11461,
   "end": 11550,
   "type": "Code"
  },
  {
   "start": 11551,
   "end": 11612,
   "type": "Byte"
  },
  {
   "start": 11613,
   "end": 11732,
   "type": "Code"
  },
  {
   "start": 11733,
   "end": 11733,
   "type": "Byte"
  },
  {
   "start": 11734,
   "end": 11853,
   "type": "Code"
  },
  {
   "start": 11854,
   "end": 11854,
   "type": "Byte"
  },
  {
   "start": 11855,
   "end": 11921,
   "type": "Code"
  },
  {
   "start": 11922,
   "end": 11922,
   "type": "Byte"
  },
  {
   "start": 11923,
   "end": 12109,
   "type": "Code"
  },
  {
   "start": 12110,
   "end": 12236,
   "type": "Byte"
  },
  {
   "start": 12237,
   "end": 12367,
   "type": "Code"
  },
  {
   "start": 12368,
   "end": 12368,
   "type": "Undefined"
  },
  {
   "start": 12369,
   "end": 12406,
   "type": "Code"
  },
  {
   "start": 12407,
   "end": 12408,
   "type": "Undefined"
  },
  {
   "start": 12409,
   "end": 12411,
   "type": "Code"
  },
  {
   "start": 12412,
   "end": 12412,
   "type": "Undefined"
  },
  {
   "start": 12413,
   "end": 12644,
   "type": "Code"
  },
  {
   "start": 12645,
   "end": 12645,
   "type": "Undefined"
  },
  {
   "start": 12646,
   "end": 12657,
   "type": "Code"
  },
  {
   "start": 12658,
   "end": 12722,
   "type": "Undefined"
  },
  {
   "start": 12723,
   "end": 12754,
   "type": "Byte"
  },
  {
   "start": 12755,
   "end": 12950,
   "type": "Code"
  },
  {
   "start": 12951,
   "end": 12956,
   "type": "Undefined"
  },
  {
   "start": 12957,
   "end": 13250,
   "type": "Code"
  },
  {
   "start": 13251,
   "end": 13251,
   "type": "Undefined"
  },
  {
   "start": 13252,
   "end": 13262,
   "type": "Code"
  },
  {
   "start": 13263,
   "end": 13286,
   "type": "Undefined"
  },
  {
   "start": 13287,
   "end": 13711,
   "type": "Code"
  },
  {
   "start": 13712,
   "end": 13776,
   "type": "Undefined"
  },
  {
   "start": 13777,
   "end": 13832,
   "type": "Byte"
  },
  {
   "start": 13833,
   "end": 13875,
   "type": "Undefined"
  },
  {
   "start": 13876,
   "end": 13955,
   "type": "Code"
  },
  {
   "start": 13956,
   "end": 13957,
   "type": "Undefined"
  },
  {
   "start": 13958,
   "end": 14030,
   "type": "Code"
  },
  {
   "start": 14031,
   "end": 14097,
   "type": "Undefined"
  },
  {
   "start": 14098,
   "end": 14239,
   "type": "Byte"
  },
  {
   "start": 14240,
   "end": 14335,
   "type": "Undefined"
  },
  {
   "start": 14336,
   "end": 14531,
   "type": "Byte"
  },
  {
   "start": 14532,
   "end": 14709,
   "type": "Code"
  },
  {
   "start": 14710,
   "end": 14822,
   "type": "Undefined"
  },
  {
   "start": 14823,
   "end": 14954,
   "type": "Byte"
  },
  {
   "start": 14955,
   "end": 15124,
   "type": "Code"
  },
  {
   "start": 15125,
   "end": 15126,
   "type": "Undefined"
  },
  {
   "start": 15127,
   "end": 15189,
   "type": "Code"
  },
  {
   "start": 15190,
   "end": 15213,
   "type": "Undefined"
  },
  {
   "start": 15214,
   "end": 15286,
   "type": "Code"
  },
  {
   "start": 15287,
   "end": 15297,
   "type": "Undefined"
  },
  {
   "start": 15298,
   "end": 15384,
   "type": "Code"
  },
  {
   "start": 15385,
   "end": 15476,
   "type": "Undefined"
  },
  {
   "start": 15477,
   "end": 15506,
   "type": "Byte"
  },
  {
   "start": 15507,
   "end": 15570,
   "type": "Undefined"
  },
  {
   "start": 15571,
   "end": 15761,
   "type": "Byte"
  },
  {
   "start": 15762,
   "end": 15766,
   "type": "Undefined"
  },
  {
   "start": 15767,
   "end": 15910,
   "type": "Code"
  },
  {
   "start": 15911,
   "end": 18431,
   "type": "Undefined"
  },
  {
   "start": 18432,
   "end": 45055,
   "type": "Byte"
  },
  {
   "start": 45056,
   "end": 49151,
   "type": "Undefined"
  },
  {
   "start": 49152,
   "end": 49186,
   "type": "Code"
  },
  {
   "start": 49187,
   "end": 49187,
   "type": "Undefined"
  },
  {
   "start": 49188,
   "end": 49239,
   "type": "Code"
  },
  {
   "start": 49240,
   "end": 49240,
   "type": "Byte"
  },
  {
   "start": 49241,
   "end": 49292,
   "type": "Code"
  },
  {
   "start": 49293,
   "end": 49294,
   "type": "Undefined"
  },
  {
   "start": 49295,
   "end": 49707,
   "type": "Code"
  },
  {
   "start": 49708,
   "end": 49709,
   "type": "Undefined"
  },
  {
   "start": 49710,
   "end": 50020,
   "type": "Code"
  },
  {
   "start": 50021,
   "end": 50724,
   "type": "Undefined"
  },
  {
   "start": 50725,
   "end": 50725,
   "type": "Code"
  },
  {
   "start": 50726,
   "end": 51199,
   "type": "Undefined"
  },
  {
   "start": 51200,
   "end": 53248,
   "type": "Byte"
  },
  {
   "start": 53249,
   "end": 57343,
   "type": "Undefined"
  },
  {
   "start": 57344,
   "end": 57783,
   "type": "Code"
  },
  {
   "start": 57784,
   "end": 57868,
   "type": "Undefined"
  },
  {
   "start": 57869,
   "end": 58242,
   "type": "Code"
  },
  {
   "start": 58243,
   "end": 58243,
   "type": "Undefined"
  },
  {
   "start": 58244,
   "end": 58271,
   "type": "Code"
  },
  {
   "start": 58272,
   "end": 58273,
   "type": "Undefined"
  },
  {
   "start": 58274,
   "end": 58346,
   "type": "Code"
  },
  {
   "start": 58347,
   "end": 58347,
   "type": "Undefined"
  },
  {
   "start": 58348,
   "end": 58541,
   "type": "Code"
  },
  {
   "start": 58542,
   "end": 58624,
   "type": "Undefined"
  },
  {
   "start": 58625,
   "end": 58737,
   "type": "Code"
  },
  {
   "start": 58738,
   "end": 58964,
   "type": "Byte"
  },
  {
   "start": 58965,
   "end": 59058,
   "type": "Undefined"
  },
  {
   "start": 59059,
   "end": 59064,
   "type": "Byte"
  },
  {
   "start": 59065,
   "end": 59128,
   "type": "Undefined"
  },
  {
   "start": 59129,
   "end": 59133,
   "type": "Byte"
  },
  {
   "start": 59134,
   "end": 59198,
   "type": "Undefined"
  },
  {
   "start": 59199,
   "end": 61183,
   "type": "Byte"
  },
  {
   "start": 61184,
   "end": 61439,
   "type": "Undefined"
  },
  {
   "start": 61440,
   "end": 61516,
   "type": "Code"
  },
  {
   "start": 61517,
   "end": 61525,
   "type": "Undefined"
  },
  {
   "start": 61526,
   "end": 61642,
   "type": "Code"
  },
  {
   "start": 61643,
   "end": 61695,
   "type": "Undefined"
  },
  {
   "start": 61696,
   "end": 62910,
   "type": "Byte"
  },
  {
   "start": 62911,
   "end": 62975,
   "type": "Undefined"
  },
  {
   "start": 62976,
   "end": 63011,
   "type": "Code"
  },
  {
   "start": 63012,
   "end": 63012,
   "type": "Undefined"
  },
  {
   "start": 63013,
   "end": 63159,
   "type": "Code"
  },
  {
   "start": 63160,
   "end": 63168,
   "type": "Undefined"
  },
  {
   "start": 63169,
   "end": 63381,
   "type": "Code"
  },
  {
   "start": 63382,
   "end": 63403,
   "type": "Undefined"
  },
  {
   "start": 63404,
   "end": 63609,
   "type": "Byte"
  },
  {
   "start": 63610,
   "end": 63743,
   "type": "Undefined"
  },
  {
   "start": 63744,
   "end": 64999,
   "type": "Byte"
  },
  {
   "start": 65000,
   "end": 65535,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "zpf_00",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32,
   "name": "zpa_20",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33,
   "name": "zpa_21",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpa_2E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47,
   "name": "zpa_2F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50,
   "name": "zpa_32",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51,
   "name": "zpa_33",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52,
   "name": "zpa_34",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53,
   "name": "zpa_35",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 54,
   "name": "zpa_36",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55,
   "name": "zpa_37",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 130,
   "name": "zpp_82",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 131,
   "name": "zpa_83",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 132,
   "name": "zpa_84",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 133,
   "name": "zpa_85",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 134,
   "name": "zpa_86",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 135,
   "name": "zpa_87",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 136,
   "name": "zpa_88",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 137,
   "name": "zpa_89",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 138,
   "name": "zpa_8A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 144,
   "name": "zpa_90",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 145,
   "name": "zpa_91",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 146,
   "name": "zpa_92",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 147,
   "name": "zpa_93",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 148,
   "name": "zpa_94",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 149,
   "name": "zpa_95",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 157,
   "name": "zpa_9D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 170,
   "name": "zpa_AA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 171,
   "name": "s_AB",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 172,
   "name": "zpa_AC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 174,
   "name": "zpa_AE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 175,
   "name": "zpa_AF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 176,
   "name": "zpp_B0",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 177,
   "name": "zpa_B1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 230,
   "name": "zpp_E6",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 256,
   "name": "b_0100",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 264,
   "name": "j_0108",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 265,
   "name": "b_0109",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 302,
   "name": "f_012E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 310,
   "name": "s_0136",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 317,
   "name": "s_013D",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 323,
   "name": "r_0143",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 356,
   "name": "j_0164",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 673,
   "name": "a_02A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 681,
   "name": "a_02A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 736,
   "name": "a_02E0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 737,
   "name": "a_02E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 738,
   "name": "a_02E2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 771,
   "name": "a_0303",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 774,
   "name": "a_0306",
   "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": 788,
   "name": "f_0314",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 925,
   "name": "a_039D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 928,
   "name": "a_03A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 929,
   "name": "a_03A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 930,
   "name": "a_03A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 939,
   "name": "a_03AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "confrontation_entry",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1234,
   "name": "b_04D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1286,
   "name": "set_shot_frames",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1297,
   "name": "b_0511",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1338,
   "name": "b_053A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1369,
   "name": "player_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1370,
   "name": "enemy_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1371,
   "name": "player_y_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1373,
   "name": "player_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1374,
   "name": "enemy_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1375,
   "name": "enemy_x_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1377,
   "name": "walk_phase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1380,
   "name": "enemy_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1384,
   "name": "enemy_active",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1385,
   "name": "bunker_flag_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1386,
   "name": "spare_056A",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1391,
   "name": "frame_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1392,
   "name": "grenade_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1394,
   "name": "grenade_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1395,
   "name": "trap_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1397,
   "name": "barnes_stage",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1398,
   "name": "barnes_mood",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1399,
   "name": "grenade_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1401,
   "name": "sniper_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1402,
   "name": "trap_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1405,
   "name": "barnes_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1406,
   "name": "dying",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1407,
   "name": "enemy_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1408,
   "name": "barnes_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1409,
   "name": "dying_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1410,
   "name": "enemy_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1411,
   "name": "barnes_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1412,
   "name": "old_controls",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1856,
   "name": "grenade_arc",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2117,
   "name": "walk_count_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2118,
   "name": "walk_count_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2119,
   "name": "facing_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2120,
   "name": "facing_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2121,
   "name": "fire_x_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2125,
   "name": "fire_y_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2129,
   "name": "walk_x_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2133,
   "name": "walk_y_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2137,
   "name": "walk_limits_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2141,
   "name": "walk_limits_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2145,
   "name": "explosion_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2149,
   "name": "explosion_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2153,
   "name": "explosion_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2157,
   "name": "explosion_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2308,
   "name": "start_throw",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2391,
   "name": "r_0957",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2392,
   "name": "old_throw_step",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2636,
   "name": "throwing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2637,
   "name": "walk_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2638,
   "name": "walk_frame_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2863,
   "name": "irq_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2875,
   "name": "irq_vec_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2880,
   "name": "irq_vec_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2885,
   "name": "a_0B45",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2947,
   "name": "b_0B83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2958,
   "name": "b_0B8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3035,
   "name": "b_0BDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3092,
   "name": "b_0C14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3099,
   "name": "sprite_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3100,
   "name": "enemy_sprite_flags",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3102,
   "name": "irq_invaders_row2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3168,
   "name": "irq_invaders_row3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3201,
   "name": "b_0C81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3212,
   "name": "b_0C8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3234,
   "name": "irq_invaders_row4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3266,
   "name": "b_0CC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3277,
   "name": "b_0CCD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3299,
   "name": "invaders_row2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3315,
   "name": "invaders_row3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3331,
   "name": "invaders_row4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3347,
   "name": "invaders_start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3400,
   "name": "row1_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3406,
   "name": "row2_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3412,
   "name": "row3_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3418,
   "name": "row4_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3424,
   "name": "row1_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3430,
   "name": "row2_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3436,
   "name": "row3_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3442,
   "name": "row4_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3448,
   "name": "irq_player",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3464,
   "name": "a_0D88",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3619,
   "name": "b_0E23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3631,
   "name": "b_0E2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3638,
   "name": "grenade_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3639,
   "name": "grenade_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3640,
   "name": "blast_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3641,
   "name": "blast_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3642,
   "name": "enemy_dx_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3643,
   "name": "irq_panel",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3716,
   "name": "b_0E84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3745,
   "name": "b_0EA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3770,
   "name": "b_0EBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3795,
   "name": "b_0ED3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3812,
   "name": "irq_music",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3849,
   "name": "b_0F09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3860,
   "name": "frame_phase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3861,
   "name": "sprite_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3862,
   "name": "sprite0_y_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3863,
   "name": "sprite1_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3864,
   "name": "sprite1_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3865,
   "name": "sprite2_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3866,
   "name": "sprite2_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3867,
   "name": "sprite3_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3868,
   "name": "sprite3_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3869,
   "name": "sprite4_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3870,
   "name": "sprite4_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3871,
   "name": "sprite5_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3872,
   "name": "sprite5_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3873,
   "name": "sprite6_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3874,
   "name": "sprite6_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3875,
   "name": "sprite7_x_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3876,
   "name": "sprite7_y_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3877,
   "name": "enemy_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3878,
   "name": "enemy_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3879,
   "name": "enemy_state_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3881,
   "name": "start_value_e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3882,
   "name": "start_value_f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3883,
   "name": "player_sprites",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3884,
   "name": "player_top_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3885,
   "name": "player_mid_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3886,
   "name": "player_mid_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3887,
   "name": "player_low_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3888,
   "name": "player_low_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3889,
   "name": "player_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3890,
   "name": "body_frame_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3891,
   "name": "body_frame_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3892,
   "name": "enemy_frame_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3893,
   "name": "enemy_frame_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3894,
   "name": "enemy_frame_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3895,
   "name": "shot_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3897,
   "name": "sniper_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3898,
   "name": "shot_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3901,
   "name": "barnes_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3902,
   "name": "shot_active",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3903,
   "name": "shot2_active",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3904,
   "name": "shot3_active",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3905,
   "name": "shot_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3906,
   "name": "shot_y_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3907,
   "name": "shot_y_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3908,
   "name": "barnes_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3909,
   "name": "shot_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3912,
   "name": "trap_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3916,
   "name": "sprite_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3917,
   "name": "colour_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3918,
   "name": "colour_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3919,
   "name": "colour_d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3920,
   "name": "colour_e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3921,
   "name": "colour_f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3922,
   "name": "colour_g",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3923,
   "name": "colour_h",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3925,
   "name": "spare_0F55",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3926,
   "name": "spare_0F56",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3927,
   "name": "sprite_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3928,
   "name": "frame_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3929,
   "name": "frame_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3930,
   "name": "barnes_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3932,
   "name": "barnes_frame_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3933,
   "name": "spare_0F5D",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3934,
   "name": "start_block",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3951,
   "name": "grenade_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3953,
   "name": "sniper_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3954,
   "name": "trap_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3957,
   "name": "barnes_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3958,
   "name": "grenade_height",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3961,
   "name": "trap_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3965,
   "name": "check_pause",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3982,
   "name": "b_0F8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3999,
   "name": "b_0F9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4011,
   "name": "spare_0FAB",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4012,
   "name": "enemy_enter_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4068,
   "name": "enemy_enter_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4168,
   "name": "enemy_face_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4198,
   "name": "r_1066",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4199,
   "name": "enemy_face_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4230,
   "name": "j_1086",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4239,
   "name": "j_108F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4248,
   "name": "old_enemy_moves",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4444,
   "name": "enemy_paths",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4542,
   "name": "clear_enemy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4563,
   "name": "old_enemy_fire",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4738,
   "name": "enemy_x_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4780,
   "name": "old_enemy_engine",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4861,
   "name": "enemy_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4866,
   "name": "enemy_y_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5187,
   "name": "check_player_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5189,
   "name": "j_1445",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5244,
   "name": "b_147C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5312,
   "name": "b_14C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5321,
   "name": "j_14C9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5327,
   "name": "b_14CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5335,
   "name": "b_14D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5393,
   "name": "r_1511",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5400,
   "name": "death_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5401,
   "name": "player_killed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5423,
   "name": "player_death",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5462,
   "name": "r_1556",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5464,
   "name": "stand_frames",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5500,
   "name": "step_frames",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5522,
   "name": "step_frames_b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5544,
   "name": "crouch_frames",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5561,
   "name": "lose_life",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5599,
   "name": "b_15DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5601,
   "name": "b_15E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5643,
   "name": "shots_done",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5646,
   "name": "shots_hit_enemies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5648,
   "name": "j_1610",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5655,
   "name": "b_1617",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5679,
   "name": "hit_box_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5680,
   "name": "hit_box_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5681,
   "name": "hit_box_top",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5692,
   "name": "hit_box_bottom",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5707,
   "name": "hit_box_x1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5718,
   "name": "hit_box_x2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5772,
   "name": "next_enemy",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5780,
   "name": "b_1694",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5783,
   "name": "j_1697",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5789,
   "name": "r_169D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5790,
   "name": "skip_enemy",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5795,
   "name": "enemy_dying",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5800,
   "name": "barnes_hits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5801,
   "name": "kill_enemy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5836,
   "name": "barnes_hit_this_throw",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5837,
   "name": "barnes_dies",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5851,
   "name": "enemy_falls",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5881,
   "name": "enemy_death_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5885,
   "name": "b_16FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5901,
   "name": "b_170D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5908,
   "name": "b_1714",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5924,
   "name": "b_1724",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5928,
   "name": "check_ground",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5948,
   "name": "b_173C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5974,
   "name": "b_1756",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5977,
   "name": "r_1759",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5978,
   "name": "mine_explodes",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 6053,
   "name": "b_17A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6070,
   "name": "explosion_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6071,
   "name": "caught_in_trap",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 6084,
   "name": "trapped",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6085,
   "name": "explosion_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6128,
   "name": "b_17F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6149,
   "name": "b_1805",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6153,
   "name": "b_1809",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6159,
   "name": "r_180F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6160,
   "name": "b_1810",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6177,
   "name": "ground_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6185,
   "name": "explosion_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6189,
   "name": "explosion_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6678,
   "name": "clear_screens",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6680,
   "name": "b_1A18",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6747,
   "name": "multiply",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6806,
   "name": "key_pressed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6849,
   "name": "b_1AC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6850,
   "name": "j_1AC2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6864,
   "name": "a_1AD0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6866,
   "name": "key_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6874,
   "name": "key_columns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6882,
   "name": "count_down_time",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6962,
   "name": "r_1B32",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6963,
   "name": "draw_time",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7000,
   "name": "time_digits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7001,
   "name": "time_minutes_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7002,
   "name": "time_seconds_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7003,
   "name": "time_seconds_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7004,
   "name": "time_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7005,
   "name": "start_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7040,
   "name": "b_1B80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7042,
   "name": "b_1B82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7043,
   "name": "copy_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7044,
   "name": "copy_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7046,
   "name": "copy_dst_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7047,
   "name": "start_jungle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7253,
   "name": "b_1C55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7268,
   "name": "b_1C64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7286,
   "name": "b_1C76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7319,
   "name": "restart_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7347,
   "name": "b_1CB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7387,
   "name": "b_1CDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7402,
   "name": "main_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7434,
   "name": "b_1D0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7445,
   "name": "b_1D15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7477,
   "name": "b_1D35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7511,
   "name": "b_1D57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7570,
   "name": "b_1D92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7573,
   "name": "b_1D95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7584,
   "name": "b_1DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7608,
   "name": "check_quit_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7656,
   "name": "r_1DE8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7657,
   "name": "toggle_music",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7690,
   "name": "b_1E0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7695,
   "name": "b_1E0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7715,
   "name": "r_1E23",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7716,
   "name": "frame_ready",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7718,
   "name": "wave_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7719,
   "name": "wave_sizes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7730,
   "name": "read_joystick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7744,
   "name": "s_1E40",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 7764,
   "name": "b_1E54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7784,
   "name": "b_1E68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7794,
   "name": "b_1E72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7804,
   "name": "b_1E7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7814,
   "name": "b_1E86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7852,
   "name": "b_1EAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7869,
   "name": "r_1EBD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7870,
   "name": "move_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7879,
   "name": "b_1EC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7885,
   "name": "b_1ECD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7893,
   "name": "b_1ED5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7898,
   "name": "j_1EDA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7919,
   "name": "b_1EEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7937,
   "name": "j_1F01",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7966,
   "name": "r_1F1E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7967,
   "name": "move_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7991,
   "name": "b_1F37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8013,
   "name": "b_1F4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8015,
   "name": "b_1F4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8021,
   "name": "b_1F55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8029,
   "name": "b_1F5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8034,
   "name": "b_1F62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8057,
   "name": "b_1F79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8075,
   "name": "j_1F8B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8104,
   "name": "r_1FA8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8105,
   "name": "fine_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8106,
   "name": "fine_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8107,
   "name": "move_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8108,
   "name": "spare_1FAC",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8111,
   "name": "step_animation",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8142,
   "name": "r_1FCE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8143,
   "name": "b_1FCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8162,
   "name": "no_move",
   "type": "Return",
   "kind": "user"
  },
  {
   "address": 8163,
   "name": "move_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8194,
   "name": "b_2002",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8202,
   "name": "b_200A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8205,
   "name": "b_200D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8210,
   "name": "b_2012",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8246,
   "name": "b_2036",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8277,
   "name": "b_2055",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8301,
   "name": "r_206D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8302,
   "name": "block_up",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8303,
   "name": "block_down",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8304,
   "name": "move_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8335,
   "name": "b_208F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8343,
   "name": "b_2097",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8346,
   "name": "b_209A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8351,
   "name": "b_209F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8390,
   "name": "b_20C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8419,
   "name": "b_20E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8444,
   "name": "r_20FC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8445,
   "name": "fire",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8458,
   "name": "b_210A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8479,
   "name": "b_211F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8484,
   "name": "b_2124",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8489,
   "name": "b_2129",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8494,
   "name": "j_212E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8510,
   "name": "start_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8574,
   "name": "b_217E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8588,
   "name": "j_218C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8636,
   "name": "r_21BC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8637,
   "name": "b_21BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8647,
   "name": "fire_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8648,
   "name": "throw_grenade",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8679,
   "name": "b_21E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8691,
   "name": "b_21F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8711,
   "name": "throw_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8767,
   "name": "r_223F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8768,
   "name": "b_2240",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8789,
   "name": "b_2255",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8810,
   "name": "b_226A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8814,
   "name": "b_226E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8837,
   "name": "b_2285",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8841,
   "name": "throw_arc",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8928,
   "name": "sniper_shots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8968,
   "name": "b_2308",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9005,
   "name": "r_232D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9006,
   "name": "b_232E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9036,
   "name": "b_234C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9044,
   "name": "b_2354",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9059,
   "name": "b_2363",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9064,
   "name": "j_2368",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9109,
   "name": "sniper_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9110,
   "name": "sniper_fall",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9111,
   "name": "sniper_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9112,
   "name": "sniper_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9113,
   "name": "sniper_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9114,
   "name": "sniper_starts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9115,
   "name": "enemy_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9148,
   "name": "sniper_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9213,
   "name": "enemy_fire",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9234,
   "name": "r_2412",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9239,
   "name": "grenade_sound",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9267,
   "name": "b_2433",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9274,
   "name": "j_243A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9285,
   "name": "aim_enemy_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9326,
   "name": "b_246E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9337,
   "name": "b_2479",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9393,
   "name": "b_24B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9396,
   "name": "b_24B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9444,
   "name": "b_24E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9468,
   "name": "r_24FC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9469,
   "name": "enemy_fire_delay",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9470,
   "name": "spare_24FE",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9473,
   "name": "move_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9497,
   "name": "b_2519",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9509,
   "name": "b_2525",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9522,
   "name": "b_2532",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9529,
   "name": "b_2539",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9564,
   "name": "b_255C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9591,
   "name": "b_2577",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9633,
   "name": "b_25A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9678,
   "name": "b_25CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9696,
   "name": "r_25E0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9697,
   "name": "shot_slope",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9700,
   "name": "enemy_shot_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9704,
   "name": "shot_slope_sum",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9707,
   "name": "f_25EB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9711,
   "name": "shot_slope_max",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9714,
   "name": "enemy_shot_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9718,
   "name": "place_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9892,
   "name": "r_26A4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9893,
   "name": "remove_shots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9901,
   "name": "b_26AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9903,
   "name": "b_26AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9918,
   "name": "b_26BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9933,
   "name": "b_26CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9949,
   "name": "b_26DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9952,
   "name": "b_26E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9962,
   "name": "b_26EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9977,
   "name": "clear_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9992,
   "name": "b_2708",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10002,
   "name": "move_enemies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10009,
   "name": "j_2719",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10017,
   "name": "b_2721",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10025,
   "name": "b_2729",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10088,
   "name": "b_2768",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10123,
   "name": "b_278B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10138,
   "name": "b_279A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10160,
   "name": "b_27B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10196,
   "name": "b_27D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10206,
   "name": "j_27DE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10229,
   "name": "b_27F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10241,
   "name": "j_2801",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10247,
   "name": "r_2807",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10248,
   "name": "b_2808",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10251,
   "name": "b_280B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10259,
   "name": "b_2813",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10263,
   "name": "b_2817",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10271,
   "name": "b_281F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10275,
   "name": "enemy_step_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10278,
   "name": "enemy_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10291,
   "name": "enemy_fire_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10295,
   "name": "nothing",
   "type": "Return",
   "kind": "user"
  },
  {
   "address": 10296,
   "name": "send_enemies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10335,
   "name": "b_285F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10352,
   "name": "b_2870",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10367,
   "name": "b_287F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10407,
   "name": "b_28A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10417,
   "name": "b_28B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10427,
   "name": "b_28BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10431,
   "name": "enemy_delay",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10433,
   "name": "random_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10434,
   "name": "random_index2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10435,
   "name": "enemies_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10436,
   "name": "enemy_side",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10466,
   "name": "invaders",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10548,
   "name": "invaders_wave",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10615,
   "name": "invaders_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10667,
   "name": "invaders_march",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10839,
   "name": "invaders_follow",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10919,
   "name": "march_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10920,
   "name": "march_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10921,
   "name": "invaders_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10922,
   "name": "gun_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10923,
   "name": "gun_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10924,
   "name": "row1_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10925,
   "name": "row2_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10926,
   "name": "row3_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10927,
   "name": "row4_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10928,
   "name": "march_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10929,
   "name": "march_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10980,
   "name": "march_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11031,
   "name": "gun_stick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11145,
   "name": "shot_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11174,
   "name": "shot_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11175,
   "name": "shot_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11176,
   "name": "shot_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11177,
   "name": "shot_hits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11460,
   "name": "invaders_shot",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11461,
   "name": "shot_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11478,
   "name": "bomb_drop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11551,
   "name": "bomb_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11552,
   "name": "bomb_slot",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11553,
   "name": "bomb_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11554,
   "name": "bomb_slots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11580,
   "name": "bomb_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11613,
   "name": "bomb_row1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11848,
   "name": "bomb_put",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11855,
   "name": "bombs_fall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11974,
   "name": "shot_shields",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12045,
   "name": "gun_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12117,
   "name": "shields",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12237,
   "name": "barnes_appears",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12322,
   "name": "b_3022",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12330,
   "name": "j_302A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12368,
   "name": "pause_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12369,
   "name": "place_barnes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12407,
   "name": "barnes_multicolour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12408,
   "name": "barnes_here",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12409,
   "name": "to_bunker_end",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12412,
   "name": "at_bunker",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12413,
   "name": "barnes_fires",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12471,
   "name": "b_30B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12483,
   "name": "b_30C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12510,
   "name": "r_30DE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12511,
   "name": "barnes_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12565,
   "name": "j_3115",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12588,
   "name": "r_312C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12589,
   "name": "b_312D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12604,
   "name": "b_313C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12608,
   "name": "b_3140",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12621,
   "name": "b_314D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12633,
   "name": "b_3159",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12645,
   "name": "sprite_expand_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12646,
   "name": "sprites_normal",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12652,
   "name": "clear_flag_0576",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12658,
   "name": "barnes_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12659,
   "name": "barnes_moves",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12755,
   "name": "check_bunker_reached",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12838,
   "name": "r_3226",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12839,
   "name": "barnes_killed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12921,
   "name": "b_3279",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12951,
   "name": "barnes_dead",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12952,
   "name": "barnes_death_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12953,
   "name": "death_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12954,
   "name": "escape_frame_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12955,
   "name": "escape_frame_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12956,
   "name": "death_frame_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12957,
   "name": "barnes_death",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13031,
   "name": "r_32E7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13032,
   "name": "b_32E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13083,
   "name": "b_331B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13122,
   "name": "b_3342",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13154,
   "name": "b_3362",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13165,
   "name": "b_336D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13176,
   "name": "j_3378",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13191,
   "name": "j_3387",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13206,
   "name": "leave_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13211,
   "name": "b_339B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13251,
   "name": "life_lost",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13252,
   "name": "delay",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13254,
   "name": "b_33C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13256,
   "name": "b_33C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13263,
   "name": "dead_bunker",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13269,
   "name": "escape_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13275,
   "name": "escape_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13281,
   "name": "escape_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13287,
   "name": "check_room_exits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13322,
   "name": "b_340A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13333,
   "name": "j_3415",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13343,
   "name": "b_341F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13348,
   "name": "r_3424",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13349,
   "name": "b_3425",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13356,
   "name": "copy_panel_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13358,
   "name": "b_342E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13386,
   "name": "room_up",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13471,
   "name": "r_349F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13472,
   "name": "room_down",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13558,
   "name": "place_player",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13635,
   "name": "draw_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13657,
   "name": "b_3559",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13662,
   "name": "b_355E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13663,
   "name": "room_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13664,
   "name": "room_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13666,
   "name": "room_dst_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13667,
   "name": "room_next_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13712,
   "name": "room",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13713,
   "name": "room_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13777,
   "name": "room_kinds_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13833,
   "name": "room_maps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13850,
   "name": "map_addresses",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13851,
   "name": "room_maps_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13872,
   "name": "exit_offsets",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13873,
   "name": "exit_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13874,
   "name": "exit_up",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13875,
   "name": "exit_down",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13876,
   "name": "draw_room_extras",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13903,
   "name": "j_364F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13955,
   "name": "r_3683",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13956,
   "name": "extras_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13957,
   "name": "extras_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13958,
   "name": "draw_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13967,
   "name": "j_368F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13973,
   "name": "shape_dst_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13974,
   "name": "shape_test",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13984,
   "name": "shape_row_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13985,
   "name": "shape_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13999,
   "name": "b_36AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14030,
   "name": "r_36CE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14031,
   "name": "shape_width",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14032,
   "name": "shape_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14033,
   "name": "room_extras",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14034,
   "name": "room_extra_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14098,
   "name": "shape_lists_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14240,
   "name": "shape_addresses",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14241,
   "name": "shape_addresses_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14272,
   "name": "shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14336,
   "name": "shapes_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14532,
   "name": "show_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14539,
   "name": "b_38CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14597,
   "name": "draw_compass",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14610,
   "name": "arrow_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14623,
   "name": "arrow_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14636,
   "name": "arrow_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14649,
   "name": "j_3939",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14661,
   "name": "b_3945",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14663,
   "name": "b_3947",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14664,
   "name": "arrow_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14665,
   "name": "arrow_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14667,
   "name": "arrow_dst_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14668,
   "name": "arrow_next_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14759,
   "name": "arrow_up_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15015,
   "name": "add_100",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15045,
   "name": "score_thousands",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15060,
   "name": "draw_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15062,
   "name": "b_3AD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15080,
   "name": "use_round",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15115,
   "name": "r_3B0B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15116,
   "name": "b_3B0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15125,
   "name": "rounds",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15126,
   "name": "round_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15127,
   "name": "player_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15129,
   "name": "b_3B19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15189,
   "name": "r_3B55",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15190,
   "name": "draw_wound",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15191,
   "name": "wound_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15192,
   "name": "wound_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15214,
   "name": "draw_morale",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15241,
   "name": "b_3B89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15251,
   "name": "b_3B93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15263,
   "name": "r_3B9F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15264,
   "name": "b_3BA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15280,
   "name": "b_3BB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15287,
   "name": "morale",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15289,
   "name": "morale_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15298,
   "name": "draw_panel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15306,
   "name": "b_3BCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15354,
   "name": "b_3BFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15364,
   "name": "b_3C04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15374,
   "name": "b_3C0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15384,
   "name": "r_3C18",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15385,
   "name": "panel_row1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15392,
   "name": "panel_row2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15399,
   "name": "panel_row3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15406,
   "name": "panel_row4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15413,
   "name": "panel_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15507,
   "name": "char_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15571,
   "name": "char_colours_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15762,
   "name": "sprite_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15763,
   "name": "sprite_masks",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15767,
   "name": "copy_charset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15789,
   "name": "b_3DAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15791,
   "name": "b_3DAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15792,
   "name": "charset_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15793,
   "name": "charset_src_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15795,
   "name": "charset_dst_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15796,
   "name": "charset_dst_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15810,
   "name": "load_next",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15861,
   "name": "b_3DF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15868,
   "name": "b_3DFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15911,
   "name": "next_name",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "f_4000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16516,
   "name": "f_4084",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16556,
   "name": "f_40AC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16584,
   "name": "f_40C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16585,
   "name": "f_40C9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16596,
   "name": "f_40D4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16634,
   "name": "f_40FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16636,
   "name": "f_40FC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16664,
   "name": "f_4118",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16704,
   "name": "f_4140",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16705,
   "name": "f_4141",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16744,
   "name": "f_4168",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16775,
   "name": "f_4187",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16784,
   "name": "f_4190",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16824,
   "name": "f_41B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16864,
   "name": "f_41E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16884,
   "name": "f_41F4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16894,
   "name": "f_41FE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16895,
   "name": "f_41FF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16904,
   "name": "f_4208",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16946,
   "name": "f_4232",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16984,
   "name": "f_4258",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17017,
   "name": "a_4279",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17018,
   "name": "a_427A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17020,
   "name": "a_427C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17021,
   "name": "a_427D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17024,
   "name": "f_4280",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17134,
   "name": "f_42EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17136,
   "name": "a_42F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17137,
   "name": "f_42F1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17255,
   "name": "f_4367",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17295,
   "name": "f_438F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17400,
   "name": "f_43F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17401,
   "name": "a_43F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17402,
   "name": "a_43FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17403,
   "name": "a_43FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17404,
   "name": "a_43FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17405,
   "name": "a_43FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17408,
   "name": "f_4400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17658,
   "name": "f_44FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17760,
   "name": "f_4560",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17799,
   "name": "f_4587",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17880,
   "name": "f_45D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17908,
   "name": "f_45F4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17919,
   "name": "f_45FF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18000,
   "name": "f_4650",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18043,
   "name": "a_467B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18120,
   "name": "f_46C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18158,
   "name": "f_46EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18240,
   "name": "f_4740",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18279,
   "name": "f_4767",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18319,
   "name": "f_478F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18424,
   "name": "f_47F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18432,
   "name": "live_charset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18688,
   "name": "live_charset_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18872,
   "name": "morale_char",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18873,
   "name": "morale_bar_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18944,
   "name": "live_charset_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19200,
   "name": "live_charset_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "live_charset_upper",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19712,
   "name": "live_charset_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19968,
   "name": "live_charset_7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20224,
   "name": "live_charset_8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "sprites_40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "sprites_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "sprites_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "sprites_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "sprites_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25600,
   "name": "sprites_90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "sprites_A0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "sprites_B0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "sprites_C0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29696,
   "name": "sprites_D0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "sprites_E0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "sprites_F0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "roommap_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33520,
   "name": "roommap_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34272,
   "name": "roommap_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35024,
   "name": "roommap_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35776,
   "name": "roommap_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36528,
   "name": "roommap_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37280,
   "name": "roommap_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38032,
   "name": "roommap_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38784,
   "name": "roommap_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39536,
   "name": "roommap_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39936,
   "name": "roommap_10_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40288,
   "name": "maps_after",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "title_charset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41984,
   "name": "title_charset_upper",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43008,
   "name": "jungle_charset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44032,
   "name": "jungle_charset_upper",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "silence",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49174,
   "name": "play_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49183,
   "name": "b_C01F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49187,
   "name": "sound_choice",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49188,
   "name": "reset_game",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49190,
   "name": "b_C026",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49241,
   "name": "check_quit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49258,
   "name": "end_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49286,
   "name": "b_C086",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49289,
   "name": "b_C089",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49292,
   "name": "r_C08C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 49293,
   "name": "end_choice",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49294,
   "name": "title_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49295,
   "name": "title_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49302,
   "name": "b_C096",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49334,
   "name": "one_more_chance",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49341,
   "name": "b_C0BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49425,
   "name": "platoon_destroyed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49432,
   "name": "b_C118",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49487,
   "name": "b_C14F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49494,
   "name": "b_C156",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49520,
   "name": "discharge",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49527,
   "name": "b_C177",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49637,
   "name": "b_C1E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49644,
   "name": "b_C1EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49686,
   "name": "b_C216",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49708,
   "name": "line_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49709,
   "name": "line_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49710,
   "name": "colour_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49712,
   "name": "b_C230",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49725,
   "name": "wait_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49732,
   "name": "b_C244",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49758,
   "name": "name_entry",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49813,
   "name": "b_C295",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49868,
   "name": "b_C2CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49925,
   "name": "j_C305",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49938,
   "name": "b_C312",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50021,
   "name": "title_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50056,
   "name": "title_line1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50091,
   "name": "text_C3AB",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50128,
   "name": "text_C3D0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50168,
   "name": "text_C3F8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50208,
   "name": "text_C420",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50247,
   "name": "text_C447",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50286,
   "name": "text_C46E",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50327,
   "name": "text_C497",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50368,
   "name": "text_C4C0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50408,
   "name": "text_C4E8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50448,
   "name": "text_C510",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50488,
   "name": "text_C538",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50527,
   "name": "text_C55F",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50566,
   "name": "text_C586",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50605,
   "name": "text_C5AD",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50644,
   "name": "text_C5D4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50683,
   "name": "text_C5FB",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50725,
   "name": "no_extra",
   "type": "Return",
   "kind": "user"
  },
  {
   "address": 51200,
   "name": "end_charset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51456,
   "name": "end_charset_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51712,
   "name": "end_charset_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51968,
   "name": "end_charset_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52224,
   "name": "end_charset_5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52480,
   "name": "end_charset_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52736,
   "name": "end_charset_7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52992,
   "name": "end_charset_8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53224,
   "name": "charset_tail_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53248,
   "name": "sprites_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "f_D800",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55496,
   "name": "f_D8C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55497,
   "name": "f_D8C9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55508,
   "name": "f_D8D4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55546,
   "name": "f_D8FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55576,
   "name": "f_D918",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55616,
   "name": "f_D940",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55617,
   "name": "f_D941",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55656,
   "name": "f_D968",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55687,
   "name": "a_D987",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55688,
   "name": "a_D988",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55696,
   "name": "f_D990",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55736,
   "name": "f_D9B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55776,
   "name": "f_D9E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55796,
   "name": "f_D9F4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55807,
   "name": "a_D9FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55808,
   "name": "a_DA00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55816,
   "name": "f_DA08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55858,
   "name": "f_DA32",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55896,
   "name": "f_DA58",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55936,
   "name": "f_DA80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56046,
   "name": "f_DAEE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56167,
   "name": "f_DB67",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56207,
   "name": "f_DB8F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56797,
   "name": "a_DDDD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57344,
   "name": "cmd_instrument",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57360,
   "name": "cmd_vibrato",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57376,
   "name": "cmd_repeat",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57395,
   "name": "cmd_return_count",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57398,
   "name": "cmd_return",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57404,
   "name": "b_E03C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57443,
   "name": "b_E063",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57449,
   "name": "b_E069",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57454,
   "name": "cmd_return_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57460,
   "name": "cmd_call",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57471,
   "name": "j_E07F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 57473,
   "name": "j_E081",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 57482,
   "name": "b_E08A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57487,
   "name": "instr_wave_adsr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57491,
   "name": "instr_wave",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57517,
   "name": "wave_doubled",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57518,
   "name": "b_E0AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57524,
   "name": "b_E0B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57529,
   "name": "instr_adsr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57535,
   "name": "instr_sr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57541,
   "name": "set_adsr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57553,
   "name": "instr_ad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57559,
   "name": "instr_gate_off",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57564,
   "name": "s_E0DC",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 57566,
   "name": "sid_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57568,
   "name": "b_E0E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57617,
   "name": "b_E111",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57629,
   "name": "cmd_branch_if",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57649,
   "name": "cmd_cmp_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57651,
   "name": "cmd_cmp_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57652,
   "name": "cmd_next",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57659,
   "name": "b_E13B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57664,
   "name": "to_E081",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57694,
   "name": "cmd_pulse",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57740,
   "name": "cmd_call_transposed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57748,
   "name": "cmd_transpose_add",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57754,
   "name": "add_transpose",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57764,
   "name": "b_E1A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57772,
   "name": "b_E1AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57776,
   "name": "cmd_transpose",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57779,
   "name": "j_E1B3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 57869,
   "name": "push_return",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57890,
   "name": "start_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57894,
   "name": "b_E226",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57952,
   "name": "b_E260",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57974,
   "name": "b_E276",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57988,
   "name": "r_E284",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57989,
   "name": "voice_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58004,
   "name": "read_pattern",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58045,
   "name": "read_command",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58047,
   "name": "b_E2BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58058,
   "name": "command_arg",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58060,
   "name": "j_E2CC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58062,
   "name": "j_E2CE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58073,
   "name": "b_E2D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58076,
   "name": "b_E2DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58095,
   "name": "b_E2EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58105,
   "name": "b_E2F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58107,
   "name": "b_E2FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58130,
   "name": "b_E312",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58134,
   "name": "note_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58159,
   "name": "b_E32F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58208,
   "name": "b_E360",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58242,
   "name": "filter_routine",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58244,
   "name": "filter_test",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58262,
   "name": "a_E396",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58266,
   "name": "a_E39A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58270,
   "name": "a_E39E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58274,
   "name": "sweep_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58275,
   "name": "sweep_start_value",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58279,
   "name": "r_E3A7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58280,
   "name": "play_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58307,
   "name": "b_E3C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58316,
   "name": "b_E3CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58347,
   "name": "voice_turn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58348,
   "name": "pitch_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58363,
   "name": "j_E3FB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58388,
   "name": "b_E414",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58412,
   "name": "b_E42C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58445,
   "name": "pulse_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58460,
   "name": "j_E45C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58485,
   "name": "b_E475",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58509,
   "name": "b_E48D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58589,
   "name": "a_E4DD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58605,
   "name": "a_E4ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58625,
   "name": "wave_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58657,
   "name": "b_E521",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58676,
   "name": "b_E534",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58701,
   "name": "b_E54D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58712,
   "name": "wave_cmd_target",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58737,
   "name": "r_E571",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58738,
   "name": "instrument_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58745,
   "name": "voice_registers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58748,
   "name": "voice_workspace",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58751,
   "name": "filter_routing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58754,
   "name": "transpose_sign",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58755,
   "name": "note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58849,
   "name": "note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58943,
   "name": "command_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58951,
   "name": "silent_pattern",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58963,
   "name": "tune_table_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58965,
   "name": "tune_starts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58966,
   "name": "tune_speeds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58995,
   "name": "pattern_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59059,
   "name": "pattern_lo_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59065,
   "name": "pattern_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59129,
   "name": "pattern_hi_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59134,
   "name": "wave_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59135,
   "name": "wave_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59199,
   "name": "tune_data",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60223,
   "name": "tune_data_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61086,
   "name": "note_lengths",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61184,
   "name": "f_EF00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61185,
   "name": "f_EF01",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61186,
   "name": "f_EF02",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61187,
   "name": "f_EF03",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61188,
   "name": "f_EF04",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61189,
   "name": "f_EF05",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61190,
   "name": "f_EF06",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61191,
   "name": "f_EF07",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61194,
   "name": "f_EF0A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61195,
   "name": "f_EF0B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61196,
   "name": "f_EF0C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61197,
   "name": "f_EF0D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61198,
   "name": "f_EF0E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61199,
   "name": "f_EF0F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61200,
   "name": "f_EF10",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61201,
   "name": "f_EF11",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61202,
   "name": "f_EF12",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61203,
   "name": "f_EF13",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61204,
   "name": "f_EF14",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61205,
   "name": "f_EF15",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61206,
   "name": "f_EF16",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61207,
   "name": "f_EF17",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61208,
   "name": "f_EF18",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61209,
   "name": "f_EF19",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61210,
   "name": "f_EF1A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61211,
   "name": "f_EF1B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61212,
   "name": "f_EF1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61213,
   "name": "f_EF1D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61214,
   "name": "f_EF1E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61215,
   "name": "f_EF1F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61216,
   "name": "f_EF20",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61217,
   "name": "f_EF21",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61220,
   "name": "f_EF24",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61223,
   "name": "f_EF27",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61233,
   "name": "f_EF31",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61275,
   "name": "f_EF5B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61309,
   "name": "f_EF7D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61440,
   "name": "heartbeat",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61494,
   "name": "heartbeat_rate_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61501,
   "name": "heartbeat_rate_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61517,
   "name": "beat_rates_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61521,
   "name": "beat_rates_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61526,
   "name": "b_F056",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61529,
   "name": "sample_nmi_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61550,
   "name": "b_F06E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61584,
   "name": "sample_nmi_low",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61621,
   "name": "b_F0B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61644,
   "name": "beat_playing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61696,
   "name": "sample",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62512,
   "name": "sample_fd30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62622,
   "name": "KERNAL_LOADj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 62720,
   "name": "sample_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62976,
   "name": "start_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63012,
   "name": "effect_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63013,
   "name": "effect_begin",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63095,
   "name": "b_F677",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63160,
   "name": "effect_attack",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63163,
   "name": "effect_sustain",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63166,
   "name": "effect_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63169,
   "name": "effects_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63171,
   "name": "b_F6C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63179,
   "name": "b_F6CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63187,
   "name": "b_F6D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63191,
   "name": "effect_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63207,
   "name": "b_F6E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63210,
   "name": "b_F6EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63240,
   "name": "b_F708",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63258,
   "name": "b_F71A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63277,
   "name": "b_F72D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63280,
   "name": "b_F730",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63302,
   "name": "j_F746",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 63358,
   "name": "j_F77E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 63371,
   "name": "b_F78B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63401,
   "name": "sound_requested",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63404,
   "name": "sound_workspace",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63407,
   "name": "f_F7AF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63410,
   "name": "f_F7B2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63413,
   "name": "f_F7B5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63416,
   "name": "f_F7B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63419,
   "name": "f_F7BB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63422,
   "name": "f_F7BE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63425,
   "name": "f_F7C1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63428,
   "name": "f_F7C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63431,
   "name": "f_F7C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63434,
   "name": "f_F7CA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63440,
   "name": "f_F7D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63443,
   "name": "f_F7D3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63446,
   "name": "f_F7D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63449,
   "name": "f_F7D9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63454,
   "name": "f_F7DE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63457,
   "name": "f_F7E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63460,
   "name": "f_F7E4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63463,
   "name": "f_F7E7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63466,
   "name": "sound_effects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63467,
   "name": "f_F7EB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63468,
   "name": "f_F7EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63469,
   "name": "f_F7ED",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63470,
   "name": "f_F7EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63471,
   "name": "f_F7EF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63472,
   "name": "f_F7F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63473,
   "name": "effect_0_repeats",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63610,
   "name": "effect_attacks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63628,
   "name": "effect_sustains",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63646,
   "name": "effect_pulses",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63744,
   "name": "end_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64000,
   "name": "end_picture_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64250,
   "name": "end_picture_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64500,
   "name": "end_picture_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64750,
   "name": "end_picture_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65466,
   "name": "KERNAL_SETLFS",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65469,
   "name": "KERNAL_SETNAM",
   "type": "Predefined",
   "kind": "system"
  }
 ],
 "comments": [
  {
   "address": 1024,
   "type": "line",
   "text": "Entry to the jungle confrontation: masks the CIA interrupts, sets the video bank, screen, and charset, points the IRQ at $0EE4 on line $F8, clears the score digits and play variables, starts the section's tune ($E222 with Y=0), places the player at $A0,$78, and shows the section title ($C08F)."
  },
  {
   "address": 1286,
   "type": "line",
   "text": "Picks the frames, colours, and positions of the two shot sprites for this frame ($0F14 cycles 0-2), using the alternative set while the player throws ($0A4C) or a grenade flies ($17B6)."
  },
  {
   "address": 1369,
   "type": "line",
   "text": "Player's Y."
  },
  {
   "address": 1370,
   "type": "line",
   "text": "Y of each enemy, three slots."
  },
  {
   "address": 1371,
   "type": "line",
   "text": "Spare byte after the player's Y position, cleared on each restart."
  },
  {
   "address": 1373,
   "type": "line",
   "text": "Player's X."
  },
  {
   "address": 1374,
   "type": "line",
   "text": "X of each enemy."
  },
  {
   "address": 1375,
   "type": "line",
   "text": "The second enemy's X position."
  },
  {
   "address": 1377,
   "type": "line",
   "text": "The enemies' walking step, set each frame by $1D1D."
  },
  {
   "address": 1380,
   "type": "line",
   "text": "The player's facing for the walking code at $0906."
  },
  {
   "address": 1384,
   "type": "line",
   "text": "Set while each enemy slot is in use."
  },
  {
   "address": 1385,
   "type": "line",
   "text": "Cleared on entry to the bunker by $3001."
  },
  {
   "address": 1386,
   "type": "line",
   "text": "Five bytes set at the start of the load and not used again."
  },
  {
   "address": 1391,
   "type": "line",
   "text": "The pause flag: $0F7D sets it on P and clears it on G, and the main loops at $1CF7 and $3325 wait while it is set."
  },
  {
   "address": 1392,
   "type": "line",
   "text": "The grenade's horizontal step, per grenade."
  },
  {
   "address": 1394,
   "type": "line",
   "text": "Counts down the grenade's flight."
  },
  {
   "address": 1395,
   "type": "line",
   "text": "Mines and tripwires left to place in the room."
  },
  {
   "address": 1397,
   "type": "line",
   "text": "Barnes's stage; at 3 he starts shooting back."
  },
  {
   "address": 1398,
   "type": "line",
   "text": "Barnes's state: $FF waiting, 1 shooting after three hits."
  },
  {
   "address": 1399,
   "type": "line",
   "text": "The grenade's vertical step, per grenade."
  },
  {
   "address": 1401,
   "type": "line",
   "text": "Counts down to the sniper's next shot."
  },
  {
   "address": 1402,
   "type": "line",
   "text": "The traps' positions in the room."
  },
  {
   "address": 1405,
   "type": "line",
   "text": "Counts frames in Barnes's routine."
  },
  {
   "address": 1406,
   "type": "line",
   "text": "Set while the player is falling."
  },
  {
   "address": 1407,
   "type": "line",
   "text": "Direction each enemy walks: 1, 2, $FF, or $FE."
  },
  {
   "address": 1408,
   "type": "line",
   "text": "Barnes's horizontal step."
  },
  {
   "address": 1409,
   "type": "line",
   "text": "Set while the fall finishes."
  },
  {
   "address": 1410,
   "type": "line",
   "text": "The enemies' speed, cleared by $11C3."
  },
  {
   "address": 1411,
   "type": "line",
   "text": "Barnes's vertical step."
  },
  {
   "address": 1412,
   "type": "line",
   "text": "The start of an older version of the player's controls, which nothing in this load calls: the controls in use are read_joystick ($1E32). This part, entered at $0592, puts the standing frames back ($0564, $0F31, $0F32) when the stick is let go, after any wait still counting in $0740."
  },
  {
   "address": 1475,
   "type": "line",
   "text": "The older controls, continued. From $0614 they wait for $0303 to be 4, read the joystick into $0306, test the space bar ($08F3), and go on by direction: up to $0694, which starts a jump, down to $06E4, left to $0745 and right to $07C8. $0612 is set while fire is held, which stops the walking; $06E1 and $06E2 hold the jump's step and direction."
  },
  {
   "address": 1856,
   "type": "line",
   "text": "The grenade's arc, read by $21A8."
  },
  {
   "address": 1858,
   "type": "line",
   "text": "The older controls, continued: left, from $0745, first turns the player to face left (frame $6E), then walks him, stepping the frames from $0851 (or $0855 when $0FAB is 2) every $0FAB frames."
  },
  {
   "address": 1920,
   "type": "line",
   "text": "The older controls, continued: the rest of left, then right from $07C8, which does the same with the frames from $0849 (or $084D)."
  },
  {
   "address": 2048,
   "type": "line",
   "text": "The older controls' right, continued to its rts at $0844."
  },
  {
   "address": 2117,
   "type": "line",
   "text": "Counts the player's walking frames left and right."
  },
  {
   "address": 2118,
   "type": "line",
   "text": "Counts the walking frames up and down."
  },
  {
   "address": 2119,
   "type": "line",
   "text": "Set while the player faces left."
  },
  {
   "address": 2120,
   "type": "line",
   "text": "Set while the player faces right."
  },
  {
   "address": 2121,
   "type": "line",
   "text": "Where a shot starts across, for each facing."
  },
  {
   "address": 2125,
   "type": "line",
   "text": "Where a shot starts down, for each facing."
  },
  {
   "address": 2129,
   "type": "line",
   "text": "Horizontal walking steps."
  },
  {
   "address": 2133,
   "type": "line",
   "text": "Vertical walking steps."
  },
  {
   "address": 2137,
   "type": "line",
   "text": "Walking limits, one for each direction."
  },
  {
   "address": 2141,
   "type": "line",
   "text": "Walking limits on the other axis."
  },
  {
   "address": 2145,
   "type": "line",
   "text": "Explosion offsets across."
  },
  {
   "address": 2149,
   "type": "line",
   "text": "Explosion offsets down."
  },
  {
   "address": 2153,
   "type": "line",
   "text": "Explosion frame for each step."
  },
  {
   "address": 2157,
   "type": "line",
   "text": "The explosion's sizes and the tables after them."
  },
  {
   "address": 2162,
   "type": "line",
   "text": "The older controls' jump, once a frame: steps $06E1 through the 32 heights from $089C into $0581, keeps the jump's direction in $0308, and at the end puts the player back on line $78."
  },
  {
   "address": 2221,
   "type": "line",
   "text": "The jump's heights, continued to $08BB, then more heights to $08F2, which the unused enemy routine at $10CC reads from $08C3. From $08F3 the older controls test the space bar, which threw a grenade, and go on into start_throw."
  },
  {
   "address": 2308,
   "type": "line",
   "text": "Starts a grenade throw for the older controls, which nothing in this load calls: sets the throwing frames, moves the player $10 pixels left ($10 right when facing left, $0847) and sets the throw flags $0A4C-$0A4E."
  },
  {
   "address": 2392,
   "type": "line",
   "text": "Steps the older controls' throw by its counter $0A4C, from 10 to $46: it sets the throwing frames and starts the grenade, goes back to the standing frames at $1E, moves the grenade by throw_arc ($2289) and the steps at $0A4F (or $0A9D facing left), and ends the throw at $46. Nothing in this load calls it: the throw in use is throw_step ($2207)."
  },
  {
   "address": 2636,
   "type": "line",
   "text": "Set while the throw animation runs."
  },
  {
   "address": 2637,
   "type": "line",
   "text": "The walking animation's position."
  },
  {
   "address": 2638,
   "type": "line",
   "text": "The walking animation's second counter."
  },
  {
   "address": 2639,
   "type": "line",
   "text": "The older throw's steps, one for each count of $0A4C after 10, which it stores in $0575; the steps for facing left start at $0A9D."
  },
  {
   "address": 2702,
   "type": "line",
   "text": "The older throw's tables, continued: the steps for facing left from $0A9D, then more steps up to $0B2E that nothing reads."
  },
  {
   "address": 2863,
   "type": "line",
   "text": "Raster interrupt at line $14: sets the scroll and charset, places all eight play sprites from $0F15, and overlays the grenade or the dying Barnes ($3078, $3297); chains to $0D78 on line $50."
  },
  {
   "address": 2875,
   "type": "line",
   "text": "Self-modified: low byte of the next raster interrupt, written to $FFFE."
  },
  {
   "address": 2880,
   "type": "line",
   "text": "Self-modified: high byte of the next raster interrupt, written to $FFFF."
  },
  {
   "address": 2885,
   "type": "line",
   "text": "Raster interrupt for the top of the play area: sets the charset and sprite colours, places all eight sprites from $0F15, and in Barnes's bunker or the escape ($3297) shows the extra sprites."
  },
  {
   "address": 3099,
   "type": "line",
   "text": "Sprite X high bits for the play area."
  },
  {
   "address": 3100,
   "type": "line",
   "text": "Enemy sprite settings, written by $2506."
  },
  {
   "address": 3102,
   "type": "line",
   "text": "The invaders' interrupt for their second row, which the top of the screen's interrupt ($0B2F) chains to while they play: points the next interrupt at $0C60 on line row3_y ($2AAE), turns the border red, and places six sprites from $0CE3 with the colours at $0D4E and the frames at $0D66."
  },
  {
   "address": 3168,
   "type": "line",
   "text": "The invaders' interrupt for their third row: points the next interrupt at $0CA2 on line row4_y ($2AAF), turns the border cyan, and places six sprites from $0CF3 with the colours at $0D54 and the frames at $0D6C."
  },
  {
   "address": 3234,
   "type": "line",
   "text": "The invaders' interrupt for their fourth row: points the next interrupt at the panel's ($0E3B) on line $DC, turns the border purple, and places six sprites from $0D03 with the colours at $0D5A and the frames at $0D72."
  },
  {
   "address": 3299,
   "type": "line",
   "text": "X and Y of the six invaders in the second row; both are zero for one that has been shot. The reset at $C024 clears all four rows."
  },
  {
   "address": 3315,
   "type": "line",
   "text": "X and Y of the six invaders in the third row."
  },
  {
   "address": 3331,
   "type": "line",
   "text": "X and Y of the six invaders in the fourth row."
  },
  {
   "address": 3347,
   "type": "line",
   "text": "Where the invaders start: X and Y of the six in the first row, copied to the play sprites at $0F15; from $0D24, 36 bytes copied over the other rows from $0CE3."
  },
  {
   "address": 3395,
   "type": "line",
   "text": "The last of the invaders' starting places."
  },
  {
   "address": 3400,
   "type": "line",
   "text": "Colours of the first row: orange."
  },
  {
   "address": 3406,
   "type": "line",
   "text": "Colours of the second row: white."
  },
  {
   "address": 3412,
   "type": "line",
   "text": "Colours of the third row: cyan."
  },
  {
   "address": 3418,
   "type": "line",
   "text": "Colours of the fourth row: purple."
  },
  {
   "address": 3424,
   "type": "line",
   "text": "Sprite frames of the first row: $FF, the invader's shape."
  },
  {
   "address": 3430,
   "type": "line",
   "text": "Sprite frames of the second row."
  },
  {
   "address": 3436,
   "type": "line",
   "text": "Sprite frames of the third row."
  },
  {
   "address": 3442,
   "type": "line",
   "text": "Sprite frames of the fourth row."
  },
  {
   "address": 3448,
   "type": "line",
   "text": "Raster interrupt on line $50: places the player's three sprites ($0F2B-$0F36) and the grenade ($0E36-$0E39), then chains to $0E3B on line $D0."
  },
  {
   "address": 3464,
   "type": "line",
   "text": "Raster interrupt lower down: places the player's three-sprite body from $0F2B, and outside the bunker the enemy pair from $0E36; flashes the second sprite white when $03AB is 7."
  },
  {
   "address": 3638,
   "type": "line",
   "text": "Grenade X."
  },
  {
   "address": 3639,
   "type": "line",
   "text": "Grenade Y."
  },
  {
   "address": 3640,
   "type": "line",
   "text": "X of the grenade's blast."
  },
  {
   "address": 3641,
   "type": "line",
   "text": "Y of the grenade's blast."
  },
  {
   "address": 3642,
   "type": "line",
   "text": "The second enemy's horizontal step."
  },
  {
   "address": 3643,
   "type": "line",
   "text": "Raster interrupt at the panel: resets the scroll, charset, and sprites for the status panel, places the crosshair in aiming mode ($03AB=7), cycles $0F14, sets the frame flag $1E24, and chains back to $0EE4."
  },
  {
   "address": 3812,
   "type": "line",
   "text": "Raster interrupt on line $F8: plays the music ($C016) and chains to $0B2F."
  },
  {
   "address": 3860,
   "type": "line",
   "text": "Frame counter 0-2 used to alternate the shot sprites."
  },
  {
   "address": 3861,
   "type": "line",
   "text": "X and Y of the eight play sprites."
  },
  {
   "address": 3862,
   "type": "line",
   "text": "Sprite 0's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3863,
   "type": "line",
   "text": "Sprite 1's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3864,
   "type": "line",
   "text": "Sprite 1's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3865,
   "type": "line",
   "text": "Sprite 2's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3866,
   "type": "line",
   "text": "Sprite 2's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3867,
   "type": "line",
   "text": "Sprite 3's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3868,
   "type": "line",
   "text": "Sprite 3's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3869,
   "type": "line",
   "text": "Sprite 4's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3870,
   "type": "line",
   "text": "Sprite 4's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3871,
   "type": "line",
   "text": "Sprite 5's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3872,
   "type": "line",
   "text": "Sprite 5's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3873,
   "type": "line",
   "text": "Sprite 6's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3874,
   "type": "line",
   "text": "Sprite 6's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3875,
   "type": "line",
   "text": "Sprite 7's X position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3876,
   "type": "line",
   "text": "Sprite 7's Y position in the table the top interrupt copies to $D000."
  },
  {
   "address": 3877,
   "type": "line",
   "text": "How many enemies the room has."
  },
  {
   "address": 3878,
   "type": "line",
   "text": "Each enemy's state."
  },
  {
   "address": 3879,
   "type": "line",
   "text": "More enemy state bytes."
  },
  {
   "address": 3881,
   "type": "line",
   "text": "Set once at the start of the load by $0526."
  },
  {
   "address": 3882,
   "type": "line",
   "text": "Set once at the start of the load by $054F."
  },
  {
   "address": 3883,
   "type": "line",
   "text": "X and Y of the player's three sprites."
  },
  {
   "address": 3884,
   "type": "line",
   "text": "The Y of the player's top sprite."
  },
  {
   "address": 3885,
   "type": "line",
   "text": "The X of the player's middle sprite."
  },
  {
   "address": 3886,
   "type": "line",
   "text": "The Y of the player's middle sprite."
  },
  {
   "address": 3887,
   "type": "line",
   "text": "The X of the player's lower sprite."
  },
  {
   "address": 3888,
   "type": "line",
   "text": "The Y of the player's lower sprite."
  },
  {
   "address": 3889,
   "type": "line",
   "text": "Frames of the player's three sprites."
  },
  {
   "address": 3890,
   "type": "line",
   "text": "The frame of the player's middle sprite."
  },
  {
   "address": 3891,
   "type": "line",
   "text": "The frame of the player's lower sprite."
  },
  {
   "address": 3892,
   "type": "line",
   "text": "Sprite frame shown for the first enemy."
  },
  {
   "address": 3893,
   "type": "line",
   "text": "Sprite frame shown for the second enemy."
  },
  {
   "address": 3894,
   "type": "line",
   "text": "Sprite frame shown for the third enemy."
  },
  {
   "address": 3895,
   "type": "line",
   "text": "Shot positions and frames, three sets of three."
  },
  {
   "address": 3897,
   "type": "line",
   "text": "Where the sniper's shot starts."
  },
  {
   "address": 3898,
   "type": "line",
   "text": "Flags for the three shots."
  },
  {
   "address": 3901,
   "type": "line",
   "text": "Barnes's sprite X."
  },
  {
   "address": 3902,
   "type": "line",
   "text": "Whether each of the three shots is flying."
  },
  {
   "address": 3903,
   "type": "line",
   "text": "Whether the second shot is flying."
  },
  {
   "address": 3904,
   "type": "line",
   "text": "Whether the third shot is flying."
  },
  {
   "address": 3905,
   "type": "line",
   "text": "Each shot's step."
  },
  {
   "address": 3906,
   "type": "line",
   "text": "The second shot's Y."
  },
  {
   "address": 3907,
   "type": "line",
   "text": "The third shot's Y."
  },
  {
   "address": 3908,
   "type": "line",
   "text": "Barnes's sprite Y."
  },
  {
   "address": 3909,
   "type": "line",
   "text": "Each shot's direction."
  },
  {
   "address": 3912,
   "type": "line",
   "text": "The traps' states."
  },
  {
   "address": 3916,
   "type": "line",
   "text": "Colours of the play sprites."
  },
  {
   "address": 3917,
   "type": "line",
   "text": "The second sprite's colour."
  },
  {
   "address": 3918,
   "type": "line",
   "text": "The third sprite's colour."
  },
  {
   "address": 3919,
   "type": "line",
   "text": "The fourth sprite's colour."
  },
  {
   "address": 3920,
   "type": "line",
   "text": "The fifth sprite's colour."
  },
  {
   "address": 3921,
   "type": "line",
   "text": "The sixth sprite's colour."
  },
  {
   "address": 3922,
   "type": "line",
   "text": "The seventh sprite's colour."
  },
  {
   "address": 3923,
   "type": "line",
   "text": "The eighth sprite's colour and a spare byte."
  },
  {
   "address": 3925,
   "type": "line",
   "text": "Set at the start of the load."
  },
  {
   "address": 3926,
   "type": "line",
   "text": "Set at the start of the load by $04DF."
  },
  {
   "address": 3927,
   "type": "line",
   "text": "Frames of the enemy sprites, three per enemy."
  },
  {
   "address": 3928,
   "type": "line",
   "text": "Sprite frames chosen by the walking code."
  },
  {
   "address": 3929,
   "type": "line",
   "text": "Second set of sprite frames."
  },
  {
   "address": 3930,
   "type": "line",
   "text": "Barnes's sprite frames."
  },
  {
   "address": 3932,
   "type": "line",
   "text": "Barnes's second frame."
  },
  {
   "address": 3933,
   "type": "line",
   "text": "Set at the start of the load by $0549."
  },
  {
   "address": 3934,
   "type": "line",
   "text": "Seventeen bytes cleared at the start of the load."
  },
  {
   "address": 3951,
   "type": "line",
   "text": "Each grenade's state."
  },
  {
   "address": 3953,
   "type": "line",
   "text": "Counts the sniper's shots."
  },
  {
   "address": 3954,
   "type": "line",
   "text": "Counts frames for the traps."
  },
  {
   "address": 3957,
   "type": "line",
   "text": "Barnes's sprite frame in the top interrupt."
  },
  {
   "address": 3958,
   "type": "line",
   "text": "Each grenade's height."
  },
  {
   "address": 3961,
   "type": "line",
   "text": "The traps' frames."
  },
  {
   "address": 3965,
   "type": "line",
   "text": "Run-stop pauses the game ($056F); the unpause key clears it."
  },
  {
   "address": 4011,
   "type": "line",
   "text": "Set at the start of the load by $04E9."
  },
  {
   "address": 4012,
   "type": "line",
   "text": "Brings an enemy in from the left walking right."
  },
  {
   "address": 4068,
   "type": "line",
   "text": "Brings an enemy in from the right walking left."
  },
  {
   "address": 4124,
   "type": "line",
   "text": "Two routines like the turns after them, which only the unused routine at $10E0 calls: $101C turns an enemy right and $1032 left, a pixel a step, with frames $44 and $45."
  },
  {
   "address": 4168,
   "type": "line",
   "text": "Turns an enemy to walk right, unless they are frozen ($115C)."
  },
  {
   "address": 4199,
   "type": "line",
   "text": "Turns an enemy to walk left."
  },
  {
   "address": 4230,
   "type": "line",
   "text": "Enter from the left at double speed."
  },
  {
   "address": 4239,
   "type": "line",
   "text": "Enter from the right at double speed."
  },
  {
   "address": 4248,
   "type": "line",
   "text": "Enemy routines that nothing in this load calls: they bring an enemy in standing on line $46 ($1098, $10A9) or held still on line $64 ($10FC, $110A), start and step a jump by the heights at $08C3 ($10BA, $10CC), end the jump on line $78 facing the player ($10E0), and start and step a second kind of jump by the heights at $089C ($1118, $1131)."
  },
  {
   "address": 4444,
   "type": "line",
   "text": "Set for an enemy that the unused routines from $10FC hold still or move through a jump; the turns at $1048 and $1067 leave such an enemy alone."
  },
  {
   "address": 4446,
   "type": "line",
   "text": "An unused routine that crouches an enemy: frame $54, or $9A facing left, with a second sprite 20 lines under it."
  },
  {
   "address": 4508,
   "type": "line",
   "text": "The crouch, continued, then from $119E an unused routine that stands an enemy still with frame $4D."
  },
  {
   "address": 4521,
   "type": "line",
   "text": "Clears an enemy that has walked out, past X $50, or below 5 when its state ($0F26) is 0, by running on into clear_enemy; nothing calls this entry."
  },
  {
   "address": 4542,
   "type": "line",
   "text": "Clears an enemy slot."
  },
  {
   "address": 4563,
   "type": "line",
   "text": "An unused routine that fires a shot from an enemy into the first free of two shot slots ($0F3A, $0F3B), ten lines lower when the enemy crouches. $1245 makes an enemy crouch and fire, or fire and jump, and from $1264 counts $1280 down to turn the enemy towards the player ($1270). Only the unused engine at $12AC names them."
  },
  {
   "address": 4738,
   "type": "line",
   "text": "Which way each enemy faces, 1 right or 2 left, set by the turns at $1048 and $1067 and read only by routines nothing in this load calls."
  },
  {
   "address": 4740,
   "type": "line",
   "text": "Four scripts of ten steps for the unused engine at $12AC, at $1284, $128E, $1298 and $12A2; each step is a number in its routine table at $130E."
  },
  {
   "address": 4780,
   "type": "line",
   "text": "An engine that steps each enemy through a script, which nothing in this load calls: every 16 calls ($1300) it takes the enemy's next step from its script (chosen by $1302 through $1306), and calls the routine the step names in $130E by rewriting the jump at $12F8."
  },
  {
   "address": 4802,
   "type": "line",
   "text": "The script engine, continued."
  },
  {
   "address": 4861,
   "type": "line",
   "text": "Each enemy's step in its script, 0-8, for the unused engine at $12AC; the entries at $0FAC and $0FE4 clear it."
  },
  {
   "address": 4866,
   "type": "line",
   "text": "Each enemy's script for the unused engine at $12AC, set to 1 by the entries at $0FAC and $0FE4; from $1306 the scripts' addresses, and from $130E the addresses of the routines a step can name."
  },
  {
   "address": 4902,
   "type": "line",
   "text": "A jump on to $13BB, then from $1329 an unused routine that steps an enemy's walking frames from the tables at $0849-$0858 every seven calls, leaving alone an enemy whose frame is $54, $56, $9A or $9C."
  },
  {
   "address": 4930,
   "type": "line",
   "text": "The enemy walking routine, continued, to $13BC; $13BD-$13C2 are its counters."
  },
  {
   "address": 5059,
   "type": "line",
   "text": "Two unused routines that climb the player: while $1441 is set, $13C3 moves him up four lines every ten calls with the frames at $143D, and while $1442 is set, $1402 moves him down. The older controls' standing code ($059D) leaves the frames alone while either is set."
  },
  {
   "address": 5187,
   "type": "line",
   "text": "Checks the player against each enemy and each enemy shot, and against the grenade's blast; any contact kills the player ($3B17, $1519)."
  },
  {
   "address": 5400,
   "type": "line",
   "text": "Frames left of the player's death, from $50."
  },
  {
   "address": 5401,
   "type": "line",
   "text": "Starts the player's death: stops the shots, sets the timer, and plays the death sound."
  },
  {
   "address": 5423,
   "type": "line",
   "text": "Steps the death animation by $1518 (falling frames at $4E, $46, $3C, $32); at the end clears the shots and takes a life ($15ED), restarting at $3396, or with Barnes dead ends the section ($34F6)."
  },
  {
   "address": 5463,
   "type": "line",
   "text": "A second rts that nothing reaches."
  },
  {
   "address": 5464,
   "type": "line",
   "text": "Sets the player's three body frames to the standing pose $56."
  },
  {
   "address": 5482,
   "type": "line",
   "text": "Sets the player's three body frames to the pose $6E, as stand_frames does for $56; nothing calls it."
  },
  {
   "address": 5500,
   "type": "line",
   "text": "Moves the player's body frames on three to the next walking pose."
  },
  {
   "address": 5522,
   "type": "line",
   "text": "Moves the player's body frames on three for the other walking direction."
  },
  {
   "address": 5544,
   "type": "line",
   "text": "Sets the crouching frames $61, $5F and $60."
  },
  {
   "address": 5561,
   "type": "line",
   "text": "Clears the shots, then either takes the next wound through $34F6 or, with no wounds left, empties the morale bar, drops a life from $C08D and restarts the jungle at $3396."
  },
  {
   "address": 5643,
   "type": "line",
   "text": "Ends the hit test when the shot slot is empty."
  },
  {
   "address": 5646,
   "type": "line",
   "text": "Tests each of the three shots against each enemy; a hit kills the enemy through $16A9 and scores 500."
  },
  {
   "address": 5679,
   "type": "line",
   "text": "Self-modified: the hit box's left margin, set at $1BE5."
  },
  {
   "address": 5680,
   "type": "line",
   "text": "Self-modified: the hit box's right margin."
  },
  {
   "address": 5681,
   "type": "line",
   "text": "Self-modified: the hit box's top margin."
  },
  {
   "address": 5692,
   "type": "line",
   "text": "Self-modified: the hit box's bottom margin."
  },
  {
   "address": 5707,
   "type": "line",
   "text": "Self-modified: the horizontal margin on one side."
  },
  {
   "address": 5718,
   "type": "line",
   "text": "Self-modified: the horizontal margin on the other side, then the kill: five calls to $3AA7 add 500, and a grenade from $28C3 explodes."
  },
  {
   "address": 5772,
   "type": "line",
   "text": "Steps to the next enemy and the next shot."
  },
  {
   "address": 5790,
   "type": "line",
   "text": "Drops the return address and goes on to the next enemy."
  },
  {
   "address": 5795,
   "type": "line",
   "text": "Frames left of each enemy's death, 0 when alive."
  },
  {
   "address": 5800,
   "type": "line",
   "text": "Hits on Barnes, who falls at the fifth."
  },
  {
   "address": 5801,
   "type": "line",
   "text": "An enemy is hit: plays the sound, starts their death ($16A3=$28) and stops them. When the enemy is Barnes ($3078), each throw-time hit counts, and the fifth ends him ($3227)."
  },
  {
   "address": 5836,
   "type": "line",
   "text": "Set once Barnes has been hit by the current shot."
  },
  {
   "address": 5837,
   "type": "line",
   "text": "Barnes is beaten: clears $16A8, removes him through $11BE and goes to $3227."
  },
  {
   "address": 5850,
   "type": "line",
   "text": "An rts after the jump to barnes_killed, which nothing reaches."
  },
  {
   "address": 5851,
   "type": "line",
   "text": "Plays the falling sound and starts the enemy's 40-frame fall in $16A3."
  },
  {
   "address": 5881,
   "type": "line",
   "text": "Steps each dying enemy: the fallen frames at $26 and the slot cleared at 2."
  },
  {
   "address": 5928,
   "type": "line",
   "text": "Checks the four ground characters under the player: a mine (characters 7-$0B) explodes ($175A), and a trap ($0C-$10) catches him ($17B7)."
  },
  {
   "address": 5978,
   "type": "line",
   "text": "A mine goes off under the player: plays the blast, starts the explosion sprite at the mine ($17B6), clears the mine from the map, and kills the player."
  },
  {
   "address": 6070,
   "type": "line",
   "text": "Frames left of a mine's explosion."
  },
  {
   "address": 6071,
   "type": "line",
   "text": "The player falls into a trap: flags it ($17C4) and kills him."
  },
  {
   "address": 6084,
   "type": "line",
   "text": "Set when the player died in a trap."
  },
  {
   "address": 6085,
   "type": "line",
   "text": "Steps the mine explosion's frames and size by $17B6."
  },
  {
   "address": 6177,
   "type": "line",
   "text": "Offsets of the four map characters under the player's feet."
  },
  {
   "address": 6185,
   "type": "line",
   "text": "X offset of the explosion for each foot."
  },
  {
   "address": 6189,
   "type": "line",
   "text": "Y offset of the explosion for each foot."
  },
  {
   "address": 6193,
   "type": "line",
   "text": "An older map scroller, which nothing in this load calls. It moves the map pointer at $20/$21, where the scroller in use moves zp32-35 ($2070): $1831 and $184C step it one character right or left every eight pixels ($0309), and $1869 and $1889 a row down or up every six ($030A)."
  },
  {
   "address": 6253,
   "type": "line",
   "text": "The older scroller, continued. From $18AB it draws fifteen blocks of the map from $20/$21 onto the screen at $4000 and their colours, stepping by the tables from $19B5."
  },
  {
   "address": 6678,
   "type": "line",
   "text": "Fills both screens ($4000 and $4400) with spaces and the colours with white."
  },
  {
   "address": 6728,
   "type": "line",
   "text": "An unused routine that copies 159 bytes from $1B5D onto the screen at $4320 as characters, in white."
  },
  {
   "address": 6747,
   "type": "line",
   "text": "Multiplies X (low) and Y (high) by A into $0398/$0399; only the invaders ($28E2) call it, to find a screen row."
  },
  {
   "address": 6806,
   "type": "line",
   "text": "Tests the key with matrix code A; sets carry when that key alone is held."
  },
  {
   "address": 6864,
   "type": "line",
   "text": "Saved Y of the key test."
  },
  {
   "address": 6866,
   "type": "line",
   "text": "Keyboard row masks."
  },
  {
   "address": 6874,
   "type": "line",
   "text": "Keyboard column masks."
  },
  {
   "address": 6882,
   "type": "line",
   "text": "Counts the time limit down once a second ($1B5C counts $32 frames): four digits, minutes and seconds."
  },
  {
   "address": 6963,
   "type": "line",
   "text": "Draws the four time digits on the panel."
  },
  {
   "address": 7000,
   "type": "line",
   "text": "Time left: tens of minutes, minutes, tens of seconds, and seconds."
  },
  {
   "address": 7001,
   "type": "line",
   "text": "Minutes digit of the time limit."
  },
  {
   "address": 7002,
   "type": "line",
   "text": "Tens of seconds of the time limit."
  },
  {
   "address": 7003,
   "type": "line",
   "text": "Seconds of the time limit."
  },
  {
   "address": 7004,
   "type": "line",
   "text": "Frames until the next second."
  },
  {
   "address": 7005,
   "type": "line",
   "text": "Start of play: starts the section's tune, copies the jungle charset from $A800 to $4800, clears the shots and enemies, sets the time to 20 minutes, sets the enemy speed operands and the panel, draws the jungle ($3543), and enters the main loop."
  },
  {
   "address": 7043,
   "type": "line",
   "text": "Self-modified: low byte of the charset source."
  },
  {
   "address": 7044,
   "type": "line",
   "text": "Self-modified: high byte of the charset source, stepped each page."
  },
  {
   "address": 7046,
   "type": "line",
   "text": "Self-modified: low byte of the charset destination."
  },
  {
   "address": 7047,
   "type": "line",
   "text": "Copies the charset from $A800 to $4800, then sets everything for a new start: the time 02:00, the hit box, the first room $69, the colours, ammunition 9, four wounds, morale $47, and the panel."
  },
  {
   "address": 7319,
   "type": "line",
   "text": "Restart after a lost life: redraws the map and panel ($3634, $3BC2, $38C4, $3AD4), resets Barnes's state, picks how many enemies come ($1E27), and runs the main loop."
  },
  {
   "address": 7402,
   "type": "line",
   "text": "Main loop, once per frame flag $1E24: pause, the player's joystick ($1E32) and hit checks, the time limit (at zero a life is lost), and the updates of enemies, shots, grenades, Barnes, the mines, and the music keys."
  },
  {
   "address": 7608,
   "type": "line",
   "text": "When five keys are held together, flashes the border and sets the game to end."
  },
  {
   "address": 7657,
   "type": "line",
   "text": "The music key turns the tune on and the effects key turns it off."
  },
  {
   "address": 7716,
   "type": "line",
   "text": "Set by the panel interrupt each frame."
  },
  {
   "address": 7718,
   "type": "line",
   "text": "Index into $1E27, stepped each life."
  },
  {
   "address": 7719,
   "type": "line",
   "text": "How many enemies come in each wave."
  },
  {
   "address": 7730,
   "type": "line",
   "text": "Reads the joystick: up and down move the player along the jungle path ($1FE3, $2070), left and right ($1EBE, $1F1F) where the map's characters allow, fire throws ($20FD); standing still shows the standing frames."
  },
  {
   "address": 7744,
   "type": "line",
   "text": "Acts on the joystick in $0306: left, right, up, down, and fire at $20FD; when standing still the body shows facing left or right."
  },
  {
   "address": 7870,
   "type": "line",
   "text": "Moves the player right one step if the map ahead is clear, scrolling the map pointer a row every eight pixels."
  },
  {
   "address": 7967,
   "type": "line",
   "text": "Moves the player left one step if the map allows and the edge is not reached."
  },
  {
   "address": 8105,
   "type": "line",
   "text": "Fine scroll of the player's position, 0-7."
  },
  {
   "address": 8106,
   "type": "line",
   "text": "Fine horizontal position, 0-7."
  },
  {
   "address": 8107,
   "type": "line",
   "text": "Slows the player's walking."
  },
  {
   "address": 8108,
   "type": "line",
   "text": "Written by $351C on a room change."
  },
  {
   "address": 8111,
   "type": "line",
   "text": "Steps the walking frames every fourth call; returns to the caller's caller between steps."
  },
  {
   "address": 8146,
   "type": "line",
   "text": "Steps walk_count_b round, wrapping at 3, and runs on into no_move, like the end of step_animation; nothing jumps to this entry."
  },
  {
   "address": 8162,
   "type": "line",
   "text": "Returns without moving."
  },
  {
   "address": 8163,
   "type": "line",
   "text": "Moves the player up the screen where the map allows."
  },
  {
   "address": 8302,
   "type": "line",
   "text": "Set where the path above is blocked to enemies and player."
  },
  {
   "address": 8303,
   "type": "line",
   "text": "Set where the path below is blocked."
  },
  {
   "address": 8304,
   "type": "line",
   "text": "Moves the player down the screen where the map allows, scrolling the map pointers zp32/33 and zp34/35 a column every eight pixels."
  },
  {
   "address": 8445,
   "type": "line",
   "text": "Fire shoots: if rounds are left ($3B15) and a shot slot is free, uses a round ($3AE8) and starts a shot ($213E); once the player has reached Barnes's bunker ($307C) it throws a grenade instead ($21C8)."
  },
  {
   "address": 8510,
   "type": "line",
   "text": "Starts shot X from the player's gun with the gunfire sound: works out its slope towards the screen's centre line ($25E1/$25EF) and sends it up the screen."
  },
  {
   "address": 8647,
   "type": "line",
   "text": "Frames before the next shot."
  },
  {
   "address": 8648,
   "type": "line",
   "text": "Throws a grenade at the enemy in the last stage: uses shot slot 2 on a higher arc and starts the throw animation ($0A4C=$50)."
  },
  {
   "address": 8711,
   "type": "line",
   "text": "Steps the grenade throw by $0A4C: the arm frames, the grenade's rise, the explosion sound at $1A, and the end at 1."
  },
  {
   "address": 8841,
   "type": "line",
   "text": "Height change of the grenade for each step of the throw."
  },
  {
   "address": 8905,
   "type": "line",
   "text": "The rest of throw_arc's heights: falling three pixels a step."
  },
  {
   "address": 8928,
   "type": "line",
   "text": "Every $C8 frames, unless one is in the air, a sniper's shot (or thrown object) comes in from one of fifteen places ($239A, $23BC) and falls for eight steps, then bursts where it lands ($0E38) with a sound."
  },
  {
   "address": 9109,
   "type": "line",
   "text": "Which place the next sniper shot comes from, 0-14."
  },
  {
   "address": 9110,
   "type": "line",
   "text": "Steps left of the falling shot."
  },
  {
   "address": 9111,
   "type": "line",
   "text": "Frames until the next sniper shot."
  },
  {
   "address": 9112,
   "type": "line",
   "text": "Sprite frame of the falling shot."
  },
  {
   "address": 9113,
   "type": "line",
   "text": "Colour of the falling shot, cycled."
  },
  {
   "address": 9114,
   "type": "line",
   "text": "X and Y where each sniper shot starts."
  },
  {
   "address": 9115,
   "type": "line",
   "text": "Each enemy's colour."
  },
  {
   "address": 9148,
   "type": "line",
   "text": "X drift of each sniper shot."
  },
  {
   "address": 9212,
   "type": "line",
   "text": "The last of twenty steps from $23E9, five of 3 and five of -3 in turn."
  },
  {
   "address": 9213,
   "type": "line",
   "text": "An enemy fires at the player: finds a free enemy-shot slot, plays the sound, and aims the shot at the player's position from the enemy's ($2445)."
  },
  {
   "address": 9235,
   "type": "line",
   "text": "A jump to barnes_fires ($307D) and an rts after the rts above, which nothing reaches."
  },
  {
   "address": 9239,
   "type": "line",
   "text": "Plays the grenade's sounds: two effects in the jungle, one in the bunker."
  },
  {
   "address": 9285,
   "type": "line",
   "text": "Aims enemy shot Y from enemy X at the player: slope and direction in $0573/$057A and $25E4/$25F2."
  },
  {
   "address": 9469,
   "type": "line",
   "text": "Frames before each enemy can fire again."
  },
  {
   "address": 9470,
   "type": "line",
   "text": "Written on entry to the bunker."
  },
  {
   "address": 9473,
   "type": "line",
   "text": "Applies this frame's movement: the player within the screen's edges (with the X high bit), the two enemies, and every shot along its slope, and drifts the blast."
  },
  {
   "address": 9697,
   "type": "line",
   "text": "Slope step of each shot."
  },
  {
   "address": 9700,
   "type": "line",
   "text": "Horizontal distance from enemy to player for each enemy shot."
  },
  {
   "address": 9704,
   "type": "line",
   "text": "Running sum of each shot's slope."
  },
  {
   "address": 9707,
   "type": "line",
   "text": "Cleared when an enemy shot starts."
  },
  {
   "address": 9711,
   "type": "line",
   "text": "Divisor of each shot's slope."
  },
  {
   "address": 9714,
   "type": "line",
   "text": "Vertical distance for each enemy shot."
  },
  {
   "address": 9718,
   "type": "line",
   "text": "Copies the player's and enemies' positions into the sprite table, three sprites each, and picks the player's frames for his height on screen (lower rows use frames $40 further on, for the jungle's foreground)."
  },
  {
   "address": 9893,
   "type": "line",
   "text": "Counts down the fire delay and removes shots that leave the screen; removes a blast that leaves the play area."
  },
  {
   "address": 9977,
   "type": "line",
   "text": "Clears shot X."
  },
  {
   "address": 10001,
   "type": "line",
   "text": "A second rts after the one above, which nothing reaches."
  },
  {
   "address": 10002,
   "type": "line",
   "text": "Steps each enemy: walking frames every fourth frame, a shot at the player every fifteenth ($23FD), turning back at the blocked edges ($1048, $1067), and leaving at the sides."
  },
  {
   "address": 10275,
   "type": "line",
   "text": "Frames to each enemy's next walking frame."
  },
  {
   "address": 10278,
   "type": "line",
   "text": "Walking frame of each enemy, 0-3."
  },
  {
   "address": 10291,
   "type": "line",
   "text": "Frames to each enemy's next shot."
  },
  {
   "address": 10295,
   "type": "line",
   "text": "An empty routine."
  },
  {
   "address": 10296,
   "type": "line",
   "text": "While enemies remain in this wave ($28C3) and the player is in the lower half, brings a new enemy into each empty slot after a random delay (from the bytes at $0400), from the left or right side the path allows."
  },
  {
   "address": 10431,
   "type": "line",
   "text": "Running sum that brings each enemy in when it passes $FA."
  },
  {
   "address": 10433,
   "type": "line",
   "text": "Index into the random bytes, 0-$13."
  },
  {
   "address": 10434,
   "type": "line",
   "text": "Second random index, 0-$1D."
  },
  {
   "address": 10435,
   "type": "line",
   "text": "Enemies still to come in this wave."
  },
  {
   "address": 10436,
   "type": "line",
   "text": "Which side each random step brings an enemy from."
  },
  {
   "address": 10466,
   "type": "line",
   "text": "A game of Space Invaders, which nothing in Platoon starts. It clears the screens, sets mode 7 ($03AB) so that the panel's interrupt shows the gun and marks each frame, draws three shields from $2F55, and sets up four rows of six invaders: the first row in the play sprites at $0F15, the others at $0CE3, $0CF3 and $0D03 for the interrupts at $0C1E, $0C60 and $0CA2."
  },
  {
   "address": 10548,
   "type": "line",
   "text": "Puts the rows at the top, on lines $37, $50, $69 and $82 (row1_y-row4_y), marching right a step every $14 frames, with the gun at $8C,$E1, and chains the top of the screen's interrupt to $0C1E. The rows come back here when the top row has come down to line $6E."
  },
  {
   "address": 10615,
   "type": "line",
   "text": "The main loop, once a frame: reads the joystick ($2B17), moves the shot ($2B89) and shows it in sprite 7, drops bombs ($2CD6), and starts the rows at the top again once they have come down far enough."
  },
  {
   "address": 10667,
   "type": "line",
   "text": "Every march_delay frames the rows step four pixels sideways ($2AB1, $2AE4); when an invader reaches either edge they turn and come down four lines."
  },
  {
   "address": 10839,
   "type": "line",
   "text": "Each invader's Y follows its row; then the shot is tested against the invaders ($2BA9), the bombs against the gun ($2F0D) and the shot against the shields ($2EC6), the bombs fall ($2E4F), and the quit key is checked ($C059)."
  },
  {
   "address": 10919,
   "type": "line",
   "text": "Frames between the rows' steps: $14 at the start, one or two fewer for each invader shot."
  },
  {
   "address": 10920,
   "type": "line",
   "text": "Counts the frames up to march_delay."
  },
  {
   "address": 10921,
   "type": "line",
   "text": "Set once a frame by the panel's interrupt ($0E9E) while the invaders play; their main loop waits for it."
  },
  {
   "address": 10922,
   "type": "line",
   "text": "X of the invaders' gun, 24-250."
  },
  {
   "address": 10923,
   "type": "line",
   "text": "Y of the invaders' gun, line $E1."
  },
  {
   "address": 10924,
   "type": "line",
   "text": "Line of the invaders' first row."
  },
  {
   "address": 10925,
   "type": "line",
   "text": "Line of the invaders' second row, where the top interrupt chains to $0C1E."
  },
  {
   "address": 10926,
   "type": "line",
   "text": "Line of the invaders' third row."
  },
  {
   "address": 10927,
   "type": "line",
   "text": "Line of the invaders' fourth row."
  },
  {
   "address": 10928,
   "type": "line",
   "text": "Which way the rows march: 1 right, $FF left."
  },
  {
   "address": 10929,
   "type": "line",
   "text": "Moves every live invader four pixels right."
  },
  {
   "address": 10980,
   "type": "line",
   "text": "Moves every live invader four pixels left."
  },
  {
   "address": 11031,
   "type": "line",
   "text": "Reads the joystick for the invaders: left and right move the gun between 24 and 250, fire shoots when no shot is in the air."
  },
  {
   "address": 11145,
   "type": "line",
   "text": "Moves the shot up four lines a frame, and ends it above line $32."
  },
  {
   "address": 11174,
   "type": "line",
   "text": "X of the gun's shot."
  },
  {
   "address": 11175,
   "type": "line",
   "text": "Y of the gun's shot, 0 when there is none."
  },
  {
   "address": 11176,
   "type": "line",
   "text": "The shot's step, -4."
  },
  {
   "address": 11177,
   "type": "line",
   "text": "Tests the shot against each invader, five lines and nine pixels either way: one hit is cleared from its row, counted, and the march speeds up. When all 24 are shot the game starts again at $28E2."
  },
  {
   "address": 11460,
   "type": "line",
   "text": "Invaders shot so far."
  },
  {
   "address": 11461,
   "type": "line",
   "text": "Clears the shot."
  },
  {
   "address": 11473,
   "type": "line",
   "text": "All 24 shot: drops the return address and starts again."
  },
  {
   "address": 11478,
   "type": "line",
   "text": "Every six frames picks the next of 25 invaders in turn from bomb_slots and bomb_rows, and if it is still there puts a bomb, character $0F, on the screen under it."
  },
  {
   "address": 11551,
   "type": "line",
   "text": "Counts the frames between bombs."
  },
  {
   "address": 11552,
   "type": "line",
   "text": "The invader whose turn it is to bomb."
  },
  {
   "address": 11553,
   "type": "line",
   "text": "The step through the 25 turns."
  },
  {
   "address": 11554,
   "type": "line",
   "text": "Which invader of its row each turn picks."
  },
  {
   "address": 11580,
   "type": "line",
   "text": "Which row each turn picks, 0-3."
  },
  {
   "address": 11613,
   "type": "line",
   "text": "Finds the screen place under the picked invader of the first row, and from $2D96, $2DD6 and $2E0F under one of the other rows, then puts the bomb there ($2E48)."
  },
  {
   "address": 11733,
   "type": "line",
   "text": "Cleared when the picked invader has been shot."
  },
  {
   "address": 11734,
   "type": "line",
   "text": "The same for an invader of the third row, and from $2E0F of the fourth."
  },
  {
   "address": 11848,
   "type": "line",
   "text": "Puts the bomb character $0F on the screen at the address written into this instruction."
  },
  {
   "address": 11854,
   "type": "line",
   "text": "The invader's screen column."
  },
  {
   "address": 11855,
   "type": "line",
   "text": "Every ten frames moves each bomb on the screen down a row: a bomb landing on a shield wears it from character 2 to 1, then away, and the bottom row is cleared."
  },
  {
   "address": 11922,
   "type": "line",
   "text": "Counts the frames between bomb moves."
  },
  {
   "address": 11923,
   "type": "line",
   "text": "A bomb found: it leaves its place and moves down a row, wearing away a shield character it lands on, or vanishing at the bottom."
  },
  {
   "address": 11974,
   "type": "line",
   "text": "Tests the shot against the shields: a hit wears the shield away a step and ends the shot."
  },
  {
   "address": 12045,
   "type": "line",
   "text": "Looks for a bomb in the six character places around the gun ($2F4F); a hit starts the game again at $28E2."
  },
  {
   "address": 12110,
   "type": "line",
   "text": "An rts nothing reaches, then the six places around the gun that gun_hit tests: 0, 1, 2, 40, 41 and 42 characters on."
  },
  {
   "address": 12117,
   "type": "line",
   "text": "The three shields, three rows of 40 characters copied to the screen at $42D0."
  },
  {
   "address": 12237,
   "type": "line",
   "text": "In rooms $0E, $18, and $22 Barnes's bunker is on screen: sets the shot hit-box operands for the bunker, flags Barnes ($3078), holds play for $8C frames, clears the enemies, plays his tune or sound, and places him ($3051)."
  },
  {
   "address": 12368,
   "type": "line",
   "text": "Frames the main loop waits before going on."
  },
  {
   "address": 12369,
   "type": "line",
   "text": "Puts Barnes's sprite in the bunker at $78,$B4."
  },
  {
   "address": 12407,
   "type": "line",
   "text": "Multicolour flag for Barnes's sprite."
  },
  {
   "address": 12408,
   "type": "line",
   "text": "Set while Barnes's bunker is on screen."
  },
  {
   "address": 12409,
   "type": "line",
   "text": "Jumps on to $3115."
  },
  {
   "address": 12412,
   "type": "line",
   "text": "Set once the player has reached the bunker's mouth; fire then throws grenades."
  },
  {
   "address": 12413,
   "type": "line",
   "text": "While the player is at the bunker, Barnes shoots back ($2445) and ducks for $48 or $37 frames."
  },
  {
   "address": 12511,
   "type": "line",
   "text": "Steps Barnes's duck-and-shoot animation by $3172, and turns his frames to face the player."
  },
  {
   "address": 12645,
   "type": "line",
   "text": "Sprite Y-expand flags, set for the explosion and grenade."
  },
  {
   "address": 12646,
   "type": "line",
   "text": "Clears the vertical stretch of the sprites."
  },
  {
   "address": 12652,
   "type": "line",
   "text": "Clears $0576."
  },
  {
   "address": 12658,
   "type": "line",
   "text": "Frames left of Barnes's current move."
  },
  {
   "address": 12659,
   "type": "line",
   "text": "Movement of Barnes for each step."
  },
  {
   "address": 12723,
   "type": "line",
   "text": "The rest of Barnes's moves: twos, ones, then zeros to $31D2."
  },
  {
   "address": 12755,
   "type": "line",
   "text": "When the player walks into the bunker's mouth beside Barnes, sets $307C with a sound."
  },
  {
   "address": 12839,
   "type": "line",
   "text": "The fifth grenade kills Barnes: shows his falling sprites and the explosion, writes the dead bunker onto the screen ($33CF-$33E1), and runs the main loop until $329D ends the section."
  },
  {
   "address": 12951,
   "type": "line",
   "text": "Set once Barnes is dead."
  },
  {
   "address": 12952,
   "type": "line",
   "text": "Frames left of his death."
  },
  {
   "address": 12953,
   "type": "line",
   "text": "Frames of the three explosion sprites."
  },
  {
   "address": 12954,
   "type": "line",
   "text": "The second escape sprite's frame."
  },
  {
   "address": 12955,
   "type": "line",
   "text": "The third escape sprite's frame."
  },
  {
   "address": 12956,
   "type": "line",
   "text": "Frames per explosion frame."
  },
  {
   "address": 12957,
   "type": "line",
   "text": "Animates the explosion over the bunker; at its end clears the sprites, sets the game's end ($C08D=3), and lets the player walk out to the right edge before the end screen ($3396)."
  },
  {
   "address": 13206,
   "type": "line",
   "text": "Waits a moment, clears the player, and goes to the end screen ($C06A)."
  },
  {
   "address": 13251,
   "type": "line",
   "text": "Set when the section ended with a lost life."
  },
  {
   "address": 13252,
   "type": "line",
   "text": "A busy wait of about 65,000 loops."
  },
  {
   "address": 13263,
   "type": "line",
   "text": "Characters of the bunker after the blast, four rows of six."
  },
  {
   "address": 13269,
   "type": "line",
   "text": "Escape sprites across."
  },
  {
   "address": 13275,
   "type": "line",
   "text": "Escape sprites down."
  },
  {
   "address": 13281,
   "type": "line",
   "text": "Escape sprite frames."
  },
  {
   "address": 13287,
   "type": "line",
   "text": "Works out which edges of this room are open from its kind ($3591); walking off an open edge moves to the next room ($344A up, $34A0 down)."
  },
  {
   "address": 13356,
   "type": "line",
   "text": "Copies the panel rows from the work screen to the shown one."
  },
  {
   "address": 13386,
   "type": "line",
   "text": "Moves to the room above: the new room's map from $361A, redraws it ($3543), places the player ($34F6), and rotates the four exit offsets $3630-$3633."
  },
  {
   "address": 13472,
   "type": "line",
   "text": "Moves to the room below, the same way."
  },
  {
   "address": 13557,
   "type": "line",
   "text": "An rts after the jump to restart_play, which nothing reaches."
  },
  {
   "address": 13558,
   "type": "line",
   "text": "Puts the player at the room's entrance and resets the scroll pointers, shots, and sniper."
  },
  {
   "address": 13635,
   "type": "line",
   "text": "Copies the room's 25 rows of 30 characters from its map ($355F) to the screen at $4400."
  },
  {
   "address": 13663,
   "type": "line",
   "text": "Self-modified: low byte of the room map being drawn."
  },
  {
   "address": 13664,
   "type": "line",
   "text": "Self-modified: high byte of the room map being drawn."
  },
  {
   "address": 13666,
   "type": "line",
   "text": "Self-modified: low byte of the screen row being drawn at $4400."
  },
  {
   "address": 13667,
   "type": "line",
   "text": "Self-modified high byte, then steps the map on 30 and the screen on 40 for the next of 25 rows."
  },
  {
   "address": 13712,
   "type": "line",
   "text": "Which room of the jungle the player is in."
  },
  {
   "address": 13713,
   "type": "line",
   "text": "Kind of each room: which edges are open."
  },
  {
   "address": 13777,
   "type": "line",
   "text": "Room kinds for rooms 64 to 119, the end of the table at $3591."
  },
  {
   "address": 13833,
   "type": "line",
   "text": "Map number for each room kind."
  },
  {
   "address": 13850,
   "type": "line",
   "text": "Address of each room map."
  },
  {
   "address": 13851,
   "type": "line",
   "text": "High bytes of the room map addresses."
  },
  {
   "address": 13872,
   "type": "line",
   "text": "Room-number steps for the four exits, rotated as the player turns."
  },
  {
   "address": 13873,
   "type": "line",
   "text": "Room step for the right exit."
  },
  {
   "address": 13874,
   "type": "line",
   "text": "Room step for the up exit."
  },
  {
   "address": 13875,
   "type": "line",
   "text": "Room step for the down exit."
  },
  {
   "address": 13876,
   "type": "line",
   "text": "Draws the room's objects (trees, huts, the bunker) from its list at $36D1: shape, then screen address, ending with $FF."
  },
  {
   "address": 13956,
   "type": "line",
   "text": "Position in the room's shape list."
  },
  {
   "address": 13957,
   "type": "line",
   "text": "The kind of the room whose shapes are drawn; the shape lists are kept per kind."
  },
  {
   "address": 13958,
   "type": "line",
   "text": "Draws one shape from $37C0 at the address given, row by row ($FE ends a row, $FF the shape), colouring each character from $3C93."
  },
  {
   "address": 13973,
   "type": "line",
   "text": "Self-modified: low byte of the shape's screen address."
  },
  {
   "address": 13974,
   "type": "line",
   "text": "Tests the shape byte for row end $FE and shape end $FF."
  },
  {
   "address": 13984,
   "type": "line",
   "text": "Self-modified: low byte of the shape's row on screen."
  },
  {
   "address": 13985,
   "type": "line",
   "text": "Self-modified high byte, then colours the character from $3C93; $36AF steps to the next row."
  },
  {
   "address": 14031,
   "type": "line",
   "text": "Characters drawn on the shape's row."
  },
  {
   "address": 14032,
   "type": "line",
   "text": "The character being coloured."
  },
  {
   "address": 14033,
   "type": "line",
   "text": "Address of each room kind's list of shapes, two bytes per kind: shape number and screen address, three bytes an entry, ending with $FF."
  },
  {
   "address": 14034,
   "type": "line",
   "text": "High bytes of the addresses in that table, read beside it as one list per room kind."
  },
  {
   "address": 14098,
   "type": "line",
   "text": "More of the room kinds' shape lists: shape number and screen address, three bytes an entry, $FF at the end of each list."
  },
  {
   "address": 14240,
   "type": "line",
   "text": "Address of each shape."
  },
  {
   "address": 14241,
   "type": "line",
   "text": "High bytes of the shape addresses."
  },
  {
   "address": 14272,
   "type": "line",
   "text": "The shapes' characters."
  },
  {
   "address": 14336,
   "type": "line",
   "text": "More of the shapes' characters, rows ended by $FE and shapes by $FF."
  },
  {
   "address": 14532,
   "type": "line",
   "text": "Copies the drawn room from $4400 to the shown screen at $4000, with colours from $3C93."
  },
  {
   "address": 14597,
   "type": "line",
   "text": "Lights the panel's compass arrows for the exits open from this room."
  },
  {
   "address": 14610,
   "type": "line",
   "text": "Picks the left arrow's characters at $39D8."
  },
  {
   "address": 14623,
   "type": "line",
   "text": "Picks the right arrow's characters at $3A09."
  },
  {
   "address": 14636,
   "type": "line",
   "text": "Picks the down arrow's characters at $3A3A."
  },
  {
   "address": 14664,
   "type": "line",
   "text": "Self-modified: low byte of the arrow's characters."
  },
  {
   "address": 14665,
   "type": "line",
   "text": "Self-modified: high byte of the arrow's characters."
  },
  {
   "address": 14667,
   "type": "line",
   "text": "Self-modified: low byte of the arrow's place on the panel."
  },
  {
   "address": 14668,
   "type": "line",
   "text": "Self-modified high byte, then steps on seven characters and one screen row for seven rows."
  },
  {
   "address": 14710,
   "type": "line",
   "text": "The compass with no arrow lit, seven rows of seven characters like the arrows after it; draw_compass ($3905) picks only the four arrows."
  },
  {
   "address": 14759,
   "type": "line",
   "text": "The up arrow's characters and the other arrows after it."
  },
  {
   "address": 14823,
   "type": "line",
   "text": "The arrows' characters, continued: the rest of the left arrow from $39D8, the right arrow from $3A09 and the down arrow from $3A3A."
  },
  {
   "address": 14955,
   "type": "line",
   "text": "Steps the score digit at $02E6 and carries through $02E5, $02E4 and $02E3 into add_100; nothing calls this entry."
  },
  {
   "address": 15015,
   "type": "line",
   "text": "Adds 100 to the score, carrying through the digits at $02E2, $02E1 and $02E0, then redraws it."
  },
  {
   "address": 15045,
   "type": "line",
   "text": "Carries into the thousands digit at $02E0."
  },
  {
   "address": 15060,
   "type": "line",
   "text": "Draws the six score digits from $02E0 on the panel at $42F0."
  },
  {
   "address": 15080,
   "type": "line",
   "text": "Takes one round from the ammunition count at $3B15 and redraws it."
  },
  {
   "address": 15125,
   "type": "line",
   "text": "Rounds of ammunition left."
  },
  {
   "address": 15126,
   "type": "line",
   "text": "Counts frames between rounds being used."
  },
  {
   "address": 15127,
   "type": "line",
   "text": "The player is hit: morale drops and a wound mark is drawn through $3B56."
  },
  {
   "address": 15190,
   "type": "line",
   "text": "Draws one wound mark on the panel."
  },
  {
   "address": 15191,
   "type": "line",
   "text": "Where each wound mark goes on the panel."
  },
  {
   "address": 15192,
   "type": "line",
   "text": "The wound marks' characters."
  },
  {
   "address": 15214,
   "type": "line",
   "text": "Draws the morale bar from the value in $3BB7."
  },
  {
   "address": 15287,
   "type": "line",
   "text": "The player's morale."
  },
  {
   "address": 15289,
   "type": "line",
   "text": "Bit masks for the morale bar."
  },
  {
   "address": 15298,
   "type": "line",
   "text": "Draws the status panel under the play area."
  },
  {
   "address": 15385,
   "type": "line",
   "text": "The panel's first row."
  },
  {
   "address": 15392,
   "type": "line",
   "text": "The panel's second row."
  },
  {
   "address": 15399,
   "type": "line",
   "text": "The panel's third row."
  },
  {
   "address": 15406,
   "type": "line",
   "text": "The panel's fourth row."
  },
  {
   "address": 15413,
   "type": "line",
   "text": "The panel's characters."
  },
  {
   "address": 15420,
   "type": "line",
   "text": "An unused routine that works out the screen address under the point $039E,$039F into $2C/$2D: a row for every eight lines below $28 and a column for every eight pixels right of $14."
  },
  {
   "address": 15477,
   "type": "line",
   "text": "The screen-address routine, continued."
  },
  {
   "address": 15507,
   "type": "line",
   "text": "The colour of each character in the jungle charset."
  },
  {
   "address": 15571,
   "type": "line",
   "text": "Colours of characters $40 to $FF of the jungle charset."
  },
  {
   "address": 15762,
   "type": "line",
   "text": "Sprite MSB bits."
  },
  {
   "address": 15763,
   "type": "line",
   "text": "Sprite masks."
  },
  {
   "address": 15767,
   "type": "line",
   "text": "Copies the character set from $A000 to $4800, where the screen reads it."
  },
  {
   "address": 15792,
   "type": "line",
   "text": "Self-modified low byte of the source when the charset is copied again for the end screens."
  },
  {
   "address": 15793,
   "type": "line",
   "text": "Self-modified page of that source, stepped after each page."
  },
  {
   "address": 15795,
   "type": "line",
   "text": "Self-modified low byte of that copy's destination."
  },
  {
   "address": 15796,
   "type": "line",
   "text": "Self-modified: high byte of the charset destination, then the eight-page loop."
  },
  {
   "address": 15810,
   "type": "line",
   "text": "Loads LAY1 through the KERNAL when the jungle is over: with the ROMs switched in, it copies the KERNAL's own vectors from $FD30 back to $0314 first."
  },
  {
   "address": 15911,
   "type": "line",
   "text": "File name LAY1."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "The charset the screen shows, copied from $A800 for the jungle and from $C800 for the end screens."
  },
  {
   "address": 18688,
   "type": "line",
   "text": "The second page of that charset."
  },
  {
   "address": 18872,
   "type": "line",
   "text": "The morale bar's character."
  },
  {
   "address": 18873,
   "type": "line",
   "text": "The morale bar's characters, redrawn by $3B6E."
  },
  {
   "address": 18944,
   "type": "line",
   "text": "The third page of the charset."
  },
  {
   "address": 19200,
   "type": "line",
   "text": "The fourth page."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "The upper half of the charset the screen shows."
  },
  {
   "address": 19712,
   "type": "line",
   "text": "The sixth page."
  },
  {
   "address": 19968,
   "type": "line",
   "text": "The seventh page."
  },
  {
   "address": 20224,
   "type": "line",
   "text": "The eighth page."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Sprite shapes $40-$4F of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "Sprite shapes $50-$5F of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "Sprite shapes $60-$6F of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "Sprite shapes $70-$7F of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "Sprite shapes $80-$8F of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "Sprite shapes $90-$9F of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 26624,
   "type": "line",
   "text": "Sprite shapes $A0-$AF of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 27648,
   "type": "line",
   "text": "Sprite shapes $B0-$BF of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 28672,
   "type": "line",
   "text": "Sprite shapes $C0-$CF of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 29696,
   "type": "line",
   "text": "Sprite shapes $D0-$DF of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "Sprite shapes $E0-$EF of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "Sprite shapes $F0-$FF of the video bank at $4000, 64 bytes each: the soldier, the enemies, Barnes, shots and explosions."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "Room map 1 (map 0 points here too): 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 33520,
   "type": "line",
   "text": "Room map 2: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 34272,
   "type": "line",
   "text": "Room map 3: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 35024,
   "type": "line",
   "text": "Room map 4: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 35776,
   "type": "line",
   "text": "Room map 5: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 36528,
   "type": "line",
   "text": "Room map 6: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 37280,
   "type": "line",
   "text": "Room map 7: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 38032,
   "type": "line",
   "text": "Room map 8: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 38784,
   "type": "line",
   "text": "Room map 9: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 39536,
   "type": "line",
   "text": "Room map 10: 25 rows of 30 characters, drawn by $3543 for the room kinds that $3609 gives it."
  },
  {
   "address": 39936,
   "type": "line",
   "text": "Room map 10 continues to $9D5F."
  },
  {
   "address": 40288,
   "type": "line",
   "text": "Bytes after the last room map; no reader found among the room routines."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "The title's charset, copied by $3D97."
  },
  {
   "address": 41984,
   "type": "line",
   "text": "The upper half of the title charset."
  },
  {
   "address": 43008,
   "type": "line",
   "text": "The jungle's charset, copied by $1B87."
  },
  {
   "address": 44032,
   "type": "line",
   "text": "The upper half of the jungle charset."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "Silences all three SID voices."
  },
  {
   "address": 49174,
   "type": "line",
   "text": "Runs one tick of sound: the music ($E3A8) when $C023 is non-zero, otherwise the effects ($F6C1)."
  },
  {
   "address": 49187,
   "type": "line",
   "text": "Music on (non-zero) or the sound effects (zero), for $C016."
  },
  {
   "address": 49188,
   "type": "line",
   "text": "Resets the game for a new attempt."
  },
  {
   "address": 49240,
   "type": "line",
   "text": "A zero byte between two routines, which nothing reads."
  },
  {
   "address": 49241,
   "type": "line",
   "text": "Checks the quit key."
  },
  {
   "address": 49258,
   "type": "line",
   "text": "Shows the end screen chosen by $C08D."
  },
  {
   "address": 49293,
   "type": "line",
   "text": "Which end screen: 2 title, 1 one more chance, 0 platoon destroyed, any other value the discharge."
  },
  {
   "address": 49294,
   "type": "line",
   "text": "Counts frames on the title."
  },
  {
   "address": 49295,
   "type": "line",
   "text": "The title: prints the two lines from $C388 and $C365, then waits at $C23D."
  },
  {
   "address": 49334,
   "type": "line",
   "text": "\"You didn't make it... one more chance\"."
  },
  {
   "address": 49425,
   "type": "line",
   "text": "\"Platoon destroyed\", then loads LAY1 again."
  },
  {
   "address": 49520,
   "type": "line",
   "text": "\"You made it... honourable discharge\": scores 30,000 and goes on to the name entry at $C25E."
  },
  {
   "address": 49708,
   "type": "line",
   "text": "The colour of the line being drawn."
  },
  {
   "address": 49709,
   "type": "line",
   "text": "Counts the lines drawn."
  },
  {
   "address": 49710,
   "type": "line",
   "text": "Colours one line of 21 characters with the colour after $C22C."
  },
  {
   "address": 49725,
   "type": "line",
   "text": "Waits for fire to be released and pressed again, playing the tune each frame, then starts the jungle at $1B5D."
  },
  {
   "address": 49758,
   "type": "line",
   "text": "The achievement and name entry screen, using the charset copied from $C800."
  },
  {
   "address": 50021,
   "type": "line",
   "text": "Texts of the end screens and the title."
  },
  {
   "address": 50056,
   "type": "line",
   "text": "Title text, first line."
  },
  {
   "address": 50091,
   "type": "line",
   "text": "End-screen text shared by two endings."
  },
  {
   "address": 50128,
   "type": "line",
   "text": "End-screen text, line two of \"one more chance\"."
  },
  {
   "address": 50168,
   "type": "line",
   "text": "End-screen text, line three of \"one more chance\"."
  },
  {
   "address": 50208,
   "type": "line",
   "text": "End-screen text, line four of \"one more chance\"."
  },
  {
   "address": 50247,
   "type": "line",
   "text": "End-screen text, line five of \"one more chance\"."
  },
  {
   "address": 50286,
   "type": "line",
   "text": "End-screen text, line two of \"platoon destroyed\"."
  },
  {
   "address": 50327,
   "type": "line",
   "text": "End-screen text shared by \"platoon destroyed\" and the discharge."
  },
  {
   "address": 50368,
   "type": "line",
   "text": "End-screen text, line four of \"platoon destroyed\"."
  },
  {
   "address": 50408,
   "type": "line",
   "text": "Discharge text, line one."
  },
  {
   "address": 50448,
   "type": "line",
   "text": "Discharge text, the last line."
  },
  {
   "address": 50488,
   "type": "line",
   "text": "Discharge text, line two."
  },
  {
   "address": 50527,
   "type": "line",
   "text": "Discharge text, line three."
  },
  {
   "address": 50566,
   "type": "line",
   "text": "Discharge text, line four."
  },
  {
   "address": 50605,
   "type": "line",
   "text": "Discharge text, line five."
  },
  {
   "address": 50644,
   "type": "line",
   "text": "Discharge text, line six."
  },
  {
   "address": 50683,
   "type": "line",
   "text": "Discharge text, line seven."
  },
  {
   "address": 50725,
   "type": "line",
   "text": "An empty routine called after the jungle's charset copy."
  },
  {
   "address": 51200,
   "type": "line",
   "text": "The end screens' charset, copied to $4800 by $C295."
  },
  {
   "address": 51456,
   "type": "line",
   "text": "Its second page."
  },
  {
   "address": 51712,
   "type": "line",
   "text": "Its third page."
  },
  {
   "address": 51968,
   "type": "line",
   "text": "Its fourth page."
  },
  {
   "address": 52224,
   "type": "line",
   "text": "Its fifth page."
  },
  {
   "address": 52480,
   "type": "line",
   "text": "Its sixth page."
  },
  {
   "address": 52736,
   "type": "line",
   "text": "Its seventh page."
  },
  {
   "address": 52992,
   "type": "line",
   "text": "Its eighth page."
  },
  {
   "address": 53224,
   "type": "line",
   "text": "The last characters of the title charset at $4800, bytes $CFE8-$CFFF."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "Sprite shapes in the video bank (frames $40-$FF): the crosshair, the hand, the attackers, the enemies, and the panel icons, bytes $D000-$53FF."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Music command: sets the voice's waveform table from the pattern pointer lists $E673 and $E6B9."
  },
  {
   "address": 57360,
   "type": "line",
   "text": "Music command: sets the voice's pitch table, the vibrato or slide, from the same lists."
  },
  {
   "address": 57376,
   "type": "line",
   "text": "Music command: pushes a repeat count and its return point."
  },
  {
   "address": 57395,
   "type": "line",
   "text": "Adds one to the voice's return depth before the return below."
  },
  {
   "address": 57398,
   "type": "line",
   "text": "Music command: ends a pattern and returns to the caller, or repeats it while its count lasts."
  },
  {
   "address": 57454,
   "type": "line",
   "text": "Leaves the return with the step after the call."
  },
  {
   "address": 57460,
   "type": "line",
   "text": "Music command: calls a pattern, keeping the return point."
  },
  {
   "address": 57487,
   "type": "line",
   "text": "Instrument command: sets attack/decay and sustain/release ($E0C5), then the waveform from the next byte; a waveform with the test bit ($08) writes it with and then without, and is remembered in $9F16 for the gate-off."
  },
  {
   "address": 57491,
   "type": "line",
   "text": "Instrument command: sets the waveform alone; a byte of 0 or 1 writes it doubled."
  },
  {
   "address": 57517,
   "type": "line",
   "text": "The waveform write for a byte of 0 or 1: the value is doubled first."
  },
  {
   "address": 57529,
   "type": "line",
   "text": "Instrument command: sets attack/decay and sustain/release from the next two bytes."
  },
  {
   "address": 57535,
   "type": "line",
   "text": "Instrument command: sets sustain/release alone."
  },
  {
   "address": 57541,
   "type": "line",
   "text": "Writes the next two bytes of the instrument to the voice's attack/decay and sustain/release registers."
  },
  {
   "address": 57553,
   "type": "line",
   "text": "Instrument command: sets attack/decay alone."
  },
  {
   "address": 57559,
   "type": "line",
   "text": "Instrument command: clears the voice's control register."
  },
  {
   "address": 57564,
   "type": "line",
   "text": "Instrument command that does nothing more than step back a byte."
  },
  {
   "address": 57566,
   "type": "line",
   "text": "Clears the music driver's state and every SID register $D400-$D417, then sets the volume to 15."
  },
  {
   "address": 57629,
   "type": "line",
   "text": "Special music command $1D: compares a byte of memory (the address from the pattern table entry named by the next byte) with a value the music gives, and jumps to another pattern when they are equal; the code it writes into $E130-$E134 does the test."
  },
  {
   "address": 57649,
   "type": "line",
   "text": "Self-modified operand of the compare in the command dispatch."
  },
  {
   "address": 57651,
   "type": "line",
   "text": "Self-modified high byte of that compare."
  },
  {
   "address": 57652,
   "type": "line",
   "text": "Goes on to the next command, or marks the pattern as needing five bytes."
  },
  {
   "address": 57664,
   "type": "line",
   "text": "Jumps on to $E081."
  },
  {
   "address": 57694,
   "type": "line",
   "text": "Music command: sets the pulse-width sweep for the voice."
  },
  {
   "address": 57740,
   "type": "line",
   "text": "Music command: adds to the voice's transpose through $E19A, then calls a pattern as $E07F does."
  },
  {
   "address": 57748,
   "type": "line",
   "text": "Music command: adds its value to the voice's transpose, then steps on three bytes."
  },
  {
   "address": 57754,
   "type": "line",
   "text": "Turns the command's value into a signed step, testing it against transpose_sign, and adds it to the voice's transpose in $EF03."
  },
  {
   "address": 57776,
   "type": "line",
   "text": "Music command: sets the voice's transpose."
  },
  {
   "address": 57784,
   "type": "line",
   "text": "Four music commands for the $3F escape that no tune in this load uses. This one calls the code whose address is the pattern entry its value names ($E673, $E6B9), through the call it rewrites at $E1C5."
  },
  {
   "address": 57803,
   "type": "line",
   "text": "Stores its value in the voice's $EF17 and sets bit 4 of its flags at $EF06."
  },
  {
   "address": 57816,
   "type": "line",
   "text": "Turns the filter on for the voice: sets bit 3 of its flags, routes it through the filter at full resonance ($E57F), and puts $A9 at $E382 so that the filter sweep runs."
  },
  {
   "address": 57836,
   "type": "line",
   "text": "Turns the filter off: clears bit 3, takes the voices out of the filter, and puts $60, an rts, at $E382."
  },
  {
   "address": 57869,
   "type": "line",
   "text": "Saves the current pattern pointer plus A on the voice's return stack."
  },
  {
   "address": 57890,
   "type": "line",
   "text": "Starts tune Y: points the three voices at their sequences from $E655, sets their speed and clears their state."
  },
  {
   "address": 57989,
   "type": "line",
   "text": "Counts down the voice's note length; when it ends, reads the next note or command."
  },
  {
   "address": 58004,
   "type": "line",
   "text": "Reads the next byte of the pattern: below $3C (after masking the top two bits) a note; $3C a rest; $3D and $3E commands handled through the low bytes at $E63F in the page at $E000; $3F a special command through the next byte as a low byte in the page at $E100."
  },
  {
   "address": 58045,
   "type": "line",
   "text": "Reads a command byte and its argument and dispatches through $E11D."
  },
  {
   "address": 58058,
   "type": "line",
   "text": "Self-modified: the command's argument; then steps the pattern pointer and reads the note's length."
  },
  {
   "address": 58134,
   "type": "line",
   "text": "Starts the note: restarts the effect tables the voice's flags in $EF06 ask for and sets its pitch from $E583/$E5E1."
  },
  {
   "address": 58242,
   "type": "line",
   "text": "An rts while the filter is off. The command at $E1D8 makes it lda #voice, and the code after it then starts the filter sweep for that voice when the voice plays a note with flag 8."
  },
  {
   "address": 58243,
   "type": "line",
   "text": "Operand of the filter routine's lda #: the voice being filtered, or 3 for none; written by $E1FD."
  },
  {
   "address": 58244,
   "type": "line",
   "text": "The rest of the filter routine at $E382: for the voice it names, when that voice is reading its pattern and the note has flag 8, starts the sweep from the values $E143 and $E14C stored."
  },
  {
   "address": 58262,
   "type": "line",
   "text": "Operand of the lda #$DD at $E395, written by $E14C: the sweep table's low byte."
  },
  {
   "address": 58266,
   "type": "line",
   "text": "Operand of the lda #$DD at $E399, the sweep table's high byte."
  },
  {
   "address": 58270,
   "type": "line",
   "text": "Operand of the lda #$DD at $E39D, written by $E143."
  },
  {
   "address": 58274,
   "type": "line",
   "text": "Writes the filter sweep's start value to $E4ED."
  },
  {
   "address": 58275,
   "type": "line",
   "text": "Operand of that lda, the sweep's start, written by the filter command."
  },
  {
   "address": 58280,
   "type": "line",
   "text": "The music's per-frame step: ticks one voice's notes each frame in turn, then runs every voice's effects."
  },
  {
   "address": 58347,
   "type": "line",
   "text": "Which voice reads its notes this frame."
  },
  {
   "address": 58348,
   "type": "line",
   "text": "Steps the voice's pitch table, following its $4C jumps, and writes the frequency to the SID."
  },
  {
   "address": 58445,
   "type": "line",
   "text": "Steps the voice's pulse table, following its $4C jumps, and writes the pulse width to the SID."
  },
  {
   "address": 58542,
   "type": "line",
   "text": "83 bytes of a filter sweep (zero page $88/$89, $8A), with its operands at $E4DD and $E4DA set by $E382; nothing in this load calls it, so the sweep never runs."
  },
  {
   "address": 58589,
   "type": "line",
   "text": "Operand inside the unused sweep at $E4AE, written by $E39F."
  },
  {
   "address": 58605,
   "type": "line",
   "text": "Bytes of the filter sweep after its self-modified operand; no tune in this load turns the filter on, so they never run here."
  },
  {
   "address": 58625,
   "type": "line",
   "text": "Releases the gate near the note's end and steps the waveform table, whose commands come from $E572."
  },
  {
   "address": 58712,
   "type": "line",
   "text": "Self-modified call target for the waveform command, then the step's length."
  },
  {
   "address": 58738,
   "type": "line",
   "text": "Low bytes of the instrument command handlers in the page at $E000: $E093, $E0B9, $E08F, $E0D7, $E0D1, $E0BF, $E0DC."
  },
  {
   "address": 58745,
   "type": "line",
   "text": "The SID register offset of each voice, 0, 7 and 14."
  },
  {
   "address": 58748,
   "type": "line",
   "text": "The offset of each voice's workspace from $EF00, 0, 42 and 84; then the filter routing values $F1, $F2 and $F4 at $E57F."
  },
  {
   "address": 58751,
   "type": "line",
   "text": "The values for $D417 that put voice 1, 2 or 3 through the filter at full resonance: $F1, $F2 and $F4."
  },
  {
   "address": 58754,
   "type": "line",
   "text": "The bit tested by $E19A for a negative relative transpose, $40."
  },
  {
   "address": 58755,
   "type": "line",
   "text": "Low bytes of the SID frequencies of the notes, 94 of them."
  },
  {
   "address": 58849,
   "type": "line",
   "text": "High bytes of the note frequencies."
  },
  {
   "address": 58943,
   "type": "line",
   "text": "Low bytes of the music command handlers in the page at $E000: $E000, $E010, $E06E, $E020, $E074, $E033, $E046 and $E05B."
  },
  {
   "address": 58951,
   "type": "line",
   "text": "What $E0DE points every voice at: a pattern that only waits, a silent instrument at $E64C and a still frequency table at $E64F."
  },
  {
   "address": 58963,
   "type": "line",
   "text": "The last bytes of the tune table."
  },
  {
   "address": 58965,
   "type": "line",
   "text": "Each tune's three sequence addresses."
  },
  {
   "address": 58966,
   "type": "line",
   "text": "Each tune's speeds."
  },
  {
   "address": 58995,
   "type": "line",
   "text": "Low bytes of the pattern addresses."
  },
  {
   "address": 59059,
   "type": "line",
   "text": "The last entries of the pattern address list."
  },
  {
   "address": 59065,
   "type": "line",
   "text": "High bytes of the pattern addresses."
  },
  {
   "address": 59129,
   "type": "line",
   "text": "The last entries of the high bytes."
  },
  {
   "address": 59134,
   "type": "line",
   "text": "Low bytes of the waveform tables."
  },
  {
   "address": 59135,
   "type": "line",
   "text": "High bytes of the waveform tables and the tables themselves."
  },
  {
   "address": 59199,
   "type": "line",
   "text": "The tunes' sequences and patterns: notes, lengths and commands, read through $E655 and the lists at $E673 and $E6B9."
  },
  {
   "address": 60223,
   "type": "line",
   "text": "More of the tunes' patterns and the waveform and pitch tables."
  },
  {
   "address": 61086,
   "type": "line",
   "text": "Note lengths for the tune's speed, rebuilt by $E222 when a tune starts."
  },
  {
   "address": 61440,
   "type": "line",
   "text": "Starts the heartbeat sample from $F100 on the NMI, played faster the more wounds the player has ($F04D/$F051)."
  },
  {
   "address": 61494,
   "type": "line",
   "text": "Self-modified: low byte of the sample rate."
  },
  {
   "address": 61501,
   "type": "line",
   "text": "Self-modified: high byte of the sample rate."
  },
  {
   "address": 61517,
   "type": "line",
   "text": "Heartbeat sample rate, low byte, for each wound count."
  },
  {
   "address": 61521,
   "type": "line",
   "text": "Heartbeat sample rate, high byte, for each wound count."
  },
  {
   "address": 61526,
   "type": "line",
   "text": "An NMI that is not CIA 2's (RESTORE) goes to $0108."
  },
  {
   "address": 61529,
   "type": "line",
   "text": "Sample NMI: plays the high four bits of the next byte and points the next NMI at $F090; stops at a byte of $FF or the end of the page run."
  },
  {
   "address": 61584,
   "type": "line",
   "text": "Sample NMI: plays the low four bits of the byte and points the next NMI back at $F059."
  },
  {
   "address": 61644,
   "type": "line",
   "text": "Set while the heartbeat plays, and the bytes after it."
  },
  {
   "address": 61696,
   "type": "line",
   "text": "The digitised sample, two 4-bit values a byte (high first), ending in $FF at $F5BE."
  },
  {
   "address": 62512,
   "type": "line",
   "text": "$3DAE reads the KERNAL ROM's vector table at this address, with the ROM banked in; the RAM here is part of the sample."
  },
  {
   "address": 62720,
   "type": "line",
   "text": "The end of the sample that starts at $F100."
  },
  {
   "address": 62976,
   "type": "line",
   "text": "Starts sound effect A on voice X: copies its envelope and pulse from $F87A, $F88C and $F89E."
  },
  {
   "address": 63012,
   "type": "line",
   "text": "The effect being started."
  },
  {
   "address": 63013,
   "type": "line",
   "text": "First frame of an effect: loads its eight settings from $F7EA and starts the voice."
  },
  {
   "address": 63160,
   "type": "line",
   "text": "Each voice's attack and decay."
  },
  {
   "address": 63163,
   "type": "line",
   "text": "Each voice's sustain and release."
  },
  {
   "address": 63166,
   "type": "line",
   "text": "Each voice's pulse width."
  },
  {
   "address": 63169,
   "type": "line",
   "text": "Each frame runs the effects playing on the three voices."
  },
  {
   "address": 63191,
   "type": "line",
   "text": "Steps one effect: holds, slides the pitch up or down, or toggles it, and repeats or ends it."
  },
  {
   "address": 63382,
   "type": "line",
   "text": "Silences the SID ($D401-$D412) and clears the repeat flags at $F7E8 and $F7E9; nothing in this load calls it."
  },
  {
   "address": 63401,
   "type": "line",
   "text": "The effect number waiting to start on each voice, 0 for none."
  },
  {
   "address": 63404,
   "type": "line",
   "text": "The effects' working values, three bytes each (one per voice): current frequency, start frequency, steps, sweep type, step size, waveform, repeats, running flag, and the voice's SID offset at $F7DE (0, 7, 14)."
  },
  {
   "address": 63407,
   "type": "line",
   "text": "Current frequency high byte of each voice's effect."
  },
  {
   "address": 63410,
   "type": "line",
   "text": "Start frequency low byte of each voice's effect, for a repeat."
  },
  {
   "address": 63413,
   "type": "line",
   "text": "Start frequency high byte, for a repeat."
  },
  {
   "address": 63416,
   "type": "line",
   "text": "Steps left in each voice's effect."
  },
  {
   "address": 63419,
   "type": "line",
   "text": "The effect's length in steps, reloaded on a repeat."
  },
  {
   "address": 63422,
   "type": "line",
   "text": "The sweep type of each voice's effect: 0 or 8 none, 1 up, 2 down, other values alternate between two frequencies."
  },
  {
   "address": 63425,
   "type": "line",
   "text": "Frequency step low byte of each voice's effect."
  },
  {
   "address": 63428,
   "type": "line",
   "text": "Frequency step high byte."
  },
  {
   "address": 63431,
   "type": "line",
   "text": "Waveform of each voice's effect."
  },
  {
   "address": 63434,
   "type": "line",
   "text": "Repeats left of each voice's effect."
  },
  {
   "address": 63440,
   "type": "line",
   "text": "For the alternating sweep, which of the two frequencies plays."
  },
  {
   "address": 63443,
   "type": "line",
   "text": "1 while each voice's effect runs."
  },
  {
   "address": 63446,
   "type": "line",
   "text": "The effect number running on each voice."
  },
  {
   "address": 63449,
   "type": "line",
   "text": "Eight times the effect number, its offset in $F7EA."
  },
  {
   "address": 63454,
   "type": "line",
   "text": "Each voice's SID register offset for the sound effects: 0, 7 and 14."
  },
  {
   "address": 63457,
   "type": "line",
   "text": "Sustain/release of each voice's effect, for a repeat."
  },
  {
   "address": 63460,
   "type": "line",
   "text": "Attack/decay of each voice's effect, for a repeat."
  },
  {
   "address": 63463,
   "type": "line",
   "text": "$FF when the effect repeats for ever."
  },
  {
   "address": 63466,
   "type": "line",
   "text": "The sound effects, 8 bytes each: frequency, step, sweep type, length and waveform; $F7F2 on are effects 1 to 17."
  },
  {
   "address": 63467,
   "type": "line",
   "text": "Effect 0's start frequency, high byte; the other fields follow in the same order for each effect."
  },
  {
   "address": 63468,
   "type": "line",
   "text": "Effect 0's step, low byte."
  },
  {
   "address": 63469,
   "type": "line",
   "text": "Effect 0's step, high byte."
  },
  {
   "address": 63470,
   "type": "line",
   "text": "Effect 0's sweep type."
  },
  {
   "address": 63471,
   "type": "line",
   "text": "Effect 0's length in steps."
  },
  {
   "address": 63472,
   "type": "line",
   "text": "Effect 0's waveform."
  },
  {
   "address": 63473,
   "type": "line",
   "text": "Repeats of effect 0, the last byte of its entry; the other effects follow."
  },
  {
   "address": 63610,
   "type": "line",
   "text": "Attack and decay for each effect."
  },
  {
   "address": 63628,
   "type": "line",
   "text": "Sustain and release for each effect."
  },
  {
   "address": 63646,
   "type": "line",
   "text": "Pulse width for each effect, then the effect settings."
  },
  {
   "address": 63744,
   "type": "line",
   "text": "Colour for each character of the end picture."
  },
  {
   "address": 64000,
   "type": "line",
   "text": "The end picture's characters, first quarter."
  },
  {
   "address": 64250,
   "type": "line",
   "text": "Second quarter."
  },
  {
   "address": 64500,
   "type": "line",
   "text": "Third quarter."
  },
  {
   "address": 64750,
   "type": "line",
   "text": "Fourth quarter."
  }
 ]
}