{
 "schema": 1,
 "platform": "c64",
 "game": "delta",
 "build": "Reflex Cracking Squad crack, one file (delta.prg, 47,104 bytes); game entry $1770",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    17408,
    18431,
    "screen RAM"
   ],
   [
    17408,
    18431,
    "the play screen: written by the game every frame (stars, shots, scenery)"
   ]
  ],
  "extra": [
   [
    18432,
    20479,
    "character set"
   ]
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 1023,
   "type": "Undefined"
  },
  {
   "start": 1024,
   "end": 1026,
   "type": "Byte"
  },
  {
   "start": 1027,
   "end": 1351,
   "type": "Code"
  },
  {
   "start": 1352,
   "end": 1354,
   "type": "Byte"
  },
  {
   "start": 1355,
   "end": 1357,
   "type": "Undefined"
  },
  {
   "start": 1358,
   "end": 1434,
   "type": "Byte"
  },
  {
   "start": 1435,
   "end": 1599,
   "type": "Code"
  },
  {
   "start": 1600,
   "end": 1983,
   "type": "Byte"
  },
  {
   "start": 1984,
   "end": 1993,
   "type": "Undefined"
  },
  {
   "start": 1994,
   "end": 2055,
   "type": "Byte"
  },
  {
   "start": 2056,
   "end": 2659,
   "type": "Code"
  },
  {
   "start": 2660,
   "end": 2663,
   "type": "Undefined"
  },
  {
   "start": 2664,
   "end": 2681,
   "type": "Code"
  },
  {
   "start": 2682,
   "end": 2687,
   "type": "Undefined"
  },
  {
   "start": 2688,
   "end": 2765,
   "type": "Code"
  },
  {
   "start": 2766,
   "end": 2767,
   "type": "Undefined"
  },
  {
   "start": 2768,
   "end": 2800,
   "type": "Code"
  },
  {
   "start": 2801,
   "end": 2803,
   "type": "Undefined"
  },
  {
   "start": 2804,
   "end": 2814,
   "type": "Code"
  },
  {
   "start": 2815,
   "end": 2815,
   "type": "Undefined"
  },
  {
   "start": 2816,
   "end": 2973,
   "type": "Code"
  },
  {
   "start": 2974,
   "end": 2975,
   "type": "Undefined"
  },
  {
   "start": 2976,
   "end": 3012,
   "type": "Code"
  },
  {
   "start": 3013,
   "end": 3015,
   "type": "Undefined"
  },
  {
   "start": 3016,
   "end": 3028,
   "type": "Code"
  },
  {
   "start": 3029,
   "end": 3031,
   "type": "Undefined"
  },
  {
   "start": 3032,
   "end": 3064,
   "type": "Code"
  },
  {
   "start": 3065,
   "end": 3071,
   "type": "Undefined"
  },
  {
   "start": 3072,
   "end": 3212,
   "type": "Code"
  },
  {
   "start": 3213,
   "end": 3215,
   "type": "Undefined"
  },
  {
   "start": 3216,
   "end": 3310,
   "type": "Code"
  },
  {
   "start": 3311,
   "end": 3311,
   "type": "Undefined"
  },
  {
   "start": 3312,
   "end": 3324,
   "type": "Code"
  },
  {
   "start": 3325,
   "end": 3327,
   "type": "Undefined"
  },
  {
   "start": 3328,
   "end": 3379,
   "type": "Code"
  },
  {
   "start": 3380,
   "end": 3381,
   "type": "Undefined"
  },
  {
   "start": 3382,
   "end": 3461,
   "type": "Code"
  },
  {
   "start": 3462,
   "end": 3471,
   "type": "Undefined"
  },
  {
   "start": 3472,
   "end": 3531,
   "type": "Code"
  },
  {
   "start": 3532,
   "end": 3535,
   "type": "Undefined"
  },
  {
   "start": 3536,
   "end": 3546,
   "type": "Code"
  },
  {
   "start": 3547,
   "end": 3548,
   "type": "Undefined"
  },
  {
   "start": 3549,
   "end": 3582,
   "type": "Code"
  },
  {
   "start": 3583,
   "end": 3583,
   "type": "Undefined"
  },
  {
   "start": 3584,
   "end": 3757,
   "type": "Code"
  },
  {
   "start": 3758,
   "end": 3759,
   "type": "Undefined"
  },
  {
   "start": 3760,
   "end": 3801,
   "type": "Code"
  },
  {
   "start": 3802,
   "end": 3803,
   "type": "Undefined"
  },
  {
   "start": 3804,
   "end": 3833,
   "type": "Code"
  },
  {
   "start": 3834,
   "end": 4863,
   "type": "Undefined"
  },
  {
   "start": 4864,
   "end": 5119,
   "type": "Byte"
  },
  {
   "start": 5120,
   "end": 5319,
   "type": "Code"
  },
  {
   "start": 5320,
   "end": 5321,
   "type": "Undefined"
  },
  {
   "start": 5322,
   "end": 5374,
   "type": "Code"
  },
  {
   "start": 5375,
   "end": 5375,
   "type": "Undefined"
  },
  {
   "start": 5376,
   "end": 5432,
   "type": "Code"
  },
  {
   "start": 5433,
   "end": 5435,
   "type": "Undefined"
  },
  {
   "start": 5436,
   "end": 5626,
   "type": "Code"
  },
  {
   "start": 5627,
   "end": 5631,
   "type": "Undefined"
  },
  {
   "start": 5632,
   "end": 5820,
   "type": "Code"
  },
  {
   "start": 5821,
   "end": 5823,
   "type": "Undefined"
  },
  {
   "start": 5824,
   "end": 5902,
   "type": "Code"
  },
  {
   "start": 5903,
   "end": 5903,
   "type": "Undefined"
  },
  {
   "start": 5904,
   "end": 5954,
   "type": "Code"
  },
  {
   "start": 5955,
   "end": 5963,
   "type": "Undefined"
  },
  {
   "start": 5964,
   "end": 5981,
   "type": "Code"
  },
  {
   "start": 5982,
   "end": 5991,
   "type": "Byte"
  },
  {
   "start": 5992,
   "end": 5997,
   "type": "Code"
  },
  {
   "start": 5998,
   "end": 5999,
   "type": "Undefined"
  },
  {
   "start": 6000,
   "end": 6108,
   "type": "Code"
  },
  {
   "start": 6109,
   "end": 6111,
   "type": "Byte"
  },
  {
   "start": 6112,
   "end": 6118,
   "type": "Code"
  },
  {
   "start": 6119,
   "end": 6143,
   "type": "Undefined"
  },
  {
   "start": 6144,
   "end": 6156,
   "type": "Code"
  },
  {
   "start": 6157,
   "end": 6157,
   "type": "Byte"
  },
  {
   "start": 6158,
   "end": 6277,
   "type": "Code"
  },
  {
   "start": 6278,
   "end": 6279,
   "type": "Undefined"
  },
  {
   "start": 6280,
   "end": 6287,
   "type": "Code"
  },
  {
   "start": 6288,
   "end": 6293,
   "type": "Byte"
  },
  {
   "start": 6294,
   "end": 6302,
   "type": "Code"
  },
  {
   "start": 6303,
   "end": 6303,
   "type": "Undefined"
  },
  {
   "start": 6304,
   "end": 6318,
   "type": "Code"
  },
  {
   "start": 6319,
   "end": 6319,
   "type": "Undefined"
  },
  {
   "start": 6320,
   "end": 6333,
   "type": "Code"
  },
  {
   "start": 6334,
   "end": 6340,
   "type": "Byte"
  },
  {
   "start": 6341,
   "end": 6349,
   "type": "Code"
  },
  {
   "start": 6350,
   "end": 6351,
   "type": "Undefined"
  },
  {
   "start": 6352,
   "end": 6397,
   "type": "Code"
  },
  {
   "start": 6398,
   "end": 6399,
   "type": "Undefined"
  },
  {
   "start": 6400,
   "end": 6435,
   "type": "Code"
  },
  {
   "start": 6436,
   "end": 6439,
   "type": "Undefined"
  },
  {
   "start": 6440,
   "end": 6446,
   "type": "Code"
  },
  {
   "start": 6447,
   "end": 6447,
   "type": "Undefined"
  },
  {
   "start": 6448,
   "end": 6461,
   "type": "Code"
  },
  {
   "start": 6462,
   "end": 6463,
   "type": "Undefined"
  },
  {
   "start": 6464,
   "end": 6570,
   "type": "Code"
  },
  {
   "start": 6571,
   "end": 6579,
   "type": "Byte"
  },
  {
   "start": 6580,
   "end": 6592,
   "type": "Code"
  },
  {
   "start": 6593,
   "end": 6593,
   "type": "Undefined"
  },
  {
   "start": 6594,
   "end": 6612,
   "type": "Code"
  },
  {
   "start": 6613,
   "end": 6613,
   "type": "Undefined"
  },
  {
   "start": 6614,
   "end": 6623,
   "type": "Byte"
  },
  {
   "start": 6624,
   "end": 6644,
   "type": "Code"
  },
  {
   "start": 6645,
   "end": 6647,
   "type": "Undefined"
  },
  {
   "start": 6648,
   "end": 6863,
   "type": "Code"
  },
  {
   "start": 6864,
   "end": 6866,
   "type": "Undefined"
  },
  {
   "start": 6867,
   "end": 6926,
   "type": "Code"
  },
  {
   "start": 6927,
   "end": 6927,
   "type": "Undefined"
  },
  {
   "start": 6928,
   "end": 7016,
   "type": "Code"
  },
  {
   "start": 7017,
   "end": 7020,
   "type": "Undefined"
  },
  {
   "start": 7021,
   "end": 7092,
   "type": "Code"
  },
  {
   "start": 7093,
   "end": 7103,
   "type": "Byte"
  },
  {
   "start": 7104,
   "end": 7163,
   "type": "Code"
  },
  {
   "start": 7164,
   "end": 7167,
   "type": "Undefined"
  },
  {
   "start": 7168,
   "end": 7294,
   "type": "Code"
  },
  {
   "start": 7295,
   "end": 7295,
   "type": "Undefined"
  },
  {
   "start": 7296,
   "end": 7319,
   "type": "Code"
  },
  {
   "start": 7320,
   "end": 7327,
   "type": "Byte"
  },
  {
   "start": 7328,
   "end": 7387,
   "type": "Code"
  },
  {
   "start": 7388,
   "end": 7391,
   "type": "Undefined"
  },
  {
   "start": 7392,
   "end": 7408,
   "type": "Code"
  },
  {
   "start": 7409,
   "end": 7409,
   "type": "Undefined"
  },
  {
   "start": 7410,
   "end": 7420,
   "type": "Code"
  },
  {
   "start": 7421,
   "end": 7423,
   "type": "Undefined"
  },
  {
   "start": 7424,
   "end": 7448,
   "type": "Code"
  },
  {
   "start": 7449,
   "end": 7450,
   "type": "Undefined"
  },
  {
   "start": 7451,
   "end": 7480,
   "type": "Code"
  },
  {
   "start": 7481,
   "end": 7482,
   "type": "Undefined"
  },
  {
   "start": 7483,
   "end": 7515,
   "type": "Code"
  },
  {
   "start": 7516,
   "end": 7517,
   "type": "Undefined"
  },
  {
   "start": 7518,
   "end": 7547,
   "type": "Code"
  },
  {
   "start": 7548,
   "end": 7549,
   "type": "Undefined"
  },
  {
   "start": 7550,
   "end": 7606,
   "type": "Code"
  },
  {
   "start": 7607,
   "end": 7608,
   "type": "Undefined"
  },
  {
   "start": 7609,
   "end": 7637,
   "type": "Code"
  },
  {
   "start": 7638,
   "end": 7644,
   "type": "Undefined"
  },
  {
   "start": 7645,
   "end": 7697,
   "type": "Code"
  },
  {
   "start": 7698,
   "end": 7703,
   "type": "Undefined"
  },
  {
   "start": 7704,
   "end": 8013,
   "type": "Code"
  },
  {
   "start": 8014,
   "end": 8015,
   "type": "Undefined"
  },
  {
   "start": 8016,
   "end": 8024,
   "type": "Code"
  },
  {
   "start": 8025,
   "end": 8031,
   "type": "Undefined"
  },
  {
   "start": 8032,
   "end": 8053,
   "type": "Code"
  },
  {
   "start": 8054,
   "end": 8055,
   "type": "Undefined"
  },
  {
   "start": 8056,
   "end": 8077,
   "type": "Code"
  },
  {
   "start": 8078,
   "end": 8079,
   "type": "Undefined"
  },
  {
   "start": 8080,
   "end": 8101,
   "type": "Code"
  },
  {
   "start": 8102,
   "end": 8103,
   "type": "Undefined"
  },
  {
   "start": 8104,
   "end": 8125,
   "type": "Code"
  },
  {
   "start": 8126,
   "end": 8159,
   "type": "Byte"
  },
  {
   "start": 8160,
   "end": 8179,
   "type": "Code"
  },
  {
   "start": 8180,
   "end": 8180,
   "type": "Undefined"
  },
  {
   "start": 8181,
   "end": 8254,
   "type": "Code"
  },
  {
   "start": 8255,
   "end": 8255,
   "type": "Undefined"
  },
  {
   "start": 8256,
   "end": 8318,
   "type": "Code"
  },
  {
   "start": 8319,
   "end": 8319,
   "type": "Undefined"
  },
  {
   "start": 8320,
   "end": 8447,
   "type": "Code"
  },
  {
   "start": 8448,
   "end": 8449,
   "type": "Undefined"
  },
  {
   "start": 8450,
   "end": 8580,
   "type": "Code"
  },
  {
   "start": 8581,
   "end": 8582,
   "type": "Undefined"
  },
  {
   "start": 8583,
   "end": 8706,
   "type": "Code"
  },
  {
   "start": 8707,
   "end": 8707,
   "type": "Undefined"
  },
  {
   "start": 8708,
   "end": 8717,
   "type": "Code"
  },
  {
   "start": 8718,
   "end": 8719,
   "type": "Undefined"
  },
  {
   "start": 8720,
   "end": 8732,
   "type": "Code"
  },
  {
   "start": 8733,
   "end": 8733,
   "type": "Undefined"
  },
  {
   "start": 8734,
   "end": 8798,
   "type": "Code"
  },
  {
   "start": 8799,
   "end": 8800,
   "type": "Undefined"
  },
  {
   "start": 8801,
   "end": 8809,
   "type": "Code"
  },
  {
   "start": 8810,
   "end": 8811,
   "type": "Undefined"
  },
  {
   "start": 8812,
   "end": 9000,
   "type": "Code"
  },
  {
   "start": 9001,
   "end": 9004,
   "type": "Undefined"
  },
  {
   "start": 9005,
   "end": 9080,
   "type": "Code"
  },
  {
   "start": 9081,
   "end": 9087,
   "type": "Undefined"
  },
  {
   "start": 9088,
   "end": 9271,
   "type": "Code"
  },
  {
   "start": 9272,
   "end": 9279,
   "type": "Byte"
  },
  {
   "start": 9280,
   "end": 9565,
   "type": "Code"
  },
  {
   "start": 9566,
   "end": 9567,
   "type": "Undefined"
  },
  {
   "start": 9568,
   "end": 9593,
   "type": "Code"
  },
  {
   "start": 9594,
   "end": 9595,
   "type": "Undefined"
  },
  {
   "start": 9596,
   "end": 9678,
   "type": "Code"
  },
  {
   "start": 9679,
   "end": 9684,
   "type": "Undefined"
  },
  {
   "start": 9685,
   "end": 9764,
   "type": "Code"
  },
  {
   "start": 9765,
   "end": 9766,
   "type": "Undefined"
  },
  {
   "start": 9767,
   "end": 9846,
   "type": "Code"
  },
  {
   "start": 9847,
   "end": 9848,
   "type": "Undefined"
  },
  {
   "start": 9849,
   "end": 9928,
   "type": "Code"
  },
  {
   "start": 9929,
   "end": 9930,
   "type": "Undefined"
  },
  {
   "start": 9931,
   "end": 10010,
   "type": "Code"
  },
  {
   "start": 10011,
   "end": 10012,
   "type": "Undefined"
  },
  {
   "start": 10013,
   "end": 10092,
   "type": "Code"
  },
  {
   "start": 10093,
   "end": 10094,
   "type": "Undefined"
  },
  {
   "start": 10095,
   "end": 10174,
   "type": "Code"
  },
  {
   "start": 10175,
   "end": 10175,
   "type": "Undefined"
  },
  {
   "start": 10176,
   "end": 10189,
   "type": "Code"
  },
  {
   "start": 10190,
   "end": 10196,
   "type": "Undefined"
  },
  {
   "start": 10197,
   "end": 10302,
   "type": "Code"
  },
  {
   "start": 10303,
   "end": 10304,
   "type": "Undefined"
  },
  {
   "start": 10305,
   "end": 10521,
   "type": "Code"
  },
  {
   "start": 10522,
   "end": 10523,
   "type": "Undefined"
  },
  {
   "start": 10524,
   "end": 10740,
   "type": "Code"
  },
  {
   "start": 10741,
   "end": 10742,
   "type": "Undefined"
  },
  {
   "start": 10743,
   "end": 10878,
   "type": "Code"
  },
  {
   "start": 10879,
   "end": 10879,
   "type": "Undefined"
  },
  {
   "start": 10880,
   "end": 10935,
   "type": "Code"
  },
  {
   "start": 10936,
   "end": 10940,
   "type": "Undefined"
  },
  {
   "start": 10941,
   "end": 10963,
   "type": "Code"
  },
  {
   "start": 10964,
   "end": 10967,
   "type": "Undefined"
  },
  {
   "start": 10968,
   "end": 11342,
   "type": "Code"
  },
  {
   "start": 11343,
   "end": 11344,
   "type": "Byte"
  },
  {
   "start": 11345,
   "end": 11440,
   "type": "Code"
  },
  {
   "start": 11441,
   "end": 11441,
   "type": "Undefined"
  },
  {
   "start": 11442,
   "end": 11465,
   "type": "Code"
  },
  {
   "start": 11466,
   "end": 11466,
   "type": "Byte"
  },
  {
   "start": 11467,
   "end": 13253,
   "type": "Code"
  },
  {
   "start": 13254,
   "end": 13255,
   "type": "Undefined"
  },
  {
   "start": 13256,
   "end": 13283,
   "type": "Code"
  },
  {
   "start": 13284,
   "end": 13285,
   "type": "Undefined"
  },
  {
   "start": 13286,
   "end": 13645,
   "type": "Code"
  },
  {
   "start": 13646,
   "end": 13647,
   "type": "Undefined"
  },
  {
   "start": 13648,
   "end": 13660,
   "type": "Code"
  },
  {
   "start": 13661,
   "end": 13663,
   "type": "Undefined"
  },
  {
   "start": 13664,
   "end": 13669,
   "type": "Code"
  },
  {
   "start": 13670,
   "end": 13678,
   "type": "Undefined"
  },
  {
   "start": 13679,
   "end": 13716,
   "type": "Code"
  },
  {
   "start": 13717,
   "end": 13718,
   "type": "Undefined"
  },
  {
   "start": 13719,
   "end": 13739,
   "type": "Code"
  },
  {
   "start": 13740,
   "end": 13740,
   "type": "Undefined"
  },
  {
   "start": 13741,
   "end": 14127,
   "type": "Code"
  },
  {
   "start": 14128,
   "end": 14131,
   "type": "Undefined"
  },
  {
   "start": 14132,
   "end": 14242,
   "type": "Code"
  },
  {
   "start": 14243,
   "end": 14244,
   "type": "Undefined"
  },
  {
   "start": 14245,
   "end": 14283,
   "type": "Code"
  },
  {
   "start": 14284,
   "end": 14285,
   "type": "Undefined"
  },
  {
   "start": 14286,
   "end": 14318,
   "type": "Code"
  },
  {
   "start": 14319,
   "end": 14320,
   "type": "Undefined"
  },
  {
   "start": 14321,
   "end": 14457,
   "type": "Code"
  },
  {
   "start": 14458,
   "end": 14463,
   "type": "Undefined"
  },
  {
   "start": 14464,
   "end": 14611,
   "type": "Code"
  },
  {
   "start": 14612,
   "end": 14615,
   "type": "Undefined"
  },
  {
   "start": 14616,
   "end": 14627,
   "type": "Code"
  },
  {
   "start": 14628,
   "end": 14629,
   "type": "Undefined"
  },
  {
   "start": 14630,
   "end": 14690,
   "type": "Code"
  },
  {
   "start": 14691,
   "end": 14691,
   "type": "Undefined"
  },
  {
   "start": 14692,
   "end": 14715,
   "type": "Code"
  },
  {
   "start": 14716,
   "end": 14717,
   "type": "Undefined"
  },
  {
   "start": 14718,
   "end": 14834,
   "type": "Code"
  },
  {
   "start": 14835,
   "end": 14837,
   "type": "Undefined"
  },
  {
   "start": 14838,
   "end": 15229,
   "type": "Code"
  },
  {
   "start": 15230,
   "end": 15231,
   "type": "Undefined"
  },
  {
   "start": 15232,
   "end": 15545,
   "type": "Code"
  },
  {
   "start": 15546,
   "end": 15547,
   "type": "Undefined"
  },
  {
   "start": 15548,
   "end": 15634,
   "type": "Code"
  },
  {
   "start": 15635,
   "end": 15664,
   "type": "Byte"
  },
  {
   "start": 15665,
   "end": 15743,
   "type": "Code"
  },
  {
   "start": 15744,
   "end": 15745,
   "type": "Undefined"
  },
  {
   "start": 15746,
   "end": 15800,
   "type": "Code"
  },
  {
   "start": 15801,
   "end": 15801,
   "type": "Undefined"
  },
  {
   "start": 15802,
   "end": 15912,
   "type": "Code"
  },
  {
   "start": 15913,
   "end": 15915,
   "type": "Undefined"
  },
  {
   "start": 15916,
   "end": 16207,
   "type": "Code"
  },
  {
   "start": 16208,
   "end": 16209,
   "type": "Undefined"
  },
  {
   "start": 16210,
   "end": 16250,
   "type": "Code"
  },
  {
   "start": 16251,
   "end": 16252,
   "type": "Undefined"
  },
  {
   "start": 16253,
   "end": 16281,
   "type": "Code"
  },
  {
   "start": 16282,
   "end": 16282,
   "type": "Undefined"
  },
  {
   "start": 16283,
   "end": 16295,
   "type": "Code"
  },
  {
   "start": 16296,
   "end": 16297,
   "type": "Undefined"
  },
  {
   "start": 16298,
   "end": 16310,
   "type": "Code"
  },
  {
   "start": 16311,
   "end": 16312,
   "type": "Undefined"
  },
  {
   "start": 16313,
   "end": 16325,
   "type": "Code"
  },
  {
   "start": 16326,
   "end": 16327,
   "type": "Undefined"
  },
  {
   "start": 16328,
   "end": 16383,
   "type": "Code"
  },
  {
   "start": 16384,
   "end": 17407,
   "type": "Byte"
  },
  {
   "start": 17408,
   "end": 18431,
   "type": "Undefined"
  },
  {
   "start": 18432,
   "end": 32783,
   "type": "Byte"
  },
  {
   "start": 32784,
   "end": 33052,
   "type": "Code"
  },
  {
   "start": 33053,
   "end": 33054,
   "type": "Undefined"
  },
  {
   "start": 33055,
   "end": 33130,
   "type": "Code"
  },
  {
   "start": 33131,
   "end": 33132,
   "type": "Undefined"
  },
  {
   "start": 33133,
   "end": 37077,
   "type": "Code"
  },
  {
   "start": 37078,
   "end": 37119,
   "type": "Byte"
  },
  {
   "start": 37120,
   "end": 37226,
   "type": "Code"
  },
  {
   "start": 37227,
   "end": 37244,
   "type": "Undefined"
  },
  {
   "start": 37245,
   "end": 37294,
   "type": "Code"
  },
  {
   "start": 37295,
   "end": 37295,
   "type": "Undefined"
  },
  {
   "start": 37296,
   "end": 37341,
   "type": "Code"
  },
  {
   "start": 37342,
   "end": 37343,
   "type": "Undefined"
  },
  {
   "start": 37344,
   "end": 37351,
   "type": "Code"
  },
  {
   "start": 37352,
   "end": 37358,
   "type": "Byte"
  },
  {
   "start": 37359,
   "end": 37375,
   "type": "Code"
  },
  {
   "start": 37376,
   "end": 37383,
   "type": "Byte"
  },
  {
   "start": 37384,
   "end": 37457,
   "type": "Code"
  },
  {
   "start": 37458,
   "end": 37482,
   "type": "Byte"
  },
  {
   "start": 37483,
   "end": 37768,
   "type": "Code"
  },
  {
   "start": 37769,
   "end": 37770,
   "type": "Undefined"
  },
  {
   "start": 37771,
   "end": 37860,
   "type": "Code"
  },
  {
   "start": 37861,
   "end": 37864,
   "type": "Undefined"
  },
  {
   "start": 37865,
   "end": 37880,
   "type": "Code"
  },
  {
   "start": 37881,
   "end": 37886,
   "type": "Undefined"
  },
  {
   "start": 37887,
   "end": 38006,
   "type": "Code"
  },
  {
   "start": 38007,
   "end": 38008,
   "type": "Undefined"
  },
  {
   "start": 38009,
   "end": 38014,
   "type": "Code"
  },
  {
   "start": 38015,
   "end": 38015,
   "type": "Undefined"
  },
  {
   "start": 38016,
   "end": 38181,
   "type": "Code"
  },
  {
   "start": 38182,
   "end": 38190,
   "type": "Undefined"
  },
  {
   "start": 38191,
   "end": 38233,
   "type": "Code"
  },
  {
   "start": 38234,
   "end": 38234,
   "type": "Undefined"
  },
  {
   "start": 38235,
   "end": 38253,
   "type": "Code"
  },
  {
   "start": 38254,
   "end": 38255,
   "type": "Undefined"
  },
  {
   "start": 38256,
   "end": 38398,
   "type": "Code"
  },
  {
   "start": 38399,
   "end": 38399,
   "type": "Undefined"
  },
  {
   "start": 38400,
   "end": 38860,
   "type": "Code"
  },
  {
   "start": 38861,
   "end": 38863,
   "type": "Byte"
  },
  {
   "start": 38864,
   "end": 38874,
   "type": "Code"
  },
  {
   "start": 38875,
   "end": 38879,
   "type": "Byte"
  },
  {
   "start": 38880,
   "end": 38937,
   "type": "Code"
  },
  {
   "start": 38938,
   "end": 38943,
   "type": "Undefined"
  },
  {
   "start": 38944,
   "end": 39001,
   "type": "Code"
  },
  {
   "start": 39002,
   "end": 39007,
   "type": "Undefined"
  },
  {
   "start": 39008,
   "end": 39053,
   "type": "Code"
  },
  {
   "start": 39054,
   "end": 39055,
   "type": "Undefined"
  },
  {
   "start": 39056,
   "end": 39101,
   "type": "Code"
  },
  {
   "start": 39102,
   "end": 39103,
   "type": "Undefined"
  },
  {
   "start": 39104,
   "end": 39197,
   "type": "Code"
  },
  {
   "start": 39198,
   "end": 39199,
   "type": "Undefined"
  },
  {
   "start": 39200,
   "end": 39210,
   "type": "Code"
  },
  {
   "start": 39211,
   "end": 39215,
   "type": "Undefined"
  },
  {
   "start": 39216,
   "end": 39269,
   "type": "Code"
  },
  {
   "start": 39270,
   "end": 39271,
   "type": "Undefined"
  },
  {
   "start": 39272,
   "end": 39282,
   "type": "Code"
  },
  {
   "start": 39283,
   "end": 39283,
   "type": "Undefined"
  },
  {
   "start": 39284,
   "end": 39294,
   "type": "Code"
  },
  {
   "start": 39295,
   "end": 39295,
   "type": "Undefined"
  },
  {
   "start": 39296,
   "end": 39461,
   "type": "Code"
  },
  {
   "start": 39462,
   "end": 39463,
   "type": "Undefined"
  },
  {
   "start": 39464,
   "end": 39545,
   "type": "Code"
  },
  {
   "start": 39546,
   "end": 39551,
   "type": "Undefined"
  },
  {
   "start": 39552,
   "end": 39639,
   "type": "Code"
  },
  {
   "start": 39640,
   "end": 39641,
   "type": "Undefined"
  },
  {
   "start": 39642,
   "end": 39672,
   "type": "Code"
  },
  {
   "start": 39673,
   "end": 39679,
   "type": "Byte"
  },
  {
   "start": 39680,
   "end": 39772,
   "type": "Code"
  },
  {
   "start": 39773,
   "end": 39775,
   "type": "Undefined"
  },
  {
   "start": 39776,
   "end": 39788,
   "type": "Code"
  },
  {
   "start": 39789,
   "end": 39791,
   "type": "Undefined"
  },
  {
   "start": 39792,
   "end": 39802,
   "type": "Code"
  },
  {
   "start": 39803,
   "end": 39803,
   "type": "Undefined"
  },
  {
   "start": 39804,
   "end": 39848,
   "type": "Code"
  },
  {
   "start": 39849,
   "end": 39849,
   "type": "Undefined"
  },
  {
   "start": 39850,
   "end": 39877,
   "type": "Code"
  },
  {
   "start": 39878,
   "end": 39879,
   "type": "Undefined"
  },
  {
   "start": 39880,
   "end": 39899,
   "type": "Code"
  },
  {
   "start": 39900,
   "end": 39901,
   "type": "Undefined"
  },
  {
   "start": 39902,
   "end": 39946,
   "type": "Code"
  },
  {
   "start": 39947,
   "end": 39947,
   "type": "Undefined"
  },
  {
   "start": 39948,
   "end": 39958,
   "type": "Code"
  },
  {
   "start": 39959,
   "end": 39959,
   "type": "Undefined"
  },
  {
   "start": 39960,
   "end": 40010,
   "type": "Code"
  },
  {
   "start": 40011,
   "end": 40011,
   "type": "Undefined"
  },
  {
   "start": 40012,
   "end": 40106,
   "type": "Code"
  },
  {
   "start": 40107,
   "end": 40107,
   "type": "Undefined"
  },
  {
   "start": 40108,
   "end": 40239,
   "type": "Code"
  },
  {
   "start": 40240,
   "end": 40244,
   "type": "Undefined"
  },
  {
   "start": 40245,
   "end": 40310,
   "type": "Code"
  },
  {
   "start": 40311,
   "end": 40330,
   "type": "Byte"
  },
  {
   "start": 40331,
   "end": 40509,
   "type": "Code"
  },
  {
   "start": 40510,
   "end": 40511,
   "type": "Undefined"
  },
  {
   "start": 40512,
   "end": 40524,
   "type": "Code"
  },
  {
   "start": 40525,
   "end": 40527,
   "type": "Undefined"
  },
  {
   "start": 40528,
   "end": 40548,
   "type": "Code"
  },
  {
   "start": 40549,
   "end": 40551,
   "type": "Undefined"
  },
  {
   "start": 40552,
   "end": 40592,
   "type": "Code"
  },
  {
   "start": 40593,
   "end": 40594,
   "type": "Undefined"
  },
  {
   "start": 40595,
   "end": 40605,
   "type": "Code"
  },
  {
   "start": 40606,
   "end": 40643,
   "type": "Byte"
  },
  {
   "start": 40644,
   "end": 40657,
   "type": "Code"
  },
  {
   "start": 40658,
   "end": 40659,
   "type": "Undefined"
  },
  {
   "start": 40660,
   "end": 40670,
   "type": "Code"
  },
  {
   "start": 40671,
   "end": 40671,
   "type": "Undefined"
  },
  {
   "start": 40672,
   "end": 40677,
   "type": "Code"
  },
  {
   "start": 40678,
   "end": 40679,
   "type": "Undefined"
  },
  {
   "start": 40680,
   "end": 40703,
   "type": "Code"
  },
  {
   "start": 40704,
   "end": 40735,
   "type": "Byte"
  },
  {
   "start": 40736,
   "end": 40767,
   "type": "Address"
  },
  {
   "start": 40768,
   "end": 40941,
   "type": "Byte"
  },
  {
   "start": 40942,
   "end": 40945,
   "type": "Undefined"
  },
  {
   "start": 40946,
   "end": 41087,
   "type": "Byte"
  },
  {
   "start": 41088,
   "end": 41215,
   "type": "Address"
  },
  {
   "start": 41216,
   "end": 41727,
   "type": "Byte"
  },
  {
   "start": 41728,
   "end": 41983,
   "type": "Address"
  },
  {
   "start": 41984,
   "end": 47615,
   "type": "Byte"
  },
  {
   "start": 47616,
   "end": 47691,
   "type": "Code"
  },
  {
   "start": 47692,
   "end": 48611,
   "type": "Byte"
  },
  {
   "start": 48612,
   "end": 49701,
   "type": "Code"
  },
  {
   "start": 49702,
   "end": 50006,
   "type": "Byte"
  },
  {
   "start": 50007,
   "end": 50061,
   "type": "Code"
  },
  {
   "start": 50062,
   "end": 53245,
   "type": "Byte"
  },
  {
   "start": 53246,
   "end": 53247,
   "type": "Undefined"
  },
  {
   "start": 53248,
   "end": 65387,
   "type": "Byte"
  },
  {
   "start": 65388,
   "end": 65391,
   "type": "Undefined"
  },
  {
   "start": 65392,
   "end": 65529,
   "type": "Byte"
  },
  {
   "start": 65530,
   "end": 65535,
   "type": "Address"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "a_0000",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2,
   "name": "zpa_02",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3,
   "name": "zpa_03",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4,
   "name": "zpa_04",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5,
   "name": "zpa_05",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6,
   "name": "zpa_06",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8,
   "name": "zpa_08",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9,
   "name": "zpa_09",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 24,
   "name": "zpf_18",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 25,
   "name": "zpf_19",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 26,
   "name": "zpp_1A",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 27,
   "name": "zpa_1B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28,
   "name": "zpp_1C",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 29,
   "name": "zpa_1D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30,
   "name": "zpp_1E",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 31,
   "name": "zpa_1F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32,
   "name": "zpp_20",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 33,
   "name": "zpa_21",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34,
   "name": "zpp_22",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 35,
   "name": "zpa_23",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36,
   "name": "zpp_24",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 37,
   "name": "zpa_25",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38,
   "name": "zpp_26",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 39,
   "name": "zpf_27",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 40,
   "name": "zpa_28",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41,
   "name": "zpa_29",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpa_2A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43,
   "name": "zpa_2B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44,
   "name": "zpa_2C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45,
   "name": "zpa_2D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpa_2E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47,
   "name": "zpf_2F",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 48,
   "name": "zpf_30",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 49,
   "name": "zpa_31",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50,
   "name": "zpa_32",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51,
   "name": "zpa_33",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52,
   "name": "zpa_34",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53,
   "name": "zpa_35",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 54,
   "name": "zpa_36",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55,
   "name": "zpf_37",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 56,
   "name": "zpf_38",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 57,
   "name": "zpa_39",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58,
   "name": "zpa_3A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59,
   "name": "zpa_3B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60,
   "name": "zpa_3C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 61,
   "name": "zpa_3D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62,
   "name": "zpa_3E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63,
   "name": "zpf_3F",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 64,
   "name": "zpf_40",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 65,
   "name": "zpa_41",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 66,
   "name": "zpa_42",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 67,
   "name": "zpa_43",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 68,
   "name": "zpa_44",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 69,
   "name": "zpa_45",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 70,
   "name": "zpa_46",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 71,
   "name": "zpf_47",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 72,
   "name": "zpa_48",
   "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": 76,
   "name": "zpa_4C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 77,
   "name": "zpa_4D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 78,
   "name": "zpa_4E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 81,
   "name": "zpp_51",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 82,
   "name": "zpa_52",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 83,
   "name": "zpp_53",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 84,
   "name": "zpa_54",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 85,
   "name": "zpp_55",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 86,
   "name": "zpa_56",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 113,
   "name": "zpp_71",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 114,
   "name": "zpa_72",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 139,
   "name": "zpa_8B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 140,
   "name": "zpa_8C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 141,
   "name": "zpa_8D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 142,
   "name": "zpa_8E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 143,
   "name": "zpf_8F",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 144,
   "name": "zpf_90",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 160,
   "name": "zpa_A0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "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": "zpa_A4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 165,
   "name": "zpa_A5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 166,
   "name": "zpa_A6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 167,
   "name": "zpa_A7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 168,
   "name": "zpa_A8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 169,
   "name": "zpa_A9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 183,
   "name": "zpf_B7",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 184,
   "name": "zpa_B8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 185,
   "name": "zpa_B9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 186,
   "name": "zpa_BA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 187,
   "name": "zpa_BB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 188,
   "name": "zpa_BC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 189,
   "name": "zpa_BD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 190,
   "name": "zpa_BE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 191,
   "name": "zpa_BF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 192,
   "name": "zpa_C0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 193,
   "name": "zpa_C1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 194,
   "name": "zpa_C2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 195,
   "name": "zpa_C3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 196,
   "name": "zpa_C4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 197,
   "name": "zpa_C5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 198,
   "name": "zpa_C6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 199,
   "name": "zpa_C7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 200,
   "name": "zpa_C8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 201,
   "name": "zpa_C9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 202,
   "name": "zpa_CA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 203,
   "name": "zpa_CB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 204,
   "name": "zpa_CC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 205,
   "name": "zpa_CD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 206,
   "name": "zpa_CE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 207,
   "name": "zpa_CF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 208,
   "name": "zpa_D0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 209,
   "name": "zpa_D1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 210,
   "name": "zpa_D2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 211,
   "name": "zpa_D3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 212,
   "name": "zpa_D4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 213,
   "name": "zpa_D5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 216,
   "name": "zpf_D8",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 217,
   "name": "zpa_D9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 218,
   "name": "zpa_DA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 219,
   "name": "zpa_DB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 220,
   "name": "zpa_DC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 221,
   "name": "zpa_DD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 222,
   "name": "zpa_DE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 223,
   "name": "zpa_DF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 224,
   "name": "zpf_E0",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 225,
   "name": "zpa_E1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 226,
   "name": "zpa_E2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 227,
   "name": "zpa_E3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 228,
   "name": "zpa_E4",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 229,
   "name": "zpa_E5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 230,
   "name": "zpa_E6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 231,
   "name": "zpa_E7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 232,
   "name": "zpp_E8",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 233,
   "name": "zpa_E9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 234,
   "name": "zpp_EA",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 235,
   "name": "zpa_EB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 236,
   "name": "zpp_EC",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 237,
   "name": "zpa_ED",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 238,
   "name": "zpp_EE",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 239,
   "name": "zpa_EF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 240,
   "name": "zpp_F0",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 241,
   "name": "zpa_F1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 242,
   "name": "zpp_F2",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 243,
   "name": "zpa_F3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 244,
   "name": "zpp_F4",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 245,
   "name": "zpa_F5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 246,
   "name": "zpp_F6",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 247,
   "name": "zpa_F7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 248,
   "name": "zpa_F8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 249,
   "name": "zpa_F9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 250,
   "name": "zpa_FA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "zpa_FD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 254,
   "name": "zpa_FE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 255,
   "name": "zpa_FF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 670,
   "name": "a_029E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "sfx_request",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1025,
   "name": "t_0401",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1026,
   "name": "t_0402",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1027,
   "name": "sfx_stop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1030,
   "name": "sfx_play_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1040,
   "name": "j_0410",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1058,
   "name": "b_0422",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1066,
   "name": "b_042A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1074,
   "name": "b_0432",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1099,
   "name": "b_044B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1103,
   "name": "a_044F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1104,
   "name": "a_0450",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1119,
   "name": "b_045F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1139,
   "name": "b_0473",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1153,
   "name": "b_0481",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1181,
   "name": "b_049D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1206,
   "name": "j_04B6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1225,
   "name": "j_04C9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1243,
   "name": "b_04DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1246,
   "name": "j_04DE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1249,
   "name": "b_04E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1269,
   "name": "b_04F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1280,
   "name": "j_0500",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1283,
   "name": "b_0503",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1301,
   "name": "b_0515",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1316,
   "name": "b_0524",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1321,
   "name": "j_0529",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1324,
   "name": "j_052C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 1330,
   "name": "r_0532",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 1331,
   "name": "sfx_stop_voice",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 1352,
   "name": "sfx_voice_reg",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1355,
   "name": "sfx_cur_reg",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1356,
   "name": "sfx_frame_toggle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1357,
   "name": "sfx_cur_voice",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1358,
   "name": "sfx_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1361,
   "name": "t_0551",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1364,
   "name": "t_0554",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1367,
   "name": "t_0557",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1370,
   "name": "t_055a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1373,
   "name": "t_055d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1376,
   "name": "t_0560",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1379,
   "name": "t_0563",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1382,
   "name": "t_0566",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1385,
   "name": "t_0569",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1388,
   "name": "t_056c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1391,
   "name": "t_056f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1394,
   "name": "t_0572",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1397,
   "name": "t_0575",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1400,
   "name": "t_0578",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1403,
   "name": "t_057b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1406,
   "name": "t_057e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1409,
   "name": "t_0581",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1412,
   "name": "t_0584",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1415,
   "name": "t_0587",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1418,
   "name": "sfx_rec_offset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1419,
   "name": "sfx_script_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1427,
   "name": "sfx_script_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1435,
   "name": "sfx_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1580,
   "name": "b_062C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 1600,
   "name": "sfx_scripts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1632,
   "name": "t_0660",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1640,
   "name": "sfx_rec_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1641,
   "name": "t_0669",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1644,
   "name": "t_066c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1647,
   "name": "t_066f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1808,
   "name": "sfx_rec_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1809,
   "name": "t_0711",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1810,
   "name": "t_0712",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1811,
   "name": "t_0713",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1812,
   "name": "t_0714",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1813,
   "name": "t_0715",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1814,
   "name": "t_0716",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 1976,
   "name": "leftover_07b8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1984,
   "name": "sfx_queue",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1985,
   "name": "a_07C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1986,
   "name": "f_07C2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1988,
   "name": "f_07C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1989,
   "name": "a_07C5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1990,
   "name": "a_07C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1991,
   "name": "a_07C7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1992,
   "name": "a_07C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1993,
   "name": "a_07C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1994,
   "name": "leftover_07ca",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2048,
   "name": "leftover_0800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2056,
   "name": "icons_update",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2172,
   "name": "b_087C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2184,
   "name": "b_0888",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2189,
   "name": "b_088D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2197,
   "name": "b_0895",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2230,
   "name": "b_08B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2233,
   "name": "b_08B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2236,
   "name": "b_08BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2272,
   "name": "b_08E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2278,
   "name": "b_08E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2288,
   "name": "b_08F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2294,
   "name": "b_08F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2302,
   "name": "j_08FE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2305,
   "name": "anim_frames_update",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2307,
   "name": "b_0903",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2322,
   "name": "j_0912",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 2342,
   "name": "b_0926",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2350,
   "name": "b_092E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2356,
   "name": "b_0934",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2358,
   "name": "b_0936",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2380,
   "name": "b_094C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2384,
   "name": "b_0950",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2387,
   "name": "b_0953",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2390,
   "name": "b_0956",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2396,
   "name": "b_095C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2428,
   "name": "b_097C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2433,
   "name": "icon_bought_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2458,
   "name": "b_099A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2461,
   "name": "bullet_chain_1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2470,
   "name": "bullet_chain_2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2479,
   "name": "bullet_chain_3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2488,
   "name": "bullet_chain_4",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2497,
   "name": "bullet_chain_5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2506,
   "name": "bullet_chain_6",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2515,
   "name": "bullet_chain_7",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2524,
   "name": "frame_tail_select",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2532,
   "name": "b_09E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2535,
   "name": "irq_band_09e7",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2560,
   "name": "b_0A00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2582,
   "name": "b_0A16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2593,
   "name": "b_0A21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2610,
   "name": "b_0A32",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2617,
   "name": "b_0A39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2626,
   "name": "b_0A42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2634,
   "name": "b_0A4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2640,
   "name": "b_0A50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2664,
   "name": "irq_set_four_x",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2668,
   "name": "b_0A6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2688,
   "name": "irq_band_0a80",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2712,
   "name": "b_0A98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2768,
   "name": "ship_reset_position",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2804,
   "name": "read_controls",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2812,
   "name": "b_0AFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2816,
   "name": "jmp_955b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2819,
   "name": "interlude_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2833,
   "name": "b_0B11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2840,
   "name": "b_0B18",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2856,
   "name": "b_0B28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2875,
   "name": "b_0B3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2895,
   "name": "b_0B4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2898,
   "name": "b_0B52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2957,
   "name": "b_0B8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2960,
   "name": "b_0B90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2971,
   "name": "b_0B9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2976,
   "name": "reset_1110_block",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3016,
   "name": "title_start_game",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3032,
   "name": "title_toggle_f1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3043,
   "name": "title_toggle_f3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3054,
   "name": "title_toggle_f5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3072,
   "name": "scan_title_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3076,
   "name": "b_0C04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3099,
   "name": "b_0C1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3107,
   "name": "b_0C23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3115,
   "name": "b_0C2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3130,
   "name": "b_0C3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3136,
   "name": "read_keys",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3140,
   "name": "b_0C44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3162,
   "name": "b_0C5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3177,
   "name": "b_0C69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3187,
   "name": "b_0C73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3202,
   "name": "b_0C82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3212,
   "name": "r_0C8C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3216,
   "name": "irq_title_keys",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3235,
   "name": "b_0CA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3238,
   "name": "j_0CA6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3252,
   "name": "b_0CB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3263,
   "name": "b_0CBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3274,
   "name": "b_0CCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3285,
   "name": "b_0CD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3296,
   "name": "b_0CE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3308,
   "name": "b_0CEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3312,
   "name": "title_key_latch",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3328,
   "name": "hiscore_insert",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3330,
   "name": "b_0D02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3344,
   "name": "b_0D10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3348,
   "name": "b_0D14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3364,
   "name": "b_0D24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3382,
   "name": "b_0D36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3393,
   "name": "b_0D41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3395,
   "name": "b_0D43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3416,
   "name": "b_0D58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3420,
   "name": "b_0D5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3441,
   "name": "b_0D71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3443,
   "name": "b_0D73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3472,
   "name": "hiscore_draw_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3484,
   "name": "b_0D9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3493,
   "name": "b_0DA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3536,
   "name": "clear_4be1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3540,
   "name": "b_0DD4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3549,
   "name": "clear_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3551,
   "name": "b_0DDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3584,
   "name": "copy_sprite_rows_a",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3586,
   "name": "b_0E02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3597,
   "name": "b_0E0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3608,
   "name": "b_0E18",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3619,
   "name": "b_0E23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3630,
   "name": "b_0E2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3642,
   "name": "copy_sprite_rows_b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3644,
   "name": "b_0E3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3655,
   "name": "b_0E47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3666,
   "name": "b_0E52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3677,
   "name": "b_0E5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3688,
   "name": "b_0E68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3700,
   "name": "copy_sprite_rows_c",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3702,
   "name": "b_0E76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3713,
   "name": "b_0E81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3724,
   "name": "b_0E8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3735,
   "name": "b_0E97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3746,
   "name": "b_0EA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3760,
   "name": "clear_bullets",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3764,
   "name": "b_0EB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3804,
   "name": "irq_controls",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3814,
   "name": "b_0EE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3817,
   "name": "b_0EE9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3828,
   "name": "b_0EF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3839,
   "name": "f_0EFF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3840,
   "name": "a_0F00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3841,
   "name": "a_0F01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3842,
   "name": "a_0F02",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3843,
   "name": "a_0F03",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3844,
   "name": "a_0F04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3845,
   "name": "a_0F05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3846,
   "name": "a_0F06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3847,
   "name": "f_0F07",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3853,
   "name": "f_0F0D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3857,
   "name": "f_0F11",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3859,
   "name": "f_0F13",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3861,
   "name": "f_0F15",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3863,
   "name": "f_0F17",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3865,
   "name": "f_0F19",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3866,
   "name": "a_0F1A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3867,
   "name": "f_0F1B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3868,
   "name": "a_0F1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3869,
   "name": "a_0F1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3870,
   "name": "a_0F1E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3871,
   "name": "a_0F1F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3872,
   "name": "a_0F20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3873,
   "name": "a_0F21",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3874,
   "name": "a_0F22",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3875,
   "name": "a_0F23",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3876,
   "name": "a_0F24",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3877,
   "name": "a_0F25",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3878,
   "name": "f_0F26",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3884,
   "name": "a_0F2C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3885,
   "name": "f_0F2D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3887,
   "name": "a_0F2F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3888,
   "name": "f_0F30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3894,
   "name": "f_0F36",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3895,
   "name": "f_0F37",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3901,
   "name": "f_0F3D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3902,
   "name": "f_0F3E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3909,
   "name": "a_0F45",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3910,
   "name": "f_0F46",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3916,
   "name": "a_0F4C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3917,
   "name": "a_0F4D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3918,
   "name": "a_0F4E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3919,
   "name": "a_0F4F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3920,
   "name": "f_0F50",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3921,
   "name": "f_0F51",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3952,
   "name": "a_0F70",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3953,
   "name": "a_0F71",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3954,
   "name": "a_0F72",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3955,
   "name": "a_0F73",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3956,
   "name": "a_0F74",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3958,
   "name": "a_0F76",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3959,
   "name": "a_0F77",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3960,
   "name": "a_0F78",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3961,
   "name": "a_0F79",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3962,
   "name": "a_0F7A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3963,
   "name": "a_0F7B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3966,
   "name": "f_0F7E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3975,
   "name": "f_0F87",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3984,
   "name": "a_0F90",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3985,
   "name": "a_0F91",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3987,
   "name": "f_0F93",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3996,
   "name": "f_0F9C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4004,
   "name": "f_0FA4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4007,
   "name": "a_0FA7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4008,
   "name": "a_0FA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4009,
   "name": "a_0FA9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4012,
   "name": "a_0FAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4013,
   "name": "a_0FAD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4014,
   "name": "a_0FAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4015,
   "name": "f_0FAF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4023,
   "name": "f_0FB7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4031,
   "name": "f_0FBF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4032,
   "name": "f_0FC0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4039,
   "name": "f_0FC7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4040,
   "name": "a_0FC8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4041,
   "name": "a_0FC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4042,
   "name": "a_0FCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4043,
   "name": "a_0FCB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4044,
   "name": "a_0FCC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4045,
   "name": "a_0FCD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4046,
   "name": "a_0FCE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4047,
   "name": "a_0FCF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4048,
   "name": "f_0FD0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4050,
   "name": "f_0FD2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4056,
   "name": "f_0FD8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4064,
   "name": "f_0FE0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4072,
   "name": "f_0FE8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4073,
   "name": "a_0FE9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4074,
   "name": "a_0FEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4075,
   "name": "f_0FEB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4078,
   "name": "f_0FEE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4081,
   "name": "f_0FF1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4082,
   "name": "f_0FF2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4091,
   "name": "a_0FFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4092,
   "name": "a_0FFC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4093,
   "name": "a_0FFD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4094,
   "name": "a_0FFE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4095,
   "name": "a_0FFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4096,
   "name": "a_1000",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4097,
   "name": "a_1001",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4098,
   "name": "a_1002",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4099,
   "name": "a_1003",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4100,
   "name": "f_1004",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4103,
   "name": "f_1007",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4105,
   "name": "f_1009",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4106,
   "name": "a_100A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4107,
   "name": "a_100B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4108,
   "name": "a_100C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4109,
   "name": "a_100D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4110,
   "name": "a_100E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4111,
   "name": "a_100F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4112,
   "name": "a_1010",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4113,
   "name": "a_1011",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4114,
   "name": "a_1012",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4115,
   "name": "a_1013",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4116,
   "name": "a_1014",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4117,
   "name": "a_1015",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4118,
   "name": "a_1016",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4119,
   "name": "a_1017",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4120,
   "name": "a_1018",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4121,
   "name": "a_1019",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4122,
   "name": "a_101A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4123,
   "name": "a_101B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4124,
   "name": "a_101C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4125,
   "name": "a_101D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4126,
   "name": "a_101E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4127,
   "name": "f_101F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4133,
   "name": "f_1025",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4139,
   "name": "f_102B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4145,
   "name": "f_1031",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4151,
   "name": "a_1037",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4152,
   "name": "a_1038",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4153,
   "name": "a_1039",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4154,
   "name": "a_103A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4155,
   "name": "a_103B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4156,
   "name": "a_103C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4157,
   "name": "a_103D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4158,
   "name": "f_103E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4160,
   "name": "f_1040",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4172,
   "name": "f_104C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4208,
   "name": "f_1070",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4209,
   "name": "a_1071",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4210,
   "name": "a_1072",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4211,
   "name": "a_1073",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4212,
   "name": "a_1074",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4213,
   "name": "a_1075",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4214,
   "name": "a_1076",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4215,
   "name": "a_1077",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4216,
   "name": "a_1078",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4217,
   "name": "a_1079",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4218,
   "name": "a_107A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4219,
   "name": "f_107B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4220,
   "name": "a_107C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4221,
   "name": "a_107D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4222,
   "name": "a_107E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4223,
   "name": "a_107F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4224,
   "name": "a_1080",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4225,
   "name": "a_1081",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4226,
   "name": "a_1082",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4227,
   "name": "a_1083",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4228,
   "name": "a_1084",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4231,
   "name": "a_1087",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4232,
   "name": "f_1088",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4240,
   "name": "f_1090",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4248,
   "name": "f_1098",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4256,
   "name": "a_10A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4257,
   "name": "a_10A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4258,
   "name": "a_10A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4259,
   "name": "a_10A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4260,
   "name": "a_10A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4261,
   "name": "a_10A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4262,
   "name": "a_10A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4263,
   "name": "f_10A7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4264,
   "name": "a_10A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4265,
   "name": "a_10A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4266,
   "name": "a_10AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4267,
   "name": "a_10AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4268,
   "name": "a_10AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4269,
   "name": "a_10AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4270,
   "name": "a_10AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4271,
   "name": "a_10AF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4272,
   "name": "a_10B0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4273,
   "name": "a_10B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4279,
   "name": "a_10B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4280,
   "name": "a_10B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4281,
   "name": "a_10B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4282,
   "name": "a_10BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4283,
   "name": "a_10BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4284,
   "name": "a_10BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4285,
   "name": "a_10BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4286,
   "name": "a_10BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4287,
   "name": "a_10BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4288,
   "name": "a_10C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4289,
   "name": "a_10C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4290,
   "name": "a_10C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4291,
   "name": "a_10C3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4292,
   "name": "a_10C4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4293,
   "name": "a_10C5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4294,
   "name": "a_10C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4295,
   "name": "a_10C7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4296,
   "name": "f_10C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4297,
   "name": "a_10C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4298,
   "name": "a_10CA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4299,
   "name": "a_10CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4300,
   "name": "a_10CC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4301,
   "name": "a_10CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4302,
   "name": "a_10CE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4303,
   "name": "a_10CF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4304,
   "name": "f_10D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4305,
   "name": "a_10D1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4306,
   "name": "a_10D2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4307,
   "name": "a_10D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4308,
   "name": "a_10D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4309,
   "name": "a_10D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4310,
   "name": "a_10D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4311,
   "name": "f_10D7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4312,
   "name": "a_10D8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4313,
   "name": "a_10D9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4314,
   "name": "a_10DA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4315,
   "name": "a_10DB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4316,
   "name": "a_10DC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4317,
   "name": "a_10DD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4318,
   "name": "a_10DE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4319,
   "name": "a_10DF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4320,
   "name": "a_10E0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4321,
   "name": "a_10E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4322,
   "name": "a_10E2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4325,
   "name": "f_10E5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4326,
   "name": "a_10E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4327,
   "name": "a_10E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4328,
   "name": "a_10E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4329,
   "name": "a_10E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4330,
   "name": "a_10EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4331,
   "name": "a_10EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4332,
   "name": "a_10EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4333,
   "name": "a_10ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4334,
   "name": "a_10EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4335,
   "name": "a_10EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4336,
   "name": "a_10F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4337,
   "name": "a_10F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4338,
   "name": "a_10F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4339,
   "name": "a_10F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4340,
   "name": "a_10F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4341,
   "name": "a_10F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4342,
   "name": "a_10F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4343,
   "name": "a_10F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4344,
   "name": "a_10F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4345,
   "name": "f_10F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4346,
   "name": "a_10FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4347,
   "name": "a_10FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4348,
   "name": "a_10FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4349,
   "name": "a_10FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4350,
   "name": "a_10FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4351,
   "name": "a_10FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4352,
   "name": "a_1100",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4353,
   "name": "a_1101",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4356,
   "name": "a_1104",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4357,
   "name": "a_1105",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4358,
   "name": "a_1106",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4359,
   "name": "a_1107",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4360,
   "name": "a_1108",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4361,
   "name": "a_1109",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4362,
   "name": "a_110A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4363,
   "name": "a_110B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4364,
   "name": "a_110C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4365,
   "name": "a_110D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4366,
   "name": "a_110E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4367,
   "name": "a_110F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4368,
   "name": "a_1110",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4369,
   "name": "a_1111",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4370,
   "name": "a_1112",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4371,
   "name": "a_1113",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4372,
   "name": "a_1114",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4373,
   "name": "a_1115",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4374,
   "name": "a_1116",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4375,
   "name": "a_1117",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4376,
   "name": "a_1118",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4377,
   "name": "f_1119",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4393,
   "name": "a_1129",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4394,
   "name": "a_112A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4395,
   "name": "a_112B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4396,
   "name": "a_112C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4397,
   "name": "a_112D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4398,
   "name": "a_112E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4399,
   "name": "f_112F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4407,
   "name": "f_1137",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4411,
   "name": "f_113B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4415,
   "name": "f_113F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4424,
   "name": "a_1148",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4425,
   "name": "a_1149",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4426,
   "name": "a_114A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4427,
   "name": "a_114B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4429,
   "name": "a_114D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4431,
   "name": "a_114F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4432,
   "name": "f_1150",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4436,
   "name": "f_1154",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4440,
   "name": "f_1158",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4444,
   "name": "f_115C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4448,
   "name": "f_1160",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4452,
   "name": "f_1164",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4454,
   "name": "a_1166",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4455,
   "name": "a_1167",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4456,
   "name": "f_1168",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4459,
   "name": "a_116B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4461,
   "name": "a_116D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4462,
   "name": "a_116E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4463,
   "name": "a_116F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4464,
   "name": "a_1170",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4465,
   "name": "a_1171",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4466,
   "name": "f_1172",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4468,
   "name": "f_1174",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4470,
   "name": "f_1176",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4476,
   "name": "a_117C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4477,
   "name": "a_117D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4479,
   "name": "a_117F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4480,
   "name": "f_1180",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4483,
   "name": "a_1183",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4484,
   "name": "f_1184",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4486,
   "name": "a_1186",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4487,
   "name": "a_1187",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4488,
   "name": "a_1188",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4489,
   "name": "a_1189",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4490,
   "name": "a_118A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4491,
   "name": "a_118B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4492,
   "name": "a_118C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4493,
   "name": "a_118D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4494,
   "name": "a_118E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4495,
   "name": "a_118F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4496,
   "name": "f_1190",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4497,
   "name": "a_1191",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4498,
   "name": "a_1192",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4499,
   "name": "a_1193",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4500,
   "name": "a_1194",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4501,
   "name": "a_1195",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4502,
   "name": "a_1196",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4503,
   "name": "a_1197",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4511,
   "name": "f_119F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4512,
   "name": "a_11A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4513,
   "name": "a_11A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4514,
   "name": "a_11A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4515,
   "name": "a_11A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4516,
   "name": "a_11A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4517,
   "name": "a_11A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4518,
   "name": "a_11A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4519,
   "name": "a_11A7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4520,
   "name": "a_11A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4521,
   "name": "a_11A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4522,
   "name": "a_11AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4523,
   "name": "a_11AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4524,
   "name": "a_11AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4525,
   "name": "a_11AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4526,
   "name": "a_11AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4527,
   "name": "a_11AF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4528,
   "name": "a_11B0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4529,
   "name": "a_11B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4530,
   "name": "a_11B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4531,
   "name": "a_11B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4532,
   "name": "a_11B4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4533,
   "name": "a_11B5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4534,
   "name": "a_11B6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4535,
   "name": "a_11B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4536,
   "name": "a_11B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4537,
   "name": "a_11B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4538,
   "name": "a_11BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4539,
   "name": "a_11BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4540,
   "name": "a_11BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4541,
   "name": "a_11BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4542,
   "name": "a_11BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4543,
   "name": "a_11BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4544,
   "name": "f_11C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4545,
   "name": "f_11C1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4546,
   "name": "a_11C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4549,
   "name": "f_11C5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4554,
   "name": "f_11CA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4560,
   "name": "f_11D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4561,
   "name": "f_11D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4564,
   "name": "a_11D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4565,
   "name": "a_11D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4566,
   "name": "a_11D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4568,
   "name": "f_11D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4576,
   "name": "f_11E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4577,
   "name": "a_11E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4578,
   "name": "a_11E2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4579,
   "name": "a_11E3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4580,
   "name": "a_11E4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4581,
   "name": "a_11E5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4582,
   "name": "a_11E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4583,
   "name": "a_11E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4584,
   "name": "f_11E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4585,
   "name": "a_11E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4586,
   "name": "a_11EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4587,
   "name": "a_11EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4588,
   "name": "a_11EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4589,
   "name": "a_11ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4590,
   "name": "a_11EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4591,
   "name": "a_11EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4592,
   "name": "f_11F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4593,
   "name": "a_11F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4594,
   "name": "a_11F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4595,
   "name": "a_11F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4596,
   "name": "a_11F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4597,
   "name": "a_11F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4598,
   "name": "a_11F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4599,
   "name": "a_11F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4600,
   "name": "f_11F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4608,
   "name": "f_1200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4609,
   "name": "a_1201",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4616,
   "name": "f_1208",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4617,
   "name": "a_1209",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4618,
   "name": "a_120A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4619,
   "name": "a_120B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4620,
   "name": "a_120C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4621,
   "name": "a_120D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4622,
   "name": "a_120E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4623,
   "name": "a_120F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4624,
   "name": "f_1210",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4625,
   "name": "a_1211",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4626,
   "name": "a_1212",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4627,
   "name": "a_1213",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4628,
   "name": "a_1214",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4629,
   "name": "a_1215",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4630,
   "name": "a_1216",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4631,
   "name": "a_1217",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4633,
   "name": "a_1219",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4634,
   "name": "a_121A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4635,
   "name": "a_121B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4636,
   "name": "a_121C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4637,
   "name": "a_121D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4638,
   "name": "a_121E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4639,
   "name": "a_121F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4640,
   "name": "f_1220",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4641,
   "name": "f_1221",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4642,
   "name": "a_1222",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4643,
   "name": "a_1223",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4644,
   "name": "a_1224",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4645,
   "name": "a_1225",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4646,
   "name": "a_1226",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4647,
   "name": "a_1227",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4648,
   "name": "a_1228",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4649,
   "name": "a_1229",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4656,
   "name": "f_1230",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4665,
   "name": "a_1239",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4666,
   "name": "a_123A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4667,
   "name": "a_123B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4668,
   "name": "a_123C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4669,
   "name": "a_123D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4670,
   "name": "a_123E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4671,
   "name": "a_123F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4672,
   "name": "f_1240",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4673,
   "name": "a_1241",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4674,
   "name": "a_1242",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4675,
   "name": "a_1243",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4676,
   "name": "a_1244",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4677,
   "name": "a_1245",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4678,
   "name": "a_1246",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4679,
   "name": "a_1247",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4680,
   "name": "f_1248",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4688,
   "name": "f_1250",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4689,
   "name": "a_1251",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4690,
   "name": "a_1252",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4691,
   "name": "a_1253",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4692,
   "name": "a_1254",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4693,
   "name": "a_1255",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4694,
   "name": "a_1256",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4695,
   "name": "a_1257",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4696,
   "name": "f_1258",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4697,
   "name": "a_1259",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4698,
   "name": "a_125A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4699,
   "name": "a_125B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4700,
   "name": "a_125C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4701,
   "name": "a_125D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4702,
   "name": "a_125E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4703,
   "name": "a_125F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4705,
   "name": "a_1261",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4706,
   "name": "a_1262",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4707,
   "name": "a_1263",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4708,
   "name": "a_1264",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4709,
   "name": "a_1265",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4710,
   "name": "a_1266",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4711,
   "name": "a_1267",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4713,
   "name": "a_1269",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4714,
   "name": "a_126A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4715,
   "name": "a_126B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4716,
   "name": "a_126C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4717,
   "name": "a_126D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4718,
   "name": "a_126E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4719,
   "name": "a_126F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4720,
   "name": "f_1270",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4721,
   "name": "a_1271",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4722,
   "name": "a_1272",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4723,
   "name": "a_1273",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4724,
   "name": "a_1274",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4725,
   "name": "a_1275",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4726,
   "name": "a_1276",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4727,
   "name": "a_1277",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4729,
   "name": "a_1279",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4730,
   "name": "a_127A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4731,
   "name": "a_127B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4732,
   "name": "a_127C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4733,
   "name": "a_127D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4734,
   "name": "a_127E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4735,
   "name": "a_127F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4736,
   "name": "f_1280",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4737,
   "name": "a_1281",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4738,
   "name": "a_1282",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4739,
   "name": "a_1283",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4740,
   "name": "a_1284",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4741,
   "name": "a_1285",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4742,
   "name": "a_1286",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4743,
   "name": "a_1287",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4744,
   "name": "a_1288",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4745,
   "name": "a_1289",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4746,
   "name": "a_128A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4747,
   "name": "a_128B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4748,
   "name": "a_128C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4749,
   "name": "a_128D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4750,
   "name": "a_128E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4751,
   "name": "a_128F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4752,
   "name": "f_1290",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4753,
   "name": "a_1291",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4754,
   "name": "a_1292",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4755,
   "name": "a_1293",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4756,
   "name": "a_1294",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4757,
   "name": "a_1295",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4758,
   "name": "a_1296",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4759,
   "name": "a_1297",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4760,
   "name": "a_1298",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4761,
   "name": "a_1299",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4762,
   "name": "a_129A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4763,
   "name": "a_129B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4764,
   "name": "a_129C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4765,
   "name": "a_129D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4766,
   "name": "a_129E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4767,
   "name": "a_129F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4768,
   "name": "f_12A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4769,
   "name": "a_12A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4770,
   "name": "a_12A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4771,
   "name": "a_12A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4772,
   "name": "a_12A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4773,
   "name": "a_12A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4774,
   "name": "a_12A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4775,
   "name": "a_12A7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4776,
   "name": "f_12A8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4777,
   "name": "a_12A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4778,
   "name": "a_12AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4779,
   "name": "a_12AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4780,
   "name": "a_12AC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4781,
   "name": "a_12AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4782,
   "name": "a_12AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4783,
   "name": "a_12AF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4784,
   "name": "f_12B0",
   "type": "Field",
   "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": "f_12B8",
   "type": "Field",
   "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": "a_12C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "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": "f_12CF",
   "type": "Field",
   "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": "a_12D8",
   "type": "AbsoluteAddress",
   "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": 4830,
   "name": "a_12DE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4831,
   "name": "a_12DF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4832,
   "name": "f_12E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4833,
   "name": "f_12E1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4841,
   "name": "a_12E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4842,
   "name": "a_12EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4843,
   "name": "a_12EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4844,
   "name": "a_12EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4845,
   "name": "a_12ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4846,
   "name": "a_12EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4847,
   "name": "a_12EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4849,
   "name": "a_12F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4850,
   "name": "a_12F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4851,
   "name": "a_12F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4852,
   "name": "f_12F4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4853,
   "name": "a_12F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4854,
   "name": "a_12F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4855,
   "name": "a_12F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4856,
   "name": "a_12F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4857,
   "name": "a_12F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4858,
   "name": "a_12FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4859,
   "name": "a_12FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4860,
   "name": "a_12FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4861,
   "name": "a_12FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4862,
   "name": "a_12FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4863,
   "name": "a_12FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4864,
   "name": "anim_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4882,
   "name": "anim_lists_spin",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5120,
   "name": "wave_setup_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5280,
   "name": "play_patches_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5322,
   "name": "clear_slot_tables",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5326,
   "name": "b_14CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5376,
   "name": "title_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5436,
   "name": "title_state_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5488,
   "name": "b_1570",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5507,
   "name": "b_1583",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5552,
   "name": "swap_graphics_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5560,
   "name": "b_15B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5603,
   "name": "b_15E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5608,
   "name": "b_15E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5609,
   "name": "a_15E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5610,
   "name": "a_15EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5612,
   "name": "a_15EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5613,
   "name": "a_15ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5615,
   "name": "a_15EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5616,
   "name": "a_15F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5619,
   "name": "a_15F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5620,
   "name": "a_15F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5632,
   "name": "game_start_scores",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5636,
   "name": "b_1604",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5684,
   "name": "b_1634",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5697,
   "name": "j_1641",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5712,
   "name": "swap_players",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5714,
   "name": "b_1652",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5794,
   "name": "b_16A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5824,
   "name": "interlude_game_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5854,
   "name": "b_16DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5857,
   "name": "b_16E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5865,
   "name": "b_16E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5904,
   "name": "game_over_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5912,
   "name": "b_1718",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5938,
   "name": "b_1732",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5941,
   "name": "b_1735",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5964,
   "name": "game_over_begin",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5982,
   "name": "unused_175e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5992,
   "name": "irq_exit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6000,
   "name": "game_entry",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6089,
   "name": "main_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 6099,
   "name": "b_17D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6112,
   "name": "bank_io_only",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6144,
   "name": "irq_handler",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6158,
   "name": "irq_band_top",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6183,
   "name": "b_1827",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6186,
   "name": "irq_band_182a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6199,
   "name": "irq_band_1837",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6212,
   "name": "irq_band_1844",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6225,
   "name": "irq_band_1851",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6238,
   "name": "irq_stub_185e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6241,
   "name": "irq_stub_1861",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6244,
   "name": "irq_stub_1864",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6247,
   "name": "irq_band_1867",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6260,
   "name": "irq_band_1874",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6270,
   "name": "irq_collide_2440",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6280,
   "name": "irq_band_first",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6294,
   "name": "irq_collide_2a83",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6304,
   "name": "irq_stub_18a0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6307,
   "name": "irq_stub_18a3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6310,
   "name": "irq_stub_18a6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6313,
   "name": "irq_stub_18a9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6316,
   "name": "irq_stub_18ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6320,
   "name": "bottom_icons_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6341,
   "name": "irq_stub_18c5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6344,
   "name": "irq_stub_18c8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6347,
   "name": "irq_stub_18cb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6352,
   "name": "irq_band_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6379,
   "name": "irq_stub_18eb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6382,
   "name": "b_18EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6400,
   "name": "set_speed_jumps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6414,
   "name": "b_190E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6415,
   "name": "b_190F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6440,
   "name": "set_1288_12fa",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6448,
   "name": "irq_icons_after",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6464,
   "name": "irq_band_1940",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6468,
   "name": "b_1944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6496,
   "name": "irq_band_1960",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6500,
   "name": "b_1964",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6528,
   "name": "irq_band_1980",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6533,
   "name": "b_1985",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6568,
   "name": "b_19A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6571,
   "name": "nop_19ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6580,
   "name": "start_mark_bullets",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6594,
   "name": "jmp_19c2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6610,
   "name": "b_19D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6614,
   "name": "nop_19d6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6624,
   "name": "irq_band_frame_top",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6648,
   "name": "b_19F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6651,
   "name": "irq_title_band_a",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6674,
   "name": "b_1A12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6698,
   "name": "b_1A2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6735,
   "name": "b_1A4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6737,
   "name": "b_1A51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6744,
   "name": "b_1A58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6784,
   "name": "irq_title_band_b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6807,
   "name": "b_1A97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6838,
   "name": "b_1AB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6847,
   "name": "b_1ABF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6856,
   "name": "b_1AC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6867,
   "name": "b_1AD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6886,
   "name": "b_1AE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6928,
   "name": "irq_title_band_c",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6951,
   "name": "b_1B27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6975,
   "name": "b_1B3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7014,
   "name": "b_1B66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7021,
   "name": "b_1B6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7025,
   "name": "b_1B71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7068,
   "name": "b_1B9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7084,
   "name": "b_1BAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7093,
   "name": "nop_1bb5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7104,
   "name": "irq_title_bottom",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7118,
   "name": "b_1BCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7168,
   "name": "irq_title_top",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7186,
   "name": "b_1C12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7193,
   "name": "b_1C19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7203,
   "name": "b_1C23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7255,
   "name": "b_1C57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7263,
   "name": "b_1C5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7270,
   "name": "b_1C66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7296,
   "name": "irq_title_1c80",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7308,
   "name": "b_1C8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7320,
   "name": "nop_1c98",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7328,
   "name": "title_logo_pairs",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7366,
   "name": "b_1CC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7392,
   "name": "jmp_1ce0",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7406,
   "name": "b_1CEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7410,
   "name": "set_129a_if_129b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7420,
   "name": "r_1CFC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7424,
   "name": "stars_erase",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7428,
   "name": "b_1D04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7451,
   "name": "stars_scroll_mid",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7480,
   "name": "r_1D38",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7483,
   "name": "stars_scroll_fast",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7515,
   "name": "r_1D5B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7518,
   "name": "stars_scroll_slow",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7547,
   "name": "r_1D7B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7550,
   "name": "stars_draw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7552,
   "name": "b_1D80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7609,
   "name": "stars_update",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7634,
   "name": "b_1DD2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7645,
   "name": "colour_cycle_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7670,
   "name": "b_1DF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7673,
   "name": "b_1DF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7704,
   "name": "game_over_hiscore_prep",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7762,
   "name": "hiscore_entry_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7770,
   "name": "b_1E5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7797,
   "name": "b_1E75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7800,
   "name": "b_1E78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7806,
   "name": "hiscore_sprites_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7811,
   "name": "b_1E83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7843,
   "name": "b_1EA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7850,
   "name": "j_1EAA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7858,
   "name": "b_1EB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7861,
   "name": "b_1EB5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7888,
   "name": "b_1ED0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7899,
   "name": "b_1EDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7904,
   "name": "b_1EE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7922,
   "name": "b_1EF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7926,
   "name": "b_1EF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7944,
   "name": "b_1F08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7948,
   "name": "b_1F0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7956,
   "name": "j_1F14",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7965,
   "name": "hiscore_entry_done",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7982,
   "name": "b_1F2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7985,
   "name": "b_1F31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8011,
   "name": "b_1F4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8016,
   "name": "hiscore_letter_index",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8032,
   "name": "hiscore_repeat",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8050,
   "name": "b_1F72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8056,
   "name": "b_1F78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8074,
   "name": "b_1F8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8080,
   "name": "b_1F90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8098,
   "name": "b_1FA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8104,
   "name": "b_1FA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8122,
   "name": "b_1FBA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8125,
   "name": "r_1FBD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8160,
   "name": "hiscore_cursor_pos",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8181,
   "name": "jmp_1ff5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8189,
   "name": "b_1FFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8192,
   "name": "irq_top_row",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8256,
   "name": "irq_bottom_row",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8320,
   "name": "hazard_rows_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8334,
   "name": "b_208E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8342,
   "name": "hazard_rows_spawn",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8349,
   "name": "b_209D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8359,
   "name": "b_20A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8369,
   "name": "b_20B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8379,
   "name": "b_20BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8386,
   "name": "b_20C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8391,
   "name": "a_20C7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8431,
   "name": "a_20EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8437,
   "name": "b_20F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8445,
   "name": "b_20FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8450,
   "name": "b_2102",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8455,
   "name": "a_2107",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8495,
   "name": "a_212F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8501,
   "name": "b_2135",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8509,
   "name": "b_213D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8512,
   "name": "interlude_colours_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8519,
   "name": "b_2147",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8533,
   "name": "b_2155",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8538,
   "name": "b_215A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8552,
   "name": "b_2168",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8572,
   "name": "b_217C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8580,
   "name": "r_2184",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8583,
   "name": "interlude_page_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8594,
   "name": "b_2192",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8609,
   "name": "b_21A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8616,
   "name": "b_21A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8619,
   "name": "b_21AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8640,
   "name": "b_21C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8655,
   "name": "b_21CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8681,
   "name": "b_21E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8693,
   "name": "b_21F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8696,
   "name": "b_21F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8704,
   "name": "b_2200",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8708,
   "name": "set_12c0_if_7",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8717,
   "name": "r_220D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8720,
   "name": "cursor_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8734,
   "name": "bottom_row_tail",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8740,
   "name": "interlude_colour_set",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8795,
   "name": "b_225B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8801,
   "name": "shop_try_buy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8806,
   "name": "b_2266",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8812,
   "name": "b_226C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8856,
   "name": "shop_spend_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8864,
   "name": "b_22A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8890,
   "name": "b_22BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8893,
   "name": "icon_frame_extra",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8905,
   "name": "draw_lives",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8933,
   "name": "b_22E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8953,
   "name": "ship_speed_set",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8988,
   "name": "b_231C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8991,
   "name": "set_d4_from_f900",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9005,
   "name": "score_add_pending",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9007,
   "name": "b_232F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9014,
   "name": "j_2336",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9026,
   "name": "b_2342",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9040,
   "name": "mux_sprite0_ship",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9088,
   "name": "mux_upper_row_32",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9228,
   "name": "b_240C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9237,
   "name": "a_2415",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9257,
   "name": "b_2429",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9266,
   "name": "b_2432",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9272,
   "name": "nop_2438",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9280,
   "name": "mux_lower_row",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9418,
   "name": "b_24CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9427,
   "name": "a_24D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9447,
   "name": "b_24E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9456,
   "name": "b_24F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9471,
   "name": "b_24FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9474,
   "name": "b_2502",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9477,
   "name": "name_entry_setup_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9485,
   "name": "b_250D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9551,
   "name": "b_254F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9563,
   "name": "b_255B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9568,
   "name": "icons_or_blank",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9576,
   "name": "b_2568",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9578,
   "name": "b_256A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9596,
   "name": "erase_char_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9685,
   "name": "draw_enemy_shot_0",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9731,
   "name": "b_2603",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9767,
   "name": "draw_enemy_shot_1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9813,
   "name": "b_2655",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9849,
   "name": "draw_enemy_shot_2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9895,
   "name": "b_26A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9931,
   "name": "draw_enemy_shot_3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9977,
   "name": "b_26F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10013,
   "name": "draw_enemy_shot_4",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10059,
   "name": "b_274B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10095,
   "name": "draw_enemy_shot_5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10141,
   "name": "b_279D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10176,
   "name": "name_entry_wait",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10187,
   "name": "b_27CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10197,
   "name": "char_objects_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10205,
   "name": "b_27DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10213,
   "name": "b_27E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10221,
   "name": "b_27ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10229,
   "name": "b_27F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10237,
   "name": "b_27FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10245,
   "name": "b_2805",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10253,
   "name": "b_280D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10261,
   "name": "b_2815",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10305,
   "name": "draw_enemy_bomb_0",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10392,
   "name": "b_2898",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10407,
   "name": "b_28A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10432,
   "name": "b_28C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10433,
   "name": "a_28C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10441,
   "name": "a_28C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10461,
   "name": "b_28DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10462,
   "name": "a_28DE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10470,
   "name": "a_28E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10484,
   "name": "b_28F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10524,
   "name": "draw_enemy_bomb_1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10611,
   "name": "b_2973",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10626,
   "name": "b_2982",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10651,
   "name": "b_299B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10652,
   "name": "a_299C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10660,
   "name": "a_29A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10680,
   "name": "b_29B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10681,
   "name": "a_29B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10689,
   "name": "a_29C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10703,
   "name": "b_29CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10743,
   "name": "irq_panel_sprites",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10758,
   "name": "a_2A06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10777,
   "name": "a_2A19",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10880,
   "name": "mux_upper_ships",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10883,
   "name": "mux_upper_rest",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10905,
   "name": "b_2A99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10941,
   "name": "xhigh_rebuild",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10948,
   "name": "b_2AC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10955,
   "name": "b_2ACB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10968,
   "name": "sprite_to_screen_ptr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11009,
   "name": "b_2B01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11015,
   "name": "b_2B07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11018,
   "name": "enemies_hit_by_weapons",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11020,
   "name": "b_2B0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11060,
   "name": "b_2B34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11100,
   "name": "b_2B5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11102,
   "name": "j_2B5E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11111,
   "name": "b_2B67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11132,
   "name": "weapon_hit_handlers",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11196,
   "name": "ship_hit_by_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11209,
   "name": "a_2BC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11215,
   "name": "b_2BCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11218,
   "name": "ship_touch_icons",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11223,
   "name": "j_2BD7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11226,
   "name": "a_2BDA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11233,
   "name": "b_2BE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11258,
   "name": "b_2BFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11283,
   "name": "b_2C13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11289,
   "name": "b_2C19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11292,
   "name": "b_2C1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11295,
   "name": "b_2C1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11298,
   "name": "wave_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11311,
   "name": "b_2C2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11317,
   "name": "b_2C35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11340,
   "name": "b_2C4C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11343,
   "name": "pad_2c4f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11345,
   "name": "orbiter_draw",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11377,
   "name": "b_2C71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11390,
   "name": "b_2C7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11400,
   "name": "b_2C88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11414,
   "name": "b_2C96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11425,
   "name": "b_2CA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11427,
   "name": "b_2CA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11433,
   "name": "j_2CA9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11438,
   "name": "b_2CAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11442,
   "name": "wave_tail_9480",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11456,
   "name": "b_2CC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11459,
   "name": "r_2CC3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11460,
   "name": "weapon_hit_mark",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11467,
   "name": "bullet_move_0",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11499,
   "name": "b_2CEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11502,
   "name": "b_2CEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11520,
   "name": "b_2D00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11549,
   "name": "b_2D1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11552,
   "name": "b_2D20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11572,
   "name": "b_2D34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11578,
   "name": "b_2D3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11581,
   "name": "b_2D3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11589,
   "name": "bullet_move_1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11621,
   "name": "b_2D65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11624,
   "name": "b_2D68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11642,
   "name": "b_2D7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11671,
   "name": "b_2D97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11674,
   "name": "b_2D9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11694,
   "name": "b_2DAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11700,
   "name": "b_2DB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11703,
   "name": "b_2DB7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11711,
   "name": "bullet_move_2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11743,
   "name": "b_2DDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11746,
   "name": "b_2DE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11764,
   "name": "b_2DF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11793,
   "name": "b_2E11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11796,
   "name": "b_2E14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11816,
   "name": "b_2E28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11822,
   "name": "b_2E2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11825,
   "name": "b_2E31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11833,
   "name": "bullet_move_3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11865,
   "name": "b_2E59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11868,
   "name": "b_2E5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11886,
   "name": "b_2E6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11915,
   "name": "b_2E8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11918,
   "name": "b_2E8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11938,
   "name": "b_2EA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11944,
   "name": "b_2EA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11947,
   "name": "b_2EAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11955,
   "name": "bullet_move_4",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11987,
   "name": "b_2ED3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11990,
   "name": "b_2ED6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12008,
   "name": "b_2EE8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12037,
   "name": "b_2F05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12040,
   "name": "b_2F08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12060,
   "name": "b_2F1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12066,
   "name": "b_2F22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12069,
   "name": "b_2F25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12077,
   "name": "bullet_move_5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12109,
   "name": "b_2F4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12112,
   "name": "b_2F50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12130,
   "name": "b_2F62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12159,
   "name": "b_2F7F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12162,
   "name": "b_2F82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12182,
   "name": "b_2F96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12188,
   "name": "b_2F9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12191,
   "name": "b_2F9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12199,
   "name": "bullet_move_6",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12231,
   "name": "b_2FC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12234,
   "name": "b_2FCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12252,
   "name": "b_2FDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12281,
   "name": "b_2FF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12284,
   "name": "b_2FFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12288,
   "name": "f_3000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 12304,
   "name": "b_3010",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12310,
   "name": "b_3016",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12313,
   "name": "b_3019",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12321,
   "name": "move_enemy_shot_0",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12355,
   "name": "b_3043",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12358,
   "name": "b_3046",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12361,
   "name": "b_3049",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12390,
   "name": "b_3066",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12392,
   "name": "b_3068",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12398,
   "name": "b_306E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12406,
   "name": "move_enemy_shot_1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12440,
   "name": "b_3098",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12443,
   "name": "b_309B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12446,
   "name": "b_309E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12475,
   "name": "b_30BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12477,
   "name": "b_30BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12483,
   "name": "b_30C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12491,
   "name": "move_enemy_shot_2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12525,
   "name": "b_30ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12528,
   "name": "b_30F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12531,
   "name": "b_30F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12560,
   "name": "b_3110",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12562,
   "name": "b_3112",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12568,
   "name": "b_3118",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12576,
   "name": "move_enemy_shot_3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12610,
   "name": "b_3142",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12613,
   "name": "b_3145",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12616,
   "name": "b_3148",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12645,
   "name": "b_3165",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12647,
   "name": "b_3167",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12653,
   "name": "b_316D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12661,
   "name": "move_enemy_shot_4",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12695,
   "name": "b_3197",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12698,
   "name": "b_319A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12701,
   "name": "b_319D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12730,
   "name": "b_31BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12732,
   "name": "b_31BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12738,
   "name": "b_31C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12746,
   "name": "move_enemy_shot_5",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12780,
   "name": "b_31EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12783,
   "name": "b_31EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12786,
   "name": "b_31F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12815,
   "name": "b_320F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12817,
   "name": "b_3211",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12823,
   "name": "b_3217",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12831,
   "name": "move_enemy_bomb_0",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12865,
   "name": "b_3241",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12871,
   "name": "b_3247",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12900,
   "name": "b_3264",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12902,
   "name": "b_3266",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12905,
   "name": "b_3269",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12908,
   "name": "b_326C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12916,
   "name": "j_3274",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12956,
   "name": "b_329C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12957,
   "name": "b_329D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12960,
   "name": "b_32A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12963,
   "name": "b_32A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12995,
   "name": "b_32C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12996,
   "name": "b_32C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13002,
   "name": "move_enemy_bomb_1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13036,
   "name": "b_32EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13042,
   "name": "b_32F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13071,
   "name": "b_330F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13073,
   "name": "b_3311",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13076,
   "name": "b_3314",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13079,
   "name": "b_3317",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13087,
   "name": "j_331F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13127,
   "name": "b_3347",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13128,
   "name": "b_3348",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13131,
   "name": "b_334B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13134,
   "name": "b_334E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13166,
   "name": "b_336E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13167,
   "name": "b_336F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13173,
   "name": "read_joysticks",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13182,
   "name": "b_337E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13192,
   "name": "b_3388",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13193,
   "name": "a_3389",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13194,
   "name": "a_338A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13205,
   "name": "b_3395",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13215,
   "name": "b_339F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13225,
   "name": "b_33A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13235,
   "name": "b_33B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13245,
   "name": "b_33BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13256,
   "name": "sprite_to_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13271,
   "name": "b_33D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13286,
   "name": "ship_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13312,
   "name": "b_3400",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13339,
   "name": "b_341B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13342,
   "name": "b_341E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13358,
   "name": "b_342E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13385,
   "name": "b_3449",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13388,
   "name": "j_344C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13403,
   "name": "b_345B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13424,
   "name": "b_3470",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13427,
   "name": "b_3473",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13442,
   "name": "b_3482",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13463,
   "name": "b_3497",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13466,
   "name": "ship_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13474,
   "name": "b_34A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13486,
   "name": "b_34AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13491,
   "name": "b_34B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13494,
   "name": "b_34B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13495,
   "name": "a_34B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13504,
   "name": "b_34C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13507,
   "name": "b_34C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13522,
   "name": "b_34D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13533,
   "name": "b_34DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13570,
   "name": "ship_fire_extra",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13575,
   "name": "b_3507",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13578,
   "name": "b_350A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13648,
   "name": "top_row_tail",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13658,
   "name": "b_355A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13664,
   "name": "set_collisions_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13679,
   "name": "lasers_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13681,
   "name": "b_3571",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13689,
   "name": "b_3579",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13695,
   "name": "laser_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13704,
   "name": "b_3588",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13719,
   "name": "b_3597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13741,
   "name": "extra_shots_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13749,
   "name": "b_35B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13776,
   "name": "b_35D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13792,
   "name": "b_35E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13819,
   "name": "b_35FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13835,
   "name": "b_360B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13864,
   "name": "b_3628",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13880,
   "name": "b_3638",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13883,
   "name": "play_colours_set",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13910,
   "name": "fades_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13933,
   "name": "b_366D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13941,
   "name": "b_3675",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13949,
   "name": "b_367D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13957,
   "name": "b_3685",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13965,
   "name": "b_368D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13978,
   "name": "b_369A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13981,
   "name": "b_369D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14010,
   "name": "b_36BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14013,
   "name": "icons_sprites_set",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14062,
   "name": "a_36EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14132,
   "name": "icons_colours_set",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14181,
   "name": "a_3765",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14187,
   "name": "a_376B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14188,
   "name": "a_376C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14193,
   "name": "sprite_fade_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14200,
   "name": "b_3778",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14214,
   "name": "b_3786",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14219,
   "name": "b_378B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14231,
   "name": "b_3797",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14242,
   "name": "r_37A2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14245,
   "name": "colour_set_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14265,
   "name": "b_37B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14280,
   "name": "b_37C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14286,
   "name": "row_fade_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14293,
   "name": "b_37D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14307,
   "name": "b_37E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14318,
   "name": "r_37EE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14321,
   "name": "stage_banner_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14336,
   "name": "j_3800",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14349,
   "name": "b_380D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14388,
   "name": "enemies_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14395,
   "name": "b_383B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14429,
   "name": "banner_player_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14464,
   "name": "shield_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14481,
   "name": "b_3891",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14489,
   "name": "b_3899",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14523,
   "name": "b_38BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14528,
   "name": "b_38C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14531,
   "name": "hazard_rows_config",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14557,
   "name": "sprites_from_template",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14559,
   "name": "b_38DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14597,
   "name": "sprites_clear_xy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14601,
   "name": "b_3909",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14616,
   "name": "hazards_stage_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14630,
   "name": "b_3926",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14692,
   "name": "hazard_rows_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14696,
   "name": "b_3968",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14718,
   "name": "ship_death_weapons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14741,
   "name": "b_3995",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14751,
   "name": "b_399F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14763,
   "name": "b_39AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14776,
   "name": "clear_0f70",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14793,
   "name": "death_sequence_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14801,
   "name": "b_39D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14824,
   "name": "b_39E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14827,
   "name": "b_39EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14838,
   "name": "b_39F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14851,
   "name": "b_3A03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14854,
   "name": "stage_start_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14862,
   "name": "b_3A0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14869,
   "name": "stage_bands_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14911,
   "name": "b_3A3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14947,
   "name": "b_3A63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14969,
   "name": "b_3A79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14975,
   "name": "stage_rows_next",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14989,
   "name": "b_3A8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15006,
   "name": "b_3A9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15024,
   "name": "b_3AB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15027,
   "name": "b_3AB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15055,
   "name": "b_3ACF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15069,
   "name": "b_3ADD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15077,
   "name": "b_3AE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15080,
   "name": "death_restart_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15088,
   "name": "b_3AF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15115,
   "name": "b_3B0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15130,
   "name": "b_3B1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15144,
   "name": "b_3B28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15147,
   "name": "stage_clear_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15155,
   "name": "b_3B33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15169,
   "name": "next_stage_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15216,
   "name": "b_3B70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15232,
   "name": "banner_draw_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15238,
   "name": "a_3B86",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15239,
   "name": "a_3B87",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15240,
   "name": "b_3B88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15250,
   "name": "a_3B92",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15265,
   "name": "b_3BA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15273,
   "name": "b_3BA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15284,
   "name": "a_3BB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15285,
   "name": "a_3BB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15320,
   "name": "b_3BD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15343,
   "name": "b_3BEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15385,
   "name": "b_3C19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15391,
   "name": "b_3C1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15402,
   "name": "b_3C2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15439,
   "name": "j_3C4F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15452,
   "name": "b_3C5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15464,
   "name": "b_3C68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15479,
   "name": "b_3C77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15482,
   "name": "banner_or_orbiter",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15494,
   "name": "b_3C86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15497,
   "name": "enemy_anim_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15505,
   "name": "b_3C91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15525,
   "name": "b_3CA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15542,
   "name": "b_3CB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15545,
   "name": "r_3CB9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15548,
   "name": "panel_ship_spin",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15563,
   "name": "b_3CCB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15579,
   "name": "b_3CDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15618,
   "name": "b_3D02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15629,
   "name": "b_3D0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15632,
   "name": "b_3D10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15635,
   "name": "unused_3d13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15665,
   "name": "draw_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15667,
   "name": "b_3D33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15686,
   "name": "b_3D46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15689,
   "name": "b_3D49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15746,
   "name": "banner_centre",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15760,
   "name": "b_3D90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15776,
   "name": "b_3DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15777,
   "name": "a_3DA1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15778,
   "name": "a_3DA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15797,
   "name": "b_3DB5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15802,
   "name": "ship_death_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15810,
   "name": "b_3DC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15850,
   "name": "b_3DEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15866,
   "name": "b_3DFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15877,
   "name": "b_3E05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15887,
   "name": "next_player_turn",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15916,
   "name": "b_3E2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15927,
   "name": "j_3E37",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15954,
   "name": "b_3E52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15966,
   "name": "orbiter_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16002,
   "name": "b_3E82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16005,
   "name": "b_3E85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16008,
   "name": "double_laser_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16013,
   "name": "b_3E8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16016,
   "name": "b_3E90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16061,
   "name": "double_laser_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16063,
   "name": "b_3EBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16071,
   "name": "b_3EC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16077,
   "name": "double_laser_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16099,
   "name": "b_3EE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16108,
   "name": "b_3EEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16111,
   "name": "b_3EEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16117,
   "name": "b_3EF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16126,
   "name": "b_3EFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16129,
   "name": "b_3F01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16144,
   "name": "ship_cell_update",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16181,
   "name": "weapons_clear_tail",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16194,
   "name": "b_3F42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16210,
   "name": "char_ptrs_park",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16212,
   "name": "b_3F54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16226,
   "name": "b_3F62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16253,
   "name": "attack_pattern_pick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16261,
   "name": "a_3F85",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16262,
   "name": "a_3F86",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16283,
   "name": "char_ptrs_park_delayed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16295,
   "name": "r_3FA7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16298,
   "name": "shot_ended_count",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16313,
   "name": "big_object_ended_count",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16328,
   "name": "stage_restart",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16355,
   "name": "play_frame_tail",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16375,
   "name": "b_3FF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16378,
   "name": "b_3FFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16381,
   "name": "b_3FFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16384,
   "name": "spr_title_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16413,
   "name": "t_401d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16477,
   "name": "t_405d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16541,
   "name": "t_409d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16605,
   "name": "t_40dd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16669,
   "name": "t_411d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16733,
   "name": "t_415d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16797,
   "name": "t_419d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16861,
   "name": "t_41dd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16895,
   "name": "t_41ff",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16925,
   "name": "t_421d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16928,
   "name": "t_4220",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16959,
   "name": "t_423f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16989,
   "name": "t_425d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16992,
   "name": "t_4260",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17023,
   "name": "t_427f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17053,
   "name": "t_429d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17056,
   "name": "t_42a0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17087,
   "name": "t_42bf",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17117,
   "name": "t_42dd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17120,
   "name": "t_42e0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17151,
   "name": "t_42ff",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17181,
   "name": "t_431d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17184,
   "name": "t_4320",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17215,
   "name": "t_433f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17245,
   "name": "t_435d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17279,
   "name": "t_437f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17280,
   "name": "t_4380",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17309,
   "name": "t_439d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17344,
   "name": "t_43c0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17346,
   "name": "t_43c2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17348,
   "name": "t_43c4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17350,
   "name": "t_43c6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17351,
   "name": "t_43c7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17352,
   "name": "t_43c8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17359,
   "name": "t_43cf",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17360,
   "name": "t_43d0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17361,
   "name": "t_43d1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17362,
   "name": "t_43d2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17363,
   "name": "t_43d3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17364,
   "name": "t_43d4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17365,
   "name": "t_43d5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17366,
   "name": "t_43d6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17367,
   "name": "t_43d7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17371,
   "name": "t_43db",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17375,
   "name": "t_43df",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17379,
   "name": "t_43e3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17380,
   "name": "t_43e4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17381,
   "name": "t_43e5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17386,
   "name": "t_43ea",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17391,
   "name": "t_43ef",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17392,
   "name": "t_43f0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17393,
   "name": "t_43f1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17394,
   "name": "t_43f2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17395,
   "name": "t_43f3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17396,
   "name": "t_43f4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17398,
   "name": "t_43f6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17399,
   "name": "t_43f7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17400,
   "name": "t_43f8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "f_4400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17656,
   "name": "f_44F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17664,
   "name": "f_4500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17912,
   "name": "f_45F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17920,
   "name": "f_4600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18168,
   "name": "f_46F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18176,
   "name": "f_4700",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18416,
   "name": "f_47F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18423,
   "name": "f_47F7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18424,
   "name": "a_47F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18425,
   "name": "a_47F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18426,
   "name": "a_47FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18427,
   "name": "a_47FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18428,
   "name": "a_47FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18429,
   "name": "a_47FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18430,
   "name": "a_47FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18431,
   "name": "a_47FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18432,
   "name": "charset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18440,
   "name": "t_4808",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18448,
   "name": "t_4810",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18456,
   "name": "t_4818",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18464,
   "name": "t_4820",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18472,
   "name": "t_4828",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18480,
   "name": "t_4830",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18488,
   "name": "t_4838",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18496,
   "name": "t_4840",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18504,
   "name": "t_4848",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18512,
   "name": "t_4850",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18520,
   "name": "t_4858",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18528,
   "name": "t_4860",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18536,
   "name": "t_4868",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18544,
   "name": "t_4870",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18552,
   "name": "t_4878",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18560,
   "name": "t_4880",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18568,
   "name": "t_4888",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18576,
   "name": "t_4890",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18584,
   "name": "glyph_19_on",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18808,
   "name": "t_4978",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18819,
   "name": "t_4983",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18830,
   "name": "glyph_31_star3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18944,
   "name": "spr_banner",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19169,
   "name": "t_4ae1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19170,
   "name": "t_4ae2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19171,
   "name": "t_4ae3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19233,
   "name": "t_4b21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19234,
   "name": "t_4b22",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19235,
   "name": "cursor_col3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19424,
   "name": "t_4be0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "spr_logo_rocks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19518,
   "name": "logo_marker",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20352,
   "name": "gfx_column_src",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20608,
   "name": "t_5080",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20672,
   "name": "t_50c0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20736,
   "name": "spr_hazards_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21760,
   "name": "spr_hazards_a2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22272,
   "name": "spr_hazards_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "spr_scenery",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "spr_scenery_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24512,
   "name": "spr_icons",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25472,
   "name": "spr_misc_8e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25856,
   "name": "spr_panel",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25956,
   "name": "t_6564",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25959,
   "name": "t_6567",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25962,
   "name": "t_656a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25965,
   "name": "t_656d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25968,
   "name": "t_6570",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25971,
   "name": "t_6573",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25974,
   "name": "t_6576",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25977,
   "name": "panel_digit_row7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26368,
   "name": "spr_explosion_ship",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27392,
   "name": "spr_lives_ships",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "spr_enemies",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "spr_enemies_c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29696,
   "name": "spr_enemies_d0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "spr_enemies_e0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "spr_enemies_f0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "zero_8000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32784,
   "name": "wave_spawn_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32792,
   "name": "b_8018",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32812,
   "name": "b_802C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32820,
   "name": "b_8034",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32842,
   "name": "b_804A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32858,
   "name": "b_805A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32865,
   "name": "b_8061",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32905,
   "name": "a_8089",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32906,
   "name": "a_808A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32955,
   "name": "b_80BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32969,
   "name": "wave_spawn_free_slot",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32971,
   "name": "b_80CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32987,
   "name": "b_80DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32990,
   "name": "wave_spawn_done",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32993,
   "name": "enemies_apply_velocity",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33000,
   "name": "b_80E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33028,
   "name": "b_8104",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33041,
   "name": "b_8111",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33049,
   "name": "b_8119",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33052,
   "name": "r_811C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 33055,
   "name": "enemy_spawn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33106,
   "name": "a_8152",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33107,
   "name": "a_8153",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33130,
   "name": "r_816A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 33133,
   "name": "b_816D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33193,
   "name": "b_81A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33210,
   "name": "b_81BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33221,
   "name": "b_81C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33230,
   "name": "b_81CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33254,
   "name": "b_81E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33265,
   "name": "j_81F1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33276,
   "name": "b_81FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33302,
   "name": "b_8216",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33313,
   "name": "b_8221",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33351,
   "name": "b_8247",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33451,
   "name": "enemies_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33458,
   "name": "b_82B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33474,
   "name": "b_82C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33478,
   "name": "b_82C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33484,
   "name": "enemy_move_1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33492,
   "name": "b_82D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33500,
   "name": "b_82DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33508,
   "name": "b_82E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33516,
   "name": "b_82EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33524,
   "name": "b_82F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33532,
   "name": "b_82FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33550,
   "name": "b_830E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33570,
   "name": "b_8322",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33634,
   "name": "b_8362",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33651,
   "name": "b_8373",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33672,
   "name": "j_8388",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33695,
   "name": "b_839F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33708,
   "name": "b_83AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33711,
   "name": "b_83AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33724,
   "name": "b_83BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33758,
   "name": "b_83DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33773,
   "name": "b_83ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33790,
   "name": "b_83FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33813,
   "name": "b_8415",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33816,
   "name": "j_8418",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33821,
   "name": "j_841D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33850,
   "name": "j_843A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33897,
   "name": "b_8469",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33900,
   "name": "b_846C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33902,
   "name": "b_846E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33930,
   "name": "j_848A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33939,
   "name": "b_8493",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33961,
   "name": "j_84A9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33972,
   "name": "enemy_move_2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33980,
   "name": "b_84BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33988,
   "name": "b_84C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33996,
   "name": "b_84CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34004,
   "name": "b_84D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34012,
   "name": "b_84DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34020,
   "name": "b_84E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34038,
   "name": "b_84F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34058,
   "name": "b_850A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34122,
   "name": "b_854A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34139,
   "name": "b_855B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34160,
   "name": "j_8570",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34183,
   "name": "b_8587",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34196,
   "name": "b_8594",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34199,
   "name": "b_8597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34212,
   "name": "b_85A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34246,
   "name": "b_85C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34261,
   "name": "b_85D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34278,
   "name": "b_85E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34301,
   "name": "b_85FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34304,
   "name": "j_8600",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34309,
   "name": "j_8605",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34338,
   "name": "j_8622",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34385,
   "name": "b_8651",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34388,
   "name": "b_8654",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34390,
   "name": "b_8656",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34418,
   "name": "j_8672",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34427,
   "name": "b_867B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34449,
   "name": "j_8691",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34460,
   "name": "enemy_move_3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34468,
   "name": "b_86A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34476,
   "name": "b_86AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34484,
   "name": "b_86B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34492,
   "name": "b_86BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34500,
   "name": "b_86C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34508,
   "name": "b_86CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34526,
   "name": "b_86DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34546,
   "name": "b_86F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34610,
   "name": "b_8732",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34627,
   "name": "b_8743",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34648,
   "name": "j_8758",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34671,
   "name": "b_876F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34684,
   "name": "b_877C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34687,
   "name": "b_877F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34700,
   "name": "b_878C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34734,
   "name": "b_87AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34749,
   "name": "b_87BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34766,
   "name": "b_87CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34789,
   "name": "b_87E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34792,
   "name": "j_87E8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34797,
   "name": "j_87ED",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34826,
   "name": "j_880A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34873,
   "name": "b_8839",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34876,
   "name": "b_883C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34878,
   "name": "b_883E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34906,
   "name": "j_885A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34915,
   "name": "b_8863",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34937,
   "name": "j_8879",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34948,
   "name": "enemy_move_4",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34956,
   "name": "b_888C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34964,
   "name": "b_8894",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34972,
   "name": "b_889C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34980,
   "name": "b_88A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34988,
   "name": "b_88AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34996,
   "name": "b_88B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35014,
   "name": "b_88C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35034,
   "name": "b_88DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35098,
   "name": "b_891A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35115,
   "name": "b_892B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35136,
   "name": "j_8940",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35159,
   "name": "b_8957",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35172,
   "name": "b_8964",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35175,
   "name": "b_8967",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35188,
   "name": "b_8974",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35222,
   "name": "b_8996",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35237,
   "name": "b_89A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35254,
   "name": "b_89B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35277,
   "name": "b_89CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35280,
   "name": "j_89D0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35285,
   "name": "j_89D5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35314,
   "name": "j_89F2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35361,
   "name": "b_8A21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35364,
   "name": "b_8A24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35366,
   "name": "b_8A26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35394,
   "name": "j_8A42",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35403,
   "name": "b_8A4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35425,
   "name": "j_8A61",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35436,
   "name": "enemy_move_5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35444,
   "name": "b_8A74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35452,
   "name": "b_8A7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35460,
   "name": "b_8A84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35468,
   "name": "b_8A8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35476,
   "name": "b_8A94",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35484,
   "name": "b_8A9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35502,
   "name": "b_8AAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35522,
   "name": "b_8AC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35586,
   "name": "b_8B02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35603,
   "name": "b_8B13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35624,
   "name": "j_8B28",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35647,
   "name": "b_8B3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35660,
   "name": "b_8B4C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35663,
   "name": "b_8B4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35676,
   "name": "b_8B5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35710,
   "name": "b_8B7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35725,
   "name": "b_8B8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35742,
   "name": "b_8B9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35765,
   "name": "b_8BB5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35768,
   "name": "j_8BB8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35773,
   "name": "j_8BBD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35802,
   "name": "j_8BDA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35849,
   "name": "b_8C09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35852,
   "name": "b_8C0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35854,
   "name": "b_8C0E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35882,
   "name": "j_8C2A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35891,
   "name": "b_8C33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35913,
   "name": "j_8C49",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35924,
   "name": "enemy_move_6",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35932,
   "name": "b_8C5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35940,
   "name": "b_8C64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35948,
   "name": "b_8C6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35956,
   "name": "b_8C74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35964,
   "name": "b_8C7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35972,
   "name": "b_8C84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35990,
   "name": "b_8C96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36010,
   "name": "b_8CAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36074,
   "name": "b_8CEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36091,
   "name": "b_8CFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36112,
   "name": "j_8D10",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36135,
   "name": "b_8D27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36148,
   "name": "b_8D34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36151,
   "name": "b_8D37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36164,
   "name": "b_8D44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36198,
   "name": "b_8D66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36213,
   "name": "b_8D75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36230,
   "name": "b_8D86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36253,
   "name": "b_8D9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36256,
   "name": "j_8DA0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36261,
   "name": "j_8DA5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36290,
   "name": "j_8DC2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36337,
   "name": "b_8DF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36340,
   "name": "b_8DF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36342,
   "name": "b_8DF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36370,
   "name": "j_8E12",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36379,
   "name": "b_8E1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36401,
   "name": "j_8E31",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36412,
   "name": "enemy_move_7",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36420,
   "name": "b_8E44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36428,
   "name": "b_8E4C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36436,
   "name": "b_8E54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36444,
   "name": "b_8E5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36452,
   "name": "b_8E64",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36460,
   "name": "b_8E6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36478,
   "name": "b_8E7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36498,
   "name": "b_8E92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36562,
   "name": "b_8ED2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36579,
   "name": "b_8EE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36600,
   "name": "j_8EF8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36623,
   "name": "b_8F0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36636,
   "name": "b_8F1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36639,
   "name": "b_8F1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36652,
   "name": "b_8F2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36686,
   "name": "b_8F4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36701,
   "name": "b_8F5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36718,
   "name": "b_8F6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36741,
   "name": "b_8F85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36744,
   "name": "j_8F88",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36749,
   "name": "j_8F8D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36778,
   "name": "j_8FAA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36825,
   "name": "b_8FD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36828,
   "name": "b_8FDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36830,
   "name": "b_8FDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36858,
   "name": "j_8FFA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36867,
   "name": "b_9003",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36889,
   "name": "j_9019",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36900,
   "name": "enemies_wave_timers",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36923,
   "name": "b_903B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36925,
   "name": "b_903D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36938,
   "name": "b_904A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36941,
   "name": "b_904D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36961,
   "name": "enemies_flags_clear",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36965,
   "name": "b_9065",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36980,
   "name": "score_add_points",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36984,
   "name": "j_9078",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36996,
   "name": "b_9084",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37003,
   "name": "b_908B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37007,
   "name": "wave_type_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37016,
   "name": "b_9098",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37033,
   "name": "b_90A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37038,
   "name": "a_90AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37052,
   "name": "b_90BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37055,
   "name": "b_90BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37058,
   "name": "wave_spawn_type_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37068,
   "name": "b_90CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37077,
   "name": "wave_spawn_type_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37120,
   "name": "enemy_fire_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37139,
   "name": "b_9113",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37171,
   "name": "b_9133",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37173,
   "name": "b_9135",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37178,
   "name": "b_913A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37180,
   "name": "b_913C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37192,
   "name": "b_9148",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37198,
   "name": "b_914E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37216,
   "name": "b_9160",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37245,
   "name": "game_over_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37276,
   "name": "b_919C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37296,
   "name": "banner_from_fb70",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37332,
   "name": "set_stage_rows_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37344,
   "name": "name_entry_tune",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37359,
   "name": "stage_advance",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37370,
   "name": "b_91FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37376,
   "name": "nop_9200",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37384,
   "name": "enemy_fire_decide",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37394,
   "name": "b_9212",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37403,
   "name": "b_921B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37409,
   "name": "b_9221",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37417,
   "name": "b_9229",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37423,
   "name": "b_922F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37436,
   "name": "b_923C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37444,
   "name": "b_9244",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37458,
   "name": "nop_9252",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37483,
   "name": "enemy_fire_aim",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 37552,
   "name": "b_92B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37573,
   "name": "b_92C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37584,
   "name": "b_92D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37589,
   "name": "j_92D5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37603,
   "name": "b_92E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37608,
   "name": "j_92E8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37613,
   "name": "j_92ED",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37615,
   "name": "a_92EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37624,
   "name": "b_92F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37641,
   "name": "b_9309",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37648,
   "name": "a_9310",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37655,
   "name": "b_9317",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37662,
   "name": "b_931E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37677,
   "name": "b_932D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37694,
   "name": "b_933E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37705,
   "name": "r_9349",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37706,
   "name": "b_934A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37715,
   "name": "b_9353",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37723,
   "name": "b_935B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37728,
   "name": "j_9360",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37749,
   "name": "b_9375",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37752,
   "name": "j_9378",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37771,
   "name": "enemy_fire_bomb",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37773,
   "name": "j_938D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37778,
   "name": "j_9392",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37789,
   "name": "b_939D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37801,
   "name": "b_93A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37810,
   "name": "b_93B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37818,
   "name": "b_93BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37841,
   "name": "b_93D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37844,
   "name": "j_93D4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37865,
   "name": "aim_row_sign",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37875,
   "name": "b_93F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37877,
   "name": "b_93F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37887,
   "name": "aim_col_sign",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37897,
   "name": "b_9409",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37899,
   "name": "b_940B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37903,
   "name": "enemy_fire_bullet",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37911,
   "name": "b_9417",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37923,
   "name": "b_9423",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37932,
   "name": "b_942C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37940,
   "name": "b_9434",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37982,
   "name": "enemy_fire_bullet_aim",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37996,
   "name": "b_946C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38009,
   "name": "lives_blink",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 38016,
   "name": "hazard_frames_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38026,
   "name": "b_948A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38047,
   "name": "b_949F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38063,
   "name": "b_94AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38079,
   "name": "b_94BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38088,
   "name": "b_94C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38102,
   "name": "r_94D6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38103,
   "name": "b_94D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38105,
   "name": "b_94D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38121,
   "name": "b_94E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38133,
   "name": "b_94F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38148,
   "name": "b_9504",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38153,
   "name": "b_9509",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38162,
   "name": "b_9512",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38164,
   "name": "b_9514",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38176,
   "name": "b_9520",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38191,
   "name": "j_952F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38201,
   "name": "b_9539",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38228,
   "name": "b_9554",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38235,
   "name": "j_955B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38246,
   "name": "b_9566",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38256,
   "name": "game_over_wait",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38263,
   "name": "b_9577",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38266,
   "name": "b_957A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38272,
   "name": "stage_gfx_sequence",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38280,
   "name": "b_9588",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38294,
   "name": "b_9596",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38332,
   "name": "b_95BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38337,
   "name": "b_95C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38338,
   "name": "a_95C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38339,
   "name": "a_95C3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38341,
   "name": "a_95C5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38342,
   "name": "a_95C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38344,
   "name": "a_95C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38345,
   "name": "a_95C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38348,
   "name": "a_95CC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38349,
   "name": "a_95CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38356,
   "name": "b_95D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38379,
   "name": "b_95EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38386,
   "name": "b_95F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38387,
   "name": "b_95F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38400,
   "name": "b_9600",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38488,
   "name": "b_9658",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38495,
   "name": "b_965F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38496,
   "name": "a_9660",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38497,
   "name": "a_9661",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38499,
   "name": "a_9663",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38500,
   "name": "a_9664",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38504,
   "name": "a_9668",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38505,
   "name": "a_9669",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38507,
   "name": "a_966B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38508,
   "name": "a_966C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38512,
   "name": "a_9670",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38513,
   "name": "a_9671",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38515,
   "name": "a_9673",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38516,
   "name": "a_9674",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38528,
   "name": "stage_gfx_sequence_b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38538,
   "name": "b_968A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38545,
   "name": "b_9691",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38565,
   "name": "b_96A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38568,
   "name": "b_96A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38581,
   "name": "j_96B5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38622,
   "name": "b_96DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38639,
   "name": "b_96EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38640,
   "name": "a_96F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38641,
   "name": "a_96F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38643,
   "name": "a_96F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38644,
   "name": "a_96F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38648,
   "name": "a_96F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38649,
   "name": "a_96F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38651,
   "name": "a_96FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38652,
   "name": "a_96FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38656,
   "name": "a_9700",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38657,
   "name": "a_9701",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38659,
   "name": "a_9703",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38660,
   "name": "a_9704",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38672,
   "name": "title_picture_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38680,
   "name": "b_9718",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38686,
   "name": "b_971E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38697,
   "name": "b_9729",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38708,
   "name": "b_9734",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38719,
   "name": "b_973F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38734,
   "name": "b_974E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38740,
   "name": "b_9754",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38751,
   "name": "b_975F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38762,
   "name": "b_976A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38777,
   "name": "b_9779",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38788,
   "name": "b_9784",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38839,
   "name": "b_97B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38858,
   "name": "b_97CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38864,
   "name": "j_97D0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38872,
   "name": "b_97D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38880,
   "name": "top_slot_anim_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38913,
   "name": "b_9801",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38923,
   "name": "b_980B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38935,
   "name": "b_9817",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38944,
   "name": "top_slot_anim_start_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38977,
   "name": "b_9841",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38987,
   "name": "b_984B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38999,
   "name": "b_9857",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39008,
   "name": "bottom_slot_anim_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39038,
   "name": "b_987E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39048,
   "name": "b_9888",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39056,
   "name": "bottom_slot_anim_start_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39086,
   "name": "b_98AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39096,
   "name": "b_98B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39104,
   "name": "bombs_home_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39114,
   "name": "b_98CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39119,
   "name": "b_98CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39145,
   "name": "b_98E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39156,
   "name": "j_98F4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39159,
   "name": "b_98F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39180,
   "name": "b_990C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39191,
   "name": "j_9917",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39194,
   "name": "b_991A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39200,
   "name": "demo_joystick_patch",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39216,
   "name": "demo_input_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39224,
   "name": "b_9938",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39237,
   "name": "b_9945",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39258,
   "name": "b_995A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39272,
   "name": "hazards_unless_paused",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39280,
   "name": "b_9970",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39284,
   "name": "icons_unless_paused",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39292,
   "name": "b_997C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39296,
   "name": "banner_text_fb70",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39315,
   "name": "banner_text_eb80",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39340,
   "name": "enemy_ai_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39422,
   "name": "b_99FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39431,
   "name": "b_9A07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39439,
   "name": "b_9A0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39445,
   "name": "b_9A15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39455,
   "name": "b_9A1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39461,
   "name": "r_9A25",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39464,
   "name": "b_9A28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39472,
   "name": "pause_check",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39535,
   "name": "b_9A6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39540,
   "name": "b_9A74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39552,
   "name": "b_9A80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39572,
   "name": "b_9A94",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39586,
   "name": "j_9AA2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39612,
   "name": "b_9ABC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39637,
   "name": "b_9AD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39642,
   "name": "fades_unless_paused",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39650,
   "name": "b_9AE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39653,
   "name": "name_setup_unless_paused",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39661,
   "name": "b_9AED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39664,
   "name": "pause_delay",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39666,
   "name": "b_9AF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39680,
   "name": "demo_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39757,
   "name": "b_9B4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39760,
   "name": "icons_or_stage2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39770,
   "name": "b_9B5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39776,
   "name": "tail_or_stage2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39786,
   "name": "b_9B6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39792,
   "name": "icons_unless_1112",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39800,
   "name": "b_9B78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39804,
   "name": "waves_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39824,
   "name": "attack_pattern_hi",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39841,
   "name": "wave_delay_set",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39850,
   "name": "fire_rate_set",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39859,
   "name": "b_9BB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39871,
   "name": "b_9BBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39880,
   "name": "enemies_clear_7",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39888,
   "name": "stage_start_flag",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39896,
   "name": "b_9BD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39902,
   "name": "swap_players_b",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39907,
   "name": "b_9BE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39936,
   "name": "wave_or_scenery",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39944,
   "name": "b_9C08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39948,
   "name": "ship_scenery_or_exit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39956,
   "name": "b_9C14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39960,
   "name": "title_icon_collisions",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39968,
   "name": "purchase_state_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39972,
   "name": "b_9C24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39987,
   "name": "joystick_read_real",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40000,
   "name": "demo_ship_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40008,
   "name": "b_9C48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40012,
   "name": "swap_players_icons",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40014,
   "name": "b_9C4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40108,
   "name": "banner_message_setup",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40136,
   "name": "death_or_turn",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40144,
   "name": "b_9CD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40150,
   "name": "extra_life_check",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40170,
   "name": "b_9CEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40185,
   "name": "b_9CF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40191,
   "name": "r_9CFF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40192,
   "name": "game_completed",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40245,
   "name": "difficulty_set",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40254,
   "name": "b_9D3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40262,
   "name": "b_9D46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40288,
   "name": "sfx_queue_service",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40308,
   "name": "b_9D74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40311,
   "name": "unused_9d77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40331,
   "name": "b_9D8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40343,
   "name": "b_9D97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40352,
   "name": "b_9DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40355,
   "name": "b_9DA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40368,
   "name": "b_9DB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40381,
   "name": "b_9DBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40383,
   "name": "b_9DBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40393,
   "name": "b_9DC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40406,
   "name": "b_9DD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40410,
   "name": "b_9DDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40420,
   "name": "b_9DE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40426,
   "name": "b_9DEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40443,
   "name": "b_9DFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40450,
   "name": "b_9E02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40454,
   "name": "b_9E06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40463,
   "name": "b_9E0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40467,
   "name": "b_9E13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40484,
   "name": "b_9E24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40507,
   "name": "b_9E3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40512,
   "name": "wave_type1_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40528,
   "name": "set_tune_request",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40552,
   "name": "sfx_laser",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40560,
   "name": "sfx_extra",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40568,
   "name": "sfx_double",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40576,
   "name": "sfx_queue_clear",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40586,
   "name": "b_9E8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40595,
   "name": "purchase_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40644,
   "name": "sfx_buy",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40652,
   "name": "sfx_extra_life",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40660,
   "name": "credit_lose",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40672,
   "name": "sfx_enemy_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40680,
   "name": "sfx_death",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40688,
   "name": "next_player_tune",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40696,
   "name": "game_over_tune",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40704,
   "name": "difficulty_fire_rate",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40712,
   "name": "fire_budget_levels",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40720,
   "name": "fire_budget_by_stage",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40736,
   "name": "wave_type_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40737,
   "name": "t_9f21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40752,
   "name": "spawn_type_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40753,
   "name": "t_9f31",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40768,
   "name": "demo_input",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40831,
   "name": "hazard_anim_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40838,
   "name": "t_9f86",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40845,
   "name": "t_9f8d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40852,
   "name": "t_9f94",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40859,
   "name": "t_9f9b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40866,
   "name": "t_9fa2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40873,
   "name": "t_9fa9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40880,
   "name": "t_9fb0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40887,
   "name": "player2_store",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40888,
   "name": "t_9fb8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40889,
   "name": "t_9fb9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40894,
   "name": "t_9fbe",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40895,
   "name": "t_9fbf",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40896,
   "name": "t_9fc0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40897,
   "name": "t_9fc1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40904,
   "name": "t_9fc8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40905,
   "name": "t_9fc9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40906,
   "name": "t_9fca",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40913,
   "name": "t_9fd1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40921,
   "name": "t_9fd9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40929,
   "name": "t_9fe1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40932,
   "name": "t_9fe4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40942,
   "name": "paused",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40943,
   "name": "pause_key_latch",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40944,
   "name": "loops_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40945,
   "name": "a_9FF1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40946,
   "name": "leftover_9ff2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "unref_a000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41088,
   "name": "velocity_list_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41089,
   "name": "t_a081",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41216,
   "name": "wave_hits_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41728,
   "name": "path_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41729,
   "name": "path_ptrs_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41984,
   "name": "wave_path_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42496,
   "name": "wave_y_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 42752,
   "name": "wave_delay_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 42753,
   "name": "t_a701",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43008,
   "name": "wave_colour_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43009,
   "name": "t_a801",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43136,
   "name": "path_segments",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43776,
   "name": "wave_records",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44800,
   "name": "wave_records_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45056,
   "name": "velocity_lists",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45060,
   "name": "t_b004",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45098,
   "name": "t_b02a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45136,
   "name": "t_b050",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45170,
   "name": "t_b072",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45204,
   "name": "t_b094",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45208,
   "name": "t_b098",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45212,
   "name": "t_b09c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45216,
   "name": "t_b0a0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45220,
   "name": "t_b0a4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45224,
   "name": "t_b0a8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45228,
   "name": "t_b0ac",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45232,
   "name": "t_b0b0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45254,
   "name": "t_b0c6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45276,
   "name": "t_b0dc",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45300,
   "name": "t_b0f4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45338,
   "name": "t_b11a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45376,
   "name": "t_b140",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45414,
   "name": "t_b166",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45452,
   "name": "t_b18c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45490,
   "name": "t_b1b2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45494,
   "name": "t_b1b6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45528,
   "name": "t_b1d8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45562,
   "name": "t_b1fa",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45580,
   "name": "t_b20c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45606,
   "name": "t_b226",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45610,
   "name": "t_b22a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45614,
   "name": "t_b22e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45618,
   "name": "t_b232",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45652,
   "name": "t_b254",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45656,
   "name": "t_b258",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45660,
   "name": "t_b25c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45694,
   "name": "t_b27e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45698,
   "name": "t_b282",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45702,
   "name": "t_b286",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45706,
   "name": "t_b28a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45710,
   "name": "t_b28e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45714,
   "name": "t_b292",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45748,
   "name": "t_b2b4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45752,
   "name": "t_b2b8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45778,
   "name": "t_b2d2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45812,
   "name": "t_b2f4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45846,
   "name": "t_b316",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45854,
   "name": "t_b31e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45862,
   "name": "t_b326",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45870,
   "name": "t_b32e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45874,
   "name": "t_b332",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45878,
   "name": "t_b336",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45894,
   "name": "t_b346",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45910,
   "name": "t_b356",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45914,
   "name": "t_b35a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45918,
   "name": "t_b35e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45934,
   "name": "t_b36e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45938,
   "name": "t_b372",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45942,
   "name": "t_b376",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45946,
   "name": "t_b37a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45950,
   "name": "t_b37e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45954,
   "name": "t_b382",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45955,
   "name": "t_b383",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46080,
   "name": "zero_b400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46336,
   "name": "path_lists",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46340,
   "name": "t_b504",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46344,
   "name": "t_b508",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46352,
   "name": "t_b510",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46357,
   "name": "t_b515",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46361,
   "name": "t_b519",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46366,
   "name": "t_b51e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46372,
   "name": "t_b524",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46377,
   "name": "t_b529",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46382,
   "name": "t_b52e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46387,
   "name": "t_b533",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46392,
   "name": "t_b538",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46397,
   "name": "t_b53d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46402,
   "name": "t_b542",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46407,
   "name": "t_b547",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46414,
   "name": "t_b54e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46423,
   "name": "t_b557",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46428,
   "name": "t_b55c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46433,
   "name": "t_b561",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46438,
   "name": "t_b566",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46443,
   "name": "t_b56b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46448,
   "name": "t_b570",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46453,
   "name": "t_b575",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46458,
   "name": "t_b57a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46462,
   "name": "t_b57e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46467,
   "name": "t_b583",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46475,
   "name": "t_b58b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46482,
   "name": "t_b592",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46486,
   "name": "t_b596",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46490,
   "name": "t_b59a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46494,
   "name": "t_b59e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46504,
   "name": "t_b5a8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46509,
   "name": "t_b5ad",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46514,
   "name": "t_b5b2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46519,
   "name": "t_b5b7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46524,
   "name": "t_b5bc",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46529,
   "name": "t_b5c1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46534,
   "name": "t_b5c6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46538,
   "name": "t_b5ca",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46543,
   "name": "t_b5cf",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46550,
   "name": "t_b5d6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46554,
   "name": "t_b5da",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46558,
   "name": "t_b5de",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46562,
   "name": "t_b5e2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46566,
   "name": "t_b5e6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46571,
   "name": "t_b5eb",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46577,
   "name": "t_b5f1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46583,
   "name": "t_b5f7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46589,
   "name": "t_b5fd",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46595,
   "name": "t_b603",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46601,
   "name": "t_b609",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46607,
   "name": "t_b60f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46613,
   "name": "t_b615",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46622,
   "name": "t_b61e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46631,
   "name": "t_b627",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46640,
   "name": "t_b630",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46649,
   "name": "t_b639",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46658,
   "name": "t_b642",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46667,
   "name": "t_b64b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46676,
   "name": "t_b654",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46681,
   "name": "t_b659",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46686,
   "name": "t_b65e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46691,
   "name": "t_b663",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46695,
   "name": "t_b667",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46702,
   "name": "t_b66e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46707,
   "name": "t_b673",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46712,
   "name": "t_b678",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46717,
   "name": "t_b67d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46722,
   "name": "t_b682",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46727,
   "name": "t_b687",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46732,
   "name": "t_b68c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46737,
   "name": "t_b691",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46742,
   "name": "t_b696",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46747,
   "name": "t_b69b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46752,
   "name": "t_b6a0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46756,
   "name": "t_b6a4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46767,
   "name": "t_b6af",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46773,
   "name": "t_b6b5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46779,
   "name": "t_b6bb",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46785,
   "name": "t_b6c1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46791,
   "name": "t_b6c7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46797,
   "name": "t_b6cd",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46802,
   "name": "t_b6d2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46806,
   "name": "t_b6d6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46810,
   "name": "t_b6da",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46814,
   "name": "t_b6de",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46818,
   "name": "t_b6e2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46822,
   "name": "t_b6e6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46826,
   "name": "t_b6ea",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46830,
   "name": "t_b6ee",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46836,
   "name": "t_b6f4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46840,
   "name": "t_b6f8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46844,
   "name": "t_b6fc",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46851,
   "name": "t_b703",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46858,
   "name": "t_b70a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46862,
   "name": "t_b70e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46866,
   "name": "t_b712",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46870,
   "name": "t_b716",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46874,
   "name": "t_b71a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46878,
   "name": "t_b71e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46882,
   "name": "t_b722",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46886,
   "name": "t_b726",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46891,
   "name": "t_b72b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46896,
   "name": "t_b730",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46901,
   "name": "t_b735",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46908,
   "name": "t_b73c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46913,
   "name": "t_b741",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46920,
   "name": "t_b748",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46927,
   "name": "t_b74f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46932,
   "name": "t_b754",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46937,
   "name": "t_b759",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46942,
   "name": "t_b75e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46947,
   "name": "t_b763",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46952,
   "name": "t_b768",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46957,
   "name": "t_b76d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46962,
   "name": "t_b772",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46966,
   "name": "t_b776",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46970,
   "name": "t_b77a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46974,
   "name": "t_b77e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46979,
   "name": "t_b783",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46984,
   "name": "t_b788",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46991,
   "name": "t_b78f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46998,
   "name": "t_b796",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47002,
   "name": "t_b79a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47009,
   "name": "t_b7a1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47015,
   "name": "t_b7a7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47019,
   "name": "t_b7ab",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47023,
   "name": "t_b7af",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47104,
   "name": "stage_waves_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47360,
   "name": "stage_waves_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47505,
   "name": "t_b991",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47615,
   "name": "t_b9ff",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47616,
   "name": "unreached_cheat",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47633,
   "name": "b_BA11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47668,
   "name": "b_BA34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47679,
   "name": "b_BA3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47684,
   "name": "b_BA44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47692,
   "name": "zero_ba4c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48128,
   "name": "music_patterns_low",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48603,
   "name": "music_arp_state",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48606,
   "name": "t_bdde",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48609,
   "name": "t_bde1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48612,
   "name": "music_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48626,
   "name": "b_BDF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48671,
   "name": "b_BE1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48677,
   "name": "b_BE25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48691,
   "name": "b_BE33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48694,
   "name": "b_BE36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48702,
   "name": "a_BE3E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48709,
   "name": "b_BE45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48720,
   "name": "j_BE50",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48758,
   "name": "b_BE76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48761,
   "name": "b_BE79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48780,
   "name": "b_BE8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48799,
   "name": "b_BE9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48851,
   "name": "b_BED3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48889,
   "name": "b_BEF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48892,
   "name": "j_BEFC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48895,
   "name": "b_BEFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48923,
   "name": "b_BF1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48926,
   "name": "j_BF1E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49003,
   "name": "b_BF6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49012,
   "name": "j_BF74",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49050,
   "name": "b_BF9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49053,
   "name": "j_BF9D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49073,
   "name": "j_BFB1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49103,
   "name": "b_BFCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49133,
   "name": "b_BFED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49153,
   "name": "b_C001",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49161,
   "name": "b_C009",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49181,
   "name": "j_C01D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49192,
   "name": "b_C028",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49209,
   "name": "j_C039",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49228,
   "name": "b_C04C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49240,
   "name": "j_C058",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49259,
   "name": "b_C06B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49269,
   "name": "j_C075",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49317,
   "name": "a_C0A5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49326,
   "name": "b_C0AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49343,
   "name": "a_C0BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49349,
   "name": "b_C0C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49366,
   "name": "b_C0D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49394,
   "name": "a_C0F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49401,
   "name": "b_C0F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49420,
   "name": "a_C10C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49424,
   "name": "b_C110",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49467,
   "name": "b_C13B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49472,
   "name": "b_C140",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49495,
   "name": "b_C157",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49498,
   "name": "j_C15A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49501,
   "name": "b_C15D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49522,
   "name": "b_C172",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49525,
   "name": "j_C175",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49528,
   "name": "b_C178",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49548,
   "name": "b_C18C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49551,
   "name": "j_C18F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49568,
   "name": "b_C1A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49598,
   "name": "b_C1BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49617,
   "name": "b_C1D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49625,
   "name": "j_C1D9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49639,
   "name": "b_C1E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49668,
   "name": "j_C204",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 49700,
   "name": "f_C224",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49701,
   "name": "r_C225",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 49702,
   "name": "note_freq_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49703,
   "name": "t_c227",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49896,
   "name": "music_voice_reg",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49899,
   "name": "music_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49900,
   "name": "t_c2ec",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49903,
   "name": "t_c2ef",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49906,
   "name": "t_c2f2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49909,
   "name": "t_c2f5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49912,
   "name": "t_c2f8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49915,
   "name": "t_c2fb",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49918,
   "name": "t_c2fe",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49921,
   "name": "t_c301",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49924,
   "name": "t_c304",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49926,
   "name": "t_c306",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49927,
   "name": "t_c307",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49928,
   "name": "t_c308",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49929,
   "name": "t_c309",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49930,
   "name": "t_c30a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49933,
   "name": "t_c30d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49936,
   "name": "t_c310",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49937,
   "name": "t_c311",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49950,
   "name": "t_c31e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49963,
   "name": "t_c32b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49964,
   "name": "t_c32c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49965,
   "name": "t_c32d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49966,
   "name": "t_c32e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49967,
   "name": "t_c32f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49970,
   "name": "t_c332",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49973,
   "name": "t_c335",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49976,
   "name": "t_c338",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49979,
   "name": "t_c33b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49981,
   "name": "t_c33d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49983,
   "name": "t_c33f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49986,
   "name": "t_c342",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49989,
   "name": "t_c345",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49992,
   "name": "t_c348",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49995,
   "name": "t_c34b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49998,
   "name": "t_c34e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50001,
   "name": "t_c351",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50004,
   "name": "t_c354",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50007,
   "name": "set_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50033,
   "name": "b_C371",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50056,
   "name": "music_stop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50062,
   "name": "music_instruments_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50063,
   "name": "t_c38f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50064,
   "name": "t_c390",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50065,
   "name": "t_c391",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50066,
   "name": "t_c392",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50067,
   "name": "t_c393",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50068,
   "name": "t_c394",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50069,
   "name": "t_c395",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50238,
   "name": "music_instruments_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50239,
   "name": "t_c43f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50240,
   "name": "t_c440",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50241,
   "name": "t_c441",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50242,
   "name": "t_c442",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50243,
   "name": "t_c443",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50244,
   "name": "t_c444",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50245,
   "name": "t_c445",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50414,
   "name": "music_tracks_now",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50417,
   "name": "t_c4f1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50420,
   "name": "music_tune_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50498,
   "name": "music_pattern_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50607,
   "name": "music_pattern_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50716,
   "name": "music_tracks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51146,
   "name": "music_patterns",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52170,
   "name": "music_patterns_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53194,
   "name": "music_patterns_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53235,
   "name": "leftover_cff3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53246,
   "name": "f_CFFE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53247,
   "name": "f_CFFF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 53248,
   "name": "hz_anim_start_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53504,
   "name": "hz_anim_start_bottom",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53760,
   "name": "hz_anim_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 54016,
   "name": "hz_spawn_d3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54272,
   "name": "hz_spawn_d4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54528,
   "name": "hz_spawn_d5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 54784,
   "name": "hz_spawn_d6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55040,
   "name": "hz_spawn_d7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "hz_spawn_d8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55552,
   "name": "hz_spawn_d9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55808,
   "name": "hz_spawn_da",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56064,
   "name": "hz_spawn_db",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56319,
   "name": "t_dbff",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56320,
   "name": "hz_spawn_dc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56576,
   "name": "hz_spawn_dd",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56832,
   "name": "hz_spawn_de",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57088,
   "name": "zero_df00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "store_hazard_shapes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58368,
   "name": "store_hazard_shapes_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59392,
   "name": "store_hazard_shapes_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60160,
   "name": "t_eb00",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60288,
   "name": "stage_words",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60294,
   "name": "t_eb86",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60295,
   "name": "t_eb87",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60528,
   "name": "zero_ec70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61391,
   "name": "title_picture_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61421,
   "name": "t_efed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61451,
   "name": "t_f00b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61481,
   "name": "t_f029",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61511,
   "name": "t_f047",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61541,
   "name": "t_f065",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61571,
   "name": "t_f083",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61607,
   "name": "gfx_swap_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61617,
   "name": "t_f0b1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61627,
   "name": "t_f0bb",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61637,
   "name": "t_f0c5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61648,
   "name": "player_names",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61664,
   "name": "store_logo_rocks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62816,
   "name": "t_f560",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 62943,
   "name": "t_f5df",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 62944,
   "name": "title_pages_pictures",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62973,
   "name": "t_f5fd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63003,
   "name": "t_f61b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63033,
   "name": "t_f639",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63063,
   "name": "t_f657",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63093,
   "name": "t_f675",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63123,
   "name": "t_f693",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63153,
   "name": "t_f6b1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63183,
   "name": "t_f6cf",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63213,
   "name": "t_f6ed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63243,
   "name": "t_f70b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63273,
   "name": "t_f729",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63303,
   "name": "t_f747",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63333,
   "name": "t_f765",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63363,
   "name": "t_f783",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63394,
   "name": "zero_f7a2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63408,
   "name": "title_texts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63464,
   "name": "hiscore_table",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63465,
   "name": "t_f7e9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63466,
   "name": "t_f7ea",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63472,
   "name": "t_f7f0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63481,
   "name": "t_f7f9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63528,
   "name": "title_texts_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63616,
   "name": "stage_banner_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63617,
   "name": "t_f881",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63744,
   "name": "stage_hazard_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63745,
   "name": "t_f901",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63746,
   "name": "t_f902",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63747,
   "name": "t_f903",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63872,
   "name": "zero_f980",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64000,
   "name": "stage_aim_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64032,
   "name": "difficulty_by_loop",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64128,
   "name": "stage_type1_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64160,
   "name": "fill_faa0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64256,
   "name": "orbiter_circle",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64257,
   "name": "t_fb01",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64288,
   "name": "score_digits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64289,
   "name": "t_fb21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64290,
   "name": "t_fb22",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64291,
   "name": "t_fb23",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64292,
   "name": "t_fb24",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64293,
   "name": "t_fb25",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64294,
   "name": "t_fb26",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64295,
   "name": "t_fb27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64368,
   "name": "messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64455,
   "name": "t_fbc7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 64512,
   "name": "zero_fc00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64608,
   "name": "banner_font",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65188,
   "name": "t_fea4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65189,
   "name": "t_fea5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65392,
   "name": "shot_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65400,
   "name": "t_ff78",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 65520,
   "name": "zero_fff0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65528,
   "name": "nmi_rti",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65530,
   "name": "cpu_vectors",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 0,
   "type": "line",
   "text": "The 6510's data-direction register. The game never writes it; the symbol comes from the RESET vector at $FFFC, which holds $0000."
  },
  {
   "address": 1,
   "type": "line",
   "text": "The processor port: $35 throughout play (RAM at $A000 and $E000, I/O at $D000); hazard_rows_step and hazard_frames_step set $34 for a moment to read their tables under the I/O area."
  },
  {
   "address": 2,
   "type": "line",
   "text": "Scratch pointer, low byte: screen addresses from the coordinate converters, the high-score slot offset, the current enemy record, the lives digit's sprite address."
  },
  {
   "address": 3,
   "type": "line",
   "text": "Scratch pointer, high byte (with $02); also the cell row from sprite_to_cell."
  },
  {
   "address": 4,
   "type": "line",
   "text": "Scratch: a sprite's X for the coordinate converters; the low byte of the banner's sprite pointer; the enemy record's path index."
  },
  {
   "address": 5,
   "type": "line",
   "text": "Scratch: a sprite's Y for the coordinate converters; the high byte of the banner's sprite pointer."
  },
  {
   "address": 6,
   "type": "line",
   "text": "Scratch: a sprite's X high bit for the coordinate converters; a multiply temporary in the enemy and banner code."
  },
  {
   "address": 8,
   "type": "line",
   "text": "Pointer to the current wave record (low byte, $AB00 + 8 x entry); in the fire code, the firing enemy's cell column."
  },
  {
   "address": 9,
   "type": "line",
   "text": "Pointer to the current wave record (high byte); in the fire code, the firing enemy's cell row."
  },
  {
   "address": 24,
   "type": "line",
   "text": "Base of the enemy-bullet pointer table: bullet k's screen pointer is at $18 + 2k (k = 1-7, $1A-$27); $18/$19 itself is never used."
  },
  {
   "address": 25,
   "type": "line",
   "text": "High byte of the unused slot 0 of the bullet pointer table (see $18)."
  },
  {
   "address": 26,
   "type": "line",
   "text": "Screen pointer of enemy bullet 1 (the $ED bullets), low byte."
  },
  {
   "address": 27,
   "type": "line",
   "text": "Screen pointer of enemy bullet 1, high byte."
  },
  {
   "address": 28,
   "type": "line",
   "text": "Screen pointer of enemy bullet 2, low byte."
  },
  {
   "address": 29,
   "type": "line",
   "text": "Screen pointer of enemy bullet 2, high byte."
  },
  {
   "address": 30,
   "type": "line",
   "text": "Screen pointer of enemy bullet 3, low byte."
  },
  {
   "address": 31,
   "type": "line",
   "text": "Screen pointer of enemy bullet 3, high byte."
  },
  {
   "address": 32,
   "type": "line",
   "text": "Screen pointer of enemy bullet 4, low byte."
  },
  {
   "address": 33,
   "type": "line",
   "text": "Screen pointer of enemy bullet 4, high byte."
  },
  {
   "address": 34,
   "type": "line",
   "text": "Screen pointer of enemy bullet 5, low byte."
  },
  {
   "address": 35,
   "type": "line",
   "text": "Screen pointer of enemy bullet 5, high byte."
  },
  {
   "address": 36,
   "type": "line",
   "text": "Screen pointer of enemy bullet 6, low byte."
  },
  {
   "address": 37,
   "type": "line",
   "text": "Screen pointer of enemy bullet 6, high byte."
  },
  {
   "address": 38,
   "type": "line",
   "text": "Screen pointer of enemy bullet 7, low byte."
  },
  {
   "address": 39,
   "type": "line",
   "text": "High byte of bullet 7's screen pointer ($26/$27); also the base the X-high-bit code indexes from ($27 + sprite, sprites 1-8 being $28-$2F)."
  },
  {
   "address": 40,
   "type": "line",
   "text": "X high bit (0 or 1) of sprite 0, the player's ship; $29-$2F are sprites 1-7."
  },
  {
   "address": 41,
   "type": "line",
   "text": "X high bit of sprite 1 (enemy slot 1)."
  },
  {
   "address": 42,
   "type": "line",
   "text": "X high bit of sprite 2 (enemy slot 2)."
  },
  {
   "address": 43,
   "type": "line",
   "text": "X high bit of sprite 3 (enemy slot 3)."
  },
  {
   "address": 44,
   "type": "line",
   "text": "X high bit of sprite 4 (enemy slot 4)."
  },
  {
   "address": 45,
   "type": "line",
   "text": "X high bit of sprite 5 (enemy slot 5)."
  },
  {
   "address": 46,
   "type": "line",
   "text": "X high bit of sprite 6 (enemy slot 6)."
  },
  {
   "address": 47,
   "type": "line",
   "text": "X high bit of sprite 7 (enemy slot 7, the boss slot)."
  },
  {
   "address": 48,
   "type": "line",
   "text": "Frame (sprite pointer) of sprite 0, the ship; $31-$37 are sprites 1-7, written into $47F8-$47FF by the multiplexer."
  },
  {
   "address": 49,
   "type": "line",
   "text": "Frame of sprite 1 (enemy slot 1)."
  },
  {
   "address": 50,
   "type": "line",
   "text": "Frame of sprite 2 (enemy slot 2)."
  },
  {
   "address": 51,
   "type": "line",
   "text": "Frame of sprite 3 (enemy slot 3)."
  },
  {
   "address": 52,
   "type": "line",
   "text": "Frame of sprite 4 (enemy slot 4)."
  },
  {
   "address": 53,
   "type": "line",
   "text": "Frame of sprite 5 (enemy slot 5)."
  },
  {
   "address": 54,
   "type": "line",
   "text": "Frame of sprite 6 (enemy slot 6)."
  },
  {
   "address": 55,
   "type": "line",
   "text": "Frame of sprite 7 (enemy slot 7); $9B hides it."
  },
  {
   "address": 56,
   "type": "line",
   "text": "X position (low byte) of sprite 0, the ship; $39-$3F are sprites 1-7."
  },
  {
   "address": 57,
   "type": "line",
   "text": "X position of sprite 1 (enemy slot 1)."
  },
  {
   "address": 58,
   "type": "line",
   "text": "X position of sprite 2 (enemy slot 2)."
  },
  {
   "address": 59,
   "type": "line",
   "text": "X position of sprite 3 (enemy slot 3)."
  },
  {
   "address": 60,
   "type": "line",
   "text": "X position of sprite 4 (enemy slot 4)."
  },
  {
   "address": 61,
   "type": "line",
   "text": "X position of sprite 5 (enemy slot 5)."
  },
  {
   "address": 62,
   "type": "line",
   "text": "X position of sprite 6 (enemy slot 6)."
  },
  {
   "address": 63,
   "type": "line",
   "text": "X position of sprite 7."
  },
  {
   "address": 64,
   "type": "line",
   "text": "Y position of sprite 0, the ship (between $36 and $DE); $41-$47 are sprites 1-7."
  },
  {
   "address": 65,
   "type": "line",
   "text": "Y position of sprite 1 (enemy slot 1)."
  },
  {
   "address": 66,
   "type": "line",
   "text": "Y position of sprite 2 (enemy slot 2)."
  },
  {
   "address": 67,
   "type": "line",
   "text": "Y position of sprite 3 (enemy slot 3)."
  },
  {
   "address": 68,
   "type": "line",
   "text": "Y position of sprite 4 (enemy slot 4)."
  },
  {
   "address": 69,
   "type": "line",
   "text": "Y position of sprite 5 (enemy slot 5)."
  },
  {
   "address": 70,
   "type": "line",
   "text": "Y position of sprite 6 (enemy slot 6)."
  },
  {
   "address": 71,
   "type": "line",
   "text": "Y position of sprite 7; also the base the laser code indexes from ($47 + 2 x slot, slots 1-3 being the pointers $49-$4E)."
  },
  {
   "address": 72,
   "type": "line",
   "text": "Sprite-sprite collisions read from $D01E in the bands; bit 0 set means the ship touched something."
  },
  {
   "address": 73,
   "type": "line",
   "text": "Screen pointer of laser bolt 1, low byte (parked at $47F0 when idle)."
  },
  {
   "address": 74,
   "type": "line",
   "text": "Screen pointer of laser bolt 1, high byte."
  },
  {
   "address": 75,
   "type": "line",
   "text": "Screen pointer of laser bolt 2, low byte."
  },
  {
   "address": 76,
   "type": "line",
   "text": "Screen pointer of laser bolt 2, high byte."
  },
  {
   "address": 77,
   "type": "line",
   "text": "Screen pointer of laser bolt 3, low byte."
  },
  {
   "address": 78,
   "type": "line",
   "text": "Screen pointer of laser bolt 3, high byte."
  },
  {
   "address": 81,
   "type": "line",
   "text": "Screen pointer of the orbiter (icon 5), low byte."
  },
  {
   "address": 82,
   "type": "line",
   "text": "Screen pointer of the orbiter, high byte."
  },
  {
   "address": 83,
   "type": "line",
   "text": "Screen pointer of weapon 4's upper beam, low byte."
  },
  {
   "address": 84,
   "type": "line",
   "text": "Screen pointer of weapon 4's upper beam, high byte."
  },
  {
   "address": 85,
   "type": "line",
   "text": "Screen pointer of weapon 4's lower beam, low byte."
  },
  {
   "address": 86,
   "type": "line",
   "text": "Screen pointer of weapon 4's lower beam, high byte."
  },
  {
   "address": 113,
   "type": "line",
   "text": "Screen address of the ship's character cell, low byte (ship_cell_update)."
  },
  {
   "address": 114,
   "type": "line",
   "text": "Screen address of the ship's character cell, high byte."
  },
  {
   "address": 139,
   "type": "line",
   "text": "Raster line of the hazard band, set per stage (stage_bands_setup)."
  },
  {
   "address": 140,
   "type": "line",
   "text": "Handler (low byte, page $18) of the hazard band."
  },
  {
   "address": 141,
   "type": "line",
   "text": "The ship's cell column (ship_cell_update), the target of aimed enemy fire."
  },
  {
   "address": 142,
   "type": "line",
   "text": "The ship's cell row."
  },
  {
   "address": 143,
   "type": "line",
   "text": "Pseudo-random index: each frame enemy_ai_step replaces it with the byte at $3000 + it, shifted right. Also the base for the colour loops over $90-$97 ($8F + 1..8)."
  },
  {
   "address": 144,
   "type": "line",
   "text": "Colour of sprite 0, the ship; $91-$97 are the colours of sprites 1-7 (the enemies, and the icons in the shop)."
  },
  {
   "address": 160,
   "type": "line",
   "text": "Screen pointer of the extra weapon's upward shot, low byte."
  },
  {
   "address": 161,
   "type": "line",
   "text": "Screen pointer of the extra weapon's upward shot, high byte."
  },
  {
   "address": 162,
   "type": "line",
   "text": "Screen pointer of the extra weapon's backward shot, low byte."
  },
  {
   "address": 163,
   "type": "line",
   "text": "Screen pointer of the extra weapon's backward shot, high byte."
  },
  {
   "address": 164,
   "type": "line",
   "text": "Screen pointer of the extra weapon's downward shot, low byte."
  },
  {
   "address": 165,
   "type": "line",
   "text": "Screen pointer of the extra weapon's downward shot, high byte."
  },
  {
   "address": 166,
   "type": "line",
   "text": "Music player: pointer to the voice's track, low byte."
  },
  {
   "address": 167,
   "type": "line",
   "text": "Music player: pointer to the voice's track, high byte; also a vibrato temporary."
  },
  {
   "address": 168,
   "type": "line",
   "text": "Music player: pointer to the current pattern, low byte; also a frequency temporary."
  },
  {
   "address": 169,
   "type": "line",
   "text": "Music player: pointer to the current pattern, high byte."
  },
  {
   "address": 183,
   "type": "line",
   "text": "Base of the hazard frame table: $B8-$C5 are the top row's fourteen sprite frames, $C6-$D3 the bottom row's."
  },
  {
   "address": 184,
   "type": "line",
   "text": "Top hazard row, slot 1: frame of its upper sprite."
  },
  {
   "address": 185,
   "type": "line",
   "text": "Top hazard row, slot 2: frame of its upper sprite."
  },
  {
   "address": 186,
   "type": "line",
   "text": "Top hazard row, slot 3: frame of its upper sprite."
  },
  {
   "address": 187,
   "type": "line",
   "text": "Top hazard row, slot 4: frame of its upper sprite."
  },
  {
   "address": 188,
   "type": "line",
   "text": "Top hazard row, slot 5: frame of its upper sprite."
  },
  {
   "address": 189,
   "type": "line",
   "text": "Top hazard row, slot 6: frame of its upper sprite."
  },
  {
   "address": 190,
   "type": "line",
   "text": "Top hazard row, slot 7: frame of its upper sprite."
  },
  {
   "address": 191,
   "type": "line",
   "text": "Top hazard row, slot 1: frame of its lower sprite."
  },
  {
   "address": 192,
   "type": "line",
   "text": "Top hazard row, slot 2: frame of its lower sprite."
  },
  {
   "address": 193,
   "type": "line",
   "text": "Top hazard row, slot 3: frame of its lower sprite."
  },
  {
   "address": 194,
   "type": "line",
   "text": "Top hazard row, slot 4: frame of its lower sprite."
  },
  {
   "address": 195,
   "type": "line",
   "text": "Top hazard row, slot 5: frame of its lower sprite."
  },
  {
   "address": 196,
   "type": "line",
   "text": "Top hazard row, slot 6: frame of its lower sprite."
  },
  {
   "address": 197,
   "type": "line",
   "text": "Top hazard row, slot 7: frame of its lower sprite."
  },
  {
   "address": 198,
   "type": "line",
   "text": "Bottom hazard row, slot 1: frame of its upper sprite."
  },
  {
   "address": 199,
   "type": "line",
   "text": "Bottom hazard row, slot 2: frame of its upper sprite."
  },
  {
   "address": 200,
   "type": "line",
   "text": "Bottom hazard row, slot 3: frame of its upper sprite."
  },
  {
   "address": 201,
   "type": "line",
   "text": "Bottom hazard row, slot 4: frame of its upper sprite."
  },
  {
   "address": 202,
   "type": "line",
   "text": "Bottom hazard row, slot 5: frame of its upper sprite."
  },
  {
   "address": 203,
   "type": "line",
   "text": "Bottom hazard row, slot 6: frame of its upper sprite."
  },
  {
   "address": 204,
   "type": "line",
   "text": "Bottom hazard row, slot 7: frame of its upper sprite."
  },
  {
   "address": 205,
   "type": "line",
   "text": "Bottom hazard row, slot 1: frame of its lower sprite."
  },
  {
   "address": 206,
   "type": "line",
   "text": "Bottom hazard row, slot 2: frame of its lower sprite."
  },
  {
   "address": 207,
   "type": "line",
   "text": "Bottom hazard row, slot 3: frame of its lower sprite."
  },
  {
   "address": 208,
   "type": "line",
   "text": "Bottom hazard row, slot 4: frame of its lower sprite."
  },
  {
   "address": 209,
   "type": "line",
   "text": "Bottom hazard row, slot 5: frame of its lower sprite."
  },
  {
   "address": 210,
   "type": "line",
   "text": "Bottom hazard row, slot 6: frame of its lower sprite."
  },
  {
   "address": 211,
   "type": "line",
   "text": "Bottom hazard row, slot 7: frame of its lower sprite."
  },
  {
   "address": 212,
   "type": "line",
   "text": "The stage's frame offset for the hazard shapes (the stage table's byte 0 shifted right twice), added to the animation's frame numbers."
  },
  {
   "address": 213,
   "type": "line",
   "text": "Scratch in stage_gfx_sequence: $D4 / 4."
  },
  {
   "address": 216,
   "type": "line",
   "text": "Base of the top hazard row's X positions ($D9-$DF, slots 1-7)."
  },
  {
   "address": 217,
   "type": "line",
   "text": "Top hazard row, slot 1: X position (shared by its two sprites)."
  },
  {
   "address": 218,
   "type": "line",
   "text": "Top hazard row, slot 2: X position (shared by its two sprites)."
  },
  {
   "address": 219,
   "type": "line",
   "text": "Top hazard row, slot 3: X position (shared by its two sprites)."
  },
  {
   "address": 220,
   "type": "line",
   "text": "Top hazard row, slot 4: X position (shared by its two sprites)."
  },
  {
   "address": 221,
   "type": "line",
   "text": "Top hazard row, slot 5: X position (shared by its two sprites)."
  },
  {
   "address": 222,
   "type": "line",
   "text": "Top hazard row, slot 6: X position (shared by its two sprites)."
  },
  {
   "address": 223,
   "type": "line",
   "text": "Top hazard row, slot 7: X position (shared by its two sprites)."
  },
  {
   "address": 224,
   "type": "line",
   "text": "Base of the bottom hazard row's X positions ($E1-$E7, slots 1-7)."
  },
  {
   "address": 225,
   "type": "line",
   "text": "Bottom hazard row, slot 1: X position."
  },
  {
   "address": 226,
   "type": "line",
   "text": "Bottom hazard row, slot 2: X position."
  },
  {
   "address": 227,
   "type": "line",
   "text": "Bottom hazard row, slot 3: X position."
  },
  {
   "address": 228,
   "type": "line",
   "text": "Bottom hazard row, slot 4: X position."
  },
  {
   "address": 229,
   "type": "line",
   "text": "Bottom hazard row, slot 5: X position."
  },
  {
   "address": 230,
   "type": "line",
   "text": "Base for the enemy shot pointers ($E6 + 2 x slot: shots in $E8-$F3, bombs $F4-$F7); also bottom-row slot 6's X."
  },
  {
   "address": 231,
   "type": "line",
   "text": "Bottom-row slot 7's X; also the high byte of the base at $E6."
  },
  {
   "address": 232,
   "type": "line",
   "text": "Screen pointer of enemy shot 0, low byte."
  },
  {
   "address": 233,
   "type": "line",
   "text": "Screen pointer of enemy shot 0, high byte."
  },
  {
   "address": 234,
   "type": "line",
   "text": "Screen pointer of enemy shot 1, low byte."
  },
  {
   "address": 235,
   "type": "line",
   "text": "Screen pointer of enemy shot 1, high byte."
  },
  {
   "address": 236,
   "type": "line",
   "text": "Screen pointer of enemy shot 2, low byte."
  },
  {
   "address": 237,
   "type": "line",
   "text": "Screen pointer of enemy shot 2, high byte."
  },
  {
   "address": 238,
   "type": "line",
   "text": "Screen pointer of enemy shot 3, low byte."
  },
  {
   "address": 239,
   "type": "line",
   "text": "Screen pointer of enemy shot 3, high byte."
  },
  {
   "address": 240,
   "type": "line",
   "text": "Screen pointer of enemy shot 4, low byte."
  },
  {
   "address": 241,
   "type": "line",
   "text": "Screen pointer of enemy shot 4, high byte."
  },
  {
   "address": 242,
   "type": "line",
   "text": "Screen pointer of enemy shot 5, low byte."
  },
  {
   "address": 243,
   "type": "line",
   "text": "Screen pointer of enemy shot 5, high byte."
  },
  {
   "address": 244,
   "type": "line",
   "text": "Screen pointer of enemy bomb 0 (top-left cell), low byte."
  },
  {
   "address": 245,
   "type": "line",
   "text": "Screen pointer of enemy bomb 0, high byte."
  },
  {
   "address": 246,
   "type": "line",
   "text": "Screen pointer of enemy bomb 1 (top-left cell), low byte."
  },
  {
   "address": 247,
   "type": "line",
   "text": "Screen pointer of enemy bomb 1, high byte."
  },
  {
   "address": 248,
   "type": "line",
   "text": "Scratch pointer to the first background glyph under a shot or bomb, low byte."
  },
  {
   "address": 249,
   "type": "line",
   "text": "Scratch pointer to the first background glyph, high byte."
  },
  {
   "address": 250,
   "type": "line",
   "text": "Scratch pointer to the second background glyph, low byte."
  },
  {
   "address": 251,
   "type": "line",
   "text": "Scratch pointer to the second background glyph, high byte."
  },
  {
   "address": 252,
   "type": "line",
   "text": "Scratch pointer to a bomb's third background glyph, low byte."
  },
  {
   "address": 253,
   "type": "line",
   "text": "Scratch pointer to a bomb's third background glyph, high byte."
  },
  {
   "address": 254,
   "type": "line",
   "text": "Scratch pointer to a bomb's fourth background glyph, low byte."
  },
  {
   "address": 255,
   "type": "line",
   "text": "Scratch pointer to a bomb's fourth background glyph, high byte."
  },
  {
   "address": 670,
   "type": "line",
   "text": "Written once, by enemies_wave_timers at $9057 (STY $029E) with zero, and never read. The neighbouring code works on the wave timer at $129E, so this is probably a slip for $129E: the store lands one page low, in the KERNAL's work area, which the game does not use."
  },
  {
   "address": 1024,
   "type": "line",
   "text": "Sound-effect request, one byte per SID voice (0, 1, 2). $FF: voice idle. $40 + n: start effect n on the next frame (sfx_start). Any value with bits 7 and 6 clear: effect running. The game writes these from sfx_queue_service ($9D60), never directly from gameplay code."
  },
  {
   "address": 1025,
   "type": "line",
   "text": "Sound-effect request for voice 1 (see sfx_request)."
  },
  {
   "address": 1026,
   "type": "line",
   "text": "Sound-effect request for voice 2 (see sfx_request)."
  },
  {
   "address": 1027,
   "type": "line",
   "text": "Stop the effect on voice A (0-2): marks the voice idle ($FF in sfx_request) and zeroes its control, attack/decay and sustain/release registers, cutting the sound at once. Called for all three voices when a tune starts (set_tune, $9E50)."
  },
  {
   "address": 1030,
   "type": "line",
   "text": "Sound-effect player, once a frame during play (reached from sfx_queue_service). Sets the SID volume to 15 with the low-pass filter mode bit, then for each voice 2..0: an idle voice is skipped, a voice with a fresh request is set up by sfx_start, a running voice steps its pitch script (every period+1 frames), adds the sweep step to its frequency and the acceleration to the step, chooses the waveform (alternating each frame between two, or an attack waveform for the first frames), counts its duration down and releases the gate in the second half; at zero the voice goes silent and idle."
  },
  {
   "address": 1040,
   "type": "side",
   "text": "per voice: X = voice, Y = its SID register offset"
  },
  {
   "address": 1103,
   "type": "line",
   "text": "Operand of the LDA at $044E: the low byte of the voice's pitch-script address, written by sfx_play_frame from sfx_script_lo."
  },
  {
   "address": 1104,
   "type": "line",
   "text": "Operand high byte (with $044F) of the pitch-script read, from sfx_script_hi; the code after it runs the script command."
  },
  {
   "address": 1331,
   "type": "line",
   "text": "Body of sfx_stop: X = voice; writes $FF to its request and zeroes control, AD and SR."
  },
  {
   "address": 1352,
   "type": "line",
   "text": "SID register offset of each voice: 0, 7, 14."
  },
  {
   "address": 1355,
   "type": "line",
   "text": "Scratch: SID register offset of the voice being played."
  },
  {
   "address": 1356,
   "type": "line",
   "text": "Incremented every frame by sfx_play_frame; bit 0 picks which of the two alternating waveforms a voice uses this frame."
  },
  {
   "address": 1357,
   "type": "line",
   "text": "Scratch: the voice being played or started (0-2)."
  },
  {
   "address": 1358,
   "type": "line",
   "text": "Per-voice state of the effect player, three bytes per field (one per voice), $054E-$058A: frequency lo, frequency hi ($0551), base frequency lo/hi for a script restart ($0554/$0557), step acceleration lo/hi ($055A/$055D), sweep step lo/hi ($0560/$0563), flags ($0566: bit 7 alternate waveforms, bit 6 attack waveform, bits 0-3 script period), period reload ($0569), waveform A ($056C), attack waveform ($056F), script position ($0572), attack frames left ($0575), duration left ($0578), waveform B ($057B), duration at start ($057E), waveform written this frame ($0581), script number ($0584), period counter ($0587)."
  },
  {
   "address": 1361,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the frequency high."
  },
  {
   "address": 1364,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the base frequency low."
  },
  {
   "address": 1367,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the base frequency high."
  },
  {
   "address": 1370,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the step acceleration low."
  },
  {
   "address": 1373,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the step acceleration high."
  },
  {
   "address": 1376,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the sweep step low."
  },
  {
   "address": 1379,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the sweep step high."
  },
  {
   "address": 1382,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the flags."
  },
  {
   "address": 1385,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the script period."
  },
  {
   "address": 1388,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the waveform A."
  },
  {
   "address": 1391,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the attack waveform."
  },
  {
   "address": 1394,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the script position."
  },
  {
   "address": 1397,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the attack frames left."
  },
  {
   "address": 1400,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the duration left."
  },
  {
   "address": 1403,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the waveform B."
  },
  {
   "address": 1406,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the duration at start."
  },
  {
   "address": 1409,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the waveform this frame."
  },
  {
   "address": 1412,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the script number."
  },
  {
   "address": 1415,
   "type": "line",
   "text": "Effect player, per voice (three bytes): the period counter."
  },
  {
   "address": 1418,
   "type": "line",
   "text": "Scratch in sfx_start: the effect's record offset (n x 8), then the count of SID registers left to copy."
  },
  {
   "address": 1419,
   "type": "line",
   "text": "Pitch-script table, low bytes of eight script addresses ($0640, $0647, $0649, $0650, $0653, $0655, $0660, $0664); high bytes at $0593, all $06."
  },
  {
   "address": 1427,
   "type": "line",
   "text": "High bytes of the eight pitch-script addresses (all $06)."
  },
  {
   "address": 1435,
   "type": "line",
   "text": "Start effect n on voice X, n being the low five bits of its request byte (cleared to n, which marks it running). Silences the voice, then loads the effect's two 8-byte records: from sfx_rec_a ($0668 + 8n) the sweep step, the waveform, the note (looked up in the music note table at $C226 for the base frequency) and seven SID registers copied straight to the voice (frequency, pulse width, control, attack/decay, sustain/release); from sfx_rec_b ($0710 + 8n) the flags and period, the two waveforms, the script number and attack frames, the duration and the step acceleration."
  },
  {
   "address": 1600,
   "type": "line",
   "text": "The eight pitch scripts, $0640-$0667, one command per byte, stepped every period+1 frames: 1 sweep the frequency up by the step, 2 sweep it down, $80 reset the frequency to the base, $FF go back to the start of the script. Script 0 at $0640 (up four times, down twice, loop), 1 at $0647, 2 at $0649, 3 at $0650, 4 at $0653, 5 at $0655, 6 at $0660, 7 at $0664."
  },
  {
   "address": 1632,
   "type": "line",
   "text": "Pitch script 6 (02 02 80 FF: down, down, reset, loop) and script 7 at $0664 (01 01 80 FF)."
  },
  {
   "address": 1640,
   "type": "line",
   "text": "Effect records, part A: 21 effects of eight bytes, $0668-$070F. Bytes 0-1 the sweep step (lo, hi), which the start also writes to the frequency registers; 2-3 pulse width; 4 the control byte (waveform and gate); 5 attack/decay; 6 sustain/release; 7 the note, an index into the music player's frequency table at $C226. sfx_start copies bytes 0-6 to the voice's seven SID registers as they are."
  },
  {
   "address": 1641,
   "type": "line",
   "text": "Byte 1 of effect 0's record A (sweep step high) and onward; part of sfx_rec_a, read as $0669 + 8n."
  },
  {
   "address": 1644,
   "type": "line",
   "text": "Byte 4 of each record A (the waveform), read as $066C + 8n."
  },
  {
   "address": 1647,
   "type": "line",
   "text": "Byte 7 of each record A (the note), read as $066F + 8n."
  },
  {
   "address": 1808,
   "type": "line",
   "text": "Effect records, part B: the same 21 effects, eight bytes each, $0710-$07B7. Byte 0 flags (bit 7 alternate between waveforms A and B every frame, bit 6 use the attack waveform for the first frames, bits 0-3 the script period); 1 waveform A; 2 the attack waveform; 3 the script number (high nibble) and attack frames (low nibble); 4 the duration in frames (the gate is released for the second half); 5-6 the acceleration added to the sweep step each script step. Byte 7 is not read."
  },
  {
   "address": 1809,
   "type": "line",
   "text": "Byte 1 of each record B (waveform A), read as $0711 + 8n."
  },
  {
   "address": 1810,
   "type": "line",
   "text": "Byte 2 of each record B (the attack waveform), read as $0712 + 8n."
  },
  {
   "address": 1811,
   "type": "line",
   "text": "Byte 3 of each record B (script and attack frames), read as $0713 + 8n."
  },
  {
   "address": 1812,
   "type": "line",
   "text": "Byte 4 of each record B (duration), read as $0714 + 8n."
  },
  {
   "address": 1813,
   "type": "line",
   "text": "Byte 5 of each record B (acceleration low), read as $0715 + 8n."
  },
  {
   "address": 1814,
   "type": "line",
   "text": "Byte 6 of each record B (acceleration high), read as $0716 + 8n."
  },
  {
   "address": 1976,
   "type": "line",
   "text": "Eight $20 bytes between the effect tables and the request queue. Not read by any instruction; they match the spaces the KERNAL's clear-screen left at $0400-$07E7 when the crack's start-up printed CHR$(147) before unpacking, so they are probably that leftover rather than the game's."
  },
  {
   "address": 1984,
   "type": "line",
   "text": "Sound-effect queue the game writes, $07C0-$07C9, serviced each frame by sfx_queue_service ($9D60): $07C0 a request for voice 0, $07C1 a flag that voice 1 is busy with a queued effect, $07C2-$07C4 the three engine-drone effects cycled when nothing else plays, $07C5 the drone index, $07C6 the voice 1/2 alternator, $07C7 a counter that replays one fixed three-effect pattern, $07C8 a request for voice 1, $07C9 a second request for voice 1."
  },
  {
   "address": 1985,
   "type": "line",
   "text": "Set while voice 1 plays a queued effect, so the engine drone leaves it alone."
  },
  {
   "address": 1986,
   "type": "line",
   "text": "The three engine-drone effects ($41, $45, $52) cycled on voice 1 or 2 when no enemy is on screen."
  },
  {
   "address": 1988,
   "type": "line",
   "text": "Third drone effect; also the end of the queue block cleared by sfx_queue_clear."
  },
  {
   "address": 1989,
   "type": "line",
   "text": "Which of the three drone effects plays next (0-2)."
  },
  {
   "address": 1990,
   "type": "line",
   "text": "Alternates the drone between voices 1 and 2."
  },
  {
   "address": 1991,
   "type": "line",
   "text": "Counts the death pattern (effects $45, $4B, $52 on voices 0 and 1)."
  },
  {
   "address": 1992,
   "type": "line",
   "text": "Effect request for voice 1 from the game (buying, credits, extra life)."
  },
  {
   "address": 1993,
   "type": "line",
   "text": "Second effect request for voice 1 (enemy fire)."
  },
  {
   "address": 1994,
   "type": "line",
   "text": "$07CA-$07FF: spaces up to $07E7 and then $FE/$FF and other bytes up to $07FF. No instruction reads them; $07CA-$07E7 matches the KERNAL's clear of a $0400 screen by the crack's start-up, so the block is taken to be left over from loading, not the game's (the play screen is at $4400)."
  },
  {
   "address": 2048,
   "type": "line",
   "text": "$0800-$0807: three zero bytes and five $20s in front of the first routine. No instruction reads them; the $20s continue the leftover of the KERNAL's screen clear seen at $07B8, so they are taken to be left from loading."
  },
  {
   "address": 2056,
   "type": "line",
   "text": "Status icons, part of the play frame (reached from $2565 when $1112 is clear). Works out the sprite pointer of each of the eight icons along the bottom of the screen ($1188-$118F, drawn by the multiplexer): icons 1 to 7 come from the seven weapon levels at $0F00-$0F06, each through its own small table of frames ($0F07-$0F19), with the level XORed by a blink bit ($0F1C-$0F22) so that an icon being bought blinks between two frames; icon 0 is frame $8D plus the credit count ($107C). In the shop during play ($11AE and $1288), the shop sprites' colours ($91-$97) are set to grey ($0C) and the first n, n being the credits, to light blue ($0E): those are the icons the player can afford. Then runs the blink of the icon being bought ($0F23 blinks left, $0F24 which icon): when the blinks run out the purchase takes effect, icon 1's level counting 0-3 and back to 0, icon 2's up to 2, the others set to 1. Continues into the sprite-animation step at $0901."
  },
  {
   "address": 2305,
   "type": "line",
   "text": "Copies an animation frame number into each of seven sprite slots ($1190+x from the table at $0F2D, indexed by each slot's frame index at $0F25+x), then on alternate frames ($0F2F toggles) steps the per-slot counters $0F36/$0F2F/$0F45 that advance or reset those frame indexes; slots whose counters run out are reloaded from $0F3D and $0EFF. Ends at $09DC. What the seven slots draw is not established."
  },
  {
   "address": 2433,
   "type": "line",
   "text": "End of a purchase blink: clears the four per-icon bytes at $0F26/$0F46/$0F30/$0F37 for icon Y and, if that icon's level is now non-zero, reloads $0F37 from $0F3E; then on to anim_frames_update."
  },
  {
   "address": 2461,
   "type": "line",
   "text": "Links in the chain of enemy-bullet movers: each mover that ends its bullet jumps here, which counts the bullet off ($0F72, and $0F73, the bullets in flight) and goes on to the next mover ($2D45, $2DBF, $2E39, $2EB3, $2F2D, $2FA7, then the lasers at $356F). Seven entries of nine bytes, $099D-$09DB."
  },
  {
   "address": 2524,
   "type": "line",
   "text": "After the icon and animation updates: when $0FA8 is set go to $9B60, otherwise to $9930."
  },
  {
   "address": 2535,
   "type": "line",
   "text": "Raster band handler (installed as $1864 -> here): next band $185E at line $77. If $117F is set, starts a fresh ship (s_3905) and switches to the band at $18A3, line $E8. Otherwise by $0FA9: 0 reloads the eight sprite positions from $0FAF/$0FB7 and numbers ($2F + slot); 1 puts seven sprites in a row at line $5B with X from $0FC0 and sets their pointers to $9B; 2 runs the attack-wave step ($8010, unless $12CC) and $3C89, then goes on to $9C40. Used on the title and the interlude screens."
  },
  {
   "address": 2664,
   "type": "line",
   "text": "Sets the X positions of sprites 1 to 4 (registers $D002-$D008, every other one) from the table at $0FD2 and leaves the interrupt."
  },
  {
   "address": 2688,
   "type": "line",
   "text": "Raster band handler (via $18AC): next band $1861 at line $AA. Places sprites 2 and 5 (X $57 and $FF), sets the Y of all eight sprites to $90 through the RAM at $D000 (the CPU sees the VIC registers there, so this writes $D001-$D00F), and sets the eight sprite pointers at $47F8-$47FF to $3C-$43."
  },
  {
   "address": 2768,
   "type": "line",
   "text": "Puts the player's ship at its start: sprite 0's X high bit clear, frame $A4, X $40, Y $5E (the zero-page sprite tables at $28/$30/$38/$40), colours $12 in $11B0 and $11B8, and clears $1100/$1101."
  },
  {
   "address": 2804,
   "type": "line",
   "text": "Reads the controls into the five flags at $10FA-$10FE: the joysticks (read_joysticks, $3375) or, when keyboard control is on ($0FFC), the keys (read_keys, $0C40)."
  },
  {
   "address": 2816,
   "type": "line",
   "text": "A jump to $955B, the target of four jumps from $218F-$2200."
  },
  {
   "address": 2819,
   "type": "line",
   "text": "One step of the between-waves sequence, entered from $9563 with the step number in Y: 0 counts $0FAF down and advances $0FCC when it reaches zero; 1 sets $112A and $0FCD and advances; 2 (once $112A is clear) cycles $0FA9 through 0-2, sets $12CC and $117F and the entry of $0FE8 for it, and starts the ship (s_3905); 3 checks $0FE8, then sets up $1187/$1183/$1186/$1167/$1166/$116B from the tables at $0FEB/$0FEE/$1004/$1007 for screen $0FA9, resets the ship (ship_reset_position) and advances; past 3, when $112E is clear, $0FCC returns to 0 and play goes on at $9B00. All paths end at $3B80."
  },
  {
   "address": 2976,
   "type": "line",
   "text": "Initialises a block of variables: $1114-$1116 to $80, $12D0, $12D1, $1113 and $110C-$110E to 0, and $110A to 3. Called from the game start ($1425, $1520)."
  },
  {
   "address": 3016,
   "type": "line",
   "text": "Fire on the title screen: sets $0FFE (game running), clears $0FFB, and continues at $19B4."
  },
  {
   "address": 3032,
   "type": "line",
   "text": "F1 on the title screen: toggles $12CA (read by the game start and the play loop; taken to be the one/two-player choice, not yet confirmed), then the key debounce at $0CF0."
  },
  {
   "address": 3043,
   "type": "line",
   "text": "F3 on the title screen: toggles $0FFC, which switches the controls from the joysticks to the keyboard (read_controls)."
  },
  {
   "address": 3054,
   "type": "line",
   "text": "F5 on the title screen: toggles $0FFD, which sfx_queue_service reads to choose between playing the in-game music and the sound effects."
  },
  {
   "address": 3072,
   "type": "line",
   "text": "Reads four keys straight from the keyboard matrix into flags $43D0-$43D3 (1 when held): F1, F3 and F5 (row 0, columns 4, 5, 6) and SPACE (row 7, column 4). Clears the flags first, and leaves $DC00 at $FF."
  },
  {
   "address": 3136,
   "type": "line",
   "text": "Keyboard control: clears the five control flags $10FA-$10FE and sets each from a key held: RETURN (row 0 column 1) fire, W (row 1 column 1) up, A (row 1 column 2) left, D (row 2 column 2) right, X (row 2 column 7) down, writing $10FA, $10FB, $10FD, $10FE and $10FC."
  },
  {
   "address": 3216,
   "type": "line",
   "text": "Title-screen key handling, run from a raster band while the title is up ($0FFE clear): scans F1/F3/F5/SPACE and the controls; fire starts the game, SPACE, F1, F3 and F5 each act once per press (the latch $10B7 is held until all are released). Fire and SPACE use $0CF0 to latch; the F keys toggle their settings. When nothing is held the latch clears and $0FFB counts down."
  },
  {
   "address": 3312,
   "type": "line",
   "text": "Latches a title key: $0FFB = $FF and $10B7 = 1, so the key acts once until everything is released, then leaves the interrupt."
  },
  {
   "address": 3328,
   "type": "line",
   "text": "High-score table insertion: adds $1D to the five score digits at $11C1-$11C5 (turning digits into the game's alphabet, where 0 is $1D), then compares that score with the four table entries at $F7EA (16 bytes apart). If it beats entry n, the entries below move down one and the score is written into slot n, followed by the eight-letter player name at $F0D0 (or $F0D8 for player 2, $11AB); $12FE is the slot's offset and $12FD is set. If it beats none, $12FD is cleared."
  },
  {
   "address": 3382,
   "type": "line",
   "text": "hiscore_insert, a place was found: moves the lower entries down and writes the score and the player's name into the slot."
  },
  {
   "address": 3472,
   "type": "line",
   "text": "Copies two three-byte columns ($1172/$1174/$1176, from X = 0 or 4 by bit 0 of $12FF) into the sprite data at $4B21 + 32 x (bits 1-2 of $12FF) and clears the three bytes above them at $4AE1: draws one character of the name entry into the name-entry sprites."
  },
  {
   "address": 3536,
   "type": "line",
   "text": "Clears the six bytes $4BE1-$4BE6 of sprite data."
  },
  {
   "address": 3549,
   "type": "line",
   "text": "Clears the play screen: colour RAM $D800-$DBFF to black and the screen $4400-$47FF to character $2E. Called once at start-up."
  },
  {
   "address": 3584,
   "type": "line",
   "text": "Copies five 30-byte blocks (ten sprite rows each) from $F5E0-$F675 into the sprite data at $4221, $4261, $42A1, $42E1 and $4321, then leaves the interrupt. One of three such copies ($0E3A, $0E74) that put a different picture into the same five sprite shapes; reached from $219E and $97CA."
  },
  {
   "address": 3642,
   "type": "line",
   "text": "As draw_title_rows_a, from $F676-$F70B."
  },
  {
   "address": 3700,
   "type": "line",
   "text": "As draw_title_rows_a, from $F70C-$F7A1."
  },
  {
   "address": 3760,
   "type": "line",
   "text": "Clears the sixteen bytes $10A8-$10AF and $10D8-$10DF and points six zero-page pointers ($49, $4B, $4D, $A0, $A2, $A4) at $47F0. Called at the game start."
  },
  {
   "address": 3804,
   "type": "line",
   "text": "During play (not on the title, not while $43C6 is set): reads the controls (joysticks or keys) and goes on to $33E6; otherwise to $2ABD."
  },
  {
   "address": 3839,
   "type": "line",
   "text": "Base of a seven-entry table ($0F00-$0F06 when indexed 1-7) shared with the weapon levels: the animation code counts these down; one per weapon slot."
  },
  {
   "address": 3840,
   "type": "line",
   "text": "Weapon level of icon 1, the speed: 0-3, ship speeds 1, 2, 4 and 8 (ship_speed_set). Buying it again at level 3 wraps it back to 0."
  },
  {
   "address": 3841,
   "type": "line",
   "text": "Weapon level of icon 2, the fire rate: 0-2. A press fires only if the laser shots free ($110A) plus this level reach 3, so level 0 allows one bolt on screen, 1 two, 2 three."
  },
  {
   "address": 3842,
   "type": "line",
   "text": "Weapon of icon 3, the extra weapon (shots up, down and backwards): 1 when owned."
  },
  {
   "address": 3843,
   "type": "line",
   "text": "Weapon of icon 4, the double laser (two beams): 1 when owned."
  },
  {
   "address": 3844,
   "type": "line",
   "text": "Weapon of icon 5, the orbiter: 1 when owned."
  },
  {
   "address": 3845,
   "type": "line",
   "text": "Weapon of icon 6, the slow-down: 1 when owned. Its frame toggle ($0F2F) is copied into $107B every frame, so the attack wave moves and spawns only on every second frame."
  },
  {
   "address": 3846,
   "type": "line",
   "text": "Weapon of icon 7, the shield: 1 when owned; it absorbs three hits ($12C0)."
  },
  {
   "address": 3847,
   "type": "line",
   "text": "Icon 1's frames by level (and the blink): $7F, $80, $81, $82, $7F, $7D."
  },
  {
   "address": 3853,
   "type": "line",
   "text": "Icon 2's frames by level: $83, $84, $85, $8D."
  },
  {
   "address": 3857,
   "type": "line",
   "text": "Icon 3's frames: $8D when not owned, $86 when owned."
  },
  {
   "address": 3859,
   "type": "line",
   "text": "Icon 4's frames: $8D, $87."
  },
  {
   "address": 3861,
   "type": "line",
   "text": "Icon 5's frames: $8D, $88."
  },
  {
   "address": 3863,
   "type": "line",
   "text": "Icon 6's frames: $8D, $89."
  },
  {
   "address": 3865,
   "type": "line",
   "text": "Icon 7's frame when not owned ($8D); when owned the frame is $0F1A."
  },
  {
   "address": 3866,
   "type": "line",
   "text": "Icon 7's frame when owned: $89 + the shield's charges left (icon_frame_extra)."
  },
  {
   "address": 3867,
   "type": "line",
   "text": "Per-icon state stored and swapped for each player (index 1-7); cleared at the game start."
  },
  {
   "address": 3868,
   "type": "line",
   "text": "Blink bit of icon 1 (XORed with its level while it is being bought)."
  },
  {
   "address": 3869,
   "type": "line",
   "text": "Blink bit of icon 2."
  },
  {
   "address": 3870,
   "type": "line",
   "text": "Blink bit of icon 3."
  },
  {
   "address": 3871,
   "type": "line",
   "text": "Blink bit of icon 4."
  },
  {
   "address": 3872,
   "type": "line",
   "text": "Blink bit of icon 5."
  },
  {
   "address": 3873,
   "type": "line",
   "text": "Blink bit of icon 6."
  },
  {
   "address": 3874,
   "type": "line",
   "text": "Blink bit of icon 7; swapped with the other player's at a change of turn."
  },
  {
   "address": 3875,
   "type": "line",
   "text": "Blinks left in the purchase animation (14 when an icon is bought)."
  },
  {
   "address": 3876,
   "type": "line",
   "text": "Which icon is blinking (0-6)."
  },
  {
   "address": 3877,
   "type": "line",
   "text": "Frame counter of the purchase blink (8 frames a blink); the base of a per-slot table $0F26-$0F2C of animation frame indexes."
  },
  {
   "address": 3878,
   "type": "line",
   "text": "Animation frame index per slot 1-6 ($0F26-$0F2B), reset when a purchase completes."
  },
  {
   "address": 3884,
   "type": "line",
   "text": "Animation frame index of slot 7, cleared when the shield is lost."
  },
  {
   "address": 3885,
   "type": "line",
   "text": "Frame table of the seven animation slots ($0F2D-$0F34, indexed by each slot's frame index); its first entry is set to $0E at a stage start and also stepped by the interlude fade."
  },
  {
   "address": 3887,
   "type": "line",
   "text": "Toggled every frame by anim_frames_update; the base of the per-slot counters $0F30-$0F35. Its state is copied to $107B when weapon 6 is owned."
  },
  {
   "address": 3888,
   "type": "line",
   "text": "Per-slot counters $0F30-$0F35 of the animation step."
  },
  {
   "address": 3894,
   "type": "line",
   "text": "Per-slot reload counter (index 1-7 from $0F37), cleared when the shield is lost."
  },
  {
   "address": 3895,
   "type": "line",
   "text": "Per-slot reload values $0F37-$0F3C, set from $0F3E when an icon is owned."
  },
  {
   "address": 3901,
   "type": "line",
   "text": "Reload value for slot 7 ($0F3D + 7 = $0F44), cleared when the shield is lost."
  },
  {
   "address": 3902,
   "type": "line",
   "text": "Reload values by icon: $30, $20, $0E, $10, $18, $08, $10."
  },
  {
   "address": 3909,
   "type": "line",
   "text": "Toggled each frame by anim_frames_update; base of per-slot flags $0F46-$0F4B."
  },
  {
   "address": 3910,
   "type": "line",
   "text": "Per-slot flags $0F46-$0F4B of the animation step."
  },
  {
   "address": 3916,
   "type": "line",
   "text": "Per-slot flag of slot 7, cleared when the shield is lost."
  },
  {
   "address": 3917,
   "type": "line",
   "text": "The enemy-fire kind for this frame (enemy_fire_setup): bit 7 bullets, bit 6 bombs, low bits the aiming base."
  },
  {
   "address": 3918,
   "type": "line",
   "text": "Jump vector used by enemies_hit_by_weapons (JMP ($0F4E)), low byte, set from the handler table at $0F50."
  },
  {
   "address": 3919,
   "type": "line",
   "text": "Jump vector high byte (see $0F4E)."
  },
  {
   "address": 3920,
   "type": "line",
   "text": "Handler table for weapon hits, sixteen words by the glyph's low nibble: $2B5E twice (no weapon to end), $2BA4, $2BAC, $2BB4, $2CC4 (the orbiter), $2B9C twice, $2B94 twice, $2B8C twice, $2B84 twice, $2B7C twice."
  },
  {
   "address": 3921,
   "type": "line",
   "text": "High bytes and the rest of the weapon-hit handler table."
  },
  {
   "address": 3952,
   "type": "line",
   "text": "Enemy shots in flight (of six)."
  },
  {
   "address": 3953,
   "type": "line",
   "text": "Enemy bombs in flight (of two)."
  },
  {
   "address": 3954,
   "type": "line",
   "text": "Enemy bullets in flight (of seven)."
  },
  {
   "address": 3955,
   "type": "line",
   "text": "Enemy fire in flight, weighted: 5 per shot, 10 per bomb, 1 per bullet; new fire must keep it under the budget $0F74."
  },
  {
   "address": 3956,
   "type": "line",
   "text": "The enemy fire budget for this stage ($24 when slot 1 holds a special enemy)."
  },
  {
   "address": 3958,
   "type": "line",
   "text": "The demo's frame counter (0-7), one recorded input byte per eight frames."
  },
  {
   "address": 3959,
   "type": "line",
   "text": "The demo's position in the recorded input at $9F40."
  },
  {
   "address": 3960,
   "type": "line",
   "text": "Set while the attract-mode demo plays."
  },
  {
   "address": 3961,
   "type": "line",
   "text": "A random bit (enemy_ai_step) that varies the fire."
  },
  {
   "address": 3962,
   "type": "line",
   "text": "Toggled with each enemy shot; picks between two fire behaviours."
  },
  {
   "address": 3963,
   "type": "line",
   "text": "Toggled by the boss's aiming: aim along X or along Y this time."
  },
  {
   "address": 3966,
   "type": "line",
   "text": "Column steps of an aimed shot moving left, by direction (0, $F0, $E0 ... $90)."
  },
  {
   "address": 3975,
   "type": "line",
   "text": "Column steps of an aimed shot moving right (0, $10, $20 ... $70)."
  },
  {
   "address": 3984,
   "type": "line",
   "text": "The bomb's stored row step; the demo also reads it as the first 'joystick port' (see demo_joystick_patch)."
  },
  {
   "address": 3985,
   "type": "line",
   "text": "The demo's recorded joystick byte, read by read_joysticks through the patched address."
  },
  {
   "address": 3987,
   "type": "line",
   "text": "Row steps of a bomb moving up, by direction (0, $FF, $FF, $FE ... $F9)."
  },
  {
   "address": 3996,
   "type": "line",
   "text": "Row steps of a bomb moving down (0, 1, 1, 2 ... 6)."
  },
  {
   "address": 4004,
   "type": "line",
   "text": "Per-bomb stored row step and 'alive' flag for the homing (bombs 1-2 at $0FA5-$0FA6)."
  },
  {
   "address": 4007,
   "type": "line",
   "text": "Bit 7 of the fire kind, kept for the shot-or-bullet choice."
  },
  {
   "address": 4008,
   "type": "line",
   "text": "Set while a stage is being played (as opposed to the title and interlude)."
  },
  {
   "address": 4009,
   "type": "line",
   "text": "The title page shown: 0 the DELTA logo, 1 the top scores, 2 the demo."
  },
  {
   "address": 4012,
   "type": "line",
   "text": "Blink counter of the title page 2 sprites (0-31)."
  },
  {
   "address": 4013,
   "type": "line",
   "text": "Colour of the title page's sprites."
  },
  {
   "address": 4014,
   "type": "line",
   "text": "Second colour of the title page's sprites."
  },
  {
   "address": 4015,
   "type": "line",
   "text": "X positions of the interlude's eight sprites ($0FAF-$0FB6); its first byte doubles as the interlude's delay counter."
  },
  {
   "address": 4023,
   "type": "line",
   "text": "Y positions of the interlude's eight sprites."
  },
  {
   "address": 4031,
   "type": "line",
   "text": "Base of the name entry sprites' X positions ($0FC0-$0FC7 when indexed 1-8)."
  },
  {
   "address": 4032,
   "type": "line",
   "text": "X positions of seven sprites in a row ($4F, $69, $81, $99, $BD, $D5, $ED), for the name entry and title page 1."
  },
  {
   "address": 4039,
   "type": "line",
   "text": "Base of a four-entry colour table $0FC8-$0FCB stepped by the interlude fade."
  },
  {
   "address": 4040,
   "type": "line",
   "text": "Colour of title page 1's upper row of sprites."
  },
  {
   "address": 4041,
   "type": "line",
   "text": "Second colour of that row."
  },
  {
   "address": 4042,
   "type": "line",
   "text": "Colour of title page 1's lower row."
  },
  {
   "address": 4043,
   "type": "line",
   "text": "Second colour of the lower row; also the icons' second multicolour."
  },
  {
   "address": 4044,
   "type": "line",
   "text": "The interlude's step (interlude_step, 0-3)."
  },
  {
   "address": 4045,
   "type": "line",
   "text": "Set while the interlude's colour fade runs."
  },
  {
   "address": 4046,
   "type": "line",
   "text": "Set while the interlude cycles its colour sets."
  },
  {
   "address": 4047,
   "type": "line",
   "text": "Which of the four interlude colour sets is next."
  },
  {
   "address": 4048,
   "type": "line",
   "text": "X positions of two sprites on title page 2."
  },
  {
   "address": 4050,
   "type": "line",
   "text": "X positions of six sprites ($87 ... $FF) used by the title rows."
  },
  {
   "address": 4056,
   "type": "line",
   "text": "X positions of the title's bottom line of eight sprites."
  },
  {
   "address": 4064,
   "type": "line",
   "text": "X positions of the title's top sprites."
  },
  {
   "address": 4072,
   "type": "line",
   "text": "State of title page 0's picture (0-3), one byte per page ($0FE8-$0FEA)."
  },
  {
   "address": 4073,
   "type": "line",
   "text": "State of title page 1's picture."
  },
  {
   "address": 4074,
   "type": "line",
   "text": "State of title page 2's picture."
  },
  {
   "address": 4075,
   "type": "line",
   "text": "Colour per title page for $1187."
  },
  {
   "address": 4078,
   "type": "line",
   "text": "Colour per title page for $1183/$1186."
  },
  {
   "address": 4081,
   "type": "line",
   "text": "Base of the ship speed pairs: speed level n reads $0FF1 + 2n and $0FF2 + 2n."
  },
  {
   "address": 4082,
   "type": "line",
   "text": "Ship speed pairs by level: 1/1, 2/2, 4/4, 8/8 (the two alternate frame by frame)."
  },
  {
   "address": 4091,
   "type": "line",
   "text": "Key-press timer on the title: set to $FF by a key, counted down while nothing is held; the option sprites show while it runs."
  },
  {
   "address": 4092,
   "type": "line",
   "text": "Keyboard control on (F3 on the title): the ship is steered with W, A, D, X and RETURN instead of a joystick."
  },
  {
   "address": 4093,
   "type": "line",
   "text": "In-game sound choice (F5 on the title): 1, the default, plays the sound effects; 0 plays Rob Hubbard's in-game music instead."
  },
  {
   "address": 4094,
   "type": "line",
   "text": "Title-to-game handover: 0 on the title and in play, 1 when fire starts a game, 2-3 while the game is set up; back to 0 once the first stage runs ($0FA8 then marks play)."
  },
  {
   "address": 4095,
   "type": "line",
   "text": "Graphics-exchange step (1-10) of swap_graphics_step; 0 when no exchange is under way."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "The raster chain's band pointer, low byte: the handler (in page $18) the IRQ handler jumps to next; every band handler writes it."
  },
  {
   "address": 4097,
   "type": "line",
   "text": "The band pointer's high byte, $18, set once at start-up."
  },
  {
   "address": 4098,
   "type": "line",
   "text": "Raster line of the band that follows the top-of-frame band, set per stage or screen."
  },
  {
   "address": 4099,
   "type": "line",
   "text": "Handler (low byte) of the band that follows the top-of-frame band."
  },
  {
   "address": 4100,
   "type": "line",
   "text": "Per title page: a colour for $1167."
  },
  {
   "address": 4103,
   "type": "line",
   "text": "Per title page: a value for $1166 and $116B."
  },
  {
   "address": 4105,
   "type": "line",
   "text": "Base of the star positions: slow layer $100A-$100F, middle layer $1010-$1015, fast layer $1016-$101B (screen offsets within each quarter)."
  },
  {
   "address": 4106,
   "type": "line",
   "text": "Slow star layer, star 1: its screen offset."
  },
  {
   "address": 4107,
   "type": "line",
   "text": "Slow star layer, star 2: its screen offset."
  },
  {
   "address": 4108,
   "type": "line",
   "text": "Slow star layer, star 3: its screen offset."
  },
  {
   "address": 4109,
   "type": "line",
   "text": "Slow star layer, star 4: its screen offset."
  },
  {
   "address": 4110,
   "type": "line",
   "text": "Slow star layer, star 5: its screen offset."
  },
  {
   "address": 4111,
   "type": "line",
   "text": "Slow star layer, star 6: its screen offset."
  },
  {
   "address": 4112,
   "type": "line",
   "text": "Middle star layer, star 1: its screen offset."
  },
  {
   "address": 4113,
   "type": "line",
   "text": "Middle star layer, star 2: its screen offset."
  },
  {
   "address": 4114,
   "type": "line",
   "text": "Middle star layer, star 3: its screen offset."
  },
  {
   "address": 4115,
   "type": "line",
   "text": "Middle star layer, star 4: its screen offset."
  },
  {
   "address": 4116,
   "type": "line",
   "text": "Middle star layer, star 5: its screen offset."
  },
  {
   "address": 4117,
   "type": "line",
   "text": "Middle star layer, star 6: its screen offset."
  },
  {
   "address": 4118,
   "type": "line",
   "text": "Fast star layer, star 1: its screen offset."
  },
  {
   "address": 4119,
   "type": "line",
   "text": "Fast star layer, star 2: its screen offset."
  },
  {
   "address": 4120,
   "type": "line",
   "text": "Fast star layer, star 3: its screen offset."
  },
  {
   "address": 4121,
   "type": "line",
   "text": "Fast star layer, star 4: its screen offset."
  },
  {
   "address": 4122,
   "type": "line",
   "text": "Fast star layer, star 5: its screen offset."
  },
  {
   "address": 4123,
   "type": "line",
   "text": "Fast star layer, star 6: its screen offset."
  },
  {
   "address": 4124,
   "type": "line",
   "text": "Toggles every frame: the slow star layer moves on every second frame."
  },
  {
   "address": 4125,
   "type": "line",
   "text": "Frame counter (0-3) of the colour cycle."
  },
  {
   "address": 4126,
   "type": "line",
   "text": "Position (0-5) in the colour cycle."
  },
  {
   "address": 4127,
   "type": "line",
   "text": "Colour cycle for the background, six entries."
  },
  {
   "address": 4133,
   "type": "line",
   "text": "Colour cycle for the first extra background colour."
  },
  {
   "address": 4139,
   "type": "line",
   "text": "Colour cycle for the second extra background colour."
  },
  {
   "address": 4145,
   "type": "line",
   "text": "Colour cycle for the third extra background colour."
  },
  {
   "address": 4151,
   "type": "line",
   "text": "Frame counter (0-7) of the hazard rows: a new hazard can arrive every eighth frame."
  },
  {
   "address": 4152,
   "type": "line",
   "text": "Position in the top row's spawn list."
  },
  {
   "address": 4153,
   "type": "line",
   "text": "Position in the bottom row's spawn list (its start is set from the stage table)."
  },
  {
   "address": 4154,
   "type": "line",
   "text": "Top row active: spawns continue while it is set."
  },
  {
   "address": 4155,
   "type": "line",
   "text": "Bottom row active."
  },
  {
   "address": 4156,
   "type": "line",
   "text": "Set when a row's spawn list should run down (rows counted off at the end of a stage)."
  },
  {
   "address": 4157,
   "type": "line",
   "text": "Raster line of the second hazard row ($E0 or $CB by the stage's layout)."
  },
  {
   "address": 4158,
   "type": "line",
   "text": "Low bytes of the lives digit's sprite address for players 1 and 2 ($4F, $8F)."
  },
  {
   "address": 4160,
   "type": "line",
   "text": "Interlude colour sets for state 2, four bytes per page."
  },
  {
   "address": 4172,
   "type": "line",
   "text": "Interlude colour sets for state 3, four bytes per page."
  },
  {
   "address": 4208,
   "type": "line",
   "text": "Per enemy slot (1-7 at $1071-$1077): set when a weapon character hit the enemy this frame, read by its mover; cleared after the movers."
  },
  {
   "address": 4209,
   "type": "line",
   "text": "Enemy slot 1 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4210,
   "type": "line",
   "text": "Enemy slot 2 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4211,
   "type": "line",
   "text": "Enemy slot 3 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4212,
   "type": "line",
   "text": "Enemy slot 4 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4213,
   "type": "line",
   "text": "Enemy slot 5 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4214,
   "type": "line",
   "text": "Enemy slot 6 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4215,
   "type": "line",
   "text": "Enemy slot 7 hit by a weapon this frame (see $1070)."
  },
  {
   "address": 4216,
   "type": "line",
   "text": "X high-bit mask of the top hazard row's sprites."
  },
  {
   "address": 4217,
   "type": "line",
   "text": "X high-bit mask of the bottom hazard row's sprites."
  },
  {
   "address": 4218,
   "type": "line",
   "text": "X high-bit mask of the play area's sprites (from $28-$2F), written to $D010."
  },
  {
   "address": 4219,
   "type": "line",
   "text": "The slow-down: when set the attack wave neither moves nor spawns this frame. With icon 6 owned it is on every second frame (from the toggle $0F2F)."
  },
  {
   "address": 4220,
   "type": "line",
   "text": "The current player's credits, spent in the shop; shown as icon 0."
  },
  {
   "address": 4221,
   "type": "line",
   "text": "The stage number, 0-31 (the banner shows it plus one)."
  },
  {
   "address": 4222,
   "type": "line",
   "text": "Death-sequence state (death_sequence_step)."
  },
  {
   "address": 4223,
   "type": "line",
   "text": "Stage-start state (stage_start_step)."
  },
  {
   "address": 4224,
   "type": "line",
   "text": "Set when the stage restarts for the same player after a death."
  },
  {
   "address": 4225,
   "type": "line",
   "text": "Name-entry setup state (name_entry_setup_step)."
  },
  {
   "address": 4226,
   "type": "line",
   "text": "Sprite multicolour 1 of the play area."
  },
  {
   "address": 4227,
   "type": "line",
   "text": "Sprite multicolour 2 of the play area."
  },
  {
   "address": 4228,
   "type": "line",
   "text": "Hazard rows of the stage being played (0-2); also selects the multiplexer layout."
  },
  {
   "address": 4231,
   "type": "line",
   "text": "The ship hit flag: 1 when the ship has collided, then the death sequence's state."
  },
  {
   "address": 4232,
   "type": "line",
   "text": "Bit masks 1, 2, 4 ... $80, one per sprite."
  },
  {
   "address": 4240,
   "type": "line",
   "text": "Top hazard row: slot busy flags (slots 1-7 at $1091-$1097)."
  },
  {
   "address": 4248,
   "type": "line",
   "text": "Bottom hazard row: slot busy flags (slots 1-7 at $1099-$109F)."
  },
  {
   "address": 4256,
   "type": "line",
   "text": "Enemy shot 0's position within its cell (0-127)."
  },
  {
   "address": 4257,
   "type": "line",
   "text": "Enemy shot 1's position within its cell."
  },
  {
   "address": 4258,
   "type": "line",
   "text": "Enemy shot 2's position within its cell."
  },
  {
   "address": 4259,
   "type": "line",
   "text": "Enemy shot 3's position within its cell."
  },
  {
   "address": 4260,
   "type": "line",
   "text": "Enemy shot 4's position within its cell."
  },
  {
   "address": 4261,
   "type": "line",
   "text": "Enemy shot 5's position within its cell."
  },
  {
   "address": 4262,
   "type": "line",
   "text": "Enemy bomb 0's pixel row within its cell (0-7)."
  },
  {
   "address": 4263,
   "type": "line",
   "text": "Enemy bomb 1's pixel row within its cell; also the base the clearing loops index from ($10A8-$10AF)."
  },
  {
   "address": 4264,
   "type": "line",
   "text": "Enemy bomb 0 active."
  },
  {
   "address": 4265,
   "type": "line",
   "text": "Enemy bomb 1 active."
  },
  {
   "address": 4266,
   "type": "line",
   "text": "Enemy shot 0 active."
  },
  {
   "address": 4267,
   "type": "line",
   "text": "Enemy shot 1 active."
  },
  {
   "address": 4268,
   "type": "line",
   "text": "Enemy shot 2 active."
  },
  {
   "address": 4269,
   "type": "line",
   "text": "Enemy shot 3 active."
  },
  {
   "address": 4270,
   "type": "line",
   "text": "Enemy shot 4 active."
  },
  {
   "address": 4271,
   "type": "line",
   "text": "Enemy shot 5 active."
  },
  {
   "address": 4272,
   "type": "line",
   "text": "Enemy bomb 0's position within its cell, horizontally."
  },
  {
   "address": 4273,
   "type": "line",
   "text": "Enemy bomb 1's position within its cell, horizontally."
  },
  {
   "address": 4279,
   "type": "line",
   "text": "Key latch: set while a key or fire is held, so it acts once (title, name entry)."
  },
  {
   "address": 4280,
   "type": "line",
   "text": "The orbiter's column offset from the circle table."
  },
  {
   "address": 4281,
   "type": "line",
   "text": "Enemy bullet 1's column step (signed, whole cells per frame)."
  },
  {
   "address": 4282,
   "type": "line",
   "text": "Enemy bullet 2's column step (signed, whole cells per frame)."
  },
  {
   "address": 4283,
   "type": "line",
   "text": "Enemy bullet 3's column step (signed, whole cells per frame)."
  },
  {
   "address": 4284,
   "type": "line",
   "text": "Enemy bullet 4's column step (signed, whole cells per frame)."
  },
  {
   "address": 4285,
   "type": "line",
   "text": "Enemy bullet 5's column step (signed, whole cells per frame)."
  },
  {
   "address": 4286,
   "type": "line",
   "text": "Enemy bullet 6's column step (signed, whole cells per frame)."
  },
  {
   "address": 4287,
   "type": "line",
   "text": "Enemy bullet 7's column step (signed, whole cells per frame)."
  },
  {
   "address": 4288,
   "type": "line",
   "text": "The orbiter's row offset from the circle table."
  },
  {
   "address": 4289,
   "type": "line",
   "text": "Enemy bullet 1's row step."
  },
  {
   "address": 4290,
   "type": "line",
   "text": "Enemy bullet 2's row step."
  },
  {
   "address": 4291,
   "type": "line",
   "text": "Enemy bullet 3's row step."
  },
  {
   "address": 4292,
   "type": "line",
   "text": "Enemy bullet 4's row step."
  },
  {
   "address": 4293,
   "type": "line",
   "text": "Enemy bullet 5's row step."
  },
  {
   "address": 4294,
   "type": "line",
   "text": "Enemy bullet 6's row step."
  },
  {
   "address": 4295,
   "type": "line",
   "text": "Enemy bullet 7's row step."
  },
  {
   "address": 4296,
   "type": "line",
   "text": "Base of the enemy bullets' columns ($10C9-$10CF)."
  },
  {
   "address": 4297,
   "type": "line",
   "text": "Enemy bullet 1's column (0-40)."
  },
  {
   "address": 4298,
   "type": "line",
   "text": "Enemy bullet 2's column (0-40)."
  },
  {
   "address": 4299,
   "type": "line",
   "text": "Enemy bullet 3's column (0-40)."
  },
  {
   "address": 4300,
   "type": "line",
   "text": "Enemy bullet 4's column (0-40)."
  },
  {
   "address": 4301,
   "type": "line",
   "text": "Enemy bullet 5's column (0-40)."
  },
  {
   "address": 4302,
   "type": "line",
   "text": "Enemy bullet 6's column (0-40)."
  },
  {
   "address": 4303,
   "type": "line",
   "text": "Enemy bullet 7's column (0-40)."
  },
  {
   "address": 4304,
   "type": "line",
   "text": "Base of the enemy bullets' rows ($10D1-$10D7)."
  },
  {
   "address": 4305,
   "type": "line",
   "text": "Enemy bullet 1's row (0-23)."
  },
  {
   "address": 4306,
   "type": "line",
   "text": "Enemy bullet 2's row (0-23)."
  },
  {
   "address": 4307,
   "type": "line",
   "text": "Enemy bullet 3's row (0-23)."
  },
  {
   "address": 4308,
   "type": "line",
   "text": "Enemy bullet 4's row (0-23)."
  },
  {
   "address": 4309,
   "type": "line",
   "text": "Enemy bullet 5's row (0-23)."
  },
  {
   "address": 4310,
   "type": "line",
   "text": "Enemy bullet 6's row (0-23)."
  },
  {
   "address": 4311,
   "type": "line",
   "text": "Enemy bullet 7's row (0-23); also the base of the clearing loop over $10D8-$10DF."
  },
  {
   "address": 4312,
   "type": "line",
   "text": "The orbiter active (drawn this frame)."
  },
  {
   "address": 4313,
   "type": "line",
   "text": "Enemy bullet 1 active."
  },
  {
   "address": 4314,
   "type": "line",
   "text": "Enemy bullet 2 active."
  },
  {
   "address": 4315,
   "type": "line",
   "text": "Enemy bullet 3 active."
  },
  {
   "address": 4316,
   "type": "line",
   "text": "Enemy bullet 4 active."
  },
  {
   "address": 4317,
   "type": "line",
   "text": "Enemy bullet 5 active."
  },
  {
   "address": 4318,
   "type": "line",
   "text": "Enemy bullet 6 active."
  },
  {
   "address": 4319,
   "type": "line",
   "text": "Enemy bullet 7 active; also the base of the row-colour fade over $10E0-$10E2."
  },
  {
   "address": 4320,
   "type": "line",
   "text": "Multicolour 1 of the hazard rows."
  },
  {
   "address": 4321,
   "type": "line",
   "text": "Multicolour 2 of the hazard rows."
  },
  {
   "address": 4322,
   "type": "line",
   "text": "Colour of the hazard rows' sprites."
  },
  {
   "address": 4325,
   "type": "line",
   "text": "Base of the enemy shots' speeds ($10E6-$10EB) and the bombs' column speeds ($10EC-$10ED)."
  },
  {
   "address": 4326,
   "type": "line",
   "text": "Enemy shot 0's speed along its row (signed, in 128ths of a cell)."
  },
  {
   "address": 4327,
   "type": "line",
   "text": "Enemy shot 1's speed along its row (signed, in 128ths of a cell)."
  },
  {
   "address": 4328,
   "type": "line",
   "text": "Enemy shot 2's speed along its row (signed, in 128ths of a cell)."
  },
  {
   "address": 4329,
   "type": "line",
   "text": "Enemy shot 3's speed along its row (signed, in 128ths of a cell)."
  },
  {
   "address": 4330,
   "type": "line",
   "text": "Enemy shot 4's speed along its row (signed, in 128ths of a cell)."
  },
  {
   "address": 4331,
   "type": "line",
   "text": "Enemy shot 5's speed along its row (signed, in 128ths of a cell)."
  },
  {
   "address": 4332,
   "type": "line",
   "text": "Enemy bomb 0's column speed (signed, steered by bombs_home_step)."
  },
  {
   "address": 4333,
   "type": "line",
   "text": "Enemy bomb 1's column speed."
  },
  {
   "address": 4334,
   "type": "line",
   "text": "Enemy shot 0's column (0-40)."
  },
  {
   "address": 4335,
   "type": "line",
   "text": "Enemy shot 1's column (0-40)."
  },
  {
   "address": 4336,
   "type": "line",
   "text": "Enemy shot 2's column (0-40)."
  },
  {
   "address": 4337,
   "type": "line",
   "text": "Enemy shot 3's column (0-40)."
  },
  {
   "address": 4338,
   "type": "line",
   "text": "Enemy shot 4's column (0-40)."
  },
  {
   "address": 4339,
   "type": "line",
   "text": "Enemy shot 5's column (0-40)."
  },
  {
   "address": 4340,
   "type": "line",
   "text": "Enemy bomb 0's column."
  },
  {
   "address": 4341,
   "type": "line",
   "text": "Enemy bomb 1's column."
  },
  {
   "address": 4342,
   "type": "line",
   "text": "Enemy bomb 0's row speed (signed, -4..4)."
  },
  {
   "address": 4343,
   "type": "line",
   "text": "Enemy bomb 1's row speed."
  },
  {
   "address": 4344,
   "type": "line",
   "text": "Enemy bomb 0's row (0-22)."
  },
  {
   "address": 4345,
   "type": "line",
   "text": "Enemy bomb 1's row; also the base the control reads clear from ($10FA-$10FE)."
  },
  {
   "address": 4346,
   "type": "line",
   "text": "Control flag: fire pressed."
  },
  {
   "address": 4347,
   "type": "line",
   "text": "Control flag: up."
  },
  {
   "address": 4348,
   "type": "line",
   "text": "Control flag: down."
  },
  {
   "address": 4349,
   "type": "line",
   "text": "Control flag: left."
  },
  {
   "address": 4350,
   "type": "line",
   "text": "Control flag: right."
  },
  {
   "address": 4351,
   "type": "line",
   "text": "The port byte being decoded by read_joysticks."
  },
  {
   "address": 4352,
   "type": "line",
   "text": "Pixels left of the ship's current step up (8 at the start of a step)."
  },
  {
   "address": 4353,
   "type": "line",
   "text": "Pixels left of the ship's current step down."
  },
  {
   "address": 4356,
   "type": "line",
   "text": "Ship speed, first of the pair used on alternate frames (from the speed level)."
  },
  {
   "address": 4357,
   "type": "line",
   "text": "Ship speed, second of the pair."
  },
  {
   "address": 4358,
   "type": "line",
   "text": "Alternates the two speeds for vertical movement."
  },
  {
   "address": 4359,
   "type": "line",
   "text": "Alternates the two speeds for horizontal movement."
  },
  {
   "address": 4360,
   "type": "line",
   "text": "Fire latch: set while fire is held after a shot, so each press fires once."
  },
  {
   "address": 4361,
   "type": "line",
   "text": "Fire delay: frames before the next laser can be fired (8 after a shot)."
  },
  {
   "address": 4362,
   "type": "line",
   "text": "Laser shots available (3 at the start; each bolt returns one when it ends)."
  },
  {
   "address": 4363,
   "type": "line",
   "text": "Key-repeat counter of the name entry (left/right); also the base of the laser flags $110C-$110E."
  },
  {
   "address": 4364,
   "type": "line",
   "text": "Laser bolt 1 in flight."
  },
  {
   "address": 4365,
   "type": "line",
   "text": "Laser bolt 2 in flight."
  },
  {
   "address": 4366,
   "type": "line",
   "text": "Laser bolt 3 in flight; also the base of the laser columns $110F-$1111."
  },
  {
   "address": 4367,
   "type": "line",
   "text": "Laser bolt 1's column ($24 ends it)."
  },
  {
   "address": 4368,
   "type": "line",
   "text": "Laser bolt 2's column."
  },
  {
   "address": 4369,
   "type": "line",
   "text": "Laser bolt 3's column."
  },
  {
   "address": 4370,
   "type": "line",
   "text": "Set while the icon row is blank (between stages)."
  },
  {
   "address": 4371,
   "type": "line",
   "text": "Extra-weapon shots still flying (three per burst)."
  },
  {
   "address": 4372,
   "type": "line",
   "text": "Rows left for the extra weapon's upward shot ($80 when parked, 0 when it hits an enemy)."
  },
  {
   "address": 4373,
   "type": "line",
   "text": "Columns left for the extra weapon's backward shot ($80 when parked)."
  },
  {
   "address": 4374,
   "type": "line",
   "text": "Row of the extra weapon's downward shot (it ends at row $18; $80 when parked)."
  },
  {
   "address": 4375,
   "type": "line",
   "text": "Sprite-sprite collisions read in the upper band."
  },
  {
   "address": 4376,
   "type": "line",
   "text": "Counter of colours still fading."
  },
  {
   "address": 4377,
   "type": "line",
   "text": "The colour chain used by every fade: entry n is the colour that follows colour n on the way to black (16 entries)."
  },
  {
   "address": 4393,
   "type": "line",
   "text": "Frame counter (0-3) of the fades."
  },
  {
   "address": 4394,
   "type": "line",
   "text": "Set while the sprites fade out."
  },
  {
   "address": 4395,
   "type": "line",
   "text": "Sprite-sprite collisions read in the bottom band."
  },
  {
   "address": 4396,
   "type": "line",
   "text": "Set while the hazard rows' colours fade out."
  },
  {
   "address": 4397,
   "type": "line",
   "text": "Scratch: the lives digit times 4 (draw_lives)."
  },
  {
   "address": 4398,
   "type": "line",
   "text": "Set while the sprite colour sets cycle (stage start and interlude)."
  },
  {
   "address": 4399,
   "type": "line",
   "text": "Sprite template for a stage start: frames $1130-$1136, X $1138-$113E, Y $1140-$1146 (by sprite 1-7)."
  },
  {
   "address": 4407,
   "type": "line",
   "text": "Base of the template's X table ($1138-$113E); its first four entries also serve as the Y positions in the band at $1940."
  },
  {
   "address": 4411,
   "type": "line",
   "text": "Template X for sprites 4-7, also the Y positions in the bands at $1960/$1980."
  },
  {
   "address": 4415,
   "type": "line",
   "text": "Base of the template's Y table ($1140-$1147)."
  },
  {
   "address": 4424,
   "type": "line",
   "text": "Name-entry state (hiscore_entry_step): 0 off, 1 decide, 2 wait, 3 and up enter letters."
  },
  {
   "address": 4425,
   "type": "line",
   "text": "Banner timer, low byte."
  },
  {
   "address": 4426,
   "type": "line",
   "text": "Banner timer, high byte."
  },
  {
   "address": 4427,
   "type": "line",
   "text": "Frames before the next wave group may start ($30 after a restart)."
  },
  {
   "address": 4429,
   "type": "line",
   "text": "Which of the four sprite colour sets is next."
  },
  {
   "address": 4431,
   "type": "line",
   "text": "Key-repeat counter of the name entry (up/down)."
  },
  {
   "address": 4432,
   "type": "line",
   "text": "Sprite multicolour 1 for each of the four colour sets."
  },
  {
   "address": 4436,
   "type": "line",
   "text": "Interlude colour sets: $0FAD values."
  },
  {
   "address": 4440,
   "type": "line",
   "text": "Interlude colour sets: $0FAE values."
  },
  {
   "address": 4444,
   "type": "line",
   "text": "Interlude colour sets: $0FC8 values."
  },
  {
   "address": 4448,
   "type": "line",
   "text": "Interlude colour sets: $0FC9 values."
  },
  {
   "address": 4452,
   "type": "line",
   "text": "Interlude colour sets: $0FCA values."
  },
  {
   "address": 4454,
   "type": "line",
   "text": "Set per title page by interlude_step (from $1007)."
  },
  {
   "address": 4455,
   "type": "line",
   "text": "Set per title page by interlude_step (from $1004)."
  },
  {
   "address": 4456,
   "type": "line",
   "text": "Interlude colour sets: $0FCB values."
  },
  {
   "address": 4459,
   "type": "line",
   "text": "Set per title page by interlude_step from the same table as $1166 ($1007), a second copy of that value."
  },
  {
   "address": 4461,
   "type": "line",
   "text": "Set while the banner is being drawn."
  },
  {
   "address": 4462,
   "type": "line",
   "text": "The banner's letter being drawn (0-7)."
  },
  {
   "address": 4463,
   "type": "line",
   "text": "Scratch: a letter's glyph offset."
  },
  {
   "address": 4464,
   "type": "line",
   "text": "Name entry: step to the next letter."
  },
  {
   "address": 4465,
   "type": "line",
   "text": "Name entry: step to the previous letter."
  },
  {
   "address": 4466,
   "type": "line",
   "text": "Name-entry cursor glyph columns (with $1174, $1176)."
  },
  {
   "address": 4468,
   "type": "line",
   "text": "Name-entry cursor glyph, second column."
  },
  {
   "address": 4470,
   "type": "line",
   "text": "Name-entry cursor glyph, third column."
  },
  {
   "address": 4476,
   "type": "line",
   "text": "Set once the boss has aimed in its current approach."
  },
  {
   "address": 4477,
   "type": "line",
   "text": "Tune request for sfx_queue_service (tune number + 1; 0 for none)."
  },
  {
   "address": 4479,
   "type": "line",
   "text": "Set when the interlude's ship should be (re)started."
  },
  {
   "address": 4480,
   "type": "line",
   "text": "Sprite multicolour 2 for each of the four colour sets."
  },
  {
   "address": 4483,
   "type": "line",
   "text": "Colour for the title page ($0B), also the first entry of the sprite colour sets."
  },
  {
   "address": 4484,
   "type": "line",
   "text": "Sprite colour for each of the four colour sets."
  },
  {
   "address": 4486,
   "type": "line",
   "text": "Colour for the title page ($0B)."
  },
  {
   "address": 4487,
   "type": "line",
   "text": "Colour for the title page ($0C); also the base of the icon frames ($1188-$118F)."
  },
  {
   "address": 4488,
   "type": "line",
   "text": "Icon 0's frame: $8D + the credits."
  },
  {
   "address": 4489,
   "type": "line",
   "text": "Icon 1's frame (speed)."
  },
  {
   "address": 4490,
   "type": "line",
   "text": "Icon 2's frame (fire rate)."
  },
  {
   "address": 4491,
   "type": "line",
   "text": "Icon 3's frame (extra weapon)."
  },
  {
   "address": 4492,
   "type": "line",
   "text": "Icon 4's frame (double laser)."
  },
  {
   "address": 4493,
   "type": "line",
   "text": "Icon 5's frame (orbiter)."
  },
  {
   "address": 4494,
   "type": "line",
   "text": "Icon 6's frame (slow-down)."
  },
  {
   "address": 4495,
   "type": "line",
   "text": "Icon 7's frame (shield); also the base of the icon colours $1190-$1197."
  },
  {
   "address": 4496,
   "type": "line",
   "text": "Icon 0's colour (also the first animation slot's frame)."
  },
  {
   "address": 4497,
   "type": "line",
   "text": "Icon 1's colour (grey $0C when unaffordable in the shop)."
  },
  {
   "address": 4498,
   "type": "line",
   "text": "Icon 2's colour (grey $0C when unaffordable in the shop)."
  },
  {
   "address": 4499,
   "type": "line",
   "text": "Icon 3's colour (grey $0C when unaffordable in the shop)."
  },
  {
   "address": 4500,
   "type": "line",
   "text": "Icon 4's colour (grey $0C when unaffordable in the shop)."
  },
  {
   "address": 4501,
   "type": "line",
   "text": "Icon 5's colour (grey $0C when unaffordable in the shop)."
  },
  {
   "address": 4502,
   "type": "line",
   "text": "Icon 6's colour (grey $0C when unaffordable in the shop)."
  },
  {
   "address": 4503,
   "type": "line",
   "text": "Icon 7's colour; the last of the icon colours."
  },
  {
   "address": 4511,
   "type": "line",
   "text": "Base of the banner's four line numbers ($11A0-$11A3)."
  },
  {
   "address": 4512,
   "type": "line",
   "text": "Banner line 1: a line number in the current message table."
  },
  {
   "address": 4513,
   "type": "line",
   "text": "Banner line 2."
  },
  {
   "address": 4514,
   "type": "line",
   "text": "Banner line 3."
  },
  {
   "address": 4515,
   "type": "line",
   "text": "Banner line 4."
  },
  {
   "address": 4516,
   "type": "line",
   "text": "Banner drawer: offset into the destination sprite."
  },
  {
   "address": 4517,
   "type": "line",
   "text": "Banner drawer: offset into the glyph."
  },
  {
   "address": 4518,
   "type": "line",
   "text": "Banner drawer: the right-hand half of a shifted letter."
  },
  {
   "address": 4519,
   "type": "line",
   "text": "Banner progress (0-15): two letters per sprite, eight sprites."
  },
  {
   "address": 4520,
   "type": "line",
   "text": "Frames the banner stays up after it is drawn."
  },
  {
   "address": 4521,
   "type": "line",
   "text": "Enables the sprite animation (enemy_anim_step)."
  },
  {
   "address": 4522,
   "type": "line",
   "text": "Which pair of sprites is animated this frame (0, 2, 4, 6)."
  },
  {
   "address": 4523,
   "type": "line",
   "text": "The current player: 0 for player 1, 1 for player 2."
  },
  {
   "address": 4524,
   "type": "line",
   "text": "Starts the panel's ship spin (set by stage_restart)."
  },
  {
   "address": 4525,
   "type": "line",
   "text": "Stops the panel's ship spin at the end of its cycle (set by a death)."
  },
  {
   "address": 4526,
   "type": "line",
   "text": "Set while the current player's ship in the score panel spins (panel_ship_spin), which is during play; several play routines test it."
  },
  {
   "address": 4527,
   "type": "line",
   "text": "Frame counter (4) of the panel ship's spin."
  },
  {
   "address": 4528,
   "type": "line",
   "text": "Animation list position of sprite 0, the ship; $11B1-$11B7 are sprites 1-7."
  },
  {
   "address": 4529,
   "type": "line",
   "text": "Animation list position of sprite 1 (enemy slot 1)."
  },
  {
   "address": 4530,
   "type": "line",
   "text": "Animation list position of sprite 2 (enemy slot 2)."
  },
  {
   "address": 4531,
   "type": "line",
   "text": "Animation list position of sprite 3 (enemy slot 3)."
  },
  {
   "address": 4532,
   "type": "line",
   "text": "Animation list position of sprite 4 (enemy slot 4)."
  },
  {
   "address": 4533,
   "type": "line",
   "text": "Animation list position of sprite 5 (enemy slot 5)."
  },
  {
   "address": 4534,
   "type": "line",
   "text": "Animation list position of sprite 6 (enemy slot 6)."
  },
  {
   "address": 4535,
   "type": "line",
   "text": "Animation list position of sprite 7 (enemy slot 7)."
  },
  {
   "address": 4536,
   "type": "line",
   "text": "Animation restart position of sprite 0; $11B9-$11BF are sprites 1-7."
  },
  {
   "address": 4537,
   "type": "line",
   "text": "Animation restart position of sprite 1."
  },
  {
   "address": 4538,
   "type": "line",
   "text": "Animation restart position of sprite 2."
  },
  {
   "address": 4539,
   "type": "line",
   "text": "Animation restart position of sprite 3."
  },
  {
   "address": 4540,
   "type": "line",
   "text": "Animation restart position of sprite 4."
  },
  {
   "address": 4541,
   "type": "line",
   "text": "Animation restart position of sprite 5."
  },
  {
   "address": 4542,
   "type": "line",
   "text": "Animation restart position of sprite 6."
  },
  {
   "address": 4543,
   "type": "line",
   "text": "Animation restart position of sprite 7."
  },
  {
   "address": 4544,
   "type": "line",
   "text": "The panel spin's position in its list at $1312; also the base of the score digits ($11C1-$11C5)."
  },
  {
   "address": 4545,
   "type": "line",
   "text": "Score digit 1 (the highest of five; the panel shows a sixth, always 0, after them, so a point here is worth 10)."
  },
  {
   "address": 4546,
   "type": "line",
   "text": "Score digit 2: the panel's ten-thousands; each time it goes up the player gets an extra life (extra_life_check)."
  },
  {
   "address": 4549,
   "type": "line",
   "text": "Score digit 5 (the panel's tens); also the base of player 1's digit offsets in the panel sprite ($11C6-$11CA)."
  },
  {
   "address": 4554,
   "type": "line",
   "text": "Base of player 2's digit offsets in the panel sprite ($11CB-$11CF)."
  },
  {
   "address": 4560,
   "type": "line",
   "text": "Frames of the death pause ($40); also the carry slot above the pending score."
  },
  {
   "address": 4561,
   "type": "line",
   "text": "Base of the pending score digits $11D2-$11D6, added into the score by score_add_pending."
  },
  {
   "address": 4564,
   "type": "line",
   "text": "Pending score: the hundreds digit (a 100-point enemy adds here)."
  },
  {
   "address": 4565,
   "type": "line",
   "text": "Pending score: the tens digit."
  },
  {
   "address": 4566,
   "type": "line",
   "text": "Pending score: the units digit."
  },
  {
   "address": 4568,
   "type": "line",
   "text": "Points by an enemy's points code: 5, 7, 10, 15, 20, 25, 50, 100 (shown ten times larger in the panel)."
  },
  {
   "address": 4576,
   "type": "line",
   "text": "Base of the enemies' alive flags ($11E1-$11E7, slots 1-7)."
  },
  {
   "address": 4577,
   "type": "line",
   "text": "Enemy slot 1 alive."
  },
  {
   "address": 4578,
   "type": "line",
   "text": "Enemy slot 2 alive."
  },
  {
   "address": 4579,
   "type": "line",
   "text": "Enemy slot 3 alive."
  },
  {
   "address": 4580,
   "type": "line",
   "text": "Enemy slot 4 alive."
  },
  {
   "address": 4581,
   "type": "line",
   "text": "Enemy slot 5 alive."
  },
  {
   "address": 4582,
   "type": "line",
   "text": "Enemy slot 6 alive."
  },
  {
   "address": 4583,
   "type": "line",
   "text": "Enemy slot 7 alive."
  },
  {
   "address": 4584,
   "type": "line",
   "text": "Base of the enemies' X velocities ($11E9-$11EF)."
  },
  {
   "address": 4585,
   "type": "line",
   "text": "Enemy slot 1's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4586,
   "type": "line",
   "text": "Enemy slot 2's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4587,
   "type": "line",
   "text": "Enemy slot 3's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4588,
   "type": "line",
   "text": "Enemy slot 4's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4589,
   "type": "line",
   "text": "Enemy slot 5's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4590,
   "type": "line",
   "text": "Enemy slot 6's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4591,
   "type": "line",
   "text": "Enemy slot 7's X velocity (signed, pixels per frame)."
  },
  {
   "address": 4592,
   "type": "line",
   "text": "Base of the enemies' Y velocities ($11F1-$11F7)."
  },
  {
   "address": 4593,
   "type": "line",
   "text": "Enemy slot 1's Y velocity."
  },
  {
   "address": 4594,
   "type": "line",
   "text": "Enemy slot 2's Y velocity."
  },
  {
   "address": 4595,
   "type": "line",
   "text": "Enemy slot 3's Y velocity."
  },
  {
   "address": 4596,
   "type": "line",
   "text": "Enemy slot 4's Y velocity."
  },
  {
   "address": 4597,
   "type": "line",
   "text": "Enemy slot 5's Y velocity."
  },
  {
   "address": 4598,
   "type": "line",
   "text": "Enemy slot 6's Y velocity."
  },
  {
   "address": 4599,
   "type": "line",
   "text": "Enemy slot 7's Y velocity."
  },
  {
   "address": 4600,
   "type": "line",
   "text": "Per enemy slot state cleared at a spawn ($11F9-$11FF)."
  },
  {
   "address": 4608,
   "type": "line",
   "text": "Base of a per-slot flag ($1201-$1207) from bit 6 of the enemy record's byte 3. For slot 1 it raises the fire budget to $24 and sets the fire rate (enemy_fire_setup): a heavy-fire wave."
  },
  {
   "address": 4609,
   "type": "line",
   "text": "Slot 1's flag from bit 6 of its record's byte 3 (see $1200); its value becomes the fire rate."
  },
  {
   "address": 4616,
   "type": "line",
   "text": "Base of a per-slot flag ($1209-$120F): $FF once an enemy has no further form to change into; such an enemy is also left out of the weapon test."
  },
  {
   "address": 4617,
   "type": "line",
   "text": "Enemy slot 1's flag."
  },
  {
   "address": 4618,
   "type": "line",
   "text": "Enemy slot 2's flag."
  },
  {
   "address": 4619,
   "type": "line",
   "text": "Enemy slot 3's flag."
  },
  {
   "address": 4620,
   "type": "line",
   "text": "Enemy slot 4's flag."
  },
  {
   "address": 4621,
   "type": "line",
   "text": "Enemy slot 5's flag."
  },
  {
   "address": 4622,
   "type": "line",
   "text": "Enemy slot 6's flag."
  },
  {
   "address": 4623,
   "type": "line",
   "text": "Enemy slot 7's flag."
  },
  {
   "address": 4624,
   "type": "line",
   "text": "Base of the per-slot vertical mirror ($1211-$1217, bit 7 of the record's byte 2): the velocity list's dy is negated."
  },
  {
   "address": 4625,
   "type": "line",
   "text": "Enemy slot 1's vertical mirror."
  },
  {
   "address": 4626,
   "type": "line",
   "text": "Enemy slot 2's vertical mirror."
  },
  {
   "address": 4627,
   "type": "line",
   "text": "Enemy slot 3's vertical mirror."
  },
  {
   "address": 4628,
   "type": "line",
   "text": "Enemy slot 4's vertical mirror."
  },
  {
   "address": 4629,
   "type": "line",
   "text": "Enemy slot 5's vertical mirror."
  },
  {
   "address": 4630,
   "type": "line",
   "text": "Enemy slot 6's vertical mirror."
  },
  {
   "address": 4631,
   "type": "line",
   "text": "Enemy slot 7's vertical mirror."
  },
  {
   "address": 4632,
   "type": "line",
   "text": "Base of the per-slot copy of bit 7 of the current path segment's byte 3 ($1219-$121F): when hit points run out, change into the next form rather than explode."
  },
  {
   "address": 4633,
   "type": "line",
   "text": "Enemy slot 1's form-change flag."
  },
  {
   "address": 4634,
   "type": "line",
   "text": "Enemy slot 2's form-change flag."
  },
  {
   "address": 4635,
   "type": "line",
   "text": "Enemy slot 3's form-change flag."
  },
  {
   "address": 4636,
   "type": "line",
   "text": "Enemy slot 4's form-change flag."
  },
  {
   "address": 4637,
   "type": "line",
   "text": "Enemy slot 5's form-change flag."
  },
  {
   "address": 4638,
   "type": "line",
   "text": "Enemy slot 6's form-change flag."
  },
  {
   "address": 4639,
   "type": "line",
   "text": "Enemy slot 7's form-change flag."
  },
  {
   "address": 4640,
   "type": "line",
   "text": "Base of the per-slot 'icon touched' flag ($1221-$1227), set when the ship buys that icon in the shop."
  },
  {
   "address": 4641,
   "type": "line",
   "text": "Enemy slot 1's icon touched."
  },
  {
   "address": 4642,
   "type": "line",
   "text": "Enemy slot 2's icon touched."
  },
  {
   "address": 4643,
   "type": "line",
   "text": "Enemy slot 3's icon touched."
  },
  {
   "address": 4644,
   "type": "line",
   "text": "Enemy slot 4's icon touched."
  },
  {
   "address": 4645,
   "type": "line",
   "text": "Enemy slot 5's icon touched."
  },
  {
   "address": 4646,
   "type": "line",
   "text": "Enemy slot 6's icon touched."
  },
  {
   "address": 4647,
   "type": "line",
   "text": "Enemy slot 7's icon touched."
  },
  {
   "address": 4648,
   "type": "line",
   "text": "The other player's lives (swapped with $12CB at each change of turn)."
  },
  {
   "address": 4649,
   "type": "line",
   "text": "The other player's hazard-row count; also the base of the store $122A-$1230 swapped with $0F30-$0F36."
  },
  {
   "address": 4656,
   "type": "line",
   "text": "Store for the other player's icon counters ($1231-$1237 with $0F37-$0F3D)."
  },
  {
   "address": 4665,
   "type": "line",
   "text": "Enemy slot 1's frames to the next velocity step."
  },
  {
   "address": 4666,
   "type": "line",
   "text": "Enemy slot 2's frames to the next velocity step."
  },
  {
   "address": 4667,
   "type": "line",
   "text": "Enemy slot 3's frames to the next velocity step."
  },
  {
   "address": 4668,
   "type": "line",
   "text": "Enemy slot 4's frames to the next velocity step."
  },
  {
   "address": 4669,
   "type": "line",
   "text": "Enemy slot 5's frames to the next velocity step."
  },
  {
   "address": 4670,
   "type": "line",
   "text": "Enemy slot 6's frames to the next velocity step."
  },
  {
   "address": 4671,
   "type": "line",
   "text": "Enemy slot 7's frames to the next velocity step."
  },
  {
   "address": 4672,
   "type": "line",
   "text": "Base of the enemies' hit points ($1241-$1247): 0 or 1 dies at the first hit, $FF cannot be destroyed (set from $A100 at the spawn)."
  },
  {
   "address": 4673,
   "type": "line",
   "text": "Enemy slot 1's hit points."
  },
  {
   "address": 4674,
   "type": "line",
   "text": "Enemy slot 2's hit points."
  },
  {
   "address": 4675,
   "type": "line",
   "text": "Enemy slot 3's hit points."
  },
  {
   "address": 4676,
   "type": "line",
   "text": "Enemy slot 4's hit points."
  },
  {
   "address": 4677,
   "type": "line",
   "text": "Enemy slot 5's hit points."
  },
  {
   "address": 4678,
   "type": "line",
   "text": "Enemy slot 6's hit points."
  },
  {
   "address": 4679,
   "type": "line",
   "text": "Enemy slot 7's hit points."
  },
  {
   "address": 4680,
   "type": "line",
   "text": "Base of the enemies' spawn delays ($1249-$124F); the enemy comes alive when its delay runs out. Index 0 is used as scratch by enemy_spawn."
  },
  {
   "address": 4681,
   "type": "line",
   "text": "Enemy slot 1's spawn delay."
  },
  {
   "address": 4682,
   "type": "line",
   "text": "Enemy slot 2's spawn delay."
  },
  {
   "address": 4683,
   "type": "line",
   "text": "Enemy slot 3's spawn delay."
  },
  {
   "address": 4684,
   "type": "line",
   "text": "Enemy slot 4's spawn delay."
  },
  {
   "address": 4685,
   "type": "line",
   "text": "Enemy slot 5's spawn delay."
  },
  {
   "address": 4686,
   "type": "line",
   "text": "Enemy slot 6's spawn delay."
  },
  {
   "address": 4687,
   "type": "line",
   "text": "Enemy slot 7's spawn delay."
  },
  {
   "address": 4688,
   "type": "line",
   "text": "Base of the path-list pointers, low bytes ($1251-$1257)."
  },
  {
   "address": 4689,
   "type": "line",
   "text": "Enemy slot 1's path pointer low."
  },
  {
   "address": 4690,
   "type": "line",
   "text": "Enemy slot 2's path pointer low."
  },
  {
   "address": 4691,
   "type": "line",
   "text": "Enemy slot 3's path pointer low."
  },
  {
   "address": 4692,
   "type": "line",
   "text": "Enemy slot 4's path pointer low."
  },
  {
   "address": 4693,
   "type": "line",
   "text": "Enemy slot 5's path pointer low."
  },
  {
   "address": 4694,
   "type": "line",
   "text": "Enemy slot 6's path pointer low."
  },
  {
   "address": 4695,
   "type": "line",
   "text": "Enemy slot 7's path pointer low."
  },
  {
   "address": 4696,
   "type": "line",
   "text": "Base of the path-list pointers, high bytes ($1259-$125F)."
  },
  {
   "address": 4697,
   "type": "line",
   "text": "Enemy slot 1's path pointer high."
  },
  {
   "address": 4698,
   "type": "line",
   "text": "Enemy slot 2's path pointer high."
  },
  {
   "address": 4699,
   "type": "line",
   "text": "Enemy slot 3's path pointer high."
  },
  {
   "address": 4700,
   "type": "line",
   "text": "Enemy slot 4's path pointer high."
  },
  {
   "address": 4701,
   "type": "line",
   "text": "Enemy slot 5's path pointer high."
  },
  {
   "address": 4702,
   "type": "line",
   "text": "Enemy slot 6's path pointer high."
  },
  {
   "address": 4703,
   "type": "line",
   "text": "Enemy slot 7's path pointer high."
  },
  {
   "address": 4704,
   "type": "line",
   "text": "Base of the velocity-list pointers, low bytes ($1261-$1267)."
  },
  {
   "address": 4705,
   "type": "line",
   "text": "Enemy slot 1's velocity pointer low."
  },
  {
   "address": 4706,
   "type": "line",
   "text": "Enemy slot 2's velocity pointer low."
  },
  {
   "address": 4707,
   "type": "line",
   "text": "Enemy slot 3's velocity pointer low."
  },
  {
   "address": 4708,
   "type": "line",
   "text": "Enemy slot 4's velocity pointer low."
  },
  {
   "address": 4709,
   "type": "line",
   "text": "Enemy slot 5's velocity pointer low."
  },
  {
   "address": 4710,
   "type": "line",
   "text": "Enemy slot 6's velocity pointer low."
  },
  {
   "address": 4711,
   "type": "line",
   "text": "Enemy slot 7's velocity pointer low."
  },
  {
   "address": 4712,
   "type": "line",
   "text": "Base of the velocity-list pointers, high bytes ($1269-$126F)."
  },
  {
   "address": 4713,
   "type": "line",
   "text": "Enemy slot 1's velocity pointer high."
  },
  {
   "address": 4714,
   "type": "line",
   "text": "Enemy slot 2's velocity pointer high."
  },
  {
   "address": 4715,
   "type": "line",
   "text": "Enemy slot 3's velocity pointer high."
  },
  {
   "address": 4716,
   "type": "line",
   "text": "Enemy slot 4's velocity pointer high."
  },
  {
   "address": 4717,
   "type": "line",
   "text": "Enemy slot 5's velocity pointer high."
  },
  {
   "address": 4718,
   "type": "line",
   "text": "Enemy slot 6's velocity pointer high."
  },
  {
   "address": 4719,
   "type": "line",
   "text": "Enemy slot 7's velocity pointer high."
  },
  {
   "address": 4720,
   "type": "line",
   "text": "Base of the 'read the next path segment' flags ($1271-$1277), set at the spawn."
  },
  {
   "address": 4721,
   "type": "line",
   "text": "Enemy slot 1's read-next-segment flag."
  },
  {
   "address": 4722,
   "type": "line",
   "text": "Enemy slot 2's read-next-segment flag."
  },
  {
   "address": 4723,
   "type": "line",
   "text": "Enemy slot 3's read-next-segment flag."
  },
  {
   "address": 4724,
   "type": "line",
   "text": "Enemy slot 4's read-next-segment flag."
  },
  {
   "address": 4725,
   "type": "line",
   "text": "Enemy slot 5's read-next-segment flag."
  },
  {
   "address": 4726,
   "type": "line",
   "text": "Enemy slot 6's read-next-segment flag."
  },
  {
   "address": 4727,
   "type": "line",
   "text": "Enemy slot 7's read-next-segment flag."
  },
  {
   "address": 4728,
   "type": "line",
   "text": "Base of the frames-per-step reloads ($1279-$127F, the segment's byte 3 low seven bits)."
  },
  {
   "address": 4729,
   "type": "line",
   "text": "Enemy slot 1's frames-per-step reload."
  },
  {
   "address": 4730,
   "type": "line",
   "text": "Enemy slot 2's frames-per-step reload."
  },
  {
   "address": 4731,
   "type": "line",
   "text": "Enemy slot 3's frames-per-step reload."
  },
  {
   "address": 4732,
   "type": "line",
   "text": "Enemy slot 4's frames-per-step reload."
  },
  {
   "address": 4733,
   "type": "line",
   "text": "Enemy slot 5's frames-per-step reload."
  },
  {
   "address": 4734,
   "type": "line",
   "text": "Enemy slot 6's frames-per-step reload."
  },
  {
   "address": 4735,
   "type": "line",
   "text": "Enemy slot 7's frames-per-step reload."
  },
  {
   "address": 4736,
   "type": "line",
   "text": "Base of the enemies' points codes ($1281-$1287, via $11D8)."
  },
  {
   "address": 4737,
   "type": "line",
   "text": "Enemy slot 1's points code."
  },
  {
   "address": 4738,
   "type": "line",
   "text": "Enemy slot 2's points code."
  },
  {
   "address": 4739,
   "type": "line",
   "text": "Enemy slot 3's points code."
  },
  {
   "address": 4740,
   "type": "line",
   "text": "Enemy slot 4's points code."
  },
  {
   "address": 4741,
   "type": "line",
   "text": "Enemy slot 5's points code."
  },
  {
   "address": 4742,
   "type": "line",
   "text": "Enemy slot 6's points code."
  },
  {
   "address": 4743,
   "type": "line",
   "text": "Enemy slot 7's points code."
  },
  {
   "address": 4744,
   "type": "line",
   "text": "Set when the current group is the shop (bit 4 of the record's byte 2): its seven sprites are the icons, which the ship buys by touching."
  },
  {
   "address": 4745,
   "type": "line",
   "text": "Set when the group's enemies drop credits (bit 7 of the record's byte 3): counts credits up as they spawn."
  },
  {
   "address": 4746,
   "type": "line",
   "text": "Second credit flag (bit 6 of the record's byte 3)."
  },
  {
   "address": 4747,
   "type": "line",
   "text": "Set when an enemy has left the play area or been removed; the spawner then waits."
  },
  {
   "address": 4748,
   "type": "line",
   "text": "Group counter: down at each spawn, up when an enemy's explosion ends; the next group starts when it reaches the group size."
  },
  {
   "address": 4749,
   "type": "line",
   "text": "Enemies of the group still to spawn."
  },
  {
   "address": 4750,
   "type": "line",
   "text": "Pending wave type (dispatched through $9F20)."
  },
  {
   "address": 4751,
   "type": "line",
   "text": "Type-1 spawn count (up to the limit at $90AE)."
  },
  {
   "address": 4752,
   "type": "line",
   "text": "Type-1 spacing timer; also the base of the per-slot horizontal mirror ($1291-$1297, bit 3 of the record's byte 3)."
  },
  {
   "address": 4753,
   "type": "line",
   "text": "Enemy slot 1's horizontal mirror."
  },
  {
   "address": 4754,
   "type": "line",
   "text": "Enemy slot 2's horizontal mirror."
  },
  {
   "address": 4755,
   "type": "line",
   "text": "Enemy slot 3's horizontal mirror."
  },
  {
   "address": 4756,
   "type": "line",
   "text": "Enemy slot 4's horizontal mirror."
  },
  {
   "address": 4757,
   "type": "line",
   "text": "Enemy slot 5's horizontal mirror."
  },
  {
   "address": 4758,
   "type": "line",
   "text": "Enemy slot 6's horizontal mirror."
  },
  {
   "address": 4759,
   "type": "line",
   "text": "Enemy slot 7's horizontal mirror."
  },
  {
   "address": 4760,
   "type": "line",
   "text": "Group flag (bit 5 of the record's byte 2): the next group waits until seven enemies are accounted for."
  },
  {
   "address": 4761,
   "type": "line",
   "text": "The group's size (low three bits of the record's byte 3)."
  },
  {
   "address": 4762,
   "type": "line",
   "text": "Position in the stage's wave list ($B800/$B900 + it)."
  },
  {
   "address": 4763,
   "type": "line",
   "text": "Stage state: set when the wave list ends ($FF), then the stage-clear sequence's step."
  },
  {
   "address": 4764,
   "type": "line",
   "text": "The spawning enemy's place in its group (0-6), an index into the per-place tables."
  },
  {
   "address": 4765,
   "type": "line",
   "text": "Set when an enemy touched the orbiter (or any weapon) this frame; with the wave timer it can end the wave."
  },
  {
   "address": 4766,
   "type": "line",
   "text": "Wave timer: when it runs out (and $129D is set) every enemy counts as shot."
  },
  {
   "address": 4767,
   "type": "line",
   "text": "Written with $20 by enemies_wave_timers and never read."
  },
  {
   "address": 4768,
   "type": "line",
   "text": "Base of the enemies' animation bases ($12A1-$12A7, the record's byte 1), added to each segment's animation offset."
  },
  {
   "address": 4769,
   "type": "line",
   "text": "Enemy slot 1's animation base."
  },
  {
   "address": 4770,
   "type": "line",
   "text": "Enemy slot 2's animation base."
  },
  {
   "address": 4771,
   "type": "line",
   "text": "Enemy slot 3's animation base."
  },
  {
   "address": 4772,
   "type": "line",
   "text": "Enemy slot 4's animation base."
  },
  {
   "address": 4773,
   "type": "line",
   "text": "Enemy slot 5's animation base."
  },
  {
   "address": 4774,
   "type": "line",
   "text": "Enemy slot 6's animation base."
  },
  {
   "address": 4775,
   "type": "line",
   "text": "Enemy slot 7's animation base."
  },
  {
   "address": 4776,
   "type": "line",
   "text": "Base of the 'exploding' flags ($12A9-$12AF)."
  },
  {
   "address": 4777,
   "type": "line",
   "text": "Enemy slot 1's exploding flag."
  },
  {
   "address": 4778,
   "type": "line",
   "text": "Enemy slot 2's exploding flag."
  },
  {
   "address": 4779,
   "type": "line",
   "text": "Enemy slot 3's exploding flag."
  },
  {
   "address": 4780,
   "type": "line",
   "text": "Enemy slot 4's exploding flag."
  },
  {
   "address": 4781,
   "type": "line",
   "text": "Enemy slot 5's exploding flag."
  },
  {
   "address": 4782,
   "type": "line",
   "text": "Enemy slot 6's exploding flag."
  },
  {
   "address": 4783,
   "type": "line",
   "text": "Enemy slot 7's exploding flag."
  },
  {
   "address": 4784,
   "type": "line",
   "text": "Base of the 'segment finished' flags ($12B1-$12B7), set when a velocity list reaches $80."
  },
  {
   "address": 4785,
   "type": "line",
   "text": "Enemy slot 1's segment-finished flag."
  },
  {
   "address": 4786,
   "type": "line",
   "text": "Enemy slot 2's segment-finished flag."
  },
  {
   "address": 4787,
   "type": "line",
   "text": "Enemy slot 3's segment-finished flag."
  },
  {
   "address": 4788,
   "type": "line",
   "text": "Enemy slot 4's segment-finished flag."
  },
  {
   "address": 4789,
   "type": "line",
   "text": "Enemy slot 5's segment-finished flag."
  },
  {
   "address": 4790,
   "type": "line",
   "text": "Enemy slot 6's segment-finished flag."
  },
  {
   "address": 4791,
   "type": "line",
   "text": "Enemy slot 7's segment-finished flag."
  },
  {
   "address": 4792,
   "type": "line",
   "text": "Base of the 'just spawned' flags ($12B9-$12BF): set at the spawn, cleared when the first segment is read; such an enemy may not fire."
  },
  {
   "address": 4793,
   "type": "line",
   "text": "Enemy slot 1's just-spawned flag."
  },
  {
   "address": 4794,
   "type": "line",
   "text": "Enemy slot 2's just-spawned flag."
  },
  {
   "address": 4795,
   "type": "line",
   "text": "Enemy slot 3's just-spawned flag."
  },
  {
   "address": 4796,
   "type": "line",
   "text": "Enemy slot 4's just-spawned flag."
  },
  {
   "address": 4797,
   "type": "line",
   "text": "Enemy slot 5's just-spawned flag."
  },
  {
   "address": 4798,
   "type": "line",
   "text": "Enemy slot 6's just-spawned flag."
  },
  {
   "address": 4799,
   "type": "line",
   "text": "Enemy slot 7's just-spawned flag."
  },
  {
   "address": 4800,
   "type": "line",
   "text": "Shield charges left (3 when bought; each hit absorbed takes one)."
  },
  {
   "address": 4801,
   "type": "line",
   "text": "The stage's hazard rows (0-2)."
  },
  {
   "address": 4802,
   "type": "line",
   "text": "Raster line of the band after the hazard rows."
  },
  {
   "address": 4803,
   "type": "line",
   "text": "Handler of the band after the hazard rows; also the base of the banner indents ($12C4-$12C7)."
  },
  {
   "address": 4804,
   "type": "line",
   "text": "Indent of banner line 1 (six pixels per trailing space), also added to the template's X."
  },
  {
   "address": 4805,
   "type": "line",
   "text": "Indent of banner line 2, added to the X of the band's sprites."
  },
  {
   "address": 4806,
   "type": "line",
   "text": "Indent of banner line 3."
  },
  {
   "address": 4807,
   "type": "line",
   "text": "Indent of banner line 4."
  },
  {
   "address": 4808,
   "type": "line",
   "text": "Death-restart state (death_restart_step)."
  },
  {
   "address": 4809,
   "type": "line",
   "text": "The wave-list position to restart from after a death."
  },
  {
   "address": 4810,
   "type": "line",
   "text": "Two-player game (F1 on the title)."
  },
  {
   "address": 4811,
   "type": "line",
   "text": "The current player's lives (3 at the start, at most 9)."
  },
  {
   "address": 4812,
   "type": "line",
   "text": "Set while the attack wave is stopped (title, stage start)."
  },
  {
   "address": 4813,
   "type": "line",
   "text": "Holds the orbiter in place when set (never set by the game)."
  },
  {
   "address": 4814,
   "type": "line",
   "text": "The orbiter's position round its circle (0-30 in steps of 2)."
  },
  {
   "address": 4815,
   "type": "line",
   "text": "Base of weapon 4's two beam flags ($12D0, $12D1)."
  },
  {
   "address": 4816,
   "type": "line",
   "text": "Weapon 4's upper beam in flight."
  },
  {
   "address": 4817,
   "type": "line",
   "text": "Weapon 4's lower beam in flight."
  },
  {
   "address": 4818,
   "type": "line",
   "text": "Weapon 4's upper beam column ($25 ends it)."
  },
  {
   "address": 4819,
   "type": "line",
   "text": "Weapon 4's lower beam column."
  },
  {
   "address": 4820,
   "type": "line",
   "text": "Frames before the character pointers are parked again."
  },
  {
   "address": 4821,
   "type": "line",
   "text": "A flag copied, inverted, into the code at $34B7, and read when the speed level wraps; nothing in the game sets it."
  },
  {
   "address": 4822,
   "type": "line",
   "text": "Play-area background colour (from the colour cycle)."
  },
  {
   "address": 4823,
   "type": "line",
   "text": "Extra background colour 1."
  },
  {
   "address": 4824,
   "type": "line",
   "text": "Extra background colour 2."
  },
  {
   "address": 4825,
   "type": "line",
   "text": "Extra background colour 3."
  },
  {
   "address": 4826,
   "type": "line",
   "text": "The enemy slot that may fire this frame (cycles 0-6)."
  },
  {
   "address": 4827,
   "type": "line",
   "text": "Enemy fire rate: each enemy's counter must reach it before it fires."
  },
  {
   "address": 4828,
   "type": "line",
   "text": "The current wave record number ($FF at the end of a stage, $6E the boss)."
  },
  {
   "address": 4829,
   "type": "line",
   "text": "Aim: the column step towards the ship; scratch in the aiming arithmetic."
  },
  {
   "address": 4830,
   "type": "line",
   "text": "Pointer to the current group's record, low byte."
  },
  {
   "address": 4831,
   "type": "line",
   "text": "Pointer to the current group's record, high byte."
  },
  {
   "address": 4832,
   "type": "line",
   "text": "Base of the per-slot fire counters ($12E1-$12E7)."
  },
  {
   "address": 4833,
   "type": "line",
   "text": "Enemy slot 1's fire counter."
  },
  {
   "address": 4834,
   "type": "line",
   "text": "Enemy slot 2's fire counter."
  },
  {
   "address": 4835,
   "type": "line",
   "text": "Enemy slot 3's fire counter."
  },
  {
   "address": 4836,
   "type": "line",
   "text": "Enemy slot 4's fire counter."
  },
  {
   "address": 4837,
   "type": "line",
   "text": "Enemy slot 5's fire counter."
  },
  {
   "address": 4838,
   "type": "line",
   "text": "Enemy slot 6's fire counter."
  },
  {
   "address": 4839,
   "type": "line",
   "text": "Enemy slot 7's fire counter."
  },
  {
   "address": 4840,
   "type": "line",
   "text": "Base of the per-slot speed/fire bytes ($12E9-$12EF, the segment's byte 1; bit 6 allows firing)."
  },
  {
   "address": 4841,
   "type": "line",
   "text": "Enemy slot 1's speed/fire byte."
  },
  {
   "address": 4842,
   "type": "line",
   "text": "Enemy slot 2's speed/fire byte."
  },
  {
   "address": 4843,
   "type": "line",
   "text": "Enemy slot 3's speed/fire byte."
  },
  {
   "address": 4844,
   "type": "line",
   "text": "Enemy slot 4's speed/fire byte."
  },
  {
   "address": 4845,
   "type": "line",
   "text": "Enemy slot 5's speed/fire byte."
  },
  {
   "address": 4846,
   "type": "line",
   "text": "Enemy slot 6's speed/fire byte."
  },
  {
   "address": 4847,
   "type": "line",
   "text": "Enemy slot 7's speed/fire byte."
  },
  {
   "address": 4849,
   "type": "line",
   "text": "Two random bits (enemy_ai_step)."
  },
  {
   "address": 4850,
   "type": "line",
   "text": "Saved wave-record pointer, low byte."
  },
  {
   "address": 4851,
   "type": "line",
   "text": "Saved wave-record pointer, high byte."
  },
  {
   "address": 4852,
   "type": "line",
   "text": "Aim: the row step towards the ship; also the base of the swap with $9FBF ($12F5-$12F6)."
  },
  {
   "address": 4853,
   "type": "line",
   "text": "The stage's attack-pattern pointer, low byte."
  },
  {
   "address": 4854,
   "type": "line",
   "text": "The stage's attack-pattern pointer, high byte; also the base of the purchase state $12F7-$12FB."
  },
  {
   "address": 4855,
   "type": "line",
   "text": "A purchase is under way."
  },
  {
   "address": 4856,
   "type": "line",
   "text": "The price of the icon being bought (its number)."
  },
  {
   "address": 4857,
   "type": "line",
   "text": "Credits are being paid off."
  },
  {
   "address": 4858,
   "type": "line",
   "text": "Timer before leftover credits are turned into points after the shop."
  },
  {
   "address": 4859,
   "type": "line",
   "text": "Credits left after a purchase, added to the score when paid."
  },
  {
   "address": 4860,
   "type": "line",
   "text": "Frames the ship cannot be hit after the shield absorbs a hit (16)."
  },
  {
   "address": 4861,
   "type": "line",
   "text": "Set when the score made the high-score table."
  },
  {
   "address": 4862,
   "type": "line",
   "text": "The new high score's slot offset (0, 16, 32, 48); also the base of the enemies' form list read as $12FE + n."
  },
  {
   "address": 4863,
   "type": "line",
   "text": "The letter being entered (0-7); also read as $12FF + n in the form list."
  },
  {
   "address": 4864,
   "type": "line",
   "text": "The sprite animation lists ($1300-$13FF): frame numbers ending in $FF, read by enemy_anim_step from each sprite's position. List 0 is blank ($9B), 2 the explosion ($9C-$A2), $0B the ship ($A3-$A8), then the icons' frames and the enemies' animations ($B5-$BA, $BB-$C0, ...), and the forms read through $12FE."
  },
  {
   "address": 4882,
   "type": "line",
   "text": "The panel ship's spin frames ($A9-$AF, $FF) at the start of the list block, followed by single-frame lists for the icon frames and the enemy animations."
  },
  {
   "address": 5120,
   "type": "line",
   "text": "Sets up a new game's first stage: $0FA8 = 1, the band chain's restart at $1002/$1003 = line $F3, handler $18D0; clears the stage and wave counters ($1229, $12C1, $107D, $114D, $129B) through init_wave_tables ($91D4) and $9E93; resets the $1110 block, $3F52 and the bullets; sets the band pointer $8B/$8C to line $C5 and handler $1844, colours $1183/$1186/$1187, $12C9 and $9FC1 to $FF, the attack-pattern pointers $12F5/$12F6 and $9FBF/$9FC0 to $AE38; clears the sprite tables (s_3905), puts frame $0E in the first animation slot, patches the jump at $3B85 to $3C7A and the joystick read at $3388 to $DBFF, sets the speed-dependent jumps (s_1900), and clears the per-wave flags ($129D, $129E, $1112, $48, $1117, $112B) before setting $12CC, $43F0 and $43F1."
  },
  {
   "address": 5280,
   "type": "line",
   "text": "Patches the code for play: $3B91 = $4A, the sprite colour and pointer immediates at $3765/$376B/$376C, $36EE and $11AE cleared, the opcodes at $2A06 and $2A19 set to $A9 (LDA #), then clears the per-sprite tables (clear_slot_tables)."
  },
  {
   "address": 5322,
   "type": "line",
   "text": "Clears seven entries of each per-slot table: $0EFF, $0F2F, $0F36, $0F45, $0F25, $0F1B, $9FC1, $1229, $1230, $9FCA, $9FD1, $9FD9 (index 1-7), then $0F23, the credits $107C and $9FEE."
  },
  {
   "address": 5376,
   "type": "line",
   "text": "Start-up and return to the title: sets $11A9 and the key latch $10B7, clears the sprite tables, $0FFB, the three $0FE8 flags and $0F78, resets the $1110 block, the bullets and $3F52, marks the game as not running ($0FFE = 0) and points the jump at $3B85 to $1768."
  },
  {
   "address": 5436,
   "type": "line",
   "text": "Resets the title and interlude state: $0FCC = $0FA9 = 2, clears $1288, $0FA8, $0FAF, $0FCD-$0FCF, $112A, $112E, $114D, $1082-$1084, $1112, the icon colours $90-$97, the first animation frame, $0FAD/$0FAE and $0FC8-$0FCB; the band chain restart to line $4C, handler $1864; the jump at $3BB3 to $F7B0, the sprite immediates at $3765/$376B/$376C, and clears the per-slot tables."
  },
  {
   "address": 5552,
   "type": "line",
   "text": "Every frame while $0FFF is non-zero (else $9710): rewrites the four operands of the copy loop below from the tables at $F0A7, $F0B1, $F0BB and $F0C5 (entry $0FFF, cycling 1-10), then exchanges 128 bytes between $F560 and $5080 (as patched). Exchanges blocks of graphics between their store under the KERNAL and the VIC bank; the orientation found $4C00-$50FF and $F0E0-$F5DF swapped between the title and play images."
  },
  {
   "address": 5609,
   "type": "line",
   "text": "Operand (low byte) of the LDA in swap_graphics_step's loop: the store address, patched from $F0B1."
  },
  {
   "address": 5610,
   "type": "line",
   "text": "Operand high byte of the store read, patched from $F0A7."
  },
  {
   "address": 5612,
   "type": "line",
   "text": "Operand low byte of the VIC-bank read (LDX), patched from $F0C5."
  },
  {
   "address": 5613,
   "type": "line",
   "text": "Operand high byte of the VIC-bank read, patched from $F0BB."
  },
  {
   "address": 5615,
   "type": "line",
   "text": "Operand low byte of the VIC-bank write, patched from $F0C5."
  },
  {
   "address": 5616,
   "type": "line",
   "text": "Operand high byte of the VIC-bank write, patched from $F0BB."
  },
  {
   "address": 5619,
   "type": "line",
   "text": "Operand low byte of the store write, patched from $F0B1."
  },
  {
   "address": 5620,
   "type": "line",
   "text": "Operand high byte of the store write, patched from $F0A7; the loop then exchanges the two 128-byte blocks."
  },
  {
   "address": 5632,
   "type": "line",
   "text": "Start of a game, from the title: clears both players' scores ($11C0-$11C5, $11D0-$11D5, $9FB9-$9FBE) and $11D6, $9FB8, $9FC9; sets the current player to 1 ($11AB); gives lives: with two players ($12CA set) 3 each ($12CB and $1228), with one player 0 for player 2 and 3 for player 1; draws both players' lives (draw_lives) and both scores (s_3D31, once per player), then leaves the interrupt."
  },
  {
   "address": 5712,
   "type": "line",
   "text": "Two-player change of turn: exchanges the current player's state with the store for the other: two bytes at $107C (the credits and $107D) with $9FB8-$9FB9, two at $12F5 (the attack-pattern pointer) with $9FBF-$9FC0, two at $0F23 (the icon blink) with $9FC9-$9FCA, the lives ($12CB with $1228), $1084 with $1229, $12C9 with $9FC1 and the five score digits $11C1-$11C5 with $9FBA-$9FBE; then flips the current player $11AB and goes on at $9C4C."
  },
  {
   "address": 5824,
   "type": "line",
   "text": "Between the title and play, by step Y (from $1C63): step 2, once $112A is clear, runs $385D, marks the game running ($0FFE), patches the code for play and sets $116D and $117F; otherwise, when $116D is clear, sets up the first stage (wave_setup_start), sets $107F, $12C8, $114A, $0FFF, starts the music (s_9E50 with A = 1), sets $1149 = $60, $1087 = 3 and clears $0FFE again."
  },
  {
   "address": 5904,
   "type": "line",
   "text": "Game-over sequence step, by $43C6: 0 goes to $9570; 1 waits for $112C and $112A to clear, then sets $0FFF and $43E3, returns to the title state (title_init) and moves to step 2; 2 resets the title state and clears $43C6 and $11AE."
  },
  {
   "address": 5964,
   "type": "line",
   "text": "Starts the game-over sequence: sets $112A, $112C and $43C6 to 1, clears $1087, and goes on at $2ABD."
  },
  {
   "address": 5982,
   "type": "line",
   "text": "$175E-$1767: two zero bytes, then LDA #$37 / STA $01 / JMP $FE66 (bank the ROMs back in and run the KERNAL's warm start), and a zero. No instruction reaches it."
  },
  {
   "address": 5992,
   "type": "line",
   "text": "Common end of every raster band handler: restores Y, X and A from the stack and returns from the interrupt."
  },
  {
   "address": 6000,
   "type": "line",
   "text": "The game's entry point, reached from the last unpacker. Sets the stack, masks interrupts, banks out BASIC and the KERNAL (keeping I/O, $01 = $35), stops CIA 1's timer A, points the raster chain at $1888 (pointer $1000/$1001), blanks the screen, raster interrupt at line $2E, black border and background, all sprites on and multicolour, screen at $4400 and characters at $4800 in VIC bank 1 ($DD00 = $96), 38 columns with scroll 7; clears the screen, sets up the title (title_init, title_state_reset), starts tune $0B, enables interrupts and enters the main loop."
  },
  {
   "address": 6089,
   "type": "line",
   "text": "The main loop: waits for raster line $E4, runs the sound for this frame (sfx_queue_service, $9D60), waits for the line to pass, and repeats. Everything else runs in the raster interrupts."
  },
  {
   "address": 6109,
   "type": "line",
   "text": "Three unused bytes: BRK, NOP, NOP."
  },
  {
   "address": 6112,
   "type": "line",
   "text": "Sets the processor port to $35 (RAM at $A000 and $E000, I/O at $D000) and returns with A = 0."
  },
  {
   "address": 6144,
   "type": "line",
   "text": "The hardware IRQ handler ($FFFE points here): saves A, X and Y, acknowledges the raster interrupt and jumps through the band pointer at $1000/$1001, which each band handler rewrites (high byte fixed at $18) to choose the next one. The handlers end at irq_exit. Each band handler is entered through a JMP stub in this page ($185E-$18EB), so one byte names it."
  },
  {
   "address": 6157,
   "type": "line",
   "text": "A padding NOP byte between the handler and the first band."
  },
  {
   "address": 6158,
   "type": "line",
   "text": "Top-of-frame band in play and on the title ($1888 -> here): screen on with bitmap and extended colour off ($D011 = $5C, so 24 rows and scroll 4), the next band's line and handler from $1002/$1003 (the frame's restart point, which each stage sets), then the sprite multiplexer's top part: $2380 when $1084 is set, else $2A80."
  },
  {
   "address": 6186,
   "type": "line",
   "text": "Band: next at line $5B, handler $1837; runs $2000."
  },
  {
   "address": 6199,
   "type": "line",
   "text": "Band: next line and handler from $8B/$8C; reads the sprite-sprite collision register into $1117 and runs $2A83."
  },
  {
   "address": 6212,
   "type": "line",
   "text": "Band: next at line $DE, handler $1851; reads the sprite collisions into $48 and runs $2440."
  },
  {
   "address": 6225,
   "type": "line",
   "text": "Band: next at line $F3, handler $18D0; runs $2040."
  },
  {
   "address": 6238,
   "type": "line",
   "text": "Band stub: jump to $19FB."
  },
  {
   "address": 6241,
   "type": "line",
   "text": "Band stub: jump to $1A80."
  },
  {
   "address": 6244,
   "type": "line",
   "text": "Band stub: jump to $09E7."
  },
  {
   "address": 6247,
   "type": "line",
   "text": "Band, a copy of $1837: next line and handler from $8B/$8C, collisions into $1117, then $2A83."
  },
  {
   "address": 6260,
   "type": "line",
   "text": "Band: next at line $F3, handler $18D0; collisions into $48 and runs $2440."
  },
  {
   "address": 6270,
   "type": "line",
   "text": "Shared tail: sprite-sprite collisions into $48, then $2440."
  },
  {
   "address": 6280,
   "type": "line",
   "text": "The first band of every frame, at line $2E (set at start-up): 38-column mode and scroll 7, then irq_band_top."
  },
  {
   "address": 6288,
   "type": "line",
   "text": "Six unused zero bytes."
  },
  {
   "address": 6294,
   "type": "line",
   "text": "Shared tail: sprite-sprite collisions into $1117, then $2A83."
  },
  {
   "address": 6304,
   "type": "line",
   "text": "Band stub: jump to $19E0."
  },
  {
   "address": 6307,
   "type": "line",
   "text": "Band stub: jump to $1BC0."
  },
  {
   "address": 6310,
   "type": "line",
   "text": "Band stub: jump to $1C00."
  },
  {
   "address": 6313,
   "type": "line",
   "text": "Band stub: jump to $1C80."
  },
  {
   "address": 6316,
   "type": "line",
   "text": "Band stub: jump to $0A80."
  },
  {
   "address": 6320,
   "type": "line",
   "text": "Multicolour off-scroll for the bottom panel ($D016 = $17), then sets up the eight icon sprites (s_36BD) with X high bits for sprites 6 and 7."
  },
  {
   "address": 6334,
   "type": "line",
   "text": "Three zero bytes and four NOPs, unused."
  },
  {
   "address": 6341,
   "type": "line",
   "text": "Band stub: jump to $1B10."
  },
  {
   "address": 6344,
   "type": "line",
   "text": "Band stub: jump to $1940."
  },
  {
   "address": 6347,
   "type": "line",
   "text": "Band stub: jump to $1960."
  },
  {
   "address": 6352,
   "type": "line",
   "text": "Bottom band of the play frame, line $F3 -> next at $F9, handler $18A0 (the top again via $19E0): reads the sprite collisions into $112B and draws the icon row (bottom_icons_setup). When $1084 is clear, hands the collisions to $48 and clears $1117 and $112B."
  },
  {
   "address": 6379,
   "type": "line",
   "text": "Band stub: jump to $1980."
  },
  {
   "address": 6400,
   "type": "line",
   "text": "Chooses $B8 or $B9 as the high byte of three jump targets ($3F85/$3F86, $8089/$808A, $8152/$8153, low bytes cleared), $B9 from stage $16 on ($107D, and at exactly $16 also s_1CF2). Picks between two blocks of attack data at $B800 and $B900 by stage."
  },
  {
   "address": 6440,
   "type": "line",
   "text": "Stores X in $1288 and $12FA."
  },
  {
   "address": 6448,
   "type": "line",
   "text": "Sets the X high bits for sprites 6 and 7, sets up the icons (s_36BD) and their colours (s_3734), and leaves the interrupt."
  },
  {
   "address": 6464,
   "type": "line",
   "text": "Band: Y positions of sprites 1-4 from $1138 plus $12C5, next band $18CB at line $86."
  },
  {
   "address": 6496,
   "type": "line",
   "text": "Band: Y positions of sprites 5-8 from $113C plus $12C6, next band $18EB at line $93."
  },
  {
   "address": 6528,
   "type": "line",
   "text": "Band: Y positions of sprites 5-8 from $113C plus $12C7, next band and line from $12C3/$12C2, and runs $9480 unless $1148 is set."
  },
  {
   "address": 6571,
   "type": "line",
   "text": "Nine NOPs after irq_band_1980, unused."
  },
  {
   "address": 6580,
   "type": "line",
   "text": "Writes $2E through the pointers at $4D, $53 and $55 (offset 1), then leaves the interrupt."
  },
  {
   "address": 6594,
   "type": "line",
   "text": "With two players ($12CA) and $1080 clear, counts $107F up and goes to $3918; otherwise to $3A7F."
  },
  {
   "address": 6614,
   "type": "line",
   "text": "Ten NOPs after jmp_19c2, unused."
  },
  {
   "address": 6624,
   "type": "line",
   "text": "Band at the top of the play frame ($18A0): blanks the screen ($D011 = $40), next band $1888 at line $2D, runs the per-frame game step $9100 and then $9A30."
  },
  {
   "address": 6648,
   "type": "line",
   "text": "irq_title_band_a, page 0: jump to the logo's top sprites (title_logo_pairs)."
  },
  {
   "address": 6651,
   "type": "line",
   "text": "Title band ($185E), line $AA -> next $1861: by the title page $0FA9: page 0 places the logo's sprite pairs ($1CA0); page 1 puts eight sprites in a row at Y $7B with colour $0FAD and pointers $4C-$53; page 2 sets eight sprites at Y $90 with X from $0FD0, colour $0FAD and pointers 0-7, then $9C18."
  },
  {
   "address": 6784,
   "type": "line",
   "text": "Title band ($1861), line $CC -> next $18C5: page 0 places the four sprites of the next row of the logo, pointers 4 and 0-3, X from $0FD2, colours $0FAD/$0FAE; page 1 puts eight sprites at Y $B0 with pointers $28-$2F and colour $0FC8, then turns them all to frame $9B; page 2 patches $36EE and draws the icon row ($1930)."
  },
  {
   "address": 6867,
   "type": "line",
   "text": "irq_title_band_b, page 0: places the logo's next row of sprites."
  },
  {
   "address": 6928,
   "type": "line",
   "text": "Title band ($18C5), line $E8 -> next $18A3: page 0 sets four X positions ($0A68); page 1 puts eight sprites at Y $D0, colour $0FCA, pointers $28-$2F; page 2 puts two sprites at Y $D4 and makes them blink between frames $28/$29 and blank every 16 frames ($0FAC)."
  },
  {
   "address": 7021,
   "type": "line",
   "text": "irq_title_band_c, page 2: two sprites at Y $D4, blinking between frames $28/$29 and blank on a 32-frame cycle."
  },
  {
   "address": 7093,
   "type": "line",
   "text": "Eleven NOPs after irq_title_band_c, unused."
  },
  {
   "address": 7104,
   "type": "line",
   "text": "Title band ($18A3), line $F9 -> next $18A6: the bottom line of the title, eight sprites at Y $FC with X from $0FD8, colour 15, pointers 8-15, multicolours 1 and 12; then the title keys (irq_title_keys)."
  },
  {
   "address": 7168,
   "type": "line",
   "text": "Title band ($18A6), line $1F -> next $18A9: screen blanked, all sprite pointers to frame $9B, X and Y of the eight sprites from $43C8 and $0FE0, the stars (s_1DB9); while a key has just been pressed ($0FFB) shows the three option sprites (players $43C0, controls $43C2, music $43C4 by $12CA, $0FFC, $0FFD) in sprites 5-7. Then by $0FFE: 0 goes to $9710, 1 starts the game (game_start_scores), 2+ goes on with interlude_game_start."
  },
  {
   "address": 7296,
   "type": "line",
   "text": "Title band ($18A9), line $2E -> next $180E: sets the sprite pointers at $47F8-$47FC to 8-12."
  },
  {
   "address": 7320,
   "type": "line",
   "text": "Eight NOPs after irq_title_1c80, unused."
  },
  {
   "address": 7328,
   "type": "line",
   "text": "Places the title logo's top sprites: pointers $3A/$3B in sprites 0-1 at Y $7B, X $CF and $E7, sprites 3 and 4 at Y $7B with pointers $38/$39, then next band $18AC at line $8B."
  },
  {
   "address": 7392,
   "type": "line",
   "text": "When $116D is clear: stores Y in $112E, sets the speed jumps and goes on at $3A15; otherwise $3FE3."
  },
  {
   "address": 7410,
   "type": "line",
   "text": "If $129B is set, sets $129A to 1."
  },
  {
   "address": 7424,
   "type": "line",
   "text": "Erases the stars: writes the blank character $2E at the eighteen screen positions listed at $100A-$101B, in each of the four quarters of the screen ($43F8, $44F8, $45F8, $46F8 + offset)."
  },
  {
   "address": 7451,
   "type": "line",
   "text": "Middle star layer, one pixel a frame: rotates the single set bit of glyph $30's fourth row ($4983) left; when it falls out, puts it back at the right of the glyph ($FE) and moves the six stars of this layer one column left (their screen offsets $1010-$1015)."
  },
  {
   "address": 7483,
   "type": "line",
   "text": "Fast star layer, two pixels a frame: rotates the bit in glyph $31's seventh row ($498E) left twice; when it falls out, resets it and moves the six stars of this layer ($1016-$101B) one column left."
  },
  {
   "address": 7518,
   "type": "line",
   "text": "Slow star layer: rotates the bit in glyph $2F's first row ($4978) left; when it falls out, resets it and moves the six stars of this layer ($100A-$100F) one column left. Called every second frame."
  },
  {
   "address": 7550,
   "type": "line",
   "text": "Draws the three star layers at their new screen offsets in all four quarters of the screen: character $B1 for the offsets at $1016-$101B, $30 for $1010-$1015 and $6F for $100A-$100F."
  },
  {
   "address": 7609,
   "type": "line",
   "text": "The scrolling starfield, once a frame on the title and in play: erases the stars, steps the colour-cycle (s_257C), moves the middle and fast layers, the slow layer every second frame ($101C toggles), and draws them again. Each star is one character whose glyph holds a single pixel; rolling that pixel through the glyph moves every star of the layer smoothly, and the character moves a column when the pixel wraps."
  },
  {
   "address": 7645,
   "type": "line",
   "text": "Every fourth frame ($101D counts to 4) steps a six-entry colour cycle ($101E) and copies the current entry of four colour tables ($101F, $1025, $102B, $1031) into $12D6-$12D9."
  },
  {
   "address": 7704,
   "type": "line",
   "text": "When a player's game ends: sets the name-entry state ($1149 = $40, $114A, $1080, $107E, $107F, $1148 = 1), the four name-entry sprite colours $11A0-$11A3 (14, 15, 16, 10), writes the player's digit into the text 'PLAYER n' ($FBC7 = $1E + player, the digit 1 or 2 in the game's alphabet), runs $9980 and tries the score against the high-score table (hiscore_insert), then $3FE3."
  },
  {
   "address": 7762,
   "type": "line",
   "text": "High-score name entry, once a frame while $1148 is set, by its value: 1 decides whether the score made the table ($12FD): if not, goes on to the next player ($3E0F, with two players and the other still alive) or game over ($9EF8); if so, sets up the entry sprites ($91E0, $1E7E). 2 waits at $27C0. 3 and up reads the controls: fire moves to the next of the eight letters ($12FF) and after the eighth copies the name into the player's name store and ends the entry; left/right and up/down (with key repeat delays) step the current letter forwards or back through the 29 symbols (A-Z, '.', '(c)', space)."
  },
  {
   "address": 7806,
   "type": "line",
   "text": "Places the eight name-entry sprites: X from $0FC0, Y $80, high bits clear, pointers $28-$2F, then moves the entry to its next state."
  },
  {
   "address": 7965,
   "type": "line",
   "text": "End of name entry: clears the cursor sprite bytes, copies the eight letters from the table slot ($F7F0 + $12FE) into the player's name store ($F0D0 or $F0D8), then goes on to the other player ($9EF0) in a two-player game with lives left, or to game over."
  },
  {
   "address": 8016,
   "type": "line",
   "text": "Y = $12FE + $12FF: the offset of the letter being entered in the high-score table at $F7F0."
  },
  {
   "address": 8032,
   "type": "line",
   "text": "Key repeat for the name entry: left or right held counts $110B to 6 and then sets $1171 (previous letter) or $1170 (next letter); up or down counts $114F to 3, setting $1171 or $1170."
  },
  {
   "address": 8056,
   "type": "line",
   "text": "hiscore_repeat: right held."
  },
  {
   "address": 8080,
   "type": "line",
   "text": "hiscore_repeat: up held."
  },
  {
   "address": 8104,
   "type": "line",
   "text": "hiscore_repeat: down held."
  },
  {
   "address": 8126,
   "type": "line",
   "text": "Two RTS bytes and thirty zero bytes, unused."
  },
  {
   "address": 8160,
   "type": "line",
   "text": "Sets the name-entry cursor: $116E = (letter position AND 6), $11A7 = that / 2 + 8 (the cursor sprite's frame), and $116D."
  },
  {
   "address": 8181,
   "type": "line",
   "text": "When not in the game-over sequence ($43C6 clear) goes to $9CC8, else to $3FE3."
  },
  {
   "address": 8192,
   "type": "line",
   "text": "Band for the hazard row at the top of the play area (from $182A): puts sprites 1-7 on line $47 and sets their frames from $BF-$C5, then $3550. The top and bottom rows each reuse the seven sprites the multiplexer frees there."
  },
  {
   "address": 8256,
   "type": "line",
   "text": "Band for the hazard row at the bottom of the play area (from $1851): sprites 1-7 on line $E0, frames from $CD-$D3, then $221E (the score adder and $9968)."
  },
  {
   "address": 8320,
   "type": "line",
   "text": "Every eighth frame ($1037 counts 0-7), with all RAM banked in ($01 = $34) to read the tables under the I/O area: on the counter's zero goes to $952F; otherwise returns. Entered as hazard_rows_spawn at $2096 with A = $103A to start new hazards: for the top row ($1038, $1090) and the bottom row ($1039, $1098), takes the next entry of the section's spawn list at $D500 (a zero ends it), finds a free slot of seven, sets its bit in $1078/$1079, marks it busy, gives it the X start $4F and looks up its animation start in the tables at $D000/$D100 (s_97E0, s_9820 / s_9860, s_9890). $103C counts the rows down. Banks the I/O back in ($01 = $35) and leaves the interrupt."
  },
  {
   "address": 8391,
   "type": "line",
   "text": "Operand high byte of the spawn-list read in hazard_rows_spawn (LDA $D500,Y): the page of the stage's spawn list, patched by hazard_rows_config. Other routines compare it with $D5 to see whether the stage has hazards."
  },
  {
   "address": 8431,
   "type": "line",
   "text": "Operand high byte of the second spawn-list read (the next entry), patched with $20C7."
  },
  {
   "address": 8450,
   "type": "line",
   "text": "hazard_rows_spawn, bottom row: a free slot found; starts its hazard."
  },
  {
   "address": 8455,
   "type": "line",
   "text": "Operand high byte of the bottom row's spawn-list read, patched with $20C7."
  },
  {
   "address": 8495,
   "type": "line",
   "text": "Operand high byte of the bottom row's next-entry read, patched with $20C7."
  },
  {
   "address": 8512,
   "type": "line",
   "text": "Steps the interlude's colours: for $0FAD-$0FAE, $0FC8-$0FCB and the first animation frame, replaces each by its successor in the chain at $1119 (a table of next colours); counts in $1118 how many reached zero, and when all seven have, clears $0FCD (the fade is finished)."
  },
  {
   "address": 8583,
   "type": "line",
   "text": "Interlude, by the state of title page $0FA9 ($0FE8 + page): 0 nothing; 1 puts that page's picture into the five big sprites (copy_sprite_rows_a/b/c); 2 advances the state, patches $3B91 to $40, resets the cursor (s_2210) and loads four colours $11A0-$11A3 from $1040 + 4 x page; 3 (when $116D is clear) advances, patches $3B91 to $4A and loads the colours from $104C; afterwards waits for $116D. All paths go on to $955B."
  },
  {
   "address": 8708,
   "type": "line",
   "text": "When X = 7 sets $12C0 to 3."
  },
  {
   "address": 8720,
   "type": "line",
   "text": "Clears $116E and $11A7 and sets $116D."
  },
  {
   "address": 8734,
   "type": "line",
   "text": "After the bottom row: adds the pending score into the score (s_232D) and goes on at $9968."
  },
  {
   "address": 8740,
   "type": "line",
   "text": "Takes the next of four colour sets for the interlude ($0FCF counts 0-3, clearing $0FCE when it wraps): $0FAD, $0FAE, $0FC8-$0FCB and the first animation frame from the tables at $1154, $1158, $115C, $1160, $1164 and $1168."
  },
  {
   "address": 8801,
   "type": "line",
   "text": "Buying in the shop: the ship has touched the shop's sprite X, whose price is X credits. If the shop is not up ($1288 clear), a purchase was already made in this shop ($12F7), or the credits ($107C) do not cover the price, the touch counts as a hit ($1087 = Y = 1): an unaffordable (grey) icon kills, and only one icon can be bought per shop. Otherwise keeps the change in $12FB, starts the icon's blink ($0F24 = X - 1, $0F23 = 14 blinks), sets $12F7, $12F9 and the icon's flag at $1221 + X, and goes on at $9EC4 (the sound)."
  },
  {
   "address": 8812,
   "type": "line",
   "text": "shop_try_buy, the purchase itself: checks the price against the credits and starts the icon's blink."
  },
  {
   "address": 8856,
   "type": "line",
   "text": "While a purchase is being paid ($12F9): one credit a frame comes off $107C (unless $11AA); when they are all gone, clears $12F9 and adds the change ($12FB) to the hundreds digit of the score: every credit left over after the price is worth 100 points. Then $22BD."
  },
  {
   "address": 8893,
   "type": "line",
   "text": "Sets $0F1A to $89 + $12C0 (a frame number) and continues at $22F9."
  },
  {
   "address": 8905,
   "type": "line",
   "text": "Draws the current player's lives digit into the panel: the digit $12CB picks a 20-byte glyph from the table at $FEA4 (ten rows of two bytes), which is copied into every other two bytes of the sprite at $6600 + ($4F or $8F for player 1 or 2), thirty bytes in all."
  },
  {
   "address": 8953,
   "type": "line",
   "text": "Sets the opcode toggle at $34B7 from $12D5 and, unless the ship is mid-move ($1100, $1101), loads the ship's speed $1104/$1105 from the pair at $0FF1 + 2 x speed level ($0F00): speeds 1/1, 2/2, 4/4 and 8/8. Then on to the icons ($2560)."
  },
  {
   "address": 8991,
   "type": "line",
   "text": "A = $F900 + Y, shifted right twice, into $D4; then $38C3."
  },
  {
   "address": 9005,
   "type": "line",
   "text": "Adds the pending score ($11D1-$11D5) into the score digits ($11C1-$11C5), digit by digit from the last, carrying tens into the digit before ($11D0 + x), and clears the pending digits; then $9CD6."
  },
  {
   "address": 9040,
   "type": "line",
   "text": "Sets hardware sprite 0, the player's ship: X, Y and frame from the first entries of the zero-page tables ($38, $40, $30), colour $90, and copies its X high bit ($28) into bit 0 of both high-bit masks $1078 and $1079."
  },
  {
   "address": 9088,
   "type": "line",
   "text": "Multiplexer step for the stage where $1084 is set (from irq_band_top): ship in sprite 0, multicolours from $10E0/$10E1, sprites 1-7 on line $32 with frames from $B8-$BE and X from $D9-$DF, X high bits from $1078, colour $10E2; then moves each active top-row hazard ($1090 + x) three pixels left, and when one passes X 0 either clears it (high bit already clear) or drops its high bit. Leaves the interrupt."
  },
  {
   "address": 9237,
   "type": "line",
   "text": "Operand of the SBC #$03 that moves the top hazard row left: the rows' speed, set to 0 while paused and 3 again after."
  },
  {
   "address": 9272,
   "type": "line",
   "text": "Eight NOPs after mux_upper_row_32, unused."
  },
  {
   "address": 9280,
   "type": "line",
   "text": "The same for the second row: line $103D, frames $C6-$CC, X $E1-$E7, high bits $1079, colour $10E2; moves the bottom-row hazards ($1098 + x) three pixels left the same way. Then, by $1084: 0 leaves the interrupt, 2 goes to $9B70, other values to $9968."
  },
  {
   "address": 9427,
   "type": "line",
   "text": "Operand of the bottom row's SBC #$03: its speed, zeroed while paused."
  },
  {
   "address": 9477,
   "type": "line",
   "text": "Sequence step before the name entry, by $1081: 0 does nothing; 1 sets $116D, advances $1081, sets the entry sprites' colours ($11A1/$11A3 = $18, $11A0 = 7 + $12FE / 8, $11A2 one more), points the jump at $3BB3 to $F7B0 and latches the keys; 2, once $116D clears, ends the step ($1081 = 0) and sets $112E. Every path goes on to swap_graphics_step."
  },
  {
   "address": 9568,
   "type": "line",
   "text": "When $1112 is set, blanks the icon row (all eight icon frames $8D, colours $0E) and goes on at $2BD2; otherwise updates the icons (icons_update)."
  },
  {
   "address": 9596,
   "type": "line",
   "text": "Erases every object drawn with characters before they are drawn again: writes the blank character $2E through the pointers $1A-$26 (seven), $49/$4B/$4D, $51/$53/$55, $A0/$A2/$A4, the two cells of each of the six one-row shots ($E8-$F2) and the four cells of the two 2x2 objects ($F4, $F6, offsets 0, 1, 40, 41); then $3F9B."
  },
  {
   "address": 9685,
   "type": "line",
   "text": "Draws enemy shot 0 at the screen cell its pointer $E8 holds: takes the glyphs of the two background characters under it (their codes AND $3F, times 8, in the set at $4800), ANDs them with the shot's mask pair at $FF70/$FF78 shifted by its sub-cell position ($10A0), writes the result into the shot's own two glyphs ($D0/$D1 at $4880-$488F) and puts those characters on the screen. The shot so appears over the stars and anything else beneath, at any pixel position."
  },
  {
   "address": 9767,
   "type": "line",
   "text": "As draw_enemy_shot_0 for shot 1: pointer $EA, position $10A1, glyphs $D2/$D3 at $4890."
  },
  {
   "address": 9849,
   "type": "line",
   "text": "As draw_enemy_shot_0 for shot 2: pointer $EC, position $10A2, glyphs $C8/$C9 at $4840."
  },
  {
   "address": 9931,
   "type": "line",
   "text": "As draw_enemy_shot_0 for shot 3: pointer $EE, position $10A3, glyphs $CA/$CB at $4850."
  },
  {
   "address": 10013,
   "type": "line",
   "text": "As draw_enemy_shot_0 for shot 4: pointer $F0, position $10A4, glyphs $CC/$CD at $4860."
  },
  {
   "address": 10095,
   "type": "line",
   "text": "As draw_enemy_shot_0 for shot 5: pointer $F2, position $10A5, glyphs $CE/$CF at $4870."
  },
  {
   "address": 10176,
   "type": "line",
   "text": "Waits in the name entry while $1081 is set; then hands $112E to $1EAA."
  },
  {
   "address": 10197,
   "type": "line",
   "text": "Moves and draws each active character object: the six one-row shots ($10AA-$10AF set: s_3021-s_31CA) and the two 2x2 objects ($10A8, $10A9: s_321F, s_32CA). Then draws three fixed characters ($32, $33, $34 through $A0, $A2, $A4) and three two-cell pairs ($FE/$FF, $FC/$FD, $FA/$FB through $49, $4B, $4D), and leaves the interrupt."
  },
  {
   "address": 10305,
   "type": "line",
   "text": "Draws enemy bomb 0 (2x2 characters) at pointer $F4: builds glyphs $00-$03 ($4800-$481F) from the four cells beneath it, the rows above its pixel row $10A6 copied unchanged and the ball cut in from there with the mask table at $FF70 (the read's operands patched with $10B0, the position across the cell), so the bomb can sit at any pixel row and column; then puts the four characters ($C0-$C3) on the screen."
  },
  {
   "address": 10433,
   "type": "line",
   "text": "Operand low byte of the mask read for enemy bomb 0's first column ($FF70 + 8 x position), patched from $10B0."
  },
  {
   "address": 10441,
   "type": "line",
   "text": "Operand low byte of the mask read for bomb 0's second column."
  },
  {
   "address": 10462,
   "type": "line",
   "text": "Operand low byte of the mask read for bomb 0's third column."
  },
  {
   "address": 10470,
   "type": "line",
   "text": "Operand low byte of the mask read for bomb 0's fourth column."
  },
  {
   "address": 10524,
   "type": "line",
   "text": "As draw_enemy_bomb_0 for bomb 1: pointer $F6, pixel row $10A7, position $10B1 patched into the mask reads at $299C/$29A4/$29B9/$29C1, glyphs $04-$07 at $4820, characters $C4-$C7."
  },
  {
   "address": 10652,
   "type": "line",
   "text": "Operand low byte of the mask read for enemy bomb 1's first column, patched from $10B1."
  },
  {
   "address": 10660,
   "type": "line",
   "text": "Operand low byte of bomb 1's second mask column."
  },
  {
   "address": 10681,
   "type": "line",
   "text": "Operand low byte of bomb 1's third mask column."
  },
  {
   "address": 10689,
   "type": "line",
   "text": "Operand low byte of bomb 1's fourth mask column."
  },
  {
   "address": 10743,
   "type": "line",
   "text": "Sets the eight sprites for the score panel at the top: frames $95, $96, $99, $AB, $97, $98, $9A, $A9, all on line $16 at fixed X positions ($1F, $37, $55, $67, $EF, $07+256, $25+256, $37+256), colour 14; then $9AE5."
  },
  {
   "address": 10758,
   "type": "line",
   "text": "Immediate of LDY #$AB in irq_panel_sprites: player 1's panel ship frame, rewritten by panel_ship_spin (and set to $A9 by play_patches_on)."
  },
  {
   "address": 10777,
   "type": "line",
   "text": "Immediate of LDY #$A9: player 2's panel ship frame, rewritten by panel_ship_spin."
  },
  {
   "address": 10880,
   "type": "line",
   "text": "Multiplexer for the main play area: ship in sprite 0, then sprites 1-7 from the zero-page tables (frame $30+x, X $38+x, Y $40+x, colour $90+x), X high bits $107A, multicolours $1082/$1083; then the colour cycle and $363B."
  },
  {
   "address": 10941,
   "type": "line",
   "text": "Rebuilds the X high-bit mask $107A from the eight per-sprite flags $28-$2F (bit x from $1088 + x) and leaves the interrupt."
  },
  {
   "address": 10968,
   "type": "line",
   "text": "Converts a sprite position into a screen address: Y ($05, rounded down to a character row) gives row x 40 + $4300 + 13, X ($04) / 8 the column, plus 32 more when the high bit ($06) is set; result in $02/$03. Used to look at the characters under a sprite."
  },
  {
   "address": 11018,
   "type": "line",
   "text": "How the player's weapons hit: every weapon is drawn with characters (glyphs $32-$3F), so for each of the seven enemy sprites that is alive ($11E0), not exploding ($12A8) and not final ($1208), the four screen cells under it are read (offsets 0, 1, 40, 41 from sprite_to_screen_ptr). A glyph of $32 or above is a weapon: the enemy is hit ($1070 + x = 1) and the glyph's low nibble picks a handler from $0F50 that ends the weapon that hit it (laser bolts 1-3, the two beams, the three extra shots; the orbiter, nibble 5, is not used up but marks $129D). Then $9C0C."
  },
  {
   "address": 11132,
   "type": "line",
   "text": "Handlers for an enemy touching a weapon character, by its glyph's low nibble: $2B7C laser bolt 1 ($FE/$FF: column $24 ends it), $2B84 bolt 2 ($FC/$FD), $2B8C bolt 3 ($FA/$FB), $2B94 the upper beam ($F8/$F9), $2B9C the lower beam ($F6/$F7), $2BA4 the extra weapon's upward shot ($32), $2BAC its backward shot ($33), $2BB4 its downward shot ($34); each then goes to $2CC4."
  },
  {
   "address": 11196,
   "type": "line",
   "text": "How enemy fire hits the ship: clears $1087, then sets it if the cell 41 bytes on from the ship's cell pointer $71 (under the middle of the ship) holds a glyph below $2E, which are exactly the enemy fire's glyphs (the shots and bombs at $00-$13, the bullet $ED = glyph $2D). Then the controls."
  },
  {
   "address": 11209,
   "type": "line",
   "text": "Immediate of the CMP #$2E in ship_hit_by_fire (glyphs below it are enemy fire); the unreached cheat at $BA00 would set it to 0, so nothing could hit the ship."
  },
  {
   "address": 11218,
   "type": "line",
   "text": "When the ship is in the shop and its sprite collides with an icon sprite ($48 bit 0 and the icon's bit): checks the distance from the ship to each icon (Y within 20, X within 24, either side of the high bit) and tries to buy it (shop_try_buy). Then $9C00."
  },
  {
   "address": 11226,
   "type": "line",
   "text": "Immediate of the AND #$01 in ship_touch_icons (the ship's collision bit); the unreached cheat at $BA00 toggles it."
  },
  {
   "address": 11298,
   "type": "line",
   "text": "Unless $12CC is set: copies the slow-down's state ($0F2F if icon 6 is owned, else 0) to $107B and runs the attack wave ($8010); then the enemy update ($3C89), and sets $1087 when the ship's sprite collides with anything ($1117 or $112B bit 0). Goes on at $3880."
  },
  {
   "address": 11343,
   "type": "line",
   "text": "Two NOP bytes ahead of orbiter_draw; nothing runs them."
  },
  {
   "address": 11345,
   "type": "line",
   "text": "The orbiter (icon 5, $0F04; $10D8 set by orbiter_step): draws character $B5 at the screen cell two rows above and two columns left of the ship's cell ($71 - $52) moved on by the offsets $10B8 (columns) and $10C0 (rows, 40 each) from the circle table; a position off the play area (rows above $4400 or past $47E8, or the ship near the top) falls back to the ship's own cell. The pointer $51 is erased next frame by erase_char_objects. Then the enemy bullets."
  },
  {
   "address": 11442,
   "type": "line",
   "text": "Runs the hazard-row frame step (s_9480) unless $107F and $12C8 are both other than 1."
  },
  {
   "address": 11460,
   "type": "line",
   "text": "Stores A in $129D and goes back into enemies_hit_by_weapons, which marks the enemy hit."
  },
  {
   "address": 11466,
   "type": "line",
   "text": "A padding NOP."
  },
  {
   "address": 11467,
   "type": "line",
   "text": "Enemy bullet 0 (one of seven drawn as the character $ED): while active ($10D9) moves its screen pointer $1A by its column step $10B9 (signed, whole cells) within columns 0-40 ($10C9) and by its row step $10C1 (40 a row) within rows 0-23 ($10D1), then draws $ED there. Leaving the screen ends it ($10D9 cleared) through bullet_chain_1. Falls through to the next bullet's mover."
  },
  {
   "address": 11589,
   "type": "line",
   "text": "As bullet_move_0 for enemy bullet 1: flag $10DA, steps $10BA/$10C2, column $10CA, row $10D2, pointer $1C."
  },
  {
   "address": 11711,
   "type": "line",
   "text": "As bullet_move_0 for enemy bullet 2: flag $10DB, steps $10BB/$10C3, column $10CB, row $10D3, pointer $1E."
  },
  {
   "address": 11833,
   "type": "line",
   "text": "As bullet_move_0 for enemy bullet 3: flag $10DC, steps $10BC/$10C4, column $10CC, row $10D4, pointer $20."
  },
  {
   "address": 11955,
   "type": "line",
   "text": "As bullet_move_0 for enemy bullet 4: flag $10DD, steps $10BD/$10C5, column $10CD, row $10D5, pointer $22."
  },
  {
   "address": 12077,
   "type": "line",
   "text": "As bullet_move_0 for enemy bullet 5: flag $10DE, steps $10BE/$10C6, column $10CE, row $10D6, pointer $24."
  },
  {
   "address": 12199,
   "type": "line",
   "text": "As bullet_move_0 for enemy bullet 6: flag $10DF, steps $10BF/$10C7, column $10CF, row $10D7, pointer $26."
  },
  {
   "address": 12288,
   "type": "line",
   "text": "Also read as data: enemy_ai_step takes its pseudo-random numbers from the 256 bytes starting here, which are this code (bullet_move_6 and the enemy-shot movers)."
  },
  {
   "address": 12321,
   "type": "line",
   "text": "Moves enemy shot 0 along its row: the signed speed $10E6 is added to its sub-cell position $10A0 (128 steps a cell); on a carry the shot moves one cell right (or left, for a negative speed), stepping its column $10EE and its screen pointer $E8. At column 40 (moving right) or 0 (moving left) the shot ends: $10AA is cleared and $3FAA runs. Then the shot is drawn (draw_enemy_shot_0)."
  },
  {
   "address": 12406,
   "type": "line",
   "text": "As move_enemy_shot_0 for shot 1: speed $10E7, column $10EF, position $10A1, pointer $EA, active flag $10AB, drawn by draw_enemy_shot_1."
  },
  {
   "address": 12491,
   "type": "line",
   "text": "As move_enemy_shot_0 for shot 2: speed $10E8, column $10F0, position $10A2, pointer $EC, active flag $10AC, drawn by draw_enemy_shot_2."
  },
  {
   "address": 12576,
   "type": "line",
   "text": "As move_enemy_shot_0 for shot 3: speed $10E9, column $10F1, position $10A3, pointer $EE, active flag $10AD, drawn by draw_enemy_shot_3."
  },
  {
   "address": 12661,
   "type": "line",
   "text": "As move_enemy_shot_0 for shot 4: speed $10EA, column $10F2, position $10A4, pointer $F0, active flag $10AE, drawn by draw_enemy_shot_4."
  },
  {
   "address": 12746,
   "type": "line",
   "text": "As move_enemy_shot_0 for shot 5: speed $10EB, column $10F3, position $10A5, pointer $F2, active flag $10AF, drawn by draw_enemy_shot_5."
  },
  {
   "address": 12831,
   "type": "line",
   "text": "Moves enemy bomb 0 (one of two 2x2-character shots that travel at an angle): horizontally as the shots do (speed $10EC, position $10B0, column $10F4, pointer $F4), then vertically (speed $10F6 added to the pixel row $10A6, eight rows a cell, row $10F8 from 0 to 22, the pointer moving by 40); leaving the screen at either edge ends it ($10A8 cleared, then $3FB9). Drawn by draw_enemy_bomb_0."
  },
  {
   "address": 13002,
   "type": "line",
   "text": "As move_enemy_bomb_0 for bomb 1: speeds $10ED/$10F7, positions $10B1/$10A7, column $10F5, row $10F9, pointer $F6, flag $10A9, drawn by draw_enemy_bomb_1."
  },
  {
   "address": 13173,
   "type": "line",
   "text": "Reads both joysticks into the five control flags (1 when pressed): $10FA fire, $10FB up, $10FC down, $10FD left, $10FE right. The CIA 1 interrupt is masked while it reads; port 1 ($DC01) and port 2 ($DC00) are read in turn through $DBFF + Y and ORed, so either port works. Game start patches the base of the read ($3389/$338A)."
  },
  {
   "address": 13193,
   "type": "line",
   "text": "Operand low byte of the joystick read in read_joysticks (LDA $DBFF,Y): $FF for the real ports $DC00/$DC01, $90 for the demo's recorded input at $0F91."
  },
  {
   "address": 13194,
   "type": "line",
   "text": "Operand high byte of the joystick read: $DB for the ports, $0F for the demo."
  },
  {
   "address": 13256,
   "type": "line",
   "text": "Converts a sprite position to a screen column and row: column = X ($04) / 8 - 3, plus 32 when the high bit ($06) is set, into $02; row = Y ($05) / 8 - 6 into $03."
  },
  {
   "address": 13286,
   "type": "line",
   "text": "Moves the player's ship from the control flags. Up and down move it in steps of eight pixels: a press starts a step ($1100 or $1101 = 8) unless the ship is at the top (Y $36) or bottom (Y $DE), and each frame the step advances by the speed, alternating between the two speed bytes $1104/$1105 ($1106 toggles) until the eight pixels are done. Left and right move it by the speed every frame (alternating $1104/$1105 by $1107), between X $24 and X $130 (high bit $28). Then $3F10."
  },
  {
   "address": 13466,
   "type": "line",
   "text": "Fire: counts the fire delay $1109 down; a new press (the latch $1108 is cleared when fire is released) fires when the delay is over and shots are left ($110A, plus the fire-rate level $0F01 must reach 3): takes a free laser slot of three ($110B-$110D), starts it at the ship's column ($8D into $110E + slot) one row down and one column right of the ship's screen cell ($71 + $29, into the pointers $49/$4B/$4D), sets the delay to 8 and queues the laser sound ($9E68). Then the extra weapon ($3502)."
  },
  {
   "address": 13495,
   "type": "line",
   "text": "An opcode byte in ship_fire, written from $12D5 by ship_speed_set; as the game leaves $12D5 alone it stays as loaded."
  },
  {
   "address": 13570,
   "type": "line",
   "text": "The bought extra weapon (icon 3, $0F02): when it is owned and no burst is in flight ($1113), fires three shots at once from around the ship: one forward-low that travels left from one cell right of the ship ($A2, counted by $1115 from the ship's column), one upwards ($A0, $1114 from the ship's row) and one downwards ($A4, $1116 = row + 3); $1113 counts the three still flying. Queues its sound ($9E70)."
  },
  {
   "address": 13648,
   "type": "line",
   "text": "After the top hazard row: with $1084 = 2 runs the hazard frame step (wave_tail_9480), then leaves the interrupt."
  },
  {
   "address": 13664,
   "type": "line",
   "text": "Stores Y in $1117 and $48 (clears the recorded sprite collisions)."
  },
  {
   "address": 13679,
   "type": "line",
   "text": "Moves each of the three laser bolts in flight ($110B + slot): one cell right a frame, counting its column $110E + slot to $24, where it ends (slot freed, a shot returned to $110A, its cell blanked and its pointer parked at $47F0). Then the extra weapon's shots ($35AD)."
  },
  {
   "address": 13695,
   "type": "line",
   "text": "One laser bolt, slot Y: moves its screen pointer one cell right and its column on, or ends it at column $24."
  },
  {
   "address": 13719,
   "type": "line",
   "text": "laser_step: the bolt reached column $24: frees the slot, returns the shot, blanks its cell and parks its pointer."
  },
  {
   "address": 13741,
   "type": "line",
   "text": "Moves the extra weapon's three shots while the burst lasts ($1113): the left-going one ($A2) one cell left a frame until its count $1115 runs out, the upward one ($A0) one row up until $1114 runs out, the downward one ($A4) one row down until $1116 reaches $18 (row 24); each that finishes is parked ($80 in its count, pointer $47F0) and decrements $1113. Then $3EBD."
  },
  {
   "address": 13883,
   "type": "line",
   "text": "Copies the play area's colours to the VIC: background $12D6, multicolours $12D7 and $12D8, extended colour $12D9; then $3CBC."
  },
  {
   "address": 13910,
   "type": "line",
   "text": "Every fourth frame ($1129): runs whichever colour fades are under way: the sprite fade ($112A, s_3771), the colour-set step ($112E, s_37A5), the row-sprite fade ($112C, s_37CE), the interlude fade ($0FCD) and the interlude colour set ($0FCE). Then, during play ($11AE): in the shop ($1288) keeps the timer $12FA loaded; after it, counts $12FA down and turns any credits left into points (they are paid off one a frame by shop_spend_step)."
  },
  {
   "address": 14013,
   "type": "line",
   "text": "Puts the eight icon sprites along the bottom: frames from $1188-$118F, Y $B4 (patched at $36EE), X positions $1F, $47, $6F, $97, $BF, $E7, $0F and $37 (the last two past 256)."
  },
  {
   "address": 14062,
   "type": "line",
   "text": "Immediate of the LDY #$B4 in icons_sprites_set: the icons' Y position ($B4 in play, rewritten for the title)."
  },
  {
   "address": 14132,
   "type": "line",
   "text": "Sets the eight icon sprites' colours from $1190-$1197 and the multicolours from $1082 and $0FCB (the operands at $3765 and $376B are patched for play and the title)."
  },
  {
   "address": 14181,
   "type": "line",
   "text": "Operand low byte of the LDY $1082 in icons_colours_set, patched to $5E or $82 for the title or play."
  },
  {
   "address": 14187,
   "type": "line",
   "text": "Operand low byte of the LDY $0FCB in icons_colours_set, patched to $5F or $CB."
  },
  {
   "address": 14188,
   "type": "line",
   "text": "Operand high byte of that LDY, patched to $10 or $0F."
  },
  {
   "address": 14193,
   "type": "line",
   "text": "Fades the sprite colours: each of $1082/$1083 and the colours $90-$97 steps to its successor in the colour chain at $1119; when all ten are zero (black) clears $112A."
  },
  {
   "address": 14245,
   "type": "line",
   "text": "Takes the next of four colour sets ($114D counts, clearing $112E after the fourth): multicolours $1082/$1083 from $1150/$1180 and all eight sprite colours from $1184."
  },
  {
   "address": 14286,
   "type": "line",
   "text": "Fades the three row colours $10E0-$10E2 through the colour chain; when all are black clears $112C."
  },
  {
   "address": 14321,
   "type": "line",
   "text": "Sets up the banner for the next stage: writes the stage number ($107D + 1) as two digits in the game's alphabet into the text at $EB86/$EB87, and takes the stage's two colours from the table at $F880 (two bytes a stage: low nibble + 4 into $11A1, high nibble into $11A0, the second byte to $9993)."
  },
  {
   "address": 14388,
   "type": "line",
   "text": "Clears the attack-wave state: $12CC, the seven enemies' alive, live, exploding and movement entries ($11E0, $1248, $12A8, $11E8, $11F0), $128D and $128E, sets $128B, and goes to $9B7C with A = 7."
  },
  {
   "address": 14429,
   "type": "line",
   "text": "Sets the banner's sprite colours ($11A0-$11A3 = 11, 12, 13, 10) and writes the current player's digit into 'PLAYER n' ($FBC7), then $9980."
  },
  {
   "address": 14464,
   "type": "line",
   "text": "The shield (icon 7, $0F06): for 16 frames after a hit ($12FC) the ship cannot be hit again ($1087 cleared). While the shield is owned, a hit ($1087) is absorbed instead of killing the ship: it costs one of the shield's charges ($12C0, three when bought) and starts the 16 frames; the last charge removes the shield. Then $39C9."
  },
  {
   "address": 14531,
   "type": "line",
   "text": "Second half of a stage's hazard setup: from the stage table at $F900 (four bytes a stage), the bottom row's count ($1039, high nibble of byte 2) and the high byte of the spawn list ($20C7 and three more operands patched to it)."
  },
  {
   "address": 14557,
   "type": "line",
   "text": "Loads the seven enemy sprites' frame, X (plus $12C4) and Y from the tables at $1130, $1138 and $1140, clears their X high bits and colours, and clears $107A, $1082, $1083."
  },
  {
   "address": 14597,
   "type": "line",
   "text": "Clears the X positions and X high bits of sprites 1-7 and the mask $107A; returns A = 0."
  },
  {
   "address": 14616,
   "type": "line",
   "text": "Starts a stage's hazard rows: if $12C1 is zero just sets $103C; otherwise sets $1084 to it, both rows' counts to 1, and from the stage table at $F900 (byte 1: the two multicolours $10E0/$10E1, byte 2: the colour $10E2) and hazard_rows_config; clears both rows."
  },
  {
   "address": 14630,
   "type": "line",
   "text": "hazards_stage_setup with rows: sets the row count and both rows on, takes the rows' colours and spawn page from the stage table and clears the rows."
  },
  {
   "address": 14692,
   "type": "line",
   "text": "Clears the fourteen hazard slots (X $D8-$DF and $E0-$E7, busy flags $1090/$1098) and both high-bit masks $1078/$1079."
  },
  {
   "address": 14718,
   "type": "line",
   "text": "Clears the ship's weapons when it dies: $110F-$1111 to $24, the extra weapon's counts to 0 unless parked, $1116 to $18, blanks the lasers' cells, then $3F35."
  },
  {
   "address": 14776,
   "type": "line",
   "text": "Clears $0F70-$0F73, then $9D35."
  },
  {
   "address": 14793,
   "type": "line",
   "text": "Ship-death sequence, by $107E: 0 carries on to $3A06; 1 starts it ($112A set, weapons cleared, $107E = 2) and sets $112C unless $1080 or $1084 is clear; 2 waits for both fades ($112A, $112C) to finish and then resets $107E."
  },
  {
   "address": 14838,
   "type": "line",
   "text": "death_sequence_step, state 2: waits for both fades to finish, then clears the state."
  },
  {
   "address": 14854,
   "type": "line",
   "text": "Stage start sequence, by $107F: 0 goes on to the death sequence ($3AE8); 1 sets up the bands for the stage ($1CE0 -> $3A15); 2, once $112E is clear, counts the banner timer $1149/$114A down and, at zero, ends the banner ($43D6, fade $112A) and moves on; 3+ waits for the fade, then sets up the stage's waves (s_9BD0) and the band restart for its number of hazard rows ($12C1: none, one or two)."
  },
  {
   "address": 14869,
   "type": "line",
   "text": "Sets the raster chain for a stage by its hazard rows ($12C1, or $1084): with none, the chain restarts at line $7E with $18C8 and the bottom at $F3/$18D0; with one, the top row at $47 ($1867) and the other at $E0 with the bottom at $DD/$1874; with two, $45/$182A, $CB and $C5/$1844. Loads the sprite template (s_38DD), sets $12CC and clears $11A9. Then $19C2."
  },
  {
   "address": 14975,
   "type": "line",
   "text": "Moves the stage start on ($107F) and, until $1084 reaches $12C1, starts the next hazard row (hazards_stage_setup)."
  },
  {
   "address": 15080,
   "type": "line",
   "text": "After a death, by $12C8: 0 goes to the high-score step; 1 places a fresh ship (frame from the stage, ship_reset_position), and re-arms the hazard rows if the stage has any; 2+ waits for $112E, then clears $12C8 and $1080 and $0F70-$0F73."
  },
  {
   "address": 15147,
   "type": "line",
   "text": "Stage clear, by $129B: 0 goes to the orbiter ($3E5E); 1 clears the collisions and goes to $91EF; 2+ clears $129B and $1087 and runs $9BC8."
  },
  {
   "address": 15169,
   "type": "line",
   "text": "Starts the next stage: its number of hazard rows ($12C1) from the low two bits of the stage table at $F900 + 4 x $107D, the stage-start, death and banner states to 1, the banner timer to $0180, $129B on, and the stage banner (stage_banner_setup)."
  },
  {
   "address": 15232,
   "type": "line",
   "text": "Draws the banner text into the eight banner sprites, one character per call while $116D is set (else it leaves the interrupt through the patched jump at $3B85): the line $11A0 + (progress / 4) holds an index into the message table ($F7B0, patched at $3BB3), eight letters a line; each letter's 20-byte glyph from the font at $FC60 is copied into the sprite at $4A00/$4A21 (two letters a sprite, the second shifted four pixels across). $116E counts the letters 0-7 and $11A7 the progress 0-15; at 16 the banner is complete and $116D clears."
  },
  {
   "address": 15238,
   "type": "line",
   "text": "Operand low byte of the JMP at $3B85 in banner_draw_step: where to go when no banner is drawing: $1768 (irq_exit) on the title, $3C7A in play."
  },
  {
   "address": 15239,
   "type": "line",
   "text": "Operand high byte of that JMP ($17 or $3C)."
  },
  {
   "address": 15250,
   "type": "line",
   "text": "Immediate of the LDA #$4A in banner_draw_step: the high byte of the banner sprites' address ($4A00, or $40 for the interlude's pictures)."
  },
  {
   "address": 15284,
   "type": "line",
   "text": "Operand low byte of the message-table read (LDA $F7B0,Y) in banner_draw_step: which message table the banner draws from."
  },
  {
   "address": 15285,
   "type": "line",
   "text": "Operand high byte of the message-table read: $F7B0 title texts, $FB70 messages, $EB80 stage words."
  },
  {
   "address": 15482,
   "type": "line",
   "text": "Target of the patched jump at $3B85 during play: counts $11A8 down into $116D (keeps the banner drawing a while longer), then the orbiter ($2C51)."
  },
  {
   "address": 15497,
   "type": "line",
   "text": "Animates two of the eight sprites a frame ($11AA steps by two): each sprite's frame comes from its animation list at $1300 + position ($11B0 + x), restarting at $11B8 + x when the list gives $FF."
  },
  {
   "address": 15548,
   "type": "line",
   "text": "The current player's small ship in the score panel spins during play: $11AC starts it ($11AE set, position $11C0 = 0), and every four frames ($11AF) the next frame from the list at $1312 ($A9-$AF) is written into the panel code's immediate at $2A06 (player 1) or $2A19 (player 2). A death sets $11AD, which stops it when the list comes round to its start. Then $9ADA."
  },
  {
   "address": 15635,
   "type": "line",
   "text": "$3D13-$3D30: LDA #$35 / STA $01 / JMP $22F6, then a colour-fade loop over $10E0-$10E7 like row_fade_step. No instruction reaches it."
  },
  {
   "address": 15665,
   "type": "line",
   "text": "Draws the current player's six score digits into the panel sprites: each digit's eight-byte glyph from $FB20 + digit x 8 goes into the sprite bytes at $6564 + offset, three bytes apart (one sprite column), the offset for each digit from $11C5 (player 1) or $11CA (player 2)."
  },
  {
   "address": 15746,
   "type": "line",
   "text": "Prepares the banner: clears the letter and progress counters, sets $11A8, and for each of the four lines counts the trailing spaces ($1C) of its eight letters at $FB70 + line x 8, six pixels each, into $12C4-$12C7, the indent that centres the line."
  },
  {
   "address": 15777,
   "type": "line",
   "text": "Operand low byte of the message-table read in banner_centre, patched together with $3BB4."
  },
  {
   "address": 15778,
   "type": "line",
   "text": "Operand high byte of banner_centre's message-table read."
  },
  {
   "address": 15802,
   "type": "line",
   "text": "The ship being hit, by $1087: 0 goes to the stage-clear step; 1 starts the explosion ($11AD, animation from position 2), sets $11D0 = $40 frames, takes a life ($12CB), queues the sound, picks a new attack pattern (s_3F7D) and resets $12C9; 2 waits out the $40 frames, then with no lives left goes to game over and the name entry, with two players and the other alive changes turn (swap_players), otherwise restarts the stage for the same player; the stage restart sets the banner and the start states."
  },
  {
   "address": 15887,
   "type": "line",
   "text": "Hands the game to the other player: their hazard rows ($1229 into $12C1 and $1084), swap_players, $1080 cleared, then the restart at $3E37."
  },
  {
   "address": 15916,
   "type": "line",
   "text": "ship_death_step, same player continues: sets $1080 and the row count again, then the banner and stage-start states."
  },
  {
   "address": 15966,
   "type": "line",
   "text": "The orbiter (icon 5, $0F04): while owned and not held by $12CD, sets $10D8 and takes the next of sixteen offsets round the ship from the circle table at $FB00 (columns into $10B8, rows into $10C0, $12CE stepping by two); then the weapon-hit check."
  },
  {
   "address": 16008,
   "type": "line",
   "text": "Weapon 4 (icon 4, $0F03): when owned and neither of its beams is in flight ($12D0, $12D1), fires two: one at the ship's cell ($53) and one two rows below ($55), both from the ship's column ($12D2, $12D3); queues the sound ($9E78)."
  },
  {
   "address": 16061,
   "type": "line",
   "text": "Moves weapon 4's two beams ($12D0, $12D1 active) and then the character objects (char_objects_step)."
  },
  {
   "address": 16077,
   "type": "line",
   "text": "One beam of weapon 4: one cell right a frame until column $25, drawing characters $F8/$F9 (upper beam, $53) or $F6/$F7 (lower, $55); at the end it is blanked and freed."
  },
  {
   "address": 16144,
   "type": "line",
   "text": "Works out the ship's character cell from its sprite position (column into $8D, row into $8E) and the screen address of that cell ($71/$72), then fire (ship_fire)."
  },
  {
   "address": 16181,
   "type": "line",
   "text": "End of ship_death_weapons: blanks weapon 4's beams, clears its flags, all sixteen character-object flags ($10A8-$10AF, $10D8-$10DF) and sets $12D4."
  },
  {
   "address": 16210,
   "type": "line",
   "text": "Points every character-object pointer at $4400 (the screen's first cell): the seven bullets ($1A-$26), the eight shots and big objects ($E8-$F6), and $51, $53, $55."
  },
  {
   "address": 16253,
   "type": "line",
   "text": "Picks the attack-pattern pointer from the stage's entry $129A in the table at $B800 (the entry times 8, plus a high byte), into $12F5 and $08/$09; then $9B90."
  },
  {
   "address": 16261,
   "type": "line",
   "text": "Operand low byte of the attack-pattern read (LDA $B800,X) in attack_pattern_pick, patched by set_speed_jumps."
  },
  {
   "address": 16262,
   "type": "line",
   "text": "Operand high byte of the attack-pattern read: $B8 before stage 22, $B9 from it."
  },
  {
   "address": 16283,
   "type": "line",
   "text": "Counts $12D4 down and parks all character pointers when it reaches zero (char_ptrs_park)."
  },
  {
   "address": 16298,
   "type": "line",
   "text": "An enemy shot has ended: counts it off ($0F70) and takes 5 from $0F73."
  },
  {
   "address": 16313,
   "type": "line",
   "text": "An enemy bomb has ended: counts it off ($0F71) and takes 10 from $0F73."
  },
  {
   "address": 16328,
   "type": "line",
   "text": "Restarts the stage after a death: $11AC from X, the attack-pattern pointer and stage entry back from $12F5/$12F6 and $12C9, clears the enemies, then $9BA1."
  },
  {
   "address": 16355,
   "type": "line",
   "text": "Common end of the play-frame steps: during a stage ($0FA8) and unless $1084 = 2, adds the pending score into the score while playing ($11AE) and runs the hazard frame step; then rebuilds the X high bits and leaves the interrupt."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "Sprite shapes 0-15 ($4000-$43FF). As loaded they hold the title's top-score table, lines 1-2 and 'TOP SCORES', drawn as text in the game's font; during the interlude and in play the title picture and stage routines write other shapes here (title_picture_step, copy_sprite_rows_a/b/c)."
  },
  {
   "address": 16413,
   "type": "line",
   "text": "Sprite shape 0, bytes 29-32 ($401D-$4020): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16477,
   "type": "line",
   "text": "Sprite shape 1, bytes 29-32 ($405D-$4060): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16541,
   "type": "line",
   "text": "Sprite shape 2, bytes 29-32 ($409D-$40A0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16605,
   "type": "line",
   "text": "Sprite shape 3, bytes 29-32 ($40DD-$40E0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16669,
   "type": "line",
   "text": "Sprite shape 4, bytes 29-32 ($411D-$4120): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16733,
   "type": "line",
   "text": "Sprite shape 5, bytes 29-32 ($415D-$4160): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16797,
   "type": "line",
   "text": "Sprite shape 6, bytes 29-32 ($419D-$41A0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16861,
   "type": "line",
   "text": "Sprite shape 7, bytes 29-32 ($41DD-$41E0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16895,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $EFD0) into sprite shape 8 at $4200."
  },
  {
   "address": 16925,
   "type": "line",
   "text": "Sprite shape 8, bytes 29-32 ($421D-$4220): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16928,
   "type": "line",
   "text": "Base of a 30-byte copy by copy_sprite_rows_a/b/c into sprite shape 8 at $4221 (indexed from 1)."
  },
  {
   "address": 16959,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $EFEE) into sprite shape 9 at $4240."
  },
  {
   "address": 16989,
   "type": "line",
   "text": "Sprite shape 9, bytes 29-32 ($425D-$4260): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 16992,
   "type": "line",
   "text": "Base of a 30-byte copy by copy_sprite_rows_a/b/c into sprite shape 9 at $4261 (indexed from 1)."
  },
  {
   "address": 17023,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $F00C) into sprite shape 10 at $4280."
  },
  {
   "address": 17053,
   "type": "line",
   "text": "Sprite shape 10, bytes 29-32 ($429D-$42A0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 17056,
   "type": "line",
   "text": "Base of a 30-byte copy by copy_sprite_rows_a/b/c into sprite shape 10 at $42A1 (indexed from 1)."
  },
  {
   "address": 17087,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $F02A) into sprite shape 11 at $42C0."
  },
  {
   "address": 17117,
   "type": "line",
   "text": "Sprite shape 11, bytes 29-32 ($42DD-$42E0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 17120,
   "type": "line",
   "text": "Base of a 30-byte copy by copy_sprite_rows_a/b/c into sprite shape 11 at $42E1 (indexed from 1)."
  },
  {
   "address": 17151,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $F048) into sprite shape 12 at $4300."
  },
  {
   "address": 17181,
   "type": "line",
   "text": "Sprite shape 12, bytes 29-32 ($431D-$4320): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 17184,
   "type": "line",
   "text": "Base of a 30-byte copy by copy_sprite_rows_a/b/c into sprite shape 12 at $4321 (indexed from 1)."
  },
  {
   "address": 17215,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $F066) into sprite shape 13 at $4340."
  },
  {
   "address": 17245,
   "type": "line",
   "text": "Sprite shape 13, bytes 29-32 ($435D-$4360): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 17279,
   "type": "line",
   "text": "Base of a 30-byte copy by title_picture_step (from $F084) into sprite shape 14 at $4380."
  },
  {
   "address": 17280,
   "type": "line",
   "text": "Destination of stage_gfx_sequence's column copy from $4F80: sprite shape 14, three bytes a row."
  },
  {
   "address": 17309,
   "type": "line",
   "text": "Sprite shape 14, bytes 29-32 ($439D-$43A0): the four bytes title_picture_step's step 3 clears in each of fifteen shapes."
  },
  {
   "address": 17344,
   "type": "line",
   "text": "Frames of the title's 'players' option sprite: one player, two players (shown after F1)."
  },
  {
   "address": 17346,
   "type": "line",
   "text": "Frames of the 'controls' option sprite: joystick, keyboard (F3)."
  },
  {
   "address": 17348,
   "type": "line",
   "text": "Frames of the 'music' option sprite: music, sound effects (F5)."
  },
  {
   "address": 17350,
   "type": "line",
   "text": "Game-over sequence step (game_over_step): 0 none."
  },
  {
   "address": 17351,
   "type": "line",
   "text": "The hazard animation's four-step cycle (hazard_frames_step)."
  },
  {
   "address": 17352,
   "type": "line",
   "text": "Y positions of the title's top sprites ($43C8-$43CF)."
  },
  {
   "address": 17359,
   "type": "line",
   "text": "Base of the title key flags ($43D0-$43D3); also the last top-sprite Y."
  },
  {
   "address": 17360,
   "type": "line",
   "text": "F1 held (scan_title_keys)."
  },
  {
   "address": 17361,
   "type": "line",
   "text": "F3 held."
  },
  {
   "address": 17362,
   "type": "line",
   "text": "F5 held."
  },
  {
   "address": 17363,
   "type": "line",
   "text": "SPACE held."
  },
  {
   "address": 17364,
   "type": "line",
   "text": "Step of the stage graphics exchange (1-23; 0 when idle)."
  },
  {
   "address": 17365,
   "type": "line",
   "text": "Step of the stage graphics column copy (1-16)."
  },
  {
   "address": 17366,
   "type": "line",
   "text": "Step of the second part of the stage graphics change (1-5)."
  },
  {
   "address": 17367,
   "type": "line",
   "text": "Low bytes for the column copy's destination, by step (four)."
  },
  {
   "address": 17371,
   "type": "line",
   "text": "Low bytes for the second part's source, by step (four)."
  },
  {
   "address": 17375,
   "type": "line",
   "text": "Low-byte offsets added for the stage's frame offset, by $D4 (four)."
  },
  {
   "address": 17379,
   "type": "line",
   "text": "Step of the title picture update (title_picture_step)."
  },
  {
   "address": 17380,
   "type": "line",
   "text": "The bombs' homing cycle (0-3)."
  },
  {
   "address": 17381,
   "type": "line",
   "text": "Homing amounts for the bombs' row step, by cycle (five)."
  },
  {
   "address": 17386,
   "type": "line",
   "text": "Homing amounts for the bombs' column step, by cycle (five)."
  },
  {
   "address": 17391,
   "type": "line",
   "text": "Set once when the turn should pass to the other player after the banner."
  },
  {
   "address": 17392,
   "type": "line",
   "text": "Player 1's next extra-life threshold digit (compared with score digit 2)."
  },
  {
   "address": 17393,
   "type": "line",
   "text": "Player 2's next extra-life threshold digit."
  },
  {
   "address": 17394,
   "type": "line",
   "text": "Frames the lives digit blinks after an extra life."
  },
  {
   "address": 17395,
   "type": "line",
   "text": "Jump vector for the wave-type dispatch (JMP ($43F3)), low byte."
  },
  {
   "address": 17396,
   "type": "line",
   "text": "Jump vector high byte."
  },
  {
   "address": 17398,
   "type": "line",
   "text": "Scratch in enemy_spawn: the spawn-delay index, reused by the type-1 handler."
  },
  {
   "address": 17399,
   "type": "line",
   "text": "Group size kept while the waves are reset (7 normally)."
  },
  {
   "address": 17400,
   "type": "line",
   "text": "Base of the star writes: a star's offset plus $43F8 lands in the first quarter of the screen ($44F8, $45F8, $46F8 for the others)."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "The character set, 64 glyphs ($4800-$49FF), inverted: a set bit draws the cell's colour from colour RAM, which clear_screen makes black everywhere, and a clear bit shows one of the four background colours of extended-colour mode ($D021-$D024), chosen by the character code's top two bits; the backgrounds cycle (colour_cycle_step). So the screen is black, and only clear bits have colour: the blank $2E is solid, each star glyph ($2F, $30, $31) has a single clear bit, and the stars use the codes $6F, $30 and $B1 to take three different background colours. Glyphs $00-$07 are rebuilt every frame for the two enemy bombs and $08-$13 for the six enemy shots, each the glyphs beneath with a ball-shaped hole cut in (draw_enemy_bomb_n, draw_enemy_shot_n); $2D is the enemy bullet; $32-$3F are the player's weapons. A glyph below $2E under the ship kills it (ship_hit_by_fire); one of $32 or above under an enemy hits it (enemies_hit_by_weapons)."
  },
  {
   "address": 18440,
   "type": "line",
   "text": "Glyph 1, bomb 0's upper-right cell ($4808-$480F), rebuilt each frame."
  },
  {
   "address": 18448,
   "type": "line",
   "text": "Glyph 2, bomb 0's lower-left cell."
  },
  {
   "address": 18456,
   "type": "line",
   "text": "Glyph 3, bomb 0's lower-right cell."
  },
  {
   "address": 18464,
   "type": "line",
   "text": "Glyph 4, bomb 1's upper-left cell."
  },
  {
   "address": 18472,
   "type": "line",
   "text": "Glyph 5, bomb 1's upper-right cell."
  },
  {
   "address": 18480,
   "type": "line",
   "text": "Glyph 6, bomb 1's lower-left cell."
  },
  {
   "address": 18488,
   "type": "line",
   "text": "Glyph 7, bomb 1's lower-right cell."
  },
  {
   "address": 18496,
   "type": "line",
   "text": "Glyph 8, enemy shot 2's left cell."
  },
  {
   "address": 18504,
   "type": "line",
   "text": "Glyph 9, enemy shot 2's right cell."
  },
  {
   "address": 18512,
   "type": "line",
   "text": "Glyph 10, enemy shot 3's left cell."
  },
  {
   "address": 18520,
   "type": "line",
   "text": "Glyph 11, enemy shot 3's right cell."
  },
  {
   "address": 18528,
   "type": "line",
   "text": "Glyph 12, enemy shot 4's left cell."
  },
  {
   "address": 18536,
   "type": "line",
   "text": "Glyph 13, enemy shot 4's right cell."
  },
  {
   "address": 18544,
   "type": "line",
   "text": "Glyph 14, enemy shot 5's left cell."
  },
  {
   "address": 18552,
   "type": "line",
   "text": "Glyph 15, enemy shot 5's right cell."
  },
  {
   "address": 18560,
   "type": "line",
   "text": "Glyph 16, enemy shot 0's left cell."
  },
  {
   "address": 18568,
   "type": "line",
   "text": "Glyph 17, enemy shot 0's right cell."
  },
  {
   "address": 18576,
   "type": "line",
   "text": "Glyph 18, enemy shot 1's left cell."
  },
  {
   "address": 18584,
   "type": "line",
   "text": "Glyph 19, enemy shot 1's right cell, and the fixed glyphs after it (the bullet, the blank, the stars and the weapons)."
  },
  {
   "address": 18808,
   "type": "line",
   "text": "Glyph $2F, row 0: the slow star layer's single pixel, rolled left by stars_scroll_slow."
  },
  {
   "address": 18819,
   "type": "line",
   "text": "Glyph $30, row 3: the middle star layer's pixel."
  },
  {
   "address": 18830,
   "type": "line",
   "text": "Glyph $31, row 6: the fast star layer's pixel; the glyphs after it ($32-$3F) are the player's weapons."
  },
  {
   "address": 18944,
   "type": "line",
   "text": "Sprite shapes $28-$2F ($4A00-$4BFF), the eight banner sprites: the banner drawer writes text into them ('FASTEN YOUR SEATBELT', 'PLAYER 1', stage names, the name entry). As loaded they hold top-score lines 3 and 4. The character set's upper half; in extended-colour mode only glyphs 0-63 ($4800-$49FF) are used as characters."
  },
  {
   "address": 19169,
   "type": "line",
   "text": "Name-entry cursor sprite bytes cleared above each letter (with $4AE2, $4AE3)."
  },
  {
   "address": 19170,
   "type": "line",
   "text": "Second byte of the cursor clear."
  },
  {
   "address": 19171,
   "type": "line",
   "text": "Third byte of the cursor clear; the banner sprites continue after it."
  },
  {
   "address": 19233,
   "type": "line",
   "text": "Name-entry cursor glyph column 1, written by hiscore_draw_digit."
  },
  {
   "address": 19234,
   "type": "line",
   "text": "Name-entry cursor glyph column 2."
  },
  {
   "address": 19235,
   "type": "line",
   "text": "Name-entry cursor glyph column 3; banner sprite data continues."
  },
  {
   "address": 19424,
   "type": "line",
   "text": "Six bytes cleared at the end of the name entry (clear_4be1), in the last banner sprite."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "Sprite shapes $30-$43 ($4C00-$50FF). On the title, the pieces of the DELTA logo; in play, rock and asteroid shapes for the hazard rows. The two sets are exchanged with the store at $F0E0-$F5DF, 128 bytes a frame, by swap_graphics_step."
  },
  {
   "address": 19518,
   "type": "line",
   "text": "A byte of sprite shape $30 that stage_gfx_sequence tests ($FF or not) to know which set of shapes is in the VIC bank."
  },
  {
   "address": 20352,
   "type": "line",
   "text": "Source of stage_gfx_sequence's column copy (sprite shape $3E, patched per step)."
  },
  {
   "address": 20608,
   "type": "line",
   "text": "First block exchanged by swap_graphics_step (sprite shape $42's second half), patched for each block."
  },
  {
   "address": 20672,
   "type": "line",
   "text": "Source of the second part of the stage graphics change (sprite shape $43, patched)."
  },
  {
   "address": 20736,
   "type": "line",
   "text": "Sprite shapes $44-$5B ($5100-$56FF): rocks, bubbles and machinery for the hazard rows. Between stages the whole of $4C00-$577F is exchanged, 128 bytes a frame, with the store at $E000-$EB7F (stage_gfx_sequence), so alternate stage pairs get the other set of shapes."
  },
  {
   "address": 21760,
   "type": "line",
   "text": "Sprite shapes $54-$5B ($5500-$56FF): the rest of the current hazard set."
  },
  {
   "address": 22272,
   "type": "line",
   "text": "Sprite shapes $5C-$5F ($5700-$57FF): hazard shapes; the first half takes part in the exchange with $EB00-$EB7F, and the column copy at $9680 rewrites parts from $50C0."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "Sprite shapes $60-$7E ($5800-$5FBF): machinery and temple pieces used by the hazard rows (frame = list value + $30 + the stage's offset $D4)."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "Sprite shapes $70-$7E ($5C00-$5FBF): more machinery and temple pieces for the hazard rows."
  },
  {
   "address": 24512,
   "type": "line",
   "text": "Sprite shapes $7F-$8D ($5FC0-$637F): the eight weapon icons of the bottom row in their frames (icons_update picks them: speed $7F-$82, fire rate $83-$85, then one pair per weapon $86-$8C), and $8D, the empty icon; icon 0 shows $8D plus the credits."
  },
  {
   "address": 25472,
   "type": "line",
   "text": "Sprite shapes $8E-$93 ($6380-$64FF): more icon frames and the blank used by the panel."
  },
  {
   "address": 25856,
   "type": "line",
   "text": "Sprite shapes $94-$9B ($6500-$66FF): the score panel at the top ('1 UP', '2 UP', the six-digit scores, written by draw_score at $6564 + offset), the lives digits (draw_lives at $664F/$668F) and $9B, a blank shape used to hide a sprite."
  },
  {
   "address": 25956,
   "type": "line",
   "text": "Panel sprite: the first score digit's column (rows 0-7 three bytes apart, from $6564 + offset), written by draw_score."
  },
  {
   "address": 25959,
   "type": "line",
   "text": "Panel sprite: score glyph row 1."
  },
  {
   "address": 25962,
   "type": "line",
   "text": "Panel sprite: score glyph row 2."
  },
  {
   "address": 25965,
   "type": "line",
   "text": "Panel sprite: score glyph row 3."
  },
  {
   "address": 25968,
   "type": "line",
   "text": "Panel sprite: score glyph row 4."
  },
  {
   "address": 25971,
   "type": "line",
   "text": "Panel sprite: score glyph row 5."
  },
  {
   "address": 25974,
   "type": "line",
   "text": "Panel sprite: score glyph row 6."
  },
  {
   "address": 25977,
   "type": "line",
   "text": "Panel sprite: score glyph row 7; the panel shapes continue."
  },
  {
   "address": 26368,
   "type": "line",
   "text": "Sprite shapes $9C-$AF ($6700-$6BFF): the explosion ($9C-$A2), the player's ship and its exhaust frames ($A3-$A8, the ship starts at $A4), and the small ships shown as lives in the panel ($A9-$AF)."
  },
  {
   "address": 27392,
   "type": "line",
   "text": "Sprite shapes $AC-$AF ($6B00-$6BFF): the panel's small ship frames ($A9-$AF continue here)."
  },
  {
   "address": 27648,
   "type": "line",
   "text": "Sprite shapes $B0-$FF ($6C00-$7FFF): the enemies, each type a short animation listed at $1300 ($B0-$B4 pulsing, $B5-$BA and $BB-$C0 spinning craft, $C1-$CC, $CD-$D8 and so on), up to the boss shapes at the end."
  },
  {
   "address": 28672,
   "type": "line",
   "text": "Sprite shapes $C0-$CF ($7000-$73FF): enemy animations (spinning discs and pods) for the attack waves."
  },
  {
   "address": 29696,
   "type": "line",
   "text": "Sprite shapes $D0-$DF ($7400-$77FF): enemy animations (rings, crosses and craft)."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "Sprite shapes $E0-$EF ($7800-$7BFF): enemy animations (clusters and star shapes)."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "Sprite shapes $F0-$FF ($7C00-$7FFF): the last enemy shapes, including the large boss pieces."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "Sixteen zero bytes before the attack-wave code; not read."
  },
  {
   "address": 32784,
   "type": "line",
   "text": "The attack wave's spawner, once a frame (from wave_step, and on the title's demo page): not on a slow-down frame ($107B). A pending wave type ($128E) dispatches through the table at $9F20 (type 1: $908F). Otherwise, while enemies of the current group are still to come ($128D), spawns the next into a free slot ($80C9); when the group is done and the delay $114B and the group's rule allow ($1298: all seven accounted for), starts the next group: takes the next entry of the stage's wave list ($B800 or $B900 + $129A), points $12F2/$12F3 and $08/$09 at its record ($AB00 + entry x 8) and its size ($1299). If no enemy of the finished group escaped ($128B clear), a group that carried a credit (bit 7 of its record's byte 3, $1289) adds one to the credits $107C; one marked with bit 6 ($128A) takes one away ($9ED4). Then the enemy movers ($9024)."
  },
  {
   "address": 32905,
   "type": "line",
   "text": "Operand low byte of the wave-list read (LDA $B991,Y) in wave_spawn_step, patched to $00 or $91 (demo) by set_speed_jumps and demo_start."
  },
  {
   "address": 32906,
   "type": "line",
   "text": "Operand high byte of the wave-list read: $B8 before stage 22, $B9 from it and in the demo."
  },
  {
   "address": 32969,
   "type": "line",
   "text": "Finds the highest free enemy slot (1-7, neither alive in $11E0 nor waiting in $1248) and spawns the next enemy of the group into it (enemy_spawn)."
  },
  {
   "address": 32990,
   "type": "line",
   "text": "Jump to the enemy movers ($9024)."
  },
  {
   "address": 32993,
   "type": "line",
   "text": "Moves each live enemy (1-7, $11E0) by its velocity, except on a slow-down frame ($107B): X by $11E8 + x (signed, carrying into the high bit $28 + x) and Y by $11F0 + x."
  },
  {
   "address": 33055,
   "type": "line",
   "text": "Spawns the next enemy of the wave group into slot X: clears its state ($1210, $12B0, $11F8, $1200, $1208, $12E0 and the group flags $1288-$128B, $1298), reads the group's record through $12DE/$12DF (the entry at $B991 + $129A gives $FF at the end of the stage, which sets $129B unless $1087). Record bytes: 0 the hit points (via $A100 into $1240 + x), 1 the animation base ($12A0 + x), 2 flags (bit 7 vertical mirror $1210, bit 6 starts the wave timer $129E from $1247, bit 5 $1298, bit 4 the shop $1288, low nibble the colour via $A801 into $90 + x), 3 flags (bit 3 the side it enters from: X $4F with the high bit, or $07, and the horizontal mirror $1290; bit 6 $1200; low three bits via $11D8 the points into $1280 + x; bits 7/6 $1289/$128A credit drops; bits 3-5 the wave type $128E and its handler from $9F30), 5 the path (via $A400 and $A300 into the path pointer $1250/$1258 + x), 6 the start Y (via $A600), 7 the spawn delay (via $A700 into $1248 + x). Counts the group down ($128D, $128C), steps $129C and dispatches the type handler."
  },
  {
   "address": 33106,
   "type": "line",
   "text": "Operand low byte of the wave-list read in enemy_spawn, patched with $8089."
  },
  {
   "address": 33107,
   "type": "line",
   "text": "Operand high byte of enemy_spawn's wave-list read, patched with $808A."
  },
  {
   "address": 33133,
   "type": "line",
   "text": "enemy_spawn, continued: reads the record's bytes 0-7 into the slot's tables (hit points, animation, flags and colour, side and points, path, start Y, delay) and dispatches the spawn type."
  },
  {
   "address": 33451,
   "type": "line",
   "text": "Moves the seven enemies, one unrolled copy of the same code per slot ($82CC slot 1, $84B4 slot 2, $869C slot 3, $8884 slot 4, $8A6C slot 5, $8C54 slot 6, $8E3C slot 7). First counts down each slot's spawn delay ($1248 + x) and makes the enemy alive ($11E0, $1270) when it ends; on a slow-down frame ($107B) the paths are not stepped."
  },
  {
   "address": 33484,
   "type": "line",
   "text": "Slot 1's mover (the other six slots repeat it at $84B4, $869C, $8884, $8A6C, $8C54, $8E3C with their own variables). For a live enemy ($11E1): when its explosion ($12A9) has ended (frame $9B) frees the slot and counts it in $128C; when hit ($1071) takes a hit point ($1241, never from $FF): at zero it either changes into its next form, when bit 7 of its segment's byte 3 says so ($1219: new animation and hit points from the form list at $12FE + n, $FF there making it final, $1209), or explodes: animation position 2 (the explosion frames), its points added (s_9074, by $1281), marked exploding ($12A9). When an icon is touched in the shop ($1221), or it leaves the play area (Y outside $38-$E0, or past X $158), it is removed ($841D). Otherwise it follows its path: the path list ($1251/$1259) names segments (four bytes each at $A880 + 4n: a velocity list from $A080, the speed/fire byte $12E9, an animation offset added to $12A1, the frames per step with bit 7 = change form when killed), and the velocity list gives a (dx, dy) pair every $1279 frames, mirrored by $1211/$1291, into $11E9/$11F1. A $FF in the path list jumps to a new address; $80 in a velocity list sets $12B1 to read the next segment."
  },
  {
   "address": 33972,
   "type": "line",
   "text": "Slot 2's mover: as enemy_move_1, with this slot's variables ($11E2 alive, $12AA exploding, $1072 shot, $1222 icon touched, $1252/$125A path, $1262/$126A velocities)."
  },
  {
   "address": 34460,
   "type": "line",
   "text": "Slot 3's mover: as enemy_move_1, with this slot's variables ($11E3 alive, $12AB exploding, $1073 shot, $1223 icon touched, $1253/$125B path, $1263/$126B velocities)."
  },
  {
   "address": 34948,
   "type": "line",
   "text": "Slot 4's mover: as enemy_move_1, with this slot's variables ($11E4 alive, $12AC exploding, $1074 shot, $1224 icon touched, $1254/$125C path, $1264/$126C velocities)."
  },
  {
   "address": 35436,
   "type": "line",
   "text": "Slot 5's mover: as enemy_move_1, with this slot's variables ($11E5 alive, $12AD exploding, $1075 shot, $1225 icon touched, $1255/$125D path, $1265/$126D velocities)."
  },
  {
   "address": 35924,
   "type": "line",
   "text": "Slot 6's mover: as enemy_move_1, with this slot's variables ($11E6 alive, $12AE exploding, $1076 shot, $1226 icon touched, $1256/$125E path, $1266/$126E velocities)."
  },
  {
   "address": 36412,
   "type": "line",
   "text": "Slot 7's mover: as enemy_move_1, with this slot's variables ($11E7 alive, $12AF exploding, $1077 shot, $1227 icon touched, $1257/$125F path, $1267/$126F velocities)."
  },
  {
   "address": 36900,
   "type": "line",
   "text": "Before the movers: when the wave's timer $129E runs (and $129D is set) counts it down; at zero, or when slot 1 holds an enemy that cannot be destroyed ($1241 = $FF) and slot 7 has just been destroyed ($1077 set and its hit points $1247 at zero), every enemy is marked as shot ($1070 + x) with its hit points zeroed, so the whole wave explodes: shooting the boss in slot 7 destroys its escort. Then the movers ($82AB)."
  },
  {
   "address": 36961,
   "type": "line",
   "text": "After the movers: clears the per-slot 'hit' and 'icon touched' flags ($1070, $1220) and $129D, then applies the velocities ($80E1)."
  },
  {
   "address": 36980,
   "type": "line",
   "text": "Adds the points of an enemy (A) to the pending score: 100 ($64) adds one to the hundreds digit $11D4; otherwise tens go into $11D5 and units into $11D6."
  },
  {
   "address": 37007,
   "type": "line",
   "text": "Wave type 1 handler (through $9F20): counts $1290 down; while the group has enemies left ($128C) advances $129C (wrapping at 7) and $128F, and spawns another ($80C9) every call until $128F reaches $20 (the operand at $90AE, patched per stage by s_9E40); then clears the type."
  },
  {
   "address": 37038,
   "type": "line",
   "text": "Immediate of the CPY #$20 in wave_type_1: the number of type-1 spawns, patched per stage from $FA80 by wave_type1_count."
  },
  {
   "address": 37058,
   "type": "line",
   "text": "Spawn handler for type 1 (through $9F30): unless $1290 is running, gives the new enemy a spawn delay of 1; sets $1290 from $A701 + $43F6."
  },
  {
   "address": 37077,
   "type": "line",
   "text": "Spawn handler for type 0 (through $9F30): nothing."
  },
  {
   "address": 37078,
   "type": "line",
   "text": "Forty-two zero bytes, unused."
  },
  {
   "address": 37120,
   "type": "line",
   "text": "Sets this frame's enemy-fire rules, at the top of the play frame. The aiming coarseness comes from the stage's entry at $FA00 plus the weapon levels of icons 4 and 6 ($0F03, $0F05), capped at 3, through $9FE1 into the shift counts at $92EF and $9310. The kind of fire goes into $0F4D: bit 7 (the eight-way bullets) when $0F7A is clear or the orbiter (icon 5) is not owned, bit 6 (the bombs) when the shield (icon 7) is owned or the wave is $6E, low bits the base. Unless slot 1 holds a special enemy ($1201), the fire budget $0F74 comes from the stage (capped at 15, one more while the wave timer runs) through $9F10 and $9F08; otherwise it is $24. Then sets the icon colours."
  },
  {
   "address": 37245,
   "type": "line",
   "text": "Starts the game-over screen: fades on ($112A, $112C), $43C6 = 1, shop, hit and purchase flags cleared, the hazard-row speed operands at $2415/$24D3 set to 3, sprites 1-8 Y to 3, the ship's weapons cleared, the stars moved, tune $0C queued ($117D), and the panel sprites set (irq_panel_sprites)."
  },
  {
   "address": 37296,
   "type": "line",
   "text": "Points the banner at the message table at $FB70 (both the drawer's $3BB3 and the centring's $3DA0), lines 3, 0, 1, 2, and centres it."
  },
  {
   "address": 37332,
   "type": "line",
   "text": "Stores Y in $1084, $9FF0 and $9FF1."
  },
  {
   "address": 37344,
   "type": "line",
   "text": "Queues tune $0C and sets up the name-entry sprites."
  },
  {
   "address": 37352,
   "type": "line",
   "text": "Three NOPs and four zero bytes, unused."
  },
  {
   "address": 37359,
   "type": "line",
   "text": "After a stage is cleared: moves on to the next stage ($107D); after stage 32 ($20) goes to the end of the game ($9D00), otherwise sets the next stage up."
  },
  {
   "address": 37376,
   "type": "line",
   "text": "Eight NOPs after stage_advance, unused."
  },
  {
   "address": 37384,
   "type": "line",
   "text": "Each frame one enemy slot (cycling 1-7 through $12DA) may fire: it must be alive, past its entry ($12B9 clear), allowed to fire (bit 6 of its speed byte $12E9), not exploding, and to the right of the ship's area (X under $48 with the high bit, or above $18); its own counter $12E1 + slot must reach the stage's rate $12DB. Then works out its cell, toggles $0F7A and, by $0F4D: bit 7 or the 'no aimed fire' state fires bullets ($945E), bit 6 a bomb ($938B), otherwise an aimed row shot: the step from the enemy towards the ship ($8D, $8E) is reduced by repeated halving to a direction ($12DD, $12F4) and a free shot slot is used (six, or two bombs), as long as the total in flight ($0F73: 5 per shot, 10 per bomb, 1 per bullet) stays under the budget $0F74. Queues the firing sound ($9EE0)."
  },
  {
   "address": 37458,
   "type": "line",
   "text": "25 NOPs inside enemy_fire_decide, jumped over by its branch."
  },
  {
   "address": 37483,
   "type": "line",
   "text": "enemy_fire_decide, continued: the slot may fire: works out its cell and screen address, picks the kind of fire and the direction towards the ship, and launches a shot, a bomb or a bullet within the budget."
  },
  {
   "address": 37615,
   "type": "line",
   "text": "Immediate of the CMP #$03 in enemy_fire_decide's aiming: how far the larger step is halved, patched from $9FE1 by enemy_fire_setup (coarser aim at higher values)."
  },
  {
   "address": 37648,
   "type": "line",
   "text": "Immediate of the second CPX #$03 in the aiming, patched with $92EF."
  },
  {
   "address": 37771,
   "type": "line",
   "text": "Fires a bomb (2x2 characters, two at most, $0F71): same budget test (10 each); sets its column from the enemy, its column step from $0F93/$0F9C by the direction, its row step from the stored $0F90, and its screen pointer ($F4/$F6)."
  },
  {
   "address": 37865,
   "type": "line",
   "text": "Y step towards the ship: $12F4 = 1 when the ship is below or level, $FF when above."
  },
  {
   "address": 37887,
   "type": "line",
   "text": "X step towards the ship: $12DD = 1 when the ship is right of or level with the enemy, $FF when left."
  },
  {
   "address": 37903,
   "type": "line",
   "text": "Fires an eight-way bullet (seven at most, $0F72; costs 1 of the budget): a free slot of seven ($10D9-$10DF) gets the column and row steps $12DD/$12F4, its column (enemy + 2) and row, and its screen pointer ($1A + 2 x slot)."
  },
  {
   "address": 37982,
   "type": "line",
   "text": "Aims a bullet: with bit 7 of the fire kind straight along the row (row step 0), otherwise diagonally towards the ship; then enemy_fire_bullet."
  },
  {
   "address": 38009,
   "type": "line",
   "text": "Counts $43F2 down and redraws the lives digit."
  },
  {
   "address": 38016,
   "type": "line",
   "text": "Hazard-row animation, run from a raster band: steps $43C7 through 0-3; on odd steps, during play ($11AE), blinks the lives ($43F2) or runs enemy_ai_step. On even steps, unless the stage has no hazards (spawn page $D5 or more at $20C7), banks all RAM in and moves every busy slot of the top row (step 0) or the bottom row (step 2) one frame along its animation list in the table under the I/O area at $D200 (a $FF entry restarts the list), storing the frame number (+$30, or +$30 + $D4 offset, $9B = blank) in $C6-$CC or $B8-$BE; banks the I/O back in. For a stage without hazards the slots' stored frames are copied straight."
  },
  {
   "address": 38191,
   "type": "line",
   "text": "hazard_rows_step's spawn test: skips spawning while the banner shows or the stage is ending, otherwise spawns with the top row's flag."
  },
  {
   "address": 38235,
   "type": "line",
   "text": "jmp_955b's body: during the demo sets the interlude delay and goes to the lasers ($356F); otherwise runs the interlude step."
  },
  {
   "address": 38256,
   "type": "line",
   "text": "Game-over step 0: waits for the stage start ($107F = 2) and the fades ($112E), then runs the stage-change graphics sequence ($9580)."
  },
  {
   "address": 38272,
   "type": "line",
   "text": "Graphics change between stages, a step a frame. $43D6 set: the second part ($9680). $43D4 counting (1-23): exchanges 128 bytes between $EB00 and a half-page of $5700 chosen by the count (the copy loop's operands are patched each time), i.e. swaps sprite or character graphics between their store and the VIC bank. $43D5 counting: copies a 64-byte column of graphics from $4F80 into the screen-side buffer at $4380, three bytes at a time, with the source offset from $43D7/$43DF and $D4 (the stage's frame offset); at 16 moves on to the second part. Otherwise decides from the stage (spawn page $20C7 and the marker at $4C3E) whether to start the swap or the copy."
  },
  {
   "address": 38338,
   "type": "line",
   "text": "Operand low byte of the store read in stage_gfx_sequence's exchange loop ($00 or $80: which half page)."
  },
  {
   "address": 38339,
   "type": "line",
   "text": "Operand high byte of the store read ($E0-$EB, patched per step)."
  },
  {
   "address": 38341,
   "type": "line",
   "text": "Operand low byte of the VIC-bank read in the exchange loop."
  },
  {
   "address": 38342,
   "type": "line",
   "text": "Operand high byte of the VIC-bank read ($4C-$57)."
  },
  {
   "address": 38344,
   "type": "line",
   "text": "Operand low byte of the VIC-bank write."
  },
  {
   "address": 38345,
   "type": "line",
   "text": "Operand high byte of the VIC-bank write."
  },
  {
   "address": 38348,
   "type": "line",
   "text": "Operand low byte of the store write."
  },
  {
   "address": 38349,
   "type": "line",
   "text": "Operand high byte of the store write; the loop exchanges 128 bytes."
  },
  {
   "address": 38400,
   "type": "line",
   "text": "stage_gfx_sequence, the column-copy part: patches the copy's operands for this step and copies a column of graphics from $4F80 to $4380."
  },
  {
   "address": 38496,
   "type": "line",
   "text": "Operand low byte of the column copy's first read ($4F80 + offset)."
  },
  {
   "address": 38497,
   "type": "line",
   "text": "Operand high byte of the column copy's first read."
  },
  {
   "address": 38499,
   "type": "line",
   "text": "Operand low byte of the column copy's first write ($4380 area)."
  },
  {
   "address": 38500,
   "type": "line",
   "text": "Operand high byte of the column copy's first write ($40 + step / 4)."
  },
  {
   "address": 38504,
   "type": "line",
   "text": "Operand low byte of the column copy's second read."
  },
  {
   "address": 38505,
   "type": "line",
   "text": "Operand high byte of the second read."
  },
  {
   "address": 38507,
   "type": "line",
   "text": "Operand low byte of the second write."
  },
  {
   "address": 38508,
   "type": "line",
   "text": "Operand high byte of the second write."
  },
  {
   "address": 38512,
   "type": "line",
   "text": "Operand low byte of the third read."
  },
  {
   "address": 38513,
   "type": "line",
   "text": "Operand high byte of the third read."
  },
  {
   "address": 38515,
   "type": "line",
   "text": "Operand low byte of the third write."
  },
  {
   "address": 38516,
   "type": "line",
   "text": "Operand high byte of the third write; the copy then moves on three bytes."
  },
  {
   "address": 38528,
   "type": "line",
   "text": "Second part of the stage graphics change, steps 1-5 ($43D6): for stages with hazard rows, copies 64 bytes from $50C0 (patched source) into the sprite shapes at $5700 (patched destination), three bytes a row, with offsets from $43DB and $43D7 and pages $4F-$57 by the step."
  },
  {
   "address": 38640,
   "type": "line",
   "text": "Operand low byte of the second part's first read (from $50C0, patched from $43DB)."
  },
  {
   "address": 38641,
   "type": "line",
   "text": "Operand high byte of that read ($4F/$50 or $54/$55 by step and stage)."
  },
  {
   "address": 38643,
   "type": "line",
   "text": "Operand low byte of the second part's first write ($5700 area, from $43D7)."
  },
  {
   "address": 38644,
   "type": "line",
   "text": "Operand high byte of that write ($56 or $57)."
  },
  {
   "address": 38648,
   "type": "line",
   "text": "Operand low byte of the second part's second read."
  },
  {
   "address": 38649,
   "type": "line",
   "text": "Operand high byte of the second part's second read."
  },
  {
   "address": 38651,
   "type": "line",
   "text": "Operand low byte of the second part's second write."
  },
  {
   "address": 38652,
   "type": "line",
   "text": "Operand high byte of the second part's second write."
  },
  {
   "address": 38656,
   "type": "line",
   "text": "Operand low byte of the second part's third read."
  },
  {
   "address": 38657,
   "type": "line",
   "text": "Operand high byte of the second part's third read."
  },
  {
   "address": 38659,
   "type": "line",
   "text": "Operand low byte of the second part's third write."
  },
  {
   "address": 38660,
   "type": "line",
   "text": "Operand high byte of the third write."
  },
  {
   "address": 38672,
   "type": "line",
   "text": "Title picture update, a step a frame by $43E3: 1 copies four 30-byte blocks from $EFD0-$F046 into the sprite shapes at $4200-$42DE; 2 copies three more ($F048-$F0A1) to $4300-$439E; 3 clears four bytes of each of fifteen sprite shapes at $401E-$43A0; 4 resets and continues with the page's own picture (interlude_page_step, or copy_sprite_rows_a during a stage). With $43E3 = 0: game over during a stage ($1710) or the interlude."
  },
  {
   "address": 38861,
   "type": "line",
   "text": "Three zero bytes, unused."
  },
  {
   "address": 38864,
   "type": "line",
   "text": "title_picture_step with nothing to copy: game over during a stage, otherwise the interlude page step."
  },
  {
   "address": 38875,
   "type": "line",
   "text": "Five zero bytes, unused."
  },
  {
   "address": 38880,
   "type": "line",
   "text": "Starts a top-row hazard's animation in slot X at list offset A (from $D000 + entry): stores it in $9F86/$9FA2 and the first frame (from the list at $D200, +$2F or +$2F+$19 for frames $0F and up, $9B blank) in $BE + X. For a stage without hazards (spawn page $D5+) the frame is the offset itself, less $D4 + $30."
  },
  {
   "address": 38944,
   "type": "line",
   "text": "As top_slot_anim_start for the other half of the top row: $9F7F/$9F9B and $B7 + X."
  },
  {
   "address": 39008,
   "type": "line",
   "text": "Starts a bottom-row hazard's animation: $9F94/$9FB0 and the frame (+$30, plus $D4) in $CC + X."
  },
  {
   "address": 39056,
   "type": "line",
   "text": "As bottom_slot_anim_start into $9F8D/$9FA9 and $C5 + X."
  },
  {
   "address": 39104,
   "type": "line",
   "text": "Steers the two enemy bombs towards the ship: for each live bomb ($0FA4 + n) nudges its row step ($10F5 + n) by the amount from $43E5 (by the four-step cycle $43E4) towards the ship's row, within -4..4, and its column step ($10EB + n) by $43EA towards the ship's column, within $C0..$40. The bombs home in."
  },
  {
   "address": 39200,
   "type": "line",
   "text": "Points the joystick read at $0F90 (the operands at $3389/$338A), so read_joysticks takes its 'ports' from $0F91/$0F92: the demo's recorded input."
  },
  {
   "address": 39216,
   "type": "line",
   "text": "The attract-mode demo's controller ($0F78 set): every eight frames ($0F76) takes the next byte of the recorded input at $9F40 + $0F77 into $0F91, read through the patched joystick read; a $FF ends the demo ($0F78 cleared)."
  },
  {
   "address": 39272,
   "type": "line",
   "text": "Runs the hazard rows' step unless the game is paused ($9FEE)."
  },
  {
   "address": 39284,
   "type": "line",
   "text": "Continues to the icon blink ($0895) unless paused, else rebuilds the X high bits."
  },
  {
   "address": 39296,
   "type": "line",
   "text": "Points the banner drawer and its centring at the message table at $FB70 and centres it."
  },
  {
   "address": 39315,
   "type": "line",
   "text": "Sets banner line 2 to A + $11 and points the banner at the stage banner text at $EB80; centres it."
  },
  {
   "address": 39340,
   "type": "line",
   "text": "Every second hazard step in the shop-less play: takes a pseudo-random byte by walking $8F through the table at $3000 (each byte is the next index, shifted), keeping two bits in $12F1 and one in $0F79 (used to vary the fire). For the boss wave ($12DC = $6E) and while its slot 7 is still in its approach ($123F < 8), once per approach flips $0F7B and points slot 7 at the ship: along X or along Y by turns, by writing the step at $B382/$B383 of its velocity list. Then the score is drawn (every fourth step) or an enemy may fire ($9208) and the bombs home ($98C0)."
  },
  {
   "address": 39464,
   "type": "line",
   "text": "enemy_ai_step: the boss has left its approach; clears the once-per-approach flag."
  },
  {
   "address": 39472,
   "type": "line",
   "text": "Pause, at the top of each play frame: during a stage, with the ship alive, not between stages, not on the title and not in game over, RUN/STOP (row 7, column 7) pauses the game: $9FEE set, the hazard rows' speed operands at $2415/$24D3 zeroed (the rows freeze), and every play routine checks $9FEE. While paused, fire (or RETURN with keyboard control) resumes, and the T key (row 2, column 6) quits to the game-over screen. Otherwise moves the stars and sets the panel sprites."
  },
  {
   "address": 39552,
   "type": "line",
   "text": "pause_check while paused: fire (or RETURN with keyboard control) resumes; T quits to game over."
  },
  {
   "address": 39642,
   "type": "line",
   "text": "Runs the colour fades unless paused."
  },
  {
   "address": 39653,
   "type": "line",
   "text": "Runs the name-entry setup step unless paused."
  },
  {
   "address": 39664,
   "type": "line",
   "text": "A short delay loop (255 x 5 cycles) used while paused, then the panel sprites."
  },
  {
   "address": 39673,
   "type": "line",
   "text": "Five zero bytes and two RTS, unused."
  },
  {
   "address": 39680,
   "type": "line",
   "text": "End of the interlude on title page 2: starts the attract-mode demo: clears the waves, $0F76/$0F77 (the recorded input's position), weapon 4 and the shop flag, resets the swap store (s_9C20), sets $0F78 (demo on), the joystick 'port' $0F91 to $1F (nothing pressed), three credits, the attack data at $B900/$9100 ($808A/$8153 = $B9, $8089/$8152 = $91), $129A = $FF and the wave pointer to $ABF0. Then $3B80."
  },
  {
   "address": 39760,
   "type": "line",
   "text": "Continues the icon code at $0895 unless $1084 = 2 (then $2BD2)."
  },
  {
   "address": 39776,
   "type": "line",
   "text": "Goes to $2BD2 unless $1084 = 2 (then rebuilds the X high bits)."
  },
  {
   "address": 39792,
   "type": "line",
   "text": "Continues to icons_unless_paused unless $1112 is set."
  },
  {
   "address": 39804,
   "type": "line",
   "text": "Resets the wave state after enemies_clear: $128C = A, $1299 from $43F7, $1298 = X, $1087 cleared; then the fire rate ($9BAA)."
  },
  {
   "address": 39824,
   "type": "line",
   "text": "Completes the attack-pattern pointer (A + $AB into $12F6 and $09) and takes the group size ($43F7) from byte 3 of its record."
  },
  {
   "address": 39841,
   "type": "line",
   "text": "Sets the delay before the next group ($114B = $30) and ends the frame."
  },
  {
   "address": 39850,
   "type": "line",
   "text": "Sets the enemy fire rate $12DB from the difficulty table at $9F00 + min(stage, 15) / 2, and clears the seven per-slot fire counters ($12E1-$12E7)."
  },
  {
   "address": 39880,
   "type": "line",
   "text": "Sets $43F7 to 7 and clears the enemies."
  },
  {
   "address": 39888,
   "type": "line",
   "text": "Stores A in $107F, and in $1087 when $129B is set."
  },
  {
   "address": 39902,
   "type": "line",
   "text": "Second half of swap_players: exchanges five bytes $12F7-$12FB (the purchase state) with $9FE5-$9FE9, and $9FF0 with $9FF1 (each player's loop count). $43F7 from X."
  },
  {
   "address": 39936,
   "type": "line",
   "text": "During a stage runs the wave step, otherwise the weapon-hit check."
  },
  {
   "address": 39948,
   "type": "line",
   "text": "During a stage checks whether enemy fire hit the ship, otherwise leaves the interrupt."
  },
  {
   "address": 39960,
   "type": "line",
   "text": "Title page 2: reads the sprite collisions into $48 and checks the ship against the icons ($2BD7), so the demo can buy."
  },
  {
   "address": 39968,
   "type": "line",
   "text": "Clears the purchase state $12F7-$12FB and its copy $9FE5-$9FE9, and sets $9FD9 to 7."
  },
  {
   "address": 39987,
   "type": "line",
   "text": "Points the joystick read back at the real ports ($DBFF + 1, + 2) and reads them."
  },
  {
   "address": 40000,
   "type": "line",
   "text": "In the demo ($0F78) moves the ship from the recorded input; otherwise rebuilds the X high bits."
  },
  {
   "address": 40012,
   "type": "line",
   "text": "Part of swap_players: exchanges the seven icon-animation states ($0EFF, $0F2F, $0F36, $0F45, $0F1B, $0F25) with their stores ($9FC1, $1229, $1230, $9FCA, $9FD1, $9FD9), then $9BDE."
  },
  {
   "address": 40108,
   "type": "line",
   "text": "Points the banner at the message table $FB70, sets $43EF and $107E, clears $116D and $1112."
  },
  {
   "address": 40136,
   "type": "line",
   "text": "Goes to the ship-death step, or (once, $43EF) to the other player's turn."
  },
  {
   "address": 40150,
   "type": "line",
   "text": "Extra lives: when the score digit $11C2 reaches the player's next threshold digit ($43F0 + player), the threshold moves on by one (wrapping 9 to 0), the lives blink ($43F2) and the player gains a life ($12CB, at most 9); the sound is queued ($9ECC). So every time that digit goes up, a life."
  },
  {
   "address": 40192,
   "type": "line",
   "text": "After stage 32: queues tune $0D, sets the stage to $FF (the next stage is 0 again) and $129A, the banner state and timer ($0380), the banner from $FB70, clears the waves and counts one more completed loop ($9FF0)."
  },
  {
   "address": 40245,
   "type": "line",
   "text": "Loads the 32-byte difficulty table at $9F00 from $FA20 + 32 x the loop count (at most 2), so each pass through the 32 stages is harder; resets the boss's aiming step ($B382 = 2, $B383 = 0) and $117C."
  },
  {
   "address": 40288,
   "type": "line",
   "text": "Sound, once a frame from the main loop. With the music on ($0FFD clear), starts any requested tune ($117D, number + 1, through set_tune at $C357) and plays the music ($BDE4). With it off: a requested tune of 1 hands the queue to the effect player; any other plays as a tune; otherwise feeds the effect player: $07C0 to voice 0, $07C9 to voice 1, an engine drone on voice 1 or 2 (alternating, $07C6): $50 when an enemy that cannot be destroyed is on screen, $4B for any other enemy, else the next of $07C2-$07C4; unless $07C1 holds voice 1, $07C8 to voice 1 (marking it busy), and while $07C7 counts, the three-effect pattern $45/$4B/$52; then plays the effects ($0406)."
  },
  {
   "address": 40311,
   "type": "line",
   "text": "$9D77-$9D8A inside sfx_queue_service, after its JMP: LDA $0FA8 / BEQ +5 and sixteen NOPs, code that nothing reaches (a test of the stage flag that was taken out)."
  },
  {
   "address": 40331,
   "type": "line",
   "text": "sfx_queue_service with the music off: tune requests, then feeding the effect queue and the engine drone to the effect player."
  },
  {
   "address": 40512,
   "type": "line",
   "text": "Stores Y in $112E and sets the count of type-1 spawns ($90AE) from the stage's entry at $FA80."
  },
  {
   "address": 40528,
   "type": "line",
   "text": "Starts a tune: A into $117D (the request sfx_queue_service acts on), stops the effects on all three voices, and clears the effect queue ($9E80)."
  },
  {
   "address": 40552,
   "type": "line",
   "text": "Queues effect $46 (the laser) on voice 0 and goes on to the extra weapon."
  },
  {
   "address": 40560,
   "type": "line",
   "text": "Queues effect $44 (the extra weapon's burst) on voice 0 and goes on to weapon 4."
  },
  {
   "address": 40568,
   "type": "line",
   "text": "Queues effect $43 (weapon 4's beams) on voice 0 and ends the frame step."
  },
  {
   "address": 40576,
   "type": "line",
   "text": "Clears the effect queue: $07C0, $07C1 and $07C5-$07C9."
  },
  {
   "address": 40595,
   "type": "line",
   "text": "Sets $43F7 and $9FD9 to 7 and clears the purchase state."
  },
  {
   "address": 40606,
   "type": "line",
   "text": "38 zero bytes, unused."
  },
  {
   "address": 40644,
   "type": "line",
   "text": "Queues effect $4A (an icon bought) on voice 1, then set_12c0_if_7 (the shield's three charges when icon 7 was bought)."
  },
  {
   "address": 40652,
   "type": "line",
   "text": "Queues effect $49 (extra life) on voice 1."
  },
  {
   "address": 40660,
   "type": "line",
   "text": "A group marked with bit 6 of its record's byte 3 has finished with no enemy escaping: stores the reduced credit count Y in $107C, queues effect $47, and spawns the next enemy."
  },
  {
   "address": 40672,
   "type": "line",
   "text": "Queues effect $51 (enemy fire) as the second request for voice 1."
  },
  {
   "address": 40680,
   "type": "line",
   "text": "Starts the death pattern ($07C7 = 1: effects $45, $4B, $52) and redraws the lives."
  },
  {
   "address": 40688,
   "type": "line",
   "text": "Queues tune 1 and sets up the 'player n' banner."
  },
  {
   "address": 40696,
   "type": "line",
   "text": "Queues tune $0C and starts game over."
  },
  {
   "address": 40704,
   "type": "line",
   "text": "The difficulty table, eight bytes copied from $FA20 by difficulty_set: the enemy fire rate by stage pair (4, 3, 3, 2, 2, 2, 1, 1 on the first pass), the count each enemy's fire counter must reach."
  },
  {
   "address": 40712,
   "type": "line",
   "text": "Enemy fire budget levels: 11, 16, 21, 26, 31, 36, 36, 36 (the most fire in flight, shots costing 5, bombs 10, bullets 1)."
  },
  {
   "address": 40720,
   "type": "line",
   "text": "Budget level by stage (0-15): 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6."
  },
  {
   "address": 40736,
   "type": "line",
   "text": "Wave-type handlers (words), indexed by type x 2: type 1 $908F; the rest zero."
  },
  {
   "address": 40737,
   "type": "line",
   "text": "High byte of wave type 0's handler (zero: none) and the rest of the wave-type table."
  },
  {
   "address": 40752,
   "type": "line",
   "text": "Spawn-type handlers (words): type 0 $90D5, type 1 $90C2; the rest zero."
  },
  {
   "address": 40753,
   "type": "line",
   "text": "High byte of spawn type 0's handler and the rest of the spawn-type table."
  },
  {
   "address": 40768,
   "type": "line",
   "text": "The attract demo's recorded joystick input, one byte every eight frames, in the port's own format (bits low when pressed: $1E up... $17 right+fire...), ending with $FF."
  },
  {
   "address": 40831,
   "type": "line",
   "text": "Animation positions of the hazard slots, seven bytes per table: $9F7F/$9F9B top row (second half), $9F86/$9FA2 top row, $9F8D/$9FA9 bottom row (second half), $9F94/$9FB0 bottom row; each pair is the current offset into the list at $D200 and the offset to restart from."
  },
  {
   "address": 40838,
   "type": "line",
   "text": "Top row, slots 1-7: the current animation offset of each hazard's lower sprite."
  },
  {
   "address": 40845,
   "type": "line",
   "text": "Bottom row, slots 8-14 (lower sprites): the current animation offset."
  },
  {
   "address": 40852,
   "type": "line",
   "text": "Bottom row, slots 1-7 (upper sprites): the current animation offset."
  },
  {
   "address": 40859,
   "type": "line",
   "text": "Top row, upper sprites: the offset to restart each animation from."
  },
  {
   "address": 40866,
   "type": "line",
   "text": "Top row, lower sprites: the restart offset."
  },
  {
   "address": 40873,
   "type": "line",
   "text": "Bottom row, lower sprites: the restart offset."
  },
  {
   "address": 40880,
   "type": "line",
   "text": "Bottom row, upper sprites: the restart offset."
  },
  {
   "address": 40887,
   "type": "line",
   "text": "The other player's stored state, swapped in at each change of turn: $9FB8-$9FB9 credits and $107D, $9FBA-$9FBE score digits, $9FBF-$9FC0 attack-pattern pointer, $9FC1-$9FC8 icon animation and $12C9, $9FC9-$9FCA icon blink, $9FCA-$9FE0 the other icon states, $9FE1-$9FE3 the aiming shifts (shared), $9FE4-$9FED the purchase state."
  },
  {
   "address": 40888,
   "type": "line",
   "text": "The other player's credits."
  },
  {
   "address": 40889,
   "type": "line",
   "text": "The other player's stage number; also the base of their score digits ($9FBA-$9FBE)."
  },
  {
   "address": 40894,
   "type": "line",
   "text": "The other player's last score digit."
  },
  {
   "address": 40895,
   "type": "line",
   "text": "The other player's attack-pattern pointer, low byte."
  },
  {
   "address": 40896,
   "type": "line",
   "text": "The other player's attack-pattern pointer, high byte."
  },
  {
   "address": 40897,
   "type": "line",
   "text": "The other player's restart position in the wave list ($12C9 swapped), and their icon store ($9FC2-$9FC8)."
  },
  {
   "address": 40904,
   "type": "line",
   "text": "The other player's last icon store byte, and the base of their blink state ($9FC9-$9FCA)."
  },
  {
   "address": 40905,
   "type": "line",
   "text": "The other player's icon blinks left."
  },
  {
   "address": 40906,
   "type": "line",
   "text": "The other player's blinking icon, and their icon flags store ($9FCB-$9FD0)."
  },
  {
   "address": 40913,
   "type": "line",
   "text": "The other player's per-icon states ($9FD2-$9FD8)."
  },
  {
   "address": 40921,
   "type": "line",
   "text": "The other player's group size and icon frame indexes ($9FDA-$9FE0)."
  },
  {
   "address": 40929,
   "type": "line",
   "text": "Aiming coarseness by level: 3, 4, 5 (patched into $92EF/$9310)."
  },
  {
   "address": 40932,
   "type": "line",
   "text": "The other player's purchase state ($9FE5-$9FE9) and four more bytes."
  },
  {
   "address": 40942,
   "type": "line",
   "text": "Pause flag: 1 while the game is paused (RUN/STOP), checked by every play routine."
  },
  {
   "address": 40943,
   "type": "line",
   "text": "Latch so that one press of RUN/STOP or fire acts once."
  },
  {
   "address": 40944,
   "type": "line",
   "text": "Completed passes through the 32 stages, current player (sets the difficulty); $9FF1 is the other player's."
  },
  {
   "address": 40945,
   "type": "line",
   "text": "The other player's completed passes through the game."
  },
  {
   "address": 40946,
   "type": "line",
   "text": "$9FF2-$9FFF: two zero bytes and the PETSCII text 'S:DEMO DELTA', a disk-drive scratch command (delete the file DEMO DELTA). No instruction reads it; left in memory from the game's development."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "$A000-$A07F: eight short records ($F0 5D 76 BD, a pointer into this block, $FF, zeros) that no table or instruction refers to. They look like an older form of the path lists at $B500; not used."
  },
  {
   "address": 41088,
   "type": "line",
   "text": "Pointers to the 58 velocity lists ($B000-$B385), one word each, indexed by the first byte of a path segment ($A880). The rest of the page is zero."
  },
  {
   "address": 41089,
   "type": "line",
   "text": "High bytes (with $A080) of the velocity-list pointers, interleaved."
  },
  {
   "address": 41216,
   "type": "line",
   "text": "Hit points for an enemy by its record's byte 0 (x 7 + the enemy's place in its group $129C): 0 or 1 dies at the first hit, more take several, $FF cannot be destroyed. enemy_spawn copies it into $1240 + slot."
  },
  {
   "address": 41728,
   "type": "line",
   "text": "Pointers to the path lists at $B500-$B7B4, one word per path (128 words)."
  },
  {
   "address": 41729,
   "type": "line",
   "text": "High bytes (with $A300) of the path-list pointers, interleaved."
  },
  {
   "address": 41984,
   "type": "line",
   "text": "Path number for an enemy by its record's byte 5 (x 7 + place in group), an index into path_ptrs."
  },
  {
   "address": 42496,
   "type": "line",
   "text": "Start Y for an enemy by its record's byte 6 (x 7 + place in group)."
  },
  {
   "address": 42752,
   "type": "line",
   "text": "Spawn delay (frames) for an enemy by its record's byte 7 (x 7 + place in group); $A701 + n is also wave type 1's spacing."
  },
  {
   "address": 42753,
   "type": "line",
   "text": "Wave type 1's spacing by place, read as $A701 + n (the delay table offset by one)."
  },
  {
   "address": 43008,
   "type": "line",
   "text": "Sprite colours for an enemy by the low nibble of its record's byte 2 (x 8 + place in group)."
  },
  {
   "address": 43009,
   "type": "line",
   "text": "The first colour of each colour group, read as $A801 + 8 x colour + place."
  },
  {
   "address": 43136,
   "type": "line",
   "text": "Path segments, four bytes each, $A880-$AAFB: 0 the velocity list (index into velocity_list_ptrs), 1 the enemy's speed/fire byte ($12E9: bit 6 may fire), 2 an animation offset added to the enemy's frame list, 3 the frames per velocity step (bits 0-6) and bit 7: change form when killed (copied to $1219 at $8369, tested at $8449)."
  },
  {
   "address": 43776,
   "type": "line",
   "text": "The attack-wave records, eight bytes each ($AB00-$AFEF, 158 records), indexed by the stage's wave list: the enemy type (animation), a parameter, flags and colour, flags with the group size and points, unused, the path, the start Y and the spawn spacing (see enemy_spawn)."
  },
  {
   "address": 44800,
   "type": "line",
   "text": "Wave records $80-$9D ($AF00-$AFEF), the last ones used by the later stages and the boss ($6E is at $AE70)."
  },
  {
   "address": 45056,
   "type": "line",
   "text": "Velocity list 0 ($B000-$B002): 1 step of (dx, dy): (+4,+0); then $80."
  },
  {
   "address": 45060,
   "type": "line",
   "text": "Velocity list 1 ($B004-$B028): 18 steps of (dx, dy): (+3,+0), (+2,-1), (+2,-2), (+1,-2), (+0,-3), (-1,-2), (-2,-2), (-2,-1), (-3,+0) x2, (-2,+1), (-2,+2), (-1,+2), ...; then $80."
  },
  {
   "address": 45098,
   "type": "line",
   "text": "Velocity list 2 ($B02A-$B04E): 18 steps of (dx, dy): (+3,+0), (+2,+1), (+2,+2), (+1,+2), (+0,+3), (-1,+2), (-2,+2), (-2,+1), (-3,+0) x2, (-2,-1), (-2,-2), (-1,-2), ...; then $80."
  },
  {
   "address": 45136,
   "type": "line",
   "text": "Velocity list 3 ($B050-$B070): 16 steps of (dx, dy): (+0,+2), (+1,+2), (+2,+2), (+2,+1), (+2,+0), (+2,-1), (+2,-2), (+1,-2), (+0,-2), (+1,-2), (+2,-2), (+2,-1), ...; then $80."
  },
  {
   "address": 45170,
   "type": "line",
   "text": "Velocity list 4 ($B072-$B092): 16 steps of (dx, dy): (+1,-2), (+2,-2), (+2,-1), (+2,+0), (+2,+1), (+2,+2), (+1,+2), (+0,+2), (+1,+2), (+2,+2), (+2,+1), (+2,+0), ...; then $80."
  },
  {
   "address": 45204,
   "type": "line",
   "text": "Velocity list 5 ($B094-$B096): 1 step of (dx, dy): (-4,+1); then $80."
  },
  {
   "address": 45208,
   "type": "line",
   "text": "Velocity list 6 ($B098-$B09A): 1 step of (dx, dy): (-4,+0); then $80."
  },
  {
   "address": 45212,
   "type": "line",
   "text": "Velocity list 7 ($B09C-$B09E): 1 step of (dx, dy): (+1,+0); then $80."
  },
  {
   "address": 45216,
   "type": "line",
   "text": "Velocity list 8 ($B0A0-$B0A2): 1 step of (dx, dy): (+1,-1); then $80."
  },
  {
   "address": 45220,
   "type": "line",
   "text": "Velocity list 9 ($B0A4-$B0A6): 1 step of (dx, dy): (+1,+1); then $80."
  },
  {
   "address": 45224,
   "type": "line",
   "text": "Velocity list 10 ($B0A8-$B0AA): 1 step of (dx, dy): (+0,-4); then $80."
  },
  {
   "address": 45228,
   "type": "line",
   "text": "Velocity list 11 ($B0AC-$B0AE): 1 step of (dx, dy): (+0,+4); then $80."
  },
  {
   "address": 45232,
   "type": "line",
   "text": "Velocity list 12 ($B0B0-$B0C4): 10 steps of (dx, dy): (+0,-2), (+1,-2), (+2,-2), (+2,-1), (+2,+0) x2, (+2,+1), (+2,+2), (+1,+2), (+0,+2); then $80."
  },
  {
   "address": 45254,
   "type": "line",
   "text": "Velocity list 13 ($B0C6-$B0DA): 10 steps of (dx, dy): (+0,+2), (-1,+2), (-2,+2), (-2,+1), (-2,+0) x2, (-2,-1), (-2,-2), (-1,-2), (+0,-2); then $80."
  },
  {
   "address": 45276,
   "type": "line",
   "text": "Velocity list 14 ($B0DC-$B0F2): 11 steps of (dx, dy): (-2,+0) x2, (-2,-1), (-2,-2), (-1,-2), (+0,-2), (+1,-2), (+2,-2), (+2,-1), (+2,+0) x2; then $80."
  },
  {
   "address": 45300,
   "type": "line",
   "text": "Velocity list 15 ($B0F4-$B118): 18 steps of (dx, dy): (+6,+0), (+4,+2), (+4,+4), (+2,+4), (+0,+6), (-2,+4), (-4,+4), (-4,+2), (-6,+0) x2, (-4,-2), (-4,-4), (-2,-4), ...; then $80."
  },
  {
   "address": 45338,
   "type": "line",
   "text": "Velocity list 16 ($B11A-$B13E): 18 steps of (dx, dy): (+9,+0), (+6,+3), (+6,+6), (+3,+6), (+0,+9), (-3,+6), (-6,+6), (-6,+3), (-9,+0) x2, (-6,-3), (-6,-6), (-3,-6), ...; then $80."
  },
  {
   "address": 45376,
   "type": "line",
   "text": "Velocity list 17 ($B140-$B164): 18 steps of (dx, dy): (-3,+0), (-2,-1), (-2,-2), (-1,-2), (+0,-3), (+1,-2), (+2,-2), (+2,-1), (+3,+0) x2, (+2,+1), (+2,+2), (+1,+2), ...; then $80."
  },
  {
   "address": 45414,
   "type": "line",
   "text": "Velocity list 18 ($B166-$B18A): 18 steps of (dx, dy): (-6,+0), (-4,-2), (-4,-4), (-2,-4), (+0,-6), (+2,-4), (+4,-4), (+4,-2), (+6,+0) x2, (+4,+2), (+4,+4), (+2,+4), ...; then $80."
  },
  {
   "address": 45452,
   "type": "line",
   "text": "Velocity list 19 ($B18C-$B1B0): 18 steps of (dx, dy): (-9,+0), (-6,-3), (-6,-6), (-3,-6), (+0,-9), (+3,-6), (+6,-6), (+6,-3), (+9,+0) x2, (+6,+3), (+6,+6), (+3,+6), ...; then $80."
  },
  {
   "address": 45490,
   "type": "line",
   "text": "Velocity list 20 ($B1B2-$B1B4): 1 step of (dx, dy): (+0,+0); then $80."
  },
  {
   "address": 45494,
   "type": "line",
   "text": "Velocity list 21 ($B1B6-$B1D6): 16 steps of (dx, dy): (+1,+0), (+2,+0), (+3,+0), (+4,+0), (+5,+0), (+4,+0), (+3,+0), (+2,+0), (+1,+0), (-1,+0), (-2,+0), (-3,+0), ...; then $80."
  },
  {
   "address": 45528,
   "type": "line",
   "text": "Velocity list 22 ($B1D8-$B1F8): 16 steps of (dx, dy): (+1,+4), (+2,+3), (+3,+2), (+4,+1), (+5,-1), (+4,-2), (+3,-3), (+2,-4), (+1,-4), (-1,-3), (-2,-2), (-3,-1), ...; then $80."
  },
  {
   "address": 45562,
   "type": "line",
   "text": "Velocity list 23 ($B1FA-$B20A): 8 steps of (dx, dy): (+1,-4), (+1,-3), (+1,-2), (+1,-1), (+1,+1), (+1,+2), (+1,+3), (+1,+4); then $80."
  },
  {
   "address": 45580,
   "type": "line",
   "text": "Velocity list 24 ($B20C-$B224): 12 steps of (dx, dy): (+1,-6), (+1,-5), (+1,-4), (+1,-3), (+1,-2), (+1,-1), (+1,+1), (+1,+2), (+1,+3), (+1,+4), (+1,+5), (+1,+6); then $80."
  },
  {
   "address": 45606,
   "type": "line",
   "text": "Velocity list 25 ($B226-$B228): 1 step of (dx, dy): (+6,+0); then $80."
  },
  {
   "address": 45610,
   "type": "line",
   "text": "Velocity list 26 ($B22A-$B22C): 1 step of (dx, dy): (-2,-1); then $80."
  },
  {
   "address": 45614,
   "type": "line",
   "text": "Velocity list 27 ($B22E-$B230): 1 step of (dx, dy): (-2,+1); then $80."
  },
  {
   "address": 45618,
   "type": "line",
   "text": "Velocity list 28 ($B232-$B252): 16 steps of (dx, dy): (+0,+2), (-1,+2), (-2,+2), (-2,+1), (-2,+0), (-2,-1), (-2,-2), (-1,-2), (+0,-2), (-1,-2), (-2,-2), (-2,-1), ...; then $80."
  },
  {
   "address": 45652,
   "type": "line",
   "text": "Velocity list 29 ($B254-$B256): 1 step of (dx, dy): (+2,+1); then $80."
  },
  {
   "address": 45656,
   "type": "line",
   "text": "Velocity list 30 ($B258-$B25A): 1 step of (dx, dy): (+2,-1); then $80."
  },
  {
   "address": 45660,
   "type": "line",
   "text": "Velocity list 31 ($B25C-$B27C): 16 steps of (dx, dy): (+0,+4), (+0,+3), (+0,+2), (+0,+1), (+0,-1), (+0,-2), (+0,-3), (+0,-4) x2, (+0,-3), (+0,-2), (+0,-1), (+0,+1), ...; then $80."
  },
  {
   "address": 45694,
   "type": "line",
   "text": "Velocity list 32 ($B27E-$B280): 1 step of (dx, dy): (+3,+1); then $80."
  },
  {
   "address": 45698,
   "type": "line",
   "text": "Velocity list 33 ($B282-$B284): 1 step of (dx, dy): (+3,-1); then $80."
  },
  {
   "address": 45702,
   "type": "line",
   "text": "Velocity list 34 ($B286-$B288): 1 step of (dx, dy): (+4,+1); then $80."
  },
  {
   "address": 45706,
   "type": "line",
   "text": "Velocity list 35 ($B28A-$B28C): 1 step of (dx, dy): (+4,-1); then $80."
  },
  {
   "address": 45710,
   "type": "line",
   "text": "Velocity list 36 ($B28E-$B290): 1 step of (dx, dy): (+1,+3); then $80."
  },
  {
   "address": 45714,
   "type": "line",
   "text": "Velocity list 37 ($B292-$B2B2): 16 steps of (dx, dy): (+0,-4), (+0,-3), (+0,-2), (+0,-1), (+0,+1), (+0,+2), (+0,+3), (+0,+4) x2, (+0,+3), (+0,+2), (+0,+1), (+0,-1), ...; then $80."
  },
  {
   "address": 45748,
   "type": "line",
   "text": "Velocity list 38 ($B2B4-$B2B6): 1 step of (dx, dy): (-4,+0); then $80."
  },
  {
   "address": 45752,
   "type": "line",
   "text": "Velocity list 39 ($B2B8-$B2D0): 12 steps of (dx, dy): (+6,+0), (+5,+0), (+4,+0), (+3,+0), (+2,+0), (+1,+0), (-1,+0), (-2,+0), (-3,+0), (-4,+0), (-5,+0), (-6,+0); then $80."
  },
  {
   "address": 45778,
   "type": "line",
   "text": "Velocity list 40 ($B2D2-$B2F2): 16 steps of (dx, dy): (+8,+1), (+7,+1), (+6,+1), (+5,+1), (+4,+1), (+3,+1), (+2,+1), (+1,+1), (-1,+1), (-2,+1), (-3,+1), (-4,+1), ...; then $80."
  },
  {
   "address": 45812,
   "type": "line",
   "text": "Velocity list 41 ($B2F4-$B314): 16 steps of (dx, dy): (+8,-1), (+7,-1), (+6,-1), (+5,-1), (+4,-1), (+3,-1), (+2,-1), (+1,-1), (-1,-1), (-2,-1), (-3,-1), (-4,-1), ...; then $80."
  },
  {
   "address": 45846,
   "type": "line",
   "text": "Velocity list 42 ($B316-$B31C): 3 steps of (dx, dy): (+4,+0), (+0,+0) x2; then $80."
  },
  {
   "address": 45854,
   "type": "line",
   "text": "Velocity list 43 ($B31E-$B324): 3 steps of (dx, dy): (+0,-4), (+0,+0) x2; then $80."
  },
  {
   "address": 45862,
   "type": "line",
   "text": "Velocity list 44 ($B326-$B32C): 3 steps of (dx, dy): (+0,+4), (+0,+0) x2; then $80."
  },
  {
   "address": 45870,
   "type": "line",
   "text": "Velocity list 45 ($B32E-$B330): 1 step of (dx, dy): (+6,+6); then $80."
  },
  {
   "address": 45874,
   "type": "line",
   "text": "Velocity list 46 ($B332-$B334): 1 step of (dx, dy): (+4,+4); then $80."
  },
  {
   "address": 45878,
   "type": "line",
   "text": "Velocity list 47 ($B336-$B344): 7 steps of (dx, dy): (+0,+6), (+2,+4), (+4,+2), (+4,+0), (+4,-2), (+2,-4), (+0,-6); then $80."
  },
  {
   "address": 45894,
   "type": "line",
   "text": "Velocity list 48 ($B346-$B354): 7 steps of (dx, dy): (+0,-6), (+2,-4), (+4,-2), (+4,+0), (+4,+2), (+2,+4), (+0,+6); then $80."
  },
  {
   "address": 45910,
   "type": "line",
   "text": "Velocity list 49 ($B356-$B358): 1 step of (dx, dy): (-4,-1); then $80."
  },
  {
   "address": 45914,
   "type": "line",
   "text": "Velocity list 50 ($B35A-$B35C): 1 step of (dx, dy): (+4,-4); then $80."
  },
  {
   "address": 45918,
   "type": "line",
   "text": "Velocity list 51 ($B35E-$B36C): 7 steps of (dx, dy): (+4,+1), (+3,+2), (+2,+3), (+1,+4), (-1,+4), (-2,+3), (-3,+2); then $80."
  },
  {
   "address": 45934,
   "type": "line",
   "text": "Velocity list 52 ($B36E-$B370): 1 step of (dx, dy): (+8,+0); then $80."
  },
  {
   "address": 45938,
   "type": "line",
   "text": "Velocity list 53 ($B372-$B374): 1 step of (dx, dy): (+3,+0); then $80."
  },
  {
   "address": 45942,
   "type": "line",
   "text": "Velocity list 54 ($B376-$B378): 1 step of (dx, dy): (+2,+0); then $80."
  },
  {
   "address": 45946,
   "type": "line",
   "text": "Velocity list 55 ($B37A-$B37C): 1 step of (dx, dy): (+4,+2); then $80."
  },
  {
   "address": 45950,
   "type": "line",
   "text": "Velocity list 56 ($B37E-$B380): 1 step of (dx, dy): (+4,-2); then $80."
  },
  {
   "address": 45954,
   "type": "line",
   "text": "The boss's aiming step, dx: rewritten by enemy_ai_step to point slot 7 at the ship (2 or $FE, or 0), reset to 2 by difficulty_set."
  },
  {
   "address": 45955,
   "type": "line",
   "text": "The boss's aiming step, dy (with $B382), followed by the end of the velocity lists."
  },
  {
   "address": 46080,
   "type": "line",
   "text": "A page of zeros ($B400 holds 1 and nothing reads it)."
  },
  {
   "address": 46336,
   "type": "line",
   "text": "Path 0 ($B500): segments 0, then on to $B500 (itself: a loop)."
  },
  {
   "address": 46340,
   "type": "line",
   "text": "Path 1 ($B504): segments 1, then on to $B504 (itself: a loop)."
  },
  {
   "address": 46344,
   "type": "line",
   "text": "Path 2 ($B508): segments 2, 3, 2, 3, 4, then on to $B50C."
  },
  {
   "address": 46352,
   "type": "line",
   "text": "Path 3 ($B510): segments 6, 7, then on to $B510 (itself: a loop)."
  },
  {
   "address": 46357,
   "type": "line",
   "text": "Path 4 ($B515): segments 8, then on to $B515 (itself: a loop)."
  },
  {
   "address": 46361,
   "type": "line",
   "text": "Path 5 ($B519): segments 9, 10, then on to $B519 (itself: a loop)."
  },
  {
   "address": 46366,
   "type": "line",
   "text": "Path 6 ($B51E): segments 2, 3, 2, then on to $B51E (itself: a loop)."
  },
  {
   "address": 46372,
   "type": "line",
   "text": "Path 7 ($B524): segments 11, 18, then on to $B525."
  },
  {
   "address": 46377,
   "type": "line",
   "text": "Path 8 ($B529): segments 12, 18, then on to $B52A."
  },
  {
   "address": 46382,
   "type": "line",
   "text": "Path 9 ($B52E): segments 13, 18, then on to $B52F."
  },
  {
   "address": 46387,
   "type": "line",
   "text": "Path 10 ($B533): segments 14, 18, then on to $B534."
  },
  {
   "address": 46392,
   "type": "line",
   "text": "Path 11 ($B538): segments 15, 18, then on to $B539."
  },
  {
   "address": 46397,
   "type": "line",
   "text": "Path 12 ($B53D): segments 16, 18, then on to $B53E."
  },
  {
   "address": 46402,
   "type": "line",
   "text": "Path 13 ($B542): segments 17, 18, then on to $B543."
  },
  {
   "address": 46407,
   "type": "line",
   "text": "Path 14 ($B547): segments 17, 18, 17, 19, then on to $B547 (itself: a loop)."
  },
  {
   "address": 46414,
   "type": "line",
   "text": "Path 15 ($B54E): segments 20, 20, 20, 21, 21, 22, then on to $B553."
  },
  {
   "address": 46423,
   "type": "line",
   "text": "Path 16 ($B557): segments 23, 24, then on to $B558."
  },
  {
   "address": 46428,
   "type": "line",
   "text": "Path 17 ($B55C): segments 23, 25, then on to $B55D."
  },
  {
   "address": 46433,
   "type": "line",
   "text": "Path 18 ($B561): segments 23, 26, then on to $B562."
  },
  {
   "address": 46438,
   "type": "line",
   "text": "Path 19 ($B566): segments 23, 27, then on to $B567."
  },
  {
   "address": 46443,
   "type": "line",
   "text": "Path 20 ($B56B): segments 23, 28, then on to $B56C."
  },
  {
   "address": 46448,
   "type": "line",
   "text": "Path 21 ($B570): segments 23, 29, then on to $B571."
  },
  {
   "address": 46453,
   "type": "line",
   "text": "Path 22 ($B575): segments 23, 30, then on to $B576."
  },
  {
   "address": 46458,
   "type": "line",
   "text": "Path 23 ($B57A): segments 31, then on to $B57A (itself: a loop)."
  },
  {
   "address": 46462,
   "type": "line",
   "text": "Path 24 ($B57E): segments 32, then on to $B57E (itself: a loop)."
  },
  {
   "address": 46467,
   "type": "line",
   "text": "Path 25 ($B583): segments 34, 34, 36, 34, 35, then on to $B583 (itself: a loop)."
  },
  {
   "address": 46475,
   "type": "line",
   "text": "Path 26 ($B58B): segments 37, 39, 38, 39, then on to $B58B (itself: a loop)."
  },
  {
   "address": 46482,
   "type": "line",
   "text": "Path 27 ($B592): segments 40, then on to $B592 (itself: a loop)."
  },
  {
   "address": 46486,
   "type": "line",
   "text": "Path 28 ($B596): segments 41, then on to $B596 (itself: a loop)."
  },
  {
   "address": 46490,
   "type": "line",
   "text": "Path 29 ($B59A): segments 42, then on to $B59A (itself: a loop)."
  },
  {
   "address": 46494,
   "type": "line",
   "text": "Path 30 ($B59E): segments 43, then on to $B59E (itself: a loop)."
  },
  {
   "address": 46504,
   "type": "line",
   "text": "Path 32 ($B5A8): segments 47, 46, then on to $B5A9."
  },
  {
   "address": 46509,
   "type": "line",
   "text": "Path 33 ($B5AD): segments 48, 46, then on to $B5AE."
  },
  {
   "address": 46514,
   "type": "line",
   "text": "Path 34 ($B5B2): segments 49, 46, then on to $B5B3."
  },
  {
   "address": 46519,
   "type": "line",
   "text": "Path 35 ($B5B7): segments 50, 46, then on to $B5B8."
  },
  {
   "address": 46524,
   "type": "line",
   "text": "Path 36 ($B5BC): segments 51, 46, then on to $B5BD."
  },
  {
   "address": 46529,
   "type": "line",
   "text": "Path 37 ($B5C1): segments 52, 46, then on to $B5C2."
  },
  {
   "address": 46534,
   "type": "line",
   "text": "Path 38 ($B5C6): segments 46, then on to $B5C6 (itself: a loop)."
  },
  {
   "address": 46538,
   "type": "line",
   "text": "Path 39 ($B5CA): segments 53, 54, then on to $B5CA (itself: a loop)."
  },
  {
   "address": 46543,
   "type": "line",
   "text": "Path 40 ($B5CF): segments 55, 56, 57, 58, then on to $B5CF (itself: a loop)."
  },
  {
   "address": 46550,
   "type": "line",
   "text": "Path 41 ($B5D6): segments 59, then on to $B5D6 (itself: a loop)."
  },
  {
   "address": 46554,
   "type": "line",
   "text": "Path 42 ($B5DA): segments 60, then on to $B5DA (itself: a loop)."
  },
  {
   "address": 46558,
   "type": "line",
   "text": "Path 43 ($B5DE): segments 61, then on to $B5DE (itself: a loop)."
  },
  {
   "address": 46562,
   "type": "line",
   "text": "Path 44 ($B5E2): segments 62, then on to $B5E2 (itself: a loop)."
  },
  {
   "address": 46566,
   "type": "line",
   "text": "Path 45 ($B5E6): segments 127, 44, then on to $B5E7."
  },
  {
   "address": 46571,
   "type": "line",
   "text": "Path 46 ($B5EB): segments 70, 63, 4, then on to $B5ED."
  },
  {
   "address": 46577,
   "type": "line",
   "text": "Path 47 ($B5F1): segments 70, 64, 4, then on to $B5F3."
  },
  {
   "address": 46583,
   "type": "line",
   "text": "Path 48 ($B5F7): segments 70, 65, 4, then on to $B5F9."
  },
  {
   "address": 46589,
   "type": "line",
   "text": "Path 49 ($B5FD): segments 70, 66, 4, then on to $B5FF."
  },
  {
   "address": 46595,
   "type": "line",
   "text": "Path 50 ($B603): segments 70, 67, 4, then on to $B605."
  },
  {
   "address": 46601,
   "type": "line",
   "text": "Path 51 ($B609): segments 70, 68, 4, then on to $B60B."
  },
  {
   "address": 46607,
   "type": "line",
   "text": "Path 52 ($B60F): segments 70, 69, 4, then on to $B611."
  },
  {
   "address": 46613,
   "type": "line",
   "text": "Path 53 ($B615): segments 71, 78, 78, 78, 78, 80, then on to $B61A."
  },
  {
   "address": 46622,
   "type": "line",
   "text": "Path 54 ($B61E): segments 72, 79, 79, 79, 79, 80, then on to $B623."
  },
  {
   "address": 46631,
   "type": "line",
   "text": "Path 55 ($B627): segments 73, 78, 78, 78, 78, 80, then on to $B62C."
  },
  {
   "address": 46640,
   "type": "line",
   "text": "Path 56 ($B630): segments 74, 79, 79, 79, 79, 80, then on to $B635."
  },
  {
   "address": 46649,
   "type": "line",
   "text": "Path 57 ($B639): segments 75, 78, 78, 78, 78, 80, then on to $B63E."
  },
  {
   "address": 46658,
   "type": "line",
   "text": "Path 58 ($B642): segments 76, 79, 79, 79, 79, 80, then on to $B647."
  },
  {
   "address": 46667,
   "type": "line",
   "text": "Path 59 ($B64B): segments 77, 78, 78, 78, 78, 80, then on to $B650."
  },
  {
   "address": 46676,
   "type": "line",
   "text": "Path 60 ($B654): segments 81, 82, then on to $B654 (itself: a loop)."
  },
  {
   "address": 46681,
   "type": "line",
   "text": "Path 61 ($B659): segments 15, 83, then on to $B659 (itself: a loop)."
  },
  {
   "address": 46686,
   "type": "line",
   "text": "Path 62 ($B65E): segments 84, 85, then on to $B65E (itself: a loop)."
  },
  {
   "address": 46691,
   "type": "line",
   "text": "Path 63 ($B663): segments 23, then on to $B663 (itself: a loop)."
  },
  {
   "address": 46695,
   "type": "line",
   "text": "Path 64 ($B667): segments 86, 88, 87, 4, then on to $B66A."
  },
  {
   "address": 46702,
   "type": "line",
   "text": "Path 65 ($B66E): segments 89, 85, then on to $B66F."
  },
  {
   "address": 46707,
   "type": "line",
   "text": "Path 66 ($B673): segments 90, 85, then on to $B674."
  },
  {
   "address": 46712,
   "type": "line",
   "text": "Path 67 ($B678): segments 91, 85, then on to $B679."
  },
  {
   "address": 46717,
   "type": "line",
   "text": "Path 68 ($B67D): segments 92, 85, then on to $B67E."
  },
  {
   "address": 46722,
   "type": "line",
   "text": "Path 69 ($B682): segments 93, 85, then on to $B683."
  },
  {
   "address": 46727,
   "type": "line",
   "text": "Path 70 ($B687): segments 94, 85, then on to $B688."
  },
  {
   "address": 46732,
   "type": "line",
   "text": "Path 71 ($B68C): segments 95, 85, then on to $B68D."
  },
  {
   "address": 46737,
   "type": "line",
   "text": "Path 72 ($B691): segments 96, 85, then on to $B692."
  },
  {
   "address": 46742,
   "type": "line",
   "text": "Path 73 ($B696): segments 97, 85, then on to $B396."
  },
  {
   "address": 46747,
   "type": "line",
   "text": "Path 74 ($B69B): segments 98, 85, then on to $B69B (itself: a loop)."
  },
  {
   "address": 46752,
   "type": "line",
   "text": "Path 75 ($B6A0): segments 99, then on to $B6A0 (itself: a loop)."
  },
  {
   "address": 46756,
   "type": "line",
   "text": "Path 76 ($B6A4): segments 100, 101, 101, 101, 100, 102, 102, 102, then on to $B6A4 (itself: a loop)."
  },
  {
   "address": 46767,
   "type": "line",
   "text": "Path 77 ($B6AF): segments 2, 19, 2, then on to $B6AF (itself: a loop)."
  },
  {
   "address": 46773,
   "type": "line",
   "text": "Path 78 ($B6B5): segments 50, 103, 50, then on to $B6B5 (itself: a loop)."
  },
  {
   "address": 46779,
   "type": "line",
   "text": "Path 79 ($B6BB): segments 104, 105, 49, then on to $B6BD."
  },
  {
   "address": 46785,
   "type": "line",
   "text": "Path 80 ($B6C1): segments 2, 106, 2, then on to $B6C1 (itself: a loop)."
  },
  {
   "address": 46791,
   "type": "line",
   "text": "Path 81 ($B6C7): segments 107, 18, 2, then on to $B6C9."
  },
  {
   "address": 46797,
   "type": "line",
   "text": "Path 82 ($B6CD): segments 108, 109, then on to $B6CD (itself: a loop)."
  },
  {
   "address": 46802,
   "type": "line",
   "text": "Path 83 ($B6D2): segments 110, then on to $B6D2 (itself: a loop)."
  },
  {
   "address": 46806,
   "type": "line",
   "text": "Path 84 ($B6D6): segments 111, then on to $B6D6 (itself: a loop)."
  },
  {
   "address": 46810,
   "type": "line",
   "text": "Path 85 ($B6DA): segments 112, then on to $B6DA (itself: a loop)."
  },
  {
   "address": 46814,
   "type": "line",
   "text": "Path 86 ($B6DE): segments 113, then on to $B6DE (itself: a loop)."
  },
  {
   "address": 46818,
   "type": "line",
   "text": "Path 87 ($B6E2): segments 114, then on to $B6E2 (itself: a loop)."
  },
  {
   "address": 46822,
   "type": "line",
   "text": "Path 88 ($B6E6): segments 115, then on to $B6E6 (itself: a loop)."
  },
  {
   "address": 46826,
   "type": "line",
   "text": "Path 89 ($B6EA): segments 116, then on to $B6EA (itself: a loop)."
  },
  {
   "address": 46830,
   "type": "line",
   "text": "Path 90 ($B6EE): segments 2, 117, 4, then on to $B6F0."
  },
  {
   "address": 46836,
   "type": "line",
   "text": "Path 91 ($B6F4): segments 118, then on to $B6F4 (itself: a loop)."
  },
  {
   "address": 46840,
   "type": "line",
   "text": "Path 92 ($B6F8): segments 119, then on to $B6F8 (itself: a loop)."
  },
  {
   "address": 46844,
   "type": "line",
   "text": "Path 93 ($B6FC): segments 17, 120, 17, 121, then on to $B6FC (itself: a loop)."
  },
  {
   "address": 46851,
   "type": "line",
   "text": "Path 94 ($B703): segments 17, 122, 17, 123, then on to $B703 (itself: a loop)."
  },
  {
   "address": 46858,
   "type": "line",
   "text": "Path 95 ($B70A): segments 124, then on to $B70A (itself: a loop)."
  },
  {
   "address": 46862,
   "type": "line",
   "text": "Path 96 ($B70E): segments 125, then on to $B70E (itself: a loop)."
  },
  {
   "address": 46866,
   "type": "line",
   "text": "Path 97 ($B712): segments 126, then on to $B712 (itself: a loop)."
  },
  {
   "address": 46870,
   "type": "line",
   "text": "Path 98 ($B716): segments 128, then on to $B716 (itself: a loop)."
  },
  {
   "address": 46874,
   "type": "line",
   "text": "Path 99 ($B71A): segments 129, then on to $B71A (itself: a loop)."
  },
  {
   "address": 46878,
   "type": "line",
   "text": "Path 100 ($B71E): segments 130, then on to $B71E (itself: a loop)."
  },
  {
   "address": 46882,
   "type": "line",
   "text": "Path 101 ($B722): segments 131, then on to $B722 (itself: a loop)."
  },
  {
   "address": 46886,
   "type": "line",
   "text": "Path 102 ($B726): segments 15, 26, then on to $B726 (itself: a loop)."
  },
  {
   "address": 46891,
   "type": "line",
   "text": "Path 103 ($B72B): segments 15, 132, then on to $B72B (itself: a loop)."
  },
  {
   "address": 46896,
   "type": "line",
   "text": "Path 104 ($B730): segments 17, 61, then on to $B730 (itself: a loop)."
  },
  {
   "address": 46901,
   "type": "line",
   "text": "Path 105 ($B735): segments 17, 61, 61, 61, then on to $B735 (itself: a loop)."
  },
  {
   "address": 46908,
   "type": "line",
   "text": "Path 106 ($B73C): segments 107, 0, then on to $B83D."
  },
  {
   "address": 46913,
   "type": "line",
   "text": "Path 107 ($B741): segments 133, 17, 134, 2, then on to $B741 (itself: a loop)."
  },
  {
   "address": 46920,
   "type": "line",
   "text": "Path 108 ($B748): segments 135, 17, 136, 2, then on to $B748 (itself: a loop)."
  },
  {
   "address": 46927,
   "type": "line",
   "text": "Path 109 ($B74F): segments 137, 138, then on to $B750."
  },
  {
   "address": 46932,
   "type": "line",
   "text": "Path 110 ($B754): segments 139, 140, then on to $B755."
  },
  {
   "address": 46937,
   "type": "line",
   "text": "Path 111 ($B759): segments 141, 142, then on to $B75A."
  },
  {
   "address": 46942,
   "type": "line",
   "text": "Path 112 ($B75E): segments 143, 144, then on to $B75F."
  },
  {
   "address": 46947,
   "type": "line",
   "text": "Path 113 ($B763): segments 145, 146, then on to $B764."
  },
  {
   "address": 46952,
   "type": "line",
   "text": "Path 114 ($B768): segments 147, 148, then on to $B769."
  },
  {
   "address": 46957,
   "type": "line",
   "text": "Path 115 ($B76D): segments 149, 150, then on to $B76E."
  },
  {
   "address": 46962,
   "type": "line",
   "text": "Path 116 ($B772): segments 151, then on to $B772 (itself: a loop)."
  },
  {
   "address": 46966,
   "type": "line",
   "text": "Path 117 ($B776): segments 152, then on to $B776 (itself: a loop)."
  },
  {
   "address": 46970,
   "type": "line",
   "text": "Path 118 ($B77A): segments 154, then on to $B77A (itself: a loop)."
  },
  {
   "address": 46974,
   "type": "line",
   "text": "Path 119 ($B77E): segments 6, 9, then on to $B77E (itself: a loop)."
  },
  {
   "address": 46979,
   "type": "line",
   "text": "Path 120 ($B783): segments 7, 10, then on to $B783 (itself: a loop)."
  },
  {
   "address": 46984,
   "type": "line",
   "text": "Path 121 ($B788): segments 10, 6, 9, 7, then on to $B789."
  },
  {
   "address": 46991,
   "type": "line",
   "text": "Path 122 ($B78F): segments 7, 10, 10, 7, then on to $B78F (itself: a loop)."
  },
  {
   "address": 46998,
   "type": "line",
   "text": "Path 123 ($B796): segments 71, then on to $B796 (itself: a loop)."
  },
  {
   "address": 47002,
   "type": "line",
   "text": "Path 124 ($B79A): segments 23, 24, 25, 26, then on to $B79A (itself: a loop)."
  },
  {
   "address": 47009,
   "type": "line",
   "text": "Path 125 ($B7A1): segments 61, 155, 61, then on to $B7A1 (itself: a loop)."
  },
  {
   "address": 47015,
   "type": "line",
   "text": "Path 126 ($B7A7): segments 156, then on to $B7A7 (itself: a loop)."
  },
  {
   "address": 47019,
   "type": "line",
   "text": "Path 127 ($B7AB): segments 157, then on to $B7AB (itself: a loop)."
  },
  {
   "address": 47023,
   "type": "line",
   "text": "Path 31 ($B7AF): a list reached only from the path table's entry 31."
  },
  {
   "address": 47104,
   "type": "line",
   "text": "Wave lists for stages 0-21: wave record numbers in order ($FF ends a stage), indexed by $129A; read through the operand at $8089/$808A."
  },
  {
   "address": 47360,
   "type": "line",
   "text": "Wave lists for stages 22-31 and the demo, as stage_waves_a. $B9FF is used by the unreached cheat at $BA00 as a key latch."
  },
  {
   "address": 47505,
   "type": "line",
   "text": "Stage waves, second list's tail ($B991-$B9FE): the demo's wave list (read from $B991) and the last stages' entries."
  },
  {
   "address": 47615,
   "type": "line",
   "text": "Key latch of the unreached cheat at $BA00."
  },
  {
   "address": 47616,
   "type": "line",
   "text": "$BA00-$BA4B: a routine no instruction reaches, written to replace the jump to ship_move: F3 held sets the lives to 3; F5 toggles two code patches, the enemy-fire test in ship_hit_by_fire ($2BC9: 0 means enemy fire never hits) and the collision bit in ship_touch_icons ($2BDA), using $B9FF as the key latch; then ship_move. A trainer left in the code, not active in this image."
  },
  {
   "address": 47692,
   "type": "line",
   "text": "Zeros up to the music patterns at $BC00."
  },
  {
   "address": 48128,
   "type": "line",
   "text": "Music patterns 0-12 of the in-game and title music ($BC00-$BDDA), the part of the pattern store that lies below the player; the rest are at $C7CA-$CFF2. Each pattern is a list of notes: a duration/flags byte (bits 0-4 the length in ticks, bit 5 no release, bit 6 tie to the previous note, bits 5-6 together a rest), optionally an instrument or portamento byte (when bit 7 is set), then the note (bit 7: keep the pulse settings), ending with $FF. The pattern pointer tables at $C542/$C5AF point into it."
  },
  {
   "address": 48603,
   "type": "line",
   "text": "Per-voice state of the player's vibrato (three bytes each): $BDDB the vibrato position, $BDDE its depth, $BDE1 its direction."
  },
  {
   "address": 48606,
   "type": "line",
   "text": "Per-voice vibrato depth (three bytes)."
  },
  {
   "address": 48609,
   "type": "line",
   "text": "Per-voice vibrato direction (three bytes)."
  },
  {
   "address": 48612,
   "type": "line",
   "text": "The music player, once a frame (from sfx_queue_service): a driver in the style of Rob Hubbard's. Sets the volume to 15. Bit 7 of the control byte $C32E: silence the voices (once, then wait); bit 6: (re)start the tune set up by set_tune, zeroing each voice's state. Otherwise, every tick (speed $C32B, counted by $C310, with a further divider $C32C) for each voice 2..0: when its note ends, reads the voice's track ($C4EE/$C4F1: pattern numbers, $FF to loop, $FE to stop; a number below $80 is a repeat count) and the current pattern (through $C542/$C5AF): duration and flags, an optional instrument (into $C2FE) or portamento, the note (looked up in the frequency table $C226), and loads the instrument's pulse width, control, attack/decay and sustain/release from its record at $C38E + 8 x instrument. Every frame applies the instrument's effects ($C393-$C395 and the second record at $C43E): vibrato, pulse-width sweep, portamento, drum and arpeggio-style waveform/pitch changes, the filter sweep, and releases the gate before the note ends; writes control, frequency and pulse to the SID."
  },
  {
   "address": 48702,
   "type": "line",
   "text": "Immediate of the LDA #$04 in music_play: the tick divider, patched by set_tune from $C31E for each tune."
  },
  {
   "address": 49317,
   "type": "line",
   "text": "Immediate of a CMP in the pulse sweep: the sweep's upper limit, patched from the instrument (part B byte 5, high nibble)."
  },
  {
   "address": 49343,
   "type": "line",
   "text": "Immediate of the pulse sweep's lower limit, patched from part B byte 5's low nibble."
  },
  {
   "address": 49394,
   "type": "line",
   "text": "Immediate of an SBC #$00 in the portamento down: unused patch target (written with the portamento's low six bits)."
  },
  {
   "address": 49420,
   "type": "line",
   "text": "Immediate of the ADC #$04 in the portamento up, patched with the portamento's low six bits."
  },
  {
   "address": 49700,
   "type": "line",
   "text": "Two bytes before the note table, read as $C224 + 2n (the note below) by the vibrato."
  },
  {
   "address": 49702,
   "type": "line",
   "text": "SID frequencies of the notes, 96 words lo/hi from $0116 upwards ($C226-$C2E5), shared by the music player and the effect player (sfx_start looks its note up here); two spare bytes follow."
  },
  {
   "address": 49703,
   "type": "line",
   "text": "High bytes of the note frequencies (interleaved with $C226)."
  },
  {
   "address": 49896,
   "type": "line",
   "text": "The music player's own copy of each voice's SID register offset (0, 7, 14), indexed by voice."
  },
  {
   "address": 49899,
   "type": "line",
   "text": "The music player's working state, $C2EB-$C356, mostly three bytes per field (one per voice): the voice's register offset ($C2EB), track position ($C2EC), pattern position ($C2EF), ticks left of the note ($C2F2), the note's flags ($C2F5), waveform ($C2F8), note number ($C2FB), instrument ($C2FE), gate mask ($C301), scratch ($C304, $C306-$C309), pulse direction ($C30D), tick counter ($C310), the tune speed and divider tables by tune ($C311, $C31E, 13 each), speed ($C32B), divider ($C32C), instrument offset ($C32D), control ($C32E: bit 7 stop, bit 6 start), frequency hi/lo ($C32F, $C332), portamento ($C335, $C338), effect flags ($C33B), note byte ($C33D), pulse lo/hi ($C33F, $C342), effect timer ($C345), frame counter ($C348), filter state ($C34B, $C34E, $C351) and track repeat count ($C354)."
  },
  {
   "address": 49900,
   "type": "line",
   "text": "Music: track position, per voice."
  },
  {
   "address": 49903,
   "type": "line",
   "text": "Music: position in the current pattern, per voice."
  },
  {
   "address": 49906,
   "type": "line",
   "text": "Music: ticks left of the current note, per voice."
  },
  {
   "address": 49909,
   "type": "line",
   "text": "Music: the current note's duration/flags byte, per voice."
  },
  {
   "address": 49912,
   "type": "line",
   "text": "Music: waveform (control) to write, per voice."
  },
  {
   "address": 49915,
   "type": "line",
   "text": "Music: the current note number, per voice."
  },
  {
   "address": 49918,
   "type": "line",
   "text": "Music: the current instrument, per voice."
  },
  {
   "address": 49921,
   "type": "line",
   "text": "Music: gate mask ($FF, or $FE to release), per voice."
  },
  {
   "address": 49924,
   "type": "line",
   "text": "Music: scratch, the note's flags while it is parsed."
  },
  {
   "address": 49926,
   "type": "line",
   "text": "Music: scratch, the voice being set up."
  },
  {
   "address": 49927,
   "type": "line",
   "text": "Music: scratch, the instrument's waveform."
  },
  {
   "address": 49928,
   "type": "line",
   "text": "Music: scratch, the vibrato's shift count."
  },
  {
   "address": 49929,
   "type": "line",
   "text": "Music: the instrument's pulse-sweep speed."
  },
  {
   "address": 49930,
   "type": "line",
   "text": "Music: per-voice byte cleared at each note (not otherwise used)."
  },
  {
   "address": 49933,
   "type": "line",
   "text": "Music: pulse sweep direction, per voice."
  },
  {
   "address": 49936,
   "type": "line",
   "text": "Music: tick counter."
  },
  {
   "address": 49937,
   "type": "line",
   "text": "Tune speeds (ticks per row), one per tune 0-12."
  },
  {
   "address": 49950,
   "type": "line",
   "text": "Tune dividers, one per tune 0-12 (patched into $BE3E)."
  },
  {
   "address": 49963,
   "type": "line",
   "text": "Music: the tune's speed."
  },
  {
   "address": 49964,
   "type": "line",
   "text": "Music: the frame divider."
  },
  {
   "address": 49965,
   "type": "line",
   "text": "Music: the instrument's record offset (instrument x 8)."
  },
  {
   "address": 49966,
   "type": "line",
   "text": "Music control: bit 7 stop (silence), bit 6 start the tune; 5 or 0 when playing."
  },
  {
   "address": 49967,
   "type": "line",
   "text": "Music: frequency high byte, per voice."
  },
  {
   "address": 49970,
   "type": "line",
   "text": "Music: frequency low byte, per voice."
  },
  {
   "address": 49973,
   "type": "line",
   "text": "Music: portamento speed, per voice."
  },
  {
   "address": 49976,
   "type": "line",
   "text": "Music: portamento direction and amount, per voice."
  },
  {
   "address": 49979,
   "type": "line",
   "text": "Music: the instrument's effect flags (scratch)."
  },
  {
   "address": 49981,
   "type": "line",
   "text": "Music: the note byte being parsed."
  },
  {
   "address": 49983,
   "type": "line",
   "text": "Music: pulse width low byte, per voice."
  },
  {
   "address": 49986,
   "type": "line",
   "text": "Music: pulse width high byte, per voice."
  },
  {
   "address": 49989,
   "type": "line",
   "text": "Music: frames of the instrument's first-frames effect left, per voice."
  },
  {
   "address": 49992,
   "type": "line",
   "text": "Music: frame counter, per voice (bit 0 alternates waveforms)."
  },
  {
   "address": 49995,
   "type": "line",
   "text": "Music: filter cutoff base, per voice."
  },
  {
   "address": 49998,
   "type": "line",
   "text": "Music: filter sweep position, per voice."
  },
  {
   "address": 50001,
   "type": "line",
   "text": "Music: filter step timer, per voice."
  },
  {
   "address": 50004,
   "type": "line",
   "text": "Music: repeat count of the current pattern, per voice."
  },
  {
   "address": 50007,
   "type": "line",
   "text": "Sets up tune A (0-12) for the music player: its speed ($C311 + A into $C32B) and divider ($C31E + A, patched into the player at $BE3E), the three track pointers from the tune table ($C4F4 + 6A into $C4EE-$C4F3), filter routing off ($D417), and asks the player to start ($C32E = $40). Tune $0B is the title music, $0C game over, $0D the end of the game, 1 the next player's turn."
  },
  {
   "address": 50056,
   "type": "line",
   "text": "Asks the music player to silence the voices ($C32E = $C0); the player calls it when a track gives $FE."
  },
  {
   "address": 50062,
   "type": "line",
   "text": "Instrument records, part A: 22 instruments of eight bytes, $C38E-$C43D: 0-1 pulse width lo/hi, 2 the waveform/control byte, 3 attack/decay, 4 sustain/release, 5 vibrato (bits 0-2 the step shift, bits 3-6 the depth; 0 for none), 6 pulse-width sweep speed, 7 effect flags, as the player reads them: bit 0 drops the pitch and closes the gate over the note's last ticks; bit 1 alternates the waveform with part B's byte 2 every frame; bit 2 plays part B's byte 1 as the waveform for the first frames (a drum attack); bit 3 alternates the pitch with part B's byte 4 every frame; bit 5 sweeps the filter cutoff (part B bytes 6-7); bit 6 starts the note at part B's byte 0 pitch for the first frames; bit 7 steps the cutoff by part B's byte 1 every byte-0 frames."
  },
  {
   "address": 50063,
   "type": "line",
   "text": "Instrument part A, byte 1 (pulse high), read as $C38F + 8n."
  },
  {
   "address": 50064,
   "type": "line",
   "text": "Instrument part A, byte 2 (waveform), read as $C390 + 8n."
  },
  {
   "address": 50065,
   "type": "line",
   "text": "Instrument part A, byte 3 (attack/decay)."
  },
  {
   "address": 50066,
   "type": "line",
   "text": "Instrument part A, byte 4 (sustain/release)."
  },
  {
   "address": 50067,
   "type": "line",
   "text": "Instrument part A, byte 5 (vibrato)."
  },
  {
   "address": 50068,
   "type": "line",
   "text": "Instrument part A, byte 6 (pulse sweep speed)."
  },
  {
   "address": 50069,
   "type": "line",
   "text": "Instrument part A, byte 7 (effect flags), and the rest of the records."
  },
  {
   "address": 50238,
   "type": "line",
   "text": "Instrument records, part B: the same 22 instruments, eight more bytes each, $C43E-$C4ED, used by the effect flags of part A: 0 a start pitch or timer, 1 an attack waveform or cutoff step, 2 a second waveform, 3 the number of first frames (with part A's waveform it is pushed as the timer), 4 a second pitch, 5 the pulse sweep limits (high nibble and low nibble), 6 the filter routing and resonance ($D417), 7 the cutoff sweep step."
  },
  {
   "address": 50239,
   "type": "line",
   "text": "Instrument part B, byte 1, read as $C43F + 8n."
  },
  {
   "address": 50240,
   "type": "line",
   "text": "Instrument part B, byte 2 (second waveform)."
  },
  {
   "address": 50241,
   "type": "line",
   "text": "Instrument part B, byte 3 (first-frames count)."
  },
  {
   "address": 50242,
   "type": "line",
   "text": "Instrument part B, byte 4 (second pitch)."
  },
  {
   "address": 50243,
   "type": "line",
   "text": "Instrument part B, byte 5 (pulse sweep limits)."
  },
  {
   "address": 50244,
   "type": "line",
   "text": "Instrument part B, byte 6 (filter routing)."
  },
  {
   "address": 50245,
   "type": "line",
   "text": "Instrument part B, byte 7 (cutoff step), and the rest of the records."
  },
  {
   "address": 50414,
   "type": "line",
   "text": "The tune being played: its three track pointers, lo bytes $C4EE-$C4F0 and hi bytes $C4F1-$C4F3."
  },
  {
   "address": 50417,
   "type": "line",
   "text": "High bytes of the tune being played's track pointers."
  },
  {
   "address": 50420,
   "type": "line",
   "text": "Thirteen tunes of six bytes, $C4F4-$C541: the three tracks' low bytes, then their high bytes. Tune 0 is the long in-game piece ($C61C, $C686, $C6FC); most others are short jingles whose tracks lie at $C78E-$C7C9 and $CE16-$CE8E."
  },
  {
   "address": 50498,
   "type": "line",
   "text": "Low bytes of the 109 pattern addresses."
  },
  {
   "address": 50607,
   "type": "line",
   "text": "High bytes of the 109 pattern addresses (patterns at $BC00-$BDDA and $C7CA-$CFF2)."
  },
  {
   "address": 50716,
   "type": "line",
   "text": "Track lists of the tunes, $C61C-$C7C9: pattern numbers, a byte below $80 before a pattern repeats it that many times, $FF loops the track, $FE stops the music."
  },
  {
   "address": 51146,
   "type": "line",
   "text": "The main pattern store, $C7CA-$CFF2, in the format described at $BC00; the jingle tracks at $CE16-$CEB9 sit among them."
  },
  {
   "address": 52170,
   "type": "line",
   "text": "The pattern store continued ($CBCA-$CFF2), with the jingle tracks at $CE16-$CEB9."
  },
  {
   "address": 53194,
   "type": "line",
   "text": "The last patterns ($CFCA-$CFF2) and thirteen leftover bytes up to $CFFF that no pointer reaches."
  },
  {
   "address": 53235,
   "type": "line",
   "text": "Eleven bytes after the last pattern ($CFF3-$CFFD) that no pattern pointer reaches; left over from an earlier arrangement of the music."
  },
  {
   "address": 53246,
   "type": "line",
   "text": "Base used to write sprite X positions as $CFFE + 2n (the CPU sees $D000-$D00F there); the last music bytes before it."
  },
  {
   "address": 53247,
   "type": "line",
   "text": "Base used to write sprite Y positions as $CFFF + 2n."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "Under the I/O area (read with all RAM banked in): the start offset into the hazard animation lists ($D200) for each hazard type spawned in the top row, indexed by the spawn byte."
  },
  {
   "address": 53504,
   "type": "line",
   "text": "Under the I/O area: the same for the bottom row."
  },
  {
   "address": 53760,
   "type": "line",
   "text": "Under the I/O area: the hazard animation lists, $D200-$D2C1: frame numbers (below $0F the frame is plain, $0F and up get +$19 more), each list ending with $FF, which sends the slot back to its restart offset."
  },
  {
   "address": 54016,
   "type": "line",
   "text": "Under the I/O area: the hazard-row spawn lists, one page per kind of scenery ($D300-$DEFF; the stage table at $F900 names the page): one byte per eighth frame, 0 for nothing, otherwise the hazard type to bring in at the right of the row; the two rows read the page from different starting offsets."
  },
  {
   "address": 54272,
   "type": "line",
   "text": "Hazard spawn list page $D4 ($D400-$D4FF), used by the stages whose table entry names it."
  },
  {
   "address": 54528,
   "type": "line",
   "text": "Hazard spawn list page $D5 ($D500-$D5FF), used by the stages whose table entry names it."
  },
  {
   "address": 54784,
   "type": "line",
   "text": "Hazard spawn list page $D6 ($D600-$D6FF), used by the stages whose table entry names it."
  },
  {
   "address": 55040,
   "type": "line",
   "text": "Hazard spawn list page $D7 ($D700-$D7FF), used by the stages whose table entry names it."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "Hazard spawn list page $D8 ($D800-$D8FF), used by the stages whose table entry names it."
  },
  {
   "address": 55552,
   "type": "line",
   "text": "Hazard spawn list page $D9 ($D900-$D9FF), used by the stages whose table entry names it."
  },
  {
   "address": 55808,
   "type": "line",
   "text": "Hazard spawn list page $DA ($DA00-$DAFF), used by the stages whose table entry names it."
  },
  {
   "address": 56064,
   "type": "line",
   "text": "Hazard spawn list page $DB ($DB00-$DBFF), used by the stages whose table entry names it."
  },
  {
   "address": 56319,
   "type": "line",
   "text": "Base of the joystick read ($DBFF + 1 = $DC00 port 2, + 2 = $DC01 port 1; I/O). The RAM underneath ends the spawn lists."
  },
  {
   "address": 56320,
   "type": "line",
   "text": "Hazard spawn list page $DC ($DC00-$DCFF), used by the stages whose table entry names it."
  },
  {
   "address": 56576,
   "type": "line",
   "text": "Hazard spawn list page $DD ($DD00-$DDFF), used by the stages whose table entry names it."
  },
  {
   "address": 56832,
   "type": "line",
   "text": "Hazard spawn list page $DE ($DE00-$DEFF), used by the stages whose table entry names it."
  },
  {
   "address": 57088,
   "type": "line",
   "text": "A page of zeros under the I/O area, not read."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Under the KERNAL area: the second set of hazard-row sprite shapes ($E000-$EB7F), exchanged with $4C00-$577F in the VIC bank between stages."
  },
  {
   "address": 58368,
   "type": "line",
   "text": "Second kilobyte of the alternate hazard shapes ($E400-$E7FF), exchanged with $5000-$53FF."
  },
  {
   "address": 59392,
   "type": "line",
   "text": "Third part of the alternate hazard shapes ($E800-$EB7F), exchanged with $5400-$577F."
  },
  {
   "address": 60160,
   "type": "line",
   "text": "The last half page of the hazard-shape store exchanged with $5700 ($EB00-$EB7F)."
  },
  {
   "address": 60288,
   "type": "line",
   "text": "Stage-banner words, eight letters each in the game's alphabet: 'STAGE nn' (digits written in by stage_banner_setup), ENTERING, LEAVING, WELCOME, FURTHER, CAVES OF, ASTEROID, HIDDEN, ANCIENT, SEA OF, SUN OF, CITY OF, JELLY OF, LOST, ROCKS OF, 10 YEARS, FINAL, SPACE, STORM, ILLUSION, CLOUDS, CITY, TEMPLE, SECRETS, DUST, DREAMS, DEATH, LATER, DRAGONS and a blank line. Each stage picks three of them through $F880 (stage 1: WELCOME / 10 YEARS / LATER)."
  },
  {
   "address": 60294,
   "type": "line",
   "text": "Stage banner: the tens digit of 'STAGE nn', written by stage_banner_setup."
  },
  {
   "address": 60295,
   "type": "line",
   "text": "Stage banner: the units digit; the stage words continue after it."
  },
  {
   "address": 60528,
   "type": "line",
   "text": "Zeros (letter A fill in the alphabet) up to the title pictures; not read."
  },
  {
   "address": 61391,
   "type": "line",
   "text": "Seven 30-byte blocks of sprite rows ($EFD0-$F0A1) that title_picture_step copies into the sprite shapes at $4200-$439E: part of a title-page picture."
  },
  {
   "address": 61421,
   "type": "line",
   "text": "Title picture block 2 ($EFEE-$F00B), copied to $4240."
  },
  {
   "address": 61451,
   "type": "line",
   "text": "Title picture block 3 ($F00C-$F029), copied to $4280."
  },
  {
   "address": 61481,
   "type": "line",
   "text": "Title picture block 4 ($F02A-$F047), copied to $42C0."
  },
  {
   "address": 61511,
   "type": "line",
   "text": "Title picture block 5 ($F048-$F065), copied to $4300."
  },
  {
   "address": 61541,
   "type": "line",
   "text": "Title picture block 6 ($F066-$F083), copied to $4340."
  },
  {
   "address": 61571,
   "type": "line",
   "text": "Title picture block 7 ($F084-$F0A1), copied to $4380, and five fill bytes."
  },
  {
   "address": 61607,
   "type": "line",
   "text": "Operands for swap_graphics_step, ten entries in four tables: store high bytes ($F0A7: F0, F1, F1, ... F5), store low bytes ($F0B1: E0, 60, ...), VIC-bank high bytes ($F0BB: 4C, 4C, 4D, ... 50) and low bytes ($F0C5: 00, 80, ...): the ten 128-byte blocks $F0E0-$F5DF and $4C00-$50FF that are exchanged."
  },
  {
   "address": 61617,
   "type": "line",
   "text": "Graphics-exchange store low bytes, ten entries."
  },
  {
   "address": 61627,
   "type": "line",
   "text": "Graphics-exchange VIC-bank high bytes, ten entries."
  },
  {
   "address": 61637,
   "type": "line",
   "text": "Graphics-exchange VIC-bank low bytes, ten entries."
  },
  {
   "address": 61648,
   "type": "line",
   "text": "The two players' names as entered for the high-score table, eight letters each in the game's alphabet (player 1 $F0D0, player 2 $F0D8); blank at the start."
  },
  {
   "address": 61664,
   "type": "line",
   "text": "The store of whichever set of shapes $30-$43 is not in the VIC bank: in play the DELTA logo, on the title the rocks ($F0E0-$F5DF, exchanged with $4C00-$50FF)."
  },
  {
   "address": 62816,
   "type": "line",
   "text": "The last block of the logo/rock store ($F560-$F5DF), the default target of the exchange loop."
  },
  {
   "address": 62943,
   "type": "line",
   "text": "Base of copy_sprite_rows_a's first block (indexed 1-30, so it starts at $F5E0)."
  },
  {
   "address": 62944,
   "type": "line",
   "text": "Sprite rows for the three interlude pages ($F5E0-$F7A1), five 30-byte blocks each, copied by copy_sprite_rows_a ($F5E0), _b ($F676) and _c ($F70C)."
  },
  {
   "address": 62973,
   "type": "line",
   "text": "Interlude picture A, block 2 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_a."
  },
  {
   "address": 63003,
   "type": "line",
   "text": "Interlude picture A, block 3 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_a."
  },
  {
   "address": 63033,
   "type": "line",
   "text": "Interlude picture A, block 4 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_a."
  },
  {
   "address": 63063,
   "type": "line",
   "text": "Interlude picture A, block 5 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_a."
  },
  {
   "address": 63093,
   "type": "line",
   "text": "Interlude picture B, block 1 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_b."
  },
  {
   "address": 63123,
   "type": "line",
   "text": "Interlude picture B, block 2 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_b."
  },
  {
   "address": 63153,
   "type": "line",
   "text": "Interlude picture B, block 3 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_b."
  },
  {
   "address": 63183,
   "type": "line",
   "text": "Interlude picture B, block 4 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_b."
  },
  {
   "address": 63213,
   "type": "line",
   "text": "Interlude picture B, block 5 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_b."
  },
  {
   "address": 63243,
   "type": "line",
   "text": "Interlude picture C, block 1 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_c."
  },
  {
   "address": 63273,
   "type": "line",
   "text": "Interlude picture C, block 2 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_c."
  },
  {
   "address": 63303,
   "type": "line",
   "text": "Interlude picture C, block 3 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_c."
  },
  {
   "address": 63333,
   "type": "line",
   "text": "Interlude picture C, block 4 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_c."
  },
  {
   "address": 63363,
   "type": "line",
   "text": "Interlude picture C, block 5 of five: 30 bytes copied (indexed 1-30) into the sprite shapes by copy_sprite_rows_c."
  },
  {
   "address": 63394,
   "type": "line",
   "text": "Fill bytes before the title texts."
  },
  {
   "address": 63408,
   "type": "line",
   "text": "Texts of the title pages, eight letters a line in the game's alphabet: 'BY', 'STAVROS', 'FASOULAS', '(c)MCMLXXXVI' and '(c)1986 THALAMUS'. The title screen itself shows 'MCMLXXXVII' and '(c)1987' from its picture; these stored lines say 1986."
  },
  {
   "address": 63464,
   "type": "line",
   "text": "The high-score table, four entries of sixteen bytes: place and score ('1.000000') then the name ('STAVROS', 'ANDREW', 'GARY', 'THALAMUS'), in the game's alphabet; hiscore_insert writes into it."
  },
  {
   "address": 63465,
   "type": "line",
   "text": "Base of the high-score shift (hiscore_insert copies from $F7E9 + X)."
  },
  {
   "address": 63466,
   "type": "line",
   "text": "The high-score table's score digits, read as $F7EA + 16 x entry."
  },
  {
   "address": 63472,
   "type": "line",
   "text": "The high-score table's names, read as $F7F0 + 16 x entry + letter."
  },
  {
   "address": 63481,
   "type": "line",
   "text": "Destination of the high-score shift ($F7F9 + X: entries move down sixteen bytes)."
  },
  {
   "address": 63528,
   "type": "line",
   "text": "More title texts: 'TOP SCORES', 'DEMO', 'SHOOT ALIENS AND COLLECT WEAPONRY', 'GAME OVER'."
  },
  {
   "address": 63616,
   "type": "line",
   "text": "Two bytes per stage (32 stages): byte 0 high nibble the first word and low nibble + 4 the second, byte 1 + $11 the third, as lines of stage_words. For example stage 2: ENTERING / ROCKS OF / DEATH, stage 32: ENTERING / FINAL / CITY."
  },
  {
   "address": 63617,
   "type": "line",
   "text": "Second byte of each stage's banner entry (the third word)."
  },
  {
   "address": 63744,
   "type": "line",
   "text": "Four bytes per stage: byte 0 the number of hazard rows (bits 0-1) and the frame offset $D4 (bits 2-7); byte 1 the rows' two multicolours; byte 2 the bottom row's count and colour; byte 3 the page of the spawn list under the I/O area. The LEAVING stages and FURTHER SPACE have no rows (all zero)."
  },
  {
   "address": 63745,
   "type": "line",
   "text": "Byte 1 of each stage's hazard entry (the rows' multicolours)."
  },
  {
   "address": 63746,
   "type": "line",
   "text": "Byte 2 of each stage's hazard entry (bottom row count and colour)."
  },
  {
   "address": 63747,
   "type": "line",
   "text": "Byte 3 of each stage's hazard entry (spawn-list page)."
  },
  {
   "address": 63872,
   "type": "line",
   "text": "Zeros after the stage table."
  },
  {
   "address": 64000,
   "type": "line",
   "text": "Aiming coarseness by stage (0-3), added to by weapons 4 and 6: 0 for stages 1-6, 1 for 7-22, 2 for 23-28, 3 for 29-32."
  },
  {
   "address": 64032,
   "type": "line",
   "text": "Three 32-byte difficulty tables, one per pass through the game (the third for every pass after), copied into $9F00 by difficulty_set: the fire rate by stage pair, the budget levels, and the budget level by stage. Later passes fire sooner and allow more fire on screen."
  },
  {
   "address": 64128,
   "type": "line",
   "text": "By stage: the count for wave type 1 ($90AE): 32, except 16 on stages 15 and 25."
  },
  {
   "address": 64160,
   "type": "line",
   "text": "Fill bytes after the stage tables."
  },
  {
   "address": 64256,
   "type": "line",
   "text": "Sixteen positions round the ship for the orbiter: column offset and row offset (times 40) pairs."
  },
  {
   "address": 64257,
   "type": "line",
   "text": "Row offsets of the orbiter circle (interleaved with $FB00)."
  },
  {
   "address": 64288,
   "type": "line",
   "text": "Glyphs of the score digits 0-9, eight bytes each, copied into the panel sprite by draw_score."
  },
  {
   "address": 64289,
   "type": "line",
   "text": "Score digit glyphs, row 1 (read as $FB21 + 8 x digit)."
  },
  {
   "address": 64290,
   "type": "line",
   "text": "Score digit glyphs, row 2."
  },
  {
   "address": 64291,
   "type": "line",
   "text": "Score digit glyphs, row 3."
  },
  {
   "address": 64292,
   "type": "line",
   "text": "Score digit glyphs, row 4."
  },
  {
   "address": 64293,
   "type": "line",
   "text": "Score digit glyphs, row 5."
  },
  {
   "address": 64294,
   "type": "line",
   "text": "Score digit glyphs, row 6."
  },
  {
   "address": 64295,
   "type": "line",
   "text": "Score digit glyphs, row 7; the messages follow."
  },
  {
   "address": 64368,
   "type": "line",
   "text": "Banner messages, eight letters a line: 'DELTA MISSION COMPLETE', 'PLAYER n' (the digit at $FBC7 is written for the current player), 'FASTEN YOUR SEATBELT', 'GAME OVER'."
  },
  {
   "address": 64455,
   "type": "line",
   "text": "The digit of 'PLAYER n' in the messages, written for the current player."
  },
  {
   "address": 64512,
   "type": "line",
   "text": "Zeros before the banner font."
  },
  {
   "address": 64608,
   "type": "line",
   "text": "The game's font, 39 glyphs of 20 bytes ($FC60-$FF6B): A-Z, '.', '(c)', space, then the digits 0-9 from $FEA4. The banner drawer and the top-score sprites use it at half width; draw_lives copies a digit from $FEA4."
  },
  {
   "address": 65188,
   "type": "line",
   "text": "Font glyph of digit 0 ($FEA4-$FEB7): the lives digit is copied from $FEA4 + 20 x lives."
  },
  {
   "address": 65189,
   "type": "line",
   "text": "Second byte of each digit glyph row, read with $FEA4."
  },
  {
   "address": 65392,
   "type": "line",
   "text": "The masks for every enemy shot and bomb, one table of eight positions ($FF70-$FFEF): position p (0, 16 ... 112, the shot's place within its cell) is two 8-byte columns, $FF70 + p and $FF78 + p, holding a round four-pixel ball as clear bits that moves one pixel right per position. ANDed into the glyphs under the shot, it clears those bits, and in this inverted character set a clear bit shows the cell's background colour: the shot appears in colour over whatever is there. The bomb drawers read the same table through their patched operands ($28C1, $299C)."
  },
  {
   "address": 65400,
   "type": "line",
   "text": "Second columns of the mask table (with $FF70): the right-hand cell of each position."
  },
  {
   "address": 65448,
   "type": "line",
   "text": "Bomb 0's masks, second column."
  },
  {
   "address": 65472,
   "type": "line",
   "text": "Bomb 1's masks, first column."
  },
  {
   "address": 65480,
   "type": "line",
   "text": "Bomb 1's masks, second column."
  },
  {
   "address": 65520,
   "type": "line",
   "text": "Eight zero bytes before the vectors, not read."
  },
  {
   "address": 65528,
   "type": "line",
   "text": "An RTI ($40) and a zero: the NMI vector points here, so RESTORE does nothing."
  },
  {
   "address": 65530,
   "type": "line",
   "text": "The 6510's vectors in RAM (the KERNAL is banked out): NMI $FFF8 (RTI), RESET $0000 (unused: a reset banks the KERNAL in), IRQ $1800."
  }
 ]
}