{
 "schema": 1,
 "platform": "c64",
 "game": "lemmings",
 "part": "game",
 "build": "PAL disk release, three disks (Psygnosis 1994), the boot disk unpatched; five parts: the resident loader, the intro, the menu, the game at level 1 of Fun's briefing, and the end sequence",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    16384,
    18431,
    "runtime: the screens: the briefing's at $4000 in this snapshot, the two play screens at $4000 and $4400 in play"
   ],
   [
    25776,
    26623,
    "runtime: the briefing's preview bitmap, drawn from the terrain by $5454"
   ],
   [
    27648,
    28671,
    "runtime: the briefing's colour tables ($5122, $54AC) and its copy of the level header ($6F00)"
   ],
   [
    32256,
    32767,
    "runtime: the blocker map, one byte per pixel column ($2174), and the unpack's first output"
   ],
   [
    64045,
    65529,
    "beyond level 1's file, which ends at $FA2C: bytes an earlier load left; the longest level files reach $FFEB"
   ],
   [
    0,
    2048,
    "Resident: the loader and the variables"
   ],
   [
    52000,
    57343,
    "Resident: the loader and the variables"
   ],
   [
    65530,
    65535,
    "Resident: the loader and the variables"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ],
  "elsewhere": [
   [
    0,
    2048,
    "Resident: the loader and the variables"
   ],
   [
    52000,
    57343,
    "Resident: the loader and the variables"
   ],
   [
    65530,
    65535,
    "Resident: the loader and the variables"
   ]
  ]
 },
 "blocks": [
  {
   "start": 2049,
   "end": 2168,
   "type": "Byte"
  },
  {
   "start": 2169,
   "end": 2510,
   "type": "Code"
  },
  {
   "start": 2511,
   "end": 2563,
   "type": "Undefined"
  },
  {
   "start": 2564,
   "end": 2901,
   "type": "Code"
  },
  {
   "start": 2902,
   "end": 2902,
   "type": "Undefined"
  },
  {
   "start": 2903,
   "end": 4085,
   "type": "Code"
  },
  {
   "start": 4086,
   "end": 4095,
   "type": "Undefined"
  },
  {
   "start": 4096,
   "end": 4636,
   "type": "Code"
  },
  {
   "start": 4637,
   "end": 4724,
   "type": "Byte"
  },
  {
   "start": 4725,
   "end": 4944,
   "type": "Undefined"
  },
  {
   "start": 4945,
   "end": 5561,
   "type": "Code"
  },
  {
   "start": 5562,
   "end": 5577,
   "type": "Undefined"
  },
  {
   "start": 5578,
   "end": 7785,
   "type": "Code"
  },
  {
   "start": 7786,
   "end": 7827,
   "type": "Undefined"
  },
  {
   "start": 7828,
   "end": 9096,
   "type": "Code"
  },
  {
   "start": 9097,
   "end": 9100,
   "type": "Byte"
  },
  {
   "start": 9101,
   "end": 9441,
   "type": "Code"
  },
  {
   "start": 9442,
   "end": 9443,
   "type": "Byte"
  },
  {
   "start": 9444,
   "end": 11048,
   "type": "Code"
  },
  {
   "start": 11049,
   "end": 11118,
   "type": "Undefined"
  },
  {
   "start": 11119,
   "end": 11631,
   "type": "Code"
  },
  {
   "start": 11632,
   "end": 11642,
   "type": "Undefined"
  },
  {
   "start": 11643,
   "end": 11856,
   "type": "Code"
  },
  {
   "start": 11857,
   "end": 11935,
   "type": "Undefined"
  },
  {
   "start": 11936,
   "end": 12235,
   "type": "Byte"
  },
  {
   "start": 12236,
   "end": 12287,
   "type": "Undefined"
  },
  {
   "start": 12288,
   "end": 12296,
   "type": "Code"
  },
  {
   "start": 12297,
   "end": 12340,
   "type": "Byte"
  },
  {
   "start": 12341,
   "end": 12448,
   "type": "Undefined"
  },
  {
   "start": 12449,
   "end": 13701,
   "type": "Code"
  },
  {
   "start": 13702,
   "end": 15225,
   "type": "Byte"
  },
  {
   "start": 15226,
   "end": 15359,
   "type": "Undefined"
  },
  {
   "start": 15360,
   "end": 16383,
   "type": "Byte"
  },
  {
   "start": 16384,
   "end": 18255,
   "type": "Undefined"
  },
  {
   "start": 18256,
   "end": 18451,
   "type": "Code"
  },
  {
   "start": 18452,
   "end": 18663,
   "type": "Byte"
  },
  {
   "start": 18664,
   "end": 18671,
   "type": "Undefined"
  },
  {
   "start": 18672,
   "end": 20479,
   "type": "Byte"
  },
  {
   "start": 20480,
   "end": 20697,
   "type": "Code"
  },
  {
   "start": 20698,
   "end": 20769,
   "type": "Byte"
  },
  {
   "start": 20770,
   "end": 21413,
   "type": "Code"
  },
  {
   "start": 21414,
   "end": 21419,
   "type": "Byte"
  },
  {
   "start": 21420,
   "end": 21515,
   "type": "Code"
  },
  {
   "start": 21516,
   "end": 21587,
   "type": "Byte"
  },
  {
   "start": 21588,
   "end": 21786,
   "type": "Code"
  },
  {
   "start": 21787,
   "end": 21810,
   "type": "Byte"
  },
  {
   "start": 21811,
   "end": 21928,
   "type": "Code"
  },
  {
   "start": 21929,
   "end": 23285,
   "type": "Byte"
  },
  {
   "start": 23286,
   "end": 23324,
   "type": "Code"
  },
  {
   "start": 23325,
   "end": 23470,
   "type": "Byte"
  },
  {
   "start": 23471,
   "end": 23494,
   "type": "Code"
  },
  {
   "start": 23495,
   "end": 23510,
   "type": "Byte"
  },
  {
   "start": 23511,
   "end": 24575,
   "type": "Undefined"
  },
  {
   "start": 24576,
   "end": 25775,
   "type": "Byte"
  },
  {
   "start": 25776,
   "end": 26383,
   "type": "Undefined"
  },
  {
   "start": 26384,
   "end": 26388,
   "type": "Code"
  },
  {
   "start": 26389,
   "end": 26623,
   "type": "Undefined"
  },
  {
   "start": 26624,
   "end": 27647,
   "type": "Byte"
  },
  {
   "start": 27648,
   "end": 28671,
   "type": "Undefined"
  },
  {
   "start": 28672,
   "end": 32255,
   "type": "Byte"
  },
  {
   "start": 32256,
   "end": 32767,
   "type": "Undefined"
  },
  {
   "start": 32768,
   "end": 33791,
   "type": "Byte"
  },
  {
   "start": 33792,
   "end": 37199,
   "type": "Undefined"
  },
  {
   "start": 37200,
   "end": 37262,
   "type": "Code"
  },
  {
   "start": 37263,
   "end": 46079,
   "type": "Undefined"
  },
  {
   "start": 46080,
   "end": 50175,
   "type": "Byte"
  },
  {
   "start": 50176,
   "end": 50185,
   "type": "Code"
  },
  {
   "start": 50186,
   "end": 51983,
   "type": "Byte"
  },
  {
   "start": 51984,
   "end": 51999,
   "type": "Undefined"
  },
  {
   "start": 57344,
   "end": 57491,
   "type": "Undefined"
  },
  {
   "start": 57492,
   "end": 57759,
   "type": "Code"
  },
  {
   "start": 57760,
   "end": 57767,
   "type": "Undefined"
  },
  {
   "start": 57768,
   "end": 58650,
   "type": "Byte"
  },
  {
   "start": 58651,
   "end": 58672,
   "type": "Undefined"
  },
  {
   "start": 58673,
   "end": 63999,
   "type": "Byte"
  },
  {
   "start": 64000,
   "end": 64000,
   "type": "Undefined"
  },
  {
   "start": 64001,
   "end": 64044,
   "type": "Byte"
  },
  {
   "start": 64045,
   "end": 64930,
   "type": "Undefined"
  },
  {
   "start": 64931,
   "end": 64961,
   "type": "Code"
  },
  {
   "start": 64962,
   "end": 65529,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 2049,
   "name": "column_addr_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2169,
   "name": "play_level",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2195,
   "name": "restore_kernal",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2208,
   "name": "a_08A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2210,
   "name": "a_08A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2217,
   "name": "a_08A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2223,
   "name": "b_08AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2247,
   "name": "start_level",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2282,
   "name": "irq_band",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2326,
   "name": "b_0916",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2334,
   "name": "b_091E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2342,
   "name": "b_0926",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2357,
   "name": "band_first",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2363,
   "name": "band_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2374,
   "name": "a_0946",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2377,
   "name": "a_0949",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2380,
   "name": "a_094C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2383,
   "name": "a_094F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2390,
   "name": "band_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2401,
   "name": "a_0961",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2404,
   "name": "a_0964",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2407,
   "name": "a_0967",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2410,
   "name": "a_096A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2417,
   "name": "band_last",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2428,
   "name": "a_097C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2431,
   "name": "a_097F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2434,
   "name": "a_0982",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2437,
   "name": "a_0985",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2441,
   "name": "band_panel",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2445,
   "name": "b_098D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2457,
   "name": "next_band",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 2468,
   "name": "b_09A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2503,
   "name": "irq_play",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2509,
   "name": "a_09CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2510,
   "name": "a_09CE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2511,
   "name": "band_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2512,
   "name": "band_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 2513,
   "name": "band_handler_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2530,
   "name": "band_handler_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2547,
   "name": "band_lines",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 2564,
   "name": "panel_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2603,
   "name": "b_0A2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2650,
   "name": "read_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2662,
   "name": "b_0A66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2679,
   "name": "b_0A77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2701,
   "name": "b_0A8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2720,
   "name": "a_0AA0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2734,
   "name": "b_0AAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2740,
   "name": "key_action",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2749,
   "name": "b_0ABD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2791,
   "name": "b_0AE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2804,
   "name": "r_0AF4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 2805,
   "name": "b_0AF5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2813,
   "name": "b_0AFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2842,
   "name": "b_0B1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2870,
   "name": "b_0B36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2876,
   "name": "read_joystick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2884,
   "name": "b_0B44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2893,
   "name": "b_0B4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2902,
   "name": "nmi_rti",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2903,
   "name": "set_raster_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2931,
   "name": "place_terrain_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 2952,
   "name": "b_0B88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2953,
   "name": "a_0B89",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2971,
   "name": "b_0B9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 2982,
   "name": "a_0BA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 2985,
   "name": "a_0BA9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3001,
   "name": "b_0BB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3026,
   "name": "b_0BD2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3033,
   "name": "b_0BD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3037,
   "name": "shift_sprites_low",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3056,
   "name": "shift_sprites_high",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3075,
   "name": "clear_hidden_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3080,
   "name": "clear_screen_4000",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3084,
   "name": "b_0C0C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3148,
   "name": "clear_screen_4400",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3152,
   "name": "b_0C50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3216,
   "name": "scroll_view",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3237,
   "name": "b_0CA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3286,
   "name": "b_0CD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3292,
   "name": "b_0CDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3295,
   "name": "scroll_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3330,
   "name": "r_0D02",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3331,
   "name": "copy_left_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3345,
   "name": "copy_right_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3359,
   "name": "copy_column",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3435,
   "name": "b_0D6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3437,
   "name": "a_0D6D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3440,
   "name": "a_0D70",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3443,
   "name": "a_0D73",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3446,
   "name": "a_0D76",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3449,
   "name": "a_0D79",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3452,
   "name": "a_0D7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3455,
   "name": "a_0D7F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3458,
   "name": "a_0D82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3461,
   "name": "a_0D85",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3464,
   "name": "a_0D88",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3467,
   "name": "a_0D8B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3470,
   "name": "a_0D8E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3473,
   "name": "a_0D91",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3476,
   "name": "a_0D94",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3479,
   "name": "a_0D97",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3482,
   "name": "a_0D9A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3487,
   "name": "a_0D9F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3491,
   "name": "step_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3497,
   "name": "a_0DA9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3505,
   "name": "b_0DB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3518,
   "name": "step_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3534,
   "name": "b_0DCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3547,
   "name": "clamp_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3572,
   "name": "r_0DF4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3573,
   "name": "wait_frames",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 3587,
   "name": "fade_in",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3589,
   "name": "b_0E05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3598,
   "name": "fade_out",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3600,
   "name": "b_0E10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3612,
   "name": "set_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3641,
   "name": "play_pass",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3673,
   "name": "b_0E59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3676,
   "name": "main_loop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3679,
   "name": "wait_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3708,
   "name": "b_0E7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3722,
   "name": "row_pointers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3765,
   "name": "end_level",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3816,
   "name": "r_0EE8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3817,
   "name": "clock_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3822,
   "name": "a_0EEE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3845,
   "name": "b_0F05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3851,
   "name": "b_0F0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3857,
   "name": "b_0F11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3863,
   "name": "b_0F17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3867,
   "name": "end_test",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3899,
   "name": "r_0F3B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 3900,
   "name": "b_0F3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3906,
   "name": "set_play_video",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4007,
   "name": "init_screens",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4009,
   "name": "b_0FA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4054,
   "name": "b_0FD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4059,
   "name": "b_0FDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4086,
   "name": "char_swap_from",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4091,
   "name": "char_swap_to",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4096,
   "name": "setup_level",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4098,
   "name": "b_1002",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4180,
   "name": "b_1054",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4181,
   "name": "f_1055",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4185,
   "name": "b_1059",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4193,
   "name": "b_1061",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4197,
   "name": "f_1065",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4246,
   "name": "b_1096",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4295,
   "name": "b_10C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4384,
   "name": "b_1120",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4389,
   "name": "j_1125",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4406,
   "name": "b_1136",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4435,
   "name": "b_1153",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4437,
   "name": "a_1155",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4440,
   "name": "a_1158",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4455,
   "name": "b_1167",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4472,
   "name": "f_1178",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4490,
   "name": "b_118A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4504,
   "name": "b_1198",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4521,
   "name": "b_11A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4532,
   "name": "b_11B4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4548,
   "name": "b_11C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4570,
   "name": "b_11DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4591,
   "name": "b_11EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4614,
   "name": "b_1206",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4637,
   "name": "action_names",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4725,
   "name": "action_name_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4746,
   "name": "action_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4767,
   "name": "action_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4788,
   "name": "action_frames_alt",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4809,
   "name": "frame_base_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4830,
   "name": "frame_base_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4851,
   "name": "action_frame_wrap",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4856,
   "name": "exit_frame_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4872,
   "name": "action_frame_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4893,
   "name": "action_frame_restart",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4914,
   "name": "action_y_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4935,
   "name": "screen_pages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4937,
   "name": "screen_d018",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4939,
   "name": "screen_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4941,
   "name": "screen_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4943,
   "name": "screen_row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4945,
   "name": "lemmings_pass",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4958,
   "name": "b_135E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5138,
   "name": "b_1412",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5182,
   "name": "b_143E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5210,
   "name": "a_145A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5213,
   "name": "a_145D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5217,
   "name": "a_1461",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5219,
   "name": "a_1463",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5231,
   "name": "a_146F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5239,
   "name": "a_1477",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5251,
   "name": "a_1483",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5261,
   "name": "b_148D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5264,
   "name": "b_1490",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5276,
   "name": "fuse_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5290,
   "name": "b_14AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5334,
   "name": "b_14D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5337,
   "name": "r_14D9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5338,
   "name": "j_14DA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5375,
   "name": "b_14FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5384,
   "name": "b_1508",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5433,
   "name": "a_1539",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5434,
   "name": "a_153A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5435,
   "name": "r_153B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5436,
   "name": "show_rate",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5456,
   "name": "use_skill",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5469,
   "name": "b_155D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5480,
   "name": "draw_count",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5497,
   "name": "b_1579",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5519,
   "name": "count_out",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5522,
   "name": "s_1592",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 5540,
   "name": "b_15A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5544,
   "name": "count_gone",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5558,
   "name": "b_15B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5562,
   "name": "skill_jump_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5570,
   "name": "skill_jump_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5578,
   "name": "draw_panel_counts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5580,
   "name": "b_15CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5590,
   "name": "b_15D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5606,
   "name": "give_climber",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5624,
   "name": "r_15F8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5625,
   "name": "give_floater",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5643,
   "name": "give_bomber",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5656,
   "name": "give_builder",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5666,
   "name": "b_1622",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5671,
   "name": "give_miner",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5681,
   "name": "b_1631",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5686,
   "name": "give_basher",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5696,
   "name": "b_1640",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5701,
   "name": "give_blocker",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5708,
   "name": "give_digger",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5712,
   "name": "set_action",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5743,
   "name": "a_166F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5754,
   "name": "a_167A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5758,
   "name": "cursor_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5785,
   "name": "a_1699",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5811,
   "name": "b_16B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5816,
   "name": "b_16B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5825,
   "name": "b_16C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5842,
   "name": "r_16D2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5843,
   "name": "read_pointer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5857,
   "name": "b_16E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5860,
   "name": "j_16E4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5886,
   "name": "b_16FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5891,
   "name": "r_1703",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5892,
   "name": "read_mouse",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5941,
   "name": "clamp_cursor_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5954,
   "name": "b_1742",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5962,
   "name": "b_174A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5969,
   "name": "clamp_cursor_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5982,
   "name": "b_175E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5987,
   "name": "b_1763",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5992,
   "name": "mouse_delta_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6018,
   "name": "b_1782",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6034,
   "name": "b_1792",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6037,
   "name": "mouse_delta_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6062,
   "name": "b_17AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6076,
   "name": "b_17BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6079,
   "name": "select_mouse_port",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6091,
   "name": "joystick_cursor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6124,
   "name": "b_17EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6127,
   "name": "b_17EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6160,
   "name": "j_1810",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6184,
   "name": "b_1828",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6187,
   "name": "b_182B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6195,
   "name": "b_1833",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6205,
   "name": "j_183D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6218,
   "name": "b_184A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6247,
   "name": "scroll_right",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6255,
   "name": "scroll_target_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6296,
   "name": "b_1898",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6299,
   "name": "b_189B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6335,
   "name": "j_18BF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6359,
   "name": "b_18D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6362,
   "name": "j_18DA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6370,
   "name": "b_18E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6380,
   "name": "r_18EC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6381,
   "name": "scroll_left",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6418,
   "name": "b_1912",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6422,
   "name": "draw_cursor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6590,
   "name": "a_19BE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6591,
   "name": "a_19BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6621,
   "name": "b_19DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6632,
   "name": "a_19E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6650,
   "name": "b_19FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6661,
   "name": "a_1A05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6683,
   "name": "b_1A1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6694,
   "name": "a_1A26",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6712,
   "name": "b_1A38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6723,
   "name": "a_1A43",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6733,
   "name": "b_1A4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6734,
   "name": "a_1A4E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6735,
   "name": "a_1A4F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6738,
   "name": "a_1A52",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6740,
   "name": "a_1A54",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6741,
   "name": "a_1A55",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6744,
   "name": "a_1A58",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6746,
   "name": "a_1A5A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6747,
   "name": "a_1A5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6750,
   "name": "a_1A5E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6752,
   "name": "a_1A60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6753,
   "name": "a_1A61",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6756,
   "name": "a_1A64",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6767,
   "name": "b_1A6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6769,
   "name": "a_1A71",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6771,
   "name": "a_1A73",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6772,
   "name": "a_1A74",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6775,
   "name": "a_1A77",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6778,
   "name": "a_1A7A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6780,
   "name": "a_1A7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6781,
   "name": "a_1A7D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6784,
   "name": "a_1A80",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6793,
   "name": "b_1A89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6795,
   "name": "a_1A8B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6797,
   "name": "a_1A8D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6798,
   "name": "a_1A8E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6801,
   "name": "a_1A91",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6804,
   "name": "a_1A94",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6806,
   "name": "a_1A96",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6807,
   "name": "a_1A97",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6810,
   "name": "a_1A9A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6818,
   "name": "draw_lemming",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6844,
   "name": "a_1ABC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6850,
   "name": "b_1AC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6851,
   "name": "a_1AC3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6852,
   "name": "a_1AC4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6865,
   "name": "b_1AD1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6879,
   "name": "a_1ADF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6880,
   "name": "a_1AE0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6898,
   "name": "a_1AF2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6899,
   "name": "a_1AF3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6917,
   "name": "a_1B05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6918,
   "name": "a_1B06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6931,
   "name": "a_1B13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6970,
   "name": "b_1B3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6974,
   "name": "j_1B3E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6982,
   "name": "b_1B46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6994,
   "name": "a_1B52",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7016,
   "name": "b_1B68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7020,
   "name": "j_1B6C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7028,
   "name": "b_1B74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7040,
   "name": "a_1B80",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7047,
   "name": "b_1B87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7062,
   "name": "b_1B96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7066,
   "name": "j_1B9A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7074,
   "name": "b_1BA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7089,
   "name": "a_1BB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7113,
   "name": "b_1BC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7117,
   "name": "j_1BCD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7125,
   "name": "b_1BD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7140,
   "name": "a_1BE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7164,
   "name": "b_1BFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7168,
   "name": "j_1C00",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7176,
   "name": "b_1C08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7191,
   "name": "a_1C17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7215,
   "name": "b_1C2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7219,
   "name": "j_1C33",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7227,
   "name": "b_1C3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7242,
   "name": "a_1C4A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7268,
   "name": "lemming_frame_ptrs",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7291,
   "name": "a_1C7B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7305,
   "name": "a_1C89",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7316,
   "name": "a_1C94",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7320,
   "name": "a_1C98",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7334,
   "name": "a_1CA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7361,
   "name": "b_1CC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7367,
   "name": "a_1CC7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7376,
   "name": "a_1CD0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7399,
   "name": "a_1CE7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7424,
   "name": "b_1D00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7452,
   "name": "j_1D1C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7453,
   "name": "a_1D1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7496,
   "name": "or_frame_rows",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 7497,
   "name": "a_1D49",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7498,
   "name": "a_1D4A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7501,
   "name": "a_1D4D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7503,
   "name": "a_1D4F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7504,
   "name": "a_1D50",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7506,
   "name": "a_1D52",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7507,
   "name": "a_1D53",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7509,
   "name": "a_1D55",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7510,
   "name": "a_1D56",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7513,
   "name": "a_1D59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7515,
   "name": "a_1D5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7516,
   "name": "a_1D5C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7519,
   "name": "a_1D5F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7521,
   "name": "a_1D61",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7522,
   "name": "a_1D62",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7524,
   "name": "a_1D64",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7525,
   "name": "a_1D65",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7527,
   "name": "a_1D67",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7528,
   "name": "a_1D68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7534,
   "name": "b_1D6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7561,
   "name": "b_1D89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7569,
   "name": "b_1D91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7570,
   "name": "a_1D92",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7571,
   "name": "a_1D93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7574,
   "name": "a_1D96",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7576,
   "name": "a_1D98",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7577,
   "name": "a_1D99",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7579,
   "name": "a_1D9B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7580,
   "name": "a_1D9C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7582,
   "name": "a_1D9E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7583,
   "name": "a_1D9F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7586,
   "name": "a_1DA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7588,
   "name": "a_1DA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7589,
   "name": "a_1DA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7592,
   "name": "a_1DA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7594,
   "name": "a_1DAA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7595,
   "name": "a_1DAB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7597,
   "name": "a_1DAD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7598,
   "name": "a_1DAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7600,
   "name": "a_1DB0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7601,
   "name": "a_1DB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7604,
   "name": "a_1DB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7607,
   "name": "a_1DB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7608,
   "name": "b_1DB8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7609,
   "name": "a_1DB9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7610,
   "name": "a_1DBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7613,
   "name": "a_1DBD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7615,
   "name": "a_1DBF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7616,
   "name": "a_1DC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7618,
   "name": "a_1DC2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7619,
   "name": "a_1DC3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7622,
   "name": "a_1DC6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7624,
   "name": "a_1DC8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7625,
   "name": "a_1DC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7628,
   "name": "a_1DCC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7630,
   "name": "a_1DCE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7631,
   "name": "a_1DCF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7633,
   "name": "a_1DD1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7634,
   "name": "a_1DD2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7637,
   "name": "a_1DD5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7640,
   "name": "r_1DD8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7641,
   "name": "release_lemmings",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7677,
   "name": "b_1DFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7682,
   "name": "b_1E02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7713,
   "name": "b_1E21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7731,
   "name": "b_1E33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7733,
   "name": "b_1E35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7786,
   "name": "action_handler_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7807,
   "name": "action_handler_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7828,
   "name": "move_lemming",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7899,
   "name": "b_1EDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7926,
   "name": "b_1EF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7933,
   "name": "b_1EFD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7992,
   "name": "b_1F38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8018,
   "name": "b_1F52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8048,
   "name": "j_1F70",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8064,
   "name": "b_1F80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8066,
   "name": "a_1F82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8078,
   "name": "a_1F8E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8086,
   "name": "a_1F96",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8113,
   "name": "b_1FB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8147,
   "name": "b_1FD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8155,
   "name": "b_1FDB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8156,
   "name": "a_1FDC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8179,
   "name": "water_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8208,
   "name": "b_2010",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8209,
   "name": "a_2011",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8210,
   "name": "a_2012",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8211,
   "name": "walk",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8234,
   "name": "b_202A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8252,
   "name": "b_203C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8315,
   "name": "b_207B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8328,
   "name": "b_2088",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8340,
   "name": "start_fall",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 8353,
   "name": "b_20A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8356,
   "name": "b_20A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8359,
   "name": "b_20A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8362,
   "name": "b_20AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8365,
   "name": "ground_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8371,
   "name": "ground_test_at",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8377,
   "name": "j_20B9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8384,
   "name": "a_20C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8393,
   "name": "a_20C9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8443,
   "name": "b_20FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8446,
   "name": "b_20FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8449,
   "name": "b_2101",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8452,
   "name": "b_2104",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8456,
   "name": "a_2108",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8459,
   "name": "fall",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8505,
   "name": "r_2139",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8506,
   "name": "b_213A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8531,
   "name": "b_2153",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8539,
   "name": "b_215B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8544,
   "name": "restart_animation",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8547,
   "name": "j_2163",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8564,
   "name": "block",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8588,
   "name": "b_218C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8591,
   "name": "b_218F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8593,
   "name": "a_2191",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8625,
   "name": "b_21B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8636,
   "name": "b_21BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8642,
   "name": "store_blocker",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8644,
   "name": "a_21C4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8645,
   "name": "b_21C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8646,
   "name": "a_21C6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8648,
   "name": "blocker_map_ptr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8667,
   "name": "b_21DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8680,
   "name": "wall_ahead",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8683,
   "name": "s_21EB",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 8705,
   "name": "b_2201",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8723,
   "name": "a_2213",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8727,
   "name": "a_2217",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8737,
   "name": "b_2221",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8740,
   "name": "splat",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8753,
   "name": "b_2231",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8768,
   "name": "b_2240",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8771,
   "name": "float",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8801,
   "name": "a_2261",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8803,
   "name": "b_2263",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8813,
   "name": "b_226D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8821,
   "name": "b_2275",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8829,
   "name": "exit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8853,
   "name": "b_2295",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8856,
   "name": "draw_explosion",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8910,
   "name": "r_22CE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8911,
   "name": "draw_explosion_row",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8931,
   "name": "a_22E3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8938,
   "name": "a_22EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8940,
   "name": "a_22EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8999,
   "name": "a_2327",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9005,
   "name": "b_232D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9006,
   "name": "a_232E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9010,
   "name": "a_2332",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9012,
   "name": "a_2334",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9016,
   "name": "a_2338",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9018,
   "name": "a_233A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9019,
   "name": "a_233B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9033,
   "name": "a_2349",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9044,
   "name": "a_2354",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9045,
   "name": "a_2355",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9063,
   "name": "b_2367",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9067,
   "name": "a_236B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9068,
   "name": "a_236C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9075,
   "name": "a_2373",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9076,
   "name": "a_2374",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9080,
   "name": "a_2378",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9081,
   "name": "a_2379",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9082,
   "name": "b_237A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9097,
   "name": "blast_shift",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9101,
   "name": "oh_no",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9117,
   "name": "explode",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9209,
   "name": "b_23F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9226,
   "name": "b_240A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9235,
   "name": "b_2413",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9248,
   "name": "b_2420",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9251,
   "name": "b_2423",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9258,
   "name": "a_242A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9275,
   "name": "j_243B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9287,
   "name": "b_2447",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9290,
   "name": "dig",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9315,
   "name": "a_2463",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9328,
   "name": "b_2470",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9342,
   "name": "b_247E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9353,
   "name": "b_2489",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9355,
   "name": "r_248B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9356,
   "name": "dig_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9370,
   "name": "b_249A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9401,
   "name": "b_24B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9412,
   "name": "b_24C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9442,
   "name": "dig_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9444,
   "name": "b_24E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9452,
   "name": "b_24EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9455,
   "name": "b_24EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9471,
   "name": "b_24FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9474,
   "name": "build_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9521,
   "name": "b_2531",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9544,
   "name": "b_2548",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9547,
   "name": "b_254B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9555,
   "name": "b_2553",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9558,
   "name": "b_2556",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9561,
   "name": "builder_warning",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9587,
   "name": "r_2573",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9588,
   "name": "shrug",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9601,
   "name": "b_2581",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9617,
   "name": "b_2591",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9620,
   "name": "builder_ground",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9627,
   "name": "build",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9674,
   "name": "b_25CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9697,
   "name": "b_25E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9700,
   "name": "b_25E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9708,
   "name": "b_25EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9711,
   "name": "b_25EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9714,
   "name": "head_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9721,
   "name": "step_test",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9724,
   "name": "s_25FC",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 9731,
   "name": "lay_brick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9743,
   "name": "s_260F",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 9752,
   "name": "brick_row_a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9755,
   "name": "s_261B",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 9764,
   "name": "bash",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9780,
   "name": "b_2634",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9826,
   "name": "b_2662",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9836,
   "name": "b_266C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9851,
   "name": "b_267B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9856,
   "name": "b_2680",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9857,
   "name": "a_2681",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9863,
   "name": "j_2687",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9878,
   "name": "b_2696",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9883,
   "name": "mark_turned",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9895,
   "name": "take_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9911,
   "name": "add_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9922,
   "name": "bash_stroke",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9932,
   "name": "b_26CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9935,
   "name": "b_26CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9942,
   "name": "j_26D6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9971,
   "name": "r_26F3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9972,
   "name": "b_26F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9975,
   "name": "bash_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10001,
   "name": "b_2711",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10031,
   "name": "b_272F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10037,
   "name": "mine",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10075,
   "name": "b_275B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10108,
   "name": "b_277C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10123,
   "name": "a_278B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10126,
   "name": "a_278E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10142,
   "name": "a_279E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10143,
   "name": "b_279F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10154,
   "name": "b_27AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10158,
   "name": "b_27AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10174,
   "name": "b_27BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10183,
   "name": "b_27C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10186,
   "name": "climb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10260,
   "name": "b_2814",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10284,
   "name": "b_282C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10287,
   "name": "b_282F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10318,
   "name": "die_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10339,
   "name": "b_2863",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10342,
   "name": "die_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10363,
   "name": "b_287B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10366,
   "name": "terrain_ptrs",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10433,
   "name": "b_28C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10455,
   "name": "b_28D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10472,
   "name": "terrain_at",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10473,
   "name": "a_28E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10474,
   "name": "a_28EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10476,
   "name": "terrain_at_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10479,
   "name": "a_28EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10480,
   "name": "a_28F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10483,
   "name": "a_28F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10484,
   "name": "a_28F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10487,
   "name": "a_28F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10493,
   "name": "a_28FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10494,
   "name": "a_28FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10496,
   "name": "a_2900",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10506,
   "name": "a_290A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10507,
   "name": "a_290B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10509,
   "name": "a_290D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10512,
   "name": "pixel_value_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10515,
   "name": "b_2913",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10524,
   "name": "b_291C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10530,
   "name": "b_2922",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10533,
   "name": "clear_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10535,
   "name": "set_pixel",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10544,
   "name": "terrain_write",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10552,
   "name": "j_2938",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10556,
   "name": "b_293C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10629,
   "name": "b_2985",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10637,
   "name": "a_298D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10643,
   "name": "a_2993",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10649,
   "name": "a_2999",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10653,
   "name": "a_299D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10654,
   "name": "a_299E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10662,
   "name": "a_29A6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10663,
   "name": "a_29A7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10664,
   "name": "a_29A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10665,
   "name": "a_29A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10666,
   "name": "a_29AA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10674,
   "name": "a_29B2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10675,
   "name": "a_29B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10676,
   "name": "r_29B4",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10677,
   "name": "draw_panel_text",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10679,
   "name": "b_29B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10727,
   "name": "a_29E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10728,
   "name": "b_29E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10729,
   "name": "b_29E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10731,
   "name": "b_29EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10744,
   "name": "play_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10756,
   "name": "a_2A04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10758,
   "name": "b_2A06",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10778,
   "name": "count_saved",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10780,
   "name": "b_2A1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10797,
   "name": "b_2A2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10807,
   "name": "object_tick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10823,
   "name": "r_2A47",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10824,
   "name": "animate_objects",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10844,
   "name": "j_2A5C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10845,
   "name": "f_2A5D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10869,
   "name": "b_2A75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10876,
   "name": "b_2A7C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10887,
   "name": "b_2A87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10894,
   "name": "b_2A8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10902,
   "name": "b_2A96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10903,
   "name": "f_2A97",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10942,
   "name": "a_2ABE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10943,
   "name": "b_2ABF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10944,
   "name": "f_2AC0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10948,
   "name": "a_2AC4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10964,
   "name": "f_2AD4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10970,
   "name": "f_2ADA",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10976,
   "name": "f_2AE0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10982,
   "name": "f_2AE6",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10991,
   "name": "f_2AEF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11007,
   "name": "b_2AFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11008,
   "name": "a_2B00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11009,
   "name": "a_2B01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11011,
   "name": "a_2B03",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11012,
   "name": "a_2B04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11014,
   "name": "a_2B06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11015,
   "name": "a_2B07",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11021,
   "name": "a_2B0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11027,
   "name": "b_2B13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11030,
   "name": "b_2B16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11035,
   "name": "b_2B1B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11037,
   "name": "a_2B1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11043,
   "name": "b_2B23",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11049,
   "name": "water_frames_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11053,
   "name": "water_frames2_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11073,
   "name": "water_frames_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11077,
   "name": "water_frames2_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11097,
   "name": "water_shift",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11101,
   "name": "water_ops",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11102,
   "name": "water_ops_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11103,
   "name": "water_ops_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11104,
   "name": "water_ops_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11106,
   "name": "water_ops_5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11107,
   "name": "water_ops_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11108,
   "name": "water_ops_7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11109,
   "name": "water_ops_8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11111,
   "name": "water_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11112,
   "name": "water_row_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11119,
   "name": "water_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11133,
   "name": "b_2B7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11142,
   "name": "a_2B86",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11144,
   "name": "a_2B88",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11145,
   "name": "a_2B89",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11150,
   "name": "a_2B8E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11151,
   "name": "a_2B8F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11156,
   "name": "a_2B94",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11158,
   "name": "animate_water",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11164,
   "name": "b_2B9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11180,
   "name": "b_2BAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11204,
   "name": "b_2BC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11216,
   "name": "b_2BD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11220,
   "name": "j_2BD4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11317,
   "name": "a_2C35",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11369,
   "name": "b_2C69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11419,
   "name": "b_2C9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11420,
   "name": "a_2C9C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11421,
   "name": "a_2C9D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11424,
   "name": "a_2CA0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11426,
   "name": "a_2CA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11427,
   "name": "a_2CA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11430,
   "name": "a_2CA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11432,
   "name": "a_2CA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11433,
   "name": "a_2CA9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11436,
   "name": "a_2CAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11438,
   "name": "a_2CAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11439,
   "name": "a_2CAF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11442,
   "name": "a_2CB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11444,
   "name": "a_2CB4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11445,
   "name": "a_2CB5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11448,
   "name": "a_2CB8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11450,
   "name": "a_2CBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11451,
   "name": "a_2CBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11454,
   "name": "a_2CBE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11456,
   "name": "a_2CC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11457,
   "name": "a_2CC1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11459,
   "name": "a_2CC3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11460,
   "name": "a_2CC4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11463,
   "name": "a_2CC7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11465,
   "name": "a_2CC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11466,
   "name": "a_2CCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11469,
   "name": "a_2CCD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11471,
   "name": "a_2CCF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11472,
   "name": "a_2CD0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11475,
   "name": "a_2CD3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11477,
   "name": "a_2CD5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11478,
   "name": "a_2CD6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11481,
   "name": "a_2CD9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11483,
   "name": "a_2CDB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11484,
   "name": "a_2CDC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11487,
   "name": "a_2CDF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11489,
   "name": "a_2CE1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11490,
   "name": "a_2CE2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11493,
   "name": "a_2CE5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11495,
   "name": "a_2CE7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11496,
   "name": "a_2CE8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11501,
   "name": "a_2CED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11504,
   "name": "b_2CF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11505,
   "name": "f_2CF1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11519,
   "name": "f_2CFF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11545,
   "name": "a_2D19",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11563,
   "name": "f_2D2B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11572,
   "name": "b_2D34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11573,
   "name": "a_2D35",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11578,
   "name": "a_2D3A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11579,
   "name": "a_2D3B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11581,
   "name": "a_2D3D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11583,
   "name": "a_2D3F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11584,
   "name": "a_2D40",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11585,
   "name": "b_2D41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11592,
   "name": "copy_water_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11601,
   "name": "a_2D51",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11616,
   "name": "a_2D60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11622,
   "name": "b_2D66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11623,
   "name": "a_2D67",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11624,
   "name": "a_2D68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11626,
   "name": "a_2D6A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11627,
   "name": "a_2D6B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11632,
   "name": "water_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11633,
   "name": "water_fill_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11636,
   "name": "water_top_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11639,
   "name": "drown_actions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11642,
   "name": "drown_action",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11643,
   "name": "in_water",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11663,
   "name": "f_2D8F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11668,
   "name": "f_2D94",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11679,
   "name": "a_2D9F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11688,
   "name": "a_2DA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11698,
   "name": "b_2DB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11701,
   "name": "cell_rows",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11715,
   "name": "b_2DC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11738,
   "name": "one_way_side",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11779,
   "name": "cell_at_offset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11780,
   "name": "a_2E04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11781,
   "name": "a_2E05",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11783,
   "name": "cell_kind",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11792,
   "name": "a_2E10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11795,
   "name": "a_2E13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11811,
   "name": "a_2E23",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11829,
   "name": "a_2E35",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11834,
   "name": "a_2E3A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11835,
   "name": "a_2E3B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11843,
   "name": "b_2E43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11848,
   "name": "b_2E48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11850,
   "name": "b_2E4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11857,
   "name": "music_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 11858,
   "name": "cell_shifts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11862,
   "name": "action_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11880,
   "name": "action_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11896,
   "name": "blast_rows_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11905,
   "name": "blast_rows_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11936,
   "name": "frame_ptr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12236,
   "name": "brick_pixels",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12252,
   "name": "dx_index",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12288,
   "name": "sound_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12291,
   "name": "sound_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12294,
   "name": "sound_play",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12297,
   "name": "driver_credit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12341,
   "name": "fade_speed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12342,
   "name": "voice_tune",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12343,
   "name": "voice_tune_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12344,
   "name": "voice_tune_seen",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12345,
   "name": "voice_tune_seen_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12346,
   "name": "fade_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12347,
   "name": "sound_running",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12348,
   "name": "tick_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12351,
   "name": "note_phase",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12354,
   "name": "pulse_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12357,
   "name": "pulse_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12360,
   "name": "pulse_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12363,
   "name": "vibrato_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12366,
   "name": "release_at",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12369,
   "name": "vibrato_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12372,
   "name": "vibrato_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12375,
   "name": "vibrato_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12378,
   "name": "slide_start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12381,
   "name": "slide_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12384,
   "name": "slide_target",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12387,
   "name": "wave_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12390,
   "name": "arp_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12393,
   "name": "filter_prog",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12396,
   "name": "vibrato_set",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12399,
   "name": "pulse_sweep",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12402,
   "name": "wave_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12405,
   "name": "instrument",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12408,
   "name": "transpose_instr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12411,
   "name": "note_length",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12414,
   "name": "arpeggio",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12417,
   "name": "drum_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12420,
   "name": "control",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12423,
   "name": "gate_mask",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12426,
   "name": "gate_off",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12429,
   "name": "attack_decay",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12432,
   "name": "sustain_release",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12435,
   "name": "filter_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12438,
   "name": "filter_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12441,
   "name": "filter_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12444,
   "name": "filter_cutoff",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12445,
   "name": "volume",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12446,
   "name": "voice_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12448,
   "name": "sprite_mask_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 12449,
   "name": "silence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12464,
   "name": "b_30B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12501,
   "name": "start_sequence",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12517,
   "name": "sound_write",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12539,
   "name": "play_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 12579,
   "name": "r_3123",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12580,
   "name": "b_3124",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12584,
   "name": "a_3128",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12596,
   "name": "b_3134",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12651,
   "name": "b_316B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12661,
   "name": "voice_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12679,
   "name": "b_3187",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12682,
   "name": "r_318A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12683,
   "name": "read_sequence",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12690,
   "name": "j_3192",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12716,
   "name": "b_31AC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12729,
   "name": "b_31B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12741,
   "name": "b_31C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12754,
   "name": "b_31D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12774,
   "name": "a_31E6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12785,
   "name": "b_31F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12798,
   "name": "b_31FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12811,
   "name": "b_320B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12834,
   "name": "b_3222",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12858,
   "name": "b_323A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12878,
   "name": "b_324E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12894,
   "name": "b_325E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12896,
   "name": "j_3260",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12897,
   "name": "b_3261",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12921,
   "name": "b_3279",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12949,
   "name": "b_3295",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13043,
   "name": "voice_effects",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 13077,
   "name": "b_3315",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13100,
   "name": "b_332C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13105,
   "name": "b_3331",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13117,
   "name": "b_333D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13176,
   "name": "b_3378",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13202,
   "name": "j_3392",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13214,
   "name": "b_339E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13217,
   "name": "b_33A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13225,
   "name": "b_33A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13287,
   "name": "j_33E7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13299,
   "name": "b_33F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13315,
   "name": "b_3403",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13340,
   "name": "b_341C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13355,
   "name": "j_342B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13392,
   "name": "b_3450",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13400,
   "name": "b_3458",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13434,
   "name": "b_347A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13439,
   "name": "a_347F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13448,
   "name": "b_3488",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13465,
   "name": "b_3499",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13474,
   "name": "b_34A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13476,
   "name": "j_34A4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13509,
   "name": "b_34C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13514,
   "name": "b_34CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13523,
   "name": "j_34D3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13543,
   "name": "a_34E7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13565,
   "name": "b_34FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13590,
   "name": "b_3516",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13629,
   "name": "b_353D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13648,
   "name": "b_3550",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13664,
   "name": "b_3560",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13677,
   "name": "r_356D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13678,
   "name": "set_note",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13680,
   "name": "set_note_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13690,
   "name": "b_357A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13701,
   "name": "f_3585",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 13702,
   "name": "freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13801,
   "name": "freq_hi_prev",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13802,
   "name": "freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13898,
   "name": "tune_chain",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13906,
   "name": "seq_ptr_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13970,
   "name": "seq_ptr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14033,
   "name": "filter_prog_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14045,
   "name": "filter_prog_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14058,
   "name": "wave_prog_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14090,
   "name": "wave_prog_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14122,
   "name": "arp_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14186,
   "name": "arp_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14250,
   "name": "instr_pulse",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14266,
   "name": "instr_control",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14282,
   "name": "instr_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14298,
   "name": "instr_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14314,
   "name": "instr_filter",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14330,
   "name": "instr_vibrato",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14346,
   "name": "instr_sweep",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14362,
   "name": "instr_wave",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14378,
   "name": "sequences",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15360,
   "name": "frame_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15660,
   "name": "frame_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15872,
   "name": "water_rows_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15880,
   "name": "water_rows_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 15960,
   "name": "frame2_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16260,
   "name": "panel_sprite_colour",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16264,
   "name": "panel_sprite_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16268,
   "name": "panel_sprite_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16272,
   "name": "panel_sprite_ptr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16276,
   "name": "cursor_chars_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16278,
   "name": "dig_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16279,
   "name": "dig_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16280,
   "name": "dig_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16296,
   "name": "dig_first",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16312,
   "name": "dig_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16324,
   "name": "bash_x_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16333,
   "name": "bash_x_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16342,
   "name": "bash_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16352,
   "name": "climb_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16360,
   "name": "pixel_clear_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16364,
   "name": "lemming_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16370,
   "name": "float_frames",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "f_4000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16433,
   "name": "f_4031",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16473,
   "name": "f_4059",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16513,
   "name": "f_4081",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16553,
   "name": "f_40A9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16593,
   "name": "f_40D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16633,
   "name": "f_40F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16640,
   "name": "f_4100",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16673,
   "name": "f_4121",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16713,
   "name": "f_4149",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16753,
   "name": "f_4171",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16793,
   "name": "f_4199",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16833,
   "name": "f_41C1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16873,
   "name": "f_41E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16896,
   "name": "f_4200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16913,
   "name": "f_4211",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16953,
   "name": "f_4239",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16968,
   "name": "f_4248",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 16993,
   "name": "f_4261",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17033,
   "name": "f_4289",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17073,
   "name": "f_42B1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17113,
   "name": "f_42D9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17152,
   "name": "f_4300",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17153,
   "name": "f_4301",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17193,
   "name": "f_4329",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17224,
   "name": "f_4348",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17264,
   "name": "f_4370",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17265,
   "name": "f_4371",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17400,
   "name": "a_43F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17401,
   "name": "a_43F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17402,
   "name": "a_43FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17403,
   "name": "a_43FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17404,
   "name": "a_43FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17405,
   "name": "a_43FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17406,
   "name": "a_43FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17407,
   "name": "a_43FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17408,
   "name": "f_4400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17457,
   "name": "f_4431",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17497,
   "name": "f_4459",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17537,
   "name": "f_4481",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17577,
   "name": "f_44A9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17617,
   "name": "f_44D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17657,
   "name": "f_44F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17664,
   "name": "f_4500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17697,
   "name": "f_4521",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17737,
   "name": "f_4549",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17777,
   "name": "f_4571",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17817,
   "name": "f_4599",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17857,
   "name": "f_45C1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17897,
   "name": "f_45E9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17920,
   "name": "f_4600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17937,
   "name": "f_4611",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17977,
   "name": "f_4639",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18017,
   "name": "f_4661",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18057,
   "name": "f_4689",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18097,
   "name": "f_46B1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18137,
   "name": "f_46D9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18176,
   "name": "f_4700",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18177,
   "name": "f_4701",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18217,
   "name": "f_4729",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18256,
   "name": "j_4750",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 18432,
   "name": "line_offset_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18448,
   "name": "a_4810",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18452,
   "name": "line_offset_unpack_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18512,
   "name": "line_offset_lo_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18628,
   "name": "pixel_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18644,
   "name": "count_digit_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18664,
   "name": "sprite_first_ptrs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18672,
   "name": "cursor_shift_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18680,
   "name": "cursor_shift_lo2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18688,
   "name": "line_offset_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18704,
   "name": "line_offset_unpack",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18884,
   "name": "row_start_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18890,
   "name": "water_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18909,
   "name": "row_start_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18915,
   "name": "water_row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18934,
   "name": "cursor_shift_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18944,
   "name": "col_index",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19264,
   "name": "column_addr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19384,
   "name": "char_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19409,
   "name": "char_row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19434,
   "name": "cursor_shape_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19442,
   "name": "dig_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "col_offset_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19776,
   "name": "terrain_x_msb",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19784,
   "name": "sprite_rows_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19792,
   "name": "panel_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19808,
   "name": "count_digit2_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19828,
   "name": "count_digit2_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19848,
   "name": "count_digit_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19867,
   "name": "count_digit_index",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19898,
   "name": "bash_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19915,
   "name": "mine_a_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19939,
   "name": "mine_a_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19962,
   "name": "cursor_reach",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19968,
   "name": "col_offset_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20288,
   "name": "sprite_rotation",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20408,
   "name": "rate_units",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20432,
   "name": "rate_tens",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20456,
   "name": "release_timer_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "briefing_vectors",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20483,
   "name": "s_5003",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20486,
   "name": "s_5006",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20489,
   "name": "s_5009",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 20492,
   "name": "call_unpack",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20506,
   "name": "preview_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20543,
   "name": "b_503F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20544,
   "name": "a_5040",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20561,
   "name": "preview_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20631,
   "name": "b_5097",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20641,
   "name": "b_50A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20651,
   "name": "b_50AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20682,
   "name": "a_50CA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20698,
   "name": "preview_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20714,
   "name": "preview_pixels",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20730,
   "name": "preview_col_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20750,
   "name": "preview_col_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20770,
   "name": "briefing_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20790,
   "name": "b_5136",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20825,
   "name": "b_5159",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20835,
   "name": "b_5163",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20845,
   "name": "b_516D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20847,
   "name": "b_516F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20882,
   "name": "b_5192",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20978,
   "name": "result_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 21001,
   "name": "b_5209",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21009,
   "name": "b_5211",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21025,
   "name": "b_5221",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21043,
   "name": "disk_prompt",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 21046,
   "name": "j_5236",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21061,
   "name": "a_5245",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21081,
   "name": "a_5259",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21089,
   "name": "b_5261",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21102,
   "name": "show_briefing",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 21113,
   "name": "b_5279",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21126,
   "name": "j_5286",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21129,
   "name": "b_5289",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21147,
   "name": "wait_fire",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21152,
   "name": "b_52A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21162,
   "name": "briefing_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21169,
   "name": "b_52B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21174,
   "name": "b_52B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21180,
   "name": "b_52BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21192,
   "name": "b_52C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21201,
   "name": "fill_texts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21203,
   "name": "b_52D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21235,
   "name": "b_52F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21240,
   "name": "a_52F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21242,
   "name": "a_52FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21243,
   "name": "a_52FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21247,
   "name": "a_52FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21259,
   "name": "briefing_texts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21271,
   "name": "b_5317",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21293,
   "name": "result_texts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21298,
   "name": "b_5332",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21328,
   "name": "b_5350",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21354,
   "name": "b_536A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21358,
   "name": "b_536E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21378,
   "name": "b_5382",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21402,
   "name": "b_539A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21414,
   "name": "result_sound",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21420,
   "name": "restore_irq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21437,
   "name": "b_53BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21455,
   "name": "choose_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21500,
   "name": "b_53FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21513,
   "name": "b_5409",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21515,
   "name": "r_540B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 21516,
   "name": "field_dest_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21524,
   "name": "field_dest_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21532,
   "name": "field_add",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21540,
   "name": "field_src",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21548,
   "name": "field_len",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21556,
   "name": "rating_names",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21588,
   "name": "draw_preview",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21590,
   "name": "b_5456",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21595,
   "name": "b_545B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21619,
   "name": "fire_then_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21624,
   "name": "b_5478",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21648,
   "name": "b_5490",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21676,
   "name": "clear_briefing",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21701,
   "name": "b_54C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21753,
   "name": "preview_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21760,
   "name": "b_5500",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21762,
   "name": "b_5502",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21766,
   "name": "a_5506",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21787,
   "name": "end_lines",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21795,
   "name": "result_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21798,
   "name": "result_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21799,
   "name": "result_row_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21800,
   "name": "result_line",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21811,
   "name": "show_messages",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21814,
   "name": "s_5536",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 21817,
   "name": "s_5539",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 21819,
   "name": "b_553B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21830,
   "name": "b_5546",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21840,
   "name": "print_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21875,
   "name": "a_5573",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21881,
   "name": "b_5579",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21899,
   "name": "b_558B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21928,
   "name": "r_55A8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 21929,
   "name": "text_font_map",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22024,
   "name": "line_addr_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22062,
   "name": "line_addr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22219,
   "name": "screen_texts",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22240,
   "name": "rating_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22363,
   "name": "percent_digit_1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22364,
   "name": "percent_digits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22432,
   "name": "texts_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22440,
   "name": "texts_57a8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22448,
   "name": "texts_57b0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22456,
   "name": "texts_57b8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22464,
   "name": "texts_57c0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22472,
   "name": "texts_57c8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22480,
   "name": "texts_57d0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22488,
   "name": "texts_57d8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22496,
   "name": "texts_57e0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22504,
   "name": "texts_57e8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22512,
   "name": "texts_57f0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22520,
   "name": "texts_57f8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "texts_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22997,
   "name": "code_text",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23046,
   "name": "disk_prompt_text",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23053,
   "name": "side_letter",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23286,
   "name": "row_pointers_brief",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 23325,
   "name": "brief_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23326,
   "name": "brief_row_lo_next",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23350,
   "name": "brief_row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23351,
   "name": "brief_row_hi_next",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23359,
   "name": "text_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23471,
   "name": "load_level",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 23494,
   "name": "r_5BC6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 23495,
   "name": "preview_vars",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23496,
   "name": "preview_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23497,
   "name": "colour_count_0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 23498,
   "name": "colour_count_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23499,
   "name": "colour_count_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23500,
   "name": "colour_count_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23501,
   "name": "preview_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23502,
   "name": "preview_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23503,
   "name": "field_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23504,
   "name": "game_complete",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23505,
   "name": "level_passed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23507,
   "name": "line_number",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23508,
   "name": "line_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23509,
   "name": "line_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23510,
   "name": "end_line_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "briefing_font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24640,
   "name": "font_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24704,
   "name": "font_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24745,
   "name": "a_60A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 24768,
   "name": "font_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24832,
   "name": "font_5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24896,
   "name": "font_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24960,
   "name": "font_7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25024,
   "name": "font_8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25776,
   "name": "f_64B0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 25856,
   "name": "f_6500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26112,
   "name": "f_6600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26368,
   "name": "f_6700",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26384,
   "name": "s_6710",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 26624,
   "name": "briefing_font_copy",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27648,
   "name": "f_6C00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27669,
   "name": "f_6C15",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27690,
   "name": "f_6C2A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27711,
   "name": "f_6C3F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27732,
   "name": "f_6C54",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27753,
   "name": "f_6C69",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27774,
   "name": "f_6C7E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27795,
   "name": "f_6C93",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27904,
   "name": "f_6D00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27916,
   "name": "f_6D0C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27928,
   "name": "f_6D18",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27940,
   "name": "f_6D24",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27952,
   "name": "f_6D30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27964,
   "name": "f_6D3C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27976,
   "name": "f_6D48",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27988,
   "name": "f_6D54",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28110,
   "name": "f_6DCE",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28160,
   "name": "f_6E00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28416,
   "name": "f_6F00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28420,
   "name": "a_6F04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28421,
   "name": "f_6F05",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28431,
   "name": "f_6F0F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 28464,
   "name": "a_6F30",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28473,
   "name": "a_6F39",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28474,
   "name": "a_6F3A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28477,
   "name": "a_6F3D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28478,
   "name": "a_6F3E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28480,
   "name": "a_6F40",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28481,
   "name": "a_6F41",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28512,
   "name": "a_6F60",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28516,
   "name": "a_6F64",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28520,
   "name": "a_6F68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28672,
   "name": "panel_charset",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28800,
   "name": "stale_7080",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28928,
   "name": "stale_7100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29040,
   "name": "panel_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29056,
   "name": "stale_7180",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29184,
   "name": "stale_7200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29312,
   "name": "stale_7280",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29440,
   "name": "stale_7300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29568,
   "name": "stale_7380",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29632,
   "name": "panel_sprite_shapes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29888,
   "name": "char_addr_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30144,
   "name": "char_addr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30400,
   "name": "char_addr_hi_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30656,
   "name": "highlight_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30664,
   "name": "highlight_msb",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30672,
   "name": "key_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30685,
   "name": "key_columns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30698,
   "name": "count_cells",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30708,
   "name": "text_cells",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "shapes_7800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31504,
   "name": "blast_shape",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 31536,
   "name": "blast_shape_2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32024,
   "name": "sprite_y_by_fine",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32144,
   "name": "panel_fixed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32145,
   "name": "panel_fixed_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32170,
   "name": "mine_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32197,
   "name": "mine_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32225,
   "name": "mine_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32238,
   "name": "mine_first",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32240,
   "name": "mine_last",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32253,
   "name": "climb_actions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32255,
   "name": "unpack_read_start",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32256,
   "name": "f_7E00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32336,
   "name": "f_7E50",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 32768,
   "name": "terrain_0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32930,
   "name": "a_80A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33727,
   "name": "terrain_0b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33792,
   "name": "terrain_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34816,
   "name": "terrain_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35241,
   "name": "a_89A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35327,
   "name": "terrain_2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35840,
   "name": "terrain_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36864,
   "name": "terrain_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36865,
   "name": "boot_hdr_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36866,
   "name": "boot_hdr_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36867,
   "name": "boot_hdr_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36868,
   "name": "boot_hdr_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36869,
   "name": "boot_hdr_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36870,
   "name": "boot_hdr_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36871,
   "name": "a_9007",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36935,
   "name": "terrain_4b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37200,
   "name": "j_9150",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37263,
   "name": "terrain_4c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37567,
   "name": "terrain_4d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37778,
   "name": "terrain_4e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37888,
   "name": "terrain_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38912,
   "name": "terrain_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39936,
   "name": "terrain_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40704,
   "name": "level_save",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40841,
   "name": "terrain_7b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "terrain_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41984,
   "name": "terrain_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43008,
   "name": "terrain_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44032,
   "name": "terrain_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45056,
   "name": "terrain_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46080,
   "name": "identity",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46336,
   "name": "zero_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46592,
   "name": "div4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46848,
   "name": "mod4_x64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47104,
   "name": "div16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47360,
   "name": "mod16_x16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47616,
   "name": "shift_table_ba",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47872,
   "name": "times4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48112,
   "name": "frames_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49136,
   "name": "frames_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "frames_1a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49157,
   "name": "frames_1b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50160,
   "name": "frames_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50176,
   "name": "j_C400",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 50186,
   "name": "frames_2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51184,
   "name": "frames_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "level_header",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57401,
   "name": "lemmings_total",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57404,
   "name": "rate_min",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57409,
   "name": "minutes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57412,
   "name": "skill_tens",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57420,
   "name": "skill_units",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57428,
   "name": "dir_alternate",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57429,
   "name": "next_direction",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57430,
   "name": "save_share",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57436,
   "name": "level_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57440,
   "name": "colour_mc0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57444,
   "name": "colour_sprite",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57448,
   "name": "colour_mc1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57452,
   "name": "entrances",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57453,
   "name": "entrance_col_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57454,
   "name": "entrance_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57461,
   "name": "exits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57462,
   "name": "exit_col_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57463,
   "name": "exit_row",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57466,
   "name": "exit2_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57467,
   "name": "object_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57468,
   "name": "cell_map_flags",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57469,
   "name": "water_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57470,
   "name": "water_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57471,
   "name": "clock_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57472,
   "name": "level_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57474,
   "name": "objects_col_ptr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57476,
   "name": "objects_ptr_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57478,
   "name": "objects_ptr_4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57480,
   "name": "objects_ptr_5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57482,
   "name": "objects_ptr_6",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57484,
   "name": "objects_ptr_7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57486,
   "name": "cell_map_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57487,
   "name": "cell_map_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57488,
   "name": "cell_map_ptr2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57490,
   "name": "cell_map_ptr3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57492,
   "name": "unpack_terrain",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57538,
   "name": "b_E0C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57554,
   "name": "b_E0D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57556,
   "name": "b_E0D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57559,
   "name": "j_E0D7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 57565,
   "name": "b_E0DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57594,
   "name": "b_E0FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57599,
   "name": "b_E0FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57622,
   "name": "a_E116",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57623,
   "name": "a_E117",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57625,
   "name": "a_E119",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57626,
   "name": "a_E11A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57635,
   "name": "b_E123",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57639,
   "name": "a_E127",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57646,
   "name": "a_E12E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57658,
   "name": "next_packed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57664,
   "name": "b_E140",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57667,
   "name": "b_E143",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57685,
   "name": "b_E155",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57688,
   "name": "b_E158",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57699,
   "name": "b_E163",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57703,
   "name": "b_E167",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57712,
   "name": "b_E170",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57724,
   "name": "b_E17C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57731,
   "name": "b_E183",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 57751,
   "name": "put_byte",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 57759,
   "name": "r_E19F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 57760,
   "name": "terrain_header",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57761,
   "name": "terrain_src_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57762,
   "name": "terrain_dest_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57763,
   "name": "terrain_dest_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57764,
   "name": "terrain_end_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57765,
   "name": "terrain_end_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57766,
   "name": "terrain_lit_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57767,
   "name": "terrain_lit_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57768,
   "name": "terrain_packed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58651,
   "name": "s_E51B",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 58673,
   "name": "terrain_packed_0b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58792,
   "name": "terrain_packed_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59816,
   "name": "terrain_packed_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60033,
   "name": "j_EA81",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 60601,
   "name": "f_ECB9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60619,
   "name": "f_ECCB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 60683,
   "name": "terrain_packed_3a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60840,
   "name": "terrain_packed_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61864,
   "name": "terrain_packed_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62715,
   "name": "objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63739,
   "name": "objects_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64000,
   "name": "objects_last",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64001,
   "name": "level_file_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64816,
   "name": "f_FD30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 64848,
   "name": "KERNAL_RAMTASj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 64931,
   "name": "KERNAL_IOINITj",
   "type": "Predefined",
   "kind": "system"
  }
 ],
 "comments": [
  {
   "address": 2049,
   "type": "line",
   "text": "for each byte-column of the level's terrain (0-$77), the low byte of its first byte in the sprite shapes at $8000; with $4B40 the high byte. Read by copy_column, the preview and the level's unpacker"
  },
  {
   "address": 2169,
   "type": "line",
   "text": "plays one level from its loaded state: screen off, all RAM in ($01 = $35), $3000 (music), then $08C7; afterwards $0893 restores the KERNAL's interrupts and returns to the loop at $CBBA"
  },
  {
   "address": 2195,
   "type": "line",
   "text": "after a level: $01 = $3F, resets the CIA and IRQ set-up with the KERNAL's own $FDA3 and $FD50, the screen editor ($E51B), and copies the video chip's default registers ($ECB9) and the KERNAL vectors ($FD30) back"
  },
  {
   "address": 2208,
   "type": "line",
   "text": "named only as the operand of the BIT at $5535 (the skip idiom), so nothing reads it as data"
  },
  {
   "address": 2210,
   "type": "line",
   "text": "the low byte of the STX at $08A1; named only as the operand of the BIT at $25FB, $260E, the idiom that skips the next two bytes, so nothing reads it as data"
  },
  {
   "address": 2217,
   "type": "line",
   "text": "the high byte of the JSR at $08A7; named only as the operand of the BIT at $215A, $2274, $254A, $25E0, the idiom that skips the next two bytes, so nothing reads it as data"
  },
  {
   "address": 2247,
   "type": "line",
   "text": "sets up a level for play: $1000 (lemmings), $0FA7 (screens), the raster interrupt at $09C7 on line 0, the NMI to the RTI at $0B56, one pass of $0E39, the scroll ($0C90), then the main loop"
  },
  {
   "address": 2282,
   "type": "line",
   "text": "band 0's handler (line 251), the play interrupt's once-a-frame work: marks the frame ($057B); swaps the two screens when the main loop has finished one (a $041D request and 5 frames since the last); then plays the music ($3006, when $2E51 bit 7), runs $1916 while the level is not ending, reads the keyboard ($0A5A), the pointer ($17BF), sets the play area's video registers ($0F42) and the terrain sprites ($0B73), then sets the next band"
  },
  {
   "address": 2357,
   "type": "line",
   "text": "band 1's handler (line 60): moves sprites 0-3 down 21 lines, below sprites 4-7 ($0BDD)"
  },
  {
   "address": 2363,
   "type": "line",
   "text": "the handler of bands 2, 4 ... 14: nine NOPs to wait for the beam, then advances the pointers of sprites 0-3 to the next slice of terrain ($43F8-$43FB; the INCs' high bytes rewritten for the shown screen by $0F42) and moves sprites 4-7 down 21 lines ($0BF0)"
  },
  {
   "address": 2374,
   "type": "line",
   "text": "the high byte of the INC at $0944, rewritten as the game runs, by $0F4D"
  },
  {
   "address": 2377,
   "type": "line",
   "text": "the high byte of the INC at $0947, rewritten as the game runs, by $0F50"
  },
  {
   "address": 2380,
   "type": "line",
   "text": "the high byte of the INC at $094A, rewritten as the game runs, by $0F53"
  },
  {
   "address": 2383,
   "type": "line",
   "text": "the high byte of the INC at $094D, rewritten as the game runs, by $0F56"
  },
  {
   "address": 2390,
   "type": "line",
   "text": "the handler of bands 3, 5 ... 13: nine NOPs, then advances the pointers of sprites 4-7 ($43FC-$43FF) and moves sprites 0-3 down 21 lines"
  },
  {
   "address": 2401,
   "type": "line",
   "text": "the high byte of the INC at $095F, rewritten as the game runs, by $0F59"
  },
  {
   "address": 2404,
   "type": "line",
   "text": "the high byte of the INC at $0962, rewritten as the game runs, by $0F5C"
  },
  {
   "address": 2407,
   "type": "line",
   "text": "the high byte of the INC at $0965, rewritten as the game runs, by $0F5F"
  },
  {
   "address": 2410,
   "type": "line",
   "text": "the high byte of the INC at $0968, rewritten as the game runs, by $0F62"
  },
  {
   "address": 2417,
   "type": "line",
   "text": "band 15's handler (line 205): nine NOPs, then advances the pointers of sprites 4-7 for the last row, moving none"
  },
  {
   "address": 2428,
   "type": "line",
   "text": "the high byte of the INC at $097A, rewritten as the game runs, by $0F65"
  },
  {
   "address": 2431,
   "type": "line",
   "text": "the high byte of the INC at $097D, rewritten as the game runs, by $0F68"
  },
  {
   "address": 2434,
   "type": "line",
   "text": "the high byte of the INC at $0980, rewritten as the game runs, by $0F6B"
  },
  {
   "address": 2437,
   "type": "line",
   "text": "the high byte of the INC at $0983, rewritten as the game runs, by $0F6E"
  },
  {
   "address": 2441,
   "type": "line",
   "text": "band 16's handler (line 217), the bottom of the play area: a short delay, $D018 = $0C for the panel's characters, then the panel's colours and sprites ($0A04)"
  },
  {
   "address": 2457,
   "type": "line",
   "text": "ends every band: steps the band index at $09CF (back to 0 after the count at $09D0), sets the raster line for the next band from $09F3 and its handler from $09D1/$09E2 into the JMP at $09CC, acknowledges the interrupt and returns"
  },
  {
   "address": 2503,
   "type": "line",
   "text": "hardware IRQ vector in play ($FFFE): saves A, Y and X and jumps to the handler of the current band; the JMP's operand at $09CD is rewritten by $0999"
  },
  {
   "address": 2509,
   "type": "line",
   "text": "the low byte of the JMP at $09CC, rewritten as the game runs, by $09B0"
  },
  {
   "address": 2510,
   "type": "line",
   "text": "the high byte of the JMP at $09CC, rewritten as the game runs, by $09B6"
  },
  {
   "address": 2511,
   "type": "line",
   "text": "which band of the screen the next interrupt is (0 to the count at $09D0)"
  },
  {
   "address": 2512,
   "type": "line",
   "text": "how many bands a frame has"
  },
  {
   "address": 2513,
   "type": "line",
   "text": "low bytes of the 17 band handlers: $08EA, $0935, then $093B and $0956 by turns, $0971, $0989"
  },
  {
   "address": 2530,
   "type": "line",
   "text": "high bytes of the band handlers"
  },
  {
   "address": 2547,
   "type": "line",
   "text": "the raster line of each band's interrupt: 251, 60, 71, 79, 92 ... 197, 205, 217; the terrain bands come every 8 and 13 lines by turns"
  },
  {
   "address": 2564,
   "type": "line",
   "text": "for the skill panel at the bottom: colours $D022/$D023, sprite 3 multicolour, sprite 0 stretched in Y, sprite colours, and four sprites placed from the tables at $3F84-$3F93; sprite 0 is the highlight over the chosen skill, its X from $77C0/$77C8 by the skill at $05C0"
  },
  {
   "address": 2650,
   "type": "line",
   "text": "scans 13 keys, each a row and column of the keyboard from the tables at $77D0 and $77DD: 1-8, +, -, left SHIFT, DEL and the back arrow; each key down goes to $0AB4. Clears the pause flag first, and tracks the double press of DEL ($0580-$0583)"
  },
  {
   "address": 2720,
   "type": "line",
   "text": "the operand of the BPL at $0A9F; named only as the operand of the BIT at $247D, the idiom that skips the next two bytes, so nothing reads it as data"
  },
  {
   "address": 2740,
   "type": "line",
   "text": "acts on one key found down by $0A5A (X = its number): keys 1-8 choose a skill; + raises the release rate and - lowers it, a step every 7 passes held ($0B1A, $0AFD; down to the level's minimum at $E03C, up to 23); SHIFT pauses ($0B36); the back arrow ends the level, but only while paused ($0AF5); DEL arms the nuke on its second press"
  },
  {
   "address": 2876,
   "type": "line",
   "text": "reads control port 2 ($DC00) and spreads its five low bits into $0402-$0406 as $80 for pressed"
  },
  {
   "address": 2902,
   "type": "line",
   "text": "NMI vector in play points at this RTI, so RESTORE does nothing"
  },
  {
   "address": 2903,
   "type": "line",
   "text": "installs the next raster interrupt: X/Y = handler address into $FFFE/$FFFF, A = raster line into $D012"
  },
  {
   "address": 2931,
   "type": "line",
   "text": "places the eight terrain sprites for the frame's first row: no stretching; Y from $4D48 offset by the scroll row ($0407, operand rewritten at $0B89), pointers from $48E8, colour $040A; X positions from $0413 rotated by $0408, with their ninth bits into $D010"
  },
  {
   "address": 2953,
   "type": "line",
   "text": "the operand of the LDA at $0B88, rewritten as the game runs, by $0B81, $0B90"
  },
  {
   "address": 2982,
   "type": "line",
   "text": "the high byte of the STA at $0BA4, rewritten as the game runs, by $0F71"
  },
  {
   "address": 2985,
   "type": "line",
   "text": "the high byte of the LDA at $0BA7; named only as the operand of the BIT at $1621, the idiom that skips the next two bytes, so nothing reads it as data"
  },
  {
   "address": 3037,
   "type": "line",
   "text": "moves sprites 0-3 down 21 lines, below sprites 4-7"
  },
  {
   "address": 3056,
   "type": "line",
   "text": "moves sprites 4-7 down 21 lines, below sprites 0-3"
  },
  {
   "address": 3075,
   "type": "line",
   "text": "clears the lemmings' window (21 columns by 20 rows from column 9 of row 1) on the screen not shown: $4400 when $0421 is 1, otherwise $4000 ($0C08)"
  },
  {
   "address": 3080,
   "type": "line",
   "text": "clears the lemmings' window on the screen at $4000: 20 rows of 21 cells"
  },
  {
   "address": 3148,
   "type": "line",
   "text": "clears the lemmings' window on the screen at $4400"
  },
  {
   "address": 3216,
   "type": "line",
   "text": "moves the view towards the target in $040E/$040F, at most a column a pass ($0DDB), left ($0DA3) or right ($0DBE), and copies the terrain columns that come into view ($0D03/$0D11); then $2A48 and $0CDF"
  },
  {
   "address": 3295,
   "type": "line",
   "text": "from the scroll position, sets the terrain sprites' row offset ($0407, from the fine position and $7D18) and their X rotation ($0408, from $4F40), and remembers the position in $05B5/$05B6"
  },
  {
   "address": 3331,
   "type": "line",
   "text": "when the view has moved left into a new column, copies its characters ($0D1F)"
  },
  {
   "address": 3337,
   "type": "line",
   "text": "branch inside copy_left_column: the column was copied already"
  },
  {
   "address": 3345,
   "type": "line",
   "text": "when the view has moved right into a new column, copies the column 22 to the right ($0D1F)"
  },
  {
   "address": 3359,
   "type": "line",
   "text": "copies one column of the play area's character data between screen buffers at $6000-$61FF; the addresses come from $4B40 and $0801 by the column in X and are written into the loop's own operands"
  },
  {
   "address": 3437,
   "type": "line",
   "text": "the high byte of the LDA at $0D6B, rewritten as the game runs, by $0D23"
  },
  {
   "address": 3440,
   "type": "line",
   "text": "the high byte of the STA at $0D6E, rewritten as the game runs, by $0D46"
  },
  {
   "address": 3443,
   "type": "line",
   "text": "the high byte of the LDA at $0D71, rewritten as the game runs, by $0D26"
  },
  {
   "address": 3446,
   "type": "line",
   "text": "the high byte of the STA at $0D74, rewritten as the game runs, by $0D49"
  },
  {
   "address": 3449,
   "type": "line",
   "text": "the high byte of the LDA at $0D77, rewritten as the game runs, by $0D29"
  },
  {
   "address": 3452,
   "type": "line",
   "text": "the high byte of the STA at $0D7A, rewritten as the game runs, by $0D4C"
  },
  {
   "address": 3455,
   "type": "line",
   "text": "the high byte of the LDA at $0D7D, rewritten as the game runs, by $0D2C"
  },
  {
   "address": 3458,
   "type": "line",
   "text": "the high byte of the STA at $0D80, rewritten as the game runs, by $0D4F"
  },
  {
   "address": 3461,
   "type": "line",
   "text": "the high byte of the LDA at $0D83, rewritten as the game runs, by $0D32"
  },
  {
   "address": 3464,
   "type": "line",
   "text": "the high byte of the STA at $0D86, rewritten as the game runs, by $0D55"
  },
  {
   "address": 3467,
   "type": "line",
   "text": "the high byte of the LDA at $0D89, rewritten as the game runs, by $0D35"
  },
  {
   "address": 3470,
   "type": "line",
   "text": "the high byte of the STA at $0D8C, rewritten as the game runs, by $0D58"
  },
  {
   "address": 3473,
   "type": "line",
   "text": "the high byte of the LDA at $0D8F, rewritten as the game runs, by $0D38"
  },
  {
   "address": 3476,
   "type": "line",
   "text": "the high byte of the STA at $0D92, rewritten as the game runs, by $0D5B"
  },
  {
   "address": 3479,
   "type": "line",
   "text": "the high byte of the LDA at $0D95, rewritten as the game runs, by $0D3B"
  },
  {
   "address": 3482,
   "type": "line",
   "text": "the high byte of the STA at $0D98, rewritten as the game runs, by $0D5E"
  },
  {
   "address": 3487,
   "type": "line",
   "text": "the operand of the CPY at $0D9E, rewritten as the game runs, by $0D68"
  },
  {
   "address": 3491,
   "type": "line",
   "text": "one scroll step left: subtracts the step from the position, the fine part kept within 0-7"
  },
  {
   "address": 3497,
   "type": "line",
   "text": "named only as the operand of the BIT at $163F (the skip idiom), so nothing reads it as data"
  },
  {
   "address": 3518,
   "type": "line",
   "text": "one scroll step right: adds the step to the position, carrying from the fine part into the columns"
  },
  {
   "address": 3547,
   "type": "line",
   "text": "limits the scroll step to one column a pass"
  },
  {
   "address": 3573,
   "type": "line",
   "text": "waits X frames, by the flag the play interrupt sets in $057B"
  },
  {
   "address": 3587,
   "type": "line",
   "text": "sets the play area's colours from the level's four colour tables one step at a time, five frames apart ($0E1C for Y = 0-3)"
  },
  {
   "address": 3598,
   "type": "line",
   "text": "the same backwards, Y = 3-0, turning the screen on"
  },
  {
   "address": 3612,
   "type": "line",
   "text": "takes colour step Y from the level header: background $E05C, multicolours $E060 and $E068, sprite colour $E064; then waits 5 frames"
  },
  {
   "address": 3641,
   "type": "line",
   "text": "one pass of play: scroll ($0C90), clear the hidden screen ($0C03), then $2B96, $1351 and $29B5; unless paused the clock ($0EE9) and $1DD9; then the end test ($0F1B)"
  },
  {
   "address": 3676,
   "type": "line",
   "text": "main loop of play: fades the level in ($0E0E), then waits for each frame and runs one pass ($0E39, $2A37), asking the interrupt to show the new screen ($041D); when the level is over it fades out ($0E03) and clears both screens"
  },
  {
   "address": 3679,
   "type": "line",
   "text": "waits until bit 7 of $0400 is set (the frame flag), then runs the pass"
  },
  {
   "address": 3695,
   "type": "line",
   "text": "clears the frame flag and loops"
  },
  {
   "address": 3722,
   "type": "line",
   "text": "for screen row X, sets $20/$22 to row X of the screen at $4000, $22/$23 to colour RAM, $24/$25 to row X of $4400 and $26/$27 to row X of $4400 again, from the row tables at $49C4/$49DD"
  },
  {
   "address": 3765,
   "type": "line",
   "text": "ends the level: clock to 0:00, $CB46 = 8, the time-up and level-over flags, and the count released set to the level's total so no more come out"
  },
  {
   "address": 3817,
   "type": "line",
   "text": "the level's clock: every 50 frames, one second off the minutes and seconds at $CB39-$CB3B; at 0:00 the level ends ($0EB5)"
  },
  {
   "address": 3822,
   "type": "line",
   "text": "the operand of the ADC at $0EED, rewritten as the game runs, by $1096"
  },
  {
   "address": 3867,
   "type": "line",
   "text": "ends the level when no lemming is left: when $CB3E and $CB3F are both 0 and every lemming has been released, counts 30 passes ($0587) and then sets $0588"
  },
  {
   "address": 3906,
   "type": "line",
   "text": "the play area's video registers: $D016 = $18, the screen at $4000 or $4400 by $0421 ($D018 from $1349, and the sprite pointers' page from $1347 written into the band handlers' INC operands), bank 1, all sprites on, multicolour and behind the characters, and the level's colours"
  },
  {
   "address": 3908,
   "type": "line",
   "text": "sets $D016 for play"
  },
  {
   "address": 4007,
   "type": "line",
   "text": "fills both screens with character 1 and colour RAM with 0, then for rows 1-20 puts character 0 in columns 9-29 and colour 9 in colour RAM, and clears the lemmings' window on both screens"
  },
  {
   "address": 4086,
   "type": "line",
   "text": "five character codes the level set-up replaces in the level's block at ($E080): $B8, $BB, $BC, $BD, $BE"
  },
  {
   "address": 4091,
   "type": "line",
   "text": "what each becomes: $A8, $A9, $AA, $AB, $AC"
  },
  {
   "address": 4096,
   "type": "line",
   "text": "sets the level up for play. Copies the level header's pointers ($E080-$E093) into the operands of the routines that use them; in the $E07B bytes at ($E080) replaces the five codes at $0FF6 by those at $0FFB; $2DB5; silences the three voices ($3003); clears the counters and flags of play; the release rate from $E03C, the music speed from $E07F; copies the terrain sprites $8000-$8FFF to $6000-$6FFF; clears the lemmings' tables (50 each); the skill counts from $E044/$E04C and the clock from $E041; draws the panel ($11B4-$11E5, $15CA); scrolls the view to the start ($057C, from $E06C/$E06D); places the sprites and starts the cursor at 40,80"
  },
  {
   "address": 4181,
   "type": "line",
   "text": "the low byte of the LDA at $1054, rewritten as the game runs, by $100E"
  },
  {
   "address": 4197,
   "type": "line",
   "text": "the low byte of the STA at $1064, rewritten as the game runs, by $1011"
  },
  {
   "address": 4437,
   "type": "line",
   "text": "the high byte of the LDA at $1153, rewritten as the game runs, by $112C, $115C"
  },
  {
   "address": 4440,
   "type": "line",
   "text": "the high byte of the STA at $1156, rewritten as the game runs, by $1131, $115F"
  },
  {
   "address": 4472,
   "type": "line",
   "text": "the low byte of the LDA at $1177, rewritten as the game runs, by $1005"
  },
  {
   "address": 4637,
   "type": "line",
   "text": "the names the panel shows for the lemming under the cursor, eight characters each in the panel's font ($53 a space, the letters from $54): WALKER, CLIMBER, FLOATER, ATHLETE, a blank, FALLER, BLOCKER, DIGGER, BUILDER, BASHER, MINER"
  },
  {
   "address": 4725,
   "type": "line",
   "text": "per action (21), the offset of its name in $121D: blocker $30, floater $10, faller $28, digger $38, builder $40, walker 0, basher $48, miner $50, climber 8; $20 (blank) for the rest. A walker's offset has its climber and floater flags added ($29E2): CLIMBER, FLOATER or ATHLETE"
  },
  {
   "address": 4746,
   "type": "line",
   "text": "per action (21 entries): bit 7 set for an action that cannot take a new skill or be selected ($149C, $167E)"
  },
  {
   "address": 4767,
   "type": "line",
   "text": "per action (21 entries): the pixel row within its character cell at which the lemming's frame is drawn (0, 2 or 7), stored in frame_row ($B1) at $143E and used by $1B23, $1C6A and $1D74"
  },
  {
   "address": 4788,
   "type": "line",
   "text": "per action: the same row for a lemming whose fuse is burning (the top three bits of its flags, $05C7, are not zero), read at $143B after fuse_tick"
  },
  {
   "address": 4809,
   "type": "line",
   "text": "per action (21), the low byte of the offset of its first animation frame in the frame pointer tables ($1FE4)"
  },
  {
   "address": 4830,
   "type": "line",
   "text": "per action, the high byte of the same: 1 for actions 14 and 19, whose frames lie past the 256th entry"
  },
  {
   "address": 4851,
   "type": "line",
   "text": "the frame value at which some actions' animations wrap"
  },
  {
   "address": 4856,
   "type": "line",
   "text": "the byte $1FAB ORs into a lemming's frame bits ($0456) when it reaches the exit: $80; the table's other entries are action_frame_wrap's"
  },
  {
   "address": 4872,
   "type": "line",
   "text": "per action, how much the animation frame in $0456 (bits 3-7) advances a pass: 8 or $10"
  },
  {
   "address": 4893,
   "type": "line",
   "text": "the frame an animation restarts at when it wraps"
  },
  {
   "address": 4914,
   "type": "line",
   "text": "per action, a vertical offset added to the lemming's Y for its drawing"
  },
  {
   "address": 4935,
   "type": "line",
   "text": "the sprite pointers' page for each screen: $47 for the screen at $4400, $43 for $4000 (by $0421)"
  },
  {
   "address": 4937,
   "type": "line",
   "text": "$D018 for each screen"
  },
  {
   "address": 4939,
   "type": "line",
   "text": "the high byte of each screen's start, written into the drawing routines' operands"
  },
  {
   "address": 4941,
   "type": "line",
   "text": "per screen: low byte of the colour or row table the drawing routines use"
  },
  {
   "address": 4943,
   "type": "line",
   "text": "per screen: high byte of the same"
  },
  {
   "address": 4945,
   "type": "line",
   "text": "moves and draws every lemming released so far ($05B7) on the hidden screen: per lemming its action's handler and frame, the cursor test ($167E) and drawing ($1AA2); then the nuke, which gives each lemming in turn a fuse ($04EC = $BF), and the skill given at the cursor ($1508-$1538)"
  },
  {
   "address": 4958,
   "type": "line",
   "text": "an entry inside the BIT at $135D: entered here, its operand runs as LDA #$00; reached by $1356 BEQ, while the way through the BIT skips it"
  },
  {
   "address": 5210,
   "type": "line",
   "text": "the operand of the LDA at $1459, rewritten as the game runs, by $144E, $1F1B, $1F42"
  },
  {
   "address": 5213,
   "type": "line",
   "text": "the operand of the SBC at $145C, rewritten as the game runs, by $13EB, $13F0, $13F4, $1402"
  },
  {
   "address": 5217,
   "type": "line",
   "text": "the operand of the LDA at $1460, rewritten as the game runs, by $1456, $1F23, $1F4A, $21AE, $24FC, $258E and 1 more"
  },
  {
   "address": 5219,
   "type": "line",
   "text": "the operand of the SBC at $1462, rewritten as the game runs, by $13F8"
  },
  {
   "address": 5231,
   "type": "line",
   "text": "the operand of the LDA at $146E, rewritten as the game runs, by $1FE7"
  },
  {
   "address": 5239,
   "type": "line",
   "text": "the operand of the SBC at $1476, rewritten as the game runs, by $1393"
  },
  {
   "address": 5251,
   "type": "line",
   "text": "the operand of the SBC at $1482, rewritten as the game runs, by $139B"
  },
  {
   "address": 5276,
   "type": "line",
   "text": "a lemming's bomb fuse ($04EC): 5 off per pass unless paused; below $20 the lemming stops what it does and explodes (action 5, through $2160)"
  },
  {
   "address": 5433,
   "type": "line",
   "text": "the low byte of the JSR at $1538, rewritten as the game runs, by $152F"
  },
  {
   "address": 5434,
   "type": "line",
   "text": "the high byte of the JSR at $1538, rewritten as the game runs, by $1535"
  },
  {
   "address": 5436,
   "type": "line",
   "text": "the release rate's two digits in the panel, from the rate step at $0578 through $4FB8/$4FD0"
  },
  {
   "address": 5456,
   "type": "line",
   "text": "takes one of the chosen skill off its count ($05C8 tens, $05D2 units), plays sound $1D and redraws the count ($1568)"
  },
  {
   "address": 5480,
   "type": "line",
   "text": "draws a skill's count (Y = skill) as two digits in the panel, at the cell from $77EA; a count of 0 shows as blank"
  },
  {
   "address": 5519,
   "type": "line",
   "text": "adds one to the two-digit count of lemmings out at $CB3E/$CB3F (decimal, a digit a byte); entered at $1592 (inside the BIT at $1591, which hides LDX #$00) it adds one to the count of lemmings under the cursor at $CB3C/$CB3D instead"
  },
  {
   "address": 5522,
   "type": "line",
   "text": "an entry inside the BIT at $1591: entered here, its operand runs as LDX #$00; reached by $1695 JSR, while the way through the BIT skips it"
  },
  {
   "address": 5544,
   "type": "line",
   "text": "takes one off the two-digit count of lemmings out at $CB3E/$CB3F, when one leaves the level"
  },
  {
   "address": 5562,
   "type": "line",
   "text": "low bytes of the eight routines that give a skill to the selected lemming"
  },
  {
   "address": 5570,
   "type": "line",
   "text": "high bytes of the same"
  },
  {
   "address": 5578,
   "type": "line",
   "text": "draws all ten counts of the panel (release rate twice and the eight skills), then the 13 fixed cells of the panel from the table at $7D90"
  },
  {
   "address": 5606,
   "type": "line",
   "text": "skill 1: sets bit 1 of the lemming's flags at $0456 (once set, it stays for the level); refused when it is set already; then takes the skill off its count ($1550)"
  },
  {
   "address": 5625,
   "type": "line",
   "text": "skill 2: sets bit 2 of the lemming's flags at $0456; refused when it is set already"
  },
  {
   "address": 5643,
   "type": "line",
   "text": "skill 3: starts the lemming's fuse ($04EC = $BF) unless one is burning"
  },
  {
   "address": 5656,
   "type": "line",
   "text": "skill 5: action $0A, or $0B for a lemming facing the other way (bit 7 of $0424; the BIT at $1621 hides LDA #$0B)"
  },
  {
   "address": 5666,
   "type": "line",
   "text": "an entry inside the BIT at $1621: entered here, its operand runs as LDA #$0B; reached by $161D BMI, while the way through the BIT skips it"
  },
  {
   "address": 5671,
   "type": "line",
   "text": "skill 7: action $0E, or $0F the other way"
  },
  {
   "address": 5681,
   "type": "line",
   "text": "an entry inside the BIT at $1630: entered here, its operand runs as LDA #$0F; reached by $162C BMI, while the way through the BIT skips it"
  },
  {
   "address": 5686,
   "type": "line",
   "text": "skill 6: action $0C, or $0D the other way"
  },
  {
   "address": 5696,
   "type": "line",
   "text": "an entry inside the BIT at $163F: entered here, its operand runs as LDA #$0D; reached by $163B BMI, while the way through the BIT skips it"
  },
  {
   "address": 5701,
   "type": "line",
   "text": "skill 4: action 0"
  },
  {
   "address": 5708,
   "type": "line",
   "text": "skill 8: action $06"
  },
  {
   "address": 5712,
   "type": "line",
   "text": "gives the new action in A (written into the ORA at $166E) to lemming Y unless its action is 2, the same one, a blocker's (0 or 1), or $10; keeps bits 6-7 of $0424, takes the skill off its count and starts the action's animation ($2163)"
  },
  {
   "address": 5743,
   "type": "line",
   "text": "the operand of the ORA at $166E, rewritten as the game runs, by $1650"
  },
  {
   "address": 5754,
   "type": "line",
   "text": "the operand of the LDX at $1679, rewritten as the game runs, by $1673"
  },
  {
   "address": 5758,
   "type": "line",
   "text": "is this lemming under the cursor? Takes the nearest by $4DFA among the lemmings that can take a skill ($128A), into $05C1"
  },
  {
   "address": 5785,
   "type": "line",
   "text": "the operand of the LDA at $1698, rewritten as the game runs, by $168C"
  },
  {
   "address": 5843,
   "type": "line",
   "text": "reads the joystick or, when $CB38 bit 7 says a mouse was found, the mouse; fire with nothing else pending asks for the skill to be given ($05C4)"
  },
  {
   "address": 5886,
   "type": "line",
   "text": "an entry inside the BIT at $16FD: entered here, its operand runs as LDA #$00; reached by $16E7 BPL, while the way through the BIT skips it"
  },
  {
   "address": 5892,
   "type": "line",
   "text": "reads the 1351 mouse through the SID's paddle registers: X from $D419 and Y from $D41A, each as the change since the last read ($1768, $1795), added to the cursor at $B6/$B8; at the edges of the play area the view scrolls ($1735, $1751)"
  },
  {
   "address": 5912,
   "type": "line",
   "text": "reads the paddle Y register $D41A"
  },
  {
   "address": 5941,
   "type": "line",
   "text": "keeps the cursor's X within 4-$53 (in steps of two pixels); past either edge the view scrolls instead"
  },
  {
   "address": 5961,
   "type": "line",
   "text": "an RTS no path reaches, after the JMP above"
  },
  {
   "address": 5969,
   "type": "line",
   "text": "keeps the cursor's Y within $11-$A7"
  },
  {
   "address": 5992,
   "type": "line",
   "text": "the change in a paddle reading since the last one, as the 1351 sends it: 7 bits, halved twice for X"
  },
  {
   "address": 6037,
   "type": "line",
   "text": "the same for Y, halved once"
  },
  {
   "address": 6079,
   "type": "line",
   "text": "selects control port 2 for the SID's paddle lines ($DC00 = $80), keeping the old value at $0594"
  },
  {
   "address": 6091,
   "type": "line",
   "text": "moves the cursor with the joystick: up and down accelerate in $0589/$058A up to 4 lines a frame, left and right in $058C/$058D up to 2; at the left and right edges the view scrolls ($1867, $18ED)"
  },
  {
   "address": 6247,
   "type": "line",
   "text": "asks the view to move right by two pixels, while the scroll delay $041F allows"
  },
  {
   "address": 6255,
   "type": "line",
   "text": "moves the scroll target two pixels right, to the end of the level (column $38, fine 7)"
  },
  {
   "address": 6381,
   "type": "line",
   "text": "moves the scroll target two pixels left, to column 0"
  },
  {
   "address": 6422,
   "type": "line",
   "text": "builds the cursor: puts back the four characters it covered last frame, then at the new position saves them ($05B9-$05BC), replaces them with characters $FC-$FF, and draws into those the old characters' pixels ORed with the cursor shape for the position within the cell ($48F0, $48F8, $49F6, $4BEA)"
  },
  {
   "address": 6590,
   "type": "line",
   "text": "the low byte of the LDA at $19BD, rewritten as the game runs, by $1976"
  },
  {
   "address": 6591,
   "type": "line",
   "text": "the high byte of the LDA at $19BD, rewritten as the game runs, by $197C"
  },
  {
   "address": 6632,
   "type": "line",
   "text": "the high byte of the LDA at $19E6, rewritten as the game runs, by $1940"
  },
  {
   "address": 6661,
   "type": "line",
   "text": "the high byte of the LDA at $1A03, rewritten as the game runs, by $1943"
  },
  {
   "address": 6694,
   "type": "line",
   "text": "the high byte of the LDA at $1A24, rewritten as the game runs, by $1946"
  },
  {
   "address": 6723,
   "type": "line",
   "text": "the high byte of the LDA at $1A41, rewritten as the game runs, by $1949"
  },
  {
   "address": 6734,
   "type": "line",
   "text": "the low byte of the LDA at $1A4D, rewritten as the game runs, by $19E3"
  },
  {
   "address": 6735,
   "type": "line",
   "text": "the high byte of the LDA at $1A4D, rewritten as the game runs, by $19E9"
  },
  {
   "address": 6738,
   "type": "line",
   "text": "the high byte of the STA at $1A50, rewritten as the game runs, by $1967"
  },
  {
   "address": 6740,
   "type": "line",
   "text": "the low byte of the LDA at $1A53, rewritten as the game runs, by $1A00"
  },
  {
   "address": 6741,
   "type": "line",
   "text": "the high byte of the LDA at $1A53, rewritten as the game runs, by $1A06"
  },
  {
   "address": 6744,
   "type": "line",
   "text": "the high byte of the STA at $1A56, rewritten as the game runs, by $196A"
  },
  {
   "address": 6746,
   "type": "line",
   "text": "the low byte of the LDA at $1A59, rewritten as the game runs, by $1A21"
  },
  {
   "address": 6747,
   "type": "line",
   "text": "the high byte of the LDA at $1A59, rewritten as the game runs, by $1A27"
  },
  {
   "address": 6750,
   "type": "line",
   "text": "the high byte of the STA at $1A5C, rewritten as the game runs, by $196D"
  },
  {
   "address": 6752,
   "type": "line",
   "text": "the low byte of the LDA at $1A5F, rewritten as the game runs, by $1A3E"
  },
  {
   "address": 6753,
   "type": "line",
   "text": "the high byte of the LDA at $1A5F, rewritten as the game runs, by $1A44"
  },
  {
   "address": 6756,
   "type": "line",
   "text": "the high byte of the STA at $1A62, rewritten as the game runs, by $1970"
  },
  {
   "address": 6769,
   "type": "line",
   "text": "the high byte of the LDA at $1A6F, rewritten as the game runs, by $194F"
  },
  {
   "address": 6771,
   "type": "line",
   "text": "the low byte of the ORA at $1A72, rewritten as the game runs, by $198B"
  },
  {
   "address": 6772,
   "type": "line",
   "text": "the high byte of the ORA at $1A72, rewritten as the game runs, by $1994"
  },
  {
   "address": 6775,
   "type": "line",
   "text": "the high byte of the STA at $1A75, rewritten as the game runs, by $1952"
  },
  {
   "address": 6778,
   "type": "line",
   "text": "the high byte of the LDA at $1A78, rewritten as the game runs, by $1955"
  },
  {
   "address": 6780,
   "type": "line",
   "text": "the low byte of the ORA at $1A7B, rewritten as the game runs, by $199D"
  },
  {
   "address": 6781,
   "type": "line",
   "text": "the high byte of the ORA at $1A7B, rewritten as the game runs, by $19A6"
  },
  {
   "address": 6784,
   "type": "line",
   "text": "the high byte of the STA at $1A7E, rewritten as the game runs, by $1958"
  },
  {
   "address": 6795,
   "type": "line",
   "text": "the high byte of the LDA at $1A89, rewritten as the game runs, by $195B"
  },
  {
   "address": 6797,
   "type": "line",
   "text": "the low byte of the ORA at $1A8C, rewritten as the game runs, by $198E"
  },
  {
   "address": 6798,
   "type": "line",
   "text": "the high byte of the ORA at $1A8C, rewritten as the game runs, by $1997"
  },
  {
   "address": 6801,
   "type": "line",
   "text": "the high byte of the STA at $1A8F, rewritten as the game runs, by $195E"
  },
  {
   "address": 6804,
   "type": "line",
   "text": "the high byte of the LDA at $1A92, rewritten as the game runs, by $1961"
  },
  {
   "address": 6806,
   "type": "line",
   "text": "the low byte of the ORA at $1A95, rewritten as the game runs, by $19A0"
  },
  {
   "address": 6807,
   "type": "line",
   "text": "the high byte of the ORA at $1A95, rewritten as the game runs, by $19A9"
  },
  {
   "address": 6810,
   "type": "line",
   "text": "the high byte of the STA at $1A98, rewritten as the game runs, by $1964"
  },
  {
   "address": 6818,
   "type": "line",
   "text": "draws one lemming as a software sprite: for each of the screen cells it covers (up to three rows of two), takes a fresh character from the counter at $0422 (or reuses the one already there; codes $F4 and up go through $2D48) and ORs the lemming's frame into it. The characters' bitmap addresses come from $74C0/$75C0"
  },
  {
   "address": 6844,
   "type": "line",
   "text": "the high byte of the LDA at $1ABA, rewritten as the game runs, by $13A4"
  },
  {
   "address": 6851,
   "type": "line",
   "text": "the low byte of the STA at $1AC2, rewritten as the game runs, by $1AB7"
  },
  {
   "address": 6852,
   "type": "line",
   "text": "the high byte of the STA at $1AC2, rewritten as the game runs, by $1ABD"
  },
  {
   "address": 6879,
   "type": "line",
   "text": "the low byte of the LDA at $1ADE, rewritten as the game runs, by $13C5"
  },
  {
   "address": 6880,
   "type": "line",
   "text": "the high byte of the LDA at $1ADE, rewritten as the game runs, by $13D4"
  },
  {
   "address": 6898,
   "type": "line",
   "text": "the low byte of the LDA at $1AF1, rewritten as the game runs, by $13C8"
  },
  {
   "address": 6899,
   "type": "line",
   "text": "the high byte of the LDA at $1AF1, rewritten as the game runs, by $13D7"
  },
  {
   "address": 6917,
   "type": "line",
   "text": "the low byte of the LDA at $1B04, rewritten as the game runs, by $13CB"
  },
  {
   "address": 6918,
   "type": "line",
   "text": "the high byte of the LDA at $1B04, rewritten as the game runs, by $13DA"
  },
  {
   "address": 6931,
   "type": "line",
   "text": "the operand of the ADC at $1B12, rewritten as the game runs, by $1EF6"
  },
  {
   "address": 6994,
   "type": "line",
   "text": "the high byte of the LDA at $1B50, rewritten as the game runs, by $13A7"
  },
  {
   "address": 7040,
   "type": "line",
   "text": "the high byte of the LDA at $1B7E, rewritten as the game runs, by $13AA"
  },
  {
   "address": 7089,
   "type": "line",
   "text": "the high byte of the LDA at $1BAF, rewritten as the game runs, by $13AD"
  },
  {
   "address": 7140,
   "type": "line",
   "text": "the high byte of the LDA at $1BE2, rewritten as the game runs, by $13B0"
  },
  {
   "address": 7191,
   "type": "line",
   "text": "the high byte of the LDA at $1C15, rewritten as the game runs, by $13B3"
  },
  {
   "address": 7242,
   "type": "line",
   "text": "the high byte of the LDA at $1C48, rewritten as the game runs, by $13B6"
  },
  {
   "address": 7268,
   "type": "line",
   "text": "(inside draw_lemming) points the drawing loops at the frame's graphics from $3C00/$3D2C/$3E58/$2EA0 by frame number"
  },
  {
   "address": 7291,
   "type": "line",
   "text": "the high byte of the ADC at $1C79, rewritten as the game runs, by $1C58, $1CB5"
  },
  {
   "address": 7305,
   "type": "line",
   "text": "the high byte of the ADC at $1C87, rewritten as the game runs, by $1C5B, $1CB8"
  },
  {
   "address": 7316,
   "type": "line",
   "text": "the operand of the LDA at $1C93, rewritten as the game runs, by $1C6F"
  },
  {
   "address": 7320,
   "type": "line",
   "text": "the high byte of the ADC at $1C96, rewritten as the game runs, by $1C5E, $1CBB"
  },
  {
   "address": 7334,
   "type": "line",
   "text": "the high byte of the ADC at $1CA4, rewritten as the game runs, by $1C61, $1CBE"
  },
  {
   "address": 7367,
   "type": "line",
   "text": "the operand of the LDA at $1CC6, rewritten as the game runs, by $1B14"
  },
  {
   "address": 7376,
   "type": "line",
   "text": "the operand of the LDA at $1CCF, rewritten as the game runs, by $1C72"
  },
  {
   "address": 7399,
   "type": "line",
   "text": "the operand of the LDA at $1CE6, rewritten as the game runs, by $1C75"
  },
  {
   "address": 7453,
   "type": "line",
   "text": "the operand of the LDA at $1D1C, rewritten as the game runs, by $1B17"
  },
  {
   "address": 7496,
   "type": "line",
   "text": "ORs a lemming's frame into the claimed characters, row by row; the two colour bits of each pixel come from $B400/$B500 (a byte's pixels spread for the X position) and the frame's mask at $3090/$30A0"
  },
  {
   "address": 7497,
   "type": "line",
   "text": "the low byte of the LDX at $1D48, rewritten as the game runs, by $1C7C"
  },
  {
   "address": 7498,
   "type": "line",
   "text": "the high byte of the LDX at $1D48, rewritten as the game runs, by $1C8A"
  },
  {
   "address": 7501,
   "type": "line",
   "text": "the high byte of the LDA at $1D4B, rewritten as the game runs, by $1D25"
  },
  {
   "address": 7503,
   "type": "line",
   "text": "the low byte of the ORA at $1D4E, rewritten as the game runs, by $1B4A"
  },
  {
   "address": 7504,
   "type": "line",
   "text": "the high byte of the ORA at $1D4E, rewritten as the game runs, by $1B53"
  },
  {
   "address": 7506,
   "type": "line",
   "text": "the low byte of the ORA at $1D51, rewritten as the game runs, by $1CD5, $1D02"
  },
  {
   "address": 7507,
   "type": "line",
   "text": "the high byte of the ORA at $1D51, rewritten as the game runs, by $1CE0, $1D10"
  },
  {
   "address": 7509,
   "type": "line",
   "text": "the low byte of the STA at $1D54, rewritten as the game runs, by $1B4D"
  },
  {
   "address": 7510,
   "type": "line",
   "text": "the high byte of the STA at $1D54, rewritten as the game runs, by $1B56"
  },
  {
   "address": 7513,
   "type": "line",
   "text": "the high byte of the LDA at $1D57, rewritten as the game runs, by $1D38"
  },
  {
   "address": 7515,
   "type": "line",
   "text": "the low byte of the LDX at $1D5A, rewritten as the game runs, by $1C99"
  },
  {
   "address": 7516,
   "type": "line",
   "text": "the high byte of the LDX at $1D5A, rewritten as the game runs, by $1CA7"
  },
  {
   "address": 7519,
   "type": "line",
   "text": "the high byte of the ORA at $1D5D, rewritten as the game runs, by $1D28"
  },
  {
   "address": 7521,
   "type": "line",
   "text": "the low byte of the ORA at $1D60, rewritten as the game runs, by $1B78"
  },
  {
   "address": 7522,
   "type": "line",
   "text": "the high byte of the ORA at $1D60, rewritten as the game runs, by $1B81"
  },
  {
   "address": 7524,
   "type": "line",
   "text": "the low byte of the ORA at $1D63, rewritten as the game runs, by $1CEC, $1D05"
  },
  {
   "address": 7525,
   "type": "line",
   "text": "the high byte of the ORA at $1D63, rewritten as the game runs, by $1CF7, $1D13"
  },
  {
   "address": 7527,
   "type": "line",
   "text": "the low byte of the STA at $1D66, rewritten as the game runs, by $1B7B"
  },
  {
   "address": 7528,
   "type": "line",
   "text": "the high byte of the STA at $1D66, rewritten as the game runs, by $1B84"
  },
  {
   "address": 7570,
   "type": "line",
   "text": "the low byte of the LDX at $1D91, rewritten as the game runs, by $1C7F"
  },
  {
   "address": 7571,
   "type": "line",
   "text": "the high byte of the LDX at $1D91, rewritten as the game runs, by $1C8D"
  },
  {
   "address": 7574,
   "type": "line",
   "text": "the high byte of the LDA at $1D94, rewritten as the game runs, by $1D2B"
  },
  {
   "address": 7576,
   "type": "line",
   "text": "the low byte of the ORA at $1D97, rewritten as the game runs, by $1BA9"
  },
  {
   "address": 7577,
   "type": "line",
   "text": "the high byte of the ORA at $1D97, rewritten as the game runs, by $1BB4"
  },
  {
   "address": 7579,
   "type": "line",
   "text": "the low byte of the ORA at $1D9A, rewritten as the game runs, by $1CD8, $1D08"
  },
  {
   "address": 7580,
   "type": "line",
   "text": "the high byte of the ORA at $1D9A, rewritten as the game runs, by $1CE3, $1D16"
  },
  {
   "address": 7582,
   "type": "line",
   "text": "the low byte of the STA at $1D9D, rewritten as the game runs, by $1BAC"
  },
  {
   "address": 7583,
   "type": "line",
   "text": "the high byte of the STA at $1D9D, rewritten as the game runs, by $1BB7"
  },
  {
   "address": 7586,
   "type": "line",
   "text": "the high byte of the LDA at $1DA0, rewritten as the game runs, by $1D3B"
  },
  {
   "address": 7588,
   "type": "line",
   "text": "the low byte of the LDX at $1DA3, rewritten as the game runs, by $1C9C"
  },
  {
   "address": 7589,
   "type": "line",
   "text": "the high byte of the LDX at $1DA3, rewritten as the game runs, by $1CAA"
  },
  {
   "address": 7592,
   "type": "line",
   "text": "the high byte of the ORA at $1DA6, rewritten as the game runs, by $1D2E"
  },
  {
   "address": 7594,
   "type": "line",
   "text": "the low byte of the ORA at $1DA9, rewritten as the game runs, by $1BDC"
  },
  {
   "address": 7595,
   "type": "line",
   "text": "the high byte of the ORA at $1DA9, rewritten as the game runs, by $1BE7"
  },
  {
   "address": 7597,
   "type": "line",
   "text": "the low byte of the ORA at $1DAC, rewritten as the game runs, by $1CEF, $1D0B"
  },
  {
   "address": 7598,
   "type": "line",
   "text": "the high byte of the ORA at $1DAC, rewritten as the game runs, by $1CFA, $1D19"
  },
  {
   "address": 7600,
   "type": "line",
   "text": "the low byte of the STA at $1DAF, rewritten as the game runs, by $1BDF"
  },
  {
   "address": 7601,
   "type": "line",
   "text": "the high byte of the STA at $1DAF, rewritten as the game runs, by $1BEA"
  },
  {
   "address": 7604,
   "type": "line",
   "text": "the operand of the CPY at $1DB3, rewritten as the game runs, by $1D7F, $1D89"
  },
  {
   "address": 7607,
   "type": "line",
   "text": "this opcode is rewritten by $1D84 and $1D8E: NOP lets the loop below draw a third row of the lemming, RTS ends the drawing after two"
  },
  {
   "address": 7609,
   "type": "line",
   "text": "the low byte of the LDX at $1DB8, rewritten as the game runs, by $1C82"
  },
  {
   "address": 7610,
   "type": "line",
   "text": "the high byte of the LDX at $1DB8, rewritten as the game runs, by $1C90"
  },
  {
   "address": 7613,
   "type": "line",
   "text": "the high byte of the LDA at $1DBB, rewritten as the game runs, by $1D31"
  },
  {
   "address": 7615,
   "type": "line",
   "text": "the low byte of the ORA at $1DBE, rewritten as the game runs, by $1C0F"
  },
  {
   "address": 7616,
   "type": "line",
   "text": "the high byte of the ORA at $1DBE, rewritten as the game runs, by $1C1A"
  },
  {
   "address": 7618,
   "type": "line",
   "text": "the low byte of the STA at $1DC1, rewritten as the game runs, by $1C12"
  },
  {
   "address": 7619,
   "type": "line",
   "text": "the high byte of the STA at $1DC1, rewritten as the game runs, by $1C1D"
  },
  {
   "address": 7622,
   "type": "line",
   "text": "the high byte of the LDA at $1DC4, rewritten as the game runs, by $1D3E"
  },
  {
   "address": 7624,
   "type": "line",
   "text": "the low byte of the LDX at $1DC7, rewritten as the game runs, by $1C9F"
  },
  {
   "address": 7625,
   "type": "line",
   "text": "the high byte of the LDX at $1DC7, rewritten as the game runs, by $1CAD"
  },
  {
   "address": 7628,
   "type": "line",
   "text": "the high byte of the ORA at $1DCA, rewritten as the game runs, by $1D34"
  },
  {
   "address": 7630,
   "type": "line",
   "text": "the low byte of the ORA at $1DCD, rewritten as the game runs, by $1C42"
  },
  {
   "address": 7631,
   "type": "line",
   "text": "the high byte of the ORA at $1DCD, rewritten as the game runs, by $1C4D"
  },
  {
   "address": 7633,
   "type": "line",
   "text": "the low byte of the STA at $1DD0, rewritten as the game runs, by $1C45"
  },
  {
   "address": 7634,
   "type": "line",
   "text": "the high byte of the STA at $1DD0, rewritten as the game runs, by $1C50"
  },
  {
   "address": 7637,
   "type": "line",
   "text": "the operand of the CPY at $1DD4, rewritten as the game runs, by $1D7A"
  },
  {
   "address": 7641,
   "type": "line",
   "text": "the trap doors: a timer driven by the release rate ($05B8 + $0595 from $4FE8) lets the next lemming out; the first time it plays sounds 1 and 2. Each new lemming starts at the next entrance in the level header ($E06C/$E06D X, $E06E Y; three bytes each, $FF ends the list), with the direction from $E055 (toggled every lemming when $E054 is set), and counts as out ($158F)"
  },
  {
   "address": 7786,
   "type": "line",
   "text": "low bytes of the 21 action handlers, by action number (the low five bits of $0424)"
  },
  {
   "address": 7807,
   "type": "line",
   "text": "the action handlers' addresses, high bytes (21)"
  },
  {
   "address": 7828,
   "type": "line",
   "text": "one pass of one lemming: its action and flags into $05C6/$05C7, the terrain pointers set for its position ($287E); unless paused, a level with deadly ground ($E07C) checks it ($2E07, result 2: action $13, sound $1E), then its action's handler runs (the JMP at $2010, operand from $1E6A/$1E7F); then the handler's step moves it in X ($2E56) and Y ($2E68). A lemming that leaves the level at either side or below line $A9 is gone (sound $1E); one that reaches the exit (within 9 lines and 2 columns of it) starts action 4 (sound $1B). Last, the animation frame advances"
  },
  {
   "address": 8066,
   "type": "line",
   "text": "the operand of the SBC at $1F81, rewritten as the game runs, by $1376"
  },
  {
   "address": 8078,
   "type": "line",
   "text": "the operand of the SBC at $1F8D, rewritten as the game runs, by $1367"
  },
  {
   "address": 8086,
   "type": "line",
   "text": "the operand of the SBC at $1F95, rewritten as the game runs, by $136D"
  },
  {
   "address": 8156,
   "type": "line",
   "text": "the operand of the ORA at $1FDB, rewritten as the game runs, by $1FC2"
  },
  {
   "address": 8179,
   "type": "line",
   "text": "before walking on, on a level with water ($E07D bit 7): a lemming within 8 lines of the water's surface in its column ($2D7B) takes the level's drowning action from $2D7A, with sound $1E; otherwise the walk ($2013)"
  },
  {
   "address": 8209,
   "type": "line",
   "text": "the low byte of the JMP at $2010, rewritten as the game runs, by $1EE4"
  },
  {
   "address": 8210,
   "type": "line",
   "text": "the high byte of the JMP at $2010, rewritten as the game runs, by $1EEA"
  },
  {
   "address": 8211,
   "type": "line",
   "text": "action 8/9, walking: tests the terrain ahead at rising heights ($28E8): a step up of 1-5 lines is climbed, a wall turns it round unless it is a climber (bit 1 of $0456), which starts climbing (action $10); no ground below starts a fall (action 2, $20B3)"
  },
  {
   "address": 8340,
   "type": "line",
   "text": "action 2, falling, keeping the direction"
  },
  {
   "address": 8365,
   "type": "line",
   "text": "tests for ground under the lemming over two columns and three rows ($28E8): Y returns $0B when none was found at any of them, the row it was found at otherwise"
  },
  {
   "address": 8371,
   "type": "line",
   "text": "$20AD for the column in A and the next one"
  },
  {
   "address": 8384,
   "type": "line",
   "text": "the operand of the LDX at $20BF, rewritten as the game runs, by $20AD, $20B3"
  },
  {
   "address": 8393,
   "type": "line",
   "text": "the operand of the LDX at $20C8, rewritten as the game runs, by $20B9"
  },
  {
   "address": 8446,
   "type": "line",
   "text": "an entry inside the BIT at $20FD: entered here, its operand runs as LDA #$01; reached by $20D9 BNE, $20E3 BNE, while the way through the BIT skips it"
  },
  {
   "address": 8449,
   "type": "line",
   "text": "an entry inside the BIT at $2100: entered here, its operand runs as LDA #$02; reached by $20ED BNE, $20F7 BNE, while the way through the BIT skips it"
  },
  {
   "address": 8452,
   "type": "line",
   "text": "an entry inside the BIT at $2103: entered here, its operand runs as LDA #$03; reached by $20F9 BEQ, while the way through the BIT skips it"
  },
  {
   "address": 8456,
   "type": "line",
   "text": "the operand of the ADC at $2107, rewritten as the game runs, by $20BC"
  },
  {
   "address": 8459,
   "type": "line",
   "text": "action 2: one step down a pass while there is no ground; a floater (bit 2 of $0456) opens its umbrella after two steps (action 1); landing after more than $15 steps is fatal (action 3, sound $1E), otherwise it walks on"
  },
  {
   "address": 8539,
   "type": "line",
   "text": "an entry inside the BIT at $215A: entered here, its operand runs as LDA #$08; reached by $2156 BPL, while the way through the BIT skips it"
  },
  {
   "address": 8544,
   "type": "line",
   "text": "starts the lemming's new action at its first frame: clears the frame bits of $0456 and the counter in $051E"
  },
  {
   "address": 8564,
   "type": "line",
   "text": "action 0, blocking: writes the blocker's height into the blocker map at $7E00 for the columns it covers ($21C8); when the ground goes from under it, it leaves the map and falls"
  },
  {
   "address": 8593,
   "type": "line",
   "text": "the high byte of the LDA at $218F, rewritten as the game runs, by $21B4, $21D7"
  },
  {
   "address": 8642,
   "type": "line",
   "text": "writes A into the blocker map at the lemming's column, the STA's operand set by $21C8: the blocker's height, or $FF to clear it"
  },
  {
   "address": 8644,
   "type": "line",
   "text": "the high byte of the STA at $21C2, rewritten as the game runs, by $21B7, $21D4"
  },
  {
   "address": 8646,
   "type": "line",
   "text": "the operand of the LDY at $21C5, rewritten as the game runs, by $2185"
  },
  {
   "address": 8648,
   "type": "line",
   "text": "points the blocker map's operands at the lemming's column: $7E00 + X + 3"
  },
  {
   "address": 8680,
   "type": "line",
   "text": "is there terrain right in front at the lemming's height? ($80 when the column ahead is filled between its height and 16 lines above)"
  },
  {
   "address": 8683,
   "type": "line",
   "text": "an entry inside the BIT at $21EA: entered here, its operand runs as LDA #$02; reached by $2013 JSR, $2624 JSR, while the way through the BIT skips it"
  },
  {
   "address": 8723,
   "type": "line",
   "text": "the operand of the ADC at $2212, rewritten as the game runs, by $21ED"
  },
  {
   "address": 8727,
   "type": "line",
   "text": "the high byte of the SBC at $2215, rewritten as the game runs, by $220B"
  },
  {
   "address": 8740,
   "type": "line",
   "text": "action 3, the splat: the animation plays to its end ($78), then the lemming is gone"
  },
  {
   "address": 8771,
   "type": "line",
   "text": "action 1, floating: falls slowly with the umbrella; on the ground it walks on"
  },
  {
   "address": 8801,
   "type": "line",
   "text": "the operand of the LDY at $2260, rewritten as the game runs, by $2252"
  },
  {
   "address": 8821,
   "type": "line",
   "text": "an entry inside the BIT at $2274: entered here, its operand runs as LDA #$08; reached by $2270 BPL, while the way through the BIT skips it"
  },
  {
   "address": 8829,
   "type": "line",
   "text": "action 4, walking into the exit: at the end of the animation ($38) it is gone and counted as saved ($2A1A, $15A8)"
  },
  {
   "address": 8856,
   "type": "line",
   "text": "draws the explosion of a bomber into four rows of fresh characters around its centre ($06E5-$06E8), once"
  },
  {
   "address": 8911,
   "type": "line",
   "text": "one row of the bomber's blast picture: works out where it falls on the screen and, when it is in view, builds it into four fresh characters ORed from the blast's shape ($7B10/$7B30, by the fine scroll) and puts them on the hidden screen"
  },
  {
   "address": 8931,
   "type": "line",
   "text": "the operand of the SBC at $22E2, rewritten as the game runs, by $22DB"
  },
  {
   "address": 8938,
   "type": "line",
   "text": "the operand of the LDA at $22E9, rewritten as the game runs, by $22D4"
  },
  {
   "address": 8940,
   "type": "line",
   "text": "the operand of the SBC at $22EB, rewritten as the game runs, by $22A5"
  },
  {
   "address": 8999,
   "type": "line",
   "text": "the high byte of the LDA at $2325, rewritten as the game runs, by $13B9"
  },
  {
   "address": 9006,
   "type": "line",
   "text": "the low byte of the LDY at $232D, rewritten as the game runs, by $230C"
  },
  {
   "address": 9010,
   "type": "line",
   "text": "the high byte of the LDA at $2330, rewritten as the game runs, by $2319"
  },
  {
   "address": 9012,
   "type": "line",
   "text": "the low byte of the LDY at $2333, rewritten as the game runs, by $2301"
  },
  {
   "address": 9016,
   "type": "line",
   "text": "the high byte of the ORA at $2336, rewritten as the game runs, by $2315"
  },
  {
   "address": 9018,
   "type": "line",
   "text": "the low byte of the STA at $2339, rewritten as the game runs, by $2322"
  },
  {
   "address": 9019,
   "type": "line",
   "text": "the high byte of the STA at $2339, rewritten as the game runs, by $2328"
  },
  {
   "address": 9033,
   "type": "line",
   "text": "the operand of the ADC at $2348, rewritten as the game runs, by $22F6"
  },
  {
   "address": 9044,
   "type": "line",
   "text": "the low byte of the LDA at $2353, rewritten as the game runs, by $13CE"
  },
  {
   "address": 9045,
   "type": "line",
   "text": "the high byte of the LDA at $2353, rewritten as the game runs, by $13DD"
  },
  {
   "address": 9067,
   "type": "line",
   "text": "the low byte of the LDA at $236A, rewritten as the game runs, by $234A"
  },
  {
   "address": 9068,
   "type": "line",
   "text": "the high byte of the LDA at $236A, rewritten as the game runs, by $2358"
  },
  {
   "address": 9075,
   "type": "line",
   "text": "the low byte of the STA at $2372, rewritten as the game runs, by $234D"
  },
  {
   "address": 9076,
   "type": "line",
   "text": "the high byte of the STA at $2372, rewritten as the game runs, by $235B"
  },
  {
   "address": 9080,
   "type": "line",
   "text": "the low byte of the STA at $2377, rewritten as the game runs, by $2350"
  },
  {
   "address": 9081,
   "type": "line",
   "text": "the high byte of the STA at $2377, rewritten as the game runs, by $2362"
  },
  {
   "address": 9097,
   "type": "line",
   "text": "the four shift positions of the blast picture's characters, by the explosion's pixel column ($2312)"
  },
  {
   "address": 9101,
   "type": "line",
   "text": "action 20: becomes an exploding lemming (action 5)"
  },
  {
   "address": 9117,
   "type": "line",
   "text": "action 5: at frame $68 takes the lemming off the blocker map, records the blast's centre and plays sound $1A; at $78 it is gone and the blast is cut out of the terrain, eleven rows from the table at $2E78/$2E81 ($2930), except steel ($2E07)"
  },
  {
   "address": 9258,
   "type": "line",
   "text": "the operand of the LDA at $2429, rewritten as the game runs, by $2410, $2426"
  },
  {
   "address": 9290,
   "type": "line",
   "text": "action 6, digging down: removes a row of terrain under the lemming each frame of its stroke ($248C, cells from $3F98/$3FA8/$3FB8); steel stops it ($2E07: back to walking); with nothing left below it falls"
  },
  {
   "address": 9315,
   "type": "line",
   "text": "the operand of the LDX at $2462, rewritten as the game runs, by $2454"
  },
  {
   "address": 9342,
   "type": "line",
   "text": "an entry inside the BIT at $247D: entered here, its operand runs as LDY #$0A; reached by $2476 BNE, while the way through the BIT skips it"
  },
  {
   "address": 9356,
   "type": "line",
   "text": "removes the terrain cells of one dig stroke, counting the pixels removed into $051E"
  },
  {
   "address": 9442,
   "type": "line",
   "text": "two bytes after dig_rows' RTS at $24E1 that no path reaches"
  },
  {
   "address": 9444,
   "type": "line",
   "text": "next cell of the dig stroke"
  },
  {
   "address": 9474,
   "type": "line",
   "text": "action 11, building the other way: as $259B"
  },
  {
   "address": 9544,
   "type": "line",
   "text": "an entry inside the BIT at $2547: entered here, its operand runs as LDA #$89; reached by $250A BEQ, while the way through the BIT skips it"
  },
  {
   "address": 9547,
   "type": "line",
   "text": "an entry inside the BIT at $254A: entered here, its operand runs as LDA #$08; reached by $251D BEQ, $252F BNE, $2534 BNE, while the way through the BIT skips it"
  },
  {
   "address": 9561,
   "type": "line",
   "text": "plays sound $1C from the builder's ninth brick on ($051E 9 or more), the warning that it is about to run out"
  },
  {
   "address": 9588,
   "type": "line",
   "text": "action 7: the builder out of bricks shrugs, then walks on"
  },
  {
   "address": 9620,
   "type": "line",
   "text": "the builder's ground test: two columns from column 5 ($20B3)"
  },
  {
   "address": 9627,
   "type": "line",
   "text": "action 10, building: lays a brick a stroke ($2603 sets the brick's pixels), climbs it; stops at a wall ahead ($21E8), when its head would hit terrain ($25F2, $25F9) or after the twelfth brick (action 7, the shrug)"
  },
  {
   "address": 9697,
   "type": "line",
   "text": "an entry inside the BIT at $25E0: entered here, its operand runs as LDA #$08; reached by $25A3 BEQ, while the way through the BIT skips it"
  },
  {
   "address": 9700,
   "type": "line",
   "text": "an entry inside the BIT at $25E3: entered here, its operand runs as LDA #$89; reached by $25B6 BEQ, $25C8 BNE, $25CD BNE, while the way through the BIT skips it"
  },
  {
   "address": 9714,
   "type": "line",
   "text": "is there terrain at the builder's head? ($28E8 at 8, $0E)"
  },
  {
   "address": 9721,
   "type": "line",
   "text": "is there terrain where the builder steps? ($28E8 at 7, 8)"
  },
  {
   "address": 9724,
   "type": "line",
   "text": "an entry inside the BIT at $25FB: entered here, its operand runs as LDX #$08; reached by $252C JSR, $25C5 JSR, while the way through the BIT skips it"
  },
  {
   "address": 9731,
   "type": "line",
   "text": "sets the pixels of one brick in the terrain, 12 wide ($2927)"
  },
  {
   "address": 9743,
   "type": "line",
   "text": "an entry inside the BIT at $260E: entered here, its operand runs as LDX #$08; reached by $2609 JSR, while the way through the BIT skips it"
  },
  {
   "address": 9752,
   "type": "line",
   "text": "sets one row of the brick's pixels"
  },
  {
   "address": 9755,
   "type": "line",
   "text": "an entry inside the BIT at $261A: entered here, its operand runs as LDX #$07; reached by $2606 JSR, while the way through the BIT skips it"
  },
  {
   "address": 9764,
   "type": "line",
   "text": "actions 12/13, bashing: removes terrain in front a stroke at a time ($26C2) unless steel; with nothing left in front, or a blocker ahead, it walks on"
  },
  {
   "address": 9857,
   "type": "line",
   "text": "the operand of the LDX at $2680, rewritten as the game runs, by $2640"
  },
  {
   "address": 9883,
   "type": "line",
   "text": "sets bit 6 of the lemming's counter ($051E)"
  },
  {
   "address": 9895,
   "type": "line",
   "text": "returns the low six bits of the lemming's counter ($051E) and clears them"
  },
  {
   "address": 9911,
   "type": "line",
   "text": "adds A to the lemming's counter ($051E)"
  },
  {
   "address": 9922,
   "type": "line",
   "text": "removes up to three rows of terrain for one frame of the basher's swing, from $3FC4/$3FCD/$3FD6; returns $FF when steel stops it"
  },
  {
   "address": 9975,
   "type": "line",
   "text": "removes the terrain pixel at ($B0, $B2) and the one below it, counting them in $BA; returns $FF instead when the cell is steel or a one-way wall facing the lemming ($2E07, $06EC)"
  },
  {
   "address": 10037,
   "type": "line",
   "text": "actions 14/15, mining: removes a diagonal of terrain a stroke ($2925), from the tables at $7DAA/$7DC5; steel stops it, an empty floor makes it fall"
  },
  {
   "address": 10123,
   "type": "line",
   "text": "the operand of the LDY at $278A, rewritten as the game runs, by $275B"
  },
  {
   "address": 10126,
   "type": "line",
   "text": "the operand of the CPY at $278D, rewritten as the game runs, by $2755"
  },
  {
   "address": 10142,
   "type": "line",
   "text": "the operand of the LDX at $279D, rewritten as the game runs, by $274B"
  },
  {
   "address": 10186,
   "type": "line",
   "text": "actions 16/17, climbing: up a line a pass while the wall goes on; at the top it steps over (action 8/9); terrain overhead makes it fall back (action 2)"
  },
  {
   "address": 10287,
   "type": "line",
   "text": "an entry inside the BIT at $282E: entered here, its operand runs as LDY #$00; reached by $27D6 BMI, $281B BEQ, while the way through the BIT skips it"
  },
  {
   "address": 10318,
   "type": "line",
   "text": "action 18: the animation plays to $78, then the lemming is gone"
  },
  {
   "address": 10342,
   "type": "line",
   "text": "action 19, killed by the ground ($E07C, $1ECE): the animation plays to $38, then the lemming is gone"
  },
  {
   "address": 10366,
   "type": "line",
   "text": "for lemming X, writes its position and direction into the operands of the terrain routines ($28E8, $2E07): the column, the row and which way it faces"
  },
  {
   "address": 10472,
   "type": "line",
   "text": "is there terrain at offset X, Y from the lemming? Turns the offset into a byte of the terrain bitmap kept as sprite shapes ($4A00/$4C00/$4E00 by X, $4800/$4900 by Y) and masks the pixel ($48C4); non-zero when filled"
  },
  {
   "address": 10473,
   "type": "line",
   "text": "the low byte of the LDA at $28E8, rewritten as the game runs, by $28C8, $28D9"
  },
  {
   "address": 10474,
   "type": "line",
   "text": "the high byte of the LDA at $28E8, rewritten as the game runs, by $28D0, $28E1"
  },
  {
   "address": 10476,
   "type": "line",
   "text": "$28E8 with the table index already in X"
  },
  {
   "address": 10479,
   "type": "line",
   "text": "the low byte of the ADC at $28EE, rewritten as the game runs, by $28A2"
  },
  {
   "address": 10480,
   "type": "line",
   "text": "the high byte of the ADC at $28EE, rewritten as the game runs, by $2896"
  },
  {
   "address": 10483,
   "type": "line",
   "text": "the low byte of the LDA at $28F2, rewritten as the game runs, by $21A3, $289C"
  },
  {
   "address": 10484,
   "type": "line",
   "text": "the high byte of the LDA at $28F2, rewritten as the game runs, by $2888"
  },
  {
   "address": 10487,
   "type": "line",
   "text": "the low byte of the ADC at $28F6, rewritten as the game runs, by $28B3"
  },
  {
   "address": 10493,
   "type": "line",
   "text": "the low byte of the LDA at $28FC, rewritten as the game runs, by $289F"
  },
  {
   "address": 10494,
   "type": "line",
   "text": "the high byte of the LDA at $28FC, rewritten as the game runs, by $288F"
  },
  {
   "address": 10496,
   "type": "line",
   "text": "the low byte of the ADC at $28FF, rewritten as the game runs, by $28B6"
  },
  {
   "address": 10506,
   "type": "line",
   "text": "the low byte of the LDA at $2909, rewritten as the game runs, by $28F9"
  },
  {
   "address": 10507,
   "type": "line",
   "text": "the high byte of the LDA at $2909, rewritten as the game runs, by $2902"
  },
  {
   "address": 10509,
   "type": "line",
   "text": "the low byte of the AND at $290C, rewritten as the game runs, by $28AA"
  },
  {
   "address": 10512,
   "type": "line",
   "text": "a routine no code calls: reads a terrain pixel through terrain_at ($28E8) and shifts it down to the low bits, giving 0 for a value of 3"
  },
  {
   "address": 10533,
   "type": "line",
   "text": "clears one terrain pixel at an offset from the lemming ($2930 with A = 0)"
  },
  {
   "address": 10535,
   "type": "line",
   "text": "sets one terrain pixel to the value in A"
  },
  {
   "address": 10544,
   "type": "line",
   "text": "writes a terrain pixel at the address $28E8 found, in the sprite shapes at $8000-$B3FF and, when the column is in view, also in the shown copy at $6000-$6FFF; counts filled pixels it changes in $BA"
  },
  {
   "address": 10629,
   "type": "line",
   "text": "an entry inside the BIT at $2984: entered here, its operand runs as LDA #$60; reached by $297C BCC, $2980 BCS, while the way through the BIT skips it"
  },
  {
   "address": 10637,
   "type": "line",
   "text": "the operand of the ADC at $298C, rewritten as the game runs, by $28AD"
  },
  {
   "address": 10643,
   "type": "line",
   "text": "the operand of the ADC at $2992, rewritten as the game runs, by $2927, $2932"
  },
  {
   "address": 10649,
   "type": "line",
   "text": "the operand of the CMP at $2998, rewritten as the game runs, by $293C"
  },
  {
   "address": 10653,
   "type": "line",
   "text": "the low byte of the LDA at $299C, rewritten as the game runs, by $2960"
  },
  {
   "address": 10654,
   "type": "line",
   "text": "the high byte of the LDA at $299C, rewritten as the game runs, by $294D"
  },
  {
   "address": 10662,
   "type": "line",
   "text": "the low byte of the STA at $29A5, rewritten as the game runs, by $295D"
  },
  {
   "address": 10663,
   "type": "line",
   "text": "the high byte of the STA at $29A5, rewritten as the game runs, by $294A"
  },
  {
   "address": 10664,
   "type": "line",
   "text": "this opcode is rewritten by $2987: LDA when the pixel's column is in view, so the shown copy at $60xx gets it too, RTS when it is not"
  },
  {
   "address": 10665,
   "type": "line",
   "text": "the low byte of the LDA at $29A8, rewritten as the game runs, by $2963"
  },
  {
   "address": 10666,
   "type": "line",
   "text": "the high byte of the LDA at $29A8, rewritten as the game runs, by $2954"
  },
  {
   "address": 10674,
   "type": "line",
   "text": "the low byte of the STA at $29B1, rewritten as the game runs, by $2966"
  },
  {
   "address": 10675,
   "type": "line",
   "text": "the high byte of the STA at $29B1, rewritten as the game runs, by $2957"
  },
  {
   "address": 10677,
   "type": "line",
   "text": "the panel's line above the icons: the clock and counts at $CB39-$CB42 as digits, and the name of the lemming under the cursor from $121D"
  },
  {
   "address": 10727,
   "type": "line",
   "text": "the operand of the ORA at $29E6, rewritten as the game runs, by $29D6"
  },
  {
   "address": 10744,
   "type": "line",
   "text": "plays sound effect A on voice 0 or 2 by turns (the LDX at $2A03 alternates), through $3003, unless the music is on ($CB47 bit 7)"
  },
  {
   "address": 10756,
   "type": "line",
   "text": "the operand of the LDX at $2A03, rewritten as the game runs, by $2A10"
  },
  {
   "address": 10758,
   "type": "line",
   "text": "an entry inside the BIT at $2A05: entered here, its operand runs as LDX #$02; reached by $2A01 BMI, while the way through the BIT skips it"
  },
  {
   "address": 10778,
   "type": "line",
   "text": "a lemming saved: adds the level's share of one lemming, four decimal digits at $E056-$E059 (10.00 for a level of 10), into the percentage at $CB40-$CB44, and one to the count saved at $CB45"
  },
  {
   "address": 10807,
   "type": "line",
   "text": "every second pass ($059A gains $80) asks for the next frame of the level's animated objects ($0599)"
  },
  {
   "address": 10824,
   "type": "line",
   "text": "the level's animated objects ($E07B of them; type and flags $7080, column $7100, frame count $0300, frame $05DC): when it is time, steps each object's frame (a paused game holds them), and draws the ones in view by ORing their frame ($7280/$7300) into the characters of the shown copy ($7180/$7200, $60xx). An object of type $A9 plays sound $1F the first time and starts the music ($2E51)"
  },
  {
   "address": 10845,
   "type": "line",
   "text": "the low byte of the LDA at $2A5C, rewritten as the game runs, by $1008"
  },
  {
   "address": 10903,
   "type": "line",
   "text": "the low byte of the LDA at $2A96, rewritten as the game runs, by $100B"
  },
  {
   "address": 10942,
   "type": "line",
   "text": "the operand of the LDX at $2ABD, rewritten as the game runs, by $2AAB"
  },
  {
   "address": 10944,
   "type": "line",
   "text": "the low byte of the LDA at $2ABF, rewritten as the game runs, by $1017"
  },
  {
   "address": 10948,
   "type": "line",
   "text": "the operand of the SBC at $2AC3, rewritten as the game runs, by $2A51"
  },
  {
   "address": 10964,
   "type": "line",
   "text": "the low byte of the LDA at $2AD3, rewritten as the game runs, by $1035"
  },
  {
   "address": 10970,
   "type": "line",
   "text": "the low byte of the LDA at $2AD9, rewritten as the game runs, by $1029"
  },
  {
   "address": 10976,
   "type": "line",
   "text": "the low byte of the LDA at $2ADF, rewritten as the game runs, by $102F"
  },
  {
   "address": 10982,
   "type": "line",
   "text": "the low byte of the LDA at $2AE5, rewritten as the game runs, by $101D"
  },
  {
   "address": 10991,
   "type": "line",
   "text": "the low byte of the LDA at $2AEE, rewritten as the game runs, by $1023"
  },
  {
   "address": 11008,
   "type": "line",
   "text": "the low byte of the LDA at $2AFF, rewritten as the game runs, by $2AEB"
  },
  {
   "address": 11009,
   "type": "line",
   "text": "the high byte of the LDA at $2AFF, rewritten as the game runs, by $2AF1"
  },
  {
   "address": 11011,
   "type": "line",
   "text": "the low byte of the ORA at $2B02, rewritten as the game runs, by $2ADC"
  },
  {
   "address": 11012,
   "type": "line",
   "text": "the high byte of the ORA at $2B02, rewritten as the game runs, by $2AE2"
  },
  {
   "address": 11014,
   "type": "line",
   "text": "the low byte of the STA at $2B05, rewritten as the game runs, by $2AE8"
  },
  {
   "address": 11015,
   "type": "line",
   "text": "the high byte of the STA at $2B05, rewritten as the game runs, by $2AF8"
  },
  {
   "address": 11021,
   "type": "line",
   "text": "the operand of the CPX at $2B0C, rewritten as the game runs, by $2AD6"
  },
  {
   "address": 11030,
   "type": "line",
   "text": "an entry inside the BIT at $2B15: entered here, its operand runs as LDA #$00; reached by $2AC5 BCC, $2AC9 BCS, while the way through the BIT skips it"
  },
  {
   "address": 11037,
   "type": "line",
   "text": "the operand of the CPX at $2B1C, rewritten as the game runs, by $2A57"
  },
  {
   "address": 11049,
   "type": "line",
   "text": "low bytes of the water's animation shapes, four frames for each kind of water ($E07E)"
  },
  {
   "address": 11053,
   "type": "line",
   "text": "the same for the second shape"
  },
  {
   "address": 11073,
   "type": "line",
   "text": "high bytes of the water's shapes"
  },
  {
   "address": 11077,
   "type": "line",
   "text": "high bytes of the second shape"
  },
  {
   "address": 11097,
   "type": "line",
   "text": "the pixel shift of the water's shapes for the fine scroll"
  },
  {
   "address": 11101,
   "type": "line",
   "text": "the opcodes written into the water drawing loop for the two scroll phases"
  },
  {
   "address": 11102,
   "type": "line",
   "text": "the second byte of water_ops, read as its own table by the water drawing set-up ($2C6F)"
  },
  {
   "address": 11103,
   "type": "line",
   "text": "the third byte of water_ops, read by $2C75"
  },
  {
   "address": 11104,
   "type": "line",
   "text": "the fourth and fifth bytes of water_ops, read by $2C7B"
  },
  {
   "address": 11106,
   "type": "line",
   "text": "the sixth byte of water_ops, read by $2C81"
  },
  {
   "address": 11107,
   "type": "line",
   "text": "the seventh byte, read by $2C87"
  },
  {
   "address": 11108,
   "type": "line",
   "text": "the eighth byte, read by $2C8D"
  },
  {
   "address": 11109,
   "type": "line",
   "text": "the ninth and tenth bytes, read by $2C93"
  },
  {
   "address": 11111,
   "type": "line",
   "text": "the water's animation frame, 0-3, advanced every pass unless paused"
  },
  {
   "address": 11112,
   "type": "line",
   "text": "the offsets of the rows the water surface covers"
  },
  {
   "address": 11119,
   "type": "line",
   "text": "fills the water below its surface in one column with the water character ($2D70)"
  },
  {
   "address": 11142,
   "type": "line",
   "text": "the operand of the LDA at $2B85, rewritten as the game runs, by $2B7A"
  },
  {
   "address": 11144,
   "type": "line",
   "text": "the low byte of the STA at $2B87, rewritten as the game runs, by $2D0A"
  },
  {
   "address": 11145,
   "type": "line",
   "text": "the high byte of the STA at $2B87, rewritten as the game runs, by $2D1D"
  },
  {
   "address": 11150,
   "type": "line",
   "text": "the low byte of the STA at $2B8D, rewritten as the game runs, by $2D0D"
  },
  {
   "address": 11151,
   "type": "line",
   "text": "the high byte of the STA at $2B8D, rewritten as the game runs, by $2D24"
  },
  {
   "address": 11156,
   "type": "line",
   "text": "the operand of the LDX at $2B93, rewritten as the game runs, by $2CF8"
  },
  {
   "address": 11158,
   "type": "line",
   "text": "on a level with water ($E07D): draws this pass's frame of the water surface into characters $F4-$FB of the character set ($57A0-$57DF), from the shapes for the water's kind ($E07E) and the frame ($2B67), shifted for the fine scroll; then puts the surface characters ($FA) and the water below on the hidden screen along the columns in view"
  },
  {
   "address": 11317,
   "type": "line",
   "text": "the operand of the LDA at $2C34, rewritten as the game runs, by $2BBA"
  },
  {
   "address": 11420,
   "type": "line",
   "text": "the low byte of the LDY at $2C9B, rewritten as the game runs, by $2BFD"
  },
  {
   "address": 11421,
   "type": "line",
   "text": "the high byte of the LDY at $2C9B, rewritten as the game runs, by $2C0C"
  },
  {
   "address": 11424,
   "type": "line",
   "text": "the high byte of the LDA at $2C9E, rewritten as the game runs, by $2C3D"
  },
  {
   "address": 11426,
   "type": "line",
   "text": "the low byte of the STA at $2CA1, rewritten as the game runs, by $2C6C"
  },
  {
   "address": 11427,
   "type": "line",
   "text": "the high byte of the STA at $2CA1, rewritten as the game runs, by $2BD7"
  },
  {
   "address": 11430,
   "type": "line",
   "text": "the high byte of the LDA at $2CA4, rewritten as the game runs, by $2C50"
  },
  {
   "address": 11432,
   "type": "line",
   "text": "the low byte of the LDY at $2CA7, rewritten as the game runs, by $2C06"
  },
  {
   "address": 11433,
   "type": "line",
   "text": "the high byte of the LDY at $2CA7, rewritten as the game runs, by $2C14"
  },
  {
   "address": 11436,
   "type": "line",
   "text": "the high byte of the ORA at $2CAA, rewritten as the game runs, by $2C40"
  },
  {
   "address": 11438,
   "type": "line",
   "text": "the low byte of the STA at $2CAD, rewritten as the game runs, by $2C72"
  },
  {
   "address": 11439,
   "type": "line",
   "text": "the high byte of the STA at $2CAD, rewritten as the game runs, by $2BDA"
  },
  {
   "address": 11442,
   "type": "line",
   "text": "the high byte of the LDA at $2CB0, rewritten as the game runs, by $2C53"
  },
  {
   "address": 11444,
   "type": "line",
   "text": "the low byte of the LDY at $2CB3, rewritten as the game runs, by $2C00"
  },
  {
   "address": 11445,
   "type": "line",
   "text": "the high byte of the LDY at $2CB3, rewritten as the game runs, by $2C0F"
  },
  {
   "address": 11448,
   "type": "line",
   "text": "the high byte of the ORA at $2CB6, rewritten as the game runs, by $2C43"
  },
  {
   "address": 11450,
   "type": "line",
   "text": "the low byte of the STA at $2CB9, rewritten as the game runs, by $2C78"
  },
  {
   "address": 11451,
   "type": "line",
   "text": "the high byte of the STA at $2CB9, rewritten as the game runs, by $2BDD"
  },
  {
   "address": 11454,
   "type": "line",
   "text": "the high byte of the LDA at $2CBC, rewritten as the game runs, by $2C56"
  },
  {
   "address": 11456,
   "type": "line",
   "text": "the low byte of the STA at $2CBF, rewritten as the game runs, by $2C7E"
  },
  {
   "address": 11457,
   "type": "line",
   "text": "the high byte of the STA at $2CBF, rewritten as the game runs, by $2BE0"
  },
  {
   "address": 11459,
   "type": "line",
   "text": "the low byte of the LDY at $2CC2, rewritten as the game runs, by $2C1A"
  },
  {
   "address": 11460,
   "type": "line",
   "text": "the high byte of the LDY at $2CC2, rewritten as the game runs, by $2C29"
  },
  {
   "address": 11463,
   "type": "line",
   "text": "the high byte of the LDA at $2CC5, rewritten as the game runs, by $2C46"
  },
  {
   "address": 11465,
   "type": "line",
   "text": "the low byte of the STA at $2CC8, rewritten as the game runs, by $2C84"
  },
  {
   "address": 11466,
   "type": "line",
   "text": "the high byte of the STA at $2CC8, rewritten as the game runs, by $2BE3"
  },
  {
   "address": 11469,
   "type": "line",
   "text": "the high byte of the LDA at $2CCB, rewritten as the game runs, by $2C59"
  },
  {
   "address": 11471,
   "type": "line",
   "text": "the low byte of the LDY at $2CCE, rewritten as the game runs, by $2C23"
  },
  {
   "address": 11472,
   "type": "line",
   "text": "the high byte of the LDY at $2CCE, rewritten as the game runs, by $2C31"
  },
  {
   "address": 11475,
   "type": "line",
   "text": "the high byte of the ORA at $2CD1, rewritten as the game runs, by $2C49"
  },
  {
   "address": 11477,
   "type": "line",
   "text": "the low byte of the STA at $2CD4, rewritten as the game runs, by $2C8A"
  },
  {
   "address": 11478,
   "type": "line",
   "text": "the high byte of the STA at $2CD4, rewritten as the game runs, by $2BE6"
  },
  {
   "address": 11481,
   "type": "line",
   "text": "the high byte of the LDA at $2CD7, rewritten as the game runs, by $2C5C"
  },
  {
   "address": 11483,
   "type": "line",
   "text": "the low byte of the LDY at $2CDA, rewritten as the game runs, by $2C1D"
  },
  {
   "address": 11484,
   "type": "line",
   "text": "the high byte of the LDY at $2CDA, rewritten as the game runs, by $2C2C"
  },
  {
   "address": 11487,
   "type": "line",
   "text": "the high byte of the ORA at $2CDD, rewritten as the game runs, by $2C4C"
  },
  {
   "address": 11489,
   "type": "line",
   "text": "the low byte of the STA at $2CE0, rewritten as the game runs, by $2C90"
  },
  {
   "address": 11490,
   "type": "line",
   "text": "the high byte of the STA at $2CE0, rewritten as the game runs, by $2BE9"
  },
  {
   "address": 11493,
   "type": "line",
   "text": "the high byte of the LDA at $2CE3, rewritten as the game runs, by $2C5F"
  },
  {
   "address": 11495,
   "type": "line",
   "text": "the low byte of the STA at $2CE6, rewritten as the game runs, by $2C96"
  },
  {
   "address": 11496,
   "type": "line",
   "text": "the high byte of the STA at $2CE6, rewritten as the game runs, by $2BEC"
  },
  {
   "address": 11501,
   "type": "line",
   "text": "the operand of the LDX at $2CEC, rewritten as the game runs, by $2BAF, $2BC1"
  },
  {
   "address": 11505,
   "type": "line",
   "text": "the low byte of the LDA at $2CF0, rewritten as the game runs, by $103E"
  },
  {
   "address": 11519,
   "type": "line",
   "text": "the low byte of the LDA at $2CFE, rewritten as the game runs, by $1047"
  },
  {
   "address": 11545,
   "type": "line",
   "text": "the operand of the ORA at $2D18, rewritten as the game runs, by $2BD4"
  },
  {
   "address": 11563,
   "type": "line",
   "text": "the low byte of the LDA at $2D2A, rewritten as the game runs, by $104A"
  },
  {
   "address": 11573,
   "type": "line",
   "text": "the operand of the LDY at $2D34, rewritten as the game runs, by $2CFB"
  },
  {
   "address": 11578,
   "type": "line",
   "text": "the low byte of the STA at $2D39, rewritten as the game runs, by $2D10"
  },
  {
   "address": 11579,
   "type": "line",
   "text": "the high byte of the STA at $2D39, rewritten as the game runs, by $2D27"
  },
  {
   "address": 11581,
   "type": "line",
   "text": "the operand of the LDA at $2D3C, rewritten as the game runs, by $2CF5"
  },
  {
   "address": 11583,
   "type": "line",
   "text": "the low byte of the STA at $2D3E, rewritten as the game runs, by $2D07"
  },
  {
   "address": 11584,
   "type": "line",
   "text": "the high byte of the STA at $2D3E, rewritten as the game runs, by $2D1A"
  },
  {
   "address": 11592,
   "type": "line",
   "text": "a lemming drawn over a water character ($F4 or above): copies that character's shape into the fresh character it is drawn into"
  },
  {
   "address": 11601,
   "type": "line",
   "text": "the high byte of the LDA at $2D4F, rewritten as the game runs, by $13BF"
  },
  {
   "address": 11616,
   "type": "line",
   "text": "the high byte of the LDA at $2D5E, rewritten as the game runs, by $13BC"
  },
  {
   "address": 11623,
   "type": "line",
   "text": "the low byte of the LDA at $2D66, rewritten as the game runs, by $2D4C"
  },
  {
   "address": 11624,
   "type": "line",
   "text": "the high byte of the LDA at $2D66, rewritten as the game runs, by $2BEF, $2D52"
  },
  {
   "address": 11626,
   "type": "line",
   "text": "the low byte of the STA at $2D69, rewritten as the game runs, by $2D5B"
  },
  {
   "address": 11627,
   "type": "line",
   "text": "the high byte of the STA at $2D69, rewritten as the game runs, by $2D61"
  },
  {
   "address": 11632,
   "type": "line",
   "text": "the character the water below the surface is drawn with (from $2D71 by the water's kind)"
  },
  {
   "address": 11633,
   "type": "line",
   "text": "the fill character for each kind of water"
  },
  {
   "address": 11636,
   "type": "line",
   "text": "the surface character for each kind"
  },
  {
   "address": 11639,
   "type": "line",
   "text": "the action a lemming takes when it falls into each kind of water"
  },
  {
   "address": 11642,
   "type": "line",
   "text": "this level's drowning action, from $2D77"
  },
  {
   "address": 11643,
   "type": "line",
   "text": "on a level with water: $80 when the lemming is within 8 lines of the surface in its column, from the water map ($2D8F/$2D94 operands)"
  },
  {
   "address": 11663,
   "type": "line",
   "text": "the low byte of the LDA at $2D8E, rewritten as the game runs, by $103B"
  },
  {
   "address": 11668,
   "type": "line",
   "text": "the low byte of the LDA at $2D93, rewritten as the game runs, by $1044"
  },
  {
   "address": 11679,
   "type": "line",
   "text": "the operand of the ADC at $2D9E, rewritten as the game runs, by $10EB"
  },
  {
   "address": 11688,
   "type": "line",
   "text": "the operand of the SBC at $2DA7, rewritten as the game runs, by $2DA0"
  },
  {
   "address": 11701,
   "type": "line",
   "text": "builds the row pointers of the level's map of special cells ($E08E/$E08F, $14 bytes a row) into $0550/$0564"
  },
  {
   "address": 11738,
   "type": "line",
   "text": "sets $06EC to 2 or 3 by the lemming's direction, the cell kind that a one-way wall facing it has, and the map's offsets for its position"
  },
  {
   "address": 11779,
   "type": "line",
   "text": "$2E07 with the X offset taken through $2FDC"
  },
  {
   "address": 11780,
   "type": "line",
   "text": "the low byte of the LDA at $2E03, rewritten as the game runs, by $28CB, $28DC"
  },
  {
   "address": 11781,
   "type": "line",
   "text": "the high byte of the LDA at $2E03, rewritten as the game runs, by $28D3, $28E4"
  },
  {
   "address": 11783,
   "type": "line",
   "text": "the kind of map cell at an offset from the lemming: two bits per cell, four cells a byte, from the rows at $0550/$0564. 0 is plain, 1 steel; 2 and 3 are compared with $06EC by the basher and the digger, the one-way walls"
  },
  {
   "address": 11792,
   "type": "line",
   "text": "the operand of the ADC at $2E0F, rewritten as the game runs, by $2DEE"
  },
  {
   "address": 11795,
   "type": "line",
   "text": "the operand of the LDA at $2E12, rewritten as the game runs, by $2DF6"
  },
  {
   "address": 11811,
   "type": "line",
   "text": "the operand of the ADC at $2E22, rewritten as the game runs, by $2DFF"
  },
  {
   "address": 11829,
   "type": "line",
   "text": "the operand of the LDA at $2E34, rewritten as the game runs, by $2E1A"
  },
  {
   "address": 11834,
   "type": "line",
   "text": "the low byte of the LDA at $2E39, rewritten as the game runs, by $2E2B"
  },
  {
   "address": 11835,
   "type": "line",
   "text": "the high byte of the LDA at $2E39, rewritten as the game runs, by $2E31"
  },
  {
   "address": 11857,
   "type": "line",
   "text": "bit 7 set once the music should play; the play interrupt then calls the player at $3006"
  },
  {
   "address": 11858,
   "type": "line",
   "text": "how far to shift a map byte for each of its four cells"
  },
  {
   "address": 11862,
   "type": "line",
   "text": "per animation step, how many pixels the lemming moves in X"
  },
  {
   "address": 11880,
   "type": "line",
   "text": "per animation step, how many lines it moves in Y"
  },
  {
   "address": 11896,
   "type": "line",
   "text": "the first X offset of each of the explosion's eleven rows"
  },
  {
   "address": 11905,
   "type": "line",
   "text": "the last X offset of each row"
  },
  {
   "address": 11936,
   "type": "line",
   "text": "high bytes of the lemmings' animation frames (with $3C00, $3D2C and $3E58)"
  },
  {
   "address": 12236,
   "type": "line",
   "text": "the pixel values a builder lays, by position in the byte"
  },
  {
   "address": 12252,
   "type": "line",
   "text": "the terrain tables' index for each X offset from the lemming, mirrored for a lemming facing the other way (the table's operand rewritten by $287E)"
  },
  {
   "address": 12288,
   "type": "line",
   "text": "the sound driver's entry 0: silences the SID ($30A1)"
  },
  {
   "address": 12291,
   "type": "line",
   "text": "entry 1: starts sequence A on voice X ($30D5): a tune's part or a sound effect"
  },
  {
   "address": 12294,
   "type": "line",
   "text": "entry 2: one frame of the driver ($30FB), called by the play interrupt while the music is on"
  },
  {
   "address": 12297,
   "type": "line",
   "text": "not read by the code: the driver's signature in screen codes, \"(C) 1993 JEROEN TEL / MANIACS OF NOISE\""
  },
  {
   "address": 12341,
   "type": "line",
   "text": "frames between steps of the fade-out at the end of a tune (0: no fade)"
  },
  {
   "address": 12342,
   "type": "line",
   "text": "per voice: the tune asked for, which the $FC command compares ($31D6) with voice_tune_seen; only silence ($30B6) writes it, with 0. Indexed by voices 0-2 it runs to $3038, voice_tune_seen's first byte"
  },
  {
   "address": 12343,
   "type": "line",
   "text": "voice_tune for X = 1, the second voice; cleared by silence ($30B9)"
  },
  {
   "address": 12344,
   "type": "line",
   "text": "per voice: the tune the $FC command last chained to, so it moves on only once"
  },
  {
   "address": 12345,
   "type": "line",
   "text": "voice_tune_seen for X = 1, the second voice; cleared by silence ($30BF)"
  },
  {
   "address": 12346,
   "type": "line",
   "text": "counts the frames of one fade step"
  },
  {
   "address": 12347,
   "type": "line",
   "text": "0 once the driver has faded out and stopped"
  },
  {
   "address": 12348,
   "type": "line",
   "text": "per voice: counts down 2, 1, 0: a note's length is measured in steps of three frames"
  },
  {
   "address": 12351,
   "type": "line",
   "text": "per voice: 0 at a new note, then 1 and 2 as its vibrato starts"
  },
  {
   "address": 12354,
   "type": "line",
   "text": "per voice: which way the pulse width sweeps"
  },
  {
   "address": 12357,
   "type": "line",
   "text": "per voice: the pulse width, low byte"
  },
  {
   "address": 12360,
   "type": "line",
   "text": "per voice: the pulse width, high nybble"
  },
  {
   "address": 12363,
   "type": "line",
   "text": "per voice: which half of the vibrato's cycle it is in (bit 0)"
  },
  {
   "address": 12366,
   "type": "line",
   "text": "per voice: the step at which the note's gate is released"
  },
  {
   "address": 12369,
   "type": "line",
   "text": "per voice: the vibrato's step in frequency, low byte (a fraction of the gap to the next note)"
  },
  {
   "address": 12372,
   "type": "line",
   "text": "per voice: the same, high byte"
  },
  {
   "address": 12375,
   "type": "line",
   "text": "per voice: frames left in this half of the vibrato"
  },
  {
   "address": 12378,
   "type": "line",
   "text": "per voice: the step at which a slide begins"
  },
  {
   "address": 12381,
   "type": "line",
   "text": "per voice: the sign of the slide: up or down"
  },
  {
   "address": 12384,
   "type": "line",
   "text": "per voice: the note a $FD slide ends on"
  },
  {
   "address": 12387,
   "type": "line",
   "text": "per voice: the position in the instrument's wave program"
  },
  {
   "address": 12390,
   "type": "line",
   "text": "per voice: the position in the arpeggio table"
  },
  {
   "address": 12393,
   "type": "line",
   "text": "per voice: the instrument's filter program and gate-off point ($37EA)"
  },
  {
   "address": 12396,
   "type": "line",
   "text": "per voice: the instrument's vibrato, depth and speed ($37FA)"
  },
  {
   "address": 12399,
   "type": "line",
   "text": "per voice: the instrument's pulse sweep ($380A)"
  },
  {
   "address": 12402,
   "type": "line",
   "text": "per voice: the instrument's wave program flags ($381A)"
  },
  {
   "address": 12405,
   "type": "line",
   "text": "per voice: the instrument number (0-63, the $C0-$FF command)"
  },
  {
   "address": 12408,
   "type": "line",
   "text": "per voice: added to every instrument number (the $FA command)"
  },
  {
   "address": 12411,
   "type": "line",
   "text": "per voice: the note length in steps ($80-$BF)"
  },
  {
   "address": 12414,
   "type": "line",
   "text": "per voice: the arpeggio table ($60-$7F)"
  },
  {
   "address": 12417,
   "type": "line",
   "text": "per voice: a counter for instruments that sweep the pitch down (wave flag bit 5)"
  },
  {
   "address": 12420,
   "type": "line",
   "text": "per voice: the waveform and gate byte for $D404"
  },
  {
   "address": 12423,
   "type": "line",
   "text": "per voice: $FF while the note is held, $FE to release it"
  },
  {
   "address": 12426,
   "type": "line",
   "text": "per voice: the step at which the gate goes off"
  },
  {
   "address": 12429,
   "type": "line",
   "text": "per voice: the instrument's attack and decay"
  },
  {
   "address": 12432,
   "type": "line",
   "text": "per voice: the instrument's sustain and release"
  },
  {
   "address": 12435,
   "type": "line",
   "text": "the position in the filter program (used for voice 1)"
  },
  {
   "address": 12438,
   "type": "line",
   "text": "frames left of the filter program's step"
  },
  {
   "address": 12441,
   "type": "line",
   "text": "the change to the cutoff each frame of the step"
  },
  {
   "address": 12444,
   "type": "line",
   "text": "the filter's cutoff, high byte"
  },
  {
   "address": 12445,
   "type": "line",
   "text": "the master volume, 15 down to 0 in a fade-out"
  },
  {
   "address": 12446,
   "type": "line",
   "text": "the SID register offset of each voice: 0, 7, 14"
  },
  {
   "address": 12448,
   "type": "line",
   "text": "the last byte of voice_offset, $0E, also read by the lemming drawing as the mask for the frame's lower half ($1D63, $1DAC)"
  },
  {
   "address": 12449,
   "type": "line",
   "text": "stops the three voices' gates, clears every SID register, sets the filter's resonance ($D417 = $F2) and full volume, and resets the driver"
  },
  {
   "address": 12501,
   "type": "line",
   "text": "starts sequence A on voice X: its pointer ($46), a one-step wait, the voice's gate off and its state cleared"
  },
  {
   "address": 12517,
   "type": "line",
   "text": "writes to SID voice 1 control $D404 (sound driver region $30E5-$3156)"
  },
  {
   "address": 12539,
   "type": "line",
   "text": "one frame of the driver: the fade-out when one is running; the volume and the filter into the SID; each voice's frequency, pulse, envelope and control from its variables; then the next step of voices 0-2 ($3175)"
  },
  {
   "address": 12584,
   "type": "line",
   "text": "the operand of the ORA at $3127, rewritten as the game runs, by $30F7, $3533"
  },
  {
   "address": 12661,
   "type": "line",
   "text": "one voice: counts the note's length down in steps of three frames; at its end reads the next commands ($318B), otherwise works its effects ($32F3)"
  },
  {
   "address": 12683,
   "type": "line",
   "text": "reads the voice's sequence through the pointer tables at $3652/$3692: $FF jumps within it, $FE ends it (silence), $FB n repeats the next block n times, $FA n transposes the instruments, $FC chains to the next tune of the voice, $FD n,s,t slides to a note; a byte of $C0-$FF chooses an instrument, $80-$BF sets the note length, $60-$7F an arpeggio, and a byte below $60 is a note; then sets the voice's instrument up from the tables at $37AA-$381A"
  },
  {
   "address": 12774,
   "type": "line",
   "text": "the operand of the ADC at $31E5, rewritten as the game runs, by $31E1"
  },
  {
   "address": 13043,
   "type": "line",
   "text": "between notes: releases the gate when the note is near its end, slides the pitch ($FD), the vibrato (depth and speed from the instrument's $37FA), the wave program ($36EA/$370A), the arpeggio ($372A/$376A), the pulse-width sweep, and on voice 1 the filter program ($36D1/$36DD)"
  },
  {
   "address": 13439,
   "type": "line",
   "text": "the operand of the SBC at $347E, rewritten as the game runs, by $3467, $3477"
  },
  {
   "address": 13543,
   "type": "line",
   "text": "the operand of the ADC at $34E6, rewritten as the game runs, by $34DA"
  },
  {
   "address": 13678,
   "type": "line",
   "text": "sets the voice's frequency for its note ($43)"
  },
  {
   "address": 13680,
   "type": "line",
   "text": "sets the voice's frequency for note Y (up to $5F) from the table at $3586/$35EA"
  },
  {
   "address": 13701,
   "type": "line",
   "text": "the RTS that ends set_note_y; read as entry -1 of freq_lo by the vibrato at $33CC, which takes the step between two neighbouring notes"
  },
  {
   "address": 13702,
   "type": "line",
   "text": "the low bytes of the frequencies of 96 notes"
  },
  {
   "address": 13801,
   "type": "line",
   "text": "the byte before freq_hi, read as entry -1 of it by the vibrato ($33D9)"
  },
  {
   "address": 13802,
   "type": "line",
   "text": "the high bytes of the same"
  },
  {
   "address": 13898,
   "type": "line",
   "text": "for the $FC command: the sequence to continue with, per voice and tune (two bytes each)"
  },
  {
   "address": 13906,
   "type": "line",
   "text": "the low bytes of the sequences' addresses, 64 of them: the tunes' parts and the sound effects. From here to $3B79 is the level's tune file, loaded with the level (an S file, unpacked here); this one is SA"
  },
  {
   "address": 13970,
   "type": "line",
   "text": "the sequences' addresses, high bytes (64)"
  },
  {
   "address": 14033,
   "type": "line",
   "text": "the low bytes of the filter programs (12)"
  },
  {
   "address": 14045,
   "type": "line",
   "text": "the filter programs' addresses, high bytes (12)"
  },
  {
   "address": 14058,
   "type": "line",
   "text": "the low bytes of the wave programs (32): lists of control bytes for $D404, $FF jumps, $FE ends"
  },
  {
   "address": 14090,
   "type": "line",
   "text": "the wave programs' addresses, high bytes (32)"
  },
  {
   "address": 14122,
   "type": "line",
   "text": "the low bytes of the arpeggio tables (64): note offsets added each frame; $FF jumps, $FE ends"
  },
  {
   "address": 14186,
   "type": "line",
   "text": "the arpeggio tables' addresses, high bytes (64)"
  },
  {
   "address": 14250,
   "type": "line",
   "text": "the instruments (16 columns of 16): bit 7 keeps the pulse width, the low nybble starts it"
  },
  {
   "address": 14266,
   "type": "line",
   "text": "each instrument's waveform and gate byte, and the pulse width's start in bits 4-6"
  },
  {
   "address": 14282,
   "type": "line",
   "text": "each instrument's attack and decay"
  },
  {
   "address": 14298,
   "type": "line",
   "text": "each instrument's sustain and release"
  },
  {
   "address": 14314,
   "type": "line",
   "text": "each instrument's gate-off point (high nybble) and filter program (low nybble)"
  },
  {
   "address": 14330,
   "type": "line",
   "text": "each instrument's vibrato: depth in the high nybble, speed in the low"
  },
  {
   "address": 14346,
   "type": "line",
   "text": "each instrument's pulse sweep and release step"
  },
  {
   "address": 14362,
   "type": "line",
   "text": "each instrument's wave program (bit 7 and the low five bits), pitch drop (bit 5) and arpeggio (bit 6)"
  },
  {
   "address": 14378,
   "type": "line",
   "text": "the tune's sequences and the sound effects' sequences, as read_sequence reads them (notes, lengths, instruments and the $FA-$FF commands)"
  },
  {
   "address": 15360,
   "type": "line",
   "text": "the low bytes of the lemmings' animation frames, 300 of them; each frame's graphics lie in $BBF0-$CB00"
  },
  {
   "address": 15660,
   "type": "line",
   "text": "for each of the 300 animation frames, the high byte of its graphics' address ($BB-$CB)"
  },
  {
   "address": 15872,
   "type": "line",
   "text": "for each of the water's eight lines, the pixel byte of its first shape, by the frame ($2C9B)"
  },
  {
   "address": 15880,
   "type": "line",
   "text": "the same for the second shape ($2CA7)"
  },
  {
   "address": 15960,
   "type": "line",
   "text": "the low bytes of the frames' second halves, for the drawing's lower rows (with $2EA0)"
  },
  {
   "address": 16260,
   "type": "line",
   "text": "the colours of the panel's four sprites"
  },
  {
   "address": 16264,
   "type": "line",
   "text": "their X positions"
  },
  {
   "address": 16268,
   "type": "line",
   "text": "their Y positions"
  },
  {
   "address": 16272,
   "type": "line",
   "text": "their pointers: shapes $D2, $CF, $D0 and $D1"
  },
  {
   "address": 16276,
   "type": "line",
   "text": "for each screen, the high byte of the cursor characters $FC-$FF in its character set: $57 for $5000, $5F for $5800 ($194C)"
  },
  {
   "address": 16278,
   "type": "line",
   "text": "the digger's position in the dig tables during a stroke"
  },
  {
   "address": 16279,
   "type": "line",
   "text": "cells left in the digger's stroke"
  },
  {
   "address": 16280,
   "type": "line",
   "text": "per frame of the dig stroke: how many cells it removes"
  },
  {
   "address": 16296,
   "type": "line",
   "text": "per frame: the first of them, an index into $3FB8 and $4BF2"
  },
  {
   "address": 16312,
   "type": "line",
   "text": "the cells' X offsets from the lemming"
  },
  {
   "address": 16324,
   "type": "line",
   "text": "per frame of the basher's swing: the X offset of the cells it removes, facing right"
  },
  {
   "address": 16333,
   "type": "line",
   "text": "the same facing left"
  },
  {
   "address": 16342,
   "type": "line",
   "text": "the Y offset of those cells"
  },
  {
   "address": 16352,
   "type": "line",
   "text": "the climber's Y offsets by frame"
  },
  {
   "address": 16360,
   "type": "line",
   "text": "AND masks that clear one multicolour pixel of a byte: $3F, $CF, $F3, $FC"
  },
  {
   "address": 16364,
   "type": "line",
   "text": "for each number of rows a lemming covers, the last character byte to clear"
  },
  {
   "address": 16370,
   "type": "line",
   "text": "the floater's frames, by its counter"
  },
  {
   "address": 18432,
   "type": "line",
   "text": "for each line of the terrain, the low byte of its offset within a sprite shape (three bytes a line, 21 lines a sprite); read by terrain_at"
  },
  {
   "address": 18448,
   "type": "line",
   "text": "entry 0 of line_offset_unpack's table and a variable of the level's unpacker: $E0F5 sets it to 0 for the rearranging loop and $E136 puts back the 3 the table holds"
  },
  {
   "address": 18452,
   "type": "line",
   "text": "line_offset_lo's entries 4 to $4F, $4814-$484F, which the level's unpacker also reads through $4810"
  },
  {
   "address": 18512,
   "type": "line",
   "text": "line_offset_lo from line $50 on, $4850-$48B7"
  },
  {
   "address": 18628,
   "type": "line",
   "text": "AND masks that keep one multicolour pixel: $C0, $30, $0C, $03, repeated"
  },
  {
   "address": 18644,
   "type": "line",
   "text": "the low bytes of the countdown digits' shapes, drawn above a lemming whose fuse burns ($1CD2, by $4D9B)"
  },
  {
   "address": 18664,
   "type": "line",
   "text": "the first sprite pointers of the eight terrain sprites"
  },
  {
   "address": 18672,
   "type": "line",
   "text": "the cursor shape's offsets for its four pixel positions (with $48F8)"
  },
  {
   "address": 18680,
   "type": "line",
   "text": "the cursor shape's offsets for its four positions, second half ($1991)"
  },
  {
   "address": 18688,
   "type": "line",
   "text": "for each line of the terrain, the high byte of its offset within the sprite shapes ($4800)"
  },
  {
   "address": 18704,
   "type": "line",
   "text": "the same offsets as the level's unpacker reads them ($E094), low byte; $4810 is a variable of the unpacker"
  },
  {
   "address": 18884,
   "type": "line",
   "text": "the low bytes of the 25 screen rows' starts (row times 40)"
  },
  {
   "address": 18890,
   "type": "line",
   "text": "the same table from row 6, read by the water drawing"
  },
  {
   "address": 18909,
   "type": "line",
   "text": "the high bytes of the rows' starts for the screen at $4000"
  },
  {
   "address": 18915,
   "type": "line",
   "text": "the same from row 6"
  },
  {
   "address": 18934,
   "type": "line",
   "text": "the cursor shape's offsets' high bytes"
  },
  {
   "address": 18944,
   "type": "line",
   "text": "for each X offset from a lemming, the index of the terrain byte-column (four pixels to a byte)"
  },
  {
   "address": 19264,
   "type": "line",
   "text": "the high bytes of the terrain columns' addresses (with $0801)"
  },
  {
   "address": 19384,
   "type": "line",
   "text": "the low bytes of the screen rows in the lemmings' window, by character row"
  },
  {
   "address": 19409,
   "type": "line",
   "text": "the lemmings' window's character rows, high bytes of their screen addresses"
  },
  {
   "address": 19434,
   "type": "line",
   "text": "the cursor shapes' high bytes"
  },
  {
   "address": 19442,
   "type": "line",
   "text": "the dig cells' Y offsets ($249D)"
  },
  {
   "address": 19456,
   "type": "line",
   "text": "the low byte of each terrain byte-column's offset in the sprite shapes ($28F2)"
  },
  {
   "address": 19776,
   "type": "line",
   "text": "the ninth bit of each terrain sprite's X position, by its place"
  },
  {
   "address": 19784,
   "type": "line",
   "text": "the Y position of each of the eight terrain sprites' first row"
  },
  {
   "address": 19792,
   "type": "line",
   "text": "the panel's 16 fixed characters, copied to $5000 and $5800"
  },
  {
   "address": 19808,
   "type": "line",
   "text": "the low bytes of the countdown digits' second halves ($1CE9)"
  },
  {
   "address": 19828,
   "type": "line",
   "text": "their high bytes ($1CF2)"
  },
  {
   "address": 19848,
   "type": "line",
   "text": "the high bytes of the countdown digits' shapes ($1CDD)"
  },
  {
   "address": 19867,
   "type": "line",
   "text": "for each value of the fuse's top bits ($041E, from $04EC), the countdown digit's entry in the tables above"
  },
  {
   "address": 19898,
   "type": "line",
   "text": "the movement step the basher's handler returns in Y for each frame of its swing ($2683)"
  },
  {
   "address": 19915,
   "type": "line",
   "text": "per frame of the miner's stroke, the value its handler returns in A, facing left ($27A7)"
  },
  {
   "address": 19939,
   "type": "line",
   "text": "the same facing right ($279F)"
  },
  {
   "address": 19962,
   "type": "line",
   "text": "how near the cursor a lemming must be, by row of the hit box: 2, 1, 0, 1, 2, then $80 for out of reach"
  },
  {
   "address": 19968,
   "type": "line",
   "text": "the high byte of each terrain byte-column's offset in the sprite shapes ($28FC)"
  },
  {
   "address": 20288,
   "type": "line",
   "text": "the rotation of the eight terrain sprites by the scroll column ($0CF0)"
  },
  {
   "address": 20408,
   "type": "line",
   "text": "the release rate's units digit for each step 0-23 (with rate_tens: 01, 06, 12, 17 ... 99)"
  },
  {
   "address": 20432,
   "type": "line",
   "text": "the release rate's tens digit for each step 0-23"
  },
  {
   "address": 20456,
   "type": "line",
   "text": "the release timer's step for each rate step ($1E05)"
  },
  {
   "address": 20480,
   "type": "line",
   "text": "the briefing code's entry points: $526E (load the level and show its briefing), $51F2 (the end-of-level screen), $5236 (a load failed), $5233 (insert another disk)"
  },
  {
   "address": 20483,
   "type": "line",
   "text": "jump to result_screen"
  },
  {
   "address": 20486,
   "type": "line",
   "text": "jump to the failed-load handler at $5236"
  },
  {
   "address": 20489,
   "type": "line",
   "text": "jump to disk_prompt"
  },
  {
   "address": 20492,
   "type": "line",
   "text": "runs the level's own unpacker at $E094 with the RAM under the ROMs in view ($01 = $35)"
  },
  {
   "address": 20506,
   "type": "line",
   "text": "for the level preview: counts how often each of the four pixel colours occurs in one 4-pixel byte of the terrain ($5BC9-$5BCC)"
  },
  {
   "address": 20544,
   "type": "line",
   "text": "the operand of the LDA at $503F, rewritten as the game runs, by $503A, $5047, $504A"
  },
  {
   "address": 20561,
   "type": "line",
   "text": "draws one pixel of the small level preview on the briefing: the commonest colour of a block of the terrain ($501A four times), set into the preview's bitmap through $50FA/$510E and the masks at $50DA/$50EA"
  },
  {
   "address": 20682,
   "type": "line",
   "text": "the operand of the ADC at $50C9, rewritten as the game runs, by $50AE"
  },
  {
   "address": 20698,
   "type": "line",
   "text": "the preview's AND masks per pixel position"
  },
  {
   "address": 20714,
   "type": "line",
   "text": "the preview's pixel values per colour and position"
  },
  {
   "address": 20730,
   "type": "line",
   "text": "the preview bitmap's column addresses, low bytes"
  },
  {
   "address": 20750,
   "type": "line",
   "text": "the same, high bytes"
  },
  {
   "address": 20770,
   "type": "line",
   "text": "clears the screen to black, copies the level header to $6F00 (with the RAM under the ROMs in view), blanks the leading zeros of its numbers, sets up the screen's colour bars ($6D00-$6D54, $6C00-$6CA8), the raster interrupt at $52AA on line $2D, and the character screen at $4000 with its characters at $6000"
  },
  {
   "address": 20978,
   "type": "line",
   "text": "the end-of-level screen: the level's figures ($532D) and the messages; when all 100 are done ($5BD0) the congratulations and returns $40; otherwise waits for fire (returns $80, the next level) or RUN/STOP (returns 0, the menu)"
  },
  {
   "address": 21043,
   "type": "line",
   "text": "asks for the disk side the loader wants: \"Please insert disk N side X\", the number and letter worked out from the side in A, then waits for fire"
  },
  {
   "address": 21046,
   "type": "line",
   "text": "an entry inside the BIT at $5235: entered here, its operand runs as LDX #$80; reached by $5006 JMP, while the way through the BIT skips it"
  },
  {
   "address": 21061,
   "type": "line",
   "text": "the operand of the LDA at $5244, rewritten as the game runs, by $5238"
  },
  {
   "address": 21081,
   "type": "line",
   "text": "the operand of the LDA at $5258, rewritten as the game runs, by $523B"
  },
  {
   "address": 21102,
   "type": "line",
   "text": "loads the level's files ($5BAF), unpacks the terrain ($500C), checks that the level's own code at $E005 matches the code kept at $CB49 (a mismatch turns the border red and stops the machine at $5286), then draws the briefing: the preview ($5454), its frame ($54F9), the texts ($530B), and waits for fire"
  },
  {
   "address": 21147,
   "type": "line",
   "text": "turns the screen on and waits for fire on port 2"
  },
  {
   "address": 21162,
   "type": "line",
   "text": "the briefing screen's raster interrupt: from line $32 to $FA changes the background colour each line from the table at $6DCE (the colour bars behind the text)"
  },
  {
   "address": 21201,
   "type": "line",
   "text": "copies the eight fields of the level header into the screens' texts, by the tables at $540C-$542C: name, number, lemmings, percentages, release rate, next number and next code (letters, $40 added)"
  },
  {
   "address": 21240,
   "type": "line",
   "text": "the operand of the ADC at $52F7, rewritten as the game runs, by $52E5"
  },
  {
   "address": 21242,
   "type": "line",
   "text": "the low byte of the STA at $52F9, rewritten as the game runs, by $52D9"
  },
  {
   "address": 21243,
   "type": "line",
   "text": "the high byte of the STA at $52F9, rewritten as the game runs, by $52DF"
  },
  {
   "address": 21247,
   "type": "line",
   "text": "the operand of the CPY at $52FE, rewritten as the game runs, by $52EE"
  },
  {
   "address": 21259,
   "type": "line",
   "text": "the briefing's fields ($52D1), the rating's name from $5434 and the minutes"
  },
  {
   "address": 21293,
   "type": "line",
   "text": "the end screen's figures: the percentage saved ($CB40-$CB42), the message chosen by $53CF, and, for a level passed, the next level's code: the level number $CB48 goes up by one and the next code is kept at $CB49; after the hundredth level it goes back to 0 and $5BD0 says the game is complete"
  },
  {
   "address": 21354,
   "type": "line",
   "text": "an entry inside the BIT at $5369: entered here, its operand runs as LDX #$05; reached by $5365 BPL, while the way through the BIT skips it"
  },
  {
   "address": 21402,
   "type": "line",
   "text": "an entry inside the BIT at $5399: entered here, its operand runs as LDA #$00; reached by $537B BPL, $5390 BNE, while the way through the BIT skips it"
  },
  {
   "address": 21414,
   "type": "line",
   "text": "the sound for each kind of result message"
  },
  {
   "address": 21420,
   "type": "line",
   "text": "the KERNAL's interrupt back ($EA31) and its video chip registers ($ECCB), for the loader"
  },
  {
   "address": 21455,
   "type": "line",
   "text": "which message the end screen shows, by the lemmings saved ($CB45) against the level's number ($6F39) and the number to save ($6F40): all of them, none, enough or not; some messages are picked at random by the raster line's lowest bit. X = $80 when the level was passed"
  },
  {
   "address": 21516,
   "type": "line",
   "text": "the eight fields' destinations in the briefing and end texts, low bytes"
  },
  {
   "address": 21524,
   "type": "line",
   "text": "the eight fields' destinations, high bytes"
  },
  {
   "address": 21532,
   "type": "line",
   "text": "what each field's characters have added: $40 for the access code's letters"
  },
  {
   "address": 21540,
   "type": "line",
   "text": "where each field starts in the header copy at $6F00"
  },
  {
   "address": 21548,
   "type": "line",
   "text": "each field's length"
  },
  {
   "address": 21556,
   "type": "line",
   "text": "the four ratings' names, eight screen codes each: Fun, Tricky, Taxing, Mayhem"
  },
  {
   "address": 21588,
   "type": "line",
   "text": "the briefing's small picture of the whole level: one pixel for each block of the terrain, 77 columns by 40 rows ($5051)"
  },
  {
   "address": 21619,
   "type": "line",
   "text": "waits for a press of fire (from the start of a frame), then turns the screen off, gives the interrupt back to the KERNAL ($53AC) and clears the screen at $4000"
  },
  {
   "address": 21676,
   "type": "line",
   "text": "the briefing's colours from the header copy ($6F60-$6F68), clears the screen ($4000-$43FF) to character $46 and colour RAM to 0, the preview's bitmap to $FF and the colour bar table at $6E00"
  },
  {
   "address": 21753,
   "type": "line",
   "text": "puts the preview's characters on the screen: 20 rows of five characters from $9C onwards"
  },
  {
   "address": 21766,
   "type": "line",
   "text": "the operand of the LDA at $5505, rewritten as the game runs, by $54FB, $550D"
  },
  {
   "address": 21787,
   "type": "line",
   "text": "the numbers of the lines that make up the end-of-game screen, 0 to end"
  },
  {
   "address": 21795,
   "type": "line",
   "text": "the end screen's variables: the line it prints ($5523) and its row ($5526, $5527)"
  },
  {
   "address": 21798,
   "type": "line",
   "text": "the row the end screen's message starts on ($5358)"
  },
  {
   "address": 21799,
   "type": "line",
   "text": "the row after it ($535E)"
  },
  {
   "address": 21800,
   "type": "line",
   "text": "the message lines chosen for this result"
  },
  {
   "address": 21811,
   "type": "line",
   "text": "prints the end-of-game messages: the lines numbered in $551B"
  },
  {
   "address": 21814,
   "type": "line",
   "text": "an entry inside the BIT at $5535: entered here, its operand runs as LDY #$08; reached by $5209 JSR, while the way through the BIT skips it"
  },
  {
   "address": 21817,
   "type": "line",
   "text": "an entry inside the BIT at $5538: entered here, its operand runs as LDY #$00; reached by $5298 JSR, while the way through the BIT skips it"
  },
  {
   "address": 21840,
   "type": "line",
   "text": "prints line X of the end screen's texts: its row and column from the table at $5608/$562E, its colour bar from $5B3F, then its characters through $55A9 (each letter drawn as two characters, the lower one $4B further on)"
  },
  {
   "address": 21875,
   "type": "line",
   "text": "the operand of the LDX at $5572, rewritten as the game runs, by $5565"
  },
  {
   "address": 21929,
   "type": "line",
   "text": "maps a text character to the briefing font's character"
  },
  {
   "address": 22024,
   "type": "line",
   "text": "the low bytes of the screen texts' addresses, by line number"
  },
  {
   "address": 22062,
   "type": "line",
   "text": "the high bytes of the same; the texts follow from $5655"
  },
  {
   "address": 22219,
   "type": "line",
   "text": "the briefing's and the end screens' texts, each line led by its column and row, the fields filled in from the level header ($52D1): \"Rating\", \"Number of Lemmings\", \"Your time is up!\", the result messages, the access code, \"Please insert disk\", \"CONGRATULATIONS !!!\" and the end-of-game lines"
  },
  {
   "address": 22240,
   "type": "line",
   "text": "the briefing's rating field, eight characters copied from $5434 ($531A)"
  },
  {
   "address": 22363,
   "type": "line",
   "text": "the first of the end screen's percentage digits"
  },
  {
   "address": 22364,
   "type": "line",
   "text": "the end screen's percentage digits ($5338-$534D), the first two blanked when zero"
  },
  {
   "address": 22432,
   "type": "line",
   "text": "more of the screen texts (from \"...do it again\")"
  },
  {
   "address": 22440,
   "type": "line",
   "text": "screen texts, $57A8-$57AF; in play the character set at $5000 has character $F5 here, a frame of the water drawn by $2CAD"
  },
  {
   "address": 22448,
   "type": "line",
   "text": "screen texts, $57B0-$57B7; in play character $F6, written by $2CB9"
  },
  {
   "address": 22456,
   "type": "line",
   "text": "screen texts, $57B8-$57BF; in play character $F7, written by $2CBF"
  },
  {
   "address": 22464,
   "type": "line",
   "text": "screen texts, $57C0-$57C7; in play character $F8, written by $2CC8"
  },
  {
   "address": 22472,
   "type": "line",
   "text": "screen texts, $57C8-$57CF; in play character $F9, written by $2CD4"
  },
  {
   "address": 22480,
   "type": "line",
   "text": "screen texts, $57D0-$57D7; in play character $FA, written by $2CE0"
  },
  {
   "address": 22488,
   "type": "line",
   "text": "screen texts, $57D8-$57DF; in play character $FB, written by $2CE6"
  },
  {
   "address": 22496,
   "type": "line",
   "text": "screen texts, $57E0-$57E7; in play character $FC, the cursor's top left, built by draw_cursor"
  },
  {
   "address": 22504,
   "type": "line",
   "text": "screen texts, $57E8-$57EF; in play character $FD, the cursor's top right"
  },
  {
   "address": 22512,
   "type": "line",
   "text": "screen texts, $57F0-$57F7; in play character $FE, the cursor's bottom left"
  },
  {
   "address": 22520,
   "type": "line",
   "text": "screen texts, $57F8-$57FF; in play character $FF, the cursor's bottom right"
  },
  {
   "address": 22528,
   "type": "line",
   "text": "more of the screen texts"
  },
  {
   "address": 22997,
   "type": "line",
   "text": "the end screen's access code field: ten letters ($52F9)"
  },
  {
   "address": 23046,
   "type": "line",
   "text": "\"insert disk N side X\": the disk number written here by $5255 and the side letter at $5A0D by $524B"
  },
  {
   "address": 23053,
   "type": "line",
   "text": "the side letter of \"insert disk N side X\" ($524B)"
  },
  {
   "address": 23286,
   "type": "line",
   "text": "for screen row X, the pointers to the row on the screen at $4000 and in colour RAM ($20-$27), from $5B1D/$5B36"
  },
  {
   "address": 23325,
   "type": "line",
   "text": "the low bytes of the briefing screen's rows"
  },
  {
   "address": 23326,
   "type": "line",
   "text": "brief_row_lo from its second entry, the next row's start ($5B09)"
  },
  {
   "address": 23350,
   "type": "line",
   "text": "the high bytes"
  },
  {
   "address": 23351,
   "type": "line",
   "text": "brief_row_hi from its second entry ($5B10)"
  },
  {
   "address": 23359,
   "type": "line",
   "text": "the base of the colour bars read at $5579, indexed from each text line's third byte up to the next multiple of 16; $5B3F-$5B4E are also brief_row_hi's last sixteen entries"
  },
  {
   "address": 23471,
   "type": "line",
   "text": "loads the files of level $CB48 when they are not in memory already ($CB53): its level file by the code at $0400+n, then its tune by the code at $0700+n"
  },
  {
   "address": 23495,
   "type": "line",
   "text": "the preview's working bytes: the block's column ($5BC7) and row ($5BC8), the four colour counts ($5BC9-$5BCC), the preview's column and row ($5BCD, $5BCE); then the field index ($5BCF), the game-complete flag ($5BD0), the level-passed flag ($5BD1) and the end screen's line ($5BD3-$5BD6)"
  },
  {
   "address": 23496,
   "type": "line",
   "text": "the preview block's row within the terrain"
  },
  {
   "address": 23497,
   "type": "line",
   "text": "how many pixels of colour 0 the block has"
  },
  {
   "address": 23498,
   "type": "line",
   "text": "of colour 1"
  },
  {
   "address": 23499,
   "type": "line",
   "text": "of colour 2"
  },
  {
   "address": 23500,
   "type": "line",
   "text": "of colour 3"
  },
  {
   "address": 23501,
   "type": "line",
   "text": "the preview's column, two at a time"
  },
  {
   "address": 23502,
   "type": "line",
   "text": "the preview's row"
  },
  {
   "address": 23503,
   "type": "line",
   "text": "the field fill_texts is copying"
  },
  {
   "address": 23504,
   "type": "line",
   "text": "bit 7 set once level 100 has been passed"
  },
  {
   "address": 23505,
   "type": "line",
   "text": "bit 7 set when the level was passed: fire then moves on"
  },
  {
   "address": 23507,
   "type": "line",
   "text": "the line print_line is printing"
  },
  {
   "address": 23508,
   "type": "line",
   "text": "the position in the line's text"
  },
  {
   "address": 23509,
   "type": "line",
   "text": "the screen column the next character goes to"
  },
  {
   "address": 23510,
   "type": "line",
   "text": "the index into end_lines"
  },
  {
   "address": 24576,
   "type": "line",
   "text": "the briefing and end screens' character set, at $6000 for the screen at $4000; in play this memory holds the shown copy of the terrain sprites instead"
  },
  {
   "address": 24640,
   "type": "line",
   "text": "the briefing font, its second 64 bytes; in play the same addresses hold the shown terrain that copy_column moves ($0D71)"
  },
  {
   "address": 24704,
   "type": "line",
   "text": "the briefing font from $6080; copy_column's third pair of addresses in play"
  },
  {
   "address": 24745,
   "type": "line",
   "text": "named only as the operand of the BIT at $2984 (the skip idiom); the bytes are the briefing font's"
  },
  {
   "address": 24768,
   "type": "line",
   "text": "the briefing font from $60C0; copy_column's fourth pair in play"
  },
  {
   "address": 24832,
   "type": "line",
   "text": "the briefing font from $6100; copy_column's fifth pair"
  },
  {
   "address": 24896,
   "type": "line",
   "text": "the briefing font from $6140; copy_column's sixth pair"
  },
  {
   "address": 24960,
   "type": "line",
   "text": "the briefing font from $6180; copy_column's seventh pair"
  },
  {
   "address": 25024,
   "type": "line",
   "text": "the briefing font from $61C0; copy_column's eighth pair"
  },
  {
   "address": 26624,
   "type": "line",
   "text": "a second copy of the first 1 KB of the briefing font"
  },
  {
   "address": 28672,
   "type": "line",
   "text": "the panel's character set, $7000-$77FF, which line 217 selects ($D018 = $0C, band_panel): the characters the panel shows lie in $7000-$739F (codes up to $73 in play), with the panel's rows of text at $7170 among them; sprite shapes $CF-$D2 at $73C0-$74BF are the panel's four sprites ($3F90), and tables follow from $74C0. Seen as sprite shapes, $7000-$73BF is $C0-$CE, which no sprite shows"
  },
  {
   "address": 28800,
   "type": "line",
   "text": "the address the operand at $2A5D holds in this snapshot, from before the level set-up: $1000 rewrites it with the level's object table ($E080); the bytes here are the panel character set's"
  },
  {
   "address": 28928,
   "type": "line",
   "text": "the operand at $2AC0 before $1000 rewrites it with the objects' columns ($E082); the bytes are the panel character set's"
  },
  {
   "address": 29040,
   "type": "line",
   "text": "the panel's three rows of characters, $7170-$71E7, copied to screen rows 22-24 at $4370 by $11B4, which also sets their colour RAM to 9"
  },
  {
   "address": 29056,
   "type": "line",
   "text": "the operand at $2AE6 before $1000 rewrites it ($E084); the bytes are the panel character set's"
  },
  {
   "address": 29184,
   "type": "line",
   "text": "the operand at $2AEF before $1000 rewrites it ($E086); the bytes are the panel character set's"
  },
  {
   "address": 29312,
   "type": "line",
   "text": "the operand at $2ADA before $1000 rewrites it ($E088); the bytes are the panel character set's"
  },
  {
   "address": 29440,
   "type": "line",
   "text": "the operand at $2AE0 before $1000 rewrites it ($E08A); the bytes are the panel character set's"
  },
  {
   "address": 29568,
   "type": "line",
   "text": "the operand at $2AD4 before $1000 rewrites it ($E08C); the bytes are the panel character set's"
  },
  {
   "address": 29632,
   "type": "line",
   "text": "the panel's four sprite shapes, $CF-$D2 ($73C0-$74BF), one of them the highlight on the chosen skill ($3F90)"
  },
  {
   "address": 29888,
   "type": "line",
   "text": "for each character code 0-255, the low byte of its 8 bytes in the character set at $5000 (code times 8)"
  },
  {
   "address": 30144,
   "type": "line",
   "text": "for each character code 0-255, the high byte of its bitmap's address in the character set at $5000 ($50-$57)"
  },
  {
   "address": 30400,
   "type": "line",
   "text": "the high bytes for the character set at $5800, used for the other screen"
  },
  {
   "address": 30656,
   "type": "line",
   "text": "the X position of the panel's highlight for each skill"
  },
  {
   "address": 30664,
   "type": "line",
   "text": "its ninth bit"
  },
  {
   "address": 30672,
   "type": "line",
   "text": "the keyboard rows of the 13 keys read_keys scans"
  },
  {
   "address": 30685,
   "type": "line",
   "text": "their columns"
  },
  {
   "address": 30698,
   "type": "line",
   "text": "the panel cells of the ten counts (release rate and skills)"
  },
  {
   "address": 30708,
   "type": "line",
   "text": "the panel cells of the clock and the counts' digits"
  },
  {
   "address": 30720,
   "type": "line",
   "text": "pixel shapes, small figures on a blank ground; no instruction names this block, and what reads it is open"
  },
  {
   "address": 31504,
   "type": "line",
   "text": "the bomber's blast picture: one byte column a row ($7B10, $7B30)"
  },
  {
   "address": 31536,
   "type": "line",
   "text": "the blast picture's second column of bytes ($2333)"
  },
  {
   "address": 32024,
   "type": "line",
   "text": "the terrain sprites' Y offset for each fine scroll position"
  },
  {
   "address": 32144,
   "type": "line",
   "text": "the panel's 13 fixed cells: character and position, two bytes each"
  },
  {
   "address": 32145,
   "type": "line",
   "text": "the second byte of each pair in panel_fixed: the cell's position ($15D9)"
  },
  {
   "address": 32170,
   "type": "line",
   "text": "the miner's cells' X offsets"
  },
  {
   "address": 32197,
   "type": "line",
   "text": "their Y offsets"
  },
  {
   "address": 32225,
   "type": "line",
   "text": "the movement step the miner's handler returns in Y for each frame ($27AA)"
  },
  {
   "address": 32238,
   "type": "line",
   "text": "the first cell of each mine stroke"
  },
  {
   "address": 32240,
   "type": "line",
   "text": "the last cell"
  },
  {
   "address": 32253,
   "type": "line",
   "text": "the climbing actions by direction ($10, $91)"
  },
  {
   "address": 32255,
   "type": "line",
   "text": "the address the rearranging loop's LDA operand holds before $E0E9 sets it to $B12F; the byte is climb_actions'"
  },
  {
   "address": 32768,
   "type": "line",
   "text": "the level's terrain as multicolour sprite shapes, built by the level's unpacker ($E094): 78 byte-columns of four pixels by 168 lines, arranged as the play area's sprites read them; $8000-$83FF holds the first shapes"
  },
  {
   "address": 32930,
   "type": "line",
   "text": "named only as the operand of the BIT at $5235 (the skip idiom); the bytes are terrain_0's"
  },
  {
   "address": 32994,
   "type": "line",
   "text": "the level's terrain shapes, continued: $80E2-$83BE"
  },
  {
   "address": 33727,
   "type": "line",
   "text": "the level's terrain shapes, $83BF-$83FF"
  },
  {
   "address": 33792,
   "type": "line",
   "text": "the level's terrain shapes, $8400-$87FF"
  },
  {
   "address": 34816,
   "type": "line",
   "text": "the level's terrain shapes, $8800-$8BFF"
  },
  {
   "address": 35241,
   "type": "line",
   "text": "named only as the operand of the BITs at $2547 and $25E3 (the skip idiom); the bytes are terrain_2's"
  },
  {
   "address": 35327,
   "type": "line",
   "text": "the level's terrain shapes, $89FF-$8BFF"
  },
  {
   "address": 35840,
   "type": "line",
   "text": "the level's terrain shapes, $8C00-$8FFF"
  },
  {
   "address": 36864,
   "type": "line",
   "text": "the level's terrain shapes, $9000-$93FF; between levels the briefing's stash is unpacked through here ($CBD2), so $9000-$9007 are also its header"
  },
  {
   "address": 36865,
   "type": "line",
   "text": "the boot unpack's header, byte 1 (the source's low byte)"
  },
  {
   "address": 36866,
   "type": "line",
   "text": "byte 2 (the output's high byte)"
  },
  {
   "address": 36867,
   "type": "line",
   "text": "byte 3 (the output's low byte)"
  },
  {
   "address": 36868,
   "type": "line",
   "text": "byte 4 (the end's high byte)"
  },
  {
   "address": 36869,
   "type": "line",
   "text": "byte 5 (the end's low byte)"
  },
  {
   "address": 36870,
   "type": "line",
   "text": "byte 6 (the literal count's high byte)"
  },
  {
   "address": 36871,
   "type": "line",
   "text": "the last byte of the stash's header when it is at $9000 ($CC62); in this snapshot it is terrain"
  },
  {
   "address": 36935,
   "type": "line",
   "text": "the level's terrain shapes, $9047-$9148"
  },
  {
   "address": 37200,
   "type": "line",
   "text": "the menu's entry, where to_menu ($CD53) jumps once the menu's files are in; in this part's memory the bytes are terrain"
  },
  {
   "address": 37263,
   "type": "line",
   "text": "the level's terrain shapes, $918F-$9277"
  },
  {
   "address": 37567,
   "type": "line",
   "text": "the level's terrain shapes, $92BF-$934E"
  },
  {
   "address": 37778,
   "type": "line",
   "text": "the level's terrain shapes, $9392-$93FF"
  },
  {
   "address": 37888,
   "type": "line",
   "text": "the level's terrain shapes, $9400-$97FF"
  },
  {
   "address": 38912,
   "type": "line",
   "text": "the level's terrain shapes, $9800-$9BFF"
  },
  {
   "address": 39936,
   "type": "line",
   "text": "the level's terrain shapes, $9C00-$9FFF"
  },
  {
   "address": 40704,
   "type": "line",
   "text": "the address the STA at $CBF8 holds in this snapshot; $CBEB rewrites its high byte to $90 before the copy runs, so nothing is written here. The bytes are terrain"
  },
  {
   "address": 40841,
   "type": "line",
   "text": "the level's terrain shapes, $9F89-$9FE3 (the copy of the level file goes here after a level)"
  },
  {
   "address": 40960,
   "type": "line",
   "text": "the level's terrain shapes, $A000-$A3FF"
  },
  {
   "address": 41984,
   "type": "line",
   "text": "the level's terrain shapes, $A400-$A7FF"
  },
  {
   "address": 43008,
   "type": "line",
   "text": "the level's terrain shapes, $A800-$ABFF"
  },
  {
   "address": 44032,
   "type": "line",
   "text": "the level's terrain shapes, $AC00-$AFFF"
  },
  {
   "address": 45056,
   "type": "line",
   "text": "the level's terrain shapes, $B000-$B3FF, the last"
  },
  {
   "address": 46080,
   "type": "line",
   "text": "the numbers 0-255: lets the drawing read a byte through an index ($1D4B)"
  },
  {
   "address": 46336,
   "type": "line",
   "text": "256 zero bytes, read by the drawing routines through an index where nothing is to be added"
  },
  {
   "address": 46592,
   "type": "line",
   "text": "n / 4 for n = 0-255; this table and the five after it ($B700-$BBEF) are named by no instruction, and what reads them is open"
  },
  {
   "address": 46848,
   "type": "line",
   "text": "(n mod 4) times $40; named by no instruction"
  },
  {
   "address": 47104,
   "type": "line",
   "text": "n / 16; named by no instruction"
  },
  {
   "address": 47360,
   "type": "line",
   "text": "(n mod 16) times 16; named by no instruction"
  },
  {
   "address": 47616,
   "type": "line",
   "text": "another table of 256 with four values; what reads it is open"
  },
  {
   "address": 47872,
   "type": "line",
   "text": "(n times 4) mod 256; named by no instruction"
  },
  {
   "address": 48112,
   "type": "line",
   "text": "the lemmings' animation frames: rows of multicolour pixels, 16 bytes a frame, pointed to by $3C00/$3D2C"
  },
  {
   "address": 49136,
   "type": "line",
   "text": "the lemmings' animation frames, $BFF0-$C3EF"
  },
  {
   "address": 49152,
   "type": "line",
   "text": "the lemmings' animation frames, $C000-$C004, between two labels"
  },
  {
   "address": 49157,
   "type": "line",
   "text": "the lemmings' animation frames, $C005-$C3EF (past a label at $C004)"
  },
  {
   "address": 50160,
   "type": "line",
   "text": "the lemmings' animation frames, $C3F0-$C7EF"
  },
  {
   "address": 50176,
   "type": "line",
   "text": "the end sequence's entry, where to_ending ($CD5B) jumps once IC is in; in this part's memory the bytes are animation frames"
  },
  {
   "address": 50186,
   "type": "line",
   "text": "the lemmings' animation frames, $C40A-$C7EF, after the end sequence's entry label at $C400"
  },
  {
   "address": 51184,
   "type": "line",
   "text": "the lemmings' animation frames, $C7F0-$CB0F, the last"
  },
  {
   "address": 57344,
   "type": "line",
   "text": "the level's header, unpacked from its file to $E000 (level 1, Fun, in this snapshot): $E000 its number as text, $E002 the next level's number as text, $E004 the rating (0 Fun, 1 Tricky, 2 Taxing, 3 Mayhem), $E005 this level's access code and $E00F the next level's (ten letters each, A = 1), $E019 the name (30 screen codes), $E037 the number of lemmings as text and $E039 as a number, $E03A the release rate as text and $E03C as a step (0-23), $E03D the percentage to save as text and $E040 the number to save, $E041 the minutes, $E044 the eight skills' tens and $E04C their units"
  },
  {
   "address": 57401,
   "type": "line",
   "text": "the number of lemmings in the level (10 here), as a number"
  },
  {
   "address": 57404,
   "type": "line",
   "text": "the release rate's starting and lowest step (11 here, shown as 50)"
  },
  {
   "address": 57409,
   "type": "line",
   "text": "the time allowed, in minutes (5 here); with the next two bytes the clock's start, copied to $CB39-$CB3B"
  },
  {
   "address": 57412,
   "type": "line",
   "text": "the eight skills' counts, tens digits (climber to digger)"
  },
  {
   "address": 57420,
   "type": "line",
   "text": "the eight skills' counts, units digits (the digger's 10 here)"
  },
  {
   "address": 57428,
   "type": "line",
   "text": "non-zero when the lemmings come out facing alternate ways; $E055 is the next one's direction"
  },
  {
   "address": 57429,
   "type": "line",
   "text": "the direction the next lemming comes out facing, $80 for the other way"
  },
  {
   "address": 57430,
   "type": "line",
   "text": "the percentage one lemming is worth, four decimal digits (10.00 for a level of 10), added up by $2A1A"
  },
  {
   "address": 57436,
   "type": "line",
   "text": "four steps of the level's colours for the fades: background ($E05C), multicolour 0 ($E060), sprite colour ($E064), multicolour 1 ($E068)"
  },
  {
   "address": 57440,
   "type": "line",
   "text": "the four fade steps of multicolour 0"
  },
  {
   "address": 57444,
   "type": "line",
   "text": "the four fade steps of the terrain sprites' colour"
  },
  {
   "address": 57448,
   "type": "line",
   "text": "the four fade steps of multicolour 1"
  },
  {
   "address": 57452,
   "type": "line",
   "text": "the trap doors: column (two bytes) and row, three bytes each, $FF after the last"
  },
  {
   "address": 57453,
   "type": "line",
   "text": "the entrances' columns, low bytes (every third byte from here)"
  },
  {
   "address": 57454,
   "type": "line",
   "text": "the entrances' rows (every third byte), and $FF after the last"
  },
  {
   "address": 57461,
   "type": "line",
   "text": "the level's exits, three bytes each (the column's high byte, its low byte, then the row), two at most: $1351 sets the exit test ($1F82, $1F8E, $1F96) from one of them each pass, alternating ($06E2); $E07A is $FF when there is only one"
  },
  {
   "address": 57462,
   "type": "line",
   "text": "the exits' columns, low bytes"
  },
  {
   "address": 57463,
   "type": "line",
   "text": "the exits' rows"
  },
  {
   "address": 57466,
   "type": "line",
   "text": "the second exit's first byte: $FF when the level has one exit"
  },
  {
   "address": 57467,
   "type": "line",
   "text": "how many animated objects the level has ($2A48); also the length of the block at ($E080) that $1000 rewrites"
  },
  {
   "address": 57468,
   "type": "line",
   "text": "non-zero when the level has a map of special cells (steel, one-way walls); bit 7 set when it has no one-way walls"
  },
  {
   "address": 57469,
   "type": "line",
   "text": "bit 7 set when the level has water or lava ($2B96)"
  },
  {
   "address": 57470,
   "type": "line",
   "text": "the kind of water, times 8 ($10C, $2BF6)"
  },
  {
   "address": 57471,
   "type": "line",
   "text": "bit 7 set makes the clock slower: $0EE9 adds 4 a pass instead of 5 towards a second ($108F)"
  },
  {
   "address": 57472,
   "type": "line",
   "text": "ten pointers into the level's own data that $1000 copies into the routines' operands: the objects, their graphics and the cell map"
  },
  {
   "address": 57474,
   "type": "line",
   "text": "the pointer to the objects' columns, copied to $2AC0"
  },
  {
   "address": 57476,
   "type": "line",
   "text": "the pointer copied to $2AE6"
  },
  {
   "address": 57478,
   "type": "line",
   "text": "the pointer copied to $2AEF"
  },
  {
   "address": 57480,
   "type": "line",
   "text": "the pointer copied to $2ADA"
  },
  {
   "address": 57482,
   "type": "line",
   "text": "the pointer copied to $2AE0"
  },
  {
   "address": 57484,
   "type": "line",
   "text": "the pointer copied to $2AD4"
  },
  {
   "address": 57486,
   "type": "line",
   "text": "the cell map's address, low byte ($2DB5)"
  },
  {
   "address": 57487,
   "type": "line",
   "text": "the cell map's address, high byte"
  },
  {
   "address": 57488,
   "type": "line",
   "text": "a pointer copied to $2D8F and $2CF1: the water map"
  },
  {
   "address": 57490,
   "type": "line",
   "text": "a pointer copied to $2D94, $2CFF and $2D2B"
  },
  {
   "address": 57492,
   "type": "line",
   "text": "the level's own routine, in its file: unpacks the level's terrain with the loader's scheme (bytes below $E0 are copied, codes from $E0 up repeat a byte or fill to an address) from its header at $E1A0 to $7E00-$B12F; then rearranges those 13,104 bytes, 78 columns by 168 lines, into the layout of sprite shapes at $8000-$B3FF that the play area shows, by the column and line tables at $0801/$4B40 and $4810/$4910"
  },
  {
   "address": 57622,
   "type": "line",
   "text": "the low byte of the LDA at $E115: where the rearranging loop reads the unpacked terrain, from $B12F downwards"
  },
  {
   "address": 57623,
   "type": "line",
   "text": "the high byte of the LDA at $E115, the read pointer into the unpacked terrain"
  },
  {
   "address": 57625,
   "type": "line",
   "text": "the low byte of the STA at $E118: where the byte goes in the sprite shapes, from the column and line tables"
  },
  {
   "address": 57626,
   "type": "line",
   "text": "the high byte of the STA at $E118, the target in the sprite shapes"
  },
  {
   "address": 57639,
   "type": "line",
   "text": "the operand of the LDY at $E126: the line counter, $A7 down to 0"
  },
  {
   "address": 57646,
   "type": "line",
   "text": "the operand of the LDX at $E12D: the column counter, $4D down to 0"
  },
  {
   "address": 57658,
   "type": "line",
   "text": "the level unpacker's own copy of the loader's next_byte: the next byte of the terrain's packed stream"
  },
  {
   "address": 57751,
   "type": "line",
   "text": "stores A at the unpack's output and moves it on"
  },
  {
   "address": 57760,
   "type": "line",
   "text": "the packed terrain's header: the stream's start, its output ($7E00), its end and the count of literal bytes of $E0 and up before the first code"
  },
  {
   "address": 57761,
   "type": "line",
   "text": "the packed terrain's start, low byte"
  },
  {
   "address": 57762,
   "type": "line",
   "text": "the unpack's output, high byte ($7E)"
  },
  {
   "address": 57763,
   "type": "line",
   "text": "the unpack's output, low byte"
  },
  {
   "address": 57764,
   "type": "line",
   "text": "the packed stream's end, high byte"
  },
  {
   "address": 57765,
   "type": "line",
   "text": "the packed stream's end, low byte"
  },
  {
   "address": 57766,
   "type": "line",
   "text": "the count of literal bytes from $E0 up, high byte"
  },
  {
   "address": 57767,
   "type": "line",
   "text": "the same, low byte"
  },
  {
   "address": 57768,
   "type": "line",
   "text": "the level's terrain, packed: the stream the level's unpacker reads ($E094); spent once it has run"
  },
  {
   "address": 58651,
   "type": "line",
   "text": "named by the JSR at $08AA, a call to the KERNAL's screen editor set-up with the ROM in view; the RAM here holds the packed terrain"
  },
  {
   "address": 58673,
   "type": "line",
   "text": "the packed terrain stream, $E531-$E5A7"
  },
  {
   "address": 58792,
   "type": "line",
   "text": "the packed terrain stream, $E5A8-$E9A7"
  },
  {
   "address": 59816,
   "type": "line",
   "text": "the packed terrain stream, $E9A8-$EDA7"
  },
  {
   "address": 60601,
   "type": "line",
   "text": "named by $08AF, which copies the KERNAL ROM's video chip defaults with the ROM in view; the RAM here holds the packed terrain"
  },
  {
   "address": 60619,
   "type": "line",
   "text": "named by $53BD, which copies the KERNAL ROM's video chip defaults; the RAM here holds the packed terrain"
  },
  {
   "address": 60683,
   "type": "line",
   "text": "the packed terrain stream, $ED0B-$EDA7"
  },
  {
   "address": 60840,
   "type": "line",
   "text": "the packed terrain stream, $EDA8-$F1A7"
  },
  {
   "address": 61864,
   "type": "line",
   "text": "the packed terrain stream, $F1A8-$F4FA, its end"
  },
  {
   "address": 62715,
   "type": "line",
   "text": "the level's objects, seven tables of $52 entries at the addresses $E080-$E08C give ($F4FB, $F54D, $F59F, $F5F1, $F643, $F695, $F6E7): kind and flags, column, and the addresses of each object's characters and graphics, read by animate_objects ($2A48); then more of the level's data up to $F9FF"
  },
  {
   "address": 63739,
   "type": "line",
   "text": "the level's object tables and data, $F8FB-$F9F4"
  },
  {
   "address": 64000,
   "type": "line",
   "text": "the last byte of the level's object area before level 1's file's tail at $FA01"
  },
  {
   "address": 64001,
   "type": "line",
   "text": "the last bytes of level 1's file, $FA01-$FA2C, after its object tables"
  },
  {
   "address": 64816,
   "type": "line",
   "text": "named by $08B5, which copies the KERNAL ROM's vectors with the ROM in view; the RAM here is not that table"
  }
 ]
}