{
 "schema": 1,
 "platform": "c64",
 "game": "the-goonies",
 "build": "",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    1024,
    2047,
    "screen matrix of buffer 0 (VIC bank 0), colours of the bitmap"
   ],
   [
    8620,
    10239,
    "the rest of buffer 0's top bitmap rows; in the loaded image it holds leftovers of the load (a copy of part of the music code and tunes) that nothing reads"
   ],
   [
    10240,
    16383,
    "bitmap of buffer 0; the loader at $2000-$27FF sits in its top rows only while a picture loads"
   ],
   [
    16384,
    24575,
    "bitmap of buffer 1, and the picture being loaded"
   ],
   [
    24576,
    25599,
    "screen matrix of buffer 1 (VIC bank 1)"
   ],
   [
    25856,
    26111,
    "random table, filled from the SID's noise (or from $F69B in the attract mode) at run time"
   ],
   [
    63744,
    65279,
    "save areas for the background under each buffer's sprites"
   ],
   [
    53248,
    53503,
    "RAM under the I/O area: in play $D000-$D00F holds the sixteen bytes of object_handlers ($0AD9) that the protection check at $0800 copies there; the rest is the power-on pattern"
   ],
   [
    55296,
    57343,
    "RAM under the I/O area: the scene loader's copy, kept here between loads (s_6800 copies it from $2000-$27FF, and it is copied back before each picture loads)"
   ]
  ],
  "extra": []
 },
 "blocks": [
  {
   "start": 0,
   "end": 2047,
   "type": "Undefined"
  },
  {
   "start": 2048,
   "end": 2552,
   "type": "Code"
  },
  {
   "start": 2553,
   "end": 2562,
   "type": "Byte"
  },
  {
   "start": 2563,
   "end": 2732,
   "type": "Code"
  },
  {
   "start": 2733,
   "end": 2737,
   "type": "Byte"
  },
  {
   "start": 2738,
   "end": 2776,
   "type": "Code"
  },
  {
   "start": 2777,
   "end": 2808,
   "type": "Word"
  },
  {
   "start": 2809,
   "end": 3323,
   "type": "Code"
  },
  {
   "start": 3324,
   "end": 3324,
   "type": "Undefined"
  },
  {
   "start": 3325,
   "end": 4066,
   "type": "Code"
  },
  {
   "start": 4067,
   "end": 4186,
   "type": "Byte"
  },
  {
   "start": 4187,
   "end": 4247,
   "type": "Undefined"
  },
  {
   "start": 4248,
   "end": 4582,
   "type": "Code"
  },
  {
   "start": 4583,
   "end": 4608,
   "type": "Byte"
  },
  {
   "start": 4609,
   "end": 4768,
   "type": "Word"
  },
  {
   "start": 4769,
   "end": 4897,
   "type": "Undefined"
  },
  {
   "start": 4898,
   "end": 5149,
   "type": "Word"
  },
  {
   "start": 5150,
   "end": 5153,
   "type": "Undefined"
  },
  {
   "start": 5154,
   "end": 5405,
   "type": "Word"
  },
  {
   "start": 5406,
   "end": 5643,
   "type": "Code"
  },
  {
   "start": 5644,
   "end": 5683,
   "type": "Byte"
  },
  {
   "start": 5684,
   "end": 5924,
   "type": "Code"
  },
  {
   "start": 5925,
   "end": 5925,
   "type": "Undefined"
  },
  {
   "start": 5926,
   "end": 5930,
   "type": "Byte"
  },
  {
   "start": 5931,
   "end": 6321,
   "type": "Code"
  },
  {
   "start": 6322,
   "end": 6376,
   "type": "Byte"
  },
  {
   "start": 6377,
   "end": 6439,
   "type": "Code"
  },
  {
   "start": 6440,
   "end": 6471,
   "type": "Byte"
  },
  {
   "start": 6472,
   "end": 6516,
   "type": "Code"
  },
  {
   "start": 6517,
   "end": 6520,
   "type": "Byte"
  },
  {
   "start": 6521,
   "end": 6617,
   "type": "Code"
  },
  {
   "start": 6618,
   "end": 6634,
   "type": "Byte"
  },
  {
   "start": 6635,
   "end": 6659,
   "type": "Code"
  },
  {
   "start": 6660,
   "end": 6686,
   "type": "Byte"
  },
  {
   "start": 6687,
   "end": 6939,
   "type": "Code"
  },
  {
   "start": 6940,
   "end": 6963,
   "type": "Byte"
  },
  {
   "start": 6964,
   "end": 6983,
   "type": "Word"
  },
  {
   "start": 6984,
   "end": 6984,
   "type": "Code"
  },
  {
   "start": 6985,
   "end": 8191,
   "type": "Byte"
  },
  {
   "start": 8192,
   "end": 8285,
   "type": "Code"
  },
  {
   "start": 8286,
   "end": 8307,
   "type": "Undefined"
  },
  {
   "start": 8308,
   "end": 8333,
   "type": "Code"
  },
  {
   "start": 8334,
   "end": 8376,
   "type": "Undefined"
  },
  {
   "start": 8377,
   "end": 8442,
   "type": "Code"
  },
  {
   "start": 8443,
   "end": 8445,
   "type": "Undefined"
  },
  {
   "start": 8446,
   "end": 8603,
   "type": "Code"
  },
  {
   "start": 8604,
   "end": 8619,
   "type": "Byte"
  },
  {
   "start": 8620,
   "end": 26111,
   "type": "Undefined"
  },
  {
   "start": 26112,
   "end": 26623,
   "type": "Byte"
  },
  {
   "start": 26624,
   "end": 26957,
   "type": "Code"
  },
  {
   "start": 26958,
   "end": 27981,
   "type": "Byte"
  },
  {
   "start": 27982,
   "end": 28744,
   "type": "Code"
  },
  {
   "start": 28745,
   "end": 28784,
   "type": "Word"
  },
  {
   "start": 28785,
   "end": 28861,
   "type": "Code"
  },
  {
   "start": 28862,
   "end": 29325,
   "type": "Word"
  },
  {
   "start": 29326,
   "end": 30099,
   "type": "Code"
  },
  {
   "start": 30100,
   "end": 30107,
   "type": "Word"
  },
  {
   "start": 30108,
   "end": 30646,
   "type": "Code"
  },
  {
   "start": 30647,
   "end": 30654,
   "type": "Word"
  },
  {
   "start": 30655,
   "end": 30657,
   "type": "Undefined"
  },
  {
   "start": 30658,
   "end": 30663,
   "type": "Word"
  },
  {
   "start": 30664,
   "end": 30724,
   "type": "Byte"
  },
  {
   "start": 30725,
   "end": 30725,
   "type": "Undefined"
  },
  {
   "start": 30726,
   "end": 30726,
   "type": "Code"
  },
  {
   "start": 30727,
   "end": 31286,
   "type": "Byte"
  },
  {
   "start": 31287,
   "end": 31493,
   "type": "Code"
  },
  {
   "start": 31494,
   "end": 31496,
   "type": "Undefined"
  },
  {
   "start": 31497,
   "end": 31744,
   "type": "Code"
  },
  {
   "start": 31745,
   "end": 31748,
   "type": "Undefined"
  },
  {
   "start": 31749,
   "end": 31977,
   "type": "Code"
  },
  {
   "start": 31978,
   "end": 31985,
   "type": "Word"
  },
  {
   "start": 31986,
   "end": 31986,
   "type": "Undefined"
  },
  {
   "start": 31987,
   "end": 32055,
   "type": "Code"
  },
  {
   "start": 32056,
   "end": 32056,
   "type": "Undefined"
  },
  {
   "start": 32057,
   "end": 32064,
   "type": "Word"
  },
  {
   "start": 32065,
   "end": 32186,
   "type": "Code"
  },
  {
   "start": 32187,
   "end": 32188,
   "type": "Undefined"
  },
  {
   "start": 32189,
   "end": 32221,
   "type": "Code"
  },
  {
   "start": 32222,
   "end": 32222,
   "type": "Undefined"
  },
  {
   "start": 32223,
   "end": 32246,
   "type": "Byte"
  },
  {
   "start": 32247,
   "end": 32247,
   "type": "Undefined"
  },
  {
   "start": 32248,
   "end": 32362,
   "type": "Code"
  },
  {
   "start": 32363,
   "end": 32363,
   "type": "Undefined"
  },
  {
   "start": 32364,
   "end": 32534,
   "type": "Code"
  },
  {
   "start": 32535,
   "end": 32536,
   "type": "Undefined"
  },
  {
   "start": 32537,
   "end": 32546,
   "type": "Byte"
  },
  {
   "start": 32547,
   "end": 32776,
   "type": "Undefined"
  },
  {
   "start": 32777,
   "end": 32786,
   "type": "Word"
  },
  {
   "start": 32787,
   "end": 32835,
   "type": "Code"
  },
  {
   "start": 32836,
   "end": 33410,
   "type": "Byte"
  },
  {
   "start": 33411,
   "end": 33615,
   "type": "Code"
  },
  {
   "start": 33616,
   "end": 33911,
   "type": "Byte"
  },
  {
   "start": 33912,
   "end": 33947,
   "type": "Word"
  },
  {
   "start": 33948,
   "end": 34091,
   "type": "Byte"
  },
  {
   "start": 34092,
   "end": 34590,
   "type": "Code"
  },
  {
   "start": 34591,
   "end": 34614,
   "type": "Byte"
  },
  {
   "start": 34615,
   "end": 34654,
   "type": "Word"
  },
  {
   "start": 34655,
   "end": 34664,
   "type": "Undefined"
  },
  {
   "start": 34665,
   "end": 34828,
   "type": "Byte"
  },
  {
   "start": 34829,
   "end": 35212,
   "type": "Code"
  },
  {
   "start": 35213,
   "end": 35228,
   "type": "Word"
  },
  {
   "start": 35229,
   "end": 35311,
   "type": "Byte"
  },
  {
   "start": 35312,
   "end": 35312,
   "type": "Undefined"
  },
  {
   "start": 35313,
   "end": 35390,
   "type": "Byte"
  },
  {
   "start": 35391,
   "end": 35797,
   "type": "Code"
  },
  {
   "start": 35798,
   "end": 35812,
   "type": "Undefined"
  },
  {
   "start": 35813,
   "end": 35863,
   "type": "Byte"
  },
  {
   "start": 35864,
   "end": 36401,
   "type": "Code"
  },
  {
   "start": 36402,
   "end": 36434,
   "type": "Byte"
  },
  {
   "start": 36435,
   "end": 36713,
   "type": "Code"
  },
  {
   "start": 36714,
   "end": 36811,
   "type": "Byte"
  },
  {
   "start": 36812,
   "end": 36821,
   "type": "Code"
  },
  {
   "start": 36822,
   "end": 37574,
   "type": "Byte"
  },
  {
   "start": 37575,
   "end": 37763,
   "type": "Code"
  },
  {
   "start": 37764,
   "end": 37867,
   "type": "Byte"
  },
  {
   "start": 37868,
   "end": 37873,
   "type": "Code"
  },
  {
   "start": 37874,
   "end": 37874,
   "type": "Undefined"
  },
  {
   "start": 37875,
   "end": 37900,
   "type": "Code"
  },
  {
   "start": 37901,
   "end": 37905,
   "type": "Undefined"
  },
  {
   "start": 37906,
   "end": 38044,
   "type": "Code"
  },
  {
   "start": 38045,
   "end": 38060,
   "type": "Undefined"
  },
  {
   "start": 38061,
   "end": 38285,
   "type": "Code"
  },
  {
   "start": 38286,
   "end": 38349,
   "type": "Byte"
  },
  {
   "start": 38350,
   "end": 38610,
   "type": "Code"
  },
  {
   "start": 38611,
   "end": 38637,
   "type": "Byte"
  },
  {
   "start": 38638,
   "end": 38843,
   "type": "Code"
  },
  {
   "start": 38844,
   "end": 38869,
   "type": "Byte"
  },
  {
   "start": 38870,
   "end": 39128,
   "type": "Code"
  },
  {
   "start": 39129,
   "end": 39129,
   "type": "Undefined"
  },
  {
   "start": 39130,
   "end": 39149,
   "type": "Word"
  },
  {
   "start": 39150,
   "end": 39215,
   "type": "Code"
  },
  {
   "start": 39216,
   "end": 39227,
   "type": "Byte"
  },
  {
   "start": 39228,
   "end": 39228,
   "type": "Code"
  },
  {
   "start": 39229,
   "end": 40242,
   "type": "Byte"
  },
  {
   "start": 40243,
   "end": 40708,
   "type": "Code"
  },
  {
   "start": 40709,
   "end": 40714,
   "type": "Byte"
  },
  {
   "start": 40715,
   "end": 40865,
   "type": "Code"
  },
  {
   "start": 40866,
   "end": 40881,
   "type": "Word"
  },
  {
   "start": 40882,
   "end": 40882,
   "type": "Byte"
  },
  {
   "start": 40883,
   "end": 41022,
   "type": "Code"
  },
  {
   "start": 41023,
   "end": 41032,
   "type": "Byte"
  },
  {
   "start": 41033,
   "end": 41140,
   "type": "Code"
  },
  {
   "start": 41141,
   "end": 41141,
   "type": "Byte"
  },
  {
   "start": 41142,
   "end": 41294,
   "type": "Code"
  },
  {
   "start": 41295,
   "end": 41300,
   "type": "Undefined"
  },
  {
   "start": 41301,
   "end": 41341,
   "type": "Byte"
  },
  {
   "start": 41342,
   "end": 41377,
   "type": "Code"
  },
  {
   "start": 41378,
   "end": 41383,
   "type": "Byte"
  },
  {
   "start": 41384,
   "end": 41420,
   "type": "Code"
  },
  {
   "start": 41421,
   "end": 41424,
   "type": "Byte"
  },
  {
   "start": 41425,
   "end": 41432,
   "type": "Word"
  },
  {
   "start": 41433,
   "end": 42208,
   "type": "Byte"
  },
  {
   "start": 42209,
   "end": 42282,
   "type": "Code"
  },
  {
   "start": 42283,
   "end": 42283,
   "type": "Byte"
  },
  {
   "start": 42284,
   "end": 42291,
   "type": "Word"
  },
  {
   "start": 42292,
   "end": 42334,
   "type": "Code"
  },
  {
   "start": 42335,
   "end": 47615,
   "type": "Byte"
  },
  {
   "start": 47616,
   "end": 47621,
   "type": "Code"
  },
  {
   "start": 47622,
   "end": 47624,
   "type": "Undefined"
  },
  {
   "start": 47625,
   "end": 47627,
   "type": "Code"
  },
  {
   "start": 47628,
   "end": 47639,
   "type": "Undefined"
  },
  {
   "start": 47640,
   "end": 47645,
   "type": "Code"
  },
  {
   "start": 47646,
   "end": 47648,
   "type": "Undefined"
  },
  {
   "start": 47649,
   "end": 47651,
   "type": "Code"
  },
  {
   "start": 47652,
   "end": 47722,
   "type": "Undefined"
  },
  {
   "start": 47723,
   "end": 47776,
   "type": "Code"
  },
  {
   "start": 47777,
   "end": 47780,
   "type": "Undefined"
  },
  {
   "start": 47781,
   "end": 48053,
   "type": "Code"
  },
  {
   "start": 48054,
   "end": 48055,
   "type": "Undefined"
  },
  {
   "start": 48056,
   "end": 48598,
   "type": "Code"
  },
  {
   "start": 48599,
   "end": 48601,
   "type": "Undefined"
  },
  {
   "start": 48602,
   "end": 48708,
   "type": "Code"
  },
  {
   "start": 48709,
   "end": 48747,
   "type": "Undefined"
  },
  {
   "start": 48748,
   "end": 48904,
   "type": "Code"
  },
  {
   "start": 48905,
   "end": 49229,
   "type": "Byte"
  },
  {
   "start": 49230,
   "end": 49293,
   "type": "Undefined"
  },
  {
   "start": 49294,
   "end": 51437,
   "type": "Byte"
  },
  {
   "start": 51438,
   "end": 51439,
   "type": "Undefined"
  },
  {
   "start": 51440,
   "end": 52250,
   "type": "Code"
  },
  {
   "start": 52251,
   "end": 52292,
   "type": "Word"
  },
  {
   "start": 52293,
   "end": 53112,
   "type": "Byte"
  },
  {
   "start": 53113,
   "end": 57343,
   "type": "Undefined"
  },
  {
   "start": 57344,
   "end": 57520,
   "type": "Code"
  },
  {
   "start": 57521,
   "end": 57526,
   "type": "Byte"
  },
  {
   "start": 57527,
   "end": 57694,
   "type": "Code"
  },
  {
   "start": 57695,
   "end": 57709,
   "type": "Byte"
  },
  {
   "start": 57710,
   "end": 57721,
   "type": "Word"
  },
  {
   "start": 57722,
   "end": 57763,
   "type": "Code"
  },
  {
   "start": 57764,
   "end": 57771,
   "type": "Undefined"
  },
  {
   "start": 57772,
   "end": 57840,
   "type": "Code"
  },
  {
   "start": 57841,
   "end": 57842,
   "type": "Byte"
  },
  {
   "start": 57843,
   "end": 57897,
   "type": "Code"
  },
  {
   "start": 57898,
   "end": 57905,
   "type": "Word"
  },
  {
   "start": 57906,
   "end": 58396,
   "type": "Code"
  },
  {
   "start": 58397,
   "end": 58416,
   "type": "Word"
  },
  {
   "start": 58417,
   "end": 58676,
   "type": "Code"
  },
  {
   "start": 58677,
   "end": 58680,
   "type": "Byte"
  },
  {
   "start": 58681,
   "end": 58726,
   "type": "Code"
  },
  {
   "start": 58727,
   "end": 58738,
   "type": "Byte"
  },
  {
   "start": 58739,
   "end": 58754,
   "type": "Word"
  },
  {
   "start": 58755,
   "end": 58832,
   "type": "Byte"
  },
  {
   "start": 58833,
   "end": 58833,
   "type": "Code"
  },
  {
   "start": 58834,
   "end": 61537,
   "type": "Byte"
  },
  {
   "start": 61538,
   "end": 61538,
   "type": "Undefined"
  },
  {
   "start": 61539,
   "end": 61736,
   "type": "Code"
  },
  {
   "start": 61737,
   "end": 61760,
   "type": "Byte"
  },
  {
   "start": 61761,
   "end": 61900,
   "type": "Code"
  },
  {
   "start": 61901,
   "end": 61915,
   "type": "Byte"
  },
  {
   "start": 61916,
   "end": 62222,
   "type": "Code"
  },
  {
   "start": 62223,
   "end": 62223,
   "type": "Undefined"
  },
  {
   "start": 62224,
   "end": 62250,
   "type": "Byte"
  },
  {
   "start": 62251,
   "end": 62466,
   "type": "Code"
  },
  {
   "start": 62467,
   "end": 62482,
   "type": "Byte"
  },
  {
   "start": 62483,
   "end": 62592,
   "type": "Code"
  },
  {
   "start": 62593,
   "end": 62597,
   "type": "Byte"
  },
  {
   "start": 62598,
   "end": 62613,
   "type": "Word"
  },
  {
   "start": 62614,
   "end": 62833,
   "type": "Byte"
  },
  {
   "start": 62834,
   "end": 62839,
   "type": "Word"
  },
  {
   "start": 62840,
   "end": 62851,
   "type": "Byte"
  },
  {
   "start": 62852,
   "end": 62852,
   "type": "Code"
  },
  {
   "start": 62853,
   "end": 63386,
   "type": "Byte"
  },
  {
   "start": 63387,
   "end": 63387,
   "type": "Undefined"
  },
  {
   "start": 63388,
   "end": 63401,
   "type": "Code"
  },
  {
   "start": 63402,
   "end": 63403,
   "type": "Undefined"
  },
  {
   "start": 63404,
   "end": 63438,
   "type": "Code"
  },
  {
   "start": 63439,
   "end": 63454,
   "type": "Word"
  },
  {
   "start": 63455,
   "end": 63500,
   "type": "Code"
  },
  {
   "start": 63501,
   "end": 63564,
   "type": "Undefined"
  },
  {
   "start": 63565,
   "end": 63743,
   "type": "Byte"
  },
  {
   "start": 63744,
   "end": 65279,
   "type": "Undefined"
  },
  {
   "start": 65280,
   "end": 65529,
   "type": "Byte"
  },
  {
   "start": 65530,
   "end": 65535,
   "type": "Word"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16,
   "name": "zpa_10",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17,
   "name": "zpa_11",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18,
   "name": "zpa_12",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19,
   "name": "zpa_13",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21,
   "name": "zpa_15",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 22,
   "name": "zpa_16",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 23,
   "name": "zpa_17",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 24,
   "name": "zpa_18",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25,
   "name": "zpa_19",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26,
   "name": "zpa_1A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27,
   "name": "zpa_1B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28,
   "name": "zpa_1C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 29,
   "name": "zpf_1D",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 30,
   "name": "zpa_1E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31,
   "name": "zpa_1F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40,
   "name": "zpf_28",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 41,
   "name": "zpa_29",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpa_2A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51,
   "name": "zpf_33",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 52,
   "name": "zpa_34",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53,
   "name": "zpa_35",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62,
   "name": "zpa_3E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63,
   "name": "zpa_3F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 64,
   "name": "zpa_40",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 73,
   "name": "zpa_49",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 74,
   "name": "zpa_4A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 75,
   "name": "zpa_4B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 84,
   "name": "zpf_54",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 85,
   "name": "zpa_55",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 86,
   "name": "zpa_56",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 95,
   "name": "zpf_5F",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 96,
   "name": "zpa_60",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 97,
   "name": "zpa_61",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 106,
   "name": "zpf_6A",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 107,
   "name": "zpa_6B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 108,
   "name": "zpa_6C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 117,
   "name": "f_0075",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 118,
   "name": "zpa_76",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 119,
   "name": "zpa_77",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 128,
   "name": "zpf_80",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 129,
   "name": "zpa_81",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 130,
   "name": "zpa_82",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 139,
   "name": "zpf_8B",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 140,
   "name": "zpa_8C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 141,
   "name": "zpa_8D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 150,
   "name": "zpf_96",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 151,
   "name": "zp_force_stick1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 152,
   "name": "zp_force_stick2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 161,
   "name": "zpa_A1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 162,
   "name": "zpa_A2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 163,
   "name": "zpa_A3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 164,
   "name": "zpp_A4",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 165,
   "name": "zpa_A5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 166,
   "name": "zpp_A6",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 167,
   "name": "zpa_A7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 168,
   "name": "zpp_A8",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 169,
   "name": "zpa_A9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 170,
   "name": "zpp_AA",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 171,
   "name": "zpa_AB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 172,
   "name": "zpp_AC",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 173,
   "name": "zpa_AD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 174,
   "name": "p_00AE",
   "type": "Pointer",
   "kind": "auto"
  },
  {
   "address": 175,
   "name": "zpa_AF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 176,
   "name": "p_00B0",
   "type": "Pointer",
   "kind": "auto"
  },
  {
   "address": 177,
   "name": "zpa_B1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 178,
   "name": "p_00B2",
   "type": "Pointer",
   "kind": "auto"
  },
  {
   "address": 179,
   "name": "zpa_B3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 180,
   "name": "zpa_B4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 181,
   "name": "zpa_B5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 240,
   "name": "zpa_F0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 243,
   "name": "zpp_F3",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 244,
   "name": "zpa_F4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 245,
   "name": "zpa_F5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 246,
   "name": "zpa_F6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 247,
   "name": "zpa_F7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 249,
   "name": "zpa_F9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 250,
   "name": "zpa_FA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "zpa_FD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 254,
   "name": "zpa_FE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 272,
   "name": "f_0110",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "f_0400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1478,
   "name": "f_05C6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 2048,
   "name": "game_start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2055,
   "name": "b_0807",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2070,
   "name": "b_0816",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2078,
   "name": "b_081E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2092,
   "name": "b_082C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2099,
   "name": "b_0833",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2108,
   "name": "cold_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2135,
   "name": "attract_mode",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2152,
   "name": "new_game",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2174,
   "name": "b_087E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2179,
   "name": "enter_scene",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2184,
   "name": "j_0888",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2221,
   "name": "b_08AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2262,
   "name": "main_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2278,
   "name": "b_08E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2292,
   "name": "b_08F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2303,
   "name": "b_08FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2306,
   "name": "b_0902",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2309,
   "name": "j_0905",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2348,
   "name": "b_092C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2364,
   "name": "b_093C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2372,
   "name": "b_0944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2375,
   "name": "b_0947",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2390,
   "name": "b_0956",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2407,
   "name": "b_0967",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2422,
   "name": "b_0976",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2449,
   "name": "b_0991",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2454,
   "name": "b_0996",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2457,
   "name": "b_0999",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2495,
   "name": "b_09BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2500,
   "name": "j_09C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2509,
   "name": "b_09CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2511,
   "name": "b_09CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2519,
   "name": "j_09D7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2534,
   "name": "b_09E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2539,
   "name": "b_09EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2553,
   "name": "scene_jingles",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2563,
   "name": "irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2633,
   "name": "b_0A49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2656,
   "name": "b_0A60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2667,
   "name": "b_0A6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2679,
   "name": "call_scene_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2682,
   "name": "call_scene_late",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2685,
   "name": "call_scene_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2688,
   "name": "run_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2690,
   "name": "b_0A82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2701,
   "name": "b_0A8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2706,
   "name": "b_0A92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2725,
   "name": "a_0AA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2726,
   "name": "a_0AA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2727,
   "name": "b_0AA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2733,
   "name": "timer_reloads",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2738,
   "name": "draw_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2740,
   "name": "b_0AB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2753,
   "name": "b_0AC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2761,
   "name": "find_free_slot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2763,
   "name": "b_0ACB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2770,
   "name": "b_0AD2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2777,
   "name": "object_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2778,
   "name": "f_0ADA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 2809,
   "name": "goonie_active",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2818,
   "name": "b_0B02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2829,
   "name": "b_0B0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2832,
   "name": "j_0B10",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2877,
   "name": "b_0B3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2914,
   "name": "goonie_waiting",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2958,
   "name": "b_0B8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2968,
   "name": "splash_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2984,
   "name": "r_0BA8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2985,
   "name": "b_0BA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2994,
   "name": "b_0BB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3027,
   "name": "goonie_dying",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3042,
   "name": "b_0BE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3045,
   "name": "b_0BE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3056,
   "name": "b_0BF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3058,
   "name": "b_0BF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3061,
   "name": "unused_handler",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3076,
   "name": "unused_near_goonie",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3089,
   "name": "b_0C11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3102,
   "name": "b_0C1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3104,
   "name": "b_0C20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3114,
   "name": "b_0C2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3124,
   "name": "b_0C34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3126,
   "name": "goonie_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3151,
   "name": "b_0C4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3155,
   "name": "b_0C53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3165,
   "name": "b_0C5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3173,
   "name": "b_0C65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3183,
   "name": "b_0C6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3187,
   "name": "r_0C73",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3188,
   "name": "b_0C74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3192,
   "name": "b_0C78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3202,
   "name": "b_0C82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3204,
   "name": "b_0C84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3210,
   "name": "draw_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3261,
   "name": "object_in_box",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3319,
   "name": "b_0CF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3324,
   "name": "a_0CFC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3325,
   "name": "move_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3329,
   "name": "b_0D01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3406,
   "name": "b_0D4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3409,
   "name": "b_0D51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3420,
   "name": "b_0D5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3423,
   "name": "b_0D5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3431,
   "name": "b_0D67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3437,
   "name": "b_0D6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3443,
   "name": "b_0D73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3449,
   "name": "b_0D79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3455,
   "name": "b_0D7F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3462,
   "name": "b_0D86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3510,
   "name": "b_0DB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3553,
   "name": "b_0DE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3563,
   "name": "b_0DEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3574,
   "name": "b_0DF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3585,
   "name": "b_0E01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3604,
   "name": "b_0E14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3614,
   "name": "b_0E1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3621,
   "name": "b_0E25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3633,
   "name": "b_0E31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3656,
   "name": "b_0E48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3658,
   "name": "b_0E4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3665,
   "name": "b_0E51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3684,
   "name": "b_0E64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3699,
   "name": "b_0E73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3706,
   "name": "b_0E7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3719,
   "name": "b_0E87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3726,
   "name": "b_0E8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3757,
   "name": "b_0EAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3775,
   "name": "b_0EBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3791,
   "name": "b_0ECF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3803,
   "name": "b_0EDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3814,
   "name": "b_0EE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3825,
   "name": "b_0EF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3843,
   "name": "b_0F03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3845,
   "name": "b_0F05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3875,
   "name": "b_0F23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3880,
   "name": "b_0F28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3887,
   "name": "b_0F2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3898,
   "name": "stop_at_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3915,
   "name": "stop_at_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3939,
   "name": "centre_on_ladder",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3964,
   "name": "hit_ceiling",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3998,
   "name": "b_0F9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4005,
   "name": "land_on_floor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4035,
   "name": "b_0FC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4066,
   "name": "r_0FE2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 4067,
   "name": "shape_widths",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4096,
   "name": "shape_widths_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4127,
   "name": "shape_heights",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4187,
   "name": "touched_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4188,
   "name": "a_105C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4189,
   "name": "a_105D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4190,
   "name": "a_105E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4191,
   "name": "a_105F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4192,
   "name": "a_1060",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4193,
   "name": "a_1061",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4194,
   "name": "a_1062",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4195,
   "name": "a_1063",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4196,
   "name": "a_1064",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4197,
   "name": "a_1065",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4198,
   "name": "a_1066",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4199,
   "name": "a_1067",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4200,
   "name": "a_1068",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4201,
   "name": "a_1069",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4202,
   "name": "a_106A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4203,
   "name": "a_106B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4220,
   "name": "f_107C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4238,
   "name": "a_108E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4239,
   "name": "a_108F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4240,
   "name": "a_1090",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4241,
   "name": "a_1091",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4242,
   "name": "a_1092",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4243,
   "name": "a_1093",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4244,
   "name": "a_1094",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4245,
   "name": "a_1095",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4246,
   "name": "a_1096",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4247,
   "name": "a_1097",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4248,
   "name": "setup_scene",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4304,
   "name": "b_10D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4467,
   "name": "clear_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4471,
   "name": "b_1177",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4478,
   "name": "clear_game_vars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4482,
   "name": "b_1182",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4489,
   "name": "load_scene_tables",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4583,
   "name": "bit_masks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4599,
   "name": "scene_rect_counts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4609,
   "name": "scene_rect_kind_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4610,
   "name": "f_1202",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4629,
   "name": "scene_rect_left_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4630,
   "name": "f_1216",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4649,
   "name": "scene_rect_top_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4650,
   "name": "f_122A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4660,
   "name": "a_1234",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4669,
   "name": "scene_rect_right_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4670,
   "name": "f_123E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4689,
   "name": "scene_rect_bottom_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4690,
   "name": "f_1252",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4709,
   "name": "scene_start_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4710,
   "name": "f_1266",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4729,
   "name": "scene_frame_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4730,
   "name": "f_127A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4749,
   "name": "scene_late_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4750,
   "name": "f_128E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4769,
   "name": "hiscore",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4774,
   "name": "a_12A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4775,
   "name": "f_12A7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4780,
   "name": "a_12AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4783,
   "name": "a_12AF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4784,
   "name": "a_12B0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4785,
   "name": "a_12B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4786,
   "name": "a_12B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4787,
   "name": "a_12B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4788,
   "name": "a_12B4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4789,
   "name": "a_12B5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4790,
   "name": "a_12B6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4791,
   "name": "a_12B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4792,
   "name": "a_12B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4793,
   "name": "a_12B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4794,
   "name": "a_12BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4795,
   "name": "a_12BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4796,
   "name": "a_12BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4797,
   "name": "a_12BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4798,
   "name": "a_12BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4799,
   "name": "a_12BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4800,
   "name": "key_new",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4801,
   "name": "a_12C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4802,
   "name": "a_12C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4803,
   "name": "a_12C3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4804,
   "name": "a_12C4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4805,
   "name": "a_12C5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4806,
   "name": "a_12C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4807,
   "name": "a_12C7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4808,
   "name": "a_12C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4809,
   "name": "a_12C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4810,
   "name": "a_12CA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4811,
   "name": "a_12CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4812,
   "name": "a_12CC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4813,
   "name": "a_12CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4814,
   "name": "a_12CE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4815,
   "name": "a_12CF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4816,
   "name": "a_12D0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4817,
   "name": "a_12D1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4818,
   "name": "a_12D2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4819,
   "name": "a_12D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4820,
   "name": "a_12D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4821,
   "name": "a_12D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4822,
   "name": "a_12D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4823,
   "name": "a_12D7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4824,
   "name": "f_12D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4825,
   "name": "a_12D9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4826,
   "name": "a_12DA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4827,
   "name": "a_12DB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4828,
   "name": "a_12DC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4829,
   "name": "a_12DD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4894,
   "name": "restore_list_0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4895,
   "name": "f_131F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4896,
   "name": "a_1320",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4897,
   "name": "a_1321",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4898,
   "name": "restore_list0_more",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5150,
   "name": "restore_list_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5151,
   "name": "f_141F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5152,
   "name": "a_1420",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5153,
   "name": "a_1421",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5154,
   "name": "restore_list1_more",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5406,
   "name": "read_keyboard",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5421,
   "name": "r_152D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5422,
   "name": "b_152E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5476,
   "name": "b_1564",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5479,
   "name": "b_1567",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5490,
   "name": "b_1572",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5493,
   "name": "b_1575",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5512,
   "name": "b_1588",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5529,
   "name": "b_1599",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5549,
   "name": "r_15AD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5550,
   "name": "scan_any_key",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5552,
   "name": "b_15B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5557,
   "name": "b_15B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5564,
   "name": "b_15BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5566,
   "name": "b_15BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5582,
   "name": "b_15CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5587,
   "name": "b_15D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5604,
   "name": "scan_game_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5606,
   "name": "b_15E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5634,
   "name": "b_1602",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5644,
   "name": "game_key_matrix",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5660,
   "name": "f_161C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5668,
   "name": "f_1624",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5676,
   "name": "f_162C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5684,
   "name": "handle_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5699,
   "name": "b_1643",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5727,
   "name": "b_165F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5753,
   "name": "b_1679",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5760,
   "name": "b_1680",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5764,
   "name": "b_1684",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5771,
   "name": "b_168B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5778,
   "name": "b_1692",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5788,
   "name": "b_169C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5814,
   "name": "b_16B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5826,
   "name": "b_16C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5838,
   "name": "b_16CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5863,
   "name": "r_16E7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5864,
   "name": "game_over",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5869,
   "name": "b_16ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5897,
   "name": "b_1709",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5917,
   "name": "b_171D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5925,
   "name": "a_1725",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5926,
   "name": "game_over_fill",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5931,
   "name": "read_stick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5946,
   "name": "b_173A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5949,
   "name": "j_173D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5978,
   "name": "b_175A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5981,
   "name": "s4_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5996,
   "name": "b_176C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6051,
   "name": "s4_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6072,
   "name": "b_17B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6104,
   "name": "b_17D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6107,
   "name": "b_17DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6128,
   "name": "b_17F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6131,
   "name": "b_17F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6152,
   "name": "b_1808",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6155,
   "name": "b_180B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6171,
   "name": "s4_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6221,
   "name": "b_184D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6232,
   "name": "r_1858",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6233,
   "name": "s4_gaps_top",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6237,
   "name": "s_185D",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 6241,
   "name": "s_1861",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 6243,
   "name": "b_1863",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6249,
   "name": "b_1869",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6266,
   "name": "s4_floor_pieces",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6271,
   "name": "b_187F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6316,
   "name": "b_18AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6322,
   "name": "a_18B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6323,
   "name": "f_18B3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6332,
   "name": "f_18BC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6341,
   "name": "f_18C5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6350,
   "name": "f_18CE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6359,
   "name": "f_18D7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6360,
   "name": "f_18D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6377,
   "name": "s4_bell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6399,
   "name": "b_18FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6409,
   "name": "b_1909",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6412,
   "name": "b_190C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6440,
   "name": "a_1928",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6441,
   "name": "f_1929",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6442,
   "name": "f_192A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6455,
   "name": "a_1937",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6456,
   "name": "f_1938",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6464,
   "name": "f_1940",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6472,
   "name": "s4_planks",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6478,
   "name": "b_194E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6511,
   "name": "b_196F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6517,
   "name": "f_1975",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6520,
   "name": "a_1978",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6521,
   "name": "s4_flap",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6552,
   "name": "b_1998",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6556,
   "name": "b_199C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6558,
   "name": "b_199E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6618,
   "name": "a_19DA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6619,
   "name": "f_19DB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6621,
   "name": "f_19DD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6623,
   "name": "f_19DF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6624,
   "name": "f_19E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6627,
   "name": "f_19E3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6628,
   "name": "f_19E4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6631,
   "name": "f_19E7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6633,
   "name": "f_19E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6635,
   "name": "s4_close_gaps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6643,
   "name": "b_19F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6660,
   "name": "f_1A04",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6669,
   "name": "f_1A0D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6678,
   "name": "f_1A16",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6687,
   "name": "rock_type6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6715,
   "name": "b_1A3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6720,
   "name": "r_1A40",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6721,
   "name": "s4_rock_steer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6757,
   "name": "b_1A65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6759,
   "name": "b_1A67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6762,
   "name": "b_1A6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6764,
   "name": "b_1A6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6811,
   "name": "b_1A9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6831,
   "name": "b_1AAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6836,
   "name": "b_1AB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6842,
   "name": "b_1ABA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6849,
   "name": "b_1AC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6875,
   "name": "s4_reset_rock",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6908,
   "name": "s4_rect_rocks",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6910,
   "name": "b_1AFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6924,
   "name": "s4_rect_goonies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6926,
   "name": "b_1B0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6940,
   "name": "f_1B1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6952,
   "name": "f_1B28",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6964,
   "name": "f_1B34",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6974,
   "name": "f_1B3E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6984,
   "name": "s4_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6985,
   "name": "s4_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7001,
   "name": "a_1B59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7007,
   "name": "s4_lefts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7029,
   "name": "s4_tops",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7051,
   "name": "s4_rights",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7073,
   "name": "s4_bottoms",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7095,
   "name": "f_1BB7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7128,
   "name": "f_1BD8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7161,
   "name": "f_1BF9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7194,
   "name": "f_1C1A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7227,
   "name": "f_1C3B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7260,
   "name": "shape30_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7272,
   "name": "shape30_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7284,
   "name": "shape30_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7296,
   "name": "shape30_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7406,
   "name": "data_1CEE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7592,
   "name": "shape49_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7636,
   "name": "shape50_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7680,
   "name": "shape51_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7748,
   "name": "shape52_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7816,
   "name": "shape53_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7881,
   "name": "shape56_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7946,
   "name": "shape54_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7990,
   "name": "shape55_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8055,
   "name": "shape55_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8192,
   "name": "drive_send",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8206,
   "name": "b_200E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8219,
   "name": "b_201B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8228,
   "name": "b_2024",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8232,
   "name": "b_2028",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8239,
   "name": "drive_receive",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8243,
   "name": "b_2033",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8256,
   "name": "f_2040",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8258,
   "name": "b_2042",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8265,
   "name": "b_2049",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8308,
   "name": "receive_block",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8313,
   "name": "b_2079",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8323,
   "name": "b_2083",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8377,
   "name": "loader_begin",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8406,
   "name": "b_20D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8422,
   "name": "loader_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8443,
   "name": "a_20FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8444,
   "name": "a_20FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8445,
   "name": "a_20FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8446,
   "name": "drive_ready",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8448,
   "name": "f_2100",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8454,
   "name": "b_2106",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8470,
   "name": "drive_ack",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8490,
   "name": "b_212A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8498,
   "name": "load_scene_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8519,
   "name": "j_2147",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8571,
   "name": "b_217B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8576,
   "name": "b_2180",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8581,
   "name": "delay",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8583,
   "name": "b_2187",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8585,
   "name": "b_2189",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8595,
   "name": "decode_byte",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8604,
   "name": "decode_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8704,
   "name": "f_2200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8896,
   "name": "f_22C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16384,
   "name": "f_4000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16448,
   "name": "f_4040",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16640,
   "name": "f_4100",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16896,
   "name": "f_4200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17088,
   "name": "f_42C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 24576,
   "name": "f_6000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 25030,
   "name": "f_61C6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 25600,
   "name": "mask_table",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 25856,
   "name": "a_6500",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26112,
   "name": "demo_script0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26176,
   "name": "demo_script1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26240,
   "name": "demo_script2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26304,
   "name": "demo_script3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26368,
   "name": "demo_script4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26432,
   "name": "demo_script5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26496,
   "name": "demo_script6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26560,
   "name": "demo_script7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "save_loader",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26646,
   "name": "b_6816",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26665,
   "name": "random",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26669,
   "name": "a_682D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26672,
   "name": "setup_screens",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26685,
   "name": "b_683D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26696,
   "name": "b_6848",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26707,
   "name": "b_6853",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26710,
   "name": "b_6856",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26741,
   "name": "build_row_tables",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26753,
   "name": "b_6881",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26757,
   "name": "b_6885",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26803,
   "name": "b_68B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26822,
   "name": "clear_status_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26825,
   "name": "b_68C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26841,
   "name": "unused_clear_buffer",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26858,
   "name": "b_68EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26868,
   "name": "b_68F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26874,
   "name": "b_68FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26885,
   "name": "fill_colour_ram",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26899,
   "name": "b_6913",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26910,
   "name": "fill_screens",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26948,
   "name": "b_6944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26957,
   "name": "f_694D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26958,
   "name": "row_addr_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27213,
   "name": "f_6A4D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27214,
   "name": "row_addr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27469,
   "name": "f_6B4D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27470,
   "name": "row_addr_lo_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27725,
   "name": "f_6C4D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27726,
   "name": "row_addr_hi_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27982,
   "name": "draw_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28030,
   "name": "b_6D7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28040,
   "name": "j_6D88",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28049,
   "name": "b_6D91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28056,
   "name": "b_6D98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28063,
   "name": "b_6D9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28069,
   "name": "b_6DA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28070,
   "name": "a_6DA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28071,
   "name": "a_6DA7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28081,
   "name": "a_6DB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28082,
   "name": "a_6DB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28084,
   "name": "a_6DB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28087,
   "name": "a_6DB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28114,
   "name": "b_6DD2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28117,
   "name": "b_6DD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28130,
   "name": "j_6DE2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28174,
   "name": "b_6E0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28195,
   "name": "erase_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28206,
   "name": "b_6E2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28221,
   "name": "b_6E3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28227,
   "name": "b_6E43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28239,
   "name": "j_6E4F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28282,
   "name": "b_6E7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28288,
   "name": "b_6E80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28289,
   "name": "a_6E81",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28290,
   "name": "a_6E82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28317,
   "name": "b_6E9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28320,
   "name": "b_6EA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28333,
   "name": "j_6EAD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28350,
   "name": "b_6EBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28358,
   "name": "r_6EC6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 28359,
   "name": "add_restore_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28396,
   "name": "b_6EEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28411,
   "name": "b_6EFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28443,
   "name": "b_6F1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28455,
   "name": "j_6F27",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28497,
   "name": "build_mask_table",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28499,
   "name": "b_6F53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28506,
   "name": "b_6F5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28521,
   "name": "b_6F69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28522,
   "name": "b_6F6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28526,
   "name": "j_6F6E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28538,
   "name": "load_scene_graphics",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28544,
   "name": "b_6F80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28580,
   "name": "b_6FA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28602,
   "name": "b_6FBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28640,
   "name": "b_6FE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28671,
   "name": "b_6FFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28698,
   "name": "b_701A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28723,
   "name": "b_7033",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28745,
   "name": "scene_shape_blocks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28746,
   "name": "f_704A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28785,
   "name": "unpack_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28803,
   "name": "b_7083",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28813,
   "name": "b_708D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28816,
   "name": "b_7090",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28824,
   "name": "b_7098",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28832,
   "name": "b_70A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28837,
   "name": "b_70A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28848,
   "name": "b_70B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28856,
   "name": "b_70B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28861,
   "name": "r_70BD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 28862,
   "name": "scene_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28990,
   "name": "shared_shapes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29326,
   "name": "s2_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29395,
   "name": "b_72D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29397,
   "name": "b_72D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29459,
   "name": "s2_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29464,
   "name": "b_7318",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29505,
   "name": "b_7341",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29519,
   "name": "b_734F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29558,
   "name": "b_7376",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29561,
   "name": "b_7379",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29579,
   "name": "b_738B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29587,
   "name": "b_7393",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29604,
   "name": "b_73A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29646,
   "name": "b_73CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29718,
   "name": "b_7416",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29726,
   "name": "j_741E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29815,
   "name": "b_7477",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29840,
   "name": "b_7490",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29865,
   "name": "b_74A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29871,
   "name": "j_74AF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29956,
   "name": "s2_spring",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 29975,
   "name": "b_7517",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29978,
   "name": "b_751A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29992,
   "name": "b_7528",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29999,
   "name": "j_752F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30039,
   "name": "b_7557",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30043,
   "name": "b_755B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30045,
   "name": "b_755D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30100,
   "name": "s2_spring_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30101,
   "name": "f_7595",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30108,
   "name": "s2_drip_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30153,
   "name": "b_75C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30163,
   "name": "r_75D3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 30164,
   "name": "s2_weight_box",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30242,
   "name": "b_7622",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30259,
   "name": "r_7633",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 30260,
   "name": "b_7634",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30271,
   "name": "s2_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30323,
   "name": "r_7673",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 30324,
   "name": "s2_lake",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30356,
   "name": "b_7694",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30371,
   "name": "r_76A3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 30372,
   "name": "s2_float",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30409,
   "name": "b_76C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30432,
   "name": "b_76E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30434,
   "name": "b_76E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30444,
   "name": "b_76EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30448,
   "name": "b_76F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30473,
   "name": "b_7709",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30476,
   "name": "b_770C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30478,
   "name": "b_770E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30511,
   "name": "b_772F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30542,
   "name": "s2_key",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30607,
   "name": "b_778F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30634,
   "name": "b_77AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30646,
   "name": "r_77B6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 30647,
   "name": "s2_float_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30648,
   "name": "f_77B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30655,
   "name": "s2_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 30656,
   "name": "a_77C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30657,
   "name": "a_77C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30658,
   "name": "f_77C2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30659,
   "name": "f_77C3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30664,
   "name": "f_77C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30667,
   "name": "f_77CB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30670,
   "name": "f_77CE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30674,
   "name": "a_77D2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30675,
   "name": "f_77D3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30678,
   "name": "f_77D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30681,
   "name": "f_77D9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30685,
   "name": "f_77DD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30689,
   "name": "f_77E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30692,
   "name": "f_77E4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30696,
   "name": "f_77E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30700,
   "name": "f_77EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30703,
   "name": "a_77EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30705,
   "name": "f_77F1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30708,
   "name": "a_77F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30710,
   "name": "f_77F6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30715,
   "name": "a_77FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30717,
   "name": "a_77FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30718,
   "name": "f_77FE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30722,
   "name": "f_7802",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30726,
   "name": "s2_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30727,
   "name": "s2_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30757,
   "name": "s2_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30787,
   "name": "s2_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30817,
   "name": "s2_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30847,
   "name": "s2_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30877,
   "name": "data_789D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30889,
   "name": "data_78A9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30890,
   "name": "s2_rope_height",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30955,
   "name": "s2_rope_lines_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30971,
   "name": "data_78FB",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30989,
   "name": "data_790D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31021,
   "name": "s2_float_shapes_0_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31043,
   "name": "s2_float_shapes_2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31065,
   "name": "ptrs_77C2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31075,
   "name": "ptrs_77C2_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31087,
   "name": "ptrs_77C2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31100,
   "name": "data_797C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31123,
   "name": "data_7993",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31153,
   "name": "shape16_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31160,
   "name": "shape17_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31165,
   "name": "shape18_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31170,
   "name": "shape19_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31175,
   "name": "data_79C7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31215,
   "name": "s2_spring_shapes_0_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31227,
   "name": "s2_spring_shapes_1_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31239,
   "name": "s2_spring_shapes_2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31251,
   "name": "s2_spring_shapes_3_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31263,
   "name": "data_7A1F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31287,
   "name": "s1_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31309,
   "name": "b_7A4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31326,
   "name": "b_7A5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31429,
   "name": "b_7AC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31465,
   "name": "s1_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31487,
   "name": "s1_disable_rect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31494,
   "name": "a_7B06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31495,
   "name": "a_7B07",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31497,
   "name": "fratelli_s1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31509,
   "name": "b_7B15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31545,
   "name": "b_7B39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31551,
   "name": "b_7B3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31588,
   "name": "b_7B64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31603,
   "name": "b_7B73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31606,
   "name": "b_7B76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31611,
   "name": "b_7B7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31618,
   "name": "b_7B82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31672,
   "name": "b_7BB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31683,
   "name": "b_7BC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31687,
   "name": "b_7BC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31689,
   "name": "b_7BC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31710,
   "name": "b_7BDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31730,
   "name": "b_7BF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31732,
   "name": "b_7BF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31734,
   "name": "b_7BF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31736,
   "name": "b_7BF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31745,
   "name": "a_7C01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31746,
   "name": "a_7C02",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31747,
   "name": "a_7C03",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31748,
   "name": "a_7C04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31749,
   "name": "s1_crate",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31773,
   "name": "b_7C1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31818,
   "name": "b_7C4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31851,
   "name": "b_7C6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31904,
   "name": "b_7CA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31937,
   "name": "b_7CC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 31978,
   "name": "s1_crate_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 31979,
   "name": "f_7CEB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31986,
   "name": "a_7CF2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31987,
   "name": "s1_fire",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32049,
   "name": "b_7D31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32056,
   "name": "a_7D38",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32057,
   "name": "s1_fire_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32058,
   "name": "f_7D3A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32065,
   "name": "s1_press",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32097,
   "name": "b_7D61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32112,
   "name": "b_7D70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32141,
   "name": "b_7D8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32145,
   "name": "b_7D91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32161,
   "name": "b_7DA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32163,
   "name": "b_7DA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32166,
   "name": "b_7DA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32187,
   "name": "a_7DBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32188,
   "name": "a_7DBC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32189,
   "name": "s1_new_note",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32221,
   "name": "r_7DDD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 32222,
   "name": "a_7DDE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32223,
   "name": "f_7DDF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32231,
   "name": "f_7DE7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32239,
   "name": "f_7DEF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32247,
   "name": "a_7DF7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32248,
   "name": "s1_notes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32255,
   "name": "b_7DFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32284,
   "name": "b_7E1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32298,
   "name": "b_7E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32305,
   "name": "b_7E31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32323,
   "name": "b_7E43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32339,
   "name": "b_7E53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32349,
   "name": "b_7E5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32354,
   "name": "b_7E62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32363,
   "name": "a_7E6B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32364,
   "name": "s1_tank",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32374,
   "name": "b_7E76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32393,
   "name": "b_7E89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32399,
   "name": "b_7E8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32451,
   "name": "b_7EC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32491,
   "name": "b_7EEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32499,
   "name": "b_7EF3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32534,
   "name": "r_7F16",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 32535,
   "name": "a_7F17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32536,
   "name": "a_7F18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32537,
   "name": "f_7F19",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32542,
   "name": "f_7F1E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32547,
   "name": "a_7F23",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32611,
   "name": "unused_7F63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32777,
   "name": "f_8009",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32778,
   "name": "f_800A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32787,
   "name": "s1_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32834,
   "name": "r_8042",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 32835,
   "name": "s1_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32836,
   "name": "ptrs_8009_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32883,
   "name": "s1_fire_shapes_0_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32899,
   "name": "s1_fire_shapes_1_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32915,
   "name": "s1_fire_shapes_2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32929,
   "name": "s1_fire_shapes_3_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32943,
   "name": "data_80AF",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32957,
   "name": "data_80BD",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32963,
   "name": "data_80C3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32969,
   "name": "s1_crate_shapes_0_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33022,
   "name": "s1_crate_shapes_1_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33075,
   "name": "s1_crate_shapes_2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33128,
   "name": "s1_crate_shapes_3_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33181,
   "name": "ptrs_8009_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33209,
   "name": "ptrs_8009_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33237,
   "name": "ptrs_8009_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33255,
   "name": "ptrs_8009_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33279,
   "name": "data_81FF",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33291,
   "name": "s1_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33315,
   "name": "s1_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33339,
   "name": "s1_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33363,
   "name": "s1_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33387,
   "name": "s1_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33411,
   "name": "disk_error",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33436,
   "name": "b_829C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33461,
   "name": "fill_screens_33",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33483,
   "name": "b_82CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33498,
   "name": "print_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33533,
   "name": "b_82FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33540,
   "name": "b_8304",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33551,
   "name": "b_830F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33565,
   "name": "b_831D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33569,
   "name": "print_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33583,
   "name": "b_832F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33585,
   "name": "b_8331",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33587,
   "name": "a_8333",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33615,
   "name": "r_834F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 33616,
   "name": "font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33912,
   "name": "message_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33913,
   "name": "f_8479",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33948,
   "name": "message_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33949,
   "name": "f_849D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33965,
   "name": "a_84AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33984,
   "name": "messages",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33991,
   "name": "f_84C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33996,
   "name": "a_84CC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33998,
   "name": "f_84CE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34003,
   "name": "a_84D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34011,
   "name": "a_84DB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34069,
   "name": "message16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34079,
   "name": "message_ptrs_17_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34092,
   "name": "add_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34100,
   "name": "b_8534",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34104,
   "name": "b_8538",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34116,
   "name": "b_8544",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34127,
   "name": "update_hiscore",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34129,
   "name": "b_8551",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34141,
   "name": "b_855D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34147,
   "name": "b_8563",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34161,
   "name": "r_8571",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34162,
   "name": "format_scores",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34164,
   "name": "b_8574",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34179,
   "name": "b_8583",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34192,
   "name": "b_8590",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34207,
   "name": "b_859F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34235,
   "name": "walker_type4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34260,
   "name": "b_85D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34266,
   "name": "b_85DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34268,
   "name": "j_85DC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34293,
   "name": "b_85F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34299,
   "name": "b_85FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34301,
   "name": "j_85FD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34303,
   "name": "b_85FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34344,
   "name": "b_8628",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34354,
   "name": "b_8632",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34368,
   "name": "b_8640",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34422,
   "name": "b_8676",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34441,
   "name": "b_8689",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34452,
   "name": "j_8694",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34458,
   "name": "s2_spawn_flier",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34510,
   "name": "r_86CE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34511,
   "name": "spawn_flier",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34520,
   "name": "b_86D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34531,
   "name": "b_86E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34590,
   "name": "r_871E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34591,
   "name": "flier_starts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34599,
   "name": "f_8727",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34607,
   "name": "f_872F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34615,
   "name": "flier_path_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34616,
   "name": "f_8738",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34635,
   "name": "flier_path_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34636,
   "name": "f_874C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34655,
   "name": "flier_next_path",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34665,
   "name": "flier_path0_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34678,
   "name": "flier_path0_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34691,
   "name": "flier_path1_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34702,
   "name": "flier_path1_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34713,
   "name": "flier_path2_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34719,
   "name": "flier_path2_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34725,
   "name": "flier_path3_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34739,
   "name": "flier_path3_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34753,
   "name": "flier_path4_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34769,
   "name": "flier_path4_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34785,
   "name": "flier_path5_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34798,
   "name": "flier_path5_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34811,
   "name": "flier_path6_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34820,
   "name": "flier_path6_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34829,
   "name": "make_random_table",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34849,
   "name": "b_8821",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34851,
   "name": "b_8823",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34870,
   "name": "b_8836",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34884,
   "name": "r_8844",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34885,
   "name": "bird_type9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34890,
   "name": "b_884A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34919,
   "name": "b_8867",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34925,
   "name": "b_886D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34929,
   "name": "j_8871",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34952,
   "name": "b_8888",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34958,
   "name": "b_888E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34960,
   "name": "j_8890",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34962,
   "name": "j_8892",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35006,
   "name": "b_88BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35016,
   "name": "b_88C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35028,
   "name": "b_88D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35040,
   "name": "b_88E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35043,
   "name": "b_88E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35049,
   "name": "b_88E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35098,
   "name": "b_891A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35106,
   "name": "b_8922",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35115,
   "name": "b_892B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35118,
   "name": "s5_spawn_bird",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35167,
   "name": "b_895F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35212,
   "name": "r_898C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35213,
   "name": "bird_paths_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35214,
   "name": "f_898E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35221,
   "name": "f_8995",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35222,
   "name": "f_8996",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35229,
   "name": "bird_path0_x_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35239,
   "name": "bird_path0_y_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35249,
   "name": "bird_path1_x_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35258,
   "name": "bird_path1_y_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35267,
   "name": "bird_path2_x_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35281,
   "name": "bird_path2_y_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35295,
   "name": "bird_path3_x_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35304,
   "name": "bird_path3_y_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35313,
   "name": "flier_path7_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35332,
   "name": "flier_path7_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35351,
   "name": "flier_path8_x",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35361,
   "name": "flier_path8_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35371,
   "name": "flier_path9_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35381,
   "name": "flier_path9_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35391,
   "name": "s3_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35401,
   "name": "b_8A49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35533,
   "name": "s3_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35544,
   "name": "b_8AD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35548,
   "name": "b_8ADC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35558,
   "name": "b_8AE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35562,
   "name": "gunman_type7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35578,
   "name": "b_8AFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35589,
   "name": "b_8B05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35616,
   "name": "b_8B20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35627,
   "name": "b_8B2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35629,
   "name": "b_8B2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35635,
   "name": "b_8B33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35668,
   "name": "b_8B54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35680,
   "name": "b_8B60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35682,
   "name": "b_8B62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35686,
   "name": "b_8B66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35737,
   "name": "b_8B99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35749,
   "name": "s3_draw_gunman",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35762,
   "name": "b_8BB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35773,
   "name": "j_8BBD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35798,
   "name": "f_8BD6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35799,
   "name": "f_8BD7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35806,
   "name": "a_8BDE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35807,
   "name": "a_8BDF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35808,
   "name": "a_8BE0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35809,
   "name": "a_8BE1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35810,
   "name": "a_8BE2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35811,
   "name": "a_8BE3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35812,
   "name": "a_8BE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35813,
   "name": "f_8BE5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35829,
   "name": "a_8BF5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35830,
   "name": "a_8BF6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35831,
   "name": "a_8BF7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35832,
   "name": "f_8BF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35848,
   "name": "f_8C08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35864,
   "name": "s3_shot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35889,
   "name": "b_8C31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35935,
   "name": "b_8C5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35943,
   "name": "b_8C67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35948,
   "name": "b_8C6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35965,
   "name": "b_8C7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35973,
   "name": "b_8C85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35976,
   "name": "r_8C88",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35977,
   "name": "s3_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36028,
   "name": "r_8CBC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36029,
   "name": "s3_acid",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36064,
   "name": "b_8CE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36066,
   "name": "b_8CE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36093,
   "name": "b_8CFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36123,
   "name": "b_8D1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36126,
   "name": "b_8D1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36144,
   "name": "b_8D30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36152,
   "name": "j_8D38",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36211,
   "name": "s3_drop_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36227,
   "name": "b_8D83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36235,
   "name": "j_8D8B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36238,
   "name": "r_8D8E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36239,
   "name": "s3_acid_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36310,
   "name": "s3_acid_kill",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36323,
   "name": "b_8DE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36333,
   "name": "b_8DED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36338,
   "name": "r_8DF2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36339,
   "name": "s3_acid_slide",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36380,
   "name": "b_8E1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36392,
   "name": "b_8E28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36402,
   "name": "f_8E32",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36403,
   "name": "f_8E33",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36414,
   "name": "f_8E3E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36419,
   "name": "f_8E43",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36435,
   "name": "s3_vents",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36442,
   "name": "b_8E5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36471,
   "name": "b_8E77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36506,
   "name": "b_8E9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36508,
   "name": "b_8E9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36536,
   "name": "b_8EB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36575,
   "name": "b_8EDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36615,
   "name": "r_8F07",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36616,
   "name": "s3_valve_wheel",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36641,
   "name": "b_8F21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36657,
   "name": "b_8F31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36661,
   "name": "s3_jet_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36698,
   "name": "b_8F5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36708,
   "name": "b_8F64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36713,
   "name": "r_8F69",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36714,
   "name": "a_8F6A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36715,
   "name": "a_8F6B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36716,
   "name": "f_8F6C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36719,
   "name": "f_8F6F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36722,
   "name": "f_8F72",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36746,
   "name": "f_8F8A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36749,
   "name": "f_8F8D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36752,
   "name": "f_8F90",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36755,
   "name": "f_8F93",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36758,
   "name": "f_8F96",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36762,
   "name": "f_8F9A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36766,
   "name": "f_8F9E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36767,
   "name": "f_8F9F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36774,
   "name": "f_8FA6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36775,
   "name": "f_8FA7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36786,
   "name": "a_8FB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36787,
   "name": "a_8FB3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36788,
   "name": "a_8FB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36789,
   "name": "a_8FB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36790,
   "name": "a_8FB6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36791,
   "name": "a_8FB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36792,
   "name": "f_8FB8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36797,
   "name": "f_8FBD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36802,
   "name": "f_8FC2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36807,
   "name": "f_8FC7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 36812,
   "name": "s3_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36822,
   "name": "s3_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36855,
   "name": "s3_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36888,
   "name": "s3_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36921,
   "name": "s3_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36954,
   "name": "s3_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37205,
   "name": "data_9155",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37247,
   "name": "data_917F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37428,
   "name": "data_9234",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37436,
   "name": "data_923C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37444,
   "name": "data_9244",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37494,
   "name": "data_9276",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37512,
   "name": "data_9288",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37570,
   "name": "data_92C2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37575,
   "name": "start_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37595,
   "name": "b_92DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37603,
   "name": "b_92E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37619,
   "name": "b_92F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37629,
   "name": "b_92FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37631,
   "name": "b_92FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37639,
   "name": "b_9307",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37654,
   "name": "b_9316",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37659,
   "name": "b_931B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37669,
   "name": "b_9325",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37739,
   "name": "b_936B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37758,
   "name": "b_937E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37764,
   "name": "sound_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37789,
   "name": "f_939D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37814,
   "name": "f_93B6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37839,
   "name": "f_93CF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37864,
   "name": "a_93E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37865,
   "name": "f_93E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 37866,
   "name": "a_93EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37867,
   "name": "a_93EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37868,
   "name": "title_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37874,
   "name": "a_93F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37875,
   "name": "title_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37899,
   "name": "r_940B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37900,
   "name": "title_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37906,
   "name": "s7_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37922,
   "name": "b_9422",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37997,
   "name": "b_946D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37999,
   "name": "b_946F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38019,
   "name": "b_9483",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38045,
   "name": "f_949D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38061,
   "name": "s7_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38086,
   "name": "s7_fliers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38110,
   "name": "b_94DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38121,
   "name": "b_94E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38179,
   "name": "b_9523",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38202,
   "name": "b_953A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38206,
   "name": "s7_waterfall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38208,
   "name": "b_9540",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38275,
   "name": "b_9583",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38279,
   "name": "b_9587",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38286,
   "name": "f_958E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38302,
   "name": "f_959E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38318,
   "name": "f_95AE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38319,
   "name": "f_95AF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38330,
   "name": "f_95BA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38331,
   "name": "f_95BB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38342,
   "name": "f_95C6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38343,
   "name": "f_95C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38350,
   "name": "s7_hazard",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38383,
   "name": "b_95EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38391,
   "name": "b_95F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38396,
   "name": "r_95FC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38397,
   "name": "s7_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38441,
   "name": "r_9629",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38442,
   "name": "s7_octopus",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38459,
   "name": "b_963B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38479,
   "name": "b_964F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38522,
   "name": "b_967A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38597,
   "name": "b_96C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38605,
   "name": "b_96CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38610,
   "name": "r_96D2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38611,
   "name": "a_96D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38612,
   "name": "a_96D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38613,
   "name": "a_96D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38614,
   "name": "f_96D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38618,
   "name": "f_96DA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38619,
   "name": "f_96DB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38626,
   "name": "f_96E2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38627,
   "name": "f_96E3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38634,
   "name": "f_96EA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38638,
   "name": "s7_flipper",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38667,
   "name": "b_970B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38680,
   "name": "b_9718",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38710,
   "name": "b_9736",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38715,
   "name": "b_973B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38717,
   "name": "b_973D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38754,
   "name": "b_9762",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38781,
   "name": "b_977D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38786,
   "name": "b_9782",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38814,
   "name": "b_979E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38840,
   "name": "j_97B8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38844,
   "name": "a_97BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38845,
   "name": "a_97BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38846,
   "name": "f_97BE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38848,
   "name": "f_97C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38850,
   "name": "f_97C2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38852,
   "name": "f_97C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38854,
   "name": "f_97C6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38856,
   "name": "f_97C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38858,
   "name": "f_97CA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38860,
   "name": "f_97CC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38862,
   "name": "f_97CE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38863,
   "name": "f_97CF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38866,
   "name": "f_97D2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38867,
   "name": "f_97D3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 38870,
   "name": "s7_crate_rect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38899,
   "name": "b_97F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38928,
   "name": "b_9810",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38940,
   "name": "b_981C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38947,
   "name": "crate_type13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38986,
   "name": "b_984A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39010,
   "name": "b_9862",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39050,
   "name": "b_988A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39074,
   "name": "b_98A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39083,
   "name": "b_98AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39085,
   "name": "b_98AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39097,
   "name": "s7_crate_rects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39099,
   "name": "b_98BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39113,
   "name": "s7_scene_rects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39115,
   "name": "b_98CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39129,
   "name": "a_98D9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39130,
   "name": "f_98DA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39140,
   "name": "f_98E4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39150,
   "name": "s7_current",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39152,
   "name": "b_98F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39178,
   "name": "b_990A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39186,
   "name": "b_9912",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39193,
   "name": "s7_nudge",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39212,
   "name": "b_992C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39215,
   "name": "r_992F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39216,
   "name": "f_9930",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39219,
   "name": "f_9933",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39222,
   "name": "f_9936",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39225,
   "name": "f_9939",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 39228,
   "name": "s7_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39229,
   "name": "s7_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39266,
   "name": "s7_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39303,
   "name": "s7_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39340,
   "name": "s7_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39377,
   "name": "s7_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39414,
   "name": "ptrs_98DA_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39419,
   "name": "ptrs_98DA_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39424,
   "name": "ptrs_98DA_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39429,
   "name": "ptrs_98DA_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39434,
   "name": "ptrs_98DA_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39439,
   "name": "data_9A0F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40115,
   "name": "shape48_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40147,
   "name": "shape48_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40179,
   "name": "shape48_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40211,
   "name": "shape48_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40243,
   "name": "s8_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40306,
   "name": "b_9D72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40363,
   "name": "s8_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40382,
   "name": "s8_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40426,
   "name": "r_9DEA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40427,
   "name": "s8_water",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40447,
   "name": "b_9DFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40470,
   "name": "b_9E16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40475,
   "name": "b_9E1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40519,
   "name": "r_9E47",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40520,
   "name": "mama_sinking_type15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40536,
   "name": "b_9E58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40538,
   "name": "b_9E5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40541,
   "name": "b_9E5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40546,
   "name": "mama_type14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40554,
   "name": "b_9E6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40569,
   "name": "b_9E79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40597,
   "name": "b_9E95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40615,
   "name": "b_9EA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40632,
   "name": "b_9EB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40636,
   "name": "b_9EBC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40638,
   "name": "b_9EBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40676,
   "name": "b_9EE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40689,
   "name": "b_9EF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40694,
   "name": "r_9EF6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40695,
   "name": "b_9EF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40709,
   "name": "f_9F05",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40713,
   "name": "a_9F09",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40714,
   "name": "a_9F0A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40715,
   "name": "s8_chest",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40758,
   "name": "b_9F36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40792,
   "name": "b_9F58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40810,
   "name": "b_9F6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40812,
   "name": "b_9F6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40832,
   "name": "b_9F80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40866,
   "name": "f_9FA2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40867,
   "name": "f_9FA3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40882,
   "name": "a_9FB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40883,
   "name": "s_9FB3",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 40895,
   "name": "b_9FBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40903,
   "name": "b_9FC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40915,
   "name": "s8_spill_coins",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40921,
   "name": "b_9FD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40930,
   "name": "b_9FE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40937,
   "name": "b_9FE9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40946,
   "name": "b_9FF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40969,
   "name": "r_A009",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40970,
   "name": "s8_coins",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40972,
   "name": "b_A00C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41002,
   "name": "b_A02A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41019,
   "name": "b_A03B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41023,
   "name": "f_A03F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41027,
   "name": "f_A043",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41031,
   "name": "a_A047",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41032,
   "name": "a_A048",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41033,
   "name": "s8_lift",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41041,
   "name": "b_A051",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41085,
   "name": "b_A07D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41102,
   "name": "b_A08E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41141,
   "name": "a_A0B5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41142,
   "name": "s8_portholes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41149,
   "name": "b_A0BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41178,
   "name": "b_A0DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41206,
   "name": "b_A0F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41231,
   "name": "b_A10F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41239,
   "name": "b_A117",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41249,
   "name": "s_A121",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 41251,
   "name": "b_A123",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41282,
   "name": "b_A142",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41291,
   "name": "b_A14B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41295,
   "name": "a_A14F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41296,
   "name": "a_A150",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41297,
   "name": "f_A151",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41301,
   "name": "f_A155",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41304,
   "name": "f_A158",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41307,
   "name": "f_A15B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41310,
   "name": "f_A15E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41314,
   "name": "f_A162",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41318,
   "name": "f_A166",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41321,
   "name": "f_A169",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41324,
   "name": "a_A16C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41325,
   "name": "a_A16D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41326,
   "name": "f_A16E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41342,
   "name": "s_A17E",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 41363,
   "name": "b_A193",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41377,
   "name": "r_A1A1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41378,
   "name": "f_A1A2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41381,
   "name": "f_A1A5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41384,
   "name": "s8_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41388,
   "name": "s_A1AC",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 41421,
   "name": "f_A1CD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41425,
   "name": "f_A1D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41426,
   "name": "f_A1D2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 41433,
   "name": "s8_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41486,
   "name": "s8_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41539,
   "name": "s8_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41592,
   "name": "s8_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41645,
   "name": "s8_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41698,
   "name": "data_A2E2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41702,
   "name": "data_A2E6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41713,
   "name": "data_A2F1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41745,
   "name": "shape57_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41804,
   "name": "shape57_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41863,
   "name": "shape57_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41922,
   "name": "shape57_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41981,
   "name": "data_A3FD",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41995,
   "name": "ptrs_9FA2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42033,
   "name": "ptrs_9FA2_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42071,
   "name": "ptrs_9FA2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42109,
   "name": "ptrs_9FA2_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42147,
   "name": "ptrs_9FA2_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42185,
   "name": "ptrs_A1D1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42193,
   "name": "ptrs_A1D1_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42199,
   "name": "ptrs_A1D1_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42209,
   "name": "ending_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42217,
   "name": "b_A4E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42228,
   "name": "ending_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42232,
   "name": "s_A4F8",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 42247,
   "name": "b_A507",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42255,
   "name": "b_A50F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42283,
   "name": "a_A52B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42284,
   "name": "f_A52C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 42285,
   "name": "f_A52D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 42292,
   "name": "ending_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42296,
   "name": "s_A538",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 42335,
   "name": "ending_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42336,
   "name": "ending_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42337,
   "name": "ending_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42338,
   "name": "ending_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42339,
   "name": "ending_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42340,
   "name": "data_A564",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42450,
   "name": "data_A5D2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42578,
   "name": "ptrs_A52C_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42706,
   "name": "ptrs_A52C_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42834,
   "name": "ptrs_A52C_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42962,
   "name": "ptrs_A52C_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43090,
   "name": "shape20_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43134,
   "name": "shape24_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43178,
   "name": "shape27_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43243,
   "name": "shape25_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43287,
   "name": "shape26_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43331,
   "name": "shape26_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43396,
   "name": "shape21_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43440,
   "name": "shape22_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43508,
   "name": "shape23_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43576,
   "name": "shape28_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43616,
   "name": "shape28_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43675,
   "name": "shape29_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43699,
   "name": "shape29_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43723,
   "name": "s1_shape0_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43779,
   "name": "s1_shape1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43835,
   "name": "s1_shape2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43894,
   "name": "s1_shape3_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43953,
   "name": "s1_shape4_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44009,
   "name": "s1_shape5_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44065,
   "name": "s1_shape6_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44121,
   "name": "s1_shape6_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44177,
   "name": "s1_shape7_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44233,
   "name": "s3_shape8_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44289,
   "name": "s3_shape9_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44345,
   "name": "s3_shape10_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44404,
   "name": "s3_shape11_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44463,
   "name": "s3_shape12_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44519,
   "name": "s3_shape13_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44575,
   "name": "s3_shape14_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44631,
   "name": "s3_shape14_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44687,
   "name": "s3_shape15_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44743,
   "name": "s1_shape8_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44781,
   "name": "s1_shape9_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44819,
   "name": "s1_shape10_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44878,
   "name": "s1_shape11_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44937,
   "name": "s1_shape12_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44993,
   "name": "s1_shape15_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45049,
   "name": "s1_shape13_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45087,
   "name": "s1_shape14_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45143,
   "name": "s1_shape14_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45199,
   "name": "s3_shape0_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45237,
   "name": "s3_shape1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45275,
   "name": "s3_shape2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45334,
   "name": "s3_shape3_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45393,
   "name": "s3_shape4_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45449,
   "name": "s3_shape7_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45505,
   "name": "s3_shape5_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45543,
   "name": "s3_shape6_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45599,
   "name": "s3_shape6_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45655,
   "name": "s5_shape0_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45693,
   "name": "s5_shape1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45731,
   "name": "s5_shape2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45790,
   "name": "s5_shape3_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45849,
   "name": "s5_shape4_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45905,
   "name": "s5_shape7_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45961,
   "name": "s5_shape5_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45999,
   "name": "s5_shape6_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46055,
   "name": "s5_shape6_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46111,
   "name": "s4_shape8_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46149,
   "name": "s4_shape9_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46187,
   "name": "s4_shape10_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46246,
   "name": "s4_shape11_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46305,
   "name": "s4_shape12_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46361,
   "name": "s4_shape15_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46417,
   "name": "s4_shape13_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46455,
   "name": "s4_shape14_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46511,
   "name": "s4_shape14_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46567,
   "name": "s4_shape0_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46603,
   "name": "s4_shape1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46639,
   "name": "s4_shape2_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46695,
   "name": "s4_shape3_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46751,
   "name": "s4_shape4_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46804,
   "name": "s4_shape7_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46857,
   "name": "s4_shape5_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46893,
   "name": "s4_shape6_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46946,
   "name": "s4_shape6_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46999,
   "name": "shapes_s1_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47063,
   "name": "shapes_s3_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47127,
   "name": "shapes_s3_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47191,
   "name": "shapes_s5_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47255,
   "name": "shapes_s4_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47319,
   "name": "shapes_s4_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47383,
   "name": "shapes_s1_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47616,
   "name": "music_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47619,
   "name": "s_BA03",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47625,
   "name": "s_BA09",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47628,
   "name": "a_BA0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47629,
   "name": "a_BA0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47630,
   "name": "a_BA0E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47631,
   "name": "a_BA0F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47632,
   "name": "a_BA10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47633,
   "name": "a_BA11",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47634,
   "name": "a_BA12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47635,
   "name": "a_BA13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47636,
   "name": "a_BA14",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47637,
   "name": "a_BA15",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47638,
   "name": "a_BA16",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47639,
   "name": "a_BA17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47640,
   "name": "s_BA18",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47643,
   "name": "s_BA1B",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47649,
   "name": "s_BA21",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47652,
   "name": "a_BA24",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47653,
   "name": "a_BA25",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47654,
   "name": "a_BA26",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47655,
   "name": "a_BA27",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47656,
   "name": "a_BA28",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47657,
   "name": "a_BA29",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47658,
   "name": "a_BA2A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47659,
   "name": "a_BA2B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47660,
   "name": "a_BA2C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47723,
   "name": "start_tune",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47737,
   "name": "tune_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47748,
   "name": "b_BA84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47754,
   "name": "b_BA8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47781,
   "name": "tune_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47789,
   "name": "b_BAAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47805,
   "name": "b_BABD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47814,
   "name": "tune_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47824,
   "name": "b_BAD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47843,
   "name": "b_BAE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47862,
   "name": "b_BAF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47868,
   "name": "b_BAFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47875,
   "name": "b_BB03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47881,
   "name": "b_BB09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47888,
   "name": "b_BB10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47894,
   "name": "r_BB16",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47895,
   "name": "tune_stop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47899,
   "name": "voice_read",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47900,
   "name": "f_BB1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47901,
   "name": "a_BB1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47903,
   "name": "s_BB1F",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47904,
   "name": "a_BB20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47905,
   "name": "a_BB21",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47907,
   "name": "s_BB23",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47908,
   "name": "a_BB24",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47909,
   "name": "a_BB25",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47911,
   "name": "next_byte",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47931,
   "name": "b_BB3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47941,
   "name": "b_BB45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47953,
   "name": "b_BB51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47963,
   "name": "b_BB5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47975,
   "name": "b_BB67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47985,
   "name": "stop_music",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47989,
   "name": "next_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47998,
   "name": "b_BB7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48017,
   "name": "b_BB91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48018,
   "name": "j_BB92",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48024,
   "name": "b_BB98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48027,
   "name": "j_BB9B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48045,
   "name": "b_BBAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48056,
   "name": "b_BBB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48067,
   "name": "b_BBC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48070,
   "name": "set_filter",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48091,
   "name": "play_tune",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48101,
   "name": "r_BBE5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48102,
   "name": "b_BBE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48120,
   "name": "b_BBF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48123,
   "name": "b_BBFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48174,
   "name": "b_BC2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48182,
   "name": "b_BC36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48197,
   "name": "b_BC45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48237,
   "name": "b_BC6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48245,
   "name": "b_BC75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48260,
   "name": "b_BC84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48300,
   "name": "b_BCAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48308,
   "name": "b_BCB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48323,
   "name": "r_BCC3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48324,
   "name": "voice_next",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48348,
   "name": "b_BCDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48391,
   "name": "voice_commands",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48399,
   "name": "b_BD0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48419,
   "name": "b_BD23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48434,
   "name": "b_BD32",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48435,
   "name": "a_BD33",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48436,
   "name": "command_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48457,
   "name": "cmd_length",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48483,
   "name": "cmd_filter",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48499,
   "name": "b_BD73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48508,
   "name": "cmd_misc",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48529,
   "name": "b_BD91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48538,
   "name": "b_BD9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48569,
   "name": "j_BDB9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48579,
   "name": "b_BDC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48589,
   "name": "b_BDCD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48599,
   "name": "f_BDD7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48602,
   "name": "b_BDDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48614,
   "name": "j_BDE6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48617,
   "name": "b_BDE9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48641,
   "name": "r_BE01",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48642,
   "name": "note_length",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48650,
   "name": "b_BE0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48664,
   "name": "b_BE18",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48674,
   "name": "b_BE22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48693,
   "name": "b_BE35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48709,
   "name": "f_BE45",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48741,
   "name": "f_BE65",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48744,
   "name": "f_BE68",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48748,
   "name": "cmd_instrument",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48765,
   "name": "b_BE7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48780,
   "name": "b_BE8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48795,
   "name": "b_BE9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48810,
   "name": "cmd_pulse",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48837,
   "name": "cmd_filter_set",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48894,
   "name": "cmd_tempo",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48905,
   "name": "f_BF09",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48906,
   "name": "a_BF0A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48907,
   "name": "a_BF0B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48908,
   "name": "a_BF0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48909,
   "name": "a_BF0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48910,
   "name": "a_BF0E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48911,
   "name": "a_BF0F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48912,
   "name": "a_BF10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48913,
   "name": "a_BF11",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48914,
   "name": "a_BF12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48915,
   "name": "a_BF13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48916,
   "name": "a_BF14",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48917,
   "name": "a_BF15",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48918,
   "name": "a_BF16",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48919,
   "name": "a_BF17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48920,
   "name": "a_BF18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48921,
   "name": "f_BF19",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48924,
   "name": "f_BF1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48927,
   "name": "a_BF1F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48928,
   "name": "a_BF20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48929,
   "name": "a_BF21",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48930,
   "name": "f_BF22",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48933,
   "name": "f_BF25",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48934,
   "name": "f_BF26",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48935,
   "name": "f_BF27",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48936,
   "name": "f_BF28",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48937,
   "name": "f_BF29",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48938,
   "name": "f_BF2A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48939,
   "name": "f_BF2B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48945,
   "name": "f_BF31",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48951,
   "name": "a_BF37",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48952,
   "name": "a_BF38",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48953,
   "name": "a_BF39",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48954,
   "name": "a_BF3A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48955,
   "name": "a_BF3B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48956,
   "name": "a_BF3C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48958,
   "name": "a_BF3E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48959,
   "name": "a_BF3F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48960,
   "name": "a_BF40",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49006,
   "name": "f_BF6E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49023,
   "name": "a_BF7F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49024,
   "name": "a_BF80",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49025,
   "name": "note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49109,
   "name": "note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "note_freq_hi_c000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49193,
   "name": "a_C029",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49194,
   "name": "a_C02A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49195,
   "name": "a_C02B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49196,
   "name": "f_C02C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49198,
   "name": "f_C02E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49230,
   "name": "f_C04E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49254,
   "name": "tune_stream_c066",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49294,
   "name": "tune_stream_c08e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49600,
   "name": "tune_stream_c1c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49864,
   "name": "tune_stream_c2c8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50888,
   "name": "tune_stream_c6c8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51006,
   "name": "tune_stream_c73e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51292,
   "name": "tune_stream_c85c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51440,
   "name": "effects_init",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 51468,
   "name": "effect_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 51474,
   "name": "effect_stop_voice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51480,
   "name": "b_C918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51486,
   "name": "b_C91E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51489,
   "name": "effects_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 51498,
   "name": "effect_voice1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51503,
   "name": "r_C92F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 51504,
   "name": "b_C930",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51538,
   "name": "b_C952",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51546,
   "name": "j_C95A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51556,
   "name": "b_C964",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51557,
   "name": "a_C965",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51558,
   "name": "effect1_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51582,
   "name": "effect1_note",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51606,
   "name": "effect1_env",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51619,
   "name": "effect1_wave",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51626,
   "name": "effect1_stop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 51646,
   "name": "effect1_pulse",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51659,
   "name": "j_C9CB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51666,
   "name": "j_C9D2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51676,
   "name": "j_C9DC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51689,
   "name": "j_C9E9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51705,
   "name": "j_C9F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51722,
   "name": "j_CA0A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51735,
   "name": "j_CA17",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51749,
   "name": "effect_voice2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51754,
   "name": "r_CA2A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 51755,
   "name": "b_CA2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51789,
   "name": "b_CA4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51797,
   "name": "j_CA55",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51807,
   "name": "b_CA5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51808,
   "name": "a_CA60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51809,
   "name": "effect2_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51833,
   "name": "s_CA79",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 51857,
   "name": "s_CA91",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 51870,
   "name": "s_CA9E",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 51877,
   "name": "j_CAA5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51897,
   "name": "s_CAB9",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 51910,
   "name": "j_CAC6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51917,
   "name": "j_CACD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51927,
   "name": "j_CAD7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51940,
   "name": "j_CAE4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51956,
   "name": "j_CAF4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51973,
   "name": "j_CB05",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 51986,
   "name": "j_CB12",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52000,
   "name": "effect_voice3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 52005,
   "name": "r_CB25",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 52006,
   "name": "b_CB26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52040,
   "name": "b_CB48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52048,
   "name": "j_CB50",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52058,
   "name": "b_CB5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 52059,
   "name": "a_CB5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52060,
   "name": "effect3_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52084,
   "name": "s_CB74",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 52108,
   "name": "s_CB8C",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 52121,
   "name": "s_CB99",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 52128,
   "name": "j_CBA0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52148,
   "name": "s_CBB4",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 52161,
   "name": "j_CBC1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52168,
   "name": "j_CBC8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52178,
   "name": "j_CBD2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52191,
   "name": "j_CBDF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52207,
   "name": "j_CBEF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52224,
   "name": "j_CC00",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52237,
   "name": "j_CC0D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 52251,
   "name": "effect_scripts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52252,
   "name": "f_CC1C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52293,
   "name": "effects_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52317,
   "name": "effect_scripts_0_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52343,
   "name": "effect_scripts_3_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52350,
   "name": "effect_scripts_5_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52393,
   "name": "effect_scripts_6_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52402,
   "name": "effect_scripts_9_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52419,
   "name": "effect_scripts_11_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52430,
   "name": "effect_scripts_12_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52441,
   "name": "effect_scripts_13_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52452,
   "name": "effect_scripts_14_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52476,
   "name": "effect_scripts_15_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52511,
   "name": "effect_scripts_4_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52530,
   "name": "effect_scripts_7_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52547,
   "name": "effect_scripts_2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52700,
   "name": "effect_scripts_16_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52715,
   "name": "effect_scripts_17_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52730,
   "name": "effect_scripts_10_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52748,
   "name": "effect_scripts_18_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52763,
   "name": "effect_scripts_19_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52795,
   "name": "effect_scripts_8_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52882,
   "name": "effect_scripts_1_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52979,
   "name": "effect20_script",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53113,
   "name": "f_CF79",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53145,
   "name": "f_CF99",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57344,
   "name": "s5_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57417,
   "name": "r_E049",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57418,
   "name": "s5_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57437,
   "name": "s5_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57481,
   "name": "r_E089",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57482,
   "name": "s5_egg_pile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57497,
   "name": "b_E099",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57521,
   "name": "a_E0B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57522,
   "name": "f_E0B2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57527,
   "name": "s5_bones",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57538,
   "name": "b_E0C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57544,
   "name": "b_E0C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57549,
   "name": "b_E0CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57609,
   "name": "b_E109",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57619,
   "name": "b_E113",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57624,
   "name": "b_E118",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57628,
   "name": "s_E11C",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 57641,
   "name": "b_E129",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57645,
   "name": "b_E12D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57647,
   "name": "b_E12F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57655,
   "name": "b_E137",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57695,
   "name": "a_E15F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57696,
   "name": "a_E160",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57697,
   "name": "f_E161",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57699,
   "name": "f_E163",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57701,
   "name": "f_E165",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57703,
   "name": "f_E167",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57705,
   "name": "f_E169",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57707,
   "name": "f_E16B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57709,
   "name": "a_E16D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57710,
   "name": "s5_bridge_shapes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57711,
   "name": "f_E16F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57722,
   "name": "s5_tunnels",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57724,
   "name": "b_E17C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57752,
   "name": "b_E198",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57761,
   "name": "b_E1A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57764,
   "name": "s5_spare_bytes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57772,
   "name": "s_E1AC",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 57805,
   "name": "r_E1CD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57806,
   "name": "j_E1CE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 57811,
   "name": "b_E1D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57824,
   "name": "b_E1E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57837,
   "name": "b_E1ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57841,
   "name": "a_E1F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57842,
   "name": "a_E1F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57843,
   "name": "s5_bird_egg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57897,
   "name": "r_E229",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57898,
   "name": "f_E22A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57899,
   "name": "f_E22B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57906,
   "name": "s5_drop_egg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57963,
   "name": "r_E26B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57964,
   "name": "egg_burning_type11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57975,
   "name": "b_E277",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57980,
   "name": "egg_type8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57994,
   "name": "b_E28A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58002,
   "name": "b_E292",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58009,
   "name": "b_E299",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58024,
   "name": "b_E2A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58029,
   "name": "b_E2AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58058,
   "name": "b_E2CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58081,
   "name": "b_E2E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58086,
   "name": "b_E2E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58115,
   "name": "b_E303",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58117,
   "name": "b_E305",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58140,
   "name": "b_E31C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58146,
   "name": "b_E322",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58172,
   "name": "s5_egg_at_pile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58208,
   "name": "b_E360",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58218,
   "name": "r_E36A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58219,
   "name": "s5_egg_in_lava",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58224,
   "name": "b_E370",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58277,
   "name": "b_E3A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58283,
   "name": "s5_egg_tunnels",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58288,
   "name": "b_E3B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58359,
   "name": "b_E3F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58365,
   "name": "s5_rect_eggs",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58367,
   "name": "b_E3FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58381,
   "name": "s5_rect_goonies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58383,
   "name": "b_E40F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58397,
   "name": "f_E41D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58407,
   "name": "f_E427",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58417,
   "name": "hatchling_type10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58430,
   "name": "b_E43E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58465,
   "name": "b_E461",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58471,
   "name": "b_E467",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58475,
   "name": "j_E46B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58498,
   "name": "b_E482",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58504,
   "name": "b_E488",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58506,
   "name": "j_E48A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58508,
   "name": "j_E48C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58548,
   "name": "b_E4B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58558,
   "name": "b_E4BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58563,
   "name": "b_E4C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58575,
   "name": "b_E4CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58594,
   "name": "r_E4E2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58595,
   "name": "b_E4E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58644,
   "name": "b_E514",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58649,
   "name": "b_E519",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58677,
   "name": "f_E535",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58681,
   "name": "s5_hatch",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58701,
   "name": "b_E54D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58708,
   "name": "b_E554",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58727,
   "name": "f_E567",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58731,
   "name": "f_E56B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58735,
   "name": "f_E56F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58739,
   "name": "f_E573",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58740,
   "name": "f_E574",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58747,
   "name": "f_E57B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58748,
   "name": "f_E57C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58755,
   "name": "ptrs_E573_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58766,
   "name": "ptrs_E573_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58777,
   "name": "ptrs_E573_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58781,
   "name": "ptrs_E573_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58785,
   "name": "ptrs_E573_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58805,
   "name": "ptrs_E573_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58825,
   "name": "ptrs_E573_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58829,
   "name": "ptrs_E573_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58833,
   "name": "s5_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58834,
   "name": "f_E5D2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58840,
   "name": "f_E5D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58846,
   "name": "f_E5DE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58852,
   "name": "f_E5E4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58858,
   "name": "f_E5EA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58864,
   "name": "f_E5F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 58870,
   "name": "s5_bridge_shut0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58904,
   "name": "s5_bridge_shut1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58938,
   "name": "s5_bridge_shut2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58972,
   "name": "s5_bridge_open0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59006,
   "name": "s5_bridge_open1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59040,
   "name": "s5_bridge_open2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59074,
   "name": "s5_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59106,
   "name": "s5_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59138,
   "name": "s5_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59170,
   "name": "s5_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59202,
   "name": "s5_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59234,
   "name": "ptrs_E41D_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59251,
   "name": "ptrs_E41D_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59268,
   "name": "ptrs_E41D_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59285,
   "name": "ptrs_E41D_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59302,
   "name": "ptrs_E41D_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59319,
   "name": "shape32_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59391,
   "name": "shape32_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59463,
   "name": "shape32_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59535,
   "name": "shape32_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59607,
   "name": "shape33_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59679,
   "name": "shape33_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59751,
   "name": "shape33_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59823,
   "name": "shape33_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59895,
   "name": "shape34_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59967,
   "name": "shape34_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60039,
   "name": "shape34_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60111,
   "name": "shape34_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60183,
   "name": "shape35_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60255,
   "name": "shape35_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60327,
   "name": "shape35_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60399,
   "name": "shape35_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60471,
   "name": "shape36_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60543,
   "name": "shape36_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60615,
   "name": "shape36_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60687,
   "name": "shape36_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60759,
   "name": "shape37_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60831,
   "name": "shape37_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60903,
   "name": "shape37_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60975,
   "name": "shape37_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61047,
   "name": "shape31_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61063,
   "name": "shape31_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61079,
   "name": "shape31_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61095,
   "name": "shape31_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61111,
   "name": "shape38_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61127,
   "name": "shape38_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61143,
   "name": "shape38_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61159,
   "name": "shape38_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61175,
   "name": "shape39_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61191,
   "name": "shape39_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61207,
   "name": "shape39_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61223,
   "name": "shape39_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61239,
   "name": "shape40_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61262,
   "name": "shape40_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61285,
   "name": "shape40_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61308,
   "name": "shape40_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61331,
   "name": "shape41_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61357,
   "name": "shape41_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61383,
   "name": "shape41_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61409,
   "name": "shape41_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61435,
   "name": "shape42_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61461,
   "name": "shape42_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61487,
   "name": "shape42_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61513,
   "name": "shape42_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61539,
   "name": "s6_start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61620,
   "name": "b_F0B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61645,
   "name": "s6_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61664,
   "name": "s6_bubbles",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61666,
   "name": "b_F0E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61689,
   "name": "b_F0F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61701,
   "name": "b_F105",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61707,
   "name": "b_F10B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61737,
   "name": "f_F129",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61745,
   "name": "f_F131",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61753,
   "name": "f_F139",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61761,
   "name": "s6_exit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61805,
   "name": "r_F16D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 61806,
   "name": "s6_pads",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61808,
   "name": "b_F170",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61838,
   "name": "b_F18E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61846,
   "name": "b_F196",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61851,
   "name": "b_F19B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61878,
   "name": "b_F1B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61892,
   "name": "s_F1C4",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 61901,
   "name": "f_F1CD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61904,
   "name": "f_F1D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61907,
   "name": "f_F1D3",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61910,
   "name": "f_F1D6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61911,
   "name": "f_F1D7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61916,
   "name": "s6_lava_floor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61947,
   "name": "b_F1FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61955,
   "name": "b_F203",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61960,
   "name": "r_F208",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 61961,
   "name": "s6_drips",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61963,
   "name": "b_F20B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62009,
   "name": "b_F239",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62013,
   "name": "drip_type12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62028,
   "name": "b_F24C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62047,
   "name": "b_F25F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62049,
   "name": "b_F261",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62052,
   "name": "b_F264",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62063,
   "name": "b_F26F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62110,
   "name": "b_F29E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62118,
   "name": "b_F2A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62123,
   "name": "b_F2AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62133,
   "name": "b_F2B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62135,
   "name": "b_F2B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62138,
   "name": "b_F2BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62182,
   "name": "b_F2E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62189,
   "name": "b_F2ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62217,
   "name": "b_F309",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62224,
   "name": "f_F310",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62233,
   "name": "f_F319",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62242,
   "name": "f_F322",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62251,
   "name": "s6_door",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62253,
   "name": "b_F32D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62307,
   "name": "b_F363",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62309,
   "name": "b_F365",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62373,
   "name": "b_F3A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62427,
   "name": "b_F3DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62430,
   "name": "s6_passage_hide",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62432,
   "name": "b_F3E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62445,
   "name": "b_F3ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62463,
   "name": "b_F3FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62467,
   "name": "a_F403",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62468,
   "name": "a_F404",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62469,
   "name": "f_F405",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62471,
   "name": "f_F407",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62473,
   "name": "f_F409",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62475,
   "name": "f_F40B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62477,
   "name": "f_F40D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62479,
   "name": "f_F40F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62481,
   "name": "f_F411",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62483,
   "name": "s6_platforms",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62485,
   "name": "b_F415",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62493,
   "name": "b_F41D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62520,
   "name": "b_F438",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62521,
   "name": "a_F439",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62522,
   "name": "a_F43A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62557,
   "name": "b_F45D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62562,
   "name": "s_F462",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 62567,
   "name": "b_F467",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62580,
   "name": "b_F474",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62593,
   "name": "a_F481",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62594,
   "name": "a_F482",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62595,
   "name": "a_F483",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62596,
   "name": "a_F484",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62597,
   "name": "a_F485",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62598,
   "name": "f_F486",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62599,
   "name": "f_F487",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62614,
   "name": "ptrs_F486_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62634,
   "name": "s6_platform_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 62714,
   "name": "ptrs_F486_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62734,
   "name": "ptrs_F486_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62754,
   "name": "ptrs_F486_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62774,
   "name": "f_F536",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62794,
   "name": "f_F54A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62814,
   "name": "f_F55E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62834,
   "name": "f_F572",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62835,
   "name": "f_F573",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62840,
   "name": "ptrs_F572_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62844,
   "name": "ptrs_F572_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62848,
   "name": "ptrs_F572_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62852,
   "name": "s6_late",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62853,
   "name": "s6_rect_kinds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62891,
   "name": "s6_rect_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62929,
   "name": "s6_rect_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62967,
   "name": "s6_rect_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63005,
   "name": "s6_rect_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63043,
   "name": "data_F643",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63085,
   "name": "shape43_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63090,
   "name": "shape44_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63100,
   "name": "shape45_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63110,
   "name": "shape46_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63118,
   "name": "shape47_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63126,
   "name": "data_F696",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63131,
   "name": "demo_random",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63388,
   "name": "demo_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63402,
   "name": "a_F7AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63403,
   "name": "a_F7AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63404,
   "name": "demo_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63413,
   "name": "b_F7B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63439,
   "name": "demo_scripts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63440,
   "name": "f_F7D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63455,
   "name": "demo_read",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63475,
   "name": "b_F7F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63497,
   "name": "b_F809",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63501,
   "name": "a_F80D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63565,
   "name": "dev_source",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65280,
   "name": "unused_FF00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65530,
   "name": "nmi_vector",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65532,
   "name": "reset_vector",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65534,
   "name": "irq_vector",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 0,
   "type": "line",
   "text": "The CPU port's data direction register; the protection check at $0800 jumps here (jmp $0000) if it ever finds the I/O area missing."
  },
  {
   "address": 1,
   "type": "line",
   "text": "The CPU port: $35 normally (RAM at $A000-$BFFF and $E000-$FFFF, I/O in); $34 while the loader is copied under the I/O area."
  },
  {
   "address": 16,
   "type": "line",
   "text": "Pointer to the message being printed by print_message (low byte)."
  },
  {
   "address": 17,
   "type": "line",
   "text": "Pointer to the message being printed (high byte)."
  },
  {
   "address": 18,
   "type": "line",
   "text": "Column for draw_shape and the other drawing routines, in bytes (four pixels each)."
  },
  {
   "address": 19,
   "type": "line",
   "text": "Line for draw_shape and the other drawing routines."
  },
  {
   "address": 21,
   "type": "line",
   "text": "Pointer to the shape being drawn (low byte); also a general pointer."
  },
  {
   "address": 22,
   "type": "line",
   "text": "Pointer to the shape being drawn (high byte)."
  },
  {
   "address": 23,
   "type": "line",
   "text": "Pointer into the bitmap (low byte) for drawing and clearing; also scratch, such as the Goonie number in goonie_active."
  },
  {
   "address": 24,
   "type": "line",
   "text": "Pointer into the bitmap (high byte); also scratch, such as the stick bits being shuffled in read_stick."
  },
  {
   "address": 25,
   "type": "line",
   "text": "Width of the shape being drawn or restored, in bytes."
  },
  {
   "address": 26,
   "type": "line",
   "text": "Lines left to draw or restore."
  },
  {
   "address": 27,
   "type": "line",
   "text": "Pointer to the current record in the sprite save area (low byte)."
  },
  {
   "address": 28,
   "type": "line",
   "text": "Pointer to the current record in the sprite save area (high byte)."
  },
  {
   "address": 29,
   "type": "line",
   "text": "Object table, eleven slots: each object's type (0 empty; the handler from $0AD9). Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 30,
   "type": "line",
   "text": "Slot 1's type (the second Goonie), within the array at $1D."
  },
  {
   "address": 31,
   "type": "line",
   "text": "Slot 2's type (usually the scene creature), within the array at $1D."
  },
  {
   "address": 40,
   "type": "line",
   "text": "Object table, eleven slots: each object's speed across, signed. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 41,
   "type": "line",
   "text": "Slot 1's speed across (the second Goonie), within the array at $28."
  },
  {
   "address": 42,
   "type": "line",
   "text": "Slot 2's speed across (usually the scene creature), within the array at $28."
  },
  {
   "address": 51,
   "type": "line",
   "text": "Object table, eleven slots: each object's speed down, signed. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 52,
   "type": "line",
   "text": "Slot 1's speed down (the second Goonie), within the array at $33."
  },
  {
   "address": 53,
   "type": "line",
   "text": "Slot 2's speed down (usually the scene creature), within the array at $33."
  },
  {
   "address": 62,
   "type": "line",
   "text": "Object table, eleven slots: each object's x, in units of two pixels. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 63,
   "type": "line",
   "text": "Slot 1's x (the second Goonie), within the array at $3E."
  },
  {
   "address": 64,
   "type": "line",
   "text": "Slot 2's x (usually the scene creature), within the array at $3E."
  },
  {
   "address": 73,
   "type": "line",
   "text": "Object table, eleven slots: each object's line. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 74,
   "type": "line",
   "text": "Slot 1's line (the second Goonie), within the array at $49."
  },
  {
   "address": 75,
   "type": "line",
   "text": "Slot 2's line (usually the scene creature), within the array at $49."
  },
  {
   "address": 84,
   "type": "line",
   "text": "Object table, eleven slots: each object's shape number (bit 7 hides it). Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 85,
   "type": "line",
   "text": "Slot 1's shape number (the second Goonie), within the array at $54."
  },
  {
   "address": 86,
   "type": "line",
   "text": "Slot 2's shape number (usually the scene creature), within the array at $54."
  },
  {
   "address": 95,
   "type": "line",
   "text": "Object table, eleven slots: each object's first ladder flag, or a path number for a creature. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 96,
   "type": "line",
   "text": "Slot 1's first ladder flag (the second Goonie), within the array at $5F."
  },
  {
   "address": 97,
   "type": "line",
   "text": "Slot 2's first ladder flag (usually the scene creature), within the array at $5F."
  },
  {
   "address": 106,
   "type": "line",
   "text": "Object table, eleven slots: each object's second ladder flag, or a creature's wait. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 107,
   "type": "line",
   "text": "Slot 1's second ladder flag (the second Goonie), within the array at $6A."
  },
  {
   "address": 108,
   "type": "line",
   "text": "Slot 2's second ladder flag (usually the scene creature), within the array at $6A."
  },
  {
   "address": 117,
   "type": "line",
   "text": "Object table, eleven slots: each object's animation step or countdown. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 118,
   "type": "line",
   "text": "Slot 1's animation step or countdown (the second Goonie), within the array at $75."
  },
  {
   "address": 119,
   "type": "line",
   "text": "Slot 2's animation step or countdown (usually the scene creature), within the array at $75."
  },
  {
   "address": 128,
   "type": "line",
   "text": "Object table, eleven slots: each object's stick bits for this pass (a bit clear means that direction is pushed). Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 129,
   "type": "line",
   "text": "Slot 1's stick bits for this pass (the second Goonie), within the array at $80."
  },
  {
   "address": 130,
   "type": "line",
   "text": "Slot 2's stick bits for this pass (usually the scene creature), within the array at $80."
  },
  {
   "address": 139,
   "type": "line",
   "text": "Object table, eleven slots: each object's step along a path, or a hold count. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 140,
   "type": "line",
   "text": "Slot 1's step along a path (the second Goonie), within the array at $8B."
  },
  {
   "address": 141,
   "type": "line",
   "text": "Slot 2's step along a path (usually the scene creature), within the array at $8B."
  },
  {
   "address": 150,
   "type": "line",
   "text": "Object table, eleven slots: each object's stick bits forced on for one pass. Slot 0 is the first Goonie and slot 1 the second."
  },
  {
   "address": 151,
   "type": "line",
   "text": "Slot 1's stick bits forced on for one pass (the second Goonie), within the array at $96."
  },
  {
   "address": 152,
   "type": "line",
   "text": "Slot 2's stick bits forced on for one pass (usually the scene creature), within the array at $96."
  },
  {
   "address": 161,
   "type": "line",
   "text": "The object move_object is moving (its slot number)."
  },
  {
   "address": 162,
   "type": "line",
   "text": "Scratch for the object routines: the stick bits being built, or a flag."
  },
  {
   "address": 163,
   "type": "line",
   "text": "How many rectangles the collision tests look at."
  },
  {
   "address": 164,
   "type": "line",
   "text": "Pointer to the current rectangle kinds (low byte)."
  },
  {
   "address": 165,
   "type": "line",
   "text": "Pointer to the current rectangle kinds (high byte)."
  },
  {
   "address": 166,
   "type": "line",
   "text": "Pointer to the current rectangles' left edges (low byte)."
  },
  {
   "address": 167,
   "type": "line",
   "text": "Pointer to the left edges (high byte)."
  },
  {
   "address": 168,
   "type": "line",
   "text": "Pointer to the current rectangles' top edges (low byte)."
  },
  {
   "address": 169,
   "type": "line",
   "text": "Pointer to the top edges (high byte)."
  },
  {
   "address": 170,
   "type": "line",
   "text": "Pointer to the current rectangles' right edges (low byte)."
  },
  {
   "address": 171,
   "type": "line",
   "text": "Pointer to the right edges (high byte)."
  },
  {
   "address": 172,
   "type": "line",
   "text": "Pointer to the current rectangles' bottom edges (low byte)."
  },
  {
   "address": 173,
   "type": "line",
   "text": "Pointer to the bottom edges (high byte)."
  },
  {
   "address": 174,
   "type": "line",
   "text": "Vector to the scene's per-pass routine (low byte)."
  },
  {
   "address": 175,
   "type": "line",
   "text": "Vector to the scene's per-pass routine (high byte)."
  },
  {
   "address": 176,
   "type": "line",
   "text": "Vector to the scene's late routine (low byte)."
  },
  {
   "address": 177,
   "type": "line",
   "text": "Vector to the scene's late routine (high byte)."
  },
  {
   "address": 178,
   "type": "line",
   "text": "Vector to the scene's start routine (low byte)."
  },
  {
   "address": 179,
   "type": "line",
   "text": "Vector to the scene's start routine (high byte)."
  },
  {
   "address": 180,
   "type": "line",
   "text": "Pointer to the demo script being played (low byte)."
  },
  {
   "address": 181,
   "type": "line",
   "text": "Pointer to the demo script being played (high byte)."
  },
  {
   "address": 240,
   "type": "line",
   "text": "The byte drive_send is shifting out to the drive."
  },
  {
   "address": 243,
   "type": "line",
   "text": "Where receive_block stores the next byte (low byte)."
  },
  {
   "address": 244,
   "type": "line",
   "text": "Where receive_block stores the next byte (high byte)."
  },
  {
   "address": 245,
   "type": "line",
   "text": "The drive's status byte after a load command, and the delay counter."
  },
  {
   "address": 246,
   "type": "line",
   "text": "Negated length of the block being received (low byte)."
  },
  {
   "address": 247,
   "type": "line",
   "text": "Negated length of the block being received (high byte)."
  },
  {
   "address": 249,
   "type": "line",
   "text": "Voice 1's effect read pointer (low byte)."
  },
  {
   "address": 250,
   "type": "line",
   "text": "Voice 1's effect read pointer (high byte)."
  },
  {
   "address": 251,
   "type": "line",
   "text": "Voice 2's effect read pointer (low byte)."
  },
  {
   "address": 252,
   "type": "line",
   "text": "Voice 2's effect read pointer (high byte)."
  },
  {
   "address": 253,
   "type": "line",
   "text": "Voice 3's effect read pointer (low byte)."
  },
  {
   "address": 254,
   "type": "line",
   "text": "Voice 3's effect read pointer (high byte)."
  },
  {
   "address": 2048,
   "type": "line",
   "text": "The game's first instruction, where the loader hands over. With the I/O chips banked out it copies sixteen bytes from $0AD9 into the RAM under the video chip, then, with them banked in, checks eleven bytes at $CF79 against $CF99 sixteen times over; if they ever agree it jumps to $0000 and the machine crashes. Then it wipes these first 45 bytes and carries on at $083C, so in play this code is gone. A copy-protection or tamper check: the two strings differ in an untouched load."
  },
  {
   "address": 2108,
   "type": "line",
   "text": "Cold start after the check: marks no scene as loaded ($12BB = $FF), sets the first scene of a game to 0 ($12BC), keeps the scene loader safe by copying it under the I/O area (s_6800), clears both sprite-restore counts and the two-player flag, then falls into the attract mode."
  },
  {
   "address": 2135,
   "type": "line",
   "text": "Attract mode (F1 comes here too): five lives, demo playback from the start of its script ($F7AA = 0), demo flag $12B8 set, and the title picture (scene 9) as the scene to show."
  },
  {
   "address": 2152,
   "type": "line",
   "text": "Starts a real game (F7, or fire during the attract mode, comes here): five lives, demo flag off, score cleared (s_1173), and the first scene from $12BC."
  },
  {
   "address": 2179,
   "type": "line",
   "text": "Enters scene $12B9: resets the stack, clears both screen buffers' sprite-restore lists by redrawing with nothing (s_6E23 on each), sets up the scene (s_1098) and runs the scene's own start routine through the vector at $B2. On a cold start it also fills both colour screens (s_82B5). Starts the music and the score display, then runs the main loop from $08D6."
  },
  {
   "address": 2262,
   "type": "line",
   "text": "The main loop, once per four frames. Notes the frame count, reads the controls into $12BF (the joystick in port 1 in a game; the recorded demo through s_F7DF in the attract mode, or \"fire\" on the title), handles the music on or off key, starts a jingle per scene ($09F9), and in the attract mode a press of fire starts a game. Space pauses: while paused only the keyboard is read. Otherwise it turns fire into a one-shot press ($12D0), runs every object's behaviour (s_0A80), waits for the screen flip, erases the sprites drawn two frames ago (s_6E23), runs the scene's per-frame routine (vector $AE), draws every object (s_0AB2), runs the scene's second routine (vector $B0), updates the high score and the score line, then asks the interrupt to show the buffer just drawn and waits until four frames have passed since the loop began."
  },
  {
   "address": 2553,
   "type": "line",
   "text": "Per scene index (0 to 9), the sound start_sound plays when the music is due to restart, 0 for none: sounds 16, 17, 18 and 24 are the four tunes (0 to 3). Index 5 (scene 6) has none, and the ending and the title (indexes 8 and 9) both take sound 16."
  },
  {
   "address": 2563,
   "type": "line",
   "text": "The raster interrupt, at line $FB, once a frame. Counts frames in $12C6, and when the main loop has asked for a flip ($12C8) shows the buffer just drawn: bank 0 with the screen at $0400 and the bitmap at $2000, or bank 1 with the screen at $6000 and the bitmap at $4000. Unless the game is paused it plays the music (s_BA09, s_BA21)."
  },
  {
   "address": 2679,
   "type": "line",
   "text": "Jumps through the vector at $AE: the current scene's per-frame routine, set from the table at $1279."
  },
  {
   "address": 2682,
   "type": "line",
   "text": "Jumps through the vector at $B0: the scene's second per-frame routine, run after the objects are drawn, set from the table at $128D."
  },
  {
   "address": 2685,
   "type": "line",
   "text": "Jumps through the vector at $B2: the scene's start routine, set from the table at $1265."
  },
  {
   "address": 2688,
   "type": "line",
   "text": "Runs every object's behaviour. First counts down five timers at $12D8 (reloaded from $0AAD, so they run every 2nd to 6th call), then for each of the eleven object slots with a type in $1D,x calls the routine the type selects from $0AD9, by writing it into its own JSR at $0AA4."
  },
  {
   "address": 2725,
   "type": "line",
   "text": "The operand of run_objects' JSR, rewritten for each object with its type's handler from object_handlers."
  },
  {
   "address": 2726,
   "type": "line",
   "text": "High byte of run_objects' rewritten JSR operand."
  },
  {
   "address": 2733,
   "type": "line",
   "text": "Reload values of the five countdown timers at $12D8: 1 to 5."
  },
  {
   "address": 2738,
   "type": "line",
   "text": "Draws every object of the eleven slots that has a type and a visible shape (bit 7 of $54,x clear), with s_0C8A."
  },
  {
   "address": 2761,
   "type": "line",
   "text": "Finds the first object slot with no type: returns its index in Y with carry clear, or carry set when all eleven are taken."
  },
  {
   "address": 2777,
   "type": "line",
   "text": "Behaviour routine for each object type, 1 to 15 (entry 0 is not used): the two Goonies, the Fratelli, and each scene's moving things. run_objects calls the one for $1D,x."
  },
  {
   "address": 2778,
   "type": "line",
   "text": "High bytes of the handler addresses, read as $0ADA,y: object_handlers is read a word at a time from $0AD9."
  },
  {
   "address": 2809,
   "type": "line",
   "text": "Behaviour of the Goonie the player controls (type 1). While dying ($12CF) it takes no input. Reads the controls (the demo's in the attract mode, otherwise the stick through read_stick), copies up onto the fire bit so that up jumps, and keeps them in $80,x for move_object; moves it (move_object), picks its animation frame (s_0C36) and plays a splash on landing in water (s_0B98). Then a hidden check (from $0B2D): it reads the CPU port's direction register $00 and returns only if it holds $EF, the value the copy-protected loader leaves there. With any other value (the KERNAL's own is $2F) it moves the Goonie a second time and calls into the middle of the interrupt handler ($0A49), whose pulls and RTI wreck the stack: in a test with $00 set to $2F the game had corrupted the screen within four passes."
  },
  {
   "address": 2861,
   "type": "line",
   "text": "The hidden loader check: LDX #$E3 / LDA $1D,X reads $00 (the index wraps round zero page), and adding $11 gives zero only when $00 holds $EF."
  },
  {
   "address": 2914,
   "type": "line",
   "text": "Behaviour of the other Goonie (type 2). With one player, fire swaps the two Goonies' types so that the other one is controlled (a sound plays); the waiting one gets no controls but still falls and lands. With two players at once it reads port 2 and moves like the first (from $0BA9)."
  },
  {
   "address": 2968,
   "type": "line",
   "text": "Plays sound $0E when the moved object is in water (rectangle kind 6) and not sinking at speed 1."
  },
  {
   "address": 3027,
   "type": "line",
   "text": "Behaviour of a dying Goonie (type 3): counts $12CF up to 16, showing shape $1C then $1D, then takes a life and restarts the scene, or ends the game when none are left."
  },
  {
   "address": 3061,
   "type": "line",
   "text": "Not called from anywhere: a behaviour routine in the style of the others that shows shape 6 plus $8B,x, holds the stick bits clear of input ($1F) and moves the object. Perhaps left from an earlier object type."
  },
  {
   "address": 3076,
   "type": "line",
   "text": "Not called from anywhere: returns carry clear when slot 0 is 8 to 15 units away from object X across (either side) and within $20 lines up or down, carry set otherwise."
  },
  {
   "address": 3126,
   "type": "line",
   "text": "Chooses a Goonie's shape for this pass from what it is doing: walking right or left (two frames each, from bit 1 of its x position), climbing (two frames from bit 2 of y), standing, or swimming in water (two frames); adds the Goonie's own base shape $8B,x."
  },
  {
   "address": 3210,
   "type": "line",
   "text": "Draws object X into the back buffer: looks up its shape ($54,x) in the shape table at $70BE, takes the one of its four pointers that the two low bits of its x choose, and draws that copy at column x/4, line y (s_6D4E). For most shapes the four pointers name one copy, which then moves a byte (eight pixels) at a time; for some they name two copies four pixels apart, or four copies two pixels apart."
  },
  {
   "address": 3261,
   "type": "line",
   "text": "Is object Y inside the box $12CA-$12CD (left, top, right, bottom)? Compares the object's position and its shape's width and height ($0FE3, $101F) with the box. Carry set if they overlap. Keeps X."
  },
  {
   "address": 3324,
   "type": "line",
   "text": "object_in_box's saved X, put back before it returns."
  },
  {
   "address": 3325,
   "type": "line",
   "text": "Moves object X by its velocity ($28,x across, $33,x down) and settles it against the scene's rectangles. First marks which of the eight rectangle kinds the moved object touches ($105B-$1062) and notes its direction and the stick ($80,x) in $1063-$106B; then walls stop it across (s_0F3A, s_0F4B), ladders hold it ($5F,x, $6A,x, centred by s_0F63), a ceiling stops it rising (s_0F7C) and a floor stops it falling (s_0FA5). Gravity adds one to the fall speed up to four, kind 6 slows a fall, and a jump is set up from the stick: $FB upwards with fire, sideways at two."
  },
  {
   "address": 3898,
   "type": "line",
   "text": "A wall of kind 0 stopped the object moving left: puts its left edge on the wall and stops it across."
  },
  {
   "address": 3915,
   "type": "line",
   "text": "A wall of kind 1 stopped the object moving right: puts its right edge against the wall and stops it across."
  },
  {
   "address": 3939,
   "type": "line",
   "text": "Centres the object on the ladder rectangle it holds (kind X), and stops it across."
  },
  {
   "address": 3964,
   "type": "line",
   "text": "The object hit the underside of a rectangle while rising: puts its top on it and stops it rising; on kind 7 with no left or right held it also stops it across."
  },
  {
   "address": 4005,
   "type": "line",
   "text": "The object came down on a floor: stands it on the rectangle's top, ends any fall, lets go of a ladder when it is a ladder top, and lets it walk and jump again; with no left or right held it stops across."
  },
  {
   "address": 4067,
   "type": "line",
   "text": "Width of each shape, in units of two pixels, for collisions. Indexed by shape number."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "shape_widths runs on across $1000: the collision widths of shapes 29 onward."
  },
  {
   "address": 4127,
   "type": "line",
   "text": "Height of each shape in lines, for collisions."
  },
  {
   "address": 4187,
   "type": "line",
   "text": "Collision workspace for move_object: eight flags, one per rectangle kind 0 to 7, set to $FF when the moved object overlaps a rectangle of that kind; then the direction flags (moving down, up, right, left) and the stick (fire, left, right, down, up) at $1063-$106B; the index of the rectangle met for each kind at $107C; and the moved box at $1092-$1095 with the shape's size at $1096."
  },
  {
   "address": 4188,
   "type": "line",
   "text": "move_object's flag for rectangle kind 1: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4189,
   "type": "line",
   "text": "move_object's flag for rectangle kind 2: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4190,
   "type": "line",
   "text": "move_object's flag for rectangle kind 3: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4191,
   "type": "line",
   "text": "move_object's flag for rectangle kind 4: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4192,
   "type": "line",
   "text": "move_object's flag for rectangle kind 5: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4193,
   "type": "line",
   "text": "move_object's flag for rectangle kind 6: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4194,
   "type": "line",
   "text": "move_object's flag for rectangle kind 7: $FF when the moved object overlaps a rectangle of that kind."
  },
  {
   "address": 4195,
   "type": "line",
   "text": "move_object's flag: the object is moving down this pass."
  },
  {
   "address": 4196,
   "type": "line",
   "text": "move_object's flag: the object is moving up."
  },
  {
   "address": 4197,
   "type": "line",
   "text": "move_object's flag: the object is moving right."
  },
  {
   "address": 4198,
   "type": "line",
   "text": "move_object's flag: the object is moving left."
  },
  {
   "address": 4199,
   "type": "line",
   "text": "move_object's flag: fire (jump) is pushed."
  },
  {
   "address": 4200,
   "type": "line",
   "text": "move_object's flag: left is pushed."
  },
  {
   "address": 4201,
   "type": "line",
   "text": "move_object's flag: right is pushed."
  },
  {
   "address": 4202,
   "type": "line",
   "text": "move_object's flag: down is pushed."
  },
  {
   "address": 4203,
   "type": "line",
   "text": "move_object's flag: up is pushed."
  },
  {
   "address": 4220,
   "type": "line",
   "text": "The index of the rectangle met for each kind 0 to 7, as move_object found it, so a scene can tell which one an object touched."
  },
  {
   "address": 4238,
   "type": "line",
   "text": "A working flag of move_object, set at the start of each move ($0D7F) and cleared at $0E45 and $0E94; read at $0EF1."
  },
  {
   "address": 4239,
   "type": "line",
   "text": "move_object's flag: the object stands on something and may walk right; a rolling rock in scene 4 uses it to play its rumble."
  },
  {
   "address": 4240,
   "type": "line",
   "text": "move_object's flag: the object stands on something and may walk left."
  },
  {
   "address": 4241,
   "type": "line",
   "text": "move_object's flag: the object is standing on a floor this pass."
  },
  {
   "address": 4242,
   "type": "line",
   "text": "The moved object's new left edge."
  },
  {
   "address": 4243,
   "type": "line",
   "text": "The moved object's new right edge (left plus the shape's width)."
  },
  {
   "address": 4244,
   "type": "line",
   "text": "The moved object's new top line."
  },
  {
   "address": 4245,
   "type": "line",
   "text": "The moved object's new bottom line (top plus the shape's height)."
  },
  {
   "address": 4246,
   "type": "line",
   "text": "The moved object's shape width, from shape_widths."
  },
  {
   "address": 4247,
   "type": "line",
   "text": "The moved object's shape height, from shape_heights."
  },
  {
   "address": 4248,
   "type": "line",
   "text": "Sets up scene $12B9: interrupts off, display blanked, silence; clears and loads the scene's picture (s_6F7A), points the NMI at an RTI so RESTORE does nothing, clears the object table, builds the row tables and screens (s_6830), clears the game variables, loads the scene's rectangles and vectors (s_1189), installs the raster interrupt at $0A03, clears the keyboard state, and draws the score line, lives and the player indicators."
  },
  {
   "address": 4467,
   "type": "line",
   "text": "Sets the six score digits at $12A7 to zero."
  },
  {
   "address": 4478,
   "type": "line",
   "text": "Clears the 30 game variables from $12C0 up."
  },
  {
   "address": 4489,
   "type": "line",
   "text": "Points zero page at the current scene's data: the five rectangle tables (kind $A4, left $A6, top $A8, right $AA, bottom $AC), the three routine vectors ($B2 start, $AE per frame, $B0 late), and the number of rectangles ($A3, from $11F7)."
  },
  {
   "address": 4583,
   "type": "line",
   "text": "Two tables of eight: a single bit set ($01 to $80), then a single bit clear ($FE to $7F). Kept from a routine that indexes them by a bit number."
  },
  {
   "address": 4599,
   "type": "line",
   "text": "Number of rectangles in each scene's collision map, scenes 0 to 9: 24, 33, 30, 22, 32, 38, 37, 53, then 1 for the title and the attract scene."
  },
  {
   "address": 4609,
   "type": "line",
   "text": "Per scene 0 to 9, where its rectangles' kinds are (copied to $A4). The eight tables of ten words from here to $12A0 are read by load_scene_tables: kinds, left edges ($1215), top edges ($1229), right edges ($123D), bottom edges ($1251), the start routine ($1265), the per-frame routine ($1279) and the late routine ($128D)."
  },
  {
   "address": 4610,
   "type": "line",
   "text": "High bytes of the per-scene pointers to the rectangles' kinds, read as $1202,y."
  },
  {
   "address": 4629,
   "type": "line",
   "text": "Per scene, where its rectangles' left edges are (to $A6), in units of two pixels."
  },
  {
   "address": 4630,
   "type": "line",
   "text": "High bytes of the per-scene pointers to the rectangles' left edges, read as $1216,y."
  },
  {
   "address": 4649,
   "type": "line",
   "text": "Per scene, where its rectangles' top edges are (to $A8), in lines."
  },
  {
   "address": 4650,
   "type": "line",
   "text": "High bytes of the per-scene pointers to the rectangles' top edges, read as $122A,y."
  },
  {
   "address": 4660,
   "type": "line",
   "text": "Only an alias: the voice readers' LDAs hold $1234 until a tune sets them, and that placeholder falls inside this table."
  },
  {
   "address": 4669,
   "type": "line",
   "text": "Per scene, where its rectangles' right edges are (to $AA)."
  },
  {
   "address": 4670,
   "type": "line",
   "text": "High bytes of the per-scene pointers to the rectangles' right edges, read as $123E,y."
  },
  {
   "address": 4689,
   "type": "line",
   "text": "Per scene, where its rectangles' bottom edges are (to $AC)."
  },
  {
   "address": 4690,
   "type": "line",
   "text": "High bytes of the per-scene pointers to the rectangles' bottom edges, read as $1252,y."
  },
  {
   "address": 4709,
   "type": "line",
   "text": "Per scene, its start routine (to the vector $B2), run once when the scene begins."
  },
  {
   "address": 4710,
   "type": "line",
   "text": "High bytes of the per-scene start routine pointers, read as $1266,y."
  },
  {
   "address": 4729,
   "type": "line",
   "text": "Per scene, its per-frame routine (to the vector $AE), run before the objects are drawn."
  },
  {
   "address": 4730,
   "type": "line",
   "text": "High bytes of the per-scene per-pass routine pointers, read as $127A,y."
  },
  {
   "address": 4749,
   "type": "line",
   "text": "Per scene, its late routine (to the vector $B0), run after the objects are drawn; several are a lone RTS."
  },
  {
   "address": 4750,
   "type": "line",
   "text": "High bytes of the per-scene late routine pointers, read as $128E,y."
  },
  {
   "address": 4769,
   "type": "line",
   "text": "Game variables. $12A1-$12A6 the high score and $12A7-$12AC the score, one digit to a byte; $12AF two players at once, $12B0 the two-player option, $12B4 and $12B5 each player's L-key setting, $12B6 music off, $12B7 lives, $12B8 the attract-mode flag, $12B9 the scene, $12BA scene started, $12BB the scene whose picture is loaded ($FF none), $12BC the first scene of a game, $12BD and $12BE how many sprites each buffer has to restore, $12BF this pass's controls."
  },
  {
   "address": 4774,
   "type": "line",
   "text": "The high score's last digit, also tested by format_scores."
  },
  {
   "address": 4775,
   "type": "line",
   "text": "The score: six digits, one to a byte, $12A7 the hundred thousands and $12AC the units."
  },
  {
   "address": 4780,
   "type": "line",
   "text": "The score's units digit, also the end of the score for format_scores."
  },
  {
   "address": 4783,
   "type": "line",
   "text": "Two players at once ($FF) or one (0)."
  },
  {
   "address": 4784,
   "type": "line",
   "text": "The two-player option chosen with F3 on the title."
  },
  {
   "address": 4785,
   "type": "line",
   "text": "Scene 1: the press's first-use points taken."
  },
  {
   "address": 4786,
   "type": "line",
   "text": "Scene 1: the crate's first-push points taken."
  },
  {
   "address": 4787,
   "type": "line",
   "text": "The title's next demonstration scene, stepped and masked to 0-7."
  },
  {
   "address": 4788,
   "type": "line",
   "text": "Player 1's L-key setting: 1 turns the joystick a quarter turn."
  },
  {
   "address": 4789,
   "type": "line",
   "text": "Player 2's L-key setting."
  },
  {
   "address": 4790,
   "type": "line",
   "text": "Music off (S toggles it)."
  },
  {
   "address": 4791,
   "type": "line",
   "text": "Lives left."
  },
  {
   "address": 4792,
   "type": "line",
   "text": "Attract-mode flag: nonzero while the demo plays."
  },
  {
   "address": 4793,
   "type": "line",
   "text": "The current scene (0 to 9)."
  },
  {
   "address": 4794,
   "type": "line",
   "text": "Scene started: zero on a fresh start, nonzero on a restart after a death."
  },
  {
   "address": 4795,
   "type": "line",
   "text": "The scene whose picture is loaded, $FF for none."
  },
  {
   "address": 4796,
   "type": "line",
   "text": "The scene a new game starts at."
  },
  {
   "address": 4797,
   "type": "line",
   "text": "Sprites buffer 0 has to restore."
  },
  {
   "address": 4798,
   "type": "line",
   "text": "Sprites buffer 1 has to restore."
  },
  {
   "address": 4799,
   "type": "line",
   "text": "This pass's controls, from the stick or the demo."
  },
  {
   "address": 4800,
   "type": "line",
   "text": "More game variables: $12C0 a new key was read, $12C1 the key's matrix code, $12C2 the last key (bit 7 shift), $12C3 shift held, $12C5 scan only the game's keys, $12C6 the frame counter, $12C7 the frame the pass began, $12C8 flip request, $12C9 which buffer is drawn into, $12CA-$12CD the box object_in_box tests, $12CE the Goonie last selected, $12CF the death counter, $12D0 fire this pass, $12D1 fire held, $12D2 paused, $12D3 score changed, $12D4 a scene's spawn count, $12D8 the five countdown timers."
  },
  {
   "address": 4801,
   "type": "line",
   "text": "The matrix code of the key just read ($6F none)."
  },
  {
   "address": 4802,
   "type": "line",
   "text": "The last key read (bit 7 shift), to tell a new press from a held one."
  },
  {
   "address": 4803,
   "type": "line",
   "text": "Shift held."
  },
  {
   "address": 4804,
   "type": "line",
   "text": "Scratch for the keyboard scan: the column bits read."
  },
  {
   "address": 4805,
   "type": "line",
   "text": "Scan only the game's eight keys."
  },
  {
   "address": 4806,
   "type": "line",
   "text": "Frame counter, stepped by the interrupt."
  },
  {
   "address": 4807,
   "type": "line",
   "text": "The frame the main loop's pass began."
  },
  {
   "address": 4808,
   "type": "line",
   "text": "Flip request: the main loop sets it and the interrupt shows the buffer just drawn."
  },
  {
   "address": 4809,
   "type": "line",
   "text": "Which buffer is being drawn into (0 or 1)."
  },
  {
   "address": 4810,
   "type": "line",
   "text": "object_in_box's box: left."
  },
  {
   "address": 4811,
   "type": "line",
   "text": "object_in_box's box: top."
  },
  {
   "address": 4812,
   "type": "line",
   "text": "object_in_box's box: right."
  },
  {
   "address": 4813,
   "type": "line",
   "text": "object_in_box's box: bottom."
  },
  {
   "address": 4814,
   "type": "line",
   "text": "The Goonie the player controls (0 or 1)."
  },
  {
   "address": 4815,
   "type": "line",
   "text": "Death counter: nonzero while a Goonie is dying, so only one dies at a time."
  },
  {
   "address": 4816,
   "type": "line",
   "text": "Fire this pass, as a one-shot press."
  },
  {
   "address": 4817,
   "type": "line",
   "text": "Fire held last pass."
  },
  {
   "address": 4818,
   "type": "line",
   "text": "Paused."
  },
  {
   "address": 4819,
   "type": "line",
   "text": "Score changed: redraw the score line."
  },
  {
   "address": 4820,
   "type": "line",
   "text": "How many creatures a scene's spawner has out."
  },
  {
   "address": 4821,
   "type": "line",
   "text": "A bird is out (scene 5)."
  },
  {
   "address": 4822,
   "type": "line",
   "text": "Countdown to the next bird (scene 5)."
  },
  {
   "address": 4823,
   "type": "line",
   "text": "Countdown to the next flier (scene 7)."
  },
  {
   "address": 4824,
   "type": "line",
   "text": "Five countdown timers, stepped by the main loop; the first flickers the acid drop in scene 3."
  },
  {
   "address": 4825,
   "type": "line",
   "text": "The second countdown timer, which slows animations: things step only while it is zero."
  },
  {
   "address": 4826,
   "type": "line",
   "text": "The third countdown timer, which paces the octopus's waving in scene 7."
  },
  {
   "address": 4827,
   "type": "line",
   "text": "The fourth countdown timer: paces the title, scene 2's lift, the octopus, and Mama Fratelli in scene 8."
  },
  {
   "address": 4828,
   "type": "line",
   "text": "The fifth countdown timer (scene 1)."
  },
  {
   "address": 4829,
   "type": "line",
   "text": "Scene 4: bats still to release after the bell."
  },
  {
   "address": 4894,
   "type": "line",
   "text": "Sprite-restore list for buffer 0: a word per sprite drawn, each pointing at a record (bitmap address, width, height, line, then the saved bytes) in the save area from $F900. erase_sprites works back through it."
  },
  {
   "address": 4895,
   "type": "line",
   "text": "Restore list 0, read as words at $131E: the high byte of each entry's record address (read as $131F,y)."
  },
  {
   "address": 4896,
   "type": "line",
   "text": "Restore list 0's first entry, low byte: set to $00 when the list starts afresh, so the first record goes at $F900."
  },
  {
   "address": 4897,
   "type": "line",
   "text": "Restore list 0's first entry, high byte: $F9 when the list starts afresh."
  },
  {
   "address": 4898,
   "type": "line",
   "text": "Restore list 0's later entries, a word each (the record's address in the save area from $F900), written as sprites are drawn; up to $141D."
  },
  {
   "address": 5150,
   "type": "line",
   "text": "Sprite-restore list for buffer 1; its records start at $FC00."
  },
  {
   "address": 5151,
   "type": "line",
   "text": "Restore list 1, read as words at $141E: the high byte of each entry's record address (read as $141F,y)."
  },
  {
   "address": 5152,
   "type": "line",
   "text": "Restore list 1's first entry, low byte: $00 when the list starts afresh, so the first record goes at $FC00."
  },
  {
   "address": 5153,
   "type": "line",
   "text": "Restore list 1's first entry, high byte: $FC when the list starts afresh."
  },
  {
   "address": 5154,
   "type": "line",
   "text": "Restore list 1's later entries, a word each (the record's address in the save area from $FC00), written as sprites are drawn; up to $151D."
  },
  {
   "address": 5406,
   "type": "line",
   "text": "Reads the keyboard when no key is pending ($12C0 clear) and no stick or key holds a line low. Notes shift, then finds the key: with $12C5 set only the eight keys the game uses (s_15E4), otherwise any key (s_15AE). When the key changes it stores it with the shift bit in $12C2 and sets $12C0."
  },
  {
   "address": 5550,
   "type": "line",
   "text": "Scans the whole matrix for a key and returns its matrix code (row times eight plus column) in $12C1, skipping both shift keys, or $FF for none."
  },
  {
   "address": 5604,
   "type": "line",
   "text": "Tests the eight keys the game uses, a row and column pair each from $160C, and returns the key's matrix code from $161C in $12C1, or $6F for none."
  },
  {
   "address": 5644,
   "type": "line",
   "text": "Row select and column bit for each of the game's eight keys, in pairs; then their matrix codes at $161C: F1 ($04), F3 ($05), F5 ($06), F7 ($03), S ($0D), space ($3C), V ($1F) and L ($2A); then the eight row selects at $1624 and the code of each row's first key at $162C for scan_any_key."
  },
  {
   "address": 5660,
   "type": "line",
   "text": "Matrix codes of the game's eight keys: F1 $04, F3 $05, F5 $06, F7 $03, S $0D, space $3C, V $1F and L $2A."
  },
  {
   "address": 5668,
   "type": "line",
   "text": "The eight keyboard row selects for scan_any_key, one bit clear in each."
  },
  {
   "address": 5676,
   "type": "line",
   "text": "The matrix code of each keyboard row's first key, $00 to $38 by eights, for scan_any_key."
  },
  {
   "address": 5684,
   "type": "line",
   "text": "Once a pass: in the attract mode, fire on port 1 starts a game. Reads the keyboard and acts on a new key. With no scene loaded it re-enters the scene. Space pauses or resumes (PAUSED is printed, the music stops), and nothing else is read while paused; F1 goes to the attract mode, F7 starts a new game, V prints the version line \"V 1 BY SES\", F3 on the title switches between one and two players, S turns the music off and on, and L (shift L for player 2) turns that player's joystick a quarter turn (s_172B), showing 1L or 2L."
  },
  {
   "address": 5864,
   "type": "line",
   "text": "Out of lives: blanks the status line five times with a different character ($1726), prints GAME OVER, recolours its line, forgets the loaded scene, waits 180 frames and goes back to the attract mode."
  },
  {
   "address": 5925,
   "type": "line",
   "text": "game_over's step through the five fill characters, counting down."
  },
  {
   "address": 5926,
   "type": "line",
   "text": "The five characters game_over writes into the blank status message in turn."
  },
  {
   "address": 5931,
   "type": "line",
   "text": "Reads the stick for object X: port 1 for the first Goonie, port 2 for the second when two play at once. If that player pressed L, swaps the pairs: up and down come from left and right, left and right from down and up, as for a stick held a quarter turn round. Returns up, down, left, right and fire in bits 0 to 4, as the CIA gives them: clear for pressed."
  },
  {
   "address": 5981,
   "type": "line",
   "text": "Scene 4 (the rolling rocks, scene index 3) start: on a fresh start ($12BA clear) the three planks are back ($1978 = 3), the bell counter is at 6 ($1937) and the first rolling rock is set up in slot 2 (s_1ADB). Both Goonies at x $80 and $8A, line $26, on the top floor, the second one facing left ($8C = 8)."
  },
  {
   "address": 6051,
   "type": "line",
   "text": "Scene 4 each pass. While the bell is ringing ($1928 is clear and $12DD counts down five bats) it releases a bat a pass with the bell sound (7) and closes every floor gap (s_19EB). Then, for each floor (lines $1F, $47 and $6F at x $61), a Goonie standing there opens that floor's gaps under the chain (s_1859, s_185D, s_1861). Then the flap (s_1979), the planks (s_1948), the bell (s_18E9), the floor pieces (s_187A) and the exit (s_181B)."
  },
  {
   "address": 6171,
   "type": "line",
   "text": "The tunnel exit (x $14 to $1C, line $BA): with both Goonies there, scores 1,000, gives three extra lives (at most nine) and goes on to scene index 4."
  },
  {
   "address": 6233,
   "type": "line",
   "text": "Opens the gaps of one floor: copies three rectangle kinds from $1A0D (from entry Y: 0 top floor, 3 middle, 6 bottom) into the rectangles listed at $1A04, turning floor into holes the rocks fall through. Keeps X."
  },
  {
   "address": 6237,
   "type": "line",
   "text": "Middle floor's gaps (entry 3)."
  },
  {
   "address": 6241,
   "type": "line",
   "text": "Bottom floor's gaps (entry 6)."
  },
  {
   "address": 6266,
   "type": "line",
   "text": "Draws the nine floor pieces of the gaps: piece Y is drawn at column $18BC,y, line $18C5,y with shape $18D7,y when its rectangle's kind (through $1A04) agrees in the top bit with $18B3,y, so each piece shows only while it is shut, or open, as the table says."
  },
  {
   "address": 6322,
   "type": "line",
   "text": "Scene 4: the floor piece s_187A is drawing, counting down from 8."
  },
  {
   "address": 6323,
   "type": "line",
   "text": "Scene 4: for each of the nine floor pieces, the top bit its rectangle's kind must have for the piece to be drawn ($80 drawn while the gap is shut, $00 while it is open)."
  },
  {
   "address": 6332,
   "type": "line",
   "text": "Scene 4: the nine floor pieces' columns."
  },
  {
   "address": 6341,
   "type": "line",
   "text": "Scene 4: the nine floor pieces' lines."
  },
  {
   "address": 6350,
   "type": "line",
   "text": "Scene 4: which of the nine floor pieces are drawn at all (1) or skipped (0)."
  },
  {
   "address": 6359,
   "type": "line",
   "text": "Scene 4: the nine floor pieces' shapes, a word each (the two shapes $1C8C and $1C92)."
  },
  {
   "address": 6360,
   "type": "line",
   "text": "Scene 4: high bytes of the floor pieces' shape words, read as $18D8,y."
  },
  {
   "address": 6377,
   "type": "line",
   "text": "The bell. When its counter $1937 reaches 7 it rings: six passes of ringing ($1928), the counter back to 0 and five bats to release ($12DD). Draws the bell at stage $1937 (columns $1938, lines $1940, shapes from $1929)."
  },
  {
   "address": 6440,
   "type": "line",
   "text": "Scene 4: passes the bell has left to ring, counted down from 6; zero when it is quiet."
  },
  {
   "address": 6441,
   "type": "line",
   "text": "Scene 4: the bell's eight shapes, a word for each stage of $1937 (low bytes read as $1929,y)."
  },
  {
   "address": 6442,
   "type": "line",
   "text": "Scene 4: high bytes of the bell's shape words, read as $192A,y."
  },
  {
   "address": 6455,
   "type": "line",
   "text": "Scene 4: the bell's stage, 0 to 7; each rock that goes the wrong way adds one, and at 7 it rings."
  },
  {
   "address": 6456,
   "type": "line",
   "text": "Scene 4: the bell's column at each of its eight stages, so it swings."
  },
  {
   "address": 6464,
   "type": "line",
   "text": "Scene 4: the bell's line at each of its eight stages."
  },
  {
   "address": 6472,
   "type": "line",
   "text": "Draws the planks still across the lower-left tunnel ($1978 of them, column 5, lines from $1975). While any is left, rectangle $1B59 is a wall (kind 3); with none, it is out of use ($83) and the tunnel is open."
  },
  {
   "address": 6517,
   "type": "line",
   "text": "Scene 4: the lines of the three planks across the lower-left tunnel ($A9, $B1, $B9), drawn at column 5."
  },
  {
   "address": 6520,
   "type": "line",
   "text": "Scene 4: planks still across the tunnel, 3 on a fresh start."
  },
  {
   "address": 6521,
   "type": "line",
   "text": "The skid in the cellar: a Goonie on it (x $58, lines $AE to $BC) swings the flap ($19DA = 1), which sends rolling rocks the other way; off it, the flap swings back. Draws the skid and the flap in the matching position (shapes from $19DF and $19E3)."
  },
  {
   "address": 6618,
   "type": "line",
   "text": "Scene 4: the flap's position, 1 while a Goonie stands on the skid."
  },
  {
   "address": 6619,
   "type": "line",
   "text": "Scene 4: the skid's line in each position."
  },
  {
   "address": 6621,
   "type": "line",
   "text": "Scene 4: the skid's column in each position."
  },
  {
   "address": 6623,
   "type": "line",
   "text": "Scene 4: the skid's shape in each position (low bytes, read as $19DF,y)."
  },
  {
   "address": 6624,
   "type": "line",
   "text": "Scene 4: high bytes of the skid's shape words."
  },
  {
   "address": 6627,
   "type": "line",
   "text": "Scene 4: the flap's shape in each position (low bytes, read as $19E3,y)."
  },
  {
   "address": 6628,
   "type": "line",
   "text": "Scene 4: high bytes of the flap's shape words."
  },
  {
   "address": 6631,
   "type": "line",
   "text": "Scene 4: the flap's column in each position."
  },
  {
   "address": 6633,
   "type": "line",
   "text": "Scene 4: the flap's line in each position."
  },
  {
   "address": 6635,
   "type": "line",
   "text": "Closes every floor gap: copies the nine rectangle kinds from $1A16 into the rectangles listed at $1A04. Keeps X."
  },
  {
   "address": 6660,
   "type": "line",
   "text": "Scene 4: the nine rectangles that make the floor gaps, three to a floor (top $12, $15, $16; middle $13, $17, $18; bottom $14, $19, $1A)."
  },
  {
   "address": 6669,
   "type": "line",
   "text": "Scene 4: the kinds a floor's three gap rectangles take when a Goonie opens it ($04, $00, $01)."
  },
  {
   "address": 6678,
   "type": "line",
   "text": "Scene 4: the kinds every gap rectangle takes when the gaps close (the top bit set means not in use)."
  },
  {
   "address": 6687,
   "type": "line",
   "text": "Behaviour of a type-6 object, a rolling rock. Swaps in the scene's rock rectangles (s_1AFC), steers by what it is over (s_1A41), moves (move_object) and swaps the Goonies' rectangles back (s_1B0C); plays the rolling sound ($16) while it is on a floor and pushed left or right ($1090 with $1068, or $108F with $1069)."
  },
  {
   "address": 6721,
   "type": "line",
   "text": "Steers a rock. On the flap (x $43 to $4C, lines $A3 to $AC) it rolls left ($19) or right ($15) by the flap's position. Otherwise it looks for the first of rectangles $15 to $20 it touches: $15 to $1E give its direction from $1B1C (rectangles $15 to $1A only while their kind's top bit is clear, that is while the floor there is open); rectangle $1F is the lever by the planks: while any plank remains it removes one and scores 35 points; rectangle $20 is a wrong way out, which brings the bell a step nearer ringing ($1937). After either the rock starts again at the top (s_1ADB)."
  },
  {
   "address": 6875,
   "type": "line",
   "text": "Puts object X back at the top as a fresh rolling rock: x $90, line $12, rolling left ($19), still, shape $1E, type 6."
  },
  {
   "address": 6908,
   "type": "line",
   "text": "Points the rectangle tables ($A4-$AD) at the rocks' set ($1B34) and the count at $17, so the gaps' rectangles count for rocks."
  },
  {
   "address": 6924,
   "type": "line",
   "text": "Points the rectangle tables back at the Goonies' set ($1B3E), $16 rectangles."
  },
  {
   "address": 6940,
   "type": "line",
   "text": "Scene 4: the stick bits a rock takes on each of rectangles $15 to $20 (a clear bit is pushed): $15 rolls right, $19 rolls left, $1F stops pushing."
  },
  {
   "address": 6952,
   "type": "line",
   "text": "Scene 4: for rectangles $15 to $20, whether the rock starts again at the top after touching it ($FF for $1F and $20)."
  },
  {
   "address": 6964,
   "type": "line",
   "text": "Scene 4: the rocks' rectangle set, five pointers (kinds $1BB7, left $1BD8, top $1BF9, right $1C1A, bottom $1C3B); s4_rect_rocks sets the count to 23 ($1B07)."
  },
  {
   "address": 6974,
   "type": "line",
   "text": "Scene 4: the Goonies' rectangle set, five pointers (kinds $1B49, left $1B5F, top $1B75, right $1B8B, bottom $1BA1), 22 rectangles."
  },
  {
   "address": 6984,
   "type": "line",
   "text": "Scene 4's late routine: nothing."
  },
  {
   "address": 6985,
   "type": "line",
   "text": "Scene 4, the Goonies' rectangles: their kinds (a set top bit means not in use)."
  },
  {
   "address": 7001,
   "type": "line",
   "text": "Scene 4: kind of the Goonies' rectangle $10, the planks across the tunnel: a wall (3) while any plank is left, $83 once they are gone."
  },
  {
   "address": 7007,
   "type": "line",
   "text": "Scene 4, the Goonies' rectangles: left edges, in units of two pixels."
  },
  {
   "address": 7029,
   "type": "line",
   "text": "Scene 4, the Goonies' rectangles: top lines."
  },
  {
   "address": 7051,
   "type": "line",
   "text": "Scene 4, the Goonies' rectangles: right edges."
  },
  {
   "address": 7073,
   "type": "line",
   "text": "Scene 4, the Goonies' rectangles: bottom lines."
  },
  {
   "address": 7095,
   "type": "line",
   "text": "Scene 4, the rocks' rectangles: their kinds. Entries $12 to $1A are the floor gaps the Goonies open; $15 to $20 also steer the rocks."
  },
  {
   "address": 7128,
   "type": "line",
   "text": "Scene 4, the rocks' rectangles: left edges."
  },
  {
   "address": 7161,
   "type": "line",
   "text": "Scene 4, the rocks' rectangles: top lines."
  },
  {
   "address": 7194,
   "type": "line",
   "text": "Scene 4, the rocks' rectangles: right edges."
  },
  {
   "address": 7227,
   "type": "line",
   "text": "Scene 4, the rocks' rectangles: bottom lines."
  },
  {
   "address": 7260,
   "type": "line",
   "text": "Shape: 2 bytes wide by 5 lines, then the bytes; shared shape 30 copy 0."
  },
  {
   "address": 7272,
   "type": "line",
   "text": "Shape: 2 bytes wide by 5 lines, then the bytes; shared shape 30 copy 1."
  },
  {
   "address": 7284,
   "type": "line",
   "text": "Shape: 2 bytes wide by 5 lines, then the bytes; shared shape 30 copy 2."
  },
  {
   "address": 7296,
   "type": "line",
   "text": "Shape: 2 bytes wide by 5 lines, then the bytes; shared shape 30 copy 3."
  },
  {
   "address": 7406,
   "type": "line",
   "text": "Shape or data that s4_planks points $15/$16 at ($1959): 3 bytes wide by 2 lines, if a shape."
  },
  {
   "address": 7592,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 49 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7636,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 50 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7680,
   "type": "line",
   "text": "Shape: 3 bytes wide by 22 lines, then the bytes; shared shape 51 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7748,
   "type": "line",
   "text": "Shape: 3 bytes wide by 22 lines, then the bytes; shared shape 52 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7816,
   "type": "line",
   "text": "Shape: 3 bytes wide by 21 lines, then the bytes; shared shape 53 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7881,
   "type": "line",
   "text": "Shape: 3 bytes wide by 21 lines, then the bytes; shared shape 56 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7946,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 54 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 7990,
   "type": "line",
   "text": "Shape: 3 bytes wide by 21 lines, then the bytes; shared shape 55 copies 0, 1."
  },
  {
   "address": 8055,
   "type": "line",
   "text": "Shape: 3 bytes wide by 21 lines, then the bytes; shared shape 55 copies 2, 3."
  },
  {
   "address": 8192,
   "type": "line",
   "text": "The scene loader, which runs here only while a picture loads: the rest of the time this 2 KB is kept under the I/O area at $D800 and the space is screen. Sends the byte in A to the drive-side program, one bit at a time over the serial bus's clock and data lines, ten bits with the handshake on the ATN line."
  },
  {
   "address": 8239,
   "type": "line",
   "text": "Receives a byte from the drive-side program, two bits at a time from the clock and data lines in four reads, with a handshake before and after."
  },
  {
   "address": 8256,
   "type": "line",
   "text": "Inside drive_receive, but also the address clear_status_rows writes to: in play these bytes are buffer 0's bitmap, where the status rows go, and the loader is only copied back here while a picture loads."
  },
  {
   "address": 8308,
   "type": "line",
   "text": "Receives a block of data into the buffer at ($F3), counting $F6/$F7 (the negated length) up to zero."
  },
  {
   "address": 8377,
   "type": "line",
   "text": "Prepares for a transfer: saves the flags and the interrupt mask, blanks the screen and waits a little if it was on, and saves the video bank bits of $DD00 so the serial lines can be driven."
  },
  {
   "address": 8422,
   "type": "line",
   "text": "Restores the video bank bits, the screen and the flags saved by loader_begin."
  },
  {
   "address": 8443,
   "type": "line",
   "text": "loader_begin's saved processor flags."
  },
  {
   "address": 8444,
   "type": "line",
   "text": "loader_begin's saved $D011 (screen on or off)."
  },
  {
   "address": 8445,
   "type": "line",
   "text": "loader_begin's saved video bank bits from $DD00."
  },
  {
   "address": 8446,
   "type": "line",
   "text": "Waits for the drive to signal on the data line that it is ready, then raises ATN."
  },
  {
   "address": 8448,
   "type": "line",
   "text": "Inside drive_ready, and the second page load_scene_graphics clears: the loader is copied back over it from $D800 before a load."
  },
  {
   "address": 8470,
   "type": "line",
   "text": "Ends a transfer step: waits for the clock line, then pulses the lines and waits for the drive to release."
  },
  {
   "address": 8498,
   "type": "line",
   "text": "Loads scene A's picture from disk: sends command $69 and the scene number, then repeats command $78 for each block: a status byte (non-zero is a disk error, carry set), then the block's length as two bytes decoded through $219C, then the data into $4140 onwards. A length of zero ends the load, carry clear."
  },
  {
   "address": 8581,
   "type": "line",
   "text": "Waits A times about 141 times five cycles."
  },
  {
   "address": 8595,
   "type": "line",
   "text": "Decodes a received byte: exclusive-or with the entry of $219C chosen by its own low four bits."
  },
  {
   "address": 8604,
   "type": "line",
   "text": "Sixteen values for decode_byte, one for each low nibble."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "The mask table build_mask_table fills: for each byte value, the mask that keeps the background where the byte's two-bit pixels are clear. draw_shape reads it through the operands it rewrites."
  },
  {
   "address": 26112,
   "type": "line",
   "text": "Scene 1's demo script: pairs of (stick value, passes to hold it), the stick value active low as $DC00 gives it ($1F nothing, $17 right, $1B left, $1E up, $1D down, $0F fire, $16 up and right). 64 bytes."
  },
  {
   "address": 26176,
   "type": "line",
   "text": "Scene 3's demo script (scene index 1, the pipes), pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26240,
   "type": "line",
   "text": "Scene 2's demo script (scene index 2, the lake), pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26304,
   "type": "line",
   "text": "Scene 4's demo script, pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26368,
   "type": "line",
   "text": "Scene 5's demo script, pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26432,
   "type": "line",
   "text": "Scene 6's demo script, pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26496,
   "type": "line",
   "text": "Scene 7's demo script, pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26560,
   "type": "line",
   "text": "Scene 8's demo script, pairs of (stick value, passes), 64 bytes."
  },
  {
   "address": 26624,
   "type": "line",
   "text": "Copies the scene loader from $2000-$27FF into the RAM under the I/O area at $D800, with the I/O banked out, before the screens are drawn over it."
  },
  {
   "address": 26665,
   "type": "line",
   "text": "Returns the next byte of the random table at $6500, stepping its own operand's low byte ($682D)."
  },
  {
   "address": 26669,
   "type": "line",
   "text": "The low byte of random's LDA $6500 operand, stepped on every call so each call reads the next of the table's 256 bytes."
  },
  {
   "address": 26672,
   "type": "line",
   "text": "Clears the border and background to black, builds the bitmap row tables (s_6875), compares eight bytes at the address $A151 names with themselves (always equal), clears the top character row of both bitmaps, fills the colour RAM and both screens with the scene's colours (s_6905, s_691E), sets multicolour mode and builds the sprite mask table (s_6F51)."
  },
  {
   "address": 26741,
   "type": "line",
   "text": "Builds the start address of every pixel line of the bitmap at $2140, eight lines to a character row, 24 rows: low bytes at $694E, high bytes at $6A4E. Then copies them for the second bitmap at $4140 to $6B4E and $6C4E."
  },
  {
   "address": 26822,
   "type": "line",
   "text": "Clears the first two character rows ($2000-$213F and $4000-$413F) of both bitmaps, where the score line goes."
  },
  {
   "address": 26841,
   "type": "line",
   "text": "Not called from anywhere: clears $1E pages of the buffer being drawn ($12C9) from the start of its first bitmap row."
  },
  {
   "address": 26885,
   "type": "line",
   "text": "Fills the colour RAM at $D800 with 1 (white), the third colour of every multicolour cell."
  },
  {
   "address": 26910,
   "type": "line",
   "text": "Fills both screens ($0400, $6000) with $26 (red and blue), then their top three rows with $3C for the status line."
  },
  {
   "address": 26957,
   "type": "line",
   "text": "build_row_tables' end (an RTS) and, as $694D,y with Y from 1, where its first table's entries start being written."
  },
  {
   "address": 26958,
   "type": "line",
   "text": "Low byte of each bitmap line's address in buffer 0, built by build_row_tables; $6A4E the high bytes, then the same for buffer 1 at $6B4E and $6C4E."
  },
  {
   "address": 27213,
   "type": "line",
   "text": "The last byte of row_addr_lo's page, addressed as $6A4D,y by build_row_tables."
  },
  {
   "address": 27214,
   "type": "line",
   "text": "High byte of each bitmap line's address in buffer 0, built by build_row_tables."
  },
  {
   "address": 27469,
   "type": "line",
   "text": "The last byte of row_addr_hi's page, addressed as $6B4D,y by build_row_tables."
  },
  {
   "address": 27470,
   "type": "line",
   "text": "Low byte of each bitmap line's address in buffer 1, built by build_row_tables."
  },
  {
   "address": 27725,
   "type": "line",
   "text": "The last byte of row_addr_lo_1's page, addressed as $6C4D,y by build_row_tables."
  },
  {
   "address": 27726,
   "type": "line",
   "text": "High byte of each bitmap line's address in buffer 1, built by build_row_tables."
  },
  {
   "address": 27982,
   "type": "line",
   "text": "Draws a shape into the back buffer at column $12, line $13: ($15) points at its width in bytes and height in lines, then the bytes, column by column within each line. Each byte is masked into the bitmap through the table at $6400 (clearing the pixels the shape colours) and ORed in, with the operands of the masking instructions rewritten per byte. Before drawing it records the area in the buffer's restore list (s_6EC7) and saves the bytes it covers into that list's save area."
  },
  {
   "address": 28070,
   "type": "line",
   "text": "The operand of draw_shape's LDA $FFFF,X, rewritten each call ($6D60, $6D67) to point at the shape's bytes, two past its width and height."
  },
  {
   "address": 28071,
   "type": "line",
   "text": "High byte of draw_shape's rewritten shape-data operand."
  },
  {
   "address": 28081,
   "type": "line",
   "text": "The operand of draw_shape's store into the save area, set by s_6EC7 ($6F46, $6F4D) to the new record's bytes, five past its start, so the background under the shape is saved as it is drawn."
  },
  {
   "address": 28082,
   "type": "line",
   "text": "High byte of the save-area store operand."
  },
  {
   "address": 28084,
   "type": "line",
   "text": "The low byte of the AND mask_table operand, rewritten with each shape byte ($6DA8) so the AND picks that byte's mask."
  },
  {
   "address": 28087,
   "type": "line",
   "text": "The operand of the ORA immediate, rewritten with each shape byte ($6DAB) so the shape's pixels are merged in."
  },
  {
   "address": 28195,
   "type": "line",
   "text": "Restores the back buffer: walks its restore list from the last entry down, copying each saved block back into the bitmap, until the buffer's count ($12BD or $12BE) reaches zero."
  },
  {
   "address": 28289,
   "type": "line",
   "text": "The operand of erase_sprites' LDA $FFFF,X, rewritten for each record ($6E6E, $6E75) to point at its saved bytes, five past the record's start."
  },
  {
   "address": 28290,
   "type": "line",
   "text": "High byte of erase_sprites' rewritten save-area operand."
  },
  {
   "address": 28359,
   "type": "line",
   "text": "Adds an entry to the back buffer's restore list: the first goes at $F900 (buffer 0) or $FC00 (buffer 1), each next one after the last one's saved bytes. Writes the bitmap address, width, height and line, and leaves the address for the saved bytes in draw_shape's operands."
  },
  {
   "address": 28497,
   "type": "line",
   "text": "Builds the 256-byte mask table at $6400: for every byte value, a mask with both bits of each two-bit pixel clear where the pixel is coloured and set where it is background, so draw_shape keeps the picture behind a shape's transparent pixels."
  },
  {
   "address": 28538,
   "type": "line",
   "text": "Clears the score rows and the first part of both bitmaps. If the scene's picture is not already loaded: copies the loader back from $D800 to $2000, copies the scene's two blocks of shape pointers (from $7049) to $70BE, loads the picture into $4140 (load_scene_picture; DISK ERROR on a failure), unpacks it into the bitmap at $2140 (s_7071) and copies it to the second bitmap, then notes the scene as loaded."
  },
  {
   "address": 28745,
   "type": "line",
   "text": "Per scene 0 to 9, two pointers to 64-byte blocks of shape pointers ($B797-$B996), copied to $70BE and $70FE when the scene loads: the frames of the scene's two Goonies, seven different children in all."
  },
  {
   "address": 28746,
   "type": "line",
   "text": "High bytes of the scene shape-block pointers, read as $704A,y."
  },
  {
   "address": 28785,
   "type": "line",
   "text": "Unpacks a picture from $4140 into the bitmap at $2140: a count byte with bit 7 set repeats the next byte (count and $7F) times, a count below $80 copies that many bytes, and zero ends it."
  },
  {
   "address": 28862,
   "type": "line",
   "text": "The shape table's first sixteen entries, shapes 0 to 15: the scene's two Goonies, eight frames each (goonie_frame adds the frame to the base shape, 0 or 8). Eight bytes a shape, four pointers chosen by the two low bits of x (often all the same copy), copied in from the scene's two blocks ($7049) when it loads. draw_object finds shape n at $70BE + 8n."
  },
  {
   "address": 28990,
   "type": "line",
   "text": "The shape table from shape 16 to 57: eight bytes a shape, four pointers chosen by the two low bits of x, for the creatures, the people and the things every scene shares, and the second Goonie of scene 8 (49-56). Fifteen have four copies two pixels apart, four have two, the rest one. Unlike shapes 0-15 ($70BE), these never change."
  },
  {
   "address": 29326,
   "type": "line",
   "text": "Scene 2 (the cavern lake, scene index 2) start: both Goonies at the left of the top ledge, nothing moving. On a fresh start (not a restart after a death) the key is back in place ($77C1) and the three weights hang at their start heights ($77FE); the lift at the right is at the top ($77FB = $4A), the float at x $6F, rectangles $13 and $15 out of use until their objects are placed, and the flier's timer at $60."
  },
  {
   "address": 29459,
   "type": "line",
   "text": "Scene 2 each pass: animates the three water spouts (four frames, $77CE), moves the three weights that drop onto the top ledge and rise again ($77EC: down three lines a pass to $27, a thud, then up a line a pass; each weight's rectangle moves with it, s_75D4), the drips that fall from them (s_759C), draws them and their ropes, works the lift at the right (a Goonie on it, x $81 to $8C, rides it down a line a pass to $6C with a creak; empty it climbs back), then the float (s_76A4), the key (s_774E), the exit (s_763F), the lake (s_7674), the spring (s_7504) and the flier (s_869A)."
  },
  {
   "address": 29956,
   "type": "line",
   "text": "The spring on the floor below the lake: a Goonie standing on it (x $39, lines $B4 to $BF) holds it down to $48 with a twang; free, it rises a line a pass to $58. Its rectangle follows it, and it is drawn in one of four heights from $7594."
  },
  {
   "address": 30100,
   "type": "line",
   "text": "The spring's four shapes, by height."
  },
  {
   "address": 30101,
   "type": "line",
   "text": "High bytes of scene 2's spring frame words, read with Y one on from the low bytes."
  },
  {
   "address": 30108,
   "type": "line",
   "text": "Kills a Goonie that a weight's drip X touches (a box four units across and four lines high)."
  },
  {
   "address": 30164,
   "type": "line",
   "text": "Moves weight X's rectangle (two entries from $7802) to its new height and kills a Goonie under it while it is falling."
  },
  {
   "address": 30271,
   "type": "line",
   "text": "The exit at the lower left (x $0D, lines $A0 to $B0): once the key is taken ($77C1), both Goonies there score 1,000 and go on to scene index 1."
  },
  {
   "address": 30324,
   "type": "line",
   "text": "The lake's surface (x $28 to $75, line $7D): a Goonie who touches it dies."
  },
  {
   "address": 30372,
   "type": "line",
   "text": "The float on the lake (x $77BF, $27 to $70, at line $75): a Goonie walking into it pushes it the other way at his own speed, so it can be ridden across; it is a rectangle (entry $15), bobs a line up and down every other pass, and is drawn from the four shifted copies at $77B7."
  },
  {
   "address": 30542,
   "type": "line",
   "text": "The key, drawn at column 9, line $4F, blinking: a Goonie who reaches it (x $23 to $29, line $4F) scores 200 and takes it ($77C1). Until then the door at the lower left (column 2, line $A2) is drawn shut."
  },
  {
   "address": 30647,
   "type": "line",
   "text": "The float's shapes, four words picked by the low two bits of its x: two shapes, the first for x AND 3 of 0 and 1, the second for 2 and 3."
  },
  {
   "address": 30648,
   "type": "line",
   "text": "High bytes of scene 2's float frame words, read with Y one on from the low bytes."
  },
  {
   "address": 30655,
   "type": "line",
   "text": "Scene 2's variables: the float's x, the key taken, the flier's timer ($77C0), the spout frames and positions ($77C2-$77D2), the weights' drip offsets, columns and heights ($77D3-$77EB), their positions and directions ($77EC-$77F5), wait counters ($77F6), the lift's line ($77FB), and each weight's rectangle number ($7802)."
  },
  {
   "address": 30656,
   "type": "line",
   "text": "Scene 2: the flier's countdown, reloaded with $40."
  },
  {
   "address": 30657,
   "type": "line",
   "text": "Scene 2: the key has been taken."
  },
  {
   "address": 30658,
   "type": "line",
   "text": "Scene 2: the water spouts' three frames, a word each (low bytes read as $77C2,y), shown in the order $77CE gives."
  },
  {
   "address": 30659,
   "type": "line",
   "text": "Scene 2: high bytes of the spouts' frame words."
  },
  {
   "address": 30664,
   "type": "line",
   "text": "Scene 2: the three spouts' columns."
  },
  {
   "address": 30667,
   "type": "line",
   "text": "Scene 2: the three spouts' lines."
  },
  {
   "address": 30670,
   "type": "line",
   "text": "Scene 2: the order the spouts run through their three frames: 0, 1, 2, 1."
  },
  {
   "address": 30674,
   "type": "line",
   "text": "Scene 2: the spouts' frame counter."
  },
  {
   "address": 30675,
   "type": "line",
   "text": "Scene 2: for each weight, how far its drip's rope starts below the drip's line, for the rope's length."
  },
  {
   "address": 30678,
   "type": "line",
   "text": "Scene 2: for each weight, the line its drip's rope is drawn from."
  },
  {
   "address": 30681,
   "type": "line",
   "text": "Scene 2: for each weight and the spring, how far its rope starts below its line, for the rope's length."
  },
  {
   "address": 30685,
   "type": "line",
   "text": "Scene 2: for each weight and the spring, the line its rope is drawn from."
  },
  {
   "address": 30689,
   "type": "line",
   "text": "Scene 2: the three drips' columns."
  },
  {
   "address": 30692,
   "type": "line",
   "text": "Scene 2: the three drips' lines, $80 less the weight's height."
  },
  {
   "address": 30696,
   "type": "line",
   "text": "Scene 2: the columns of the three weights and the spring."
  },
  {
   "address": 30700,
   "type": "line",
   "text": "Scene 2: the lines of the three weights (falling to $27, rising to $19) and, fourth, the spring."
  },
  {
   "address": 30703,
   "type": "line",
   "text": "Scene 2: the spring's line ($77EC's fourth entry), $48 to $58; fliers wait until it is below $50."
  },
  {
   "address": 30705,
   "type": "line",
   "text": "Scene 2: each weight's direction, $FF while it rises; the fourth entry is the spring's."
  },
  {
   "address": 30708,
   "type": "line",
   "text": "Scene 2: the spring's direction ($77F1's fourth entry)."
  },
  {
   "address": 30710,
   "type": "line",
   "text": "Scene 2: each weight's wait before it drops again."
  },
  {
   "address": 30715,
   "type": "line",
   "text": "Scene 2: the lift's line, $4A at the top to $6C at the bottom."
  },
  {
   "address": 30717,
   "type": "line",
   "text": "Scene 2: the key's blink counter, 0 to $0A."
  },
  {
   "address": 30718,
   "type": "line",
   "text": "Scene 2: each weight's starting wait."
  },
  {
   "address": 30722,
   "type": "line",
   "text": "Scene 2: the first of each weight's two rectangles."
  },
  {
   "address": 30726,
   "type": "line",
   "text": "Scene 2's late routine: nothing."
  },
  {
   "address": 30727,
   "type": "line",
   "text": "Scene 2's rectangle kinds: 30 bytes, one per rectangle (pointer at $1205)."
  },
  {
   "address": 30757,
   "type": "line",
   "text": "Scene 2's rectangle left edges: 30 bytes, one per rectangle (pointer at $1219)."
  },
  {
   "address": 30787,
   "type": "line",
   "text": "Scene 2's rectangle top edges: 30 bytes, one per rectangle (pointer at $122D)."
  },
  {
   "address": 30817,
   "type": "line",
   "text": "Scene 2's rectangle right edges: 30 bytes, one per rectangle (pointer at $1241)."
  },
  {
   "address": 30847,
   "type": "line",
   "text": "Scene 2's rectangle bottom edges: 30 bytes, one per rectangle (pointer at $1255)."
  },
  {
   "address": 30877,
   "type": "line",
   "text": "Shape or data that s2_key points $15/$16 at ($779E): 2 bytes wide by 5 lines, if a shape."
  },
  {
   "address": 30889,
   "type": "line",
   "text": "Shape or data that s2_frame points $15/$16 at ($73BE): 1 bytes wide by 80 lines, if a shape."
  },
  {
   "address": 30890,
   "type": "line",
   "text": "Scene 2: the rope shape's height byte (the shape at $78A9), rewritten before each rope is drawn so the rope reaches its weight. The rope's 80 one-byte lines follow, to $78FA."
  },
  {
   "address": 30955,
   "type": "line",
   "text": "Scene 2: the rope shape's last 16 lines, to $78FA (the shape starts at $78A9, 80 lines of one byte)."
  },
  {
   "address": 30971,
   "type": "line",
   "text": "Shape or data that s2_frame points $15/$16 at ($7416): 2 bytes wide by 8 lines, if a shape."
  },
  {
   "address": 30989,
   "type": "line",
   "text": "Shape or data that s2_frame points $15/$16 at ($74E6): 2 bytes wide by 15 lines, if a shape."
  },
  {
   "address": 31021,
   "type": "line",
   "text": "Entry 0 of s2_float_shapes ($77B7) points here. The float for x AND 3 of 0 and 1. A shape 2 bytes wide by 10 lines."
  },
  {
   "address": 31043,
   "type": "line",
   "text": "Entry 2 of s2_float_shapes ($77B7) points here. The float for x AND 3 of 2 and 3. A shape 2 bytes wide by 10 lines."
  },
  {
   "address": 31065,
   "type": "line",
   "text": "Entry 0 of f_77C2 ($77C2) points here. Scene 2: the water spouts' three frames, a word each (low bytes read as $77C2,y), shown in the order $77CE gives."
  },
  {
   "address": 31075,
   "type": "line",
   "text": "Entry 1 of f_77C2 ($77C2) points here. Scene 2: the water spouts' three frames, a word each (low bytes read as $77C2,y), shown in the order $77CE gives."
  },
  {
   "address": 31087,
   "type": "line",
   "text": "Entry 2 of f_77C2 ($77C2) points here. Scene 2: the water spouts' three frames, a word each (low bytes read as $77C2,y), shown in the order $77CE gives."
  },
  {
   "address": 31100,
   "type": "line",
   "text": "Shape or data that s2_frame points $15/$16 at ($73FB): 1 bytes wide by 21 lines, if a shape."
  },
  {
   "address": 31123,
   "type": "line",
   "text": "Shape or data that s2_frame points $15/$16 at ($740B): 2 bytes wide by 14 lines, if a shape."
  },
  {
   "address": 31153,
   "type": "line",
   "text": "Shape: 1 bytes wide by 5 lines, then the bytes; shared shape 16 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 31160,
   "type": "line",
   "text": "Shape: 1 bytes wide by 3 lines, then the bytes; shared shape 17 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 31165,
   "type": "line",
   "text": "Shape: 1 bytes wide by 3 lines, then the bytes; shared shape 18 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 31170,
   "type": "line",
   "text": "Shape: 1 bytes wide by 3 lines, then the bytes; shared shape 19 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 31175,
   "type": "line",
   "text": "Shape or data that s2_frame points $15/$16 at ($73CE): 2 bytes wide by 19 lines, if a shape."
  },
  {
   "address": 31215,
   "type": "line",
   "text": "Entry 0 of s2_spring_shapes ($7594) points here. The spring's four shapes, by height. A shape 1 bytes wide by 10 lines."
  },
  {
   "address": 31227,
   "type": "line",
   "text": "Entry 1 of s2_spring_shapes ($7594) points here. The spring's four shapes, by height. A shape 1 bytes wide by 10 lines."
  },
  {
   "address": 31239,
   "type": "line",
   "text": "Entry 2 of s2_spring_shapes ($7594) points here. The spring's four shapes, by height. A shape 1 bytes wide by 10 lines."
  },
  {
   "address": 31251,
   "type": "line",
   "text": "Entry 3 of s2_spring_shapes ($7594) points here. The spring's four shapes, by height. A shape 1 bytes wide by 10 lines."
  },
  {
   "address": 31263,
   "type": "line",
   "text": "Shape or data that s2_key points $15/$16 at ($775B): 1 bytes wide by 22 lines, if a shape."
  },
  {
   "address": 31287,
   "type": "line",
   "text": "Scene 1 (the Fratellis' hideout) start. A restart after a death keeps the water tank where it was if it had begun to tip; otherwise everything is new: tank upright, fire burning, no points taken yet ($12B1, $12B2). Places the two Goonies (types 1 and 2) at the left on the top floor and Mama Fratelli (type 5) at x $72, line $8C; clears every object's motion, the eight falling banknotes, the press, and sets her patrol target $7C01 to $72 and her timer to $A0."
  },
  {
   "address": 31465,
   "type": "line",
   "text": "Scene 1 each pass: keeps rectangle $17 disabled, draws the fire (s_7CF3), works the money press (s_7D41), moves the banknotes (s_7DF8), the water tank (s_7E6C), the pushable crate (s_7C05), and checks the exit (s_8013)."
  },
  {
   "address": 31487,
   "type": "line",
   "text": "Sets rectangle $17's kind to $81, which no collision test matches: the rectangle is out of use for the whole scene."
  },
  {
   "address": 31494,
   "type": "line",
   "text": "Scene 1: a byte the start routine clears ($7AE5); nothing reads it."
  },
  {
   "address": 31495,
   "type": "line",
   "text": "Scene 1: another byte the start routine clears ($7A55); nothing reads it."
  },
  {
   "address": 31497,
   "type": "line",
   "text": "Mama Fratelli in scene 1 (type 5). While banknotes are falling she heads for them ($8A). Otherwise she looks for a Goonie on her floor (a band from $08 to $9F across, a few lines round her) and walks towards the one she sees; when she touches a Goonie it dies. With nobody in sight she paces between $68 and $78 and every so often (a random wait of $40 to $BF passes) sets off to $38 and back. Shows the facing frame, or her surprised frames $18 and $19 when a Goonie gets past $86 or a note lands."
  },
  {
   "address": 31745,
   "type": "line",
   "text": "Scene 1: Mama Fratelli's patrol target, the x she walks to ($72, or $38 when she turns back)."
  },
  {
   "address": 31746,
   "type": "line",
   "text": "Scene 1: Mama Fratelli's patrol timer, reloaded at random with $40 to $BF passes."
  },
  {
   "address": 31747,
   "type": "line",
   "text": "Scene 1: how long Mama Fratelli waits at her stop."
  },
  {
   "address": 31748,
   "type": "line",
   "text": "Scene 1: banknotes that have reached Mama Fratelli's floor this pass."
  },
  {
   "address": 31749,
   "type": "line",
   "text": "The crate the Goonies push along the top floor ($7CF2, $20 to $78): the first push scores 200. A Goonie walking into either side moves it by his own speed; with two players, either Goonie. It is a rectangle of the scene ($A6, $AA entry 0), so it can be stood on, and is drawn at line $42 from the four shifted copies at $7CEA."
  },
  {
   "address": 31978,
   "type": "line",
   "text": "The crate's four pre-shifted shapes."
  },
  {
   "address": 31979,
   "type": "line",
   "text": "High bytes of the crate's pre-shifted shape words, read with Y one on from the low bytes."
  },
  {
   "address": 31986,
   "type": "line",
   "text": "Scene 1: the crate's x, $20 to $78."
  },
  {
   "address": 31987,
   "type": "line",
   "text": "Draws the fire in the fireplace, cycling four frames ($7D39), and keeps rectangle $14 (the fire) dangerous (kind $80 marks it unused when the fire is out). Once the tank has tipped ($7F18) the fire is out and the rectangle becomes floor (kind 4)."
  },
  {
   "address": 32056,
   "type": "line",
   "text": "Scene 1: the fire's frame counter."
  },
  {
   "address": 32057,
   "type": "line",
   "text": "The four frames of the fire."
  },
  {
   "address": 32058,
   "type": "line",
   "text": "High bytes of the fire's frame words, read with Y one on from the low bytes."
  },
  {
   "address": 32065,
   "type": "line",
   "text": "The money press: a Goonie standing on its handle (x $76 to $80, line $20) works it. The first time scores 100 and plays sound 2. Each pass the press's plate ($7DBC) moves a line, down to $1C and back up to $12; at the bottom it prints a banknote (s_7DBD). Draws the plate at column $1E."
  },
  {
   "address": 32187,
   "type": "line",
   "text": "Scene 1: the money press's direction: $FF while the plate rises."
  },
  {
   "address": 32188,
   "type": "line",
   "text": "Scene 1: the money press plate's line, $12 to $1C."
  },
  {
   "address": 32189,
   "type": "line",
   "text": "Starts a banknote in the next of eight slots ($7DDF), at line $1A and column $21."
  },
  {
   "address": 32222,
   "type": "line",
   "text": "Scene 1: the banknote slot used last, 0 to 7."
  },
  {
   "address": 32223,
   "type": "line",
   "text": "Scene 1: for each of the eight banknotes, whether it is falling."
  },
  {
   "address": 32231,
   "type": "line",
   "text": "Scene 1: the eight banknotes' lines."
  },
  {
   "address": 32239,
   "type": "line",
   "text": "Scene 1: the eight banknotes' columns."
  },
  {
   "address": 32247,
   "type": "line",
   "text": "Scene 1: banknotes that have passed line $62 this pass, which draws Mama Fratelli to them."
  },
  {
   "address": 32248,
   "type": "line",
   "text": "Moves the falling banknotes two lines a pass down to the floor ($7E6B, $9A, or $8C while Mama is distracted); counts in $7DF7 the ones that have passed line $62, which is what draws Mama Fratelli to them, and in $7C04 those that have reached her floor. Draws each with a fluttering frame."
  },
  {
   "address": 32363,
   "type": "line",
   "text": "Scene 1: the line the banknotes fall to: $9A, or $8C while Mama is distracted."
  },
  {
   "address": 32364,
   "type": "line",
   "text": "The water tank above the fire. Every third pass: a Goonie jumping into it from below (x $17 to $19, lines $83 to $9A, rising) scores 100 and tips it a step; once moving it carries on by itself, five frames ($8009, drawn at $7F19, $7F1E), and when it has tipped over sound 1 plays and the fire is out ($7F18)."
  },
  {
   "address": 32535,
   "type": "line",
   "text": "Scene 1: the water tank's tipping step, 0 (upright) to 5."
  },
  {
   "address": 32536,
   "type": "line",
   "text": "Scene 1: the water tank has tipped and the fire is out."
  },
  {
   "address": 32537,
   "type": "line",
   "text": "Scene 1: the tank's column at each of its five steps."
  },
  {
   "address": 32542,
   "type": "line",
   "text": "Scene 1: the tank's line at each of its five steps."
  },
  {
   "address": 32547,
   "type": "line",
   "text": "Scene 1: counts passes so the tank is tested every third one."
  },
  {
   "address": 32611,
   "type": "line",
   "text": "166 bytes nothing reaches: no instruction can index here (opcodes.py --refs) and no pointer holds an address in the stretch. Probably left over from the build."
  },
  {
   "address": 32777,
   "type": "line",
   "text": "Scene 1: the tank's five shapes, a word each (low bytes read as $8009,y)."
  },
  {
   "address": 32778,
   "type": "line",
   "text": "Scene 1: high bytes of the tank's shape words."
  },
  {
   "address": 32787,
   "type": "line",
   "text": "The exit to scene 2, behind the fireplace (x $90, lines $A0 to $BF): when both Goonies stand in it, scores 1,000 and enters scene 2."
  },
  {
   "address": 32835,
   "type": "line",
   "text": "Scene 1's late routine: nothing."
  },
  {
   "address": 32836,
   "type": "line",
   "text": "Entry 4 of f_8009 ($8009) points here. Scene 1: the tank's five shapes, a word each (low bytes read as $8009,y). A shape 3 bytes wide by 15 lines."
  },
  {
   "address": 32883,
   "type": "line",
   "text": "Entry 0 of s1_fire_shapes ($7D39) points here. The four frames of the fire."
  },
  {
   "address": 32899,
   "type": "line",
   "text": "Entry 1 of s1_fire_shapes ($7D39) points here. The four frames of the fire."
  },
  {
   "address": 32915,
   "type": "line",
   "text": "Entry 2 of s1_fire_shapes ($7D39) points here. The four frames of the fire."
  },
  {
   "address": 32929,
   "type": "line",
   "text": "Entry 3 of s1_fire_shapes ($7D39) points here. The four frames of the fire."
  },
  {
   "address": 32943,
   "type": "line",
   "text": "Shape or data that s1_press points $15/$16 at ($7DAA): 2 bytes wide by 6 lines, if a shape."
  },
  {
   "address": 32957,
   "type": "line",
   "text": "Shape or data that s1_notes points $15/$16 at ($7E53): 1 bytes wide by 4 lines, if a shape."
  },
  {
   "address": 32963,
   "type": "line",
   "text": "Shape or data that s1_notes points $15/$16 at ($7E37): 1 bytes wide by 4 lines, if a shape."
  },
  {
   "address": 32969,
   "type": "line",
   "text": "Entry 0 of s1_crate_shapes ($7CEA) points here. The crate's four pre-shifted shapes. A shape 3 bytes wide by 17 lines."
  },
  {
   "address": 33022,
   "type": "line",
   "text": "Entry 1 of s1_crate_shapes ($7CEA) points here. The crate's four pre-shifted shapes. A shape 3 bytes wide by 17 lines."
  },
  {
   "address": 33075,
   "type": "line",
   "text": "Entry 2 of s1_crate_shapes ($7CEA) points here. The crate's four pre-shifted shapes. A shape 3 bytes wide by 17 lines."
  },
  {
   "address": 33128,
   "type": "line",
   "text": "Entry 3 of s1_crate_shapes ($7CEA) points here. The crate's four pre-shifted shapes. A shape 3 bytes wide by 17 lines."
  },
  {
   "address": 33181,
   "type": "line",
   "text": "Entry 0 of f_8009 ($8009) points here. Scene 1: the tank's five shapes, a word each (low bytes read as $8009,y). A shape 2 bytes wide by 13 lines."
  },
  {
   "address": 33209,
   "type": "line",
   "text": "Entry 1 of f_8009 ($8009) points here. Scene 1: the tank's five shapes, a word each (low bytes read as $8009,y). A shape 2 bytes wide by 13 lines."
  },
  {
   "address": 33237,
   "type": "line",
   "text": "Entry 2 of f_8009 ($8009) points here. Scene 1: the tank's five shapes, a word each (low bytes read as $8009,y). A shape 2 bytes wide by 8 lines."
  },
  {
   "address": 33255,
   "type": "line",
   "text": "Entry 3 of f_8009 ($8009) points here. Scene 1: the tank's five shapes, a word each (low bytes read as $8009,y). A shape 2 bytes wide by 11 lines."
  },
  {
   "address": 33279,
   "type": "line",
   "text": "Shape or data that s1_fire points $15/$16 at ($7D00): 2 bytes wide by 5 lines, if a shape."
  },
  {
   "address": 33291,
   "type": "line",
   "text": "Scene 1's rectangle kinds: 24 bytes, one per rectangle (pointer at $1201)."
  },
  {
   "address": 33315,
   "type": "line",
   "text": "Scene 1's rectangle left edges: 24 bytes, one per rectangle (pointer at $1215)."
  },
  {
   "address": 33339,
   "type": "line",
   "text": "Scene 1's rectangle top edges: 24 bytes, one per rectangle (pointer at $1229)."
  },
  {
   "address": 33363,
   "type": "line",
   "text": "Scene 1's rectangle right edges: 24 bytes, one per rectangle (pointer at $123D)."
  },
  {
   "address": 33387,
   "type": "line",
   "text": "Scene 1's rectangle bottom edges: 24 bytes, one per rectangle (pointer at $1251)."
  },
  {
   "address": 33411,
   "type": "line",
   "text": "Shown when a scene's picture fails to load: clears both bitmaps below the score rows ($2140-$3FFF and $4140-$5FFF), empties both restore lists and prints DISK ERROR and PRESS ANY KEY. Returns to load_scene_graphics' caller with no picture loaded ($12BB = $FF), so the scene is tried again."
  },
  {
   "address": 33461,
   "type": "line",
   "text": "Fills both screen matrices ($0400 and $6000, four pages each) with $33, the bitmap's two colours for every cell."
  },
  {
   "address": 33498,
   "type": "line",
   "text": "Prints message A: looks up its text ($8478) and its place ($849C), works out the bitmap address in buffer 0 and the same place in buffer 1 ($20 pages on), and prints each character until one with bit 7 set."
  },
  {
   "address": 33569,
   "type": "line",
   "text": "Prints character A at the bitmap address in $17 (buffer 0) and $15 (buffer 1): eight bytes from the font at $8350, inverted, then moves both pointers on a character. The font's page in the operand at $8333 is stepped when the code passes 31."
  },
  {
   "address": 33587,
   "type": "line",
   "text": "High byte of print_char's font operand: $83, or $84 for characters from 32 on."
  },
  {
   "address": 33616,
   "type": "line",
   "text": "The game's font: 37 characters of eight bytes, stored inverted (print_char flips them): the digits 0 to 9, A to Z, then a space. Text is written in these codes, 0 to 36, with bit 7 marking a message's last character."
  },
  {
   "address": 33912,
   "type": "line",
   "text": "Where each of the 18 messages is: SCORE, HI, the score, the high score, LIVES, PAUSED, its blank, the version line \"V 1 BY SES\", the blank status line, GAME OVER, the blank and \"1L\" player 1 marks, the blank and \"2L\" player 2 marks, the blank and \"2\" two-player marks, DISK ERROR and PRESS ANY KEY."
  },
  {
   "address": 33913,
   "type": "line",
   "text": "High bytes of the message pointers, read as $8479,y by print_message."
  },
  {
   "address": 33948,
   "type": "line",
   "text": "Where each message is printed: a column (in characters) and a line, a pair to a message."
  },
  {
   "address": 33949,
   "type": "line",
   "text": "The second byte of each pair: the message's line, rounded down to a character row."
  },
  {
   "address": 33965,
   "type": "line",
   "text": "The character game_over writes into the blank status message, one of game_over_fill."
  },
  {
   "address": 33984,
   "type": "line",
   "text": "The messages' text in the font's codes, each ending with bit 7 set: SCORE, HI, the score's six digits, the high score's six, LIVES 0, PAUSED, six spaces, V 1 BY SES, eleven spaces, GAME OVER, the L-key and player marks, DISK ERROR and PRESS ANY KEY. After each score's six digits sits one more byte, a 0 with the end mark ($84CD, $84D4), that is never printed because the units digit already carries the end mark: the score is shown exactly as the six digits hold it."
  },
  {
   "address": 33991,
   "type": "line",
   "text": "The score's six digits as printed, written by format_scores."
  },
  {
   "address": 33996,
   "type": "line",
   "text": "The printed score's last digit, which carries the end mark."
  },
  {
   "address": 33998,
   "type": "line",
   "text": "The high score's six digits as printed."
  },
  {
   "address": 34003,
   "type": "line",
   "text": "The printed high score's last digit, with the end mark."
  },
  {
   "address": 34011,
   "type": "line",
   "text": "The lives digit inside the LIVES message, written at $113E before the message is printed."
  },
  {
   "address": 34069,
   "type": "line",
   "text": "Message 16: \"DISK ERROR\" (font codes, the last with bit 7 set)."
  },
  {
   "address": 34075,
   "type": "line",
   "text": "Message 16's last letters."
  },
  {
   "address": 34079,
   "type": "line",
   "text": "Message 17: \"PRESS ANY KEY\" (font codes, the last with bit 7 set)."
  },
  {
   "address": 34092,
   "type": "line",
   "text": "Adds A to the score digit Y (5 is the units) and carries into the digits above. Does nothing in the attract mode. Marks the score as changed."
  },
  {
   "address": 34127,
   "type": "line",
   "text": "Compares the score with the high score digit by digit, and copies the score over it when it is higher, marking the score line to be redrawn."
  },
  {
   "address": 34162,
   "type": "line",
   "text": "Writes the score and the high score into their messages at $84C7 and $84CE, leading zeros as spaces, the last digit with the end mark, and the lives into LIVES."
  },
  {
   "address": 34235,
   "type": "line",
   "text": "Behaviour of a type-4 object, a creature that flies a set path: it moves two units a pass across and down towards the point held in $28,x and $33,x. A Goonie it touches dies, and the creature cycles four frames from shape $10. On reaching the point it takes the next one of its path ($5F,x, step $8B,x) from the tables at $8737 (across) and $874B (down): a zero ends the path, and then it either picks the next path from $875F at random or, while $6A,x is set, waits for the line $77EF to come up; $FF removes the creature and lets another be spawned."
  },
  {
   "address": 34458,
   "type": "line",
   "text": "Scene 2: while no creature is out, counts $77C0 down from $40 and then sends one out in slot 2 (type 4, path 1, from $8769, $8776)."
  },
  {
   "address": 34511,
   "type": "line",
   "text": "Puts another type-4 creature in the first free slot from 3, up to six at once ($12D4): one of eight start points and paths from $871F, $8727 and $872F."
  },
  {
   "address": 34591,
   "type": "line",
   "text": "Start x ($871F), start line ($8727) and path number ($872F) for the eight creatures spawn_flier can release."
  },
  {
   "address": 34599,
   "type": "line",
   "text": "The start line of each of the eight creatures spawn_flier can release (all $9F)."
  },
  {
   "address": 34607,
   "type": "line",
   "text": "The path number each of the eight creatures spawn_flier can release takes."
  },
  {
   "address": 34615,
   "type": "line",
   "text": "Where each of the ten paths' x coordinates are; $874B where their lines are."
  },
  {
   "address": 34616,
   "type": "line",
   "text": "High bytes of flier_path_x's pointers, read as $8738,y."
  },
  {
   "address": 34635,
   "type": "line",
   "text": "Where each of the ten paths' lines are, in step with flier_path_x. The mover reads only the line for markers: a zero line is a branch point, $FF removes the creature."
  },
  {
   "address": 34636,
   "type": "line",
   "text": "High bytes of flier_path_y's pointers, read as $874C,y."
  },
  {
   "address": 34655,
   "type": "line",
   "text": "The path a creature takes next after finishing each of the ten paths, when the random choice says so; then the path data from $8769."
  },
  {
   "address": 34665,
   "type": "line",
   "text": "Flier path 0: x positions of its points, in units of two pixels, in step with the lines at $8776; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34678,
   "type": "line",
   "text": "Flier path 0: lines of its points, in step with the x positions at $8769. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34691,
   "type": "line",
   "text": "Flier path 1: x positions of its points, in units of two pixels, in step with the lines at $878E; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34702,
   "type": "line",
   "text": "Flier path 1: lines of its points, in step with the x positions at $8783. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34713,
   "type": "line",
   "text": "Flier path 2: x positions of its points, in units of two pixels, in step with the lines at $879F; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34719,
   "type": "line",
   "text": "Flier path 2: lines of its points, in step with the x positions at $8799. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34725,
   "type": "line",
   "text": "Flier path 3: x positions of its points, in units of two pixels, in step with the lines at $87B3; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34739,
   "type": "line",
   "text": "Flier path 3: lines of its points, in step with the x positions at $87A5. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34753,
   "type": "line",
   "text": "Flier path 4: x positions of its points, in units of two pixels, in step with the lines at $87D1; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34769,
   "type": "line",
   "text": "Flier path 4: lines of its points, in step with the x positions at $87C1. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34785,
   "type": "line",
   "text": "Flier path 5: x positions of its points, in units of two pixels, in step with the lines at $87EE; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34798,
   "type": "line",
   "text": "Flier path 5: lines of its points, in step with the x positions at $87E1. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34811,
   "type": "line",
   "text": "Flier path 6: x positions of its points, in units of two pixels, in step with the lines at $8804; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 34820,
   "type": "line",
   "text": "Flier path 6: lines of its points, in step with the x positions at $87FB. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 34829,
   "type": "line",
   "text": "Fills the 256 bytes at $6500 with random numbers read from the SID's third voice set to noise. In the attract mode it copies a fixed table from $F69B over them instead, so that every demo plays the same way."
  },
  {
   "address": 34885,
   "type": "line",
   "text": "Behaviour of a type-9 object, the bird: moves two units a pass towards its target point; a Goonie it touches dies. Animates three frames from shape $23, mirrored by direction. Takes the next point of its path ($898D for x, $8995 for lines); at the end of a path ($00) it asks s_E232 whether it may drop an egg, and $FF parks it out of sight and lets the next one start."
  },
  {
   "address": 35118,
   "type": "line",
   "text": "Scene 5: while no bird is out, counts $12D6 down from $40, then launches the bird (type 9) in slot 2 on a random one of four paths, carrying an egg ($6C); once the egg pile has four or more, path 3 is replaced by path 2."
  },
  {
   "address": 35213,
   "type": "line",
   "text": "Where the bird's four paths' x coordinates are; $8995 where their lines are."
  },
  {
   "address": 35214,
   "type": "line",
   "text": "High bytes of the bird paths' x pointers, read with Y one on from the low bytes."
  },
  {
   "address": 35221,
   "type": "line",
   "text": "The bird's four paths: where each path's lines are (the x positions are at $898D)."
  },
  {
   "address": 35222,
   "type": "line",
   "text": "High bytes of the bird paths' line pointers, read with Y one on from the low bytes."
  },
  {
   "address": 35229,
   "type": "line",
   "text": "The bird's path 0: its x positions, a byte a step (pointer 0 of the table at $898D)."
  },
  {
   "address": 35239,
   "type": "line",
   "text": "The bird's path 0: its lines, a byte a step (pointer 4 of the table at $898D)."
  },
  {
   "address": 35249,
   "type": "line",
   "text": "The bird's path 1: its x positions, a byte a step (pointer 1 of the table at $898D)."
  },
  {
   "address": 35258,
   "type": "line",
   "text": "The bird's path 1: its lines, a byte a step (pointer 5 of the table at $898D)."
  },
  {
   "address": 35267,
   "type": "line",
   "text": "The bird's path 2: its x positions, a byte a step (pointer 2 of the table at $898D)."
  },
  {
   "address": 35281,
   "type": "line",
   "text": "The bird's path 2: its lines, a byte a step (pointer 6 of the table at $898D)."
  },
  {
   "address": 35295,
   "type": "line",
   "text": "The bird's path 3: its x positions, a byte a step (pointer 3 of the table at $898D)."
  },
  {
   "address": 35304,
   "type": "line",
   "text": "The bird's path 3: its lines, a byte a step (pointer 7 of the table at $898D)."
  },
  {
   "address": 35313,
   "type": "line",
   "text": "Flier path 7: x positions of its points, in units of two pixels, in step with the lines at $8A04; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 35332,
   "type": "line",
   "text": "Flier path 7: lines of its points, in step with the x positions at $89F1. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 35351,
   "type": "line",
   "text": "Flier path 8: x positions of its points, in units of two pixels, in step with the lines at $8A21; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 35361,
   "type": "line",
   "text": "Flier path 8: lines of its points, in step with the x positions at $8A17. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 35371,
   "type": "line",
   "text": "Flier path 9: x positions of its points, in units of two pixels, in step with the lines at $8A35; the line list carries the markers, and a 0 or $FF here is never read as one."
  },
  {
   "address": 35381,
   "type": "line",
   "text": "Flier path 9: lines of its points, in step with the x positions at $8A2B. A zero line is a branch point: the creature carries on, or at random switches to the path flier_next_path ($875F) gives and starts it from the beginning. $FF removes the creature (its slot freed, $12D4 down by one)."
  },
  {
   "address": 35391,
   "type": "line",
   "text": "Scene 3 (the pipes, scene index 1) start: both Goonies at the top left, the gunman (slot 2, type 7) at x $0A, line $1A, the acid drop's first source ($8E43, $8E3E), and on a fresh start the vents open again ($8F6B clear). Picks the gunman's first stop from $8BE5 by the step $8BE4."
  },
  {
   "address": 35533,
   "type": "line",
   "text": "Scene 3 each pass: keeps rectangle $1F as floor until the pipe bursts (then kind $81, out of use), and while the gunman is out draws him (s_8BA5) and checks the exit (s_8C89)."
  },
  {
   "address": 35562,
   "type": "line",
   "text": "The gunman (type 7) climbs up and down the right-hand side: two countdowns ($8BDF, $8BE0) decide when he is out at all. He climbs towards the line $8BE2 holds; once there he waits ($8BE3 counts to $60), and at $28 he fires along the row he is on (s_8B66 part) if a Goonie is in that row (x $05 to $98), then takes the next of sixteen stops from $8BE5."
  },
  {
   "address": 35749,
   "type": "line",
   "text": "Draws the gunman in slot 2: aiming ($8BE1) while he waits, or one of two climbing frames from $8BD6."
  },
  {
   "address": 35798,
   "type": "line",
   "text": "Scene 3: the gunman's two climbing frames, a word each (low bytes read as $8BD6,y)."
  },
  {
   "address": 35799,
   "type": "line",
   "text": "Scene 3: high bytes of the gunman's climbing frame words."
  },
  {
   "address": 35806,
   "type": "line",
   "text": "Scene 3: the gunman is out (1) or hidden (0)."
  },
  {
   "address": 35807,
   "type": "line",
   "text": "Scene 3: the first countdown deciding when the gunman comes out."
  },
  {
   "address": 35808,
   "type": "line",
   "text": "Scene 3: the second countdown deciding when the gunman comes out."
  },
  {
   "address": 35809,
   "type": "line",
   "text": "Scene 3: the gunman is aiming (waiting at his stop) rather than climbing."
  },
  {
   "address": 35810,
   "type": "line",
   "text": "Scene 3: the line the gunman climbs towards."
  },
  {
   "address": 35811,
   "type": "line",
   "text": "Scene 3: the gunman's wait at a stop, counting up to $60 before he moves to the next."
  },
  {
   "address": 35812,
   "type": "line",
   "text": "Scene 3: the gunman's step through his sixteen stops; also picks the row his shot flies along."
  },
  {
   "address": 35813,
   "type": "line",
   "text": "Scene 3: the gunman's sixteen stops, lines on the right-hand side."
  },
  {
   "address": 35829,
   "type": "line",
   "text": "Scene 3: the shot's column."
  },
  {
   "address": 35830,
   "type": "line",
   "text": "Scene 3: the shot's frame counter (0 is the puff at the start)."
  },
  {
   "address": 35831,
   "type": "line",
   "text": "Scene 3: the row the shot is in, 0 to 15."
  },
  {
   "address": 35832,
   "type": "line",
   "text": "Scene 3: the line of each of the sixteen rows a shot can fly along."
  },
  {
   "address": 35848,
   "type": "line",
   "text": "Scene 3: how far a shot flies along each of the sixteen rows before it stops."
  },
  {
   "address": 35864,
   "type": "line",
   "text": "Moves the gunman's shot along its row a step a pass to the end the row allows ($8C08); a Goonie it touches dies. Drawn as a short streak, or a puff at the start."
  },
  {
   "address": 35977,
   "type": "line",
   "text": "Once the pipe has burst ($8F6B), both Goonies at the burst (x $90, lines $60 to $70) score 1,000 and go on to scene index 3."
  },
  {
   "address": 36029,
   "type": "line",
   "text": "The acid drop: a drip slides along the ceiling to its source ($8E3E, chosen in turn from the sixteen at $8E43), falls from it ($8FB2 counts the fall) with a hiss and splashes; a Goonie it touches dies. Draws the drip, the drop and the splash."
  },
  {
   "address": 36211,
   "type": "line",
   "text": "Draws the falling acid drop at the place set up, with shape $9234 or $923C depending on the first countdown timer ($12D8), so it flickers."
  },
  {
   "address": 36239,
   "type": "line",
   "text": "Kills a Goonie under the falling acid: tests a box at each of the drop's two possible columns ($8FC2, $8FC7)."
  },
  {
   "address": 36310,
   "type": "line",
   "text": "Kills either Goonie inside the box set up at $12CA (unless one is already dying)."
  },
  {
   "address": 36339,
   "type": "line",
   "text": "Moves the acid drip two units a pass towards its source; within three units it starts to fall with sound $14."
  },
  {
   "address": 36402,
   "type": "line",
   "text": "Scene 3: the acid drop's shapes, a word each (low bytes read as $8E32,y)."
  },
  {
   "address": 36403,
   "type": "line",
   "text": "Scene 3: high bytes of the acid drop's shape words."
  },
  {
   "address": 36414,
   "type": "line",
   "text": "Scene 3: the acid's five sources across the ceiling, as x positions."
  },
  {
   "address": 36419,
   "type": "line",
   "text": "Scene 3: the order of the acid's sources, sixteen steps."
  },
  {
   "address": 36435,
   "type": "line",
   "text": "The three vents (at $8F6C across, $8F6F down): a Goonie touching one closes it and the bits of $8F6A say which are closed. When the two that matter are closed (the value is 3) the pipe bursts: 200 points, sound 4, and the burst animation starts. Each vent is drawn open or closed from $8F72, and an open vent blows a jet (s_8F35) that kills."
  },
  {
   "address": 36616,
   "type": "line",
   "text": "Draws the wheel at column $23, line $60 turned or not by vent 2's bit."
  },
  {
   "address": 36661,
   "type": "line",
   "text": "Kills a Goonie in vent X's jet, a box four units wide and four lines high at $8F8A, $8F8D."
  },
  {
   "address": 36714,
   "type": "line",
   "text": "Scene 3: which vents are closed, a bit each; 3 bursts the pipe."
  },
  {
   "address": 36715,
   "type": "line",
   "text": "Scene 3: the pipe has burst."
  },
  {
   "address": 36716,
   "type": "line",
   "text": "Scene 3: the three vents' x positions."
  },
  {
   "address": 36719,
   "type": "line",
   "text": "Scene 3: the three vents' lines."
  },
  {
   "address": 36722,
   "type": "line",
   "text": "Scene 3: each vent's drawing state, negative while it is closed."
  },
  {
   "address": 36746,
   "type": "line",
   "text": "Scene 3: the left edge of each vent's jet."
  },
  {
   "address": 36749,
   "type": "line",
   "text": "Scene 3: the top of each vent's jet."
  },
  {
   "address": 36752,
   "type": "line",
   "text": "Scene 3: the column each vent's jet is drawn at."
  },
  {
   "address": 36755,
   "type": "line",
   "text": "Scene 3: the line each vent's jet is drawn at."
  },
  {
   "address": 36758,
   "type": "line",
   "text": "Scene 3: the jet frames' column offsets."
  },
  {
   "address": 36762,
   "type": "line",
   "text": "Scene 3: the jet frames' line offsets."
  },
  {
   "address": 36766,
   "type": "line",
   "text": "Scene 3: the jet's frames, a word each (low bytes read as $8F9E,y)."
  },
  {
   "address": 36767,
   "type": "line",
   "text": "Scene 3: high bytes of the jet frame words."
  },
  {
   "address": 36774,
   "type": "line",
   "text": "Scene 3: the wheel's two positions, a word each (low bytes read as $8FA6,y)."
  },
  {
   "address": 36775,
   "type": "line",
   "text": "Scene 3: high bytes of the wheel shape words."
  },
  {
   "address": 36786,
   "type": "line",
   "text": "Scene 3: how far the acid drop has fallen, counting down to the splash."
  },
  {
   "address": 36787,
   "type": "line",
   "text": "Scene 3: the acid drop is falling."
  },
  {
   "address": 36788,
   "type": "line",
   "text": "Scene 3: the acid drip's x along the ceiling."
  },
  {
   "address": 36789,
   "type": "line",
   "text": "Scene 3: the splash's countdown."
  },
  {
   "address": 36790,
   "type": "line",
   "text": "Scene 3: the source the acid is heading for."
  },
  {
   "address": 36791,
   "type": "line",
   "text": "Scene 3: the step through the order of sources, 0 to 15."
  },
  {
   "address": 36792,
   "type": "line",
   "text": "Scene 3: the line where the acid falls from at each source."
  },
  {
   "address": 36797,
   "type": "line",
   "text": "Scene 3: the second test line under each source."
  },
  {
   "address": 36802,
   "type": "line",
   "text": "Scene 3: the first column the falling acid is tested at, per source."
  },
  {
   "address": 36807,
   "type": "line",
   "text": "Scene 3: the second column the falling acid is tested at, per source."
  },
  {
   "address": 36812,
   "type": "line",
   "text": "Scene 3's late routine: the acid (s_8CBD), the vents (s_8E53) and the shot (s_8C18), drawn after the objects."
  },
  {
   "address": 36822,
   "type": "line",
   "text": "Scene 3's rectangle kinds: 33 bytes, one per rectangle (pointer at $1203)."
  },
  {
   "address": 36855,
   "type": "line",
   "text": "Scene 3's rectangle left edges: 33 bytes, one per rectangle (pointer at $1217)."
  },
  {
   "address": 36888,
   "type": "line",
   "text": "Scene 3's rectangle top edges: 33 bytes, one per rectangle (pointer at $122B)."
  },
  {
   "address": 36921,
   "type": "line",
   "text": "Scene 3's rectangle right edges: 33 bytes, one per rectangle (pointer at $123F)."
  },
  {
   "address": 36954,
   "type": "line",
   "text": "Scene 3's rectangle bottom edges: 33 bytes, one per rectangle (pointer at $1253)."
  },
  {
   "address": 37205,
   "type": "line",
   "text": "Shape or data that s3_acid points $15/$16 at ($8D25): 2 bytes wide by 20 lines, if a shape."
  },
  {
   "address": 37247,
   "type": "line",
   "text": "Shape or data that s3_acid points $15/$16 at ($8D30): 2 bytes wide by 20 lines, if a shape."
  },
  {
   "address": 37428,
   "type": "line",
   "text": "Shape or data that s3_drop_shape points $15/$16 at ($8D78): 1 bytes wide by 6 lines, if a shape."
  },
  {
   "address": 37436,
   "type": "line",
   "text": "Shape or data that s3_drop_shape points $15/$16 at ($8D83): 1 bytes wide by 6 lines, if a shape."
  },
  {
   "address": 37444,
   "type": "line",
   "text": "Shape or data that s3_shot points $15/$16 at ($8C73): 1 bytes wide by 5 lines, if a shape."
  },
  {
   "address": 37494,
   "type": "line",
   "text": "Shape or data that s3_valve_wheel points $15/$16 at ($8F21): 1 bytes wide by 16 lines, if a shape."
  },
  {
   "address": 37512,
   "type": "line",
   "text": "Shape or data that s3_valve_wheel points $15/$16 at ($8F0F): 1 bytes wide by 16 lines, if a shape."
  },
  {
   "address": 37570,
   "type": "line",
   "text": "Shape or data that s3_shot points $15/$16 at ($8C7D): 1 bytes wide by 3 lines, if a shape."
  },
  {
   "address": 37575,
   "type": "line",
   "text": "Starts sound A (0 to 24). An effect goes to one of the three effect slots ($BA0C-$BA0E) unless the same one is already playing, displacing the lowest priority ($939D, $93E9); a tune ($93CF set) restarts the music driver with that tune when the last one has ended. Keeps X and Y."
  },
  {
   "address": 37764,
   "type": "line",
   "text": "For each of the 25 sounds: the effect or tune number ($9384), its priority ($939D), whether it may play over itself ($93B6), whether it is a tune ($93CF); then the three slots' current priorities at $93E9."
  },
  {
   "address": 37789,
   "type": "line",
   "text": "For each of the 25 sounds, its priority: a new effect displaces the playing one with the lowest."
  },
  {
   "address": 37814,
   "type": "line",
   "text": "For each of the 25 sounds, whether it may restart over itself while playing."
  },
  {
   "address": 37839,
   "type": "line",
   "text": "For each of the 25 sounds, whether it is a tune for the music driver rather than an effect."
  },
  {
   "address": 37864,
   "type": "line",
   "text": "The tune start_sound has queued to start when the music is free."
  },
  {
   "address": 37865,
   "type": "line",
   "text": "The priority of what each of the three effect slots is playing."
  },
  {
   "address": 37866,
   "type": "line",
   "text": "start_sound's working lowest priority while it looks for a slot."
  },
  {
   "address": 37867,
   "type": "line",
   "text": "start_sound's chosen slot."
  },
  {
   "address": 37868,
   "type": "line",
   "text": "The title scene's start (scene index 9): sets its timer to 48 passes."
  },
  {
   "address": 37874,
   "type": "line",
   "text": "The title's countdown before it moves on to demonstrate the next scene."
  },
  {
   "address": 37875,
   "type": "line",
   "text": "The title scene: after 48 passes picks the next scene to demonstrate, cycling through the first eight in turn ($12B3), and enters it with the demo playing."
  },
  {
   "address": 37900,
   "type": "line",
   "text": "The title scene's late routine: nothing."
  },
  {
   "address": 37906,
   "type": "line",
   "text": "Scene 7 (the octopus, scene index 6) start: both Goonies at the lower left (x $0A, line $8E) and the crate (slot 2, type $0D) on the ledge at x $2E, line $79, or at line $98 if it had already fallen there before a death ($98D9). On a fresh start the pond is full and the octopus up ($96D3 = $7B). Sets the sixteen water drops on their paths ($958E, $959E) and a random wait of $3E to $7D passes for the first flier ($12D7)."
  },
  {
   "address": 38045,
   "type": "line",
   "text": "Scene 7: the sixteen water drops' starting steps along their paths, so they fall spread out."
  },
  {
   "address": 38061,
   "type": "line",
   "text": "Scene 7 each pass: the current under the crate (s_98EE), the crate's rectangle (s_97D6), the flipper (s_96EE), the octopus (s_962A), the deadly spot by the pond (s_95CE), the exit (s_95FD), the falling water (s_953E) and the fliers (s_94C6)."
  },
  {
   "address": 38086,
   "type": "line",
   "text": "Counts $12D7 down and then waits a random $55 to $94 passes again; when it runs out and fewer than three are out, releases a type-4 flier in the first free slot from 3, on path 9 or, a little more often, path 7."
  },
  {
   "address": 38206,
   "type": "line",
   "text": "Draws the sixteen drops of the falling water, each stepping along one of four paths ($959E chooses, $95AE gives the columns' table and $95BA the lines'), restarting at the top when its path ends; four pre-shifted drop shapes from $95C6."
  },
  {
   "address": 38286,
   "type": "line",
   "text": "Scene 7: each of the sixteen water drops' step along its path."
  },
  {
   "address": 38302,
   "type": "line",
   "text": "Scene 7: which of the four paths each water drop follows."
  },
  {
   "address": 38318,
   "type": "line",
   "text": "Scene 7: where each drop path's columns are, a word a path (low bytes read as $95AE,y); two more words follow that no path index reaches."
  },
  {
   "address": 38319,
   "type": "line",
   "text": "Scene 7: high bytes of the drop paths' column pointers."
  },
  {
   "address": 38330,
   "type": "line",
   "text": "Scene 7: where each drop path's lines are, a word a path (low bytes read as $95BA,y); two more words follow that no path index reaches."
  },
  {
   "address": 38331,
   "type": "line",
   "text": "Scene 7: high bytes of the drop paths' line pointers."
  },
  {
   "address": 38342,
   "type": "line",
   "text": "Scene 7: the water drop's four pre-shifted shapes (low bytes read as $95C6,y)."
  },
  {
   "address": 38343,
   "type": "line",
   "text": "Scene 7: high bytes of the drop shape words."
  },
  {
   "address": 38350,
   "type": "line",
   "text": "A deadly spot at x $66 to $6B, lines $9F to $BA: a Goonie who touches it dies."
  },
  {
   "address": 38397,
   "type": "line",
   "text": "The exit (x $8D, line $77): both Goonies there score 1,000 and go on to scene index 7."
  },
  {
   "address": 38442,
   "type": "line",
   "text": "The octopus. Once the pond is draining ($97BC) it sinks a line a pass to $96. Each pass it waves its body and tentacles (four frames each, $96DA and $96E2) at columns $1E and $1D, and a Goonie touching the tentacles' reach (x $7C to $88, down to line $AB) dies."
  },
  {
   "address": 38611,
   "type": "line",
   "text": "Scene 7: the octopus's line: $7B up, sinking to $96 as the pond drains."
  },
  {
   "address": 38612,
   "type": "line",
   "text": "Scene 7: the tentacles' frame, 0 to 3."
  },
  {
   "address": 38613,
   "type": "line",
   "text": "Scene 7: the octopus's body frame counter."
  },
  {
   "address": 38614,
   "type": "line",
   "text": "Scene 7: the body's four frames' line offsets, so it bobs."
  },
  {
   "address": 38618,
   "type": "line",
   "text": "Scene 7: the octopus body's four frames, a word each (low bytes read as $96DA,y)."
  },
  {
   "address": 38619,
   "type": "line",
   "text": "Scene 7: high bytes of the body frame words."
  },
  {
   "address": 38626,
   "type": "line",
   "text": "Scene 7: the tentacles' four frames, a word each (low bytes read as $96E2,y)."
  },
  {
   "address": 38627,
   "type": "line",
   "text": "Scene 7: high bytes of the tentacle frame words."
  },
  {
   "address": 38634,
   "type": "line",
   "text": "Scene 7: the tentacles' line offsets below the body, per frame."
  },
  {
   "address": 38638,
   "type": "line",
   "text": "The flipper lever: a Goonie standing on its end (x $24, line $8E) holds it down, making rectangle $21 water (kind 6) and setting $97BD; let go it is drawn up at column 9, line $70 and the rectangle is out of use. Then the two plugs ($97BE-$97C5): with the lever held, a Goonie at the first one pulls it, which plays sound 9, scores 500 and starts the pond draining ($97BC); each plug is drawn in or out."
  },
  {
   "address": 38844,
   "type": "line",
   "text": "Scene 7: the pond is draining."
  },
  {
   "address": 38845,
   "type": "line",
   "text": "Scene 7: the flipper is held down."
  },
  {
   "address": 38846,
   "type": "line",
   "text": "Scene 7: the two plugs' boxes, left edges."
  },
  {
   "address": 38848,
   "type": "line",
   "text": "Scene 7: the plugs' boxes, top lines."
  },
  {
   "address": 38850,
   "type": "line",
   "text": "Scene 7: the plugs' boxes, right edges."
  },
  {
   "address": 38852,
   "type": "line",
   "text": "Scene 7: the plugs' boxes, bottom lines."
  },
  {
   "address": 38854,
   "type": "line",
   "text": "Scene 7: the plugs' columns when in."
  },
  {
   "address": 38856,
   "type": "line",
   "text": "Scene 7: the plugs' lines when in."
  },
  {
   "address": 38858,
   "type": "line",
   "text": "Scene 7: the plugs' columns when pulled."
  },
  {
   "address": 38860,
   "type": "line",
   "text": "Scene 7: the plugs' lines when pulled."
  },
  {
   "address": 38862,
   "type": "line",
   "text": "Scene 7: the plugs' shapes when in (low bytes read as $97CE,y)."
  },
  {
   "address": 38863,
   "type": "line",
   "text": "Scene 7: high bytes of the plugs' in shapes."
  },
  {
   "address": 38866,
   "type": "line",
   "text": "Scene 7: the plugs' shapes when pulled (low bytes read as $97D2,y)."
  },
  {
   "address": 38867,
   "type": "line",
   "text": "Scene 7: high bytes of the plugs' pulled shapes."
  },
  {
   "address": 38870,
   "type": "line",
   "text": "Once the crate has fallen ($98D9), keeps rectangle 0 on it as a floor (kind 3) so the Goonies can stand on it. Before that, a Goonie reaching the crate's ledge corner (x $30, line $2C) knocks it down: 50 points and rectangle 0 out of use ($83)."
  },
  {
   "address": 38947,
   "type": "line",
   "text": "The crate (type $0D): pushed by a Goonie who walks into either side (either Goonie with two players), at his speed. It moves under gravity against its own five rectangles ($98DA) and then puts the scene's 37 back ($98E4)."
  },
  {
   "address": 39097,
   "type": "line",
   "text": "Points the collision tables at the crate's own five rectangles ($98DA)."
  },
  {
   "address": 39113,
   "type": "line",
   "text": "Points the collision tables back at the scene's 37 rectangles ($98E4)."
  },
  {
   "address": 39129,
   "type": "line",
   "text": "Scene 7: the crate has fallen from its ledge."
  },
  {
   "address": 39130,
   "type": "line",
   "text": "Scene 7: the crate's own five rectangle pointers (kinds, left, top, right, bottom), used while it moves."
  },
  {
   "address": 39140,
   "type": "line",
   "text": "Scene 7: the scene's five rectangle pointers, put back after the crate has moved."
  },
  {
   "address": 39150,
   "type": "line",
   "text": "Three patches of current ($9930-$993B): while the crate is in one, it is nudged at random, up to a speed of 3."
  },
  {
   "address": 39193,
   "type": "line",
   "text": "Adds one to object Y's speed across, less than one time in two, up to 2."
  },
  {
   "address": 39216,
   "type": "line",
   "text": "Scene 7: the three patches of current, left edges."
  },
  {
   "address": 39219,
   "type": "line",
   "text": "Scene 7: the patches of current, right edges."
  },
  {
   "address": 39222,
   "type": "line",
   "text": "Scene 7: the patches of current, top lines."
  },
  {
   "address": 39225,
   "type": "line",
   "text": "Scene 7: the patches of current, bottom lines."
  },
  {
   "address": 39228,
   "type": "line",
   "text": "Scene 7's late routine: nothing."
  },
  {
   "address": 39229,
   "type": "line",
   "text": "Scene 7's rectangle kinds: 37 bytes, one per rectangle (pointer at $120D)."
  },
  {
   "address": 39266,
   "type": "line",
   "text": "Scene 7's rectangle left edges: 37 bytes, one per rectangle (pointer at $1221)."
  },
  {
   "address": 39303,
   "type": "line",
   "text": "Scene 7's rectangle top edges: 37 bytes, one per rectangle (pointer at $1235)."
  },
  {
   "address": 39340,
   "type": "line",
   "text": "Scene 7's rectangle right edges: 37 bytes, one per rectangle (pointer at $1249)."
  },
  {
   "address": 39377,
   "type": "line",
   "text": "Scene 7's rectangle bottom edges: 37 bytes, one per rectangle (pointer at $125D)."
  },
  {
   "address": 39414,
   "type": "line",
   "text": "Entry 0 of f_98DA ($98DA) points here. The crate's rectangle kinds, used while it moves."
  },
  {
   "address": 39419,
   "type": "line",
   "text": "Entry 1 of f_98DA ($98DA) points here. The crate's rectangle left edges, used while it moves."
  },
  {
   "address": 39424,
   "type": "line",
   "text": "Entry 2 of f_98DA ($98DA) points here. The crate's rectangle top edges, used while it moves."
  },
  {
   "address": 39429,
   "type": "line",
   "text": "Entry 3 of f_98DA ($98DA) points here. The crate's rectangle right edges, used while it moves."
  },
  {
   "address": 39434,
   "type": "line",
   "text": "Entry 4 of f_98DA ($98DA) points here. The crate's rectangle bottom edges, used while it moves."
  },
  {
   "address": 39439,
   "type": "line",
   "text": "Shape or data that s7_flipper points $15/$16 at ($9723): 1 bytes wide by 5 lines, if a shape."
  },
  {
   "address": 40115,
   "type": "line",
   "text": "Shape: 3 bytes wide by 10 lines, then the bytes; shared shape 48 copy 0."
  },
  {
   "address": 40147,
   "type": "line",
   "text": "Shape: 3 bytes wide by 10 lines, then the bytes; shared shape 48 copy 1."
  },
  {
   "address": 40179,
   "type": "line",
   "text": "Shape: 3 bytes wide by 10 lines, then the bytes; shared shape 48 copy 2."
  },
  {
   "address": 40211,
   "type": "line",
   "text": "Shape: 3 bytes wide by 10 lines, then the bytes; shared shape 48 copy 3."
  },
  {
   "address": 40243,
   "type": "line",
   "text": "Scene 8 (the pirate ship, scene index 7) start: both Goonies at the lower left (x $0A, line $99); Mama Fratelli (type $0E) in slot 2 at x $57, line $75. Resets the coins ($A03F-$A047, four to drop at $A048), Mama's distraction ($9F0A), the lift at its lowest ($A0B5 = $5A) and the chest at x $80 ($9FB2). The second Goonie's base shape is $31 (shapes 49-56, a taller figure) where every other scene uses 8."
  },
  {
   "address": 40363,
   "type": "line",
   "text": "Scene 8 each pass: the portholes (s_A0B6), the lift (s_A049), the treasure chest (s_9F0B), the falling coins (s_A00A), the water (s_9DEB) and the exit (s_9DBE)."
  },
  {
   "address": 40382,
   "type": "line",
   "text": "The exit by the treasure (x $90, line $40): both Goonies there score 1,000 and go on to the ending (scene index 8)."
  },
  {
   "address": 40427,
   "type": "line",
   "text": "The water below the ship (x $89 to $9F, line $B2): a Goonie who reaches it dies with a splash (sound $0A); Mama Fratelli reaching it becomes type $0F, scores 100 and splashes."
  },
  {
   "address": 40520,
   "type": "line",
   "text": "Behaviour of a type-15 object, Mama Fratelli going under the water: eight passes, shape $1C then $1D, then gone."
  },
  {
   "address": 40546,
   "type": "line",
   "text": "Behaviour of a type-14 object, Mama Fratelli. She moves and animates like a Goonie. Once the coins are falling ($9F0A) she walks right after them. Otherwise she guards the hold (x $5C to $84, lines $75 to $84): with no Goonie there she stands, cycling the frames at $9F05; with one there she walks towards him, and a Goonie she touches dies. Level with him she stops and shows shape $18 or $19."
  },
  {
   "address": 40709,
   "type": "line",
   "text": "Scene 8: Mama Fratelli's standing frames."
  },
  {
   "address": 40713,
   "type": "line",
   "text": "Scene 8: Mama Fratelli's frame counter."
  },
  {
   "address": 40714,
   "type": "line",
   "text": "Scene 8: the coins are falling and Mama Fratelli goes after them."
  },
  {
   "address": 40715,
   "type": "line",
   "text": "The treasure chest on the top deck (line $40, x in $9FB2): a Goonie walking right into it pushes it along, up to x $90 (the selected Goonie, and the other with two players). Past x $86 it spills coins (s_9FD3) and rectangle $34 becomes kind 4; before that the rectangle is out of use ($80). Draws the chest at column x/4, line $39 (shapes from $9FA2, the spilling ones from offset 8) and the porthole at column $12, line $8B to match (s_9FB3)."
  },
  {
   "address": 40866,
   "type": "line",
   "text": "Scene 8: the chest's shapes, eight words picked by s8_chest with (x AND 3) x 2, plus 8 once the chest's x reaches $86: entries 0-3 are its four copies two pixels apart while it is pushed, and entries 4-7 all name the one spilling shape ($A4A3)."
  },
  {
   "address": 40867,
   "type": "line",
   "text": "High bytes of the chest's shape words, read with Y one on from the low bytes."
  },
  {
   "address": 40882,
   "type": "line",
   "text": "Scene 8: the chest's x, $80 to $90."
  },
  {
   "address": 40883,
   "type": "line",
   "text": "Draws the porthole at column $12, line $8B: closed (shape $A2E6) when the N flag is set on entry, open ($A2F1) otherwise."
  },
  {
   "address": 40915,
   "type": "line",
   "text": "While coins are left ($A048), every fourth pass starts one in a free one of four places ($A03F) at line $38; when two are left it sets $9F0A, and Mama Fratelli goes after them."
  },
  {
   "address": 40970,
   "type": "line",
   "text": "Each falling coin drops five lines a pass at column $23 until line $B4, where it splashes (sound $15) and is gone."
  },
  {
   "address": 41023,
   "type": "line",
   "text": "Scene 8: which of the four coins are falling."
  },
  {
   "address": 41027,
   "type": "line",
   "text": "Scene 8: the four coins' lines."
  },
  {
   "address": 41031,
   "type": "line",
   "text": "Scene 8: passes until the next coin spills."
  },
  {
   "address": 41032,
   "type": "line",
   "text": "Scene 8: coins left to spill, from four."
  },
  {
   "address": 41033,
   "type": "line",
   "text": "The lift by the mast: a Goonie standing on it (x $51, line $7E; Goonie 1 if Goonie 0 is busy, $8B) raises it a line a pass up to line $2F, with a creak (sound $0F); empty, it sinks back to line $5A. Sets the tops of rectangles $2D and $2E to follow it and draws it at column $16 (shape $A3FD)."
  },
  {
   "address": 41141,
   "type": "line",
   "text": "Scene 8: the lift's line, $2F at the top to $5A at the bottom."
  },
  {
   "address": 41142,
   "type": "line",
   "text": "The three portholes. Packs which of the four levers a Goonie stands at (x $A15E, line $A162) into a number, turns it into the portholes' states through $A16E, adds any porthole a Goonie is holding open (s_A121), then draws each open or closed (column $A166, line $A169) and sets its rectangles (s_A17E)."
  },
  {
   "address": 41249,
   "type": "line",
   "text": "Adds to the porthole states ($A16C) the bit ($A155) of each porthole that a Goonie stands in (x $A158, line $A15B), which keeps it open."
  },
  {
   "address": 41295,
   "type": "line",
   "text": "The offset the hidden check at $0B2D adds to $1D: $E3, which wraps round to $00, the CPU port's direction register. Kept here among scene 8's tables, away from the code that uses it."
  },
  {
   "address": 41296,
   "type": "line",
   "text": "The value the hidden check at $0B2D adds to $00: $11, so that the sum is zero only for $EF, the direction-register value the loader sets."
  },
  {
   "address": 41297,
   "type": "line",
   "text": "Two pointers setup_screens copies to $15-$18 and then compares eight bytes through (both point at the same place, so they always agree)."
  },
  {
   "address": 41301,
   "type": "line",
   "text": "Scene 8: the bit for each porthole a Goonie can hold open."
  },
  {
   "address": 41304,
   "type": "line",
   "text": "Scene 8: where a Goonie holds each porthole open, x positions."
  },
  {
   "address": 41307,
   "type": "line",
   "text": "Scene 8: where a Goonie holds each porthole open, lines."
  },
  {
   "address": 41310,
   "type": "line",
   "text": "Scene 8: the four levers, x positions."
  },
  {
   "address": 41314,
   "type": "line",
   "text": "Scene 8: the four levers, lines."
  },
  {
   "address": 41318,
   "type": "line",
   "text": "Scene 8: the three portholes' columns."
  },
  {
   "address": 41321,
   "type": "line",
   "text": "Scene 8: the three portholes' lines."
  },
  {
   "address": 41324,
   "type": "line",
   "text": "Scene 8: the levers pressed, then the portholes' states."
  },
  {
   "address": 41325,
   "type": "line",
   "text": "Scene 8: the portholes' states as s_A17E shifts them out."
  },
  {
   "address": 41326,
   "type": "line",
   "text": "Scene 8: the portholes' states for each of the sixteen lever patterns."
  },
  {
   "address": 41342,
   "type": "line",
   "text": "Sets porthole X's two rectangles from the next state bit: open makes rectangle $A1A2,x kind 4 and $A1A5,x out of use ($80); closed makes them kind 3 and kind 2."
  },
  {
   "address": 41378,
   "type": "line",
   "text": "Scene 8: each porthole's first rectangle (a wall while it is shut)."
  },
  {
   "address": 41381,
   "type": "line",
   "text": "Scene 8: each porthole's second rectangle."
  },
  {
   "address": 41384,
   "type": "line",
   "text": "Scene 8's late routine: draws a second part of the lift over the scenery, at column $13, its line and shape ($A1CD, $A1D1) chosen by the lift's height (s_A1AC)."
  },
  {
   "address": 41388,
   "type": "line",
   "text": "Draws the lift's top part at column $13: its line from $A1CD and shape from $A1D1, chosen by bits 2 and 3 of the lift's line $A0B5."
  },
  {
   "address": 41421,
   "type": "line",
   "text": "Scene 8: the lift top's line for each of its four positions."
  },
  {
   "address": 41425,
   "type": "line",
   "text": "Scene 8: the lift top's shape for each of its four positions, a word each: three shapes, the fourth position using the second's."
  },
  {
   "address": 41426,
   "type": "line",
   "text": "High bytes of the lift top's shape words, read with Y one on from the low bytes."
  },
  {
   "address": 41433,
   "type": "line",
   "text": "Scene 8's rectangle kinds: 53 bytes, one per rectangle (pointer at $120F)."
  },
  {
   "address": 41486,
   "type": "line",
   "text": "Scene 8's rectangle left edges: 53 bytes, one per rectangle (pointer at $1223)."
  },
  {
   "address": 41539,
   "type": "line",
   "text": "Scene 8's rectangle top edges: 53 bytes, one per rectangle (pointer at $1237)."
  },
  {
   "address": 41592,
   "type": "line",
   "text": "Scene 8's rectangle right edges: 53 bytes, one per rectangle (pointer at $124B)."
  },
  {
   "address": 41645,
   "type": "line",
   "text": "Scene 8's rectangle bottom edges: 53 bytes, one per rectangle (pointer at $125F)."
  },
  {
   "address": 41698,
   "type": "line",
   "text": "Shape or data that s8_coins points $15/$16 at ($A030): 1 bytes wide by 2 lines, if a shape."
  },
  {
   "address": 41702,
   "type": "line",
   "text": "Shape or data that s8_chest points $15/$16 at ($9FBF): 3 bytes wide by 3 lines, if a shape."
  },
  {
   "address": 41713,
   "type": "line",
   "text": "Shape or data that s8_chest points $15/$16 at ($9FB5): 3 bytes wide by 10 lines, if a shape."
  },
  {
   "address": 41745,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; shared shape 57 copy 0."
  },
  {
   "address": 41804,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; shared shape 57 copy 1."
  },
  {
   "address": 41863,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; shared shape 57 copy 2."
  },
  {
   "address": 41922,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; shared shape 57 copy 3."
  },
  {
   "address": 41981,
   "type": "line",
   "text": "Shape or data that s8_lift points $15/$16 at ($A0A2): 3 bytes wide by 4 lines, if a shape."
  },
  {
   "address": 41995,
   "type": "line",
   "text": "Entry 0 of f_9FA2 ($9FA2) points here. The chest's copy for x AND 3 = 0 while it is pushed. A shape 3 bytes wide by 12 lines."
  },
  {
   "address": 42033,
   "type": "line",
   "text": "Entry 1 of f_9FA2 ($9FA2) points here. The chest's copy for x AND 3 = 1 while it is pushed. A shape 3 bytes wide by 12 lines."
  },
  {
   "address": 42071,
   "type": "line",
   "text": "Entry 2 of f_9FA2 ($9FA2) points here. The chest's copy for x AND 3 = 2 while it is pushed. A shape 3 bytes wide by 12 lines."
  },
  {
   "address": 42109,
   "type": "line",
   "text": "Entry 3 of f_9FA2 ($9FA2) points here. The chest's copy for x AND 3 = 3 while it is pushed. A shape 3 bytes wide by 12 lines."
  },
  {
   "address": 42147,
   "type": "line",
   "text": "Entry 4 of f_9FA2 ($9FA2) points here. The chest spilling its coins, the shape entries 4 to 7 all name once its x reaches $86. A shape 3 bytes wide by 12 lines."
  },
  {
   "address": 42185,
   "type": "line",
   "text": "Entry 0 of f_A1D1 ($A1D1) points here. The lift top in position 0. A shape 2 bytes wide by 3 lines."
  },
  {
   "address": 42193,
   "type": "line",
   "text": "Entry 1 of f_A1D1 ($A1D1) points here. The lift top in positions 1 and 3. A shape 2 bytes wide by 2 lines."
  },
  {
   "address": 42199,
   "type": "line",
   "text": "Entry 2 of f_A1D1 ($A1D1) points here. The lift top in position 2. A shape 2 bytes wide by 4 lines."
  },
  {
   "address": 42209,
   "type": "line",
   "text": "The ending (scene index 8) start: 5,000 points for each life left and one more, and the ship's position $A52B at $0A."
  },
  {
   "address": 42228,
   "type": "line",
   "text": "The ending each pass (s_A4F8)."
  },
  {
   "address": 42232,
   "type": "line",
   "text": "Moves the ship a step across while the timer $12D9 is clear, drawing it at column $A52B/4, line $6B in one of four copies two pixels apart ($A52C); at x $80 it enters scene index 0, scene 1, again with the score and lives kept: the game goes round once more."
  },
  {
   "address": 42283,
   "type": "line",
   "text": "The ending: the ship's x, from $0A to $80."
  },
  {
   "address": 42284,
   "type": "line",
   "text": "The ending: the ship's four pre-shifted shapes."
  },
  {
   "address": 42285,
   "type": "line",
   "text": "High bytes of the ship's shape words, read with Y one on from the low bytes."
  },
  {
   "address": 42292,
   "type": "line",
   "text": "The ending's late routine (s_A538)."
  },
  {
   "address": 42296,
   "type": "line",
   "text": "Draws two pieces of scenery at line $70, at columns 2 and $1E ($A564 and $A5D2), over the ship."
  },
  {
   "address": 42335,
   "type": "line",
   "text": "The ending's rectangle kinds: 1 bytes, one per rectangle (pointer at $1211)."
  },
  {
   "address": 42336,
   "type": "line",
   "text": "The ending's rectangle left edges: 1 bytes, one per rectangle (pointer at $1225)."
  },
  {
   "address": 42337,
   "type": "line",
   "text": "The ending's rectangle top edges: 1 bytes, one per rectangle (pointer at $1239)."
  },
  {
   "address": 42338,
   "type": "line",
   "text": "The ending's rectangle right edges: 1 bytes, one per rectangle (pointer at $124D)."
  },
  {
   "address": 42339,
   "type": "line",
   "text": "The ending's rectangle bottom edges: 1 bytes, one per rectangle (pointer at $1261)."
  },
  {
   "address": 42340,
   "type": "line",
   "text": "Shape or data that ending_late points $15/$16 at ($A538): 6 bytes wide by 18 lines, if a shape."
  },
  {
   "address": 42450,
   "type": "line",
   "text": "Shape or data that ending_late points $15/$16 at ($A54B): 7 bytes wide by 18 lines, if a shape."
  },
  {
   "address": 42578,
   "type": "line",
   "text": "Entry 0 of f_A52C ($A52C) points here. The ending: the ship's four pre-shifted shapes. A shape 6 bytes wide by 21 lines."
  },
  {
   "address": 42706,
   "type": "line",
   "text": "Entry 1 of f_A52C ($A52C) points here. The ending: the ship's four pre-shifted shapes. A shape 6 bytes wide by 21 lines."
  },
  {
   "address": 42834,
   "type": "line",
   "text": "Entry 2 of f_A52C ($A52C) points here. The ending: the ship's four pre-shifted shapes. A shape 6 bytes wide by 21 lines."
  },
  {
   "address": 42962,
   "type": "line",
   "text": "Entry 3 of f_A52C ($A52C) points here. The ending: the ship's four pre-shifted shapes. A shape 6 bytes wide by 21 lines."
  },
  {
   "address": 43090,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 20 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43134,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 24 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43178,
   "type": "line",
   "text": "Shape: 3 bytes wide by 21 lines, then the bytes; shared shape 27 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43243,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 25 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43287,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 26 copies 0, 1."
  },
  {
   "address": 43331,
   "type": "line",
   "text": "Shape: 3 bytes wide by 21 lines, then the bytes; shared shape 26 copies 2, 3."
  },
  {
   "address": 43396,
   "type": "line",
   "text": "Shape: 2 bytes wide by 21 lines, then the bytes; shared shape 21 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43440,
   "type": "line",
   "text": "Shape: 3 bytes wide by 22 lines, then the bytes; shared shape 22 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43508,
   "type": "line",
   "text": "Shape: 3 bytes wide by 22 lines, then the bytes; shared shape 23 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43576,
   "type": "line",
   "text": "Shape: 2 bytes wide by 19 lines, then the bytes; shared shape 28 copies 0, 1."
  },
  {
   "address": 43616,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; shared shape 28 copies 2, 3."
  },
  {
   "address": 43675,
   "type": "line",
   "text": "Shape: 2 bytes wide by 11 lines, then the bytes; shared shape 29 copies 0, 1."
  },
  {
   "address": 43699,
   "type": "line",
   "text": "Shape: 2 bytes wide by 11 lines, then the bytes; shared shape 29 copies 2, 3."
  },
  {
   "address": 43723,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 0 at all four x positions, so it moves a byte at a time, scene 2's shape 8 at all four x positions, so it moves a byte at a time, scene 5's shape 8 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43779,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 1 at all four x positions, so it moves a byte at a time, scene 2's shape 9 at all four x positions, so it moves a byte at a time, scene 5's shape 9 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43835,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 1's shape 2 at all four x positions, so it moves a byte at a time, scene 2's shape 10 at all four x positions, so it moves a byte at a time, scene 5's shape 10 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43894,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 1's shape 3 at all four x positions, so it moves a byte at a time, scene 2's shape 11 at all four x positions, so it moves a byte at a time, scene 5's shape 11 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 43953,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 4 at all four x positions, so it moves a byte at a time, scene 2's shape 12 at all four x positions, so it moves a byte at a time, scene 5's shape 12 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44009,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 5 at all four x positions, so it moves a byte at a time, scene 2's shape 13 at all four x positions, so it moves a byte at a time, scene 5's shape 13 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44065,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 6 copies 0, 1, scene 2's shape 14 copies 0, 1, scene 5's shape 14 copies 0, 1."
  },
  {
   "address": 44121,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 6 copies 2, 3, scene 2's shape 14 copies 2, 3, scene 5's shape 14 copies 2, 3."
  },
  {
   "address": 44177,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 7 at all four x positions, so it moves a byte at a time, scene 2's shape 15 at all four x positions, so it moves a byte at a time, scene 5's shape 15 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44233,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 8 at all four x positions, so it moves a byte at a time, scene 6's shape 0 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44289,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 9 at all four x positions, so it moves a byte at a time, scene 6's shape 1 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44345,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 3's shape 10 at all four x positions, so it moves a byte at a time, scene 6's shape 2 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44404,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 3's shape 11 at all four x positions, so it moves a byte at a time, scene 6's shape 3 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44463,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 12 at all four x positions, so it moves a byte at a time, scene 6's shape 4 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44519,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 13 at all four x positions, so it moves a byte at a time, scene 6's shape 5 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44575,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 14 copies 0, 1, scene 6's shape 6 copies 0, 1."
  },
  {
   "address": 44631,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 14 copies 2, 3, scene 6's shape 6 copies 2, 3."
  },
  {
   "address": 44687,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 15 at all four x positions, so it moves a byte at a time, scene 6's shape 7 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44743,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 1's shape 8 at all four x positions, so it moves a byte at a time, scene 8's shape 0 at all four x positions, so it moves a byte at a time, scene 8's shape 8 at all four x positions, so it moves a byte at a time, the ending's shape 0 at all four x positions, so it moves a byte at a time, the ending's shape 8 at all four x positions, so it moves a byte at a time, the title picture's shape 0 at all four x positions, so it moves a byte at a time, the title picture's shape 8 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44781,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 1's shape 9 at all four x positions, so it moves a byte at a time, scene 8's shape 1 at all four x positions, so it moves a byte at a time, scene 8's shape 9 at all four x positions, so it moves a byte at a time, the ending's shape 1 at all four x positions, so it moves a byte at a time, the ending's shape 9 at all four x positions, so it moves a byte at a time, the title picture's shape 1 at all four x positions, so it moves a byte at a time, the title picture's shape 9 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44819,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 1's shape 10 at all four x positions, so it moves a byte at a time, scene 8's shape 2 at all four x positions, so it moves a byte at a time, scene 8's shape 10 at all four x positions, so it moves a byte at a time, the ending's shape 2 at all four x positions, so it moves a byte at a time, the ending's shape 10 at all four x positions, so it moves a byte at a time, the title picture's shape 2 at all four x positions, so it moves a byte at a time, the title picture's shape 10 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44878,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 1's shape 11 at all four x positions, so it moves a byte at a time, scene 8's shape 3 at all four x positions, so it moves a byte at a time, scene 8's shape 11 at all four x positions, so it moves a byte at a time, the ending's shape 3 at all four x positions, so it moves a byte at a time, the ending's shape 11 at all four x positions, so it moves a byte at a time, the title picture's shape 3 at all four x positions, so it moves a byte at a time, the title picture's shape 11 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44937,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 12 at all four x positions, so it moves a byte at a time, scene 8's shape 4 at all four x positions, so it moves a byte at a time, scene 8's shape 12 at all four x positions, so it moves a byte at a time, the ending's shape 4 at all four x positions, so it moves a byte at a time, the ending's shape 12 at all four x positions, so it moves a byte at a time, the title picture's shape 4 at all four x positions, so it moves a byte at a time, the title picture's shape 12 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 44993,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 15 at all four x positions, so it moves a byte at a time, scene 8's shape 7 at all four x positions, so it moves a byte at a time, scene 8's shape 15 at all four x positions, so it moves a byte at a time, the ending's shape 7 at all four x positions, so it moves a byte at a time, the ending's shape 15 at all four x positions, so it moves a byte at a time, the title picture's shape 7 at all four x positions, so it moves a byte at a time, the title picture's shape 15 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45049,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 1's shape 13 at all four x positions, so it moves a byte at a time, scene 8's shape 5 at all four x positions, so it moves a byte at a time, scene 8's shape 13 at all four x positions, so it moves a byte at a time, the ending's shape 5 at all four x positions, so it moves a byte at a time, the ending's shape 13 at all four x positions, so it moves a byte at a time, the title picture's shape 5 at all four x positions, so it moves a byte at a time, the title picture's shape 13 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45087,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 14 copies 0, 1, scene 8's shape 6 copies 0, 1, scene 8's shape 14 copies 0, 1, the ending's shape 6 copies 0, 1, the ending's shape 14 copies 0, 1, the title picture's shape 6 copies 0, 1, the title picture's shape 14 copies 0, 1."
  },
  {
   "address": 45143,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 1's shape 14 copies 2, 3, scene 8's shape 6 copies 2, 3, scene 8's shape 14 copies 2, 3, the ending's shape 6 copies 2, 3, the ending's shape 14 copies 2, 3, the title picture's shape 6 copies 2, 3, the title picture's shape 14 copies 2, 3."
  },
  {
   "address": 45199,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 3's shape 0 at all four x positions, so it moves a byte at a time, scene 2's shape 0 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45237,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 3's shape 1 at all four x positions, so it moves a byte at a time, scene 2's shape 1 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45275,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 3's shape 2 at all four x positions, so it moves a byte at a time, scene 2's shape 2 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45334,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 3's shape 3 at all four x positions, so it moves a byte at a time, scene 2's shape 3 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45393,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 4 at all four x positions, so it moves a byte at a time, scene 2's shape 4 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45449,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 7 at all four x positions, so it moves a byte at a time, scene 2's shape 7 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45505,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 3's shape 5 at all four x positions, so it moves a byte at a time, scene 2's shape 5 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45543,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 6 copies 0, 1, scene 2's shape 6 copies 0, 1."
  },
  {
   "address": 45599,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 3's shape 6 copies 2, 3, scene 2's shape 6 copies 2, 3."
  },
  {
   "address": 45655,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 5's shape 0 at all four x positions, so it moves a byte at a time, scene 6's shape 8 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45693,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 5's shape 1 at all four x positions, so it moves a byte at a time, scene 6's shape 9 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45731,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 5's shape 2 at all four x positions, so it moves a byte at a time, scene 6's shape 10 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45790,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 5's shape 3 at all four x positions, so it moves a byte at a time, scene 6's shape 11 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45849,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 5's shape 4 at all four x positions, so it moves a byte at a time, scene 6's shape 12 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45905,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 5's shape 7 at all four x positions, so it moves a byte at a time, scene 6's shape 15 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45961,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 5's shape 5 at all four x positions, so it moves a byte at a time, scene 6's shape 13 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 45999,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 5's shape 6 copies 0, 1, scene 6's shape 14 copies 0, 1."
  },
  {
   "address": 46055,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 5's shape 6 copies 2, 3, scene 6's shape 14 copies 2, 3."
  },
  {
   "address": 46111,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 4's shape 8 at all four x positions, so it moves a byte at a time, scene 7's shape 0 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46149,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 4's shape 9 at all four x positions, so it moves a byte at a time, scene 7's shape 1 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46187,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 4's shape 10 at all four x positions, so it moves a byte at a time, scene 7's shape 2 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46246,
   "type": "line",
   "text": "Shape: 3 bytes wide by 19 lines, then the bytes; scene 4's shape 11 at all four x positions, so it moves a byte at a time, scene 7's shape 3 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46305,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 4's shape 12 at all four x positions, so it moves a byte at a time, scene 7's shape 4 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46361,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 4's shape 15 at all four x positions, so it moves a byte at a time, scene 7's shape 7 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46417,
   "type": "line",
   "text": "Shape: 2 bytes wide by 18 lines, then the bytes; scene 4's shape 13 at all four x positions, so it moves a byte at a time, scene 7's shape 5 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46455,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 4's shape 14 copies 0, 1, scene 7's shape 6 copies 0, 1."
  },
  {
   "address": 46511,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 4's shape 14 copies 2, 3, scene 7's shape 6 copies 2, 3."
  },
  {
   "address": 46567,
   "type": "line",
   "text": "Shape: 2 bytes wide by 17 lines, then the bytes; scene 4's shape 0 at all four x positions, so it moves a byte at a time, scene 7's shape 8 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46603,
   "type": "line",
   "text": "Shape: 2 bytes wide by 17 lines, then the bytes; scene 4's shape 1 at all four x positions, so it moves a byte at a time, scene 7's shape 9 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46639,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 4's shape 2 at all four x positions, so it moves a byte at a time, scene 7's shape 10 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46695,
   "type": "line",
   "text": "Shape: 3 bytes wide by 18 lines, then the bytes; scene 4's shape 3 at all four x positions, so it moves a byte at a time, scene 7's shape 11 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46751,
   "type": "line",
   "text": "Shape: 3 bytes wide by 17 lines, then the bytes; scene 4's shape 4 at all four x positions, so it moves a byte at a time, scene 7's shape 12 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46804,
   "type": "line",
   "text": "Shape: 3 bytes wide by 17 lines, then the bytes; scene 4's shape 7 at all four x positions, so it moves a byte at a time, scene 7's shape 15 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46857,
   "type": "line",
   "text": "Shape: 2 bytes wide by 17 lines, then the bytes; scene 4's shape 5 at all four x positions, so it moves a byte at a time, scene 7's shape 13 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 46893,
   "type": "line",
   "text": "Shape: 3 bytes wide by 17 lines, then the bytes; scene 4's shape 6 copies 0, 1, scene 7's shape 14 copies 0, 1."
  },
  {
   "address": 46946,
   "type": "line",
   "text": "Shape: 3 bytes wide by 17 lines, then the bytes; scene 4's shape 6 copies 2, 3, scene 7's shape 14 copies 2, 3."
  },
  {
   "address": 46999,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 1's shapes 0-7; scene 2's shapes 8-15; scene 5's shapes 8-15."
  },
  {
   "address": 47063,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 3's shapes 8-15; scene 6's shapes 0-7."
  },
  {
   "address": 47127,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 3's shapes 0-7; scene 2's shapes 0-7."
  },
  {
   "address": 47191,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 5's shapes 0-7; scene 6's shapes 8-15."
  },
  {
   "address": 47255,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 4's shapes 8-15; scene 7's shapes 0-7."
  },
  {
   "address": 47319,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 4's shapes 0-7; scene 7's shapes 8-15."
  },
  {
   "address": 47383,
   "type": "line",
   "text": "One Goonie's eight frames: a block of shape pointers, eight shapes of four pointers each (one for each value of x AND 3), for walking right (0, 2), walking left (1, 3), climbing (4, 5), standing (6, the only frame with two copies) and swimming (5, 7). Copied into scene_shapes ($70BE or $70FE) when a scene loads: scene 1's shapes 8-15; scene 8's shapes 0-7; scene 8's shapes 8-15; the ending's shapes 0-7; the ending's shapes 8-15; the title picture's shapes 0-7; the title picture's shapes 8-15."
  },
  {
   "address": 47616,
   "type": "line",
   "text": "Entry points of the sound code, a jump table: $BA00 silence the effects (s_C8F0), $BA03 start an effect on a voice (s_C90C), $BA09 run the effects for a frame (s_C921), $BA18 stop the tune, $BA1B start tune $BA24 (s_BA6B), $BA21 play the tune for a frame (s_BBDB). Then the driver's variables: $BA0C-$BA0E the effect on each voice ($FF none), $BA0F-$BA11 an effect to start, $BA24 the tune, $BA25 tune finished, $BA26 tune ended, $BA27 tune running, $BA29-$BA2B which voices the tune may use, $BA2C a transposition."
  },
  {
   "address": 47619,
   "type": "line",
   "text": "Sound entry: start effect A on voice X (s_C90C)."
  },
  {
   "address": 47625,
   "type": "line",
   "text": "Sound entry: run the three effect players for a frame (s_C921), called by the interrupt."
  },
  {
   "address": 47628,
   "type": "line",
   "text": "The effect voice 1 is playing, $FF for none."
  },
  {
   "address": 47629,
   "type": "line",
   "text": "The effect voice 2 is playing, $FF for none."
  },
  {
   "address": 47630,
   "type": "line",
   "text": "The effect voice 3 is playing, $FF for none."
  },
  {
   "address": 47631,
   "type": "line",
   "text": "Voice 1's effect request: bit 7 set asks for a new effect, then 1 while one plays."
  },
  {
   "address": 47632,
   "type": "line",
   "text": "Voice 2's effect request: bit 7 set asks for a new effect, then 1 while one plays."
  },
  {
   "address": 47633,
   "type": "line",
   "text": "Voice 3's effect request: bit 7 set asks for a new effect, then 1 while one plays."
  },
  {
   "address": 47634,
   "type": "line",
   "text": "Voice 1's read position in its effect's steps."
  },
  {
   "address": 47635,
   "type": "line",
   "text": "Voice 2's read position in its effect's steps."
  },
  {
   "address": 47636,
   "type": "line",
   "text": "Voice 3's read position in its effect's steps."
  },
  {
   "address": 47637,
   "type": "line",
   "text": "Voice 1's countdown to its effect's next step."
  },
  {
   "address": 47638,
   "type": "line",
   "text": "Voice 2's countdown to its effect's next step."
  },
  {
   "address": 47639,
   "type": "line",
   "text": "Voice 3's countdown to its effect's next step."
  },
  {
   "address": 47640,
   "type": "line",
   "text": "Sound entry: stop the tune."
  },
  {
   "address": 47643,
   "type": "line",
   "text": "Sound entry: start tune $BA24 (s_BA6B)."
  },
  {
   "address": 47649,
   "type": "line",
   "text": "Sound entry: play the tune for a frame (s_BBDB), called by the interrupt."
  },
  {
   "address": 47652,
   "type": "line",
   "text": "The tune to play next (or playing)."
  },
  {
   "address": 47653,
   "type": "line",
   "text": "Set to silence the music: while it is set the tune player stops the tune each frame."
  },
  {
   "address": 47654,
   "type": "line",
   "text": "The tune has ended."
  },
  {
   "address": 47655,
   "type": "line",
   "text": "The tune is playing (cleared while a tune is set up)."
  },
  {
   "address": 47656,
   "type": "line",
   "text": "What follows when a tune ends: 0 stop, bit 7 a given tune, otherwise the next one or the play-list."
  },
  {
   "address": 47657,
   "type": "line",
   "text": "Whether the tune uses voice 1."
  },
  {
   "address": 47658,
   "type": "line",
   "text": "Whether the tune uses voice 2."
  },
  {
   "address": 47659,
   "type": "line",
   "text": "Whether the tune uses voice 3."
  },
  {
   "address": 47660,
   "type": "line",
   "text": "The tune's transposition, added to every note."
  },
  {
   "address": 47723,
   "type": "line",
   "text": "Starts tune $BA24 with the playing flag held off while it sets up (s_BAA5)."
  },
  {
   "address": 47737,
   "type": "line",
   "text": "Copies the three voice pointers of tune $BA24 (the last tune if the number is too high) from the table at $C02E, eight bytes a tune, into the three readers at $BB1B, $BB1F and $BB23."
  },
  {
   "address": 47781,
   "type": "line",
   "text": "Sets a tune going: its voice pointers, the driver reset (s_BAC6), then reads each enabled voice's first command (s_BD07)."
  },
  {
   "address": 47814,
   "type": "line",
   "text": "Resets the tune player: copies the 45 default values from $BF40 into the working area at $BF09, the tempo into its counter, clears the flags and filter, and silences the voices the tune uses."
  },
  {
   "address": 47895,
   "type": "line",
   "text": "Stops the tune: clears the playing flags and the filter (from $BAE3)."
  },
  {
   "address": 47899,
   "type": "line",
   "text": "Three readers, one per voice, each an LDA from an address the driver steps through the voice's data ($BB1C, $BB20, $BB24 are their operands)."
  },
  {
   "address": 47900,
   "type": "line",
   "text": "Voice 1's data pointer: the operand of its reader's LDA, stepped after every byte."
  },
  {
   "address": 47901,
   "type": "line",
   "text": "High byte of voice 1's data pointer."
  },
  {
   "address": 47903,
   "type": "line",
   "text": "Voice 2's data reader: an LDA whose operand ($BB20) steps through the voice's data."
  },
  {
   "address": 47904,
   "type": "line",
   "text": "Voice 2's data pointer, the operand of its reader's LDA."
  },
  {
   "address": 47905,
   "type": "line",
   "text": "High byte of voice 2's data pointer."
  },
  {
   "address": 47907,
   "type": "line",
   "text": "Voice 3's data reader: an LDA whose operand ($BB24) steps through the voice's data."
  },
  {
   "address": 47908,
   "type": "line",
   "text": "Voice 3's data pointer, the operand of its reader's LDA."
  },
  {
   "address": 47909,
   "type": "line",
   "text": "High byte of voice 3's data pointer."
  },
  {
   "address": 47911,
   "type": "line",
   "text": "Reads the next byte of the current voice's data (voice $BF3E) and steps that voice's pointer; returns it, with the following byte left in $BF40."
  },
  {
   "address": 47985,
   "type": "line",
   "text": "The $BA18 entry: stops the tune."
  },
  {
   "address": 47989,
   "type": "line",
   "text": "Chooses what follows when a tune ends ($BA28): with bit 7 set the given tune, otherwise either the next tune in order or the next of a play-list at $C02C, which can also set a transposition."
  },
  {
   "address": 48056,
   "type": "line",
   "text": "At the play-list's end: back to its start ($C02A), and either the first entry again or the tune stops."
  },
  {
   "address": 48067,
   "type": "line",
   "text": "Stops the tune when nothing follows it."
  },
  {
   "address": 48070,
   "type": "line",
   "text": "Writes the filter and volume ($BF39, $BF3B) and the resonance and routing ($BF80) to the SID."
  },
  {
   "address": 48091,
   "type": "line",
   "text": "The tune player, once a frame from the interrupt. Unless the tune is stopped, counts the tempo ($BF3F) down; on each tick counts down each voice's note, releasing the gate a step before the end and reading the voice's next commands when the note is over (s_BCC4)."
  },
  {
   "address": 48324,
   "type": "line",
   "text": "Reads the next note of a voice: the pitch (0 is a rest) from the frequency tables at $BF81 and $BFD5, transposed by $BA2C, then the waveform and envelope unless the voice holds; then carries on with the voice's commands (s_BD07)."
  },
  {
   "address": 48391,
   "type": "line",
   "text": "Reads the voice's commands until a note: a byte with bit 7 clear is the next note, $FF ends the tune; otherwise bits 4 to 6 choose one of eight commands through the branch whose offset it writes at $BD33 from $BF6E."
  },
  {
   "address": 48435,
   "type": "line",
   "text": "The offset of the tune commands' BCC, written from $BF6E to pick a command's JMP."
  },
  {
   "address": 48436,
   "type": "line",
   "text": "Jumps for the tune commands: 0 note length ($BD49), 1 filter, 2 waveform or envelope or hold, 3 instrument, 4 pulse width, 5 filter settings, 6 tempo."
  },
  {
   "address": 48457,
   "type": "line",
   "text": "Command 0: the length of the voice's notes, from the length table at $BE45 (dotted or triplet values through s_BE02)."
  },
  {
   "address": 48483,
   "type": "line",
   "text": "Command 1: the filter's volume nibble, and routes this voice through the filter."
  },
  {
   "address": 48508,
   "type": "line",
   "text": "Command 2: by the low nibble, a waveform (0 to 3), an envelope set (4 to 6), the hold flag (7, 8), the ring bit (9 up); $AB and up set the length table in use."
  },
  {
   "address": 48599,
   "type": "line",
   "text": "Where each voice's three envelopes start in the instrument settings ($BF25), six bytes apart."
  },
  {
   "address": 48602,
   "type": "line",
   "text": "Command 2's other forms: 7 and 8 set or clear the voice's hold flag ($BF0A) from bit 0; 9 and up go on to $BDE9."
  },
  {
   "address": 48614,
   "type": "line",
   "text": "Where every command carries on: back to read the voice's next command (s_BD07)."
  },
  {
   "address": 48617,
   "type": "line",
   "text": "Command 2 with 9 or more: copies bit 0 into bit 2 of the voice's waveform byte ($BF1F), the ring-modulation bit."
  },
  {
   "address": 48641,
   "type": "line",
   "text": "The end of a voice's commands for this note."
  },
  {
   "address": 48642,
   "type": "line",
   "text": "Turns a length code into the note's count and its release point, from the table at $BE45: plain, or shortened for the second table."
  },
  {
   "address": 48709,
   "type": "line",
   "text": "Note lengths in tempo ticks, 32 entries: command 0 picks from the first sixteen, or from the second sixteen while $BF7F is set; s_BE02 also derives the release point from them."
  },
  {
   "address": 48741,
   "type": "line",
   "text": "Each voice's offset into the SID's registers: 0, 7 and 14."
  },
  {
   "address": 48744,
   "type": "line",
   "text": "The four waveforms command 2 can choose, gate on: triangle $11, sawtooth $21, pulse $41, noise $81."
  },
  {
   "address": 48748,
   "type": "line",
   "text": "Command 3: copies an instrument's six bytes from $C04E into the voice's envelope settings."
  },
  {
   "address": 48810,
   "type": "line",
   "text": "Command 4: sets the voice's pulse width from the next two bytes."
  },
  {
   "address": 48837,
   "type": "line",
   "text": "Command 5: sets the filter cut-off, resonance and mode from one of eight sets at $C08E."
  },
  {
   "address": 48894,
   "type": "line",
   "text": "Command 6: sets the tempo from the next byte."
  },
  {
   "address": 48905,
   "type": "line",
   "text": "The byte before the tune player's working area; the reset copy writes from $BF0A, but the store's base address is $BF09."
  },
  {
   "address": 48906,
   "type": "line",
   "text": "Per voice (three bytes), hold: while set the voice's gate and envelope are not retriggered by a new note."
  },
  {
   "address": 48907,
   "type": "line",
   "text": "Voice 2's hold flag."
  },
  {
   "address": 48908,
   "type": "line",
   "text": "Voice 3's hold flag."
  },
  {
   "address": 48909,
   "type": "line",
   "text": "Per voice (three bytes), the note's remaining length in ticks."
  },
  {
   "address": 48910,
   "type": "line",
   "text": "Voice 2's remaining note length."
  },
  {
   "address": 48911,
   "type": "line",
   "text": "Voice 3's remaining note length."
  },
  {
   "address": 48912,
   "type": "line",
   "text": "Per voice, the point in the note at which the gate is released."
  },
  {
   "address": 48913,
   "type": "line",
   "text": "Voice 2's gate release point."
  },
  {
   "address": 48914,
   "type": "line",
   "text": "Voice 3's gate release point."
  },
  {
   "address": 48915,
   "type": "line",
   "text": "Per voice, the note length set by command 0."
  },
  {
   "address": 48916,
   "type": "line",
   "text": "Voice 2's note length."
  },
  {
   "address": 48917,
   "type": "line",
   "text": "Voice 3's note length."
  },
  {
   "address": 48918,
   "type": "line",
   "text": "Per voice, the gate release point set by command 0."
  },
  {
   "address": 48919,
   "type": "line",
   "text": "Voice 2's release point."
  },
  {
   "address": 48920,
   "type": "line",
   "text": "Voice 3's release point."
  },
  {
   "address": 48921,
   "type": "line",
   "text": "Per voice (three bytes), the attack-decay value written with each note."
  },
  {
   "address": 48924,
   "type": "line",
   "text": "Per voice, the sustain-release value written with each note."
  },
  {
   "address": 48927,
   "type": "line",
   "text": "Per voice, the waveform (control register) written with each note; voice 1's."
  },
  {
   "address": 48928,
   "type": "line",
   "text": "Voice 2's waveform byte."
  },
  {
   "address": 48929,
   "type": "line",
   "text": "Voice 3's waveform byte."
  },
  {
   "address": 48930,
   "type": "line",
   "text": "Per voice, which of its three envelopes command 2 chose."
  },
  {
   "address": 48933,
   "type": "line",
   "text": "Voice 1's three envelopes from its instrument, two bytes each, copied by command 3."
  },
  {
   "address": 48934,
   "type": "line",
   "text": "Voice 1's first envelope, sustain-release byte."
  },
  {
   "address": 48935,
   "type": "line",
   "text": "Voice 1's second envelope, attack-decay byte."
  },
  {
   "address": 48936,
   "type": "line",
   "text": "Voice 1's second envelope, sustain-release byte."
  },
  {
   "address": 48937,
   "type": "line",
   "text": "Voice 1's third envelope, attack-decay byte."
  },
  {
   "address": 48938,
   "type": "line",
   "text": "Voice 1's third envelope, sustain-release byte."
  },
  {
   "address": 48939,
   "type": "line",
   "text": "Voice 2's three envelopes, six bytes."
  },
  {
   "address": 48945,
   "type": "line",
   "text": "Voice 3's three envelopes, six bytes."
  },
  {
   "address": 48951,
   "type": "line",
   "text": "The tempo: ticks of the interrupt per step of the tune."
  },
  {
   "address": 48952,
   "type": "line",
   "text": "$FF once the tune has ended."
  },
  {
   "address": 48953,
   "type": "line",
   "text": "The filter mode bits for the volume register."
  },
  {
   "address": 48954,
   "type": "line",
   "text": "Which voice (1 to 3) last set the volume and filter, so it is written on its next note."
  },
  {
   "address": 48955,
   "type": "line",
   "text": "The volume nibble."
  },
  {
   "address": 48956,
   "type": "line",
   "text": "Scratch for the command routines."
  },
  {
   "address": 48958,
   "type": "line",
   "text": "The voice being read (0 to 2)."
  },
  {
   "address": 48959,
   "type": "line",
   "text": "The tempo counter, counting down to the next step."
  },
  {
   "address": 48960,
   "type": "line",
   "text": "The byte after the one just read from a voice's data; the 45 bytes after it are the defaults copied into $BF0A on each new tune."
  },
  {
   "address": 49006,
   "type": "line",
   "text": "Branch offsets for the eight commands: written into the BCC at $BD32 (and the effect players' at $C964, $CA5F and $CB5A) to jump into a row of JMPs."
  },
  {
   "address": 49023,
   "type": "line",
   "text": "Set from bit 0 by command bytes $AC to $AF: while set, note lengths come from the second sixteen entries of the length table."
  },
  {
   "address": 49024,
   "type": "line",
   "text": "The filter's resonance and routing for $D417."
  },
  {
   "address": 49025,
   "type": "line",
   "text": "Low bytes of the note frequencies, 84 notes, to $BFD4."
  },
  {
   "address": 49109,
   "type": "line",
   "text": "High bytes of the note frequencies, 84 notes, to $C028."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "note_freq_hi runs on across $C000: the high bytes of notes 43 to 83."
  },
  {
   "address": 49193,
   "type": "line",
   "text": "The number of the last tune."
  },
  {
   "address": 49194,
   "type": "line",
   "text": "Where the play-list starts."
  },
  {
   "address": 49195,
   "type": "line",
   "text": "The play-list's current position."
  },
  {
   "address": 49196,
   "type": "line",
   "text": "The play-list: tune numbers, with bit 6 marking a transposition and bit 7 its end."
  },
  {
   "address": 49198,
   "type": "line",
   "text": "The tunes: eight bytes each, the three voices' data pointers (and a spare word)."
  },
  {
   "address": 49230,
   "type": "line",
   "text": "The instruments: eight bytes apart, of which command 3 copies six (three envelope pairs); from $C08E the filter settings, four bytes each, for command 5."
  },
  {
   "address": 49254,
   "type": "line",
   "text": "Voice 1's stream for tunes 0 and 1 (pointers at $C02E and $C036): notes and commands, read by next_byte."
  },
  {
   "address": 49294,
   "type": "line",
   "text": "Tune 0 and 1's voice 1 stream runs on here. This is also where command 5 (cmd_filter_set) takes its eight filter settings from, $C04E plus $40, so a filter command would read these note bytes; whether any tune sends command 5 has not been checked."
  },
  {
   "address": 49600,
   "type": "line",
   "text": "Voice 2's stream for tune 0 and voice 1's for tune 2 (pointers at $C030 and $C03E)."
  },
  {
   "address": 49864,
   "type": "line",
   "text": "Voice 3's stream for tune 0, and voices 2 and 3 for tunes 1 and 2 (pointers at $C032, $C038, $C03A, $C040, $C042)."
  },
  {
   "address": 50888,
   "type": "line",
   "text": "The stream from $C2C8 runs on."
  },
  {
   "address": 51006,
   "type": "line",
   "text": "Voice 1's stream for tune 3 (pointer at $C046)."
  },
  {
   "address": 51292,
   "type": "line",
   "text": "Voices 2 and 3's stream for tune 3 (pointers at $C048 and $C04A)."
  },
  {
   "address": 51440,
   "type": "line",
   "text": "Full volume, no effects waiting, and every voice free of effects ($FF)."
  },
  {
   "address": 51468,
   "type": "line",
   "text": "Asks for effect A on voice X: stored with bit 7 set in $BA0F,x, which the effect player picks up on its next frame."
  },
  {
   "address": 51474,
   "type": "line",
   "text": "Not called from anywhere: silences the effect on voice X (0 to 2) through that voice's stop routine."
  },
  {
   "address": 51489,
   "type": "line",
   "text": "Runs the effect players of the three voices, once a frame."
  },
  {
   "address": 51498,
   "type": "line",
   "text": "Effect player for voice 1: starts a requested effect from the table at $CC1B, then each frame counts the step's duration down and, when it runs out, reads the next step's command through the branch it writes at $C965: 0 stop, 1 note, 2 note and waveform, 3 note, envelope and waveform, 4 note, envelope, pulse and waveform, 5 go to another address, 6 note, pulse and waveform, 7 wait and waveform."
  },
  {
   "address": 51557,
   "type": "line",
   "text": "The offset of voice 1's effect BCC, written from $BF6E."
  },
  {
   "address": 51558,
   "type": "line",
   "text": "Jumps for voice 1's effect commands 0 to 7."
  },
  {
   "address": 51582,
   "type": "line",
   "text": "Reads a step's duration and a note for voice 1 and sets its frequency."
  },
  {
   "address": 51606,
   "type": "line",
   "text": "Sets voice 1's attack-decay and sustain-release from the step."
  },
  {
   "address": 51619,
   "type": "line",
   "text": "Sets voice 1's waveform and gate from the step."
  },
  {
   "address": 51626,
   "type": "line",
   "text": "Effect command 0: silences voice 1 and frees it."
  },
  {
   "address": 51646,
   "type": "line",
   "text": "Sets voice 1's pulse width from the step."
  },
  {
   "address": 51749,
   "type": "line",
   "text": "Effect player for voice 2, the same as voice 1's with its own pointer ($FB) and branch ($CA60)."
  },
  {
   "address": 51808,
   "type": "line",
   "text": "The offset of voice 2's effect BCC, written from $BF6E."
  },
  {
   "address": 51809,
   "type": "line",
   "text": "Jumps for voice 2's effect commands 0 to 7."
  },
  {
   "address": 51833,
   "type": "line",
   "text": "Reads a step's duration and a note for voice 2 and sets its frequency ($D407, $D408)."
  },
  {
   "address": 51857,
   "type": "line",
   "text": "Sets voice 2's attack-decay and sustain-release from the step ($D40C, $D40D)."
  },
  {
   "address": 51870,
   "type": "line",
   "text": "Sets voice 2's waveform and gate from the step ($D40B)."
  },
  {
   "address": 51877,
   "type": "line",
   "text": "Effect command 0 for voice 2: silences it and frees it."
  },
  {
   "address": 51897,
   "type": "line",
   "text": "Sets voice 2's pulse width from the step ($D409, $D40A)."
  },
  {
   "address": 51910,
   "type": "line",
   "text": "Voice 2's effect command 1: a note."
  },
  {
   "address": 51917,
   "type": "line",
   "text": "Voice 2's effect command 2: a note and a waveform."
  },
  {
   "address": 51927,
   "type": "line",
   "text": "Voice 2's effect command 3: a note, an envelope and a waveform."
  },
  {
   "address": 51940,
   "type": "line",
   "text": "Voice 2's effect command 4: a note, an envelope, a pulse width and a waveform."
  },
  {
   "address": 51956,
   "type": "line",
   "text": "Voice 2's effect command 5: carries on reading at another address."
  },
  {
   "address": 51973,
   "type": "line",
   "text": "Voice 2's effect command 6: a note, a pulse width and a waveform."
  },
  {
   "address": 51986,
   "type": "line",
   "text": "Voice 2's effect command 7: a wait and a waveform."
  },
  {
   "address": 52000,
   "type": "line",
   "text": "Effect player for voice 3, the same again with its pointer at $FD and branch at $CB5B."
  },
  {
   "address": 52059,
   "type": "line",
   "text": "The offset of voice 3's effect BCC, written from $BF6E."
  },
  {
   "address": 52060,
   "type": "line",
   "text": "Jumps for voice 3's effect commands 0 to 7."
  },
  {
   "address": 52084,
   "type": "line",
   "text": "Reads a step's duration and a note for voice 3 and sets its frequency ($D40E, $D40F)."
  },
  {
   "address": 52108,
   "type": "line",
   "text": "Sets voice 3's attack-decay and sustain-release from the step ($D413, $D414)."
  },
  {
   "address": 52121,
   "type": "line",
   "text": "Sets voice 3's waveform and gate from the step ($D412)."
  },
  {
   "address": 52128,
   "type": "line",
   "text": "Effect command 0 for voice 3: silences it and frees it."
  },
  {
   "address": 52148,
   "type": "line",
   "text": "Sets voice 3's pulse width from the step ($D410, $D411)."
  },
  {
   "address": 52161,
   "type": "line",
   "text": "Voice 3's effect command 1: a note."
  },
  {
   "address": 52168,
   "type": "line",
   "text": "Voice 3's effect command 2: a note and a waveform."
  },
  {
   "address": 52178,
   "type": "line",
   "text": "Voice 3's effect command 3: a note, an envelope and a waveform."
  },
  {
   "address": 52191,
   "type": "line",
   "text": "Voice 3's effect command 4: a note, an envelope, a pulse width and a waveform."
  },
  {
   "address": 52207,
   "type": "line",
   "text": "Voice 3's effect command 5: carries on reading at another address."
  },
  {
   "address": 52224,
   "type": "line",
   "text": "Voice 3's effect command 6: a note, a pulse width and a waveform."
  },
  {
   "address": 52237,
   "type": "line",
   "text": "Voice 3's effect command 7: a wait and a waveform."
  },
  {
   "address": 52251,
   "type": "line",
   "text": "Where each of the twenty-one effects' scripts begins (effects 0 to 20; the sound table at $9384 names all of them)."
  },
  {
   "address": 52252,
   "type": "line",
   "text": "High bytes of the effect pointers, read as $CC1C,x."
  },
  {
   "address": 52293,
   "type": "line",
   "text": "24 bytes between the last effect pointer and the first script ($CC5D) that no pointer or instruction reaches."
  },
  {
   "address": 52317,
   "type": "line",
   "text": "Effect 0's script (pointer 0 of effect_scripts, $CC1B)."
  },
  {
   "address": 52343,
   "type": "line",
   "text": "Effect 3's script (pointer 3 of effect_scripts, $CC1B)."
  },
  {
   "address": 52350,
   "type": "line",
   "text": "Effect 5's script (pointer 5 of effect_scripts, $CC1B)."
  },
  {
   "address": 52393,
   "type": "line",
   "text": "Effect 6's script (pointer 6 of effect_scripts, $CC1B)."
  },
  {
   "address": 52402,
   "type": "line",
   "text": "Effect 9's script (pointer 9 of effect_scripts, $CC1B)."
  },
  {
   "address": 52419,
   "type": "line",
   "text": "Effect 11's script (pointer 11 of effect_scripts, $CC1B)."
  },
  {
   "address": 52430,
   "type": "line",
   "text": "Effect 12's script (pointer 12 of effect_scripts, $CC1B)."
  },
  {
   "address": 52441,
   "type": "line",
   "text": "Effect 13's script (pointer 13 of effect_scripts, $CC1B)."
  },
  {
   "address": 52452,
   "type": "line",
   "text": "Effect 14's script (pointer 14 of effect_scripts, $CC1B)."
  },
  {
   "address": 52476,
   "type": "line",
   "text": "Effect 15's script (pointer 15 of effect_scripts, $CC1B)."
  },
  {
   "address": 52511,
   "type": "line",
   "text": "Effect 4's script (pointer 4 of effect_scripts, $CC1B)."
  },
  {
   "address": 52530,
   "type": "line",
   "text": "Effect 7's script (pointer 7 of effect_scripts, $CC1B)."
  },
  {
   "address": 52547,
   "type": "line",
   "text": "Effect 2's script (pointer 2 of effect_scripts, $CC1B)."
  },
  {
   "address": 52700,
   "type": "line",
   "text": "Effect 16's script (pointer 16 of effect_scripts, $CC1B)."
  },
  {
   "address": 52715,
   "type": "line",
   "text": "Effect 17's script (pointer 17 of effect_scripts, $CC1B)."
  },
  {
   "address": 52730,
   "type": "line",
   "text": "Effect 10's script (pointer 10 of effect_scripts, $CC1B)."
  },
  {
   "address": 52748,
   "type": "line",
   "text": "Effect 18's script (pointer 18 of effect_scripts, $CC1B)."
  },
  {
   "address": 52763,
   "type": "line",
   "text": "Effect 19's script (pointer 19 of effect_scripts, $CC1B)."
  },
  {
   "address": 52795,
   "type": "line",
   "text": "Effect 8's script (pointer 8 of effect_scripts, $CC1B)."
  },
  {
   "address": 52882,
   "type": "line",
   "text": "Effect 1's script (pointer 1 of effect_scripts, $CC1B)."
  },
  {
   "address": 52979,
   "type": "line",
   "text": "Effect 20's script (pointer 20 of effect_scripts, $CC1B), the twenty-first effect. The bytes after it, from about $CF08 to $CF78, read as 6502 code that calls $0CFD and $0C36 and $0B98: an older copy of some of the game's code that nothing reaches."
  },
  {
   "address": 53113,
   "type": "line",
   "text": "Eleven bytes the check at $0800 compares with the eleven at $CF99, sixteen times over; if they ever matched the game would crash. In an untouched load they differ. Why the check is there is not known."
  },
  {
   "address": 53145,
   "type": "line",
   "text": "The eleven bytes $CF79 is compared with at start-up."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Scene 5 (the eggs and the lava, scene index 4) start: both Goonies at the top left (x $10 and $16, line $18), no tunnel or bone in use, the bird's first wait at $7F passes ($12D6). On a fresh start the egg pile is empty ($E0B1)."
  },
  {
   "address": 57418,
   "type": "line",
   "text": "Scene 5 each pass: the tunnels (s_E17A), the bird (s5_spawn_bird), the egg it carries (s_E1F3), the bones and lava bridges (s_E0B7), the egg pile (s_E08A) and the exit (s_E05D)."
  },
  {
   "address": 57437,
   "type": "line",
   "text": "The exit (x $8E, line $8A, on top of the pile): both Goonies there score 1,000 and go on to scene index 5."
  },
  {
   "address": 57482,
   "type": "line",
   "text": "The egg pile at the lower right: sets the top of rectangles $1E and $1F to the pile's height (line $E0B2 by count $E0B1), so the pile can be climbed, and draws one egg for each, at column $20, lines $B0, $A8, $A0, $98 and $90."
  },
  {
   "address": 57521,
   "type": "line",
   "text": "Scene 5: eggs on the pile, 0 to 5."
  },
  {
   "address": 57522,
   "type": "line",
   "text": "Scene 5: the pile's top line for each count, and the line each egg is drawn at."
  },
  {
   "address": 57527,
   "type": "line",
   "text": "The two bones and their lava bridges. A Goonie hanging from a bone (x $2C or $82, line $26) moves its bridge: the right bridge is shut while someone hangs, the left one is shut until someone hangs. While a bridge is open ($E15F,x), a Goonie at the lava there (x $24 or $78, line $B7) dies. Draws each bridge at column $E169,x, line $B8, in one of three frames ($E16D) by its state."
  },
  {
   "address": 57628,
   "type": "line",
   "text": "Picks bone X's bridge state (0 shut, 2 open) from whether either Goonie hangs from it, reversed for bone 0, stores it in $E15F,x and draws the bridge."
  },
  {
   "address": 57695,
   "type": "line",
   "text": "Scene 5: the left bridge's state, 0 shut, 2 open."
  },
  {
   "address": 57696,
   "type": "line",
   "text": "Scene 5: the right bridge's state, 0 shut, 2 open."
  },
  {
   "address": 57697,
   "type": "line",
   "text": "Scene 5: the lava under each bridge, x positions."
  },
  {
   "address": 57699,
   "type": "line",
   "text": "Scene 5: the lava under each bridge, lines."
  },
  {
   "address": 57701,
   "type": "line",
   "text": "Scene 5: the two bones, x positions."
  },
  {
   "address": 57703,
   "type": "line",
   "text": "Scene 5: the two bones, lines."
  },
  {
   "address": 57705,
   "type": "line",
   "text": "Scene 5: the two bridges' columns."
  },
  {
   "address": 57707,
   "type": "line",
   "text": "Scene 5: the two bridges' lines."
  },
  {
   "address": 57709,
   "type": "line",
   "text": "Scene 5: the bridges' animation frame, 0 to 2."
  },
  {
   "address": 57710,
   "type": "line",
   "text": "Scene 5: the bridges' shapes, a word each, indexed by frame times four plus the state (low bytes read as $E16E,y): frame 0 shut, frame 0 open, frame 1 shut, frame 1 open, frame 2 shut, frame 2 open."
  },
  {
   "address": 57711,
   "type": "line",
   "text": "Scene 5: high bytes of the bridges' shape words."
  },
  {
   "address": 57722,
   "type": "line",
   "text": "The three tunnels between the rooms, six mouths ($E5D2 across, $E5D8 lines): a Goonie entering a mouth without pushing back ($E5DE) is moved to the other end ($E5E4, $E5EA) and hidden for four passes ($E1F1)."
  },
  {
   "address": 57764,
   "type": "line",
   "text": "Eight bytes no routine reaches, between s5_tunnels' JMP and s_E1AC."
  },
  {
   "address": 57772,
   "type": "line",
   "text": "Moves Goonie Y through tunnel mouth X and starts its four hidden passes."
  },
  {
   "address": 57806,
   "type": "line",
   "text": "Hides each Goonie still inside a tunnel ($E1F1 counting down), holding its controls for the pass ($96 = $1F); shows it again when the count runs out."
  },
  {
   "address": 57841,
   "type": "line",
   "text": "Scene 5: the first Goonie's hidden passes left in a tunnel."
  },
  {
   "address": 57842,
   "type": "line",
   "text": "Scene 5: the second Goonie's hidden passes left in a tunnel."
  },
  {
   "address": 57843,
   "type": "line",
   "text": "Draws the egg under the bird (slot 2) while it carries one ($6C), six units across and $0D lines down from it, in one of four pre-shifted copies ($E22A)."
  },
  {
   "address": 57898,
   "type": "line",
   "text": "Scene 5: the carried egg's four pre-shifted shapes."
  },
  {
   "address": 57899,
   "type": "line",
   "text": "High bytes of the carried egg's shape words, read with Y one on from the low bytes."
  },
  {
   "address": 57906,
   "type": "line",
   "text": "Drops the bird's egg: a new egg (type 8) in the first free slot, below the bird, hatching in $70 passes. Carry set when every slot is taken."
  },
  {
   "address": 57964,
   "type": "line",
   "text": "Behaviour of a type-11 object, an egg lost in the lava: shape $26 for two passes, then gone."
  },
  {
   "address": 57980,
   "type": "line",
   "text": "Behaviour of a type-8 object, an egg. Its count $6A,x falls while the timer $12D9 is clear; at eight it shows the cracking shape $26, and at zero it hatches (s_E539). A Goonie walking into either side of it pushes it the way he faces (either Goonie with two players). It goes through the tunnels like a Goonie (s_E3AB), hidden while inside, and moves with the rocks' rectangle set (s_E3FD, s_E40D). Then the lava (s_E36B) and the pile (s_E33C)."
  },
  {
   "address": 58172,
   "type": "line",
   "text": "An egg pushed to the pile's place (x $88, line $B6) vanishes; while the pile is below five it adds one and scores 50."
  },
  {
   "address": 58219,
   "type": "line",
   "text": "An egg on an open bridge's lava (within four units of x $E161) becomes type 11, four lines lower, and burns."
  },
  {
   "address": 58283,
   "type": "line",
   "text": "Moves egg Y through a tunnel mouth as s_E17A does for the Goonies (across by $E5F0), hiding it for four passes ($8B)."
  },
  {
   "address": 58365,
   "type": "line",
   "text": "Points the rectangle tables ($A4-$AD) at the eggs' set ($E427), $11 rectangles."
  },
  {
   "address": 58381,
   "type": "line",
   "text": "Points the rectangle tables back at the Goonies' set ($E41D), $20 rectangles."
  },
  {
   "address": 58397,
   "type": "line",
   "text": "Scene 5: the Goonies' rectangle set, five pointers (kinds $E6C2, left $E6E2, top $E702, right $E722, bottom $E742), 32 rectangles."
  },
  {
   "address": 58407,
   "type": "line",
   "text": "Scene 5: the eggs' rectangle set, five pointers (kinds $E762, left $E773, top $E784, right $E795, bottom $E7A6), 17 rectangles."
  },
  {
   "address": 58417,
   "type": "line",
   "text": "Behaviour of a type-10 object, a creature hatched from an egg. Hidden while $6A,x counts down; otherwise moves two units a pass across and down towards its point ($28,x, $33,x), and a Goonie it touches dies. It cycles three frames from shape $28 ($E535). At each point it takes the next of its path ($5F,x, step $8B,x) from the tables at $E573 and $E57B: a zero jumps it to a new place and hides it for four passes, $FF removes it."
  },
  {
   "address": 58677,
   "type": "line",
   "text": "Scene 5: the hatchlings' three-frame cycle as shape offsets from $28: 0, 1, 2, 1."
  },
  {
   "address": 58681,
   "type": "line",
   "text": "Turns egg X into a hatchling (type 10): picks one of four paths by the room it is in (line $68 and x $58 divide them) and its first point from $E567, $E56B and $E56F."
  },
  {
   "address": 58727,
   "type": "line",
   "text": "Scene 5: the first step along each of the four hatchling paths."
  },
  {
   "address": 58731,
   "type": "line",
   "text": "Scene 5: each hatchling path's first target x."
  },
  {
   "address": 58735,
   "type": "line",
   "text": "Scene 5: each hatchling path's first target line."
  },
  {
   "address": 58739,
   "type": "line",
   "text": "Scene 5: where each of the four hatchling paths' x positions are, a word a path (read with Y = path x 2 at $E4E7); the four words after it, at $E57B, are where their lines are."
  },
  {
   "address": 58740,
   "type": "line",
   "text": "High bytes of the hatchling paths' x pointers, read with Y one on from the low bytes."
  },
  {
   "address": 58747,
   "type": "line",
   "text": "Scene 5: where each of the four hatchling paths' lines are, a word a path, in step with the x positions $E573 names (read at $E4F1)."
  },
  {
   "address": 58748,
   "type": "line",
   "text": "High bytes of the hatchling paths' line pointers, read with Y one on from the low bytes."
  },
  {
   "address": 58755,
   "type": "line",
   "text": "Entry 0 of f_E573 ($E573) points here. Hatchling path 0's x positions, in units of two pixels."
  },
  {
   "address": 58766,
   "type": "line",
   "text": "Entry 4 of f_E573 ($E573) points here. Hatchling path 0's lines, in step with its x positions."
  },
  {
   "address": 58777,
   "type": "line",
   "text": "Entry 1 of f_E573 ($E573) points here. Hatchling path 1's x positions, in units of two pixels."
  },
  {
   "address": 58781,
   "type": "line",
   "text": "Entry 5 of f_E573 ($E573) points here. Hatchling path 1's lines, in step with its x positions."
  },
  {
   "address": 58785,
   "type": "line",
   "text": "Entry 2 of f_E573 ($E573) points here. Hatchling path 2's x positions, in units of two pixels."
  },
  {
   "address": 58805,
   "type": "line",
   "text": "Entry 6 of f_E573 ($E573) points here. Hatchling path 2's lines, in step with its x positions."
  },
  {
   "address": 58825,
   "type": "line",
   "text": "Entry 3 of f_E573 ($E573) points here. Hatchling path 3's x positions, in units of two pixels."
  },
  {
   "address": 58829,
   "type": "line",
   "text": "Entry 7 of f_E573 ($E573) points here. Hatchling path 3's lines, in step with its x positions."
  },
  {
   "address": 58833,
   "type": "line",
   "text": "Scene 5's late routine: nothing."
  },
  {
   "address": 58834,
   "type": "line",
   "text": "Scene 5: the six tunnel mouths, x positions."
  },
  {
   "address": 58840,
   "type": "line",
   "text": "Scene 5: the six tunnel mouths, lines."
  },
  {
   "address": 58846,
   "type": "line",
   "text": "Scene 5: the stick bit each mouth needs released (pushing back the other way blocks the passage)."
  },
  {
   "address": 58852,
   "type": "line",
   "text": "Scene 5: how far a Goonie moves across through each mouth's tunnel."
  },
  {
   "address": 58858,
   "type": "line",
   "text": "Scene 5: how far a Goonie or an egg moves down through each mouth's tunnel."
  },
  {
   "address": 58864,
   "type": "line",
   "text": "Scene 5: how far an egg moves across through each mouth's tunnel."
  },
  {
   "address": 58870,
   "type": "line",
   "text": "Scene 5: a bridge shut, frame 0: 4 bytes wide by 8 lines."
  },
  {
   "address": 58904,
   "type": "line",
   "text": "Scene 5: a bridge shut, frame 1: 4 bytes wide by 8 lines."
  },
  {
   "address": 58938,
   "type": "line",
   "text": "Scene 5: a bridge shut, frame 2: 4 bytes wide by 8 lines."
  },
  {
   "address": 58972,
   "type": "line",
   "text": "Scene 5: a bridge open, frame 0: 4 bytes wide by 8 lines."
  },
  {
   "address": 59006,
   "type": "line",
   "text": "Scene 5: a bridge open, frame 1: 4 bytes wide by 8 lines."
  },
  {
   "address": 59040,
   "type": "line",
   "text": "Scene 5: a bridge open, frame 2: 4 bytes wide by 8 lines."
  },
  {
   "address": 59074,
   "type": "line",
   "text": "Scene 5's rectangle kinds: 32 bytes, one per rectangle (pointer at $1209)."
  },
  {
   "address": 59106,
   "type": "line",
   "text": "Scene 5's rectangle left edges: 32 bytes, one per rectangle (pointer at $121D)."
  },
  {
   "address": 59138,
   "type": "line",
   "text": "Scene 5's rectangle top edges: 32 bytes, one per rectangle (pointer at $1231)."
  },
  {
   "address": 59170,
   "type": "line",
   "text": "Scene 5's rectangle right edges: 32 bytes, one per rectangle (pointer at $1245)."
  },
  {
   "address": 59202,
   "type": "line",
   "text": "Scene 5's rectangle bottom edges: 32 bytes, one per rectangle (pointer at $1259)."
  },
  {
   "address": 59234,
   "type": "line",
   "text": "Entry 5 of f_E41D ($E41D) points here. The eggs' rectangle set (f_E427): its kinds, 17 bytes."
  },
  {
   "address": 59251,
   "type": "line",
   "text": "Entry 6 of f_E41D ($E41D) points here. The eggs' rectangle set (f_E427): its left edges, 17 bytes."
  },
  {
   "address": 59268,
   "type": "line",
   "text": "Entry 7 of f_E41D ($E41D) points here. The eggs' rectangle set (f_E427): its top edges, 17 bytes."
  },
  {
   "address": 59285,
   "type": "line",
   "text": "Entry 8 of f_E41D ($E41D) points here. The eggs' rectangle set (f_E427): its right edges, 17 bytes."
  },
  {
   "address": 59302,
   "type": "line",
   "text": "Entry 9 of f_E41D ($E41D) points here. The eggs' rectangle set (f_E427): its bottom edges, 17 bytes."
  },
  {
   "address": 59319,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 32 copy 0."
  },
  {
   "address": 59391,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 32 copy 1."
  },
  {
   "address": 59463,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 32 copy 2."
  },
  {
   "address": 59535,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 32 copy 3."
  },
  {
   "address": 59607,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 33 copy 0."
  },
  {
   "address": 59679,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 33 copy 1."
  },
  {
   "address": 59751,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 33 copy 2."
  },
  {
   "address": 59823,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 33 copy 3."
  },
  {
   "address": 59895,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 34 copy 0."
  },
  {
   "address": 59967,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 34 copy 1."
  },
  {
   "address": 60039,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 34 copy 2."
  },
  {
   "address": 60111,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 34 copy 3."
  },
  {
   "address": 60183,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 35 copy 0."
  },
  {
   "address": 60255,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 35 copy 1."
  },
  {
   "address": 60327,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 35 copy 2."
  },
  {
   "address": 60399,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 35 copy 3."
  },
  {
   "address": 60471,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 36 copy 0."
  },
  {
   "address": 60543,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 36 copy 1."
  },
  {
   "address": 60615,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 36 copy 2."
  },
  {
   "address": 60687,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 36 copy 3."
  },
  {
   "address": 60759,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 37 copy 0."
  },
  {
   "address": 60831,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 37 copy 1."
  },
  {
   "address": 60903,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 37 copy 2."
  },
  {
   "address": 60975,
   "type": "line",
   "text": "Shape: 5 bytes wide by 14 lines, then the bytes; shared shape 37 copy 3."
  },
  {
   "address": 61047,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 31 copy 0."
  },
  {
   "address": 61063,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 31 copy 1."
  },
  {
   "address": 61079,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 31 copy 2."
  },
  {
   "address": 61095,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 31 copy 3."
  },
  {
   "address": 61111,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 38 copy 0."
  },
  {
   "address": 61127,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 38 copy 1."
  },
  {
   "address": 61143,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 38 copy 2."
  },
  {
   "address": 61159,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 38 copy 3."
  },
  {
   "address": 61175,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 39 copy 0."
  },
  {
   "address": 61191,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 39 copy 1."
  },
  {
   "address": 61207,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 39 copy 2."
  },
  {
   "address": 61223,
   "type": "line",
   "text": "Shape: 2 bytes wide by 7 lines, then the bytes; shared shape 39 copy 3."
  },
  {
   "address": 61239,
   "type": "line",
   "text": "Shape: 3 bytes wide by 7 lines, then the bytes; shared shape 40 copy 0."
  },
  {
   "address": 61262,
   "type": "line",
   "text": "Shape: 3 bytes wide by 7 lines, then the bytes; shared shape 40 copy 1."
  },
  {
   "address": 61285,
   "type": "line",
   "text": "Shape: 3 bytes wide by 7 lines, then the bytes; shared shape 40 copy 2."
  },
  {
   "address": 61308,
   "type": "line",
   "text": "Shape: 3 bytes wide by 7 lines, then the bytes; shared shape 40 copy 3."
  },
  {
   "address": 61331,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 41 copy 0."
  },
  {
   "address": 61357,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 41 copy 1."
  },
  {
   "address": 61383,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 41 copy 2."
  },
  {
   "address": 61409,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 41 copy 3."
  },
  {
   "address": 61435,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 42 copy 0."
  },
  {
   "address": 61461,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 42 copy 1."
  },
  {
   "address": 61487,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 42 copy 2."
  },
  {
   "address": 61513,
   "type": "line",
   "text": "Shape: 3 bytes wide by 8 lines, then the bytes; shared shape 42 copy 3."
  },
  {
   "address": 61539,
   "type": "line",
   "text": "Scene 6 (the cage and the drips, scene index 5) start: both Goonies at the top left (x 9, line $36), the pads and tunnels clear, $F485 = $18; nine drips set up (s_F209) and eight lava bubbles given random columns and waits."
  },
  {
   "address": 61645,
   "type": "line",
   "text": "Scene 6 each pass: the platforms (s_F413), the door and its passage (s_F32B), the lava floor (s_F1DC), the pads (s_F16E), the exit (s_F141) and the lava bubbles (s_F0E0)."
  },
  {
   "address": 61664,
   "type": "line",
   "text": "Eight lava bubbles: each rises through seven frames from line $AF at its column ($F139), then waits and starts again at a random column; drawn with shape $F696."
  },
  {
   "address": 61737,
   "type": "line",
   "text": "Scene 6: each lava bubble's rising step."
  },
  {
   "address": 61745,
   "type": "line",
   "text": "Scene 6: each lava bubble's height."
  },
  {
   "address": 61753,
   "type": "line",
   "text": "Scene 6: each lava bubble's column."
  },
  {
   "address": 61761,
   "type": "line",
   "text": "The exit (x $92, line $A1): both Goonies there score 1,000 and go on to scene index 6."
  },
  {
   "address": 61806,
   "type": "line",
   "text": "Three pads at line $79 (x $4C, $54 and $5C): a Goonie on one holds it down for four passes ($F481,x) with its sound ($F1D0). Draws each pad, two lines lower while it is down."
  },
  {
   "address": 61892,
   "type": "line",
   "text": "Plays pad X's sound ($F1D0,x). Keeps A."
  },
  {
   "address": 61901,
   "type": "line",
   "text": "Scene 6: the three pads' x positions."
  },
  {
   "address": 61904,
   "type": "line",
   "text": "Scene 6: the three pads' sounds."
  },
  {
   "address": 61907,
   "type": "line",
   "text": "Scene 6: the three pads' columns."
  },
  {
   "address": 61910,
   "type": "line",
   "text": "Scene 6: the three pads' shapes (low bytes read as $F1D6,y)."
  },
  {
   "address": 61911,
   "type": "line",
   "text": "Scene 6: high bytes of the pads' shape words."
  },
  {
   "address": 61916,
   "type": "line",
   "text": "The lava along the bottom (x $02 to $A0, line $B2): a Goonie there dies."
  },
  {
   "address": 61961,
   "type": "line",
   "text": "Puts the nine drips (type 12) in free slots, at $F310 across and $F319 down, each waiting a random $24 to $63 passes."
  },
  {
   "address": 62013,
   "type": "line",
   "text": "Behaviour of a type-12 object, a drip. While it waits ($75,x) it grows (shape $2F, then $2B and $2C). Then it falls faster each pass, up to four lines, and a Goonie it touches dies; it flickers between shapes $2D and $2E. At its floor ($F322) it starts again after a random wait with a splash (sound $0A); drips 3 to 5 land on the pads instead and hold them down for $10 passes."
  },
  {
   "address": 62224,
   "type": "line",
   "text": "Scene 6: the nine drips' x positions."
  },
  {
   "address": 62233,
   "type": "line",
   "text": "Scene 6: the nine drips' starting lines."
  },
  {
   "address": 62242,
   "type": "line",
   "text": "Scene 6: the nine drips' floor lines; drips 3 to 5 land on the pads at line $7A."
  },
  {
   "address": 62251,
   "type": "line",
   "text": "The door: while a Goonie hangs from either lever (x $40, line $5F, or x $8F, line $8C) the passage through it works (s_F363); otherwise the door is drawn shut at column $14, line $91."
  },
  {
   "address": 62307,
   "type": "line",
   "text": "The passage, two mouths ($F405 across, $F407 lines): the selected Goonie, and the other one with two players, entering a mouth without pushing back ($F40D) comes out at the other ($F409, $F40B) and is hidden for four passes ($F403)."
  },
  {
   "address": 62430,
   "type": "line",
   "text": "Hides each Goonie still in the passage ($F403 counting down), holding the selected one's controls for the pass ($96 = $1F)."
  },
  {
   "address": 62467,
   "type": "line",
   "text": "Scene 6: the first Goonie's hidden passes left in the passage."
  },
  {
   "address": 62468,
   "type": "line",
   "text": "Scene 6: the second Goonie's hidden passes left in the passage."
  },
  {
   "address": 62469,
   "type": "line",
   "text": "Scene 6: the passage's two mouths, x positions."
  },
  {
   "address": 62471,
   "type": "line",
   "text": "Scene 6: the passage's two mouths, lines."
  },
  {
   "address": 62473,
   "type": "line",
   "text": "Scene 6: how far across each mouth takes a Goonie."
  },
  {
   "address": 62475,
   "type": "line",
   "text": "Scene 6: how far down each mouth takes a Goonie."
  },
  {
   "address": 62477,
   "type": "line",
   "text": "Scene 6: the stick bit each mouth needs released."
  },
  {
   "address": 62479,
   "type": "line",
   "text": "Scene 6: the two levers that hold the door open, x positions."
  },
  {
   "address": 62481,
   "type": "line",
   "text": "Scene 6: the two levers, lines."
  },
  {
   "address": 62483,
   "type": "line",
   "text": "The platforms: counts the pads down, takes the pattern of pads held down (s_F462) and from its table ($F486) sets the kinds of rectangles $13 to $1F, solid (3) or out of use ($83), drawing each solid one (column $F536, line $F54A, shape from $F572)."
  },
  {
   "address": 62521,
   "type": "line",
   "text": "The operand of s6_platforms' LDA $F4AA,X, rewritten each pass with the platform pattern chosen from $F486."
  },
  {
   "address": 62522,
   "type": "line",
   "text": "High byte of s6_platforms' rewritten platform-table operand."
  },
  {
   "address": 62562,
   "type": "line",
   "text": "Packs the three pads' states into the bits of $F484 (0 to 7)."
  },
  {
   "address": 62593,
   "type": "line",
   "text": "Scene 6: how long the first pad stays down."
  },
  {
   "address": 62594,
   "type": "line",
   "text": "Scene 6: how long the second pad stays down."
  },
  {
   "address": 62595,
   "type": "line",
   "text": "Scene 6: how long the third pad stays down."
  },
  {
   "address": 62596,
   "type": "line",
   "text": "Scene 6: the pads held down, as a number 0 to 7."
  },
  {
   "address": 62597,
   "type": "line",
   "text": "Scene 6: a byte the start routine sets to $18; nothing else uses it."
  },
  {
   "address": 62598,
   "type": "line",
   "text": "Scene 6: for each of the eight pad patterns, its platform table."
  },
  {
   "address": 62599,
   "type": "line",
   "text": "High bytes of the platform-table pointers, read with Y one on from the low bytes."
  },
  {
   "address": 62614,
   "type": "line",
   "text": "Entry 0 of f_F486 ($F486) points here. Scene 6: for each of the eight pad patterns, its platform table."
  },
  {
   "address": 62634,
   "type": "line",
   "text": "Scene 6: the platform tables, one for each pad pattern: the kind of each of the thirteen platform rectangles (3 solid, $83 not there), eight tables of 13 bytes to $F511."
  },
  {
   "address": 62714,
   "type": "line",
   "text": "Entry 5 of f_F486 ($F486) points here. Scene 6: for each of the eight pad patterns, its platform table."
  },
  {
   "address": 62734,
   "type": "line",
   "text": "Entry 6 of f_F486 ($F486) points here. Scene 6: for each of the eight pad patterns, its platform table."
  },
  {
   "address": 62754,
   "type": "line",
   "text": "Entry 7 of f_F486 ($F486) points here. Scene 6: for each of the eight pad patterns, its platform table."
  },
  {
   "address": 62774,
   "type": "line",
   "text": "Scene 6: the platforms' columns."
  },
  {
   "address": 62794,
   "type": "line",
   "text": "Scene 6: the platforms' lines."
  },
  {
   "address": 62814,
   "type": "line",
   "text": "Scene 6: each platform's shape, as an offset into $F572."
  },
  {
   "address": 62834,
   "type": "line",
   "text": "Scene 6: the platforms' three shapes."
  },
  {
   "address": 62835,
   "type": "line",
   "text": "High bytes of the platforms' shape words, read with Y one on from the low bytes."
  },
  {
   "address": 62840,
   "type": "line",
   "text": "Entry 0 of f_F572 ($F572) points here. Scene 6: the platforms' three shapes. A shape 2 bytes wide by 1 lines."
  },
  {
   "address": 62844,
   "type": "line",
   "text": "Entry 1 of f_F572 ($F572) points here. Scene 6: the platforms' three shapes. A shape 2 bytes wide by 1 lines."
  },
  {
   "address": 62848,
   "type": "line",
   "text": "Entry 2 of f_F572 ($F572) points here. Scene 6: the platforms' three shapes. A shape 2 bytes wide by 1 lines."
  },
  {
   "address": 62852,
   "type": "line",
   "text": "Scene 6's late routine: nothing."
  },
  {
   "address": 62853,
   "type": "line",
   "text": "Scene 6's rectangle kinds: 38 bytes, one per rectangle (pointer at $120B)."
  },
  {
   "address": 62891,
   "type": "line",
   "text": "Scene 6's rectangle left edges: 38 bytes, one per rectangle (pointer at $121F)."
  },
  {
   "address": 62929,
   "type": "line",
   "text": "Scene 6's rectangle top edges: 38 bytes, one per rectangle (pointer at $1233)."
  },
  {
   "address": 62967,
   "type": "line",
   "text": "Scene 6's rectangle right edges: 38 bytes, one per rectangle (pointer at $1247)."
  },
  {
   "address": 63005,
   "type": "line",
   "text": "Scene 6's rectangle bottom edges: 38 bytes, one per rectangle (pointer at $125B)."
  },
  {
   "address": 63043,
   "type": "line",
   "text": "Shape or data that decode_table points $15/$16 at ($5357): 2 bytes wide by 20 lines, if a shape."
  },
  {
   "address": 63085,
   "type": "line",
   "text": "Shape: 1 bytes wide by 3 lines, then the bytes; shared shape 43 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 63090,
   "type": "line",
   "text": "Shape: 1 bytes wide by 8 lines, then the bytes; shared shape 44 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 63100,
   "type": "line",
   "text": "Shape: 1 bytes wide by 8 lines, then the bytes; shared shape 45 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 63110,
   "type": "line",
   "text": "Shape: 1 bytes wide by 6 lines, then the bytes; shared shape 46 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 63118,
   "type": "line",
   "text": "Shape: 1 bytes wide by 6 lines, then the bytes; shared shape 47 at all four x positions, so it moves a byte at a time."
  },
  {
   "address": 63126,
   "type": "line",
   "text": "Shape or data that decode_table points $15/$16 at ($511A): 1 bytes wide by 3 lines, if a shape."
  },
  {
   "address": 63131,
   "type": "line",
   "text": "The fixed random table copied over $6500 in the attract mode, so each demo plays out the same way: 256 bytes, to $F79A."
  },
  {
   "address": 63388,
   "type": "line",
   "text": "Resets the demo playback: no script position and no count."
  },
  {
   "address": 63402,
   "type": "line",
   "text": "The attract mode's position in its demo script, two bytes a step."
  },
  {
   "address": 63403,
   "type": "line",
   "text": "Passes left on the demo script's current step."
  },
  {
   "address": 63404,
   "type": "line",
   "text": "Points $B4 at the demo script for the current scene (from $F7CF; scene 0 for the title and attract scenes) and loads the first step's length."
  },
  {
   "address": 63439,
   "type": "line",
   "text": "The demo script of each of the first eight scene indexes (index 1 is scene 3 and index 2 is scene 2, in the order the game plays them)."
  },
  {
   "address": 63440,
   "type": "line",
   "text": "High bytes of the demo-script pointers, read with Y one on from the low bytes."
  },
  {
   "address": 63455,
   "type": "line",
   "text": "Gives the attract mode's controls for this pass: the stick value of the current step of the scene's script, a pair of bytes (value, number of passes) each. At the end of the 31st step the demo is over and the attract mode starts again."
  },
  {
   "address": 63501,
   "type": "line",
   "text": "The stick value of the demo script's current step."
  },
  {
   "address": 63565,
   "type": "line",
   "text": "Left over from the developers' machine: a stretch of 6502 assembler source in ASCII, \"DOORX HEX 568C\", \"DOORY HEX A33A\", \"DOORMASK HEX 0808\", \"MKDRX HEX 408F\", then \"DOFLRS LDX #$02 / DFL31 LDA PLAY,X / BEQ DFL32\". DOORX's 56 8C matches scene 6's door data at $F405. Nothing reads it."
  },
  {
   "address": 65280,
   "type": "line",
   "text": "250 bytes loaded with the game that nothing reads or writes, up to the vectors."
  },
  {
   "address": 65530,
   "type": "line",
   "text": "NMI vector, set to $0A76 (an RTI) while the KERNAL is banked out, so RESTORE does nothing."
  },
  {
   "address": 65532,
   "type": "line",
   "text": "Reset vector: $E5E5 in play, bytes the game never sets (the KERNAL is banked out, and a reset banks it back in)."
  },
  {
   "address": 65534,
   "type": "line",
   "text": "IRQ vector, set to $0A03, the raster interrupt, while the KERNAL is banked out."
  }
 ]
}