{
 "schema": 1,
 "platform": "c64",
 "game": "aaargh",
 "build": "PAL cassette, a crack saved with a Trilogic Expert V3.1 freezer (crackers unknown); analysed from the game's own entry at $8009",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    2,
    13,
    "not the game's: what the Expert cartridge's decruncher left in zero page; the game never runs it"
   ],
   [
    1024,
    2047,
    "not the game's: the screen as the Expert cartridge's restart left it (\"ALL DATA READ\"); the game shows video bank 3 only"
   ],
   [
    2048,
    2999,
    "not the game's: the Expert's restart (the BASIC line SYS2075 TRILOGIC V3.1 and its decruncher) and what the tape's loader left (\"WAITING FOR DATA\" at $0A62); no instruction of the game reads it"
   ],
   [
    9272,
    9279,
    "unused: eight bytes after the last of the monsters' lower-body frames, which no table reaches"
   ],
   [
    9601,
    11895,
    "leftover: an older set of the monsters' lower-body frames, on a 64-byte grid of its own; no table reaches it"
   ],
   [
    31000,
    31959,
    "runtime: the copy of the city's screen that $853E keeps and $8970 reads back"
   ],
   [
    31960,
    32767,
    "unused: zeros after the screen copy"
   ],
   [
    40210,
    40289,
    "runtime: the buffer where $9772 builds a monster's lower sprite, also where $853E keeps the top two rows of the screen while it builds a city"
   ],
   [
    40290,
    40349,
    "unused: one value repeated, between the buffer and the hidden list"
   ],
   [
    40613,
    40614,
    "unused: two bytes between the hidden list and the first building picture"
   ],
   [
    41633,
    41888,
    "runtime: the characters' colours, written for each city by $853E"
   ],
   [
    41889,
    42038,
    "unused: one value repeated, before the code at $A437"
   ],
   [
    47028,
    48478,
    "leftover: an older build's copy of $B463-$B752 (the character animation, its tables, the city tables and the interrupt helpers), assembled about $350 higher, which nothing calls or reads"
   ],
   [
    49152,
    50175,
    "runtime: the character set's first 128 characters, built for the title ($AF38) and copied from each city's data ($853E)"
   ],
   [
    50328,
    50431,
    "runtime: characters $93-$9F, animated each pass ($B463) or built ($86E2, $86F0, $A80E, $AAE5)"
   ],
   [
    50504,
    50559,
    "runtime: characters $A9-$AF, animated each pass ($B463) and the mark $AF cleared by $86DC"
   ],
   [
    50568,
    51071,
    "runtime: character $B1, cleared by $86D9, and the 62 characters each city copies to $C590"
   ],
   [
    51200,
    52223,
    "runtime: the screen and the sprite pointers"
   ],
   [
    52224,
    52351,
    "runtime: below the lizard's lower sprite, where the city screen's unpacker writes the records it reads past the screen's last row"
   ],
   [
    52352,
    52415,
    "runtime: the lizard's lower sprite, built each pass by $9772"
   ],
   [
    52480,
    52543,
    "runtime: the ogre's lower sprite, built each pass by $9772"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 1,
   "type": "Byte"
  },
  {
   "start": 2,
   "end": 2999,
   "type": "Undefined"
  },
  {
   "start": 3000,
   "end": 9271,
   "type": "Byte"
  },
  {
   "start": 9272,
   "end": 9279,
   "type": "Undefined"
  },
  {
   "start": 9280,
   "end": 9600,
   "type": "Byte"
  },
  {
   "start": 9601,
   "end": 11895,
   "type": "Undefined"
  },
  {
   "start": 11896,
   "end": 26870,
   "type": "Byte"
  },
  {
   "start": 26871,
   "end": 26871,
   "type": "Undefined"
  },
  {
   "start": 26872,
   "end": 28482,
   "type": "Code"
  },
  {
   "start": 28483,
   "end": 28672,
   "type": "Byte"
  },
  {
   "start": 28673,
   "end": 28692,
   "type": "Code"
  },
  {
   "start": 28693,
   "end": 28704,
   "type": "Address"
  },
  {
   "start": 28705,
   "end": 28960,
   "type": "Byte"
  },
  {
   "start": 28961,
   "end": 29022,
   "type": "Address"
  },
  {
   "start": 29023,
   "end": 29744,
   "type": "Byte"
  },
  {
   "start": 29745,
   "end": 29756,
   "type": "Address"
  },
  {
   "start": 29757,
   "end": 29852,
   "type": "Byte"
  },
  {
   "start": 29853,
   "end": 29979,
   "type": "Undefined"
  },
  {
   "start": 29980,
   "end": 30011,
   "type": "Byte"
  },
  {
   "start": 30012,
   "end": 30014,
   "type": "Undefined"
  },
  {
   "start": 30015,
   "end": 30505,
   "type": "Code"
  },
  {
   "start": 30506,
   "end": 30583,
   "type": "Undefined"
  },
  {
   "start": 30584,
   "end": 30999,
   "type": "Byte"
  },
  {
   "start": 31000,
   "end": 32767,
   "type": "Undefined"
  },
  {
   "start": 32768,
   "end": 32776,
   "type": "Byte"
  },
  {
   "start": 32777,
   "end": 32911,
   "type": "Code"
  },
  {
   "start": 32912,
   "end": 32927,
   "type": "Byte"
  },
  {
   "start": 32928,
   "end": 32956,
   "type": "Undefined"
  },
  {
   "start": 32957,
   "end": 32964,
   "type": "Byte"
  },
  {
   "start": 32965,
   "end": 32965,
   "type": "Undefined"
  },
  {
   "start": 32966,
   "end": 32973,
   "type": "Byte"
  },
  {
   "start": 32974,
   "end": 33006,
   "type": "Undefined"
  },
  {
   "start": 33007,
   "end": 33294,
   "type": "Byte"
  },
  {
   "start": 33295,
   "end": 33310,
   "type": "Undefined"
  },
  {
   "start": 33311,
   "end": 33338,
   "type": "Byte"
  },
  {
   "start": 33339,
   "end": 33340,
   "type": "Undefined"
  },
  {
   "start": 33341,
   "end": 33342,
   "type": "Byte"
  },
  {
   "start": 33343,
   "end": 33351,
   "type": "Undefined"
  },
  {
   "start": 33352,
   "end": 33379,
   "type": "Byte"
  },
  {
   "start": 33380,
   "end": 33381,
   "type": "Undefined"
  },
  {
   "start": 33382,
   "end": 33405,
   "type": "Byte"
  },
  {
   "start": 33406,
   "end": 33407,
   "type": "Undefined"
  },
  {
   "start": 33408,
   "end": 33461,
   "type": "Byte"
  },
  {
   "start": 33462,
   "end": 33472,
   "type": "Undefined"
  },
  {
   "start": 33473,
   "end": 33474,
   "type": "Byte"
  },
  {
   "start": 33475,
   "end": 33478,
   "type": "Undefined"
  },
  {
   "start": 33479,
   "end": 33506,
   "type": "Byte"
  },
  {
   "start": 33507,
   "end": 33637,
   "type": "Code"
  },
  {
   "start": 33638,
   "end": 33639,
   "type": "Undefined"
  },
  {
   "start": 33640,
   "end": 33838,
   "type": "Code"
  },
  {
   "start": 33839,
   "end": 33859,
   "type": "Byte"
  },
  {
   "start": 33860,
   "end": 34798,
   "type": "Code"
  },
  {
   "start": 34799,
   "end": 34831,
   "type": "Byte"
  },
  {
   "start": 34832,
   "end": 35135,
   "type": "Code"
  },
  {
   "start": 35136,
   "end": 35137,
   "type": "Undefined"
  },
  {
   "start": 35138,
   "end": 37196,
   "type": "Code"
  },
  {
   "start": 37197,
   "end": 37197,
   "type": "Undefined"
  },
  {
   "start": 37198,
   "end": 39934,
   "type": "Code"
  },
  {
   "start": 39935,
   "end": 39935,
   "type": "Undefined"
  },
  {
   "start": 39936,
   "end": 40209,
   "type": "Byte"
  },
  {
   "start": 40210,
   "end": 40350,
   "type": "Undefined"
  },
  {
   "start": 40351,
   "end": 40612,
   "type": "Byte"
  },
  {
   "start": 40613,
   "end": 40614,
   "type": "Undefined"
  },
  {
   "start": 40615,
   "end": 40802,
   "type": "Byte"
  },
  {
   "start": 40803,
   "end": 40803,
   "type": "Undefined"
  },
  {
   "start": 40804,
   "end": 41632,
   "type": "Byte"
  },
  {
   "start": 41633,
   "end": 42038,
   "type": "Undefined"
  },
  {
   "start": 42039,
   "end": 43170,
   "type": "Code"
  },
  {
   "start": 43171,
   "end": 43176,
   "type": "Undefined"
  },
  {
   "start": 43177,
   "end": 43925,
   "type": "Code"
  },
  {
   "start": 43926,
   "end": 43939,
   "type": "Byte"
  },
  {
   "start": 43940,
   "end": 43942,
   "type": "Undefined"
  },
  {
   "start": 43943,
   "end": 43958,
   "type": "Byte"
  },
  {
   "start": 43959,
   "end": 44828,
   "type": "Code"
  },
  {
   "start": 44829,
   "end": 44834,
   "type": "Undefined"
  },
  {
   "start": 44835,
   "end": 45675,
   "type": "Code"
  },
  {
   "start": 45676,
   "end": 46030,
   "type": "Byte"
  },
  {
   "start": 46031,
   "end": 46270,
   "type": "Code"
  },
  {
   "start": 46271,
   "end": 46824,
   "type": "Byte"
  },
  {
   "start": 46825,
   "end": 47020,
   "type": "Code"
  },
  {
   "start": 47021,
   "end": 47023,
   "type": "Undefined"
  },
  {
   "start": 47024,
   "end": 47027,
   "type": "Byte"
  },
  {
   "start": 47028,
   "end": 48478,
   "type": "Undefined"
  },
  {
   "start": 48479,
   "end": 49151,
   "type": "Byte"
  },
  {
   "start": 49152,
   "end": 50175,
   "type": "Undefined"
  },
  {
   "start": 50176,
   "end": 50327,
   "type": "Byte"
  },
  {
   "start": 50328,
   "end": 50431,
   "type": "Undefined"
  },
  {
   "start": 50432,
   "end": 50503,
   "type": "Byte"
  },
  {
   "start": 50504,
   "end": 50559,
   "type": "Undefined"
  },
  {
   "start": 50560,
   "end": 50567,
   "type": "Byte"
  },
  {
   "start": 50568,
   "end": 51071,
   "type": "Undefined"
  },
  {
   "start": 51072,
   "end": 51199,
   "type": "Byte"
  },
  {
   "start": 51200,
   "end": 52415,
   "type": "Undefined"
  },
  {
   "start": 52416,
   "end": 52479,
   "type": "Byte"
  },
  {
   "start": 52480,
   "end": 52543,
   "type": "Undefined"
  },
  {
   "start": 52544,
   "end": 65535,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "cpu_port_ddr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1,
   "name": "cpu_port",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 167,
   "name": "music_pattern_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 168,
   "name": "zpa_A8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 169,
   "name": "music_order_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 170,
   "name": "zpa_AA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "ptr_a",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "ptr_b",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 254,
   "name": "zpa_FE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 788,
   "name": "irq_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 789,
   "name": "a_0315",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3000,
   "name": "lower_frames_00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3768,
   "name": "frame12_title",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4024,
   "name": "lower_frames_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4096,
   "name": "lower_frames_16b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5048,
   "name": "lower_frames_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6072,
   "name": "lower_frames_48",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6136,
   "name": "frame49_title",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6968,
   "name": "frame62",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7096,
   "name": "lower_frames_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8120,
   "name": "lower_frames_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9144,
   "name": "lower_frames_96",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9280,
   "name": "title_font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9440,
   "name": "font_second_half",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11896,
   "name": "city1_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12024,
   "name": "city1_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13048,
   "name": "city1_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13621,
   "name": "city2_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13749,
   "name": "city2_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14773,
   "name": "city2_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15373,
   "name": "city3_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15501,
   "name": "city3_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15999,
   "name": "city3_stray_byte",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "city3_chars_4000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16525,
   "name": "city3_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17073,
   "name": "city4_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17201,
   "name": "city4_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18225,
   "name": "city4_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19006,
   "name": "city5_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19134,
   "name": "city5_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20158,
   "name": "city5_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20561,
   "name": "city6_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20689,
   "name": "city6_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21713,
   "name": "city6_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22132,
   "name": "city7_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22260,
   "name": "city7_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23284,
   "name": "city7_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23771,
   "name": "city8_colours",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23899,
   "name": "city8_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24923,
   "name": "city8_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25367,
   "name": "shared_chars_6317",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25727,
   "name": "shared_chars_647F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25999,
   "name": "shared_chars_658F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26271,
   "name": "shared_chars_669F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26415,
   "name": "shared_chars_672F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26591,
   "name": "shared_chars_67DF",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26871,
   "name": "music_command",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26872,
   "name": "music_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 26883,
   "name": "b_6903",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26886,
   "name": "b_6906",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26898,
   "name": "a_6912",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26902,
   "name": "b_6916",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26923,
   "name": "b_692B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26951,
   "name": "b_6947",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26970,
   "name": "music_voice",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 26997,
   "name": "a_6975",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27006,
   "name": "b_697E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27023,
   "name": "b_698F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27026,
   "name": "b_6992",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27041,
   "name": "b_69A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27060,
   "name": "j_69B4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27088,
   "name": "b_69D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27091,
   "name": "b_69D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27103,
   "name": "b_69DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27123,
   "name": "b_69F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27142,
   "name": "b_6A06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27154,
   "name": "b_6A12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27173,
   "name": "b_6A25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27185,
   "name": "b_6A31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27195,
   "name": "j_6A3B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27201,
   "name": "j_6A41",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27204,
   "name": "b_6A44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27207,
   "name": "b_6A47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27216,
   "name": "b_6A50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27222,
   "name": "j_6A56",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27234,
   "name": "b_6A62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27243,
   "name": "b_6A6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27276,
   "name": "b_6A8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27289,
   "name": "j_6A99",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27335,
   "name": "b_6AC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27349,
   "name": "b_6AD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27354,
   "name": "b_6ADA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27370,
   "name": "b_6AEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27379,
   "name": "a_6AF3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27401,
   "name": "b_6B09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27438,
   "name": "b_6B2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27446,
   "name": "b_6B36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27461,
   "name": "b_6B45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27479,
   "name": "b_6B57",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27502,
   "name": "j_6B6E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27520,
   "name": "b_6B80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27523,
   "name": "b_6B83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27581,
   "name": "a_6BBD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27582,
   "name": "a_6BBE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27592,
   "name": "a_6BC8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27593,
   "name": "a_6BC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27623,
   "name": "b_6BE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27649,
   "name": "b_6C01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27652,
   "name": "j_6C04",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27685,
   "name": "b_6C25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27699,
   "name": "j_6C33",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27708,
   "name": "j_6C3C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27724,
   "name": "b_6C4C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27727,
   "name": "b_6C4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27766,
   "name": "j_6C76",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27780,
   "name": "b_6C84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27795,
   "name": "b_6C93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27809,
   "name": "b_6CA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27820,
   "name": "b_6CAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27837,
   "name": "j_6CBD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27862,
   "name": "b_6CD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27865,
   "name": "j_6CD9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27890,
   "name": "b_6CF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27908,
   "name": "j_6D04",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27919,
   "name": "j_6D0F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27938,
   "name": "b_6D22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27967,
   "name": "j_6D3F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28002,
   "name": "a_6D62",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28023,
   "name": "a_6D77",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28024,
   "name": "a_6D78",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28036,
   "name": "a_6D84",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28045,
   "name": "j_6D8D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28078,
   "name": "b_6DAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28112,
   "name": "b_6DD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28149,
   "name": "b_6DF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28178,
   "name": "b_6E12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28189,
   "name": "b_6E1D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28197,
   "name": "b_6E25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28208,
   "name": "music_done",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28214,
   "name": "sid_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28218,
   "name": "b_6E3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28225,
   "name": "voice_set_note",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28252,
   "name": "arpeggio_build",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28258,
   "name": "b_6E62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28270,
   "name": "b_6E6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28289,
   "name": "voice_next_pattern",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28299,
   "name": "b_6E8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28320,
   "name": "b_6EA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28329,
   "name": "b_6EA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28348,
   "name": "slide_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28349,
   "name": "a_6EBD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28390,
   "name": "b_6EE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28422,
   "name": "j_6F06",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28428,
   "name": "b_6F0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28429,
   "name": "a_6F0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28441,
   "name": "b_6F19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28455,
   "name": "b_6F27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28459,
   "name": "b_6F2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28482,
   "name": "r_6F42",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 28483,
   "name": "note_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28484,
   "name": "note_freq_hi_next",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28578,
   "name": "note_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28579,
   "name": "note_freq_lo_next",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28673,
   "name": "sid_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28693,
   "name": "tune_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28705,
   "name": "instruments",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28706,
   "name": "ins_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28707,
   "name": "ins_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28708,
   "name": "ins_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28709,
   "name": "ins_drum",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28710,
   "name": "ins_pulse_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28711,
   "name": "ins_arp",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28712,
   "name": "ins_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28961,
   "name": "pattern_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28962,
   "name": "pattern_table_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29023,
   "name": "order_t1v1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29044,
   "name": "order_t1v2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29070,
   "name": "order_t1v3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29088,
   "name": "order_t2v1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29099,
   "name": "order_t2v2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29114,
   "name": "order_t2v3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29126,
   "name": "pattern_00",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29130,
   "name": "pattern_01",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29141,
   "name": "pattern_02",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29164,
   "name": "pattern_03",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29196,
   "name": "pattern_04",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29228,
   "name": "pattern_05",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29232,
   "name": "pattern_06",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29236,
   "name": "pattern_07",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29245,
   "name": "pattern_08",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29280,
   "name": "pattern_09",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29292,
   "name": "pattern_10",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29327,
   "name": "pattern_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29348,
   "name": "pattern_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29361,
   "name": "pattern_13",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29389,
   "name": "pattern_14",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29401,
   "name": "pattern_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29413,
   "name": "pattern_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29448,
   "name": "pattern_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29458,
   "name": "pattern_18",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29470,
   "name": "pattern_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29491,
   "name": "pattern_20",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29500,
   "name": "pattern_21",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29559,
   "name": "pattern_22",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29594,
   "name": "pattern_23",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29602,
   "name": "pattern_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29629,
   "name": "pattern_25",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29678,
   "name": "pattern_26",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29705,
   "name": "pattern_27",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29745,
   "name": "drum_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29746,
   "name": "drum_wave_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29747,
   "name": "f_7433",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 29748,
   "name": "f_7434",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 29757,
   "name": "drum_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29773,
   "name": "drum0_waves",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29789,
   "name": "drum1_freqs",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29805,
   "name": "drum1_waves",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29821,
   "name": "drum2_freqs",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29837,
   "name": "drum2_waves",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29853,
   "name": "voice_sid_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29856,
   "name": "voice_arp_base",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29859,
   "name": "arp_steps",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29867,
   "name": "voice_gate",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29870,
   "name": "voice_note",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29873,
   "name": "music_voice_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29874,
   "name": "music_playing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29875,
   "name": "music_speed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29876,
   "name": "music_speed_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29877,
   "name": "voice_order_place",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29880,
   "name": "voice_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29883,
   "name": "voice_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29886,
   "name": "voice_pulse_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29889,
   "name": "voice_pulse_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29892,
   "name": "voice_pattern_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29895,
   "name": "voice_pattern_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29898,
   "name": "voice_length",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29901,
   "name": "voice_length_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29904,
   "name": "voice_effect",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29907,
   "name": "voice_arp_mask",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29910,
   "name": "voice_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29913,
   "name": "voice_slide_target",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29916,
   "name": "voice_slide_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29919,
   "name": "slide_step_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29920,
   "name": "slide_step_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29921,
   "name": "slide_divisor",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29922,
   "name": "voice_slide_opcode",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29925,
   "name": "voice_short_slide",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29928,
   "name": "voice_pulse_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29931,
   "name": "voice_arp_place",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29934,
   "name": "vibrato_depth",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29935,
   "name": "vibrato_shift",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29936,
   "name": "voice_vibrato_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29939,
   "name": "voice_vibrato_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29942,
   "name": "voice_vibrato_delay",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29945,
   "name": "voice_vibrato_wait",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29948,
   "name": "vibrato_freq_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29949,
   "name": "vibrato_freq_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29950,
   "name": "vibrato_step_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29951,
   "name": "vibrato_step_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29952,
   "name": "arp_mask_work",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29953,
   "name": "fade_volume",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29954,
   "name": "voice_order_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29957,
   "name": "voice_order_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29960,
   "name": "pattern_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29961,
   "name": "voice_instrument",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29964,
   "name": "voice_effect_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29965,
   "name": "a_750D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 29966,
   "name": "a_750E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 29967,
   "name": "music_sid_offset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29968,
   "name": "voice_keep_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29971,
   "name": "voice_drum_started",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29974,
   "name": "voice_sustain_full",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29977,
   "name": "voice_vibrato_byte",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29980,
   "name": "arp_lists",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30012,
   "name": "sfx_request",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30013,
   "name": "a_753D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30014,
   "name": "a_753E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30015,
   "name": "sfx_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30021,
   "name": "sfx_clear_entry",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30024,
   "name": "sfx_volume",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30030,
   "name": "sfx_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30043,
   "name": "b_755B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30051,
   "name": "b_7563",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30058,
   "name": "sfx_play",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 30064,
   "name": "b_7570",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30074,
   "name": "b_757A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30082,
   "name": "b_7582",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30090,
   "name": "sfx_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30232,
   "name": "b_7618",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30237,
   "name": "j_761D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30307,
   "name": "sfx_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30323,
   "name": "b_7673",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30326,
   "name": "b_7676",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30352,
   "name": "b_7690",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30370,
   "name": "b_76A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30389,
   "name": "b_76B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30392,
   "name": "b_76B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30414,
   "name": "j_76CE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30470,
   "name": "j_7706",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30483,
   "name": "b_7713",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30500,
   "name": "b_7724",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30506,
   "name": "sfx_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30509,
   "name": "sfx_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30512,
   "name": "sfx_start_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30515,
   "name": "sfx_start_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30518,
   "name": "sfx_repeats",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30521,
   "name": "sfx_time_start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30524,
   "name": "sfx_mode",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30527,
   "name": "sfx_step_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30530,
   "name": "sfx_step_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30533,
   "name": "sfx_waveform",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30536,
   "name": "sfx_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30542,
   "name": "sfx_swap",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30545,
   "name": "sfx_playing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 30546,
   "name": "a_7752",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30547,
   "name": "a_7753",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30548,
   "name": "sfx_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30551,
   "name": "sfx_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30554,
   "name": "sfx_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30557,
   "name": "sfx_sid_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30560,
   "name": "sfx_forever",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30563,
   "name": "sfx_extra",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30566,
   "name": "f_7766",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30569,
   "name": "f_7769",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30572,
   "name": "f_776C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30575,
   "name": "sfx_release",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30584,
   "name": "sfx_records",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31240,
   "name": "f_7A08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31480,
   "name": "f_7AF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31720,
   "name": "f_7BE8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32768,
   "name": "cbm80_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32777,
   "name": "entry",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32781,
   "name": "main_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32790,
   "name": "b_8016",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32793,
   "name": "b_8019",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32814,
   "name": "a_802E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32818,
   "name": "a_8032",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32823,
   "name": "b_8037",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32830,
   "name": "city_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32843,
   "name": "b_804B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32848,
   "name": "b_8050",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32869,
   "name": "frame_work",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32912,
   "name": "bit_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32920,
   "name": "bit_masks_off",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32928,
   "name": "temp_a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32929,
   "name": "temp_b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32930,
   "name": "temp_c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32931,
   "name": "temp_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32932,
   "name": "temp_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32933,
   "name": "building_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32934,
   "name": "fire_monster",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32935,
   "name": "city_type_saved",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32936,
   "name": "city_type",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32937,
   "name": "lizard_half_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32938,
   "name": "ogre_half_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32939,
   "name": "lizard_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32940,
   "name": "ogre_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32941,
   "name": "lizard_half_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32942,
   "name": "ogre_half_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32943,
   "name": "lizard_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32944,
   "name": "ogre_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32945,
   "name": "lizard_px",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32946,
   "name": "lizard_py",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32947,
   "name": "ogre_px",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32948,
   "name": "ogre_py",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32949,
   "name": "band1_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32950,
   "name": "a_80B6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32951,
   "name": "a_80B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32952,
   "name": "a_80B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32953,
   "name": "a_80B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32954,
   "name": "a_80BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32957,
   "name": "band1_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32965,
   "name": "band1_xhi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32966,
   "name": "band1_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32974,
   "name": "band2_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32975,
   "name": "a_80CF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32976,
   "name": "a_80D0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32977,
   "name": "a_80D1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32978,
   "name": "a_80D2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32979,
   "name": "a_80D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32980,
   "name": "a_80D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32981,
   "name": "a_80D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32982,
   "name": "a_80D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32983,
   "name": "a_80D7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32984,
   "name": "a_80D8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32985,
   "name": "a_80D9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32986,
   "name": "a_80DA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32987,
   "name": "a_80DB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32988,
   "name": "a_80DC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32990,
   "name": "band2_xhi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32991,
   "name": "band2_pointers",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32992,
   "name": "a_80E0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32993,
   "name": "a_80E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32994,
   "name": "a_80E2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32995,
   "name": "a_80E3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32996,
   "name": "a_80E4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32997,
   "name": "a_80E5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32998,
   "name": "a_80E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32999,
   "name": "lizard_owed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33000,
   "name": "ogre_owed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33001,
   "name": "lizard_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33002,
   "name": "ogre_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33003,
   "name": "lizard_fire",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33004,
   "name": "ogre_fire",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33005,
   "name": "lizard_power",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33007,
   "name": "lizard_upper_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33075,
   "name": "lizard_lower_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33143,
   "name": "ogre_upper_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33211,
   "name": "ogre_lower_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33279,
   "name": "flyer_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33295,
   "name": "hornet_dir_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33297,
   "name": "a_8211",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33298,
   "name": "anim_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33299,
   "name": "lizard_frame",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33300,
   "name": "ogre_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33301,
   "name": "lizard_action",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33302,
   "name": "ogre_action",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33303,
   "name": "lizard_facing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33304,
   "name": "ogre_facing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33305,
   "name": "ogre_bar1_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33306,
   "name": "ogre_bar2_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33307,
   "name": "lizard_bar1_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33308,
   "name": "lizard_bar2_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33309,
   "name": "lizard_hurt",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33310,
   "name": "ogre_hurt",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33311,
   "name": "people_state",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33319,
   "name": "people_column",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33327,
   "name": "people_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33335,
   "name": "hornet_way",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33337,
   "name": "hornet_up",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33339,
   "name": "hornet_out",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33340,
   "name": "a_823C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33341,
   "name": "hornet_dying",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33343,
   "name": "flyer_dying",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33344,
   "name": "cannon_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33345,
   "name": "a_8241",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33346,
   "name": "cannon_health",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33347,
   "name": "a_8243",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33348,
   "name": "cannon_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33349,
   "name": "cannon_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33350,
   "name": "cannon_roll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33351,
   "name": "cannon_roll_len",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33352,
   "name": "city_cannon_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33361,
   "name": "city_cannon_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33370,
   "name": "city_cannon_roll",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33380,
   "name": "lizard_near_cannon",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33381,
   "name": "ogre_near_cannon",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33382,
   "name": "building_column",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33390,
   "name": "building_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33398,
   "name": "building_type",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33406,
   "name": "building_height",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33407,
   "name": "building_width",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33408,
   "name": "building_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33416,
   "name": "building_burn_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33424,
   "name": "building_fire",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33432,
   "name": "building_falling",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33440,
   "name": "building_burnt_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33448,
   "name": "building_gone",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33456,
   "name": "fire_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33462,
   "name": "buildings_fallen",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33463,
   "name": "lizard_misses",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33464,
   "name": "f_82B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 33465,
   "name": "lizard_punch_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33466,
   "name": "a_82BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33467,
   "name": "lizard_flame_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33468,
   "name": "a_82BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33469,
   "name": "lizard_aim",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33470,
   "name": "a_82BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33471,
   "name": "lizard_eat_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33472,
   "name": "a_82C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33475,
   "name": "aim_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33476,
   "name": "mask_half_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33477,
   "name": "aim_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33478,
   "name": "mask_half_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33487,
   "name": "city_data_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33497,
   "name": "city_data_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33507,
   "name": "game_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33516,
   "name": "city_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33537,
   "name": "video_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33574,
   "name": "monsters_start",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33607,
   "name": "b_8347",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33629,
   "name": "b_835D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33637,
   "name": "r_8365",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 33638,
   "name": "lizard_free",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33639,
   "name": "ogre_free",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33640,
   "name": "lizard_join",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33714,
   "name": "ogre_join",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33785,
   "name": "monster_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33810,
   "name": "b_8412",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33811,
   "name": "a_8413",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33812,
   "name": "a_8414",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33820,
   "name": "b_841C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33821,
   "name": "a_841D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33822,
   "name": "a_841E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33824,
   "name": "a_8420",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33825,
   "name": "a_8421",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33830,
   "name": "install_play_irq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33839,
   "name": "city_choice",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33860,
   "name": "city_pick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34060,
   "name": "b_850C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34071,
   "name": "b_8517",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34093,
   "name": "b_852D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34110,
   "name": "city_build",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34118,
   "name": "b_8546",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34126,
   "name": "b_854E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34150,
   "name": "b_8566",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34169,
   "name": "b_8579",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34181,
   "name": "b_8585",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34183,
   "name": "b_8587",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34186,
   "name": "a_858A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34187,
   "name": "a_858B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34224,
   "name": "b_85B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34226,
   "name": "b_85B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34227,
   "name": "a_85B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34228,
   "name": "a_85B4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34248,
   "name": "b_85C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34259,
   "name": "b_85D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34270,
   "name": "j_85DE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34282,
   "name": "b_85EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34298,
   "name": "b_85FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34306,
   "name": "b_8602",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34323,
   "name": "b_8613",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34329,
   "name": "b_8619",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34332,
   "name": "b_861C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34335,
   "name": "b_861F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34354,
   "name": "b_8632",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34366,
   "name": "b_863E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34369,
   "name": "b_8641",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34387,
   "name": "b_8653",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34389,
   "name": "b_8655",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34407,
   "name": "b_8667",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34418,
   "name": "b_8672",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34449,
   "name": "a_8691",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34455,
   "name": "b_8697",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34519,
   "name": "b_86D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34520,
   "name": "a_86D8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34538,
   "name": "b_86EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34593,
   "name": "b_8721",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34617,
   "name": "b_8739",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34626,
   "name": "j_8742",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34628,
   "name": "b_8744",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34639,
   "name": "b_874F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34691,
   "name": "b_8783",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34702,
   "name": "b_878E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34778,
   "name": "b_87DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34790,
   "name": "b_87E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34792,
   "name": "j_87E8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34799,
   "name": "city_colour",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34808,
   "name": "char_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34832,
   "name": "irq_play_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34848,
   "name": "b_8820",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34857,
   "name": "b_8829",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34893,
   "name": "b_884D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34903,
   "name": "b_8857",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34914,
   "name": "j_8862",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34922,
   "name": "b_886A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34954,
   "name": "b_888A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34957,
   "name": "j_888D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34974,
   "name": "a_889E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34978,
   "name": "irq_play_band2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34979,
   "name": "a_88A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34984,
   "name": "a_88A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34989,
   "name": "a_88AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34994,
   "name": "a_88B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34999,
   "name": "a_88B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35004,
   "name": "a_88BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35009,
   "name": "a_88C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35014,
   "name": "a_88C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35019,
   "name": "a_88CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35024,
   "name": "a_88D0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35029,
   "name": "a_88D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35034,
   "name": "a_88DA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35039,
   "name": "a_88DF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35044,
   "name": "a_88E4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35049,
   "name": "a_88E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35054,
   "name": "a_88EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35059,
   "name": "a_88F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35064,
   "name": "a_88F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35069,
   "name": "a_88FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35074,
   "name": "a_8902",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35079,
   "name": "a_8907",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35084,
   "name": "a_890C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35089,
   "name": "a_8911",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35094,
   "name": "a_8916",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35099,
   "name": "a_891B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35104,
   "name": "a_8920",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35112,
   "name": "a_8928",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35136,
   "name": "a_8940",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35137,
   "name": "a_8941",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35138,
   "name": "buildings_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35140,
   "name": "b_8944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35155,
   "name": "b_8953",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35172,
   "name": "b_8964",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35175,
   "name": "j_8967",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35183,
   "name": "r_896F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35184,
   "name": "restore_marks",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35186,
   "name": "b_8972",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35206,
   "name": "b_8986",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35226,
   "name": "b_899A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35246,
   "name": "b_89AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35250,
   "name": "play_pass",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35253,
   "name": "play_rest",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35286,
   "name": "monsters_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35296,
   "name": "monster_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35321,
   "name": "b_89F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35339,
   "name": "b_8A0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35356,
   "name": "b_8A1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35374,
   "name": "b_8A2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35425,
   "name": "a_8A61",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35448,
   "name": "b_8A78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35451,
   "name": "b_8A7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35454,
   "name": "b_8A7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35457,
   "name": "b_8A81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35460,
   "name": "b_8A84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35463,
   "name": "b_8A87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35466,
   "name": "b_8A8A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35469,
   "name": "b_8A8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35483,
   "name": "b_8A9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35486,
   "name": "r_8A9E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35487,
   "name": "b_8A9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35514,
   "name": "b_8ABA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35524,
   "name": "j_8AC4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35532,
   "name": "r_8ACC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35533,
   "name": "b_8ACD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35557,
   "name": "b_8AE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35590,
   "name": "b_8B06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35601,
   "name": "b_8B11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35633,
   "name": "b_8B31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35636,
   "name": "j_8B34",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35667,
   "name": "b_8B53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35700,
   "name": "b_8B74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35724,
   "name": "b_8B8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35737,
   "name": "b_8B99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35745,
   "name": "b_8BA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35748,
   "name": "j_8BA4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35779,
   "name": "b_8BC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35812,
   "name": "b_8BE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35823,
   "name": "b_8BEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35858,
   "name": "b_8C12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35882,
   "name": "b_8C2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35885,
   "name": "b_8C2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35888,
   "name": "j_8C30",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35919,
   "name": "b_8C4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35952,
   "name": "b_8C70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35979,
   "name": "b_8C8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36003,
   "name": "j_8CA3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36021,
   "name": "j_8CB5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36036,
   "name": "r_8CC4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36040,
   "name": "monster_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36059,
   "name": "b_8CDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36065,
   "name": "b_8CE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36076,
   "name": "b_8CEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36093,
   "name": "r_8CFD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36094,
   "name": "b_8CFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36097,
   "name": "b_8D01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36100,
   "name": "b_8D04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36103,
   "name": "monster_fire",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36213,
   "name": "b_8D75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36251,
   "name": "b_8D9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36264,
   "name": "b_8DA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36267,
   "name": "b_8DAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36270,
   "name": "b_8DAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36273,
   "name": "j_8DB1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36306,
   "name": "b_8DD2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36338,
   "name": "b_8DF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36353,
   "name": "b_8E01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36391,
   "name": "b_8E27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36419,
   "name": "b_8E43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36427,
   "name": "b_8E4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36435,
   "name": "b_8E53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36469,
   "name": "j_8E75",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36487,
   "name": "b_8E87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36507,
   "name": "b_8E9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36547,
   "name": "b_8EC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36602,
   "name": "b_8EFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36610,
   "name": "b_8F02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36618,
   "name": "b_8F0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36652,
   "name": "j_8F2C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36679,
   "name": "b_8F47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36702,
   "name": "b_8F5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36728,
   "name": "a_8F78",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36750,
   "name": "b_8F8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36768,
   "name": "b_8FA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36771,
   "name": "b_8FA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36813,
   "name": "b_8FCD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36835,
   "name": "j_8FE3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36852,
   "name": "j_8FF4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36886,
   "name": "b_9016",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36889,
   "name": "b_9019",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36892,
   "name": "j_901C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36928,
   "name": "b_9040",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36954,
   "name": "a_905A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36970,
   "name": "b_906A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37027,
   "name": "b_90A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37049,
   "name": "j_90B9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37054,
   "name": "j_90BE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37080,
   "name": "b_90D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37103,
   "name": "j_90EF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37137,
   "name": "j_9111",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37151,
   "name": "b_911F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37157,
   "name": "j_9125",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37166,
   "name": "j_912E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37174,
   "name": "j_9136",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37181,
   "name": "b_913D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37196,
   "name": "r_914C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37197,
   "name": "flame_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37198,
   "name": "monster_eat",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37200,
   "name": "b_9150",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37231,
   "name": "b_916F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37236,
   "name": "b_9174",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37263,
   "name": "b_918F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37276,
   "name": "b_919C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37285,
   "name": "b_91A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37294,
   "name": "b_91AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37303,
   "name": "b_91B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37316,
   "name": "pickup_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37335,
   "name": "r_91D7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37336,
   "name": "b_91D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37339,
   "name": "b_91DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37364,
   "name": "b_91F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37408,
   "name": "b_9220",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37434,
   "name": "b_923A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37473,
   "name": "b_9261",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37496,
   "name": "j_9278",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37508,
   "name": "bar_add",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37529,
   "name": "r_9299",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37530,
   "name": "j_929A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37544,
   "name": "b_92A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37561,
   "name": "j_92B9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37590,
   "name": "power_spend",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37629,
   "name": "b_92FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37649,
   "name": "j_9311",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37659,
   "name": "b_931B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37662,
   "name": "monster_hurt",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37698,
   "name": "bar_place",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37703,
   "name": "bar_empty",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 37722,
   "name": "b_935A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37760,
   "name": "j_9380",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37773,
   "name": "bar_take",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37794,
   "name": "b_93A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37802,
   "name": "b_93AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37806,
   "name": "scores_add",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37825,
   "name": "b_93C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37841,
   "name": "score_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37843,
   "name": "b_93D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37855,
   "name": "b_93DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37862,
   "name": "r_93E6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37863,
   "name": "b_93E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37866,
   "name": "b_93EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37869,
   "name": "b_93ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37872,
   "name": "building_stage",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37892,
   "name": "b_9404",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37897,
   "name": "j_9409",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37900,
   "name": "b_940C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37903,
   "name": "b_940F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37944,
   "name": "b_9438",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37948,
   "name": "b_943C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37963,
   "name": "b_944B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37974,
   "name": "b_9456",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37978,
   "name": "b_945A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37986,
   "name": "j_9462",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38013,
   "name": "b_947D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38028,
   "name": "b_948C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38044,
   "name": "b_949C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38047,
   "name": "b_949F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38050,
   "name": "a_94A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38054,
   "name": "a_94A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38057,
   "name": "b_94A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38071,
   "name": "b_94B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38095,
   "name": "b_94CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38101,
   "name": "b_94D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38124,
   "name": "b_94EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38138,
   "name": "j_94FA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38143,
   "name": "building_burn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38158,
   "name": "b_950E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38194,
   "name": "b_9532",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38197,
   "name": "b_9535",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38212,
   "name": "b_9544",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38223,
   "name": "b_954F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38237,
   "name": "b_955D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38247,
   "name": "b_9567",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38281,
   "name": "b_9589",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38292,
   "name": "r_9594",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38293,
   "name": "roof_draw_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38305,
   "name": "b_95A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38316,
   "name": "b_95AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38325,
   "name": "b_95B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38358,
   "name": "b_95D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38361,
   "name": "building_fall",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38380,
   "name": "b_95EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38394,
   "name": "b_95FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38398,
   "name": "a_95FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38403,
   "name": "b_9603",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38410,
   "name": "b_960A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38422,
   "name": "b_9616",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38433,
   "name": "b_9621",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38459,
   "name": "b_963B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38462,
   "name": "b_963E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38507,
   "name": "b_966B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38514,
   "name": "b_9672",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38521,
   "name": "b_9679",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38534,
   "name": "b_9686",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38535,
   "name": "egg_out",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 38547,
   "name": "j_9693",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38562,
   "name": "b_96A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38590,
   "name": "a_96BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38616,
   "name": "j_96D8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38631,
   "name": "b_96E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38636,
   "name": "a_96EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38680,
   "name": "j_9718",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38688,
   "name": "b_9720",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38691,
   "name": "j_9723",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38696,
   "name": "b_9728",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38704,
   "name": "building_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38718,
   "name": "b_973E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38729,
   "name": "b_9749",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38744,
   "name": "b_9758",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38770,
   "name": "monster_frames",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38797,
   "name": "b_978D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38808,
   "name": "b_9798",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38811,
   "name": "b_979B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38813,
   "name": "b_979D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38840,
   "name": "b_97B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38849,
   "name": "b_97C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38876,
   "name": "b_97DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38887,
   "name": "b_97E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38890,
   "name": "b_97EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38892,
   "name": "b_97EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38919,
   "name": "b_9807",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38928,
   "name": "r_9810",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38929,
   "name": "monster_mask",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38955,
   "name": "j_982B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38957,
   "name": "b_982D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38958,
   "name": "a_982E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38968,
   "name": "b_9838",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38989,
   "name": "j_984D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39011,
   "name": "b_9863",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39028,
   "name": "b_9874",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39030,
   "name": "b_9876",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39043,
   "name": "b_9883",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39058,
   "name": "b_9892",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39059,
   "name": "b_9893",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39073,
   "name": "r_98A1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39074,
   "name": "j_98A2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39075,
   "name": "a_98A3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39086,
   "name": "b_98AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39123,
   "name": "b_98D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39130,
   "name": "b_98DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39133,
   "name": "j_98DD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39139,
   "name": "b_98E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39143,
   "name": "a_98E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39162,
   "name": "b_98FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39172,
   "name": "b_9904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39190,
   "name": "b_9916",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39192,
   "name": "b_9918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39205,
   "name": "monster_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39206,
   "name": "a_9926",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39254,
   "name": "b_9956",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39279,
   "name": "b_996F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39286,
   "name": "a_9976",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39302,
   "name": "b_9986",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39400,
   "name": "b_99E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39423,
   "name": "b_99FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39433,
   "name": "j_9A09",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39449,
   "name": "b_9A19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39477,
   "name": "b_9A35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39484,
   "name": "a_9A3C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39503,
   "name": "b_9A4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39601,
   "name": "b_9AB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39624,
   "name": "b_9AC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39634,
   "name": "j_9AD2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39653,
   "name": "b_9AE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39672,
   "name": "b_9AF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39687,
   "name": "b_9B07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39706,
   "name": "b_9B1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39744,
   "name": "a_9B40",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39754,
   "name": "a_9B4A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39758,
   "name": "r_9B4E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39759,
   "name": "band2_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39775,
   "name": "b_9B5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39787,
   "name": "b_9B6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39935,
   "name": "a_9BFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39936,
   "name": "arm_frames_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39945,
   "name": "arm_frames_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39954,
   "name": "random_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40210,
   "name": "f_9D12",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40350,
   "name": "f_9D9E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 40351,
   "name": "hidden_names",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40615,
   "name": "building_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40640,
   "name": "building_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40653,
   "name": "building_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40666,
   "name": "building_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40687,
   "name": "building_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40708,
   "name": "building_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40736,
   "name": "building_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40765,
   "name": "building_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40778,
   "name": "building_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40803,
   "name": "building_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40804,
   "name": "building_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40841,
   "name": "building_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40860,
   "name": "building_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40873,
   "name": "building_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40889,
   "name": "building_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40905,
   "name": "building_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40948,
   "name": "building_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "building_17_A000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40994,
   "name": "building_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41007,
   "name": "building_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41017,
   "name": "building_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41058,
   "name": "building_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41084,
   "name": "building_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41106,
   "name": "building_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41125,
   "name": "building_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41138,
   "name": "building_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41155,
   "name": "building_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41198,
   "name": "building_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41235,
   "name": "building_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41261,
   "name": "building_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41271,
   "name": "building_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41281,
   "name": "building_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41318,
   "name": "building_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41359,
   "name": "building_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41400,
   "name": "building_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41422,
   "name": "building_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41443,
   "name": "building_36",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41464,
   "name": "building_37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41481,
   "name": "building_pics_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41519,
   "name": "building_pics_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41557,
   "name": "building_widths",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41595,
   "name": "building_heights",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41633,
   "name": "f_A2A1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 42039,
   "name": "others_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42045,
   "name": "others_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42051,
   "name": "b_A443",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42054,
   "name": "hornets",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42066,
   "name": "a_A452",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42070,
   "name": "a_A456",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42078,
   "name": "b_A45E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42083,
   "name": "j_A463",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42115,
   "name": "b_A483",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42131,
   "name": "j_A493",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42140,
   "name": "b_A49C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42152,
   "name": "b_A4A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42165,
   "name": "b_A4B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42188,
   "name": "b_A4CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42207,
   "name": "b_A4DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42216,
   "name": "b_A4E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42217,
   "name": "a_A4E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42239,
   "name": "b_A4FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42242,
   "name": "b_A502",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42244,
   "name": "j_A504",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42281,
   "name": "b_A529",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42287,
   "name": "b_A52F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42330,
   "name": "b_A55A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42344,
   "name": "j_A568",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42349,
   "name": "b_A56D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42352,
   "name": "j_A570",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42358,
   "name": "r_A576",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42359,
   "name": "j_A577",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42439,
   "name": "b_A5C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42442,
   "name": "b_A5CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42445,
   "name": "flyer",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42482,
   "name": "b_A5F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42502,
   "name": "b_A606",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42520,
   "name": "b_A618",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42536,
   "name": "b_A628",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42594,
   "name": "j_A662",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42612,
   "name": "b_A674",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42613,
   "name": "a_A675",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42638,
   "name": "b_A68E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42656,
   "name": "b_A6A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42686,
   "name": "b_A6BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42694,
   "name": "b_A6C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42726,
   "name": "b_A6E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42731,
   "name": "a_A6EB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42764,
   "name": "b_A70C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42811,
   "name": "b_A73B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42814,
   "name": "flyer_drop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42892,
   "name": "b_A78C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42906,
   "name": "b_A79A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42917,
   "name": "b_A7A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42923,
   "name": "r_A7AB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42924,
   "name": "b_A7AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42927,
   "name": "drop_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42941,
   "name": "a_A7BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42945,
   "name": "j_A7C1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42962,
   "name": "b_A7D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42964,
   "name": "b_A7D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43005,
   "name": "b_A7FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43022,
   "name": "drop_draw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43061,
   "name": "b_A835",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43063,
   "name": "b_A837",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43103,
   "name": "b_A85F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43124,
   "name": "j_A874",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43130,
   "name": "flyer_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43148,
   "name": "a_A88C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43164,
   "name": "b_A89C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43171,
   "name": "flyer_turn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43172,
   "name": "drop_falling",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43173,
   "name": "drop_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43174,
   "name": "drop_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43175,
   "name": "drop_addr_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43176,
   "name": "drop_addr_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43177,
   "name": "people",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43178,
   "name": "a_A8AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43188,
   "name": "b_A8B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43195,
   "name": "j_A8BB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43203,
   "name": "b_A8C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43214,
   "name": "b_A8CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43225,
   "name": "b_A8D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43267,
   "name": "b_A903",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43287,
   "name": "b_A917",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43294,
   "name": "random_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43331,
   "name": "b_A943",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43351,
   "name": "b_A957",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43364,
   "name": "b_A964",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43379,
   "name": "b_A973",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43392,
   "name": "b_A980",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43405,
   "name": "b_A98D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43416,
   "name": "b_A998",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43426,
   "name": "j_A9A2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43427,
   "name": "floor_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43434,
   "name": "j_A9AA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43440,
   "name": "r_A9B0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43441,
   "name": "b_A9B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43444,
   "name": "cannon",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43469,
   "name": "b_A9CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43471,
   "name": "j_A9CF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43480,
   "name": "b_A9D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43497,
   "name": "b_A9E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43516,
   "name": "b_A9FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43535,
   "name": "b_AA0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43547,
   "name": "a_AA1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43553,
   "name": "b_AA21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43569,
   "name": "b_AA31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43577,
   "name": "b_AA39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43592,
   "name": "b_AA48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43595,
   "name": "b_AA4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43648,
   "name": "b_AA80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43668,
   "name": "j_AA94",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43676,
   "name": "b_AA9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43680,
   "name": "a_AAA0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43706,
   "name": "b_AABA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43709,
   "name": "b_AABD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43717,
   "name": "j_AAC5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43727,
   "name": "b_AACF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43738,
   "name": "b_AADA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43749,
   "name": "shell_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43751,
   "name": "b_AAE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43794,
   "name": "b_AB12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43815,
   "name": "b_AB27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43821,
   "name": "b_AB2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43861,
   "name": "b_AB55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43881,
   "name": "j_AB69",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43897,
   "name": "shell_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43908,
   "name": "b_AB84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43919,
   "name": "b_AB8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43926,
   "name": "cannon_frames_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43933,
   "name": "cannon_frames_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43940,
   "name": "shell_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43941,
   "name": "shell_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43942,
   "name": "shell_way",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43943,
   "name": "drop_mask",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43951,
   "name": "drop_pattern",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43959,
   "name": "cave_fight",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43969,
   "name": "b_ABC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44001,
   "name": "a_ABE1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44033,
   "name": "r_AC01",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44034,
   "name": "cave_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44042,
   "name": "b_AC0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44175,
   "name": "b_AC8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44178,
   "name": "b_AC92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44181,
   "name": "b_AC95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44184,
   "name": "b_AC98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44187,
   "name": "b_AC9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44190,
   "name": "b_AC9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44193,
   "name": "cave_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44195,
   "name": "b_ACA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44231,
   "name": "j_ACC7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44259,
   "name": "j_ACE3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44273,
   "name": "b_ACF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44294,
   "name": "b_AD06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44298,
   "name": "b_AD0A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44330,
   "name": "b_AD2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44359,
   "name": "b_AD47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44374,
   "name": "b_AD56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44377,
   "name": "j_AD59",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44385,
   "name": "j_AD61",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44402,
   "name": "j_AD72",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44436,
   "name": "b_AD94",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44447,
   "name": "b_AD9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44450,
   "name": "j_ADA2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44459,
   "name": "j_ADAB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44465,
   "name": "j_ADB1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44476,
   "name": "j_ADBC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44507,
   "name": "b_ADDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44513,
   "name": "b_ADE1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44519,
   "name": "b_ADE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44525,
   "name": "j_ADED",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44528,
   "name": "b_ADF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44531,
   "name": "s_ADF3",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44544,
   "name": "r_AE00",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44545,
   "name": "cave_computer",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44583,
   "name": "j_AE27",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44591,
   "name": "b_AE2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44596,
   "name": "b_AE34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44617,
   "name": "b_AE49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44622,
   "name": "cave_draw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44674,
   "name": "cave_win",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44680,
   "name": "a_AE88",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44698,
   "name": "j_AE9A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44718,
   "name": "b_AEAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44723,
   "name": "j_AEB3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44732,
   "name": "b_AEBC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44742,
   "name": "b_AEC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44747,
   "name": "j_AECB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44751,
   "name": "a_AECF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44764,
   "name": "b_AEDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44770,
   "name": "b_AEE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44774,
   "name": "a_AEE6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44780,
   "name": "s_AEEC",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44798,
   "name": "s_AEFE",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 44813,
   "name": "j_AF0D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44818,
   "name": "b_AF12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44829,
   "name": "cave_hits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44830,
   "name": "a_AF1E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44831,
   "name": "cave_saved",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 44832,
   "name": "a_AF20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44833,
   "name": "cave_moves",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 44835,
   "name": "title",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44856,
   "name": "title_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44889,
   "name": "b_AF59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44922,
   "name": "b_AF7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44944,
   "name": "b_AF90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45013,
   "name": "b_AFD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45066,
   "name": "b_B00A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45142,
   "name": "b_B056",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45212,
   "name": "title_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45227,
   "name": "b_B0AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45242,
   "name": "b_B0BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45298,
   "name": "b_B0F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45301,
   "name": "b_B0F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45305,
   "name": "a_B0F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45315,
   "name": "b_B103",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45366,
   "name": "a_B136",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45376,
   "name": "a_B140",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45383,
   "name": "b_B147",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45389,
   "name": "b_B14D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45406,
   "name": "b_B15E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45418,
   "name": "b_B16A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45428,
   "name": "b_B174",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45447,
   "name": "b_B187",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45467,
   "name": "b_B19B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45479,
   "name": "title_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45489,
   "name": "b_B1B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45503,
   "name": "b_B1BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45508,
   "name": "b_B1C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45509,
   "name": "a_B1C5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45510,
   "name": "a_B1C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45512,
   "name": "a_B1C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45513,
   "name": "a_B1C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45518,
   "name": "irq_title_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45525,
   "name": "b_B1D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45536,
   "name": "b_B1E0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45604,
   "name": "irq_title_monsters",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45606,
   "name": "b_B226",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45616,
   "name": "a_B230",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45626,
   "name": "a_B23A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 45676,
   "name": "title_credits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45689,
   "name": "f_B279",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45702,
   "name": "f_B286",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45715,
   "name": "f_B293",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45728,
   "name": "f_B2A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45741,
   "name": "f_B2AD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45754,
   "name": "f_B2BA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45767,
   "name": "f_B2C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45780,
   "name": "title_lines",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45800,
   "name": "f_B2E8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45820,
   "name": "f_B2FC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45840,
   "name": "f_B310",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45860,
   "name": "title_lizard",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45867,
   "name": "f_B32B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45874,
   "name": "lizard_best",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45881,
   "name": "f_B339",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45888,
   "name": "ogre_best",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45895,
   "name": "f_B347",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45901,
   "name": "f_B34D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45907,
   "name": "logo_positions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45924,
   "name": "title_monster_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45941,
   "name": "logo_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45949,
   "name": "hidden_message",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46031,
   "name": "best_score",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46070,
   "name": "b_B3F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46102,
   "name": "j_B416",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46104,
   "name": "b_B418",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46105,
   "name": "a_B419",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46106,
   "name": "a_B41A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46111,
   "name": "a_B41F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46112,
   "name": "a_B420",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46119,
   "name": "b_B427",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46124,
   "name": "r_B42C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46125,
   "name": "b_B42D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46127,
   "name": "b_B42F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46128,
   "name": "a_B430",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46129,
   "name": "a_B431",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46134,
   "name": "a_B436",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46135,
   "name": "a_B437",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46140,
   "name": "colour_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46154,
   "name": "draw_hole",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46179,
   "name": "animate_chars",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46181,
   "name": "a_B465",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46206,
   "name": "b_B47E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46232,
   "name": "b_B498",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46244,
   "name": "a_B4A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46260,
   "name": "b_B4B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46271,
   "name": "anim_frames_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46343,
   "name": "anim_frames_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46407,
   "name": "anim_frames_c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46551,
   "name": "city_bg0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46561,
   "name": "city_bg1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46571,
   "name": "city_bg2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46581,
   "name": "city_building_cols",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46630,
   "name": "city_building_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46679,
   "name": "city_building_types",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46728,
   "name": "city_chars_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46737,
   "name": "city_chars_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46746,
   "name": "city_lizard_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46757,
   "name": "city_lizard_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46768,
   "name": "city_ogre_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46779,
   "name": "city_ogre_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46790,
   "name": "city_floor_char",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46799,
   "name": "person_char",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46807,
   "name": "city_border",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46825,
   "name": "irq_install",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46868,
   "name": "irq_chain",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46888,
   "name": "wait_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46893,
   "name": "b_B72D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46899,
   "name": "wait_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46902,
   "name": "b_B736",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46906,
   "name": "a_B73A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46910,
   "name": "abs_value",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46917,
   "name": "r_B745",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46918,
   "name": "screen_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46930,
   "name": "screen_on",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46942,
   "name": "random",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46979,
   "name": "b_B783",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46988,
   "name": "b_B78C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46996,
   "name": "random_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47021,
   "name": "random_range",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47022,
   "name": "random_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47023,
   "name": "random_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47024,
   "name": "random_register",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47025,
   "name": "a_B7B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47026,
   "name": "a_B7B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47027,
   "name": "a_B7B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48479,
   "name": "shared_chars_BD5F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48975,
   "name": "shared_chars_BF4F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "f_C000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49312,
   "name": "f_C0A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50176,
   "name": "chars_loaded_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50328,
   "name": "f_C498",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50352,
   "name": "f_C4B0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50360,
   "name": "f_C4B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50392,
   "name": "f_C4D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50416,
   "name": "f_C4F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50424,
   "name": "f_C4F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50432,
   "name": "chars_loaded_A0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50504,
   "name": "f_C548",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50552,
   "name": "f_C578",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50560,
   "name": "char_rubble",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50568,
   "name": "f_C588",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51072,
   "name": "chars_digits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51200,
   "name": "f_C800",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51204,
   "name": "a_C804",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51228,
   "name": "a_C81C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51244,
   "name": "a_C82C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51268,
   "name": "a_C844",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51456,
   "name": "f_C900",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51480,
   "name": "f_C918",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51574,
   "name": "f_C976",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51614,
   "name": "f_C99E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51642,
   "name": "f_C9BA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51672,
   "name": "f_C9D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51682,
   "name": "f_C9E2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51694,
   "name": "f_C9EE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51699,
   "name": "a_C9F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51700,
   "name": "a_C9F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51712,
   "name": "f_CA00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51720,
   "name": "f_CA08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51722,
   "name": "f_CA0A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51734,
   "name": "f_CA16",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51739,
   "name": "a_CA1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51740,
   "name": "a_CA1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51752,
   "name": "f_CA28",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51774,
   "name": "f_CA3E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51814,
   "name": "f_CA66",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51854,
   "name": "f_CA8E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51894,
   "name": "f_CAB6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51899,
   "name": "a_CABB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51900,
   "name": "a_CABC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51939,
   "name": "a_CAE3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51940,
   "name": "a_CAE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51960,
   "name": "f_CAF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51968,
   "name": "f_CB00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51970,
   "name": "f_CB02",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52010,
   "name": "f_CB2A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52050,
   "name": "f_CB52",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52130,
   "name": "f_CBA2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52216,
   "name": "f_CBF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52217,
   "name": "a_CBF9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52218,
   "name": "a_CBFA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52219,
   "name": "a_CBFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52220,
   "name": "a_CBFC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52221,
   "name": "a_CBFD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52222,
   "name": "a_CBFE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52223,
   "name": "a_CBFF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52352,
   "name": "f_CC80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52416,
   "name": "sprite_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52480,
   "name": "f_CD00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 52544,
   "name": "sprites_CD40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52672,
   "name": "sprites_lizard_upper",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53248,
   "name": "sprites_under_io",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54272,
   "name": "sprites_D400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "colour_D800",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55300,
   "name": "colour_D804",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55324,
   "name": "colour_D81C",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55340,
   "name": "colour_D82C",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55364,
   "name": "colour_D844",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55552,
   "name": "colour_D900",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55576,
   "name": "colour_D918",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55692,
   "name": "colour_D98C",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55694,
   "name": "colour_D98E",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55696,
   "name": "colour_D990",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55738,
   "name": "colour_D9BA",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55768,
   "name": "colour_D9D8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55778,
   "name": "colour_D9E2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55795,
   "name": "colour_D9F3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 55796,
   "name": "colour_D9F4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 55808,
   "name": "colour_DA00",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55812,
   "name": "colour_DA04",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55814,
   "name": "colour_DA06",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55816,
   "name": "colour_DA08",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55818,
   "name": "colour_DA0A",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55835,
   "name": "colour_DA1B",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 55836,
   "name": "colour_DA1C",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 55848,
   "name": "colour_DA28",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55892,
   "name": "colour_DA54",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55894,
   "name": "colour_DA56",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55896,
   "name": "colour_DA58",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55972,
   "name": "colour_DAA4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55974,
   "name": "colour_DAA6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55976,
   "name": "colour_DAA8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55995,
   "name": "colour_DABB",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 55996,
   "name": "colour_DABC",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 56035,
   "name": "colour_DAE3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 56036,
   "name": "colour_DAE4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 56056,
   "name": "colour_DAF8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56064,
   "name": "colour_DB00",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56066,
   "name": "colour_DB02",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56106,
   "name": "colour_DB2A",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56146,
   "name": "colour_DB52",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56226,
   "name": "colour_DBA2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56320,
   "name": "sprites_DC00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "sprites_under_kernal",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58368,
   "name": "sprites_E400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59392,
   "name": "sprites_E800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60416,
   "name": "sprites_EC00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61440,
   "name": "sprites_F000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62464,
   "name": "sprites_F400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63488,
   "name": "sprites_F800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64512,
   "name": "sprites_FC00",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 0,
   "type": "line",
   "text": "the processor port's direction register, which the game never writes"
  },
  {
   "address": 1,
   "type": "line",
   "text": "the processor port, written once, with $36 at the entry ($800B): RAM at $A000-$BFFF, the I/O and the KERNAL in"
  },
  {
   "address": 167,
   "type": "line",
   "text": "the low byte of the address of the pattern the music driver is reading, with $A8"
  },
  {
   "address": 168,
   "type": "line",
   "text": "the high byte of the music driver's pattern address"
  },
  {
   "address": 169,
   "type": "line",
   "text": "the low byte of the address of the order list $6E81 reads, with $AA"
  },
  {
   "address": 170,
   "type": "line",
   "text": "the high byte of the order list's address"
  },
  {
   "address": 251,
   "type": "line",
   "text": "a pointer most routines use for a screen or data address, with $FC; the play interrupt saves and restores $FB-$FE"
  },
  {
   "address": 252,
   "type": "line",
   "text": "the high byte of the pointer at $FB"
  },
  {
   "address": 253,
   "type": "line",
   "text": "a second pointer, often the colour RAM address beside $FB's ($B43C), with $FE"
  },
  {
   "address": 254,
   "type": "line",
   "text": "the high byte of the pointer at $FD"
  },
  {
   "address": 788,
   "type": "line",
   "text": "the KERNAL's interrupt vector, which $B6E9 and $B714 point at each raster handler in turn"
  },
  {
   "address": 789,
   "type": "line",
   "text": "the high byte of the interrupt vector"
  },
  {
   "address": 3000,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 0 to 15, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 3768,
   "type": "line",
   "text": "frame 12, the lizard's first frame on the title, which $AF38 copies to $CC80"
  },
  {
   "address": 4024,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 16 to 31, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 4096,
   "type": "line",
   "text": "the monsters' lower-body frames from $1000 on, frames 16 to 31 with lower_frames_16; the memory map's edge at $1000 cuts the block here"
  },
  {
   "address": 5048,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 32 to 47, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 6072,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 48 to 63, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 6136,
   "type": "line",
   "text": "frame 49, the ogre's first frame on the title, which $AF38 copies to $CD00"
  },
  {
   "address": 6968,
   "type": "line",
   "text": "frame 62, where the title's frame copy at $B1C4 is assembled to read before $B1A7 rewrites its operand"
  },
  {
   "address": 7096,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 64 to 79, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 8120,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 80 to 95, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 9144,
   "type": "line",
   "text": "the monsters' lower-body sprite frames 96 to 97, 64 bytes each (multicolour, 21 rows of three bytes and a spare byte); $9772 copies one a pass by the frame tables at $8133 and $81BB, masks it and puts it in the lizard's ($CC80) or the ogre's ($CD00) sprite"
  },
  {
   "address": 9280,
   "type": "line",
   "text": "the title's font, 40 characters of 8 bytes from $2441: $AF38 copies $2441-$24E0 to $C001 and $24E1-$2580 to $C0A1, so characters 1 to $1A are the letters and $1B to $24 the digits, character 0 is left blank ($AF8B) and this first byte is not read"
  },
  {
   "address": 9440,
   "type": "line",
   "text": "the font's twentieth character's last byte; $AF80 reads the second half of the font from the byte after it"
  },
  {
   "address": 11896,
   "type": "line",
   "text": "city type 1's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 12024,
   "type": "line",
   "text": "city type 1's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 13048,
   "type": "line",
   "text": "city type 1's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). Its last record fills the cells below the screen's last row, and the unpacker stops at $CC00 inside this block. 573 bytes, to $3534"
  },
  {
   "address": 13621,
   "type": "line",
   "text": "city type 2's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 13749,
   "type": "line",
   "text": "city type 2's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 14773,
   "type": "line",
   "text": "city type 2's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). The unpacker stops only when it reaches $CC00, so it reads on 29 bytes into the next block, which land below the screen's last row. 600 bytes, to $3C0C"
  },
  {
   "address": 15373,
   "type": "line",
   "text": "city type 3's data and of type 9, the cave ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 15501,
   "type": "line",
   "text": "city type 3's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 15999,
   "type": "line",
   "text": "a byte of city type 3's characters (character $3E, row 2) that $8065 writes 0, 1 and 2 into on every pass (at $806C, $807C and $8084) and nothing reads, so when city type 3 is built that row of its character $3E holds whichever value the last pass left"
  },
  {
   "address": 16384,
   "type": "line",
   "text": "city type 3's characters from $4000 on, with city3_chars; the memory map's edge at $4000 cuts the block here"
  },
  {
   "address": 16525,
   "type": "line",
   "text": "city type 3's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). The unpacker stops only when it reaches $CC00, so it reads on 2 bytes into the next block, which land below the screen's last row. 548 bytes, to $42B0"
  },
  {
   "address": 17073,
   "type": "line",
   "text": "city type 4's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 17201,
   "type": "line",
   "text": "city type 4's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 18225,
   "type": "line",
   "text": "city type 4's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). The unpacker stops only when it reaches $CC00, so it reads on 124 bytes into the next block, which land below the screen's last row. 781 bytes, to $4A3D"
  },
  {
   "address": 19006,
   "type": "line",
   "text": "city type 5's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 19134,
   "type": "line",
   "text": "city type 5's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 20158,
   "type": "line",
   "text": "city type 5's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). The unpacker stops only when it reaches $CC00, so it reads on 62 bytes into the next block, which land below the screen's last row. 403 bytes, to $5050"
  },
  {
   "address": 20561,
   "type": "line",
   "text": "city type 6's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 20689,
   "type": "line",
   "text": "city type 6's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 21713,
   "type": "line",
   "text": "city type 6's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). The unpacker stops only when it reaches $CC00, so it reads on 27 bytes into the next block, which land below the screen's last row. 419 bytes, to $5673"
  },
  {
   "address": 22132,
   "type": "line",
   "text": "city type 7's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 22260,
   "type": "line",
   "text": "city type 7's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 23284,
   "type": "line",
   "text": "city type 7's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). Its last record fills the cells below the screen's last row, and the unpacker stops at $CC00 inside this block. 487 bytes, to $5CDA"
  },
  {
   "address": 23771,
   "type": "line",
   "text": "city type 8's data ($82CF/$82D9 name it), first its 128 character colours, which $853E copies to $A2A1 (the colour of each of characters 0 to $7F)"
  },
  {
   "address": 23899,
   "type": "line",
   "text": "city type 8's characters 0 to $7F, 1 KB, which $853E copies to $C000"
  },
  {
   "address": 24923,
   "type": "line",
   "text": "city type 8's screen, packed, which $853E unpacks into rows 1 to 24 at $C828 (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one; each record moves on one byte less than it writes). The unpacker stops only when it reaches $CC00, so it reads on 63 bytes into the next block, which land below the screen's last row. 444 bytes, to $6316"
  },
  {
   "address": 25367,
   "type": "line",
   "text": "characters shared by the cities: city type 1 copies the 62 from here ($B691/$B688), 496 bytes, to $C590, characters $B2 to $EF; the windows of the cities overlap, and those of types 5 and 6 run on past $68F6 into the music driver's code"
  },
  {
   "address": 25727,
   "type": "line",
   "text": "characters shared by the cities: city type 2 copies the 62 from here ($B691/$B688), 496 bytes, to $C590, characters $B2 to $EF; the windows of the cities overlap, and those of types 5 and 6 run on past $68F6 into the music driver's code"
  },
  {
   "address": 25999,
   "type": "line",
   "text": "characters shared by the cities: city type 3 copies the 62 from here ($B691/$B688), 496 bytes, to $C590, characters $B2 to $EF; the windows of the cities overlap, and those of types 5 and 6 run on past $68F6 into the music driver's code"
  },
  {
   "address": 26271,
   "type": "line",
   "text": "characters shared by the cities: city type 4 copies the 62 from here ($B691/$B688), 496 bytes, to $C590, characters $B2 to $EF; the windows of the cities overlap, and those of types 5 and 6 run on past $68F6 into the music driver's code"
  },
  {
   "address": 26415,
   "type": "line",
   "text": "characters shared by the cities: city type 5 copies the 62 from here ($B691/$B688), 496 bytes, to $C590, characters $B2 to $EF; the windows of the cities overlap, and those of types 5 and 6 run on past $68F6 into the music driver's code"
  },
  {
   "address": 26591,
   "type": "line",
   "text": "characters shared by the cities: city type 6 copies the 62 from here ($B691/$B688), 496 bytes, to $C590, characters $B2 to $EF; the windows of the cities overlap, and those of types 5 and 6 run on past $68F6 into the music driver's code"
  },
  {
   "address": 26871,
   "type": "line",
   "text": "the tune command, written by the game and read by $68F8: 0 silences the SID and stops the tune, 1 or 2 starts that tune, and anything from 3 up lets the tune playing go on. $68F8 writes $FF back before it returns (at $6E32), so a command acts once. The game writes it at $ABFB, $AC63, $B074 and $B1A0; the driver itself writes 0 at $69D9 when a pattern reaches its end-of-tune byte $FE."
  },
  {
   "address": 26872,
   "type": "line",
   "text": "the music driver, called from the play interrupt (at $8884) and from the title's (at $B20C). On command 0 it silences the SID ($6E36) and clears $74B2. On 1 or 2 it copies that tune's three order-list pointers from $7015 (six bytes a tune) to $7502 and $7505, clears each voice's note length, slide and order-list place, fetches each voice's first pattern ($6E81), resets the SID ($7001) and sets $74B2. Otherwise, while $74B2 is set, it counts each voice's three effect timers at $750C on and steps the three voices from the third down to the first ($695A), then counts the speed down ($74B4) and reloads it from $74B3 when it passes 0. Every way out writes $FF to the command."
  },
  {
   "address": 26898,
   "type": "line",
   "text": "the operand of this add, which $690D writes with twice the tune number less one, so the add makes it six times: the offset of the tune's entry in $7015"
  },
  {
   "address": 26970,
   "type": "line",
   "text": "one voice's step of the driver, with X the voice (0 to 2) and $750F its SID register offset from $749D. While the speed count $74B4 is not 0 it only carries on a slide ($74E5 counts down while the note number $74AE steps down). When the count is 0 it counts the note's length $74CD down, and while the note lasts it applies the slide set by command $7E or $7F: $74E2 holds an opcode ($FE, inc, or $DE, dec), which $6972 writes over the instruction at $6975, so the note steps up or down a semitone each time. When the length runs out it reads the pattern at $A7/$A8 from the place $7508: bytes $00-$5F are notes, $60-$7F commands ($7F slide down, $7E slide up, $7D and $7C an arpeggio with a mask byte, $7B a slide to a note with a speed byte, $7A a vibrato delay byte), $80-$BF set the length (low six bits, $74CA), $C0-$DF the instrument (low five bits, times 8, $7509), $F0-$FB the speed (low four bits, $74B3), $FC the volume to 15, $FD a step of a fade (the volume from $7501, which it counts down), $FE ends the tune and $FF the pattern, which fetches the next from the order list ($6E81). A note is transposed by $74D6, gated with its instrument's waveform, envelope and pulse ($6AEA-$6B42), and then the voice's arpeggio, vibrato, slide to a note, drum and pulse sweep are applied from $6B6E on. Ends at $6E1D, where it goes on to the next voice down."
  },
  {
   "address": 26997,
   "type": "line",
   "text": "the opcode here is rewritten by $6972 from $74E2: $FE (inc $74AE,x) makes a slide step the note up a semitone, $DE (dec $74AE,x) down"
  },
  {
   "address": 27379,
   "type": "line",
   "text": "the operand of this load is the instrument's first pulse width ($7024), written at $6AB4, so a new note starts its pulse there"
  },
  {
   "address": 27581,
   "type": "line",
   "text": "the low byte of the drum's waveform table, written at $6B9E from the drum table at $7431"
  },
  {
   "address": 27582,
   "type": "line",
   "text": "the high byte of the drum's waveform table, written at $6BA4"
  },
  {
   "address": 27592,
   "type": "line",
   "text": "the low byte of the drum's frequency table, written at $6BAA"
  },
  {
   "address": 27593,
   "type": "line",
   "text": "the high byte of the drum's frequency table, written at $6BB0. The drum reads one byte of each table for each of its first 15 steps ($750C counts them) and plays the frequency as a high byte with $0D added"
  },
  {
   "address": 28002,
   "type": "line",
   "text": "the operand of this add is the low four bits of the slide speed, written at $6D4D"
  },
  {
   "address": 28023,
   "type": "line",
   "text": "rewritten by $6EBC: $18 (clc) when the slide goes up, $38 (sec) when it goes down"
  },
  {
   "address": 28024,
   "type": "line",
   "text": "rewritten by $6EBC with the opcode $6D (adc) or $ED (sbc), so this line adds or subtracts the slide's step from the low byte of the frequency"
  },
  {
   "address": 28036,
   "type": "line",
   "text": "rewritten by $6EBC with the same opcode as $6D78, for the high byte of the frequency"
  },
  {
   "address": 28208,
   "type": "line",
   "text": "the driver's common exit: writes $FF to the tune command $68F7, so a command is acted on once."
  },
  {
   "address": 28214,
   "type": "line",
   "text": "writes 0 to SID registers $D400-$D418, every voice's frequency, pulse, waveform and envelope, the filter and the volume."
  },
  {
   "address": 28225,
   "type": "line",
   "text": "takes the note number $74AE,x and writes its frequency from the table at $6F43 (high bytes) and $6FA2 (low bytes) to the voice's SID registers, keeping a copy in $74B8,x and $74BB,x for the vibrato and the slides."
  },
  {
   "address": 28252,
   "type": "line",
   "text": "builds a voice's arpeggio list from the mask in $7500: for each of its eight bits that is set, from bit 0 up, the semitone step from $74A3 (3, 4, 5, 7, 8, 9, 10, 12) is added to the list at $751C, starting one place after the voice's base from $74A0, and the list is ended with $FF. Clears the voice's slide to a note ($74D9)."
  },
  {
   "address": 28289,
   "type": "line",
   "text": "fetches a voice's next pattern from its order list (pointer $7502,x/$7505,x, place $74B5,x). A byte below $80 is a pattern number, looked up in the pattern table at $7121 and left in $A7/$A8 and $74C4,x/$74C7,x; $FF sends the list back to its start; any other byte from $80 up is a transpose, $40 added to it into $74D6,x (so $C0 is none and $BD is three semitones down), and the next byte is read."
  },
  {
   "address": 28348,
   "type": "line",
   "text": "sets up a slide from the note in Y to the target note $6EBD (the command $7B wrote it there): rewrites the add at $6D77 to add ($18 clc, $6D adc) or subtract ($38 sec, $ED sbc), takes the difference between the two notes' frequencies from the tables at $6F43 and $6FA2, and divides it by one more than the speed $74B3 ($6F06 on, a 16-bit division), so the slide arrives in that many steps. The step is left in $74DF/$74E0."
  },
  {
   "address": 28349,
   "type": "line",
   "text": "the slide's target note, written into this compare's operand at $6D44"
  },
  {
   "address": 28429,
   "type": "line",
   "text": "the operand of this add is the low four bits of the slide speed, written at $6D50"
  },
  {
   "address": 28483,
   "type": "line",
   "text": "the high bytes of the notes' SID frequencies, one per note number, read with the low bytes at $6FA2"
  },
  {
   "address": 28484,
   "type": "line",
   "text": "the note frequency table's high bytes read one note on, by the vibrato at $6C6D to find a semitone's difference"
  },
  {
   "address": 28578,
   "type": "line",
   "text": "the low bytes of the notes' SID frequencies, beside the high bytes at $6F43"
  },
  {
   "address": 28579,
   "type": "line",
   "text": "the note frequency table's low bytes read one note on, by the vibrato at $6C63"
  },
  {
   "address": 28673,
   "type": "line",
   "text": "clears the SID ($6E36), sets the volume to 15 with the filter on the low pass ($D418 = $5F), and clears the speed count $74B4, the playing flag $74B2 and the filter resonance $D417. Called when a tune starts ($693C)."
  },
  {
   "address": 28693,
   "type": "line",
   "text": "the two tunes, six bytes each: the addresses of the three voices' order lists, low byte then high. Tune 1's are $715F, $7174 and $718E, tune 2's $71A0, $71AB and $71BA."
  },
  {
   "address": 28705,
   "type": "line",
   "text": "32 instruments of eight bytes, picked by a pattern's $C0-$DF byte: the waveform with its gate ($7021), attack and decay ($7022), sustain and release ($7023), the pulse width's first value ($7024), the drum and arpeggio byte ($7025: the low four bits name a drum at $7431, bit 4 plays it as notes), the pulse sweep's step ($7026), an arpeggio mask ($7027) and flags ($7028: bit 0 a drum, bit 1 a short slide up, bit 2 an eight-bit pulse sweep, bit 3 a drum played by $6C04, bit 7 the pulse width kept from note to note)"
  },
  {
   "address": 28706,
   "type": "line",
   "text": "an instrument's attack and decay byte, the second of its eight"
  },
  {
   "address": 28707,
   "type": "line",
   "text": "an instrument's sustain and release byte, the third; a sustain of 15 sets $7516"
  },
  {
   "address": 28708,
   "type": "line",
   "text": "an instrument's first pulse width, the fourth byte: high four bits the low byte, low four bits the high"
  },
  {
   "address": 28709,
   "type": "line",
   "text": "an instrument's fifth byte: the low four bits name a drum at $7431 (with flag bit 0 of the eighth byte), bit 4 plays the drum's frequencies as notes, and the whole byte is the vibrato byte $7519"
  },
  {
   "address": 28710,
   "type": "line",
   "text": "an instrument's sixth byte, the step its pulse width sweeps by, 0 for no sweep"
  },
  {
   "address": 28711,
   "type": "line",
   "text": "an instrument's seventh byte, an arpeggio mask the note takes when the pattern gives none"
  },
  {
   "address": 28712,
   "type": "line",
   "text": "an instrument's eighth byte, its flags: bit 0 a drum, bit 1 a short slide up at the note's start, bit 2 an eight-bit pulse sweep, bit 3 a drum played as a waveform (at $6C04), bit 7 the pulse width kept from note to note"
  },
  {
   "address": 28961,
   "type": "line",
   "text": "the patterns' addresses, low byte then high, by pattern number. The last three entries are $7431, the drum table's address."
  },
  {
   "address": 28962,
   "type": "line",
   "text": "the pattern table's high bytes, read one byte on from its low bytes at $7121"
  },
  {
   "address": 29023,
   "type": "line",
   "text": "tune 1's order list for the first voice, 21 bytes to its $FF: 17 patterns (1, 1, 2, 3, 6, 4, 8, 10, 13, 15, 19, 21, 15, 8, 10, 8, 10), with the transposes, in order, +0, -3, +0 semitones"
  },
  {
   "address": 29044,
   "type": "line",
   "text": "tune 1's order list for the second voice, 26 bytes to its $FF: 20 patterns (1, 1, 2, 3, 5, 7, 9, 11, 12, 14, 14, 18, 20, 20, 20, 9, 11, 12, 11, 12), with the transposes, in order, +0, +5, -2, -3, +0 semitones"
  },
  {
   "address": 29070,
   "type": "line",
   "text": "tune 1's order list for the third voice, 18 bytes to its $FF: 16 patterns (16, 16, 16, 16, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16), with the transposes, in order, +0 semitones"
  },
  {
   "address": 29088,
   "type": "line",
   "text": "tune 2's order list for the first voice, 11 bytes to its $FF: 9 patterns (23, 22, 22, 22, 22, 22, 22, 22, 22), with the transposes, in order, +0 semitones"
  },
  {
   "address": 29099,
   "type": "line",
   "text": "tune 2's order list for the second voice, 15 bytes to its $FF: 9 patterns (23, 24, 26, 24, 26, 27, 24, 26, 27), with the transposes, in order, +5, +12, +0, +12, +12 semitones"
  },
  {
   "address": 29114,
   "type": "line",
   "text": "tune 2's order list for the third voice, 12 bytes to its $FF: 9 patterns (23, 25, 25, 25, 25, 25, 25, 25, 25), with the transposes, in order, +12, +0 semitones"
  },
  {
   "address": 29126,
   "type": "line",
   "text": "pattern 0, 4 bytes, played by no order list"
  },
  {
   "address": 29130,
   "type": "line",
   "text": "pattern 1, 11 bytes, played by tune 1's voice 1; tune 1's voice 2"
  },
  {
   "address": 29141,
   "type": "line",
   "text": "pattern 2, 23 bytes, played by tune 1's voice 1; tune 1's voice 2"
  },
  {
   "address": 29164,
   "type": "line",
   "text": "pattern 3, 32 bytes, played by tune 1's voice 1; tune 1's voice 2"
  },
  {
   "address": 29196,
   "type": "line",
   "text": "pattern 4, 32 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29228,
   "type": "line",
   "text": "pattern 5, 4 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29232,
   "type": "line",
   "text": "pattern 6, 4 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29236,
   "type": "line",
   "text": "pattern 7, 9 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29245,
   "type": "line",
   "text": "pattern 8, 35 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29280,
   "type": "line",
   "text": "pattern 9, 12 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29292,
   "type": "line",
   "text": "pattern 10, 35 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29327,
   "type": "line",
   "text": "pattern 11, 21 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29348,
   "type": "line",
   "text": "pattern 12, 13 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29361,
   "type": "line",
   "text": "pattern 13, 28 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29389,
   "type": "line",
   "text": "pattern 14, 12 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29401,
   "type": "line",
   "text": "pattern 15, 12 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29413,
   "type": "line",
   "text": "pattern 16, 35 bytes, played by tune 1's voice 3"
  },
  {
   "address": 29448,
   "type": "line",
   "text": "pattern 17, 10 bytes, played by tune 1's voice 3"
  },
  {
   "address": 29458,
   "type": "line",
   "text": "pattern 18, 12 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29470,
   "type": "line",
   "text": "pattern 19, 21 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29491,
   "type": "line",
   "text": "pattern 20, 9 bytes, played by tune 1's voice 2"
  },
  {
   "address": 29500,
   "type": "line",
   "text": "pattern 21, 59 bytes, played by tune 1's voice 1"
  },
  {
   "address": 29559,
   "type": "line",
   "text": "pattern 22, 35 bytes, played by tune 2's voice 1"
  },
  {
   "address": 29594,
   "type": "line",
   "text": "pattern 23, 8 bytes, played by tune 2's voice 1; tune 2's voice 2; tune 2's voice 3"
  },
  {
   "address": 29602,
   "type": "line",
   "text": "pattern 24, 27 bytes, played by tune 2's voice 2"
  },
  {
   "address": 29629,
   "type": "line",
   "text": "pattern 25, 49 bytes, played by tune 2's voice 3"
  },
  {
   "address": 29678,
   "type": "line",
   "text": "pattern 26, 27 bytes, played by tune 2's voice 2"
  },
  {
   "address": 29705,
   "type": "line",
   "text": "pattern 27, 40 bytes, played by tune 2's voice 2"
  },
  {
   "address": 29745,
   "type": "line",
   "text": "three drums, four bytes each: the address of a table of 16 waveform bytes, then of 16 frequency bytes, which $6B90 writes into the code at $6BBD and $6BC8 so the drum plays one byte of each a step"
  },
  {
   "address": 29746,
   "type": "line",
   "text": "the high byte of a drum's waveform table address, the second byte of its entry, written into the code at $6BBE"
  },
  {
   "address": 29747,
   "type": "line",
   "text": "the low byte of a drum's frequency table, the third byte of its entry, written into the code at $6BC8"
  },
  {
   "address": 29748,
   "type": "line",
   "text": "the high byte of a drum's frequency table"
  },
  {
   "address": 29757,
   "type": "line",
   "text": "the first drum's 16 frequencies, one a step, each played as the SID's frequency high byte with $0D added (or, with the instrument's bit 4, as a note above the voice's note)"
  },
  {
   "address": 29773,
   "type": "line",
   "text": "the first drum's 16 waveform bytes, one a step, written to the voice's control register"
  },
  {
   "address": 29789,
   "type": "line",
   "text": "the second drum's 16 frequencies, one a step"
  },
  {
   "address": 29805,
   "type": "line",
   "text": "the second drum's 16 waveform bytes"
  },
  {
   "address": 29821,
   "type": "line",
   "text": "the third drum's 16 frequencies, one a step"
  },
  {
   "address": 29837,
   "type": "line",
   "text": "the third drum's 16 waveform bytes"
  },
  {
   "address": 29853,
   "type": "line",
   "text": "each voice's offset into the SID's registers: 0, 7 and 14"
  },
  {
   "address": 29856,
   "type": "line",
   "text": "where each voice's arpeggio list starts in $751C: 0, 10 and 20"
  },
  {
   "address": 29859,
   "type": "line",
   "text": "the semitone steps an arpeggio mask's eight bits pick, bit 0 first: 3, 4, 5, 7, 8, 9, 10 and 12"
  },
  {
   "address": 29867,
   "type": "line",
   "text": "for each voice, whether a new note restarts the waveform and envelope ($6B09: non-zero) or only changes the pitch. No instruction writes it, and all three bytes are 1, so every note restarts them"
  },
  {
   "address": 29870,
   "type": "line",
   "text": "each voice's note number, the index into the frequency tables at $6F43 and $6FA2"
  },
  {
   "address": 29873,
   "type": "line",
   "text": "the voice the driver is on, counted from 2 down to 0"
  },
  {
   "address": 29874,
   "type": "line",
   "text": "set while a tune plays; $68F8 does nothing else while it is 0"
  },
  {
   "address": 29875,
   "type": "line",
   "text": "the tune's speed, the number of frames from one step of the voices to the next less one, set by a pattern's $F0-$FB byte"
  },
  {
   "address": 29876,
   "type": "line",
   "text": "counts the frames to the voices' next step, down from $74B3"
  },
  {
   "address": 29877,
   "type": "line",
   "text": "each voice's place in its order list"
  },
  {
   "address": 29880,
   "type": "line",
   "text": "the low byte of the frequency each voice is playing, kept for the vibrato and the slides"
  },
  {
   "address": 29883,
   "type": "line",
   "text": "the high byte of the frequency each voice is playing"
  },
  {
   "address": 29886,
   "type": "line",
   "text": "the low byte of each voice's pulse width, as the sweep moves it"
  },
  {
   "address": 29889,
   "type": "line",
   "text": "the high byte of each voice's pulse width"
  },
  {
   "address": 29892,
   "type": "line",
   "text": "the low byte of the address of each voice's pattern"
  },
  {
   "address": 29895,
   "type": "line",
   "text": "the high byte of the address of each voice's pattern"
  },
  {
   "address": 29898,
   "type": "line",
   "text": "the length of each voice's notes, set by a pattern's $80-$BF byte"
  },
  {
   "address": 29901,
   "type": "line",
   "text": "counts down the length of the note a voice is playing"
  },
  {
   "address": 29904,
   "type": "line",
   "text": "which effect a voice's note has: 0 none, 1 or 2 an arpeggio (commands $7D and $7C), or the opcode of a slide ($DE or $FE, commands $7F and $7E)"
  },
  {
   "address": 29907,
   "type": "line",
   "text": "the arpeggio mask of each voice, from command $7D or $7C or the instrument's $7027"
  },
  {
   "address": 29910,
   "type": "line",
   "text": "each voice's transpose, added to every note it reads, from its order list"
  },
  {
   "address": 29913,
   "type": "line",
   "text": "the note a voice is sliding to (command $7B), 0 for none"
  },
  {
   "address": 29916,
   "type": "line",
   "text": "the speed byte of a voice's slide to a note"
  },
  {
   "address": 29919,
   "type": "line",
   "text": "the low byte of the step a slide to a note moves the frequency by, from $6EBC"
  },
  {
   "address": 29920,
   "type": "line",
   "text": "the high byte of that step"
  },
  {
   "address": 29921,
   "type": "line",
   "text": "one more than the speed, the number of steps a slide to a note takes, from $6F06"
  },
  {
   "address": 29922,
   "type": "line",
   "text": "the opcode a slide writes over $6975, $DE to step the note down or $FE up; 0 for no slide"
  },
  {
   "address": 29925,
   "type": "line",
   "text": "the count of a voice's short slide, set from the instrument's flag bit 1"
  },
  {
   "address": 29928,
   "type": "line",
   "text": "which way each voice's pulse width sweeps: 0 up, 1 down"
  },
  {
   "address": 29931,
   "type": "line",
   "text": "each voice's place in its arpeggio list at $751C"
  },
  {
   "address": 29934,
   "type": "line",
   "text": "the depth of the vibrato being worked out, the instrument's $7025 high four bits"
  },
  {
   "address": 29935,
   "type": "line",
   "text": "how far the note's frequency step is shifted right for the vibrato, the low four bits"
  },
  {
   "address": 29936,
   "type": "line",
   "text": "which way each voice's vibrato is going"
  },
  {
   "address": 29939,
   "type": "line",
   "text": "each voice's place in its vibrato's swing"
  },
  {
   "address": 29942,
   "type": "line",
   "text": "the vibrato delay of each voice, from command $7A"
  },
  {
   "address": 29945,
   "type": "line",
   "text": "counts down a voice's vibrato delay before the vibrato starts"
  },
  {
   "address": 29948,
   "type": "line",
   "text": "the low byte of the frequency the vibrato is building"
  },
  {
   "address": 29949,
   "type": "line",
   "text": "the high byte of the frequency the vibrato is building, beside the low byte at $74FC"
  },
  {
   "address": 29950,
   "type": "line",
   "text": "the low byte of the vibrato's step, a semitone's difference shifted right"
  },
  {
   "address": 29951,
   "type": "line",
   "text": "the high byte of the vibrato's step, beside the low byte at $74FE"
  },
  {
   "address": 29952,
   "type": "line",
   "text": "the mask $6E5C shifts as it builds an arpeggio list"
  },
  {
   "address": 29953,
   "type": "line",
   "text": "the volume a fade has reached, which each $FD byte writes to $D418 and counts down"
  },
  {
   "address": 29954,
   "type": "line",
   "text": "the low byte of the address of each voice's order list"
  },
  {
   "address": 29957,
   "type": "line",
   "text": "the high byte"
  },
  {
   "address": 29960,
   "type": "line",
   "text": "the place in the voice's pattern the driver reads next"
  },
  {
   "address": 29961,
   "type": "line",
   "text": "each voice's instrument, times 8, the index into the instrument records at $7021"
  },
  {
   "address": 29964,
   "type": "line",
   "text": "the first voice's effect timer; $750D and $750E are the others. $68F8 counts all three on each frame, and a new note sets its voice's to $FF"
  },
  {
   "address": 29965,
   "type": "line",
   "text": "the second voice's effect timer"
  },
  {
   "address": 29966,
   "type": "line",
   "text": "the third voice's effect timer"
  },
  {
   "address": 29967,
   "type": "line",
   "text": "the SID register offset of the voice the driver is on, from $749D"
  },
  {
   "address": 29968,
   "type": "line",
   "text": "set when a voice's instrument keeps the pulse width from note to note (flag bit 7 of $7028)"
  },
  {
   "address": 29971,
   "type": "line",
   "text": "set once a voice's drum has started (the drum at $6C04)"
  },
  {
   "address": 29974,
   "type": "line",
   "text": "set when a voice's instrument has its sustain at 15, so $6D8D does not let the gate go halfway through the note"
  },
  {
   "address": 29977,
   "type": "line",
   "text": "the vibrato byte of each voice's instrument, from $7025"
  },
  {
   "address": 29980,
   "type": "line",
   "text": "the three voices' arpeggio lists, ten bytes each from $74A0, each ended with $FF, built by $6E5C"
  },
  {
   "address": 30012,
   "type": "line",
   "text": "the sound effect asked for on the first voice, $FF for none; $753D and $753E are the second and third voices'. $756A starts it and writes $FF back. The first two are written only together, at $AC58; the third at $8D89, $958B, $95DB, $A9E5, $AA8E and $AC5E."
  },
  {
   "address": 30013,
   "type": "line",
   "text": "the sound effect asked for on the second voice"
  },
  {
   "address": 30014,
   "type": "line",
   "text": "the sound effect asked for on the third voice"
  },
  {
   "address": 30015,
   "type": "line",
   "text": "the sound effects' step, called from the play interrupt (at $888A): sets the volume to 15 ($7548), then runs the effects player ($756A)."
  },
  {
   "address": 30021,
   "type": "line",
   "text": "jmp $754E, an entry to the effects' reset that no instruction calls (the game calls $754E itself)"
  },
  {
   "address": 30024,
   "type": "line",
   "text": "sets the SID's volume to 15 with the filter off ($D418 = $0F)."
  },
  {
   "address": 30030,
   "type": "line",
   "text": "stops every sound effect: clears $7751-$7753 and $7760-$7762, and writes 0 to the SID's voice registers $D400-$D412."
  },
  {
   "address": 30058,
   "type": "line",
   "text": "the sound effects player, for the three voices from the third down. Starts an effect asked for in $753C,x ($758A), then steps one that is playing ($7663). Saves and restores X and Y."
  },
  {
   "address": 30090,
   "type": "line",
   "text": "starts sound effect A on voice X: copies its 16-byte record from $7778 + 16 * A into the voice's variables at $772A-$776F, writes $FF to the request, and writes the record's pulse, envelope, frequency and waveform to the voice's SID registers ($775D,x is its offset). A record's last byte, the repeats, of $FF makes the effect repeat until it is stopped ($7760)."
  },
  {
   "address": 30307,
   "type": "line",
   "text": "one step of the effect on voice X. While its time $7748 lasts it moves the frequency by the step $773F/$7742 by its mode ($773C: 1 up, 2 down, 3 swapping between the two frequencies each step, 0 none). When the time runs out it starts the effect again from its first frequency while repeats are left ($7736), or else lets the gate go and counts the release ($776F) down, after which the effect is over. A bug: at $76FC it writes the sustain and release with X, the voice number, as the index, not with Y, its register offset, so for the second and third voices the byte lands in $D407 and $D408, the second voice's frequency."
  },
  {
   "address": 30506,
   "type": "line",
   "text": "the low byte of each voice's effect frequency as it moves"
  },
  {
   "address": 30509,
   "type": "line",
   "text": "the high byte of each voice's effect frequency as it moves, beside $772A"
  },
  {
   "address": 30512,
   "type": "line",
   "text": "the low byte of each effect's first frequency, for a repeat"
  },
  {
   "address": 30515,
   "type": "line",
   "text": "the high byte of each effect's first frequency, beside $7730, kept for a repeat"
  },
  {
   "address": 30518,
   "type": "line",
   "text": "the repeats left of each voice's effect"
  },
  {
   "address": 30521,
   "type": "line",
   "text": "each effect's time, for a repeat"
  },
  {
   "address": 30524,
   "type": "line",
   "text": "each effect's mode: 0 none, 1 the frequency rises, 2 falls, 3 swaps between two values"
  },
  {
   "address": 30527,
   "type": "line",
   "text": "the low byte of each effect's frequency step"
  },
  {
   "address": 30530,
   "type": "line",
   "text": "the high byte of each effect's frequency step, beside $773F"
  },
  {
   "address": 30533,
   "type": "line",
   "text": "each effect's waveform and gate byte"
  },
  {
   "address": 30536,
   "type": "line",
   "text": "counts down each effect's time"
  },
  {
   "address": 30542,
   "type": "line",
   "text": "which of the two frequencies a swapping effect (mode 3) is on"
  },
  {
   "address": 30545,
   "type": "line",
   "text": "set while the first voice plays an effect; $7752 and $7753 are the others"
  },
  {
   "address": 30546,
   "type": "line",
   "text": "set while the second voice plays an effect"
  },
  {
   "address": 30547,
   "type": "line",
   "text": "set while the third voice plays an effect"
  },
  {
   "address": 30548,
   "type": "line",
   "text": "each effect's sustain and release"
  },
  {
   "address": 30551,
   "type": "line",
   "text": "each effect's attack and decay"
  },
  {
   "address": 30554,
   "type": "line",
   "text": "each effect's pulse width, high four bits the low byte and low four bits the high"
  },
  {
   "address": 30557,
   "type": "line",
   "text": "each voice's SID register offset for the effects: 0, 7 and 14"
  },
  {
   "address": 30560,
   "type": "line",
   "text": "$FF when the effect on a voice repeats until it is stopped"
  },
  {
   "address": 30563,
   "type": "line",
   "text": "four bytes of each effect's record, its eleventh to fourteenth (offsets 10 to 13), which $758A copies into $7763, $7766, $7769 and $776C and no instruction reads"
  },
  {
   "address": 30566,
   "type": "line",
   "text": "the second of the four copied bytes of each voice's effect, its record's twelfth byte (offset 11), which no instruction reads"
  },
  {
   "address": 30569,
   "type": "line",
   "text": "the third of the four copied bytes, the record's thirteenth byte (offset 12), which no instruction reads"
  },
  {
   "address": 30572,
   "type": "line",
   "text": "the fourth of the four copied bytes, the record's fourteenth byte (offset 13), which no instruction reads"
  },
  {
   "address": 30575,
   "type": "line",
   "text": "counts down each effect's release once its gate is let go"
  },
  {
   "address": 30584,
   "type": "line",
   "text": "the 26 sound effects, 16 bytes each: the first frequency (two bytes), the step (two), the mode, the time, the waveform, the attack and decay, the sustain and release, the pulse width, four bytes copied to $7763-$776C, one byte not read, and the repeats ($FF for for ever)"
  },
  {
   "address": 32768,
   "type": "line",
   "text": "the text CBM80000, nine bytes in front of the entry; nothing reads it"
  },
  {
   "address": 32777,
   "type": "line",
   "text": "the game's entry, as BASIC's SYS 32777 reaches it: sets $01 to $36 (RAM at $A000-$BFFF, the I/O and the KERNAL in) and falls into the main loop at $800D."
  },
  {
   "address": 32781,
   "type": "line",
   "text": "the game's outer loop. The title ($AF23) runs until a fire button starts a game; then the game is set up ($82E3) and each city is set up ($82EC) and played, one pass at a time: $8065 does each pass's frame work and $89B2 moves the monsters and everything else. When a pass ends with both monsters' $80E9 at 0 the game is over: $804B sets $8032 to 1 and runs passes of $8065 and $89B5 (everything but the monsters) until $8032 reaches $28, then goes back to the title. When $802E is set, or $8032 has reached $14, the city is over: $ABB7 runs and the city count $803E goes on (from 5 back to 1) to the next city. Otherwise the next pass starts at $8019. Never returns."
  },
  {
   "address": 32814,
   "type": "line",
   "text": "the operand of this load, cleared at $84F9 and written in play: when it is not 0 after $89B2 returns, the city is over"
  },
  {
   "address": 32818,
   "type": "line",
   "text": "the operand of this compare's load, cleared at $84FC and written in play: $14 after $89B2 ends the city, and the game-over loop at $8050 runs until it reaches $28"
  },
  {
   "address": 32830,
   "type": "line",
   "text": "the number of the city in the run, 1 to 5, kept as the operand of this load: $8037 counts it on after each city and puts it back to 1 after 5. $8444 picks the next city with it."
  },
  {
   "address": 32869,
   "type": "line",
   "text": "the work of one pass of play before the monsters move: waits for line $C8 ($B733), clears $3E7F and runs $A437, waits a frame, waits for line $C8, then with $3E7F at 1 runs $8942 (the buildings' timers), with $3E7F at 2 restores marked cells of the screen ($8970), animates the characters ($B463) and waits a frame. Called twice from the main loop."
  },
  {
   "address": 32912,
   "type": "line",
   "text": "the eight bits by number, $01 to $80: the x high bit of each sprite in $D010's copies ($80C5)"
  },
  {
   "address": 32920,
   "type": "line",
   "text": "the same eight bits cleared, $FE to $7F"
  },
  {
   "address": 32928,
   "type": "line",
   "text": "a work byte: the other monster's number in $89E0, the city type times 6 in $853E, a sum in $8444 and elsewhere"
  },
  {
   "address": 32929,
   "type": "line",
   "text": "a work byte: the run count of the screen unpacker ($853E), a saved X in the hornets and the cave"
  },
  {
   "address": 32930,
   "type": "line",
   "text": "the row of cells the sprite mask is on ($9811)"
  },
  {
   "address": 32931,
   "type": "line",
   "text": "Y saved by $929A"
  },
  {
   "address": 32932,
   "type": "line",
   "text": "X saved by $92D6 and $931E"
  },
  {
   "address": 32933,
   "type": "line",
   "text": "the building a routine works on, also Y saved by $92D6 and $931E"
  },
  {
   "address": 32934,
   "type": "line",
   "text": "the monster whose fire $8D07 is handling"
  },
  {
   "address": 32935,
   "type": "line",
   "text": "the city type kept while the cave is shown ($AC20), put back after the fight"
  },
  {
   "address": 32936,
   "type": "line",
   "text": "the type of the city being played, 0 to 9 (9 the cave): it picks the city's data, colours, buildings and start places"
  },
  {
   "address": 32937,
   "type": "line",
   "text": "the lizard's half-step across, 0 or 1"
  },
  {
   "address": 32938,
   "type": "line",
   "text": "the ogre's half-step across"
  },
  {
   "address": 32939,
   "type": "line",
   "text": "the lizard's column on the screen"
  },
  {
   "address": 32940,
   "type": "line",
   "text": "the ogre's column"
  },
  {
   "address": 32941,
   "type": "line",
   "text": "the lizard's half-step up or down, 0 or 1"
  },
  {
   "address": 32942,
   "type": "line",
   "text": "the ogre's half-step up or down"
  },
  {
   "address": 32943,
   "type": "line",
   "text": "the lizard's row on the screen"
  },
  {
   "address": 32944,
   "type": "line",
   "text": "the ogre's row"
  },
  {
   "address": 32945,
   "type": "line",
   "text": "the lizard's column times 8, a position in pixels ($9925), 0 past the edge"
  },
  {
   "address": 32946,
   "type": "line",
   "text": "the lizard's row times 8"
  },
  {
   "address": 32947,
   "type": "line",
   "text": "the ogre's column times 8"
  },
  {
   "address": 32948,
   "type": "line",
   "text": "the ogre's row times 8"
  },
  {
   "address": 32949,
   "type": "line",
   "text": "the first band's sprite positions, x then y: sprites 0 and 1 the hornets, 2 the white flyer, 3; $8810 copies them to the video chip"
  },
  {
   "address": 32950,
   "type": "line",
   "text": "the first hornet's y"
  },
  {
   "address": 32951,
   "type": "line",
   "text": "the second hornet's x"
  },
  {
   "address": 32952,
   "type": "line",
   "text": "the second hornet's y"
  },
  {
   "address": 32953,
   "type": "line",
   "text": "the white flyer's x"
  },
  {
   "address": 32954,
   "type": "line",
   "text": "the white flyer's y, 0 while it is not out"
  },
  {
   "address": 32955,
   "type": "line",
   "text": "the first band's sprite 3 x, which nothing but the interrupt reads"
  },
  {
   "address": 32956,
   "type": "line",
   "text": "the first band's sprite 3 y"
  },
  {
   "address": 32957,
   "type": "line",
   "text": "eight bytes after the first band's four positions, for sprites 4 to 7, which no instruction reads or writes"
  },
  {
   "address": 32965,
   "type": "line",
   "text": "the first band's sprites' x high bits, for $D010"
  },
  {
   "address": 32966,
   "type": "line",
   "text": "the first band's four sprite pointers, the first three built by $8810 from the hornets' and the flyer's frames, copied to $CBF8"
  },
  {
   "address": 32974,
   "type": "line",
   "text": "the second band's six sprites' positions, x then y: the lower and upper sprite and the arm of one monster, then the other's ($9925 writes the lizard's first). $9AF8 swaps the two halves whenever the ogre's y is not less than the lizard's, which is every pass while the ogre is out of the game (its y is $FA), so then the first half holds the ogre's"
  },
  {
   "address": 32975,
   "type": "line",
   "text": "the first monster's lower sprite's y (the lizard's unless the halves are swapped, $9AF8)"
  },
  {
   "address": 32976,
   "type": "line",
   "text": "the first monster's upper sprite's x"
  },
  {
   "address": 32977,
   "type": "line",
   "text": "the first monster's upper sprite's y"
  },
  {
   "address": 32978,
   "type": "line",
   "text": "the first monster's arm's x"
  },
  {
   "address": 32979,
   "type": "line",
   "text": "the first monster's arm's y"
  },
  {
   "address": 32980,
   "type": "line",
   "text": "the second monster's lower sprite's x (the ogre's unless the halves are swapped, $9AF8)"
  },
  {
   "address": 32981,
   "type": "line",
   "text": "the second monster's lower sprite's y"
  },
  {
   "address": 32982,
   "type": "line",
   "text": "the second monster's upper sprite's x"
  },
  {
   "address": 32983,
   "type": "line",
   "text": "the second monster's upper sprite's y"
  },
  {
   "address": 32984,
   "type": "line",
   "text": "the second monster's arm's x"
  },
  {
   "address": 32985,
   "type": "line",
   "text": "the second monster's arm's y"
  },
  {
   "address": 32986,
   "type": "line",
   "text": "cleared in the cave ($AE6A) and read by nothing"
  },
  {
   "address": 32987,
   "type": "line",
   "text": "cleared in the cave ($AE73) and read by nothing"
  },
  {
   "address": 32988,
   "type": "line",
   "text": "cleared in the cave ($AE6D) and read by nothing"
  },
  {
   "address": 32990,
   "type": "line",
   "text": "the second band's sprites' x high bits"
  },
  {
   "address": 32991,
   "type": "line",
   "text": "the second band's six sprite pointers: the first monster's lower ($32), upper and arm, then the second's (the lower $34); $9AF8 swaps the halves with the positions"
  },
  {
   "address": 32992,
   "type": "line",
   "text": "the first monster's upper sprite's pointer (the lizard's, from $80EF, unless swapped)"
  },
  {
   "address": 32993,
   "type": "line",
   "text": "the first monster's arm's pointer"
  },
  {
   "address": 32994,
   "type": "line",
   "text": "the second monster's lower sprite's pointer"
  },
  {
   "address": 32995,
   "type": "line",
   "text": "the second monster's upper sprite's pointer (the ogre's, from $8177, unless swapped)"
  },
  {
   "address": 32996,
   "type": "line",
   "text": "the second monster's arm's pointer"
  },
  {
   "address": 32997,
   "type": "line",
   "text": "the cannon's left sprite's pointer, from $AB96"
  },
  {
   "address": 32998,
   "type": "line",
   "text": "the cannon's right sprite's pointer, from $AB9D"
  },
  {
   "address": 32999,
   "type": "line",
   "text": "points the lizard has earned that $93AE has not added to its score yet, one a pass (10 on the screen each)"
  },
  {
   "address": 33000,
   "type": "line",
   "text": "points the ogre is owed"
  },
  {
   "address": 33001,
   "type": "line",
   "text": "the lizard's state: 0 not in the game, $20 playing, 1 to $1F dying (counted down a pass by $8AA9), 1 in the cave; the main loop ends the game when both are 0"
  },
  {
   "address": 33002,
   "type": "line",
   "text": "the ogre's state"
  },
  {
   "address": 33003,
   "type": "line",
   "text": "counted on when fire on port 2 starts the game from the title, so the lizard is set up ($8326)"
  },
  {
   "address": 33004,
   "type": "line",
   "text": "counted on when fire on port 1 starts it, for the ogre"
  },
  {
   "address": 33005,
   "type": "line",
   "text": "1 while the lizard has punching power, set by a $82 pickup and cleared when its second bar is empty ($92D6); a punch needs it"
  },
  {
   "address": 33006,
   "type": "line",
   "text": "the ogre's punching power"
  },
  {
   "address": 33007,
   "type": "line",
   "text": "the lizard's upper sprite's pointer by its animation, 68 entries: four frames ($8213) for each action ($8215): 0 walking up, 4 right, 8 down, $0C left, $10-$1C punching that way; a flame adds $10 to the facing and eating $20, and the cave holds the egg up at $28"
  },
  {
   "address": 33075,
   "type": "line",
   "text": "the lizard's lower sprite's frame by its animation, 68 entries, a frame number of the shapes at $0BB8 ($9772)"
  },
  {
   "address": 33143,
   "type": "line",
   "text": "the ogre's upper sprite's pointer by its animation, 68 entries"
  },
  {
   "address": 33211,
   "type": "line",
   "text": "the ogre's lower sprite's frame by its animation, 68 entries"
  },
  {
   "address": 33279,
   "type": "line",
   "text": "the first band's sprite pointers by $820F + $8212: four frames from 0 (which no hornet uses), from 4 a hornet flying left, from 8 the white flyer, from $0C a hornet flying right"
  },
  {
   "address": 33295,
   "type": "line",
   "text": "the first hornet's frame base in $81FF: 4 flying left, $0C flying right ($A470, $A483)"
  },
  {
   "address": 33296,
   "type": "line",
   "text": "the second hornet's frame base"
  },
  {
   "address": 33297,
   "type": "line",
   "text": "the white flyer's frame base, 8 when it comes in, 0 when it climbs"
  },
  {
   "address": 33298,
   "type": "line",
   "text": "the hornets' and the flyer's animation step, 0 to 3, counted on each pass by $A446"
  },
  {
   "address": 33299,
   "type": "line",
   "text": "the lizard's animation frame, 0 to 3 in play, and counted on without a wrap while it dies ($8AC9), so it reaches 4; on the title 0 to $3F"
  },
  {
   "address": 33300,
   "type": "line",
   "text": "the ogre's animation frame, as $8213 is the lizard's"
  },
  {
   "address": 33301,
   "type": "line",
   "text": "the lizard's animation action, the base of its frames in the tables at $80EF and $8133: its facing and what it is doing"
  },
  {
   "address": 33302,
   "type": "line",
   "text": "the ogre's animation action"
  },
  {
   "address": 33303,
   "type": "line",
   "text": "the way the lizard faces for a flame: 0 up, 4 right, 8 down, $0C left"
  },
  {
   "address": 33304,
   "type": "line",
   "text": "the way the ogre faces, read through $8217,x"
  },
  {
   "address": 33305,
   "type": "line",
   "text": "the place in the ogre's first bar, the health ($C81D)"
  },
  {
   "address": 33306,
   "type": "line",
   "text": "the place in the ogre's second bar, the punching power ($C845)"
  },
  {
   "address": 33307,
   "type": "line",
   "text": "the place in the lizard's first bar ($C805)"
  },
  {
   "address": 33308,
   "type": "line",
   "text": "the place in the lizard's second bar ($C82D)"
  },
  {
   "address": 33309,
   "type": "line",
   "text": "set by $931E when the lizard is hurt, so it is drawn 3 lines lower for a pass; also the shake of a hit in the cave"
  },
  {
   "address": 33310,
   "type": "line",
   "text": "set when the ogre is hurt"
  },
  {
   "address": 33311,
   "type": "line",
   "text": "the eight people's states: 0 none, 1 out, 2 taken by a monster"
  },
  {
   "address": 33319,
   "type": "line",
   "text": "the eight people's columns"
  },
  {
   "address": 33327,
   "type": "line",
   "text": "the eight people's rows"
  },
  {
   "address": 33335,
   "type": "line",
   "text": "each hornet's way across: 0 right, 1 left"
  },
  {
   "address": 33337,
   "type": "line",
   "text": "set when a hornet has struck and flies up"
  },
  {
   "address": 33339,
   "type": "line",
   "text": "set while the first hornet is out"
  },
  {
   "address": 33340,
   "type": "line",
   "text": "set while the second hornet is out, read through $823B,x"
  },
  {
   "address": 33341,
   "type": "line",
   "text": "a hornet's dying count, 1 to 5, its pointer $D8 more than that; the third is the white flyer's"
  },
  {
   "address": 33343,
   "type": "line",
   "text": "the white flyer's dying count, 1 to 6 ($A662)"
  },
  {
   "address": 33344,
   "type": "line",
   "text": "the cannon's frame, an index into $AB96 and $AB9D: 2 or 4 as it rolls, 1 to 4 as it is burnt, 5 and 6 as it breaks up"
  },
  {
   "address": 33345,
   "type": "line",
   "text": "set to 1 when a city is picked ($849D); nothing reads it"
  },
  {
   "address": 33346,
   "type": "line",
   "text": "the cannon's health, 14 at the start of a city ($848B), taken down by flames ($8D84); below 7 it breaks up"
  },
  {
   "address": 33347,
   "type": "line",
   "text": "cleared when a city is picked ($84AE); nothing reads it"
  },
  {
   "address": 33348,
   "type": "line",
   "text": "the cannon's x, sprite 6's in the second band (sprite 7 is 21 pixels right)"
  },
  {
   "address": 33349,
   "type": "line",
   "text": "the cannon's y"
  },
  {
   "address": 33350,
   "type": "line",
   "text": "counts down the cannon's roll before it turns, reloaded from $8247"
  },
  {
   "address": 33351,
   "type": "line",
   "text": "how long the cannon rolls one way, from the city's $825A"
  },
  {
   "address": 33352,
   "type": "line",
   "text": "each city type's first x of the cannon, ten entries"
  },
  {
   "address": 33361,
   "type": "line",
   "text": "each city type's y of the cannon"
  },
  {
   "address": 33370,
   "type": "line",
   "text": "each city type's length of the cannon's roll"
  },
  {
   "address": 33380,
   "type": "line",
   "text": "set when the lizard is near the cannon ($89E0), so its flame burns it"
  },
  {
   "address": 33381,
   "type": "line",
   "text": "set when the ogre is near the cannon"
  },
  {
   "address": 33382,
   "type": "line",
   "text": "the six buildings' columns, from the city's $B5F5"
  },
  {
   "address": 33390,
   "type": "line",
   "text": "the six buildings' rows, from $B626"
  },
  {
   "address": 33398,
   "type": "line",
   "text": "the six buildings' types, from $B657: the index of their pictures, widths and heights at $A209-$A27B"
  },
  {
   "address": 33406,
   "type": "line",
   "text": "the height of the building being worked on, from $A27B ($9730)"
  },
  {
   "address": 33407,
   "type": "line",
   "text": "its width, from $A255"
  },
  {
   "address": 33408,
   "type": "line",
   "text": "the six buildings' counts to their next stage ($8942)"
  },
  {
   "address": 33416,
   "type": "line",
   "text": "each building's count of passes between the burns of a flame on it, 2"
  },
  {
   "address": 33424,
   "type": "line",
   "text": "each building's stage of fire, 0 none, 1 to 5 (5 falls)"
  },
  {
   "address": 33432,
   "type": "line",
   "text": "the rows each falling building has come down"
  },
  {
   "address": 33440,
   "type": "line",
   "text": "the rows of each building the fire has worked down"
  },
  {
   "address": 33448,
   "type": "line",
   "text": "set when a building has fallen and been cleared"
  },
  {
   "address": 33456,
   "type": "line",
   "text": "the flame pictures' characters, two by stage of the fire ($948C)"
  },
  {
   "address": 33462,
   "type": "line",
   "text": "the number of the city's buildings that have fallen; at 6 the city's end starts"
  },
  {
   "address": 33463,
   "type": "line",
   "text": "counted on when a punch of the lizard's hits no building ($8FDD)"
  },
  {
   "address": 33464,
   "type": "line",
   "text": "the ogre's punches that hit nothing"
  },
  {
   "address": 33465,
   "type": "line",
   "text": "the lizard's punch, 8 passes; it cannot move while it runs"
  },
  {
   "address": 33466,
   "type": "line",
   "text": "the ogre's punch timer"
  },
  {
   "address": 33467,
   "type": "line",
   "text": "the lizard's flame, 6 passes (10 in the cave)"
  },
  {
   "address": 33468,
   "type": "line",
   "text": "the ogre's flame timer"
  },
  {
   "address": 33469,
   "type": "line",
   "text": "where the lizard's last punch went: 0 up or down, 1 right, 5 left"
  },
  {
   "address": 33470,
   "type": "line",
   "text": "where the ogre's last punch went"
  },
  {
   "address": 33471,
   "type": "line",
   "text": "the lizard's eating, 6 passes (14 for a duck in the cave)"
  },
  {
   "address": 33472,
   "type": "line",
   "text": "the ogre's eating timer"
  },
  {
   "address": 33473,
   "type": "line",
   "text": "two bytes after the ogre's eating timer that no instruction reads or writes"
  },
  {
   "address": 33475,
   "type": "line",
   "text": "the row a punch or flame is aimed at, two above the monster's"
  },
  {
   "address": 33476,
   "type": "line",
   "text": "the monster's half-step up or down, for the sprite mask ($9772)"
  },
  {
   "address": 33477,
   "type": "line",
   "text": "the column a punch or flame is aimed at"
  },
  {
   "address": 33478,
   "type": "line",
   "text": "the monster's half-step across, for the sprite mask"
  },
  {
   "address": 33479,
   "type": "line",
   "text": "eight bytes before the city data table that no instruction reads or writes"
  },
  {
   "address": 33487,
   "type": "line",
   "text": "the low bytes of each city type's data address, ten entries: $2E78, $3535, $3C0D, $42B1, $4A3E, $5051, $5674, $5CDB, and type 9, the cave, uses type 3's $3C0D; type 0 has none"
  },
  {
   "address": 33497,
   "type": "line",
   "text": "the high bytes of each city type's data address"
  },
  {
   "address": 33507,
   "type": "line",
   "text": "sets up a new game: installs the play interrupt ($8426), the video chip's bank and modes ($8301) and the monsters ($8326)."
  },
  {
   "address": 33516,
   "type": "line",
   "text": "sets up the next city with the screen off ($B746): picks it ($8444), builds it ($853E), then $9772, $9925 and $9B4F, and turns the screen on ($B752)."
  },
  {
   "address": 33537,
   "type": "line",
   "text": "puts the video chip in bank 3 ($DD00 = $94), the screen at $C800 and the characters at $C000 ($D018 = $20), turns the screen on ($D011 bit 4) and multicolour on, with 40 columns ($D016)."
  },
  {
   "address": 33574,
   "type": "line",
   "text": "sets up the monsters for a new game: clears both monsters' health and the counts at $80E7 and $80E8, sets the city count $803E to 1, picks the first city type at random, 1 or 2 ($B75E with 2, plus 1, into $80A8), fills the top two rows of the screen with character $FA, and sets up the lizard ($8368) if its fire started the game ($80EB) and the ogre ($83B2) if its did ($80EC)."
  },
  {
   "address": 33638,
   "type": "line",
   "text": "1 while the lizard has not been set up in this game; $8368 sets it up once and clears it"
  },
  {
   "address": 33639,
   "type": "line",
   "text": "1 while the ogre has not been set up in this game; $83B2 clears it"
  },
  {
   "address": 33640,
   "type": "line",
   "text": "sets up the lizard, once a game ($8366): points its score digits at $C80B and its two bars at $C805 and $C82D (writing them into the code at $8413, $841D and $8420), marks the ends of the bars, sets its start position from the tables at $B69A and $B6A5 by the city type, and gives it its health and power ($83F9). Called at the start of a game and from play ($8A98), so the other monster can join a game that is on."
  },
  {
   "address": 33714,
   "type": "line",
   "text": "sets up the ogre as $8368 does the lizard, with its score at $C815 and its bars at $C81D and $C845, and its start position from $B6B0 and $B6BB."
  },
  {
   "address": 33785,
   "type": "line",
   "text": "gives monster X (0 the lizard, 1 the ogre) $20 health ($80E9,x) and $20 power ($80ED,x), sets $8215,x to 8 and clears $80E7,x and $8213,x, then writes its seven score digits as $F0 (0 in the heavy digits) and its two bars of five cells as $FE, through the addresses $8368 or $83B2 wrote into these stores."
  },
  {
   "address": 33811,
   "type": "line",
   "text": "the low byte of the score digits' address, written by $8368 or $83B2"
  },
  {
   "address": 33812,
   "type": "line",
   "text": "the high byte of the score digits' address"
  },
  {
   "address": 33821,
   "type": "line",
   "text": "the low byte of the first bar's address"
  },
  {
   "address": 33822,
   "type": "line",
   "text": "the high byte of the first bar's address"
  },
  {
   "address": 33824,
   "type": "line",
   "text": "the low byte of the second bar's address"
  },
  {
   "address": 33825,
   "type": "line",
   "text": "the high byte of the second bar's address"
  },
  {
   "address": 33830,
   "type": "line",
   "text": "installs the play interrupt, $8810 on line 0 ($B6E9)."
  },
  {
   "address": 33839,
   "type": "line",
   "text": "the city types $8444 picks from, 21 bytes: four times the city count plus a random number index it"
  },
  {
   "address": 33860,
   "type": "line",
   "text": "picks the next city and resets play for it: the city type ($80A8) is the byte of $842F at four times the city count ($803E) plus a byte of the table at $9C12, indexed by a counter $A91E that it counts on (and the title counts on every frame); turns all eight sprites on, multicoloured, in front and unexpanded; and clears or sets play's variables for a new city (positions, counts, the sprite colours and the tables at $821F and $8280-$82AD)."
  },
  {
   "address": 34110,
   "type": "line",
   "text": "builds the city of type $80A8 on the screen. Fills the character colours at $A2A1 with the city's colour from $87EF and copies the first 128 from the city's data (addresses at $82CF and $82D9); saves the top two rows of the screen to $9D12; copies the next kilobyte of the data to the character set at $C000; copies 62 characters from the city's table (addresses at $B691 and $B688) to $C590; unpacks the screen from the data into $C828 up to $CBFF (a byte with bit 7 set repeats the next byte its low seven bits plus one times, any other copies that many bytes plus one as they are); keeps a copy of the screen at $7918; sets the border and background colours from $B6D7, $B5D7, $B5E1 and $B5EB. Unless $8691 is set it then sets the city's values ($8244-$8247 from $8248-$8262, $A9A3 from $B6C6), builds characters $96 and $9B-$9D from the city's ($C4B0-$C4EF), the monsters' start positions, and six buildings from $B5F5, $B626 and $B657 (drawn by $93F0). Last it puts the top two rows back, colours the screen from $A2A1 character by character, colours the panel, gives the fourth city type its extra characters at $C9F3-$CA1C, and sets $9926 and $9B4A to 13 for the second city type and 5 for the others."
  },
  {
   "address": 34186,
   "type": "line",
   "text": "the low byte of where the character set is copied, $C000, written at $857B"
  },
  {
   "address": 34187,
   "type": "line",
   "text": "the high byte of that address, stepped a page at a time"
  },
  {
   "address": 34227,
   "type": "line",
   "text": "the low byte of the city's 62 characters' address, from $B691"
  },
  {
   "address": 34228,
   "type": "line",
   "text": "its high byte, from $B688"
  },
  {
   "address": 34449,
   "type": "line",
   "text": "the operand of this load, set elsewhere to skip the city's values and buildings (cleared at $84AB)"
  },
  {
   "address": 34520,
   "type": "line",
   "text": "the operand of this load is the first byte of the character the city names in $B6C6, written at $86D2"
  },
  {
   "address": 34799,
   "type": "line",
   "text": "each city type's character colour, written to all 256 of $A2A1 before the city's own 128 are copied over it"
  },
  {
   "address": 34808,
   "type": "line",
   "text": "three characters' bitmaps, 24 bytes, that $853E exclusive-ors with a byte of the city's to build characters $9B to $9D at $C4D8"
  },
  {
   "address": 34832,
   "type": "line",
   "text": "the play interrupt on line 0, the first band of sprites. Turns sprite expansion off, sets the x high bits from $80C5 and the positions of sprites 0 to 3 from $80B5-$80BC (a y below $44 is put at 0, which hides the sprite above the play field), sets sprite colours (2 white, 0 and 1 yellow, 6 and 7 brown), builds the pointers of sprites 0-2 at $80C6 (from $823D, or a frame of the table at $81FF by $820F and $8212) and writes four from there to $CBF8, then runs the music ($68F8) while $8691 is set or else the sound effects ($753F), saving and restoring $FB-$FE. Chains to $88A2 on the line in $889E."
  },
  {
   "address": 34974,
   "type": "line",
   "text": "the line of the second band's interrupt, written by $9B4F (the higher of the second band's sprites less $1A) and at $847A ($50 when a city is picked); $C0 in work/play-city1.vsf"
  },
  {
   "address": 34978,
   "type": "line",
   "text": "the play interrupt for the second band of sprites: writes the positions, the x high bits and the pointers that $9B4F left in its own operands ($88A3-$891B) to the video chip and to $CBF8-$CBFF, the colours of sprites 0, 1, 3 and 4 from its operands $8920 and $8928, and sprites 2 and 5 yellow. Chains to $8810 on line 0."
  },
  {
   "address": 34979,
   "type": "line",
   "text": "the second band's sprite x high bits ($D010), written by $9B4F from $80DE"
  },
  {
   "address": 34984,
   "type": "line",
   "text": "the second band's sprite 3 x, written by $9B4F from $80D4"
  },
  {
   "address": 34989,
   "type": "line",
   "text": "sprite 3's y, from $80D5"
  },
  {
   "address": 34994,
   "type": "line",
   "text": "sprite 3's pointer ($CBFB), from $80E2"
  },
  {
   "address": 34999,
   "type": "line",
   "text": "sprite 4's x, from $80D6"
  },
  {
   "address": 35004,
   "type": "line",
   "text": "sprite 4's y, from $80D7"
  },
  {
   "address": 35009,
   "type": "line",
   "text": "sprite 4's pointer, from $80E3"
  },
  {
   "address": 35014,
   "type": "line",
   "text": "sprite 0's pointer, from $80DF"
  },
  {
   "address": 35019,
   "type": "line",
   "text": "sprite 1's pointer, from $80E0"
  },
  {
   "address": 35024,
   "type": "line",
   "text": "sprite 1's x, from $80D0"
  },
  {
   "address": 35029,
   "type": "line",
   "text": "sprite 1's y, from $80D1"
  },
  {
   "address": 35034,
   "type": "line",
   "text": "sprite 0's x, from $80CE"
  },
  {
   "address": 35039,
   "type": "line",
   "text": "sprite 0's y, from $80CF"
  },
  {
   "address": 35044,
   "type": "line",
   "text": "sprite 2's x, from $80D2"
  },
  {
   "address": 35049,
   "type": "line",
   "text": "sprite 2's y, from $80D3"
  },
  {
   "address": 35054,
   "type": "line",
   "text": "sprite 6's x, from $8244"
  },
  {
   "address": 35059,
   "type": "line",
   "text": "sprite 6's y, from $8245"
  },
  {
   "address": 35064,
   "type": "line",
   "text": "sprite 7's x, 21 pixels right of sprite 6, so the two make one thing twice as wide"
  },
  {
   "address": 35069,
   "type": "line",
   "text": "sprite 7's y, the same as sprite 6's"
  },
  {
   "address": 35074,
   "type": "line",
   "text": "sprite 2's pointer, from $80E1"
  },
  {
   "address": 35079,
   "type": "line",
   "text": "sprite 6's pointer, from $80E5"
  },
  {
   "address": 35084,
   "type": "line",
   "text": "sprite 7's pointer, from $80E6"
  },
  {
   "address": 35089,
   "type": "line",
   "text": "sprite 5's x, from $80D8"
  },
  {
   "address": 35094,
   "type": "line",
   "text": "sprite 5's y, from $80D9"
  },
  {
   "address": 35099,
   "type": "line",
   "text": "sprite 5's pointer, from $80E4"
  },
  {
   "address": 35104,
   "type": "line",
   "text": "the colour of the second band's sprites 0 and 1, written at $9927 and $9B46"
  },
  {
   "address": 35112,
   "type": "line",
   "text": "the colour of the second band's sprites 3 and 4, written at $992C and $9B4B"
  },
  {
   "address": 35136,
   "type": "line",
   "text": "cleared when a city is picked ($8502) and at $AC35; nothing found yet reads it"
  },
  {
   "address": 35137,
   "type": "line",
   "text": "cleared when a city is picked ($8505) and at $AC38; nothing found yet reads it"
  },
  {
   "address": 35138,
   "type": "line",
   "text": "counts down the timers ($8280,x) of the buildings that stand ($82A8,x clear) and are burning or falling ($8298,x or $8290,x set), from the sixth down; the first whose count reaches 0 has its next stage drawn ($93F0) and its count reloaded with what that returns, and the rest wait for a later pass. Then, if $8032 is not 0, counts it on."
  },
  {
   "address": 35184,
   "type": "line",
   "text": "looks at screen rows 7 to 24 for character $AF, a mark the game leaves on a cell for one pass, and puts back each one it finds from the city's copy of the screen at $7918, with its colour from $A2A1."
  },
  {
   "address": 35250,
   "type": "line",
   "text": "one pass of play: the monsters ($89D6), then the rest ($89B5)."
  },
  {
   "address": 35253,
   "type": "line",
   "text": "everything in a pass of play but the monsters: $9772, $9925, $9B4F, $A43D; stores a random number from 1 to 4 in the table at $9C12 at the place $A91E, which the next city's choice and other random choices read; and adds the monsters' points owed to their scores ($93AE)."
  },
  {
   "address": 35282,
   "type": "line",
   "text": "inc $8032 and rts, four bytes no instruction reaches"
  },
  {
   "address": 35286,
   "type": "line",
   "text": "moves the lizard (X = 0), then the ogre (X = 1), with $89E0."
  },
  {
   "address": 35296,
   "type": "line",
   "text": "one monster's pass, X the monster (0 the lizard, 1 the ogre). First sets $8264 when the lizard's position ($80B1/$80B2, in pixels) is within 20 pixels across of the pair of sprites at $8244/$8245 and 45 to 58 lines above it, and $8265 the same for the ogre's ($80B3/$80B4). While its punch ($82B9,x), flame ($82BB,x) or eating ($82BF,x) timer runs, it only counts that on ($912E, $9125, $9111). Otherwise it reads its joystick (lda $DC00,x: port 2 for the lizard, port 1 for the ogre) into $8A61. If its $80E9,x is 0 (not in the game), fire joins it ($8368 or $83B2). If $80E9,x is not $20 it is dying: the count goes down a pass, with sound $10, and the animation steps every eight. Otherwise fire acts ($8D07) and up, down, left and right walk ($8ACD, $8B34, $8BA4, $8C30); with nothing pressed it only counts $A91E on."
  },
  {
   "address": 35425,
   "type": "line",
   "text": "the monster's joystick bits, written into this load's operand at $8A46: 0 for pressed, bit 0 up, 1 down, 2 left, 3 right, 4 fire"
  },
  {
   "address": 35533,
   "type": "line",
   "text": "up: walks into the screen. Faces away (0) and moves up a row every second pass, while the cells it would move onto are walkable (from $95 up, or the city's character in $A9A3) and the other monster is not just ahead."
  },
  {
   "address": 35636,
   "type": "line",
   "text": "down: walks out of the screen while the row is below $15, so to row $15 at most, in the same way (facing 8)"
  },
  {
   "address": 35748,
   "type": "line",
   "text": "left: walks left while the column is 1 or more, so to column 0, half a cell a pass, while the cells there are walkable (facing $0C)"
  },
  {
   "address": 35888,
   "type": "line",
   "text": "right: walks right while the column is below $24, so to column $24 at most (facing 4)"
  },
  {
   "address": 36021,
   "type": "line",
   "text": "the end of a step: counts the monster's animation frame $8213,x on, 0 to 3."
  },
  {
   "address": 36037,
   "type": "line",
   "text": "three bytes no code reaches, jmp $8BA4"
  },
  {
   "address": 36040,
   "type": "line",
   "text": "the screen address of monster X's place, $C800 + 40 times (its row $80AF,x less 1) + its column $80AB,x, in $FB/$FC. Fifteen callers."
  },
  {
   "address": 36103,
   "type": "line",
   "text": "fire. With a direction it is a punch, with the stick in the middle a flame ($914D set, the flame timer $82BB,x to 6); first it eats what is in reach ($914E). A flame within three columns and a row of the other monster hurts it ($931E) and scores 1; one while $8264,x is set (with $8242 of 7 or more) scores 1, takes 1 from $8242, asks for sound 2 on the third voice and counts $8240 round 1 to 4. Then by the direction, or for a flame the way the monster faces, it goes to the building above ($8DB1), below ($8E75), to the left ($8F2C) or to the right ($901C)."
  },
  {
   "address": 36273,
   "type": "line",
   "text": "fire up, or a flame facing up: looks for a standing building just above the monster within its width. A punch, while the monster has punching power ($80ED,x), knocks a hole in it ($B44A), starts it falling ($8290,x) and scores 10; a flame sets it alight ($9730, then $94FF every second pass) and scores 1."
  },
  {
   "address": 36469,
   "type": "line",
   "text": "fire down, or a flame facing down: the same for a building just below."
  },
  {
   "address": 36652,
   "type": "line",
   "text": "fire left, or a flame facing left: the same for a building to the left; a punch at nothing with power left counts $82B7,x."
  },
  {
   "address": 36728,
   "type": "line",
   "text": "the height of the building less one, written into this compare's operand at $8F6D"
  },
  {
   "address": 36843,
   "type": "line",
   "text": "nine bytes no code reaches: sta $8298,x, ldx $80A6, rts"
  },
  {
   "address": 36892,
   "type": "line",
   "text": "fire right, or a flame facing right: the same for a building to the right."
  },
  {
   "address": 36954,
   "type": "line",
   "text": "the height of the building less one, written into this compare's operand at $904F"
  },
  {
   "address": 37054,
   "type": "line",
   "text": "the end of a punch or a flame: keeps where it was aimed in $82BD,x; for a flame asks for sound 3 and moves the animation to the flame frames; for a punch starts the punch timer ($82B9,x = 8), stops the monster's sound and takes a cell of punching power ($92D6)."
  },
  {
   "address": 37094,
   "type": "line",
   "text": "nine bytes no code reaches, the same as those at $8FEB"
  },
  {
   "address": 37137,
   "type": "line",
   "text": "the eating timer: counts it down and scores 1 when it runs out"
  },
  {
   "address": 37197,
   "type": "line",
   "text": "1 while the fire being handled is a flame, 0 for a punch; set at $8D36"
  },
  {
   "address": 37198,
   "type": "line",
   "text": "before a punch or a flame: if one of the eight things at $821F (people) is within four columns and two or three rows above the monster, it is taken ($821F,y = 2) and eaten: the eating timer ($82BF,x = 6), sound $0D, the eating frames, and the punch or flame is dropped. Otherwise it looks at the four cells in each of four rows around the monster for a pickup ($91C4)."
  },
  {
   "address": 37316,
   "type": "line",
   "text": "what the character at ($FB),Y gives: $82 sets the punching power ($80ED,x = 1) and adds a cell to the second bar; $86 adds a cell to the first bar; $8A hurts the monster eight times ($931E); $8E sets $9687 to 2, asks for sound 8, scores 3 and counts $8032 on. Each taken leaves the mark $AF on its four cells ($92B9), which $8970 puts back."
  },
  {
   "address": 37508,
   "type": "line",
   "text": "adds to a bar: the cell at ($FB) + the bar's place ($9342) is made full ($FE) and what it held moves to the next cell, up to the fifth."
  },
  {
   "address": 37590,
   "type": "line",
   "text": "a punch spends a cell of punching power: takes one from the monster's second bar ($938D on $C82D or $C845), and when the bar is empty clears $80ED,x, so a punch does nothing more."
  },
  {
   "address": 37662,
   "type": "line",
   "text": "hurts monster X: sets $821D,x and takes one from its first bar ($938D on $C805 for the lizard, $C81D for the ogre). When the bar is empty ($9347) and the monster is in the game ($80E9,x = $20), its count starts down (dying, $8AA9 counts it on) and its score goes to the best ($B3CF). The lizard's branch reads the bar's place and the empty flag through the two loads at $9341 and $9346, whose operands are those variables; the ogre's reads the same bytes with absolute loads. Saves $FB/$FC, X and Y. Seven callers."
  },
  {
   "address": 37698,
   "type": "line",
   "text": "the place in a bar that $938D and $9284 work on, 0 to 4, kept as the operand of the load at $9341"
  },
  {
   "address": 37703,
   "type": "line",
   "text": "set by $938D when the bar it takes from is empty, kept as the operand of the load at $9346"
  },
  {
   "address": 37773,
   "type": "line",
   "text": "takes one from the bar at ($FB), at the place A: the cells go from $FE (full) down to $FA (empty); when the cell is empty it moves the place back one, and when the first cell is empty sets $9347."
  },
  {
   "address": 37806,
   "type": "line",
   "text": "adds a point the monsters are owed ($80E7, $80E8) to each one's score, one a pass: the score's tens digit is counted on ($93D1), so a point is 10 on the screen."
  },
  {
   "address": 37841,
   "type": "line",
   "text": "counts on the score digit at ($FB)+5, carrying into the digits to its left; the digits are the heavy ones, $F0-$F9."
  },
  {
   "address": 37872,
   "type": "line",
   "text": "draws the next stage of building X, with its size from $827E/$827F and its screen place from $9730: a standing building is redrawn from its graphic; a burning one ($8290,x from 1 to 4) gets the next of its flame pictures (the characters from $82B0), with a random chance from $9C12 of going out; at stage 5 it falls ($82A0,x); a fallen one ($8298,x) is cleared away ($95D9). Returns the time to the next stage, from $9C12."
  },
  {
   "address": 38050,
   "type": "line",
   "text": "the flame picture's first character, written at $9496 from $82B0"
  },
  {
   "address": 38054,
   "type": "line",
   "text": "the flame picture's second character, written at $948F"
  },
  {
   "address": 38143,
   "type": "line",
   "text": "a flame on building X: with a random chance from $9C12 lets one of the eight people at $821F run out of it (at a random column of the building, at its foot), then works its way down the building a row ($82A0,x) and scatters one to three rubble characters ($B0) on that row; when the rows run out the building falls ($8298,x). Asks for sound $0B on the third voice and sets the building's timer to 5."
  },
  {
   "address": 38209,
   "type": "line",
   "text": "calls $9594, the rts just before the routine at $9595, so that routine never runs"
  },
  {
   "address": 38293,
   "type": "line",
   "text": "a routine no instruction reaches: it saves Y and $FB/$FC, moves down the building's height less one rows, draws its width in character $94 with colour 8, $93 at the left end and $95 at the right, and restores them, as the fall at $94D2 does. The only call near it, at $9541, lands on the rts at $9594, one byte before it, so it is switched off."
  },
  {
   "address": 38361,
   "type": "line",
   "text": "the last stage of building X, its fall: asks for sound 4 on the third voice, runs $A7AF if $A8A4 is set, then moves the building's picture down a row on the screen each time ($8298,x counts the rows, the top row is filled with the mark $AF). When it is down, random numbers from $9C12 pick what the rubble holds: nothing, $82 (in colour 10), $86 (colour 8), $8A (colour 13) or, while the city's egg is not out ($9687 = 0), the egg $8E (colour 15, and $9687 becomes 1); the sixth building to fall holds the egg if it is not out yet. A pickup is four characters, two by two, two rows above the rubble. Then a row of rubble ($9C, colour 9, with $9B and $9D at the ends), the building gone ($82A8,x = 1), and one more fallen ($82B6); when six have fallen outside the fourth city type, $8032 starts counting to the end of the city. Returns 2, the time to the next stage."
  },
  {
   "address": 38398,
   "type": "line",
   "text": "the rows the fall has to move, written into this compare's operand at $95F2"
  },
  {
   "address": 38535,
   "type": "line",
   "text": "whether this city's egg is out, kept as the operand of the load at $9686: 0 not yet, 1 out, 2 taken ($91DD). Cleared when a city is picked ($84A8); the volcano sets it to 1 at once ($87CC), its golden egg drawn on the screen ($87A8), so its rubble holds none"
  },
  {
   "address": 38590,
   "type": "line",
   "text": "the colour of the pickup, written at $9693"
  },
  {
   "address": 38636,
   "type": "line",
   "text": "the colour of the city's own character ($A9A3), written at $96E1 from $A2A1"
  },
  {
   "address": 38704,
   "type": "line",
   "text": "for building X ($80A5) the screen address of its top left ($C800 + 40 times its row $826E,x plus 1, plus its column $8266,x) in $FB/$FC, the address of its picture by its type ($8276,x: $A209 low bytes, $A22F high) in $FD/$FE, and its height and width ($A27B, $A255) in $827E and $827F. Six callers."
  },
  {
   "address": 38770,
   "type": "line",
   "text": "builds the lower sprite of each monster that is in the game, every pass: the frame from the lizard's table at $8133 or the ogre's at $81BB, by its animation frame and facing ($8213 + $8215), is copied from the sprite shapes at $0BB8 (64 bytes a frame) to the buffer at $9D12, masked against the scenery ($9811), and copied to the sprite's memory, $CC80 for the lizard and $CD00 for the ogre."
  },
  {
   "address": 38929,
   "type": "line",
   "text": "clears the pixels of the monster's frame in $9D12 that are behind scenery: it looks at the cells around the monster (from $8CC8) and, for each that holds a character below $A0, clears the matching part of the frame, so the monster seems to walk behind walls and buildings."
  },
  {
   "address": 38958,
   "type": "line",
   "text": "the offset of the cell the mask looks at, kept in this load's operand"
  },
  {
   "address": 39075,
   "type": "line",
   "text": "where in the frame the mask writes, kept in this operand"
  },
  {
   "address": 39143,
   "type": "line",
   "text": "the mask's nibble, $0F or $F0, written at $98DD"
  },
  {
   "address": 39205,
   "type": "line",
   "text": "places each monster's three sprites from its column and row: the body's two (x = column times 8 plus half-steps times 4 plus $20, the lower 21 lines below the upper), a third for the punching arm 25 pixels to the side it punches, with its frame from $9C00 or $9C09, and a hurt monster is drawn 3 lines lower for a pass ($821D, $821E). A monster not in the game is moved off the screen (y $FA). The lizard is drawn green ($0D) and the ogre light red ($0A). When the ogre stands lower on the screen than the lizard, nearer the player, it swaps the two monsters' sprites, pointers, x high bits and colours, so the nearer one is drawn in front."
  },
  {
   "address": 39206,
   "type": "line",
   "text": "the lizard's colour, written into this load's operand at $87E8: 13 (light green) in most city types and 5 (green) in the second"
  },
  {
   "address": 39286,
   "type": "line",
   "text": "the low byte of the lizard's x, kept in this add's operand"
  },
  {
   "address": 39484,
   "type": "line",
   "text": "the low byte of the ogre's x, kept in this add's operand"
  },
  {
   "address": 39744,
   "type": "line",
   "text": "the ogre's sprites' x high bits, moved into this add's operand when the sprites are swapped"
  },
  {
   "address": 39754,
   "type": "line",
   "text": "the colour the swap gives the lizard, written into this load's operand at $87EB"
  },
  {
   "address": 39759,
   "type": "line",
   "text": "writes the second band's sprites into the operands of the interrupt at $88A2: unless $8691 is set, its line (the higher of the monsters' upper sprites less $1A, into $889E) and $A4E9; then the six monster sprites' positions and pointers ($80CE-$80E6), the pair at $8244/$8245 as sprites 6 and 7, and the x high bits."
  },
  {
   "address": 39935,
   "type": "line",
   "text": "the mask nibble kept by $98E0; no instruction found reads it"
  },
  {
   "address": 39936,
   "type": "line",
   "text": "the sprite pointers of the punching arm on the left, by the punch timer"
  },
  {
   "address": 39945,
   "type": "line",
   "text": "the sprite pointers of the punching arm on the right, by the punch timer"
  },
  {
   "address": 39954,
   "type": "line",
   "text": "the table of random numbers, 256 bytes of 1 to 4: nearly every random choice counts $A91E on and reads the byte there, and each pass of play writes a new random number at the current place ($89CC), so the table keeps changing as the game runs"
  },
  {
   "address": 40350,
   "type": "line",
   "text": "the byte before the hidden list: $B14D reads the list from $9D9E + X, with X from 1"
  },
  {
   "address": 40351,
   "type": "line",
   "text": "the hidden list of names the title writes, eleven characters at a time, in black on black (ASCII, @ a space): WINDOWPAINS, FLOODLANDS, NEW ORDER, MACHESTER, HACIENDA, THE VENUE, SUICIDE, RENTBOYS, DAVID, TIM, AMIR, EEEEEEEEEEE, WAGNER, TOM, GARY NICK, DANNY SPACEMEN 3 (the 3 is the font's digit $1E, not ASCII), ASYLUM, RIP INTERSTELLA, OVERDRIVE, LED ZEP, VOODOO, RAYNITZER, EBB, NME, PERFECT WAY, THE THE. The place in the list ($B140) steps by 11 to 253 and then wraps to 0, so the last characters, THE THE, are never shown"
  },
  {
   "address": 40615,
   "type": "line",
   "text": "building type 1's picture, 6 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40640,
   "type": "line",
   "text": "building type 2's picture, 4 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40653,
   "type": "line",
   "text": "building type 3's picture, 4 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40666,
   "type": "line",
   "text": "building type 4's picture, 5 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40687,
   "type": "line",
   "text": "building type 5's picture, 4 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40708,
   "type": "line",
   "text": "building type 6's picture, 3 characters wide and 9 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40736,
   "type": "line",
   "text": "building type 7's picture, 7 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40765,
   "type": "line",
   "text": "building type 8's picture, 4 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40778,
   "type": "line",
   "text": "building type 9's picture, 6 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40803,
   "type": "line",
   "text": "building type 10's picture, 7 characters wide and 6 high, row by row ($9730 finds it through $A209/$A22F); no city uses this type, and its picture runs over type 11's, which starts a byte later"
  },
  {
   "address": 40804,
   "type": "line",
   "text": "building type 11's picture, 9 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40841,
   "type": "line",
   "text": "building type 12's picture, 3 characters wide and 6 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40860,
   "type": "line",
   "text": "building type 13's picture, 3 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40873,
   "type": "line",
   "text": "building type 14's picture, 5 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40889,
   "type": "line",
   "text": "building type 15's picture, 3 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40905,
   "type": "line",
   "text": "building type 16's picture, 14 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40948,
   "type": "line",
   "text": "building type 17's picture, 9 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 40960,
   "type": "line",
   "text": "the rest of building type 17's picture; the memory map's edge at $A000 cuts it here"
  },
  {
   "address": 40994,
   "type": "line",
   "text": "building type 18's picture, 4 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41007,
   "type": "line",
   "text": "building type 19's picture, 3 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41017,
   "type": "line",
   "text": "building type 20's picture, 8 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41058,
   "type": "line",
   "text": "building type 21's picture, 5 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41084,
   "type": "line",
   "text": "building type 22's picture, 3 characters wide and 6 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41106,
   "type": "line",
   "text": "building type 23's picture, 6 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41125,
   "type": "line",
   "text": "building type 24's picture, 4 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41138,
   "type": "line",
   "text": "building type 25's picture, 4 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41155,
   "type": "line",
   "text": "building type 26's picture, 7 characters wide and 6 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41198,
   "type": "line",
   "text": "building type 27's picture, 9 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41235,
   "type": "line",
   "text": "building type 28's picture, 5 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41261,
   "type": "line",
   "text": "building type 29's picture, 3 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41271,
   "type": "line",
   "text": "building type 30's picture, 3 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41281,
   "type": "line",
   "text": "building type 31's picture, 9 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41318,
   "type": "line",
   "text": "building type 32's picture, 10 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41359,
   "type": "line",
   "text": "building type 33's picture, 10 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41400,
   "type": "line",
   "text": "building type 34's picture, 7 characters wide and 3 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41422,
   "type": "line",
   "text": "building type 35's picture, 4 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41443,
   "type": "line",
   "text": "building type 36's picture, 4 characters wide and 5 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41464,
   "type": "line",
   "text": "building type 37's picture, 4 characters wide and 4 high, row by row ($9730 finds it through $A209/$A22F)"
  },
  {
   "address": 41481,
   "type": "line",
   "text": "the building pictures' addresses, low bytes, by building type, 38 entries; type 0 is no building"
  },
  {
   "address": 41519,
   "type": "line",
   "text": "the building pictures' addresses, high bytes, by building type"
  },
  {
   "address": 41557,
   "type": "line",
   "text": "each building type's width in characters"
  },
  {
   "address": 41595,
   "type": "line",
   "text": "each building type's height in characters"
  },
  {
   "address": 42039,
   "type": "line",
   "text": "the frame work for what is not a monster: the cannon ($A9B4), then the people ($A8A9)."
  },
  {
   "address": 42045,
   "type": "line",
   "text": "the hornets ($A446), then the white flyer ($A5CD)."
  },
  {
   "address": 42054,
   "type": "line",
   "text": "the first band's sprites 0 and 1, two hornets. Counts the animation step $8212 round 0 to 3 and the two counts at $A452 and $A456 down; then each hornet that is out ($823B,x) flies 4 pixels a pass across, left or right by $8237,x, and 2 lines down to the line in $A4E9 (or up, once $8239,x is set). There it looks at the monster higher on the screen: when the hornet's column (its x divided by 8, less 3) is the monster's column or one more, a monster breathing fire ($82BB,x of 2 or more) burns it, scoring 5 with sound 2, and the hornet dies ($823D,x counts to 5 and it is taken off); otherwise it stings, hurting the monster twice ($931E) with sound 5. Either way it then flies up. A hornet that leaves the screen is taken off; one that is not out is sent in at random ($9C12) at the line in $A4E9, from the left or the right edge."
  },
  {
   "address": 42066,
   "type": "line",
   "text": "a count kept in this load's operand, set to $50 when a city is picked ($8477) and counted down each pass by $A446"
  },
  {
   "address": 42070,
   "type": "line",
   "text": "a count kept in this load's operand, set to $50 when a city is picked ($8474), counted down by $A446 while $A452 is 0 and it is 5 or more"
  },
  {
   "address": 42217,
   "type": "line",
   "text": "the lowest line the hornets come down to, kept as the operand of the compare at $A4E8; $9B68 writes it (the second band's line less $15), and the white flyer turns at it too"
  },
  {
   "address": 42445,
   "type": "line",
   "text": "the first band's sprite 2, white. Sent in at random from $9C12 above one of the monsters, it zigzags across two pixels a pass, turning at random times ($A8A3) and at the screen's edges, and comes down 3 lines a pass to the line in $A4E9, then climbs back 3 a pass. While none is falling it may drop something ($A73E). Near the bottom of its dive, a monster breathing fire at it scores 5 and sends it off (sound 2, $823F)."
  },
  {
   "address": 42613,
   "type": "line",
   "text": "the white flyer's way across, kept in this load's operand: 1 to the right, $FF to the left"
  },
  {
   "address": 42731,
   "type": "line",
   "text": "the white flyer's step up or down, kept in this add's operand: 3 down, $FD up"
  },
  {
   "address": 42814,
   "type": "line",
   "text": "starts the white flyer's dropping when none is falling ($A8A4 = 0): with random chances from $9C12, at the flyer's column ($A87A) and the row its y divided by 8, less 5, gives, and then moves it ($A7AF, $A7C1)."
  },
  {
   "address": 42927,
   "type": "line",
   "text": "puts back the character the dropping covered ($A7BD) at its place ($A8A7/$A8A8 + $A8A5)."
  },
  {
   "address": 42941,
   "type": "line",
   "text": "the character under the dropping, kept in this load's operand by $A837"
  },
  {
   "address": 42945,
   "type": "line",
   "text": "the dropping falls a row; at the bottom of the play field it stops ($A874); a monster just below it and within four columns is hurt twice ($931E), with sound 5, and it stops."
  },
  {
   "address": 43022,
   "type": "line",
   "text": "draws the dropping at its place: makes character $9E from the character there (or the mark $AF over a person or a pickup), cut and filled with the pattern at $ABA7 and $ABAF, at $C4F0, and writes $9E to the cell."
  },
  {
   "address": 43130,
   "type": "line",
   "text": "the white flyer's column on the screen, its x divided by 8 (with 32 added when its x high bit is set, up to $28), less 2, into $A88C."
  },
  {
   "address": 43148,
   "type": "line",
   "text": "the white flyer's column, kept in this load's operand by $A87A"
  },
  {
   "address": 43171,
   "type": "line",
   "text": "counts down to the white flyer's next turn, set at random from $9C12"
  },
  {
   "address": 43172,
   "type": "line",
   "text": "set while the white flyer's dropping is falling"
  },
  {
   "address": 43173,
   "type": "line",
   "text": "the column the dropping falls in"
  },
  {
   "address": 43174,
   "type": "line",
   "text": "the row the dropping has reached"
  },
  {
   "address": 43175,
   "type": "line",
   "text": "the low byte of the screen address of the dropping's row"
  },
  {
   "address": 43176,
   "type": "line",
   "text": "the high byte of the screen address of the dropping's row"
  },
  {
   "address": 43177,
   "type": "line",
   "text": "the eight people, one pass in two ($A8AA): each that is out ($821F,x) and standing on the city's floor character ($A9A3), or on a few others, takes a random step ($9C12) left, right, up or down if the cell there is floor too, and is drawn as character $96 with the floor put back behind it. One that has been eaten ($821F,x = 2) is taken off and the floor put back. One whose cell is no longer floor is lost."
  },
  {
   "address": 43178,
   "type": "line",
   "text": "which pass in two the people move on, kept in this load's operand"
  },
  {
   "address": 43294,
   "type": "line",
   "text": "the place in the table of random numbers at $9C12, kept in this load's operand: nearly every random choice counts it on one and reads the table there"
  },
  {
   "address": 43427,
   "type": "line",
   "text": "the city's floor character, kept in this load's operand: $853E writes it from $B6C6. The people walk on it, the monsters walk on it, and the people's cells are put back to it"
  },
  {
   "address": 43444,
   "type": "line",
   "text": "the second band's sprites 6 and 7, brown, a cannon on the ground with health $8242 (14 at the start of a city). While its health is 7 or more it rolls towards a monster within 30 pixels or back and forth ($8246, $8247), and fires at random: a shell ($ABA4-$ABA6) that flies up, left, right or down from it a cell a pass, hurting a monster it reaches ($931E) with sound 5. Below 7 its frames show it breaking up, a step a pass, and at 1 it is gone (sound 3). Its frames are the pointers at $AB96 and $AB9D by $8240."
  },
  {
   "address": 43547,
   "type": "line",
   "text": "which way the cannon rolls, kept in this load's operand: $AA1A changes it each time $8246 runs out"
  },
  {
   "address": 43680,
   "type": "line",
   "text": "the character under the cannon's shell, kept in this load's operand"
  },
  {
   "address": 43749,
   "type": "line",
   "text": "the cannon's shell: hurts a monster within four columns of it and on its row or the two below ($931E, sound 5) and stops; otherwise draws it as character $9F, made from the character under it with the pattern at $ABA7 and $ABAF, at $C4F8. It stops on the flyer's dropping."
  },
  {
   "address": 43897,
   "type": "line",
   "text": "the screen address of the row of the cannon's shell ($ABA5) in $FB/$FC, with its column in Y."
  },
  {
   "address": 43926,
   "type": "line",
   "text": "the cannon's left sprite's pointer by its frame $8240, 0 for none"
  },
  {
   "address": 43933,
   "type": "line",
   "text": "the cannon's right sprite's pointer by its frame"
  },
  {
   "address": 43940,
   "type": "line",
   "text": "the column of the cannon's shell, 0 when there is none"
  },
  {
   "address": 43941,
   "type": "line",
   "text": "the row of the cannon's shell"
  },
  {
   "address": 43942,
   "type": "line",
   "text": "which way the shell flies: 1 up, 2 right, 3 down, any other left"
  },
  {
   "address": 43943,
   "type": "line",
   "text": "the mask the dropping's and the shell's character are cut with, a square hole of four by four in the middle"
  },
  {
   "address": 43951,
   "type": "line",
   "text": "the pattern put in the hole, in multicolour pairs of the second colour"
  },
  {
   "address": 43959,
   "type": "line",
   "text": "the end of a city whose egg was taken ($9687 = 2): the fight in the cave. Sets it up ($AC02), then every four frames runs a step of it ($ACA1), draws the monsters ($AE4E) and adds to the scores, until one monster has been hit five times ($ABE1). The winner then walks to the middle with the egg ($AE82). Afterwards it gives back the city type and the monsters' $80E9 as they were, stops the music and the sound effects."
  },
  {
   "address": 44001,
   "type": "line",
   "text": "set when the fight in the cave is over, kept as the operand of this load"
  },
  {
   "address": 44034,
   "type": "line",
   "text": "sets up the fight in the cave with the screen off: picks the next city ($8444) and keeps its type in $80A7, builds city type 9, the cave ($853E, with $8691 set so that the music plays and the buildings are left out), keeps each monster's $80E9 in $AF1F and gives it 1, puts the lizard at column 8 and the ogre at column $1B on row $13, clears the hits and the sound requests, starts tune 2 and draws the egg ($8E-$91) between them."
  },
  {
   "address": 44193,
   "type": "line",
   "text": "a step of the fight for each monster: a monster played by a person reads its stick, the other is played by the computer ($AE01). Left and right walk, as far as the other monster; fire punches; up ducks ($82BF,x = 14). A punch that finds the other within two columns and not ducking counts a hit on it ($AF1D,x), shakes it ($821D,x) and flashes the border. On the fifth hit the other monster wins, scores 50 if it is played by a person, and the fight is over."
  },
  {
   "address": 44395,
   "type": "line",
   "text": "seven bytes no code reaches: lda #$0A, sta $82B9,x, lda #$14, a punch like the one at $AD61 with the punch timer"
  },
  {
   "address": 44402,
   "type": "line",
   "text": "the end of a punch in the cave: sets the action, clears the frame and, if the other monster is not ducking and is within two columns, counts a hit on it"
  },
  {
   "address": 44531,
   "type": "line",
   "text": "the ogre's frames are eight on from the lizard's in the fight's animation"
  },
  {
   "address": 44545,
   "type": "line",
   "text": "plays a monster nobody controls in the fight: with random chances from $9C12 it walks towards the other or stands, punches when the other is within two columns, or ducks; the move goes into $8A61 as a stick would."
  },
  {
   "address": 44622,
   "type": "line",
   "text": "draws the monsters in the fight: their frames and sprites ($9772, $9925), no arm sprites, no cannon, and the second band ($9B4F)."
  },
  {
   "address": 44674,
   "type": "line",
   "text": "the winner ($AE88) walks to column $11 with the egg, the other is taken off the screen, and the winner holds the egg up (frame $28) five times, then stands for ten more steps."
  },
  {
   "address": 44680,
   "type": "line",
   "text": "kept as the operand of this load: the winner of the fight; it is also the pickup flag of $914E and $91C4 and a count for $AF0D"
  },
  {
   "address": 44751,
   "type": "line",
   "text": "the count of the winner's steps in a hold, kept in this load's operand"
  },
  {
   "address": 44774,
   "type": "line",
   "text": "the count of the winner's holds, kept in this load's operand"
  },
  {
   "address": 44780,
   "type": "line",
   "text": "steps the winner's animation frame on"
  },
  {
   "address": 44798,
   "type": "line",
   "text": "one step of the winner's walk: draws ($AE4E), adds to the scores and waits three frames"
  },
  {
   "address": 44829,
   "type": "line",
   "text": "the hits the lizard has taken in the fight"
  },
  {
   "address": 44830,
   "type": "line",
   "text": "the hits the ogre has taken in the fight"
  },
  {
   "address": 44831,
   "type": "line",
   "text": "the lizard's $80E9 before the fight, kept while it fights with 1; when it is 0 the computer plays the lizard"
  },
  {
   "address": 44832,
   "type": "line",
   "text": "the ogre's $80E9 before the fight"
  },
  {
   "address": 44833,
   "type": "line",
   "text": "the stick bits the computer gives a walk, toward the other: $08 for the lizard and $04 for the ogre"
  },
  {
   "address": 44835,
   "type": "line",
   "text": "the title: with the screen off sets it up ($AF38), waits three frames, turns the screen on and runs the title loop ($B09C), which returns when a fire button starts a game."
  },
  {
   "address": 44856,
   "type": "line",
   "text": "sets up the title: video bank 3, the screen at $C800 and the characters at $C000, the screen blank and in hires, black border and background; clears the screen with white colour; copies the font from $2440 and $24E0 to $C000; writes the credits from the text at $B26C and $B2D4 and LIZARD, OGRE, BEST and the two best scores from $B324-$B346 (the scores' ASCII digits less $15, the font's digits), in their colours; copies the monsters' title frames from $0EB8 and $17F8 to $CC80 and $CD00; turns all sprites on, multicoloured; starts tune 1; and installs the title's interrupt ($B1CE on line 0)."
  },
  {
   "address": 45212,
   "type": "line",
   "text": "one pass of the title every two frames. Steps the two monsters' frames round 0 to $3F, copies their frames to the sprites ($B1A7) and points the title's interrupt at them ($B230, $B23A); every eighth pass sweeps a colour along the credit lines ($B0F5); every 32 passes writes the next eleven characters of the hidden list at $9D9F to the top left in black ($B13E); with 1, the left arrow, CTRL and 2 held it colours them white and writes MYRTLE and DILL over LIZARD and OGRE ($B161). Fire on port 1 starts the ogre, fire on port 2 the lizard ($B187): the routine returns after counting $80EB or $80EC on, stopping the music ($68F7 = 0) and the effects ($754E)."
  },
  {
   "address": 45305,
   "type": "line",
   "text": "the column the colour sweep along the credits has reached, $0F to $1F, kept in this load's operand"
  },
  {
   "address": 45366,
   "type": "line",
   "text": "the count of passes to the next eleven names, kept in this load's operand: $B134 adds 8 each pass, and the names move on when it comes round to 0"
  },
  {
   "address": 45376,
   "type": "line",
   "text": "the place in the hidden list at $9D9F of the next eleven names, kept in this load's operand, stepped by 11"
  },
  {
   "address": 45479,
   "type": "line",
   "text": "copies a monster's title frame: frame Y of the shapes at $0BB8 (64 bytes a frame) to the sprite at the address in $B1C8/$B1C9."
  },
  {
   "address": 45509,
   "type": "line",
   "text": "the low byte of the frame's address, written by $B1A7"
  },
  {
   "address": 45510,
   "type": "line",
   "text": "the high byte of the frame's address"
  },
  {
   "address": 45512,
   "type": "line",
   "text": "the low byte of the sprite the frame is copied to, $CC80 or $CD00"
  },
  {
   "address": 45513,
   "type": "line",
   "text": "the high byte of that address"
  },
  {
   "address": 45518,
   "type": "line",
   "text": "the title's interrupt on line 0: black border, the eight sprites of the AAARGH! logo at the positions at $B353, with the pointers at $B375, light blue and expanded, the sprites' multicolours, and the music ($68F8). Chains to $B224 on line 120."
  },
  {
   "address": 45604,
   "type": "line",
   "text": "the title's interrupt on line 120: puts the sprites at the positions at $B364 for the two monsters, two sprites each, unexpanded, the lizard green and the ogre light red, with the pointers $51 and $76 (rewritten by $B09C) and $32 and $34. Chains to $B1CE on line 0."
  },
  {
   "address": 45616,
   "type": "line",
   "text": "the lizard's first title sprite's pointer, written into this load's operand by $B0C3"
  },
  {
   "address": 45626,
   "type": "line",
   "text": "the ogre's first title sprite's pointer, written by $B0DD"
  },
  {
   "address": 45676,
   "type": "line",
   "text": "the title's eight credit lines, 13 characters each, ASCII with @ for a space (the copy keeps the low six bits): WRITTEN BY, VICIOUS FISH, WITH ART BY, ERIC CASEY, AND THE, PICTURELEMENT, AND SOUND BY, WALLY BEBEN"
  },
  {
   "address": 45689,
   "type": "line",
   "text": "the credits' second line, VICIOUS FISH"
  },
  {
   "address": 45702,
   "type": "line",
   "text": "the third, WITH ART BY"
  },
  {
   "address": 45715,
   "type": "line",
   "text": "the fourth, ERIC CASEY"
  },
  {
   "address": 45728,
   "type": "line",
   "text": "the fifth, AND THE"
  },
  {
   "address": 45741,
   "type": "line",
   "text": "the sixth, PICTURELEMENT"
  },
  {
   "address": 45754,
   "type": "line",
   "text": "the seventh, AND SOUND BY"
  },
  {
   "address": 45767,
   "type": "line",
   "text": "the eighth, WALLY BEBEN"
  },
  {
   "address": 45780,
   "type": "line",
   "text": "the title's four lines of 20 characters: A BINARY DESIGN GAME, FOR MELBOURNE HOUSE, COPYRIGHT 1989 (the year in the font's own digits, $1C $24 $23 $24) and PRESS FIRE TO START"
  },
  {
   "address": 45800,
   "type": "line",
   "text": "the second line, FOR MELBOURNE HOUSE"
  },
  {
   "address": 45820,
   "type": "line",
   "text": "the third, COPYRIGHT 1989"
  },
  {
   "address": 45840,
   "type": "line",
   "text": "the fourth, PRESS FIRE TO START"
  },
  {
   "address": 45860,
   "type": "line",
   "text": "LIZARD, seven characters, written beside the lizard; the easter egg writes MYRTLE over it"
  },
  {
   "address": 45867,
   "type": "line",
   "text": "BEST, seven characters, written under both names"
  },
  {
   "address": 45874,
   "type": "line",
   "text": "the lizard's best score, seven ASCII digits, which $B3CF updates when the lizard dies with a higher score; $AF38 writes it with $15 taken off each digit, the font's digits"
  },
  {
   "address": 45881,
   "type": "line",
   "text": "OGRE, seven characters"
  },
  {
   "address": 45888,
   "type": "line",
   "text": "the ogre's best score, seven ASCII digits"
  },
  {
   "address": 45895,
   "type": "line",
   "text": "MYRTLE, the lizard's hidden name, six characters"
  },
  {
   "address": 45901,
   "type": "line",
   "text": "DILL, the ogre's hidden name, six characters with a space either side"
  },
  {
   "address": 45907,
   "type": "line",
   "text": "the title's top band, the AAARGH! logo: eight sprites' x and y and the x high bits, for $D000-$D010 ($B1CE)"
  },
  {
   "address": 45924,
   "type": "line",
   "text": "the title's second band, the monsters: four sprites' x and y and the x high bits ($B224); the other four are put at 0"
  },
  {
   "address": 45941,
   "type": "line",
   "text": "the logo's eight sprite pointers, $BC to $C3, the shapes at $EF00-$F0FF"
  },
  {
   "address": 45949,
   "type": "line",
   "text": "a message in the program, 82 bytes of ASCII that no instruction reads: I'M AT PAINS TO SEE...SEE THROUGH THOSE WINDOWPAINS...SEE RENTBOYS AND GOTO 16384. (Windowpains and Rentboys are in the title's hidden list too; 16384 is $4000, which holds city type 3's characters)"
  },
  {
   "address": 46031,
   "type": "line",
   "text": "on a monster's death, compares its seven score digits ($C80B for the lizard, $C815 for the ogre, less $C0, so they are ASCII) with its best score on the title ($B332 or $B340) and copies them there if they are higher. The addresses are written into the compares at $B419-$B437."
  },
  {
   "address": 46105,
   "type": "line",
   "text": "the low byte of the score's address, written by $B3CF"
  },
  {
   "address": 46106,
   "type": "line",
   "text": "the high byte of the score's address"
  },
  {
   "address": 46111,
   "type": "line",
   "text": "the low byte of the best score's address"
  },
  {
   "address": 46112,
   "type": "line",
   "text": "the high byte of the best score's address"
  },
  {
   "address": 46128,
   "type": "line",
   "text": "the low byte of the score's address, for the copy"
  },
  {
   "address": 46129,
   "type": "line",
   "text": "its high byte"
  },
  {
   "address": 46134,
   "type": "line",
   "text": "the low byte of the best score's address, for the copy"
  },
  {
   "address": 46135,
   "type": "line",
   "text": "the high byte of the best score's address, for the copy"
  },
  {
   "address": 46140,
   "type": "line",
   "text": "the colour RAM address for the screen address in $FB/$FC, $1000 higher, in $FD/$FE."
  },
  {
   "address": 46154,
   "type": "line",
   "text": "draws a punched hole at ($FB),Y: character $A9 over $AA, in colour 10."
  },
  {
   "address": 46179,
   "type": "line",
   "text": "animates characters once a pass: three in four phases ($C498-$C4AF from $B4BF), six in four ($C548-$C577 from $B547) and four in two ($C4B8-$C4D7 from $B507). The phases are kept in the operands at $B465 and $B4A4."
  },
  {
   "address": 46181,
   "type": "line",
   "text": "the four-phase animation's phase, 0 to 3, kept in this add's operand"
  },
  {
   "address": 46244,
   "type": "line",
   "text": "the two-phase animation's phase, 0 or 1, kept in this add's operand"
  },
  {
   "address": 46271,
   "type": "line",
   "text": "the frames of the three characters $93-$95 that animate in four phases, copied to $C498 by $B463, which reads them backwards from $B4BF + 24 times the phase: phases 1 to 3 take $B4C0-$B507 (the last of them takes the next table's first byte), and for phase 0 the index wraps, so that phase's frame is $B4BF and $B5A8-$B5BE"
  },
  {
   "address": 46343,
   "type": "line",
   "text": "the frames of the four characters $97-$9A that animate in two phases, 32 bytes a phase, copied to $C4B8 by $B463, which reads them backwards from $B507 + 32 times the phase (for phase 0 the index wraps below $B507)"
  },
  {
   "address": 46407,
   "type": "line",
   "text": "the frames of the six characters $A9-$AE that animate in four phases, 48 bytes a phase, copied to $C548 by $B463 backwards from $B547 + 48 times the phase"
  },
  {
   "address": 46551,
   "type": "line",
   "text": "each city type's background colour ($D021), ten entries"
  },
  {
   "address": 46561,
   "type": "line",
   "text": "each city type's first multicolour ($D022)"
  },
  {
   "address": 46571,
   "type": "line",
   "text": "each city type's second multicolour ($D023)"
  },
  {
   "address": 46581,
   "type": "line",
   "text": "the buildings' columns, six a city type: $853E reads city type t's backwards from entry 6t, so entries 1 to 48 are cities 1 to 8 and entry 0 is not read"
  },
  {
   "address": 46630,
   "type": "line",
   "text": "the buildings' rows, six a city type, read the same way"
  },
  {
   "address": 46679,
   "type": "line",
   "text": "the buildings' types, six a city type, read the same way: an index into the pictures at $A209"
  },
  {
   "address": 46728,
   "type": "line",
   "text": "the high byte of each city type's 62 shared characters"
  },
  {
   "address": 46737,
   "type": "line",
   "text": "the low byte of each city type's 62 shared characters: $6317, $647F, $658F, $669F, $672F, $67DF, $BD5F and $BF4F for types 1 to 8"
  },
  {
   "address": 46746,
   "type": "line",
   "text": "the lizard's start column in each city type"
  },
  {
   "address": 46757,
   "type": "line",
   "text": "the lizard's start row in each city type"
  },
  {
   "address": 46768,
   "type": "line",
   "text": "the ogre's start column in each city type"
  },
  {
   "address": 46779,
   "type": "line",
   "text": "the ogre's start row in each city type"
  },
  {
   "address": 46790,
   "type": "line",
   "text": "each city type's floor character, which goes into $A9A3"
  },
  {
   "address": 46799,
   "type": "line",
   "text": "the person's character $96, eight rows exclusive-ored with the blank character ($86DF)"
  },
  {
   "address": 46807,
   "type": "line",
   "text": "each city type's border colour ($D020), ten entries"
  },
  {
   "address": 46817,
   "type": "line",
   "text": "eight bytes after the border colours that no instruction reads"
  },
  {
   "address": 46825,
   "type": "line",
   "text": "installs a raster interrupt: A is its line, X and Y the handler's address. Turns the video chip's interrupts off, writes the line and the vector $0314, clears bit 8 of the line in $D011, turns CIA 1's interrupts and timer A off, acknowledges and enables the raster interrupt and clears I."
  },
  {
   "address": 46868,
   "type": "line",
   "text": "the end of every raster handler: writes the next handler (X and Y) to $0314 and its line (A) to $D012, acknowledges the interrupt, pulls Y, X and A as the KERNAL's entry pushed them and returns."
  },
  {
   "address": 46888,
   "type": "line",
   "text": "waits for the raster to reach line 256 (bit 7 of $D011 set), then to leave the bottom of the screen, so it returns as the next frame starts."
  },
  {
   "address": 46899,
   "type": "line",
   "text": "waits until the raster reaches line A: writes A into its own compare at $B73A and waits while $D012 is less."
  },
  {
   "address": 46906,
   "type": "line",
   "text": "the line $B733 waits for, written into the compare's operand at $B733"
  },
  {
   "address": 46910,
   "type": "line",
   "text": "makes A positive if the flags the caller's last instruction left say it is negative: if N is set it negates A (two's complement). Eight callers."
  },
  {
   "address": 46918,
   "type": "line",
   "text": "waits for the next frame and blanks the screen ($D011 bit 4 off)."
  },
  {
   "address": 46930,
   "type": "line",
   "text": "waits for the next frame and turns the screen on ($D011 bit 4)."
  },
  {
   "address": 46942,
   "type": "line",
   "text": "a random number from 0 to A less one: steps the shift register at $B7B0-$B7B3 eight times ($B794), so its top byte is eight new bits, and multiplies that by A, returning the high byte of the product. X is kept. Five callers."
  },
  {
   "address": 46996,
   "type": "line",
   "text": "steps the 32-bit shift register $B7B0-$B7B3 one bit: the new bit is bits 3 and 6 of its top byte, exclusive-ored (and #$48, adc #$38 and two shifts bring it to the carry), rotated in at the bottom. Returns the top byte."
  },
  {
   "address": 47021,
   "type": "line",
   "text": "the range $B75E was asked for, kept for the multiplication"
  },
  {
   "address": 47022,
   "type": "line",
   "text": "the random byte being multiplied, shifted a bit at a time"
  },
  {
   "address": 47023,
   "type": "line",
   "text": "X saved by $B75E"
  },
  {
   "address": 47024,
   "type": "line",
   "text": "the 32-bit shift register of the random numbers, $B7B0 the top byte; $B794 steps it"
  },
  {
   "address": 47025,
   "type": "line",
   "text": "the shift register's second byte"
  },
  {
   "address": 47026,
   "type": "line",
   "text": "its third byte"
  },
  {
   "address": 47027,
   "type": "line",
   "text": "its bottom byte, where the new bit comes in"
  },
  {
   "address": 48479,
   "type": "line",
   "text": "characters shared by the cities: city type 7 copies the 62 from here, 496 bytes, to $C590"
  },
  {
   "address": 48975,
   "type": "line",
   "text": "city type 8 copies its 62 characters from here, 496 bytes, to $C590: the window runs on past $BFFF into $C000-$C13E, where that city's own characters were copied a moment before, so its last ones are copies of its first"
  },
  {
   "address": 50176,
   "type": "line",
   "text": "characters $80 to $92 as they came with the load, which no routine rewrites: among them the pickups, four characters each from $82 (the lightning), $86 (the hamburger), $8A (the box that hurts) and $8E (the egg)"
  },
  {
   "address": 50432,
   "type": "line",
   "text": "characters $A0 to $A8 as they came with the load, which no routine rewrites"
  },
  {
   "address": 50560,
   "type": "line",
   "text": "character $B0, which a burning building's rows are scattered with ($956F), as it came with the load"
  },
  {
   "address": 51072,
   "type": "line",
   "text": "characters $F0 to $FF as they came with the load: the heavy digits 0 to 9 ($F0-$F9) of the scores and the cells of the bars, $FA (empty) to $FE (full)"
  },
  {
   "address": 52416,
   "type": "line",
   "text": "a sprite shape in video bank 3, pointer $33, between the two built lower sprites; no table or instruction names it"
  },
  {
   "address": 52544,
   "type": "line",
   "text": "sprite shapes in video bank 3, pointers $35 and $36; no table or instruction found names these pointers"
  },
  {
   "address": 52672,
   "type": "line",
   "text": "the lizard's upper-body sprite shapes, pointers $37 to $67 ($CDC0-$D9FF), by the table at $80EF; $37 is also the blank half of a cannon frame"
  },
  {
   "address": 53248,
   "type": "line",
   "text": "sprite shapes in the RAM under the I/O area, which the CPU never reads (the game keeps $01 at $36) and the video chip shows: the rest of the lizard's upper-body shapes to pointer $67 ($D9FF), then the ogre's from pointer $69 ($DA40), by the table at $8177"
  },
  {
   "address": 54272,
   "type": "line",
   "text": "the lizard's upper-body shapes, pointers $50 to $5F"
  },
  {
   "address": 55296,
   "type": "line",
   "text": "colour RAM row 0, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $60"
  },
  {
   "address": 55300,
   "type": "line",
   "text": "colour RAM row 0, column 4, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $60"
  },
  {
   "address": 55324,
   "type": "line",
   "text": "colour RAM row 0, column 28, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $60"
  },
  {
   "address": 55340,
   "type": "line",
   "text": "colour RAM row 1, column 4, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $60"
  },
  {
   "address": 55364,
   "type": "line",
   "text": "colour RAM row 1, column 28, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $61"
  },
  {
   "address": 55552,
   "type": "line",
   "text": "colour RAM row 6, column 16, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $64"
  },
  {
   "address": 55576,
   "type": "line",
   "text": "colour RAM row 7, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $64"
  },
  {
   "address": 55692,
   "type": "line",
   "text": "colour RAM row 9, column 36, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $66"
  },
  {
   "address": 55694,
   "type": "line",
   "text": "colour RAM row 9, column 38, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $66"
  },
  {
   "address": 55696,
   "type": "line",
   "text": "colour RAM row 10, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $66"
  },
  {
   "address": 55738,
   "type": "line",
   "text": "colour RAM row 11, column 2, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $66"
  },
  {
   "address": 55768,
   "type": "line",
   "text": "colour RAM row 11, column 32, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $67"
  },
  {
   "address": 55778,
   "type": "line",
   "text": "colour RAM row 12, column 2, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $67"
  },
  {
   "address": 55795,
   "type": "line",
   "text": "colour RAM row 12, column 19, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $67"
  },
  {
   "address": 55796,
   "type": "line",
   "text": "colour RAM row 12, column 20, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $67"
  },
  {
   "address": 55808,
   "type": "line",
   "text": "colour RAM row 12, column 32, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55812,
   "type": "line",
   "text": "colour RAM row 12, column 36, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55814,
   "type": "line",
   "text": "colour RAM row 12, column 38, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55816,
   "type": "line",
   "text": "colour RAM row 13, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55818,
   "type": "line",
   "text": "colour RAM row 13, column 2, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55835,
   "type": "line",
   "text": "colour RAM row 13, column 19, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55836,
   "type": "line",
   "text": "colour RAM row 13, column 20, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55848,
   "type": "line",
   "text": "colour RAM row 13, column 32, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $68"
  },
  {
   "address": 55892,
   "type": "line",
   "text": "colour RAM row 14, column 36, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $69"
  },
  {
   "address": 55894,
   "type": "line",
   "text": "colour RAM row 14, column 38, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $69"
  },
  {
   "address": 55896,
   "type": "line",
   "text": "colour RAM row 15, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $69"
  },
  {
   "address": 55972,
   "type": "line",
   "text": "colour RAM row 16, column 36, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6A"
  },
  {
   "address": 55974,
   "type": "line",
   "text": "colour RAM row 16, column 38, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6A"
  },
  {
   "address": 55976,
   "type": "line",
   "text": "colour RAM row 17, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6A"
  },
  {
   "address": 55995,
   "type": "line",
   "text": "colour RAM row 17, column 19, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6A"
  },
  {
   "address": 55996,
   "type": "line",
   "text": "colour RAM row 17, column 20, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6A"
  },
  {
   "address": 56035,
   "type": "line",
   "text": "colour RAM row 18, column 19, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6B"
  },
  {
   "address": 56036,
   "type": "line",
   "text": "colour RAM row 18, column 20, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6B"
  },
  {
   "address": 56056,
   "type": "line",
   "text": "colour RAM row 19, column 0, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6B"
  },
  {
   "address": 56064,
   "type": "line",
   "text": "colour RAM row 19, column 8, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6C"
  },
  {
   "address": 56066,
   "type": "line",
   "text": "colour RAM row 19, column 10, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6C"
  },
  {
   "address": 56106,
   "type": "line",
   "text": "colour RAM row 20, column 10, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6C"
  },
  {
   "address": 56146,
   "type": "line",
   "text": "colour RAM row 21, column 10, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6D"
  },
  {
   "address": 56226,
   "type": "line",
   "text": "colour RAM row 23, column 10, which the routines that colour the screen write, most through an index; the RAM under it, which the CPU never reaches, holds part of sprite shape $6E"
  },
  {
   "address": 56320,
   "type": "line",
   "text": "the ogre's upper-body shapes, pointers $70 to $7F"
  },
  {
   "address": 57344,
   "type": "line",
   "text": "sprite shapes in the RAM under the KERNAL: the ogre's last upper-body shapes, pointers $80 to $98 ($E000-$E63F)"
  },
  {
   "address": 58368,
   "type": "line",
   "text": "the ogre's last upper-body shapes ($90-$98), two shapes no table names ($99, $9A), then the hornets' ($9B-$9F)"
  },
  {
   "address": 59392,
   "type": "line",
   "text": "the punching arms' shapes ($A0-$A6, by $9C00 and $9C09), more hornets' ($A7-$AA), the cannon's first two ($AB, $AC, by $AB96 and $AB9D) and three shapes no table names ($AD-$AF)"
  },
  {
   "address": 60416,
   "type": "line",
   "text": "the cannon's other shapes ($B1, $B2 and $B7-$BB), then from pointer $BC ($EF00) the logo's; the cannon's last frame names $BC as well"
  },
  {
   "address": 61440,
   "type": "line",
   "text": "the rest of the logo's shapes (to $C3, $F0FF), then shapes no table or instruction found names, the hornets' and the flyer's dying frames ($D9-$DE, from $823D), and pages of zeros"
  },
  {
   "address": 62464,
   "type": "line",
   "text": "sprite shapes, among them the dying frames ($D9-$DE, $F640-$F7BF)"
  },
  {
   "address": 63488,
   "type": "line",
   "text": "the last sprite shapes in video bank 3, pointers $E0 to $FF: mostly zeros, with shapes at $EE and $EF ($FB80-$FBFF) and $F3 to $F5 ($FCC0-$FD7F) that no table or instruction names"
  },
  {
   "address": 64512,
   "type": "line",
   "text": "more of the last sprite shapes, pointers $F0 to $FF, with the shapes at $F3 to $F5"
  }
 ]
}