{
 "schema": 1,
 "platform": "c64",
 "game": "platoon",
 "part": "load3",
 "build": "PAL disk, side 1 OVL1 at its hand-over to $0400",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    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"
   ],
   [
    2308,
    2408,
    "101 bytes of leftover data between the walking tables and $0969, never read"
   ],
   [
    9753,
    9817,
    "65 bytes of code nothing calls, left from an earlier build"
   ],
   [
    14103,
    14843,
    "741 bytes of leftover code and data from an earlier build, never run"
   ],
   [
    14882,
    14922,
    "41 bytes of code nothing calls"
   ],
   [
    15361,
    15419,
    "59 bytes of code nothing calls"
   ],
   [
    15699,
    15816,
    "an older score routine, never called"
   ],
   [
    15819,
    15851,
    "33 bytes of an older copy of the score routine, never called"
   ],
   [
    16004,
    16010,
    "seven bytes of code nothing reaches"
   ],
   [
    16163,
    16177,
    "15 bytes of code nothing calls"
   ],
   [
    16251,
    16383,
    "leftover bytes after the morale bar code, never read"
   ],
   [
    16384,
    18431,
    "the screen, its sprite pointers and the panel, drawn by $13B0, $1519, $C00B and the message bar"
   ],
   [
    45568,
    45825,
    "the texts and leftover bytes of an older end screen, read only by the dead code at $FFA1"
   ],
   [
    49836,
    49838,
    "a jump nothing reaches"
   ],
   [
    52992,
    53247,
    "the music driver's workspace, zero at the hand-over and set by $E0DE before use"
   ],
   [
    65441,
    65465,
    "an older end-screen routine, never called"
   ],
   [
    65472,
    65529,
    "the rest of that routine and leftovers, never run"
   ]
  ],
  "extra": []
 },
 "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": 334,
   "type": "Code"
  },
  {
   "start": 335,
   "end": 338,
   "type": "Undefined"
  },
  {
   "start": 339,
   "end": 347,
   "type": "Code"
  },
  {
   "start": 348,
   "end": 412,
   "type": "Undefined"
  },
  {
   "start": 413,
   "end": 427,
   "type": "Code"
  },
  {
   "start": 428,
   "end": 1023,
   "type": "Undefined"
  },
  {
   "start": 1024,
   "end": 1823,
   "type": "Code"
  },
  {
   "start": 1824,
   "end": 1828,
   "type": "Undefined"
  },
  {
   "start": 1829,
   "end": 2118,
   "type": "Code"
  },
  {
   "start": 2119,
   "end": 2307,
   "type": "Byte"
  },
  {
   "start": 2308,
   "end": 2506,
   "type": "Code"
  },
  {
   "start": 2507,
   "end": 2514,
   "type": "Undefined"
  },
  {
   "start": 2515,
   "end": 2896,
   "type": "Code"
  },
  {
   "start": 2897,
   "end": 2899,
   "type": "Undefined"
  },
  {
   "start": 2900,
   "end": 3204,
   "type": "Code"
  },
  {
   "start": 3205,
   "end": 3205,
   "type": "Byte"
  },
  {
   "start": 3206,
   "end": 3409,
   "type": "Code"
  },
  {
   "start": 3410,
   "end": 3414,
   "type": "Undefined"
  },
  {
   "start": 3415,
   "end": 3767,
   "type": "Code"
  },
  {
   "start": 3768,
   "end": 3769,
   "type": "Byte"
  },
  {
   "start": 3770,
   "end": 3801,
   "type": "Code"
  },
  {
   "start": 3802,
   "end": 3802,
   "type": "Byte"
  },
  {
   "start": 3803,
   "end": 3812,
   "type": "Undefined"
  },
  {
   "start": 3813,
   "end": 3867,
   "type": "Code"
  },
  {
   "start": 3868,
   "end": 3880,
   "type": "Undefined"
  },
  {
   "start": 3881,
   "end": 4047,
   "type": "Code"
  },
  {
   "start": 4048,
   "end": 4048,
   "type": "Undefined"
  },
  {
   "start": 4049,
   "end": 4250,
   "type": "Code"
  },
  {
   "start": 4251,
   "end": 4255,
   "type": "Undefined"
  },
  {
   "start": 4256,
   "end": 4927,
   "type": "Code"
  },
  {
   "start": 4928,
   "end": 5039,
   "type": "Undefined"
  },
  {
   "start": 5040,
   "end": 5978,
   "type": "Code"
  },
  {
   "start": 5979,
   "end": 5980,
   "type": "Undefined"
  },
  {
   "start": 5981,
   "end": 6122,
   "type": "Code"
  },
  {
   "start": 6123,
   "end": 6688,
   "type": "Byte"
  },
  {
   "start": 6689,
   "end": 7507,
   "type": "Code"
  },
  {
   "start": 7508,
   "end": 7508,
   "type": "Undefined"
  },
  {
   "start": 7509,
   "end": 7545,
   "type": "Code"
  },
  {
   "start": 7546,
   "end": 7546,
   "type": "Undefined"
  },
  {
   "start": 7547,
   "end": 7755,
   "type": "Code"
  },
  {
   "start": 7756,
   "end": 7758,
   "type": "Undefined"
  },
  {
   "start": 7759,
   "end": 7875,
   "type": "Code"
  },
  {
   "start": 7876,
   "end": 7876,
   "type": "Byte"
  },
  {
   "start": 7877,
   "end": 7907,
   "type": "Code"
  },
  {
   "start": 7908,
   "end": 7987,
   "type": "Undefined"
  },
  {
   "start": 7988,
   "end": 8108,
   "type": "Code"
  },
  {
   "start": 8109,
   "end": 8113,
   "type": "Undefined"
  },
  {
   "start": 8114,
   "end": 8373,
   "type": "Code"
  },
  {
   "start": 8374,
   "end": 8375,
   "type": "Undefined"
  },
  {
   "start": 8376,
   "end": 8830,
   "type": "Code"
  },
  {
   "start": 8831,
   "end": 9062,
   "type": "Undefined"
  },
  {
   "start": 9063,
   "end": 9639,
   "type": "Code"
  },
  {
   "start": 9640,
   "end": 9640,
   "type": "Byte"
  },
  {
   "start": 9641,
   "end": 9701,
   "type": "Code"
  },
  {
   "start": 9702,
   "end": 9713,
   "type": "Undefined"
  },
  {
   "start": 9714,
   "end": 9752,
   "type": "Code"
  },
  {
   "start": 9753,
   "end": 9858,
   "type": "Undefined"
  },
  {
   "start": 9859,
   "end": 9934,
   "type": "Code"
  },
  {
   "start": 9935,
   "end": 9935,
   "type": "Byte"
  },
  {
   "start": 9936,
   "end": 10005,
   "type": "Code"
  },
  {
   "start": 10006,
   "end": 10009,
   "type": "Undefined"
  },
  {
   "start": 10010,
   "end": 10347,
   "type": "Code"
  },
  {
   "start": 10348,
   "end": 10355,
   "type": "Undefined"
  },
  {
   "start": 10356,
   "end": 10523,
   "type": "Code"
  },
  {
   "start": 10524,
   "end": 10575,
   "type": "Undefined"
  },
  {
   "start": 10576,
   "end": 10715,
   "type": "Code"
  },
  {
   "start": 10716,
   "end": 10718,
   "type": "Undefined"
  },
  {
   "start": 10719,
   "end": 10797,
   "type": "Code"
  },
  {
   "start": 10798,
   "end": 10798,
   "type": "Undefined"
  },
  {
   "start": 10799,
   "end": 10923,
   "type": "Code"
  },
  {
   "start": 10924,
   "end": 10924,
   "type": "Undefined"
  },
  {
   "start": 10925,
   "end": 11159,
   "type": "Code"
  },
  {
   "start": 11160,
   "end": 11160,
   "type": "Undefined"
  },
  {
   "start": 11161,
   "end": 11487,
   "type": "Code"
  },
  {
   "start": 11488,
   "end": 11580,
   "type": "Undefined"
  },
  {
   "start": 11581,
   "end": 11703,
   "type": "Code"
  },
  {
   "start": 11704,
   "end": 13709,
   "type": "Byte"
  },
  {
   "start": 13710,
   "end": 13713,
   "type": "Undefined"
  },
  {
   "start": 13714,
   "end": 14062,
   "type": "Byte"
  },
  {
   "start": 14063,
   "end": 14102,
   "type": "Code"
  },
  {
   "start": 14103,
   "end": 14843,
   "type": "Undefined"
  },
  {
   "start": 14844,
   "end": 14881,
   "type": "Code"
  },
  {
   "start": 14882,
   "end": 14922,
   "type": "Undefined"
  },
  {
   "start": 14923,
   "end": 15351,
   "type": "Code"
  },
  {
   "start": 15352,
   "end": 15419,
   "type": "Undefined"
  },
  {
   "start": 15420,
   "end": 15477,
   "type": "Code"
  },
  {
   "start": 15478,
   "end": 15495,
   "type": "Undefined"
  },
  {
   "start": 15496,
   "end": 15636,
   "type": "Code"
  },
  {
   "start": 15637,
   "end": 15637,
   "type": "Undefined"
  },
  {
   "start": 15638,
   "end": 15698,
   "type": "Code"
  },
  {
   "start": 15699,
   "end": 15851,
   "type": "Undefined"
  },
  {
   "start": 15852,
   "end": 16003,
   "type": "Code"
  },
  {
   "start": 16004,
   "end": 16010,
   "type": "Undefined"
  },
  {
   "start": 16011,
   "end": 16021,
   "type": "Code"
  },
  {
   "start": 16022,
   "end": 16024,
   "type": "Undefined"
  },
  {
   "start": 16025,
   "end": 16077,
   "type": "Code"
  },
  {
   "start": 16078,
   "end": 16079,
   "type": "Undefined"
  },
  {
   "start": 16080,
   "end": 16137,
   "type": "Code"
  },
  {
   "start": 16138,
   "end": 16148,
   "type": "Undefined"
  },
  {
   "start": 16149,
   "end": 16162,
   "type": "Code"
  },
  {
   "start": 16163,
   "end": 16177,
   "type": "Undefined"
  },
  {
   "start": 16178,
   "end": 16250,
   "type": "Code"
  },
  {
   "start": 16251,
   "end": 18431,
   "type": "Undefined"
  },
  {
   "start": 18432,
   "end": 39967,
   "type": "Byte"
  },
  {
   "start": 39968,
   "end": 40031,
   "type": "Undefined"
  },
  {
   "start": 40032,
   "end": 46290,
   "type": "Byte"
  },
  {
   "start": 46291,
   "end": 46359,
   "type": "Undefined"
  },
  {
   "start": 46360,
   "end": 46632,
   "type": "Byte"
  },
  {
   "start": 46633,
   "end": 46748,
   "type": "Code"
  },
  {
   "start": 46749,
   "end": 46760,
   "type": "Undefined"
  },
  {
   "start": 46761,
   "end": 46799,
   "type": "Code"
  },
  {
   "start": 46800,
   "end": 46801,
   "type": "Undefined"
  },
  {
   "start": 46802,
   "end": 46893,
   "type": "Code"
  },
  {
   "start": 46894,
   "end": 46894,
   "type": "Undefined"
  },
  {
   "start": 46895,
   "end": 47211,
   "type": "Code"
  },
  {
   "start": 47212,
   "end": 47674,
   "type": "Undefined"
  },
  {
   "start": 47675,
   "end": 48383,
   "type": "Byte"
  },
  {
   "start": 48384,
   "end": 48447,
   "type": "Undefined"
  },
  {
   "start": 48448,
   "end": 48639,
   "type": "Byte"
  },
  {
   "start": 48640,
   "end": 48703,
   "type": "Undefined"
  },
  {
   "start": 48704,
   "end": 48895,
   "type": "Byte"
  },
  {
   "start": 48896,
   "end": 48959,
   "type": "Undefined"
  },
  {
   "start": 48960,
   "end": 49151,
   "type": "Byte"
  },
  {
   "start": 49152,
   "end": 49162,
   "type": "Undefined"
  },
  {
   "start": 49163,
   "end": 49308,
   "type": "Code"
  },
  {
   "start": 49309,
   "end": 49358,
   "type": "Byte"
  },
  {
   "start": 49359,
   "end": 49594,
   "type": "Code"
  },
  {
   "start": 49595,
   "end": 49603,
   "type": "Undefined"
  },
  {
   "start": 49604,
   "end": 49735,
   "type": "Code"
  },
  {
   "start": 49736,
   "end": 49736,
   "type": "Undefined"
  },
  {
   "start": 49737,
   "end": 49835,
   "type": "Code"
  },
  {
   "start": 49836,
   "end": 49920,
   "type": "Undefined"
  },
  {
   "start": 49921,
   "end": 50311,
   "type": "Code"
  },
  {
   "start": 50312,
   "end": 52991,
   "type": "Byte"
  },
  {
   "start": 52992,
   "end": 53247,
   "type": "Undefined"
  },
  {
   "start": 53248,
   "end": 57343,
   "type": "Byte"
  },
  {
   "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": 58347,
   "type": "Code"
  },
  {
   "start": 58348,
   "end": 58348,
   "type": "Undefined"
  },
  {
   "start": 58349,
   "end": 58542,
   "type": "Code"
  },
  {
   "start": 58543,
   "end": 58625,
   "type": "Undefined"
  },
  {
   "start": 58626,
   "end": 58738,
   "type": "Code"
  },
  {
   "start": 58739,
   "end": 58965,
   "type": "Byte"
  },
  {
   "start": 58966,
   "end": 59059,
   "type": "Undefined"
  },
  {
   "start": 59060,
   "end": 59076,
   "type": "Byte"
  },
  {
   "start": 59077,
   "end": 59140,
   "type": "Undefined"
  },
  {
   "start": 59141,
   "end": 59156,
   "type": "Byte"
  },
  {
   "start": 59157,
   "end": 59221,
   "type": "Undefined"
  },
  {
   "start": 59222,
   "end": 60952,
   "type": "Byte"
  },
  {
   "start": 60953,
   "end": 60988,
   "type": "Code"
  },
  {
   "start": 60989,
   "end": 60989,
   "type": "Undefined"
  },
  {
   "start": 60990,
   "end": 61136,
   "type": "Code"
  },
  {
   "start": 61137,
   "end": 61145,
   "type": "Undefined"
  },
  {
   "start": 61146,
   "end": 61358,
   "type": "Code"
  },
  {
   "start": 61359,
   "end": 61380,
   "type": "Undefined"
  },
  {
   "start": 61381,
   "end": 61595,
   "type": "Byte"
  },
  {
   "start": 61596,
   "end": 61663,
   "type": "Code"
  },
  {
   "start": 61664,
   "end": 61672,
   "type": "Undefined"
  },
  {
   "start": 61673,
   "end": 61789,
   "type": "Code"
  },
  {
   "start": 61790,
   "end": 61791,
   "type": "Undefined"
  },
  {
   "start": 61792,
   "end": 64643,
   "type": "Byte"
  },
  {
   "start": 64644,
   "end": 65023,
   "type": "Undefined"
  },
  {
   "start": 65024,
   "end": 65440,
   "type": "Byte"
  },
  {
   "start": 65441,
   "end": 65519,
   "type": "Code"
  },
  {
   "start": 65520,
   "end": 65535,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "zpp_00",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2,
   "name": "zpa_02",
   "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": 48,
   "name": "zpa_30",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49,
   "name": "zpa_31",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50,
   "name": "zpa_32",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51,
   "name": "zpa_33",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 54,
   "name": "zpa_36",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55,
   "name": "zpa_37",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 56,
   "name": "zpa_38",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57,
   "name": "zpa_39",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 130,
   "name": "zpp_82",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 131,
   "name": "zpp_83",
   "type": "ZeroPagePointer",
   "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": 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": 324,
   "name": "s_0144",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 329,
   "name": "b_0149",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 339,
   "name": "b_0153",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 413,
   "name": "j_019D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 418,
   "name": "b_01A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 673,
   "name": "a_02A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 681,
   "name": "a_02A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 736,
   "name": "f_02E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 737,
   "name": "a_02E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 738,
   "name": "a_02E2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 739,
   "name": "a_02E3",
   "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": 940,
   "name": "a_03AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 941,
   "name": "a_03AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "tunnel_entry",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1180,
   "name": "b_049C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1222,
   "name": "tunnel_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1547,
   "name": "tunnel_main_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1579,
   "name": "b_062B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1594,
   "name": "b_063A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1615,
   "name": "b_064F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1626,
   "name": "b_065A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1679,
   "name": "b_068F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1696,
   "name": "b_06A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1717,
   "name": "b_06B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1739,
   "name": "b_06CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1794,
   "name": "b_0702",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1820,
   "name": "b_071C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1823,
   "name": "r_071F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1824,
   "name": "ambush_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1825,
   "name": "ambush_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1826,
   "name": "crosshair_target_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1827,
   "name": "crosshair_target_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1828,
   "name": "bob_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1829,
   "name": "tunnel_ambush",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1858,
   "name": "b_0742",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1884,
   "name": "b_075C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1895,
   "name": "b_0767",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1944,
   "name": "b_0798",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1949,
   "name": "j_079D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1956,
   "name": "b_07A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1985,
   "name": "b_07C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2002,
   "name": "b_07D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2041,
   "name": "j_07F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2079,
   "name": "r_081F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2080,
   "name": "j_0820",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2119,
   "name": "ambush_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2120,
   "name": "ambush_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2122,
   "name": "ambush_spots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2178,
   "name": "bob_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2267,
   "name": "bob_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2409,
   "name": "turn_to_open",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2479,
   "name": "b_09AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2507,
   "name": "attack_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2508,
   "name": "enemy_dead",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2509,
   "name": "map_arrow_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2510,
   "name": "idle_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2511,
   "name": "moved",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2512,
   "name": "facing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2513,
   "name": "frame_ready",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2514,
   "name": "step_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2515,
   "name": "joystick_idle",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 2544,
   "name": "r_09F0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2545,
   "name": "read_joystick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2597,
   "name": "b_0A25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2607,
   "name": "b_0A2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2617,
   "name": "b_0A39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2627,
   "name": "b_0A43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2648,
   "name": "b_0A58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2653,
   "name": "b_0A5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2712,
   "name": "b_0A98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2725,
   "name": "b_0AA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2784,
   "name": "b_0AE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2797,
   "name": "j_0AED",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2817,
   "name": "b_0B01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2830,
   "name": "j_0B0E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2858,
   "name": "b_0B2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2871,
   "name": "b_0B37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2881,
   "name": "b_0B41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2891,
   "name": "b_0B4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2896,
   "name": "r_0B50",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2897,
   "name": "fire_pressed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2898,
   "name": "crosshair_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2899,
   "name": "crosshair_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2900,
   "name": "b_0B54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2903,
   "name": "fire_in_room",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2931,
   "name": "b_0B73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3010,
   "name": "r_0BC2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3011,
   "name": "b_0BC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3030,
   "name": "check_object_box",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3065,
   "name": "b_0BF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3068,
   "name": "j_0BFC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3132,
   "name": "r_0C3C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3133,
   "name": "b_0C3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3146,
   "name": "b_0C4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3154,
   "name": "b_0C52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3159,
   "name": "take_object",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3187,
   "name": "b_0C73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3194,
   "name": "b_0C7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3206,
   "name": "b_0C86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3209,
   "name": "b_0C89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3229,
   "name": "b_0C9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3232,
   "name": "b_0CA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3245,
   "name": "b_0CAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3253,
   "name": "b_0CB5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3261,
   "name": "b_0CBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3266,
   "name": "b_0CC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3282,
   "name": "j_0CD2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3291,
   "name": "j_0CDB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3300,
   "name": "j_0CE4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3309,
   "name": "j_0CED",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3318,
   "name": "take_medical_kit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3343,
   "name": "b_0D0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3363,
   "name": "b_0D23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3383,
   "name": "j_0D37",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3397,
   "name": "b_0D45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3409,
   "name": "r_0D51",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3410,
   "name": "have_flares",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3411,
   "name": "have_flares2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3412,
   "name": "have_compass",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3413,
   "name": "box_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3414,
   "name": "object_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3415,
   "name": "next_object_box",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3469,
   "name": "b_0D8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3502,
   "name": "r_0DAE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3503,
   "name": "fire_in_tunnel",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3563,
   "name": "r_0DEB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3564,
   "name": "b_0DEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3613,
   "name": "b_0E1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3660,
   "name": "spray",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3688,
   "name": "b_0E68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3749,
   "name": "b_0EA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3767,
   "name": "r_0EB7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3770,
   "name": "scan_ahead",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3800,
   "name": "a_0ED8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3801,
   "name": "a_0ED9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3803,
   "name": "scan_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3804,
   "name": "f_0EDC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3813,
   "name": "view_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3849,
   "name": "a_0F09",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3850,
   "name": "a_0F0A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3867,
   "name": "r_0F1B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3868,
   "name": "a_0F1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3869,
   "name": "view_draw_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3870,
   "name": "f_0F1E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3879,
   "name": "in_water",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3880,
   "name": "was_in_water",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3881,
   "name": "r_0F29",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3882,
   "name": "step_west",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3909,
   "name": "b_0F45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3914,
   "name": "j_0F4A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3928,
   "name": "b_0F58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3940,
   "name": "b_0F64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3963,
   "name": "b_0F7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3972,
   "name": "b_0F84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3978,
   "name": "j_0F8A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3987,
   "name": "b_0F93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4002,
   "name": "b_0FA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4008,
   "name": "j_0FA8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4026,
   "name": "b_0FBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4041,
   "name": "b_0FC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4047,
   "name": "r_0FCF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4048,
   "name": "view_blocked",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4049,
   "name": "step_east",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4076,
   "name": "b_0FEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4081,
   "name": "j_0FF1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4095,
   "name": "b_0FFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4107,
   "name": "b_100B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4130,
   "name": "b_1022",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4139,
   "name": "b_102B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4145,
   "name": "j_1031",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4154,
   "name": "b_103A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4169,
   "name": "b_1049",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4175,
   "name": "j_104F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4193,
   "name": "b_1061",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4208,
   "name": "b_1070",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4214,
   "name": "r_1076",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4215,
   "name": "set_wall_ahead",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4224,
   "name": "set_water_ahead",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4233,
   "name": "set_passage_side1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4242,
   "name": "set_passage_side2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4251,
   "name": "wall_ahead",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4252,
   "name": "water_ahead",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4253,
   "name": "passage_side1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4254,
   "name": "passage_side2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4255,
   "name": "view_distance",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4256,
   "name": "step_north",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4272,
   "name": "b_10B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4275,
   "name": "b_10B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4288,
   "name": "b_10C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4293,
   "name": "j_10C5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4298,
   "name": "j_10CA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4328,
   "name": "b_10E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4333,
   "name": "b_10ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4358,
   "name": "b_1106",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4377,
   "name": "b_1119",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4383,
   "name": "j_111F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4385,
   "name": "a_1121",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4388,
   "name": "j_1124",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4402,
   "name": "b_1132",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4414,
   "name": "b_113E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4432,
   "name": "j_1150",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4446,
   "name": "b_115E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4458,
   "name": "b_116A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4476,
   "name": "r_117C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4477,
   "name": "map_row_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4491,
   "name": "step_south",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4507,
   "name": "b_119B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4510,
   "name": "b_119E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4523,
   "name": "b_11AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4528,
   "name": "j_11B0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4546,
   "name": "b_11C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4571,
   "name": "b_11DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4590,
   "name": "b_11EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4596,
   "name": "j_11F4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4601,
   "name": "j_11F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4615,
   "name": "b_1207",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4627,
   "name": "b_1213",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4645,
   "name": "j_1225",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4659,
   "name": "b_1233",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4671,
   "name": "b_123F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4689,
   "name": "r_1251",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4690,
   "name": "map_row_down",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 4704,
   "name": "draw_view",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4712,
   "name": "b_1268",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4731,
   "name": "b_127B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4747,
   "name": "b_128B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4750,
   "name": "j_128E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4761,
   "name": "b_1299",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4764,
   "name": "j_129C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4767,
   "name": "b_129F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4778,
   "name": "b_12AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4781,
   "name": "j_12AD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4792,
   "name": "b_12B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4795,
   "name": "j_12BB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4799,
   "name": "pick_left_wall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4812,
   "name": "pick_right_wall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4825,
   "name": "pick_left_passage",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4838,
   "name": "pick_right_passage",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4851,
   "name": "pick_left_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4864,
   "name": "pick_right_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4877,
   "name": "pick_left_end_passage",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4890,
   "name": "pick_right_end_passage",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4903,
   "name": "pick_water",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4928,
   "name": "view_pictures",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4929,
   "name": "f_1341",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4936,
   "name": "f_1348",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4937,
   "name": "f_1349",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4944,
   "name": "f_1350",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4945,
   "name": "f_1351",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4952,
   "name": "f_1358",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4953,
   "name": "f_1359",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4960,
   "name": "f_1360",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4961,
   "name": "f_1361",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4968,
   "name": "f_1368",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4969,
   "name": "f_1369",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4976,
   "name": "f_1370",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4977,
   "name": "f_1371",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4984,
   "name": "f_1378",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4985,
   "name": "f_1379",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4992,
   "name": "f_1380",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4993,
   "name": "f_1381",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5000,
   "name": "f_1388",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5001,
   "name": "f_1389",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5008,
   "name": "map_window_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5009,
   "name": "f_1391",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5026,
   "name": "f_13A2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5035,
   "name": "left_picture",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5036,
   "name": "a_13AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5037,
   "name": "right_picture",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5038,
   "name": "a_13AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5039,
   "name": "map_window",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5040,
   "name": "blit_view",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5068,
   "name": "b_13CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5070,
   "name": "b_13CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5161,
   "name": "b_1429",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5163,
   "name": "b_142B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5206,
   "name": "f_1456",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5227,
   "name": "scroll_map_window",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5277,
   "name": "b_149D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5312,
   "name": "b_14C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5356,
   "name": "b_14EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5400,
   "name": "r_1518",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5401,
   "name": "draw_map_window",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5477,
   "name": "b_1565",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5481,
   "name": "a_1569",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5482,
   "name": "a_156A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5484,
   "name": "a_156C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5485,
   "name": "a_156D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5491,
   "name": "a_1573",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5492,
   "name": "a_1574",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5497,
   "name": "a_1579",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5498,
   "name": "a_157A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5500,
   "name": "a_157C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5501,
   "name": "a_157D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5507,
   "name": "a_1583",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5508,
   "name": "a_1584",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5591,
   "name": "b_15D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5596,
   "name": "draw_room",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5638,
   "name": "b_1606",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5677,
   "name": "b_162D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5682,
   "name": "j_1632",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5738,
   "name": "b_166A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5770,
   "name": "b_168A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5774,
   "name": "a_168E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5775,
   "name": "a_168F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5777,
   "name": "a_1691",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5778,
   "name": "a_1692",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5784,
   "name": "a_1698",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5785,
   "name": "a_1699",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5790,
   "name": "a_169E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5791,
   "name": "a_169F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5793,
   "name": "a_16A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5794,
   "name": "a_16A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5800,
   "name": "a_16A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5801,
   "name": "a_16A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5884,
   "name": "b_16FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5908,
   "name": "b_1714",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5926,
   "name": "r_1726",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5927,
   "name": "show_room_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5929,
   "name": "b_1729",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5940,
   "name": "b_1734",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5947,
   "name": "a_173B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5948,
   "name": "a_173C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5978,
   "name": "r_175A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5979,
   "name": "room_event_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5980,
   "name": "room_event_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5981,
   "name": "room_event",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6019,
   "name": "b_1783",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6037,
   "name": "b_1795",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6045,
   "name": "b_179D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6081,
   "name": "b_17C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6099,
   "name": "b_17D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6122,
   "name": "r_17EA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6123,
   "name": "room_pictures",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6124,
   "name": "f_17EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6131,
   "name": "f_17F3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6162,
   "name": "f_1812",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6172,
   "name": "f_181C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6232,
   "name": "room_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6233,
   "name": "room_map_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6243,
   "name": "room_map_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6253,
   "name": "room_column",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6263,
   "name": "room_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6273,
   "name": "room_window",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6283,
   "name": "hotspot_x1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6284,
   "name": "a_188C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6285,
   "name": "hotspot_x2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6286,
   "name": "a_188E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6287,
   "name": "room_object",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6288,
   "name": "room_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6289,
   "name": "room_hotspots_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6290,
   "name": "room_hotspots_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6449,
   "name": "room_hotspots_x2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6450,
   "name": "room_hotspots_y2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6609,
   "name": "room_objects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6614,
   "name": "a_19D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6615,
   "name": "a_19D7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6620,
   "name": "a_19DC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6625,
   "name": "a_19E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6626,
   "name": "a_19E2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6633,
   "name": "a_19E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6634,
   "name": "a_19EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6637,
   "name": "a_19ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6646,
   "name": "a_19F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6647,
   "name": "a_19F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6649,
   "name": "a_19F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6650,
   "name": "a_19FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6653,
   "name": "a_19FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6668,
   "name": "a_1A0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6673,
   "name": "a_1A11",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6674,
   "name": "a_1A12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6683,
   "name": "a_1A1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6684,
   "name": "a_1A1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6689,
   "name": "dugout_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6708,
   "name": "b_1A34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6775,
   "name": "b_1A77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6785,
   "name": "b_1A81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6867,
   "name": "b_1AD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6929,
   "name": "b_1B11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7076,
   "name": "b_1BA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7104,
   "name": "b_1BC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7122,
   "name": "dugout_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7169,
   "name": "b_1C01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7177,
   "name": "b_1C09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7212,
   "name": "b_1C2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7226,
   "name": "b_1C3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7248,
   "name": "b_1C50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7307,
   "name": "b_1C8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7318,
   "name": "b_1C96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7328,
   "name": "b_1CA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7340,
   "name": "b_1CAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7353,
   "name": "b_1CB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7360,
   "name": "b_1CC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7395,
   "name": "b_1CE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7422,
   "name": "b_1CFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7466,
   "name": "b_1D2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7485,
   "name": "b_1D3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7496,
   "name": "j_1D48",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7508,
   "name": "gunfire_seed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7509,
   "name": "bunker_morale_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7542,
   "name": "r_1D76",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7543,
   "name": "b_1D77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7546,
   "name": "bunker_hits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7547,
   "name": "fire_flare",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7597,
   "name": "r_1DAD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7598,
   "name": "flare_climb",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7604,
   "name": "a_1DB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7630,
   "name": "a_1DCE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7660,
   "name": "a_1DEC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7661,
   "name": "a_1DED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7664,
   "name": "a_1DF0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7665,
   "name": "a_1DF1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7674,
   "name": "a_1DFA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7675,
   "name": "a_1DFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7678,
   "name": "a_1DFE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7679,
   "name": "a_1DFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7688,
   "name": "a_1E08",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7689,
   "name": "a_1E09",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7692,
   "name": "a_1E0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7693,
   "name": "a_1E0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7702,
   "name": "a_1E16",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7703,
   "name": "a_1E17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7706,
   "name": "a_1E1A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7707,
   "name": "a_1E1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7736,
   "name": "b_1E38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7756,
   "name": "flare_climb_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7757,
   "name": "flare_burn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7758,
   "name": "flare_burn_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7759,
   "name": "r_1E4F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7760,
   "name": "flare_burn_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7772,
   "name": "a_1E5C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7868,
   "name": "b_1EBC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7877,
   "name": "b_1EC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7908,
   "name": "flare_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7916,
   "name": "f_1EEC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7924,
   "name": "f_1EF4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7932,
   "name": "f_1EFC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7940,
   "name": "f_1F04",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7948,
   "name": "f_1F0C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7956,
   "name": "f_1F14",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7964,
   "name": "f_1F1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7972,
   "name": "f_1F24",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7980,
   "name": "f_1F2C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7988,
   "name": "bunker_joystick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8023,
   "name": "b_1F57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8033,
   "name": "b_1F61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8043,
   "name": "b_1F6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8053,
   "name": "b_1F75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8063,
   "name": "r_1F7F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8064,
   "name": "aim_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8070,
   "name": "aim_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8083,
   "name": "aim_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8096,
   "name": "aim_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8109,
   "name": "shot_sound_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8110,
   "name": "fire_held",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8111,
   "name": "shot_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8112,
   "name": "shot_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8113,
   "name": "shot_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8114,
   "name": "start_firing",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8148,
   "name": "stop_firing",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8199,
   "name": "r_2007",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8200,
   "name": "burst",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8219,
   "name": "b_201B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8234,
   "name": "b_202A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8237,
   "name": "b_202D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8242,
   "name": "b_2032",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8257,
   "name": "b_2041",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8262,
   "name": "b_2046",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8288,
   "name": "b_2060",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8306,
   "name": "j_2072",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8373,
   "name": "r_20B5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8374,
   "name": "aim_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8375,
   "name": "enemy_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8376,
   "name": "b_20B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8489,
   "name": "b_2129",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8591,
   "name": "b_218F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8693,
   "name": "b_21F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8717,
   "name": "r_220D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8718,
   "name": "b_220E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8751,
   "name": "b_222F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8764,
   "name": "b_223C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8774,
   "name": "b_2246",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8805,
   "name": "b_2265",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8831,
   "name": "spray_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8832,
   "name": "aim_x_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8833,
   "name": "spray_divider",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8834,
   "name": "spray_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8848,
   "name": "spray_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8862,
   "name": "enemy_death_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8863,
   "name": "a_229F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8864,
   "name": "a_22A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8865,
   "name": "enemy_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8866,
   "name": "a_22A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8867,
   "name": "a_22A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8868,
   "name": "enemy_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8869,
   "name": "a_22A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8870,
   "name": "a_22A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8871,
   "name": "enemy_spot_index",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8874,
   "name": "enemy_delays",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8892,
   "name": "enemy_spot_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8916,
   "name": "enemy_spot_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8940,
   "name": "enemy_spot_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8964,
   "name": "enemy_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8980,
   "name": "f_2314",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8996,
   "name": "f_2324",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9012,
   "name": "f_2334",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9028,
   "name": "f_2344",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9044,
   "name": "f_2354",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9060,
   "name": "enemy_speed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9061,
   "name": "enemy_speed_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9063,
   "name": "move_enemies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9065,
   "name": "b_2369",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9108,
   "name": "b_2394",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9114,
   "name": "b_239A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9117,
   "name": "j_239D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9134,
   "name": "b_23AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9139,
   "name": "j_23B3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9149,
   "name": "b_23BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9266,
   "name": "b_2432",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9269,
   "name": "b_2435",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9272,
   "name": "b_2438",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9336,
   "name": "j_2478",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9397,
   "name": "j_24B5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9402,
   "name": "b_24BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9405,
   "name": "b_24BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9461,
   "name": "b_24F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9467,
   "name": "b_24FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9473,
   "name": "b_2501",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9476,
   "name": "b_2504",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9481,
   "name": "b_2509",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9490,
   "name": "a_2512",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9500,
   "name": "b_251C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9577,
   "name": "b_2569",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9592,
   "name": "b_2578",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9597,
   "name": "j_257D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9611,
   "name": "a_258B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9628,
   "name": "b_259C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9641,
   "name": "enemy_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9671,
   "name": "b_25C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9682,
   "name": "b_25D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9690,
   "name": "j_25DA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9696,
   "name": "b_25E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9702,
   "name": "enemy_flash_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9705,
   "name": "enemy_flash_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9706,
   "name": "a_25EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9707,
   "name": "a_25EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9708,
   "name": "enemy_flash_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9709,
   "name": "a_25ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9710,
   "name": "a_25EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9711,
   "name": "enemy_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9712,
   "name": "a_25F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9713,
   "name": "a_25F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9714,
   "name": "set_enemy1_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9727,
   "name": "set_enemy2_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9740,
   "name": "set_enemy3_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9818,
   "name": "player_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9819,
   "name": "a_265B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9820,
   "name": "a_265C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9822,
   "name": "player_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9823,
   "name": "a_265F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9824,
   "name": "a_2660",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9826,
   "name": "player_x_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9833,
   "name": "a_2669",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9834,
   "name": "a_266A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9835,
   "name": "a_266B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9836,
   "name": "paused",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9849,
   "name": "aim_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9852,
   "name": "aim_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9858,
   "name": "sprite_expand_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9859,
   "name": "check_quit_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9899,
   "name": "r_26AB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9900,
   "name": "silence",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9922,
   "name": "music_or_effects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9931,
   "name": "b_26CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9936,
   "name": "toggle_music",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9973,
   "name": "b_26F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9979,
   "name": "b_26FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9985,
   "name": "b_2701",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10005,
   "name": "r_2715",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10006,
   "name": "music_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10007,
   "name": "scroll_register",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10008,
   "name": "crosshair_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10009,
   "name": "crosshair_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10010,
   "name": "irq_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10172,
   "name": "irq_sprites",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10214,
   "name": "a_27E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10219,
   "name": "a_27EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10224,
   "name": "a_27F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10265,
   "name": "b_2819",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10276,
   "name": "b_2824",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10338,
   "name": "b_2862",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10348,
   "name": "sprite_multicolour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10349,
   "name": "a_286D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10350,
   "name": "a_286E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10351,
   "name": "a_286F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10352,
   "name": "a_2870",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10353,
   "name": "sprite_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10354,
   "name": "sprite_x_hi_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10356,
   "name": "irq_band2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10402,
   "name": "b_28A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10413,
   "name": "b_28AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10438,
   "name": "irq_band3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10456,
   "name": "a_28D8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10483,
   "name": "b_28F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10494,
   "name": "b_28FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10524,
   "name": "sprite_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10525,
   "name": "a_291D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10526,
   "name": "a_291E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10527,
   "name": "a_291F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10528,
   "name": "f_2920",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10529,
   "name": "a_2921",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10530,
   "name": "a_2922",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10531,
   "name": "a_2923",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10532,
   "name": "a_2924",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10533,
   "name": "a_2925",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10534,
   "name": "a_2926",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10535,
   "name": "a_2927",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10536,
   "name": "a_2928",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10537,
   "name": "a_2929",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10538,
   "name": "f_292A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10544,
   "name": "f_2930",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10550,
   "name": "sprite_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10552,
   "name": "f_2938",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10554,
   "name": "a_293A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10556,
   "name": "a_293C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10557,
   "name": "f_293D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10560,
   "name": "f_2940",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10563,
   "name": "sprite_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10564,
   "name": "a_2944",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10565,
   "name": "f_2945",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10566,
   "name": "a_2946",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10567,
   "name": "a_2947",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10568,
   "name": "a_2948",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10569,
   "name": "a_2949",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10570,
   "name": "f_294A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10573,
   "name": "f_294D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10576,
   "name": "irq_status",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10675,
   "name": "b_29B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10706,
   "name": "b_29D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10716,
   "name": "panel_charset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10717,
   "name": "panel_scroll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10718,
   "name": "cia2_ctrl",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10719,
   "name": "irq_message_bar",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10773,
   "name": "a_2A15",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10798,
   "name": "message_scroll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10799,
   "name": "irq_items_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10924,
   "name": "item_blank_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10925,
   "name": "irq_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10973,
   "name": "b_2ADD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10986,
   "name": "b_2AEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10999,
   "name": "b_2AF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11160,
   "name": "colour_cycle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11161,
   "name": "irq_dugout_band1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11186,
   "name": "b_2BB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11244,
   "name": "irq_dugout_band2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11280,
   "name": "a_2C10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11320,
   "name": "irq_dugout_band3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11419,
   "name": "irq_dugout_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11488,
   "name": "band_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11489,
   "name": "a_2CE1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11490,
   "name": "a_2CE2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11491,
   "name": "a_2CE3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11492,
   "name": "a_2CE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11493,
   "name": "a_2CE5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11494,
   "name": "a_2CE6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11495,
   "name": "a_2CE7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11496,
   "name": "a_2CE8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11497,
   "name": "sprite_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11498,
   "name": "a_2CEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11499,
   "name": "a_2CEB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11500,
   "name": "a_2CEC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11513,
   "name": "crosshair_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11514,
   "name": "a_2CFA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11515,
   "name": "a_2CFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11543,
   "name": "a_2D17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11544,
   "name": "a_2D18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11581,
   "name": "start_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11597,
   "name": "r_2D4D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11598,
   "name": "scroll_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11627,
   "name": "b_2D6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11641,
   "name": "b_2D79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11643,
   "name": "b_2D7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11693,
   "name": "a_2DAD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11694,
   "name": "a_2DAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11703,
   "name": "r_2DB7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11704,
   "name": "message_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11705,
   "name": "message_table_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11794,
   "name": "message_stops",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11795,
   "name": "message_stop_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11884,
   "name": "message_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11885,
   "name": "message_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11886,
   "name": "message_hold",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11887,
   "name": "message_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11888,
   "name": "message_start",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11889,
   "name": "message_stop",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11890,
   "name": "messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11954,
   "name": "messages_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12978,
   "name": "messages_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13710,
   "name": "game_over_score",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13714,
   "name": "end_messages_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14063,
   "name": "check_pause",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14080,
   "name": "b_3700",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14092,
   "name": "b_370C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14844,
   "name": "clear_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14848,
   "name": "b_3A00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14878,
   "name": "f_3A1E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14923,
   "name": "start_killed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14971,
   "name": "killed_wipe",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15000,
   "name": "b_3A98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15001,
   "name": "a_3A99",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15002,
   "name": "a_3A9A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15010,
   "name": "b_3AA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15011,
   "name": "a_3AA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15012,
   "name": "a_3AA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15082,
   "name": "r_3AEA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15083,
   "name": "blank_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15100,
   "name": "b_3AFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15103,
   "name": "a_3AFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15104,
   "name": "a_3B00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15126,
   "name": "b_3B16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15157,
   "name": "killed_pause",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15195,
   "name": "b_3B5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15283,
   "name": "b_3BB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15286,
   "name": "r_3BB6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15287,
   "name": "game_over",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15300,
   "name": "b_3BC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15344,
   "name": "b_3BF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15352,
   "name": "wipe_active",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15353,
   "name": "killed_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15354,
   "name": "killed_waiting",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15355,
   "name": "wipe_divider",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15356,
   "name": "wipe_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15357,
   "name": "wipe_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15358,
   "name": "wipe_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15359,
   "name": "killed_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15360,
   "name": "killed_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15420,
   "name": "key_pressed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15463,
   "name": "b_3C67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15464,
   "name": "j_3C68",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15478,
   "name": "a_3C76",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15480,
   "name": "key_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15488,
   "name": "key_columns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15496,
   "name": "swap_charset_tunnels",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15519,
   "name": "b_3C9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15542,
   "name": "r_3CB6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15543,
   "name": "swap_charset_bunker",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15566,
   "name": "b_3CCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15590,
   "name": "swap_charset_title",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15637,
   "name": "charset_wanted",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15638,
   "name": "swap_charset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15656,
   "name": "b_3D28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15658,
   "name": "b_3D2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15659,
   "name": "a_3D2B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15660,
   "name": "a_3D2C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15665,
   "name": "a_3D31",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15666,
   "name": "a_3D32",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15668,
   "name": "a_3D34",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15669,
   "name": "a_3D35",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15674,
   "name": "a_3D3A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15675,
   "name": "a_3D3B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15817,
   "name": "dawn_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15818,
   "name": "a_3DCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15852,
   "name": "add_100_points",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15867,
   "name": "add_1000_points",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15912,
   "name": "b_3E28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15914,
   "name": "b_3E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15927,
   "name": "reload",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15952,
   "name": "use_round",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15959,
   "name": "a_3E57",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15961,
   "name": "a_3E59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15992,
   "name": "r_3E78",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15993,
   "name": "b_3E79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16011,
   "name": "b_3E8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16022,
   "name": "fire_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16023,
   "name": "ammo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16024,
   "name": "round_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16025,
   "name": "use_flare",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16065,
   "name": "r_3EC1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16066,
   "name": "b_3EC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16072,
   "name": "b_3EC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16078,
   "name": "flares",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16079,
   "name": "a_3ECF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16080,
   "name": "take_wound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16082,
   "name": "b_3ED2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16097,
   "name": "draw_wounds",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16138,
   "name": "lives_lost",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16139,
   "name": "wound_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16140,
   "name": "f_3F0C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16149,
   "name": "clear_wounds",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16151,
   "name": "b_3F17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16178,
   "name": "lose_morale",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16205,
   "name": "b_3F4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16215,
   "name": "b_3F57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16227,
   "name": "r_3F63",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16228,
   "name": "b_3F64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16244,
   "name": "b_3F74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16384,
   "name": "f_4000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16584,
   "name": "f_40C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16586,
   "name": "f_40CA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16592,
   "name": "f_40D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16634,
   "name": "f_40FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16640,
   "name": "f_4100",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16664,
   "name": "f_4118",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16665,
   "name": "f_4119",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16704,
   "name": "f_4140",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16744,
   "name": "f_4168",
   "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": 16896,
   "name": "f_4200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16912,
   "name": "f_4210",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16923,
   "name": "f_421B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16946,
   "name": "f_4232",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17134,
   "name": "f_42EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17144,
   "name": "f_42F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17184,
   "name": "f_4320",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17185,
   "name": "f_4321",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17191,
   "name": "f_4327",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17223,
   "name": "a_4347",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17224,
   "name": "f_4348",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17264,
   "name": "f_4370",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17275,
   "name": "f_437B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17285,
   "name": "f_4385",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17295,
   "name": "f_438F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17304,
   "name": "f_4398",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17315,
   "name": "f_43A3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17324,
   "name": "f_43AC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17325,
   "name": "f_43AD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17344,
   "name": "f_43C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17355,
   "name": "f_43CB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17364,
   "name": "f_43D4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17365,
   "name": "f_43D5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17376,
   "name": "a_43E0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17377,
   "name": "f_43E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17400,
   "name": "a_43F8",
   "type": "AbsoluteAddress",
   "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": "f_43FD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17406,
   "name": "a_43FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17407,
   "name": "a_43FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18145,
   "name": "f_46E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18432,
   "name": "title_charset_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "title_charset_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19457,
   "name": "a_4C01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20456,
   "name": "charset_tail_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "sprites_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "sprites_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "sprites_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "sprites_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24159,
   "name": "sprites_b_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "sprites_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25600,
   "name": "sprites_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "sprites_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "sprites_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "sprites_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29535,
   "name": "sprites_c_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29696,
   "name": "sprites_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30559,
   "name": "sprites_c_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "sprites_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31583,
   "name": "sprites_c_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "sprites_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32607,
   "name": "sprites_c_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "view_pictures_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33792,
   "name": "view_pictures_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34816,
   "name": "view_pictures_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35840,
   "name": "view_pictures_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36864,
   "name": "view_pictures_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37888,
   "name": "view_pictures_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38912,
   "name": "view_pictures_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39936,
   "name": "view_pictures_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39968,
   "name": "map_windows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40032,
   "name": "map_and_rooms_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41056,
   "name": "map_and_rooms_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42080,
   "name": "map_and_rooms_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43104,
   "name": "map_and_rooms_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44128,
   "name": "map_and_rooms_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45152,
   "name": "map_and_rooms_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45568,
   "name": "picture17_layout",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45640,
   "name": "death_layouts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45826,
   "name": "death_layouts_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46291,
   "name": "hand_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46292,
   "name": "f_B4D4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46293,
   "name": "f_B4D5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46294,
   "name": "f_B4D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46295,
   "name": "f_B4D7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46328,
   "name": "char_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46360,
   "name": "char_colours_rest_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46633,
   "name": "silence_title",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46655,
   "name": "reset_display",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46657,
   "name": "b_B641",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46667,
   "name": "b_B64B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46749,
   "name": "game_over_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46761,
   "name": "leave_title",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46797,
   "name": "b_B6CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46800,
   "name": "restart_in_dugout",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46801,
   "name": "a_B6D1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46802,
   "name": "check_quit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46811,
   "name": "lose_chance",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46814,
   "name": "end_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46887,
   "name": "b_B727",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46890,
   "name": "b_B72A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46893,
   "name": "r_B72D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46894,
   "name": "chances",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46895,
   "name": "section_title",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46907,
   "name": "b_B73B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46939,
   "name": "one_more_chance",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46951,
   "name": "b_B767",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47035,
   "name": "platoon_destroyed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47047,
   "name": "b_B7C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47102,
   "name": "b_B7FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47125,
   "name": "section_done",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47137,
   "name": "b_B821",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47166,
   "name": "b_B83E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47189,
   "name": "wait_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47212,
   "name": "title_texts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47247,
   "name": "f_B88F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47275,
   "name": "f_B8AB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47312,
   "name": "f_B8D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47352,
   "name": "f_B8F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47392,
   "name": "f_B920",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47431,
   "name": "f_B947",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47470,
   "name": "f_B96E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47511,
   "name": "f_B997",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47552,
   "name": "f_B9C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47593,
   "name": "f_B9E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47634,
   "name": "f_BA12",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47675,
   "name": "text_tail_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48384,
   "name": "dugout_screen",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48448,
   "name": "dugout_screen_1b_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48640,
   "name": "f_BE00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48704,
   "name": "dugout_screen_2b_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48896,
   "name": "f_BF00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48960,
   "name": "dugout_screen_3b_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "morale",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49154,
   "name": "bar_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49163,
   "name": "draw_panel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49165,
   "name": "b_C00D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49197,
   "name": "b_C02D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49255,
   "name": "b_C067",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49309,
   "name": "panel_labels",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49319,
   "name": "f_C0A7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49328,
   "name": "panel_spare",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49339,
   "name": "f_C0BB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49349,
   "name": "f_C0C5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49359,
   "name": "sprite_to_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49446,
   "name": "hand_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49471,
   "name": "b_C13F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49492,
   "name": "b_C154",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49536,
   "name": "b_C180",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49546,
   "name": "b_C18A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49561,
   "name": "b_C199",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49574,
   "name": "r_C1A6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 49575,
   "name": "b_C1A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49583,
   "name": "b_C1AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49595,
   "name": "hand_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49596,
   "name": "hand_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49597,
   "name": "hand_frame_time",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49598,
   "name": "hand_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49599,
   "name": "hand_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49600,
   "name": "hand_frame1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49601,
   "name": "hand_frame2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49602,
   "name": "hand_colour1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49603,
   "name": "hand_colour2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49604,
   "name": "r_C1C4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 49605,
   "name": "attack_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49643,
   "name": "b_C1EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49651,
   "name": "b_C1F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49664,
   "name": "b_C200",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49671,
   "name": "b_C207",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49674,
   "name": "b_C20A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49707,
   "name": "b_C22B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49732,
   "name": "j_C244",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49736,
   "name": "attack_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49737,
   "name": "b_C249",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49745,
   "name": "b_C251",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49776,
   "name": "player_killed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 49789,
   "name": "end_attack",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49815,
   "name": "r_C297",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 49816,
   "name": "show_hand",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49839,
   "name": "attack_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49840,
   "name": "attack_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49841,
   "name": "attack_ahead",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49842,
   "name": "f_C2B2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49877,
   "name": "attacker_death",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49878,
   "name": "f_C2D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49902,
   "name": "attack_side",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49903,
   "name": "f_C2EF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49910,
   "name": "attack_side_time",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49921,
   "name": "show_attacker",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50062,
   "name": "b_C38E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50085,
   "name": "b_C3A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50099,
   "name": "b_C3B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50100,
   "name": "a_C3B4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50101,
   "name": "a_C3B5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50110,
   "name": "b_C3BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50111,
   "name": "a_C3BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50112,
   "name": "a_C3C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50130,
   "name": "b_C3D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50144,
   "name": "b_C3E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50150,
   "name": "b_C3E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50151,
   "name": "a_C3E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50152,
   "name": "a_C3E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50157,
   "name": "a_C3ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50158,
   "name": "a_C3EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50166,
   "name": "load_next_section",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 50207,
   "name": "load_game_over",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 50248,
   "name": "restore_system",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50294,
   "name": "b_C476",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50301,
   "name": "b_C47D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50312,
   "name": "file_names",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50320,
   "name": "attack_from_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50321,
   "name": "attack_from_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50322,
   "name": "sprite_mc0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50323,
   "name": "sprite_mc1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50324,
   "name": "hit_box",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50325,
   "name": "a_C495",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50326,
   "name": "a_C496",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50327,
   "name": "a_C497",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50328,
   "name": "attacker_multicolour",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50329,
   "name": "f_C499",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50388,
   "name": "attacker_expand_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50389,
   "name": "f_C4D5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50448,
   "name": "attacker_boxes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50449,
   "name": "f_C511",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50450,
   "name": "f_C512",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50451,
   "name": "attacker_box_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50568,
   "name": "attacker_expand3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50661,
   "name": "attacker_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50662,
   "name": "f_C5E6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50719,
   "name": "attacker_layout1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50720,
   "name": "f_C620",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50777,
   "name": "attacker_layout2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50778,
   "name": "f_C65A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50835,
   "name": "attacker_layout3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50836,
   "name": "f_C694",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50893,
   "name": "picture0_layout",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50945,
   "name": "attacker_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50975,
   "name": "attacker_sprite_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50988,
   "name": "attacker_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51052,
   "name": "attacker_layouts_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52076,
   "name": "attacker_layouts_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52889,
   "name": "layouts_end_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52894,
   "name": "note_lengths_base",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52992,
   "name": "music_state",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52993,
   "name": "f_CF01",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52994,
   "name": "f_CF02",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52995,
   "name": "f_CF03",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52996,
   "name": "f_CF04",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52997,
   "name": "f_CF05",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52998,
   "name": "f_CF06",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52999,
   "name": "f_CF07",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53002,
   "name": "f_CF0A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53003,
   "name": "f_CF0B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53004,
   "name": "f_CF0C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53005,
   "name": "f_CF0D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53006,
   "name": "f_CF0E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53007,
   "name": "f_CF0F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53008,
   "name": "f_CF10",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53009,
   "name": "f_CF11",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53010,
   "name": "f_CF12",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53011,
   "name": "f_CF13",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53012,
   "name": "f_CF14",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53013,
   "name": "f_CF15",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53014,
   "name": "f_CF16",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53015,
   "name": "f_CF17",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53016,
   "name": "f_CF18",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53017,
   "name": "f_CF19",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53018,
   "name": "f_CF1A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53019,
   "name": "f_CF1B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53020,
   "name": "f_CF1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53021,
   "name": "f_CF1D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53022,
   "name": "f_CF1E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53023,
   "name": "f_CF1F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53024,
   "name": "f_CF20",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53025,
   "name": "f_CF21",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53028,
   "name": "f_CF24",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53031,
   "name": "f_CF27",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53041,
   "name": "f_CF31",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53083,
   "name": "f_CF5B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53117,
   "name": "f_CF7D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53337,
   "name": "charset_d000_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54361,
   "name": "charset_d000_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "charset_d800_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55325,
   "name": "a_D81D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55326,
   "name": "a_D81E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55365,
   "name": "a_D845",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55366,
   "name": "a_D846",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55496,
   "name": "f_D8C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55498,
   "name": "f_D8CA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55504,
   "name": "f_D8D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55546,
   "name": "f_D8FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55552,
   "name": "f_D900",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55576,
   "name": "f_D918",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55577,
   "name": "f_D919",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55616,
   "name": "f_D940",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55656,
   "name": "f_D968",
   "type": "Field",
   "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": 55808,
   "name": "f_DA00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55824,
   "name": "f_DA10",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55858,
   "name": "f_DA32",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55936,
   "name": "f_DA80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56016,
   "name": "f_DAD0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56046,
   "name": "f_DAEE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56056,
   "name": "f_DAF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56103,
   "name": "f_DB27",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56115,
   "name": "f_DB33",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56227,
   "name": "f_DBA3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56237,
   "name": "f_DBAD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56256,
   "name": "f_DBC0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56257,
   "name": "a_DBC1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 56267,
   "name": "f_DBCB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56277,
   "name": "f_DBD5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56278,
   "name": "a_DBD6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 56287,
   "name": "f_DBDF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56320,
   "name": "charset_d800_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "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",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57404,
   "name": "b_E03C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57435,
   "name": "cmd_flags",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57454,
   "name": "cmd_call_transposed",
   "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": "a_E131",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57651,
   "name": "a_E133",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57652,
   "name": "a_E134",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57659,
   "name": "b_E13B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57664,
   "name": "to_E081",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57667,
   "name": "cmd_filter",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57694,
   "name": "cmd_pulse",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57740,
   "name": "cmd_transpose_restart",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57748,
   "name": "cmd_transpose",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57754,
   "name": "set_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": "transpose_store",
   "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_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58004,
   "name": "read_pattern",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58045,
   "name": "a_E2BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58047,
   "name": "b_E2BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58058,
   "name": "a_E2CA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "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": "start_note",
   "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": "a_E3A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58279,
   "name": "r_E3A7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58280,
   "name": "play_music",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58304,
   "name": "b_E3C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58308,
   "name": "j_E3C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58317,
   "name": "b_E3CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58348,
   "name": "voice_turn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58349,
   "name": "frequency_steps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58364,
   "name": "j_E3FC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58389,
   "name": "b_E415",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58413,
   "name": "b_E42D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58446,
   "name": "pulse_steps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58461,
   "name": "j_E45D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58486,
   "name": "b_E476",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58510,
   "name": "b_E48E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58590,
   "name": "a_E4DE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58606,
   "name": "a_E4EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58626,
   "name": "instrument_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58658,
   "name": "b_E522",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58677,
   "name": "b_E535",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58702,
   "name": "b_E54E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58713,
   "name": "a_E559",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58738,
   "name": "r_E572",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58739,
   "name": "instrument_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58746,
   "name": "voice_registers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58749,
   "name": "voice_workspace",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58752,
   "name": "filter_routing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58755,
   "name": "transpose_sign",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58756,
   "name": "note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58850,
   "name": "note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58944,
   "name": "command_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58952,
   "name": "silent_pattern",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58964,
   "name": "song_table_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58966,
   "name": "song_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58967,
   "name": "f_E657",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58996,
   "name": "pattern_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59060,
   "name": "pattern_hi_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59077,
   "name": "f_E6C5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59141,
   "name": "sequences",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59157,
   "name": "f_E715",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59158,
   "name": "f_E716",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59222,
   "name": "music_data_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60246,
   "name": "music_data_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60953,
   "name": "start_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 60989,
   "name": "sound_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60990,
   "name": "sound_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61072,
   "name": "b_EE90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61137,
   "name": "sound_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61140,
   "name": "sound_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61143,
   "name": "sound_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61146,
   "name": "play_sounds",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61148,
   "name": "b_EEDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61156,
   "name": "b_EEE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61164,
   "name": "b_EEEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61168,
   "name": "sound_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61184,
   "name": "b_EF00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61187,
   "name": "b_EF03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61217,
   "name": "b_EF21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61235,
   "name": "b_EF33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61254,
   "name": "b_EF46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61257,
   "name": "b_EF49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61279,
   "name": "j_EF5F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 61335,
   "name": "j_EF97",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 61348,
   "name": "b_EFA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61378,
   "name": "sound_requested",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61381,
   "name": "sound_workspace",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61384,
   "name": "f_EFC8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61387,
   "name": "f_EFCB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61390,
   "name": "f_EFCE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61393,
   "name": "f_EFD1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61396,
   "name": "f_EFD4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61399,
   "name": "f_EFD7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61402,
   "name": "f_EFDA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61405,
   "name": "f_EFDD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61408,
   "name": "f_EFE0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61411,
   "name": "f_EFE3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61417,
   "name": "f_EFE9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61420,
   "name": "f_EFEC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61423,
   "name": "f_EFEF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61426,
   "name": "f_EFF2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61431,
   "name": "f_EFF7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61434,
   "name": "f_EFFA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61437,
   "name": "f_EFFD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61440,
   "name": "f_F000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61443,
   "name": "sound_effects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61444,
   "name": "f_F004",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61445,
   "name": "f_F005",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61446,
   "name": "f_F006",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61447,
   "name": "f_F007",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61448,
   "name": "f_F008",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61449,
   "name": "f_F009",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61450,
   "name": "effect_0_repeats",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61555,
   "name": "sound_ad_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61569,
   "name": "sound_sr_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61583,
   "name": "sound_pulse_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61596,
   "name": "r_F09C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 61597,
   "name": "start_sample",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61673,
   "name": "b_F0E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61676,
   "name": "sample_nmi_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61697,
   "name": "b_F101",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61731,
   "name": "sample_nmi_low",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61768,
   "name": "b_F148",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61791,
   "name": "sample_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61792,
   "name": "sample_leftover",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61952,
   "name": "sample",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62622,
   "name": "KERNAL_LOADj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 62768,
   "name": "sample_fd30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62976,
   "name": "sample_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63167,
   "name": "sample_gap_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63168,
   "name": "sample_data_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64192,
   "name": "sample_data_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64816,
   "name": "f_FD30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 65024,
   "name": "sample_end_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65441,
   "name": "b_FFA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 65466,
   "name": "KERNAL_SETLFS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 65469,
   "name": "KERNAL_SETNAM",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 65490,
   "name": "KERNAL_CHROUT",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65504,
   "name": "b_FFE0",
   "type": "Branch",
   "kind": "auto"
  }
 ],
 "comments": [
  {
   "address": 1024,
   "type": "line",
   "text": "Entry to the tunnel section: masks CIA interrupts, sets the video bank, screen and charset, banks out the ROMs, points the IRQ vector at $271A with a raster line of $14, clears the score digits and play counters, then shows the title sequence ($B72F)."
  },
  {
   "address": 1222,
   "type": "line",
   "text": "Start of play in the tunnels, reached from the title at $B6CA: draws the screens, sets the colours, puts the player on the map at $408C+$0B facing up ($09CD=$24, $09D0=6), centres the crosshair, gives nine rounds ($3E97), sets morale ($C000=$47) and fills the object table at $19D1."
  },
  {
   "address": 1547,
   "type": "line",
   "text": "Main loop, once per frame flag $09D1: moves the walking bob through $0882/$08DB, reads the joystick ($09F1), redraws the map arrow, copies the crosshair to the sprite table, and runs the enemy, message and sound updates."
  },
  {
   "address": 1824,
   "type": "line",
   "text": "Frames until the next ambush step, from $14 down."
  },
  {
   "address": 1825,
   "type": "line",
   "text": "Ambush steps until an attack, from 8 down."
  },
  {
   "address": 1826,
   "type": "line",
   "text": "Crosshair X before it is copied to $0B52."
  },
  {
   "address": 1827,
   "type": "line",
   "text": "Crosshair Y before it is copied to $0B53."
  },
  {
   "address": 1828,
   "type": "line",
   "text": "Step through the walking bob table, 0 to $51."
  },
  {
   "address": 1829,
   "type": "line",
   "text": "Times the attacks in the tunnels while the player walks dry tunnel: counts down $0720 and $0721, and after enough steps starts a Viet Cong attack through $C301, from ahead if a wall or water is near, otherwise from a side passage ($07F9 left, $0820 right). Spots marked in $084A attack from the side as soon as the player reaches them."
  },
  {
   "address": 2119,
   "type": "line",
   "text": "Frames to wait before ambushes resume after one ends."
  },
  {
   "address": 2120,
   "type": "line",
   "text": "Counts attacks; every fourth comes from ahead whatever is there."
  },
  {
   "address": 2122,
   "type": "line",
   "text": "Flags the steps of $0720 where a side attack can start."
  },
  {
   "address": 2178,
   "type": "line",
   "text": "X drift of the crosshair's walking bob, one byte per step."
  },
  {
   "address": 2267,
   "type": "line",
   "text": "Y drift of the walking bob."
  },
  {
   "address": 2308,
   "type": "line",
   "text": "Leftover data, never used."
  },
  {
   "address": 2409,
   "type": "line",
   "text": "After a wall stops the player, tries each direction in turn (north, east, south, west) until one is open, then turns the map arrow and centres the crosshair."
  },
  {
   "address": 2507,
   "type": "line",
   "text": "Set while an attack is under way."
  },
  {
   "address": 2508,
   "type": "line",
   "text": "Set when the attacker has been shot."
  },
  {
   "address": 2509,
   "type": "line",
   "text": "Map arrow character, $21-$24 by facing."
  },
  {
   "address": 2510,
   "type": "line",
   "text": "Frames since the player last moved."
  },
  {
   "address": 2511,
   "type": "line",
   "text": "Set when the player moved this frame."
  },
  {
   "address": 2512,
   "type": "line",
   "text": "Facing direction: 0, 2, 4, or 6."
  },
  {
   "address": 2513,
   "type": "line",
   "text": "Set by the interrupt each frame."
  },
  {
   "address": 2514,
   "type": "line",
   "text": "Frames between steps while the joystick is held."
  },
  {
   "address": 2515,
   "type": "line",
   "text": "No direction held: resets the step delay so the next push moves at once."
  },
  {
   "address": 2545,
   "type": "line",
   "text": "Reads the joystick: diagonals are ignored, forward steps the player in the facing direction, back steps the other way, and left and right turn; while an attack is on the stick moves the crosshair instead."
  },
  {
   "address": 2653,
   "type": "line",
   "text": "Left: turns the player anticlockwise (map arrow $21-$24), or during an attack moves the crosshair left."
  },
  {
   "address": 2725,
   "type": "line",
   "text": "Right: turns the player clockwise, or during an attack moves the crosshair right."
  },
  {
   "address": 2797,
   "type": "line",
   "text": "Back: during an attack moves the crosshair down."
  },
  {
   "address": 2830,
   "type": "line",
   "text": "Forward: steps the player ahead ($0EE5), or during an attack moves the crosshair up."
  },
  {
   "address": 2897,
   "type": "line",
   "text": "Set when fire was pressed this frame."
  },
  {
   "address": 2898,
   "type": "line",
   "text": "Crosshair X."
  },
  {
   "address": 2899,
   "type": "line",
   "text": "Crosshair Y."
  },
  {
   "address": 2900,
   "type": "line",
   "text": "Not in a room: fire shoots ($0DAF)."
  },
  {
   "address": 2903,
   "type": "line",
   "text": "Fire in a room: the exit corner turns the player back into the tunnels ($0969); shooting the figure of the room 0 event scores 1000 points and ends it; otherwise the crosshair is checked against each object box of the room ($0BD6)."
  },
  {
   "address": 3030,
   "type": "line",
   "text": "Tests the crosshair against each object box of the room; a hit shows the object's message and takes it."
  },
  {
   "address": 3133,
   "type": "line",
   "text": "Object 0: the first find is the flares ($0D52), the second the second flare pack ($0D53)."
  },
  {
   "address": 3154,
   "type": "line",
   "text": "Object 1: the compass ($0D54)."
  },
  {
   "address": 3159,
   "type": "line",
   "text": "Marks the object taken ($12), plays the pickup sound, and scores 500 points."
  },
  {
   "address": 3187,
   "type": "line",
   "text": "Object $10: an ammunition box refills the magazine to nine rounds."
  },
  {
   "address": 3205,
   "type": "line",
   "text": "A stray rts byte, never reached."
  },
  {
   "address": 3206,
   "type": "line",
   "text": "Medical supplies: heal a wound ($0CF6)."
  },
  {
   "address": 3209,
   "type": "line",
   "text": "Object 3: the exit. With the flares, the second flare pack, and the compass, scores 30,000 points and goes to the dugout ($1A21); otherwise a message says what is missing."
  },
  {
   "address": 3318,
   "type": "line",
   "text": "Object $11: a medical kit heals one wound, giving back $12 points of morale and redrawing the wound marks."
  },
  {
   "address": 3410,
   "type": "line",
   "text": "Set when the flares are found."
  },
  {
   "address": 3411,
   "type": "line",
   "text": "Set when the second flare pack is found."
  },
  {
   "address": 3412,
   "type": "line",
   "text": "Set when the compass is found."
  },
  {
   "address": 3413,
   "type": "line",
   "text": "Index into the room's box table, two bytes per box."
  },
  {
   "address": 3414,
   "type": "line",
   "text": "Index into the room's object table."
  },
  {
   "address": 3415,
   "type": "line",
   "text": "Moves to the next object box; at the end of the room's boxes shows the \"nothing here\" message."
  },
  {
   "address": 3503,
   "type": "line",
   "text": "Fire in the tunnels: uses a round, sprays the crosshair, and if it is over an attacker in range scores 300 points and plays the attacker's death ($C301): a near attacker ($09CC 6-8) or a far one (9-12)."
  },
  {
   "address": 3660,
   "type": "line",
   "text": "Every second frame plays the gunfire sound and shakes the crosshair by the table at $2282."
  },
  {
   "address": 3768,
   "type": "line",
   "text": "Two spare bytes."
  },
  {
   "address": 3770,
   "type": "line",
   "text": "Clears the view flags and scans the map in the facing direction through the drawer table $0EDB."
  },
  {
   "address": 3800,
   "type": "line",
   "text": "Low byte of the scan's jump target, patched by $0ECE."
  },
  {
   "address": 3801,
   "type": "line",
   "text": "High byte of the scan's jump target, patched by $0ED4."
  },
  {
   "address": 3802,
   "type": "line",
   "text": "A stray rts byte after the scan's jump."
  },
  {
   "address": 3803,
   "type": "line",
   "text": "Address of the scan for each facing."
  },
  {
   "address": 3804,
   "type": "line",
   "text": "High byte and the other facings' scan addresses."
  },
  {
   "address": 3813,
   "type": "line",
   "text": "Every second call, looks up the view drawer for the facing $09D0 in the table at $0F1D, draws the tunnel view ($10A0), and if nothing blocked the view advances the wall frame $109F."
  },
  {
   "address": 3849,
   "type": "line",
   "text": "Low byte of the step's call target, patched by $0EFF."
  },
  {
   "address": 3850,
   "type": "line",
   "text": "High byte of the step's call target, patched by $0F05; the step then checks whether the view advanced."
  },
  {
   "address": 3868,
   "type": "line",
   "text": "Frame divider for the view step."
  },
  {
   "address": 3869,
   "type": "line",
   "text": "Address of the view drawer for each facing, two bytes each."
  },
  {
   "address": 3870,
   "type": "line",
   "text": "High byte and the other facings' step addresses."
  },
  {
   "address": 3879,
   "type": "line",
   "text": "Set while the player stands in water (map character 3), cleared on dry tunnel (2)."
  },
  {
   "address": 3880,
   "type": "line",
   "text": "Copy of $0F27 from the last frame, used to redraw the square the player left."
  },
  {
   "address": 3881,
   "type": "line",
   "text": "Returns without moving."
  },
  {
   "address": 3882,
   "type": "line",
   "text": "Moves the player one square west on the map if the square is tunnel (2) or water (3), then scans ahead for water, walls, and side passages to set the view flags."
  },
  {
   "address": 4048,
   "type": "line",
   "text": "Set when the scan finds something that stops the wall frame advancing."
  },
  {
   "address": 4049,
   "type": "line",
   "text": "Moves the player one square east on the map; the mirror of $0F2A."
  },
  {
   "address": 4215,
   "type": "line",
   "text": "Flags a wall ahead ($109B) at distance X."
  },
  {
   "address": 4224,
   "type": "line",
   "text": "Flags water ahead ($109C) at distance X."
  },
  {
   "address": 4233,
   "type": "line",
   "text": "Flags a side passage ($109D) at distance X."
  },
  {
   "address": 4242,
   "type": "line",
   "text": "Flags a side passage on the other side ($109E) at distance X."
  },
  {
   "address": 4251,
   "type": "line",
   "text": "Wall-ahead flag."
  },
  {
   "address": 4252,
   "type": "line",
   "text": "Water-ahead flag."
  },
  {
   "address": 4253,
   "type": "line",
   "text": "Side passage flag."
  },
  {
   "address": 4254,
   "type": "line",
   "text": "Side passage flag, other side."
  },
  {
   "address": 4255,
   "type": "line",
   "text": "Distance of what was found, 0-3."
  },
  {
   "address": 4256,
   "type": "line",
   "text": "Moves the player one square north on the map (row $28 up) if the square is tunnel or water, then scans up to four squares ahead for water, walls, and side passages."
  },
  {
   "address": 4385,
   "type": "line",
   "text": "How many squares the north scan looks ahead: 4, or 3 on the top rows of the map."
  },
  {
   "address": 4477,
   "type": "line",
   "text": "Moves the map pointer zp36/37 up one row."
  },
  {
   "address": 4491,
   "type": "line",
   "text": "Moves the player one square south on the map; the mirror of $10A0."
  },
  {
   "address": 4690,
   "type": "line",
   "text": "Moves the map pointer zp36/37 down one row."
  },
  {
   "address": 4704,
   "type": "line",
   "text": "Draws the first-person tunnel view from the scan flags: water ahead ($1327), a wall ahead, and side passages on each side; draws a room instead when the player stands on a room square ($15DC)."
  },
  {
   "address": 4799,
   "type": "line",
   "text": "Picks the left-half picture for a plain wall at this distance."
  },
  {
   "address": 4812,
   "type": "line",
   "text": "Picks the right-half picture for a plain wall."
  },
  {
   "address": 4825,
   "type": "line",
   "text": "Picks the left-half picture with a side passage."
  },
  {
   "address": 4838,
   "type": "line",
   "text": "Picks the right-half picture with a side passage."
  },
  {
   "address": 4851,
   "type": "line",
   "text": "Picks the left-half picture with a dead end ahead."
  },
  {
   "address": 4864,
   "type": "line",
   "text": "Picks the right-half picture with a dead end ahead."
  },
  {
   "address": 4877,
   "type": "line",
   "text": "Picks the left-half picture with a dead end and a side passage."
  },
  {
   "address": 4890,
   "type": "line",
   "text": "Picks the right-half picture with a dead end and a side passage."
  },
  {
   "address": 4903,
   "type": "line",
   "text": "Picks both halves of the view with water ahead."
  },
  {
   "address": 4928,
   "type": "line",
   "text": "Addresses of the tunnel view pictures, two bytes per distance, one table per kind of half view ($1340-$138F). Each picture is 10 by 18 characters."
  },
  {
   "address": 4929,
   "type": "line",
   "text": "Rest of the plain-wall left pictures, by distance."
  },
  {
   "address": 4936,
   "type": "line",
   "text": "Left pictures with a side passage, by distance."
  },
  {
   "address": 4937,
   "type": "line",
   "text": "Rest of the passage left pictures."
  },
  {
   "address": 4944,
   "type": "line",
   "text": "Left pictures with a dead end."
  },
  {
   "address": 4945,
   "type": "line",
   "text": "Rest of the dead-end left pictures."
  },
  {
   "address": 4952,
   "type": "line",
   "text": "Left pictures with a dead end and a passage."
  },
  {
   "address": 4953,
   "type": "line",
   "text": "Rest of the dead-end-and-passage left pictures."
  },
  {
   "address": 4960,
   "type": "line",
   "text": "Left pictures with water ahead."
  },
  {
   "address": 4961,
   "type": "line",
   "text": "Rest of the water left pictures."
  },
  {
   "address": 4968,
   "type": "line",
   "text": "Right pictures, plain wall."
  },
  {
   "address": 4969,
   "type": "line",
   "text": "Rest of the plain-wall right pictures."
  },
  {
   "address": 4976,
   "type": "line",
   "text": "Right pictures with a side passage."
  },
  {
   "address": 4977,
   "type": "line",
   "text": "Rest of the passage right pictures."
  },
  {
   "address": 4984,
   "type": "line",
   "text": "Right pictures with a dead end."
  },
  {
   "address": 4985,
   "type": "line",
   "text": "Rest of the dead-end right pictures."
  },
  {
   "address": 4992,
   "type": "line",
   "text": "Right pictures with a dead end and a passage."
  },
  {
   "address": 4993,
   "type": "line",
   "text": "Rest of the dead-end-and-passage right pictures."
  },
  {
   "address": 5000,
   "type": "line",
   "text": "Right pictures with water ahead."
  },
  {
   "address": 5001,
   "type": "line",
   "text": "Rest of the water right pictures."
  },
  {
   "address": 5008,
   "type": "line",
   "text": "Addresses of the map windows shown in the corner, two bytes each."
  },
  {
   "address": 5009,
   "type": "line",
   "text": "Rest of the map window addresses, one per window."
  },
  {
   "address": 5026,
   "type": "line",
   "text": "Addresses of the water view pictures."
  },
  {
   "address": 5035,
   "type": "line",
   "text": "Address of the left half of the view to draw."
  },
  {
   "address": 5036,
   "type": "line",
   "text": "High byte of the left picture's address."
  },
  {
   "address": 5037,
   "type": "line",
   "text": "Address of the right half of the view to draw."
  },
  {
   "address": 5038,
   "type": "line",
   "text": "High byte of the right picture's address."
  },
  {
   "address": 5039,
   "type": "line",
   "text": "Which map window is shown, an even index into $1390."
  },
  {
   "address": 5040,
   "type": "line",
   "text": "Copies the two picture halves to the screen at $4000 and $400A, 10 by 18 characters each, colouring each character from the table at $B4F8."
  },
  {
   "address": 5206,
   "type": "line",
   "text": "Operand of an adc read by $169D as a table of room picture bytes, an overlap of code and data."
  },
  {
   "address": 5227,
   "type": "line",
   "text": "Scrolls the map window when the player nears its edge: sideways at columns 3 and $10, up or down by twelve rows at the top and bottom."
  },
  {
   "address": 5401,
   "type": "line",
   "text": "Points the copy loop at the map window for $13AF and draws it onto the screen at $4015 and its colours."
  },
  {
   "address": 5481,
   "type": "line",
   "text": "Copy loop source, patched by $1519 to the chosen map window."
  },
  {
   "address": 5482,
   "type": "line",
   "text": "High byte of the map window source, patched by $1525."
  },
  {
   "address": 5484,
   "type": "line",
   "text": "Low byte of the screen destination, patched and stepped a row at a time."
  },
  {
   "address": 5485,
   "type": "line",
   "text": "High byte of the screen destination."
  },
  {
   "address": 5491,
   "type": "line",
   "text": "Low byte of the colour destination."
  },
  {
   "address": 5492,
   "type": "line",
   "text": "High byte of the colour destination."
  },
  {
   "address": 5497,
   "type": "line",
   "text": "Low byte of the second half's source, $AB on."
  },
  {
   "address": 5498,
   "type": "line",
   "text": "High byte of the second half's source."
  },
  {
   "address": 5500,
   "type": "line",
   "text": "Low byte of the second half's screen destination."
  },
  {
   "address": 5501,
   "type": "line",
   "text": "High byte of the second half's screen destination."
  },
  {
   "address": 5507,
   "type": "line",
   "text": "Low byte of the second half's colour destination."
  },
  {
   "address": 5508,
   "type": "line",
   "text": "High byte of the second half's colour destination; the loop then steps every destination down a row after each 19 characters, until 190 characters are drawn."
  },
  {
   "address": 5596,
   "type": "line",
   "text": "Finds which of the ten rooms the player stands in by matching the map pointer, column, and map window against $1859-$1881, notes the room's object ($19D1) and hotspot box ($1891/$1931), shows its message if it has no object box, and copies the room picture (from $17EB by the room's kind) onto the screen. Room 0 starts the timed event at $175D."
  },
  {
   "address": 5774,
   "type": "line",
   "text": "Low byte of the room picture source, patched by $1672."
  },
  {
   "address": 5775,
   "type": "line",
   "text": "High byte of the room picture source."
  },
  {
   "address": 5777,
   "type": "line",
   "text": "Low byte of the room's screen destination."
  },
  {
   "address": 5778,
   "type": "line",
   "text": "High byte of the room's screen destination."
  },
  {
   "address": 5784,
   "type": "line",
   "text": "Low byte of the room's colour destination."
  },
  {
   "address": 5785,
   "type": "line",
   "text": "High byte of the room's colour destination."
  },
  {
   "address": 5790,
   "type": "line",
   "text": "Low byte of the second half of the room picture."
  },
  {
   "address": 5791,
   "type": "line",
   "text": "High byte of the second half of the room picture."
  },
  {
   "address": 5793,
   "type": "line",
   "text": "Low byte of the room's second-half screen destination."
  },
  {
   "address": 5794,
   "type": "line",
   "text": "High byte of the room's second-half screen destination."
  },
  {
   "address": 5800,
   "type": "line",
   "text": "Low byte of the room's second-half colour destination."
  },
  {
   "address": 5801,
   "type": "line",
   "text": "High byte of the second half's colour destination; the loop steps every destination down a row after each 20 characters, until 180 are drawn, then starts the room 0 event if it is due."
  },
  {
   "address": 5927,
   "type": "line",
   "text": "Sets up the sprite shapes and positions for the room event from $17F3, $1812, and $181C."
  },
  {
   "address": 5947,
   "type": "line",
   "text": "Sprite pointer pair patched before each call of $1727."
  },
  {
   "address": 5948,
   "type": "line",
   "text": "High byte of the sprite table read by $1734, patched with $173B before each call."
  },
  {
   "address": 5979,
   "type": "line",
   "text": "Frame count of the room 0 event; 0 when no event runs."
  },
  {
   "address": 5980,
   "type": "line",
   "text": "Set once the room 0 event has run."
  },
  {
   "address": 5981,
   "type": "line",
   "text": "Steps the room 0 event by its timer: changes the sprites at frames $0F and $32, calls $C298 at $50, adds 500 points ($3DEC five times) and redraws ($3E37) at $96, and ends at $BE."
  },
  {
   "address": 6123,
   "type": "line",
   "text": "Address of each room picture kind."
  },
  {
   "address": 6124,
   "type": "line",
   "text": "Rest of the room picture addresses."
  },
  {
   "address": 6131,
   "type": "line",
   "text": "Sprite positions for the room event."
  },
  {
   "address": 6162,
   "type": "line",
   "text": "Sprite colours for the room event."
  },
  {
   "address": 6172,
   "type": "line",
   "text": "Sprite frames for the room event, in groups of ten."
  },
  {
   "address": 6232,
   "type": "line",
   "text": "Picture kind of the current room."
  },
  {
   "address": 6233,
   "type": "line",
   "text": "Low byte of the map pointer for each of the ten rooms."
  },
  {
   "address": 6243,
   "type": "line",
   "text": "High byte of the map pointer for each room."
  },
  {
   "address": 6253,
   "type": "line",
   "text": "Map column of each room."
  },
  {
   "address": 6263,
   "type": "line",
   "text": "Picture kind of each room."
  },
  {
   "address": 6273,
   "type": "line",
   "text": "Map window each room appears in."
  },
  {
   "address": 6283,
   "type": "line",
   "text": "Left of the current room's object box."
  },
  {
   "address": 6284,
   "type": "line",
   "text": "Bottom of the current room's object box."
  },
  {
   "address": 6285,
   "type": "line",
   "text": "Right of the current room's object box."
  },
  {
   "address": 6286,
   "type": "line",
   "text": "Bottom right of the current room's object box."
  },
  {
   "address": 6287,
   "type": "line",
   "text": "Object in the current room."
  },
  {
   "address": 6288,
   "type": "line",
   "text": "Current room, 0-9; 10 when not in a room."
  },
  {
   "address": 6289,
   "type": "line",
   "text": "Left and top of each room's object boxes."
  },
  {
   "address": 6290,
   "type": "line",
   "text": "Rest of the object boxes' left and top edges."
  },
  {
   "address": 6449,
   "type": "line",
   "text": "Right and bottom of each room's object boxes; $FF means no box."
  },
  {
   "address": 6450,
   "type": "line",
   "text": "Rest of the object boxes' right and bottom edges."
  },
  {
   "address": 6609,
   "type": "line",
   "text": "Message number of each object box, eight per room; the number also says what the object does: 0 flares, 1 compass, 3 the clear exit, $10 Viet Cong ammunition (refills the magazine), $11 medical supplies (heals a wound), $12 an object already taken; the rest (poetry, a table, cold tea, a diary, and so on) only show their message."
  },
  {
   "address": 6614,
   "type": "line",
   "text": "Room 0, box 6: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6615,
   "type": "line",
   "text": "Room 0, box 7: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6620,
   "type": "line",
   "text": "Room 1, box 4: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6625,
   "type": "line",
   "text": "Room 2, box 1: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6626,
   "type": "line",
   "text": "Room 2, box 2: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6633,
   "type": "line",
   "text": "Room 3, box 1: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6634,
   "type": "line",
   "text": "Room 3, box 2: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6637,
   "type": "line",
   "text": "Room 3, box 5: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6646,
   "type": "line",
   "text": "Room 4, box 6: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6647,
   "type": "line",
   "text": "Room 4, box 7: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6649,
   "type": "line",
   "text": "Room 5, box 1: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6650,
   "type": "line",
   "text": "Room 5, box 2: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6653,
   "type": "line",
   "text": "Room 5, box 5: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6668,
   "type": "line",
   "text": "Room 7, box 4: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6673,
   "type": "line",
   "text": "Room 8, box 1: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6674,
   "type": "line",
   "text": "Room 8, box 2: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6683,
   "type": "line",
   "text": "Room 9, box 3: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6684,
   "type": "line",
   "text": "Room 9, box 4: the object message number, reset by the start code at $05C9 so that taken objects come back in a new game."
  },
  {
   "address": 6689,
   "type": "line",
   "text": "Start of the night in the dugout, reached once the tunnels are left with the flares, the second flare pack, and the compass (and from the title at $B6CD after a lost life there): resets the sprites, crosshair, morale, flares, and rounds, sets the dawn countdown at $3DC9, draws the dugout from $BD00, shows \"Night has fallen, and you are in a dugout\" and the warning that the Viet Cong will attack, then runs the dugout loop."
  },
  {
   "address": 7122,
   "type": "line",
   "text": "Dugout loop, once per frame at raster $AA: counts down to dawn ($3DC9/$3DCA); at zero shows \"Well done! Section completed\", scores 5000 points, and goes to the end screen ($B6DE); otherwise moves the crosshair ($1F34), fires ($2008), and speeds up the enemies as time passes."
  },
  {
   "address": 7248,
   "type": "line",
   "text": "Bunker frame: moves the crosshair sprite with the joystick within its box, flickers the flash colour, plays random distant gunfire through $EE19, then updates enemies ($2367), the flare ($1E50), and the morale check ($1D55)."
  },
  {
   "address": 7508,
   "type": "line",
   "text": "Running sum used to pick when distant gunfire sounds."
  },
  {
   "address": 7509,
   "type": "line",
   "text": "Ends the bunker when $3F0A reaches 4 ($3BB7); after $1E hits shows a message and takes morale."
  },
  {
   "address": 7546,
   "type": "line",
   "text": "Count of hits taken in the bunker."
  },
  {
   "address": 7547,
   "type": "line",
   "text": "On the flare key, if a flare is left ($3ECE) and none is burning: takes one ($3E99), plays the launch sound, and starts the flare's climb ($1E4C) and burn ($1E4D)."
  },
  {
   "address": 7598,
   "type": "line",
   "text": "Draws the rising flare on the colour screen, three rows higher each step for five steps."
  },
  {
   "address": 7604,
   "type": "line",
   "text": "Low byte of the flare's colour address, patched by $1DA5 and stepped up a row each frame by $1E26."
  },
  {
   "address": 7630,
   "type": "line",
   "text": "High byte of the flare's colour address; the routine copies it into the eight stores below."
  },
  {
   "address": 7660,
   "type": "line",
   "text": "Low byte of the first store, written by $1DB5."
  },
  {
   "address": 7661,
   "type": "line",
   "text": "High byte of the first store."
  },
  {
   "address": 7664,
   "type": "line",
   "text": "Low byte of the second store."
  },
  {
   "address": 7665,
   "type": "line",
   "text": "High byte of the second store; the next row of the flare follows."
  },
  {
   "address": 7674,
   "type": "line",
   "text": "Low byte of the third store."
  },
  {
   "address": 7675,
   "type": "line",
   "text": "High byte of the third store."
  },
  {
   "address": 7678,
   "type": "line",
   "text": "Low byte of the fourth store."
  },
  {
   "address": 7679,
   "type": "line",
   "text": "High byte of the fourth store; the trail behind the flare follows."
  },
  {
   "address": 7688,
   "type": "line",
   "text": "Low byte of the fifth store."
  },
  {
   "address": 7689,
   "type": "line",
   "text": "High byte of the fifth store."
  },
  {
   "address": 7692,
   "type": "line",
   "text": "Low byte of the sixth store."
  },
  {
   "address": 7693,
   "type": "line",
   "text": "High byte of the sixth store; the last row of the trail follows."
  },
  {
   "address": 7702,
   "type": "line",
   "text": "Low byte of the seventh store."
  },
  {
   "address": 7703,
   "type": "line",
   "text": "High byte of the seventh store."
  },
  {
   "address": 7706,
   "type": "line",
   "text": "Low byte of the eighth store."
  },
  {
   "address": 7707,
   "type": "line",
   "text": "High byte of the eighth store; then the climb steps, and after five steps the trail's colours are put back."
  },
  {
   "address": 7756,
   "type": "line",
   "text": "Step of the rising flare, 0 when none."
  },
  {
   "address": 7757,
   "type": "line",
   "text": "Stage of the burning flare, 0 when none; lights the screen in stages from the tables at $1EE4."
  },
  {
   "address": 7758,
   "type": "line",
   "text": "Frames in the current flare stage, up to $32."
  },
  {
   "address": 7759,
   "type": "line",
   "text": "Returns while no flare burns."
  },
  {
   "address": 7760,
   "type": "line",
   "text": "Every $32 frames moves the flare to its next stage, setting the screen colours, enemy visibility, and sprite colours from $1EE4-$1F2C; after stage 9 the dark returns."
  },
  {
   "address": 7772,
   "type": "line",
   "text": "Operand of the flare's colour setting at $1E5B, patched from $1F14: the frames each flare stage lasts; the stage step follows."
  },
  {
   "address": 7876,
   "type": "line",
   "text": "A second rts after the flare's sound at $1EC0, never reached."
  },
  {
   "address": 7877,
   "type": "line",
   "text": "After the last stage: the dark returns and the enemies are hidden again."
  },
  {
   "address": 7908,
   "type": "line",
   "text": "Colours and settings for each flare stage, eight bytes per table."
  },
  {
   "address": 7916,
   "type": "line",
   "text": "Multicolour 1 of the top band per flare stage."
  },
  {
   "address": 7924,
   "type": "line",
   "text": "Background of the middle band per flare stage."
  },
  {
   "address": 7932,
   "type": "line",
   "text": "Multicolour 1 of the middle band per flare stage."
  },
  {
   "address": 7940,
   "type": "line",
   "text": "Background of the bottom band per flare stage."
  },
  {
   "address": 7948,
   "type": "line",
   "text": "Multicolour 1 of the bottom band per flare stage."
  },
  {
   "address": 7956,
   "type": "line",
   "text": "Length of each flare stage."
  },
  {
   "address": 7964,
   "type": "line",
   "text": "Enemy sprite colour per flare stage."
  },
  {
   "address": 7972,
   "type": "line",
   "text": "Sprite multicolour 0 per flare stage."
  },
  {
   "address": 7980,
   "type": "line",
   "text": "Sprite multicolour 1 per flare stage."
  },
  {
   "address": 7988,
   "type": "line",
   "text": "Reads the joystick into $0306 and moves the crosshair up, down, left, and right."
  },
  {
   "address": 8064,
   "type": "line",
   "text": "Sets the crosshair moving down."
  },
  {
   "address": 8070,
   "type": "line",
   "text": "Sets the crosshair moving up, stopping at the top of its box."
  },
  {
   "address": 8083,
   "type": "line",
   "text": "Sets the crosshair moving left, stopping at the left of its box."
  },
  {
   "address": 8096,
   "type": "line",
   "text": "Sets the crosshair moving right, stopping at the right of its box."
  },
  {
   "address": 8109,
   "type": "line",
   "text": "Counts shots so the gunfire sound plays every third one."
  },
  {
   "address": 8110,
   "type": "line",
   "text": "Frames fire has been held, 0 when not firing."
  },
  {
   "address": 8111,
   "type": "line",
   "text": "Saved crosshair Y while firing."
  },
  {
   "address": 8112,
   "type": "line",
   "text": "Saved crosshair X while firing."
  },
  {
   "address": 8113,
   "type": "line",
   "text": "Saved crosshair X high bit."
  },
  {
   "address": 8114,
   "type": "line",
   "text": "On fire, saves the crosshair position and starts the burst."
  },
  {
   "address": 8148,
   "type": "line",
   "text": "Ends the burst and puts the crosshair back where it was, if it is inside the field."
  },
  {
   "address": 8200,
   "type": "line",
   "text": "While fire is held (up to $22 frames), drifts the aim with the joystick for recoil, uses ammunition ($3E50), plays the gunfire sound, and checks each of the three enemies against the crosshair; a hit sets the enemy dying and adds 300 points through $3DEC."
  },
  {
   "address": 8374,
   "type": "line",
   "text": "Crosshair X halved for hit tests."
  },
  {
   "address": 8375,
   "type": "line",
   "text": "Enemy X halved for hit tests."
  },
  {
   "address": 8376,
   "type": "line",
   "text": "Hit test of the burst against the three enemies in turn ($22A5, $22A6, $22A4): an enemy that is up, within $0A of the crosshair's Y and 5 of its halved X, starts dying, its sprite drops, and 300 points are scored."
  },
  {
   "address": 8693,
   "type": "line",
   "text": "Below the field, aiming at the flare box fires a flare ($1D7B); otherwise the burst sprays from the table at $2282."
  },
  {
   "address": 8831,
   "type": "line",
   "text": "Step through the spray table, 0-9."
  },
  {
   "address": 8832,
   "type": "line",
   "text": "Crosshair X halved, for the edge tests."
  },
  {
   "address": 8833,
   "type": "line",
   "text": "Alternates so the spray moves every second frame."
  },
  {
   "address": 8834,
   "type": "line",
   "text": "Y drift of the burst for each frame."
  },
  {
   "address": 8848,
   "type": "line",
   "text": "X drift of the burst for each frame."
  },
  {
   "address": 8862,
   "type": "line",
   "text": "Death animation frame of each of the three enemies."
  },
  {
   "address": 8863,
   "type": "line",
   "text": "Death frame of enemy 2."
  },
  {
   "address": 8864,
   "type": "line",
   "text": "Death frame of enemy 3."
  },
  {
   "address": 8865,
   "type": "line",
   "text": "Frame timer of each enemy."
  },
  {
   "address": 8866,
   "type": "line",
   "text": "Timer of enemy 2."
  },
  {
   "address": 8867,
   "type": "line",
   "text": "Timer of enemy 3."
  },
  {
   "address": 8868,
   "type": "line",
   "text": "State of each enemy: 0 hidden, 1-4 rising, 5-6 shooting, 7-8 ducking, $0A leaving, $0B dying."
  },
  {
   "address": 8869,
   "type": "line",
   "text": "State of enemy 2."
  },
  {
   "address": 8870,
   "type": "line",
   "text": "State of enemy 3."
  },
  {
   "address": 8871,
   "type": "line",
   "text": "Which spot each enemy uses next, 0-15."
  },
  {
   "address": 8874,
   "type": "line",
   "text": "Timer values written into the operands at $2512 and $258B, which reload an enemy's timer at its later states."
  },
  {
   "address": 8892,
   "type": "line",
   "text": "X of each spot where an enemy can appear."
  },
  {
   "address": 8916,
   "type": "line",
   "text": "Y of each spot."
  },
  {
   "address": 8940,
   "type": "line",
   "text": "X high bit of each spot."
  },
  {
   "address": 8964,
   "type": "line",
   "text": "Sprite frames for each enemy's rise and death, two tables per enemy."
  },
  {
   "address": 8980,
   "type": "line",
   "text": "Second sprite frames of enemy 1's steps."
  },
  {
   "address": 8996,
   "type": "line",
   "text": "First sprite frames of enemy 2's steps."
  },
  {
   "address": 9012,
   "type": "line",
   "text": "Second sprite frames of enemy 2's steps."
  },
  {
   "address": 9028,
   "type": "line",
   "text": "First sprite frames of enemy 3's steps."
  },
  {
   "address": 9044,
   "type": "line",
   "text": "Second sprite frames of enemy 3's steps."
  },
  {
   "address": 9060,
   "type": "line",
   "text": "Frames between enemy animation steps; falls as dawn nears."
  },
  {
   "address": 9061,
   "type": "line",
   "text": "Counts down to the next speed-up."
  },
  {
   "address": 9063,
   "type": "line",
   "text": "Animates the three enemies: plays the death frames of dying ones, brings hidden ones up at their next spot, steps them through rising, shooting, and ducking; a shooting enemy fires back with a sound, counts a hit on the player ($1D7A), and shows the muzzle flash. In the last minute before dawn no new enemies appear."
  },
  {
   "address": 9490,
   "type": "line",
   "text": "Operand of the enemy step at $2511, patched by $23E4 from the spot's delay: frames an enemy stays up shooting. The code after it plays the muzzle flash and the enemy's shot, counts the hit on the player, and steps on."
  },
  {
   "address": 9611,
   "type": "line",
   "text": "Operand at $258A, patched by $23E7: frames the enemy ducks before hiding; then the enemy is reset."
  },
  {
   "address": 9640,
   "type": "line",
   "text": "A spare byte."
  },
  {
   "address": 9641,
   "type": "line",
   "text": "Hides an enemy and parks its sprite off screen."
  },
  {
   "address": 9702,
   "type": "line",
   "text": "Counts frames of each enemy's muzzle flash."
  },
  {
   "address": 9705,
   "type": "line",
   "text": "X of each enemy's muzzle flash."
  },
  {
   "address": 9706,
   "type": "line",
   "text": "Muzzle flash X of enemy 2."
  },
  {
   "address": 9707,
   "type": "line",
   "text": "Muzzle flash X of enemy 3."
  },
  {
   "address": 9708,
   "type": "line",
   "text": "Y of each enemy's muzzle flash."
  },
  {
   "address": 9709,
   "type": "line",
   "text": "Muzzle flash Y of enemy 2."
  },
  {
   "address": 9710,
   "type": "line",
   "text": "Muzzle flash Y of enemy 3."
  },
  {
   "address": 9711,
   "type": "line",
   "text": "X high bit of each enemy."
  },
  {
   "address": 9712,
   "type": "line",
   "text": "X high bit of enemy 2."
  },
  {
   "address": 9713,
   "type": "line",
   "text": "X high bit of enemy 3."
  },
  {
   "address": 9714,
   "type": "line",
   "text": "Sets the sprite frames of enemy 1 from step Y."
  },
  {
   "address": 9727,
   "type": "line",
   "text": "Sets the sprite frames of enemy 2."
  },
  {
   "address": 9740,
   "type": "line",
   "text": "Sets the sprite frames of enemy 3."
  },
  {
   "address": 9753,
   "type": "line",
   "text": "Leftover code from an earlier build, never called."
  },
  {
   "address": 9818,
   "type": "line",
   "text": "Crosshair Y in the bunker."
  },
  {
   "address": 9819,
   "type": "line",
   "text": "Spare crosshair Y bytes, cleared at the start and never read."
  },
  {
   "address": 9820,
   "type": "line",
   "text": "Further spare bytes cleared at the start."
  },
  {
   "address": 9822,
   "type": "line",
   "text": "Crosshair X in the bunker."
  },
  {
   "address": 9823,
   "type": "line",
   "text": "Spare crosshair X bytes, cleared at the start and never read."
  },
  {
   "address": 9824,
   "type": "line",
   "text": "Further spare X bytes cleared at the start."
  },
  {
   "address": 9826,
   "type": "line",
   "text": "Crosshair X halved."
  },
  {
   "address": 9833,
   "type": "line",
   "text": "A flag cleared at the start, never read."
  },
  {
   "address": 9834,
   "type": "line",
   "text": "A second flag cleared at the start, never read."
  },
  {
   "address": 9835,
   "type": "line",
   "text": "A third flag cleared at the start, never read."
  },
  {
   "address": 9836,
   "type": "line",
   "text": "Set while the game is paused."
  },
  {
   "address": 9849,
   "type": "line",
   "text": "Crosshair X movement this frame."
  },
  {
   "address": 9852,
   "type": "line",
   "text": "Crosshair Y movement this frame."
  },
  {
   "address": 9858,
   "type": "line",
   "text": "Value for the sprite Y-expand register."
  },
  {
   "address": 9859,
   "type": "line",
   "text": "When five keys are held together, sets $B72E to end the game."
  },
  {
   "address": 9900,
   "type": "line",
   "text": "Stops all three sound voices."
  },
  {
   "address": 9922,
   "type": "line",
   "text": "Plays a frame of music or of sound effects, by $2716."
  },
  {
   "address": 9935,
   "type": "line",
   "text": "A stray rts byte between routines."
  },
  {
   "address": 9936,
   "type": "line",
   "text": "The music key turns the tune on (restarting it for this section) and the effects key turns it off."
  },
  {
   "address": 10006,
   "type": "line",
   "text": "Set while the tune plays instead of sound effects."
  },
  {
   "address": 10007,
   "type": "line",
   "text": "Value for the horizontal scroll register."
  },
  {
   "address": 10008,
   "type": "line",
   "text": "Sprite frame of the crosshair."
  },
  {
   "address": 10009,
   "type": "line",
   "text": "Colour of the crosshair."
  },
  {
   "address": 10010,
   "type": "line",
   "text": "Raster interrupt at the top of the screen: sets the scroll, screen, and colours, places the crosshair and the two status sprites, and chains to $27BC on line $28."
  },
  {
   "address": 10172,
   "type": "line",
   "text": "Raster interrupt on line $28: sets the sprite colours, sizes, and positions for the play area, and chains to $2874 on line $7D."
  },
  {
   "address": 10214,
   "type": "line",
   "text": "Low byte of the next interrupt: $2874 in the tunnels (set by $0504), $2B99 in the dugout (set by $1A21)."
  },
  {
   "address": 10219,
   "type": "line",
   "text": "High byte of the next interrupt."
  },
  {
   "address": 10224,
   "type": "line",
   "text": "Raster line of the next interrupt; the rest of the handler sets the sprite registers of the play area and copies the sprites from $291C."
  },
  {
   "address": 10262,
   "type": "line",
   "text": "Copies the sprite positions, colours, and frames for the enemies, and in the tunnels overlays the two sprites of the hand ($C1BB)."
  },
  {
   "address": 10348,
   "type": "line",
   "text": "Values for the sprite multicolour and X-expand registers, one pair per band of the screen."
  },
  {
   "address": 10349,
   "type": "line",
   "text": "Sprite multicolour flags of the second band."
  },
  {
   "address": 10350,
   "type": "line",
   "text": "Sprite X-expand flags of the first band."
  },
  {
   "address": 10351,
   "type": "line",
   "text": "Sprite X-expand flags of the second band."
  },
  {
   "address": 10352,
   "type": "line",
   "text": "Sprite X-expand flags of the third band."
  },
  {
   "address": 10353,
   "type": "line",
   "text": "Sprite X high bits, built during the frame."
  },
  {
   "address": 10354,
   "type": "line",
   "text": "Sprite X high bits copied for the interrupt."
  },
  {
   "address": 10356,
   "type": "line",
   "text": "Raster interrupt on line $7D: second band of sprites, then chains to $28C6 on line $91."
  },
  {
   "address": 10438,
   "type": "line",
   "text": "Raster interrupt on line $91: third band of sprites, sets the frame flag $09D1, then chains to $2950 on line $CB."
  },
  {
   "address": 10456,
   "type": "line",
   "text": "Raster line of the third band's interrupt, patched by $0513 and $B6B6; the handler sets the third band's sprites and the frame flag."
  },
  {
   "address": 10524,
   "type": "line",
   "text": "Sprite X and Y positions for the play area, two bytes per sprite."
  },
  {
   "address": 10525,
   "type": "line",
   "text": "Y of sprite 1 (the muzzle flash)."
  },
  {
   "address": 10526,
   "type": "line",
   "text": "X of sprite 2 (enemy 1)."
  },
  {
   "address": 10527,
   "type": "line",
   "text": "Y of sprite 2."
  },
  {
   "address": 10528,
   "type": "line",
   "text": "X of sprite 3 (enemy 1's lower half)."
  },
  {
   "address": 10529,
   "type": "line",
   "text": "Y of sprite 3."
  },
  {
   "address": 10530,
   "type": "line",
   "text": "X of sprite 4 (enemy 2)."
  },
  {
   "address": 10531,
   "type": "line",
   "text": "Y of sprite 4."
  },
  {
   "address": 10532,
   "type": "line",
   "text": "X of sprite 5 (enemy 2's lower half)."
  },
  {
   "address": 10533,
   "type": "line",
   "text": "Y of sprite 5."
  },
  {
   "address": 10534,
   "type": "line",
   "text": "X of sprite 6 (enemy 3)."
  },
  {
   "address": 10535,
   "type": "line",
   "text": "Y of sprite 6."
  },
  {
   "address": 10536,
   "type": "line",
   "text": "X of sprite 7 (enemy 3's lower half)."
  },
  {
   "address": 10537,
   "type": "line",
   "text": "Y of sprite 7."
  },
  {
   "address": 10538,
   "type": "line",
   "text": "Sprite positions of the second band."
  },
  {
   "address": 10544,
   "type": "line",
   "text": "Sprite positions of the third band."
  },
  {
   "address": 10550,
   "type": "line",
   "text": "Sprite colours for the play area."
  },
  {
   "address": 10552,
   "type": "line",
   "text": "Colours of sprites 3 and 4."
  },
  {
   "address": 10554,
   "type": "line",
   "text": "Colours of sprites 5 and 6."
  },
  {
   "address": 10556,
   "type": "line",
   "text": "Colour of sprite 7."
  },
  {
   "address": 10557,
   "type": "line",
   "text": "Sprite colours of the second band."
  },
  {
   "address": 10560,
   "type": "line",
   "text": "Sprite colours of the third band."
  },
  {
   "address": 10563,
   "type": "line",
   "text": "Sprite frames for the play area."
  },
  {
   "address": 10564,
   "type": "line",
   "text": "Frame of enemy 1's upper half."
  },
  {
   "address": 10565,
   "type": "line",
   "text": "Frame of enemy 1's lower half."
  },
  {
   "address": 10566,
   "type": "line",
   "text": "Frame of enemy 2's upper half."
  },
  {
   "address": 10567,
   "type": "line",
   "text": "Frame of enemy 2's lower half."
  },
  {
   "address": 10568,
   "type": "line",
   "text": "Frame of enemy 3's upper half."
  },
  {
   "address": 10569,
   "type": "line",
   "text": "Frame of enemy 3's lower half."
  },
  {
   "address": 10570,
   "type": "line",
   "text": "Sprite frames of the second band."
  },
  {
   "address": 10573,
   "type": "line",
   "text": "Sprite frames of the third band."
  },
  {
   "address": 10576,
   "type": "line",
   "text": "Raster interrupt on line $CB: switches to the status panel's sprites and screen mode (unless $03AB is 3), steps the colour cycle $2B98, and chains to $29DF on line $D0."
  },
  {
   "address": 10716,
   "type": "line",
   "text": "Screen and charset value for the message bar."
  },
  {
   "address": 10717,
   "type": "line",
   "text": "Horizontal scroll value for the item panel."
  },
  {
   "address": 10718,
   "type": "line",
   "text": "Saved CIA 2 timer control, restored by each interrupt."
  },
  {
   "address": 10719,
   "type": "line",
   "text": "Raster interrupt on line $D0: sets the charset and fine scroll of the message bar, chains to $2A2F on line $DA."
  },
  {
   "address": 10773,
   "type": "line",
   "text": "Raster line of the next interrupt, patched by $B6B3; the handler goes on to set the message bar."
  },
  {
   "address": 10798,
   "type": "line",
   "text": "Fine scroll of the message bar, 0-7."
  },
  {
   "address": 10799,
   "type": "line",
   "text": "Raster interrupt on line $DA: sets the screen and scroll for the item panel, places the six item sprites, and chains to $2AAD on line $F8."
  },
  {
   "address": 10924,
   "type": "line",
   "text": "Blank sprite frame for the item panel."
  },
  {
   "address": 10925,
   "type": "line",
   "text": "Raster interrupt on line $F8: shows the flare, compass, and exit-map icons, hiding each one already found ($0D52-$0D54), then chains back to $271A, scrolls the message ($2D4E), and plays the sound ($26C2)."
  },
  {
   "address": 11160,
   "type": "line",
   "text": "Frame counter 0-2 stepped by $2950."
  },
  {
   "address": 11161,
   "type": "line",
   "text": "Dugout raster interrupt, installed in the chain by $1A23 in place of $2874: waits for line $62, sets the top band's background and multicolour for the flare, and chains to $2BEC on line $72."
  },
  {
   "address": 11244,
   "type": "line",
   "text": "Dugout raster interrupt on line $72: sets the middle band's colours and puts sprites behind the wall, chaining to $2C38 on line $A0."
  },
  {
   "address": 11280,
   "type": "line",
   "text": "Sprite priority value, patched by $1A70 and $1D8F (behind the dugout wall while a flare climbs), then the band's interrupt chains on."
  },
  {
   "address": 11320,
   "type": "line",
   "text": "Dugout raster interrupt on line $A0: sets the bottom band's colours, blanks the lower sprites, and chains to $2C9B on line $C8."
  },
  {
   "address": 11419,
   "type": "line",
   "text": "Dugout raster interrupt on line $C8: puts the background back to black and the sprites in front, and chains to the panel at $2950."
  },
  {
   "address": 11488,
   "type": "line",
   "text": "Background and multicolour values for each band of the screen."
  },
  {
   "address": 11489,
   "type": "line",
   "text": "Background of the dugout's top band."
  },
  {
   "address": 11490,
   "type": "line",
   "text": "Background of the dugout's middle band."
  },
  {
   "address": 11491,
   "type": "line",
   "text": "Background of the dugout's bottom band."
  },
  {
   "address": 11492,
   "type": "line",
   "text": "Multicolour 0 of the play area, flickered by distant gunfire."
  },
  {
   "address": 11493,
   "type": "line",
   "text": "Multicolour 1 of the play area."
  },
  {
   "address": 11494,
   "type": "line",
   "text": "Multicolour 1 of the dugout's top band."
  },
  {
   "address": 11495,
   "type": "line",
   "text": "Multicolour 1 of the dugout's middle band."
  },
  {
   "address": 11496,
   "type": "line",
   "text": "Multicolour 1 of the dugout's bottom band."
  },
  {
   "address": 11497,
   "type": "line",
   "text": "Crosshair and sprite positions copied each frame."
  },
  {
   "address": 11498,
   "type": "line",
   "text": "Crosshair Y in the sprite table."
  },
  {
   "address": 11499,
   "type": "line",
   "text": "Crosshair X copy."
  },
  {
   "address": 11500,
   "type": "line",
   "text": "Crosshair Y copy, then the rest of the sprite table, cleared at the start."
  },
  {
   "address": 11513,
   "type": "line",
   "text": "Crosshair X high bit."
  },
  {
   "address": 11514,
   "type": "line",
   "text": "A byte cleared at the start, never read."
  },
  {
   "address": 11515,
   "type": "line",
   "text": "A byte cleared at the start, then unused table bytes."
  },
  {
   "address": 11543,
   "type": "line",
   "text": "Starting values used by $04A2."
  },
  {
   "address": 11544,
   "type": "line",
   "text": "A starting value set by $04A7, then unused bytes."
  },
  {
   "address": 11581,
   "type": "line",
   "text": "Starts a message scrolling in from the right."
  },
  {
   "address": 11598,
   "type": "line",
   "text": "Scrolls the message bar a pixel step each frame until it reaches its stop column ($2E71)."
  },
  {
   "address": 11641,
   "type": "line",
   "text": "Moves the message bar one character left and brings in the next character of message $2E6C."
  },
  {
   "address": 11693,
   "type": "line",
   "text": "Low byte of the message text address, patched by $2DA0."
  },
  {
   "address": 11694,
   "type": "line",
   "text": "High byte of the message text address; the character is converted to the bar's charset and placed at the right edge."
  },
  {
   "address": 11704,
   "type": "line",
   "text": "Address of each message's text."
  },
  {
   "address": 11705,
   "type": "line",
   "text": "Rest of the message addresses, two bytes each."
  },
  {
   "address": 11794,
   "type": "line",
   "text": "Start and stop columns of each message's scroll."
  },
  {
   "address": 11795,
   "type": "line",
   "text": "Rest of the message scroll stops."
  },
  {
   "address": 11884,
   "type": "line",
   "text": "Message shown in the bar."
  },
  {
   "address": 11885,
   "type": "line",
   "text": "Scroll position of the message, counting down to its stop."
  },
  {
   "address": 11886,
   "type": "line",
   "text": "Frames the message stays before it scrolls away."
  },
  {
   "address": 11887,
   "type": "line",
   "text": "Next character of the message to bring in."
  },
  {
   "address": 11888,
   "type": "line",
   "text": "Starting scroll position of the message."
  },
  {
   "address": 11889,
   "type": "line",
   "text": "Stop column of the message."
  },
  {
   "address": 11890,
   "type": "line",
   "text": "Texts of the messages in upper-case ASCII, from \"You have found a box of flares\" to \"Killed in action\" and the dugout's opening lines."
  },
  {
   "address": 11954,
   "type": "line",
   "text": "The message texts, bytes $2EB2-$32B1."
  },
  {
   "address": 12978,
   "type": "line",
   "text": "The message texts, bytes $32B2-$358D."
  },
  {
   "address": 13710,
   "type": "line",
   "text": "The game-over message, with the score's six digits written into it by $3BB7."
  },
  {
   "address": 13714,
   "type": "line",
   "text": "The end messages after the score: \"Try again!\", \"Well done! Section completed\", the dugout's opening lines, and padding, bytes $3592-$36EE."
  },
  {
   "address": 14063,
   "type": "line",
   "text": "Run-stop pauses the game ($266C); the unpause key clears it."
  },
  {
   "address": 14103,
   "type": "line",
   "text": "Leftover code and data from an earlier build, never used."
  },
  {
   "address": 14844,
   "type": "line",
   "text": "Fills the screen with spaces in white."
  },
  {
   "address": 14878,
   "type": "line",
   "text": "The end of the screen clear."
  },
  {
   "address": 14882,
   "type": "line",
   "text": "Leftover code, never used."
  },
  {
   "address": 14923,
   "type": "line",
   "text": "Starts the sequence when the player is shot: stops the room event, takes a life ($3ED0), changes the crosshair, and sets up the wipe."
  },
  {
   "address": 14971,
   "type": "line",
   "text": "Every second frame, blanks the view from the top and bottom and the sides inward until they meet, then waits ($3B16)."
  },
  {
   "address": 15001,
   "type": "line",
   "text": "Low byte of the top row to blank, patched and stepped down a row by the wipe."
  },
  {
   "address": 15002,
   "type": "line",
   "text": "High byte of the top row to blank."
  },
  {
   "address": 15011,
   "type": "line",
   "text": "Low byte of the bottom row to blank, stepped up a row by the wipe."
  },
  {
   "address": 15012,
   "type": "line",
   "text": "High byte of the bottom row to blank; the wipe then blanks a column at each side."
  },
  {
   "address": 15083,
   "type": "line",
   "text": "Blanks one column of the view."
  },
  {
   "address": 15103,
   "type": "line",
   "text": "Low byte of the column's screen address, stepped a row at a time."
  },
  {
   "address": 15104,
   "type": "line",
   "text": "High byte of the column's screen address."
  },
  {
   "address": 15126,
   "type": "line",
   "text": "The wipe is done: starts the pause before the message and puts the crosshair back."
  },
  {
   "address": 15157,
   "type": "line",
   "text": "Shows the \"hit\" message, waits, then either goes on with a new life (message $25) or, after the fourth life ($3F0A=4), ends the game ($3BB7)."
  },
  {
   "address": 15287,
   "type": "line",
   "text": "Writes the score into the game-over message, shows it, waits until it has scrolled, and returns to the title ($B6DB)."
  },
  {
   "address": 15352,
   "type": "line",
   "text": "Set while the killed wipe runs."
  },
  {
   "address": 15353,
   "type": "line",
   "text": "Set once the player has been killed until the pause ends."
  },
  {
   "address": 15354,
   "type": "line",
   "text": "Set during the pause after the wipe."
  },
  {
   "address": 15355,
   "type": "line",
   "text": "Frame divider for the wipe."
  },
  {
   "address": 15356,
   "type": "line",
   "text": "Column being blanked."
  },
  {
   "address": 15357,
   "type": "line",
   "text": "Left column of the wipe."
  },
  {
   "address": 15358,
   "type": "line",
   "text": "Right column of the wipe."
  },
  {
   "address": 15359,
   "type": "line",
   "text": "Frames per step of the pause."
  },
  {
   "address": 15360,
   "type": "line",
   "text": "Steps left in the pause."
  },
  {
   "address": 15361,
   "type": "line",
   "text": "Leftover code before the key test, never used."
  },
  {
   "address": 15420,
   "type": "line",
   "text": "Tests the key with matrix code A; sets carry when that key alone is held."
  },
  {
   "address": 15478,
   "type": "line",
   "text": "Saved Y of the key test."
  },
  {
   "address": 15480,
   "type": "line",
   "text": "Keyboard row masks."
  },
  {
   "address": 15488,
   "type": "line",
   "text": "Keyboard column masks."
  },
  {
   "address": 15496,
   "type": "line",
   "text": "Swaps the charset under $4800 with the one at $4000 so the tunnel graphics are in place, unless they already are."
  },
  {
   "address": 15543,
   "type": "line",
   "text": "Swaps the charsets for the bunker."
  },
  {
   "address": 15590,
   "type": "line",
   "text": "Swaps the charsets for the title."
  },
  {
   "address": 15637,
   "type": "line",
   "text": "Which charset set the last swap asked for."
  },
  {
   "address": 15638,
   "type": "line",
   "text": "Swaps eight pages of characters between $4800 and $4000 (or $D000/$D800 under I/O)."
  },
  {
   "address": 15659,
   "type": "line",
   "text": "Low byte of the first charset's source."
  },
  {
   "address": 15660,
   "type": "line",
   "text": "High byte of the first charset's source, stepped a page at a time."
  },
  {
   "address": 15665,
   "type": "line",
   "text": "Low byte of the second charset's address, patched by the callers."
  },
  {
   "address": 15666,
   "type": "line",
   "text": "High byte of the second charset's address: $D8 or $D0."
  },
  {
   "address": 15668,
   "type": "line",
   "text": "Low byte of the first charset's destination."
  },
  {
   "address": 15669,
   "type": "line",
   "text": "High byte of the first charset's destination."
  },
  {
   "address": 15674,
   "type": "line",
   "text": "Low byte of the second charset's destination."
  },
  {
   "address": 15675,
   "type": "line",
   "text": "High byte of the second charset's destination; eight pages are swapped, then the ROMs and I/O are banked back."
  },
  {
   "address": 15699,
   "type": "line",
   "text": "An older score routine, never called."
  },
  {
   "address": 15817,
   "type": "line",
   "text": "Frames until dawn in the bunker, two bytes."
  },
  {
   "address": 15818,
   "type": "line",
   "text": "High byte of the dawn countdown."
  },
  {
   "address": 15819,
   "type": "line",
   "text": "An older copy of the score routine, never called."
  },
  {
   "address": 15852,
   "type": "line",
   "text": "Adds 100 points to the score digits at $02E0."
  },
  {
   "address": 15867,
   "type": "line",
   "text": "Adds 1000 points to the score digits."
  },
  {
   "address": 15927,
   "type": "line",
   "text": "Sets the reload timing and refills the panel bullets."
  },
  {
   "address": 15952,
   "type": "line",
   "text": "Every twelfth call uses a round, blanking a bullet on the panel; a magazine at zero stops firing."
  },
  {
   "address": 15959,
   "type": "line",
   "text": "Operand at $3E56, patched by $3E3E: the reload timing."
  },
  {
   "address": 15961,
   "type": "line",
   "text": "Operand at $3E58, patched by $3E39: the frames between rounds; the round is then used and a bullet blanked on the panel."
  },
  {
   "address": 16004,
   "type": "line",
   "text": "Seven bytes of code nothing reaches."
  },
  {
   "address": 16011,
   "type": "line",
   "text": "Sets the fire delay unless one is running."
  },
  {
   "address": 16022,
   "type": "line",
   "text": "Frames before the gun can fire again."
  },
  {
   "address": 16023,
   "type": "line",
   "text": "Rounds left in the magazine, shown as bullets on the panel; refilled to nine by an ammunition box."
  },
  {
   "address": 16024,
   "type": "line",
   "text": "Counts calls of $3E50."
  },
  {
   "address": 16025,
   "type": "line",
   "text": "Blanks a flare on the panel and takes it from $3ECE; clears the panel flags $0D52 at none left and $0D53 at four."
  },
  {
   "address": 16078,
   "type": "line",
   "text": "Flares left, shown on the panel."
  },
  {
   "address": 16079,
   "type": "line",
   "text": "Frame divider of the flare count."
  },
  {
   "address": 16080,
   "type": "line",
   "text": "Drops morale by $12 ($3F32) and adds a wound mark to the panel ($3EE1)."
  },
  {
   "address": 16097,
   "type": "line",
   "text": "Draws the wound mark for $3F0A on the panel."
  },
  {
   "address": 16138,
   "type": "line",
   "text": "Wounds taken; the game ends at four."
  },
  {
   "address": 16139,
   "type": "line",
   "text": "Screen address of each wound mark."
  },
  {
   "address": 16140,
   "type": "line",
   "text": "Rest of the wound mark addresses."
  },
  {
   "address": 16149,
   "type": "line",
   "text": "Clears the wound marks on the panel."
  },
  {
   "address": 16163,
   "type": "line",
   "text": "Leftover code before the morale bar, never used."
  },
  {
   "address": 16178,
   "type": "line",
   "text": "Takes one point of morale and shortens the morale bar on the panel."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "The title and panel character set at $4800, bytes $4800-$4BFF."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "The title and panel character set at $4800, bytes $4C00-$4FFF."
  },
  {
   "address": 19457,
   "type": "line",
   "text": "Byte of the charset read by $3C88 to tell which set is in place."
  },
  {
   "address": 19521,
   "type": "line",
   "text": "The title and panel character set at $4800, bytes $4C41-$4FE7."
  },
  {
   "address": 20456,
   "type": "line",
   "text": "The last characters of the title charset at $4800, bytes $4FE8-$4FFF."
  },
  {
   "address": 20480,
   "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 $5000-$53FF."
  },
  {
   "address": 21504,
   "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 $5400-$57FF."
  },
  {
   "address": 22528,
   "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 $5800-$5BFF."
  },
  {
   "address": 23552,
   "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 $5C00-$5FFF."
  },
  {
   "address": 24159,
   "type": "line",
   "text": "More sprite shapes, bytes $5E5F-$5FFF."
  },
  {
   "address": 24576,
   "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 $6000-$63FF."
  },
  {
   "address": 25600,
   "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 $6400-$67FF."
  },
  {
   "address": 26624,
   "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 $6800-$6BFF."
  },
  {
   "address": 27648,
   "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 $6C00-$6FFF."
  },
  {
   "address": 28672,
   "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 $7000-$73FF."
  },
  {
   "address": 29535,
   "type": "line",
   "text": "The last sprite shapes, bytes $735F-$775E."
  },
  {
   "address": 29696,
   "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 $7400-$77FF."
  },
  {
   "address": 30559,
   "type": "line",
   "text": "The last sprite shapes, bytes $775F-$7B5E."
  },
  {
   "address": 30720,
   "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 $7800-$7BFF."
  },
  {
   "address": 31583,
   "type": "line",
   "text": "The last sprite shapes, bytes $7B5F-$7F5E."
  },
  {
   "address": 31744,
   "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 $7C00-$7FFF."
  },
  {
   "address": 32607,
   "type": "line",
   "text": "The last sprite shapes, bytes $7F5F-$7FFF."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $8000-$83FF."
  },
  {
   "address": 33792,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $8400-$87FF."
  },
  {
   "address": 34816,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $8800-$8BFF."
  },
  {
   "address": 35840,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $8C00-$8FFF."
  },
  {
   "address": 36864,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $9000-$93FF."
  },
  {
   "address": 37888,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $9400-$97FF."
  },
  {
   "address": 38912,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $9800-$9BFF."
  },
  {
   "address": 39936,
   "type": "line",
   "text": "The tunnel view pictures, 10 by 18 characters each, named by the tables at $1340, bytes $9C00-$9C1F."
  },
  {
   "address": 39968,
   "type": "line",
   "text": "The tunnel map, drawn in the corner window."
  },
  {
   "address": 40032,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $9C60-$A05F."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $A000-$A05F."
  },
  {
   "address": 41056,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $A060-$A45F."
  },
  {
   "address": 42080,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $A460-$A85F."
  },
  {
   "address": 43104,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $A860-$AC5F."
  },
  {
   "address": 44128,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $AC60-$B05F."
  },
  {
   "address": 45152,
   "type": "line",
   "text": "The rest of the tunnel map from $9C20 and the room pictures named by $17EB, bytes $B060-$B1FF."
  },
  {
   "address": 45568,
   "type": "line",
   "text": "Sprite positions, colours ($B226) and frames ($B237) of attack picture 17, named by $C61F, $C659 and $C693."
  },
  {
   "address": 45640,
   "type": "line",
   "text": "Sprite positions, colours and frames of attack pictures 21 to 28, the attacker's death in the script at $C2D5, named by $C61F, $C659 and $C693; all three entries of picture 20 name $B248 too."
  },
  {
   "address": 45826,
   "type": "line",
   "text": "More of the death pictures' layouts, to $B486; then, to $B4D2, one more picture's positions, colours and frames that no entry of $C61F names."
  },
  {
   "address": 46291,
   "type": "line",
   "text": "Frames and positions of the hand sprites ($C143)."
  },
  {
   "address": 46292,
   "type": "line",
   "text": "First frame of the hand."
  },
  {
   "address": 46293,
   "type": "line",
   "text": "Second frame of the hand."
  },
  {
   "address": 46294,
   "type": "line",
   "text": "Colour of the hand."
  },
  {
   "address": 46295,
   "type": "line",
   "text": "Time of the first frame, then the further hand frames, five bytes each, ended by $FF."
  },
  {
   "address": 46328,
   "type": "line",
   "text": "Colour of each character of the view."
  },
  {
   "address": 46360,
   "type": "line",
   "text": "The rest of the character colour table, bytes $B518-$B628."
  },
  {
   "address": 46633,
   "type": "line",
   "text": "Stops the three voices."
  },
  {
   "address": 46655,
   "type": "line",
   "text": "Clears the sprites, the crosshair, and the band colours, clears the screen, and swaps in the title charset with interrupts held."
  },
  {
   "address": 46749,
   "type": "line",
   "text": "Set when the game is over."
  },
  {
   "address": 46761,
   "type": "line",
   "text": "Clears the screen, restores the interrupt chain, and starts the tunnels ($04C6) or, after a lost life in the dugout ($B6D0), the dugout ($1A21)."
  },
  {
   "address": 46800,
   "type": "line",
   "text": "Set when play restarts in the dugout."
  },
  {
   "address": 46801,
   "type": "line",
   "text": "A flag cleared when play starts, never read."
  },
  {
   "address": 46802,
   "type": "line",
   "text": "The quit key leaves play: takes a chance away ($B72E) and goes to the end screen."
  },
  {
   "address": 46811,
   "type": "line",
   "text": "Takes one of the chances in $B72E."
  },
  {
   "address": 46814,
   "type": "line",
   "text": "Resets the display and shows the screen for $B72E: 2 the section title, 1 \"You didn't make it! ... You have one more chance\", 0 \"Your platoon has been destroyed\", or the \"You made it!\" screen."
  },
  {
   "address": 46894,
   "type": "line",
   "text": "Chances left in this section: 2 at the start, then 1, then 0."
  },
  {
   "address": 46895,
   "type": "line",
   "text": "Shows \"The tunnel system\" and \"Press fire to continue\", then waits for fire ($B855)."
  },
  {
   "address": 46939,
   "type": "line",
   "text": "Shows \"You didn't make it! Only one of your platoon members remains at the entrance to the tunnels. You have one more chance. Take control of your man.\""
  },
  {
   "address": 47035,
   "type": "line",
   "text": "Shows \"Your platoon has been destroyed. Press fire\", waits for fire, and goes to the game over ($C41F)."
  },
  {
   "address": 47125,
   "type": "line",
   "text": "Shows \"You made it! Press fire to load the next section\", waits for fire, and loads the next part ($C3F6)."
  },
  {
   "address": 47189,
   "type": "line",
   "text": "Waits for fire, keeping the music key live, then starts play ($B6A9)."
  },
  {
   "address": 47212,
   "type": "line",
   "text": "Texts of the section screens."
  },
  {
   "address": 47247,
   "type": "line",
   "text": "\"The tunnel system\"."
  },
  {
   "address": 47275,
   "type": "line",
   "text": "\"You didn't make it!\""
  },
  {
   "address": 47312,
   "type": "line",
   "text": "\"Only one of your platoon members\""
  },
  {
   "address": 47352,
   "type": "line",
   "text": "\"remains at the entrance to the tunnels.\""
  },
  {
   "address": 47392,
   "type": "line",
   "text": "\"You have one more chance\""
  },
  {
   "address": 47431,
   "type": "line",
   "text": "\"Take control of your man\""
  },
  {
   "address": 47470,
   "type": "line",
   "text": "\"Your platoon has been destroyed\""
  },
  {
   "address": 47511,
   "type": "line",
   "text": "A blank line of the end screen."
  },
  {
   "address": 47552,
   "type": "line",
   "text": "\"Press fire\""
  },
  {
   "address": 47593,
   "type": "line",
   "text": "\"You made it!\""
  },
  {
   "address": 47634,
   "type": "line",
   "text": "\"Press fire to load the next section\", then unused bytes."
  },
  {
   "address": 47675,
   "type": "line",
   "text": "Padding after the section texts, bytes $BA3B-$BCFF."
  },
  {
   "address": 48384,
   "type": "line",
   "text": "The dugout screen, three pages of characters copied to $4000 by $1B11."
  },
  {
   "address": 48448,
   "type": "line",
   "text": "The rest of the first page of the dugout screen, bytes $BD40-$BDFF."
  },
  {
   "address": 48640,
   "type": "line",
   "text": "Second page of the dugout screen."
  },
  {
   "address": 48704,
   "type": "line",
   "text": "The rest of the second page of the dugout screen, bytes $BE40-$BEFF."
  },
  {
   "address": 48896,
   "type": "line",
   "text": "Third page of the dugout screen."
  },
  {
   "address": 48960,
   "type": "line",
   "text": "The rest of the third page of the dugout screen, bytes $BF40-$BFFF."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "Morale, $47 when full."
  },
  {
   "address": 49154,
   "type": "line",
   "text": "Masks for the partly filled end character of the morale bar."
  },
  {
   "address": 49163,
   "type": "line",
   "text": "Draws the status panel: the labels from $C09D-$C0C5 (ammo, morale, flares, score), the full morale bar, the bullets, and in the dugout the flares, with their colours, then the score."
  },
  {
   "address": 49309,
   "type": "line",
   "text": "Labels of the status panel."
  },
  {
   "address": 49319,
   "type": "line",
   "text": "Panel label for morale."
  },
  {
   "address": 49328,
   "type": "line",
   "text": "An unused fifth panel label, never drawn."
  },
  {
   "address": 49339,
   "type": "line",
   "text": "Panel label for flares."
  },
  {
   "address": 49349,
   "type": "line",
   "text": "The fourth panel label, drawn at $437B between the first two."
  },
  {
   "address": 49359,
   "type": "line",
   "text": "A routine nothing calls: turns a sprite position, Y in $039E and X in $039F, into the address of the screen character under it at $4000, left in $2C/$2D."
  },
  {
   "address": 49446,
   "type": "line",
   "text": "Animates the two hand sprites ($C1BB) from the frame table at $B4D3, moving them with the attacker's side; at the end of the table the player has been killed ($C270)."
  },
  {
   "address": 49595,
   "type": "line",
   "text": "Step through the hand animation, 0 when none."
  },
  {
   "address": 49596,
   "type": "line",
   "text": "Frames shown of the current hand frame."
  },
  {
   "address": 49597,
   "type": "line",
   "text": "Frames per hand frame."
  },
  {
   "address": 49598,
   "type": "line",
   "text": "X of the hand sprites."
  },
  {
   "address": 49599,
   "type": "line",
   "text": "Y of the hand sprites."
  },
  {
   "address": 49600,
   "type": "line",
   "text": "Frame of the first hand sprite."
  },
  {
   "address": 49601,
   "type": "line",
   "text": "Frame of the second."
  },
  {
   "address": 49602,
   "type": "line",
   "text": "Colour of the first."
  },
  {
   "address": 49603,
   "type": "line",
   "text": "Colour of the second."
  },
  {
   "address": 49604,
   "type": "line",
   "text": "Returns while no attack runs."
  },
  {
   "address": 49605,
   "type": "line",
   "text": "Steps a Viet Cong attack through its script: kind 1 from ahead ($C2B1), 3 from a side ($C2EE), 4 the attacker's death ($C2D5). Each step gives the picture ($09CC) and its time; $FF means the player is killed ($C270); the knife frame $1E shows the hand and plays the scream."
  },
  {
   "address": 49736,
   "type": "line",
   "text": "Kind of the current attack script."
  },
  {
   "address": 49737,
   "type": "line",
   "text": "Attack frame $0B: the crosshair changes to the gun sight."
  },
  {
   "address": 49776,
   "type": "line",
   "text": "Starts the killed sequence ($3A4B) unless it already runs."
  },
  {
   "address": 49789,
   "type": "line",
   "text": "Clears the attack and holds off the next one for $32 frames."
  },
  {
   "address": 49816,
   "type": "line",
   "text": "Starts the hand animation with its sound."
  },
  {
   "address": 49836,
   "type": "line",
   "text": "Leftover jump, never used."
  },
  {
   "address": 49839,
   "type": "line",
   "text": "Position in the attack script, two bytes per step."
  },
  {
   "address": 49840,
   "type": "line",
   "text": "Frames until the next attack step."
  },
  {
   "address": 49841,
   "type": "line",
   "text": "Script of an attack from ahead: picture and time pairs."
  },
  {
   "address": 49842,
   "type": "line",
   "text": "Rest of the attack-from-ahead script."
  },
  {
   "address": 49877,
   "type": "line",
   "text": "Script of the attacker's death."
  },
  {
   "address": 49878,
   "type": "line",
   "text": "Rest of the attacker's death script."
  },
  {
   "address": 49902,
   "type": "line",
   "text": "Script of an attack from a side passage."
  },
  {
   "address": 49903,
   "type": "line",
   "text": "Rest of the attack-from-side script."
  },
  {
   "address": 49910,
   "type": "line",
   "text": "Time of the first side step."
  },
  {
   "address": 49921,
   "type": "line",
   "text": "Sets up the sprites for attack picture $09CC: multicolour and expansion per band, frames, colours, and the hit box ($C494-$C497), shifted right ($C490) or left ($C491) for side attacks."
  },
  {
   "address": 50100,
   "type": "line",
   "text": "Low byte of the picture's sprite positions address, patched by $C32C."
  },
  {
   "address": 50101,
   "type": "line",
   "text": "High byte of the sprite positions address."
  },
  {
   "address": 50111,
   "type": "line",
   "text": "Low byte of the layout, read again for the shift."
  },
  {
   "address": 50112,
   "type": "line",
   "text": "High byte of the layout; the X positions are then shifted for a side attack."
  },
  {
   "address": 50151,
   "type": "line",
   "text": "Low byte of the sprite colours, patched by $C33E."
  },
  {
   "address": 50152,
   "type": "line",
   "text": "High byte of the sprite colours."
  },
  {
   "address": 50157,
   "type": "line",
   "text": "Low byte of the sprite frames, patched by $C34A."
  },
  {
   "address": 50158,
   "type": "line",
   "text": "High byte of the sprite frames."
  },
  {
   "address": 50166,
   "type": "line",
   "text": "Shuts down the display and interrupts ($C448) and loads LAY3, the next section, with the KERNAL, then starts it at $4000."
  },
  {
   "address": 50207,
   "type": "line",
   "text": "Loads LAY1 for the high-score table after the platoon is destroyed, then starts it at $4000."
  },
  {
   "address": 50248,
   "type": "line",
   "text": "Silences the music, turns off sprites, interrupts, and the screen, banks the ROMs back in, clears zero page, and restores the KERNAL vectors from $FD30."
  },
  {
   "address": 50312,
   "type": "line",
   "text": "The file names \"LAY1\" and \"LAY3\"."
  },
  {
   "address": 50320,
   "type": "line",
   "text": "Set when the attacker comes from the left passage."
  },
  {
   "address": 50321,
   "type": "line",
   "text": "Set when the attacker comes from the right passage."
  },
  {
   "address": 50322,
   "type": "line",
   "text": "Sprite multicolour 0 for the play area."
  },
  {
   "address": 50323,
   "type": "line",
   "text": "Sprite multicolour 1."
  },
  {
   "address": 50324,
   "type": "line",
   "text": "Left, top, right, and bottom of the attacker's hit box."
  },
  {
   "address": 50325,
   "type": "line",
   "text": "Top of the hit box."
  },
  {
   "address": 50326,
   "type": "line",
   "text": "Right of the hit box."
  },
  {
   "address": 50327,
   "type": "line",
   "text": "Bottom of the hit box."
  },
  {
   "address": 50328,
   "type": "line",
   "text": "Sprite multicolour flags of each band for each attack picture."
  },
  {
   "address": 50329,
   "type": "line",
   "text": "Rest of the multicolour flags."
  },
  {
   "address": 50388,
   "type": "line",
   "text": "Sprite X-expand flags for each attack picture."
  },
  {
   "address": 50389,
   "type": "line",
   "text": "Rest of the X-expand flags."
  },
  {
   "address": 50448,
   "type": "line",
   "text": "Hit box of each attack picture, four bytes each."
  },
  {
   "address": 50449,
   "type": "line",
   "text": "Top of the first hit box."
  },
  {
   "address": 50450,
   "type": "line",
   "text": "Right of the first hit box."
  },
  {
   "address": 50451,
   "type": "line",
   "text": "Bottom of the first hit box, then the other boxes."
  },
  {
   "address": 50568,
   "type": "line",
   "text": "X-expand flags of the third band, two bytes to each attack picture, of which $C323 reads the first; the 35 bytes after $C5C1 are spaces and zeros that no picture reaches."
  },
  {
   "address": 50661,
   "type": "line",
   "text": "Sprite multicolours of each attack picture."
  },
  {
   "address": 50662,
   "type": "line",
   "text": "Rest of the sprite multicolours."
  },
  {
   "address": 50719,
   "type": "line",
   "text": "Address of each attack picture's sprite positions, patched into the reads at $C3B3 and $C3BE."
  },
  {
   "address": 50720,
   "type": "line",
   "text": "Rest of the sprite position addresses."
  },
  {
   "address": 50777,
   "type": "line",
   "text": "Address of each attack picture's sprite colours, patched into the read at $C3E6."
  },
  {
   "address": 50778,
   "type": "line",
   "text": "Rest of the sprite colour addresses."
  },
  {
   "address": 50835,
   "type": "line",
   "text": "Address of each attack picture's sprite frames, patched into the read at $C3EC."
  },
  {
   "address": 50836,
   "type": "line",
   "text": "Rest of the sprite frame addresses."
  },
  {
   "address": 50893,
   "type": "line",
   "text": "Sprite positions, colours ($C6E5) and frames ($C6F3) of attack picture 0, named by the first entries of $C61F, $C659 and $C693."
  },
  {
   "address": 50945,
   "type": "line",
   "text": "Sprite positions of attack picture 1, the address the reads at $C3B3 and $C3BE hold until $C301 patches them from $C61F."
  },
  {
   "address": 50975,
   "type": "line",
   "text": "Sprite colours of attack picture 1, the address the read at $C3E6 holds until $C301 patches it from $C659."
  },
  {
   "address": 50988,
   "type": "line",
   "text": "Sprite frames of attack picture 1, the address the read at $C3EC holds until $C301 patches it from $C693; the other pictures' layouts follow."
  },
  {
   "address": 51052,
   "type": "line",
   "text": "The attackers' sprite layouts, colours, and frames named by $C61F-$C694, bytes $C76C-$CB6B."
  },
  {
   "address": 52076,
   "type": "line",
   "text": "The rest of the layouts that $C61F-$C694 name, to $CBCF; then, to $CEFF, more records in the same form that no entry names."
  },
  {
   "address": 52889,
   "type": "line",
   "text": "More of the records that no entry of $C61F-$C694 names, bytes $CE99-$CE9D."
  },
  {
   "address": 52894,
   "type": "line",
   "text": "More of those records, to $CEFF; the music driver uses $CE9E only as the base of its note lengths at $CF7E-$CF9D."
  },
  {
   "address": 52992,
   "type": "line",
   "text": "Workspace of the music driver."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "At the hand-over the tunnels' character set, in the RAM under the I/O chips; $3D16 swaps it with the set at $4800."
  },
  {
   "address": 53337,
   "type": "line",
   "text": "The tunnels' character set under the I/O chips, swapped with $4800 by $3D16, bytes $D059-$D458."
  },
  {
   "address": 54361,
   "type": "line",
   "text": "The tunnels' character set under the I/O chips, swapped with $4800 by $3D16, bytes $D459-$D7FF."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "The dugout character set under the I/O chips, swapped in by $3CB7, bytes $D800-$DBFF."
  },
  {
   "address": 55325,
   "type": "line",
   "text": "Colour memory at row 0, column 29, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55326,
   "type": "line",
   "text": "Colour memory at row 0, column 30, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55365,
   "type": "line",
   "text": "Colour memory at row 1, column 29, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55366,
   "type": "line",
   "text": "Colour memory at row 1, column 30, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55430,
   "type": "line",
   "text": "The dugout character set under the I/O chips, bytes $D886-$D8C7."
  },
  {
   "address": 55496,
   "type": "line",
   "text": "Colour memory at row 5, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55498,
   "type": "line",
   "text": "Colour memory at row 5, column 2, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55504,
   "type": "line",
   "text": "Colour memory at row 5, column 8, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55546,
   "type": "line",
   "text": "Colour memory at row 6, column 10, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55552,
   "type": "line",
   "text": "Colour memory at row 6, column 16, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55576,
   "type": "line",
   "text": "Colour memory at row 7, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55577,
   "type": "line",
   "text": "Colour memory at row 7, column 1, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55616,
   "type": "line",
   "text": "Colour memory at row 8, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55656,
   "type": "line",
   "text": "Colour memory at row 9, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55696,
   "type": "line",
   "text": "Colour memory at row 10, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55736,
   "type": "line",
   "text": "Colour memory at row 11, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55776,
   "type": "line",
   "text": "Colour memory at row 12, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55796,
   "type": "line",
   "text": "Colour memory at row 12, column 20, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55808,
   "type": "line",
   "text": "Colour memory at row 12, column 32, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55824,
   "type": "line",
   "text": "Colour memory at row 13, column 8, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55858,
   "type": "line",
   "text": "Colour memory at row 14, column 2, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 55922,
   "type": "line",
   "text": "The dugout character set under the I/O chips, bytes $DA72-$DA7F."
  },
  {
   "address": 55936,
   "type": "line",
   "text": "Colour memory at row 16, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56000,
   "type": "line",
   "text": "The dugout character set under the I/O chips, bytes $DAC0-$DACF."
  },
  {
   "address": 56016,
   "type": "line",
   "text": "Colour memory at row 18, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56046,
   "type": "line",
   "text": "Colour memory at row 18, column 30, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56056,
   "type": "line",
   "text": "Colour memory at row 19, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56103,
   "type": "line",
   "text": "Colour memory at row 20, column 7, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56115,
   "type": "line",
   "text": "Colour memory at row 20, column 19, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56179,
   "type": "line",
   "text": "The dugout character set under the I/O chips, bytes $DB73-$DBA2."
  },
  {
   "address": 56227,
   "type": "line",
   "text": "Colour memory at row 23, column 11, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56237,
   "type": "line",
   "text": "Colour memory at row 23, column 21, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56256,
   "type": "line",
   "text": "Colour memory at row 24, column 0, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56257,
   "type": "line",
   "text": "Colour memory at row 24, column 1, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56267,
   "type": "line",
   "text": "Colour memory at row 24, column 11, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56277,
   "type": "line",
   "text": "Colour memory at row 24, column 21, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56278,
   "type": "line",
   "text": "Colour memory at row 24, column 22, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56287,
   "type": "line",
   "text": "Colour memory at row 24, column 31, where the code that names it writes colours; in RAM it is part of the second character set."
  },
  {
   "address": 56320,
   "type": "line",
   "text": "The dugout character set under the I/O chips, swapped in by $3CB7, bytes $DC00-$DFFF."
  },
  {
   "address": 56797,
   "type": "line",
   "text": "Placeholder address in the operands of $E132 and the filter code, always patched before it runs."
  },
  {
   "address": 56861,
   "type": "line",
   "text": "The dugout character set under the I/O chips, bytes $DE1D-$DFFF."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Music command: sets the voice's instrument pointer from the pattern table entry named by the next byte, and steps two bytes on."
  },
  {
   "address": 57360,
   "type": "line",
   "text": "Music command: sets the voice's vibrato table from the pattern pointer lists."
  },
  {
   "address": 57376,
   "type": "line",
   "text": "Music command: pushes a repeat count and its return point."
  },
  {
   "address": 57395,
   "type": "line",
   "text": "Music command: ends a pattern and returns to the caller, or repeats it while its count lasts."
  },
  {
   "address": 57435,
   "type": "line",
   "text": "Music command $FD: with bit 7 of its value set, sets those bits in the voice's flags at $CF06; with bit 7 clear, clears them and bit 7."
  },
  {
   "address": 57454,
   "type": "line",
   "text": "Music command: sets the transpose ($E19A) and calls the pattern named by the third byte, pushing the return position."
  },
  {
   "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": "Operand of the ldx # at $E130: the value to compare, written by $E11D."
  },
  {
   "address": 57651,
   "type": "line",
   "text": "Low byte of the operand of the cpx at $E132, the address tested."
  },
  {
   "address": 57652,
   "type": "line",
   "text": "High byte of that operand; then the branch is taken or the command steps five bytes on."
  },
  {
   "address": 57664,
   "type": "line",
   "text": "Jumps on to $E081."
  },
  {
   "address": 57667,
   "type": "line",
   "text": "Music command: sets the filter sweep's start, the operands at $E39E and $E3A3, and its table at $E396/$E39A."
  },
  {
   "address": 57694,
   "type": "line",
   "text": "Special music command $5E: sets the voice's pulse width and its pulse-step table."
  },
  {
   "address": 57740,
   "type": "line",
   "text": "Special music command $8C: sets the transpose and goes back to the start of the pattern three bytes on."
  },
  {
   "address": 57748,
   "type": "line",
   "text": "Special music command $94: sets the voice's transpose ($E19A)."
  },
  {
   "address": 57754,
   "type": "line",
   "text": "Sets the voice's transpose from A: bit 7 set adds the value (with bit 6 as its sign) to the transpose, clear replaces it."
  },
  {
   "address": 57776,
   "type": "line",
   "text": "Stores the voice's transpose in $CF04 for the command before it."
  },
  {
   "address": 57779,
   "type": "line",
   "text": "Steps three bytes on and reads the next command."
  },
  {
   "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 ($E674, $E6C5), through the call it rewrites at $E1C5."
  },
  {
   "address": 57803,
   "type": "line",
   "text": "Stores its value in the voice's $CF17 and sets bit 4 of its flags at $CF06."
  },
  {
   "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 ($E580), 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": "Pushes the music position plus A onto the voice's call stack."
  },
  {
   "address": 57890,
   "type": "line",
   "text": "Starts the tune at offset Y of the song table $E656 (0 the title, 10 the tunnels, 20 the dugout): the three voices' pattern pointers, a note length of 1, all flags, no transpose."
  },
  {
   "address": 57989,
   "type": "line",
   "text": "Each frame for one voice: counts down the current note's length, and at 0 reads the voice's pattern: notes, rests, and commands."
  },
  {
   "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 $E640 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": "Low byte of the operand of the jmp at $E2BC, written from $E640: which command handler runs."
  },
  {
   "address": 58058,
   "type": "line",
   "text": "Low byte of the operand of the jmp at $E2C9, written from the pattern: which special command handler runs; then a note is played: started ($E316) and given its length."
  },
  {
   "address": 58134,
   "type": "line",
   "text": "Starts the voice's note: by its flags, restarts the instrument, restarts the frequency steps, and looks up the note's frequency."
  },
  {
   "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 sweep's start value to $E4EE."
  },
  {
   "address": 58275,
   "type": "line",
   "text": "Operand of the lda at $E3A2, the sweep's start value, written by $E143."
  },
  {
   "address": 58280,
   "type": "line",
   "text": "Called once a frame by the panel interrupt ($26CB): steps one of the three voices' patterns each frame in turn, skipping the pattern step on every fourth frame, then the instrument, frequency, and pulse of all three."
  },
  {
   "address": 58348,
   "type": "line",
   "text": "Which voice reads its pattern this frame, 0 to 2."
  },
  {
   "address": 58349,
   "type": "line",
   "text": "Each frame for a voice: steps its frequency table, a list of 3-byte entries (count, step low, step high)."
  },
  {
   "address": 58446,
   "type": "line",
   "text": "Each frame for a voice: steps its pulse table in the same format and adds the step to its pulse width."
  },
  {
   "address": 58543,
   "type": "line",
   "text": "83 bytes of a filter sweep (zero page $88/$89, $8A), with its operands at $E4DE and $E4DB set by $E382; nothing in this load calls it, so the sweep never runs."
  },
  {
   "address": 58590,
   "type": "line",
   "text": "Operand inside the unused sweep at $E4AF, written by $E39F."
  },
  {
   "address": 58606,
   "type": "line",
   "text": "Bytes of the filter sweep that follow the self-modified operand at $E4EE; no tune in this load turns the filter on, so they never run here."
  },
  {
   "address": 58626,
   "type": "line",
   "text": "Each frame for a voice: turns the gate off at the frame set by the gate-time command, and when the instrument's count runs out reads its next command."
  },
  {
   "address": 58713,
   "type": "line",
   "text": "Low byte of the operand of the jsr at $E558, written from $E573: the instrument command; the voice tables follow."
  },
  {
   "address": 58739,
   "type": "line",
   "text": "Low bytes of the instrument command handlers in the page at $E000: $E093, $E0B9, $E08F, $E0D7, $E0D1, $E0BF, $E0DC."
  },
  {
   "address": 58746,
   "type": "line",
   "text": "The SID register offset of each voice, 0, 7 and 14."
  },
  {
   "address": 58749,
   "type": "line",
   "text": "The offset of each voice's workspace from $CF00, 0, 42 and 84; then the filter routing values $F1, $F2 and $F4 at $E580."
  },
  {
   "address": 58752,
   "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": 58755,
   "type": "line",
   "text": "The bit tested by $E19A for a negative relative transpose, $40."
  },
  {
   "address": 58756,
   "type": "line",
   "text": "Low bytes of the SID frequencies of the notes, 94 of them."
  },
  {
   "address": 58850,
   "type": "line",
   "text": "High bytes of the note frequencies."
  },
  {
   "address": 58944,
   "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": 58952,
   "type": "line",
   "text": "What $E0DE points every voice at: a pattern that only waits, a silent instrument at $E64D and a still frequency table at $E650."
  },
  {
   "address": 58964,
   "type": "line",
   "text": "The last bytes of the tune table."
  },
  {
   "address": 58966,
   "type": "line",
   "text": "The three tunes, 10 bytes each: the patterns of the three voices, the tempo, and the three preset note lengths. Tune 0 is the title, 10 the tunnels, 20 the dugout."
  },
  {
   "address": 58967,
   "type": "line",
   "text": "The song table from its second byte, read for the preset note lengths."
  },
  {
   "address": 58996,
   "type": "line",
   "text": "Low bytes of the music's patterns, instruments, and tables."
  },
  {
   "address": 59060,
   "type": "line",
   "text": "The last entries of the pattern address tables."
  },
  {
   "address": 59077,
   "type": "line",
   "text": "High bytes of the same entries, from the third."
  },
  {
   "address": 59141,
   "type": "line",
   "text": "Start of the tunes' sequences, read through the tune table at $E656."
  },
  {
   "address": 59157,
   "type": "line",
   "text": "Instrument jump addresses."
  },
  {
   "address": 59158,
   "type": "line",
   "text": "The instrument jump addresses from their second byte, then the patterns, instruments, and tables of the three tunes."
  },
  {
   "address": 59222,
   "type": "line",
   "text": "The patterns, instruments, and tables of the three tunes, bytes $E756-$EB55."
  },
  {
   "address": 60246,
   "type": "line",
   "text": "The patterns, instruments, and tables of the three tunes, bytes $EB56-$EE18."
  },
  {
   "address": 60953,
   "type": "line",
   "text": "Starts sound effect A on voice X: copies its attack/decay, sustain/release, and pulse width from $F073, $F081, and $F08F and sets it to start."
  },
  {
   "address": 60989,
   "type": "line",
   "text": "The last sound effect started."
  },
  {
   "address": 60990,
   "type": "line",
   "text": "Starts a voice's effect: reads its 8-byte entry (start frequency, frequency step, sweep type, steps, waveform, repeats) and writes the start values."
  },
  {
   "address": 61137,
   "type": "line",
   "text": "Attack/decay of each voice's effect."
  },
  {
   "address": 61140,
   "type": "line",
   "text": "Sustain/release of each voice's effect."
  },
  {
   "address": 61143,
   "type": "line",
   "text": "Pulse width of each voice's effect."
  },
  {
   "address": 61146,
   "type": "line",
   "text": "Called once a frame instead of the music while the music is off: starts the effects requested and steps those running."
  },
  {
   "address": 61168,
   "type": "line",
   "text": "Steps one voice's effect: sweeps the frequency up, down, or between two values, and when the steps run out repeats it or turns it off."
  },
  {
   "address": 61359,
   "type": "line",
   "text": "Silences the SID ($D401-$D412) and clears the repeat flags at $F001 and $F002; nothing in this load calls it."
  },
  {
   "address": 61378,
   "type": "line",
   "text": "The effect number waiting to start on each voice, 0 for none."
  },
  {
   "address": 61381,
   "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 $EFF7 (0, 7, 14)."
  },
  {
   "address": 61384,
   "type": "line",
   "text": "Current frequency high byte of each voice's effect."
  },
  {
   "address": 61387,
   "type": "line",
   "text": "Start frequency low byte of each voice's effect, for a repeat."
  },
  {
   "address": 61390,
   "type": "line",
   "text": "Start frequency high byte, for a repeat."
  },
  {
   "address": 61393,
   "type": "line",
   "text": "Steps left in each voice's effect."
  },
  {
   "address": 61396,
   "type": "line",
   "text": "The effect's length in steps, reloaded on a repeat."
  },
  {
   "address": 61399,
   "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": 61402,
   "type": "line",
   "text": "Frequency step low byte of each voice's effect."
  },
  {
   "address": 61405,
   "type": "line",
   "text": "Frequency step high byte."
  },
  {
   "address": 61408,
   "type": "line",
   "text": "Waveform of each voice's effect."
  },
  {
   "address": 61411,
   "type": "line",
   "text": "Repeats left of each voice's effect."
  },
  {
   "address": 61417,
   "type": "line",
   "text": "For the alternating sweep, which of the two frequencies plays."
  },
  {
   "address": 61420,
   "type": "line",
   "text": "1 while each voice's effect runs."
  },
  {
   "address": 61423,
   "type": "line",
   "text": "The effect number running on each voice."
  },
  {
   "address": 61426,
   "type": "line",
   "text": "Eight times the effect number, its offset in $F003."
  },
  {
   "address": 61431,
   "type": "line",
   "text": "Each voice's SID register offset for the sound effects: 0, 7 and 14."
  },
  {
   "address": 61434,
   "type": "line",
   "text": "Sustain/release of each voice's effect, for a repeat."
  },
  {
   "address": 61437,
   "type": "line",
   "text": "Attack/decay of each voice's effect, for a repeat."
  },
  {
   "address": 61440,
   "type": "line",
   "text": "$FF when the effect repeats for ever."
  },
  {
   "address": 61443,
   "type": "line",
   "text": "The sound effects, 8 bytes each: frequency, step, sweep type, length and waveform; $F00B on are effects 1 to 13."
  },
  {
   "address": 61444,
   "type": "line",
   "text": "Effect 0's start frequency, high byte; the other fields follow in the same order for each effect."
  },
  {
   "address": 61445,
   "type": "line",
   "text": "Effect 0's step, low byte."
  },
  {
   "address": 61446,
   "type": "line",
   "text": "Effect 0's step, high byte."
  },
  {
   "address": 61447,
   "type": "line",
   "text": "Effect 0's sweep type."
  },
  {
   "address": 61448,
   "type": "line",
   "text": "Effect 0's length in steps."
  },
  {
   "address": 61449,
   "type": "line",
   "text": "Effect 0's waveform."
  },
  {
   "address": 61450,
   "type": "line",
   "text": "Repeats of effect 0, the last byte of its entry; the other effects follow."
  },
  {
   "address": 61555,
   "type": "line",
   "text": "Attack/decay of each sound effect."
  },
  {
   "address": 61569,
   "type": "line",
   "text": "Sustain/release of each sound effect."
  },
  {
   "address": 61583,
   "type": "line",
   "text": "Pulse width of each sound effect."
  },
  {
   "address": 61596,
   "type": "line",
   "text": "Returns while a sample plays."
  },
  {
   "address": 61597,
   "type": "line",
   "text": "Plays the 4-bit sample at $F200 through the volume register (the scream of a death): points the NMI at $F0EC and runs CIA 2's timer A every 240 cycles, and sets $F15F to 1 while it plays."
  },
  {
   "address": 61664,
   "type": "line",
   "text": "Nine bytes after the routine, never read."
  },
  {
   "address": 61673,
   "type": "line",
   "text": "An NMI that is not CIA 2's (RESTORE) goes to $0108."
  },
  {
   "address": 61676,
   "type": "line",
   "text": "Sample NMI: plays the high four bits of the next byte and points the next NMI at $F123; stops at a byte of $FF or the end of the page run."
  },
  {
   "address": 61731,
   "type": "line",
   "text": "Sample NMI: plays the low four bits of the byte and points the next NMI back at $F0EC."
  },
  {
   "address": 61791,
   "type": "line",
   "text": "1 while the sample plays, 0 when it ends; the main loop skips the music then."
  },
  {
   "address": 61792,
   "type": "line",
   "text": "160 more 4-bit sample values before the sample at $F200; start_sample ($F09D) begins at $F200, so they never play."
  },
  {
   "address": 61952,
   "type": "line",
   "text": "The digitised sample, two 4-bit values a byte (high first), ending in $FF at $F6BE."
  },
  {
   "address": 62768,
   "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": 62976,
   "type": "line",
   "text": "The end of the sample that starts at $F200."
  },
  {
   "address": 63167,
   "type": "line",
   "text": "A byte of the sample, bytes $F6BF-$F6BF."
  },
  {
   "address": 63168,
   "type": "line",
   "text": "The 4-bit sample of the scream, played from $F200 by $F09D, bytes $F6C0-$FABF."
  },
  {
   "address": 64192,
   "type": "line",
   "text": "The 4-bit sample of the scream, played from $F200 by $F09D, bytes $FAC0-$FC83."
  },
  {
   "address": 64816,
   "type": "line",
   "text": "$C47D reads the KERNAL ROM's vector table at this address, with the ROM banked in; the RAM here is part of the sample."
  },
  {
   "address": 65024,
   "type": "line",
   "text": "The end of the sample, bytes $FE00-$FFA0."
  },
  {
   "address": 65466,
   "type": "line",
   "text": "The KERNAL's SETLFS, called by $C404 with the ROM banked in."
  },
  {
   "address": 65469,
   "type": "line",
   "text": "The KERNAL's SETNAM, called by $C40D and $C436 with the ROM banked in."
  }
 ]
}