{
 "schema": 1,
 "platform": "c64",
 "game": "platoon",
 "part": "load1",
 "build": "PAL disk, side 1 OVL1 at its hand-over to $0400",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    16384,
    17407,
    "screen RAM"
   ],
   [
    0,
    1023,
    "zero page, the stack and the game's working variables at $0200-$03FF (the high-score table copied from $FF00, the score digits, the joystick, scroll and column buffers), all written before they are read"
   ],
   [
    5397,
    5414,
    "eighteen frame numbers nothing refers to, a copy of the throwing frames at $16BE"
   ],
   [
    8790,
    8857,
    "68 bytes of code nothing calls, left from an earlier build"
   ],
   [
    9461,
    9526,
    "66 bytes of code nothing calls"
   ],
   [
    11946,
    12001,
    "an earlier copy of the hit routine, never called"
   ],
   [
    12221,
    12239,
    "19 bytes of code nothing calls"
   ],
   [
    12482,
    12493,
    "12 bytes of code nothing reaches"
   ],
   [
    12510,
    12518,
    "9 bytes of code nothing reaches"
   ],
   [
    15842,
    16383,
    "after the LAY2 name, a stale copy of the loading routine (loading LAY1) and leftovers, never run"
   ],
   [
    16384,
    18431,
    "the two screens and their sprite pointers, drawn from the map by $B874 and the scroll, and the panel drawn by $BE54"
   ],
   [
    40064,
    40447,
    "the fast loader's leftovers (its interrupt wedge and drive code), never called by the game"
   ],
   [
    40448,
    40959,
    "the music driver's workspace, zero at the hand-over and set by $E0DE and $E20F before use"
   ],
   [
    46102,
    46125,
    "24 bytes of two old routines that stepped $0304, never called"
   ],
   [
    46487,
    46552,
    "an older column routine, never called"
   ],
   [
    47410,
    47436,
    "an older loop end, never reached"
   ],
   [
    47857,
    47867,
    "an older test, never reached"
   ],
   [
    48103,
    48255,
    "an older routine, never called"
   ],
   [
    48453,
    48468,
    "an old grenade refill, never called"
   ],
   [
    48575,
    48589,
    "an older counter, never called"
   ],
   [
    50125,
    50191,
    "an older start, never reached"
   ],
   [
    50986,
    51001,
    "16 bytes after the platoon list that nothing reads"
   ],
   [
    52657,
    53247,
    "spaces and leftovers after the search tables, never read"
   ],
   [
    58524,
    58606,
    "a filter sweep nothing in this load calls"
   ],
   [
    61334,
    61352,
    "an old routine that silenced the SID, never called"
   ],
   [
    61812,
    61951,
    "leftover bytes after the sample player, never read"
   ],
   [
    63739,
    63999,
    "a stale copy of name-entry code before the sample, never run; only the title scroll's last line reads its first bytes"
   ],
   [
    65215,
    65277,
    "leftover code after the sample's end marker, never run"
   ]
  ],
  "extra": [
   [
    18432,
    20479,
    "character set"
   ]
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 263,
   "type": "Undefined"
  },
  {
   "start": 264,
   "end": 268,
   "type": "Code"
  },
  {
   "start": 269,
   "end": 1023,
   "type": "Undefined"
  },
  {
   "start": 1024,
   "end": 1888,
   "type": "Code"
  },
  {
   "start": 1889,
   "end": 1889,
   "type": "Undefined"
  },
  {
   "start": 1890,
   "end": 2185,
   "type": "Code"
  },
  {
   "start": 2186,
   "end": 2194,
   "type": "Undefined"
  },
  {
   "start": 2195,
   "end": 2283,
   "type": "Code"
  },
  {
   "start": 2284,
   "end": 2285,
   "type": "Undefined"
  },
  {
   "start": 2286,
   "end": 3186,
   "type": "Code"
  },
  {
   "start": 3187,
   "end": 3219,
   "type": "Undefined"
  },
  {
   "start": 3220,
   "end": 3373,
   "type": "Code"
  },
  {
   "start": 3374,
   "end": 3375,
   "type": "Undefined"
  },
  {
   "start": 3376,
   "end": 3707,
   "type": "Code"
  },
  {
   "start": 3708,
   "end": 3710,
   "type": "Undefined"
  },
  {
   "start": 3711,
   "end": 3857,
   "type": "Code"
  },
  {
   "start": 3858,
   "end": 3859,
   "type": "Undefined"
  },
  {
   "start": 3860,
   "end": 4003,
   "type": "Code"
  },
  {
   "start": 4004,
   "end": 4006,
   "type": "Undefined"
  },
  {
   "start": 4007,
   "end": 4147,
   "type": "Code"
  },
  {
   "start": 4148,
   "end": 4327,
   "type": "Undefined"
  },
  {
   "start": 4328,
   "end": 4401,
   "type": "Code"
  },
  {
   "start": 4402,
   "end": 4471,
   "type": "Undefined"
  },
  {
   "start": 4472,
   "end": 4564,
   "type": "Byte"
  },
  {
   "start": 4565,
   "end": 4667,
   "type": "Undefined"
  },
  {
   "start": 4668,
   "end": 4716,
   "type": "Code"
  },
  {
   "start": 4717,
   "end": 4721,
   "type": "Undefined"
  },
  {
   "start": 4722,
   "end": 4872,
   "type": "Code"
  },
  {
   "start": 4873,
   "end": 4873,
   "type": "Undefined"
  },
  {
   "start": 4874,
   "end": 5396,
   "type": "Code"
  },
  {
   "start": 5397,
   "end": 5414,
   "type": "Undefined"
  },
  {
   "start": 5415,
   "end": 5445,
   "type": "Code"
  },
  {
   "start": 5446,
   "end": 5446,
   "type": "Byte"
  },
  {
   "start": 5447,
   "end": 5481,
   "type": "Code"
  },
  {
   "start": 5482,
   "end": 5482,
   "type": "Undefined"
  },
  {
   "start": 5483,
   "end": 5809,
   "type": "Code"
  },
  {
   "start": 5810,
   "end": 6069,
   "type": "Undefined"
  },
  {
   "start": 6070,
   "end": 6104,
   "type": "Code"
  },
  {
   "start": 6105,
   "end": 6105,
   "type": "Undefined"
  },
  {
   "start": 6106,
   "end": 6138,
   "type": "Code"
  },
  {
   "start": 6139,
   "end": 6141,
   "type": "Undefined"
  },
  {
   "start": 6142,
   "end": 6331,
   "type": "Code"
  },
  {
   "start": 6332,
   "end": 6336,
   "type": "Undefined"
  },
  {
   "start": 6337,
   "end": 6662,
   "type": "Code"
  },
  {
   "start": 6663,
   "end": 6673,
   "type": "Undefined"
  },
  {
   "start": 6674,
   "end": 6791,
   "type": "Code"
  },
  {
   "start": 6792,
   "end": 6793,
   "type": "Undefined"
  },
  {
   "start": 6794,
   "end": 6856,
   "type": "Code"
  },
  {
   "start": 6857,
   "end": 6857,
   "type": "Undefined"
  },
  {
   "start": 6858,
   "end": 6928,
   "type": "Code"
  },
  {
   "start": 6929,
   "end": 6929,
   "type": "Undefined"
  },
  {
   "start": 6930,
   "end": 7641,
   "type": "Code"
  },
  {
   "start": 7642,
   "end": 7762,
   "type": "Undefined"
  },
  {
   "start": 7763,
   "end": 7876,
   "type": "Code"
  },
  {
   "start": 7877,
   "end": 7878,
   "type": "Undefined"
  },
  {
   "start": 7879,
   "end": 7939,
   "type": "Code"
  },
  {
   "start": 7940,
   "end": 7944,
   "type": "Undefined"
  },
  {
   "start": 7945,
   "end": 8435,
   "type": "Code"
  },
  {
   "start": 8436,
   "end": 8447,
   "type": "Undefined"
  },
  {
   "start": 8448,
   "end": 8642,
   "type": "Code"
  },
  {
   "start": 8643,
   "end": 8646,
   "type": "Undefined"
  },
  {
   "start": 8647,
   "end": 8663,
   "type": "Code"
  },
  {
   "start": 8664,
   "end": 8667,
   "type": "Undefined"
  },
  {
   "start": 8668,
   "end": 8739,
   "type": "Code"
  },
  {
   "start": 8740,
   "end": 8742,
   "type": "Undefined"
  },
  {
   "start": 8743,
   "end": 8789,
   "type": "Code"
  },
  {
   "start": 8790,
   "end": 8857,
   "type": "Undefined"
  },
  {
   "start": 8858,
   "end": 9034,
   "type": "Code"
  },
  {
   "start": 9035,
   "end": 9036,
   "type": "Undefined"
  },
  {
   "start": 9037,
   "end": 9460,
   "type": "Code"
  },
  {
   "start": 9461,
   "end": 9526,
   "type": "Undefined"
  },
  {
   "start": 9527,
   "end": 9624,
   "type": "Code"
  },
  {
   "start": 9625,
   "end": 9629,
   "type": "Undefined"
  },
  {
   "start": 9630,
   "end": 9868,
   "type": "Byte"
  },
  {
   "start": 9869,
   "end": 9972,
   "type": "Code"
  },
  {
   "start": 9973,
   "end": 9982,
   "type": "Undefined"
  },
  {
   "start": 9983,
   "end": 10142,
   "type": "Word"
  },
  {
   "start": 10143,
   "end": 10553,
   "type": "Code"
  },
  {
   "start": 10554,
   "end": 10557,
   "type": "Undefined"
  },
  {
   "start": 10558,
   "end": 10757,
   "type": "Code"
  },
  {
   "start": 10758,
   "end": 10760,
   "type": "Undefined"
  },
  {
   "start": 10761,
   "end": 10864,
   "type": "Code"
  },
  {
   "start": 10865,
   "end": 10865,
   "type": "Undefined"
  },
  {
   "start": 10866,
   "end": 11157,
   "type": "Code"
  },
  {
   "start": 11158,
   "end": 11207,
   "type": "Undefined"
  },
  {
   "start": 11208,
   "end": 11435,
   "type": "Code"
  },
  {
   "start": 11436,
   "end": 11437,
   "type": "Undefined"
  },
  {
   "start": 11438,
   "end": 11584,
   "type": "Code"
  },
  {
   "start": 11585,
   "end": 11590,
   "type": "Undefined"
  },
  {
   "start": 11591,
   "end": 11945,
   "type": "Code"
  },
  {
   "start": 11946,
   "end": 12013,
   "type": "Undefined"
  },
  {
   "start": 12014,
   "end": 12182,
   "type": "Code"
  },
  {
   "start": 12183,
   "end": 12183,
   "type": "Undefined"
  },
  {
   "start": 12184,
   "end": 12220,
   "type": "Code"
  },
  {
   "start": 12221,
   "end": 12239,
   "type": "Undefined"
  },
  {
   "start": 12240,
   "end": 12481,
   "type": "Code"
  },
  {
   "start": 12482,
   "end": 12493,
   "type": "Undefined"
  },
  {
   "start": 12494,
   "end": 12509,
   "type": "Code"
  },
  {
   "start": 12510,
   "end": 12518,
   "type": "Undefined"
  },
  {
   "start": 12519,
   "end": 12792,
   "type": "Code"
  },
  {
   "start": 12793,
   "end": 12793,
   "type": "Undefined"
  },
  {
   "start": 12794,
   "end": 13171,
   "type": "Code"
  },
  {
   "start": 13172,
   "end": 13174,
   "type": "Undefined"
  },
  {
   "start": 13175,
   "end": 13272,
   "type": "Code"
  },
  {
   "start": 13273,
   "end": 13273,
   "type": "Undefined"
  },
  {
   "start": 13274,
   "end": 13967,
   "type": "Code"
  },
  {
   "start": 13968,
   "end": 13969,
   "type": "Undefined"
  },
  {
   "start": 13970,
   "end": 14019,
   "type": "Code"
  },
  {
   "start": 14020,
   "end": 14022,
   "type": "Undefined"
  },
  {
   "start": 14023,
   "end": 14477,
   "type": "Code"
  },
  {
   "start": 14478,
   "end": 14479,
   "type": "Undefined"
  },
  {
   "start": 14480,
   "end": 14574,
   "type": "Code"
  },
  {
   "start": 14575,
   "end": 14601,
   "type": "Undefined"
  },
  {
   "start": 14602,
   "end": 14783,
   "type": "Code"
  },
  {
   "start": 14784,
   "end": 14784,
   "type": "Undefined"
  },
  {
   "start": 14785,
   "end": 15137,
   "type": "Code"
  },
  {
   "start": 15138,
   "end": 15139,
   "type": "Undefined"
  },
  {
   "start": 15140,
   "end": 15460,
   "type": "Code"
  },
  {
   "start": 15461,
   "end": 15461,
   "type": "Undefined"
  },
  {
   "start": 15462,
   "end": 15728,
   "type": "Code"
  },
  {
   "start": 15729,
   "end": 15731,
   "type": "Undefined"
  },
  {
   "start": 15732,
   "end": 15837,
   "type": "Code"
  },
  {
   "start": 15838,
   "end": 15841,
   "type": "PETSCII Text"
  },
  {
   "start": 15842,
   "end": 18431,
   "type": "Undefined"
  },
  {
   "start": 18432,
   "end": 40063,
   "type": "Byte"
  },
  {
   "start": 40064,
   "end": 40113,
   "type": "Undefined"
  },
  {
   "start": 40114,
   "end": 40122,
   "type": "Code"
  },
  {
   "start": 40123,
   "end": 40959,
   "type": "Undefined"
  },
  {
   "start": 40960,
   "end": 42759,
   "type": "Byte"
  },
  {
   "start": 42760,
   "end": 42760,
   "type": "Undefined"
  },
  {
   "start": 42761,
   "end": 43381,
   "type": "Code"
  },
  {
   "start": 43382,
   "end": 43384,
   "type": "Undefined"
  },
  {
   "start": 43385,
   "end": 43507,
   "type": "Code"
  },
  {
   "start": 43508,
   "end": 43664,
   "type": "PETSCII Text"
  },
  {
   "start": 43665,
   "end": 43800,
   "type": "Byte"
  },
  {
   "start": 43801,
   "end": 44143,
   "type": "Undefined"
  },
  {
   "start": 44144,
   "end": 45055,
   "type": "Byte"
  },
  {
   "start": 45056,
   "end": 45335,
   "type": "Code"
  },
  {
   "start": 45336,
   "end": 45336,
   "type": "Undefined"
  },
  {
   "start": 45337,
   "end": 45374,
   "type": "Code"
  },
  {
   "start": 45375,
   "end": 45375,
   "type": "Byte"
  },
  {
   "start": 45376,
   "end": 46101,
   "type": "Code"
  },
  {
   "start": 46102,
   "end": 46125,
   "type": "Undefined"
  },
  {
   "start": 46126,
   "end": 46486,
   "type": "Code"
  },
  {
   "start": 46487,
   "end": 46552,
   "type": "Undefined"
  },
  {
   "start": 46553,
   "end": 47409,
   "type": "Code"
  },
  {
   "start": 47410,
   "end": 47436,
   "type": "Undefined"
  },
  {
   "start": 47437,
   "end": 47512,
   "type": "Code"
  },
  {
   "start": 47513,
   "end": 47609,
   "type": "Undefined"
  },
  {
   "start": 47610,
   "end": 47779,
   "type": "Code"
  },
  {
   "start": 47780,
   "end": 47781,
   "type": "Undefined"
  },
  {
   "start": 47782,
   "end": 47797,
   "type": "Byte"
  },
  {
   "start": 47798,
   "end": 47856,
   "type": "Code"
  },
  {
   "start": 47857,
   "end": 47867,
   "type": "Undefined"
  },
  {
   "start": 47868,
   "end": 48014,
   "type": "Code"
  },
  {
   "start": 48015,
   "end": 48015,
   "type": "Undefined"
  },
  {
   "start": 48016,
   "end": 48102,
   "type": "Code"
  },
  {
   "start": 48103,
   "end": 48255,
   "type": "Undefined"
  },
  {
   "start": 48256,
   "end": 48420,
   "type": "Code"
  },
  {
   "start": 48421,
   "end": 48432,
   "type": "Undefined"
  },
  {
   "start": 48433,
   "end": 48452,
   "type": "Code"
  },
  {
   "start": 48453,
   "end": 48468,
   "type": "Undefined"
  },
  {
   "start": 48469,
   "end": 48469,
   "type": "Byte"
  },
  {
   "start": 48470,
   "end": 48544,
   "type": "Code"
  },
  {
   "start": 48545,
   "end": 48555,
   "type": "Undefined"
  },
  {
   "start": 48556,
   "end": 48574,
   "type": "Code"
  },
  {
   "start": 48575,
   "end": 48589,
   "type": "Undefined"
  },
  {
   "start": 48590,
   "end": 48662,
   "type": "Code"
  },
  {
   "start": 48663,
   "end": 48691,
   "type": "Undefined"
  },
  {
   "start": 48692,
   "end": 48715,
   "type": "Code"
  },
  {
   "start": 48716,
   "end": 48723,
   "type": "Undefined"
  },
  {
   "start": 48724,
   "end": 48886,
   "type": "Code"
  },
  {
   "start": 48887,
   "end": 48946,
   "type": "Undefined"
  },
  {
   "start": 48947,
   "end": 49077,
   "type": "Code"
  },
  {
   "start": 49078,
   "end": 49079,
   "type": "Undefined"
  },
  {
   "start": 49080,
   "end": 50124,
   "type": "Code"
  },
  {
   "start": 50125,
   "end": 50191,
   "type": "Undefined"
  },
  {
   "start": 50192,
   "end": 50413,
   "type": "Code"
  },
  {
   "start": 50414,
   "end": 50431,
   "type": "Undefined"
  },
  {
   "start": 50432,
   "end": 50457,
   "type": "Code"
  },
  {
   "start": 50458,
   "end": 50473,
   "type": "Undefined"
  },
  {
   "start": 50474,
   "end": 50633,
   "type": "Code"
  },
  {
   "start": 50634,
   "end": 50985,
   "type": "Byte"
  },
  {
   "start": 50986,
   "end": 51001,
   "type": "Undefined"
  },
  {
   "start": 51002,
   "end": 51128,
   "type": "Code"
  },
  {
   "start": 51129,
   "end": 51196,
   "type": "Undefined"
  },
  {
   "start": 51197,
   "end": 52363,
   "type": "PETSCII Text"
  },
  {
   "start": 52364,
   "end": 52552,
   "type": "Code"
  },
  {
   "start": 52553,
   "end": 52553,
   "type": "PETSCII Text"
  },
  {
   "start": 52554,
   "end": 52610,
   "type": "Byte"
  },
  {
   "start": 52611,
   "end": 52650,
   "type": "Undefined"
  },
  {
   "start": 52651,
   "end": 52656,
   "type": "Byte"
  },
  {
   "start": 52657,
   "end": 53247,
   "type": "Undefined"
  },
  {
   "start": 53248,
   "end": 57343,
   "type": "Byte"
  },
  {
   "start": 57344,
   "end": 58223,
   "type": "Code"
  },
  {
   "start": 58224,
   "end": 58224,
   "type": "Undefined"
  },
  {
   "start": 58225,
   "end": 58328,
   "type": "Code"
  },
  {
   "start": 58329,
   "end": 58329,
   "type": "Undefined"
  },
  {
   "start": 58330,
   "end": 58523,
   "type": "Code"
  },
  {
   "start": 58524,
   "end": 58606,
   "type": "Undefined"
  },
  {
   "start": 58607,
   "end": 58719,
   "type": "Code"
  },
  {
   "start": 58720,
   "end": 60927,
   "type": "Byte"
  },
  {
   "start": 60928,
   "end": 60963,
   "type": "Code"
  },
  {
   "start": 60964,
   "end": 60964,
   "type": "Undefined"
  },
  {
   "start": 60965,
   "end": 61111,
   "type": "Code"
  },
  {
   "start": 61112,
   "end": 61120,
   "type": "Undefined"
  },
  {
   "start": 61121,
   "end": 61333,
   "type": "Code"
  },
  {
   "start": 61334,
   "end": 61355,
   "type": "Undefined"
  },
  {
   "start": 61356,
   "end": 61615,
   "type": "Byte"
  },
  {
   "start": 61616,
   "end": 61683,
   "type": "Code"
  },
  {
   "start": 61684,
   "end": 61692,
   "type": "Undefined"
  },
  {
   "start": 61693,
   "end": 61809,
   "type": "Code"
  },
  {
   "start": 61810,
   "end": 61951,
   "type": "Undefined"
  },
  {
   "start": 61952,
   "end": 62247,
   "type": "Code"
  },
  {
   "start": 62248,
   "end": 62278,
   "type": "Byte"
  },
  {
   "start": 62279,
   "end": 62279,
   "type": "Undefined"
  },
  {
   "start": 62280,
   "end": 62322,
   "type": "Code"
  },
  {
   "start": 62323,
   "end": 62323,
   "type": "Undefined"
  },
  {
   "start": 62324,
   "end": 63111,
   "type": "Code"
  },
  {
   "start": 63112,
   "end": 63738,
   "type": "Byte"
  },
  {
   "start": 63739,
   "end": 63999,
   "type": "Undefined"
  },
  {
   "start": 64000,
   "end": 65214,
   "type": "Byte"
  },
  {
   "start": 65215,
   "end": 65279,
   "type": "Undefined"
  },
  {
   "start": 65280,
   "end": 65535,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "zpf_00",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32,
   "name": "zpa_20",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33,
   "name": "zpa_21",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34,
   "name": "zpa_22",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35,
   "name": "zpa_23",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36,
   "name": "zpa_24",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37,
   "name": "zpa_25",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38,
   "name": "zpa_26",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39,
   "name": "zpa_27",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40,
   "name": "zpa_28",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41,
   "name": "zpa_29",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpa_2A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43,
   "name": "zpa_2B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44,
   "name": "zpa_2C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45,
   "name": "zpa_2D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpa_2E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47,
   "name": "zpa_2F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 130,
   "name": "zpp_82",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 131,
   "name": "zpa_83",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 132,
   "name": "zpa_84",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 133,
   "name": "zpa_85",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 134,
   "name": "zpa_86",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 135,
   "name": "zpa_87",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 136,
   "name": "zpa_88",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 137,
   "name": "zpa_89",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 138,
   "name": "zpa_8A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 144,
   "name": "zpa_90",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 145,
   "name": "zpa_91",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 146,
   "name": "zpa_92",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 147,
   "name": "zpa_93",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 148,
   "name": "zpa_94",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 149,
   "name": "zpa_95",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 157,
   "name": "zpa_9D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 264,
   "name": "j_0108",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 386,
   "name": "s_0182",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 512,
   "name": "f_0200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 513,
   "name": "f_0201",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 523,
   "name": "f_020B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 529,
   "name": "f_0211",
   "type": "Field",
   "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": 779,
   "name": "a_030B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 780,
   "name": "a_030C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 781,
   "name": "a_030D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 782,
   "name": "a_030E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 783,
   "name": "a_030F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 784,
   "name": "a_0310",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 785,
   "name": "a_0311",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 786,
   "name": "a_0312",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 787,
   "name": "a_0313",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 788,
   "name": "a_0314",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 789,
   "name": "a_0315",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 790,
   "name": "a_0316",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 791,
   "name": "a_0317",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 792,
   "name": "a_0318",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 793,
   "name": "a_0319",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 796,
   "name": "a_031C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 798,
   "name": "a_031E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 799,
   "name": "a_031F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 884,
   "name": "f_0374",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 912,
   "name": "f_0390",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "game_entry",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1102,
   "name": "b_044E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1145,
   "name": "restart_game",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1147,
   "name": "b_047B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1228,
   "name": "b_04CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1253,
   "name": "b_04E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1269,
   "name": "a_04F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1280,
   "name": "b_0500",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1291,
   "name": "a_050B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1299,
   "name": "b_0513",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1301,
   "name": "a_0515",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1328,
   "name": "b_0530",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1649,
   "name": "b_0671",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1760,
   "name": "main_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1781,
   "name": "b_06F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1792,
   "name": "b_0700",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1828,
   "name": "b_0724",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1878,
   "name": "b_0756",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1889,
   "name": "a_0761",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1890,
   "name": "main_loop_tasks",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1939,
   "name": "b_0793",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1958,
   "name": "b_07A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1965,
   "name": "b_07AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1973,
   "name": "check_zach1_cheat",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 2013,
   "name": "b_07DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2025,
   "name": "b_07E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2058,
   "name": "check_soldier_keys",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2068,
   "name": "b_0814",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2078,
   "name": "b_081E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2088,
   "name": "b_0828",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2098,
   "name": "b_0832",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2116,
   "name": "b_0844",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2165,
   "name": "b_0875",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2186,
   "name": "effect_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2187,
   "name": "f_088B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 2189,
   "name": "f_088D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 2191,
   "name": "a_088F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2193,
   "name": "a_0891",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2194,
   "name": "a_0892",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2195,
   "name": "check_run_stop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2212,
   "name": "r_08A4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2213,
   "name": "check_music_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2243,
   "name": "b_08C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2258,
   "name": "b_08D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2263,
   "name": "b_08D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2283,
   "name": "r_08EB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2284,
   "name": "music_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2285,
   "name": "tune_select",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2286,
   "name": "move_figures",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2344,
   "name": "b_0928",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2364,
   "name": "b_093C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2372,
   "name": "b_0944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2397,
   "name": "b_095D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2427,
   "name": "b_097B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2450,
   "name": "b_0992",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2470,
   "name": "b_09A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2500,
   "name": "b_09C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2520,
   "name": "j_09D8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2575,
   "name": "b_0A0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2613,
   "name": "b_0A35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2627,
   "name": "j_0A43",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2674,
   "name": "b_0A72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2676,
   "name": "b_0A74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2704,
   "name": "b_0A90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2727,
   "name": "b_0AA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2738,
   "name": "b_0AB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2766,
   "name": "b_0ACE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2789,
   "name": "b_0AE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2800,
   "name": "copy_shot_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2811,
   "name": "b_0AFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2886,
   "name": "r_0B46",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2887,
   "name": "build_sprite_positions",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2929,
   "name": "b_0B71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2987,
   "name": "b_0BAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3002,
   "name": "b_0BBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3013,
   "name": "b_0BC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3018,
   "name": "b_0BCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3036,
   "name": "b_0BDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3062,
   "name": "b_0BF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3075,
   "name": "b_0C03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3088,
   "name": "b_0C10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3101,
   "name": "b_0C1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3111,
   "name": "b_0C27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3124,
   "name": "b_0C34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3137,
   "name": "b_0C41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3170,
   "name": "b_0C62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3186,
   "name": "r_0C72",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3187,
   "name": "soldier_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3188,
   "name": "figure2_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3189,
   "name": "figure3_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3191,
   "name": "soldier_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3192,
   "name": "figure2_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3193,
   "name": "figure3_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3195,
   "name": "soldier_x_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3196,
   "name": "figure2_x_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3197,
   "name": "figure3_x_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3198,
   "name": "soldier_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3199,
   "name": "a_0C7F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3202,
   "name": "figure2_active",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3203,
   "name": "a_0C83",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3204,
   "name": "a_0C84",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3205,
   "name": "paused",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3206,
   "name": "shot_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3207,
   "name": "a_0C87",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3209,
   "name": "a_0C89",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3212,
   "name": "shot0_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3213,
   "name": "shot0_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3214,
   "name": "soldier_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3215,
   "name": "figure2_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3217,
   "name": "soldier_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3218,
   "name": "figure2_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3220,
   "name": "j_0C94",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3226,
   "name": "b_0C9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3234,
   "name": "stand_still",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3267,
   "name": "b_0CC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3304,
   "name": "b_0CE8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3363,
   "name": "b_0D23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3373,
   "name": "r_0D2D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3374,
   "name": "fire_held",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3375,
   "name": "a_0D2F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3376,
   "name": "read_controls",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3384,
   "name": "b_0D38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3389,
   "name": "read_joystick_play",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3426,
   "name": "b_0D62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3431,
   "name": "j_0D67",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3446,
   "name": "b_0D76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3449,
   "name": "b_0D79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3458,
   "name": "b_0D82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3468,
   "name": "b_0D8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3478,
   "name": "b_0D96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3488,
   "name": "b_0DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3498,
   "name": "r_0DAA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3499,
   "name": "hut_contact_up",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3522,
   "name": "b_0DC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3528,
   "name": "b_0DC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3539,
   "name": "b_0DD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3542,
   "name": "r_0DD6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3543,
   "name": "b_0DD7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3546,
   "name": "b_0DDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3554,
   "name": "stick_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3656,
   "name": "b_0E48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3707,
   "name": "r_0E7B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3708,
   "name": "jump_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3709,
   "name": "jump_direction",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3710,
   "name": "jump_hold",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3711,
   "name": "ladder_contact",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3734,
   "name": "b_0E96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3740,
   "name": "b_0E9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3751,
   "name": "stick_down",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3773,
   "name": "b_0EBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3780,
   "name": "j_0EC4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3797,
   "name": "b_0ED5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3814,
   "name": "b_0EE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3839,
   "name": "b_0EFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3857,
   "name": "r_0F11",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3858,
   "name": "duck_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3859,
   "name": "move_pause",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3860,
   "name": "b_0F14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3863,
   "name": "walk_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3901,
   "name": "b_0F3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3935,
   "name": "b_0F5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4003,
   "name": "r_0FA3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4007,
   "name": "b_0FA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4010,
   "name": "walk_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4048,
   "name": "b_0FD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4082,
   "name": "step_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4147,
   "name": "r_1033",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4148,
   "name": "a_1034",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4149,
   "name": "walk_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4150,
   "name": "facing_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4151,
   "name": "facing_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4152,
   "name": "walk_right_top",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4160,
   "name": "walk_right_middle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4184,
   "name": "walk_left_top",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4192,
   "name": "walk_left_middle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4216,
   "name": "enemy_right_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4224,
   "name": "enemy_right_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4232,
   "name": "enemy_right_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4240,
   "name": "enemy_left_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4248,
   "name": "enemy_left_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4256,
   "name": "enemy_left_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4264,
   "name": "kind2_right_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4272,
   "name": "kind2_right_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4280,
   "name": "kind2_right_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4288,
   "name": "kind2_left_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4296,
   "name": "kind2_left_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4304,
   "name": "kind2_left_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4312,
   "name": "villager_left_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4320,
   "name": "villager_right_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4328,
   "name": "r_10E8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4329,
   "name": "run_jump",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4348,
   "name": "b_10FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4356,
   "name": "j_1104",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4372,
   "name": "b_1114",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4412,
   "name": "jump_arc",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4472,
   "name": "rising_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4565,
   "name": "f_11D5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4668,
   "name": "fire_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4695,
   "name": "r_1257",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4696,
   "name": "j_1258",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4706,
   "name": "r_1262",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4707,
   "name": "b_1263",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4712,
   "name": "b_1268",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4722,
   "name": "start_shot",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 4789,
   "name": "b_12B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4839,
   "name": "r_12E7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4840,
   "name": "b_12E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4862,
   "name": "r_12FE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4863,
   "name": "b_12FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4873,
   "name": "shot_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4874,
   "name": "r_130A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4875,
   "name": "move_shots",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4882,
   "name": "j_1312",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4897,
   "name": "b_1321",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4912,
   "name": "b_1330",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4986,
   "name": "b_137A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4989,
   "name": "b_137D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5000,
   "name": "b_1388",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5003,
   "name": "b_138B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5057,
   "name": "b_13C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5060,
   "name": "j_13C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5270,
   "name": "remove_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5285,
   "name": "check_grenade",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5305,
   "name": "check_grenade_key",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5396,
   "name": "r_1514",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5415,
   "name": "run_grenade",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5447,
   "name": "throw_pose",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5482,
   "name": "throw_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5483,
   "name": "b_156B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5502,
   "name": "b_157E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5565,
   "name": "grenade_flight",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5595,
   "name": "b_15DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5598,
   "name": "r_15DE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5599,
   "name": "b_15DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5627,
   "name": "r_15FB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5628,
   "name": "grenade_burst",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 5726,
   "name": "b_165E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5741,
   "name": "b_166D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5779,
   "name": "b_1693",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5809,
   "name": "r_16B1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5810,
   "name": "burst_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5816,
   "name": "grenade_flying",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5817,
   "name": "grenade_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5818,
   "name": "burst_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5819,
   "name": "throwing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5820,
   "name": "thrown_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5821,
   "name": "burst_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5822,
   "name": "throw_frames_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5826,
   "name": "f_16C2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5830,
   "name": "f_16C6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5834,
   "name": "throw_frames_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5838,
   "name": "f_16CE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5842,
   "name": "f_16D2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5846,
   "name": "grenade_dx_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5924,
   "name": "grenade_dx_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6002,
   "name": "grenade_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6070,
   "name": "start_tune_sounds",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6092,
   "name": "sound_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6101,
   "name": "b_17D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6106,
   "name": "nmi_handler",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6123,
   "name": "b_17EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6140,
   "name": "sprite_x_expand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6141,
   "name": "sprite_y_expand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6142,
   "name": "irq_chain_first",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6189,
   "name": "a_182D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6278,
   "name": "b_1886",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6285,
   "name": "b_188D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6290,
   "name": "j_1892",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6293,
   "name": "b_1895",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6304,
   "name": "b_18A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6332,
   "name": "sprite_msb",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6333,
   "name": "sprite_msb_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6334,
   "name": "a_18BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6335,
   "name": "scroll_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6336,
   "name": "cia2_cra_saved",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6337,
   "name": "irq_chain_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6379,
   "name": "split_line",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6386,
   "name": "b_18F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6397,
   "name": "a_18FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6401,
   "name": "j_1901",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6422,
   "name": "irq_chain_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6444,
   "name": "b_192C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6455,
   "name": "a_1937",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6472,
   "name": "b_1948",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6492,
   "name": "j_195C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6502,
   "name": "irq_chain_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6570,
   "name": "b_19AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6603,
   "name": "b_19CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6621,
   "name": "a_19DD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6638,
   "name": "b_19EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6639,
   "name": "a_19EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6653,
   "name": "j_19FD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6663,
   "name": "handler4_ran",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6664,
   "name": "a_1A08",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6665,
   "name": "low_sprite_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6666,
   "name": "low_sprite_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6667,
   "name": "low_sprite_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6668,
   "name": "low_sprite_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6669,
   "name": "low_sprite_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6670,
   "name": "low_sprite_msb",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6671,
   "name": "sprite_msb_7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6672,
   "name": "a_1A10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6673,
   "name": "frame_tick",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6674,
   "name": "irq_chain_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6782,
   "name": "b_1A7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6792,
   "name": "panel_charset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6793,
   "name": "panel_scroll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6794,
   "name": "irq_chain_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6857,
   "name": "panel_fine_scroll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6858,
   "name": "irq_chain_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6930,
   "name": "irq_chain_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6983,
   "name": "b_1B47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7011,
   "name": "irq_chain_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7152,
   "name": "b_1BF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7160,
   "name": "b_1BF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7172,
   "name": "b_1C04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7198,
   "name": "b_1C1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7214,
   "name": "irq_chain_last",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7235,
   "name": "a_1C43",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7240,
   "name": "a_1C48",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7287,
   "name": "irq_title_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7372,
   "name": "irq_title",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7391,
   "name": "b_1CDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7393,
   "name": "b_1CE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7438,
   "name": "irq_title_split",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7518,
   "name": "irq_title_split_off",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7582,
   "name": "irq_title_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7642,
   "name": "title_colour_cycle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7672,
   "name": "title_colour_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7673,
   "name": "a_1DF9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7674,
   "name": "shot_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7675,
   "name": "sprite_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7676,
   "name": "a_1DFC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7677,
   "name": "a_1DFD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7678,
   "name": "a_1DFE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7679,
   "name": "a_1DFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7680,
   "name": "a_1E00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7681,
   "name": "a_1E01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7682,
   "name": "a_1E02",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7683,
   "name": "a_1E03",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7684,
   "name": "a_1E04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7685,
   "name": "a_1E05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7686,
   "name": "a_1E06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7687,
   "name": "shot_sprite_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7688,
   "name": "shot_sprite_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7689,
   "name": "shot_sprite_x_0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7690,
   "name": "shot_sprite_y_0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7691,
   "name": "soldier_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7692,
   "name": "figure2_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7693,
   "name": "figure3_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7695,
   "name": "shot_sprite_hi_0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7696,
   "name": "shot_sprite_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7697,
   "name": "figure2_x_hi_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7698,
   "name": "figure2_x_hi_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7699,
   "name": "a_1E13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7700,
   "name": "a_1E14",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7701,
   "name": "shot_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7702,
   "name": "shot1_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7704,
   "name": "a_1E18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7707,
   "name": "shot_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7708,
   "name": "shot1_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7709,
   "name": "a_1E1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7710,
   "name": "a_1E1E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7711,
   "name": "a_1E1F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7712,
   "name": "a_1E20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7713,
   "name": "shot_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7714,
   "name": "shot1_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7716,
   "name": "f_1E24",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7719,
   "name": "sprite_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7720,
   "name": "a_1E28",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7721,
   "name": "a_1E29",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7722,
   "name": "a_1E2A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7723,
   "name": "a_1E2B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7724,
   "name": "a_1E2C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7725,
   "name": "a_1E2D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7726,
   "name": "a_1E2E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7727,
   "name": "sprite_pointers",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7728,
   "name": "a_1E30",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7729,
   "name": "a_1E31",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7730,
   "name": "figure2_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7731,
   "name": "a_1E33",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7732,
   "name": "a_1E34",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7733,
   "name": "a_1E35",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7734,
   "name": "a_1E36",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7751,
   "name": "shot_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7752,
   "name": "a_1E48",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7754,
   "name": "f_1E4A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7757,
   "name": "shot_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7758,
   "name": "a_1E4E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7760,
   "name": "f_1E50",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7763,
   "name": "check_pause_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7765,
   "name": "check_p_and_g_keys",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7780,
   "name": "b_1E64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7797,
   "name": "b_1E75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7849,
   "name": "b_1EA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7866,
   "name": "b_1EBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7878,
   "name": "setting_1EC6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7879,
   "name": "spawn_timer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7936,
   "name": "b_1F00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7939,
   "name": "r_1F03",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7940,
   "name": "spawn_gap",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7941,
   "name": "spawn_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7942,
   "name": "figure2_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7945,
   "name": "spawn_enemy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8009,
   "name": "random_5bit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8032,
   "name": "cancel_spawn",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 8041,
   "name": "enemy_from_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8043,
   "name": "b_1F6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8102,
   "name": "place_enemy_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8184,
   "name": "r_1FF8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8185,
   "name": "b_1FF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8194,
   "name": "b_2002",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8200,
   "name": "spawn_15_crouch_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8216,
   "name": "r_2018",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8217,
   "name": "enemy_from_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8219,
   "name": "b_201B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8278,
   "name": "place_enemy_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8361,
   "name": "b_20A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8366,
   "name": "r_20AE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8367,
   "name": "spawn_14_crouch_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8384,
   "name": "spawn_26_villager_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8406,
   "name": "b_20D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8414,
   "name": "spawn_27_villager_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8436,
   "name": "random_seed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8448,
   "name": "walk_right_slow",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8462,
   "name": "spawn_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8471,
   "name": "walk_left_slow",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8485,
   "name": "spawn_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8494,
   "name": "walk_right_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8534,
   "name": "r_2156",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8539,
   "name": "walk_left_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8584,
   "name": "spawn_2_enemy_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8591,
   "name": "spawn_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8605,
   "name": "spawn_1_enemy_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8612,
   "name": "spawn_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8626,
   "name": "crouch_from_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8647,
   "name": "crouch_from_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8668,
   "name": "spawn_24_tree_sniper",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8732,
   "name": "b_221C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8741,
   "name": "drop_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8743,
   "name": "run_drop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8768,
   "name": "r_2240",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8769,
   "name": "b_2241",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8858,
   "name": "jump_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8911,
   "name": "b_22CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8917,
   "name": "b_22D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8923,
   "name": "b_22DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8963,
   "name": "run_figure_jump",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8982,
   "name": "b_2316",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8986,
   "name": "b_231A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9026,
   "name": "b_2342",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9029,
   "name": "j_2345",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9035,
   "name": "figure_jump_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9037,
   "name": "stand_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9097,
   "name": "r_2389",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9102,
   "name": "stop_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9111,
   "name": "check_figure_edge",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9128,
   "name": "b_23A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9140,
   "name": "b_23B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9228,
   "name": "r_240C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9229,
   "name": "b_240D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9256,
   "name": "drop_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9297,
   "name": "b_2451",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9301,
   "name": "hide_soldier",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9337,
   "name": "figure_fires",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9347,
   "name": "r_2483",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9348,
   "name": "b_2484",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9431,
   "name": "b_24D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9436,
   "name": "j_24DC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9443,
   "name": "b_24E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9452,
   "name": "r_24EC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9453,
   "name": "b_24ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9527,
   "name": "spawn_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9555,
   "name": "r_2553",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9556,
   "name": "react_to_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9590,
   "name": "b_2576",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9597,
   "name": "b_257D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9621,
   "name": "b_2595",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9624,
   "name": "r_2598",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9625,
   "name": "face_delay",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9627,
   "name": "figure2_facing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9630,
   "name": "spawn_scripts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9869,
   "name": "run_spawn_script",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9946,
   "name": "b_26DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9948,
   "name": "a_26DC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9949,
   "name": "a_26DD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9970,
   "name": "a_26F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9971,
   "name": "a_26F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9972,
   "name": "r_26F4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9974,
   "name": "script_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9977,
   "name": "script_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9979,
   "name": "script_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9981,
   "name": "last_action",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 9982,
   "name": "a_26FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9983,
   "name": "spawn_script_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9984,
   "name": "spawn_pointers_rest",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10087,
   "name": "spawn_actions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10088,
   "name": "f_2768",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10143,
   "name": "b_279F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10146,
   "name": "b_27A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10149,
   "name": "animate_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10156,
   "name": "b_27AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10230,
   "name": "b_27F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10237,
   "name": "a_27FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10261,
   "name": "b_2815",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10269,
   "name": "b_281D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10342,
   "name": "b_2866",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10348,
   "name": "b_286C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10357,
   "name": "b_2875",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10388,
   "name": "r_2894",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10389,
   "name": "b_2895",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10405,
   "name": "b_28A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10462,
   "name": "b_28DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10468,
   "name": "b_28E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10477,
   "name": "b_28ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10505,
   "name": "j_2909",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10508,
   "name": "r_290C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10509,
   "name": "animate_companion",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10535,
   "name": "b_2927",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10554,
   "name": "figure_walk_frame",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10556,
   "name": "figure_walk_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10558,
   "name": "r_293E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10559,
   "name": "climb_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10581,
   "name": "b_2955",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10653,
   "name": "b_299D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10678,
   "name": "enter_tunnel_entrance",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10757,
   "name": "r_2A05",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10758,
   "name": "in_tunnel_entrance",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10759,
   "name": "tunnel_marker",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10760,
   "name": "a_2A08",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10761,
   "name": "scene_above",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10787,
   "name": "b_2A23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10822,
   "name": "climb_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10864,
   "name": "r_2A70",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10865,
   "name": "lower_level",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10866,
   "name": "climb_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10888,
   "name": "b_2A88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11024,
   "name": "b_2B10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11047,
   "name": "b_2B27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11069,
   "name": "b_2B3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11157,
   "name": "r_2B95",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11158,
   "name": "climb_up_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11166,
   "name": "climb_up_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11174,
   "name": "climb_up_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11182,
   "name": "climb_down_top",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11190,
   "name": "climb_down_middle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11198,
   "name": "climb_down_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11206,
   "name": "climbing_up",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11207,
   "name": "climbing_down",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11208,
   "name": "test_soldier_contact",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11246,
   "name": "b_2BEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11248,
   "name": "j_2BF0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11296,
   "name": "a_2C20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11325,
   "name": "b_2C3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11328,
   "name": "r_2C40",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11329,
   "name": "b_2C41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11375,
   "name": "b_2C6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11397,
   "name": "j_2C85",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11433,
   "name": "b_2CA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11437,
   "name": "soldier_safe",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11438,
   "name": "b_2CAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11446,
   "name": "r_2CB6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11447,
   "name": "soldier_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11492,
   "name": "b_2CE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11505,
   "name": "b_2CF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11520,
   "name": "j_2D00",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11525,
   "name": "b_2D05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11530,
   "name": "b_2D0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11537,
   "name": "b_2D11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11542,
   "name": "b_2D16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11544,
   "name": "j_2D18",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11571,
   "name": "b_2D33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11584,
   "name": "r_2D40",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11585,
   "name": "shot_x_half",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11591,
   "name": "b_2D47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11594,
   "name": "r_2D4A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11595,
   "name": "test_shots_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11614,
   "name": "j_2D5E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11622,
   "name": "b_2D66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11670,
   "name": "b_2D96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11673,
   "name": "b_2D99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11678,
   "name": "j_2D9E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11717,
   "name": "b_2DC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11722,
   "name": "a_2DCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11748,
   "name": "a_2DE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11759,
   "name": "a_2DEF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11776,
   "name": "b_2E00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11779,
   "name": "b_2E03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11818,
   "name": "b_2E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11845,
   "name": "b_2E45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11859,
   "name": "b_2E53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11862,
   "name": "b_2E56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11871,
   "name": "j_2E5F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11896,
   "name": "b_2E78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11901,
   "name": "b_2E7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11913,
   "name": "b_2E89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11915,
   "name": "j_2E8B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11935,
   "name": "j_2E9F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11939,
   "name": "j_2EA3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11945,
   "name": "r_2EA9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12002,
   "name": "figure_fall",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12003,
   "name": "a_2EE3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12007,
   "name": "soldier_fall",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12008,
   "name": "figure_fall_direction",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12013,
   "name": "soldier_fall_direction",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12014,
   "name": "run_figure_falls",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12018,
   "name": "b_2EF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12046,
   "name": "b_2F0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12058,
   "name": "b_2F1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12072,
   "name": "b_2F28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12079,
   "name": "b_2F2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12086,
   "name": "b_2F36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12092,
   "name": "figure_knocked",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12184,
   "name": "b_2F98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12195,
   "name": "b_2FA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12240,
   "name": "figure_falling",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12282,
   "name": "b_2FFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12331,
   "name": "b_302B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12354,
   "name": "r_3042",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12355,
   "name": "b_3043",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12400,
   "name": "b_3070",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12422,
   "name": "r_3086",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12423,
   "name": "figure_lying",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12481,
   "name": "r_30C1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12494,
   "name": "b_30CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12519,
   "name": "figure_gone",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12566,
   "name": "b_3116",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12574,
   "name": "j_311E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12584,
   "name": "b_3128",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12633,
   "name": "r_3159",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12634,
   "name": "b_315A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12643,
   "name": "run_soldier_fall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12664,
   "name": "b_3178",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12683,
   "name": "b_318B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12705,
   "name": "b_31A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12716,
   "name": "b_31AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12737,
   "name": "b_31C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12756,
   "name": "b_31D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12761,
   "name": "b_31D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12779,
   "name": "b_31EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12785,
   "name": "b_31F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12792,
   "name": "r_31F8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12793,
   "name": "fall_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12794,
   "name": "soldier_knocked",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12866,
   "name": "b_3242",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12887,
   "name": "soldier_falling",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12967,
   "name": "b_32A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13015,
   "name": "soldier_lying",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13050,
   "name": "b_32FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13066,
   "name": "soldier_back",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13166,
   "name": "b_336E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13172,
   "name": "man_lost",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13173,
   "name": "village_figure_placed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13174,
   "name": "low_sprite_x_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13175,
   "name": "test_low_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13269,
   "name": "b_33D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13272,
   "name": "r_33D8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13273,
   "name": "villager_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13274,
   "name": "b_33DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13279,
   "name": "b_33DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13316,
   "name": "b_3404",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13400,
   "name": "b_3458",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13416,
   "name": "figure_turn_back",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13428,
   "name": "b_3474",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13444,
   "name": "b_3484",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13477,
   "name": "r_34A5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13478,
   "name": "b_34A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13484,
   "name": "test_soldier_walls",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13587,
   "name": "r_3513",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13588,
   "name": "b_3514",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13594,
   "name": "b_351A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13600,
   "name": "ambush_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13757,
   "name": "ambush_wait",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13770,
   "name": "r_35CA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13771,
   "name": "run_ambush",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13822,
   "name": "b_35FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13847,
   "name": "r_3617",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13848,
   "name": "b_3618",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13910,
   "name": "b_3656",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13968,
   "name": "ambush_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13970,
   "name": "village_figure_fires",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14019,
   "name": "r_36C3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14020,
   "name": "village_fire_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14021,
   "name": "village_fired",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14022,
   "name": "village_figure_down",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14023,
   "name": "b_36C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14026,
   "name": "place_village_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14192,
   "name": "b_3770",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14260,
   "name": "place_tunnel_figure",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14362,
   "name": "r_381A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14363,
   "name": "b_381B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14371,
   "name": "spawn_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14385,
   "name": "place_kind3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14477,
   "name": "r_388D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14478,
   "name": "kind3_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14479,
   "name": "kind3_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14480,
   "name": "run_kind3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14503,
   "name": "j_38A7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14534,
   "name": "r_38C6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14535,
   "name": "remove_kind3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14554,
   "name": "b_38DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14575,
   "name": "kind3_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14576,
   "name": "f_38F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 14601,
   "name": "trap_random",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14602,
   "name": "r_390A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14603,
   "name": "place_trap",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14650,
   "name": "b_393A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14716,
   "name": "r_397C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14717,
   "name": "j_397D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14784,
   "name": "trap_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14785,
   "name": "trap_sprung",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14852,
   "name": "r_3A04",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14853,
   "name": "test_pickup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14937,
   "name": "b_3A59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14965,
   "name": "b_3A75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14983,
   "name": "r_3A87",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14984,
   "name": "pickup_supplies",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15011,
   "name": "b_3AA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15017,
   "name": "b_3AA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15050,
   "name": "b_3ACA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15061,
   "name": "b_3AD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15079,
   "name": "b_3AE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15102,
   "name": "b_3AFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15115,
   "name": "b_3B0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15120,
   "name": "j_3B10",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15122,
   "name": "a_3B12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15125,
   "name": "r_3B15",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15126,
   "name": "remove_low_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15138,
   "name": "have_explosives",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15139,
   "name": "explosives_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15140,
   "name": "r_3B24",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15141,
   "name": "check_map_events",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15176,
   "name": "b_3B48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15229,
   "name": "b_3B7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15293,
   "name": "b_3BBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15365,
   "name": "b_3C05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15394,
   "name": "b_3C22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15433,
   "name": "b_3C49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15455,
   "name": "b_3C5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15461,
   "name": "bridge_message_due",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15462,
   "name": "explosives_and_bridge",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15551,
   "name": "b_3CBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15576,
   "name": "b_3CD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15589,
   "name": "b_3CE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15608,
   "name": "b_3CF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15620,
   "name": "b_3D04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15629,
   "name": "b_3D0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15657,
   "name": "b_3D29",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15672,
   "name": "fall_off_bridge",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15696,
   "name": "r_3D50",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15697,
   "name": "b_3D51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15709,
   "name": "off_bridge_jump",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15729,
   "name": "off_bridge",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15730,
   "name": "a_3D72",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15731,
   "name": "a_3D73",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15732,
   "name": "load_next_section",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15783,
   "name": "b_3DA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15790,
   "name": "b_3DAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15838,
   "name": "lay2_name",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "j_4000",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 16394,
   "name": "f_400A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16624,
   "name": "f_40F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16634,
   "name": "f_40FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16664,
   "name": "f_4118",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16716,
   "name": "f_414C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16744,
   "name": "f_4168",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16843,
   "name": "a_41CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16844,
   "name": "a_41CC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16854,
   "name": "f_41D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16864,
   "name": "f_41E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16865,
   "name": "f_41E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16876,
   "name": "f_41EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16882,
   "name": "a_41F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16884,
   "name": "f_41F4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16886,
   "name": "a_41F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16887,
   "name": "f_41F7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16904,
   "name": "a_4208",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16905,
   "name": "f_4209",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16915,
   "name": "f_4213",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16916,
   "name": "f_4214",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16917,
   "name": "f_4215",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16923,
   "name": "a_421B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16925,
   "name": "a_421D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16936,
   "name": "a_4228",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16943,
   "name": "a_422F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16944,
   "name": "f_4230",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16945,
   "name": "f_4231",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16963,
   "name": "a_4243",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16964,
   "name": "a_4244",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16973,
   "name": "f_424D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16983,
   "name": "a_4257",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16984,
   "name": "f_4258",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16985,
   "name": "f_4259",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17024,
   "name": "f_4280",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17025,
   "name": "f_4281",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17064,
   "name": "f_42A8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17065,
   "name": "f_42A9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17083,
   "name": "a_42BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17084,
   "name": "a_42BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17104,
   "name": "f_42D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17105,
   "name": "f_42D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17134,
   "name": "f_42EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17144,
   "name": "f_42F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17145,
   "name": "f_42F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17183,
   "name": "a_431F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17184,
   "name": "f_4320",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17185,
   "name": "f_4321",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17224,
   "name": "f_4348",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17225,
   "name": "f_4349",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17239,
   "name": "f_4357",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17246,
   "name": "a_435E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17247,
   "name": "a_435F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17248,
   "name": "a_4360",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17264,
   "name": "f_4370",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17265,
   "name": "f_4371",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17295,
   "name": "f_438F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17304,
   "name": "f_4398",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17305,
   "name": "f_4399",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17315,
   "name": "f_43A3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17325,
   "name": "f_43AD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17335,
   "name": "f_43B7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17344,
   "name": "f_43C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17355,
   "name": "f_43CB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17356,
   "name": "f_43CC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17366,
   "name": "a_43D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17367,
   "name": "f_43D7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17375,
   "name": "f_43DF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17400,
   "name": "f_43F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17407,
   "name": "a_43FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17408,
   "name": "f_4400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17448,
   "name": "f_4428",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17658,
   "name": "f_44FA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17878,
   "name": "f_45D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17906,
   "name": "a_45F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17910,
   "name": "a_45F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17928,
   "name": "a_4608",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17948,
   "name": "a_461C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17967,
   "name": "a_462F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17968,
   "name": "f_4630",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17984,
   "name": "f_4640",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17987,
   "name": "a_4643",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17988,
   "name": "a_4644",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17997,
   "name": "f_464D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18007,
   "name": "a_4657",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18424,
   "name": "f_47F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18431,
   "name": "a_47FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18432,
   "name": "charset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19168,
   "name": "f_4AE0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19169,
   "name": "bar_char_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "charset_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20240,
   "name": "water_frame_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20312,
   "name": "water_frame_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "sprites",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "sprites_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "sprites_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "sprites_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "sprites_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25600,
   "name": "sprites_90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "sprites_A0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "sprites_B0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "sprites_C0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29696,
   "name": "sprites_D0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "sprites_E0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "sprites_F0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "blocks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33792,
   "name": "blocks_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34816,
   "name": "blocks_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35840,
   "name": "blocks_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36864,
   "name": "blocks_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37888,
   "name": "blocks_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38912,
   "name": "blocks_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39936,
   "name": "blocks_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40113,
   "name": "a_9CB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40606,
   "name": "f_9E9E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40704,
   "name": "f_9F00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40705,
   "name": "f_9F01",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40706,
   "name": "f_9F02",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40707,
   "name": "f_9F03",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40708,
   "name": "f_9F04",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40709,
   "name": "f_9F05",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40710,
   "name": "f_9F06",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40711,
   "name": "f_9F07",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40714,
   "name": "f_9F0A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40715,
   "name": "f_9F0B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40716,
   "name": "f_9F0C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40717,
   "name": "f_9F0D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40718,
   "name": "f_9F0E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40719,
   "name": "f_9F0F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40720,
   "name": "f_9F10",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40721,
   "name": "f_9F11",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40722,
   "name": "f_9F12",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40723,
   "name": "f_9F13",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40724,
   "name": "f_9F14",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40725,
   "name": "f_9F15",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40726,
   "name": "f_9F16",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40727,
   "name": "f_9F17",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40728,
   "name": "f_9F18",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40729,
   "name": "f_9F19",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40730,
   "name": "f_9F1A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40731,
   "name": "f_9F1B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40732,
   "name": "f_9F1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40733,
   "name": "f_9F1D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40734,
   "name": "f_9F1E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40735,
   "name": "f_9F1F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40736,
   "name": "f_9F20",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40737,
   "name": "f_9F21",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40740,
   "name": "f_9F24",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40743,
   "name": "f_9F27",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40753,
   "name": "f_9F31",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40795,
   "name": "f_9F5B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40829,
   "name": "f_9F7D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40960,
   "name": "scene_map",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41481,
   "name": "bridge_blocks",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41482,
   "name": "bridge_block_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41984,
   "name": "scene_map_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42761,
   "name": "game_over",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42779,
   "name": "title_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42787,
   "name": "title_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42833,
   "name": "b_A751",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42907,
   "name": "b_A79B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42924,
   "name": "b_A7AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42943,
   "name": "title_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 42995,
   "name": "b_A7F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43010,
   "name": "b_A802",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43025,
   "name": "b_A811",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43037,
   "name": "b_A81D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43049,
   "name": "b_A829",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43070,
   "name": "b_A83E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43098,
   "name": "b_A85A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43105,
   "name": "b_A861",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43133,
   "name": "b_A87D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43136,
   "name": "b_A880",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43151,
   "name": "b_A88F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43159,
   "name": "b_A897",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43174,
   "name": "b_A8A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43182,
   "name": "b_A8AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43197,
   "name": "b_A8BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43221,
   "name": "b_A8D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43224,
   "name": "b_A8D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43227,
   "name": "b_A8DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43236,
   "name": "j_A8E4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43244,
   "name": "b_A8EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43254,
   "name": "b_A8F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43261,
   "name": "b_A8FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43270,
   "name": "b_A906",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43279,
   "name": "b_A90F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43288,
   "name": "b_A918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43297,
   "name": "b_A921",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43304,
   "name": "b_A928",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43307,
   "name": "start_pressed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43343,
   "name": "b_A94F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43360,
   "name": "b_A960",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43382,
   "name": "enter_countdown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43383,
   "name": "game_over_countdown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43384,
   "name": "high_scores_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43385,
   "name": "begin_game",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43411,
   "name": "show_credits_page",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43413,
   "name": "b_A995",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43435,
   "name": "show_opening_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43440,
   "name": "b_A9B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43460,
   "name": "show_ten_best",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43465,
   "name": "b_A9C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43485,
   "name": "clear_title_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43492,
   "name": "b_A9E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43508,
   "name": "message_strings",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43548,
   "name": "enter_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43588,
   "name": "game_over_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43628,
   "name": "ten_best_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43665,
   "name": "ten_best_pad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43668,
   "name": "enter_name_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43686,
   "name": "credits_scroll_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43687,
   "name": "title_script_tick",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43688,
   "name": "title_script_command",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43689,
   "name": "title_script_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43690,
   "name": "credits_line",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43691,
   "name": "title_script",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44144,
   "name": "high_score_frame",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44384,
   "name": "credits_page",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44544,
   "name": "spare_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44637,
   "name": "a_AE5D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44638,
   "name": "spare_colour_5e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44800,
   "name": "char_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44893,
   "name": "a_AF5D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44894,
   "name": "colour_5e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45056,
   "name": "trapdoor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45064,
   "name": "b_B008",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45079,
   "name": "b_B017",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45089,
   "name": "b_B021",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45099,
   "name": "b_B02B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45117,
   "name": "step_off_trapdoor",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45132,
   "name": "b_B04C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45157,
   "name": "trapdoor_yes",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45182,
   "name": "b_B07E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45200,
   "name": "b_B090",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45205,
   "name": "b_B095",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45215,
   "name": "trapdoor_leave",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 45228,
   "name": "b_B0AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45253,
   "name": "b_B0C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45263,
   "name": "b_B0CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45273,
   "name": "b_B0D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45283,
   "name": "b_B0E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45293,
   "name": "b_B0ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45301,
   "name": "b_B0F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45308,
   "name": "b_B0FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45333,
   "name": "b_B115",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45337,
   "name": "add_hundred",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45342,
   "name": "b_B11E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45354,
   "name": "scroll_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45371,
   "name": "r_B13B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45372,
   "name": "b_B13C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45376,
   "name": "scroll_left_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45397,
   "name": "b_B155",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45410,
   "name": "r_B162",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45411,
   "name": "b_B163",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45420,
   "name": "scroll_pixel_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45436,
   "name": "b_B17C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45474,
   "name": "b_B1A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45495,
   "name": "j_B1B7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45501,
   "name": "b_B1BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45511,
   "name": "b_B1C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45521,
   "name": "b_B1D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45543,
   "name": "b_B1E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45548,
   "name": "j_B1EC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45551,
   "name": "b_B1EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45563,
   "name": "r_B1FB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45564,
   "name": "scroll_right_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45585,
   "name": "b_B211",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45598,
   "name": "r_B21E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45599,
   "name": "b_B21F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45608,
   "name": "scroll_pixel_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45624,
   "name": "b_B238",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45662,
   "name": "b_B25E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45683,
   "name": "j_B273",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45689,
   "name": "b_B279",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45699,
   "name": "b_B283",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45709,
   "name": "b_B28D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45731,
   "name": "b_B2A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45736,
   "name": "j_B2A8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45739,
   "name": "b_B2AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45751,
   "name": "r_B2B7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45752,
   "name": "shift_figures_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45782,
   "name": "b_B2D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45801,
   "name": "b_B2E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45820,
   "name": "b_B2FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45839,
   "name": "b_B30F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45858,
   "name": "b_B322",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45877,
   "name": "b_B335",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45896,
   "name": "b_B348",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45915,
   "name": "b_B35B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45926,
   "name": "r_B366",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45927,
   "name": "shift_figures_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45957,
   "name": "b_B385",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45976,
   "name": "b_B398",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45995,
   "name": "b_B3AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46014,
   "name": "b_B3BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46033,
   "name": "b_B3D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46052,
   "name": "b_B3E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46071,
   "name": "b_B3F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46090,
   "name": "b_B40A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46101,
   "name": "r_B415",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46126,
   "name": "copy_lower_half",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46156,
   "name": "copy_180",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46158,
   "name": "b_B44E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46168,
   "name": "colours_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46173,
   "name": "b_B45D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46240,
   "name": "b_B4A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46299,
   "name": "colours_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46304,
   "name": "b_B4E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46345,
   "name": "b_B509",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46386,
   "name": "b_B532",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46431,
   "name": "map_column_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46444,
   "name": "map_position_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46457,
   "name": "r_B579",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46458,
   "name": "map_column_back",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46553,
   "name": "draw_left_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46566,
   "name": "b_B5E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46601,
   "name": "b_B609",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46614,
   "name": "b_B616",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46649,
   "name": "b_B639",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46662,
   "name": "b_B646",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46705,
   "name": "r_B671",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46706,
   "name": "draw_right_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46719,
   "name": "b_B67F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46754,
   "name": "b_B6A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46767,
   "name": "b_B6AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46802,
   "name": "b_B6D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46815,
   "name": "b_B6DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46858,
   "name": "r_B70A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46859,
   "name": "decode_left_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46891,
   "name": "j_B72B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46982,
   "name": "b_B786",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47030,
   "name": "b_B7B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47034,
   "name": "decode_right_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47080,
   "name": "j_B7E8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47171,
   "name": "b_B843",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47219,
   "name": "r_B873",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47220,
   "name": "draw_scene",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47256,
   "name": "j_B898",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47341,
   "name": "b_B8ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47437,
   "name": "next_block",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 47487,
   "name": "b_B97F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47489,
   "name": "b_B981",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47513,
   "name": "block_map_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47544,
   "name": "block_screen_steps_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47577,
   "name": "block_screen_steps_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47610,
   "name": "copy_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47612,
   "name": "b_B9FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47636,
   "name": "clear_scene",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47638,
   "name": "b_BA16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47663,
   "name": "multiply",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47682,
   "name": "b_BA42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47688,
   "name": "b_BA48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47712,
   "name": "b_BA60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47722,
   "name": "key_held",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47765,
   "name": "b_BA95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47766,
   "name": "j_BA96",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47780,
   "name": "saved_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47782,
   "name": "key_row_selects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47790,
   "name": "key_column_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47798,
   "name": "charset_top",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47821,
   "name": "b_BACD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47868,
   "name": "r_BAFC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47869,
   "name": "charset_jungle",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47892,
   "name": "b_BB14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47928,
   "name": "charset_title",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47987,
   "name": "r_BB73",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47988,
   "name": "swap_colour_table",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48004,
   "name": "b_BB84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48015,
   "name": "wanted_set",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48016,
   "name": "swap_charset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48034,
   "name": "b_BBA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48036,
   "name": "b_BBA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48037,
   "name": "a_BBA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48038,
   "name": "a_BBA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48043,
   "name": "a_BBAB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48044,
   "name": "a_BBAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48046,
   "name": "a_BBAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48047,
   "name": "a_BBAF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48052,
   "name": "a_BBB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48053,
   "name": "a_BBB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48077,
   "name": "swap_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48079,
   "name": "b_BBCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48086,
   "name": "a_BBD6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48087,
   "name": "a_BBD7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48256,
   "name": "add_hundred_points",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48271,
   "name": "add_ten_points",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48316,
   "name": "print_score",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 48318,
   "name": "b_BCBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48331,
   "name": "fire_shot_ammo",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48395,
   "name": "b_BD0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48404,
   "name": "r_BD14",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48405,
   "name": "refill_magazines",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48407,
   "name": "b_BD17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48421,
   "name": "magazines",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48422,
   "name": "shots_in_magazine",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48433,
   "name": "use_grenade",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48452,
   "name": "r_BD44",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48469,
   "name": "grenades_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48470,
   "name": "take_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48472,
   "name": "b_BD58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48494,
   "name": "add_wound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48544,
   "name": "r_BDA0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48545,
   "name": "wounds",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48546,
   "name": "wound_icon_cells",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48547,
   "name": "f_BDA3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48556,
   "name": "clear_wounds",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48558,
   "name": "b_BDAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48590,
   "name": "lose_morale",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48617,
   "name": "b_BDE9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48627,
   "name": "b_BDF3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48639,
   "name": "r_BDFF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48640,
   "name": "b_BE00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48656,
   "name": "b_BE10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48663,
   "name": "morale",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48665,
   "name": "morale_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48692,
   "name": "save_bar_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48694,
   "name": "b_BE36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48704,
   "name": "restore_bar_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48706,
   "name": "b_BE42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48716,
   "name": "saved_bar_char",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48724,
   "name": "draw_panel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48726,
   "name": "b_BE56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48753,
   "name": "b_BE71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48837,
   "name": "b_BEC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48875,
   "name": "b_BEEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48887,
   "name": "panel_labels",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48897,
   "name": "panel_labels_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48917,
   "name": "panel_labels_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48927,
   "name": "panel_labels_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48937,
   "name": "panel_labels_5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48947,
   "name": "screen_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48986,
   "name": "screen_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49037,
   "name": "animate_water",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49060,
   "name": "b_BFA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49077,
   "name": "r_BFB5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 49078,
   "name": "water_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49080,
   "name": "man_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 49172,
   "name": "b_C014",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49297,
   "name": "b_C091",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49315,
   "name": "b_C0A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49317,
   "name": "b_C0A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49319,
   "name": "b_C0A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49333,
   "name": "b_C0B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49354,
   "name": "b_C0CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49374,
   "name": "b_C0DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49386,
   "name": "j_C0EA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49389,
   "name": "a_C0ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49417,
   "name": "b_C109",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49430,
   "name": "b_C116",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49435,
   "name": "j_C11B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49437,
   "name": "a_C11D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49459,
   "name": "b_C133",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49478,
   "name": "b_C146",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49489,
   "name": "j_C151",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49495,
   "name": "choose_man",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 49592,
   "name": "b_C1B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49601,
   "name": "b_C1C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49603,
   "name": "b_C1C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49609,
   "name": "b_C1C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49647,
   "name": "b_C1EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49659,
   "name": "b_C1FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49666,
   "name": "b_C202",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49760,
   "name": "b_C260",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49854,
   "name": "j_C2BE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49864,
   "name": "b_C2C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49867,
   "name": "man_chosen",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 49879,
   "name": "b_C2D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49890,
   "name": "b_C2E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49921,
   "name": "b_C301",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49928,
   "name": "j_C308",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49995,
   "name": "b_C34B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50006,
   "name": "b_C356",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50027,
   "name": "b_C36B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50047,
   "name": "b_C37F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50059,
   "name": "j_C38B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 50062,
   "name": "a_C38E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50122,
   "name": "j_C3CA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 50192,
   "name": "resume_scene",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 50206,
   "name": "b_C41E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50222,
   "name": "b_C42E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50259,
   "name": "b_C453",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50261,
   "name": "b_C455",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50278,
   "name": "b_C466",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50291,
   "name": "j_C473",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 50335,
   "name": "b_C49F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50414,
   "name": "pass_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50415,
   "name": "in_village",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50416,
   "name": "current_man",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50417,
   "name": "man_slot_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50423,
   "name": "man_slot_pages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50429,
   "name": "saved_low_sprite",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50430,
   "name": "saved_low_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50431,
   "name": "saved_low_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50432,
   "name": "colour_top_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50434,
   "name": "b_C502",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50435,
   "name": "a_C503",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50436,
   "name": "a_C504",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50442,
   "name": "a_C50A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50443,
   "name": "a_C50B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50445,
   "name": "a_C50D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50446,
   "name": "a_C50E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50452,
   "name": "a_C514",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50453,
   "name": "a_C515",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50458,
   "name": "dead_man_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50474,
   "name": "draw_platoon_list",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50513,
   "name": "b_C551",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50515,
   "name": "b_C553",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50516,
   "name": "a_C554",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50517,
   "name": "a_C555",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50519,
   "name": "a_C557",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50520,
   "name": "a_C558",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50529,
   "name": "a_C561",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50530,
   "name": "a_C562",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50591,
   "name": "colour_list_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50603,
   "name": "b_C5AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50605,
   "name": "b_C5AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50608,
   "name": "a_C5B0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50609,
   "name": "a_C5B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50634,
   "name": "platoon_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50643,
   "name": "f_C5D3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50644,
   "name": "f_C5D4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50657,
   "name": "f_C5E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50666,
   "name": "platoon_list_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50732,
   "name": "a_C62C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50778,
   "name": "a_C65A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50824,
   "name": "a_C688",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50870,
   "name": "a_C6B6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50890,
   "name": "platoon_list_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50899,
   "name": "f_C6D3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50900,
   "name": "f_C6D4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50913,
   "name": "f_C6E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50916,
   "name": "a_C6E4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50922,
   "name": "platoon_list_2_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51002,
   "name": "start_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51022,
   "name": "r_C74E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 51023,
   "name": "scroll_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51052,
   "name": "b_C76C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51066,
   "name": "b_C77A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51068,
   "name": "b_C77C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51118,
   "name": "a_C7AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51119,
   "name": "a_C7AF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51128,
   "name": "r_C7B8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 51129,
   "name": "message_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51130,
   "name": "f_C7BA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51191,
   "name": "message_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51192,
   "name": "message_position",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51193,
   "name": "message_hold",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51194,
   "name": "message_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51196,
   "name": "message_stop",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51197,
   "name": "hut_messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52221,
   "name": "messages_rest",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52364,
   "name": "r_CC8C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 52365,
   "name": "search_hut",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 52394,
   "name": "b_CCAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52411,
   "name": "b_CCBB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52428,
   "name": "b_CCCC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52471,
   "name": "b_CCF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52477,
   "name": "b_CCFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52498,
   "name": "b_CD12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52519,
   "name": "b_CD27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52553,
   "name": "trap_from_search",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52554,
   "name": "search_from_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52573,
   "name": "search_to_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52592,
   "name": "search_from_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52611,
   "name": "search_to_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52630,
   "name": "search_messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52631,
   "name": "a_CD97",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52637,
   "name": "a_CD9D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52650,
   "name": "name_entry_due",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53248,
   "name": "charset_jungle_store",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54272,
   "name": "charset_jungle_store_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "charset_top_store",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55297,
   "name": "f_D801",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55306,
   "name": "f_D80A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55336,
   "name": "f_D828",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55337,
   "name": "f_D829",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55376,
   "name": "f_D850",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55377,
   "name": "f_D851",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55416,
   "name": "f_D878",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55417,
   "name": "f_D879",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55456,
   "name": "f_D8A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55457,
   "name": "f_D8A1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55496,
   "name": "f_D8C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55497,
   "name": "f_D8C9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55536,
   "name": "f_D8F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55537,
   "name": "f_D8F1",
   "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": 55617,
   "name": "f_D941",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55656,
   "name": "f_D968",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55657,
   "name": "f_D969",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55696,
   "name": "f_D990",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55697,
   "name": "f_D991",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55736,
   "name": "f_D9B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55737,
   "name": "f_D9B9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55776,
   "name": "f_D9E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55777,
   "name": "f_D9E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55788,
   "name": "f_D9EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55816,
   "name": "f_DA08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55817,
   "name": "f_DA09",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55828,
   "name": "f_DA14",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55856,
   "name": "f_DA30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55857,
   "name": "f_DA31",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55896,
   "name": "f_DA58",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55897,
   "name": "f_DA59",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55936,
   "name": "f_DA80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55937,
   "name": "f_DA81",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55976,
   "name": "f_DAA8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55977,
   "name": "f_DAA9",
   "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": 56096,
   "name": "f_DB20",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56136,
   "name": "f_DB48",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56151,
   "name": "f_DB57",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56176,
   "name": "f_DB70",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56216,
   "name": "f_DB98",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56247,
   "name": "f_DBB7",
   "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": 56268,
   "name": "a_DBCC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 56277,
   "name": "f_DBD5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56287,
   "name": "f_DBDF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56320,
   "name": "charset_top_store_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56797,
   "name": "cpx_placeholder",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "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": 57443,
   "name": "b_E063",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57449,
   "name": "b_E069",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57454,
   "name": "cmd_call_transposed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57460,
   "name": "cmd_call",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57471,
   "name": "goto_pattern",
   "type": "Jump",
   "kind": "user"
  },
  {
   "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": 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": "cmd_goto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57667,
   "name": "cmd_filter_steps",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57676,
   "name": "cmd_filter_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57694,
   "name": "cmd_pulse",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57721,
   "name": "cmd_instrument_now",
   "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": "cmd_transpose_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57779,
   "name": "j_E1B3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 57784,
   "name": "cmd_gate_time",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57789,
   "name": "cmd_set_flags",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57797,
   "name": "cmd_filter_on",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57817,
   "name": "cmd_filter_off",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57834,
   "name": "b_E1EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57850,
   "name": "push_return",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57871,
   "name": "start_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57875,
   "name": "b_E213",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57933,
   "name": "b_E24D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57955,
   "name": "b_E263",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57969,
   "name": "r_E271",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57970,
   "name": "voice_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57985,
   "name": "read_pattern",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58026,
   "name": "a_E2AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58028,
   "name": "b_E2AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58039,
   "name": "a_E2B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58041,
   "name": "j_E2B9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58043,
   "name": "j_E2BB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58054,
   "name": "play_note",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 58057,
   "name": "b_E2C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58076,
   "name": "b_E2DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58086,
   "name": "b_E2E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58088,
   "name": "b_E2E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58111,
   "name": "b_E2FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58115,
   "name": "start_note",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58140,
   "name": "b_E31C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58189,
   "name": "b_E34D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58223,
   "name": "filter_routine",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58224,
   "name": "a_E370",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58225,
   "name": "filter_test",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58243,
   "name": "a_E383",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58247,
   "name": "a_E387",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58251,
   "name": "a_E38B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58256,
   "name": "a_E390",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58260,
   "name": "r_E394",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58261,
   "name": "play_music",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58285,
   "name": "b_E3AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58289,
   "name": "j_E3B1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58298,
   "name": "b_E3BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58329,
   "name": "voice_turn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58330,
   "name": "frequency_steps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58345,
   "name": "j_E3E9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58370,
   "name": "b_E402",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58394,
   "name": "b_E41A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58427,
   "name": "pulse_steps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58442,
   "name": "j_E44A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58467,
   "name": "b_E463",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58491,
   "name": "b_E47B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58571,
   "name": "a_E4CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58587,
   "name": "a_E4DB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58607,
   "name": "instrument_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58639,
   "name": "b_E50F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58658,
   "name": "b_E522",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58683,
   "name": "b_E53B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58694,
   "name": "a_E546",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58719,
   "name": "r_E55F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58720,
   "name": "instrument_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58727,
   "name": "voice_registers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58730,
   "name": "voice_workspace",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58733,
   "name": "filter_routing",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58736,
   "name": "transpose_sign",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58737,
   "name": "note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58831,
   "name": "note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58925,
   "name": "command_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58933,
   "name": "silent_pattern",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58947,
   "name": "song_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58948,
   "name": "f_E644",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58977,
   "name": "pattern_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59056,
   "name": "pattern_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59134,
   "name": "instrument_jumps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59135,
   "name": "f_E6FF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59143,
   "name": "music_data",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60033,
   "name": "j_EA81",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 60160,
   "name": "music_data_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60928,
   "name": "start_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 60964,
   "name": "sound_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60965,
   "name": "sound_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61047,
   "name": "b_EE77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61112,
   "name": "sound_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61115,
   "name": "sound_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61118,
   "name": "sound_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61121,
   "name": "play_sounds",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61123,
   "name": "b_EEC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61131,
   "name": "b_EECB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61139,
   "name": "b_EED3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61143,
   "name": "sound_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61159,
   "name": "b_EEE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61162,
   "name": "b_EEEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61192,
   "name": "b_EF08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61210,
   "name": "b_EF1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61229,
   "name": "b_EF2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61232,
   "name": "b_EF30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61254,
   "name": "j_EF46",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 61310,
   "name": "j_EF7E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 61323,
   "name": "b_EF8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61353,
   "name": "sound_requested",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61356,
   "name": "sound_workspace",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61359,
   "name": "f_EFAF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61362,
   "name": "f_EFB2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61365,
   "name": "f_EFB5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61368,
   "name": "f_EFB8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61371,
   "name": "f_EFBB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61374,
   "name": "f_EFBE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61377,
   "name": "f_EFC1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61380,
   "name": "f_EFC4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61383,
   "name": "f_EFC7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61386,
   "name": "f_EFCA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61392,
   "name": "f_EFD0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61395,
   "name": "f_EFD3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61398,
   "name": "f_EFD6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61401,
   "name": "f_EFD9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61406,
   "name": "f_EFDE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61409,
   "name": "f_EFE1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61412,
   "name": "f_EFE4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61415,
   "name": "f_EFE7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61418,
   "name": "sound_effects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61419,
   "name": "f_EFEB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61420,
   "name": "f_EFEC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61421,
   "name": "f_EFED",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61422,
   "name": "f_EFEE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61423,
   "name": "f_EFEF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61424,
   "name": "f_EFF0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61425,
   "name": "effect_0_repeats",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61562,
   "name": "sound_ad_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61580,
   "name": "sound_sr_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61598,
   "name": "sound_pulse_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61616,
   "name": "request_sample",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61622,
   "name": "start_sample",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61693,
   "name": "b_F0FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61696,
   "name": "sample_nmi_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61717,
   "name": "b_F115",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61751,
   "name": "sample_nmi_low",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61788,
   "name": "sample_end",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 61811,
   "name": "sample_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61952,
   "name": "scroll_credits_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61964,
   "name": "b_F20C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62026,
   "name": "b_F24A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62028,
   "name": "b_F24C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62117,
   "name": "b_F2A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62195,
   "name": "a_F2F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62196,
   "name": "a_F2F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62211,
   "name": "b_F303",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62220,
   "name": "b_F30C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62222,
   "name": "b_F30E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62223,
   "name": "a_F30F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62224,
   "name": "a_F310",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62235,
   "name": "b_F31B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62248,
   "name": "credits_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 62265,
   "name": "score_line_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 62279,
   "name": "scroll_shows_scores",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 62280,
   "name": "credits_jump",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62322,
   "name": "r_F372",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 62323,
   "name": "wipe_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 62324,
   "name": "shift_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62331,
   "name": "b_F37B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62356,
   "name": "b_F394",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62384,
   "name": "b_F3B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62386,
   "name": "b_F3B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62429,
   "name": "b_F3DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62469,
   "name": "step_fade",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62504,
   "name": "b_F428",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62516,
   "name": "b_F434",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62528,
   "name": "b_F440",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62540,
   "name": "r_F44C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 62541,
   "name": "back_to_title",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 62594,
   "name": "enter_name",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 62617,
   "name": "b_F499",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62622,
   "name": "KERNAL_LOADj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 62641,
   "name": "b_F4B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62643,
   "name": "b_F4B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62647,
   "name": "a_F4B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62648,
   "name": "a_F4B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62655,
   "name": "b_F4BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62660,
   "name": "b_F4C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62683,
   "name": "b_F4DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62716,
   "name": "b_F4FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62750,
   "name": "b_F51E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62770,
   "name": "name_entry_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 62793,
   "name": "b_F549",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62817,
   "name": "b_F561",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62860,
   "name": "b_F58C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62869,
   "name": "b_F595",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62934,
   "name": "b_F5D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62944,
   "name": "b_F5E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62954,
   "name": "b_F5EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62961,
   "name": "b_F5F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62964,
   "name": "b_F5F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62971,
   "name": "b_F5FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62978,
   "name": "b_F602",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62981,
   "name": "b_F605",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62994,
   "name": "b_F612",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63014,
   "name": "store_name",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 63016,
   "name": "b_F628",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63036,
   "name": "b_F63C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63038,
   "name": "b_F63E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63072,
   "name": "b_F660",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63076,
   "name": "a_F664",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63077,
   "name": "a_F665",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63088,
   "name": "b_F670",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63112,
   "name": "score_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63113,
   "name": "fade_hold",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63119,
   "name": "man_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63130,
   "name": "cursor_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63135,
   "name": "man_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63136,
   "name": "f_F6A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63137,
   "name": "f_F6A1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63138,
   "name": "f_F6A2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63139,
   "name": "f_F6A3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63140,
   "name": "f_F6A4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63141,
   "name": "a_F6A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63147,
   "name": "a_F6AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63153,
   "name": "a_F6B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63159,
   "name": "a_F6B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63170,
   "name": "cursor_save",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63171,
   "name": "a_F6C3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63172,
   "name": "a_F6C4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63173,
   "name": "a_F6C5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63174,
   "name": "a_F6C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63175,
   "name": "a_F6C7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63176,
   "name": "a_F6C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63177,
   "name": "a_F6C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63178,
   "name": "a_F6CA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63179,
   "name": "credits_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63699,
   "name": "name_buffer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63710,
   "name": "f_F8DE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 64000,
   "name": "sample",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64816,
   "name": "sample_fd30",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65024,
   "name": "sample_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65278,
   "name": "high_score_seed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65280,
   "name": "high_score_entries",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65466,
   "name": "KERNAL_SETLFS",
   "type": "Predefined",
   "kind": "user"
  },
  {
   "address": 65469,
   "name": "KERNAL_SETNAM",
   "type": "Predefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 1024,
   "type": "line",
   "text": "Entry from the loader (jmp $0400 once OVL1 is in). Masks the CIA interrupts, then turns CIA 2's timer B and serial interrupts back on ($DD0D = $8A), points the NMI vector at $17DA, sets the video bank and chip registers, copies $FF00-$FFFF to $0200, silences the SID through $E0DE and seeds the game's variables."
  },
  {
   "address": 1145,
   "type": "line",
   "text": "Start of a new game, reached from the title at $A990 as well as from $0400: clears the six bytes at $02E0, sets the starting values of the play variables (positions, counters, flags, the grenade count of nine), points the interrupt vector at $1B63, and enters the main loop at $06E0 unless $031F says to show the title first ($A71B)."
  },
  {
   "address": 1269,
   "type": "line",
   "text": "Operand of the cpy at $04F4, written by $04D9 with the first cell of the panel row plus 6: where the hit icons of this man's row stop and blanks begin."
  },
  {
   "address": 1291,
   "type": "line",
   "text": "Operand of the cpy at $050A, written by $04DC: the same limit for the row in the second half of the table."
  },
  {
   "address": 1301,
   "type": "line",
   "text": "Operand of the cpy at $0514, written by $04E2: the end of the man's row. The rest of the start of a game follows: the panel rows, the man table at $F68F, the map position $20/$21 = $0114, the screen ($BAFD), the colours and the interrupts."
  },
  {
   "address": 1760,
   "type": "line",
   "text": "The game's main loop for the jungle and village, run once a frame: waits until the NMI handler sets $1A11 (CIA 2's timer B fires 5,104 cycles after the first raster interrupt of each frame starts it), clears it, reads the P and G keys ($1E53), and unless $0C85 is set moves the figures ($08EE), copies their sprite positions ($0AF0, $0B47) and runs every task of the frame: the soldier's controls, contact tests, enemies, shots, the ZACH1 key test at $07B5, the music keys at $08A5, and back."
  },
  {
   "address": 1889,
   "type": "line",
   "text": "Spare byte between the main loop's two halves; $1C16 reads it."
  },
  {
   "address": 1890,
   "type": "line",
   "text": "Main loop, continued: the per-frame tasks after the pause test: the ambush ($35CB), the contact tests ($2BC8, $2D4B), falls ($2EEE, $3163), booby traps ($390B), the second figure's edge test, climbs, spawning, animation and the ZACH1 key test."
  },
  {
   "address": 1973,
   "type": "line",
   "text": "Each pass of the main loop: with Z, A, C, H and 1 all held, writes $60 (rts) over the first byte of $2BC8, so that check returns at once; with N held, writes $EA (nop) back. Tested live on 7 October 2026: holding the five keys in the jungle changed $2BC8 from $EA to $60."
  },
  {
   "address": 2048,
   "type": "line",
   "text": "Main loop, continued: with $0C74 and $2EE7 clear, tests the soldier keys; then counts down the timer $088A, calling $0FF2 while the scroll speed $0303 is 4, and on its last count rewrites two raster lines ($1937, $19DD), sets $18BF to 3 and starts sounds 7 and 8."
  },
  {
   "address": 2058,
   "type": "line",
   "text": "Tests F1, F3, F5 and F7 through $BA6A and calls $BFB8 for each one held; the manual's switch between platoon members."
  },
  {
   "address": 2186,
   "type": "line",
   "text": "Passes left of a timed effect; the main loop at $0832 counts it down and $071C holds the soldier's controls while it runs."
  },
  {
   "address": 2187,
   "type": "line",
   "text": "Two bytes read by $1BAC, indexed; $088D holds the two read by $1BB2."
  },
  {
   "address": 2189,
   "type": "line",
   "text": "The two raster lines $1BB2 alternates during the shake."
  },
  {
   "address": 2191,
   "type": "line",
   "text": "Counter cleared by $085A, stepped and tested by $1BA0-$1BA8."
  },
  {
   "address": 2193,
   "type": "line",
   "text": "Set to 30 by $0862; $1B89-$1BBB counts it down."
  },
  {
   "address": 2194,
   "type": "line",
   "text": "Cleared by $085F; $1B8E-$1B9A changes and tests it."
  },
  {
   "address": 2195,
   "type": "line",
   "text": "With $F173 clear, RUN/STOP held drops this call's return and jumps to $A709."
  },
  {
   "address": 2213,
   "type": "line",
   "text": "With music off ($08EC clear), key 36 (M) starts the tune set by $08ED through $E20F: tune at offset 20, 10 or 0. With music on, key 38 (O) silences the SID ($E0DE) and clears $08EC."
  },
  {
   "address": 2284,
   "type": "line",
   "text": "1 while a tune plays; set at the start and by M, cleared by O ($08A5)."
  },
  {
   "address": 2285,
   "type": "line",
   "text": "Which tune M starts: 0, 1 or another value pick offsets 20, 0 and 10 in the music driver ($08A5); set by $A728 and $A7D3."
  },
  {
   "address": 2286,
   "type": "line",
   "text": "Each pass: adds each figure's horizontal step ($0C8E for the soldier, $0C8F for the second figure) to its X position, flipping the ninth bit ($1E0B, $1E0C, $1E11, $1E12) on a carry or borrow, then adds the vertical steps $0C91 and $0C92 to the Y positions, and moves the five shots in $1E15 by their steps in $0C86. The sprite copies at $1DFB-$1E06 move with them."
  },
  {
   "address": 2800,
   "type": "line",
   "text": "Copies the current shot's position, ninth bit, colour and pointer ($1E15, $1E1B, $1E21, $1E47, $1E4D indexed by $1DFA unless $16B8 is set) and the soldier's own sprite values into the slots the interrupts read ($1E07-$1E10, $1E2D-$1E36); counts down $0E7E."
  },
  {
   "address": 2887,
   "type": "line",
   "text": "Copies the soldier's and the second figure's positions into the sprite tables at $1DFB-$1E06 (the second sprite of each figure 21 lines lower), then builds the ninth-bit byte for $D010 in $18BC from $1E0B-$1E12 and copies it to $18BD and $1A0F, with sprite 0's bit forced on while $1A10 is set."
  },
  {
   "address": 3187,
   "type": "line",
   "text": "The soldier's Y position (sprite line)."
  },
  {
   "address": 3188,
   "type": "line",
   "text": "Y position of the second figure, the enemy on screen; zero when there is none."
  },
  {
   "address": 3189,
   "type": "line",
   "text": "Y position of a third figure; cleared at the start, read only by $064B."
  },
  {
   "address": 3191,
   "type": "line",
   "text": "The soldier's X position, low eight bits; the ninth is $1E0B."
  },
  {
   "address": 3192,
   "type": "line",
   "text": "X position of the second figure, low eight bits; the ninth is $1E0C."
  },
  {
   "address": 3193,
   "type": "line",
   "text": "X position of the third figure, low eight bits; the ninth is $1E0D."
  },
  {
   "address": 3195,
   "type": "line",
   "text": "The soldier's X position halved to fit a byte (ninth bit shifted in), written each pass at $0724 for the contact tests."
  },
  {
   "address": 3196,
   "type": "line",
   "text": "The second figure's X halved, ninth bit shifted in, for the contact tests."
  },
  {
   "address": 3197,
   "type": "line",
   "text": "The third figure's X halved, ninth bit shifted in."
  },
  {
   "address": 3198,
   "type": "line",
   "text": "The soldier's sprite frame, the pointer of his top sprite: $55 standing facing right, $8C facing left, $61 or $99 ducking, $67 or $9F jumping, and the walking frames from $1038 or $1058; $1E2F-$1E31 take it and the next pointers for his three sprites."
  },
  {
   "address": 3199,
   "type": "line",
   "text": "Y line read by the shot code at $22AD-$2377, with $0C80 and $0C81 after it."
  },
  {
   "address": 3202,
   "type": "line",
   "text": "1 while the second figure is on screen; $0B76 hides its sprites when clear."
  },
  {
   "address": 3203,
   "type": "line",
   "text": "Cleared at the start of a game ($063F); nothing else refers to it."
  },
  {
   "address": 3204,
   "type": "line",
   "text": "Cleared at the start of a game ($0642); nothing else refers to it."
  },
  {
   "address": 3205,
   "type": "line",
   "text": "Set to 1 by P and cleared by G ($1E55); while set the main loop skips everything but the key test, so the game stands still."
  },
  {
   "address": 3206,
   "type": "line",
   "text": "Horizontal step of each of the five shots, added to their X in $1E15 by $08EE."
  },
  {
   "address": 3207,
   "type": "line",
   "text": "Read by $160D and $359D."
  },
  {
   "address": 3209,
   "type": "line",
   "text": "Read and written by $24D1-$24D9 and $35A0."
  },
  {
   "address": 3212,
   "type": "line",
   "text": "Horizontal step of shot 0, added again by $0AB2."
  },
  {
   "address": 3213,
   "type": "line",
   "text": "Vertical step of shot 0, added to $1E1B at $0AE5."
  },
  {
   "address": 3214,
   "type": "line",
   "text": "The soldier's horizontal step this pass, signed; $08EE adds it to $0C77."
  },
  {
   "address": 3215,
   "type": "line",
   "text": "The second figure's horizontal step, signed; $FE (left) at the start."
  },
  {
   "address": 3217,
   "type": "line",
   "text": "The soldier's vertical step this pass, added to $0C73."
  },
  {
   "address": 3218,
   "type": "line",
   "text": "The second figure's vertical step, added to $0C74."
  },
  {
   "address": 3220,
   "type": "line",
   "text": "Tail of $0CA2: counts $0F12 down and returns."
  },
  {
   "address": 3234,
   "type": "line",
   "text": "Called when the stick is centred or a move is refused. While the duck timer $0F12 runs it counts it down (frame $40 at 2). Otherwise, with no hut or ladder contact pending ($2BC6, $2BC7) and $16B9 clear or past 50, stops the walk ($0308 = 0) and the scroll ($0303 = 4); unless a jump is running ($0E7C), puts the standing frame back ($55, or $8C facing left), centres the soldier at X 180 and restarts the walk animation ($1035 = $FF)."
  },
  {
   "address": 3374,
   "type": "line",
   "text": "1 while fire is held in play ($0D57), 0 when it is released."
  },
  {
   "address": 3375,
   "type": "line",
   "text": "Tested by $0CD5 and cleared by $0D05; nothing sets it, so the stand at $0CA2 always takes the test of $0F12 and $1309."
  },
  {
   "address": 3376,
   "type": "line",
   "text": "Each pass while the scroll speed $0303 is 4: reads the stick ($0D3D), with fire held calls the shot ($123C); with the stick centred stands still ($0CA2); otherwise, once the jump ($0E7C) and the pause after a duck ($0F13) are over, down ducks or climbs ($0EA7), left walks left ($0F17), right walks right ($0FAA) and up jumps or searches ($0DE2)."
  },
  {
   "address": 3389,
   "type": "line",
   "text": "Reads control port 2 ($DC00) into $0306 for the soldier's movement."
  },
  {
   "address": 3499,
   "type": "line",
   "text": "Up at a hut or ladder: sets $2BC6, and keeps the walk going in its direction ($0308 = 1 or $FF by $0309) unless $0309 is zero."
  },
  {
   "address": 3554,
   "type": "line",
   "text": "Up on the stick: in the tunnel entrance ($2A06) goes to $CC8D; while ducking or recovering, stands; with the screen characters at the soldier's head being a hut door ($61 at $41CB or $41CC, $7A at $421B or $461C) marks a hut contact ($0DAB); otherwise starts a jump: $0E7C = 1, 20 passes of $0E7E (15 when walking left on $1EC6 = 2), the walk direction kept in $0E7D, frame $67 ($9F facing left)."
  },
  {
   "address": 3708,
   "type": "line",
   "text": "Pass count of a jump, 0 when none: $10E9 steps it and takes the vertical step from $113C; the jump ends at 32."
  },
  {
   "address": 3709,
   "type": "line",
   "text": "The walk direction at the take-off ($0308), kept through the jump."
  },
  {
   "address": 3710,
   "type": "line",
   "text": "Passes the jump holds its direction, 20 at the take-off; counted down by $0AF0."
  },
  {
   "address": 3711,
   "type": "line",
   "text": "Down at a ladder or trapdoor: sets $2BC7 and keeps the walk going in its direction unless $0309 is zero."
  },
  {
   "address": 3751,
   "type": "line",
   "text": "Down on the stick: on a trapdoor or ladder character ($01 at $42BB or $42BC, or $7A at $421D in the tunnel entrance) marks the contact ($0E7F); otherwise ducks: left or right held turns him that way, then the duck timer $0F12 = 6, the pause $0F13 = 3 and the ducking frame $61 ($99 facing left)."
  },
  {
   "address": 3858,
   "type": "line",
   "text": "Passes left of a duck, 6 at the start; $0CA2 counts it down."
  },
  {
   "address": 3859,
   "type": "line",
   "text": "Passes the controls wait after a duck, 3; $0D79 counts it down."
  },
  {
   "address": 3860,
   "type": "line",
   "text": "Stands still instead of turning while ducking."
  },
  {
   "address": 3863,
   "type": "line",
   "text": "Left on the stick: refused while ducking, or by a wall character $4C at $4643 or $4243 (or $AE at $41F2 or $45F2 in the tunnel entrance). The first press turns him left; held, it sets the walk direction $0308 = 1 and steps the walk frame $1035 through the eight left frames at $1058 and $1060."
  },
  {
   "address": 4004,
   "type": "line",
   "text": "Three bytes, jmp $0CA2, left from an earlier build; nothing jumps here."
  },
  {
   "address": 4007,
   "type": "line",
   "text": "The same refusal for a right press while ducking: stands still."
  },
  {
   "address": 4010,
   "type": "line",
   "text": "Right on the stick: refused while ducking, or by a wall character $2D at $4244 or $4644 (or $AF at $45F6 or $41F6 in the tunnel entrance). The first press turns him right; held, it walks right ($0FF2)."
  },
  {
   "address": 4082,
   "type": "line",
   "text": "Sets the soldier facing right, the walk direction $0308 = $FF, and steps the walk frame $1035 through the eight right frames at $1038 and $1040; also called by the main loop while the effect timer runs, which walks him on."
  },
  {
   "address": 4148,
   "type": "line",
   "text": "Counter of the walk animation's speed: $0F6E and $1001 step it and move the frame on every pass."
  },
  {
   "address": 4149,
   "type": "line",
   "text": "The walk animation's frame, 0 to 7; $FF restarts it."
  },
  {
   "address": 4150,
   "type": "line",
   "text": "1 while the soldier faces left."
  },
  {
   "address": 4151,
   "type": "line",
   "text": "1 while the soldier faces right."
  },
  {
   "address": 4152,
   "type": "line",
   "text": "The eight frames of the soldier's top sprite walking right, $40 to $43; $2914 reads them for another figure too."
  },
  {
   "address": 4160,
   "type": "line",
   "text": "The frames of his middle sprite walking right, eight bytes from $44; the bytes after them are read by $291A for other figures."
  },
  {
   "address": 4184,
   "type": "line",
   "text": "The eight frames of the soldier's top sprite walking left, $78 to $7B."
  },
  {
   "address": 4192,
   "type": "line",
   "text": "The frames of his middle sprite walking left, eight bytes from $7C, with more after them for $292D."
  },
  {
   "address": 4216,
   "type": "line",
   "text": "Eight top-sprite frames ($C4-$C7) of an enemy figure walking right, read by $2827 and $287F."
  },
  {
   "address": 4224,
   "type": "line",
   "text": "Eight middle-sprite frames, $44 to $52 in steps of 2, read by $282D and $2885."
  },
  {
   "address": 4232,
   "type": "line",
   "text": "Eight bottom-sprite frames, $C8 to $CB, read by $2833 and $288B."
  },
  {
   "address": 4240,
   "type": "line",
   "text": "Eight top-sprite frames ($D0-$D3) of an enemy figure walking left, read by $289F and $28F7."
  },
  {
   "address": 4248,
   "type": "line",
   "text": "Eight middle-sprite frames walking left, $7C to $8A in steps of 2."
  },
  {
   "address": 4256,
   "type": "line",
   "text": "Eight bottom-sprite frames walking left, $D4 to $D7."
  },
  {
   "address": 4264,
   "type": "line",
   "text": "Eight top-sprite frames of a kind-2 figure walking right, alternating $EA and $EB, read by $2854."
  },
  {
   "address": 4272,
   "type": "line",
   "text": "Eight middle-sprite frames of a kind-2 figure walking right, from $44, read by $285A."
  },
  {
   "address": 4280,
   "type": "line",
   "text": "Eight bottom-sprite frames of a kind-2 figure walking right, $ED to $F0, read by $2860."
  },
  {
   "address": 4288,
   "type": "line",
   "text": "Eight top-sprite frames of a kind-2 figure walking left, alternating $EA and $EB, read by $28CC."
  },
  {
   "address": 4296,
   "type": "line",
   "text": "Eight middle-sprite frames of a kind-2 figure walking left, from $7C, read by $28D2."
  },
  {
   "address": 4304,
   "type": "line",
   "text": "Eight bottom-sprite frames of a kind-2 figure walking left, $ED to $F0, read by $28D8."
  },
  {
   "address": 4312,
   "type": "line",
   "text": "The villager's eight top-sprite frames walking left, alternating $6E and $6F, read by $28E4."
  },
  {
   "address": 4320,
   "type": "line",
   "text": "The villager's eight top-sprite frames walking right, alternating $F5 and $F6, read by $286C."
  },
  {
   "address": 4328,
   "type": "line",
   "text": "Return when no jump runs."
  },
  {
   "address": 4329,
   "type": "line",
   "text": "Each pass of a jump ($0E7C non-zero): steps the count and takes the vertical step from $113C, keeping the take-off direction. At 32 the jump ends: the soldier is put back at Y 128 and stands ($0CE8). With $3D71 set the jump runs to 50 instead and ends at $3D5D."
  },
  {
   "address": 4402,
   "type": "line",
   "text": "Ten zero bytes nothing refers to."
  },
  {
   "address": 4412,
   "type": "line",
   "text": "The vertical step of each pass of a jump, signed: $FC, then $FE five times, $FF, 0, then 1 and up, so he rises and falls back; also read by $2310."
  },
  {
   "address": 4472,
   "type": "line",
   "text": "Steps read by $2234, entries 1 to 27 read, holding 1 to 6."
  },
  {
   "address": 4565,
   "type": "line",
   "text": "Steps read by $223A, falling from 2 to 0."
  },
  {
   "address": 4668,
   "type": "line",
   "text": "Fire held: unless a grenade is in flight ($16B8), the rifle is empty ($BD25) or he is in a jump frame ($67, $9F), takes the first free of shot slots 0 and 1 ($1E1B zero) and, once the shot delay $1309 is over, starts it: takes a round ($BCCB), sets the delay to 10, places the shot at his X plus 1 moving left 5 a pass ($FB), or at X plus 16 moving right 5 when he faces right, at his Y (Y plus 7 while ducking). Standing with the stick centred and fire held ($0306 = $6F) shows the aiming frame $54 ($8C facing left)."
  },
  {
   "address": 4717,
   "type": "line",
   "text": "Five bytes, ldx #2 then jmp $1272: a third shot slot no code reaches."
  },
  {
   "address": 4722,
   "type": "line",
   "text": "Fires a shot from slot X when the delay allows: takes the ammunition ($BCCB), starts the shot sprite at the soldier's X (on the side he faces) and his Y (lower when ducking), moving 5 a pass either way, and sets the delay to 10. Standing still with fire alone held ($0306 = $6F) shows the firing pose $54 (right) or $8C (left)."
  },
  {
   "address": 4873,
   "type": "line",
   "text": "Passes until the next shot may start, 10 after each one; the main loop counts it down."
  },
  {
   "address": 4874,
   "type": "line",
   "text": "Return during the ambush."
  },
  {
   "address": 4875,
   "type": "line",
   "text": "Each pass: for each of the six shot slots, removes a shot that has left the screen at either side ($1496) and one whose screen character, found through $BF5A from its position, is a wall ($2D or $4C); a grenade that hits a wall stops ($0C8C = 0) instead. In the tunnel entrance ($2A06) also stops shots 0 and 1 at the characters $B0 and $B1, tested through $BF33 either side of each."
  },
  {
   "address": 5270,
   "type": "line",
   "text": "Clears shot slot X: its Y, step, X and ninth bit."
  },
  {
   "address": 5285,
   "type": "line",
   "text": "Before the grenade key test: none while in the tunnel entrance ($2A06), throwing ($16B9), ducking or jumping."
  },
  {
   "address": 5305,
   "type": "line",
   "text": "Reads row 7 of the keyboard; with SPACE held, a grenade left ($BD55 non-zero) and $1E1B clear, calls $BD31 and starts the throw."
  },
  {
   "address": 5397,
   "type": "line",
   "text": "Eighteen frame numbers, $54 to $6D, that nothing refers to: three rows of six, the soldier's throwing frames as $16BE-$16D5 hold them."
  },
  {
   "address": 5415,
   "type": "line",
   "text": "Each pass while a grenade is thrown ($16B9 counting up): at 10, 21 and 40 steps the throwing pose from $16BE-$16D5; at 20 lets the grenade go from slot 0 ($16B8 set, frame $F3, from his X plus 10, or X minus 20 thrown left); from 21 steers its flight ($15BD) and at 30 lets him stand again; at 57 it bursts ($15FC)."
  },
  {
   "address": 5446,
   "type": "line",
   "text": "An rts nothing reaches."
  },
  {
   "address": 5447,
   "type": "line",
   "text": "At steps 10, 21 and 40 of a throw, unless he is falling, steps the throwing pose ($156A) from the frame tables by his facing."
  },
  {
   "address": 5482,
   "type": "line",
   "text": "Step of the throwing pose, 0 to 3, into the frame tables at $16BE."
  },
  {
   "address": 5483,
   "type": "line",
   "text": "Throwing pose facing left, from $16CA, $16CE and $16D2."
  },
  {
   "address": 5565,
   "type": "line",
   "text": "The grenade's flight: before step 56 takes its vertical step from $1772 and its horizontal step from $16D6, or from $1724 thrown left; at step 40 the soldier stands again ($0CA2)."
  },
  {
   "address": 5628,
   "type": "line",
   "text": "At step 57: shows the burst frame $CC, stops the grenade, starts sound 6 on voice 3, and when the target at $3376 is within 15 of where it burst, with the enemy frame $58 showing ($1A0C, $1A09 set), hits it ($3B16). Every eighth step the burst frame moves on through $16B2; at 90 the grenade and the throw end."
  },
  {
   "address": 5810,
   "type": "line",
   "text": "The grenade's burst frames, stepped every eighth pass: $CC, $CD, $D8, $D9, then $FF."
  },
  {
   "address": 5816,
   "type": "line",
   "text": "1 while the grenade is in flight in shot slot 0; the shot and move routines leave slot 0 alone then."
  },
  {
   "address": 5817,
   "type": "line",
   "text": "Step of a grenade throw, 0 when there is none; counts up each pass to 90."
  },
  {
   "address": 5818,
   "type": "line",
   "text": "Index into the burst frames $16B2."
  },
  {
   "address": 5819,
   "type": "line",
   "text": "1 from the throw until step 30: the stick is not read meanwhile."
  },
  {
   "address": 5820,
   "type": "line",
   "text": "1 when the grenade is thrown facing left."
  },
  {
   "address": 5821,
   "type": "line",
   "text": "The grenade's X halved where it burst, compared with the target at $3376."
  },
  {
   "address": 5822,
   "type": "line",
   "text": "The soldier's throwing pose facing right, four steps of three sprite pointers: tops at $16BE, middles at $16C2, legs at $16C6."
  },
  {
   "address": 5826,
   "type": "line",
   "text": "Middle-sprite pointers of the four throwing steps facing right."
  },
  {
   "address": 5830,
   "type": "line",
   "text": "Leg-sprite pointers of the four throwing steps facing right."
  },
  {
   "address": 5834,
   "type": "line",
   "text": "The same four steps facing left: tops at $16CA, middles at $16CE, legs at $16D2."
  },
  {
   "address": 5838,
   "type": "line",
   "text": "Middle-sprite pointers of the four throwing steps facing left."
  },
  {
   "address": 5842,
   "type": "line",
   "text": "Leg-sprite pointers of the four throwing steps facing left."
  },
  {
   "address": 5846,
   "type": "line",
   "text": "The grenade's horizontal step per pass thrown right, 3 throughout."
  },
  {
   "address": 5924,
   "type": "line",
   "text": "The grenade's horizontal step per pass thrown left, $FD (minus 3) throughout."
  },
  {
   "address": 6002,
   "type": "line",
   "text": "The grenade's vertical step per pass: up 1 for five passes, level, then falling faster, 1 then 2 and on."
  },
  {
   "address": 6070,
   "type": "line",
   "text": "Starts sound 0 on each of the three voices: called once at the start of a game."
  },
  {
   "address": 6092,
   "type": "line",
   "text": "The sound for one frame, from the raster interrupt at $1C21: the music driver $E395 while music is on, otherwise the sound effects $EEC1."
  },
  {
   "address": 6105,
   "type": "line",
   "text": "A spare rts byte."
  },
  {
   "address": 6106,
   "type": "line",
   "text": "NMI handler. When CIA 2's timer raised it (bit 7 of $DD0D), acknowledges it and sets $1A11 to 1, which lets the main loop run one pass; any other NMI, such as RESTORE, jumps to $0108 in the stack page."
  },
  {
   "address": 6139,
   "type": "line",
   "text": "A spare rti byte."
  },
  {
   "address": 6140,
   "type": "line",
   "text": "Value for $D01D, the sprites' double width, written by the first raster handler."
  },
  {
   "address": 6141,
   "type": "line",
   "text": "Value for $D017, the sprites' double height, $24 at the start."
  },
  {
   "address": 6142,
   "type": "line",
   "text": "First of the ten raster interrupt handlers of the play screen, about line 20. Banks I/O in, sets the scroll registers from $0303 and $18BF, names $18C1 (line 135) next, then sets up the sprites for the top of the screen: enable, priority, expansion, X high bits. While the game runs ($F173 clear) starts CIA 2's timer B as a one-shot of 5,104 cycles whose NMI paces the main loop; otherwise sets $1A11 itself. Then copies the sixteen positions from $1DFB, the colours from $1E27 and the pointers from $1E2F to the chips and to both screens' pointer bytes ($43F8, $47F8). The handlers chain through $FFFE, each naming the next."
  },
  {
   "address": 6189,
   "type": "line",
   "text": "Operand of the lda #$87 at $182C, the raster line of the second handler: $87, or $4B in the tunnel entrance (written by $05A7, $1C0B and $2B73)."
  },
  {
   "address": 6332,
   "type": "line",
   "text": "The ninth bits of the sprites' X positions as built by $0B47, for $D010."
  },
  {
   "address": 6333,
   "type": "line",
   "text": "Copy of $18BC with sprite 0's bit set while $1A10 is, for the lower handlers."
  },
  {
   "address": 6334,
   "type": "line",
   "text": "$AA while a grenade flies, $2A otherwise; nothing reads it."
  },
  {
   "address": 6335,
   "type": "line",
   "text": "Vertical scroll for $D011's low bits, 3 in play."
  },
  {
   "address": 6336,
   "type": "line",
   "text": "$DD0E as the second handler found it, before it stopped timer A."
  },
  {
   "address": 6337,
   "type": "line",
   "text": "Second handler of the play screen's chain, line 135: stops CIA 2's timer A (keeping $DD0E in $18C0) and names the next by the scene's split line: $1916 at line 146 while $18EB is below $18FD, otherwise $1966 at line 149; copies $18EB to $19EF."
  },
  {
   "address": 6379,
   "type": "line",
   "text": "Operand of the lda #$92 at $18EA, the raster line of the scene's split: $92 normally, $9A on the lower level, $BB at the bridge, $50 in the tunnel entrance. The second handler compares it with $18FD."
  },
  {
   "address": 6397,
   "type": "line",
   "text": "Operand of the lda #$95 at $18FC, the raster line for the fourth handler when the split is below it; $95 from the start."
  },
  {
   "address": 6422,
   "type": "line",
   "text": "Third handler, line 146: puts every sprite behind the background ($D01B = $FF) unless $3D71 is set, then names $1A12 at line 194 when the fourth has already run this frame ($1A07), else $1966 at line 149."
  },
  {
   "address": 6455,
   "type": "line",
   "text": "Operand of the lda #$C2 at $1936, the third handler's next raster line; $084B and $1BB5 change it during the bridge's shake."
  },
  {
   "address": 6502,
   "type": "line",
   "text": "Fourth handler, line 149: with a second-figure sprite to show ($1A09), reuses sprite 0 lower down for it from $1A0A-$1A0E, or sprite 7 while a hut, ladder or explosion has taken sprite 0 ($2BC6, $2BC7, $2EE7). Marks itself run ($1A07) and names $1A12 at line 194, or $1916 when the sprites are still in front."
  },
  {
   "address": 6621,
   "type": "line",
   "text": "Operand of the lda #$C2 at $19DC, the fourth handler's next raster line, changed with $1937."
  },
  {
   "address": 6639,
   "type": "line",
   "text": "Operand of the lda #$92 at $19EE, set from the split line by the second handler each frame."
  },
  {
   "address": 6663,
   "type": "line",
   "text": "Set by the fourth handler and cleared by the first: tells the third which handler comes next."
  },
  {
   "address": 6664,
   "type": "line",
   "text": "Flag written by $1BDB and $1C5B, read by $3100 and $33A1."
  },
  {
   "address": 6665,
   "type": "line",
   "text": "1 while the reused low sprite shows; its position, pointer and colour are $1A0A-$1A0E."
  },
  {
   "address": 6666,
   "type": "line",
   "text": "X of the reused low sprite."
  },
  {
   "address": 6667,
   "type": "line",
   "text": "Y of the reused low sprite."
  },
  {
   "address": 6668,
   "type": "line",
   "text": "Pointer of the reused low sprite; $58 is the frame the grenade can hit."
  },
  {
   "address": 6669,
   "type": "line",
   "text": "Colour of the reused low sprite."
  },
  {
   "address": 6670,
   "type": "line",
   "text": "$D010 value for the reused low sprite."
  },
  {
   "address": 6671,
   "type": "line",
   "text": "$D010 value used when sprite 7 takes the low sprite; sprite 7's bit set while $1A10 is."
  },
  {
   "address": 6672,
   "type": "line",
   "text": "Flag that adds sprite 0's or sprite 7's X high bit in $0B47; written by $1BDE, $3106 and $339D."
  },
  {
   "address": 6673,
   "type": "line",
   "text": "Set to 1 by the NMI once a frame; the main loop waits for it."
  },
  {
   "address": 6674,
   "type": "line",
   "text": "Fifth handler, line 194, at the foot of the play area: parks sprites 0 to 2 at X 210, Y 0, turns every sprite off and their height off, sets $D016 to 8 and $D018 to 2, names $1A8A at line 202, and flips $1DFA between 0 and 1, which picks the shot slot $0AF0 shows next frame."
  },
  {
   "address": 6792,
   "type": "line",
   "text": "$D018 value of the status panel's lower rows, 2, written by the seventh handler."
  },
  {
   "address": 6793,
   "type": "line",
   "text": "$D016 value of the status panel's lower rows, $C8."
  },
  {
   "address": 6794,
   "type": "line",
   "text": "Sixth handler, line 202: sets $D018 to 0 and $D016 to $C0 plus the fine scroll $1AC9 for the panel's first rows, names $1ACA at line 210."
  },
  {
   "address": 6857,
   "type": "line",
   "text": "Fine horizontal scroll of the panel's top rows, 6; $C75C and $C764 change it."
  },
  {
   "address": 6858,
   "type": "line",
   "text": "Seventh handler, line 210: sets $D018 from $1A88 and $D016 from $1A89, names $1B12 at line 213."
  },
  {
   "address": 6929,
   "type": "line",
   "text": "A spare byte, $50."
  },
  {
   "address": 6930,
   "type": "line",
   "text": "Eighth handler, line 213: sets the border and background to light grey for the line under the panel, names $1B63 at line 249, waits out the line, sets them back to black and restarts CIA 2's timer A from $18C0."
  },
  {
   "address": 7011,
   "type": "line",
   "text": "Ninth handler, line 249: names $1C2E at line 5, puts the sprites behind the background, then with interrupts open runs the effect counted by $0891: every second frame alternates the vertical scroll ($088B) and the raster lines of $1937 and $19DD ($088D), so the screen shakes; at 25 calls $2CB7, changes the panel's figures at $A209, starts the explosion ($2EED, $2EE8) and a second figure's ($2EE2) and shows message 6 ($C73A); at 1 sets $2EE7 to 2. Then checks the tunnel marker $2A07, updates the message line ($C74F) and plays the frame's sound ($17CC)."
  },
  {
   "address": 7214,
   "type": "line",
   "text": "Last handler, line 5: border and background black, sprites behind, names $17FE at line 20, and copies $1A08, $1A09 and $18BD into the low sprite's X, Y and ninth bit for the fourth handler."
  },
  {
   "address": 7235,
   "type": "line",
   "text": "Operand of the lda #$FE at $1C42, the low byte of the next handler $17FE."
  },
  {
   "address": 7240,
   "type": "line",
   "text": "Operand of the lda #$17 at $1C47, the high byte of the next handler $17FE."
  },
  {
   "address": 7287,
   "type": "line",
   "text": "Title screen handler, line 50: names $1CCC at line 95, sets text mode and $D016 to $18, points the NMI at $17DA and starts CIA 2's timer B as a one-shot of 9,200 cycles, whose NMI paces the title's loop as in play."
  },
  {
   "address": 7372,
   "type": "line",
   "text": "Title screen handler, line 95: border black, waits a few cycles, sets the background from the colour cycle at $1DDA indexed by $1DF8, names $1D0E at line 142."
  },
  {
   "address": 7438,
   "type": "line",
   "text": "Title screen handler, line 142: turns on extended colour mode and multicolour ($D011 bit 6, $D016 bit 4) with the vertical scroll from $AAA6 for the credits, background black, names $1D5E at line 151."
  },
  {
   "address": 7518,
   "type": "line",
   "text": "Title screen handler, line 151: turns extended colour and multicolour off again and names $1D9E."
  },
  {
   "address": 7582,
   "type": "line",
   "text": "Title screen handler at the bottom: clears the vertical scroll bits, names $1C77 at line 50 for the next frame, sets the border from $A978 and plays the frame's sound ($17CC)."
  },
  {
   "address": 7642,
   "type": "line",
   "text": "Thirty background colours the title cycles through behind the top band, black, greys and white, then reds and yellows, indexed by $1DF8."
  },
  {
   "address": 7672,
   "type": "line",
   "text": "Index into $1DDA, stepped by the title's loop at $A78B."
  },
  {
   "address": 7673,
   "type": "line",
   "text": "Counter used by $F40A-$F416."
  },
  {
   "address": 7674,
   "type": "line",
   "text": "Which of shot slots 0 and 1 is copied to the shot sprite this frame ($0AF0); the fifth handler alternates it."
  },
  {
   "address": 7675,
   "type": "line",
   "text": "The sixteen bytes the first raster handler copies to $D000-$D00F each frame: X and Y of sprites 0 to 7. Sprites 0 to 2 are the soldier (X at $1DFB, $1DFD, $1DFF; Y at $1DFC, $1DFE, $1E00), 3 to 5 the second figure, 6 and 7 the shots."
  },
  {
   "address": 7676,
   "type": "line",
   "text": "Y of sprite 0, the soldier's top sprite."
  },
  {
   "address": 7677,
   "type": "line",
   "text": "X of sprite 1, the soldier's middle sprite."
  },
  {
   "address": 7678,
   "type": "line",
   "text": "Y of sprite 1, 21 lines below the top."
  },
  {
   "address": 7679,
   "type": "line",
   "text": "X of sprite 2, the soldier's legs."
  },
  {
   "address": 7680,
   "type": "line",
   "text": "Y of sprite 2, the same line as sprite 0's."
  },
  {
   "address": 7681,
   "type": "line",
   "text": "X of sprite 3, the second figure's top sprite."
  },
  {
   "address": 7682,
   "type": "line",
   "text": "Y of sprite 3."
  },
  {
   "address": 7683,
   "type": "line",
   "text": "X of sprite 4, the second figure's middle sprite."
  },
  {
   "address": 7684,
   "type": "line",
   "text": "Y of sprite 4, 21 lines below."
  },
  {
   "address": 7685,
   "type": "line",
   "text": "X of sprite 5, the second figure's legs."
  },
  {
   "address": 7686,
   "type": "line",
   "text": "Y of sprite 5."
  },
  {
   "address": 7687,
   "type": "line",
   "text": "X of the second shot sprite, from $1E18."
  },
  {
   "address": 7688,
   "type": "line",
   "text": "Y of the second shot sprite, from $1E1E."
  },
  {
   "address": 7689,
   "type": "line",
   "text": "X of the first shot sprite, from the shot slot $0AF0 picks."
  },
  {
   "address": 7690,
   "type": "line",
   "text": "Y of the first shot sprite."
  },
  {
   "address": 7691,
   "type": "line",
   "text": "Ninth bit of the soldier's X."
  },
  {
   "address": 7692,
   "type": "line",
   "text": "Ninth bit of the second figure's X."
  },
  {
   "address": 7693,
   "type": "line",
   "text": "Ninth bit of the third figure's X."
  },
  {
   "address": 7695,
   "type": "line",
   "text": "Ninth bit of the first shot sprite's X."
  },
  {
   "address": 7696,
   "type": "line",
   "text": "Ninth bit of the second shot sprite's X."
  },
  {
   "address": 7697,
   "type": "line",
   "text": "Ninth bit of the second figure's middle sprite's X, kept apart when it moves alone."
  },
  {
   "address": 7698,
   "type": "line",
   "text": "Ninth bit of the second figure's lower sprite's X."
  },
  {
   "address": 7699,
   "type": "line",
   "text": "Tested by $0C1D; nothing writes it."
  },
  {
   "address": 7700,
   "type": "line",
   "text": "Tested by $0C22; nothing writes it."
  },
  {
   "address": 7701,
   "type": "line",
   "text": "X of the six shot slots; slot 0 also carries the grenade."
  },
  {
   "address": 7702,
   "type": "line",
   "text": "X of shot slot 1."
  },
  {
   "address": 7704,
   "type": "line",
   "text": "X of shot slot 3, the second shot sprite's source."
  },
  {
   "address": 7707,
   "type": "line",
   "text": "Y of the six shot slots, zero when a slot is free."
  },
  {
   "address": 7708,
   "type": "line",
   "text": "Y of shot slot 1."
  },
  {
   "address": 7709,
   "type": "line",
   "text": "Cleared at the start of a game."
  },
  {
   "address": 7710,
   "type": "line",
   "text": "Y of shot slot 3."
  },
  {
   "address": 7711,
   "type": "line",
   "text": "Y of shot slot 4, cleared at the start."
  },
  {
   "address": 7712,
   "type": "line",
   "text": "Y of shot slot 5, cleared at the start."
  },
  {
   "address": 7713,
   "type": "line",
   "text": "Ninth bit of the six shot slots' X."
  },
  {
   "address": 7714,
   "type": "line",
   "text": "Ninth bit of shot slot 1's X."
  },
  {
   "address": 7716,
   "type": "line",
   "text": "Ninth bit of shot slot 3's X."
  },
  {
   "address": 7719,
   "type": "line",
   "text": "The eight sprite colours the first raster handler copies to $D027 each frame."
  },
  {
   "address": 7720,
   "type": "line",
   "text": "Colour of sprite 1, 13 at the start."
  },
  {
   "address": 7721,
   "type": "line",
   "text": "Colour of sprite 2, 8 at the start."
  },
  {
   "address": 7722,
   "type": "line",
   "text": "Colour of sprite 3, 8 at the start; $2B88 and $37E8 change it."
  },
  {
   "address": 7723,
   "type": "line",
   "text": "Colour of sprite 4."
  },
  {
   "address": 7724,
   "type": "line",
   "text": "Colour of sprite 5; 9 at the start, 5 for an enemy."
  },
  {
   "address": 7725,
   "type": "line",
   "text": "Colour of the second shot sprite."
  },
  {
   "address": 7726,
   "type": "line",
   "text": "Colour of the first shot sprite."
  },
  {
   "address": 7727,
   "type": "line",
   "text": "The eight sprite pointers the first raster handler writes to both screens: $1E2F-$1E31 the soldier's three sprites, $1E32-$1E34 the second figure's, then the shots."
  },
  {
   "address": 7728,
   "type": "line",
   "text": "Pointer of sprite 1, the soldier's middle."
  },
  {
   "address": 7729,
   "type": "line",
   "text": "Pointer of sprite 2, the soldier's legs."
  },
  {
   "address": 7730,
   "type": "line",
   "text": "Pointer of the second figure's top sprite."
  },
  {
   "address": 7731,
   "type": "line",
   "text": "Pointer of the second figure's middle sprite; $55 or $9B mean it moves with the top ($0B91)."
  },
  {
   "address": 7732,
   "type": "line",
   "text": "Pointer of the second figure's bottom sprite."
  },
  {
   "address": 7733,
   "type": "line",
   "text": "Pointer of the second shot sprite."
  },
  {
   "address": 7734,
   "type": "line",
   "text": "Pointer of the first shot sprite."
  },
  {
   "address": 7735,
   "type": "line",
   "text": "Sixteen bytes after the sprite pointers nothing refers to."
  },
  {
   "address": 7751,
   "type": "line",
   "text": "Sprite pointer of each shot slot: $F2 a bullet, $F3 the grenade, $CC on the burst."
  },
  {
   "address": 7752,
   "type": "line",
   "text": "Pointer of shot slot 1."
  },
  {
   "address": 7754,
   "type": "line",
   "text": "Pointer of shot slot 3."
  },
  {
   "address": 7757,
   "type": "line",
   "text": "Colour of each shot slot: 1 a bullet, 5 the grenade, 7 the burst."
  },
  {
   "address": 7758,
   "type": "line",
   "text": "Colour of shot slot 1."
  },
  {
   "address": 7760,
   "type": "line",
   "text": "Colour of shot slot 3."
  },
  {
   "address": 7763,
   "type": "line",
   "text": "Selects keyboard row 5 and goes on into the P and G test."
  },
  {
   "address": 7765,
   "type": "line",
   "text": "Reads two keys: P (row 5, column 1) sets the pause flag $0C85, G (row 3, column 2) clears it. While it is set the main loop skips the play routines and still copies the sprite slots ($0AF0, $0B47)."
  },
  {
   "address": 7808,
   "type": "line",
   "text": "Code nothing calls, left from an earlier build: unless jumping or on an odd scroll speed, F1 set $1EC6 to 1 and F3 set it to 2."
  },
  {
   "address": 7877,
   "type": "line",
   "text": "A spare byte."
  },
  {
   "address": 7878,
   "type": "line",
   "text": "A setting the game sets to 2 at the start and never changes: with 2, a jump while walking left holds 15 passes instead of 20 and an enemy walks in at speed 3 while the soldier walks right. The dead code at $1E80 once set it with F1 and F3."
  },
  {
   "address": 7879,
   "type": "line",
   "text": "Each pass, unless in the village ($C4EF), the tunnel entrance, a hut, on a ladder or under the effect timer: counts $1F05 up to the gap $1F04, then brings on an enemy ($1F09) and shortens the gap by one, down to 5."
  },
  {
   "address": 7940,
   "type": "line",
   "text": "Passes between enemies, 100 at the start, shrinking by one each time down to 5."
  },
  {
   "address": 7941,
   "type": "line",
   "text": "Counts up to $1F04."
  },
  {
   "address": 7942,
   "type": "line",
   "text": "What the second figure is: 1 a Viet Cong soldier, 2 a crouching or tree-borne soldier, 5 a villager (shooting one gives the message YOU SHOULD NOT KILL INNOCENT VILLAGERS), 3 the figure $3831 places; the frame code at $27A5 picks its animation by it."
  },
  {
   "address": 7945,
   "type": "line",
   "text": "Brings on an enemy when no second figure is on screen: doubles the height of sprite 5, colour 5, picks a random start ($1F49) and marks the figure active."
  },
  {
   "address": 7989,
   "type": "line",
   "text": "Code nothing calls, left from an earlier build: brought on a third figure ($0C83)."
  },
  {
   "address": 8009,
   "type": "line",
   "text": "A random number 0 to 31: adds the byte of the program at $0400 plus the raster line to $20F4 and keeps the low five bits, in $20F4 and $26FB."
  },
  {
   "address": 8032,
   "type": "line",
   "text": "Drops the second figure: clears its active flag and Y."
  },
  {
   "address": 8041,
   "type": "line",
   "text": "Brings an enemy in from the left edge when the eleven screen cells at $4230 and $4630 hold no wall or hut ($4C, $2D, $E7, $E1); any of them cancels it."
  },
  {
   "address": 8102,
   "type": "line",
   "text": "Puts figure X at Y 128, X 10 on the left, active, walking right at 1 (3 when the soldier walks right on skill 2), with the enemy frames $C4, $44 and $C8."
  },
  {
   "address": 8185,
   "type": "line",
   "text": "Drops the second figure: clears its active flag and Y (the right-hand counterpart of $1F60)."
  },
  {
   "address": 8194,
   "type": "line",
   "text": "Sets figure X's step to 2 when skill 2 is not set: the walk-in speed of $1FA6."
  },
  {
   "address": 8200,
   "type": "line",
   "text": "Spawn action 15: an enemy from the left ($1F69), made kind 2 and crouched still at Y 70 ($21B2)."
  },
  {
   "address": 8217,
   "type": "line",
   "text": "Brings an enemy in from the right edge when the eleven screen cells at $424D and $464D hold no wall or hut ($2D, $4C, $E1, $E7); any of them drops it ($1FF9)."
  },
  {
   "address": 8224,
   "type": "line",
   "text": "Branch inside $2019, not a routine: the bytes from $FFBA on, typed as code by mistake, decode as jsr $2020."
  },
  {
   "address": 8278,
   "type": "line",
   "text": "Puts figure X at Y 128, X 70 plus 256 on the right, active, walking left at 1 ($FF; $FE, or $FD when the soldier walks left on skill 2), with the left-walking frames $D0, $7C and $D4."
  },
  {
   "address": 8367,
   "type": "line",
   "text": "Spawn action 14: an enemy from the right ($2019), made kind 2 and crouched still at Y 70 ($21C7)."
  },
  {
   "address": 8384,
   "type": "line",
   "text": "Spawn action 26: on the lower level ($2A71), a villager (kind 5, colour 6) from the left walking right; elsewhere drops the figure and brings on an ordinary enemy ($1F09)."
  },
  {
   "address": 8414,
   "type": "line",
   "text": "Spawn action 27: on the lower level, a villager from the right walking left; elsewhere an ordinary enemy."
  },
  {
   "address": 8436,
   "type": "line",
   "text": "The last random number from $1F49, 0 to 31."
  },
  {
   "address": 8437,
   "type": "line",
   "text": "Eleven zero bytes after the random seed."
  },
  {
   "address": 8448,
   "type": "line",
   "text": "Stops figure X, then sets it walking right at 1 ($259B = 1)."
  },
  {
   "address": 8462,
   "type": "line",
   "text": "Spawn action 18: makes the figure kind 2 walking right at 1 ($2100)."
  },
  {
   "address": 8471,
   "type": "line",
   "text": "Stops figure X, then sets it walking left at 1 ($259B = 2)."
  },
  {
   "address": 8485,
   "type": "line",
   "text": "Spawn action 19: makes the figure kind 2 walking left at 1 ($2117)."
  },
  {
   "address": 8494,
   "type": "line",
   "text": "Unless the figure is jumping ($234B), stops it and sets it walking right at 2 (3 when the soldier also walks right on skill 2), facing right ($259B = 1)."
  },
  {
   "address": 8535,
   "type": "line",
   "text": "Spawn action 16: jsr $212E, rts."
  },
  {
   "address": 8539,
   "type": "line",
   "text": "Unless the figure is jumping, stops it and sets it walking left at 2 ($FE; $FD when the soldier also walks left on skill 2), facing left ($259B = 2)."
  },
  {
   "address": 8580,
   "type": "line",
   "text": "Spawn action 17: jsr $215B, rts."
  },
  {
   "address": 8584,
   "type": "line",
   "text": "Spawn action 2: an enemy from the left ($1F69), walking right ($212E)."
  },
  {
   "address": 8591,
   "type": "line",
   "text": "Spawn action 13: an enemy from the left walking right, made kind 2 with top frame $7C."
  },
  {
   "address": 8605,
   "type": "line",
   "text": "Spawn action 1: an enemy from the right ($2019), walking left ($215B)."
  },
  {
   "address": 8612,
   "type": "line",
   "text": "Spawn action 12: an enemy from the right walking left, made kind 2 with top frame $C2."
  },
  {
   "address": 8626,
   "type": "line",
   "text": "An enemy from the left ($1F69) put at Y 70 and stood still."
  },
  {
   "address": 8643,
   "type": "line",
   "text": "Four bytes, jsr $21B2 then rts, nothing calls."
  },
  {
   "address": 8647,
   "type": "line",
   "text": "An enemy from the right ($2019) put at Y 70 and stood still."
  },
  {
   "address": 8664,
   "type": "line",
   "text": "Four bytes, jsr $21C7 then rts, nothing calls."
  },
  {
   "address": 8668,
   "type": "line",
   "text": "Spawn action 24: with $21 set, an enemy placed high at Y 20, X 140, kind 2, with frames $E9, $68 and $E6, falling along the curve at $1178 ($2225 = 1); otherwise an ordinary enemy."
  },
  {
   "address": 8740,
   "type": "line",
   "text": "A spare rts byte before the variables of run_drop."
  },
  {
   "address": 8741,
   "type": "line",
   "text": "Step of the falling figure started by $21DC; $2227 counts it to 28."
  },
  {
   "address": 8743,
   "type": "line",
   "text": "Each pass while $2225 runs: takes the second figure's vertical and horizontal steps from $1178 and $11D5; at 28 puts it on the ground at Y 128 and sets it walking right."
  },
  {
   "address": 8790,
   "type": "line",
   "text": "Sixty-eight bytes of code nothing calls, left from an earlier build."
  },
  {
   "address": 8858,
   "type": "line",
   "text": "Spawn action 10: starts a jump of figure X ($234B = 1) with the frames $E7, $A0, $E8 facing left or $E5, $68, $E6 facing right, slowing a step of 3 to 2."
  },
  {
   "address": 8959,
   "type": "line",
   "text": "Spawn action 21: jsr $229A, rts."
  },
  {
   "address": 8963,
   "type": "line",
   "text": "Each pass of figure X's jump: takes its vertical step from the soldier's jump arc $113C; at 32 lands it at Y 128 and walks it on in its direction."
  },
  {
   "address": 9035,
   "type": "line",
   "text": "Step of the second figure's jump, 0 when it is not jumping."
  },
  {
   "address": 9037,
   "type": "line",
   "text": "Spawn action 9: unless jumping, stops figure X and shows the standing frames $64 (or $9C facing left)."
  },
  {
   "address": 9098,
   "type": "line",
   "text": "Spawn action 20: jsr $234D, rts."
  },
  {
   "address": 9102,
   "type": "line",
   "text": "Sets figure X's horizontal and vertical steps to zero."
  },
  {
   "address": 9111,
   "type": "line",
   "text": "Each pass: keeps the second figure at Y 128 or above, and drops it ($2428) once it has walked off either edge. In the village ($C4EF) a figure that reaches X 180 ends the village scene instead: the soldier is put back at X 180, Y 128 facing right and the figure at X 2."
  },
  {
   "address": 9256,
   "type": "line",
   "text": "Removes the second figure and clears its sprites and the effect flags $2EE2 and $2EE8; in the village, brings the next from the left instead ($2188)."
  },
  {
   "address": 9301,
   "type": "line",
   "text": "Puts the soldier and his sprites at 0, ends any explosion ($2EE7) and jump."
  },
  {
   "address": 9337,
   "type": "line",
   "text": "Spawn action 11: unless the effect timer runs or the enemy's shot is already flying ($1E18), the figure fires: sounds 3 and 4, a bullet in shot slot 3 from its position (X plus 20 facing right, step 4; or step $FC facing left), lower by 6 when it is crouched ($64, $9C)."
  },
  {
   "address": 9461,
   "type": "line",
   "text": "Sixty-six bytes of code nothing calls."
  },
  {
   "address": 9527,
   "type": "line",
   "text": "Spawn action 22: shows the frames $EC, $5E and $F1 and stops the figure."
  },
  {
   "address": 9556,
   "type": "line",
   "text": "Spawn action 23, and each pass from the main loop: when the soldier has just fired ($1309 = 8), the second figure crouches ($234D, or jumps when the soldier is ducking) and fires back ($2479), then turns to face him after 30 passes ($2599)."
  },
  {
   "address": 9625,
   "type": "line",
   "text": "Passes before the second figure turns to face the soldier after he fires."
  },
  {
   "address": 9627,
   "type": "line",
   "text": "Direction of the second figure: 1 right, 2 left."
  },
  {
   "address": 9630,
   "type": "line",
   "text": "Twenty-two scripts of spawn actions, ten or eleven bytes each, one byte to a step: each byte numbers a routine in the table at $2767 (0 does nothing). $26FF picks the script by a random number."
  },
  {
   "address": 9869,
   "type": "line",
   "text": "Every 16 passes, outside the village, the tunnel entrance and a jump: takes the next step of the second figure's script (the script from $26FF by the random number $26FB, the step $26F6 running 2 to 8 and round), and jumps to the routine the step numbers through the table at $2767, writing its address into the jmp at $26F1."
  },
  {
   "address": 9948,
   "type": "line",
   "text": "Low byte of the operand of the lda at $26DB: the start of the current spawn script, written from $26FF."
  },
  {
   "address": 9949,
   "type": "line",
   "text": "High byte of the spawn script's address, written from $2700."
  },
  {
   "address": 9970,
   "type": "line",
   "text": "Low byte of the jmp at $26F1: the spawn action to run, written from $2767."
  },
  {
   "address": 9971,
   "type": "line",
   "text": "High byte of the spawn action's address, written from $2768."
  },
  {
   "address": 9973,
   "type": "line",
   "text": "Spawn action 0: rts."
  },
  {
   "address": 9974,
   "type": "line",
   "text": "The step reached in the second figure's script."
  },
  {
   "address": 9977,
   "type": "line",
   "text": "Counts 16 passes between script steps."
  },
  {
   "address": 9979,
   "type": "line",
   "text": "Which script the second figure follows, a random number from $1F49."
  },
  {
   "address": 9981,
   "type": "line",
   "text": "The spawn action last run; the main loop tests it for 23 ($2554)."
  },
  {
   "address": 9982,
   "type": "line",
   "text": "Tested by the main loop at $07A6 for 23; nothing writes it."
  },
  {
   "address": 9983,
   "type": "line",
   "text": "Thirty-two addresses of spawn scripts at $259E-$2682, one per random number; some scripts serve several numbers."
  },
  {
   "address": 9984,
   "type": "line",
   "text": "The rest of the spawn pointers that start at $26FF."
  },
  {
   "address": 10087,
   "type": "line",
   "text": "Twenty-eight addresses of the spawn actions a script byte numbers: 0 nothing, 1 and 2 an enemy from the right or left, 9 stand, 10 jump, 11 fire, and the villager and tunnel variants."
  },
  {
   "address": 10088,
   "type": "line",
   "text": "High bytes of the spawn action addresses; the low bytes are at $2767."
  },
  {
   "address": 10143,
   "type": "line",
   "text": "Jump to the end of the frame code at $2909."
  },
  {
   "address": 10146,
   "type": "line",
   "text": "Jump to the end of the frame code at $290C."
  },
  {
   "address": 10149,
   "type": "line",
   "text": "Every seventh pass (fourth when walking at a speed other than 1) steps the second figure's walk frame $293A through 0 to 7, picking the frames by its kind and direction: enemy frames $1078-$10A0, villager frames $10A8-$10D0, the kind-5 frames $10D8 and $10E0, and in the village the soldier's own walk frames for the companion ($290D). Not while it stands, jumps or falls."
  },
  {
   "address": 10237,
   "type": "line",
   "text": "Operand of the cmp #$07 at $27FC, the passes between walk frames: 7 at speed 1, 4 at any other speed, written by $27E3 and $27F3."
  },
  {
   "address": 10509,
   "type": "line",
   "text": "In the village the second figure walks with the soldier's frames ($1038, $1058)."
  },
  {
   "address": 10554,
   "type": "line",
   "text": "Walk frame of the second figure, 0 to 7."
  },
  {
   "address": 10556,
   "type": "line",
   "text": "Counts passes between walk frames."
  },
  {
   "address": 10558,
   "type": "line",
   "text": "Return when no climb runs."
  },
  {
   "address": 10559,
   "type": "line",
   "text": "Each pass while the soldier climbs up ($2BC6): every fourth pass steps the climbing frames $2B96-$2BA6 and moves him up 2. With $2A71 clear, at Y 110 the scene changes to the one above ($2A09) and at Y 128 the climb ends ($2A46); with it set, at Y 114 he enters the tunnel entrance ($29B6) and at Y 108 the climb ends."
  },
  {
   "address": 10678,
   "type": "line",
   "text": "Moves the map position $20/$21 on by $546 and redraws the scene ($B874), clears the second figure and its shot, sets $D018's value to 2 and enters the tunnel entrance ($2A06 = 1, marker $2A07 = $4B, $2A08 = $50)."
  },
  {
   "address": 10758,
   "type": "line",
   "text": "1 while the soldier is in the tunnel entrance under the village; set by $29F4, cleared by $2B85."
  },
  {
   "address": 10759,
   "type": "line",
   "text": "Set to $4B on entering the tunnel entrance; the ninth raster handler then moves the split lines and clears it."
  },
  {
   "address": 10760,
   "type": "line",
   "text": "Set to $50 on entering the tunnel entrance; nothing reads it."
  },
  {
   "address": 10761,
   "type": "line",
   "text": "Moves the map position back by $10E and redraws the scene, first rebuilding the screen ($BE34, $BAB6, $BE40) when the position's high byte reaches zero; clears the second figure and its shot and puts the soldier at Y 150."
  },
  {
   "address": 10822,
   "type": "line",
   "text": "At Y 128 the climb ends. With $21 zero and $20 at $2E or more, sets $2A71 and the split line $18EB to $9A, and enemies then come every 10 passes."
  },
  {
   "address": 10865,
   "type": "line",
   "text": "Set at the end of a climb into the map's first row and cleared on the way down; 1 while the soldier is on that level."
  },
  {
   "address": 10866,
   "type": "line",
   "text": "Each pass while the soldier climbs down ($2BC7): every fourth pass steps the frames $2BAE-$2BBE and moves him down 2. At Y 150 the scene changes to the one below (map position on by $10E, screen rebuilt, Y 110, $2A71 cleared); at Y 128 the climb ends; with $2A71 set, at Y 120 he leaves the tunnel entrance for the scene $546 back, after the trapdoor test $B56C when $0309 is 4 or more."
  },
  {
   "address": 11158,
   "type": "line",
   "text": "Eight top-sprite frames of the soldier climbing up, $BC to $BF."
  },
  {
   "address": 11166,
   "type": "line",
   "text": "Eight middle-sprite frames of climbing, $B4 to $BA."
  },
  {
   "address": 11174,
   "type": "line",
   "text": "Eight bottom-sprite frames climbing up, $C0 to $C3."
  },
  {
   "address": 11182,
   "type": "line",
   "text": "Eight top-sprite frames climbing down, $B0 to $B3."
  },
  {
   "address": 11190,
   "type": "line",
   "text": "Eight middle-sprite frames climbing down, $B4 to $BA."
  },
  {
   "address": 11198,
   "type": "line",
   "text": "Eight bottom-sprite frames climbing down, $B5 to $BB."
  },
  {
   "address": 11206,
   "type": "line",
   "text": "1 while the soldier climbs up."
  },
  {
   "address": 11207,
   "type": "line",
   "text": "1 while the soldier climbs down."
  },
  {
   "address": 11208,
   "type": "line",
   "text": "Each pass, unless the effect timer runs, he climbs, or $2CAD is set: whether the soldier is caught by the second figure (within 20 lines and 6 half-pixels, 5 lines for kind 3; never kind 5, and kind 3 only outside the tunnel entrance with $388E below 7) or by an enemy bullet in shot slot 3 (its X halved in $2D41, a band of 20 lines above to 15 below his top, or 20 below while ducking). Either one kills him ($2CB7), the bullet removed. The ZACH1 key cheat at $07B5 writes rts over the first byte, so neither test runs and he cannot be killed this way."
  },
  {
   "address": 11296,
   "type": "line",
   "text": "Operand of the adc #$14 at $2C1F: the height of the contact band below the soldier, 20, or 5 for kind 3 (written by $2BDF, $2BE9)."
  },
  {
   "address": 11436,
   "type": "line",
   "text": "A spare rts byte inside the contact tests, which branch around it."
  },
  {
   "address": 11437,
   "type": "line",
   "text": "Set in the tunnel entrance once the last figure there has fallen ($315A); stops the contact tests and the shot test."
  },
  {
   "address": 11438,
   "type": "line",
   "text": "Next figure of the contact test."
  },
  {
   "address": 11447,
   "type": "line",
   "text": "The soldier is hit: unless already falling ($2EE7), starts his fall of 30 passes, calls $F0B0, stops the walk and any jump, starts sounds 11 and 12 (not during the effect timer), picks the direction he falls ($2EED: 1 to 4 from which side the figure is and which way he faces, or from his facing alone when $3D71 is set), sends the second figure walking right, clears $31F9, and outside the effect timer takes a hit ($BD56: morale down and one more hit in the panel)."
  },
  {
   "address": 11585,
   "type": "line",
   "text": "X of shot slots 0 to 2, and of the enemy's bullet, halved to fit a byte for the hit tests."
  },
  {
   "address": 11591,
   "type": "line",
   "text": "Jump to the next shot in $2D4B."
  },
  {
   "address": 11595,
   "type": "line",
   "text": "Each pass, for shot slots 2 down to 0: whether the shot hits the second figure (within 15 lines and 5 half-pixels; 40 and 30 for a grenade past step 60; never a figure under X 15, nor a ducking figure unless he is ducking too). A hit on kind 3 goes to $38C7; otherwise the figure starts falling ($2EE2 = 30): a villager (kind 5) gives sounds 11 and 12, the message YOU SHOULD NOT KILL INNOCENT VILLAGERS (24) and fifteen calls of $BDCE; any other gives sounds 9 and 10 and three of $BC80. The fall's direction ($2EE8) comes from which side the soldier is on and which way the figure faces; a bullet is removed, a grenade goes on."
  },
  {
   "address": 11722,
   "type": "line",
   "text": "Operand of the adc #$0F at $2DC9, the hit band's height, 15, or 40 for a grenade (written by $2DA0, $2DB8)."
  },
  {
   "address": 11748,
   "type": "line",
   "text": "Operand of the adc #$05 at $2DE3, the hit band's half width to the right, 5, or 30 for a grenade."
  },
  {
   "address": 11759,
   "type": "line",
   "text": "Operand of the sbc #$05 at $2DEE, the hit band's half width to the left, 5, or 30 for a grenade."
  },
  {
   "address": 11946,
   "type": "line",
   "text": "Fifty-six bytes of code nothing calls, an earlier copy of the hit routine."
  },
  {
   "address": 12002,
   "type": "line",
   "text": "Passes left of the second figure's fall after a hit, 30 at the start; zero when it is not falling. $2EE3 is a second slot."
  },
  {
   "address": 12003,
   "type": "line",
   "text": "Fall counter of a second figure slot; tested by $0C10."
  },
  {
   "address": 12004,
   "type": "line",
   "text": "Three bytes after the fall counters nothing refers to."
  },
  {
   "address": 12007,
   "type": "line",
   "text": "Passes left of the soldier's fall after a hit, 30 at the start; zero while he is alive."
  },
  {
   "address": 12008,
   "type": "line",
   "text": "How the second figure falls: 1 to 4, from the side the soldier is on and the way it faced."
  },
  {
   "address": 12009,
   "type": "line",
   "text": "Four bytes after $2EE8 nothing refers to."
  },
  {
   "address": 12013,
   "type": "line",
   "text": "How the soldier falls, 1 to 4, set by $2CB7."
  },
  {
   "address": 12014,
   "type": "line",
   "text": "Each pass, for each figure falling ($2EE2): at 23 it drops 3 lines a pass until it reaches the ground (line 144, or 120 in the tunnel entrance); otherwise counts down, with the knocked-back frames at 29 ($2F3C), the falling frames at 24 ($2FD0), the lying frames at 21 ($3087), and at 1 the end ($30E7)."
  },
  {
   "address": 12092,
   "type": "line",
   "text": "The second figure is thrown back: stops it, lines its three sprites up again, shows the frames $DC, $71, $DD (or $E1, $A9, $E2) and moves it back 2 and up 1 a pass, away from the soldier."
  },
  {
   "address": 12183,
   "type": "line",
   "text": "A spare rts byte before $2F98."
  },
  {
   "address": 12184,
   "type": "line",
   "text": "Thrown back to the left: steps $FE and $FF."
  },
  {
   "address": 12221,
   "type": "line",
   "text": "Nineteen bytes of code nothing calls: added 70 to two sprite pointers."
  },
  {
   "address": 12240,
   "type": "line",
   "text": "The second figure's falling pose: sprite 5 wide instead of tall, frames $DE, $74, $DF (or $AC, $E3, $AD facing the other way), moving down 2 and away 2 a pass, its sprites laid side by side 24 apart."
  },
  {
   "address": 12423,
   "type": "line",
   "text": "The second figure lies still: sprite 5 wide, frames $76, $E0, $77 (or $E4, $AE, $AF), no movement."
  },
  {
   "address": 12482,
   "type": "line",
   "text": "Twelve bytes of code nothing reaches."
  },
  {
   "address": 12494,
   "type": "line",
   "text": "Lying facing the other way: frames $E4, $AE, $AF."
  },
  {
   "address": 12510,
   "type": "line",
   "text": "Nine bytes of code nothing reaches."
  },
  {
   "address": 12519,
   "type": "line",
   "text": "End of a fall: in the tunnel entrance marks the soldier safe ($2CAD, $36C6). Otherwise, while fewer than 10 of $3909 and no low sprite shows, leaves something where the figure fell: the low sprite at its X, Y 152, frame $F7, colour 7; then removes the figure ($2428) and puts sprite 5 back to normal height."
  },
  {
   "address": 12643,
   "type": "line",
   "text": "Each pass while the soldier falls ($2EE7): at 23 he drops 3 lines a pass to the ground; at 10 waits up to 160 passes for the figure to leave ($31F9) unless it is at the left edge; then counts down: at 29 the knocked-back frames ($31FA), at 24 the falling frames ($3257), at 21 slows his slide to 1 and goes on to $32D7 (or with $3D71 set waits for line 190 and ends the section at $330A), and at 1 the end of the fall ($330A)."
  },
  {
   "address": 12793,
   "type": "line",
   "text": "Passes the soldier's fall has waited at 10 for the figure to go."
  },
  {
   "address": 12794,
   "type": "line",
   "text": "The soldier is thrown back: frames $70, $71, $72 (or $A8, $A9, $AA falling the other way), moving up 1 and away 2 a pass."
  },
  {
   "address": 12887,
   "type": "line",
   "text": "The soldier's falling pose: sprite 2 wide instead of tall, frames $73, $74, $75 (or $AC, $AB, $F4), moving down 2 and away 2, his sprites side by side 24 apart."
  },
  {
   "address": 13015,
   "type": "line",
   "text": "The soldier lies still: frames $76, $E0, $77 (or $E4, $AE, $AF)."
  },
  {
   "address": 13066,
   "type": "line",
   "text": "End of the soldier's fall: sprites back to normal size, the soldier back at X 180, Y 128 standing facing right, the figure removed. Outside the effect timer, hides him and sets $3374, and the next man comes on ($BFB8); during it clears $3D71 only."
  },
  {
   "address": 13172,
   "type": "line",
   "text": "Set when a man has fallen; $C412 reads it."
  },
  {
   "address": 13173,
   "type": "line",
   "text": "Set once $36CA has placed the village's figure; cleared at the start, on the lower level and in the tunnel entrance."
  },
  {
   "address": 13174,
   "type": "line",
   "text": "The low sprite's X halved, for the tests against the second figure and the grenade's burst."
  },
  {
   "address": 13175,
   "type": "line",
   "text": "Each pass: when the low sprite shows frame $58 and the second figure (not kind 3, not falling, below line 90) comes within 10 to the left and 5 to the right of it, a villager stops every tenth pass ($3468) and any other figure jumps over it ($229A). Then, for a figure on screen, walks it back from a wall or hut character in front of it ($2D, $E1 turn it left; $4C, $E7 turn it right), a kind-2 figure turned into an enemy with the next script."
  },
  {
   "address": 13273,
   "type": "line",
   "text": "Counts ten passes between a villager's checks at the low sprite."
  },
  {
   "address": 13274,
   "type": "line",
   "text": "A figure other than a villager jumps the booby trap ($229A)."
  },
  {
   "address": 13400,
   "type": "line",
   "text": "Stops the figure; a figure past step 31 of a jump lands ($231A)."
  },
  {
   "address": 13416,
   "type": "line",
   "text": "Turns the second figure: right if it faces left, left otherwise; not while falling, and a jumping figure stops."
  },
  {
   "address": 13484,
   "type": "line",
   "text": "Each pass: stops the soldier's step ($0C8E) when the screen character at his position is a wall ($2D, $4C) or, 15 to the left, a tunnel edge ($B0, $B1); a hut character ($E1, $E7) sets $3D71."
  },
  {
   "address": 13600,
   "type": "line",
   "text": "Starts the patrol's ambush across the bridge left standing: three sprites side by side at X 56, line 134 (frames $59, $5A, $5B, colour 7), sounds 16 and 17, the second figure at X 38 with frame $C4, the shot steps zeroed; $3690 = 1."
  },
  {
   "address": 13757,
   "type": "line",
   "text": "While $3690 is negative (the patrol placed at $3B70), counts on until the second figure reaches X 37, then starts the ambush ($3520)."
  },
  {
   "address": 13771,
   "type": "line",
   "text": "Each pass of the ambush: moves the three sprites apart to the right, widening two of them at step 6 and narrowing them at step 21; when the first reaches X 180 removes them, sets the state of every man in $F69F-$F6B7 and the hits $BDA1 to 4, and shows YOUR PLATOON HAS BEEN WIPED OUT, YOU SHOULD HAVE DESTROYED THE BRIDGE (message 22)."
  },
  {
   "address": 13968,
   "type": "line",
   "text": "Step of the ambush that ends the game when the bridge is still standing; 0 when it is not running, $80 while it waits for the patrol."
  },
  {
   "address": 13969,
   "type": "line",
   "text": "A spare byte before village_figure_fires."
  },
  {
   "address": 13970,
   "type": "line",
   "text": "In the village, every 50 passes, once, the placed figure fires ($2479); not while anyone falls or it lies down ($E4)."
  },
  {
   "address": 14020,
   "type": "line",
   "text": "Counts 50 passes before the village figure fires."
  },
  {
   "address": 14021,
   "type": "line",
   "text": "Set once the village figure has fired."
  },
  {
   "address": 14022,
   "type": "line",
   "text": "Set when the figure in the tunnel entrance has fallen; the next placing at $36CA puts it lying down."
  },
  {
   "address": 14023,
   "type": "line",
   "text": "Goes on to the tunnel figure's test at $37B4."
  },
  {
   "address": 14026,
   "type": "line",
   "text": "Each pass: at map position $0580 with the walk stopped ($0309 = 0), places the figure once: an enemy facing the soldier at X 220, Y 108 with frames $D0, $7C, $D4, or lying at X 228, Y 125 ($E4, $AE, $AF) with the soldier safe when $36C6 is set. At $057B goes on to $37B4."
  },
  {
   "address": 14260,
   "type": "line",
   "text": "At map position $057B with the walk and scroll stopped: places the figure of kind 3 ($3831) in colour 8 with frame $F8, at X 240."
  },
  {
   "address": 14363,
   "type": "line",
   "text": "Drops the figure and brings on an ordinary enemy instead."
  },
  {
   "address": 14371,
   "type": "line",
   "text": "Spawn action 25: only where the screen cell $4228 holds character 1 and the split line is not $BB; otherwise an ordinary enemy."
  },
  {
   "address": 14385,
   "type": "line",
   "text": "Puts a figure of kind 3 at X 276, Y 150, still, normal size, and starts its animation ($388E = 1)."
  },
  {
   "address": 14478,
   "type": "line",
   "text": "Step of the kind-3 figure's animation, 1 to 12; it fires at 6 and goes at 12."
  },
  {
   "address": 14479,
   "type": "line",
   "text": "Counts eight passes between the kind-3 figure's steps."
  },
  {
   "address": 14480,
   "type": "line",
   "text": "Every eight passes steps the kind-3 figure through the frames at $38EF; at step 6 (not in the tunnel entrance) it fires to the left ($2479) and its bullet starts at line 147; at 12 it goes ($38C7)."
  },
  {
   "address": 14535,
   "type": "line",
   "text": "Ends the kind-3 figure: sprite 5 back to double height, the figure removed."
  },
  {
   "address": 14575,
   "type": "line",
   "text": "The kind-3 figure's twelve steps, two sprite pointers each: $F8 $FF, $F9 $FA, $FB $FC, $FD $FE three times, $FB $FC, $F9 $FA, $F8 $FF, then $FF $FF and zeros."
  },
  {
   "address": 14576,
   "type": "line",
   "text": "Second sprite pointer of each kind-3 step; the first is at $38EF."
  },
  {
   "address": 14601,
   "type": "line",
   "text": "A random number 0 to 63 for placing booby traps, from the program bytes at $0400 by the raster line and the figure's X."
  },
  {
   "address": 14602,
   "type": "line",
   "text": "Return when no trap may be placed."
  },
  {
   "address": 14603,
   "type": "line",
   "text": "Each pass, unless the split line is $BB or a trap or other low sprite already shows: draws $3909; at 7, with the screen cells $422F, $462F, $4257 and $4657 all character 1 (open ground), puts a booby trap on the right (low sprite at X 331, line 154, frame $58, colour 10); at 5, with $4208, $4608, $4230 and $4630 all 1, on the left at X 20."
  },
  {
   "address": 14784,
   "type": "line",
   "text": "Set while a booby trap shows."
  },
  {
   "address": 14785,
   "type": "line",
   "text": "The soldier walked into the booby trap: it bursts as a grenade does from its place, the trap is removed, three hits are taken ($BD56) and he falls ($2CB7)."
  },
  {
   "address": 14853,
   "type": "line",
   "text": "Each pass, unless climbing: when the low sprite lies at X 175 to 184 under the soldier (not jumping), a booby trap ($58) springs ($39C1); anything else is picked up: sound 13, the sprite removed, and either the explosives (message 13, YOU HAVE FOUND THE EXPLOSIVES, $3B22 set, enemies every 50 passes) or what a fallen enemy dropped ($3A88). A low sprite that scrolls past either edge is removed."
  },
  {
   "address": 14984,
   "type": "line",
   "text": "What a fallen enemy dropped: 300 points, two more magazines up to nine (redrawn), one hit taken back ($BDA1 down by one, the icons redrawn), and four more morale up to 71; also clears the panel row at $C5D4 or $C6D4 after the hits."
  },
  {
   "address": 15122,
   "type": "line",
   "text": "Operand of the cpy #$0A at $3B11, the end of the panel row to blank, written by $3AFB."
  },
  {
   "address": 15126,
   "type": "line",
   "text": "Removes the low sprite by clearing its flags $1A08, $1A09 and $1A10; its position bytes are left as they were."
  },
  {
   "address": 15138,
   "type": "line",
   "text": "Set when the explosives are picked up; also blocks them being placed again."
  },
  {
   "address": 15139,
   "type": "line",
   "text": "Set while the explosives lie on the ground as the low sprite."
  },
  {
   "address": 15140,
   "type": "line",
   "text": "Return while the soldier falls."
  },
  {
   "address": 15141,
   "type": "line",
   "text": "Each pass, the events tied to the map position $20/$21 and the walk step $0309: disables enemies near the bridge ($1EC7 made rts at $0157-$015C before it blows); at $015C step 5 with the bridge standing, sends the patrol that ends the game ($3690 = $80); shows the explosives at $0466 or $046C; at $057B the village's trapdoor question ($B000); at $0150 with the bridge standing moves the split line and shows SET THE EXPLOSIVES ON THE BRIDGE; with the explosives held, at $0153 step 4 sets them (message 14, sound 13, the effect timer 150 and the explosives drawn on the bridge); moves the split line at $014E and $015E; and once the bridge has blown ($A209 not $8C), walking onto it at $0152-$0154 drops him into the river ($3D29)."
  },
  {
   "address": 15461,
   "type": "line",
   "text": "Set when the split line moves at the bridge, until the message SET THE EXPLOSIVES ON THE BRIDGE has been shown."
  },
  {
   "address": 15462,
   "type": "line",
   "text": "Setting the explosives at the bridge, moving the split line at $014E and $015E, and walking onto the blown bridge: the second half of $3B25."
  },
  {
   "address": 15672,
   "type": "line",
   "text": "The soldier walked onto the blown bridge: $3D71 set; on foot he takes three hits and falls ($2CB7); in a jump his fall runs to line 190 and he takes four hits and comes back ($330A)."
  },
  {
   "address": 15709,
   "type": "line",
   "text": "End of a jump over the gap: takes four hits ($BD56) and puts him back ($330A)."
  },
  {
   "address": 15729,
   "type": "line",
   "text": "Set while the soldier falls from the blown bridge; the jump runs longer and the sprites stay in front."
  },
  {
   "address": 15730,
   "type": "line",
   "text": "Flag set by $B074 and $B083 and tested by $CD04."
  },
  {
   "address": 15731,
   "type": "line",
   "text": "Flag set by $B07E and tested by $CD19."
  },
  {
   "address": 15732,
   "type": "line",
   "text": "Loads the next section from side B: silences the SID, turns the sprites and screen off, masks every interrupt, banks the KERNAL in ($01 = $37), clears zero page from $02, restores the KERNAL's vectors at $0314 from the copy at $FD30, and loads LAY2 from drive 8 to its own address ($3DDE), then runs it at $4000."
  },
  {
   "address": 15838,
   "type": "line",
   "text": "The file name LAY2, given to SETNAM at $3DC6."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "The character set in use, 256 characters of 8 bytes; at the hand-over the title's set (first byte $7C). $BB90 swaps it with the jungle's set at $D000 or the top band's at $D800 as the scene changes."
  },
  {
   "address": 19168,
   "type": "line",
   "text": "Character $5C, the end cell of the morale bar, which $BDCE redraws pixel by pixel as morale falls; saved by $BE34 across a change of set."
  },
  {
   "address": 19169,
   "type": "line",
   "text": "The seven lower rows of the bar character $5C, masked by $BDCE, and the characters after it."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "Characters 128 to 255 of the set at $4800."
  },
  {
   "address": 20240,
   "type": "line",
   "text": "Characters $E2 to $E5, the water's first frame, swapped with $4F58 by $BF8D."
  },
  {
   "address": 20312,
   "type": "line",
   "text": "Characters $EB to $EE, the water's second frame, and the last characters of the set."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Sprite shapes $40 to $4F (64 bytes each, shape n at $4000 + 64 x n): the soldier facing right, his top half with the rifle ($40-$43) and his legs and middle in the walking frames."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "Shapes $50 to $5F: more of the soldier's walking frames, his firing poses ($54 and $55, shown by $12CC), a grenade's arc ($58) and the smoke and blast of a throw ($59-$5B)."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "Shapes $60 to $6F: figures lying and kneeling, a body on the ground ($61, $64), and villagers in conical hats ($6E, $6F)."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "Shapes $70 to $7F: falling and dying poses, bodies ($76, $77), and the soldier facing left: his top half ($78-$7B, walk_left_top) and middle ($7C-$7F)."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "Shapes $80 to $8F: the soldier's legs and middle walking left, and his firing poses facing left ($8C, $8D)."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "Shapes $90 to $9F: more walking frames of the figures, bodies on the ground ($99, $9C) and crouching figures."
  },
  {
   "address": 26624,
   "type": "line",
   "text": "Shapes $A0 to $AF: dying figures and blasts; $A7 is a filled block with the word ICON, an editor's placeholder."
  },
  {
   "address": 27648,
   "type": "line",
   "text": "Shapes $B0 to $BF: the soldier climbing, seen from behind (down $B0-$B3, up $BC-$BF), and the middle frames of a climb ($B4-$BB)."
  },
  {
   "address": 28672,
   "type": "line",
   "text": "Shapes $C0 to $CF: the bottom frames of a climb ($C0-$C3), a Viet Cong soldier kneeling with his rifle ($C4-$C7), running figures and a blast ($CC, $CD)."
  },
  {
   "address": 29696,
   "type": "line",
   "text": "Shapes $D0 to $DF: a figure crouching with a rifle ($D0-$D3), running figures ($D4-$D7), explosions ($D8, $D9) and figures falling."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "Shapes $E0 to $EF: bodies on the ground, figures sitting and crouching ($E5-$EB) and more running frames."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "Shapes $F0 to $FF: running frames, the shot ($F2, set by $128F), a small dot ($F3), villagers in hats ($F5, $F6), and the shapes of spikes and wreckage ($F8-$FF)."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "The 152 blocks the map is built from, 48 bytes each: eight characters across by six rows, a row after a row. $B874 draws whole scenes from them and $B70B/$B7BA single columns."
  },
  {
   "address": 33792,
   "type": "line",
   "text": "Blocks 21 to 42 of the set at $8000 (48 bytes each)."
  },
  {
   "address": 34816,
   "type": "line",
   "text": "Blocks 42 to 63 of the set at $8000."
  },
  {
   "address": 35840,
   "type": "line",
   "text": "Blocks 64 to 85 of the set at $8000."
  },
  {
   "address": 36864,
   "type": "line",
   "text": "Blocks 85 to 106 of the set at $8000."
  },
  {
   "address": 37888,
   "type": "line",
   "text": "Blocks 106 to 127 of the set at $8000."
  },
  {
   "address": 38912,
   "type": "line",
   "text": "Blocks 128 to 149 of the set at $8000."
  },
  {
   "address": 39936,
   "type": "line",
   "text": "The last blocks, 149 to 151, of the set at $8000."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "The map of the jungle and village: 20 rows of 90 block numbers. Each block is 8 by 6 characters at $8000 + 48 x number; three rows make the height of a scene and five blocks its width. The scroll walks along a row band; climbs move the position by three rows ($10E) and the tunnel entrance by 15 ($546)."
  },
  {
   "address": 41481,
   "type": "line",
   "text": "The two blocks of the bridge, $8C and $8D at the start of a game ($0488); the blast at $1BC5 makes them $95 and $96, the broken bridge."
  },
  {
   "address": 41482,
   "type": "line",
   "text": "The bridge's second block, $8D whole and $96 broken; the map rows after it follow."
  },
  {
   "address": 41984,
   "type": "line",
   "text": "The map's rows from $A400 on: the second half of the 20 rows that start at $A000."
  },
  {
   "address": 42761,
   "type": "line",
   "text": "The end of a game: waits until $F173 is clear, sets the game-over countdown $A977 to 200 frames, sets $CDAA so that the countdown ends in name entry, and joins the title setup at $A723."
  },
  {
   "address": 42779,
   "type": "line",
   "text": "The title sequence from a fresh start: silences the SID, starts tune 0 ($E20F) and falls into the title setup."
  },
  {
   "address": 42787,
   "type": "line",
   "text": "Title setup: selects the title tune, clears both countdowns, turns the sprites off and parks them at 0, sets the raster chain back to the title handler ($1C77), redraws the scene ($BA14, $BB38), rewinds the credits scroll and the title script, prints the opening message, then clears rows 6 to 11 and prints \"GAME OVER\" on row 9."
  },
  {
   "address": 42943,
   "type": "line",
   "text": "Title loop, once a frame: pause and music keys, then, unless a countdown runs, fire starts a game ($A92B); key 5 shows the credits page ($A993), key 6 the opening message ($A9AB), keys 1 and 2 restart the colour fade. Then steps the fade ($F405), the countdowns and the title script $AAAB, one step every 8 frames."
  },
  {
   "address": 43136,
   "type": "line",
   "text": "The \"ENTERING THE COMBAT ZONE\" countdown: at 100 frames left the text fades out ($16), at 0 the game starts ($A979)."
  },
  {
   "address": 43159,
   "type": "line",
   "text": "The game-over countdown: fades at 100 frames left, and at 0 prints the high-score frame from $AC70 and, if the game just ended ($CDAA), goes to name entry ($F482)."
  },
  {
   "address": 43227,
   "type": "line",
   "text": "Title script commands: $80 starts a 40-step sideways wipe ($F373 = $28) that $F348 runs two steps a pass, $82 shows the credits page, $83 the opening message, $84 and $85 set the fade, $8C and $8D switch the scroll between the credits text and the high-score table ($F347), and $87 prints \"TEN BEST SCORES\"."
  },
  {
   "address": 43307,
   "type": "line",
   "text": "Fire on the title: plays tune $14, sets the 200-frame countdown $A976, redraws the scene and prints \"ENTERING THE COMBAT ZONE 111\"."
  },
  {
   "address": 43382,
   "type": "line",
   "text": "Frames left before the game starts after fire on the title; 0 when not counting."
  },
  {
   "address": 43383,
   "type": "line",
   "text": "Frames left on the game-over screen before the high scores; set to 1 by name entry so that the table shows at once."
  },
  {
   "address": 43384,
   "type": "line",
   "text": "1 while the high-score frame is on screen."
  },
  {
   "address": 43385,
   "type": "line",
   "text": "Waits for a frame, turns the music off, points the raster chain at the game's first handler ($17FE) and jumps to restart_game ($0479)."
  },
  {
   "address": 43411,
   "type": "line",
   "text": "Copies the 160-cell credits page at $AD60 to screen rows 7 to 10 and starts the fade in."
  },
  {
   "address": 43435,
   "type": "line",
   "text": "Clears rows 7 to 10 and prints \"THE FIRST CASUALTY OF WAR IS INNOCENCE\" on row 9 in the title's large letters (screen code + $CD)."
  },
  {
   "address": 43460,
   "type": "line",
   "text": "Clears rows 7 to 10 and prints \"TEN BEST SCORES\" on row 9."
  },
  {
   "address": 43485,
   "type": "line",
   "text": "Sets the fade to $0F and clears screen rows 7 to 10 ($4118-$41B7) to the blank character $41."
  },
  {
   "address": 43508,
   "type": "line",
   "text": "Screen messages in PETSCII: THE FIRST CASUALTY OF WAR IS INNOCENCE, ENTERING THE COMBAT ZONE, GAME OVER, TEN BEST SCORES, ENTER YOUR NAME."
  },
  {
   "address": 43548,
   "type": "line",
   "text": "\"ENTERING THE COMBAT ZONE 111\", printed when fire is pressed on the title."
  },
  {
   "address": 43588,
   "type": "line",
   "text": "\"GAME OVER\", printed on the title after a game."
  },
  {
   "address": 43628,
   "type": "line",
   "text": "\"TEN BEST SCORES\", printed by $A9C4."
  },
  {
   "address": 43665,
   "type": "line",
   "text": "Three spaces that end the TEN BEST SCORES line, 40 characters from $AA6C."
  },
  {
   "address": 43668,
   "type": "line",
   "text": "\"ENTER YOUR NAME\" (18 characters, padded with spaces), printed by name entry at $F509."
  },
  {
   "address": 43686,
   "type": "line",
   "text": "Counts down 0 to 7 while the title script holds a positive value; at 2 the credits scroll up a line ($F200)."
  },
  {
   "address": 43687,
   "type": "line",
   "text": "Frame counter 0 to 7; the title script advances when it wraps to 0."
  },
  {
   "address": 43688,
   "type": "line",
   "text": "The title script's current byte, from $AAAB: 0 holds, positive scrolls the credits, $80 and up are commands ($A8DB)."
  },
  {
   "address": 43689,
   "type": "line",
   "text": "Position in the title script, 0 to 109, then back to 0."
  },
  {
   "address": 43690,
   "type": "line",
   "text": "Which of the 14 credits lines enters the scroll next, 0 to 13; $FF before the first."
  },
  {
   "address": 43691,
   "type": "line",
   "text": "The title script: 110 bytes read one every 8 frames by $A85B (0 hold, 1 scroll, $80-$8D commands at $A8DB)."
  },
  {
   "address": 44144,
   "type": "line",
   "text": "The 240-cell frame (six rows) printed at $4000 when the high scores show, drawn with the title's own characters."
  },
  {
   "address": 44384,
   "type": "line",
   "text": "The 160-cell page shown by key 5 and by the title script: four rows of the title's large characters."
  },
  {
   "address": 44544,
   "type": "line",
   "text": "The colour table not in use, swapped with $AF00 by $BBCD: at the start the table for the character set of the map's first band (first byte $28)."
  },
  {
   "address": 44637,
   "type": "line",
   "text": "Colours of the magazine characters $5D and $5E in the spare table, set to yellow by $0466 at the start."
  },
  {
   "address": 44638,
   "type": "line",
   "text": "Colour of the half-magazine character $5E in the spare table, and the colours of the characters after it."
  },
  {
   "address": 44800,
   "type": "line",
   "text": "The colour of each of the 256 characters of the set in use, read wherever a character is put on screen ($B5D9, $B874, $C500, $C52A); swapped with $AE00 when the set changes."
  },
  {
   "address": 44893,
   "type": "line",
   "text": "Colour of the magazine character $5D in the table in use, yellow from $046B."
  },
  {
   "address": 44894,
   "type": "line",
   "text": "Colour of the half-magazine character $5E in the table in use, and the colours of the characters after it."
  },
  {
   "address": 45056,
   "type": "line",
   "text": "A trapdoor in a hut: shows YOU HAVE FOUND A TRAPDOOR then DO YOU WISH TO GO DOWN (Y/N), and waits for Y (key 25) or N (key 39), repeating the question while the line is idle."
  },
  {
   "address": 45117,
   "type": "line",
   "text": "N, or Y without what is needed: turns the soldier to face right, sets the scroll moving ($0308 = 1) and walks him off the trapdoor for seven frames ($0F17, $B12A)."
  },
  {
   "address": 45157,
   "type": "line",
   "text": "Y: THIS TRAPDOOR LEADS TO AN UNDERGROUND, then YOU MUST FIRST FIND A TORCH without the torch ($3D72), YOU WILL NEED A MAP without the map ($3D73), or YOU MUST FIND A MAP AND A TORCH without both; any of those sends him off the trapdoor. With both, $B09F goes on."
  },
  {
   "address": 45215,
   "type": "line",
   "text": "With the torch and the map: PRESS FIRE TO LOAD NEXT SECTION, ten points ($BC8F, ten times) for each of the five men whose hits ($F69F, six bytes apart) are not 4, then TURN THE DISK OVER TO SIDE B, and fire loads the next section ($3D74)."
  },
  {
   "address": 45336,
   "type": "line",
   "text": "An rts nothing reaches, after the jump to the loader."
  },
  {
   "address": 45337,
   "type": "line",
   "text": "Adds 10 to the score's tens ($BC8F) ten times: 100 points."
  },
  {
   "address": 45354,
   "type": "line",
   "text": "Each pass: clears the colour-copy flag $031E and, if the walk direction $0308 is 1 or 2, scrolls the scene one pixel ($B1FC for 1, $B140 for 2), twice on skill 2."
  },
  {
   "address": 45375,
   "type": "line",
   "text": "An rts nothing reaches, after the jump to the other scroll direction."
  },
  {
   "address": 45376,
   "type": "line",
   "text": "The scene scrolls the other way (direction 2), unless the fine scroll $0303 is 4 and the map edge character $2D shows at $4244 or $4644, which stops the walk."
  },
  {
   "address": 45420,
   "type": "line",
   "text": "Moves every figure and shot left a pixel with the scene ($B2B8), and spreads the work of a character scroll over the steps of the fine scroll $0303: at 2 decodes the new right column ($B7BA) and copies the first two 180-character pieces of the screen one character over into the other screen ($B44C, $B42E), at 1 and 0 the third and fourth pieces, at 7 swaps the screens ($0311 between 2 and $12) and moves the colours ($B458), and at 5 draws the new column ($B672)."
  },
  {
   "address": 45564,
   "type": "line",
   "text": "Direction 1, unless the fine scroll is 4 and the wall character $4C shows at $4643 or $4243."
  },
  {
   "address": 45608,
   "type": "line",
   "text": "The same as $B16C the other way: at 5 decodes the new left column ($B70B), at 6 copies three pieces of the screen, and at 0 the fourth, swaps the screens, moves the colours ($B4DB) and draws the column ($B5D9)."
  },
  {
   "address": 45752,
   "type": "line",
   "text": "Steps the fine scroll $0303 down (0-7) and moves the X of both figures, the low sprite, the three shots and the figures' second sprites one pixel left, flipping each ninth bit on a borrow."
  },
  {
   "address": 45927,
   "type": "line",
   "text": "Steps the fine scroll $0303 up and moves the same X positions one pixel right."
  },
  {
   "address": 46102,
   "type": "line",
   "text": "24 bytes of two old routines that stepped $0304 up and down, never called."
  },
  {
   "address": 46126,
   "type": "line",
   "text": "Moves both screen pointers ($28 and $2A) on by 180 characters and copies the next 180 ($B44C): the lower half of the scene."
  },
  {
   "address": 46156,
   "type": "line",
   "text": "Copies 180 characters from ($28) to ($2A)."
  },
  {
   "address": 46168,
   "type": "line",
   "text": "Steps the map's column ($B55F) and moves the scene's 18 colour rows one column left; sets $031E so the raster code knows."
  },
  {
   "address": 46299,
   "type": "line",
   "text": "Steps the map's column back ($B57A) and moves the scene's 18 colour rows one column right."
  },
  {
   "address": 46431,
   "type": "line",
   "text": "Steps the column within the map block, $0309 (0-7), and when it wraps moves the map position $20/$21 on by one block."
  },
  {
   "address": 46444,
   "type": "line",
   "text": "Moves the map position $20/$21 on by one block."
  },
  {
   "address": 46458,
   "type": "line",
   "text": "Steps $0309 back, and when it wraps to 7 moves the map position back by one block."
  },
  {
   "address": 46487,
   "type": "line",
   "text": "66 bytes of an older column routine, never called."
  },
  {
   "address": 46553,
   "type": "line",
   "text": "Writes the decoded column at $0390 (18 characters) down column 0 of both screens, $4000 and $4400, and its colours from $AF00 down column 0 of colour memory, stopping at the panel."
  },
  {
   "address": 46706,
   "type": "line",
   "text": "Writes the decoded column at $0374 down column 39 of both screens and its colours."
  },
  {
   "address": 46859,
   "type": "line",
   "text": "Steps the column back and decodes the scene's left column from the map into $0390: for each of the three map rows, the block number at $A000 + ($20/$21) points to the block's 48 bytes at $8000 + 48 x block, and column $0309 of its six rows is taken (eight bytes apart), starting at row $030A of the first block."
  },
  {
   "address": 47034,
   "type": "line",
   "text": "The same for the column 40 characters to the right (five blocks on, as the screen is five blocks wide), into $0374."
  },
  {
   "address": 47220,
   "type": "line",
   "text": "Draws the whole scene from the map: fifteen blocks (five across, three down) of 8 by 6 characters from $8000 + 48 x block, with each character's colour from $AF00, into the screen at $4000 and colour memory; the map steps by $B999 and the screen by $B9B8/$B9D9. Copies the screen to the second screen at $4400 when done. Uses $0318/$0319 and $0315 as working bytes (the KERNAL's vectors are not in use)."
  },
  {
   "address": 47410,
   "type": "line",
   "text": "27 bytes of an older loop end, never reached."
  },
  {
   "address": 47437,
   "type": "line",
   "text": "After each block: the next of the fifteen, with the map pointer stepped by $B999 and the screen pointer ($0318/$0319) by $B9B8/$B9D9; after the last, the copy to the second screen."
  },
  {
   "address": 47513,
   "type": "line",
   "text": "Map steps after each block of the scene: 1 to the next block along, $56 (90 less 4) to the start of the next map row."
  },
  {
   "address": 47544,
   "type": "line",
   "text": "Screen steps after each block, low bytes: 8 characters along, or $D0 to the next band of six rows."
  },
  {
   "address": 47577,
   "type": "line",
   "text": "Screen steps after each block, high bytes."
  },
  {
   "address": 47610,
   "type": "line",
   "text": "Copies the first 750 characters of the screen at $4000 to the second screen at $4400."
  },
  {
   "address": 47636,
   "type": "line",
   "text": "Fills the first 1,000 characters of the screen at $4000 with spaces and colour memory from $DAEE with white."
  },
  {
   "address": 47663,
   "type": "line",
   "text": "Multiplies A by X/Y (16 bits) into $030C/$030D."
  },
  {
   "address": 47722,
   "type": "line",
   "text": "Is key A held? A is the KERNAL's key number (eight times the row plus the column); the row's select byte comes from $BAA6 and the column's mask from $BAAE. Returns carry set when held. Called from 23 places."
  },
  {
   "address": 47780,
   "type": "line",
   "text": "Y saved by key_held and restored on return; the byte after it is spare."
  },
  {
   "address": 47782,
   "type": "line",
   "text": "Eight row-select bytes for $DC00, $FE to $7F, indexed by the key number divided by 8."
  },
  {
   "address": 47790,
   "type": "line",
   "text": "Eight column masks for $DC01, $01 to $80, indexed by the key number's low three bits."
  },
  {
   "address": 47798,
   "type": "line",
   "text": "Puts the character set whose first byte is $C0 at $4800 (and the colour table whose first byte is $28 at $AF00): used for the map's first band when the soldier climbs up to it ($2A1D). The three sets live at $4800 and in the RAM under the I/O chips at $D000 and $D800, and are swapped, not copied."
  },
  {
   "address": 47857,
   "type": "line",
   "text": "11 bytes of an older test, never reached."
  },
  {
   "address": 47868,
   "type": "line",
   "text": "Return when the wanted character set is already in place."
  },
  {
   "address": 47869,
   "type": "line",
   "text": "Puts the character set whose first byte is $FF at $4800, with the colour table whose first byte is $31; from the start of a game ($0554) and when the soldier climbs down from the first band ($2ADD)."
  },
  {
   "address": 47928,
   "type": "line",
   "text": "Puts the character set whose first byte is $7C at $4800, with the $31 colour table; from the title."
  },
  {
   "address": 47988,
   "type": "line",
   "text": "Swaps the colour tables at $AF00 and $AE00 if the one in place is not the one the set wants ($31 for $BAFD and $BB38, $28 for $BAB6)."
  },
  {
   "address": 48015,
   "type": "line",
   "text": "Which set is being fetched: 0 for $BAB6, 1 for $BAFD, 2 for $BB38."
  },
  {
   "address": 48016,
   "type": "line",
   "text": "With every chip banked out ($01 = $30), swaps the 2 KB at $4800 with the 2 KB at the address in $BBAB/$BBAC ($D000 or $D800), then banks the I/O back in ($01 = $35)."
  },
  {
   "address": 48037,
   "type": "line",
   "text": "Low byte of the operand of the lda $4800,x at $BBA4, cleared by $BB90 and stepped a page at a time."
  },
  {
   "address": 48038,
   "type": "line",
   "text": "High byte of the same operand: $48 from $BB90, then $49 to $4F."
  },
  {
   "address": 48043,
   "type": "line",
   "text": "Low byte of the operand of the lda $D000,x at $BBAA: the start of the set under the I/O chips that is swapped in."
  },
  {
   "address": 48044,
   "type": "line",
   "text": "High byte of that operand, $D0 or $D8 as $BAB6, $BAFD or $BB38 chose, stepped a page at a time."
  },
  {
   "address": 48046,
   "type": "line",
   "text": "Low byte of the operand of the sta $4800,x at $BBAD."
  },
  {
   "address": 48047,
   "type": "line",
   "text": "High byte of the operand of the sta $4800,x, stepped with $BBA6."
  },
  {
   "address": 48052,
   "type": "line",
   "text": "Low byte of the operand of the sta $D000,x at $BBB3, where the set from $4800 goes."
  },
  {
   "address": 48053,
   "type": "line",
   "text": "High byte of the operand of the sta at $BBB3, $D0 or $D8, stepped a page at a time."
  },
  {
   "address": 48077,
   "type": "line",
   "text": "Swaps the 256-byte colour tables at $AF00 and $AE00."
  },
  {
   "address": 48086,
   "type": "line",
   "text": "Low byte of the operand of the lda $AE00,x at $BBD5, always set to 0."
  },
  {
   "address": 48087,
   "type": "line",
   "text": "High byte of the operand of the lda at $BBD5, always set to $AE."
  },
  {
   "address": 48103,
   "type": "line",
   "text": "153 bytes of an older routine, never called."
  },
  {
   "address": 48256,
   "type": "line",
   "text": "Adds 100 to the score $02E0-$02E5 (one decimal digit per byte), carrying up, and prints it in the panel at $43D7."
  },
  {
   "address": 48271,
   "type": "line",
   "text": "Adds 10 to the score."
  },
  {
   "address": 48316,
   "type": "line",
   "text": "Prints the six digits of the score in the panel at $43D7."
  },
  {
   "address": 48331,
   "type": "line",
   "text": "A shot: if the soldier has magazines ($BD25), plays the shot sounds, and every eighth shot takes away half a magazine icon from the panel row at $43C0 ($5D full, $5E half) and, on the second half, the magazine."
  },
  {
   "address": 48405,
   "type": "line",
   "text": "Fills the panel row at $43C1 with eight magazine icons and sets $BD25 to 9."
  },
  {
   "address": 48421,
   "type": "line",
   "text": "Magazines the soldier holds; $BD26 counts the shots in the current one."
  },
  {
   "address": 48422,
   "type": "line",
   "text": "Shots fired from the current magazine; at 8 a half icon goes."
  },
  {
   "address": 48433,
   "type": "line",
   "text": "Takes one grenade: decrements the count at $BD55 and blanks its icon in the status panel at $4398 plus the count."
  },
  {
   "address": 48453,
   "type": "line",
   "text": "16 bytes of an old grenade refill, never called."
  },
  {
   "address": 48469,
   "type": "line",
   "text": "Grenades the soldier has left; $BD31 takes one."
  },
  {
   "address": 48470,
   "type": "line",
   "text": "The soldier is hit: morale drops by three ($BDCE), four when it is already below 43, and one more wound shows in the panel ($BD6E)."
  },
  {
   "address": 48494,
   "type": "line",
   "text": "Adds a wound ($BDA1, up to 4) and draws its 2-by-2 icon in the panel at the position from $BDA2."
  },
  {
   "address": 48545,
   "type": "line",
   "text": "The man's wounds, 0 to 4; four is a dead man."
  },
  {
   "address": 48546,
   "type": "line",
   "text": "Panel addresses of the four wound icons."
  },
  {
   "address": 48547,
   "type": "line",
   "text": "High bytes of the wound icon addresses, interleaved with the low bytes at $BDA2."
  },
  {
   "address": 48556,
   "type": "line",
   "text": "Clears the wound icons from the panel and sets the wounds to 0."
  },
  {
   "address": 48575,
   "type": "line",
   "text": "15 bytes of an older counter, never called."
  },
  {
   "address": 48590,
   "type": "line",
   "text": "Takes one from morale $BE17 and redraws the end of the morale bar in the panel ($43CB on): the bar's last character is made from the character at $4AE1, masked by $BE19 for the eighths left, or blanked at a whole cell."
  },
  {
   "address": 48663,
   "type": "line",
   "text": "The man's morale, 71 at the start, 0 to 71; shown as the bar in the panel."
  },
  {
   "address": 48665,
   "type": "line",
   "text": "Bit masks for a part-filled bar cell, $00 to $FF, one more pixel each."
  },
  {
   "address": 48692,
   "type": "line",
   "text": "Saves the eight bytes of character $5C ($4AE0) before the character set is swapped."
  },
  {
   "address": 48704,
   "type": "line",
   "text": "Puts the saved bar character back after the swap."
  },
  {
   "address": 48716,
   "type": "line",
   "text": "The eight bytes saved by $BE34."
  },
  {
   "address": 48724,
   "type": "line",
   "text": "Draws the status panel at the bottom of the screen: blanks rows 20 to 24, writes the labels from $BEF7, $BF01, $BF15, $BF1F and $BF29, the morale bar ($5B), the magazines ($5D), the grenades ($FB), sets the colours, and prints the score."
  },
  {
   "address": 48887,
   "type": "line",
   "text": "The labels of the panel in the game's own characters, five strings of 10 or 20."
  },
  {
   "address": 48897,
   "type": "line",
   "text": "The second label string of the panel, 20 characters."
  },
  {
   "address": 48917,
   "type": "line",
   "text": "The third label string, 10 characters."
  },
  {
   "address": 48927,
   "type": "line",
   "text": "The fourth label string, 10 characters."
  },
  {
   "address": 48937,
   "type": "line",
   "text": "The fifth label string, 10 characters, ending in the digits' characters $4D and $4E."
  },
  {
   "address": 48947,
   "type": "line",
   "text": "Turns a sprite's Y in $0313 into the screen address of its character row ($4000 + 40 x row) in $2C/$2D, then adds the column from $BF5A."
  },
  {
   "address": 48986,
   "type": "line",
   "text": "Adds the character column of the X in $0312/$0315 (less 20, divided by eight) to $2C/$2D."
  },
  {
   "address": 49037,
   "type": "line",
   "text": "On the map's second page ($21 = 1), every tenth pass swaps the characters at $4F10 and $4F58 (32 bytes): the water's two frames."
  },
  {
   "address": 49078,
   "type": "line",
   "text": "Counts passes to 10 between the water's frames."
  },
  {
   "address": 49079,
   "type": "line",
   "text": "An rts nothing reaches, after the water's frames."
  },
  {
   "address": 49080,
   "type": "line",
   "text": "A man is lost: waits for the message line, stops every figure, saves the man's wounds, grenades and magazines to his row of the man table at $F69F; if all five men have 4 wounds, the game is over ($A709). Otherwise saves the scene's position and the low sprite, clears every figure and sprite, waits a moment on the bridge, and saves the man's panel into his slot at $C5CA or $C6CA."
  },
  {
   "address": 49389,
   "type": "line",
   "text": "Operand of the cpy #$0A at $C0EC, written by $C0C5: the end of the man's slot, its start plus 9."
  },
  {
   "address": 49392,
   "type": "line",
   "text": "A man with wounds is marked with the $FA bar in his slot, and a dead one gets the cross-out row from $C51A."
  },
  {
   "address": 49437,
   "type": "line",
   "text": "Operand of the cpy #$0A at $C11C, written by $C106: the slot's start plus the wounds, where the $FA marks stop."
  },
  {
   "address": 49495,
   "type": "line",
   "text": "Redraws the scene from the start of its block, shows the platoon list ($C52A) and the cursor sprite from the saved position ($F6C2-$F6CA), and lets the player move the cursor up and down the five slots (16 lines a step, from Y $52 to $92) and choose with fire."
  },
  {
   "address": 49867,
   "type": "line",
   "text": "Fire: finds which slot the cursor is on ($F69A); a dead man (character $43 in his slot) cannot be chosen. Otherwise refills the old man's magazines, makes the chosen man current ($C4F0), loads his magazines, grenades and the digits of his name from his row, redraws his wounds and panel, and saves the cursor."
  },
  {
   "address": 50062,
   "type": "line",
   "text": "Operand of the cpy #$0A at $C38D, written by $C366: the end of the chosen man's slot."
  },
  {
   "address": 50125,
   "type": "line",
   "text": "67 bytes of an older start, never reached."
  },
  {
   "address": 50192,
   "type": "line",
   "text": "Brings the new man into the scene: clears the man-lost flag, moves the map position past the bridge or out of the tunnel entrance as needed, steps one block on if a wall stands at the left edge, redraws, puts him at X 180, Y 128 (108 in the tunnel entrance), resets the sprites and flags and returns to the main loop."
  },
  {
   "address": 50414,
   "type": "line",
   "text": "Counts passes in the platoon list and in name entry."
  },
  {
   "address": 50415,
   "type": "line",
   "text": "1 while the village scene runs ($0693); stops enemies spawning and makes a figure that reaches X 180 end the scene."
  },
  {
   "address": 50416,
   "type": "line",
   "text": "The man being played, 0 to 4."
  },
  {
   "address": 50417,
   "type": "line",
   "text": "The offset of each man's panel slot within his page of $C5CA/$C6CA."
  },
  {
   "address": 50423,
   "type": "line",
   "text": "Which page holds each man's slot: 0 for $C5CA, 1 for $C6CA."
  },
  {
   "address": 50429,
   "type": "line",
   "text": "The low sprite's state saved by $C017 while a new man is chosen."
  },
  {
   "address": 50430,
   "type": "line",
   "text": "The low sprite's X saved with the scene ($C02E), its column on the map."
  },
  {
   "address": 50431,
   "type": "line",
   "text": "The ninth bit of that X."
  },
  {
   "address": 50432,
   "type": "line",
   "text": "Colours the top 24 characters of the screen from the colour table, twice over."
  },
  {
   "address": 50435,
   "type": "line",
   "text": "Low byte of the operand of the lda $4000,x at $C502, saved in $F6C2 between choices: the cursor's row on the screen."
  },
  {
   "address": 50436,
   "type": "line",
   "text": "High byte of that operand; $C219 and $C277 move it 80 characters (two rows) a step."
  },
  {
   "address": 50442,
   "type": "line",
   "text": "Low byte of the operand of the sta $D800,x at $C509, the colour row under the cursor."
  },
  {
   "address": 50443,
   "type": "line",
   "text": "High byte of the operand of the sta $D800,x at $C509."
  },
  {
   "address": 50445,
   "type": "line",
   "text": "Low byte of the operand of the lda $4000,x at $C50C, the cursor's second row."
  },
  {
   "address": 50446,
   "type": "line",
   "text": "High byte of the operand of the lda at $C50C."
  },
  {
   "address": 50452,
   "type": "line",
   "text": "Low byte of the operand of the sta $D800,x at $C513, the colour of the cursor's second row."
  },
  {
   "address": 50453,
   "type": "line",
   "text": "High byte of the operand of the sta at $C513."
  },
  {
   "address": 50458,
   "type": "line",
   "text": "16 characters drawn over a dead man's slot."
  },
  {
   "address": 50474,
   "type": "line",
   "text": "Draws the platoon list: 16 rows of 23 characters from $C5CA at column 10 of the screen, coloured from $AF00, then colours the cursor's rows ($C59F)."
  },
  {
   "address": 50516,
   "type": "line",
   "text": "Low byte of the operand of the lda $C5CA,x at $C553, stepped 23 a row."
  },
  {
   "address": 50517,
   "type": "line",
   "text": "High byte of the operand of the lda $C5CA,x."
  },
  {
   "address": 50519,
   "type": "line",
   "text": "Low byte of the operand of the sta $400A,x at $C556, the screen row, stepped 40 a row."
  },
  {
   "address": 50520,
   "type": "line",
   "text": "High byte of the operand of the sta $400A,x."
  },
  {
   "address": 50529,
   "type": "line",
   "text": "Low byte of the operand of the sta $D80A,x at $C560, the colour row."
  },
  {
   "address": 50530,
   "type": "line",
   "text": "High byte of the operand of the sta $D80A,x."
  },
  {
   "address": 50591,
   "type": "line",
   "text": "Colours ten rows of 20 characters at $D8D2 blue."
  },
  {
   "address": 50608,
   "type": "line",
   "text": "Low byte of the operand of the sta $D800,x at $C5AF, stepped 40 a row from $D2."
  },
  {
   "address": 50609,
   "type": "line",
   "text": "High byte of the operand of the sta at $C5AF, from $D8."
  },
  {
   "address": 50634,
   "type": "line",
   "text": "The platoon list as the screen shows it: 16 rows of 23 characters, holding the five men's slots with their wounds, magazines and grenades, saved and restored by $BFB8 and $C2CB."
  },
  {
   "address": 50643,
   "type": "line",
   "text": "The cell before a slot's wound marks, where $C13B starts the dead man's row."
  },
  {
   "address": 50644,
   "type": "line",
   "text": "The cells of a slot where the wound marks go ($FA); a $43 here marks a dead man for $C2F7."
  },
  {
   "address": 50657,
   "type": "line",
   "text": "The second row of a man's slot, from the panel's grenade row."
  },
  {
   "address": 50666,
   "type": "line",
   "text": "The rows of the platoon list after the first slot."
  },
  {
   "address": 50732,
   "type": "line",
   "text": "The platoon list's magazine rows, read by the start of a game at $051F."
  },
  {
   "address": 50778,
   "type": "line",
   "text": "A magazine row of the platoon list, read at $0522."
  },
  {
   "address": 50824,
   "type": "line",
   "text": "A magazine row of the platoon list, read at $0525."
  },
  {
   "address": 50870,
   "type": "line",
   "text": "A magazine row of the platoon list, read at $0528."
  },
  {
   "address": 50890,
   "type": "line",
   "text": "The second half of the platoon list, holding the slots of men 3 and 4."
  },
  {
   "address": 50899,
   "type": "line",
   "text": "The same cell in the second half of the list."
  },
  {
   "address": 50900,
   "type": "line",
   "text": "The cells of a slot in the second half where the wound marks go."
  },
  {
   "address": 50913,
   "type": "line",
   "text": "The second row of a slot in the second half."
  },
  {
   "address": 50916,
   "type": "line",
   "text": "A magazine row of the second half, read at $052B."
  },
  {
   "address": 50922,
   "type": "line",
   "text": "The rows of the list's second half after its first slot."
  },
  {
   "address": 51002,
   "type": "line",
   "text": "Starts the message line scrolling in: position $C7F8 = 160, hold $C7F9 = 150, character 0, stop point $C7FC = 80. The caller sets the message number in $C7F7."
  },
  {
   "address": 51023,
   "type": "line",
   "text": "Each frame from the ninth raster handler: scrolls the message line of the panel left by 4 pixels a frame through $1AC9, shifting the 39 characters at $42F9 one cell left every second step and adding the message's next character at the right ($431F, drawn from $DA up); holds for 150 frames at the stop point, then scrolls on out."
  },
  {
   "address": 51118,
   "type": "line",
   "text": "Low byte of the operand of the lda $C7FD,x at $C7AD: the current message's text, from $C7B9."
  },
  {
   "address": 51119,
   "type": "line",
   "text": "High byte of the operand of the lda at $C7AD."
  },
  {
   "address": 51129,
   "type": "line",
   "text": "Addresses of the 26 messages of the jungle and village, 41 bytes apart from $C7FD; five more entries point into $50A0 and $50F0 and are not messages."
  },
  {
   "address": 51130,
   "type": "line",
   "text": "High bytes of the message addresses, interleaved with $C7B9."
  },
  {
   "address": 51191,
   "type": "line",
   "text": "Which message the line shows, an index into $C7B9."
  },
  {
   "address": 51192,
   "type": "line",
   "text": "Countdown of the message's scroll, 160 at the start; the main loop and $3C18 test it."
  },
  {
   "address": 51193,
   "type": "line",
   "text": "Frames the message holds at its stop point: 150 from $C73A, 80 from $CCCF."
  },
  {
   "address": 51194,
   "type": "line",
   "text": "Index of the next character of the message to add."
  },
  {
   "address": 51195,
   "type": "line",
   "text": "A spare byte among the message variables."
  },
  {
   "address": 51196,
   "type": "line",
   "text": "Position of $C7F8 where the message holds, 80; $CCD4 sets it too."
  },
  {
   "address": 51197,
   "type": "line",
   "text": "The messages of the jungle and village, 40 characters each in PETSCII: what a search finds (a sack of flour, a pot of rice, a torch, the explosives, a trapdoor), the bridge, the booby trap, the warning about villagers, and TURN THE DISK OVER TO SIDE B."
  },
  {
   "address": 52221,
   "type": "line",
   "text": "Messages 22 to 25 of $C7FD, the end of the message text."
  },
  {
   "address": 52364,
   "type": "line",
   "text": "Return when the message line is busy."
  },
  {
   "address": 52365,
   "type": "line",
   "text": "The soldier searches where he stands: unless the message line is busy, looks up the map position ($20 and $0309) in the 19 ranges of $CD4A-$CD83 and shows the message of the one he is in ($CD96). The torch ($12) and the map ($11) are taken once (10 points each, and the entry becomes POT OF RICE or A TABLE); the booby trap message ($17) springs a trap."
  },
  {
   "address": 52553,
   "type": "line",
   "text": "1 while the booby trap sprung by a search runs."
  },
  {
   "address": 52554,
   "type": "line",
   "text": "Start of each search range, the map position's low byte."
  },
  {
   "address": 52573,
   "type": "line",
   "text": "End of each search range, the map position's low byte."
  },
  {
   "address": 52592,
   "type": "line",
   "text": "Start of each range, the column within the block."
  },
  {
   "address": 52611,
   "type": "line",
   "text": "End of each range, the column within the block."
  },
  {
   "address": 52630,
   "type": "line",
   "text": "The message each search range shows."
  },
  {
   "address": 52631,
   "type": "line",
   "text": "The torch's entry in $CD96: message 18 (YOU HAVE FOUND A TORCH), 3 once taken."
  },
  {
   "address": 52637,
   "type": "line",
   "text": "The map's entry in $CD96: message 17 (HERE IS A MAP OF A TUNNEL SYSTEM), 2 once taken."
  },
  {
   "address": 52650,
   "type": "line",
   "text": "Set by $A709 so that the game-over screen goes on to name entry."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "At the hand-over the jungle's character set (first byte $FF), in the RAM under the I/O chips; $BAFD swaps it into $4800."
  },
  {
   "address": 54272,
   "type": "line",
   "text": "Characters 128 to 255 of the set stored at $D000."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "At the hand-over the set for the map's first band (first byte $C0), under the I/O chips; $BAB6 swaps it into $4800."
  },
  {
   "address": 55297,
   "type": "line",
   "text": "Colour memory at row 0, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55306,
   "type": "line",
   "text": "Colour memory at row 0, column 10, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55336,
   "type": "line",
   "text": "Colour memory at row 1, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55337,
   "type": "line",
   "text": "Colour memory at row 1, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55376,
   "type": "line",
   "text": "Colour memory at row 2, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55377,
   "type": "line",
   "text": "Colour memory at row 2, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55416,
   "type": "line",
   "text": "Colour memory at row 3, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55417,
   "type": "line",
   "text": "Colour memory at row 3, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55456,
   "type": "line",
   "text": "Colour memory at row 4, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55457,
   "type": "line",
   "text": "Colour memory at row 4, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55496,
   "type": "line",
   "text": "Colour memory at row 5, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55497,
   "type": "line",
   "text": "Colour memory at row 5, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55536,
   "type": "line",
   "text": "Colour memory at row 6, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55537,
   "type": "line",
   "text": "Colour memory at row 6, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55576,
   "type": "line",
   "text": "Colour memory at row 7, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55577,
   "type": "line",
   "text": "Colour memory at row 7, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55616,
   "type": "line",
   "text": "Colour memory at row 8, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55617,
   "type": "line",
   "text": "Colour memory at row 8, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55656,
   "type": "line",
   "text": "Colour memory at row 9, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55657,
   "type": "line",
   "text": "Colour memory at row 9, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55696,
   "type": "line",
   "text": "Colour memory at row 10, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55697,
   "type": "line",
   "text": "Colour memory at row 10, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55736,
   "type": "line",
   "text": "Colour memory at row 11, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55737,
   "type": "line",
   "text": "Colour memory at row 11, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55776,
   "type": "line",
   "text": "Colour memory at row 12, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55777,
   "type": "line",
   "text": "Colour memory at row 12, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55788,
   "type": "line",
   "text": "Colour memory at row 12, column 12, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55816,
   "type": "line",
   "text": "Colour memory at row 13, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55817,
   "type": "line",
   "text": "Colour memory at row 13, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55828,
   "type": "line",
   "text": "Colour memory at row 13, column 12, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55856,
   "type": "line",
   "text": "Colour memory at row 14, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55857,
   "type": "line",
   "text": "Colour memory at row 14, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55896,
   "type": "line",
   "text": "Colour memory at row 15, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55897,
   "type": "line",
   "text": "Colour memory at row 15, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55936,
   "type": "line",
   "text": "Colour memory at row 16, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55937,
   "type": "line",
   "text": "Colour memory at row 16, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55976,
   "type": "line",
   "text": "Colour memory at row 17, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 55977,
   "type": "line",
   "text": "Colour memory at row 17, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56016,
   "type": "line",
   "text": "Colour memory at row 18, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56046,
   "type": "line",
   "text": "Colour memory at row 18, column 30, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56056,
   "type": "line",
   "text": "Colour memory at row 19, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56096,
   "type": "line",
   "text": "Colour memory at row 20, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56136,
   "type": "line",
   "text": "Colour memory at row 21, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56151,
   "type": "line",
   "text": "Colour memory at row 21, column 15, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56176,
   "type": "line",
   "text": "Colour memory at row 22, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56216,
   "type": "line",
   "text": "Colour memory at row 23, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56247,
   "type": "line",
   "text": "Colour memory at row 23, column 31, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56256,
   "type": "line",
   "text": "Colour memory at row 24, column 0, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56257,
   "type": "line",
   "text": "Colour memory at row 24, column 1, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56267,
   "type": "line",
   "text": "Colour memory at row 24, column 11, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56268,
   "type": "line",
   "text": "Colour memory at row 24, column 12, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56277,
   "type": "line",
   "text": "Colour memory at row 24, column 21, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56287,
   "type": "line",
   "text": "Colour memory at row 24, column 31, where the code that names it writes colours; with the I/O chips banked out the same address is a byte of the set stored at $D800."
  },
  {
   "address": 56320,
   "type": "line",
   "text": "Characters 128 to 255 of the set stored at $D800."
  },
  {
   "address": 56797,
   "type": "line",
   "text": "Not an address the game uses: $DDDD is the placeholder operand of the cpx at $E132, which $E11D overwrites before it runs; here it is a byte of the set stored at $D800."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Music command: sets the voice's instrument pointer ($9F11/$9F12) 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 frequency-step table ($9F0A/$9F0B) from the pattern table entry named by the next byte."
  },
  {
   "address": 57376,
   "type": "line",
   "text": "Music command: pushes the position after it ($E1FA) and stores the next byte as a repeat count ($9F27), so that the part up to the return command plays that many times."
  },
  {
   "address": 57395,
   "type": "line",
   "text": "Music command: counts down the repeat count of the voice's innermost call; while it runs the part goes back to its start, and when it ends the call is popped and the voice goes on after it."
  },
  {
   "address": 57435,
   "type": "line",
   "text": "Music command: with the next byte's top bit clear, clears those bits of the voice's flags $9F06; with it set, sets them (1 restarts the instrument at each note, 2 the frequency steps, 4 the pulse table, $10 the timed gate-off)."
  },
  {
   "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": 57460,
   "type": "line",
   "text": "Music command, entered in the middle of the bit at $E073: calls the pattern named by the next byte, pushing the return position ($E1FA)."
  },
  {
   "address": 57471,
   "type": "line",
   "text": "Points the voice at the pattern named by the byte at ($82),y, through the tables $E661/$E6B0, and reads on from there."
  },
  {
   "address": 57473,
   "type": "line",
   "text": "Entry with the pattern number already in A."
  },
  {
   "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": 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 #$DD at $E130: the value to compare, written by $E11D."
  },
  {
   "address": 57651,
   "type": "line",
   "text": "Low byte of the operand of the cpx $DDDD at $E132, the address tested."
  },
  {
   "address": 57652,
   "type": "line",
   "text": "High byte of the operand of the cpx at $E132."
  },
  {
   "address": 57659,
   "type": "line",
   "text": "Steps five bytes on and reads the next command."
  },
  {
   "address": 57664,
   "type": "line",
   "text": "Special music command $40: jumps to the pattern named by the next byte."
  },
  {
   "address": 57667,
   "type": "line",
   "text": "Special music command $43: puts two bytes into the filter-sweep routine at $E38B and $E390."
  },
  {
   "address": 57676,
   "type": "line",
   "text": "Special music command $4C: points the filter-sweep routine ($E383, $E387) at the pattern table entry named by the next byte."
  },
  {
   "address": 57694,
   "type": "line",
   "text": "Special music command $5E: sets the voice's pulse width ($9F1F/$9F20) and its pulse-step table ($9F18/$9F19)."
  },
  {
   "address": 57721,
   "type": "line",
   "text": "Special music command $79: points the voice's instrument straight at the address given and starts it on the next frame."
  },
  {
   "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 $9F03 from A: bit 7 set adds the value (with bit 6 as its sign) to the transpose there, clear replaces it."
  },
  {
   "address": 57776,
   "type": "line",
   "text": "Special music command $B0: sets the voice's second transpose $9F04."
  },
  {
   "address": 57779,
   "type": "line",
   "text": "Steps three bytes on and reads the next command."
  },
  {
   "address": 57784,
   "type": "line",
   "text": "Special music command $B8: sets the frame $9F17 at which the note's gate goes off and turns the timed gate-off on (flag $10)."
  },
  {
   "address": 57789,
   "type": "line",
   "text": "Special music command $BD: sets flag bits of the voice from A."
  },
  {
   "address": 57797,
   "type": "line",
   "text": "Special music command $C5: puts this voice through the filter ($D417 from $E56D), with the volume and low-pass setting $1F, and changes the rts at $E36F into lda # so the filter routine runs."
  },
  {
   "address": 57817,
   "type": "line",
   "text": "Special music command $D9: takes the voices out of the filter, sets the volume to 15 and puts the rts back at $E36F."
  },
  {
   "address": 57850,
   "type": "line",
   "text": "Pushes the music position plus A onto the voice's call stack ($9F21/$9F24, depth $9F05)."
  },
  {
   "address": 57871,
   "type": "line",
   "text": "Starts the tune at offset Y of the song table $E643 (0, 10 or 20): the three voices' pattern pointers, a note length of 1, all flags, no transpose and an empty call stack; then the tempo $86 and three preset note lengths; and builds the table of note lengths $9F7E-$9F9D as multiples of the tempo."
  },
  {
   "address": 57970,
   "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": 57985,
   "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 $E62D in the page at $E000; $3F a special command through the next byte as a low byte in the page at $E100."
  },
  {
   "address": 58026,
   "type": "line",
   "text": "Low byte of the operand of the jmp $E000 at $E2A9, written from $E62D: which command handler runs."
  },
  {
   "address": 58039,
   "type": "line",
   "text": "Low byte of the operand of the jmp $E11D at $E2B6, written from the pattern: which special command handler runs."
  },
  {
   "address": 58041,
   "type": "line",
   "text": "Steps two bytes on and reads the next command."
  },
  {
   "address": 58054,
   "type": "line",
   "text": "A note: starts it ($E303), then sets its length: the top two bits pick one of the three preset lengths, or, with both clear, the next byte gives it (through the table at $9F7D below $80, as it stands above)."
  },
  {
   "address": 58115,
   "type": "line",
   "text": "Starts the voice's note: by its flags, restarts the instrument ($9F13/$9F14), restarts the frequency steps and looks up the note's frequency from $E571/$E5CF after both transposes, and restarts the pulse table."
  },
  {
   "address": 58223,
   "type": "line",
   "text": "An rts while the filter is off. $E1C5 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": 58224,
   "type": "line",
   "text": "Operand of the filter routine's lda #: the voice being filtered, or 3 for none; written by $E1EA."
  },
  {
   "address": 58225,
   "type": "line",
   "text": "The rest of the filter routine at $E36F: 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": 58243,
   "type": "line",
   "text": "Operand of the lda #$DD at $E382, written by $E14C: the sweep table's low byte."
  },
  {
   "address": 58247,
   "type": "line",
   "text": "Operand of the lda #$DD at $E386, the sweep table's high byte."
  },
  {
   "address": 58251,
   "type": "line",
   "text": "Operand of the lda #$DD at $E38A, written by $E143."
  },
  {
   "address": 58256,
   "type": "line",
   "text": "Operand of the lda #$DD at $E38F, written by $E143."
  },
  {
   "address": 58261,
   "type": "line",
   "text": "Called once a frame by the raster code ($17D1): 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": 58329,
   "type": "line",
   "text": "Which voice reads its pattern this frame, 0 to 2."
  },
  {
   "address": 58330,
   "type": "line",
   "text": "Each frame for a voice: steps its frequency table ($9F0C), a list of 3-byte entries (count, step low, step high) with $4C followed by an address meaning jump, and adds the step to the frequency written to the SID."
  },
  {
   "address": 58427,
   "type": "line",
   "text": "Each frame for a voice: steps its pulse table ($9F1A) in the same format and adds the step to its pulse width."
  },
  {
   "address": 58524,
   "type": "line",
   "text": "83 bytes of a filter sweep (zero page $88/$89, $8A), with its operands at $E4CB and $E4DB set by $E36F; nothing in this load calls it, so the sweep never runs."
  },
  {
   "address": 58571,
   "type": "line",
   "text": "Operand inside the unused sweep at $E49C, written by $E38C."
  },
  {
   "address": 58587,
   "type": "line",
   "text": "Operand inside the unused sweep, written by $E391."
  },
  {
   "address": 58607,
   "type": "line",
   "text": "Each frame for a voice: turns the gate off at the frame set by $E1B8, and when the instrument's count runs out reads its next command: the low three bits pick a handler from $E560 in the page at $E000 (7 jumps through $E6FE), the next byte is the frames until the next."
  },
  {
   "address": 58694,
   "type": "line",
   "text": "Low byte of the operand of the jsr $E0DC at $E545, written from $E560."
  },
  {
   "address": 58720,
   "type": "line",
   "text": "Low bytes of the instrument command handlers in the page at $E000: $E093, $E0B9, $E08F, $E0D7, $E0D1, $E0BF, $E0DC."
  },
  {
   "address": 58727,
   "type": "line",
   "text": "The SID register offset of each voice, 0, 7 and 14."
  },
  {
   "address": 58730,
   "type": "line",
   "text": "The offset of each voice's workspace from $9F00, 0, 42 and 84; then the filter routing values $F1, $F2 and $F4 at $E56D."
  },
  {
   "address": 58733,
   "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": 58736,
   "type": "line",
   "text": "The bit tested by $E19A for a negative relative transpose, $40."
  },
  {
   "address": 58737,
   "type": "line",
   "text": "Low bytes of the SID frequencies of the notes, 94 of them."
  },
  {
   "address": 58831,
   "type": "line",
   "text": "High bytes of the note frequencies."
  },
  {
   "address": 58925,
   "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": 58933,
   "type": "line",
   "text": "What $E0DE points every voice at: a pattern that only waits, a silent instrument at $E63A and a still frequency table at $E63D."
  },
  {
   "address": 58947,
   "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 high-score tune and 20 the tune played when a game starts."
  },
  {
   "address": 58948,
   "type": "line",
   "text": "The song table from its second byte, read by $E24D for the preset note lengths."
  },
  {
   "address": 58977,
   "type": "line",
   "text": "Low bytes of the music's patterns, instruments and tables, 79 entries."
  },
  {
   "address": 59056,
   "type": "line",
   "text": "High bytes of the same entries."
  },
  {
   "address": 59134,
   "type": "line",
   "text": "Addresses an instrument jumps to (command 7), read as pairs from $E6FF."
  },
  {
   "address": 59135,
   "type": "line",
   "text": "The instrument jump addresses from their second byte, the high bytes for $E534."
  },
  {
   "address": 59143,
   "type": "line",
   "text": "The patterns, instruments and frequency and pulse tables of the three tunes, to $EDFF."
  },
  {
   "address": 60160,
   "type": "line",
   "text": "More of the tunes' patterns and tables from $E707."
  },
  {
   "address": 60928,
   "type": "line",
   "text": "Starts sound effect A on voice X: copies its attack/decay, sustain/release and pulse width from $F07A, $F08C and $F09E and sets it to start; sets the volume."
  },
  {
   "address": 60964,
   "type": "line",
   "text": "The last sound effect started."
  },
  {
   "address": 60965,
   "type": "line",
   "text": "Starts a voice's effect: reads its 8-byte entry at $EFEA (start frequency, frequency step, sweep type, steps, waveform, repeats) and writes the start values to the SID."
  },
  {
   "address": 61112,
   "type": "line",
   "text": "Attack/decay of each voice's effect."
  },
  {
   "address": 61115,
   "type": "line",
   "text": "Sustain/release of each voice's effect."
  },
  {
   "address": 61118,
   "type": "line",
   "text": "Pulse width of each voice's effect."
  },
  {
   "address": 61121,
   "type": "line",
   "text": "Called once a frame ($17D5): starts the effects requested and steps those running on each of the three voices."
  },
  {
   "address": 61143,
   "type": "line",
   "text": "Steps one voice's effect: sweeps the frequency up (type 1), down (2) or between two values (3 and up), and when the steps run out repeats it or turns the voice off."
  },
  {
   "address": 61334,
   "type": "line",
   "text": "19 bytes of an old routine that silenced the SID, never called."
  },
  {
   "address": 61353,
   "type": "line",
   "text": "The effect number waiting to start on each voice, 0 for none."
  },
  {
   "address": 61356,
   "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 $EFDE (0, 7, 14)."
  },
  {
   "address": 61359,
   "type": "line",
   "text": "Current frequency high byte of each voice's effect."
  },
  {
   "address": 61362,
   "type": "line",
   "text": "Start frequency low byte of each voice's effect, for a repeat."
  },
  {
   "address": 61365,
   "type": "line",
   "text": "Start frequency high byte, for a repeat."
  },
  {
   "address": 61368,
   "type": "line",
   "text": "Steps left in each voice's effect."
  },
  {
   "address": 61371,
   "type": "line",
   "text": "The effect's length in steps, reloaded on a repeat."
  },
  {
   "address": 61374,
   "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": 61377,
   "type": "line",
   "text": "Frequency step low byte of each voice's effect."
  },
  {
   "address": 61380,
   "type": "line",
   "text": "Frequency step high byte."
  },
  {
   "address": 61383,
   "type": "line",
   "text": "Waveform of each voice's effect."
  },
  {
   "address": 61386,
   "type": "line",
   "text": "Repeats left of each voice's effect."
  },
  {
   "address": 61392,
   "type": "line",
   "text": "For the alternating sweep, which of the two frequencies plays."
  },
  {
   "address": 61395,
   "type": "line",
   "text": "1 while each voice's effect runs."
  },
  {
   "address": 61398,
   "type": "line",
   "text": "The effect number running on each voice."
  },
  {
   "address": 61401,
   "type": "line",
   "text": "Eight times the effect number, its offset in $EFEA."
  },
  {
   "address": 61406,
   "type": "line",
   "text": "Each voice's SID register offset for the sound effects: 0, 7 and 14."
  },
  {
   "address": 61409,
   "type": "line",
   "text": "Sustain/release of each voice's effect, for a repeat."
  },
  {
   "address": 61412,
   "type": "line",
   "text": "Attack/decay of each voice's effect, for a repeat."
  },
  {
   "address": 61415,
   "type": "line",
   "text": "$FF when the effect repeats for ever."
  },
  {
   "address": 61418,
   "type": "line",
   "text": "The sound effects, 8 bytes each: frequency, step, sweep type, length and waveform; $EFF2 on are effects 1 to 17."
  },
  {
   "address": 61419,
   "type": "line",
   "text": "Effect 0's start frequency, high byte; the other fields follow in the same order for each effect."
  },
  {
   "address": 61420,
   "type": "line",
   "text": "Effect 0's step, low byte."
  },
  {
   "address": 61421,
   "type": "line",
   "text": "Effect 0's step, high byte."
  },
  {
   "address": 61422,
   "type": "line",
   "text": "Effect 0's sweep type."
  },
  {
   "address": 61423,
   "type": "line",
   "text": "Effect 0's length in steps."
  },
  {
   "address": 61424,
   "type": "line",
   "text": "Effect 0's waveform."
  },
  {
   "address": 61425,
   "type": "line",
   "text": "Repeats of effect 0, the last byte of its entry; the other effects follow."
  },
  {
   "address": 61562,
   "type": "line",
   "text": "Attack/decay of each sound effect."
  },
  {
   "address": 61580,
   "type": "line",
   "text": "Sustain/release of each sound effect."
  },
  {
   "address": 61598,
   "type": "line",
   "text": "Pulse width of each sound effect."
  },
  {
   "address": 61616,
   "type": "line",
   "text": "Asks for the digitised sample ($F173 = 2); the NMI-paced loop starts it at $188A."
  },
  {
   "address": 61622,
   "type": "line",
   "text": "Plays the 4-bit sample at $FA00 through the volume register: points the NMI at $F100 and runs CIA 2's timer A every 240 cycles, and sets $F173 to 1 while it plays."
  },
  {
   "address": 61684,
   "type": "line",
   "text": "Nine bytes after the routine, never read."
  },
  {
   "address": 61693,
   "type": "line",
   "text": "An NMI that is not CIA 2's (RESTORE) goes to $0108."
  },
  {
   "address": 61696,
   "type": "line",
   "text": "Sample NMI: plays the high four bits of the next byte and points the next NMI at $F137; stops at a byte of $FF or the end of the page run."
  },
  {
   "address": 61751,
   "type": "line",
   "text": "Sample NMI: plays the low four bits of the byte and points the next NMI back at $F100."
  },
  {
   "address": 61788,
   "type": "line",
   "text": "Stops the timer's interrupts, clears $F173 and sets the volume back to 15."
  },
  {
   "address": 61810,
   "type": "line",
   "text": "An rts nothing reaches, after the sample's interrupts."
  },
  {
   "address": 61811,
   "type": "line",
   "text": "0 when no sample plays, 2 when one is asked for, 1 while it plays; the end of a game waits for it."
  },
  {
   "address": 61952,
   "type": "line",
   "text": "Scrolls screen rows 12 to 24 up one row, characters and colours, and puts the next line in at the bottom: 40 characters of credits from $F6CB, or, when $F347 is set, a 17-character high-score line from $0200, coloured from $F328 or $F339."
  },
  {
   "address": 62195,
   "type": "line",
   "text": "Operand of the lda $F6CB,x at $F2F2: the start of the credits line that enters next, stepped by 40 per line."
  },
  {
   "address": 62196,
   "type": "line",
   "text": "High byte of the operand of the lda $F6CB,x at $F2F2."
  },
  {
   "address": 62223,
   "type": "line",
   "text": "Operand of the lda $0200,x at $F30E: the start of the high-score line that enters next, stepped by 17."
  },
  {
   "address": 62224,
   "type": "line",
   "text": "High byte of the operand of the lda $0200,x at $F30E."
  },
  {
   "address": 62248,
   "type": "line",
   "text": "One colour per credits line, 14 lines."
  },
  {
   "address": 62265,
   "type": "line",
   "text": "One colour per high-score line, 14 lines."
  },
  {
   "address": 62279,
   "type": "line",
   "text": "0 while the scroll shows the credits, 1 while it shows the high-score table."
  },
  {
   "address": 62280,
   "type": "line",
   "text": "Rewinds the scroll and makes two passes of $F374 for each of the $F373 steps: shifts the credits sideways by a column, the title script's wipe."
  },
  {
   "address": 62323,
   "type": "line",
   "text": "Steps left in the sideways wipe of the scroll (40 from command $80)."
  },
  {
   "address": 62324,
   "type": "line",
   "text": "Shifts alternate screen rows of the scroll area, odd rows left and even rows right by one column (all six rows when the scores show), so the text wipes off in two directions."
  },
  {
   "address": 62469,
   "type": "line",
   "text": "Steps the title text's colour fade every third frame: 0 stops it; from 1 it runs to 6 and holds (fade in); from $0F it runs to $15 and holds; from $16 it runs to $1D and stops at 0 (fade out). The raster handler colours the rows from this value."
  },
  {
   "address": 62541,
   "type": "line",
   "text": "After name entry: plays tune 0, rewinds the credits scroll and the title script, and returns to the title loop."
  },
  {
   "address": 62594,
   "type": "line",
   "text": "Name entry after a game: plays tune $0A, turns the score $02E0 into digits at $F8DE and compares it with each of the ten table scores ($020B, 17 bytes apart); below all ten it goes back to the title."
  },
  {
   "address": 62647,
   "type": "line",
   "text": "Low byte of the operand of the cmp $020B,x at $F4B6: the score of the table entry being compared, stepped 17 an entry."
  },
  {
   "address": 62648,
   "type": "line",
   "text": "High byte of the operand of the cmp at $F4B6."
  },
  {
   "address": 62683,
   "type": "line",
   "text": "The score makes the table at place Y: the place is printed ($BA2F) and the \"ENTER YOUR NAME\" screen built, with the score beside the name."
  },
  {
   "address": 62770,
   "type": "line",
   "text": "Every 8 frames: joystick left and right step the letter under the cursor (1-33, wrapping; 30 is the delete sign and 31 the end sign), fire takes it, F1 ends and F3 deletes. The cursor is kept in $0315."
  },
  {
   "address": 63014,
   "type": "line",
   "text": "Shifts the lower table entries down 17 bytes from the new place, writes the new name and score in, shows the table (game-over countdown 1) and returns to the title after 150 frames."
  },
  {
   "address": 63076,
   "type": "line",
   "text": "Low byte of the operand of the sta $0211,x at $F663, where the new entry is written: the compared entry's start ($F4B7 less 11)."
  },
  {
   "address": 63077,
   "type": "line",
   "text": "High byte of the operand of the sta at $F663."
  },
  {
   "address": 63112,
   "type": "line",
   "text": "The new score's place in the table, then the table offset where its entry goes."
  },
  {
   "address": 63113,
   "type": "line",
   "text": "Frames the name screen's text holds at full colour before it fades again."
  },
  {
   "address": 63119,
   "type": "line",
   "text": "Offsets of the five men's rows in the man table: 0, 6, 12, 18 and 24."
  },
  {
   "address": 63130,
   "type": "line",
   "text": "The Y of the cursor sprite at each of the five slots of the platoon list."
  },
  {
   "address": 63135,
   "type": "line",
   "text": "The five men, 6 bytes each: wounds, magazines, grenades and the three characters of his number in the panel; saved by $BFB8 and loaded by $C2CB."
  },
  {
   "address": 63136,
   "type": "line",
   "text": "Man 0's magazines."
  },
  {
   "address": 63137,
   "type": "line",
   "text": "Man 0's grenades."
  },
  {
   "address": 63138,
   "type": "line",
   "text": "The first character of man 0's number."
  },
  {
   "address": 63139,
   "type": "line",
   "text": "The second character of man 0's number."
  },
  {
   "address": 63140,
   "type": "line",
   "text": "The third character of man 0's number."
  },
  {
   "address": 63141,
   "type": "line",
   "text": "Man 1's row of the man table."
  },
  {
   "address": 63147,
   "type": "line",
   "text": "Man 2's row of the man table."
  },
  {
   "address": 63153,
   "type": "line",
   "text": "Man 3's row of the man table."
  },
  {
   "address": 63159,
   "type": "line",
   "text": "Man 4's row of the man table."
  },
  {
   "address": 63170,
   "type": "line",
   "text": "The platoon list's cursor between choices: the screen and colour addresses of its two rows and its Y."
  },
  {
   "address": 63171,
   "type": "line",
   "text": "High byte of the cursor's saved screen address."
  },
  {
   "address": 63172,
   "type": "line",
   "text": "Low byte of the cursor's saved colour address."
  },
  {
   "address": 63173,
   "type": "line",
   "text": "High byte of the cursor's saved colour address."
  },
  {
   "address": 63174,
   "type": "line",
   "text": "Low byte of the saved screen address of the cursor's second row."
  },
  {
   "address": 63175,
   "type": "line",
   "text": "High byte of that address."
  },
  {
   "address": 63176,
   "type": "line",
   "text": "Low byte of the saved colour address of the cursor's second row."
  },
  {
   "address": 63177,
   "type": "line",
   "text": "High byte of that colour address."
  },
  {
   "address": 63178,
   "type": "line",
   "text": "The cursor's saved Y."
  },
  {
   "address": 63179,
   "type": "line",
   "text": "The credits that scroll on the title: 13 lines of 40 characters, starting \"(C) 1986 HEMDALE FILM CORP.\"; the scroll's 14th line is read from the name buffer at $F8D3 and the bytes after it."
  },
  {
   "address": 63699,
   "type": "line",
   "text": "The name being entered: 10 letters (1-33, $20 blank) and the score's 6 digits at $F8DE, 17 bytes in the table's own format."
  },
  {
   "address": 63710,
   "type": "line",
   "text": "The score's six digits in the name buffer, compared with the table's by $F4B3."
  },
  {
   "address": 64000,
   "type": "line",
   "text": "The digitised sample, two 4-bit values a byte (high first), ending in $FF at $FEBE."
  },
  {
   "address": 64816,
   "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": 65024,
   "type": "line",
   "text": "The end of the sample that starts at $FA00."
  },
  {
   "address": 65278,
   "type": "line",
   "text": "Two bytes, then from $FF00 the ten high scores the game starts with, PLATOON 199998 down to 009145; $0400 copies $FF00-$FFFF to $0200."
  },
  {
   "address": 65280,
   "type": "line",
   "text": "The ten starting entries, 17 bytes each (ten letters, a space and six digits), PLATOON 199998 first; with the bytes after them, the 256 bytes $0400 copies to $0200."
  },
  {
   "address": 65466,
   "type": "line",
   "text": "The KERNAL's SETLFS, called by $3DC3 with the ROM banked in; the RAM here holds only the end of the high-score copy."
  },
  {
   "address": 65469,
   "type": "line",
   "text": "The KERNAL's SETNAM, called by $3DCC with the ROM banked in."
  }
 ]
}