{
 "schema": 1,
 "platform": "c64",
 "game": "qix",
 "build": "North East Crackers crack distributed by c64.com (disk name C64.COM); game file ALIEN, entry $8000; NTSC-only loader",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    1024,
    2047,
    "screen RAM"
   ],
   [
    0,
    1023,
    "runtime: zero page, stack and pages 2-3 (the game's variables and the KERNAL's vectors), cleared or rebuilt by the start-up and load_prepare"
   ],
   [
    1024,
    2047,
    "runtime: the screen matrix, copied from $D400 by show_title_picture or written by level_params"
   ],
   [
    8192,
    16383,
    "runtime: the visible bitmap, copied from the title picture at $6000 by show_title_picture and redrawn in play"
   ],
   [
    23936,
    24047,
    "never written: the emulator's power-on pattern, a gap in the ALIEN file"
   ],
   [
    24054,
    24575,
    "never written in the title image: the power-on pattern; in a two-player game $5E00-$5FFF holds the waiting player's zero page and page 2"
   ],
   [
    32576,
    32767,
    "unused bytes after the title bitmap"
   ],
   [
    48184,
    48383,
    "never written: the emulator's power-on pattern, a gap in the ALIEN file"
   ],
   [
    65344,
    65529,
    "runtime: bytes past the end of the music player's copy, left from the loading screen"
   ]
  ],
  "extra": [
   [
    2048,
    4095,
    "sprite shapes, found through the sprite pointers"
   ],
   [
    16384,
    24383,
    "the music player and tunes as loaded, copied to $E000"
   ],
   [
    24576,
    32575,
    "the title picture's bitmap"
   ],
   [
    48384,
    49151,
    "the font"
   ],
   [
    51283,
    53247,
    "the attract demo's Qix path, the menu's and title's colour-RAM data, and bytes nothing reads"
   ],
   [
    53248,
    57343,
    "the title's and menu's screen colours and the packed menu picture, under the I/O chips"
   ],
   [
    61101,
    65343,
    "the eleven tunes"
   ]
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 2047,
   "type": "Undefined"
  },
  {
   "start": 2048,
   "end": 4479,
   "type": "Byte"
  },
  {
   "start": 4480,
   "end": 4480,
   "type": "Undefined"
  },
  {
   "start": 4481,
   "end": 5586,
   "type": "Byte"
  },
  {
   "start": 5587,
   "end": 5767,
   "type": "Code"
  },
  {
   "start": 5768,
   "end": 5820,
   "type": "Undefined"
  },
  {
   "start": 5821,
   "end": 5831,
   "type": "Byte"
  },
  {
   "start": 5832,
   "end": 5924,
   "type": "Code"
  },
  {
   "start": 5925,
   "end": 5969,
   "type": "Byte"
  },
  {
   "start": 5970,
   "end": 5973,
   "type": "Code"
  },
  {
   "start": 5974,
   "end": 6019,
   "type": "Byte"
  },
  {
   "start": 6020,
   "end": 6020,
   "type": "Code"
  },
  {
   "start": 6021,
   "end": 6021,
   "type": "Undefined"
  },
  {
   "start": 6022,
   "end": 6061,
   "type": "Code"
  },
  {
   "start": 6062,
   "end": 6075,
   "type": "Byte"
  },
  {
   "start": 6076,
   "end": 6107,
   "type": "Code"
  },
  {
   "start": 6108,
   "end": 6117,
   "type": "Byte"
  },
  {
   "start": 6118,
   "end": 6134,
   "type": "Code"
  },
  {
   "start": 6135,
   "end": 6146,
   "type": "Byte"
  },
  {
   "start": 6147,
   "end": 6149,
   "type": "Code"
  },
  {
   "start": 6150,
   "end": 6159,
   "type": "Byte"
  },
  {
   "start": 6160,
   "end": 6177,
   "type": "Code"
  },
  {
   "start": 6178,
   "end": 6187,
   "type": "Byte"
  },
  {
   "start": 6188,
   "end": 6271,
   "type": "Code"
  },
  {
   "start": 6272,
   "end": 6273,
   "type": "Undefined"
  },
  {
   "start": 6274,
   "end": 6341,
   "type": "Byte"
  },
  {
   "start": 6342,
   "end": 6621,
   "type": "Code"
  },
  {
   "start": 6622,
   "end": 6633,
   "type": "Byte"
  },
  {
   "start": 6634,
   "end": 6666,
   "type": "Code"
  },
  {
   "start": 6667,
   "end": 6676,
   "type": "Byte"
  },
  {
   "start": 6677,
   "end": 6709,
   "type": "Code"
  },
  {
   "start": 6710,
   "end": 6719,
   "type": "Byte"
  },
  {
   "start": 6720,
   "end": 6761,
   "type": "Code"
  },
  {
   "start": 6762,
   "end": 6771,
   "type": "Byte"
  },
  {
   "start": 6772,
   "end": 6842,
   "type": "Code"
  },
  {
   "start": 6843,
   "end": 6847,
   "type": "Byte"
  },
  {
   "start": 6848,
   "end": 7011,
   "type": "Code"
  },
  {
   "start": 7012,
   "end": 7062,
   "type": "Byte"
  },
  {
   "start": 7063,
   "end": 7207,
   "type": "Code"
  },
  {
   "start": 7208,
   "end": 7212,
   "type": "Byte"
  },
  {
   "start": 7213,
   "end": 7218,
   "type": "Code"
  },
  {
   "start": 7219,
   "end": 7269,
   "type": "Byte"
  },
  {
   "start": 7270,
   "end": 7285,
   "type": "Code"
  },
  {
   "start": 7286,
   "end": 7303,
   "type": "Byte"
  },
  {
   "start": 7304,
   "end": 7388,
   "type": "Code"
  },
  {
   "start": 7389,
   "end": 7389,
   "type": "Undefined"
  },
  {
   "start": 7390,
   "end": 7689,
   "type": "Code"
  },
  {
   "start": 7690,
   "end": 7702,
   "type": "Byte"
  },
  {
   "start": 7703,
   "end": 7925,
   "type": "Code"
  },
  {
   "start": 7926,
   "end": 7949,
   "type": "Byte"
  },
  {
   "start": 7950,
   "end": 8079,
   "type": "Code"
  },
  {
   "start": 8080,
   "end": 8085,
   "type": "Byte"
  },
  {
   "start": 8086,
   "end": 8158,
   "type": "Code"
  },
  {
   "start": 8159,
   "end": 8161,
   "type": "Undefined"
  },
  {
   "start": 8162,
   "end": 8163,
   "type": "Byte"
  },
  {
   "start": 8164,
   "end": 8166,
   "type": "Code"
  },
  {
   "start": 8167,
   "end": 8191,
   "type": "Byte"
  },
  {
   "start": 8192,
   "end": 8237,
   "type": "Undefined"
  },
  {
   "start": 8238,
   "end": 8239,
   "type": "Code"
  },
  {
   "start": 8240,
   "end": 13617,
   "type": "Undefined"
  },
  {
   "start": 13618,
   "end": 13657,
   "type": "Code"
  },
  {
   "start": 13658,
   "end": 16383,
   "type": "Undefined"
  },
  {
   "start": 16384,
   "end": 24383,
   "type": "Byte"
  },
  {
   "start": 24384,
   "end": 24575,
   "type": "Undefined"
  },
  {
   "start": 24576,
   "end": 32575,
   "type": "Byte"
  },
  {
   "start": 32576,
   "end": 32767,
   "type": "Undefined"
  },
  {
   "start": 32768,
   "end": 33364,
   "type": "Code"
  },
  {
   "start": 33365,
   "end": 33369,
   "type": "Undefined"
  },
  {
   "start": 33370,
   "end": 33803,
   "type": "Code"
  },
  {
   "start": 33804,
   "end": 33804,
   "type": "Undefined"
  },
  {
   "start": 33805,
   "end": 34594,
   "type": "Code"
  },
  {
   "start": 34595,
   "end": 34599,
   "type": "Undefined"
  },
  {
   "start": 34600,
   "end": 34644,
   "type": "Byte"
  },
  {
   "start": 34645,
   "end": 34727,
   "type": "Code"
  },
  {
   "start": 34728,
   "end": 34763,
   "type": "Byte"
  },
  {
   "start": 34764,
   "end": 34833,
   "type": "Code"
  },
  {
   "start": 34834,
   "end": 34835,
   "type": "Undefined"
  },
  {
   "start": 34836,
   "end": 34869,
   "type": "Code"
  },
  {
   "start": 34870,
   "end": 34870,
   "type": "Undefined"
  },
  {
   "start": 34871,
   "end": 34944,
   "type": "Code"
  },
  {
   "start": 34945,
   "end": 34946,
   "type": "Byte"
  },
  {
   "start": 34947,
   "end": 34998,
   "type": "Code"
  },
  {
   "start": 34999,
   "end": 34999,
   "type": "Undefined"
  },
  {
   "start": 35000,
   "end": 35591,
   "type": "Code"
  },
  {
   "start": 35592,
   "end": 35595,
   "type": "Undefined"
  },
  {
   "start": 35596,
   "end": 36036,
   "type": "Code"
  },
  {
   "start": 36037,
   "end": 36037,
   "type": "Undefined"
  },
  {
   "start": 36038,
   "end": 36277,
   "type": "Code"
  },
  {
   "start": 36278,
   "end": 36278,
   "type": "Undefined"
  },
  {
   "start": 36279,
   "end": 36446,
   "type": "Code"
  },
  {
   "start": 36447,
   "end": 36447,
   "type": "Undefined"
  },
  {
   "start": 36448,
   "end": 36534,
   "type": "Code"
  },
  {
   "start": 36535,
   "end": 36536,
   "type": "Undefined"
  },
  {
   "start": 36537,
   "end": 36642,
   "type": "Code"
  },
  {
   "start": 36643,
   "end": 36643,
   "type": "Undefined"
  },
  {
   "start": 36644,
   "end": 37153,
   "type": "Code"
  },
  {
   "start": 37154,
   "end": 37154,
   "type": "Undefined"
  },
  {
   "start": 37155,
   "end": 37332,
   "type": "Code"
  },
  {
   "start": 37333,
   "end": 37337,
   "type": "Undefined"
  },
  {
   "start": 37338,
   "end": 37992,
   "type": "Code"
  },
  {
   "start": 37993,
   "end": 37993,
   "type": "Undefined"
  },
  {
   "start": 37994,
   "end": 39126,
   "type": "Code"
  },
  {
   "start": 39127,
   "end": 39130,
   "type": "Byte"
  },
  {
   "start": 39131,
   "end": 40021,
   "type": "Code"
  },
  {
   "start": 40022,
   "end": 40024,
   "type": "Undefined"
  },
  {
   "start": 40025,
   "end": 40297,
   "type": "Code"
  },
  {
   "start": 40298,
   "end": 40298,
   "type": "Undefined"
  },
  {
   "start": 40299,
   "end": 40367,
   "type": "Code"
  },
  {
   "start": 40368,
   "end": 40549,
   "type": "Byte"
  },
  {
   "start": 40550,
   "end": 40719,
   "type": "Code"
  },
  {
   "start": 40720,
   "end": 40720,
   "type": "Undefined"
  },
  {
   "start": 40721,
   "end": 40732,
   "type": "Byte"
  },
  {
   "start": 40733,
   "end": 41093,
   "type": "Code"
  },
  {
   "start": 41094,
   "end": 41094,
   "type": "Undefined"
  },
  {
   "start": 41095,
   "end": 41118,
   "type": "Byte"
  },
  {
   "start": 41119,
   "end": 44386,
   "type": "Code"
  },
  {
   "start": 44387,
   "end": 44387,
   "type": "Undefined"
  },
  {
   "start": 44388,
   "end": 44519,
   "type": "Code"
  },
  {
   "start": 44520,
   "end": 44547,
   "type": "Byte"
  },
  {
   "start": 44548,
   "end": 45484,
   "type": "Code"
  },
  {
   "start": 45485,
   "end": 45486,
   "type": "Undefined"
  },
  {
   "start": 45487,
   "end": 46382,
   "type": "Code"
  },
  {
   "start": 46383,
   "end": 46383,
   "type": "Undefined"
  },
  {
   "start": 46384,
   "end": 46470,
   "type": "Code"
  },
  {
   "start": 46471,
   "end": 46472,
   "type": "Byte"
  },
  {
   "start": 46473,
   "end": 46721,
   "type": "Code"
  },
  {
   "start": 46722,
   "end": 46723,
   "type": "Byte"
  },
  {
   "start": 46724,
   "end": 46759,
   "type": "Code"
  },
  {
   "start": 46760,
   "end": 47103,
   "type": "Byte"
  },
  {
   "start": 47104,
   "end": 47112,
   "type": "Code"
  },
  {
   "start": 47113,
   "end": 47154,
   "type": "Byte"
  },
  {
   "start": 47155,
   "end": 47252,
   "type": "Code"
  },
  {
   "start": 47253,
   "end": 47257,
   "type": "Undefined"
  },
  {
   "start": 47258,
   "end": 47647,
   "type": "Code"
  },
  {
   "start": 47648,
   "end": 49151,
   "type": "Byte"
  },
  {
   "start": 49152,
   "end": 49941,
   "type": "Code"
  },
  {
   "start": 49942,
   "end": 50004,
   "type": "Byte"
  },
  {
   "start": 50005,
   "end": 50007,
   "type": "Code"
  },
  {
   "start": 50008,
   "end": 50054,
   "type": "Byte"
  },
  {
   "start": 50055,
   "end": 50058,
   "type": "Code"
  },
  {
   "start": 50059,
   "end": 50101,
   "type": "Byte"
  },
  {
   "start": 50102,
   "end": 50105,
   "type": "Code"
  },
  {
   "start": 50106,
   "end": 50117,
   "type": "Byte"
  },
  {
   "start": 50118,
   "end": 50121,
   "type": "Code"
  },
  {
   "start": 50122,
   "end": 50133,
   "type": "Byte"
  },
  {
   "start": 50134,
   "end": 50137,
   "type": "Code"
  },
  {
   "start": 50138,
   "end": 50160,
   "type": "Byte"
  },
  {
   "start": 50161,
   "end": 50164,
   "type": "Code"
  },
  {
   "start": 50165,
   "end": 50176,
   "type": "Byte"
  },
  {
   "start": 50177,
   "end": 50180,
   "type": "Code"
  },
  {
   "start": 50181,
   "end": 50190,
   "type": "Byte"
  },
  {
   "start": 50191,
   "end": 50194,
   "type": "Code"
  },
  {
   "start": 50195,
   "end": 50204,
   "type": "Byte"
  },
  {
   "start": 50205,
   "end": 50208,
   "type": "Code"
  },
  {
   "start": 50209,
   "end": 50219,
   "type": "Byte"
  },
  {
   "start": 50220,
   "end": 50223,
   "type": "Code"
  },
  {
   "start": 50224,
   "end": 50254,
   "type": "Byte"
  },
  {
   "start": 50255,
   "end": 50258,
   "type": "Code"
  },
  {
   "start": 50259,
   "end": 50338,
   "type": "Byte"
  },
  {
   "start": 50339,
   "end": 51282,
   "type": "Code"
  },
  {
   "start": 51283,
   "end": 57343,
   "type": "Byte"
  },
  {
   "start": 57344,
   "end": 57352,
   "type": "Code"
  },
  {
   "start": 57353,
   "end": 57457,
   "type": "Byte"
  },
  {
   "start": 57458,
   "end": 57618,
   "type": "Code"
  },
  {
   "start": 57619,
   "end": 57619,
   "type": "Undefined"
  },
  {
   "start": 57620,
   "end": 59958,
   "type": "Code"
  },
  {
   "start": 59959,
   "end": 59964,
   "type": "Byte"
  },
  {
   "start": 59965,
   "end": 60264,
   "type": "Code"
  },
  {
   "start": 60265,
   "end": 60282,
   "type": "Byte"
  },
  {
   "start": 60283,
   "end": 60474,
   "type": "Code"
  },
  {
   "start": 60475,
   "end": 60476,
   "type": "Byte"
  },
  {
   "start": 60477,
   "end": 60503,
   "type": "Code"
  },
  {
   "start": 60504,
   "end": 60505,
   "type": "Byte"
  },
  {
   "start": 60506,
   "end": 60532,
   "type": "Code"
  },
  {
   "start": 60533,
   "end": 60534,
   "type": "Byte"
  },
  {
   "start": 60535,
   "end": 60714,
   "type": "Code"
  },
  {
   "start": 60715,
   "end": 65343,
   "type": "Byte"
  },
  {
   "start": 65344,
   "end": 65535,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "start",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "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": 7,
   "name": "zpa_07",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8,
   "name": "zpa_08",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9,
   "name": "zpa_09",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10,
   "name": "zpa_0A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12,
   "name": "zpa_0C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13,
   "name": "zpa_0D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14,
   "name": "zpa_0E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15,
   "name": "zpa_0F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17,
   "name": "zpa_11",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18,
   "name": "zpa_12",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19,
   "name": "zpa_13",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20,
   "name": "zpa_14",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21,
   "name": "zpa_15",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 22,
   "name": "zpa_16",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 23,
   "name": "zpa_17",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 24,
   "name": "zpa_18",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 25,
   "name": "zpa_19",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26,
   "name": "zpa_1A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27,
   "name": "zpa_1B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28,
   "name": "zpa_1C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 29,
   "name": "zpa_1D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30,
   "name": "zpa_1E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31,
   "name": "zpa_1F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32,
   "name": "zpa_20",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33,
   "name": "zpa_21",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34,
   "name": "zpa_22",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35,
   "name": "zpa_23",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39,
   "name": "zpa_27",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40,
   "name": "zpa_28",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41,
   "name": "zpa_29",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpa_2A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43,
   "name": "zpa_2B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44,
   "name": "zpa_2C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45,
   "name": "zpa_2D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpa_2E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 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": 56,
   "name": "zpa_38",
   "type": "ZeroPageAbsoluteAddress",
   "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": "zpa_3F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 64,
   "name": "zpf_40",
   "type": "ZeroPageField",
   "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": "zpa_47",
   "type": "ZeroPageAbsoluteAddress",
   "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": 79,
   "name": "zpa_4F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 80,
   "name": "zpa_50",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 81,
   "name": "zpa_51",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 82,
   "name": "zpa_52",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 83,
   "name": "zpa_53",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 84,
   "name": "zpa_54",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 85,
   "name": "zpf_55",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 86,
   "name": "zpa_56",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 87,
   "name": "zpa_57",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 88,
   "name": "zpa_58",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 89,
   "name": "zpa_59",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 90,
   "name": "zpa_5A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 91,
   "name": "zpa_5B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 92,
   "name": "zpa_5C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 93,
   "name": "zpa_5D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 94,
   "name": "zpa_5E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 95,
   "name": "zpa_5F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 106,
   "name": "zpa_6A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 107,
   "name": "zpa_6B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 108,
   "name": "zpa_6C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 109,
   "name": "zpa_6D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 110,
   "name": "zpa_6E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 111,
   "name": "zpa_6F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 112,
   "name": "zpa_70",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 113,
   "name": "zpa_71",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 115,
   "name": "zpa_73",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 116,
   "name": "zpa_74",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 117,
   "name": "zpa_75",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 118,
   "name": "zpa_76",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 119,
   "name": "zpa_77",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 120,
   "name": "zpa_78",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 121,
   "name": "zpa_79",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 122,
   "name": "zpa_7A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 123,
   "name": "zpa_7B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 124,
   "name": "zpa_7C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 125,
   "name": "zpa_7D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 126,
   "name": "zpa_7E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 127,
   "name": "zpa_7F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 128,
   "name": "zpp_80",
   "type": "ZeroPagePointer",
   "kind": "auto"
  },
  {
   "address": 129,
   "name": "zpa_81",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 130,
   "name": "zpa_82",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 131,
   "name": "zpa_83",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 132,
   "name": "zpa_84",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 133,
   "name": "zpa_85",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 134,
   "name": "zpa_86",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 135,
   "name": "zpa_87",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 136,
   "name": "zpa_88",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 137,
   "name": "zpa_89",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 138,
   "name": "zpa_8A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 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": "zpa_8F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 144,
   "name": "zpa_90",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 145,
   "name": "zpa_91",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 146,
   "name": "zpa_92",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 147,
   "name": "zpa_93",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 148,
   "name": "zpa_94",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 149,
   "name": "zpa_95",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 150,
   "name": "zpa_96",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 151,
   "name": "zpa_97",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 152,
   "name": "zpa_98",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 153,
   "name": "zpa_99",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 154,
   "name": "zpa_9A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 155,
   "name": "zpa_9B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 156,
   "name": "zpa_9C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 157,
   "name": "zpa_9D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 158,
   "name": "zpa_9E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 159,
   "name": "zpa_9F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 160,
   "name": "zpa_A0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 161,
   "name": "zpa_A1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 162,
   "name": "a_00A2",
   "type": "AbsoluteAddress",
   "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": "a_00A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 170,
   "name": "zpf_AA",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 171,
   "name": "zpa_AB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 172,
   "name": "zpa_AC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 175,
   "name": "zpa_AF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 176,
   "name": "zpa_B0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 177,
   "name": "zpa_B1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 178,
   "name": "zpa_B2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 179,
   "name": "zpa_B3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 181,
   "name": "zpa_B5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 182,
   "name": "zpa_B6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 183,
   "name": "zpa_B7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 184,
   "name": "zpa_B8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 186,
   "name": "zpa_BA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 187,
   "name": "zpf_BB",
   "type": "ZeroPageField",
   "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": 199,
   "name": "zpa_C7",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 200,
   "name": "zpa_C8",
   "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": 207,
   "name": "zpa_CF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 208,
   "name": "zpa_D0",
   "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": 214,
   "name": "zpa_D6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 232,
   "name": "zpa_E8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 240,
   "name": "zpa_F0",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 241,
   "name": "zpa_F1",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 242,
   "name": "zpa_F2",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 243,
   "name": "zpa_F3",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 244,
   "name": "zpf_F4",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 245,
   "name": "zpa_F5",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 246,
   "name": "zpa_F6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 247,
   "name": "zpf_F7",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 248,
   "name": "zpa_F8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 249,
   "name": "zpa_F9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 250,
   "name": "zpf_FA",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "zpf_FD",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 512,
   "name": "f_0200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 514,
   "name": "a_0202",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 515,
   "name": "a_0203",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 517,
   "name": "a_0205",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 518,
   "name": "a_0206",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 519,
   "name": "a_0207",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 520,
   "name": "a_0208",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 521,
   "name": "a_0209",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 522,
   "name": "a_020A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 524,
   "name": "a_020C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 525,
   "name": "a_020D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 526,
   "name": "a_020E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 527,
   "name": "a_020F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 528,
   "name": "a_0210",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 529,
   "name": "a_0211",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 530,
   "name": "a_0212",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 531,
   "name": "a_0213",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 542,
   "name": "f_021E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 552,
   "name": "f_0228",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 562,
   "name": "f_0232",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 572,
   "name": "f_023C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 582,
   "name": "f_0246",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 592,
   "name": "f_0250",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 602,
   "name": "f_025A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 612,
   "name": "f_0264",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 622,
   "name": "a_026E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 624,
   "name": "a_0270",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 625,
   "name": "a_0271",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 626,
   "name": "a_0272",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 627,
   "name": "a_0273",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 628,
   "name": "a_0274",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 629,
   "name": "a_0275",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 630,
   "name": "a_0276",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 631,
   "name": "a_0277",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 634,
   "name": "a_027A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 635,
   "name": "a_027B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 636,
   "name": "a_027C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 637,
   "name": "a_027D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 638,
   "name": "a_027E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 639,
   "name": "a_027F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 640,
   "name": "f_0280",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 641,
   "name": "a_0281",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 642,
   "name": "a_0282",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 643,
   "name": "a_0283",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 645,
   "name": "a_0285",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 646,
   "name": "a_0286",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 647,
   "name": "a_0287",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 648,
   "name": "a_0288",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 649,
   "name": "a_0289",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 650,
   "name": "a_028A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 651,
   "name": "a_028B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 652,
   "name": "a_028C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 653,
   "name": "a_028D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 654,
   "name": "a_028E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 655,
   "name": "a_028F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 656,
   "name": "a_0290",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 657,
   "name": "a_0291",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 658,
   "name": "f_0292",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 674,
   "name": "f_02A2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 678,
   "name": "a_02A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 681,
   "name": "a_02A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 690,
   "name": "a_02B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 691,
   "name": "a_02B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 788,
   "name": "f_0314",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 789,
   "name": "a_0315",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 792,
   "name": "a_0318",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 793,
   "name": "a_0319",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 808,
   "name": "f_0328",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 937,
   "name": "a_03A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "f_0400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1042,
   "name": "f_0412",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1059,
   "name": "f_0423",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1100,
   "name": "f_044C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1140,
   "name": "f_0474",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1180,
   "name": "f_049C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1193,
   "name": "a_04A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1220,
   "name": "f_04C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1260,
   "name": "f_04EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1280,
   "name": "f_0500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1300,
   "name": "f_0514",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1340,
   "name": "f_053C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1420,
   "name": "f_058C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1449,
   "name": "a_05A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1460,
   "name": "f_05B4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1476,
   "name": "f_05C4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1516,
   "name": "f_05EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1536,
   "name": "f_0600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1556,
   "name": "f_0614",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1792,
   "name": "f_0700",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 2040,
   "name": "a_07F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2041,
   "name": "a_07F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2042,
   "name": "a_07FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2043,
   "name": "a_07FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2044,
   "name": "a_07FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2045,
   "name": "a_07FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2046,
   "name": "a_07FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2047,
   "name": "a_07FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2048,
   "name": "sprite_shapes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2217,
   "name": "sprite_shape_22b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3072,
   "name": "sprite_shapes2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4096,
   "name": "fill_patterns_fast",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4256,
   "name": "fill_patterns_gap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4258,
   "name": "a_10A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4272,
   "name": "fill_patterns_slow",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4432,
   "name": "unused_1150",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4480,
   "name": "nmi_rti",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4481,
   "name": "lvl_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4491,
   "name": "f_118B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4502,
   "name": "lvl_tables_15",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4513,
   "name": "lvl_tables_20",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4524,
   "name": "lvl_tables_2b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4535,
   "name": "lvl_tables_36",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4546,
   "name": "lvl_tables_41",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4557,
   "name": "lvl_tables_4c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4568,
   "name": "lvl_tables_57",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4579,
   "name": "lvl_tables_62",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4590,
   "name": "lvl_tables_6d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4601,
   "name": "lvl_tables_78",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4612,
   "name": "lvl_tables_83",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4623,
   "name": "lvl_tables_8e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4635,
   "name": "qix_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4667,
   "name": "row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4867,
   "name": "row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5067,
   "name": "col_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5227,
   "name": "col_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5387,
   "name": "pixel_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5391,
   "name": "f_150F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5395,
   "name": "pixel_masks_8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5399,
   "name": "pixel_masks_c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5403,
   "name": "bitmap_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5404,
   "name": "f_151C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5453,
   "name": "slow_flags",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5456,
   "name": "game_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5457,
   "name": "game_vars_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5458,
   "name": "game_vars_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5459,
   "name": "game_vars_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5460,
   "name": "game_vars_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5461,
   "name": "game_vars_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5462,
   "name": "game_vars_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5463,
   "name": "game_vars_7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5464,
   "name": "game_vars_8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5465,
   "name": "game_vars_9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5466,
   "name": "game_vars_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5467,
   "name": "game_vars_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5468,
   "name": "game_vars_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5469,
   "name": "game_vars_d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5470,
   "name": "game_vars_e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5471,
   "name": "game_vars_f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5472,
   "name": "game_vars_10",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5473,
   "name": "game_vars_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5474,
   "name": "game_vars_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5475,
   "name": "game_vars_13",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5476,
   "name": "game_vars_14",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5477,
   "name": "game_vars_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5478,
   "name": "game_vars_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5479,
   "name": "game_vars_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5480,
   "name": "game_vars_18",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5481,
   "name": "game_vars_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5483,
   "name": "game_vars_1b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5484,
   "name": "game_vars_1c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5486,
   "name": "game_vars_1e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5487,
   "name": "game_vars_1f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5488,
   "name": "game_vars_20",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5489,
   "name": "game_vars_21",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5490,
   "name": "game_vars_22",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5491,
   "name": "game_vars_23",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5492,
   "name": "game_vars_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5493,
   "name": "game_vars_25",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5494,
   "name": "game_vars_26",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5495,
   "name": "game_vars_27",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5496,
   "name": "game_vars_28",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5497,
   "name": "game_vars_29",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5498,
   "name": "game_vars_2a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5499,
   "name": "game_vars_2b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5500,
   "name": "game_vars_2c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5501,
   "name": "game_vars_2d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5505,
   "name": "game_vars_31",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5509,
   "name": "game_vars_35",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5522,
   "name": "game_vars_42",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5523,
   "name": "game_vars_43",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5524,
   "name": "game_vars_44",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5525,
   "name": "game_vars_45",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5530,
   "name": "game_vars_4a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5531,
   "name": "game_vars_4b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5534,
   "name": "game_vars_4e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5535,
   "name": "game_vars_4f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5539,
   "name": "game_vars_53",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5543,
   "name": "game_vars_57",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5547,
   "name": "game_vars_5b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5559,
   "name": "game_vars_67",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5560,
   "name": "game_vars_68",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5561,
   "name": "game_vars_69",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5562,
   "name": "game_vars_6a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5563,
   "name": "game_vars_6b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5564,
   "name": "game_vars_6c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5565,
   "name": "game_vars_6d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5566,
   "name": "game_vars_6e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5567,
   "name": "game_vars_6f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5571,
   "name": "game_vars_73",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5575,
   "name": "game_vars_77",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5576,
   "name": "game_vars_78",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5577,
   "name": "game_vars_79",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5578,
   "name": "game_vars_7a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5579,
   "name": "game_vars_7b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5580,
   "name": "game_vars_7c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5581,
   "name": "game_vars_7d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5582,
   "name": "game_vars_7e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5583,
   "name": "game_vars_7f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5584,
   "name": "game_vars_80",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5585,
   "name": "game_vars_81",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5586,
   "name": "game_vars_82",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5587,
   "name": "level_complete",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5613,
   "name": "b_15ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5619,
   "name": "j_15F3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5636,
   "name": "b_1604",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5650,
   "name": "b_1612",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5695,
   "name": "b_163F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5719,
   "name": "b_1657",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5734,
   "name": "b_1666",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5747,
   "name": "b_1673",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5768,
   "name": "irq_music",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5821,
   "name": "tune_order",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5831,
   "name": "a_16C7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5832,
   "name": "shuffle_tunes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5839,
   "name": "b_16CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5847,
   "name": "b_16D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5867,
   "name": "b_16EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5869,
   "name": "b_16ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5884,
   "name": "fill_pattern_pick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5894,
   "name": "b_1706",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5905,
   "name": "b_1711",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5922,
   "name": "msg_spritz_hint",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5925,
   "name": "txt_spritz_hint",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5970,
   "name": "after_msg_split1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5971,
   "name": "msg_split_hint",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5974,
   "name": "txt_split_hint",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6020,
   "name": "after_msg_split",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6021,
   "name": "level_msg_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6022,
   "name": "level_messages",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6029,
   "name": "b_178D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6035,
   "name": "b_1793",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6047,
   "name": "b_179F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6054,
   "name": "r_17A6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6055,
   "name": "level_summary",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6062,
   "name": "txt_score_now",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6076,
   "name": "summary_score",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6097,
   "name": "b_17D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6108,
   "name": "txt_bonus",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6118,
   "name": "summary_bonus",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6132,
   "name": "b_17F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6135,
   "name": "txt_no_bonus",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6147,
   "name": "after_summary",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6150,
   "name": "txt_claim",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6160,
   "name": "summary_claim",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6178,
   "name": "txt_level",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6188,
   "name": "summary_level",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6197,
   "name": "print_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6216,
   "name": "print_char_copy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6235,
   "name": "print_number",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6250,
   "name": "b_186A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6251,
   "name": "b_186B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6258,
   "name": "print_digits",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6271,
   "name": "r_187F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6272,
   "name": "tune_now",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6273,
   "name": "music_playing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6274,
   "name": "box_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6275,
   "name": "a_1883",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6276,
   "name": "box_vars_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6277,
   "name": "box_lines",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6278,
   "name": "f_1886",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 6294,
   "name": "box_lines_11",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6310,
   "name": "box_lines_21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6313,
   "name": "box_lines_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6326,
   "name": "box_lines_31",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6342,
   "name": "clear_message_cells",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6346,
   "name": "b_18CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6358,
   "name": "draw_message_box",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6371,
   "name": "b_18E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6381,
   "name": "j_18ED",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6396,
   "name": "b_18FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6433,
   "name": "b_1921",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6472,
   "name": "fatal_error",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6504,
   "name": "j_1968",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6519,
   "name": "b_1977",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6546,
   "name": "j_1992",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6561,
   "name": "b_19A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6600,
   "name": "b_19C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6622,
   "name": "txt_error",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6628,
   "name": "txt_addrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6634,
   "name": "msg_game_over",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6649,
   "name": "j_19F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6664,
   "name": "b_1A08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6667,
   "name": "txt_game_over",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6677,
   "name": "msg_get_ready",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6692,
   "name": "j_1A24",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6707,
   "name": "b_1A33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6710,
   "name": "txt_get_ready",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6720,
   "name": "msg_player",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6746,
   "name": "j_1A5A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6761,
   "name": "r_1A69",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6762,
   "name": "txt_player",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6770,
   "name": "a_1A72",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6772,
   "name": "wait_48",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6775,
   "name": "wait_16",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6778,
   "name": "wait_2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6781,
   "name": "j_1A7D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6783,
   "name": "b_1A7F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6788,
   "name": "b_1A84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6797,
   "name": "load_taito",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6805,
   "name": "b_1A95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6818,
   "name": "b_1AA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6843,
   "name": "name_taito",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6848,
   "name": "font_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6874,
   "name": "b_1ADA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6876,
   "name": "b_1ADC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6887,
   "name": "b_1AE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6896,
   "name": "b_1AF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6905,
   "name": "b_1AF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6914,
   "name": "b_1B02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6923,
   "name": "b_1B0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6927,
   "name": "b_1B0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6936,
   "name": "load_prepare",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6944,
   "name": "b_1B20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6980,
   "name": "b_1B44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6991,
   "name": "b_1B4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7012,
   "name": "kernal_state",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7029,
   "name": "f_1B75",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7061,
   "name": "var_1B95",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7062,
   "name": "joy_title",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7063,
   "name": "reload_alien",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7092,
   "name": "b_1BB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7101,
   "name": "b_1BBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7109,
   "name": "b_1BC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7118,
   "name": "b_1BCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7127,
   "name": "b_1BD7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7136,
   "name": "b_1BE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7144,
   "name": "b_1BE8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7153,
   "name": "b_1BF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7162,
   "name": "b_1BFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7170,
   "name": "b_1C02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7183,
   "name": "b_1C0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7208,
   "name": "name_alien",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7213,
   "name": "msg_drive_error",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7219,
   "name": "txt_drive_error",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7270,
   "name": "drive_error_wait",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7286,
   "name": "txt_please_wait",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7304,
   "name": "after_drive_error",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7305,
   "name": "draw_lives",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7311,
   "name": "b_1C8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7315,
   "name": "b_1C93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7337,
   "name": "b_1CA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7343,
   "name": "b_1CAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7356,
   "name": "b_1CBC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7389,
   "name": "lives_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7390,
   "name": "draw_status",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7408,
   "name": "draw_panel_clm",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7421,
   "name": "b_1CFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7442,
   "name": "draw_panel_pct",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7455,
   "name": "b_1D1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7482,
   "name": "draw_panel_pct2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7495,
   "name": "b_1D47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7511,
   "name": "b_1D57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7528,
   "name": "draw_panel_lvl",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7541,
   "name": "b_1D75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7562,
   "name": "draw_panel_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7575,
   "name": "b_1D97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7580,
   "name": "panel_colours",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7582,
   "name": "b_1D9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7625,
   "name": "draw_score_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7637,
   "name": "b_1DD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7653,
   "name": "b_1DE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7658,
   "name": "b_1DEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7671,
   "name": "draw_scores",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7687,
   "name": "b_1E07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7690,
   "name": "txt_hi_score",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7703,
   "name": "draw_hiscore",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7715,
   "name": "b_1E23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7762,
   "name": "b_1E52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7789,
   "name": "b_1E6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7795,
   "name": "b_1E73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7847,
   "name": "b_1EA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7874,
   "name": "r_1EC2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7875,
   "name": "print_player_name",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7885,
   "name": "b_1ECD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7898,
   "name": "b_1EDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7901,
   "name": "print_name_chars",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7925,
   "name": "r_1EF5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7926,
   "name": "txt_practice",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7935,
   "name": "f_1EFF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7942,
   "name": "txt_clm_lvl",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7946,
   "name": "f_1F0A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 7950,
   "name": "extra_life_p1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8012,
   "name": "b_1F4C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8015,
   "name": "extra_life_p2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8077,
   "name": "b_1F8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8080,
   "name": "extra_life_at",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8081,
   "name": "a_1F91",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8082,
   "name": "extra_life_at_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8083,
   "name": "extra_life_at_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8084,
   "name": "extra_life_at_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8085,
   "name": "extra_life_at_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8086,
   "name": "next_level",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8131,
   "name": "b_1FC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8162,
   "name": "next_level_ret",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8163,
   "name": "next_level_4d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8164,
   "name": "next_level_practice",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 8167,
   "name": "leftover_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8192,
   "name": "a_2000",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9120,
   "name": "f_23A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9440,
   "name": "f_24E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 12969,
   "name": "a_32A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16384,
   "name": "music_source",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16653,
   "name": "a_410D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16654,
   "name": "music_source_10e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "music_source2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18432,
   "name": "music_source3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "music_source4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "music_source5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "music_source6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "music_source7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "music_source8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24048,
   "name": "high_score",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 24049,
   "name": "a_5DF1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 24050,
   "name": "high_score_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 24064,
   "name": "f_5E00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 24320,
   "name": "f_5F00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 24576,
   "name": "title_bitmap",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24832,
   "name": "title_bitmap_100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25088,
   "name": "title_bitmap_200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25344,
   "name": "title_bitmap_300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25600,
   "name": "title_bitmap2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25856,
   "name": "title_bitmap2_100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26112,
   "name": "title_bitmap2_200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26368,
   "name": "title_bitmap2_300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26624,
   "name": "title_bitmap3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26880,
   "name": "title_bitmap3_100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27136,
   "name": "title_bitmap3_200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27392,
   "name": "title_bitmap3_300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "title_bitmap4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "title_bitmap5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29696,
   "name": "title_bitmap6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "title_bitmap7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "title_bitmap8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32618,
   "name": "s_7F6A",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 32768,
   "name": "game_entry",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32787,
   "name": "j_8013",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 32808,
   "name": "b_8028",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32830,
   "name": "b_803E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32853,
   "name": "title_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32862,
   "name": "b_805E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32903,
   "name": "menu_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32906,
   "name": "b_808A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32917,
   "name": "b_8095",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32937,
   "name": "a_80A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32944,
   "name": "b_80B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32951,
   "name": "b_80B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32956,
   "name": "b_80BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32987,
   "name": "b_80DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32990,
   "name": "b_80DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33007,
   "name": "b_80EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33010,
   "name": "j_80F2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33037,
   "name": "b_810D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33053,
   "name": "b_811D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33056,
   "name": "menu_timeout",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33082,
   "name": "menu_fire",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33096,
   "name": "b_8148",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33110,
   "name": "b_8156",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33124,
   "name": "b_8164",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33127,
   "name": "j_8167",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33190,
   "name": "unused_rti",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33191,
   "name": "read_runstop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33211,
   "name": "b_81BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33241,
   "name": "pause_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33247,
   "name": "b_81DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33251,
   "name": "b_81E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33259,
   "name": "b_81EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33271,
   "name": "wait_frames_or_input",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33278,
   "name": "b_81FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33288,
   "name": "b_8208",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33290,
   "name": "irq_title_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33365,
   "name": "menu_raster_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33366,
   "name": "a_8256",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33367,
   "name": "menu_raster_vars_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33368,
   "name": "menu_raster_vars_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33369,
   "name": "menu_raster_vars_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33370,
   "name": "irq_menu_band_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33395,
   "name": "b_8273",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33442,
   "name": "irq_menu_band_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33467,
   "name": "b_82BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33513,
   "name": "next_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33530,
   "name": "r_82FA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 33531,
   "name": "xor_glyph",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33557,
   "name": "b_8315",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33559,
   "name": "b_8317",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33570,
   "name": "b_8322",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33579,
   "name": "b_832B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33588,
   "name": "b_8334",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33597,
   "name": "b_833D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33608,
   "name": "b_8348",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33612,
   "name": "b_834C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33621,
   "name": "next_inline_byte",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33629,
   "name": "b_835D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33632,
   "name": "print_inline",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33641,
   "name": "b_8369",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33648,
   "name": "b_8370",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33670,
   "name": "b_8386",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33682,
   "name": "irq_play",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33708,
   "name": "b_83AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33723,
   "name": "b_83BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33759,
   "name": "read_stick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33787,
   "name": "b_83FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33796,
   "name": "b_8404",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33804,
   "name": "a_840C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33805,
   "name": "irq_play_install",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33826,
   "name": "b_8422",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33835,
   "name": "j_842B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33906,
   "name": "clear_play_memory",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33915,
   "name": "clear_planes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33950,
   "name": "b_849E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33953,
   "name": "j_84A1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33965,
   "name": "copy_bitmap_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33987,
   "name": "b_84C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34007,
   "name": "draw_border_solid",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34029,
   "name": "draw_border",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34055,
   "name": "draw_rect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34127,
   "name": "draw_rect_outer",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34215,
   "name": "timer_bar_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34221,
   "name": "b_85AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34235,
   "name": "b_85BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34239,
   "name": "j_85BF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34268,
   "name": "timer_bar_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34301,
   "name": "timer_bar_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34307,
   "name": "b_8603",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34325,
   "name": "b_8615",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34328,
   "name": "b_8618",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34346,
   "name": "b_862A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34349,
   "name": "r_862D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34350,
   "name": "timer_bar_eat_top",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34380,
   "name": "b_864C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34382,
   "name": "r_864E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34383,
   "name": "timer_bar_eat_bottom",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34411,
   "name": "b_866B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34414,
   "name": "timer_bar_empty",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34433,
   "name": "b_8681",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34472,
   "name": "r_86A8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34473,
   "name": "score_to_digits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34494,
   "name": "b_86BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34496,
   "name": "b_86C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34546,
   "name": "b_86F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34556,
   "name": "b_86FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34564,
   "name": "b_8704",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34578,
   "name": "r_8712",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34579,
   "name": "digit_store",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34595,
   "name": "bcd_work",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34596,
   "name": "a_8724",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34597,
   "name": "bcd_work_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34598,
   "name": "bcd_work_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34599,
   "name": "bcd_work_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34600,
   "name": "pow10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34636,
   "name": "digits_out",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34645,
   "name": "draw_glyph",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34671,
   "name": "b_876F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34675,
   "name": "b_8773",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34684,
   "name": "b_877C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34688,
   "name": "b_8780",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34697,
   "name": "copy_panel_glyphs",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34701,
   "name": "b_878D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34715,
   "name": "b_879B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34728,
   "name": "unused_glyph16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34764,
   "name": "sound_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34767,
   "name": "sound_off_quick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34787,
   "name": "b_87E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34788,
   "name": "fade_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34791,
   "name": "b_87E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34796,
   "name": "b_87EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34814,
   "name": "b_87FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34820,
   "name": "b_8804",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34834,
   "name": "music_flag2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34835,
   "name": "sfx_lock",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34836,
   "name": "play_sfx",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34861,
   "name": "b_882D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34866,
   "name": "sfx_start_now",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34869,
   "name": "r_8835",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34870,
   "name": "sound_off_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34871,
   "name": "copy_2000_to_E000",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34878,
   "name": "copy_E000_to_C000",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34885,
   "name": "copy_C000_to_6000",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34892,
   "name": "copy_music_to_E000",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34899,
   "name": "copy_plane",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34918,
   "name": "b_8866",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34932,
   "name": "b_8874",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34945,
   "name": "nibble_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34947,
   "name": "merge_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34950,
   "name": "merge_column24",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34954,
   "name": "b_888A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34999,
   "name": "panel_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35000,
   "name": "redraw_panel_edges",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35012,
   "name": "redraw_panel_strips",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35017,
   "name": "b_88C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35019,
   "name": "b_88CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35022,
   "name": "b_88CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35068,
   "name": "b_88FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35070,
   "name": "b_88FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35073,
   "name": "b_8901",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35117,
   "name": "round_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35216,
   "name": "new_game",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35357,
   "name": "game_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35364,
   "name": "j_8A24",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35424,
   "name": "j_8A60",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35443,
   "name": "j_8A73",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35482,
   "name": "b_8A9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35489,
   "name": "b_8AA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35501,
   "name": "b_8AAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35515,
   "name": "b_8ABB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35524,
   "name": "fuse_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35550,
   "name": "b_8ADE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35573,
   "name": "r_8AF5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35574,
   "name": "fuse_off",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 35592,
   "name": "count_8B08",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35595,
   "name": "flag_8B0B",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35596,
   "name": "marker_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35608,
   "name": "b_8B18",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35610,
   "name": "b_8B1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35630,
   "name": "b_8B2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35634,
   "name": "r_8B32",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35635,
   "name": "b_8B33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35638,
   "name": "marker_step_slow",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 35650,
   "name": "b_8B42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35652,
   "name": "b_8B44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35661,
   "name": "b_8B4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35679,
   "name": "b_8B5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35718,
   "name": "b_8B86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35734,
   "name": "b_8B96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35750,
   "name": "b_8BA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35766,
   "name": "b_8BB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35769,
   "name": "b_8BB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35775,
   "name": "j_8BBF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35792,
   "name": "b_8BD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35797,
   "name": "marker_try_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35836,
   "name": "b_8BFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35839,
   "name": "marker_try_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35878,
   "name": "b_8C26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35881,
   "name": "marker_try_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35920,
   "name": "b_8C50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35923,
   "name": "marker_try_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35962,
   "name": "b_8C7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35965,
   "name": "marker_check_edge",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35981,
   "name": "r_8C8D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35982,
   "name": "b_8C8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36019,
   "name": "b_8CB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36036,
   "name": "r_8CC4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36037,
   "name": "move_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36038,
   "name": "marker_move",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36042,
   "name": "marker_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36061,
   "name": "b_8CDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36105,
   "name": "test_pixel2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36112,
   "name": "pixel_addr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36147,
   "name": "check_death",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36152,
   "name": "b_8D38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36154,
   "name": "life_lost",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36230,
   "name": "b_8D86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36233,
   "name": "b_8D89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36246,
   "name": "b_8D96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36252,
   "name": "marker_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36278,
   "name": "other_player_out",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36279,
   "name": "after_claim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36286,
   "name": "b_8DBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36291,
   "name": "b_8DC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36307,
   "name": "b_8DD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36360,
   "name": "claim_wait",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36371,
   "name": "claim_check",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36382,
   "name": "b_8E1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36405,
   "name": "b_8E35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36408,
   "name": "b_8E38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36422,
   "name": "b_8E46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36444,
   "name": "b_8E5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36447,
   "name": "bonus_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36448,
   "name": "score_fill",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36461,
   "name": "b_8E6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36465,
   "name": "b_8E71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36470,
   "name": "b_8E76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36486,
   "name": "b_8E86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36514,
   "name": "b_8EA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36535,
   "name": "area_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36536,
   "name": "area_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36537,
   "name": "add_score",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36573,
   "name": "b_8EDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36602,
   "name": "level_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36640,
   "name": "b_8F20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36643,
   "name": "unwind_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36644,
   "name": "unwind_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36654,
   "name": "b_8F2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36687,
   "name": "b_8F4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36720,
   "name": "b_8F70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36729,
   "name": "b_8F79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36738,
   "name": "b_8F82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36748,
   "name": "save_player1_state",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36750,
   "name": "b_8F8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36766,
   "name": "clear_player_state",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36770,
   "name": "b_8FA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36794,
   "name": "switch_player",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36804,
   "name": "b_8FC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36821,
   "name": "b_8FD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36868,
   "name": "rebuild_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36891,
   "name": "b_901B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36898,
   "name": "b_9022",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36913,
   "name": "b_9031",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36917,
   "name": "b_9035",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36940,
   "name": "wait_bottom_sprites_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36947,
   "name": "b_9053",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36961,
   "name": "level_params",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36971,
   "name": "b_906B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37003,
   "name": "level_params_2a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 37042,
   "name": "b_90B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37096,
   "name": "b_90E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37099,
   "name": "a_90EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37100,
   "name": "b_90EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37139,
   "name": "add_bonus",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37154,
   "name": "roamer_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37155,
   "name": "sprites_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37174,
   "name": "b_9136",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37247,
   "name": "marker_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37333,
   "name": "lvl_91D5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37334,
   "name": "lvl_91D6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37335,
   "name": "lvl_91D7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37336,
   "name": "timer_stopped",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37337,
   "name": "timer_limit",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37338,
   "name": "qix_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37359,
   "name": "b_91EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37516,
   "name": "qix_limits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37549,
   "name": "qix1_move_y1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37563,
   "name": "b_92BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37581,
   "name": "b_92CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37584,
   "name": "qix1_move_x1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37598,
   "name": "b_92DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37616,
   "name": "b_92F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37619,
   "name": "qix1_move_y2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37633,
   "name": "b_9301",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37651,
   "name": "b_9313",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37662,
   "name": "b_931E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37683,
   "name": "b_9333",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37690,
   "name": "b_933A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37695,
   "name": "qix1_move_x2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37709,
   "name": "b_934D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37727,
   "name": "b_935F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37738,
   "name": "b_936A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37759,
   "name": "b_937F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37766,
   "name": "b_9386",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37771,
   "name": "qix2_move_y1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37785,
   "name": "b_9399",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37803,
   "name": "b_93AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37806,
   "name": "qix2_move_y2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37820,
   "name": "b_93BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37838,
   "name": "b_93CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37849,
   "name": "b_93D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37870,
   "name": "b_93EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37877,
   "name": "b_93F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37882,
   "name": "qix2_move_x1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37896,
   "name": "b_9408",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37914,
   "name": "b_941A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37917,
   "name": "qix2_move_x2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37931,
   "name": "b_942B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37949,
   "name": "b_943D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37960,
   "name": "b_9448",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37981,
   "name": "b_945D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37988,
   "name": "b_9464",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37993,
   "name": "var_9469",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37994,
   "name": "qix_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38006,
   "name": "b_9476",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38044,
   "name": "b_949C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38100,
   "name": "b_94D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38102,
   "name": "b_94D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38118,
   "name": "b_94E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38129,
   "name": "b_94F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38144,
   "name": "b_9500",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38159,
   "name": "b_950F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38174,
   "name": "b_951E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38189,
   "name": "b_952D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38231,
   "name": "b_9557",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38264,
   "name": "b_9578",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38309,
   "name": "b_95A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38315,
   "name": "qix2_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38353,
   "name": "b_95D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38409,
   "name": "b_9609",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38411,
   "name": "b_960B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38431,
   "name": "b_961F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38446,
   "name": "b_962E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38461,
   "name": "b_963D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38476,
   "name": "b_964C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38518,
   "name": "b_9676",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38551,
   "name": "b_9697",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38596,
   "name": "b_96C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38602,
   "name": "qix1_check_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38658,
   "name": "b_9702",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38688,
   "name": "b_9720",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38712,
   "name": "b_9738",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38742,
   "name": "b_9756",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38772,
   "name": "j_9774",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38810,
   "name": "b_979A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38815,
   "name": "qix1_store_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38838,
   "name": "qix2_check_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38894,
   "name": "b_97EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38924,
   "name": "b_980C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38948,
   "name": "b_9824",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38978,
   "name": "b_9842",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39008,
   "name": "j_9860",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39046,
   "name": "b_9886",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39051,
   "name": "qix2_store_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39074,
   "name": "draw_qix_line",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39077,
   "name": "erase_segment",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39096,
   "name": "line_begin",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39108,
   "name": "b_98C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39111,
   "name": "qix_pattern",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39117,
   "name": "b_98CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39127,
   "name": "qix_patterns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39131,
   "name": "new_turn_time",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39142,
   "name": "b_98E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39144,
   "name": "b_98E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39147,
   "name": "qix_colour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39155,
   "name": "fill_1k",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39161,
   "name": "b_98F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39172,
   "name": "fill_plane",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39178,
   "name": "b_990A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39188,
   "name": "b_9914",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39196,
   "name": "draw_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39221,
   "name": "b_9935",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39277,
   "name": "b_996D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39301,
   "name": "b_9985",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39306,
   "name": "b_998A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39329,
   "name": "b_99A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39331,
   "name": "draw_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39339,
   "name": "b_99AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39348,
   "name": "draw_advance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39383,
   "name": "b_99D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39399,
   "name": "b_99E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39415,
   "name": "b_99F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39431,
   "name": "b_9A07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39434,
   "name": "j_9A0A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39463,
   "name": "j_9A27",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39492,
   "name": "draw_check",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39518,
   "name": "b_9A5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39530,
   "name": "r_9A6A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39531,
   "name": "b_9A6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39539,
   "name": "b_9A73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39594,
   "name": "r_9AAA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39595,
   "name": "plot_line_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39698,
   "name": "b_9B12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39711,
   "name": "b_9B1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39724,
   "name": "b_9B2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39738,
   "name": "spritz_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39768,
   "name": "b_9B58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39791,
   "name": "b_9B6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39817,
   "name": "b_9B89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39849,
   "name": "b_9BA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39872,
   "name": "b_9BC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39895,
   "name": "r_9BD7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39896,
   "name": "b_9BD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39929,
   "name": "diag_offset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39946,
   "name": "b_9C0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39949,
   "name": "b_9C0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39952,
   "name": "b_9C10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39955,
   "name": "b_9C13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39958,
   "name": "spritz1_spawn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39975,
   "name": "spritz1_wait",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39990,
   "name": "spritz2_spawn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40007,
   "name": "spritz2_wait",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40022,
   "name": "roam_wait1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40023,
   "name": "roam_wait2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40024,
   "name": "midpoint_toggle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40025,
   "name": "qix_midpoint",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40039,
   "name": "b_9C67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40059,
   "name": "b_9C7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40064,
   "name": "j_9C80",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40085,
   "name": "b_9C95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40090,
   "name": "j_9C9A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40092,
   "name": "b_9C9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40112,
   "name": "b_9CB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40117,
   "name": "j_9CB5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40138,
   "name": "b_9CCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40143,
   "name": "j_9CCF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40145,
   "name": "roam_probe",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40153,
   "name": "b_9CD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40162,
   "name": "b_9CE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40177,
   "name": "b_9CF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40189,
   "name": "j_9CFD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40233,
   "name": "b_9D29",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40261,
   "name": "b_9D45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40263,
   "name": "roam_next_dir",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40276,
   "name": "b_9D54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40298,
   "name": "probe_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40299,
   "name": "roam_lookup",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40304,
   "name": "b_9D70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40327,
   "name": "b_9D87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40330,
   "name": "b_9D8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40352,
   "name": "b_9DA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40356,
   "name": "b_9DA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40360,
   "name": "b_9DA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40364,
   "name": "b_9DAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40368,
   "name": "roam_turn_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40396,
   "name": "roam_turn_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40424,
   "name": "roam_turn_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40452,
   "name": "roam_turn_8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40480,
   "name": "roam_patterns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40508,
   "name": "roam_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40509,
   "name": "a_9E3D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40510,
   "name": "roam_vars_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40511,
   "name": "roam_vars_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40513,
   "name": "roam_vars_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40514,
   "name": "roam_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40526,
   "name": "roam_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40538,
   "name": "roam_bits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40550,
   "name": "unused_9e66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40587,
   "name": "unused_9e8b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40606,
   "name": "b_9E9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40608,
   "name": "sprite_colours_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40610,
   "name": "b_9EA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40642,
   "name": "marker_pixel_addr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40674,
   "name": "marker_bitmap_addr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40721,
   "name": "walk_cand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40722,
   "name": "a_9F12",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40723,
   "name": "walk_cand_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40724,
   "name": "walk_cand_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40725,
   "name": "walk_cand_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40726,
   "name": "walk_cand_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40727,
   "name": "walk_cand_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40728,
   "name": "walk_cand_7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40729,
   "name": "walk_cand_8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40730,
   "name": "walk_cand_9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40731,
   "name": "walk_cand_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40732,
   "name": "walk_cand_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40733,
   "name": "walker_step_ccw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40752,
   "name": "b_9F30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40768,
   "name": "b_9F40",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40776,
   "name": "j_9F48",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40781,
   "name": "b_9F4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40798,
   "name": "b_9F5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40802,
   "name": "j_9F62",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40812,
   "name": "b_9F6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40815,
   "name": "walker_step_cw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40834,
   "name": "b_9F82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40850,
   "name": "b_9F92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40858,
   "name": "j_9F9A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40863,
   "name": "b_9F9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40880,
   "name": "b_9FB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40884,
   "name": "j_9FB4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40894,
   "name": "b_9FBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40897,
   "name": "walk_choose",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40968,
   "name": "b_A008",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40980,
   "name": "b_A014",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40997,
   "name": "b_A025",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41013,
   "name": "b_A035",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41029,
   "name": "b_A045",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41045,
   "name": "b_A055",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41059,
   "name": "walk_distance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41070,
   "name": "b_A06E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41084,
   "name": "b_A07C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41094,
   "name": "a_A086",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41095,
   "name": "sprite_x_hi_clear",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41107,
   "name": "sprite_x_hi_set",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41119,
   "name": "reverse_dir",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41142,
   "name": "b_A0B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41146,
   "name": "b_A0BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41150,
   "name": "b_A0BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41154,
   "name": "b_A0C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41158,
   "name": "place_enemy_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41188,
   "name": "b_A0E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41211,
   "name": "b_A0FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41219,
   "name": "b_A103",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41223,
   "name": "r_A107",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41224,
   "name": "walker_pair_a_sync",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41247,
   "name": "r_A11F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41248,
   "name": "walker_pair_b_sync",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41271,
   "name": "r_A137",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41272,
   "name": "walker_pair_c_sync",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41295,
   "name": "r_A14F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41296,
   "name": "reverse_dir2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41317,
   "name": "b_A165",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41321,
   "name": "b_A169",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41325,
   "name": "b_A16D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41329,
   "name": "b_A171",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41333,
   "name": "enemies_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41344,
   "name": "b_A180",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41354,
   "name": "b_A18A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41364,
   "name": "b_A194",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41384,
   "name": "b_A1A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41404,
   "name": "b_A1BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41407,
   "name": "r_A1BF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41408,
   "name": "walker_pair_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41416,
   "name": "b_A1C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41437,
   "name": "b_A1DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41457,
   "name": "b_A1F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41465,
   "name": "j_A1F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41480,
   "name": "b_A208",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41500,
   "name": "b_A21C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41508,
   "name": "j_A224",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41530,
   "name": "walker_pair_b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41570,
   "name": "b_A262",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41578,
   "name": "j_A26A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41594,
   "name": "b_A27A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41606,
   "name": "b_A286",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41647,
   "name": "walker_b1_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41654,
   "name": "b_A2B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41667,
   "name": "b_A2C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41687,
   "name": "b_A2D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41695,
   "name": "j_A2DF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41700,
   "name": "walker_b2_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41707,
   "name": "b_A2EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41717,
   "name": "b_A2F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41737,
   "name": "b_A309",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41745,
   "name": "j_A311",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41750,
   "name": "walker_pair_c",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41758,
   "name": "b_A31E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41779,
   "name": "b_A333",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41803,
   "name": "b_A34B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41811,
   "name": "j_A353",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41826,
   "name": "b_A362",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41846,
   "name": "b_A376",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41854,
   "name": "j_A37E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41876,
   "name": "edge_addr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41902,
   "name": "is_edge",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 41917,
   "name": "b_A3BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41919,
   "name": "walk_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41950,
   "name": "b_A3DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41952,
   "name": "b_A3E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41954,
   "name": "b_A3E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41956,
   "name": "b_A3E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41970,
   "name": "walk_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42001,
   "name": "b_A411",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42003,
   "name": "b_A413",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42005,
   "name": "b_A415",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42007,
   "name": "b_A417",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42021,
   "name": "walk_ahead",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42052,
   "name": "b_A444",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42054,
   "name": "b_A446",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42056,
   "name": "b_A448",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42058,
   "name": "b_A44A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42072,
   "name": "walk_back",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42107,
   "name": "b_A47B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42109,
   "name": "b_A47D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42111,
   "name": "b_A47F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42113,
   "name": "b_A481",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42127,
   "name": "dir_towards",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42137,
   "name": "b_A499",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42141,
   "name": "b_A49D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42149,
   "name": "b_A4A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42153,
   "name": "sprite_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42158,
   "name": "b_A4AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42173,
   "name": "b_A4BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42206,
   "name": "b_A4DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42246,
   "name": "b_A506",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42264,
   "name": "sprite_anim2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42302,
   "name": "b_A53E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42321,
   "name": "unused_a551",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42325,
   "name": "negate_speed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42327,
   "name": "random_speed_pos",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42340,
   "name": "random_speed_neg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42353,
   "name": "random_speed1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42368,
   "name": "b_A580",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42381,
   "name": "random",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42383,
   "name": "random_range",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42460,
   "name": "b_A5DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42470,
   "name": "b_A5E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42479,
   "name": "a_A5EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42481,
   "name": "random_range_62",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42484,
   "name": "line_start_plot",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42486,
   "name": "line_start_test",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42540,
   "name": "line_to",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42556,
   "name": "b_A63C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42574,
   "name": "b_A64E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42595,
   "name": "b_A663",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42612,
   "name": "b_A674",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42616,
   "name": "b_A678",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42631,
   "name": "b_A687",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42633,
   "name": "b_A689",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42636,
   "name": "j_A68C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42638,
   "name": "line_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42657,
   "name": "b_A6A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42683,
   "name": "b_A6BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42703,
   "name": "b_A6CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42711,
   "name": "demo_round_intro",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42728,
   "name": "round_intro",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42753,
   "name": "b_A701",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42756,
   "name": "j_A704",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42761,
   "name": "burst_replay",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42854,
   "name": "b_A766",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42865,
   "name": "b_A771",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42868,
   "name": "marker_burst",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42919,
   "name": "burst_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42939,
   "name": "b_A7BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42962,
   "name": "b_A7D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42985,
   "name": "b_A7E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43008,
   "name": "b_A800",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43092,
   "name": "b_A854",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43106,
   "name": "b_A862",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43109,
   "name": "b_A865",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43115,
   "name": "b_A86B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43121,
   "name": "b_A871",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43135,
   "name": "b_A87F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43146,
   "name": "b_A88A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43148,
   "name": "burst_place_1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43151,
   "name": "burst_place_2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43154,
   "name": "burst_place_4",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43157,
   "name": "burst_frame_ee",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43217,
   "name": "b_A8D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43226,
   "name": "b_A8DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43240,
   "name": "unused_a8e8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43248,
   "name": "burst_frame_149",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43274,
   "name": "fill_find_side",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43286,
   "name": "b_A916",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43309,
   "name": "fill_follow_check",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 43312,
   "name": "fill_follow_up",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43332,
   "name": "b_A944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43349,
   "name": "fill_follow_right",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 43372,
   "name": "b_A96C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43389,
   "name": "fill_follow_down",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 43412,
   "name": "b_A994",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43429,
   "name": "fill_follow_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43452,
   "name": "b_A9BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43472,
   "name": "fill_edge_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43484,
   "name": "fill_edge_test_empty",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43497,
   "name": "r_A9E9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43498,
   "name": "fill_at_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43517,
   "name": "r_A9FD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43518,
   "name": "unused_set_pixel1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43532,
   "name": "unused_set_pixel3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43546,
   "name": "fill_push",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43550,
   "name": "b_AA1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43573,
   "name": "b_AA35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43583,
   "name": "line_begin_erase",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43589,
   "name": "line_begin_all",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43595,
   "name": "line_begin_alt",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43601,
   "name": "line_begin_alt2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43607,
   "name": "line_begin_common",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43659,
   "name": "plot_all",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43682,
   "name": "b_AAA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43703,
   "name": "b_AAB7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43710,
   "name": "b_AABE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43718,
   "name": "b_AAC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43726,
   "name": "line_all_to",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43742,
   "name": "b_AADE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43760,
   "name": "b_AAF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43781,
   "name": "b_AB05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43798,
   "name": "b_AB16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43802,
   "name": "b_AB1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43817,
   "name": "b_AB29",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43819,
   "name": "b_AB2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43822,
   "name": "j_AB2E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43824,
   "name": "line_all_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43838,
   "name": "b_AB3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43864,
   "name": "b_AB58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43884,
   "name": "b_AB6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43892,
   "name": "sprites_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43907,
   "name": "b_AB83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43948,
   "name": "fill_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43951,
   "name": "b_ABAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43974,
   "name": "b_ABC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43978,
   "name": "b_ABCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43982,
   "name": "fill_column",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43991,
   "name": "b_ABD7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44012,
   "name": "b_ABEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44042,
   "name": "b_AC0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44061,
   "name": "b_AC1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44089,
   "name": "b_AC39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44131,
   "name": "b_AC63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44153,
   "name": "b_AC79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44157,
   "name": "fill_pixel",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44195,
   "name": "a_ACA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44214,
   "name": "b_ACB6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44222,
   "name": "b_ACBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44241,
   "name": "b_ACD1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44266,
   "name": "b_ACEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44270,
   "name": "b_ACEE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44295,
   "name": "b_AD07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44299,
   "name": "b_AD0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44320,
   "name": "b_AD20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44331,
   "name": "b_AD2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44342,
   "name": "b_AD36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44354,
   "name": "b_AD42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44356,
   "name": "b_AD44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44367,
   "name": "b_AD4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44387,
   "name": "fill_pixel_e6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44388,
   "name": "pixel_op",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44420,
   "name": "r_AD84",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44421,
   "name": "b_AD85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44443,
   "name": "b_AD9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44477,
   "name": "r_ADBD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44478,
   "name": "b_ADBE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44495,
   "name": "b_ADCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44519,
   "name": "r_ADE7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44520,
   "name": "line_walkers",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44521,
   "name": "a_ADE9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44522,
   "name": "line_walkers_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44523,
   "name": "line_walkers_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44524,
   "name": "line_walkers_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44525,
   "name": "line_walkers_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44526,
   "name": "line_walkers_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44527,
   "name": "line_walkers_7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44528,
   "name": "line_walkers_8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44529,
   "name": "line_walkers_9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44530,
   "name": "line_walkers_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44531,
   "name": "line_walkers_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44532,
   "name": "line_walkers_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44533,
   "name": "line_walkers_d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44534,
   "name": "line_walkers_e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44535,
   "name": "line_walkers_f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44538,
   "name": "line_walkers_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44539,
   "name": "line_walkers_13",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44540,
   "name": "line_walkers_14",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44541,
   "name": "line_walkers_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44542,
   "name": "line_walkers_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44543,
   "name": "line_walkers_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44544,
   "name": "line_walkers_18",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44545,
   "name": "line_walkers_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44546,
   "name": "line_walkers_1a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44547,
   "name": "line_walkers_1b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44548,
   "name": "fuse_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44570,
   "name": "chaser_b1_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44592,
   "name": "chaser_b2_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44614,
   "name": "tracer1_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44636,
   "name": "tracer2_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44658,
   "name": "tracer3_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44680,
   "name": "tracer4_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44702,
   "name": "line_walk_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44754,
   "name": "b_AED2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44761,
   "name": "b_AED9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44774,
   "name": "r_AEE6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44775,
   "name": "b_AEE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44788,
   "name": "r_AEF4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44789,
   "name": "b_AEF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44802,
   "name": "r_AF02",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44803,
   "name": "b_AF03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44816,
   "name": "r_AF10",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44817,
   "name": "walk_try_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44830,
   "name": "r_AF1E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44831,
   "name": "walk_try_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44844,
   "name": "r_AF2C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44845,
   "name": "walk_try_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44858,
   "name": "r_AF3A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44859,
   "name": "walk_try_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44872,
   "name": "r_AF48",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44873,
   "name": "on_line_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44918,
   "name": "b_AF76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44930,
   "name": "line_walkers_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45006,
   "name": "fuse_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45011,
   "name": "fuse_advance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45016,
   "name": "b_AFD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45021,
   "name": "b_AFDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45060,
   "name": "fuse_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45079,
   "name": "b_B017",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45107,
   "name": "split_unmark_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45131,
   "name": "r_B04B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45132,
   "name": "split_mark_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45153,
   "name": "r_B061",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45154,
   "name": "e000_addr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45180,
   "name": "split_mark",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45186,
   "name": "b_B082",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45230,
   "name": "b_B0AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45235,
   "name": "r_B0B3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45236,
   "name": "split_unmark",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45242,
   "name": "b_B0BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45286,
   "name": "b_B0E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45291,
   "name": "r_B0EB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45292,
   "name": "split_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45304,
   "name": "b_B0F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45339,
   "name": "b_B11B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45370,
   "name": "split_follow_check",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 45373,
   "name": "split_follow",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45398,
   "name": "b_B156",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45426,
   "name": "b_B172",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45454,
   "name": "b_B18E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45485,
   "name": "a_B1AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45486,
   "name": "split_follow_71",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45487,
   "name": "split_edge_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45501,
   "name": "b_B1BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45518,
   "name": "b_B1CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45520,
   "name": "b_B1D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45528,
   "name": "unused_b1d8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45568,
   "name": "chaser_b1_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45578,
   "name": "b_B20A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45582,
   "name": "b_B20E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45597,
   "name": "chaser_b2_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45607,
   "name": "b_B227",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45611,
   "name": "b_B22B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45626,
   "name": "chased_down",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 45635,
   "name": "finish_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45679,
   "name": "b_B26F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45694,
   "name": "b_B27E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45704,
   "name": "b_B288",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45720,
   "name": "b_B298",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45753,
   "name": "b_B2B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45772,
   "name": "b_B2CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45778,
   "name": "e000_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45812,
   "name": "unwind_trail",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45827,
   "name": "b_B303",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45898,
   "name": "b_B34A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45904,
   "name": "err_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45909,
   "name": "fill_vars_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45947,
   "name": "err_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45952,
   "name": "from_marker",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45969,
   "name": "perimeter_walk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46161,
   "name": "b_B451",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46164,
   "name": "b_B454",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46167,
   "name": "b_B457",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46170,
   "name": "b_B45A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46173,
   "name": "perimeter_check",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 46176,
   "name": "perimeter_up",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46201,
   "name": "b_B479",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46204,
   "name": "perimeter_right",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46229,
   "name": "b_B495",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46232,
   "name": "perimeter_down",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46257,
   "name": "b_B4B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46260,
   "name": "perimeter_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46288,
   "name": "perimeter_dirs",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46306,
   "name": "b_B4E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46312,
   "name": "edge_step_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46360,
   "name": "b_B518",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46365,
   "name": "b_B51D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46367,
   "name": "b_B51F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46383,
   "name": "perimeter_mode",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46384,
   "name": "sparx_start_point",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46390,
   "name": "sparx_start_find",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46416,
   "name": "walkers_place",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46471,
   "name": "sparx_start",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46472,
   "name": "a_B588",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46473,
   "name": "roam2_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46503,
   "name": "b_B5A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46526,
   "name": "b_B5BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46552,
   "name": "b_B5D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46584,
   "name": "roam2_second",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 46607,
   "name": "b_B60F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46630,
   "name": "r_B626",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46631,
   "name": "b_B627",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46664,
   "name": "roam2a_spawn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46681,
   "name": "roam2a_wait",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46693,
   "name": "roam2b_spawn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46710,
   "name": "roam2b_wait",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46722,
   "name": "roam2_waits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46723,
   "name": "a_B683",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46724,
   "name": "roam_probe_alt",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46733,
   "name": "b_B68D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46748,
   "name": "b_B69C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46760,
   "name": "unused_b6a8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47104,
   "name": "music_stop",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47107,
   "name": "sfx_update_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47110,
   "name": "j_B806",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47113,
   "name": "sfx_state",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47116,
   "name": "f_B80C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47119,
   "name": "sfx_state_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47122,
   "name": "sfx_state_9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47125,
   "name": "sfx_state_c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47128,
   "name": "sfx_state_f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47131,
   "name": "sfx_state_12",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47134,
   "name": "sfx_state_15",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47137,
   "name": "sfx_state_18",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47140,
   "name": "sfx_state_1b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47143,
   "name": "sfx_state_1e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47146,
   "name": "sfx_state_21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47149,
   "name": "sfx_state_24",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47152,
   "name": "sfx_state_27",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47153,
   "name": "sfx_state_28",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47154,
   "name": "sfx_state_29",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47155,
   "name": "sfx_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47159,
   "name": "b_B837",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47182,
   "name": "b_B84E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47195,
   "name": "r_B85B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47196,
   "name": "sfx_load",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47208,
   "name": "j_B868",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47237,
   "name": "sfx_request",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47248,
   "name": "b_B890",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47253,
   "name": "a_B895",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47254,
   "name": "sfx_request_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47255,
   "name": "sfx_request_12",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47258,
   "name": "sfx_update",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47271,
   "name": "b_B8A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47284,
   "name": "b_B8B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47286,
   "name": "b_B8B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47295,
   "name": "sfx_voice",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47301,
   "name": "b_B8C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47319,
   "name": "b_B8D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47337,
   "name": "b_B8E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47346,
   "name": "b_B8F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47384,
   "name": "b_B918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47400,
   "name": "b_B928",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47411,
   "name": "b_B933",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47420,
   "name": "b_B93C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47431,
   "name": "j_B947",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47441,
   "name": "sfx_read",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47463,
   "name": "a_B967",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47464,
   "name": "sfx_read_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47465,
   "name": "b_B969",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47510,
   "name": "b_B996",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47520,
   "name": "sfx_read_4f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47527,
   "name": "sfx_read_56",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47559,
   "name": "b_B9C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47648,
   "name": "sfx_cmd_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47655,
   "name": "sfx_cmd_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47662,
   "name": "sfx_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47678,
   "name": "sfx_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47694,
   "name": "sfx_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47706,
   "name": "sfx_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47718,
   "name": "sfx_headers",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47772,
   "name": "sfx_scripts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48184,
   "name": "unused_bc38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48384,
   "name": "font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "attract_demo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49153,
   "name": "a_C001",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49154,
   "name": "err_addr_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49169,
   "name": "b_C011",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49322,
   "name": "b_C0AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49341,
   "name": "b_C0BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49366,
   "name": "b_C0D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49380,
   "name": "b_C0E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49428,
   "name": "b_C114",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49450,
   "name": "b_C12A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49464,
   "name": "b_C138",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49505,
   "name": "b_C161",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49536,
   "name": "b_C180",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49558,
   "name": "b_C196",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49615,
   "name": "b_C1CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49640,
   "name": "b_C1E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49653,
   "name": "b_C1F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49681,
   "name": "b_C211",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49706,
   "name": "b_C22A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49720,
   "name": "b_C238",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49755,
   "name": "b_C25B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49769,
   "name": "b_C269",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49806,
   "name": "b_C28E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49820,
   "name": "b_C29C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49851,
   "name": "b_C2BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49896,
   "name": "b_C2E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49909,
   "name": "b_C2F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49929,
   "name": "b_C309",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49942,
   "name": "name_scene",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49947,
   "name": "demo_box_script",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49950,
   "name": "f_C31E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49953,
   "name": "demo_box_script_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49956,
   "name": "demo_box_script_9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49959,
   "name": "demo_box_script_c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49963,
   "name": "demo_box_script_10",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49967,
   "name": "demo_moves_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49972,
   "name": "demo_moves_len",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49977,
   "name": "demo_spiral_dirs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49991,
   "name": "demo_spiral_len",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50005,
   "name": "demo_text1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50008,
   "name": "txt_demo_text1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50055,
   "name": "after_demo_text1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50056,
   "name": "demo_text2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50059,
   "name": "txt_demo_text2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50102,
   "name": "after_demo_text2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50103,
   "name": "demo_text3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50106,
   "name": "txt_demo_text3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50118,
   "name": "after_demo_text3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50119,
   "name": "demo_text4",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50122,
   "name": "txt_demo_text4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50134,
   "name": "after_demo_text4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50135,
   "name": "demo_text5",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50138,
   "name": "txt_demo_text5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50161,
   "name": "after_demo_text5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50162,
   "name": "demo_text6",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50165,
   "name": "txt_demo_text6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50177,
   "name": "after_demo_text6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50178,
   "name": "demo_text7",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50181,
   "name": "txt_demo_text7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50191,
   "name": "after_demo_text7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50192,
   "name": "demo_text8",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50195,
   "name": "txt_demo_text8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50205,
   "name": "after_demo_text8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50206,
   "name": "demo_text9",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50209,
   "name": "txt_demo_text9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50220,
   "name": "after_demo_text9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50221,
   "name": "demo_text10",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50224,
   "name": "txt_demo_text10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50255,
   "name": "after_demo_text10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50256,
   "name": "demo_text11",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50259,
   "name": "txt_demo_text11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50339,
   "name": "after_demo_text11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50340,
   "name": "demo_wait_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50342,
   "name": "b_C4A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50347,
   "name": "b_C4AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50360,
   "name": "b_C4B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50380,
   "name": "irq_demo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50414,
   "name": "b_C4EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50426,
   "name": "b_C4FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50462,
   "name": "demo_line_done",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50467,
   "name": "b_C523",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50483,
   "name": "b_C533",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50501,
   "name": "j_C545",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 50512,
   "name": "b_C550",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50521,
   "name": "demo_qix_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50554,
   "name": "b_C57A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50655,
   "name": "r_C5DF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 50656,
   "name": "demo_round_vars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50718,
   "name": "demo_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50732,
   "name": "b_C62C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50734,
   "name": "b_C62E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50737,
   "name": "b_C631",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50783,
   "name": "b_C65F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50785,
   "name": "b_C661",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50788,
   "name": "b_C664",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50832,
   "name": "show_title_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 50878,
   "name": "b_C6BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50898,
   "name": "b_C6D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50929,
   "name": "b_C6F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 50973,
   "name": "show_menu_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51024,
   "name": "unpack_menu",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 51026,
   "name": "b_C752",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51040,
   "name": "b_C760",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51046,
   "name": "b_C766",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51053,
   "name": "b_C76D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51056,
   "name": "b_C770",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51065,
   "name": "b_C779",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51083,
   "name": "b_C78B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51094,
   "name": "b_C796",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51104,
   "name": "menu_colours",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 51106,
   "name": "b_C7A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51137,
   "name": "b_C7C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 51181,
   "name": "title_screen_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51248,
   "name": "menu_draw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51283,
   "name": "unused_c853",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51712,
   "name": "demo_qix_path",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51840,
   "name": "demo_qix_y1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51968,
   "name": "demo_qix_y1_80",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52096,
   "name": "demo_qix_y1_100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52224,
   "name": "menu_colour_ram",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52480,
   "name": "menu_colour_ram_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52736,
   "name": "title_colour_ram",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 52992,
   "name": "title_colour_ram_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53248,
   "name": "menu_screen_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53504,
   "name": "menu_colours_d100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53760,
   "name": "menu_screen_colours_200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 54016,
   "name": "menu_screen_colours_300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 54272,
   "name": "title_screen_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54528,
   "name": "title_colours_d500",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 54784,
   "name": "title_screen_colours_200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55040,
   "name": "title_screen_colours_300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "menu_packed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55552,
   "name": "menu_packed_d900",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55808,
   "name": "menu_packed_200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56064,
   "name": "menu_packed_300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56320,
   "name": "menu_packed2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "music_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57347,
   "name": "music_stop_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57350,
   "name": "music_frame_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57353,
   "name": "music_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57354,
   "name": "music_vars_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57355,
   "name": "music_vars_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57356,
   "name": "music_vars_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57357,
   "name": "music_vars_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57358,
   "name": "music_vars_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57359,
   "name": "music_vars_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57360,
   "name": "music_vars_7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57361,
   "name": "music_vars_8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57362,
   "name": "music_vars_9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57363,
   "name": "music_vars_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57364,
   "name": "music_vars_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57365,
   "name": "music_vars_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57366,
   "name": "music_vars_d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57367,
   "name": "music_vars_e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57368,
   "name": "music_vars_f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57369,
   "name": "music_vars_10",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57370,
   "name": "music_vars_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57371,
   "name": "music_vars_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57372,
   "name": "music_vars_13",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57373,
   "name": "music_vars_14",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57374,
   "name": "music_vars_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57375,
   "name": "music_vars_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57376,
   "name": "music_vars_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57377,
   "name": "music_vars_18",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57378,
   "name": "music_vars_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57379,
   "name": "music_vars_1a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57380,
   "name": "music_vars_1b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57381,
   "name": "music_vars_1c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57382,
   "name": "music_vars_1d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57383,
   "name": "music_vars_1e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57384,
   "name": "music_vars_1f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57385,
   "name": "music_vars_20",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57386,
   "name": "music_vars_21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57387,
   "name": "music_vars_22",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57388,
   "name": "music_vars_23",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57389,
   "name": "music_vars_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57390,
   "name": "music_vars_25",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57391,
   "name": "music_vars_26",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57392,
   "name": "music_vars_27",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57393,
   "name": "music_vars_28",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57394,
   "name": "music_vars_29",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57395,
   "name": "music_vars_2a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57396,
   "name": "music_vars_2b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57397,
   "name": "music_vars_2c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57398,
   "name": "music_vars_2d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57399,
   "name": "music_vars_2e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57400,
   "name": "music_vars_2f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57401,
   "name": "music_vars_30",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57402,
   "name": "music_vars_31",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57403,
   "name": "music_vars_32",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57404,
   "name": "music_vars_33",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57405,
   "name": "music_vars_34",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57406,
   "name": "music_vars_35",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57407,
   "name": "music_vars_36",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57408,
   "name": "music_vars_37",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57409,
   "name": "music_vars_38",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57410,
   "name": "music_vars_39",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57411,
   "name": "music_vars_3a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57412,
   "name": "music_vars_3b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57413,
   "name": "music_vars_3c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57414,
   "name": "music_vars_3d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57415,
   "name": "music_vars_3e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57416,
   "name": "music_vars_3f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57417,
   "name": "music_vars_40",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57418,
   "name": "music_vars_41",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57419,
   "name": "music_vars_42",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57420,
   "name": "music_vars_43",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57421,
   "name": "music_vars_44",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57422,
   "name": "music_vars_45",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57423,
   "name": "music_vars_46",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57424,
   "name": "music_vars_47",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57425,
   "name": "music_vars_48",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57426,
   "name": "music_vars_49",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57427,
   "name": "music_vars_4a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57428,
   "name": "music_vars_4b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57429,
   "name": "music_vars_4c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57430,
   "name": "music_vars_4d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57431,
   "name": "music_vars_4e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57432,
   "name": "music_vars_4f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57433,
   "name": "music_vars_50",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57434,
   "name": "music_vars_51",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57435,
   "name": "music_vars_52",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57436,
   "name": "music_vars_53",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57437,
   "name": "music_vars_54",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57438,
   "name": "music_vars_55",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57439,
   "name": "music_vars_56",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57440,
   "name": "music_vars_57",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57441,
   "name": "music_vars_58",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57442,
   "name": "music_vars_59",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57443,
   "name": "music_vars_5a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57444,
   "name": "music_vars_5b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57445,
   "name": "music_vars_5c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57446,
   "name": "music_vars_5d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57447,
   "name": "music_vars_5e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57448,
   "name": "music_vars_5f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57449,
   "name": "music_vars_60",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57450,
   "name": "music_vars_61",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57451,
   "name": "music_vars_62",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57452,
   "name": "music_vars_63",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57453,
   "name": "music_vars_64",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57454,
   "name": "music_vars_65",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57455,
   "name": "music_vars_66",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57456,
   "name": "music_vars_67",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57457,
   "name": "music_vars_68",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57458,
   "name": "music_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57492,
   "name": "b_E094",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57579,
   "name": "b_E0EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57581,
   "name": "b_E0ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57595,
   "name": "music_halt",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57608,
   "name": "music_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57619,
   "name": "music_tick",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57620,
   "name": "voice1_frame",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 57628,
   "name": "b_E11C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57661,
   "name": "b_E13D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57676,
   "name": "b_E14C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57681,
   "name": "a_E151",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57693,
   "name": "b_E15D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57700,
   "name": "b_E164",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57730,
   "name": "b_E182",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57741,
   "name": "voice1_frame_79",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57765,
   "name": "b_E1A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57781,
   "name": "b_E1B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57806,
   "name": "b_E1CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57814,
   "name": "b_E1D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57817,
   "name": "voice1_set_freq",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57837,
   "name": "b_E1ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57838,
   "name": "a_E1EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57841,
   "name": "voice1_pwm",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57870,
   "name": "b_E20E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57873,
   "name": "b_E211",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57901,
   "name": "b_E22D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57908,
   "name": "b_E234",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57914,
   "name": "b_E23A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57926,
   "name": "b_E246",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57942,
   "name": "b_E256",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57953,
   "name": "b_E261",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57964,
   "name": "voice1_skip",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 57974,
   "name": "voice1_read",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 57995,
   "name": "a_E28B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57996,
   "name": "voice1_read_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57997,
   "name": "b_E28D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58007,
   "name": "b_E297",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58010,
   "name": "voice1_read_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58018,
   "name": "b_E2A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58022,
   "name": "b_E2A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58034,
   "name": "b_E2B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58082,
   "name": "b_E2E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58112,
   "name": "voice1_read_8a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58116,
   "name": "b_E304",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58142,
   "name": "voice1_read_a8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58146,
   "name": "b_E322",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58177,
   "name": "b_E341",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58182,
   "name": "voice1_note_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58183,
   "name": "a_E347",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58189,
   "name": "b_E34D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58202,
   "name": "voice2_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58210,
   "name": "b_E362",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58243,
   "name": "b_E383",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58258,
   "name": "b_E392",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58263,
   "name": "a_E397",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58275,
   "name": "b_E3A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58282,
   "name": "b_E3AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58312,
   "name": "b_E3C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58323,
   "name": "voice2_frame_79",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58347,
   "name": "b_E3EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58363,
   "name": "b_E3FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58388,
   "name": "b_E414",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58396,
   "name": "b_E41C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58399,
   "name": "voice2_set_freq",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58419,
   "name": "b_E433",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58420,
   "name": "a_E434",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58423,
   "name": "voice2_pwm",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58452,
   "name": "b_E454",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58455,
   "name": "b_E457",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58483,
   "name": "b_E473",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58490,
   "name": "b_E47A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58496,
   "name": "b_E480",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58508,
   "name": "b_E48C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58524,
   "name": "b_E49C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58535,
   "name": "b_E4A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58546,
   "name": "voice2_skip",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58556,
   "name": "voice2_read",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 58577,
   "name": "a_E4D1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58578,
   "name": "voice2_read_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58579,
   "name": "b_E4D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58589,
   "name": "b_E4DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58592,
   "name": "voice2_read_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58600,
   "name": "b_E4E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58604,
   "name": "b_E4EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58616,
   "name": "b_E4F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58664,
   "name": "b_E528",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58694,
   "name": "voice2_read_8a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58698,
   "name": "b_E54A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58726,
   "name": "voice2_read_aa",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58730,
   "name": "b_E56A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58761,
   "name": "b_E589",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58766,
   "name": "voice2_note_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58767,
   "name": "a_E58F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58773,
   "name": "b_E595",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58786,
   "name": "voice3_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58794,
   "name": "b_E5AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58827,
   "name": "b_E5CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58842,
   "name": "b_E5DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58847,
   "name": "a_E5DF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58859,
   "name": "b_E5EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58866,
   "name": "b_E5F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58896,
   "name": "b_E610",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58907,
   "name": "voice3_frame_79",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58931,
   "name": "b_E633",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58947,
   "name": "b_E643",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58972,
   "name": "b_E65C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58980,
   "name": "b_E664",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58983,
   "name": "voice3_set_freq",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59003,
   "name": "b_E67B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59004,
   "name": "a_E67C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59007,
   "name": "voice3_pwm",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59036,
   "name": "b_E69C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59039,
   "name": "b_E69F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59067,
   "name": "b_E6BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59074,
   "name": "b_E6C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59080,
   "name": "b_E6C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59092,
   "name": "b_E6D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59108,
   "name": "b_E6E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59119,
   "name": "b_E6EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59130,
   "name": "voice3_skip",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59140,
   "name": "voice3_read",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 59161,
   "name": "a_E719",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59162,
   "name": "voice3_read_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59163,
   "name": "b_E71B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59173,
   "name": "b_E725",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59176,
   "name": "voice3_read_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59184,
   "name": "b_E730",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59188,
   "name": "b_E734",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59200,
   "name": "b_E740",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59248,
   "name": "b_E770",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59278,
   "name": "voice3_read_8a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59282,
   "name": "b_E792",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59310,
   "name": "voice3_read_aa",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59314,
   "name": "b_E7B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59345,
   "name": "b_E7D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59350,
   "name": "voice3_note_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59351,
   "name": "a_E7D7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59357,
   "name": "b_E7DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59370,
   "name": "filter_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59371,
   "name": "a_E7EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59374,
   "name": "j_E7EE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 59391,
   "name": "b_E7FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59395,
   "name": "filter_frame_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59402,
   "name": "filter_frame_20",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59405,
   "name": "b_E80D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59408,
   "name": "b_E810",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59423,
   "name": "b_E81F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59427,
   "name": "filter_frame_39",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59434,
   "name": "filter_frame_40",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59443,
   "name": "b_E833",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59476,
   "name": "mus_v1_cmd82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59504,
   "name": "mus_v2_cmd82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59532,
   "name": "mus_v3_cmd82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59560,
   "name": "mus_v1_cmd81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59578,
   "name": "mus_v2_cmd81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59596,
   "name": "mus_v3_cmd81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59614,
   "name": "mus_v1_cmd83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59623,
   "name": "b_E8E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59626,
   "name": "mus_v2_cmd83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59635,
   "name": "b_E8F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59638,
   "name": "mus_v3_cmd83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59647,
   "name": "b_E8FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59650,
   "name": "mus_v1_cmd84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59659,
   "name": "mus_v2_cmd84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59668,
   "name": "mus_v3_cmd84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59677,
   "name": "mus_v1_cmd85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59679,
   "name": "b_E91F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59695,
   "name": "mus_v2_cmd85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59697,
   "name": "b_E931",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59713,
   "name": "mus_v3_cmd85",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59715,
   "name": "b_E943",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59731,
   "name": "mus_v1_cmd8D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59748,
   "name": "b_E964",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59757,
   "name": "mus_v2_cmd8D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59774,
   "name": "b_E97E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59783,
   "name": "mus_v3_cmd8D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59800,
   "name": "b_E998",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59809,
   "name": "mus_v1_cmd86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59815,
   "name": "mus_v2_cmd86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59821,
   "name": "mus_v3_cmd86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59827,
   "name": "mus_v1_cmd80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59868,
   "name": "b_E9DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59871,
   "name": "mus_v2_cmd80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59912,
   "name": "b_EA08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59915,
   "name": "mus_v3_cmd80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59956,
   "name": "b_EA34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59959,
   "name": "mus_filter_set",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59960,
   "name": "a_EA38",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59961,
   "name": "mus_filter_set_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59962,
   "name": "mus_filter_set_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59963,
   "name": "mus_filter_set_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59964,
   "name": "mus_filter_set_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59965,
   "name": "mus_v1_cmd88",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60022,
   "name": "mus_v2_cmd88",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60079,
   "name": "mus_v3_cmd88",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60136,
   "name": "mus_v1_cmd89",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60144,
   "name": "mus_v2_cmd89",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60152,
   "name": "mus_v3_cmd89",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60160,
   "name": "mus_v1_cmd8A",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 60182,
   "name": "mus_v1_cmd87",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60195,
   "name": "mus_v2_cmd8A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60217,
   "name": "mus_v2_cmd87",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60230,
   "name": "mus_v3_cmd8A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60252,
   "name": "mus_v3_cmd87",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60265,
   "name": "mus_call_stack",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60268,
   "name": "f_EB6C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60271,
   "name": "mus_call_stack_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60274,
   "name": "mus_call_stack_9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60277,
   "name": "mus_call_stack_c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60280,
   "name": "mus_call_stack_f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60283,
   "name": "mus_v1_cmd8B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60302,
   "name": "mus_v2_cmd8B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60321,
   "name": "mus_v3_cmd8B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60340,
   "name": "mus_v1_cmd8C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60349,
   "name": "mus_v2_cmd8C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60358,
   "name": "mus_v3_cmd8C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60367,
   "name": "mus_v1_cmd8E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60394,
   "name": "mus_v2_cmd8E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60421,
   "name": "mus_v3_cmd8E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60448,
   "name": "mus_v1_cmd8F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60475,
   "name": "mus_8f_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60476,
   "name": "a_EC3C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60477,
   "name": "mus_v2_cmd8F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60504,
   "name": "mus_8f_vars2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60505,
   "name": "a_EC59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60506,
   "name": "mus_v3_cmd8F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60533,
   "name": "mus_8f_vars3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60534,
   "name": "a_EC76",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60535,
   "name": "mus_v1_cmd90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60544,
   "name": "mus_v2_cmd90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60553,
   "name": "mus_v3_cmd90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60562,
   "name": "mus_v1_cmd91",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60583,
   "name": "mus_v2_cmd91",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60587,
   "name": "f_ECAB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60604,
   "name": "mus_v3_cmd91",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60608,
   "name": "f_ECC0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60625,
   "name": "mus_v1_cmd92",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60629,
   "name": "f_ECD5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60634,
   "name": "mus_v2_cmd92",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60643,
   "name": "mus_v3_cmd92",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60650,
   "name": "f_ECEA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60652,
   "name": "mus_v1_cmd93",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60658,
   "name": "mus_v2_cmd93",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 60664,
   "name": "mus_v3_cmd93",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60670,
   "name": "mus_v1_cmd94",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60671,
   "name": "f_ECFF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60685,
   "name": "mus_v2_cmd94",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60692,
   "name": "f_ED14",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60700,
   "name": "mus_v3_cmd94",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60715,
   "name": "mus_cmd_lo",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60778,
   "name": "mus_cmd_hi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60841,
   "name": "freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60938,
   "name": "freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61035,
   "name": "tune_v1_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61046,
   "name": "f_EE76",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61057,
   "name": "tune_v1_lo_16",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61068,
   "name": "tune_v1_lo_21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61079,
   "name": "tune_v1_lo_2c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61090,
   "name": "tune_v1_lo_37",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61101,
   "name": "tune0_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61200,
   "name": "tune0_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61244,
   "name": "tune0_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61586,
   "name": "tune1_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61646,
   "name": "tune1_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61705,
   "name": "tune1_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61778,
   "name": "tune2_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61921,
   "name": "tune2_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61951,
   "name": "tune2_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62009,
   "name": "tune3_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62076,
   "name": "tune3_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62129,
   "name": "tune3_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62207,
   "name": "tune4_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62328,
   "name": "tune4_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62390,
   "name": "tune4_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62447,
   "name": "tune5_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62556,
   "name": "tune5_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62604,
   "name": "tune5_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62629,
   "name": "s_F4A5",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 62757,
   "name": "tune6_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62866,
   "name": "tune6_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62921,
   "name": "tune6_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62987,
   "name": "tune7_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63070,
   "name": "tune7_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63124,
   "name": "tune7_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63259,
   "name": "tune8_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63372,
   "name": "tune8_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63444,
   "name": "tune8_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63479,
   "name": "tune9_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63580,
   "name": "tune9_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63663,
   "name": "tune9_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63818,
   "name": "tune10_v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64155,
   "name": "tune10_v2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64414,
   "name": "tune10_v3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65466,
   "name": "s_FFBA",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 65469,
   "name": "s_FFBD",
   "type": "Subroutine",
   "kind": "auto"
  }
 ],
 "comments": [
  {
   "address": 2048,
   "type": "line",
   "text": "The sprite shapes, 64 bytes each, sprite pointers $20-$3F in VIC bank 0: the marker ($21), the walkers' and roamers' animation frames ($22-$29), the Fuse ($26) and the burst ($30, $38)."
  },
  {
   "address": 2217,
   "type": "line",
   "text": "Sprite shape $22's bytes from $08A9 to the end of the first kilobyte of shapes. The BIT $08A9 at $A891 only skips the next instruction (burst_place_2's LDA #$04) and does not read here."
  },
  {
   "address": 3072,
   "type": "line",
   "text": "Sprite shapes $30-$3F ($0C00-$0FFF): the burst's frames."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "Fill patterns for fast fills: ten patterns of sixteen bytes, one chosen per round by fill_pattern_pick; each is two cells of eight rows of multicolour bytes, copied to $0292."
  },
  {
   "address": 4256,
   "type": "line",
   "text": "The bytes between the two pattern sets."
  },
  {
   "address": 4258,
   "type": "line",
   "text": "The slow fill patterns' first bytes. The BIT $10A2 at $1A76 only skips the next instruction (wait_16's LDX #$10) and does not read here."
  },
  {
   "address": 4272,
   "type": "line",
   "text": "Fill patterns for slow fills: ten patterns of sixteen bytes, copied to $02A2."
  },
  {
   "address": 4432,
   "type": "line",
   "text": "Bytes from an earlier build: they decode as code that nothing calls (the same shape as a loader's table copy)."
  },
  {
   "address": 4480,
   "type": "line",
   "text": "The NMI handler (an RTI), so RESTORE does nothing during the game."
  },
  {
   "address": 4481,
   "type": "line",
   "text": "The level tables, eleven bytes each, indexed by the level (1-11; each table's entry 0 is the previous table's last byte). In order: $1785 (level messages, $1181), $15BE ($118B), $159B ($1196: bit 7 lets pair B's walkers follow the line, from level 3), $6F ($11A1: the Qix's turn-time mask), $6E and $6D ($11AC, $11B7: the Qix's pull towards the marker, 0 to 2 and 0 to -2), $BE ($11C2: which creatures roam, from level 5), lvl_91D5, lvl_91D6, lvl_91D7 ($11CD, $11D8, $11E3: after how many timer runs each walker pair is released), timer_limit ($11EE), the required claim $B8 ($11F9: 65 % on levels 1-4, 70 % on 5-6, 75 % on 7-8, 80 % on 9-10), $6C ($1204: the timer's speed) and $BB ($120F: bit 7 for two Qix, on levels 3, 4, 6, 8 and 9)."
  },
  {
   "address": 4491,
   "type": "line",
   "text": "Part of lvl_tables, 10 bytes in, read here by level_params."
  },
  {
   "address": 4502,
   "type": "line",
   "text": "Part of lvl_tables, 21 bytes in; referred to here by level_params."
  },
  {
   "address": 4513,
   "type": "line",
   "text": "Part of lvl_tables, 32 bytes in; referred to here by level_params."
  },
  {
   "address": 4524,
   "type": "line",
   "text": "Part of lvl_tables, 43 bytes in; referred to here by level_params."
  },
  {
   "address": 4535,
   "type": "line",
   "text": "Part of lvl_tables, 54 bytes in; referred to here by level_params."
  },
  {
   "address": 4546,
   "type": "line",
   "text": "Part of lvl_tables, 65 bytes in; referred to here by level_params."
  },
  {
   "address": 4557,
   "type": "line",
   "text": "Part of lvl_tables, 76 bytes in; referred to here by level_params."
  },
  {
   "address": 4568,
   "type": "line",
   "text": "Part of lvl_tables, 87 bytes in; referred to here by level_params."
  },
  {
   "address": 4579,
   "type": "line",
   "text": "Part of lvl_tables, 98 bytes in; referred to here by level_params."
  },
  {
   "address": 4590,
   "type": "line",
   "text": "Part of lvl_tables, 109 bytes in; referred to here by level_params."
  },
  {
   "address": 4601,
   "type": "line",
   "text": "Part of lvl_tables, 120 bytes in; referred to here by level_params."
  },
  {
   "address": 4612,
   "type": "line",
   "text": "Part of lvl_tables, 131 bytes in; referred to here by level_params."
  },
  {
   "address": 4623,
   "type": "line",
   "text": "Part of lvl_tables, 142 bytes in; referred to here by level_params."
  },
  {
   "address": 4635,
   "type": "line",
   "text": "Thirty-two colour pairs, one picked at random for each round (round_setup): the Qix's colour index into $0205."
  },
  {
   "address": 4667,
   "type": "line",
   "text": "Low bytes of the start of each pixel row in a plane (multicolour bitmap layout: rows within a cell are one byte apart, cells 320 bytes apart)."
  },
  {
   "address": 4867,
   "type": "line",
   "text": "High bytes of the row starts."
  },
  {
   "address": 5067,
   "type": "line",
   "text": "Low bytes of each multicolour column's offset in a row (x 0-159: 8 bytes per cell of four pixels)."
  },
  {
   "address": 5227,
   "type": "line",
   "text": "High bytes of the column offsets."
  },
  {
   "address": 5387,
   "type": "line",
   "text": "Masks for one multicolour pixel in each of the four positions of a byte, by x AND 3: colour 3 ($C0 $30 $0C $03), then colour 1 at pattern_masks2 ($150F), colour 2 at pattern_masks3 ($1513), and the masks that clear a pixel ($1517). In the $E000 plane colour 3 is the edge the marker may walk, colour 1 the line being drawn and colour 2 a line that kills."
  },
  {
   "address": 5391,
   "type": "line",
   "text": "Part of pixel_masks, 4 bytes in, read here by draw_check, fill_column, fill_pixel, on_line_test, pixel_op, plot_line_pixel, rebuild_bitmap, roam_probe, test_pixel2, unwind_trail, walk_back, walker_step_ccw, walker_step_cw."
  },
  {
   "address": 5395,
   "type": "line",
   "text": "Part of pixel_masks, 8 bytes in; referred to here by draw_check, finish_line, fuse_advance, perimeter_dirs, pixel_op, plot_line_pixel, roam_probe, split_mark_pixel, split_unmark_pixel."
  },
  {
   "address": 5399,
   "type": "line",
   "text": "Part of pixel_masks, 12 bytes in; referred to here by fill_pixel, finish_line, fuse_advance, pixel_op, plot_line_pixel, split_unmark_pixel, unwind_trail."
  },
  {
   "address": 5403,
   "type": "line",
   "text": "The address offset of each character row of the bitmap (25 words, 320 apart), read two bytes at a time."
  },
  {
   "address": 5404,
   "type": "line",
   "text": "Part of bitmap_rows, 1 bytes in, read here by line_begin_common, line_start_test, marker_bitmap_addr."
  },
  {
   "address": 5453,
   "type": "line",
   "text": "$154D bit 7 forces slow scoring and the slow fill pattern for every line (and lets a slow draw move at full speed). roam_next_dir sets it when a roamer is walled in all round (trapped); life_lost clears it. $154E-$154F are unused."
  },
  {
   "address": 5456,
   "type": "line",
   "text": "The game's own variables: $1550 the boot drive, $1551 the PAL flag, $1552 the current player ('1' or '2'), $1553 practice ($80) and $159A two players ($80), $1556-$1557 roamer waits, $1558 keep_bitmap, $1559-$155A roamers active, $155C-$155F the claimed totals, $1560-$1565 the two scores, $1566 the most lives, $1567 the starting lives, $1568 the animation speed, $1569 and $156B-$1570 the Qix's trail length, speed and line-length limits, $1571-$1574 the random generator, $1575-$1578 the field's edges, $1579-$157C the burst's limits, $1581-$1588 sprite registers for the burst, $1592-$1595 the four directions, $159E-$15C6 the sprite animation, $15C7-$15D2 line and walker counters."
  },
  {
   "address": 5457,
   "type": "line",
   "text": "Variable 1 of game_vars ($1551), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5458,
   "type": "line",
   "text": "Part of game_vars, 2 bytes in; referred to here by add_score, attract_demo, draw_score_line, level_complete, menu_fire, msg_player, score_fill, switch_player."
  },
  {
   "address": 5459,
   "type": "line",
   "text": "Part of game_vars, 3 bytes in; referred to here by draw_lives, draw_panel_pct2, draw_scores, enemies_step, err_addr_hi, level_complete, level_params, life_lost, menu_fire, next_level, print_player_name, reload_alien, timer_bar_empty, timer_bar_tick."
  },
  {
   "address": 5460,
   "type": "line",
   "text": "Part of game_vars, 4 bytes in; referred to here by roam2_step, roam2a_wait."
  },
  {
   "address": 5461,
   "type": "line",
   "text": "Part of game_vars, 5 bytes in; referred to here by roam2_second, roam2b_wait."
  },
  {
   "address": 5462,
   "type": "line",
   "text": "Part of game_vars, 6 bytes in; referred to here by attract_demo, spritz1_wait, spritz_step."
  },
  {
   "address": 5463,
   "type": "line",
   "text": "Part of game_vars, 7 bytes in; referred to here by attract_demo, spritz2_wait, spritz_step."
  },
  {
   "address": 5464,
   "type": "line",
   "text": "Part of game_vars, 8 bytes in; referred to here by attract_demo, clear_planes, marker_place, menu_fire."
  },
  {
   "address": 5465,
   "type": "line",
   "text": "Part of game_vars, 9 bytes in; referred to here by attract_demo, demo_round_vars, game_start, round_setup, spritz1_spawn, spritz2_spawn, spritz_step."
  },
  {
   "address": 5466,
   "type": "line",
   "text": "Part of game_vars, 10 bytes in; referred to here by attract_demo, demo_round_vars, game_start, roam2_step, roam2a_spawn, roam2b_spawn, round_setup."
  },
  {
   "address": 5467,
   "type": "line",
   "text": "Part of game_vars, 11 bytes in; referred to here by draw_step, fuse_tick."
  },
  {
   "address": 5468,
   "type": "line",
   "text": "Part of game_vars, 12 bytes in; referred to here by level_complete, new_game, score_fill."
  },
  {
   "address": 5469,
   "type": "line",
   "text": "Part of game_vars, 13 bytes in; referred to here by add_score, level_complete, new_game, score_fill."
  },
  {
   "address": 5470,
   "type": "line",
   "text": "Part of game_vars, 14 bytes in; referred to here by level_complete, new_game, score_fill."
  },
  {
   "address": 5471,
   "type": "line",
   "text": "Part of game_vars, 15 bytes in; referred to here by add_score, level_complete, new_game, score_fill."
  },
  {
   "address": 5472,
   "type": "line",
   "text": "Part of game_vars, 16 bytes in; referred to here by add_score, draw_hiscore, extra_life_p1, new_game, reload_alien."
  },
  {
   "address": 5473,
   "type": "line",
   "text": "Part of game_vars, 17 bytes in; referred to here by add_score, draw_hiscore, extra_life_p1, new_game, reload_alien."
  },
  {
   "address": 5474,
   "type": "line",
   "text": "Part of game_vars, 18 bytes in; referred to here by add_score, draw_hiscore, extra_life_p1, new_game, reload_alien."
  },
  {
   "address": 5475,
   "type": "line",
   "text": "Part of game_vars, 19 bytes in; referred to here by add_score, draw_hiscore, extra_life_p2, new_game, reload_alien."
  },
  {
   "address": 5476,
   "type": "line",
   "text": "Part of game_vars, 20 bytes in; referred to here by add_score, draw_hiscore, extra_life_p2, new_game, reload_alien."
  },
  {
   "address": 5477,
   "type": "line",
   "text": "Part of game_vars, 21 bytes in; referred to here by add_score, draw_hiscore, extra_life_p2, new_game, reload_alien."
  },
  {
   "address": 5478,
   "type": "line",
   "text": "Part of game_vars, 22 bytes in; referred to here by draw_lives, extra_life_p1, extra_life_p2."
  },
  {
   "address": 5479,
   "type": "line",
   "text": "Part of game_vars, 23 bytes in; referred to here by new_game."
  },
  {
   "address": 5480,
   "type": "line",
   "text": "Part of game_vars, 24 bytes in; referred to here by sprite_anim."
  },
  {
   "address": 5481,
   "type": "line",
   "text": "Part of game_vars, 25 bytes in; referred to here by round_setup."
  },
  {
   "address": 5483,
   "type": "line",
   "text": "Part of game_vars, 27 bytes in; referred to here by demo_qix_step, qix2_step, qix_reset, qix_step, unwind_line."
  },
  {
   "address": 5484,
   "type": "line",
   "text": "Part of game_vars, 28 bytes in; referred to here by random_speed1, random_speed_neg, random_speed_pos."
  },
  {
   "address": 5486,
   "type": "line",
   "text": "Part of game_vars, 30 bytes in; referred to here by qix1_move_x2, qix1_move_y2, qix2_move_x2, qix2_move_y2."
  },
  {
   "address": 5487,
   "type": "line",
   "text": "Part of game_vars, 31 bytes in; referred to here by qix1_move_x2, qix1_move_y2, qix2_move_x2, qix2_move_y2."
  },
  {
   "address": 5488,
   "type": "line",
   "text": "Part of game_vars, 32 bytes in; referred to here by qix1_move_x2, qix1_move_y2, qix2_move_x2, qix2_move_y2."
  },
  {
   "address": 5489,
   "type": "line",
   "text": "Part of game_vars, 33 bytes in; referred to here by random_range."
  },
  {
   "address": 5490,
   "type": "line",
   "text": "Part of game_vars, 34 bytes in; referred to here by random_range."
  },
  {
   "address": 5491,
   "type": "line",
   "text": "Part of game_vars, 35 bytes in; referred to here by random_range."
  },
  {
   "address": 5492,
   "type": "line",
   "text": "Part of game_vars, 36 bytes in; referred to here by random_range."
  },
  {
   "address": 5493,
   "type": "line",
   "text": "Part of game_vars, 37 bytes in; referred to here by draw_rect, draw_rect_outer, qix_limits, round_setup."
  },
  {
   "address": 5494,
   "type": "line",
   "text": "Part of game_vars, 38 bytes in; referred to here by draw_rect, draw_rect_outer, qix_limits, round_setup."
  },
  {
   "address": 5495,
   "type": "line",
   "text": "Part of game_vars, 39 bytes in; referred to here by draw_rect, draw_rect_outer, qix_limits."
  },
  {
   "address": 5496,
   "type": "line",
   "text": "Part of game_vars, 40 bytes in; referred to here by draw_rect, draw_rect_outer, qix_limits, round_setup."
  },
  {
   "address": 5497,
   "type": "line",
   "text": "Part of game_vars, 41 bytes in; referred to here by burst_frame."
  },
  {
   "address": 5498,
   "type": "line",
   "text": "Variable 42 of game_vars ($157A), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5499,
   "type": "line",
   "text": "Variable 43 of game_vars ($157B), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5500,
   "type": "line",
   "text": "Variable 44 of game_vars ($157C), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5501,
   "type": "line",
   "text": "Variable 45 of game_vars ($157D), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5505,
   "type": "line",
   "text": "Variable 49 of game_vars ($1581), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5509,
   "type": "line",
   "text": "Variable 53 of game_vars ($1585), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5522,
   "type": "line",
   "text": "Variable 66 of game_vars ($1592), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5523,
   "type": "line",
   "text": "Variable 67 of game_vars ($1593), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5524,
   "type": "line",
   "text": "Variable 68 of game_vars ($1594), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5525,
   "type": "line",
   "text": "Variable 69 of game_vars ($1595), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5530,
   "type": "line",
   "text": "Variable 74 of game_vars ($159A), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5531,
   "type": "line",
   "text": "Variable 75 of game_vars ($159B), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5534,
   "type": "line",
   "text": "Variable 78 of game_vars ($159E), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5535,
   "type": "line",
   "text": "Variable 79 of game_vars ($159F), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5539,
   "type": "line",
   "text": "Variable 83 of game_vars ($15A3), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5543,
   "type": "line",
   "text": "Variable 87 of game_vars ($15A7), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5547,
   "type": "line",
   "text": "Variable 91 of game_vars ($15AB), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5559,
   "type": "line",
   "text": "Variable 103 of game_vars ($15B7), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5560,
   "type": "line",
   "text": "Variable 104 of game_vars ($15B8), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5561,
   "type": "line",
   "text": "Variable 105 of game_vars ($15B9), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5562,
   "type": "line",
   "text": "Variable 106 of game_vars ($15BA), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5563,
   "type": "line",
   "text": "Variable 107 of game_vars ($15BB), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5564,
   "type": "line",
   "text": "Variable 108 of game_vars ($15BC), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5565,
   "type": "line",
   "text": "Variable 109 of game_vars ($15BD), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5566,
   "type": "line",
   "text": "Variable 110 of game_vars ($15BE), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5567,
   "type": "line",
   "text": "Variable 111 of game_vars ($15BF), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5571,
   "type": "line",
   "text": "Variable 115 of game_vars ($15C3), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5575,
   "type": "line",
   "text": "Variable 119 of game_vars ($15C7), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5576,
   "type": "line",
   "text": "Variable 120 of game_vars ($15C8), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5577,
   "type": "line",
   "text": "Variable 121 of game_vars ($15C9), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5578,
   "type": "line",
   "text": "Variable 122 of game_vars ($15CA), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5579,
   "type": "line",
   "text": "Variable 123 of game_vars ($15CB), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5580,
   "type": "line",
   "text": "Variable 124 of game_vars ($15CC), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5581,
   "type": "line",
   "text": "Variable 125 of game_vars ($15CD), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5582,
   "type": "line",
   "text": "Variable 126 of game_vars ($15CE), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5583,
   "type": "line",
   "text": "Variable 127 of game_vars ($15CF), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5584,
   "type": "line",
   "text": "Variable 128 of game_vars ($15D0), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5585,
   "type": "line",
   "text": "Variable 129 of game_vars ($15D1), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5586,
   "type": "line",
   "text": "Variable 130 of game_vars ($15D2), one of the bytes the list at game_vars describes."
  },
  {
   "address": 5587,
   "type": "line",
   "text": "The end of a level. Clears the player's claimed total and draws the timer bar. In practice: the level-over message and back to the title (reload_alien). Otherwise: the next tune is chosen, the messages are drawn (level_messages, the split or bonus summary at $17A7), the music player is copied back to $E000 and its own interrupt installed ($1688), and the tune plays until fire is pressed or it ends (with the extra message at $1786 if it lasts). Then the sound stops, zero page and page 2 are saved at $6000/$6100 (the load below clears them), TAITO is loaded from the disk (load_taito), and the next level begins (next_level at $1F96)."
  },
  {
   "address": 5768,
   "type": "line",
   "text": "The interrupt used during the end-of-level tune: plays the music ($E006) and keeps the playing flag."
  },
  {
   "address": 5821,
   "type": "line",
   "text": "The order in which the ten tunes are played, shuffled by shuffle_tunes; tune_index ($16C7) counts down through it."
  },
  {
   "address": 5831,
   "type": "line",
   "text": "Part of tune_order, 10 bytes in, read and written here by fill_pattern_pick, level_complete, next_tune, shuffle_tunes."
  },
  {
   "address": 5832,
   "type": "line",
   "text": "Builds a new random order of the tunes 0-9 in tune_order, drawing from the raster line, the SID's noise, and both CIAs' timers, and refusing repeats."
  },
  {
   "address": 5884,
   "type": "line",
   "text": "Copies the round's pair of fill patterns (by the current tune entry) from fill_patterns_fast and fill_patterns_slow to $0292 and $02A2."
  },
  {
   "address": 5922,
   "type": "line",
   "text": "Prints \"CAPTURE SPRITZ / FOR / EXTRA POINTS\" in the message box (inline print): the hint shown at the end of level 4, before the first level with Spritz."
  },
  {
   "address": 5925,
   "type": "line",
   "text": "The inline text msg_spritz_hint prints: \"CAPTURE SPRITZ\" at $2E20; \"FOR\" at $2F60; \"EXTRA POINTS\" at $30A0 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 5970,
   "type": "line",
   "text": "Return after the inline text at $1725."
  },
  {
   "address": 5971,
   "type": "line",
   "text": "Prints \"SPLITTING QIXS / MULTIPLIES / POINTS\" (inline print): the hint shown at the end of level 2, before the first level with two Qix."
  },
  {
   "address": 5974,
   "type": "line",
   "text": "The inline text msg_split_hint prints: \"SPLITTING QIXS\" at $2E20; \"MULTIPLIES\" at $2F60; \"POINTS\" at $30A0 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 6020,
   "type": "line",
   "text": "Return after msg_split's inline text."
  },
  {
   "address": 6021,
   "type": "line",
   "text": "The level's message kind from lvl_tables (level_params): 1 or 2 picks the hint level_messages shows at the end of levels below 9 (level 2: the split hint, level 4: the Spritz hint)."
  },
  {
   "address": 6022,
   "type": "line",
   "text": "On levels below 9, a level whose level_msg_kind is 2 shows msg_spritz_hint and one whose kind is 1 shows msg_split_hint, in a cleared message box; the table gives 1 on level 2 and 2 on level 4 (and 2 on level 11, which the level test excludes)."
  },
  {
   "address": 6055,
   "type": "line",
   "text": "After a level: if the Qix were split ($AB bit 7) \"SCORE NOW\" and the score, else \"BONUS\" and the bonus or \"NO BONUS\"; then \"CLAIM\" and the claimed percentage and \"LEVEL\" and the level number, by inline print."
  },
  {
   "address": 6062,
   "type": "line",
   "text": "The inline text $17AB prints: \"SCORE NOW\" at $2E28 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 6076,
   "type": "line",
   "text": "Prints the score (print_number) after \"SCORE NOW\" and goes on to the claim line."
  },
  {
   "address": 6108,
   "type": "line",
   "text": "The inline text $17D9 prints: \"BONUS\" at $2E28 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 6118,
   "type": "line",
   "text": "Prints the bonus after \"BONUS\", or \"NO BONUS\" when it is zero."
  },
  {
   "address": 6135,
   "type": "line",
   "text": "The inline text $17F4 prints: \"NO BONUS\" at $2E28 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 6147,
   "type": "line",
   "text": "The inline print of \"BONUS\" or \"NO BONUS\"."
  },
  {
   "address": 6150,
   "type": "line",
   "text": "The inline text after_summary prints: \"CLAIM\" at $2F68 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 6160,
   "type": "line",
   "text": "Prints the claimed percentage after \"CLAIM\"."
  },
  {
   "address": 6178,
   "type": "line",
   "text": "The inline text $181F prints: \"LEVEL\" at $30A8 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 6188,
   "type": "line",
   "text": "Prints the level number after \"LEVEL\"."
  },
  {
   "address": 6197,
   "type": "line",
   "text": "Draws character A at ($02) with the font (font_char at $1AC0) and moves one cell right, counting in $AC."
  },
  {
   "address": 6216,
   "type": "line",
   "text": "As print_char, overwriting (draw_glyph)."
  },
  {
   "address": 6235,
   "type": "line",
   "text": "Prints the 24-bit number A,X,Y in decimal (score_to_digits), or a single 0."
  },
  {
   "address": 6258,
   "type": "line",
   "text": "Prints digits_out from position $AC."
  },
  {
   "address": 6272,
   "type": "line",
   "text": "The tune playing at the end of a level."
  },
  {
   "address": 6273,
   "type": "line",
   "text": "Non-zero while the music player is playing a tune."
  },
  {
   "address": 6274,
   "type": "line",
   "text": "Message box drawing: row count and the bitmap address."
  },
  {
   "address": 6275,
   "type": "line",
   "text": "Part of box_vars, 1 bytes in, read and written here by draw_message_box."
  },
  {
   "address": 6276,
   "type": "line",
   "text": "Part of box_vars, 2 bytes in; referred to here by draw_message_box."
  },
  {
   "address": 6277,
   "type": "line",
   "text": "The message box's frame lines as x and y coordinate tables, four of each for the box's double border."
  },
  {
   "address": 6278,
   "type": "line",
   "text": "Part of box_lines, 1 bytes in, read here by draw_message_box."
  },
  {
   "address": 6294,
   "type": "line",
   "text": "Part of box_lines, 17 bytes in; referred to here by draw_message_box."
  },
  {
   "address": 6310,
   "type": "line",
   "text": "Part of box_lines, 33 bytes in; referred to here by draw_message_box."
  },
  {
   "address": 6313,
   "type": "line",
   "text": "Part of box_lines, 36 bytes in; referred to here by merge_column."
  },
  {
   "address": 6326,
   "type": "line",
   "text": "Part of box_lines, 49 bytes in; referred to here by draw_message_box."
  },
  {
   "address": 6342,
   "type": "line",
   "text": "Sets the screen colours of the message box's 14 cells on three rows to $F7 (light grey on yellow)."
  },
  {
   "address": 6358,
   "type": "line",
   "text": "Clears the message box area at $2B90 with spaces, seven rows, and draws its double frame with box_lines (line_begin_erase, line_all_to)."
  },
  {
   "address": 6472,
   "type": "line",
   "text": "The game's own crash screen, reached when a search runs out of room: keeps A and the caller's address at $C000-$C002, clears the message box and prints \"ERROR\" with the code and \"ADDRS\" with the address, then flashes the border and waits; it goes back to the title with $8013."
  },
  {
   "address": 6622,
   "type": "line",
   "text": "\"ERROR\", ended by 0."
  },
  {
   "address": 6628,
   "type": "line",
   "text": "\"ADDRS\", ended by 0."
  },
  {
   "address": 6634,
   "type": "line",
   "text": "The message box with the player's name and \"GAME OVER\" ('>' is a space), then a pause."
  },
  {
   "address": 6667,
   "type": "line",
   "text": "\"GAME>OVER\" ('>' prints as a space), ended by 0."
  },
  {
   "address": 6677,
   "type": "line",
   "text": "The message box with the player's name and \"GET READY\", then a pause."
  },
  {
   "address": 6710,
   "type": "line",
   "text": "\"GET>READY\", ended by 0."
  },
  {
   "address": 6720,
   "type": "line",
   "text": "Draws the message box and \"PLAYER\" with the current player's digit ($1A72)."
  },
  {
   "address": 6762,
   "type": "line",
   "text": "\"PLAYER>>2\" with the digit patched from current_player, ended by 0."
  },
  {
   "address": 6770,
   "type": "line",
   "text": "Part of txt_player, 8 bytes in, written here by msg_player."
  },
  {
   "address": 6772,
   "type": "line",
   "text": "Waits 48 frames (entries $1A77 16, $1A7A 2, $1A7D 256 frames)."
  },
  {
   "address": 6775,
   "type": "line",
   "text": "Waits 16 frames (wait_48 with X = 16)."
  },
  {
   "address": 6778,
   "type": "line",
   "text": "Waits 2 frames (wait_48 with X = 2); pause_check uses it."
  },
  {
   "address": 6797,
   "type": "line",
   "text": "Loads the file TAITO with the KERNAL's LOAD (load_prepare first); three failed tries show the drive-error message. The file's 134 bytes land at $6200 and nothing runs them."
  },
  {
   "address": 6843,
   "type": "line",
   "text": "\"TAITO\", the file name."
  },
  {
   "address": 6848,
   "type": "line",
   "text": "Draws character A at ($02) from the font at $BD00, each pixel widened to a solid multicolour pair (as xor_glyph, writing)."
  },
  {
   "address": 6936,
   "type": "line",
   "text": "Makes the machine fit for the KERNAL's LOAD: play interrupt reinstalled, zero page and page 2 cleared, sprites off, $01 = $36 (KERNAL in), the KERNAL's own vectors and variables put back from kernal_state ($1B64, $1B75: the default $0314-$0333 vectors and the drive number $BA from $1550, PAL flag from $1551)."
  },
  {
   "address": 7012,
   "type": "line",
   "text": "The values load_prepare writes back for the KERNAL: some of page 2's variables and the default vectors $0314-$0333 ($EA31, $FE66, $FE47, $F34A and the rest), then $F4A5 and $F5ED."
  },
  {
   "address": 7029,
   "type": "line",
   "text": "Part of kernal_state, 17 bytes in, read here by load_prepare."
  },
  {
   "address": 7061,
   "type": "line",
   "text": "Cleared at the end of a level."
  },
  {
   "address": 7062,
   "type": "line",
   "text": "Both joystick ports EORed, bits 0-4, sampled by the title interrupt."
  },
  {
   "address": 7063,
   "type": "line",
   "text": "After a game: the sound stops; outside practice the higher of the two players' scores replaces the high score ($5DF0-$5DF2) if it is higher. Then the whole game file ALIEN is loaded again from the disk (three tries, then the drive-error message), because play has used the memory where the title, the menu and the music live."
  },
  {
   "address": 7208,
   "type": "line",
   "text": "\"ALIEN\", the file name."
  },
  {
   "address": 7213,
   "type": "line",
   "text": "Prints \" . DRIVE ERROR / CHECK THE DISK / AND PRESS FIRE\" in the message box, waits for fire, then \" PLEASE WAIT \"."
  },
  {
   "address": 7219,
   "type": "line",
   "text": "The inline text $1C30 prints: \"DRIVE  ERROR\" at $2E20; \"CHECK THE DISK\" at $2F60; \"AND PRESS FIRE\" at $30A0 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 7270,
   "type": "line",
   "text": "Waits for fire on either port, then prints \" PLEASE WAIT \"."
  },
  {
   "address": 7286,
   "type": "line",
   "text": "The inline text $1C73 prints: \"PLEASE  WAIT\" at $2F60 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 7304,
   "type": "line",
   "text": "Return after the drive-error text."
  },
  {
   "address": 7305,
   "type": "line",
   "text": "Draws the lives in the panel: a diamond per life at the top right, up to $1566 places (nothing in practice)."
  },
  {
   "address": 7389,
   "type": "line",
   "text": "Lives last drawn."
  },
  {
   "address": 7390,
   "type": "line",
   "text": "Redraws the panel: the QIX logo, the score line (draw_score_line), \"CLM\" and the required claim, the claimed percentage, \"LVL\" and the level."
  },
  {
   "address": 7408,
   "type": "line",
   "text": "The \"CLM\" label and the required percentage."
  },
  {
   "address": 7442,
   "type": "line",
   "text": "The claimed percentage with its \"%\"."
  },
  {
   "address": 7482,
   "type": "line",
   "text": "The second percentage line and the \"LVL\" label (skipped in practice)."
  },
  {
   "address": 7528,
   "type": "line",
   "text": "The level number."
  },
  {
   "address": 7562,
   "type": "line",
   "text": "The tail of the level number."
  },
  {
   "address": 7580,
   "type": "line",
   "text": "Colours of the panel's text cells: $77, $66, $22, $11, $55 and $22 by row."
  },
  {
   "address": 7625,
   "type": "line",
   "text": "The score line at the top: the colours of \"PLAYER 1\" and \"PLAYER 2\" by whose turn it is, the extra-life check (extra_life_p1, extra_life_p2), then the scores, \"PRACTICE\" in practice, and \" HI SCORE \" with the high score in the attract demo."
  },
  {
   "address": 7671,
   "type": "line",
   "text": "Prints the player names and scores (or the high score in the attract demo)."
  },
  {
   "address": 7690,
   "type": "line",
   "text": "The inline text $1E07 prints: \"HI SCORE\" at $2000 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 7703,
   "type": "line",
   "text": "In the attract demo: \" HI SCORE \" (inline print) and the high score ($5DF0-$5DF2) printed after it; in a game, the two players' scores: \"PLAYER 1\" and its score, and \"PLAYER 2\" and its score in a two-player game."
  },
  {
   "address": 7875,
   "type": "line",
   "text": "Prints \"PLAYER\" or \"PRACTICE\" at A on the top row."
  },
  {
   "address": 7901,
   "type": "line",
   "text": "The loop of print_player_name."
  },
  {
   "address": 7926,
   "type": "line",
   "text": "\"PRACTICE\" and \"PLAYER\", each ended by 0."
  },
  {
   "address": 7935,
   "type": "line",
   "text": "Part of txt_practice, 9 bytes in, read here by print_player_name."
  },
  {
   "address": 7942,
   "type": "line",
   "text": "\"CLM\" and \"LVL\", each ended by 0."
  },
  {
   "address": 7946,
   "type": "line",
   "text": "Part of txt_clm_lvl, 4 bytes in, read here by draw_panel_lvl."
  },
  {
   "address": 7950,
   "type": "line",
   "text": "Player 1's extra life: once the score passes the next threshold ($1F90-$1F92) and the lives are below the most ($1566), one life is added, sound 6 plays, the threshold rises by 50,000, and the lives are redrawn."
  },
  {
   "address": 8015,
   "type": "line",
   "text": "The same for player 2 ($1F93-$1F95)."
  },
  {
   "address": 8080,
   "type": "line",
   "text": "Each player's next extra-life score, 24 bits (player 1, player 2)."
  },
  {
   "address": 8081,
   "type": "line",
   "text": "Part of extra_life_at, 1 bytes in, read and written here by extra_life_p1, new_game."
  },
  {
   "address": 8082,
   "type": "line",
   "text": "Part of extra_life_at, 2 bytes in; referred to here by extra_life_p1, new_game."
  },
  {
   "address": 8083,
   "type": "line",
   "text": "Part of extra_life_at, 3 bytes in; referred to here by extra_life_p2, new_game."
  },
  {
   "address": 8084,
   "type": "line",
   "text": "Part of extra_life_at, 4 bytes in; referred to here by extra_life_p2, new_game."
  },
  {
   "address": 8085,
   "type": "line",
   "text": "Part of extra_life_at, 5 bytes in; referred to here by extra_life_p2, new_game."
  },
  {
   "address": 8086,
   "type": "line",
   "text": "After TAITO is loaded: the play interrupt and the screen are set up again, and outside practice zero page and page 2 come back from $6000/$6100, the level ($B7) goes up by one, and play continues at level_start through redraw_panel_edges. In practice it reloads the game instead."
  },
  {
   "address": 8162,
   "type": "line",
   "text": "The return address next_level pushes ($8A1F, so play resumes at $8A20 in level_start), low byte then high byte."
  },
  {
   "address": 8163,
   "type": "line",
   "text": "Part of next_level, 77 bytes in; referred to here by next_level."
  },
  {
   "address": 8164,
   "type": "line",
   "text": "In practice, the game ends after one level: back to reload_alien."
  },
  {
   "address": 8167,
   "type": "line",
   "text": "Bytes after next_level that nothing reads: screen codes ending in \"R OF EXODUS\", left in memory from another program before the game was loaded or from its development."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "The music player and its eleven tunes as loaded, copied to $E000 before use by copy_music_to_E000 (the start-up first patches the tempo bytes at $410D for PAL or NTSC). The listing describes them at $E000, where they run."
  },
  {
   "address": 16653,
   "type": "line",
   "text": "The two bytes the start-up patches in the music source before it is copied: $A9 $06 (LDA #$06) on NTSC or $F0 $05 (BEQ +5) on PAL. At $E10D they decide whether music_frame skips one frame in six. The rest of the span is more of the music source."
  },
  {
   "address": 16654,
   "type": "line",
   "text": "Part of music_source, 270 bytes in; referred to here by game_entry."
  },
  {
   "address": 17408,
   "type": "line",
   "text": "Bytes $4400-$47FF of the music source ($E400-$E7FF where it runs): voice 2's and voice 3's routines."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "Bytes $4800-$4BFF of the music source ($E800-$EBFF where it runs): the filter routine's end and most of the command handlers."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "Bytes $4C00-$4FFF of the music source ($EC00-$EFFF): the last command handlers, the dispatch and frequency tables, the tune pointers and the start of tune 0."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Bytes $5000-$53FF of the music source ($F000-$F3FF): the rest of tune 0 and tunes 1-4, and the start of tune 5."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "Bytes $5400-$57FF of the music source ($F400-$F7FF): the rest of tune 5, tunes 6-8 and the start of tune 9."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "Bytes $5800-$5BFF of the music source ($F800-$FBFF): the rest of tune 9 and the start of tune 10, the title tune."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "Bytes $5C00-$5D7F of the music source: the end of the title tune (tune 10)."
  },
  {
   "address": 24048,
   "type": "line",
   "text": "The high score, 24 bits, set by reload_alien after a game and shown in the attract demonstration."
  },
  {
   "address": 24049,
   "type": "line",
   "text": "Part of high_score, 1 bytes in, read and written here by draw_hiscore, reload_alien."
  },
  {
   "address": 24050,
   "type": "line",
   "text": "Part of high_score, 2 bytes in; referred to here by draw_hiscore, reload_alien."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "The title picture's multicolour bitmap (8,000 bytes), copied to $2000 by show_title_picture. Play reuses this memory, so after a game the file SCENE loads it again."
  },
  {
   "address": 24832,
   "type": "line",
   "text": "The title bitmap from $6100. Once play has started this page is reused: the burst's recorded frames (burst_frame, burst_replay), and the copy of page 2 kept during the TAITO load (level_complete, next_level)."
  },
  {
   "address": 25088,
   "type": "line",
   "text": "Part of title_bitmap, 512 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 25344,
   "type": "line",
   "text": "Part of title_bitmap, 768 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "Title bitmap rows 3-5 ($6400-$67FF)."
  },
  {
   "address": 25856,
   "type": "line",
   "text": "Part of title_bitmap2, 256 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 26112,
   "type": "line",
   "text": "Part of title_bitmap2, 512 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 26368,
   "type": "line",
   "text": "Part of title_bitmap2, 768 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 26624,
   "type": "line",
   "text": "Title bitmap rows 6-8 ($6800-$6BFF)."
  },
  {
   "address": 26880,
   "type": "line",
   "text": "Part of title_bitmap3, 256 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 27136,
   "type": "line",
   "text": "Part of title_bitmap3, 512 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 27392,
   "type": "line",
   "text": "Part of title_bitmap3, 768 bytes in; referred to here by burst_frame, burst_replay."
  },
  {
   "address": 27648,
   "type": "line",
   "text": "Title bitmap rows 9-11 ($6C00-$6FFF)."
  },
  {
   "address": 28672,
   "type": "line",
   "text": "Title bitmap rows 11-14 ($7000-$73FF)."
  },
  {
   "address": 29696,
   "type": "line",
   "text": "Title bitmap rows 14-17 ($7400-$77FF)."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "Title bitmap rows 17-20 ($7800-$7BFF)."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "Title bitmap rows 20-24 ($7C00-$7F3F)."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "The game's entry, where the crack's loader jumps once ALIEN is in (JMP $8000 with $01 = $36). Points the NMI at the RTI at $1180 (RESTORE does nothing), sets the stack, banks BASIC and the KERNAL out ($01 = $35), keeps the boot drive number (8 or 9, else 8) at $1550 and the KERNAL's PAL flag $02A6 at $1551, and patches the music player's tempo at $410D/$410E (in the copy source at $4000) with $06A9 on NTSC or $05F0 on PAL. Then it builds the title (title_screen_setup, show_title_picture), picks a tune, and falls into title_loop."
  },
  {
   "address": 32853,
   "type": "line",
   "text": "Title loop: start tune X (music_init at $E000), set music_playing, enable interrupts, then wait. Fire (bit 4 of joy_title) goes to the menu at menu_start; the tune ending (music_playing cleared by the interrupt) or about four frames of no input in wait_frames_or_input lets the attract sequence run: music_stop, attract_demo at $C000, then the title is rebuilt with a new tune and the loop starts again."
  },
  {
   "address": 32903,
   "type": "line",
   "text": "The menu: rebuilds the screen as the option list (menu_draw at $C830), selection 0, and moves the highlight bar with the stick: down (bit 1) steps menu_choice forward, up (bit 0) back, wrapping 0..2. The bar is a raster split (menu_raster_* at $8255): menu_highlight writes the band's top and bottom lines ($7F/$95, $A7/$BD or $CF/$E5) in the vertical blank. Fire starts the chosen game at menu_fire; letting the tune end returns to the title."
  },
  {
   "address": 32937,
   "type": "line",
   "text": "The low byte of the STA $8259 at $80A8 in menu_start. The BIT $80A9 at $99AA in draw_step only skips the next instruction (its operand is the LDA #$80 that follows) and does not read this byte."
  },
  {
   "address": 33056,
   "type": "line",
   "text": "Menu idle path: three waits with no input, then pick the next tune and restart it; music_playing is set again."
  },
  {
   "address": 33082,
   "type": "line",
   "text": "Fire on the menu: menu_choice 0 = one player (practice_flag 0, two_player_flag 0), 1 = two players (two_player_flag $80), 2 = practice (practice_flag $80). Stops the music, clears the play bitmap at $2000 and the shadow page set at $C000 with fill_pages, sets current_player to '1', and jumps to game_start."
  },
  {
   "address": 33190,
   "type": "line",
   "text": "An RTI nothing reaches."
  },
  {
   "address": 33191,
   "type": "line",
   "text": "Reads the RUN/STOP key on its own: CIA1 port A drives row 7 only and port B is read until two reads agree; returns A = 0 (Z set) while RUN/STOP is held. Interrupt flag preserved."
  },
  {
   "address": 33241,
   "type": "line",
   "text": "Called every frame from the play interrupt. RUN/STOP pauses the game: silence the SID (sound_off), wait for RUN/STOP to be let go, then wait for any stick movement or fire on either port, and resume."
  },
  {
   "address": 33271,
   "type": "line",
   "text": "Waits up to 256 frames for joy_title to become non-zero. Returns carry set if the stick or fire was used, clear if it timed out."
  },
  {
   "address": 33290,
   "type": "line",
   "text": "Title and menu interrupt, first of a chain of three raster interrupts. Plays one frame of the music (music_play at $E006, which returns the still-playing flag, kept in music_playing), samples both joystick ports into joy_title, then points the IRQ vector at irq_menu_band_top and sets the next raster line from menu_band_top. Writes 0 to $D030 so a C128 stays at 1 MHz."
  },
  {
   "address": 33365,
   "type": "line",
   "text": "The menu highlight bar: the background colour outside the band ($8255), the band's colour ($8256), and the raster lines where the band starts ($8257) and ends ($8258). The menu sets them to colour 10 (light red) and the line pair of the chosen option."
  },
  {
   "address": 33366,
   "type": "line",
   "text": "Part of menu_raster_vars, 1 bytes in, read and written here by irq_menu_band_top, menu_draw, menu_start, title_screen_setup."
  },
  {
   "address": 33367,
   "type": "line",
   "text": "Part of menu_raster_vars, 2 bytes in; referred to here by irq_title_top, menu_draw, menu_start, title_screen_setup."
  },
  {
   "address": 33368,
   "type": "line",
   "text": "Part of menu_raster_vars, 3 bytes in; referred to here by irq_menu_band_top, menu_draw, menu_start, title_screen_setup."
  },
  {
   "address": 33369,
   "type": "line",
   "text": "Part of menu_raster_vars, 4 bytes in; referred to here by menu_fire, menu_start."
  },
  {
   "address": 33370,
   "type": "line",
   "text": "Second title interrupt: at the band's top line, waits for the next line, sets the background to the band colour, and arms irq_menu_band_bottom for the band's last line."
  },
  {
   "address": 33442,
   "type": "line",
   "text": "Third title interrupt: at the band's last line, restores the normal background colour and re-arms irq_title_top at line 251."
  },
  {
   "address": 33513,
   "type": "line",
   "text": "Takes the next tune number from the shuffled list at tune_order ($16BD), counting tune_index ($16C7) down; when the list is used up, shuffle_tunes builds a new order. Returns the tune in A."
  },
  {
   "address": 33531,
   "type": "line",
   "text": "Draws one character into the bitmap at ($02) by XOR: A is the character's code ($20 clears the cell instead). The glyph comes from the font at $BD00, eight bytes per character from '(' ($28); each pixel pair that has either bit set is widened to both bits, so the hires glyph shows as solid multicolour pixels of colour 3."
  },
  {
   "address": 33621,
   "type": "line",
   "text": "Advances the inline-argument pointer at $06/$07 and returns the byte there."
  },
  {
   "address": 33632,
   "type": "line",
   "text": "Prints the text that follows the JSR into the bitmap and returns past it. The arguments are groups of: bitmap address (low, high), the characters, a 0; a further 0 ends the list. Each character is drawn by xor_glyph, eight bytes (one cell) to the right of the last."
  },
  {
   "address": 33682,
   "type": "line",
   "text": "The play interrupt, once a frame at raster line 252 (bit 7 of $D011 cleared, $D012 = $FC). Banks the I/O in, checks for pause (pause_check), runs the sound effects (sfx_update at $B803), counts down sfx_lock, and unless play_frozen ($15C8 bit 7) is set reads the stick (read_stick) and animates the enemy sprites (sprite_anim), then counts down frame_tick ($B2), which paces the main loop, and the animation timer $5D."
  },
  {
   "address": 33759,
   "type": "line",
   "text": "Reads the joystick into stick ($2E): both ports EORed together, so a stick in either port works, bits 0-3 the directions and bit 4 fire, set when pressed. A diagonal (up or down with left or right) keeps fire but takes the last straight direction, kept at last_dir ($840C), so the marker never moves diagonally."
  },
  {
   "address": 33804,
   "type": "line",
   "text": "last_dir: the last straight stick direction, kept by read_stick so that a diagonal keeps the marker moving the way it was going."
  },
  {
   "address": 33805,
   "type": "line",
   "text": "Installs the play interrupt: interrupts off, $01 = $35, $00 = $2F, black border and background, clears zero page from $04 and page 2, gives CIA1's ports back to the keyboard, points $FFFE and $0314 at irq_play, turns CIA1's timer interrupts off, and enables the raster interrupt at line 252."
  },
  {
   "address": 33906,
   "type": "line",
   "text": "Clears the shadow maps at $6000 and $E000 and, unless keep_bitmap ($1558) is set, the bitmap at $2000 (else restores it with restore_bitmap), draws the field border (draw_border), sets the fill patterns $4F/$50 to $55/$AA, then sets the screen colours (set_play_colours) and reinstalls the play interrupt."
  },
  {
   "address": 33915,
   "type": "line",
   "text": "The work of clear_play_memory before the border: clears the $6000 and $E000 planes and the bitmap (or restores it), draws the border and sets the fill patterns."
  },
  {
   "address": 33965,
   "type": "line",
   "text": "Copies 8 KB from $2000-$3FFF to $C000-$DFFF with the I/O banked out ($01 = $34), from the top down: the play screen saved under the I/O area, where restore_bitmap ($88B8) finds it."
  },
  {
   "address": 34007,
   "type": "line",
   "text": "Draws the field's rectangle twice: once with all three pattern bytes $4F-$51 at $FF: draw_rect, then draw_rect_outer one pixel outside it."
  },
  {
   "address": 34029,
   "type": "line",
   "text": "Draws the field's border: the rectangle from field_left/right/top/bottom ($1575-$1578) with all three pattern bytes $4F-$51 at $FF, then the rectangle one pixel outside it with $FF, $55 and $00. Both use the plotting line routine (line_begin_all at $AA45 and line_all_to at $AACE)."
  },
  {
   "address": 34055,
   "type": "line",
   "text": "Draws the rectangle with corners field_left,field_top and field_right,field_bottom as four lines (line_begin_all, line_all_to)."
  },
  {
   "address": 34127,
   "type": "line",
   "text": "Draws the rectangle one pixel outside draw_rect's on every side, with the same line routines."
  },
  {
   "address": 34215,
   "type": "line",
   "text": "Draws the Sparx timer bar at full length unless timer_stopped ($91D8 bit 7): 24 cells down the bitmap column at $2258, the left half of each byte set to pattern %0101 (colour from the screen matrix's high nibble). Then timer_bar_reset sets its two ends."
  },
  {
   "address": 34268,
   "type": "line",
   "text": "Sets the timer bar's two ends: the top end pointer $06/$07 = $2258 with row index $A1 = 1, the bottom end pointer $08/$09 = $3F18 with row index $A2 = 7, the next end to shorten $A3 = $80, and the countdown $A4 = 96 frames."
  },
  {
   "address": 34301,
   "type": "line",
   "text": "Counts timer_delay ($A4) down; at zero, reloads it (3 in practice or with bit 6 of $6C set, 5 with bit 7 of $6C set, otherwise 7) and takes one pixel row off the bar, alternately from the top (timer_bar_eat_top) and the bottom (timer_bar_eat_bottom)."
  },
  {
   "address": 34350,
   "type": "line",
   "text": "Clears the bar's top row: the left half of the byte at ($06),$A1 is wiped, moving down a cell (+320 bytes) every eight rows. When the byte is already empty the two ends have met: timer_bar_empty."
  },
  {
   "address": 34383,
   "type": "line",
   "text": "Clears the bar's bottom row, moving up a cell every eight rows; an empty byte means the ends have met (timer_bar_empty)."
  },
  {
   "address": 34414,
   "type": "line",
   "text": "The Sparx timer has run out: counts it in timer_runs ($0A). Outside practice, once timer_runs reaches the level's limit ($91D9) the timer stops for good (timer_stopped = $80); otherwise the bar is redrawn full. When timer_runs equals $91D6 and bit 7 of $159B is set, the pair at $B587/$B588 is copied into $92/$93 and $94/$95, sfx_lock is set to 255 and sound effect 5 starts."
  },
  {
   "address": 34473,
   "type": "line",
   "text": "Converts a 24-bit number (A low, X middle, Y high) to decimal digits at digits_out ($874C), most significant first, by repeated subtraction of the powers of ten in the table at pow10 ($8728); leading zeros are skipped (except the last), and the list ends with a 0."
  },
  {
   "address": 34579,
   "type": "line",
   "text": "Stores digit A in digits_out and ends the list with 0."
  },
  {
   "address": 34595,
   "type": "line",
   "text": "Working copy of the number score_to_digits is converting (three bytes) and its flag and output index."
  },
  {
   "address": 34596,
   "type": "line",
   "text": "Part of bcd_work, 1 bytes in, read and written here by score_to_digits."
  },
  {
   "address": 34597,
   "type": "line",
   "text": "Part of bcd_work, 2 bytes in; referred to here by score_to_digits."
  },
  {
   "address": 34598,
   "type": "line",
   "text": "Part of bcd_work, 3 bytes in; referred to here by score_to_digits."
  },
  {
   "address": 34599,
   "type": "line",
   "text": "Part of bcd_work, 4 bytes in; referred to here by digit_store, score_to_digits."
  },
  {
   "address": 34600,
   "type": "line",
   "text": "Powers of ten as four-byte little-endian numbers, from 1 to 100,000,000, read by score_to_digits from the top."
  },
  {
   "address": 34636,
   "type": "line",
   "text": "The decimal digits of the last number converted by score_to_digits, as ASCII-coded digits for the font, ended by 0."
  },
  {
   "address": 34645,
   "type": "line",
   "text": "Draws character A at the bitmap address in $02/$03 by copying its eight font bytes from $BD00 (a space clears the cell). Unlike xor_glyph it overwrites."
  },
  {
   "address": 34697,
   "type": "line",
   "text": "Copies the font bytes from $BD00 into the bitmap at $23A0 (32 bytes) and $24E0 (32 bytes): the four-cell QIX logo in the panel to the right of the field."
  },
  {
   "address": 34728,
   "type": "line",
   "text": "Sixteen-byte glyph copier (A minus 4 times 16 from $BEC0 into ($02)); nothing calls it."
  },
  {
   "address": 34764,
   "type": "line",
   "text": "Silences everything: fades the SID volume from 10 to 0 over about forty frames (unless sound_off_done is already set), clears the SID registers, stops the music (music_stop at $B800) and the sound effects (play_sfx 0), and sets sound_off_done."
  },
  {
   "address": 34767,
   "type": "line",
   "text": "Entry of sound_off with A = 4 (the BIT skip): the same fade in fewer steps."
  },
  {
   "address": 34788,
   "type": "line",
   "text": "The operand of the LDX at $87E3: the frames per volume step in sound_off's fade, set to 8 or 4 by its two entries."
  },
  {
   "address": 34834,
   "type": "line",
   "text": "Set to 0 by sound_off; compared with by $94E6."
  },
  {
   "address": 34835,
   "type": "line",
   "text": "Frames during which a new sound effect cannot interrupt the current one; counted down by the play interrupt."
  },
  {
   "address": 34836,
   "type": "line",
   "text": "Starts sound effect A unless sfx_lock is running and A is not one of the effects 0, 1, 2, 5 or 9 that may always interrupt."
  },
  {
   "address": 34866,
   "type": "line",
   "text": "Tail of play_sfx: hands the effect number in A to the sound-effect starter at $B806."
  },
  {
   "address": 34870,
   "type": "line",
   "text": "Bit 7 set once sound_off has faded and silenced the SID; play_sfx clears it when it starts effect 0, 1, 2, 5 or 9, and the menu and the game's end clear it."
  },
  {
   "address": 34871,
   "type": "line",
   "text": "Copies the 8,000-byte plane at $2000 to $E000 (copy_plane)."
  },
  {
   "address": 34878,
   "type": "line",
   "text": "Copies the 8,000-byte plane at $E000 to $C000 (copy_plane)."
  },
  {
   "address": 34885,
   "type": "line",
   "text": "Copies the 8,000-byte plane at $C000 to $6000 (copy_plane)."
  },
  {
   "address": 34892,
   "type": "line",
   "text": "Copies the 8,000 bytes at $4000-$5F3F to $E000-$FF3F (copy_plane): puts the music player and its tunes where they run, at $E000. The start-up does it once; the end of a level does it again, because play uses $E000 as a work plane."
  },
  {
   "address": 34899,
   "type": "line",
   "text": "Copies $1F40 bytes (one bitmap's worth) from page X to page Y, with the I/O and both ROMs banked out ($01 = $34) so that RAM under $D000 can be read and written; $01 is restored afterwards."
  },
  {
   "address": 34945,
   "type": "line",
   "text": "The two masks merge_column uses: $F0 keeps the left pair of multicolour pixels, $0F the right."
  },
  {
   "address": 34947,
   "type": "line",
   "text": "Copies one half of each byte (nibble_masks,X) from the plane at ($08) into the bitmap at ($06), leaving the other half alone, down 25 cells (entry $8883) or 24 cells (entry $8886, A = $18 with the BIT skip), one byte per cell, 320 bytes apart."
  },
  {
   "address": 34950,
   "type": "line",
   "text": "merge_column for 24 cells (A = $18)."
  },
  {
   "address": 34999,
   "type": "line",
   "text": "Column offset used by redraw_panel_edges."
  },
  {
   "address": 35000,
   "type": "line",
   "text": "Clears the plane at $6000 and draws the border there (draw_border_solid), then merges the two-cell strips at $2140 and $2240 of the bitmap with the same strips of the $6000 plane, column by column (merge_column): it puts back the border's edges after the bitmap was restored."
  },
  {
   "address": 35012,
   "type": "line",
   "text": "The column loop of redraw_panel_edges, also called alone by switch_player after the board is restored: merges the two-cell strips at $2140 and $2240 from the $6000 plane into the bitmap."
  },
  {
   "address": 35117,
   "type": "line",
   "text": "Sets up a new life or round: copies $1569 to $33, clears the timer runs and timer_stopped, $A5/$A6, $1559/$155A, the claimed percentage ($020A) and $0203; puts the marker ($31,$32) and its last corner ($29,$2A) at the middle of the bottom edge (x = (field_right - field_left)/2, y = field_bottom); calls $AF82 with A = 1, $91DA and $9EA0, clears the play memory, sets up the Qix ($B530), takes a random value (random at $A58D) to pick $0205 from the table at $121B, and clears $028F/$0290, $154D and $0202."
  },
  {
   "address": 35216,
   "type": "line",
   "text": "Starts a game: blanks the screen ($D011 = 0), clears the play memory, saves the empty bitmap under the I/O ($84AD), runs $8F9E, installs the play interrupt, takes the starting lives from $1567 into lives ($026E), sets the level ($B7) to 1, clears both players' scores ($1560-$1562 and $1563-$1565) and $155C-$155F, sets $02B2/$02B3 to $80, sets the first round up (round_setup), sets multicolour ($D016 = $D8), the bitmap at $2000 ($D018 bit 3) and VIC bank 0 (bitmap mode itself is turned on by game_start), and sets each player's next extra-life score to 50,000 ($00C350 at $1F90-$1F92 and $1F93-$1F95)."
  },
  {
   "address": 35357,
   "type": "line",
   "text": "From the menu: new_game, then the level loop (level_start)."
  },
  {
   "address": 35524,
   "type": "line",
   "text": "Called once a pass from level_loop. If the marker has stopped while drawing ($5E bit 7) the Fuse appears and moves (fuse_step) every $5F passes, sound 10; past level 10 ($B7 >= 11) flag_8B0B is set. When the marker moves again ($5E clear) the Fuse is removed (fuse_off at $8AF6: sprite 1 off, sound 11)."
  },
  {
   "address": 35574,
   "type": "line",
   "text": "Removes the Fuse: flag_8B0B cleared, sprite 1 turned off, sound 11."
  },
  {
   "address": 35592,
   "type": "line",
   "text": "Set to 2 by marker_check_edge (fire held, the marker on a line); while it is non-zero the main loop calls $991C once a pass instead of marker_step, counting it down."
  },
  {
   "address": 35595,
   "type": "line",
   "text": "Bit 7 set by $8AC4 once $B7 (the level) is 11 or more after $AFCE has run; cleared by $8AF6, which also turns sprite 1 off and plays sound 11."
  },
  {
   "address": 35596,
   "type": "line",
   "text": "One step of the marker from the main loop. Takes the stick ($2E), or while a line is being drawn ($9A bit 7) the direction already held ($9C); with no direction it returns. On the edge ($9A clear) the marker's position is kept as the last corner ($29,$2A and $ADEA/$ADEB). Then, with fire (bit 4 of the input) copied to $27 bit 7, it tries right, left, up and down in turn (marker_try_right/left/up/down), each only if that direction is pressed; a move onto a line flips the drawing flag $9A. Finally the position is written alternately to $0C/$0E and $0D/$0F for the line plotter."
  },
  {
   "address": 35638,
   "type": "line",
   "text": "The marker_step path when $2B bit 7 is clear: takes the stick ($2E) or the held direction ($9C) while drawing, the same as marker_step's tail."
  },
  {
   "address": 35797,
   "type": "line",
   "text": "Tries one pixel to the right: the candidate ($0206,$0207) is plotted with direction 8 ($AF82), then the pixels above and below the new position (in $12-$17) are tested in the $E000 plane against pattern_masks2 (test_pixel2); if either is set the move is checked against the drawn lines (marker_check_edge)."
  },
  {
   "address": 35839,
   "type": "line",
   "text": "As marker_try_right, one pixel to the left (direction 4)."
  },
  {
   "address": 35881,
   "type": "line",
   "text": "As marker_try_right, one pixel up (direction 1), testing the pixels to the left and right."
  },
  {
   "address": 35923,
   "type": "line",
   "text": "As marker_try_up, one pixel down (direction 2)."
  },
  {
   "address": 35965,
   "type": "line",
   "text": "Decides whether the candidate position ($0206,$0207) is taken. A set pixel there in the $E000 plane that equals pixel_masks (colour 3) is taken at once (marker_move). A clear pixel is refused while $9A bit 7 is set, or when either side pixel ($12,$15 or $13,$16) is set; otherwise the pixel ahead ($14,$17) must be clear or colour 3, and then, if fire is held ($27 bit 7), $2B and $33 are set to $80 and count_8B08 to 2."
  },
  {
   "address": 36037,
   "type": "line",
   "text": "The direction being tried by marker_step: 8 right, 4 left, 1 up, 2 down."
  },
  {
   "address": 36038,
   "type": "line",
   "text": "Accepts the move: sets $11 bit 7, and places the marker sprite (sprite 0, pointer $21, hires, enabled) at the candidate position: x = (x + 7) * 2 with the ninth bit in $D010, y = y + 40. The position becomes the marker's ($31,$32)."
  },
  {
   "address": 36042,
   "type": "line",
   "text": "Places the marker's sprite (sprite 0, pointer $21) at the candidate position ($0206,$0207) and makes it the marker's position ($31,$32)."
  },
  {
   "address": 36105,
   "type": "line",
   "text": "Looks up the pixel at X,Y in the $E000 plane (pixel_addr) and compares it with pattern_masks2,X (the pixel in colour 2): Z set when equal."
  },
  {
   "address": 36112,
   "type": "line",
   "text": "Address of the pixel at x = X (0-159, multicolour pixels) and y = Y in the $E000 plane: row base from row_lo/row_hi ($123B/$1303) plus column offset from col_lo/col_hi ($13CB/$146B), ORed with $E000, into $55/$56. Returns the byte masked to that pixel (pixel_masks at $150B, by x AND 3), with X = x AND 3."
  },
  {
   "address": 36147,
   "type": "line",
   "text": "Called between the main loop's steps. If $1E bit 7 is set (the marker has been hit) it drops the caller's return and runs life_lost."
  },
  {
   "address": 36154,
   "type": "line",
   "text": "A life is lost: stops the fill (spawn reset $8AF6), redraws the timer bar, clears the slow-draw flag $154D, plays sound 9, blanks the sprites, then the death sequence: $8F24 (the line unwinds), $B2F4, $A774, marker back to the last corner (marker_reset), and sound_off. With no lives left ($026E) and not practice: the game-over message ($19EA), then, in a two-player game whose other player is still playing ($8DB6 clear), mark this one finished and switch players (switch_player); otherwise reload the game (reload_alien at $1B97). With lives left, a two-player game switches players before the next round."
  },
  {
   "address": 36252,
   "type": "line",
   "text": "Puts the marker back at its last corner ($29,$2A) and clears the timer runs, timer_stopped and the hit flag $1E, then redraws the panel (draw_status at $1CDE)."
  },
  {
   "address": 36278,
   "type": "line",
   "text": "Bit 7 set when one player of a two-player game has lost all lives, so play no longer alternates."
  },
  {
   "address": 36279,
   "type": "line",
   "text": "After a pass of the main loop: if the marker was hit, check_death. If $28 bit 7 is set (a closed line is to be filled): $8AF6, sound 7 (or 8 when $23 bit 7 is set and $154D is clear), clear $70/$71 and area_lo/area_hi, and run $B243. Then, when $BB bit 7 and (after $B07C, $B0EC, $B0B4) $AB bit 7 are both set, increment $0291 and run $A1C0, $A23A and $A316 before ending the level; otherwise run the fill animation (claim_wait) and claim_check."
  },
  {
   "address": 36360,
   "type": "line",
   "text": "Runs the fill animation ($A90A) until it returns carry set, calling $ABAC between steps."
  },
  {
   "address": 36371,
   "type": "line",
   "text": "Scores the claimed area (score_fill), turns the claimed total into a percentage at claimed_pct ($020A), capped at 99, and compares it with the level's requirement ($B8). Below it: redraw the panel and, if a life was gained, sound the bell ($1A74), then go back to the main loop. At or above it: 1,000 points for every percent over the requirement (added to the score with add_bonus) and the level ends (level_end)."
  },
  {
   "address": 36447,
   "type": "line",
   "text": "Low byte of the bonus being built by claim_check, 1,000 ($03E8) per percent over."
  },
  {
   "address": 36448,
   "type": "line",
   "text": "Scores a finished fill. The area counted by the fill ($70/$71, pixels) is halved, then doubled again unless the line was fast ($23 bit 7) with no forced slow scoring ($154D bit 7 clear): a slow line scores twice a fast one. Then for each split ($0291, the times this player has split the Qix so far in the game; only new_game clears it) the points are doubled again, but the doubling adds only the low byte to itself and carries into the high byte without doubling it: a bug, so from 256 points on each split adds less than the manual's doubling. The fill's area ($8EB7/$8EB8) is added to the current player's claimed total ($155C/$155D for player 1, $155E/$155F for player 2), and the points to the score (add_score)."
  },
  {
   "address": 36535,
   "type": "line",
   "text": "Pixels claimed by the fill being scored, low byte; incremented by the fill routines."
  },
  {
   "address": 36536,
   "type": "line",
   "text": "Pixels claimed by the fill being scored, high byte."
  },
  {
   "address": 36537,
   "type": "line",
   "text": "Adds $70/$71 to the current player's 24-bit score ($1560-$1562 for player 1, $1563-$1565 for player 2) and returns the high byte of that player's claimed total."
  },
  {
   "address": 36602,
   "type": "line",
   "text": "The level is won: sound_off, timer bar redrawn, sprites off, the bonus ($028F/$0290) added to the score, the panel redrawn (with the extra-life bell if one was gained), then the end-of-level sequence at level_complete ($15D3)."
  },
  {
   "address": 36643,
   "type": "line",
   "text": "Counter used by unwind_line."
  },
  {
   "address": 36644,
   "type": "line",
   "text": "The death animation: for $156B+1 steps, erases one segment from each end of the drawn line ($0228/$023C/$021E/$0232 for one end at index $B5, $0250/$0264/$0246/$025A for the other at $B6) with erase_segment ($98A5), stepping both indices down and wrapping them to $156B. The first byte of the bitmap is saved and restored around it."
  },
  {
   "address": 36748,
   "type": "line",
   "text": "Copies zero page ($02-$FF) to $5E02 and page 2 to $5F02: the first player's state, kept while the second plays."
  },
  {
   "address": 36766,
   "type": "line",
   "text": "Clears zero page from $02, page 2, and their saved copies at $5E00 and $5F00, and sets $01 = $35, $00 = $2F."
  },
  {
   "address": 36794,
   "type": "line",
   "text": "Two-player games: switches current_player between '1' and '2', saves this player's board (copy_2000_to_E000), redraws the panel edges and the player's name ($1A15), exchanges zero page and page 2 with the copies at $5E00/$5F00, restores the other player's board ($C000 to $6000, then rebuilds the visible bitmap from it with rebuild_bitmap, and $E000 to $C000), and clears the timer state."
  },
  {
   "address": 36868,
   "type": "line",
   "text": "Clears the timer state and rebuilds the plane at $E000 from the bitmap $2000-$3FFF, pixel by pixel from the top: every set pixel becomes the edge pattern if it is colour 3 (pixel_masks) and pattern_masks2 otherwise. Then sets $4E bit 7 and redraws the border."
  },
  {
   "address": 36940,
   "type": "line",
   "text": "Sets $D030 to 0 (a C128 at 1 MHz), waits for raster line 251, and turns all sprites off."
  },
  {
   "address": 36961,
   "type": "line",
   "text": "Loads the level's settings from the tables at $1181-$121A, indexed by the level $B7 (1 to 10; from 11 on it alternates 10 and 11): $1785, $6F, the timer-run limit $91D9, $91D5, $91D6, $91D7, $6E, $6D, the required claim $B8 (percent), $6C, $BB, $BE ($80 in practice), $159B and $15BE. The Qix colour $0205 is copied to $90EB, $15B7 and $15BB, its high nibble to $15B8 and $15BC. Then it clears the screen matrix's play area (35 columns of 24 rows from $0428) to colour 0, puts colour $22 in the panel column, draws the panel colours ($1D9C) and fills colour RAM from $D800 with 1 (fill_pages_from at $98F3)."
  },
  {
   "address": 37003,
   "type": "line",
   "text": "Byte 2 of the LDA at $9089 in level_params (its operand), referred to by tune5_v1: an operand the code rewrites or reads as data."
  },
  {
   "address": 37099,
   "type": "line",
   "text": "The operand of the LDA at $90EA in level_params, rewritten at run time by level_params (self-modifying code)."
  },
  {
   "address": 37139,
   "type": "line",
   "text": "Adds A (low) and X (high) to the level bonus at $028F/$0290."
  },
  {
   "address": 37154,
   "type": "line",
   "text": "Passes before the roamers start moving: 32 at the start of a round (level_start), 1 in the attract demo; enemies_step counts it down."
  },
  {
   "address": 37155,
   "type": "line",
   "text": "Resets the sprites for a round: no expansion, all hires, all off (wait_bottom_sprites_off), positions 0 and colour 1 (white); pointers $26 for sprite 1 and $22/$23 alternately for sprites 2-7; $15C9/$15CB/$15CD = $20 and $15CA/$15CC/$15CE = $40. Then marker_place."
  },
  {
   "address": 37247,
   "type": "line",
   "text": "Puts the marker at its position ($31,$32): copies it to the candidate ($0206,$0207), the last corner ($29,$2A), the plotter's two slots ($0C/$0E, $0D/$0F) and $ADEA/$ADEB, places the sprite (marker_sprite at $8CCA), runs $A1C0, and clears the drawing state ($9A, $9B, $6A, $6B, $9C), $1E, $5D, $027A, $AB, play_frozen ($15C8), $2B, the stick and count_8B08; $5F = 16, keep_bitmap ($1558) = $80."
  },
  {
   "address": 37333,
   "type": "line",
   "text": "Level setting from the table at $11CD, compared with var_9122's companion at $A1C2."
  },
  {
   "address": 37334,
   "type": "line",
   "text": "Level setting from the table at $11D8: the timer run at which timer_bar_empty speeds the pair at $92-$95 (and compared at $A23C)."
  },
  {
   "address": 37335,
   "type": "line",
   "text": "Level setting from the table at $11E3, compared at $A318."
  },
  {
   "address": 37336,
   "type": "line",
   "text": "Bit 7 set when the Sparx timer has run out for the last time this life; the bar is no longer drawn or counted."
  },
  {
   "address": 37337,
   "type": "line",
   "text": "Level setting from the table at $11EE: how many times the timer bar may run out before it stops (timer_bar_empty)."
  },
  {
   "address": 37338,
   "type": "line",
   "text": "Puts both Qix in the middle of the field. Sets the inner limits (qix_limits), the trail indices $B5/$B6/$AF/$B0 to $156B (the trail length less one), empties both trails (the eight ten-entry tables at $021E-$026D: x1, y1, x2, y2 for Qix 1, the same for Qix 2), and starts each Qix as the line from (centre x - 5, centre y - 5) to (centre x + 5, centre y + 5), held in $0287-$028E and the copies at $020C-$0213. The speeds it draws into $C3/$C4, $C7/$C8, $CB/$CC and $CF/$D0 (random_speed_pos, random_speed_neg) are never used: qix_step loads the speeds from $027B-$0282 over them, so each life starts with the speeds the Qix last had."
  },
  {
   "address": 37516,
   "type": "line",
   "text": "The box the Qix moves in: two pixels inside the field on every side, at $C2 (left), $C1 (right), $C0 (top), $BF (bottom)."
  },
  {
   "address": 37549,
   "type": "line",
   "text": "Moves Qix 1's first endpoint vertically: y1 + speed $C7. Outside $C0 to $BF - 1 the speed is reversed with a new size (negate_speed), the pull $0274 towards the marker is added, and the old position is kept for this step. The JSR new_turn_time stores a time at $0273, which nothing reads, so the turn timer $0271 runs on. The result goes to $D4."
  },
  {
   "address": 37584,
   "type": "line",
   "text": "As qix1_move_y1 for Qix 1's first endpoint across the field: x1 + speed $C3, limits $C2-$C1, bias $0275, result in $D3."
  },
  {
   "address": 37619,
   "type": "line",
   "text": "Moves Qix 1's second endpoint vertically (speed $CF, pull $0274, as qix1_move_y1), then keeps it near the first: while y2 and y1 are 30 ($1570) or more apart it is stepped 5 ($156E) towards y1. The test against $156F (15) comes first and can never decide alone, so the length has a maximum and no minimum. Result in $D6."
  },
  {
   "address": 37695,
   "type": "line",
   "text": "As qix1_move_y2 for the horizontal coordinate (speed $CB, bias $0275, gap to $D3), result in $D5."
  },
  {
   "address": 37771,
   "type": "line",
   "text": "As qix1_move_y1 for Qix 2 (position $028D, bias $0276)."
  },
  {
   "address": 37806,
   "type": "line",
   "text": "As qix1_move_y2 for Qix 2 (position $028E, bias $0276)."
  },
  {
   "address": 37882,
   "type": "line",
   "text": "As qix1_move_x1 for Qix 2 (position $028B, bias $0277)."
  },
  {
   "address": 37917,
   "type": "line",
   "text": "As qix1_move_x2 for Qix 2 (position $028C, bias $0277)."
  },
  {
   "address": 37993,
   "type": "line",
   "text": "Cleared by qix_reset; nothing else uses it."
  },
  {
   "address": 37994,
   "type": "line",
   "text": "Moves a Qix one step. On levels with two Qix ($BB bit 7) it alternates between them ($027A bit 7; Qix 2 is qix2_step). For Qix 1: erases the oldest line of its trail (erase_segment), takes the current line and speeds, and counts down the turn time $0271. When it passes zero a new time is drawn (a random byte, kept if $20-$3E and cut to 0-3 otherwise, then masked by the level's $6F), the hum (sound 3, or 4 for a time of 4 or more) starts if it is not already playing, and each of the four speeds is reversed with a new size when a random byte is $40 or more (three times in four). No pull is added here. Then the four endpoints move (qix1_move_y1, y2, x1, x2), the colour and pattern are chosen ($98EB, $98C7), the new line is checked against the claimed edges (qix1_check_line), stored as the newest entry of the trail and as the current line, and the pull for the next bounce is chosen for each axis: $6E if the first endpoint is left of (or above) the marker, $6D otherwise."
  },
  {
   "address": 38315,
   "type": "line",
   "text": "qix_step for Qix 2: trail at $0246-$026D (index $B6), speeds at $027F-$0282, turn time $0272, moves qix2_move_*, wall check qix2_check_line, bias in $0276/$0277."
  },
  {
   "address": 38602,
   "type": "line",
   "text": "Tests Qix 1's new line against the claimed edges (colour 3 in the $E000 plane), with $0286 bit 7 set so pixel_op tests instead of drawing. First the path from the old second endpoint to the new first one: if it crosses, the move across alone and the move down alone are tested, and each that crosses is bounced (as at a wall) and moved again. The same for the path from the old first endpoint to the new second one. Last, at $9774, the new line itself: if it still crosses, the Qix falls back to the line in trail slot $B5, the oldest one, erased at the start of this step, and the turn time $0271 is cleared so it turns on the next step. The result becomes the current line and is drawn (qix1_store_line)."
  },
  {
   "address": 38815,
   "type": "line",
   "text": "Stores the line in $D3-$D6 as Qix 1's current line ($0287-$028A) and draws it (draw_qix_line)."
  },
  {
   "address": 38838,
   "type": "line",
   "text": "qix1_check_line for Qix 2 (line $028B-$028E, trail slot $B6, timer $0272, qix2_move_*), with one slip. The test of the second endpoint's move across alone, at $982F, loads Y from $028A, Qix 1's old y2, where Qix 2's own is $028E. So that test runs to (new x2, Qix 1's y2), and can bounce Qix 2's x2 off an edge its move would not cross, or miss one it would. A replay of a recorded two-Qix run without the slip drifts from the game after 288 steps; with it, all 400 match."
  },
  {
   "address": 39051,
   "type": "line",
   "text": "Stores the line in $D3-$D6 as Qix 2's current line ($028B-$028E) and draws it."
  },
  {
   "address": 39074,
   "type": "line",
   "text": "Draws the line from ($D3,$D4) to ($D5,$D6) with the line routine (line_start at $A5F4, in plot mode: $B3 = $80); entry $98A5 (BIT skip, $B3 = 0) erases it instead (erase_segment)."
  },
  {
   "address": 39077,
   "type": "line",
   "text": "Erases the line ($D3,$D4)-($D5,$D6): line_begin with $B3 = 0 runs pixel_op in erase mode, which clears every Qix pixel on it and also tests it against the line being drawn."
  },
  {
   "address": 39096,
   "type": "line",
   "text": "Starts a line at X,Y with $0285 (the hit flag) cleared, in the mode $B3 chooses: line_start_plot ($A5F4) or line_start_test ($A5F6)."
  },
  {
   "address": 39111,
   "type": "line",
   "text": "Chooses the Qix's pixel pattern for this step: $4F from qix_patterns by the random colour index $B1 (1 if it was 0), $50 = $AA."
  },
  {
   "address": 39127,
   "type": "line",
   "text": "The pixel patterns a Qix line can be drawn in: $00, $55, $AA, $FF (colours 0-3 of a multicolour byte)."
  },
  {
   "address": 39131,
   "type": "line",
   "text": "Puts a random number in $0273: a value from $20 to $3E is kept, any other is cut to 0-3. Nothing reads $0273 (no instruction names it, and a read watch on it stayed silent for 1,600 steps of play), so the bounces that call this leave the turn timer $0271 as it was. Then falls into qix_colour."
  },
  {
   "address": 39147,
   "type": "line",
   "text": "A random number 0-3 into $B1, the index into qix_patterns."
  },
  {
   "address": 39155,
   "type": "line",
   "text": "Fills four pages (1 KB) from X,Y with A: used to fill colour RAM."
  },
  {
   "address": 39172,
   "type": "line",
   "text": "Fills $1F40 bytes (one bitmap) from X,Y (address high, low) with A."
  },
  {
   "address": 39196,
   "type": "line",
   "text": "One step of a line being drawn. $33 bit 7 toggles each call, and on alternate calls, while fire is held ($52 bit 4), the step is skipped unless $154D bit 7 or count_8B08 is set: a slow draw moves at half the speed of a fast one. Otherwise the marker advances twice (draw_advance): each new pixel goes in the plotter slots ($0C/$0E, then $0D/$0F). Reaching the edge ($28 bit 7) or failing to move ends the line: the last pixel is plotted (plot_line_pixel with $9B = $80), $5F is set to 8 if $155B bit 7 is set, and if the line ends with fire released ($27 bit 7 clear) and $154D clear, $23 is set to $80: the line counts as fast. Then the drawing flags are cleared."
  },
  {
   "address": 39331,
   "type": "line",
   "text": "The end of a drawn line: $9B from A, the last pixel plotted (plot_line_pixel), $5E set to 0 or $80 (BIT skip at $99AA) and the drawing flag $9A cleared."
  },
  {
   "address": 39348,
   "type": "line",
   "text": "Advances the marker one pixel in the held direction ($52: 8 right, 4 left, 1 up, 2 down, tried in that order and remembered in $9E), and sets up the three pixels to check: two beside the new position ($12/$15 and $13/$16) and one two pixels ahead ($14/$17). Then draw_check."
  },
  {
   "address": 39492,
   "type": "line",
   "text": "Checks the new pixel in the $E000 plane. Colour 3 (the edge): the line is complete ($28 = $80, $5E cleared) and the neighbours are checked as for empty ground. Colour 2: the marker is hit ($1E = $80; $28, $5E and $11 cleared). Colour 1: nothing more. Empty: the two side pixels and the pixel ahead are checked in turn; a colour-2 pixel among them is a hit, a colour-1 pixel ends the check, and if none of the three is colour 1, $11 is set to $80."
  },
  {
   "address": 39595,
   "type": "line",
   "text": "Plots the marker's pixel in colour 1 in all three planes: $E000 (the one the game tests), $6000 and the visible bitmap at $2000, unless the pixel there is already colour 3 (the marker is back on the edge), colour 1, or colour 2 (hit: $1E = $80). Then moves the marker sprite to it (marker_move)."
  },
  {
   "address": 39738,
   "type": "line",
   "text": "Moves the two free-roaming creatures on sprites 2 and 3 (positions $90/$91 and $8E/$8F, directions $81/$82), used instead of the third pair of edge-walkers when the level's $BE allows. Each takes a new diagonal direction from roam_next_dir ($9D47), which looks at the walls round it, steps (diag_offset) and places its sprite (place_enemy_sprite). One with no way out ($9D47 returns 0) waits ($BD bit 7 or 6, counters $1556/$9C56 and $1557/$9C57) and then starts again from a Qix (spritz1_spawn, spritz2_spawn)."
  },
  {
   "address": 39929,
   "type": "line",
   "text": "Steps X,Y one pixel diagonally by direction A: 1 right and up, 2 right and down, 4 left and down, 8 left and up; any other value leaves them."
  },
  {
   "address": 39958,
   "type": "line",
   "text": "Starts the first roamer at a Qix's midpoint (qix_midpoint, into $90/$91), sets $1559 = $80, and its direction to 1 (right and up)."
  },
  {
   "address": 39975,
   "type": "line",
   "text": "Holds the first roamer back: sets $BD bit 7 and its two counters ($1556 and $9C56) to 3."
  },
  {
   "address": 39990,
   "type": "line",
   "text": "Starts the second roamer at a Qix's midpoint (into $8E/$8F), $1559 = $80, direction 4 (left and down)."
  },
  {
   "address": 40007,
   "type": "line",
   "text": "Holds the second roamer back: sets $BD bit 6 and its counters ($1557 and $9C57) to 4."
  },
  {
   "address": 40022,
   "type": "line",
   "text": "Frame counter for the first roamer's wait."
  },
  {
   "address": 40023,
   "type": "line",
   "text": "Frame counter for the second roamer's wait."
  },
  {
   "address": 40024,
   "type": "line",
   "text": "Toggled by qix_midpoint: which Qix the next roamer starts from on two-Qix levels."
  },
  {
   "address": 40025,
   "type": "line",
   "text": "The middle of a Qix's current line, in X,Y: Qix 1's ($0210-$0213), or on levels with two Qix ($BB bit 7) Qix 2's ($020C-$020F) every other call."
  },
  {
   "address": 40145,
   "type": "line",
   "text": "Tests one of the twelve points round a roamer (offsets roam_dx/roam_dy, index X) in the $6000 plane and the $E000 plane. Touching colour 1 in the $6000 plane (the line being drawn) kills the marker ($1E = $80). A set pixel in the $E000 plane that is not colour 2 is a wall: its bit (roam_bits) is added to $9E3E. On levels where $9E3C bit 7 is set the probe is the version at $B684."
  },
  {
   "address": 40263,
   "type": "line",
   "text": "Chooses a roamer's next direction. Probes the twelve points round it (roam_probe) into a wall pattern; no walls: keep the direction in A. Otherwise the pattern is looked up in roam_patterns, and the matching entry of the table for the current direction (roam_turn_1, roam_turn_2, roam_turn_4 or roam_turn_8) is the new direction, 0 for none. A pattern of $FF (walls all round) sets $154D bit 7 and clears the hit flag: trapped."
  },
  {
   "address": 40298,
   "type": "line",
   "text": "Index of the point roam_next_dir is probing, 0-11."
  },
  {
   "address": 40299,
   "type": "line",
   "text": "The part of roam_next_dir that searches roam_patterns for the wall pattern and returns the new direction from the table for the current direction."
  },
  {
   "address": 40368,
   "type": "line",
   "text": "New direction for each of the 28 wall patterns when moving right and up (direction 1); 0 means no way."
  },
  {
   "address": 40396,
   "type": "line",
   "text": "New direction for each wall pattern when moving right and down (direction 2)."
  },
  {
   "address": 40424,
   "type": "line",
   "text": "New direction for each wall pattern when moving left and down (direction 4)."
  },
  {
   "address": 40452,
   "type": "line",
   "text": "New direction for each wall pattern when moving left and up (direction 8)."
  },
  {
   "address": 40480,
   "type": "line",
   "text": "The 28 wall patterns roam_next_dir recognises, as bits of the probe pattern: 12 single walls and corners, 12 pairs, and 4 more."
  },
  {
   "address": 40508,
   "type": "line",
   "text": "roam_probe's variables: $9E3C bit 7 selects the alternative probe, $9E3D the direction coming in, $9E3E the wall pattern being built, $9E3F bit 7 says which roamer is being probed (clear: the first at $90/$91, set: the second at $8E/$8F)."
  },
  {
   "address": 40509,
   "type": "line",
   "text": "Part of roam_vars, 1 bytes in, read and written here by roam_lookup, roam_next_dir."
  },
  {
   "address": 40510,
   "type": "line",
   "text": "Part of roam_vars, 2 bytes in; referred to here by roam_lookup, roam_next_dir, roam_probe."
  },
  {
   "address": 40511,
   "type": "line",
   "text": "Part of roam_vars, 3 bytes in; referred to here by roam_probe, spritz_step."
  },
  {
   "address": 40513,
   "type": "line",
   "text": "Part of roam_vars, 5 bytes in; referred to here by roam2_second, roam2_step, roam_probe_alt."
  },
  {
   "address": 40514,
   "type": "line",
   "text": "The twelve probe points' x offsets, round the roamer clockwise from above right."
  },
  {
   "address": 40526,
   "type": "line",
   "text": "The twelve probe points' y offsets."
  },
  {
   "address": 40538,
   "type": "line",
   "text": "The bit each probe point sets in the wall pattern: three per diagonal quarter ($01 $11 $10, $02 $22 $20, $04 $44 $40, $08 $88 $80)."
  },
  {
   "address": 40550,
   "type": "line",
   "text": "Code nothing calls: two pixel routines in the style of plot_line_pixel (set a pixel in colour 1 in all three planes, and test the candidate pixel for colour 3). Left from an earlier version."
  },
  {
   "address": 40587,
   "type": "line",
   "text": "Code nothing calls: tests the candidate pixel for colour 3 (carry clear if it is), like fill_edge_test."
  },
  {
   "address": 40608,
   "type": "line",
   "text": "Sets all eight sprites' colours to white and hires, the SID volume to 15 with the low-pass filter bit, voice 3 to the highest frequency with the noise waveform (gate off): voice 3's oscillator is then the random source random reads at $D41B."
  },
  {
   "address": 40642,
   "type": "line",
   "text": "pixel_addr for the candidate position ($0206,$0207) in the $E000 plane, without reading it; X = x AND 3, Y = 0."
  },
  {
   "address": 40674,
   "type": "line",
   "text": "The address in the visible bitmap of the cell holding the candidate position, from the bitmap row table bitmap_rows ($151B), with X = x AND 3 and Y = y AND 7."
  },
  {
   "address": 40721,
   "type": "line",
   "text": "Candidate positions found by the edge walker's three looks: ahead-left ($9F11/$9F12), straight ($9F13/$9F14), ahead-right ($9F15/$9F16), and their distances from the Qix ($9F17-$9F1C)."
  },
  {
   "address": 40722,
   "type": "line",
   "text": "Part of walk_cand, 1 bytes in, read and written here by walk_choose, walk_right."
  },
  {
   "address": 40723,
   "type": "line",
   "text": "Part of walk_cand, 2 bytes in; referred to here by walk_ahead, walk_choose."
  },
  {
   "address": 40724,
   "type": "line",
   "text": "Part of walk_cand, 3 bytes in; referred to here by walk_ahead, walk_choose."
  },
  {
   "address": 40725,
   "type": "line",
   "text": "Part of walk_cand, 4 bytes in; referred to here by walk_choose, walk_left."
  },
  {
   "address": 40726,
   "type": "line",
   "text": "Part of walk_cand, 5 bytes in; referred to here by walk_choose, walk_left."
  },
  {
   "address": 40727,
   "type": "line",
   "text": "Part of walk_cand, 6 bytes in; referred to here by walk_choose."
  },
  {
   "address": 40728,
   "type": "line",
   "text": "Part of walk_cand, 7 bytes in; referred to here by walk_choose."
  },
  {
   "address": 40729,
   "type": "line",
   "text": "Part of walk_cand, 8 bytes in; referred to here by walk_choose."
  },
  {
   "address": 40730,
   "type": "line",
   "text": "Part of walk_cand, 9 bytes in; referred to here by walk_choose."
  },
  {
   "address": 40731,
   "type": "line",
   "text": "Part of walk_cand, 10 bytes in; referred to here by walk_choose."
  },
  {
   "address": 40732,
   "type": "line",
   "text": "Part of walk_cand, 11 bytes in; referred to here by walk_choose."
  },
  {
   "address": 40733,
   "type": "line",
   "text": "Moves an edge walker (position $88/$89, direction A, kept in $87) one pixel along the colour-3 edge, preferring one way round: tries the turns walk_left and walk_ahead in order, and at a junction uses walk_choose to pick by distance from the Qix. Returns the new direction in A and the position in X,Y."
  },
  {
   "address": 40815,
   "type": "line",
   "text": "walker_step_ccw preferring the other way round."
  },
  {
   "address": 40897,
   "type": "line",
   "text": "At a junction, takes the candidate nearest Qix 1's centre point ($0210/$0211), measured by walk_distance."
  },
  {
   "address": 41059,
   "type": "line",
   "text": "A rough distance between X,Y and the point $0210/$0211: the vertical distance less the horizontal one, in X, with the sign in Y bit 7."
  },
  {
   "address": 41094,
   "type": "line",
   "text": "Part of walk_distance, 35 bytes in, read and written here by walk_distance."
  },
  {
   "address": 41095,
   "type": "line",
   "text": "Masks that clear one sprite's bit of $D010, two entries per sprite from sprite 2."
  },
  {
   "address": 41107,
   "type": "line",
   "text": "Masks that set one sprite's bit of $D010, two entries per sprite from sprite 2."
  },
  {
   "address": 41119,
   "type": "line",
   "text": "Turns direction A round: up and down swap, left and right swap (from $1592-$1595)."
  },
  {
   "address": 41158,
   "type": "line",
   "text": "Places enemy sprite X/2 (X = 0 for sprite 2 up to 10 for sprite 7) at the pixel $88,$89: x = (x + 7) * 2 with the ninth bit in $D010, y = y + 40. If the position is either of the marker's plotter slots ($0C/$0E, $0D/$0F), the marker is hit ($1E = $80)."
  },
  {
   "address": 41224,
   "type": "line",
   "text": "If the two walkers of pair A (sprites 6 and 7) are on the same pixel and going the same way, turns one round (reverse_dir)."
  },
  {
   "address": 41248,
   "type": "line",
   "text": "As walker_pair_a_sync for pair B (sprites 4 and 5)."
  },
  {
   "address": 41272,
   "type": "line",
   "text": "As walker_pair_a_sync for pair C (sprites 2 and 3)."
  },
  {
   "address": 41296,
   "type": "line",
   "text": "Same as reverse_dir."
  },
  {
   "address": 41333,
   "type": "line",
   "text": "Moves the enemies once a pass of the main loop: walker pair B (walker_pair_b) except in practice; walker pair A (walker_pair_a) unless $BE bit 6 is set; walker pair C (walker_pair_c) unless $BE bit 7 is set; checking for a hit after each. With $BE bit 6 the second roamer pair (roam2_step, sprites 6-7) moves instead of pair A, and with bit 7 the first roamer pair (spritz_step, sprites 2-3) instead of pair C, both only once roamer_delay has counted down to 0 (one count a pass)."
  },
  {
   "address": 41408,
   "type": "line",
   "text": "Walker pair A, sprites 6 and 7: only once the timer has run out at least lvl_91D5 times. Each walker waits out its start delay ($15C9, $15CA), then steps along the edge (walker_step_cw for one, walker_step_ccw for the other) and is placed; both are then shown in multicolour."
  },
  {
   "address": 41530,
   "type": "line",
   "text": "Walker pair B, sprites 4 and 5, which move every pass (walker_b1_step, walker_b2_step) and are shown each time. Once the timer has run out lvl_91D6 times their colours are set to 0, and on levels where $159B bit 7 is set they turn yellow (7) and begin to chase: a walker standing on the marker's last corner ($29,$2A) sets $6A or $6B, and from then on follows the marker's line (chaser_b1_step, chaser_b2_step). The code reads the colour back to alternate between 7 and 5, but it has just written 0 there, so the 5 is never chosen."
  },
  {
   "address": 41647,
   "type": "line",
   "text": "Walker pair B's first Sparx (sprite 5): chases up the line (chaser_b1_step) once it is on it ($6A bit 7); otherwise it resolves a meeting with its partner (walker_pair_b_sync), waits out its start delay ($15CB), steps along the edge (walker_step_cw) and is placed (place sprite at offset 6)."
  },
  {
   "address": 41700,
   "type": "line",
   "text": "Walker pair B's second Sparx (sprite 4): chases up the line (chaser_b2_step) once on it ($6B bit 7); otherwise waits out its start delay ($15CC), steps along the edge (walker_step_ccw) and is placed."
  },
  {
   "address": 41750,
   "type": "line",
   "text": "Walker pair C, sprites 2 and 3: only once the timer has run out lvl_91D7 times; as walker_pair_a."
  },
  {
   "address": 41876,
   "type": "line",
   "text": "pixel_addr for X,Y in the $E000 plane (address in $55/$56, X = x AND 3, Y = 0)."
  },
  {
   "address": 41902,
   "type": "line",
   "text": "Carry set if the pixel at X,Y is colour 3, the edge."
  },
  {
   "address": 41919,
   "type": "line",
   "text": "The pixel one step to the walker's left, for direction $87: if it is edge, it is the candidate ($8C/$8D and $9F15/$9F16). Z clear if it is."
  },
  {
   "address": 41970,
   "type": "line",
   "text": "The pixel one step to the walker's right, kept in $9F11/$9F12."
  },
  {
   "address": 42021,
   "type": "line",
   "text": "The pixel one step ahead, kept in $9F13/$9F14."
  },
  {
   "address": 42072,
   "type": "line",
   "text": "The pixel behind the walker, on the line being drawn (colour 1): Z clear if the walker can follow the line."
  },
  {
   "address": 42127,
   "type": "line",
   "text": "The direction from the walker's position ($88,$89) to X,Y."
  },
  {
   "address": 42153,
   "type": "line",
   "text": "Animates the enemy sprites from the play interrupt: every $1568 frames ($5D), steps the four-frame animation counter $159E and sets the sprite pointers and the multicolours $D025/$D026 for sprites 1-3 from the tables at $159F-$15C6; sprite_anim2 does sprites 6 and 7."
  },
  {
   "address": 42264,
   "type": "line",
   "text": "Sets sprites 6 and 7's pointers and colours from the animation frame, when $BE bit 6 is set."
  },
  {
   "address": 42321,
   "type": "line",
   "text": "Code nothing reaches: JSR random, ASL A."
  },
  {
   "address": 42325,
   "type": "line",
   "text": "Entry with carry from the caller, the old speed's sign after its ASL: a new speed the other way from the old one, of a new size (random_speed_neg, -4 or -5, after a positive speed; random_speed_pos, 4 or 5, after a negative one). Used for every change of a Qix's vertical speed, at a bounce or when the turn timer runs out."
  },
  {
   "address": 42327,
   "type": "line",
   "text": "A random speed from $156C + 2 upwards."
  },
  {
   "address": 42340,
   "type": "line",
   "text": "A random speed from -($156C + 2) downwards."
  },
  {
   "address": 42353,
   "type": "line",
   "text": "As negate_speed with a minimum of 1 instead of 2."
  },
  {
   "address": 42381,
   "type": "line",
   "text": "A random byte 0-255."
  },
  {
   "address": 42383,
   "type": "line",
   "text": "A random number below A: the generator mixes CIA2 timer A, SID voice 3's noise ($D41B), CIA1 timer A and the raster line into the three-byte state $1571-$1573, and scales by A."
  },
  {
   "address": 42479,
   "type": "line",
   "text": "The operand of the LDX at $A5EE in random_range, rewritten at run time by random_range (self-modifying code)."
  },
  {
   "address": 42481,
   "type": "line",
   "text": "Byte 1 of the LDY at $A5F0 in random_range (its operand), referred to by random_range: an operand the code rewrites or reads as data."
  },
  {
   "address": 42484,
   "type": "line",
   "text": "Starts a line at X,Y in plot mode ($4E bit 7 set)."
  },
  {
   "address": 42486,
   "type": "line",
   "text": "Starts a line at X,Y in test mode ($4E bit 7 clear): pixels are tested, not drawn."
  },
  {
   "address": 42540,
   "type": "line",
   "text": "Draws (or tests) a line from the start to X,Y with Bresenham's method, one multicolour pixel at a time through pixel_op ($AD64); in test mode a set pixel sets $0285 bit 7."
  },
  {
   "address": 42638,
   "type": "line",
   "text": "One step of line_to along the major axis."
  },
  {
   "address": 42711,
   "type": "line",
   "text": "The attract demo's version of round_intro: the burst plays with $74 set, then the sprites go off; no life is taken."
  },
  {
   "address": 42728,
   "type": "line",
   "text": "Opens a round: $74 = $80, panel redrawn, the converging-sprites animation (marker_burst at $A774) and sprites_off ($AB74); then, if a life was lost ($0202 bit 7), one life is taken from lives ($026E) and the panel redrawn. Entry $A704 only clears $0202."
  },
  {
   "address": 42761,
   "type": "line",
   "text": "Plays the recorded burst back, one frame per call from the end ($73 counting down): for each frame the four sprite pointers and positions come from the tables at $6000-$6C00 that marker_burst filled."
  },
  {
   "address": 42868,
   "type": "line",
   "text": "The marker's burst: four sprites start at the marker ($75-$7C all at $31,$32), pointers $30 and $38, and move out diagonally one pixel a frame towards the four corners of the field ($1579-$157C) until they reach them (burst_frame); each frame is recorded at $6000-$6C00. With $74 bit 7 set (a round starting) the recording is played backwards (burst_replay), so the sprites converge on the marker instead."
  },
  {
   "address": 42919,
   "type": "line",
   "text": "One frame of marker_burst: steps each of the four sprites one pixel diagonally until it reaches its corner limit, places them (burst_place_1/2/4/8), records the frame, and repeats while any is still moving."
  },
  {
   "address": 43148,
   "type": "line",
   "text": "Places burst sprite 1 (A = 1; entries $A88F, $A892, $A895 with the BIT skip give 2, 4 and 8) at X,Y unless it is on a corner limit: x doubled into $D000+ (table $1585), ninth bit in $D010."
  },
  {
   "address": 43151,
   "type": "line",
   "text": "Entry of burst_place_1 for sprite 2 (A = 2, the next two entries with BIT skips)."
  },
  {
   "address": 43154,
   "type": "line",
   "text": "Entry of burst_place_1 for sprite 4 (A = 4, BIT skip)."
  },
  {
   "address": 43157,
   "type": "line",
   "text": "An entry of burst_frame at +238, called by burst_frame, burst_replay."
  },
  {
   "address": 43240,
   "type": "line",
   "text": "Code nothing calls: a pixel lookup with X and Y swapped ($42/$43), in the style of pixel_addr."
  },
  {
   "address": 43248,
   "type": "line",
   "text": "An entry of burst_frame at +329, called by roam_lookup."
  },
  {
   "address": 43274,
   "type": "line",
   "text": "Before a fill, finds which side of the new line the Qix is on: from Qix 1's centre point ($0210,$0211) it walks right to the first edge pixel, remembers that pixel ($0208,$0209), and then follows the edge round (fill_follow_*) until it comes back to it. Carry set when the walk returns (the Qix's region is the one traced); the main loop then fills the other side."
  },
  {
   "address": 43309,
   "type": "line",
   "text": "Ends the edge walk when it is back at its start (fill_at_start)."
  },
  {
   "address": 43312,
   "type": "line",
   "text": "Edge walk heading up (straight on is y - 1): keeps the edge on one side, turning as the pixels around demand (fill_edge_test, fill_edge_test_empty); hands over to the walk in the next direction at each corner."
  },
  {
   "address": 43349,
   "type": "line",
   "text": "Edge walk heading right (straight on is x + 1)."
  },
  {
   "address": 43389,
   "type": "line",
   "text": "Edge walk heading down (straight on is y + 1)."
  },
  {
   "address": 43429,
   "type": "line",
   "text": "Edge walk heading left (straight on is x - 1)."
  },
  {
   "address": 43472,
   "type": "line",
   "text": "Z set if the pixel at the candidate position is colour 3 in the $E000 plane."
  },
  {
   "address": 43484,
   "type": "line",
   "text": "Returns to the walk's caller with carry clear if the pixel at the candidate is empty (the walk has stepped off the edge)."
  },
  {
   "address": 43498,
   "type": "line",
   "text": "Returns to the walk's caller with carry set if the candidate is back at the starting pixel ($0208,$0209)."
  },
  {
   "address": 43518,
   "type": "line",
   "text": "Code nothing calls: sets the candidate pixel to colour 1 in the $E000 plane."
  },
  {
   "address": 43532,
   "type": "line",
   "text": "Code nothing calls: sets the candidate pixel to colour 3 in the $E000 plane."
  },
  {
   "address": 43546,
   "type": "line",
   "text": "Pushes the candidate ($0206,$0207) onto the fill's seed stack: x at $6000+n, y at $7000+n, n in $1F (256 entries); a full stack ends the fill with $1948."
  },
  {
   "address": 43583,
   "type": "line",
   "text": "Starts a line at X,Y in the erasing mode ($15C7 = $80)."
  },
  {
   "address": 43589,
   "type": "line",
   "text": "Starts a line at X,Y that is drawn into all three planes ($15C7 = 0)."
  },
  {
   "address": 43595,
   "type": "line",
   "text": "Two more entries in the style of line_begin_erase and line_begin_all, with carry clear; nothing calls them."
  },
  {
   "address": 43601,
   "type": "line",
   "text": "The second of line_begin_alt's entries: A = 0, carry clear; nothing calls it."
  },
  {
   "address": 43607,
   "type": "line",
   "text": "Sets the line's start: $42/$43, and the cell address in the bitmap ($53/$54) from the row table bitmap_rows ($151B)."
  },
  {
   "address": 43659,
   "type": "line",
   "text": "Plots one multicolour pixel of a line in the $6000 plane (pattern $51), the $E000 plane (pattern $50) and the visible bitmap (pattern $4F), each with pixel_masks; with $15C7 bit 7 set the pixel is cleared instead."
  },
  {
   "address": 43726,
   "type": "line",
   "text": "Draws a line from the start to X,Y with Bresenham's method through plot_all."
  },
  {
   "address": 43824,
   "type": "line",
   "text": "One step of line_all_to."
  },
  {
   "address": 43892,
   "type": "line",
   "text": "Turns sprites 0-3 off, freezes play ($15C8 = $80), and resets all eight sprites to position 0, colour 1, no expansion."
  },
  {
   "address": 43948,
   "type": "line",
   "text": "Clears the seed stack ($6000 page, $1F, $20) and chooses the fill's pattern table at $1C/$1D: $02A2 (the slow pattern) when slow scoring is forced ($154D bit 7) or the line was slow ($23 bit 7 clear), $0292 (the fast pattern) for a fast line."
  },
  {
   "address": 43982,
   "type": "line",
   "text": "Fills from the candidate position upwards and downwards in the $E000 plane until it meets a set pixel, writing the fill pattern into all planes and counting the pixels into area_lo/area_hi and $70/$71; neighbouring empty pixels to the left and right are pushed as new seeds (fill_push)."
  },
  {
   "address": 44157,
   "type": "line",
   "text": "Fills one pixel of a column: the pattern byte from the table at ($1C) by row and cell, written into the $6000 and $E000 planes and the bitmap; counts the area and $0203."
  },
  {
   "address": 44195,
   "type": "line",
   "text": "The operand of the ORA at $ACA2 in fill_pixel, rewritten at run time by fill_pixel (self-modifying code)."
  },
  {
   "address": 44387,
   "type": "line",
   "text": "Part of fill_pixel, 230 bytes in; referred to here by fill_pixel."
  },
  {
   "address": 44388,
   "type": "line",
   "text": "One pixel of a Qix line (line_to). In test mode ($0286 bit 7) a colour-3 pixel in the $E000 plane sets $0285 bit 7 and ends the line (the PLA PLA returns to line_to's caller). Otherwise, drawing or erasing, a colour-1 pixel in the $6000 plane (the line being drawn) sets the hit flag $1E, so the newest line kills as it is drawn and the oldest as it is erased. Drawing ($4E bit 7): over an empty pixel or another Qix pixel, marks it colour 2 in the $E000 plane and XORs pattern $4F into the bitmap; edges and the line being drawn are left alone. Erasing: a pixel marked colour 2 is cleared in both, crossings with newer lines included."
  },
  {
   "address": 44520,
   "type": "line",
   "text": "Positions and directions of the walkers that move along the line being drawn: the Fuse ($ADE8/$ADE9, direction $ADFC), the two Sparx that chase up the line ($ADEC/$ADED with $ADFD, $ADEE/$ADEF with $ADFE), and four tracers used when a line is finished ($ADF0-$ADF7 with $ADFF-$AE02); $ADEA/$ADEB is the Fuse's sprite position, $ADFA/$ADFB the walker being moved."
  },
  {
   "address": 44521,
   "type": "line",
   "text": "Part of line_walkers, 1 bytes in, read and written here by fuse_walk, line_walkers_reset."
  },
  {
   "address": 44522,
   "type": "line",
   "text": "Part of line_walkers, 2 bytes in; referred to here by fuse_advance, fuse_sprite, marker_place, marker_step_slow."
  },
  {
   "address": 44523,
   "type": "line",
   "text": "Part of line_walkers, 3 bytes in; referred to here by fuse_advance, fuse_sprite, marker_place, marker_step_slow."
  },
  {
   "address": 44524,
   "type": "line",
   "text": "Part of line_walkers, 4 bytes in; referred to here by chaser_b1_step, chaser_b1_walk, line_walkers_reset."
  },
  {
   "address": 44525,
   "type": "line",
   "text": "Part of line_walkers, 5 bytes in; referred to here by chaser_b1_step, chaser_b1_walk, line_walkers_reset."
  },
  {
   "address": 44526,
   "type": "line",
   "text": "Part of line_walkers, 6 bytes in; referred to here by chaser_b2_step, chaser_b2_walk, line_walkers_reset."
  },
  {
   "address": 44527,
   "type": "line",
   "text": "Part of line_walkers, 7 bytes in; referred to here by chaser_b2_step, chaser_b2_walk, line_walkers_reset."
  },
  {
   "address": 44528,
   "type": "line",
   "text": "Part of line_walkers, 8 bytes in; referred to here by line_walkers_reset, split_mark, tracer1_walk."
  },
  {
   "address": 44529,
   "type": "line",
   "text": "Part of line_walkers, 9 bytes in; referred to here by line_walkers_reset, split_mark, tracer1_walk."
  },
  {
   "address": 44530,
   "type": "line",
   "text": "Part of line_walkers, 10 bytes in; referred to here by line_walkers_reset, split_unmark, tracer2_walk."
  },
  {
   "address": 44531,
   "type": "line",
   "text": "Part of line_walkers, 11 bytes in; referred to here by line_walkers_reset, split_unmark, tracer2_walk."
  },
  {
   "address": 44532,
   "type": "line",
   "text": "Part of line_walkers, 12 bytes in; referred to here by finish_line, line_walkers_reset, tracer3_walk."
  },
  {
   "address": 44533,
   "type": "line",
   "text": "Part of line_walkers, 13 bytes in; referred to here by finish_line, line_walkers_reset, tracer3_walk."
  },
  {
   "address": 44534,
   "type": "line",
   "text": "Part of line_walkers, 14 bytes in; referred to here by line_walkers_reset, tracer4_walk, unwind_trail."
  },
  {
   "address": 44535,
   "type": "line",
   "text": "Part of line_walkers, 15 bytes in; referred to here by line_walkers_reset, tracer4_walk, unwind_trail."
  },
  {
   "address": 44538,
   "type": "line",
   "text": "Part of line_walkers, 18 bytes in; referred to here by line_walk_step, on_line_test, walk_try_left, walk_try_right."
  },
  {
   "address": 44539,
   "type": "line",
   "text": "Part of line_walkers, 19 bytes in; referred to here by line_walk_step, on_line_test, walk_try_down, walk_try_up."
  },
  {
   "address": 44540,
   "type": "line",
   "text": "Part of line_walkers, 20 bytes in; referred to here by fuse_walk, line_walk_step, line_walkers_reset."
  },
  {
   "address": 44541,
   "type": "line",
   "text": "Part of line_walkers, 21 bytes in; referred to here by chaser_b1_walk, line_walkers_reset."
  },
  {
   "address": 44542,
   "type": "line",
   "text": "Part of line_walkers, 22 bytes in; referred to here by chaser_b2_walk, line_walkers_reset."
  },
  {
   "address": 44543,
   "type": "line",
   "text": "Part of line_walkers, 23 bytes in; referred to here by line_walkers_reset, tracer1_walk."
  },
  {
   "address": 44544,
   "type": "line",
   "text": "Part of line_walkers, 24 bytes in; referred to here by line_walkers_reset, tracer2_walk."
  },
  {
   "address": 44545,
   "type": "line",
   "text": "Part of line_walkers, 25 bytes in; referred to here by line_walkers_reset, tracer3_walk."
  },
  {
   "address": 44546,
   "type": "line",
   "text": "Part of line_walkers, 26 bytes in; referred to here by line_walkers_reset, tracer4_walk."
  },
  {
   "address": 44547,
   "type": "line",
   "text": "Part of line_walkers, 27 bytes in; referred to here by line_walk_step, on_line_test."
  },
  {
   "address": 44548,
   "type": "line",
   "text": "Moves the Fuse one pixel along the line being drawn (line_walk_step)."
  },
  {
   "address": 44570,
   "type": "line",
   "text": "Moves the first line-chasing Sparx of pair B one pixel along the line (line_walk_step)."
  },
  {
   "address": 44592,
   "type": "line",
   "text": "Moves the second line-chasing Sparx one pixel along the line."
  },
  {
   "address": 44614,
   "type": "line",
   "text": "Moves line tracer 1 one pixel along the line (used by split_mark)."
  },
  {
   "address": 44636,
   "type": "line",
   "text": "Moves line tracer 2 one pixel along the line (used by split_unmark)."
  },
  {
   "address": 44658,
   "type": "line",
   "text": "Moves line tracer 3 one pixel along the line (used by finish_line)."
  },
  {
   "address": 44680,
   "type": "line",
   "text": "Moves line tracer 4 one pixel along the line (used by unwind_trail)."
  },
  {
   "address": 44702,
   "type": "line",
   "text": "Moves a walker at X,Y one pixel along the colour-1 line in the $6000 plane, never straight back the way it came (direction A: 1 up, 2 down, 4 left, 8 right); tries the other directions in a fixed order for each heading. Carry set when there is no way on (the walker has reached the end of the line). Returns the new direction in A and the position in X,Y."
  },
  {
   "address": 44817,
   "type": "line",
   "text": "Tries one pixel up (on_line_test); carry set and the move undone if the pixel is not on the line."
  },
  {
   "address": 44831,
   "type": "line",
   "text": "Tries one pixel down."
  },
  {
   "address": 44845,
   "type": "line",
   "text": "Tries one pixel left."
  },
  {
   "address": 44859,
   "type": "line",
   "text": "Tries one pixel right."
  },
  {
   "address": 44873,
   "type": "line",
   "text": "Carry clear if the pixel at the walker's position is colour 1 in the $6000 plane (the drawn line)."
  },
  {
   "address": 44930,
   "type": "line",
   "text": "Puts every line walker at X,Y (the point where a line leaves the edge) with direction A, and sets the marker's neighbour slots $12-$17 to it as well."
  },
  {
   "address": 45006,
   "type": "line",
   "text": "One step of the Fuse (fuse_advance); when it reaches the marker the marker is hit."
  },
  {
   "address": 45011,
   "type": "line",
   "text": "Moves the Fuse along the line (fuse_walk). Carry set means it reached the end of the line, where the marker is: the marker is hit ($1E = $80). Otherwise its new position is kept for the sprite ($ADEA/$ADEB) and the pixel behind it is redrawn in colour 2, so the burnt line kills."
  },
  {
   "address": 45060,
   "type": "line",
   "text": "Places sprite 1, the Fuse, at its position ($ADEA,$ADEB) and turns it on."
  },
  {
   "address": 45107,
   "type": "line",
   "text": "If the pixel at $9F,$A0 in the $E000 plane is colour 2, clears it."
  },
  {
   "address": 45132,
   "type": "line",
   "text": "If the pixel at $9F,$A0 in the $E000 plane is empty, sets it to colour 2."
  },
  {
   "address": 45154,
   "type": "line",
   "text": "pixel_addr in the $E000 plane for X,Y."
  },
  {
   "address": 45180,
   "type": "line",
   "text": "Walks tracer 1 along the new line, from the last corner, marking the four pixels round each step in colour 2 (split_mark_pixel): a temporary wall used to test whether the line splits the two Qix."
  },
  {
   "address": 45236,
   "type": "line",
   "text": "Walks tracer 2 along the same line and removes the temporary colour-2 pixels again (split_unmark_pixel)."
  },
  {
   "address": 45292,
   "type": "line",
   "text": "With the temporary wall in place, tests whether the two Qix are on the same side: from Qix 2's point ($020C,$020D) it finds the edge to the right, then follows the edge round (split_follow) looking for Qix 1's edge point. $AB bit 7 set means they are on different sides: the Qix are split."
  },
  {
   "address": 45370,
   "type": "line",
   "text": "Ends split_follow when it is back at its start."
  },
  {
   "address": 45373,
   "type": "line",
   "text": "The edge follow of split_test, turning at corners until it returns to where it began."
  },
  {
   "address": 45485,
   "type": "line",
   "text": "Part of split_follow, 112 bytes in, read and written here by split_edge_test, split_test."
  },
  {
   "address": 45486,
   "type": "line",
   "text": "Part of split_follow, 113 bytes in; referred to here by split_edge_test, split_test."
  },
  {
   "address": 45487,
   "type": "line",
   "text": "Z set if the candidate pixel is colour 3; reaching the remembered point ($B1AD,$B1AE) on the way sets $AB = $80."
  },
  {
   "address": 45528,
   "type": "line",
   "text": "Code nothing calls: a pixel lookup for the candidate position in the $E000 plane, like marker_pixel_addr."
  },
  {
   "address": 45568,
   "type": "line",
   "text": "The first line-chasing Sparx moves two pixels up the line (chaser_b1_walk); reaching its end hits the marker. Placed as sprite 5."
  },
  {
   "address": 45597,
   "type": "line",
   "text": "The second line-chasing Sparx, as chaser_b1_step, placed as sprite 4."
  },
  {
   "address": 45626,
   "type": "line",
   "text": "The marker was caught on its line: unwind_trail, marker_reset, back to the main loop."
  },
  {
   "address": 45635,
   "type": "line",
   "text": "Turns the line just closed into wall: walks tracer 3 along the line until it reaches the marker's last corner ($29,$2A), repainting each pixel it passes as colour 3 in the $E000 plane and the bitmap and counting it into the area. A colour-2 pixel on the way (a line the Fuse has burnt) costs a life (life_lost); a line that cannot be followed ends with $1948."
  },
  {
   "address": 45778,
   "type": "line",
   "text": "The pixel at X,Y in the $E000 plane, masked (Z set if empty)."
  },
  {
   "address": 45812,
   "type": "line",
   "text": "Erases the line being drawn when the marker dies or is caught: walks tracer 4 back from the last corner, clearing each colour-1 pixel in all three planes."
  },
  {
   "address": 45904,
   "type": "line",
   "text": "Error exit: fatal_error with code $17. Nothing branches here in the code as loaded."
  },
  {
   "address": 45909,
   "type": "line",
   "text": "Resets the fill and drawing state: seed stack pointers ($38-$3C to $6000/$7000), $2B, $28, $1E, $23, $27, $5E, and the first byte of the $6000 plane."
  },
  {
   "address": 45947,
   "type": "line",
   "text": "Error exit: fatal_error with code $18. Nothing branches here in the code as loaded."
  },
  {
   "address": 45952,
   "type": "line",
   "text": "Sets the candidate ($0206,$0207) and the walk's start ($0208,$0209) to the marker's position."
  },
  {
   "address": 45969,
   "type": "line",
   "text": "Walks the field's edge from the marker, one pixel at a time, counting the steps in $3D/$3E (edge_step_test). With $B52F bit 7 set it stops when the count reaches $3F/$40 instead of returning to the start."
  },
  {
   "address": 46173,
   "type": "line",
   "text": "Ends perimeter_walk at its start."
  },
  {
   "address": 46176,
   "type": "line",
   "text": "perimeter_walk heading up (straight on is y - 1), turning at corners."
  },
  {
   "address": 46204,
   "type": "line",
   "text": "perimeter_walk heading right (straight on is x + 1)."
  },
  {
   "address": 46232,
   "type": "line",
   "text": "perimeter_walk heading down (straight on is y + 1)."
  },
  {
   "address": 46260,
   "type": "line",
   "text": "perimeter_walk heading left (straight on is x - 1)."
  },
  {
   "address": 46288,
   "type": "line",
   "text": "Adds bit A to $A7 if the candidate pixel is wall (set and not colour 2): which ways the walk can start."
  },
  {
   "address": 46312,
   "type": "line",
   "text": "Z set if the candidate pixel is colour 3; counts the step in $3D/$3E and, in the stopping mode, ends the walk when the count equals $3F/$40."
  },
  {
   "address": 46383,
   "type": "line",
   "text": "Bit 7 set for the second, stopping, perimeter_walk."
  },
  {
   "address": 46384,
   "type": "line",
   "text": "Finds where the Sparx start: halfway round the edge from the marker (sparx_start_find), and puts every walker there (walkers_place)."
  },
  {
   "address": 46390,
   "type": "line",
   "text": "Walks the whole edge once to measure it, halves the length, and walks again to that point."
  },
  {
   "address": 46416,
   "type": "line",
   "text": "Puts all six edge walkers ($8E-$99) at the candidate position, gives them their first directions ($81-$86), and keeps the point in $B587/$B588."
  },
  {
   "address": 46471,
   "type": "line",
   "text": "The Sparx's start point found by sparx_start_point; timer_bar_empty also copies it into pair B's positions."
  },
  {
   "address": 46472,
   "type": "line",
   "text": "Part of sparx_start, 1 bytes in, read and written here by timer_bar_empty, walkers_place."
  },
  {
   "address": 46473,
   "type": "line",
   "text": "The second pair of roamers, on sprites 6 and 7 (positions $98/$99 and $96/$97, directions $85/$86), on levels where $BE bit 6 is set: as spritz_step, with the alternative probe (roam_probe_alt) and their own waits ($BC bits 7 and 6, $1554/$B682 and $1555/$B683)."
  },
  {
   "address": 46584,
   "type": "line",
   "text": "The second of roam2_step's roamers."
  },
  {
   "address": 46664,
   "type": "line",
   "text": "Starts roamer 2A at a Qix's midpoint (qix_midpoint), direction 1."
  },
  {
   "address": 46681,
   "type": "line",
   "text": "Holds roamer 2A back: $BC bit 7, wait 1."
  },
  {
   "address": 46693,
   "type": "line",
   "text": "Starts roamer 2B at a Qix's midpoint, direction 4."
  },
  {
   "address": 46710,
   "type": "line",
   "text": "Holds roamer 2B back: $BC bit 6, wait 2."
  },
  {
   "address": 46722,
   "type": "line",
   "text": "Frame counters for the two waits."
  },
  {
   "address": 46723,
   "type": "line",
   "text": "Part of roam2_waits, 1 bytes in, written here by roam2_second."
  },
  {
   "address": 46724,
   "type": "line",
   "text": "roam_probe for the second roamer pair: the point is taken round $98/$99 or (with $9E41 bit 7) $96/$97."
  },
  {
   "address": 46760,
   "type": "line",
   "text": "Nothing reads or runs these 172 bytes after roam_probe_alt, then the power-on pattern to $B7FF; their purpose is unknown."
  },
  {
   "address": 47104,
   "type": "line",
   "text": "Jump table of the sound-effect driver: $B800 silence (sfx_reset), $B803 one frame (sfx_update, from the play interrupt), $B806 start an effect (sfx_request)."
  },
  {
   "address": 47107,
   "type": "line",
   "text": "Jump-table entry of sfx_update, called from the play interrupt."
  },
  {
   "address": 47113,
   "type": "line",
   "text": "The driver's variables, three of each (one per SID voice): note timers, envelope and waveform settings, slide steps and the script pointers' high bytes; $B830-$B832 per-voice flags, $B895/$B896 the two effect requests waiting for the next frame, $B897 each voice's register offset (0, 7, 14)."
  },
  {
   "address": 47116,
   "type": "line",
   "text": "Part of sfx_state, 3 bytes in, read and written here by sfx_read, sfx_voice."
  },
  {
   "address": 47119,
   "type": "line",
   "text": "Part of sfx_state, 6 bytes in; referred to here by sfx_read."
  },
  {
   "address": 47122,
   "type": "line",
   "text": "Part of sfx_state, 9 bytes in; referred to here by sfx_read_17, sfx_reset, sfx_voice."
  },
  {
   "address": 47125,
   "type": "line",
   "text": "Part of sfx_state, 12 bytes in; referred to here by sfx_read_17, sfx_read_4f, sfx_voice."
  },
  {
   "address": 47128,
   "type": "line",
   "text": "Part of sfx_state, 15 bytes in; referred to here by sfx_read_17."
  },
  {
   "address": 47131,
   "type": "line",
   "text": "Part of sfx_state, 18 bytes in; referred to here by sfx_read, sfx_voice."
  },
  {
   "address": 47134,
   "type": "line",
   "text": "Part of sfx_state, 21 bytes in; referred to here by sfx_load, sfx_read, sfx_voice."
  },
  {
   "address": 47137,
   "type": "line",
   "text": "Part of sfx_state, 24 bytes in; referred to here by sfx_read, sfx_voice."
  },
  {
   "address": 47140,
   "type": "line",
   "text": "Part of sfx_state, 27 bytes in; referred to here by sfx_read."
  },
  {
   "address": 47143,
   "type": "line",
   "text": "Part of sfx_state, 30 bytes in; referred to here by sfx_read, sfx_voice."
  },
  {
   "address": 47146,
   "type": "line",
   "text": "Part of sfx_state, 33 bytes in; referred to here by sfx_read, sfx_voice."
  },
  {
   "address": 47149,
   "type": "line",
   "text": "Part of sfx_state, 36 bytes in; referred to here by sfx_read, sfx_voice."
  },
  {
   "address": 47152,
   "type": "line",
   "text": "Part of sfx_state, 39 bytes in; referred to here by sfx_read, sfx_reset, sfx_voice."
  },
  {
   "address": 47153,
   "type": "line",
   "text": "Part of sfx_state, 40 bytes in; referred to here by sfx_reset."
  },
  {
   "address": 47154,
   "type": "line",
   "text": "Part of sfx_state, 41 bytes in; referred to here by sfx_reset."
  },
  {
   "address": 47155,
   "type": "line",
   "text": "Clears the driver's state, marks all three voices idle and both request slots empty ($FF), and zeroes the SID's registers."
  },
  {
   "address": 47196,
   "type": "line",
   "text": "Starts effect X: its header (pointer from sfx_lo/sfx_hi) lists, for each voice it uses, the voice number and the script's address; each such voice is made active with its timer at 1. A negative byte ends the header."
  },
  {
   "address": 47237,
   "type": "line",
   "text": "Queues effect A for the next frame in the first free request slot ($B895, else $B896)."
  },
  {
   "address": 47253,
   "type": "line",
   "text": "Part of sfx_request, 16 bytes in, read and written here by sfx_request, sfx_reset, sfx_update."
  },
  {
   "address": 47254,
   "type": "line",
   "text": "Part of sfx_request, 17 bytes in; referred to here by sfx_request, sfx_reset, sfx_update."
  },
  {
   "address": 47255,
   "type": "line",
   "text": "Part of sfx_request, 18 bytes in; referred to here by sfx_read_17, sfx_voice."
  },
  {
   "address": 47258,
   "type": "line",
   "text": "One frame of sound effects, from the play interrupt: starts any queued effects (sfx_load), then runs each active voice (sfx_voice) from voice 2 down to 0."
  },
  {
   "address": 47295,
   "type": "line",
   "text": "One frame of one voice: counts its note timer; while a note sounds it applies the pitch slide (adding or subtracting the step $B82D to the frequency every $B821 frames) and the gate timing; when the timer ends it reads the next script byte (sfx_read)."
  },
  {
   "address": 47441,
   "type": "line",
   "text": "Reads the voice's script at ($F0): a byte below $80 is a note (index into the frequency tables sfx_freq_lo/hi), written to the voice's frequency, with the voice's duration, slide and gate settings reloaded; a byte of $80 or more is a command, dispatched through sfx_cmd_lo/hi: $80 end of the effect (voice idle), $81 set the waveform/control byte, $82 set attack/decay and sustain/release, $83 set the duration, $84 set the slide (count, step, delay, direction), $85 loop back to an address, $86 start another effect."
  },
  {
   "address": 47463,
   "type": "line",
   "text": "The low byte of the operand of the JMP at $B966 in sfx_read, rewritten at run time by sfx_read (self-modifying code)."
  },
  {
   "address": 47464,
   "type": "line",
   "text": "Byte 2 of the JMP at $B966 in sfx_read (its operand), referred to by sfx_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 47520,
   "type": "line",
   "text": "Byte 1 of the ORA at $B99F in sfx_read_17 (its operand), referred to by sfx_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 47527,
   "type": "line",
   "text": "An entry of sfx_read at +86, called by sfx_read."
  },
  {
   "address": 47648,
   "type": "line",
   "text": "Low bytes of the command handlers for script bytes $80-$86."
  },
  {
   "address": 47655,
   "type": "line",
   "text": "High bytes of the command handlers."
  },
  {
   "address": 47662,
   "type": "line",
   "text": "Low bytes of the sixteen SID frequencies a script note can name."
  },
  {
   "address": 47678,
   "type": "line",
   "text": "High bytes of the sixteen frequencies."
  },
  {
   "address": 47694,
   "type": "line",
   "text": "Low bytes of the twelve effects' headers (effect 0 silence, 3 and 4 the Qix's hum, 5 the alarm, 7 and 8 a fill, 9 a death, 11 the second Qix's end, by their callers)."
  },
  {
   "address": 47706,
   "type": "line",
   "text": "High bytes of the effects' headers."
  },
  {
   "address": 47718,
   "type": "line",
   "text": "The effects' headers: groups of voice number, script address (low, high), ended by $FF."
  },
  {
   "address": 47772,
   "type": "line",
   "text": "The effect scripts: notes and commands as sfx_read reads them, one script per voice per effect."
  },
  {
   "address": 48184,
   "type": "line",
   "text": "Never written by the game: the emulator's power-on pattern of $00 and $FF runs, left by the loader in a gap of the ALIEN file."
  },
  {
   "address": 48384,
   "type": "line",
   "text": "The font: eight bytes per character from '(' ($28) on, used by every text routine; the panel's QIX logo is its first 64 bytes."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "The attract sequence, after the title tune: a demonstration game played by the program itself. It sets up the play screen and a round (round_setup, qix_reset, sprites_reset, clear_play_memory, the panel with the high score), then drives the real engine with stick values from scripts instead of the joystick, printing the instructions as it goes: the marker draws a slow box (\"RELEASE BUTTON DURING / DRAW FOR FAST SPEED\", \"POINTS BASED ON AREA / FILLED AND SPEED\", \"SLOW 500\", \"FAST 250\"), the enemies are named as they appear (\"THE QIX\", \"SPARKS\", \"SPRITZ\", \"THE FUSE\", \"YOUR OPPONENTS TO AVOID ARE\"), and a spiral death trap is drawn from a table of moves (demo_spiral_dirs, demo_spiral_len) while the Qix follows a recorded path (demo_qix_path). Fire at any point goes to the menu (demo_wait_frame). At the end the burst plays, and the title picture, which play has overwritten, is loaded again from the disk as the file SCENE (three tries, then the drive-error message)."
  },
  {
   "address": 49153,
   "type": "line",
   "text": "fatal_error stores the address of the routine that failed here and in $C002 (and the error code at $C000), over the attract demo's first instructions: the code there is reloaded with the game before it runs again."
  },
  {
   "address": 49154,
   "type": "line",
   "text": "fatal_error stores the high byte of the failing routine's address here, over the operand of the attract demo's second instruction."
  },
  {
   "address": 49942,
   "type": "line",
   "text": "\"SCENE\", the file name of the title picture."
  },
  {
   "address": 49947,
   "type": "line",
   "text": "Stick values and counts for the demonstration's first boxes."
  },
  {
   "address": 49950,
   "type": "line",
   "text": "Part of demo_box_script, 3 bytes in, read here by attract_demo."
  },
  {
   "address": 49953,
   "type": "line",
   "text": "Part of demo_box_script, 6 bytes in; referred to here by attract_demo."
  },
  {
   "address": 49956,
   "type": "line",
   "text": "Part of demo_box_script, 9 bytes in; referred to here by err_addr_hi."
  },
  {
   "address": 49959,
   "type": "line",
   "text": "Part of demo_box_script, 12 bytes in; referred to here by err_addr_hi."
  },
  {
   "address": 49963,
   "type": "line",
   "text": "Part of demo_box_script, 16 bytes in; referred to here by err_addr_hi."
  },
  {
   "address": 49967,
   "type": "line",
   "text": "Stick directions for the five moves of the second box (1 up, 2 down, 4 left, 8 right)."
  },
  {
   "address": 49972,
   "type": "line",
   "text": "How many steps each of those moves lasts."
  },
  {
   "address": 49977,
   "type": "line",
   "text": "The fourteen stick directions of the spiral death trap."
  },
  {
   "address": 49991,
   "type": "line",
   "text": "How many steps each spiral move lasts, shrinking towards the middle (20, 16, 16, 10, 10, 8, 6, 4, 4, 2, 2, ...)."
  },
  {
   "address": 50005,
   "type": "line",
   "text": "Prints \"RELEASE BUTTON DURING / DRAW FOR FAST SPEED\" (inline print)."
  },
  {
   "address": 50008,
   "type": "line",
   "text": "The inline text demo_text1 prints: \"RELEASE BUTTON DURING\" at $32D0; \"DRAW FOR FAST SPEED\" at $3410 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50055,
   "type": "line",
   "text": "Return after demo_text1's inline text."
  },
  {
   "address": 50056,
   "type": "line",
   "text": "Prints \"POINTS BASED ON AREA / FILLED AND SPEED\"."
  },
  {
   "address": 50059,
   "type": "line",
   "text": "The inline text demo_text2 prints: \"POINTS BASED ON AREA\" at $32D0; \"FILLED AND SPEED\" at $3410 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50102,
   "type": "line",
   "text": "Return after demo_text2's inline text."
  },
  {
   "address": 50103,
   "type": "line",
   "text": "Prints \"SLOW 500\"."
  },
  {
   "address": 50106,
   "type": "line",
   "text": "The inline text demo_text3 prints: \"SLOW 500\" at $37E8 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50118,
   "type": "line",
   "text": "Return after demo_text3's inline text."
  },
  {
   "address": 50119,
   "type": "line",
   "text": "Prints \"FAST 250\"."
  },
  {
   "address": 50122,
   "type": "line",
   "text": "The inline text demo_text4 prints: \"FAST 250\" at $3868 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50134,
   "type": "line",
   "text": "Return after demo_text4's inline text."
  },
  {
   "address": 50135,
   "type": "line",
   "text": "Prints \"SPIRAL\" and \"DEATH TRAP\"."
  },
  {
   "address": 50138,
   "type": "line",
   "text": "The inline text demo_text5 prints: \"SPIRAL\" at $2F20; \"DEATH TRAP\" at $3050 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50161,
   "type": "line",
   "text": "Return after demo_text5's inline text."
  },
  {
   "address": 50162,
   "type": "line",
   "text": "Prints \"THE FUSE\"."
  },
  {
   "address": 50165,
   "type": "line",
   "text": "The inline text demo_text6 prints: \"THE FUSE\" at $35F8 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50177,
   "type": "line",
   "text": "Return after demo_text6's inline text."
  },
  {
   "address": 50178,
   "type": "line",
   "text": "Prints \"SPRITZ\"."
  },
  {
   "address": 50181,
   "type": "line",
   "text": "The inline text demo_text7 prints: \"SPRITZ\" at $2840 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50191,
   "type": "line",
   "text": "Return after demo_text7's inline text."
  },
  {
   "address": 50192,
   "type": "line",
   "text": "Prints \"SPARKS\"."
  },
  {
   "address": 50195,
   "type": "line",
   "text": "The inline text demo_text8 prints: \"SPARKS\" at $2490 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50205,
   "type": "line",
   "text": "Return after demo_text8's inline text."
  },
  {
   "address": 50206,
   "type": "line",
   "text": "Prints \"THE QIX\"."
  },
  {
   "address": 50209,
   "type": "line",
   "text": "The inline text demo_text9 prints: \"THE QIX\" at $30D0 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50220,
   "type": "line",
   "text": "Return after demo_text9's inline text."
  },
  {
   "address": 50221,
   "type": "line",
   "text": "Prints \"YOUR OPPONENTS TO AVOID ARE\"."
  },
  {
   "address": 50224,
   "type": "line",
   "text": "The inline text demo_text10 prints: \"YOUR OPPONENTS TO AVOID ARE\" at $32D0 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50255,
   "type": "line",
   "text": "Return after demo_text10's inline text."
  },
  {
   "address": 50256,
   "type": "line",
   "text": "Prints \"USE JOYSTICK TO MOVE MARKER / FIRE BUTTON ACTIVATES MARKER / TO DRAW THE BOX\"."
  },
  {
   "address": 50259,
   "type": "line",
   "text": "The inline text demo_text11 prints: \"USE JOYSTICK TO MOVE MARKER\" at $32D0; \"FIRE BUTTON ACTIVATES MARKER\" at $3410; \"TO DRAW THE BOX\" at $3550 (bitmap addresses), each ended by 0, the list by a further 0."
  },
  {
   "address": 50339,
   "type": "line",
   "text": "Return after demo_text11's inline text."
  },
  {
   "address": 50340,
   "type": "line",
   "text": "Waits for the bottom of the frame; if fire is pressed (joy_title bit 4) the demonstration ends at once: sound off, music stopped, and the menu (menu_start)."
  },
  {
   "address": 50380,
   "type": "line",
   "text": "The attract demonstration's interrupt (installed at $FFFE by attract_demo): the play interrupt's work without the pause check and with the stick read only for fire (joy_title); sound effects, sprite animation, frame tick, raster line 252."
  },
  {
   "address": 50462,
   "type": "line",
   "text": "The demonstration's version of after_claim: when the line closes, sound 7 or 8, finish_line, fill_find_side and fill_start until the fill is done, then a new start for the marker."
  },
  {
   "address": 50521,
   "type": "line",
   "text": "Moves the demonstration's Qix along its recorded path: erases the oldest line of its trail and draws the next line from demo_qix_path, in a random pattern."
  },
  {
   "address": 50656,
   "type": "line",
   "text": "Clears the roamers and $5E, sets var_9122 to 32 and the six walkers' start delays ($15C9-$15CE) to 64."
  },
  {
   "address": 50718,
   "type": "line",
   "text": "Clears the $6000 plane and merges the panel's two-cell strips into the bitmap (merge_column)."
  },
  {
   "address": 50832,
   "type": "line",
   "text": "Shows the title picture: screen off, multicolour bitmap at $2000 in VIC bank 0, the 8 KB bitmap copied from title_bitmap ($6000) to $2000, its screen colours from $D400-$D7FF (RAM under the I/O) to $0400, and its colour-RAM nibbles, two to a byte, from title_colour_ram ($CE00) to $D800-$DBFF; screen on."
  },
  {
   "address": 50973,
   "type": "line",
   "text": "Shows the menu picture: unpacks menu_packed from $D800 into the bitmap at $2000 (unpack_menu: a byte of $DB is followed by a count and a value), then menu_colours."
  },
  {
   "address": 51024,
   "type": "line",
   "text": "The menu picture's unpacker: copies bytes, expanding each $DB, count, value into count copies, until the bitmap is full ($15D2 = page $40)."
  },
  {
   "address": 51104,
   "type": "line",
   "text": "Copies the menu's screen colours from $D000-$D3FF (under the I/O) to $0400 and its colour-RAM nibbles from menu_colour_ram ($CC00) to $D800."
  },
  {
   "address": 51181,
   "type": "line",
   "text": "Prepares the title: screen and sprites off, the play interrupt replaced by the title chain (irq_title_top), the music player copied to $E000 (copy_music_to_E000), sound off, the menu bar's colours and lines set, and the title interrupt started."
  },
  {
   "address": 51248,
   "type": "line",
   "text": "Sets the menu bar's raster lines to the first option ($7F to $95) and its colours to black, with the screen off."
  },
  {
   "address": 51283,
   "type": "line",
   "text": "Nothing reads or runs these bytes; they lie outside the video chip's bank, so they are not sprites the game shows. What they were for is unknown."
  },
  {
   "address": 51712,
   "type": "line",
   "text": "The demonstration's recorded Qix path: four tables of 128 coordinates (x1 at $CA00, y1 at $CA80, x2 at $CB00, y2 at $CB80), read by demo_qix_step."
  },
  {
   "address": 51840,
   "type": "line",
   "text": "The demonstration Qix path's y1 table (128 bytes), then x2 at $CB00 and y2 at $CB80."
  },
  {
   "address": 51968,
   "type": "line",
   "text": "Part of demo_qix_y1, 128 bytes in; referred to here by demo_qix_step."
  },
  {
   "address": 52096,
   "type": "line",
   "text": "Part of demo_qix_y1, 256 bytes in; referred to here by demo_qix_step."
  },
  {
   "address": 52224,
   "type": "line",
   "text": "The menu picture's colour-RAM colours, two to a byte, the low nibble for the first half of colour RAM and the high nibble for the second, copied by menu_colours."
  },
  {
   "address": 52480,
   "type": "line",
   "text": "The second 256 bytes of the menu's colour-RAM data: colours for $DA00-$DBFF."
  },
  {
   "address": 52736,
   "type": "line",
   "text": "The title picture's colour-RAM colours, two to a byte: the low nibble for the first half of colour RAM, the high nibble for the second, copied by show_title_picture."
  },
  {
   "address": 52992,
   "type": "line",
   "text": "The second 256 bytes of the title's colour-RAM data: colours for $DA00-$DBFF."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "The menu picture's screen colours (1,000 bytes, RAM under the I/O chips), copied to $0400 by menu_colours."
  },
  {
   "address": 53504,
   "type": "line",
   "text": "The menu's screen colours from $D100 (rows 6-24), copied to $0500-$07FF by menu_colours."
  },
  {
   "address": 53760,
   "type": "line",
   "text": "Part of menu_screen_colours, 512 bytes in; referred to here by menu_colours."
  },
  {
   "address": 54016,
   "type": "line",
   "text": "Part of menu_screen_colours, 768 bytes in; referred to here by menu_colours."
  },
  {
   "address": 54272,
   "type": "line",
   "text": "The title picture's screen colours (1,000 bytes, RAM under the I/O chips), copied to $0400 by show_title_picture."
  },
  {
   "address": 54528,
   "type": "line",
   "text": "The title's screen colours from $D500 (rows 6-24), copied to $0500-$07FF by show_title_picture."
  },
  {
   "address": 54784,
   "type": "line",
   "text": "Part of title_screen_colours, 512 bytes in; referred to here by show_title_picture."
  },
  {
   "address": 55040,
   "type": "line",
   "text": "Part of title_screen_colours, 768 bytes in; referred to here by show_title_picture."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "The menu picture's bitmap, packed: plain bytes, and $DB, count, value for runs. Unpacked into $2000 by unpack_menu."
  },
  {
   "address": 55552,
   "type": "line",
   "text": "The packed menu picture from $D900. The STA $D900,Y in menu_colours and show_title_picture writes colour RAM (the I/O chip at $D900), not this RAM."
  },
  {
   "address": 55808,
   "type": "line",
   "text": "Part of menu_packed, 512 bytes in; referred to here by menu_colours, show_title_picture."
  },
  {
   "address": 56064,
   "type": "line",
   "text": "Part of menu_packed, 768 bytes in; referred to here by menu_colours, show_title_picture."
  },
  {
   "address": 56320,
   "type": "line",
   "text": "The packed menu picture, its second half ($DC00-$DFFF)."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "The music player's jump table: $E000 starts tune X (music_start), $E003 stops the music (music_halt), $E006 plays one frame (music_frame). The player is the copy made from $4000 by copy_music_to_E000; the title, the end of each level and the attract sequence use it."
  },
  {
   "address": 57347,
   "type": "line",
   "text": "Jump-table entry of music_halt."
  },
  {
   "address": 57350,
   "type": "line",
   "text": "Jump-table entry of music_frame, called each frame by the title interrupt."
  },
  {
   "address": 57353,
   "type": "line",
   "text": "The music player's variables, one set per voice where there are three: repeat counts and addresses, note lengths, pulse widths and their sweeps, transposes, vibrato and pitch-sweep state, filter settings, the playing flags $E057-$E059, and the call-stack depth $E04B."
  },
  {
   "address": 57354,
   "type": "line",
   "text": "Variable 1 of music_vars ($E00A), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57355,
   "type": "line",
   "text": "Part of music_vars, 2 bytes in; referred to here by music_start, voice3_note_end, voice3_pwm."
  },
  {
   "address": 57356,
   "type": "line",
   "text": "Part of music_vars, 3 bytes in; referred to here by mus_v1_cmd8D, voice1_frame, voice1_pwm, voice1_read_16."
  },
  {
   "address": 57357,
   "type": "line",
   "text": "Part of music_vars, 4 bytes in; referred to here by mus_v2_cmd8D, voice2_frame, voice2_pwm, voice2_read_24."
  },
  {
   "address": 57358,
   "type": "line",
   "text": "Part of music_vars, 5 bytes in; referred to here by mus_v3_cmd8D, voice3_frame, voice3_pwm, voice3_read_8a."
  },
  {
   "address": 57359,
   "type": "line",
   "text": "Part of music_vars, 6 bytes in; referred to here by mus_v1_cmd81, mus_v1_cmd82."
  },
  {
   "address": 57360,
   "type": "line",
   "text": "Part of music_vars, 7 bytes in; referred to here by mus_v2_cmd81, mus_v2_cmd82."
  },
  {
   "address": 57361,
   "type": "line",
   "text": "Part of music_vars, 8 bytes in; referred to here by mus_v3_cmd81, mus_v3_cmd82."
  },
  {
   "address": 57362,
   "type": "line",
   "text": "Part of music_vars, 9 bytes in; referred to here by mus_v1_cmd81, mus_v1_cmd82."
  },
  {
   "address": 57363,
   "type": "line",
   "text": "Part of music_vars, 10 bytes in; referred to here by mus_v1_cmd81, mus_v1_cmd82."
  },
  {
   "address": 57364,
   "type": "line",
   "text": "Part of music_vars, 11 bytes in; referred to here by mus_v2_cmd81, mus_v2_cmd82."
  },
  {
   "address": 57365,
   "type": "line",
   "text": "Part of music_vars, 12 bytes in; referred to here by mus_v2_cmd81, mus_v2_cmd82."
  },
  {
   "address": 57366,
   "type": "line",
   "text": "Part of music_vars, 13 bytes in; referred to here by mus_v3_cmd81, mus_v3_cmd82."
  },
  {
   "address": 57367,
   "type": "line",
   "text": "Part of music_vars, 14 bytes in; referred to here by mus_v3_cmd81, mus_v3_cmd82."
  },
  {
   "address": 57368,
   "type": "line",
   "text": "Part of music_vars, 15 bytes in; referred to here by mus_v1_cmd83, voice1_frame, voice1_read."
  },
  {
   "address": 57369,
   "type": "line",
   "text": "Part of music_vars, 16 bytes in; referred to here by mus_v2_cmd83, voice2_frame, voice2_read."
  },
  {
   "address": 57370,
   "type": "line",
   "text": "Part of music_vars, 17 bytes in; referred to here by mus_v3_cmd83, voice3_frame, voice3_read."
  },
  {
   "address": 57371,
   "type": "line",
   "text": "Part of music_vars, 18 bytes in; referred to here by mus_v1_cmd80, voice1_pwm, voice1_read."
  },
  {
   "address": 57372,
   "type": "line",
   "text": "Part of music_vars, 19 bytes in; referred to here by mus_v1_cmd80, music_start, voice1_pwm, voice1_read."
  },
  {
   "address": 57373,
   "type": "line",
   "text": "Part of music_vars, 20 bytes in; referred to here by mus_v2_cmd80, voice2_pwm, voice2_read."
  },
  {
   "address": 57374,
   "type": "line",
   "text": "Part of music_vars, 21 bytes in; referred to here by mus_v2_cmd80, music_start, voice2_pwm, voice2_read."
  },
  {
   "address": 57375,
   "type": "line",
   "text": "Part of music_vars, 22 bytes in; referred to here by mus_v3_cmd80, voice3_pwm, voice3_read."
  },
  {
   "address": 57376,
   "type": "line",
   "text": "Part of music_vars, 23 bytes in; referred to here by mus_v3_cmd80, music_start, voice3_pwm, voice3_read."
  },
  {
   "address": 57377,
   "type": "line",
   "text": "Part of music_vars, 24 bytes in; referred to here by mus_v1_cmd80, voice1_read."
  },
  {
   "address": 57378,
   "type": "line",
   "text": "Part of music_vars, 25 bytes in; referred to here by mus_v1_cmd80, voice1_read."
  },
  {
   "address": 57379,
   "type": "line",
   "text": "Part of music_vars, 26 bytes in; referred to here by mus_v2_cmd80, voice2_read."
  },
  {
   "address": 57380,
   "type": "line",
   "text": "Part of music_vars, 27 bytes in; referred to here by mus_v2_cmd80, voice2_read."
  },
  {
   "address": 57381,
   "type": "line",
   "text": "Part of music_vars, 28 bytes in; referred to here by mus_v3_cmd80, voice3_read."
  },
  {
   "address": 57382,
   "type": "line",
   "text": "Part of music_vars, 29 bytes in; referred to here by mus_v3_cmd80, voice3_read."
  },
  {
   "address": 57383,
   "type": "line",
   "text": "Part of music_vars, 30 bytes in; referred to here by mus_v1_cmd83, voice1_read."
  },
  {
   "address": 57384,
   "type": "line",
   "text": "Part of music_vars, 31 bytes in; referred to here by mus_v2_cmd83, voice2_read."
  },
  {
   "address": 57385,
   "type": "line",
   "text": "Part of music_vars, 32 bytes in; referred to here by mus_v3_cmd83, voice3_read."
  },
  {
   "address": 57386,
   "type": "line",
   "text": "Part of music_vars, 33 bytes in; referred to here by music_start, voice1_pwm, voice1_read."
  },
  {
   "address": 57387,
   "type": "line",
   "text": "Part of music_vars, 34 bytes in; referred to here by voice2_pwm, voice2_read."
  },
  {
   "address": 57388,
   "type": "line",
   "text": "Part of music_vars, 35 bytes in; referred to here by voice3_pwm, voice3_read."
  },
  {
   "address": 57389,
   "type": "line",
   "text": "Part of music_vars, 36 bytes in; referred to here by mus_v1_cmd80, voice1_pwm."
  },
  {
   "address": 57390,
   "type": "line",
   "text": "Part of music_vars, 37 bytes in; referred to here by mus_v2_cmd80, voice2_pwm."
  },
  {
   "address": 57391,
   "type": "line",
   "text": "Part of music_vars, 38 bytes in; referred to here by mus_v3_cmd80, voice3_pwm."
  },
  {
   "address": 57392,
   "type": "line",
   "text": "Part of music_vars, 39 bytes in; referred to here by mus_v1_cmd8C, voice1_read."
  },
  {
   "address": 57393,
   "type": "line",
   "text": "Variable 40 of music_vars ($E031), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57394,
   "type": "line",
   "text": "Variable 41 of music_vars ($E032), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57395,
   "type": "line",
   "text": "Variable 42 of music_vars ($E033), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57396,
   "type": "line",
   "text": "Variable 43 of music_vars ($E034), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57397,
   "type": "line",
   "text": "Variable 44 of music_vars ($E035), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57398,
   "type": "line",
   "text": "Variable 45 of music_vars ($E036), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57399,
   "type": "line",
   "text": "Variable 46 of music_vars ($E037), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57400,
   "type": "line",
   "text": "Variable 47 of music_vars ($E038), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57401,
   "type": "line",
   "text": "Variable 48 of music_vars ($E039), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57402,
   "type": "line",
   "text": "Variable 49 of music_vars ($E03A), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57403,
   "type": "line",
   "text": "Variable 50 of music_vars ($E03B), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57404,
   "type": "line",
   "text": "Variable 51 of music_vars ($E03C), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57405,
   "type": "line",
   "text": "Variable 52 of music_vars ($E03D), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57406,
   "type": "line",
   "text": "Variable 53 of music_vars ($E03E), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57407,
   "type": "line",
   "text": "Variable 54 of music_vars ($E03F), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57408,
   "type": "line",
   "text": "Variable 55 of music_vars ($E040), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57409,
   "type": "line",
   "text": "Variable 56 of music_vars ($E041), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57410,
   "type": "line",
   "text": "Variable 57 of music_vars ($E042), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57411,
   "type": "line",
   "text": "Variable 58 of music_vars ($E043), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57412,
   "type": "line",
   "text": "Variable 59 of music_vars ($E044), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57413,
   "type": "line",
   "text": "Variable 60 of music_vars ($E045), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57414,
   "type": "line",
   "text": "Variable 61 of music_vars ($E046), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57415,
   "type": "line",
   "text": "Variable 62 of music_vars ($E047), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57416,
   "type": "line",
   "text": "Variable 63 of music_vars ($E048), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57417,
   "type": "line",
   "text": "Variable 64 of music_vars ($E049), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57418,
   "type": "line",
   "text": "Variable 65 of music_vars ($E04A), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57419,
   "type": "line",
   "text": "Variable 66 of music_vars ($E04B), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57420,
   "type": "line",
   "text": "Variable 67 of music_vars ($E04C), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57421,
   "type": "line",
   "text": "Variable 68 of music_vars ($E04D), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57422,
   "type": "line",
   "text": "Variable 69 of music_vars ($E04E), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57423,
   "type": "line",
   "text": "Variable 70 of music_vars ($E04F), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57424,
   "type": "line",
   "text": "Variable 71 of music_vars ($E050), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57425,
   "type": "line",
   "text": "Variable 72 of music_vars ($E051), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57426,
   "type": "line",
   "text": "Variable 73 of music_vars ($E052), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57427,
   "type": "line",
   "text": "Variable 74 of music_vars ($E053), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57428,
   "type": "line",
   "text": "Variable 75 of music_vars ($E054), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57429,
   "type": "line",
   "text": "Variable 76 of music_vars ($E055), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57430,
   "type": "line",
   "text": "Variable 77 of music_vars ($E056), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57431,
   "type": "line",
   "text": "Variable 78 of music_vars ($E057), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57432,
   "type": "line",
   "text": "Variable 79 of music_vars ($E058), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57433,
   "type": "line",
   "text": "Variable 80 of music_vars ($E059), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57434,
   "type": "line",
   "text": "Variable 81 of music_vars ($E05A), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57435,
   "type": "line",
   "text": "Variable 82 of music_vars ($E05B), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57436,
   "type": "line",
   "text": "Variable 83 of music_vars ($E05C), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57437,
   "type": "line",
   "text": "Variable 84 of music_vars ($E05D), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57438,
   "type": "line",
   "text": "Variable 85 of music_vars ($E05E), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57439,
   "type": "line",
   "text": "Variable 86 of music_vars ($E05F), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57440,
   "type": "line",
   "text": "Variable 87 of music_vars ($E060), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57441,
   "type": "line",
   "text": "Variable 88 of music_vars ($E061), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57442,
   "type": "line",
   "text": "Variable 89 of music_vars ($E062), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57443,
   "type": "line",
   "text": "Variable 90 of music_vars ($E063), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57444,
   "type": "line",
   "text": "Variable 91 of music_vars ($E064), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57445,
   "type": "line",
   "text": "Variable 92 of music_vars ($E065), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57446,
   "type": "line",
   "text": "Variable 93 of music_vars ($E066), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57447,
   "type": "line",
   "text": "Variable 94 of music_vars ($E067), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57448,
   "type": "line",
   "text": "Variable 95 of music_vars ($E068), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57449,
   "type": "line",
   "text": "Variable 96 of music_vars ($E069), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57450,
   "type": "line",
   "text": "Variable 97 of music_vars ($E06A), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57451,
   "type": "line",
   "text": "Variable 98 of music_vars ($E06B), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57452,
   "type": "line",
   "text": "Variable 99 of music_vars ($E06C), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57453,
   "type": "line",
   "text": "Variable 100 of music_vars ($E06D), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57454,
   "type": "line",
   "text": "Variable 101 of music_vars ($E06E), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57455,
   "type": "line",
   "text": "Variable 102 of music_vars ($E06F), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57456,
   "type": "line",
   "text": "Variable 103 of music_vars ($E070), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57457,
   "type": "line",
   "text": "Variable 104 of music_vars ($E071), one of the bytes the list at music_vars describes."
  },
  {
   "address": 57458,
   "type": "line",
   "text": "Starts tune X: takes each voice's start address from the tune tables (tune_v1_lo/hi, tune_v2_lo/hi, tune_v3_lo/hi) into $F0-$F5, clears the voice variables, sets the playing flags, and sets the SID's volume."
  },
  {
   "address": 57595,
   "type": "line",
   "text": "Stops the music: clears the three playing flags and silences the voices."
  },
  {
   "address": 57608,
   "type": "line",
   "text": "One frame of music, from the interrupt. On NTSC every sixth frame is skipped (music_tick counts 6 down), so the tunes play at the PAL speed of 50 steps a second: the start-up patches the two bytes at $E10D (in the copy source at $410D) to LDA #$06 on NTSC and to BEQ $E114 on PAL, which never skips. Then each voice is updated (voice1_frame, voice2_frame, voice3_frame) and the filter (filter_frame). Returns A = 0 when every voice has ended."
  },
  {
   "address": 57619,
   "type": "line",
   "text": "The frame counter music_frame uses to skip one frame in six on NTSC."
  },
  {
   "address": 57620,
   "type": "line",
   "text": "One frame of voice 1: counts its note down, applies the pulse-width sweep, the vibrato and the pitch sweeps to the SID registers, releases the gate at the note's end, and when the note is over reads the next bytes of its stream (voice1_read)."
  },
  {
   "address": 57681,
   "type": "line",
   "text": "The operand of the LDY at $E150 in voice1_frame, rewritten at run time by voice1_frame, voice1_read (self-modifying code)."
  },
  {
   "address": 57741,
   "type": "line",
   "text": "Byte 1 of the LDA at $E18C in voice1_frame (its operand), referred to by voice1_frame, voice1_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 57817,
   "type": "line",
   "text": "Sets voice 1's frequency from note X (freq_lo, freq_hi)."
  },
  {
   "address": 57838,
   "type": "line",
   "text": "The operand of the LDA at $E1ED in voice1_set_freq, rewritten at run time by mus_v1_cmd8D, voice1_pwm, voice1_read (self-modifying code)."
  },
  {
   "address": 57841,
   "type": "line",
   "text": "Voice 1's pulse-width sweep, up and down between its limits."
  },
  {
   "address": 57964,
   "type": "line",
   "text": "Advances voice 1's stream pointer ($F0/$F1) by Y bytes, then voice1_read."
  },
  {
   "address": 57974,
   "type": "line",
   "text": "Reads voice 1's stream: a command byte ($80 and up) goes to its handler through the dispatch tables (mus_cmd_lo, mus_cmd_hi), a note is transposed, looked up in the frequency tables, written to the SID, and the gate opened; the note's length is reloaded."
  },
  {
   "address": 57995,
   "type": "line",
   "text": "The low byte of the operand of the JMP at $E28A in voice1_read, rewritten at run time by voice1_read (self-modifying code)."
  },
  {
   "address": 57996,
   "type": "line",
   "text": "Byte 2 of the JMP at $E28A in voice1_read (its operand), referred to by voice1_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 58010,
   "type": "line",
   "text": "Byte 1 of the LDX at $E299 in voice1_read_16 (its operand), referred to by mus_v1_cmd93, music_start, voice1_read_16: an operand the code rewrites or reads as data."
  },
  {
   "address": 58112,
   "type": "line",
   "text": "Byte 1 of the LDA at $E2FF in voice1_read_24 (its operand), referred to by mus_v1_cmd8D: an operand the code rewrites or reads as data."
  },
  {
   "address": 58142,
   "type": "line",
   "text": "Byte 1 of the LDA at $E31D in voice1_read_8a (its operand), referred to by mus_v1_cmd88: an operand the code rewrites or reads as data."
  },
  {
   "address": 58182,
   "type": "line",
   "text": "The end of a note on voice 1: releases the gate after the time set by command $84."
  },
  {
   "address": 58183,
   "type": "line",
   "text": "The operand of the LDA at $E346 in voice1_note_end, rewritten at run time by mus_v1_cmd84, music_start (self-modifying code)."
  },
  {
   "address": 58202,
   "type": "line",
   "text": "voice1_frame for voice 2."
  },
  {
   "address": 58263,
   "type": "line",
   "text": "The operand of the LDY at $E396 in voice2_frame, rewritten at run time by voice2_frame, voice2_read (self-modifying code)."
  },
  {
   "address": 58323,
   "type": "line",
   "text": "Byte 1 of the LDA at $E3D2 in voice2_frame (its operand), referred to by voice2_frame, voice2_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 58399,
   "type": "line",
   "text": "voice1_set_freq for voice 2."
  },
  {
   "address": 58420,
   "type": "line",
   "text": "The operand of the LDA at $E433 in voice2_set_freq, rewritten at run time by mus_v2_cmd8D, voice2_pwm, voice2_read (self-modifying code)."
  },
  {
   "address": 58423,
   "type": "line",
   "text": "voice1_pwm for voice 2."
  },
  {
   "address": 58546,
   "type": "line",
   "text": "voice1_skip for voice 2 ($F2/$F3)."
  },
  {
   "address": 58556,
   "type": "line",
   "text": "voice1_read for voice 2."
  },
  {
   "address": 58577,
   "type": "line",
   "text": "The low byte of the operand of the JMP at $E4D0 in voice2_read, rewritten at run time by voice2_read (self-modifying code)."
  },
  {
   "address": 58578,
   "type": "line",
   "text": "Byte 2 of the JMP at $E4D0 in voice2_read (its operand), referred to by voice2_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 58592,
   "type": "line",
   "text": "Byte 1 of the LDX at $E4DF in voice2_read_16 (its operand), referred to by mus_v2_cmd93, music_start, voice2_read_16: an operand the code rewrites or reads as data."
  },
  {
   "address": 58694,
   "type": "line",
   "text": "Byte 1 of the LDA at $E545 in voice2_read_24 (its operand), referred to by mus_v2_cmd8D: an operand the code rewrites or reads as data."
  },
  {
   "address": 58726,
   "type": "line",
   "text": "Byte 1 of the LDA at $E565 in voice2_read_8a (its operand), referred to by mus_v2_cmd88: an operand the code rewrites or reads as data."
  },
  {
   "address": 58766,
   "type": "line",
   "text": "voice1_note_end for voice 2."
  },
  {
   "address": 58767,
   "type": "line",
   "text": "The operand of the LDA at $E58E in voice2_note_end, rewritten at run time by mus_v2_cmd84, music_start (self-modifying code)."
  },
  {
   "address": 58786,
   "type": "line",
   "text": "voice1_frame for voice 3."
  },
  {
   "address": 58847,
   "type": "line",
   "text": "The operand of the LDY at $E5DE in voice3_frame, rewritten at run time by voice3_frame, voice3_read (self-modifying code)."
  },
  {
   "address": 58907,
   "type": "line",
   "text": "Byte 1 of the LDA at $E61A in voice3_frame (its operand), referred to by voice3_frame, voice3_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 58983,
   "type": "line",
   "text": "voice1_set_freq for voice 3."
  },
  {
   "address": 59004,
   "type": "line",
   "text": "The operand of the LDA at $E67B in voice3_set_freq, rewritten at run time by mus_v3_cmd8D, voice3_pwm, voice3_read (self-modifying code)."
  },
  {
   "address": 59007,
   "type": "line",
   "text": "voice1_pwm for voice 3."
  },
  {
   "address": 59130,
   "type": "line",
   "text": "voice1_skip for voice 3 ($F4/$F5)."
  },
  {
   "address": 59140,
   "type": "line",
   "text": "voice1_read for voice 3."
  },
  {
   "address": 59161,
   "type": "line",
   "text": "The low byte of the operand of the JMP at $E718 in voice3_read, rewritten at run time by voice3_read (self-modifying code)."
  },
  {
   "address": 59162,
   "type": "line",
   "text": "Byte 2 of the JMP at $E718 in voice3_read (its operand), referred to by voice3_read: an operand the code rewrites or reads as data."
  },
  {
   "address": 59176,
   "type": "line",
   "text": "Byte 1 of the LDX at $E727 in voice3_read_16 (its operand), referred to by mus_v3_cmd93, music_start, voice3_read_16: an operand the code rewrites or reads as data."
  },
  {
   "address": 59278,
   "type": "line",
   "text": "Byte 1 of the LDA at $E78D in voice3_read_24 (its operand), referred to by mus_v3_cmd8D: an operand the code rewrites or reads as data."
  },
  {
   "address": 59310,
   "type": "line",
   "text": "Byte 1 of the LDA at $E7AD in voice3_read_8a (its operand), referred to by mus_v3_cmd88: an operand the code rewrites or reads as data."
  },
  {
   "address": 59350,
   "type": "line",
   "text": "voice1_note_end for voice 3."
  },
  {
   "address": 59351,
   "type": "line",
   "text": "The operand of the LDA at $E7D6 in voice3_note_end, rewritten at run time by mus_v3_cmd84, music_start (self-modifying code)."
  },
  {
   "address": 59370,
   "type": "line",
   "text": "The filter's frame: sweeps the cutoff set by command $88 and writes the cutoff and resonance ($D415-$D417); returns the three playing flags ORed."
  },
  {
   "address": 59371,
   "type": "line",
   "text": "The operand of the LDA at $E7EA in filter_frame, rewritten at run time by filter_frame, music_start, voice1_read, voice2_read, voice3_read (self-modifying code)."
  },
  {
   "address": 59395,
   "type": "line",
   "text": "Byte 1 of the CMP at $E802 in filter_frame (its operand), referred to by mus_v1_cmd88, mus_v2_cmd88, mus_v3_cmd88, music_start: an operand the code rewrites or reads as data."
  },
  {
   "address": 59402,
   "type": "line",
   "text": "Byte 1 of the CMP at $E809 in filter_frame_19 (its operand), referred to by mus_v1_cmd88, mus_v2_cmd88, mus_v3_cmd88, music_start: an operand the code rewrites or reads as data."
  },
  {
   "address": 59427,
   "type": "line",
   "text": "Byte 1 of the CMP at $E822 in filter_frame_20 (its operand), referred to by mus_v1_cmd88, mus_v2_cmd88, mus_v3_cmd88, music_start: an operand the code rewrites or reads as data."
  },
  {
   "address": 59434,
   "type": "line",
   "text": "Byte 1 of the CMP at $E829 in filter_frame_39 (its operand), referred to by mus_v1_cmd88, mus_v2_cmd88, mus_v3_cmd88, music_start: an operand the code rewrites or reads as data."
  },
  {
   "address": 59476,
   "type": "line",
   "text": "Music command $82 for voice 1: start of a repeat: a count; the address after it is kept for command $81."
  },
  {
   "address": 59504,
   "type": "line",
   "text": "Music command $82 for voice 2: start of a repeat: a count; the address after it is kept for command $81."
  },
  {
   "address": 59532,
   "type": "line",
   "text": "Music command $82 for voice 3: start of a repeat: a count; the address after it is kept for command $81."
  },
  {
   "address": 59560,
   "type": "line",
   "text": "Music command $81 for voice 1: end of a repeat: counts the repeat down and goes back to its start until it reaches 0."
  },
  {
   "address": 59578,
   "type": "line",
   "text": "Music command $81 for voice 2: end of a repeat: counts the repeat down and goes back to its start until it reaches 0."
  },
  {
   "address": 59596,
   "type": "line",
   "text": "Music command $81 for voice 3: end of a repeat: counts the repeat down and goes back to its start until it reaches 0."
  },
  {
   "address": 59614,
   "type": "line",
   "text": "Music command $83 for voice 1: note length: one byte, the frames each following note lasts."
  },
  {
   "address": 59626,
   "type": "line",
   "text": "Music command $83 for voice 2: note length: one byte, the frames each following note lasts."
  },
  {
   "address": 59638,
   "type": "line",
   "text": "Music command $83 for voice 3: note length: one byte, the frames each following note lasts."
  },
  {
   "address": 59650,
   "type": "line",
   "text": "Music command $84 for voice 1: one byte stored into the voice's routine at $E347 (the note-off timing it uses)."
  },
  {
   "address": 59659,
   "type": "line",
   "text": "Music command $84 for voice 2: one byte stored into the voice's routine at $E347 (the note-off timing it uses)."
  },
  {
   "address": 59668,
   "type": "line",
   "text": "Music command $84 for voice 3: one byte stored into the voice's routine at $E347 (the note-off timing it uses)."
  },
  {
   "address": 59677,
   "type": "line",
   "text": "Music command $85 for voice 1: direct SID writes: pairs of register offset and value, until a byte with bit 7 set."
  },
  {
   "address": 59695,
   "type": "line",
   "text": "Music command $85 for voice 2: direct SID writes: pairs of register offset and value, until a byte with bit 7 set."
  },
  {
   "address": 59713,
   "type": "line",
   "text": "Music command $85 for voice 3: direct SID writes: pairs of register offset and value, until a byte with bit 7 set."
  },
  {
   "address": 59731,
   "type": "line",
   "text": "Music command $8D for voice 1: waveform: the voice's control byte (waveform and gate), written to the SID at once."
  },
  {
   "address": 59757,
   "type": "line",
   "text": "Music command $8D for voice 2: waveform: the voice's control byte (waveform and gate), written to the SID at once."
  },
  {
   "address": 59783,
   "type": "line",
   "text": "Music command $8D for voice 3: waveform: the voice's control byte (waveform and gate), written to the SID at once."
  },
  {
   "address": 59809,
   "type": "line",
   "text": "Music command $86 for voice 1: end of the tune for this voice: the voice stops."
  },
  {
   "address": 59815,
   "type": "line",
   "text": "Music command $86 for voice 2: end of the tune for this voice: the voice stops."
  },
  {
   "address": 59821,
   "type": "line",
   "text": "Music command $86 for voice 3: end of the tune for this voice: the voice stops."
  },
  {
   "address": 59827,
   "type": "line",
   "text": "Music command $80 for voice 1: pulse-width sweep: three bytes, the sweep's step and a 16-bit starting pulse width; the sweep turns round at the fixed widths $0064 and $0F9B."
  },
  {
   "address": 59871,
   "type": "line",
   "text": "Music command $80 for voice 2: pulse-width sweep: three bytes, the sweep's step and a 16-bit starting pulse width; the sweep turns round at the fixed widths $0064 and $0F9B."
  },
  {
   "address": 59915,
   "type": "line",
   "text": "Music command $80 for voice 3: pulse-width sweep: three bytes, the sweep's step and a 16-bit starting pulse width; the sweep turns round at the fixed widths $0064 and $0F9B."
  },
  {
   "address": 59959,
   "type": "line",
   "text": "Two bytes written by command $94."
  },
  {
   "address": 59960,
   "type": "line",
   "text": "Part of mus_filter_set, 1 bytes in, read here by mus_v1_cmd80."
  },
  {
   "address": 59961,
   "type": "line",
   "text": "Part of mus_filter_set, 2 bytes in; referred to here by mus_v2_cmd80, mus_v2_cmd94."
  },
  {
   "address": 59962,
   "type": "line",
   "text": "Part of mus_filter_set, 3 bytes in; referred to here by mus_v2_cmd80."
  },
  {
   "address": 59963,
   "type": "line",
   "text": "Part of mus_filter_set, 4 bytes in; referred to here by mus_v3_cmd80, mus_v3_cmd94."
  },
  {
   "address": 59964,
   "type": "line",
   "text": "Part of mus_filter_set, 5 bytes in; referred to here by mus_v3_cmd80."
  },
  {
   "address": 59965,
   "type": "line",
   "text": "Music command $88 for voice 1: filter: resonance and routing, cutoff, and the cutoff sweep."
  },
  {
   "address": 60022,
   "type": "line",
   "text": "Music command $88 for voice 2: filter: resonance and routing, cutoff, and the cutoff sweep."
  },
  {
   "address": 60079,
   "type": "line",
   "text": "Music command $88 for voice 3: filter: resonance and routing, cutoff, and the cutoff sweep."
  },
  {
   "address": 60136,
   "type": "line",
   "text": "Music command $89 for voice 1: filter sweep off."
  },
  {
   "address": 60144,
   "type": "line",
   "text": "Music command $89 for voice 2: filter sweep off."
  },
  {
   "address": 60152,
   "type": "line",
   "text": "Music command $89 for voice 3: filter sweep off."
  },
  {
   "address": 60160,
   "type": "line",
   "text": "Music command $8A for voice 1: call: the address after the command's operand is pushed on the voice's small return stack ($EB69/$EB6C), then a jump."
  },
  {
   "address": 60182,
   "type": "line",
   "text": "Music command $87 for voice 1: jump: a two-byte address to continue from."
  },
  {
   "address": 60195,
   "type": "line",
   "text": "Music command $8A for voice 2: call: the address after the command's operand is pushed on the voice's small return stack ($EB69/$EB6C), then a jump."
  },
  {
   "address": 60217,
   "type": "line",
   "text": "Music command $87 for voice 2: jump: a two-byte address to continue from."
  },
  {
   "address": 60230,
   "type": "line",
   "text": "Music command $8A for voice 3: call: the address after the command's operand is pushed on the voice's small return stack ($EB69/$EB6C), then a jump."
  },
  {
   "address": 60252,
   "type": "line",
   "text": "Music command $87 for voice 3: jump: a two-byte address to continue from."
  },
  {
   "address": 60265,
   "type": "line",
   "text": "The voices' return addresses for command $8A (low bytes $EB69-$EB6B, high bytes $EB6C-$EB6E), and their counters."
  },
  {
   "address": 60268,
   "type": "line",
   "text": "Part of mus_call_stack, 3 bytes in, read and written here by mus_v1_cmd8A, mus_v1_cmd8B."
  },
  {
   "address": 60271,
   "type": "line",
   "text": "Part of mus_call_stack, 6 bytes in; referred to here by mus_v2_cmd8A, mus_v2_cmd8B."
  },
  {
   "address": 60274,
   "type": "line",
   "text": "Part of mus_call_stack, 9 bytes in; referred to here by mus_v2_cmd8A, mus_v2_cmd8B."
  },
  {
   "address": 60277,
   "type": "line",
   "text": "Part of mus_call_stack, 12 bytes in; referred to here by mus_v3_cmd8A, mus_v3_cmd8B."
  },
  {
   "address": 60280,
   "type": "line",
   "text": "Part of mus_call_stack, 15 bytes in; referred to here by mus_v3_cmd8A, mus_v3_cmd8B."
  },
  {
   "address": 60283,
   "type": "line",
   "text": "Music command $8B for voice 1: return from a call."
  },
  {
   "address": 60302,
   "type": "line",
   "text": "Music command $8B for voice 2: return from a call."
  },
  {
   "address": 60321,
   "type": "line",
   "text": "Music command $8B for voice 3: return from a call."
  },
  {
   "address": 60340,
   "type": "line",
   "text": "Music command $8C for voice 1: transpose: a number of semitones added to every following note."
  },
  {
   "address": 60349,
   "type": "line",
   "text": "Music command $8C for voice 2: transpose: a number of semitones added to every following note."
  },
  {
   "address": 60358,
   "type": "line",
   "text": "Music command $8C for voice 3: transpose: a number of semitones added to every following note."
  },
  {
   "address": 60367,
   "type": "line",
   "text": "Music command $8E for voice 1: vibrato: four bytes, a depth ($E039), a step added to and taken from the pitch ($E066), a delay ($E063) and $E05D."
  },
  {
   "address": 60394,
   "type": "line",
   "text": "Music command $8E for voice 2: vibrato: four bytes, a depth ($E039), a step added to and taken from the pitch ($E066), a delay ($E063) and $E05D."
  },
  {
   "address": 60421,
   "type": "line",
   "text": "Music command $8E for voice 3: vibrato: four bytes, a depth ($E039), a step added to and taken from the pitch ($E066), a delay ($E063) and $E05D."
  },
  {
   "address": 60448,
   "type": "line",
   "text": "Music command $8F for voice 1: four bytes into $E033, $E036 and the counters at $EC3B/$EC3C, read by the voice's frame routine."
  },
  {
   "address": 60475,
   "type": "line",
   "text": "Two bytes set by command $8F."
  },
  {
   "address": 60476,
   "type": "line",
   "text": "Part of mus_8f_vars, 1 bytes in, read and written here by mus_v1_cmd8F, voice1_read."
  },
  {
   "address": 60477,
   "type": "line",
   "text": "Music command $8F for voice 2: four bytes into $E033, $E036 and the counters at $EC3B/$EC3C, read by the voice's frame routine."
  },
  {
   "address": 60504,
   "type": "line",
   "text": "The same for voice 2."
  },
  {
   "address": 60505,
   "type": "line",
   "text": "Part of mus_8f_vars2, 1 bytes in, read and written here by mus_v2_cmd8F, voice2_read."
  },
  {
   "address": 60506,
   "type": "line",
   "text": "Music command $8F for voice 3: four bytes into $E033, $E036 and the counters at $EC3B/$EC3C, read by the voice's frame routine."
  },
  {
   "address": 60533,
   "type": "line",
   "text": "The same for voice 3."
  },
  {
   "address": 60534,
   "type": "line",
   "text": "Part of mus_8f_vars3, 1 bytes in, read and written here by mus_v3_cmd8F, voice3_read."
  },
  {
   "address": 60535,
   "type": "line",
   "text": "Music command $90 for voice 1: one byte, the voice's setting at $E06C."
  },
  {
   "address": 60544,
   "type": "line",
   "text": "Music command $90 for voice 2: one byte, the voice's setting at $E06C."
  },
  {
   "address": 60553,
   "type": "line",
   "text": "Music command $90 for voice 3: one byte, the voice's setting at $E06C."
  },
  {
   "address": 60562,
   "type": "line",
   "text": "Music command $91 for voice 1: a pitch sweep: a step ($E06F) and two values ($E03C, $E03F) the frame routine moves by that step."
  },
  {
   "address": 60583,
   "type": "line",
   "text": "Music command $91 for voice 2: a pitch sweep: a step ($E06F) and two values ($E03C, $E03F) the frame routine moves by that step."
  },
  {
   "address": 60587,
   "type": "line",
   "text": "The base voice 1's dispatcher indexes with the command byte ($80-$94), so its reads land in mus_cmd_lo at $ED2B-$ED3F; the byte here is part of handler mus_v2_cmd91."
  },
  {
   "address": 60604,
   "type": "line",
   "text": "Music command $91 for voice 3: a pitch sweep: a step ($E06F) and two values ($E03C, $E03F) the frame routine moves by that step."
  },
  {
   "address": 60608,
   "type": "line",
   "text": "The base voice 2's dispatcher indexes with the command byte, landing in mus_cmd_lo at $ED40-$ED54; the byte here is part of mus_v3_cmd91."
  },
  {
   "address": 60625,
   "type": "line",
   "text": "Music command $92 for voice 1: one byte, the slide setting at $E045."
  },
  {
   "address": 60629,
   "type": "line",
   "text": "The base voice 3's dispatcher indexes with the command byte, landing at $ED55-$ED69; the byte here is part of mus_v1_cmd92."
  },
  {
   "address": 60634,
   "type": "line",
   "text": "Music command $92 for voice 2: one byte, the slide setting at $E045."
  },
  {
   "address": 60643,
   "type": "line",
   "text": "Music command $92 for voice 3: one byte, the slide setting at $E045."
  },
  {
   "address": 60650,
   "type": "line",
   "text": "The base of voice 1's high-byte dispatch reads, landing in mus_cmd_hi at $ED6A-$ED7E; the byte here is part of mus_v3_cmd92."
  },
  {
   "address": 60652,
   "type": "line",
   "text": "Music command $93 for voice 1: turns off the note step for the next note ($E29A decremented)."
  },
  {
   "address": 60658,
   "type": "line",
   "text": "Music command $93 for voice 2: turns off the note step for the next note ($E29A decremented)."
  },
  {
   "address": 60664,
   "type": "line",
   "text": "Music command $93 for voice 3: turns off the note step for the next note ($E29A decremented)."
  },
  {
   "address": 60670,
   "type": "line",
   "text": "Music command $94 for voice 1: two bytes into $EA37, the filter's setting."
  },
  {
   "address": 60671,
   "type": "line",
   "text": "The base of voice 2's high-byte dispatch reads, landing at $ED7F-$ED93; the byte here is part of mus_v1_cmd94."
  },
  {
   "address": 60685,
   "type": "line",
   "text": "Music command $94 for voice 2: two bytes into $EA37, the filter's setting."
  },
  {
   "address": 60692,
   "type": "line",
   "text": "The base of voice 3's high-byte dispatch reads, landing at $ED94-$EDA8; the byte here is part of mus_v2_cmd94."
  },
  {
   "address": 60700,
   "type": "line",
   "text": "Music command $94 for voice 3: two bytes into $EA37, the filter's setting."
  },
  {
   "address": 60715,
   "type": "line",
   "text": "Low bytes of the music command handlers: 21 for each voice (voice 1 from $ED2B, voice 2 from $ED40, voice 3 from $ED55), indexed by the command byte."
  },
  {
   "address": 60778,
   "type": "line",
   "text": "High bytes of the music command handlers, in the same order."
  },
  {
   "address": 60841,
   "type": "line",
   "text": "Low bytes of the SID frequencies of the notes a tune can play, 97 notes in semitone steps."
  },
  {
   "address": 60938,
   "type": "line",
   "text": "High bytes of the note frequencies."
  },
  {
   "address": 61035,
   "type": "line",
   "text": "Low bytes of voice 1's start address for each of the eleven tunes (then the high bytes at $EE76, and the same for voice 2 at $EE81/$EE8C and voice 3 at $EE97/$EEA2)."
  },
  {
   "address": 61046,
   "type": "line",
   "text": "Part of tune_v1_lo, 11 bytes in, read here by music_start."
  },
  {
   "address": 61057,
   "type": "line",
   "text": "Part of tune_v1_lo, 22 bytes in; referred to here by music_start."
  },
  {
   "address": 61068,
   "type": "line",
   "text": "Part of tune_v1_lo, 33 bytes in; referred to here by music_start."
  },
  {
   "address": 61079,
   "type": "line",
   "text": "Part of tune_v1_lo, 44 bytes in; referred to here by music_start."
  },
  {
   "address": 61090,
   "type": "line",
   "text": "Part of tune_v1_lo, 55 bytes in; referred to here by music_start."
  },
  {
   "address": 61101,
   "type": "line",
   "text": "Tune 0, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61200,
   "type": "line",
   "text": "Tune 0, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61244,
   "type": "line",
   "text": "Tune 0, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61586,
   "type": "line",
   "text": "Tune 1, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61646,
   "type": "line",
   "text": "Tune 1, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61705,
   "type": "line",
   "text": "Tune 1, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61778,
   "type": "line",
   "text": "Tune 2, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61921,
   "type": "line",
   "text": "Tune 2, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 61951,
   "type": "line",
   "text": "Tune 2, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62009,
   "type": "line",
   "text": "Tune 3, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62076,
   "type": "line",
   "text": "Tune 3, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62129,
   "type": "line",
   "text": "Tune 3, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62207,
   "type": "line",
   "text": "Tune 4, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62328,
   "type": "line",
   "text": "Tune 4, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62390,
   "type": "line",
   "text": "Tune 4, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62447,
   "type": "line",
   "text": "Tune 5, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62556,
   "type": "line",
   "text": "Tune 5, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62604,
   "type": "line",
   "text": "Tune 5, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62629,
   "type": "line",
   "text": "The game calls the KERNAL's LOAD routine at $F4A5 (load_taito, reload_alien, the attract demo's SCENE load) with the ROM banked in. In RAM, here, these bytes are tune data."
  },
  {
   "address": 62757,
   "type": "line",
   "text": "Tune 6, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62866,
   "type": "line",
   "text": "Tune 6, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62921,
   "type": "line",
   "text": "Tune 6, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 62987,
   "type": "line",
   "text": "Tune 7, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63070,
   "type": "line",
   "text": "Tune 7, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63124,
   "type": "line",
   "text": "Tune 7, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63259,
   "type": "line",
   "text": "Tune 8, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63372,
   "type": "line",
   "text": "Tune 8, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63444,
   "type": "line",
   "text": "Tune 8, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63479,
   "type": "line",
   "text": "Tune 9, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63580,
   "type": "line",
   "text": "Tune 9, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63663,
   "type": "line",
   "text": "Tune 9, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94)."
  },
  {
   "address": 63818,
   "type": "line",
   "text": "Tune 10, voice 1: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94), the title tune."
  },
  {
   "address": 64155,
   "type": "line",
   "text": "Tune 10, voice 2: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94), the title tune."
  },
  {
   "address": 64414,
   "type": "line",
   "text": "Tune 10, voice 3: notes (bytes below $80, indices into the frequency tables) and commands ($80-$94), the title tune."
  }
 ]
}