{
 "schema": 1,
 "platform": "c64",
 "game": "north-and-south",
 "part": "fort",
 "build": "PAL cassette, four sides, Cyberload fast loader; the original release as the Ultimate Tape Archive V4.0 has it (entry 7562)",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    8192,
    8983,
    "runtime: the scroll buffer, 44 characters by 18 rows, which $870D draws the tiles into and $882F copies to the screen"
   ],
   [
    18432,
    19455,
    "runtime: the fort's screen and its sprite pointers, written by $863B, $882F, $961B, $9642 and the interrupts"
   ],
   [
    0,
    3071,
    "The loader and the script"
   ],
   [
    3072,
    8191,
    "The strategic map"
   ],
   [
    40960,
    50431,
    "The strategic map"
   ],
   [
    50432,
    57343,
    "The loader and the script"
   ],
   [
    57344,
    65529,
    "The strategic map"
   ],
   [
    65530,
    65535,
    "The loader and the script"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ],
  "elsewhere": [
   [
    0,
    3071,
    "The loader and the script"
   ],
   [
    3072,
    8191,
    "The strategic map"
   ],
   [
    40960,
    50431,
    "The strategic map"
   ],
   [
    50432,
    57343,
    "The loader and the script"
   ],
   [
    57344,
    65529,
    "The strategic map"
   ],
   [
    65530,
    65535,
    "The loader and the script"
   ]
  ]
 },
 "blocks": [
  {
   "start": 8192,
   "end": 8983,
   "type": "Undefined"
  },
  {
   "start": 8984,
   "end": 18431,
   "type": "Byte"
  },
  {
   "start": 18432,
   "end": 19455,
   "type": "Undefined"
  },
  {
   "start": 19456,
   "end": 32767,
   "type": "Byte"
  },
  {
   "start": 32768,
   "end": 32981,
   "type": "Code"
  },
  {
   "start": 32982,
   "end": 33082,
   "type": "Byte"
  },
  {
   "start": 33083,
   "end": 33458,
   "type": "Code"
  },
  {
   "start": 33459,
   "end": 33551,
   "type": "Byte"
  },
  {
   "start": 33552,
   "end": 34086,
   "type": "Code"
  },
  {
   "start": 34087,
   "end": 34262,
   "type": "Byte"
  },
  {
   "start": 34263,
   "end": 34305,
   "type": "Code"
  },
  {
   "start": 34306,
   "end": 34321,
   "type": "Byte"
  },
  {
   "start": 34322,
   "end": 34996,
   "type": "Code"
  },
  {
   "start": 34997,
   "end": 35058,
   "type": "Byte"
  },
  {
   "start": 35059,
   "end": 35593,
   "type": "Code"
  },
  {
   "start": 35594,
   "end": 35599,
   "type": "Byte"
  },
  {
   "start": 35600,
   "end": 35802,
   "type": "Code"
  },
  {
   "start": 35803,
   "end": 35860,
   "type": "Byte"
  },
  {
   "start": 35861,
   "end": 36031,
   "type": "Code"
  },
  {
   "start": 36032,
   "end": 36052,
   "type": "Byte"
  },
  {
   "start": 36053,
   "end": 36877,
   "type": "Code"
  },
  {
   "start": 36878,
   "end": 36897,
   "type": "Byte"
  },
  {
   "start": 36898,
   "end": 39684,
   "type": "Code"
  },
  {
   "start": 39685,
   "end": 39704,
   "type": "Byte"
  },
  {
   "start": 39705,
   "end": 39971,
   "type": "Code"
  },
  {
   "start": 39972,
   "end": 39972,
   "type": "Byte"
  },
  {
   "start": 39973,
   "end": 40356,
   "type": "Code"
  },
  {
   "start": 40357,
   "end": 40376,
   "type": "Byte"
  },
  {
   "start": 40377,
   "end": 40624,
   "type": "Code"
  },
  {
   "start": 40625,
   "end": 40959,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 8192,
   "name": "f_2000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8236,
   "name": "f_202C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8280,
   "name": "f_2058",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8324,
   "name": "f_2084",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8368,
   "name": "f_20B0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8412,
   "name": "f_20DC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8456,
   "name": "f_2108",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8500,
   "name": "f_2134",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8544,
   "name": "f_2160",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8588,
   "name": "f_218C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8632,
   "name": "f_21B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8676,
   "name": "f_21E4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8720,
   "name": "f_2210",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8764,
   "name": "f_223C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8808,
   "name": "f_2268",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8852,
   "name": "f_2294",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8896,
   "name": "f_22C0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8940,
   "name": "f_22EC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 8984,
   "name": "fort_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9049,
   "name": "fort_tiles_2359",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9180,
   "name": "fort_tiles_23dc",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9191,
   "name": "fort_tiles_23e7",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9295,
   "name": "fort_tiles_244f",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9343,
   "name": "fort_tiles_247f",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9378,
   "name": "fort_tiles_24a2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9548,
   "name": "fort_tiles_254c",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9681,
   "name": "fort_tiles_25d1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9848,
   "name": "fort_tiles_2678",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9966,
   "name": "fort_tiles_26ee",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9990,
   "name": "fort_tiles_2706",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10008,
   "name": "fort_map",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10112,
   "name": "fort_map_2780",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10451,
   "name": "fort_map_28d3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10982,
   "name": "fort_map_2ae6",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11014,
   "name": "fort_map_2b06",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11032,
   "name": "fort_map_2b18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11547,
   "name": "fort_map_2d1b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 12056,
   "name": "fort_map_2f18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13080,
   "name": "fort_map_3318",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13082,
   "name": "fort_map_331a",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13324,
   "name": "fort_map_340c",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13467,
   "name": "fort_map_349b",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13608,
   "name": "row_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13629,
   "name": "flist_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13631,
   "name": "fort_frame_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 13632,
   "name": "fort_leftover",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13763,
   "name": "fort_leftover_35c3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14197,
   "name": "fort_leftover_3775",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14385,
   "name": "fort_leftover_3831",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14429,
   "name": "fort_leftover_385d",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14656,
   "name": "fort_leftover_3940",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14771,
   "name": "fort_leftover_39b3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14862,
   "name": "fort_leftover_3a0e",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15117,
   "name": "fort_leftover_3b0d",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15255,
   "name": "fort_leftover_3b97",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15680,
   "name": "fort_leftover_3d40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16291,
   "name": "fort_leftover_3fa3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16311,
   "name": "fort_leftover_3fb7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "fort_chars",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "fort_chars_4400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18432,
   "name": "f_4800",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18433,
   "name": "f_4801",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18472,
   "name": "f_4828",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18473,
   "name": "f_4829",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18552,
   "name": "f_4878",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18592,
   "name": "f_48A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18632,
   "name": "f_48C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18672,
   "name": "f_48F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18688,
   "name": "f_4900",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18712,
   "name": "f_4918",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18752,
   "name": "f_4940",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18792,
   "name": "f_4968",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18832,
   "name": "f_4990",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18872,
   "name": "f_49B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18912,
   "name": "f_49E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18944,
   "name": "f_4A00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18952,
   "name": "f_4A08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18992,
   "name": "f_4A30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19032,
   "name": "f_4A58",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19072,
   "name": "f_4A80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19112,
   "name": "f_4AA8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19152,
   "name": "f_4AD0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19192,
   "name": "f_4AF8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19200,
   "name": "f_4B00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19232,
   "name": "f_4B20",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19448,
   "name": "a_4BF8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19449,
   "name": "a_4BF9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19456,
   "name": "fort_unused_gfx",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20320,
   "name": "fort_unused_gfx_4f60",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "fighter_union",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "fighter_union_5400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "fighter_union_5800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "fighter_union_5c00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24320,
   "name": "fighter_confed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25068,
   "name": "fighter_confed_61ec",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25344,
   "name": "fighter_confed_6300",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25592,
   "name": "fighter_confed_63f8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25593,
   "name": "fighter_confed_63f9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26368,
   "name": "fighter_confed_6700",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27392,
   "name": "fighter_confed_6b00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28160,
   "name": "barrel_images",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28864,
   "name": "flag_images",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29120,
   "name": "dog_images",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29952,
   "name": "bar_images",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30400,
   "name": "knife_images",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30656,
   "name": "blank_sprite",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "fort_after",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "fort_after_7c00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "fort_main",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32828,
   "name": "fort_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32848,
   "name": "b_8050",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32855,
   "name": "b_8057",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32862,
   "name": "b_805E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32879,
   "name": "b_806F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32944,
   "name": "fort_won",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32954,
   "name": "j_80BA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 32982,
   "name": "flag_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32983,
   "name": "flag_move_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32984,
   "name": "dog_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32985,
   "name": "clock_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32986,
   "name": "fighter_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32987,
   "name": "guard_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32988,
   "name": "knife_timer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32990,
   "name": "dog_move_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32991,
   "name": "barrel_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32992,
   "name": "guard_start_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32993,
   "name": "cpu_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32994,
   "name": "fort_end_timer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32995,
   "name": "flag_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32996,
   "name": "flag_shown",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32997,
   "name": "flag_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32998,
   "name": "flag_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32999,
   "name": "flag_stage",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33000,
   "name": "floor_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33010,
   "name": "landing_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33015,
   "name": "wall_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33020,
   "name": "uniform_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33022,
   "name": "scroll_speed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33023,
   "name": "flag_col",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33024,
   "name": "flag_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33025,
   "name": "boot_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33026,
   "name": "clock_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33027,
   "name": "boot_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33028,
   "name": "boot_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33029,
   "name": "clock_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33030,
   "name": "clock_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33031,
   "name": "time_over",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33032,
   "name": "tiles_drawn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33033,
   "name": "to_ladder",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33034,
   "name": "ladder_char",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33036,
   "name": "ladder_col",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33038,
   "name": "at_top",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33039,
   "name": "start_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33040,
   "name": "start_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33041,
   "name": "progress_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33042,
   "name": "progress_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33043,
   "name": "a_8113",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33044,
   "name": "fort_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33045,
   "name": "knives_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33046,
   "name": "guard_knives",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33047,
   "name": "knife_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33048,
   "name": "a_8118",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33049,
   "name": "knife_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33051,
   "name": "knife_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33053,
   "name": "knife_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33055,
   "name": "knife_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33057,
   "name": "attacker_on",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33058,
   "name": "guard_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33059,
   "name": "dog_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33060,
   "name": "dog_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33061,
   "name": "dog_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33062,
   "name": "dog_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33063,
   "name": "dog_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33064,
   "name": "dog_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33065,
   "name": "scroll_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33066,
   "name": "barrel_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33067,
   "name": "barrel_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33068,
   "name": "barrel_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33069,
   "name": "barrel_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33070,
   "name": "barrel_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33071,
   "name": "barrel_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33072,
   "name": "scroll_moved",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33073,
   "name": "guard_checks_off",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33074,
   "name": "attacker_bounced",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33075,
   "name": "guard_bounced",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33076,
   "name": "jump_floor",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33077,
   "name": "guards_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33078,
   "name": "dog_chance",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33081,
   "name": "end_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33082,
   "name": "fort_paused",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33083,
   "name": "fort_machine",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33172,
   "name": "b_8194",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33211,
   "name": "fort_rti",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33212,
   "name": "fort_keys_one",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33273,
   "name": "b_81F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33281,
   "name": "b_8201",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33289,
   "name": "b_8209",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33297,
   "name": "b_8211",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33302,
   "name": "b_8216",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33304,
   "name": "r_8218",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 33305,
   "name": "attacker_stick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33310,
   "name": "b_821E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33334,
   "name": "defender_stick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33339,
   "name": "b_823B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33371,
   "name": "fort_stick_decode",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33379,
   "name": "b_8263",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33383,
   "name": "b_8267",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33387,
   "name": "b_826B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33391,
   "name": "b_826F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33403,
   "name": "fort_key_scan",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33415,
   "name": "b_8287",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33442,
   "name": "b_82A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33450,
   "name": "b_82AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33456,
   "name": "b_82B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33459,
   "name": "fstick_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33460,
   "name": "fstick_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33461,
   "name": "fstick_fire",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33463,
   "name": "fkey_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33471,
   "name": "fkey_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33479,
   "name": "fkey_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33487,
   "name": "fkey_codes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33551,
   "name": "fort_key",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33552,
   "name": "fort_irq_bottom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33591,
   "name": "b_8337",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33597,
   "name": "fort_irq_bar",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33704,
   "name": "fort_irq_top",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33779,
   "name": "b_83F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33790,
   "name": "b_83FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33792,
   "name": "b_8400",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33813,
   "name": "b_8415",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33844,
   "name": "a_8434",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33868,
   "name": "fort_irq_field",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33909,
   "name": "b_8475",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33919,
   "name": "j_847F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33925,
   "name": "fort_mux",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33940,
   "name": "a_8494",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33941,
   "name": "b_8495",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33966,
   "name": "b_84AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33997,
   "name": "a_84CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34028,
   "name": "b_84EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34034,
   "name": "j_84F2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34035,
   "name": "a_84F3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34037,
   "name": "a_84F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34039,
   "name": "a_84F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34041,
   "name": "b_84F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34064,
   "name": "fort_mux_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34087,
   "name": "fmux_and",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34095,
   "name": "fmux_or",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34103,
   "name": "flive_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34119,
   "name": "flive_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34135,
   "name": "flive_xhi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34151,
   "name": "flive_ptr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34167,
   "name": "flive_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34183,
   "name": "flist_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34184,
   "name": "f_8588",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34199,
   "name": "flist_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34200,
   "name": "f_8598",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34215,
   "name": "flist_xhi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34216,
   "name": "f_85A8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34231,
   "name": "flist_ptr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34232,
   "name": "f_85B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34247,
   "name": "flist_col",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34248,
   "name": "f_85C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34263,
   "name": "fort_sort",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34265,
   "name": "b_85D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34300,
   "name": "b_85FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34305,
   "name": "f_8601",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34306,
   "name": "fsort_order",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34322,
   "name": "fort_sprite_copy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34329,
   "name": "b_8619",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34362,
   "name": "r_863A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34363,
   "name": "fort_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34366,
   "name": "b_863E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34394,
   "name": "scroll_right_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34409,
   "name": "r_8669",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34410,
   "name": "b_866A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34453,
   "name": "b_8695",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34457,
   "name": "b_8699",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34573,
   "name": "draw_tile_column",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34606,
   "name": "b_872E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34609,
   "name": "a_8731",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34610,
   "name": "a_8732",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34631,
   "name": "b_8747",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34635,
   "name": "a_874B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34636,
   "name": "a_874C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34638,
   "name": "a_874E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34639,
   "name": "a_874F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34657,
   "name": "b_8761",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34679,
   "name": "scroll_left_step",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34696,
   "name": "r_8788",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34697,
   "name": "b_8789",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34746,
   "name": "b_87BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34863,
   "name": "show_buffer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34871,
   "name": "b_8837",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34984,
   "name": "draw_all_columns",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34986,
   "name": "b_88AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34997,
   "name": "fine_scroll",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34998,
   "name": "view_col",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34999,
   "name": "tile_cells",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35003,
   "name": "row_offsets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35004,
   "name": "f_88BC",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 35059,
   "name": "fort_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35071,
   "name": "b_88FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35076,
   "name": "b_8904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35077,
   "name": "a_8905",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35078,
   "name": "a_8906",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35110,
   "name": "fort_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35120,
   "name": "b_8930",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35123,
   "name": "r_8933",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35124,
   "name": "fort_timers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35126,
   "name": "b_8936",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35137,
   "name": "b_8941",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35141,
   "name": "fort_clock",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35202,
   "name": "r_8982",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35203,
   "name": "b_8983",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35225,
   "name": "b_8999",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35229,
   "name": "boot_run",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35251,
   "name": "b_89B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35254,
   "name": "r_89B6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35255,
   "name": "fort_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35316,
   "name": "b_89F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35341,
   "name": "b_8A0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35366,
   "name": "fort_progress",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35395,
   "name": "j_8A43",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 35419,
   "name": "b_8A5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35426,
   "name": "b_8A62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35455,
   "name": "r_8A7F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35456,
   "name": "b_8A80",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35467,
   "name": "fort_irq_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35485,
   "name": "b_8A9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35529,
   "name": "sprite_list_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35536,
   "name": "b_8AD0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35550,
   "name": "fort_random",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35594,
   "name": "frnd_sum",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35595,
   "name": "frnd_seed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35596,
   "name": "a_8B0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35597,
   "name": "a_8B0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35598,
   "name": "a_8B0E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35599,
   "name": "a_8B0F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35600,
   "name": "fort_flag_wave",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35634,
   "name": "r_8B32",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35635,
   "name": "b_8B33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35641,
   "name": "flag_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35704,
   "name": "r_8B78",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35705,
   "name": "b_8B79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35707,
   "name": "b_8B7B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35739,
   "name": "r_8B9B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35740,
   "name": "flag_change",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35759,
   "name": "r_8BAF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35760,
   "name": "b_8BB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35786,
   "name": "b_8BCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35803,
   "name": "fighter_frame",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35804,
   "name": "a_8BDC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35805,
   "name": "fighter_state",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35806,
   "name": "a_8BDE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35807,
   "name": "fighter_top",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35808,
   "name": "a_8BE0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35809,
   "name": "fighter_bottom",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35810,
   "name": "a_8BE2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35811,
   "name": "fighter_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35812,
   "name": "a_8BE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35813,
   "name": "fighter_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35814,
   "name": "a_8BE6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35815,
   "name": "fighter_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35816,
   "name": "a_8BE8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35817,
   "name": "fighter_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35818,
   "name": "a_8BEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35819,
   "name": "fighter_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35820,
   "name": "a_8BEC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35821,
   "name": "fighter_dx2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35822,
   "name": "a_8BEE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35823,
   "name": "fighter_dy2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35824,
   "name": "a_8BF0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35825,
   "name": "fighter_moving",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35826,
   "name": "a_8BF2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35827,
   "name": "fighter_facing",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35828,
   "name": "a_8BF4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35829,
   "name": "fighter_floor",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35830,
   "name": "a_8BF6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35831,
   "name": "climb_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35833,
   "name": "jump_arc",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35858,
   "name": "arc_step",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35859,
   "name": "a_8C13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35860,
   "name": "on_ground",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35861,
   "name": "fighters_to_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35999,
   "name": "r_8C9F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36000,
   "name": "fighter_pictures",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36007,
   "name": "b_8CA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36026,
   "name": "a_8CBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36027,
   "name": "a_8CBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36028,
   "name": "b_8CBC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36032,
   "name": "pose_fighter",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36033,
   "name": "pose_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36043,
   "name": "pose_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36053,
   "name": "pose_stand",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36063,
   "name": "b_8CDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36089,
   "name": "pose_uniform",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36100,
   "name": "b_8D04",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36105,
   "name": "b_8D09",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36108,
   "name": "r_8D0C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36109,
   "name": "pose_walk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36133,
   "name": "b_8D25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36136,
   "name": "b_8D28",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36147,
   "name": "b_8D33",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36173,
   "name": "pose_jump",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36208,
   "name": "b_8D70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36222,
   "name": "b_8D7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36232,
   "name": "b_8D88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36271,
   "name": "r_8DAF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36272,
   "name": "b_8DB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36288,
   "name": "b_8DC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36351,
   "name": "b_8DFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36371,
   "name": "pose_strike",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36404,
   "name": "b_8E34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36407,
   "name": "b_8E37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36419,
   "name": "b_8E43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36445,
   "name": "pose_climb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36472,
   "name": "b_8E78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36481,
   "name": "j_8E81",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36494,
   "name": "b_8E8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36524,
   "name": "pose_drop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36564,
   "name": "b_8ED4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36583,
   "name": "j_8EE7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36602,
   "name": "r_8EFA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36603,
   "name": "pose_beaten",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36636,
   "name": "b_8F1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36648,
   "name": "j_8F28",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36680,
   "name": "b_8F48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36683,
   "name": "r_8F4B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36684,
   "name": "pose_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36714,
   "name": "b_8F6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36723,
   "name": "j_8F73",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36734,
   "name": "pose_knocked",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36774,
   "name": "b_8FA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36793,
   "name": "j_8FB9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36830,
   "name": "b_8FDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36848,
   "name": "r_8FF0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36849,
   "name": "attacker_orders",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36860,
   "name": "b_8FFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36876,
   "name": "a_900C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36877,
   "name": "a_900D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36878,
   "name": "attacker_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36888,
   "name": "attacker_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 36898,
   "name": "attacker_stand",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36931,
   "name": "b_9043",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36948,
   "name": "j_9054",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36962,
   "name": "b_9062",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36978,
   "name": "r_9072",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36979,
   "name": "attacker_up_down",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 37008,
   "name": "b_9090",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37014,
   "name": "b_9096",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37019,
   "name": "r_909B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37020,
   "name": "j_909C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37046,
   "name": "attacker_duck",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37077,
   "name": "attacker_walk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37102,
   "name": "b_90EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37118,
   "name": "b_90FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37127,
   "name": "j_9107",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37130,
   "name": "attacker_climb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37158,
   "name": "r_9126",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37159,
   "name": "b_9127",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37167,
   "name": "b_912F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37187,
   "name": "b_9143",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37195,
   "name": "b_914B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37201,
   "name": "attacker_drop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37240,
   "name": "attacker_jump",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37258,
   "name": "b_918A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37261,
   "name": "j_918D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37298,
   "name": "r_91B2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37299,
   "name": "attacker_get_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37317,
   "name": "r_91C5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37318,
   "name": "fort_nothing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37319,
   "name": "fort_end_count",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37354,
   "name": "r_91EA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37355,
   "name": "b_91EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37368,
   "name": "attacker_strike",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37440,
   "name": "r_9240",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37441,
   "name": "wall_right",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37443,
   "name": "b_9243",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37450,
   "name": "j_924A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37458,
   "name": "a_9252",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37465,
   "name": "b_9259",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37488,
   "name": "b_9270",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37498,
   "name": "wall_left",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37500,
   "name": "b_927C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37507,
   "name": "j_9283",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37515,
   "name": "a_928B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37522,
   "name": "b_9292",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37540,
   "name": "b_92A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37550,
   "name": "guard_wall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37552,
   "name": "b_92B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37559,
   "name": "j_92B7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37567,
   "name": "a_92BF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37574,
   "name": "b_92C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37605,
   "name": "b_92E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37615,
   "name": "dog_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37671,
   "name": "r_9327",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37672,
   "name": "b_9328",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37689,
   "name": "attacker_floor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37707,
   "name": "a_934B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37727,
   "name": "guard_floor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37745,
   "name": "a_9371",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37789,
   "name": "b_939D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37793,
   "name": "b_93A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37795,
   "name": "b_93A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37818,
   "name": "ladder_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37820,
   "name": "b_93BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37832,
   "name": "b_93C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37859,
   "name": "b_93E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37870,
   "name": "b_93EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37881,
   "name": "j_93F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 37899,
   "name": "climb_up",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37925,
   "name": "r_9425",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37926,
   "name": "climb_down",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37944,
   "name": "r_9438",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37945,
   "name": "ladder_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37947,
   "name": "b_943B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37959,
   "name": "b_9447",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37986,
   "name": "b_9462",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37997,
   "name": "b_946D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38008,
   "name": "j_9478",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38026,
   "name": "attacker_ground",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38040,
   "name": "j_9498",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38046,
   "name": "a_949E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38053,
   "name": "b_94A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38066,
   "name": "r_94B2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38067,
   "name": "b_94B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38073,
   "name": "attacker_lands",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38087,
   "name": "j_94C7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38093,
   "name": "a_94CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38100,
   "name": "b_94D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38102,
   "name": "r_94D6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38103,
   "name": "guard_ground",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38122,
   "name": "j_94EA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38128,
   "name": "a_94F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38135,
   "name": "b_94F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38148,
   "name": "r_9504",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38149,
   "name": "guard_ledge",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38168,
   "name": "j_9518",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38174,
   "name": "a_951E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38181,
   "name": "b_9525",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38199,
   "name": "r_9537",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38200,
   "name": "attacker_ledge",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38209,
   "name": "j_9541",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38215,
   "name": "a_9547",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38222,
   "name": "b_954E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38240,
   "name": "r_9560",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38241,
   "name": "guard_lands",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38255,
   "name": "j_956F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38261,
   "name": "a_9575",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38268,
   "name": "b_957C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38270,
   "name": "r_957E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38271,
   "name": "fighter_strike",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38305,
   "name": "a_95A1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38329,
   "name": "b_95B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38352,
   "name": "b_95D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38354,
   "name": "r_95D2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38355,
   "name": "fighter_throw",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38426,
   "name": "r_961A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38427,
   "name": "knives_draw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38432,
   "name": "b_9620",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38451,
   "name": "b_9633",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38459,
   "name": "j_963B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38466,
   "name": "guards_draw",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38470,
   "name": "b_9646",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38486,
   "name": "j_9656",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38522,
   "name": "r_967A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38523,
   "name": "knives_to_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38525,
   "name": "b_967D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38548,
   "name": "b_9694",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38550,
   "name": "j_9696",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38574,
   "name": "b_96AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38578,
   "name": "barrel_hits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38590,
   "name": "b_96BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38621,
   "name": "a_96DD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38629,
   "name": "b_96E5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38640,
   "name": "j_96F0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38679,
   "name": "r_9717",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38680,
   "name": "b_9718",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38684,
   "name": "b_971C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38713,
   "name": "b_9739",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38717,
   "name": "dog_bites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38724,
   "name": "b_9744",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38762,
   "name": "a_976A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38770,
   "name": "b_9772",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38781,
   "name": "j_977D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38810,
   "name": "r_979A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38811,
   "name": "b_979B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38815,
   "name": "barrel_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38858,
   "name": "r_97CA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38859,
   "name": "dog_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38908,
   "name": "b_97FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38933,
   "name": "j_9815",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38961,
   "name": "r_9831",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38962,
   "name": "dog_run",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39002,
   "name": "b_985A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39019,
   "name": "j_986B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39031,
   "name": "b_9877",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39046,
   "name": "r_9886",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39047,
   "name": "dog_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39077,
   "name": "r_98A5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39078,
   "name": "b_98A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39097,
   "name": "barrel_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39127,
   "name": "r_98D7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39128,
   "name": "b_98D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39147,
   "name": "guard_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39152,
   "name": "j_98F0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39165,
   "name": "b_98FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39185,
   "name": "j_9911",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39191,
   "name": "r_9917",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39192,
   "name": "b_9918",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39213,
   "name": "dog_gone",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39225,
   "name": "j_9939",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39230,
   "name": "r_993E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39231,
   "name": "b_993F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39241,
   "name": "barrel_gone",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39258,
   "name": "r_995A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39259,
   "name": "b_995B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39272,
   "name": "barrel_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39319,
   "name": "b_9997",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39341,
   "name": "b_99AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39363,
   "name": "r_99C3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39364,
   "name": "guard_gone",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39378,
   "name": "b_99D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39383,
   "name": "r_99D7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39384,
   "name": "b_99D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39397,
   "name": "knives_fly",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39399,
   "name": "b_99E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39443,
   "name": "b_9A13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39447,
   "name": "b_9A17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39481,
   "name": "at_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39504,
   "name": "r_9A50",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39505,
   "name": "time_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39522,
   "name": "r_9A62",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39523,
   "name": "knife_hits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39527,
   "name": "j_9A67",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39550,
   "name": "b_9A7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39592,
   "name": "a_9AA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39600,
   "name": "b_9AB0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39612,
   "name": "j_9ABC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39624,
   "name": "b_9AC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39653,
   "name": "b_9AE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39660,
   "name": "r_9AEC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39661,
   "name": "defender_orders",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39682,
   "name": "a_9B02",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39683,
   "name": "a_9B03",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39684,
   "name": "r_9B04",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39685,
   "name": "guard_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39695,
   "name": "guard_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 39705,
   "name": "guard_walk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39718,
   "name": "guard_stand",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39764,
   "name": "b_9B54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39801,
   "name": "b_9B79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39812,
   "name": "r_9B84",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39813,
   "name": "b_9B85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39823,
   "name": "b_9B8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39849,
   "name": "r_9BA9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39850,
   "name": "guard_fight",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39914,
   "name": "a_9BEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39924,
   "name": "b_9BF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39934,
   "name": "b_9BFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39938,
   "name": "b_9C02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39971,
   "name": "r_9C23",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39972,
   "name": "guard_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 39973,
   "name": "guard_drop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40007,
   "name": "guard_get_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40025,
   "name": "r_9C59",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40026,
   "name": "b_9C5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40035,
   "name": "guard_nothing",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40036,
   "name": "guard_jump",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40080,
   "name": "r_9C90",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40081,
   "name": "guard_strike",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40145,
   "name": "r_9CD1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40146,
   "name": "guard_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40176,
   "name": "b_9CF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40193,
   "name": "r_9D01",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40194,
   "name": "guard_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40240,
   "name": "b_9D30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40248,
   "name": "b_9D38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40253,
   "name": "j_9D3D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40313,
   "name": "r_9D79",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40314,
   "name": "b_9D7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40339,
   "name": "computer_attacker",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40355,
   "name": "a_9DA3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40356,
   "name": "a_9DA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40357,
   "name": "cpu_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40367,
   "name": "cpu_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40377,
   "name": "cpu_climb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40413,
   "name": "r_9DDD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40414,
   "name": "b_9DDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40422,
   "name": "b_9DE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40438,
   "name": "cpu_stand",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40465,
   "name": "b_9E11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40479,
   "name": "b_9E1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40482,
   "name": "cpu_walk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40494,
   "name": "b_9E2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40505,
   "name": "b_9E39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40510,
   "name": "j_9E3E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40581,
   "name": "r_9E85",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40582,
   "name": "guards_colour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40593,
   "name": "b_9E91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40605,
   "name": "fort_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40618,
   "name": "a_9EAA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40620,
   "name": "a_9EAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40625,
   "name": "fsound_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40626,
   "name": "old_battle_code",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 8984,
   "type": "line",
   "text": "the fort's 256 tiles, four bytes each: the characters of the top left, top right, bottom left and bottom right of a tile of 2 x 2; the map uses tiles 0 to 127."
  },
  {
   "address": 9049,
   "type": "line",
   "text": "fort_tiles, continued: bytes $2359-$23DB of the block at $2318."
  },
  {
   "address": 9180,
   "type": "line",
   "text": "fort_tiles, continued: bytes $23DC-$23E6 of the block at $2318."
  },
  {
   "address": 9191,
   "type": "line",
   "text": "fort_tiles, continued: bytes $23E7-$244E of the block at $2318."
  },
  {
   "address": 9295,
   "type": "line",
   "text": "fort_tiles, continued: bytes $244F-$247E of the block at $2318."
  },
  {
   "address": 9343,
   "type": "line",
   "text": "fort_tiles, continued: bytes $247F-$24A1 of the block at $2318."
  },
  {
   "address": 9378,
   "type": "line",
   "text": "fort_tiles, continued: bytes $24A2-$254B of the block at $2318."
  },
  {
   "address": 9548,
   "type": "line",
   "text": "fort_tiles, continued: bytes $254C-$25D0 of the block at $2318."
  },
  {
   "address": 9681,
   "type": "line",
   "text": "fort_tiles, continued: bytes $25D1-$2677 of the block at $2318."
  },
  {
   "address": 9848,
   "type": "line",
   "text": "fort_tiles, continued: bytes $2678-$26ED of the block at $2318."
  },
  {
   "address": 9966,
   "type": "line",
   "text": "fort_tiles, continued: bytes $26EE-$2705 of the block at $2318."
  },
  {
   "address": 9990,
   "type": "line",
   "text": "fort_tiles, continued: bytes $2706-$2717 of the block at $2318."
  },
  {
   "address": 10008,
   "type": "line",
   "text": "the fort's map: nine rows of 400 tiles (a row every 400 bytes), one tile column drawn at the edge each time the view moves two characters ($870D); the courtyard from left to right, with its houses, ladders up to the walkway, wagons and barrels, and the flag at column 395."
  },
  {
   "address": 10112,
   "type": "line",
   "text": "fort_map, continued: bytes $2780-$28D2 of the block at $2718."
  },
  {
   "address": 10451,
   "type": "line",
   "text": "fort_map, continued: bytes $28D3-$2AE5 of the block at $2718."
  },
  {
   "address": 10982,
   "type": "line",
   "text": "fort_map, continued: bytes $2AE6-$2B05 of the block at $2718."
  },
  {
   "address": 11014,
   "type": "line",
   "text": "fort_map, continued: bytes $2B06-$2B17 of the block at $2718."
  },
  {
   "address": 11032,
   "type": "line",
   "text": "fort_map, continued: bytes $2B18-$2D1A of the block at $2718."
  },
  {
   "address": 11547,
   "type": "line",
   "text": "fort_map, continued: from row 3, column 339, whose tile $89B7 sets to $17 each time the fort starts."
  },
  {
   "address": 12056,
   "type": "line",
   "text": "fort_map, continued: bytes $2F18-$3317 of the block at $2718."
  },
  {
   "address": 13080,
   "type": "line",
   "text": "fort_map, continued: bytes $3318-$3319 of the block at $2718."
  },
  {
   "address": 13082,
   "type": "line",
   "text": "fort_map, continued: bytes $331A-$340B of the block at $2718."
  },
  {
   "address": 13324,
   "type": "line",
   "text": "fort_map, continued: bytes $340C-$349A of the block at $2718."
  },
  {
   "address": 13467,
   "type": "line",
   "text": "fort_map, continued: bytes $349B-$3527 of the block at $2718."
  },
  {
   "address": 13608,
   "type": "line",
   "text": "the colour RAM of each screen row 0 to 20, all multicolour: white for the top two (the knives and heads), black for row 2, cyan for the sky (rows 3 to 9), yellow for the fort (rows 10 to 20)."
  },
  {
   "address": 13629,
   "type": "line",
   "text": "the slots of the sprite list filled this frame."
  },
  {
   "address": 13631,
   "type": "line",
   "text": "1 while the interrupt does the frame's work, so it is not started twice and the list is not copied half made."
  },
  {
   "address": 13632,
   "type": "line",
   "text": "2,752 bytes nothing in the fort reads: the same bytes as the battle file's at these addresses, its packed canyon screen and colours and the power-on pattern after them, left in memory when the file was saved."
  },
  {
   "address": 13763,
   "type": "line",
   "text": "fort_leftover, continued: bytes $35C3-$3774 of the block at $3540."
  },
  {
   "address": 14197,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3775-$3830 of the block at $3540."
  },
  {
   "address": 14385,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3831-$385C of the block at $3540."
  },
  {
   "address": 14429,
   "type": "line",
   "text": "fort_leftover, continued: bytes $385D-$393F of the block at $3540."
  },
  {
   "address": 14656,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3940-$39B2 of the block at $3540."
  },
  {
   "address": 14771,
   "type": "line",
   "text": "fort_leftover, continued: bytes $39B3-$3A0D of the block at $3540."
  },
  {
   "address": 14862,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3A0E-$3B0C of the block at $3540."
  },
  {
   "address": 15117,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3B0D-$3B96 of the block at $3540."
  },
  {
   "address": 15255,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3B97-$3D3F of the block at $3540."
  },
  {
   "address": 15680,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3D40-$3FA2 of the block at $3540."
  },
  {
   "address": 16291,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3FA3-$3FB6 of the block at $3540."
  },
  {
   "address": 16311,
   "type": "line",
   "text": "fort_leftover, continued: bytes $3FB7-$3FFF of the block at $3540."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "the fort's 256 characters, multicolour: the walls, roofs, windows, doors, ladders and ground of the tiles, the knife ($FE, $FF) and the guards' heads ($F6-$FD)."
  },
  {
   "address": 17408,
   "type": "line",
   "text": "fort_chars, continued: bytes $4400-$47FF of the block at $4000."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "1,024 bytes of graphics between the screen and the sprites that nothing in the fort reads."
  },
  {
   "address": 20320,
   "type": "line",
   "text": "fort_unused_gfx, continued: bytes $4F60-$4FFF of the block at $4C00."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "the Union's fighter, sprite pointers $40-$7B: each pose two sprites, one above the other or side by side: walking ($40-$57), standing ($58-$5B), the stroke ($5C-$63), crouching ($64-$67), down ($68-$6B), climbing ($6C-$6F), knocked over ($70-$73), beaten ($74-$7B)."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "fighter_union, continued: bytes $5400-$57FF of the block at $5000."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "fighter_union, continued: bytes $5800-$5BFF of the block at $5000."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "fighter_union, continued: bytes $5C00-$5EFF of the block at $5000."
  },
  {
   "address": 24320,
   "type": "line",
   "text": "the Confederacy's fighter, pointers $7C-$B7, the same poses 60 pointers on."
  },
  {
   "address": 25068,
   "type": "line",
   "text": "fighter_confed, continued: bytes $61EC-$62FF of the block at $5F00."
  },
  {
   "address": 25344,
   "type": "line",
   "text": "fighter_confed, continued: bytes $6300-$63F7 of the block at $5F00."
  },
  {
   "address": 25592,
   "type": "line",
   "text": "fighter_confed, continued: bytes $63F8-$63F8 of the block at $5F00."
  },
  {
   "address": 25593,
   "type": "line",
   "text": "fighter_confed, continued: bytes $63F9-$66FF of the block at $5F00."
  },
  {
   "address": 26368,
   "type": "line",
   "text": "fighter_confed, continued: bytes $6700-$6AFF of the block at $5F00."
  },
  {
   "address": 27392,
   "type": "line",
   "text": "fighter_confed, continued: bytes $6B00-$6DFF of the block at $5F00."
  },
  {
   "address": 28160,
   "type": "line",
   "text": "the barrel ($B8) and its explosion ($B9-$C1), and a last frame of dust nothing shows ($C2)."
  },
  {
   "address": 28864,
   "type": "line",
   "text": "the flag's two frames ($C3, $C4) and two pictures nothing uses ($C5, $C6, a soldier with a rifle)."
  },
  {
   "address": 29120,
   "type": "line",
   "text": "a picture nothing uses ($C7) and the dog's twelve ($C8-$D3): three frames of its front and back half, facing right and facing left."
  },
  {
   "address": 29952,
   "type": "line",
   "text": "the clock's three frames ($D4-$D6) and the boot's four ($D7-$DA), for the bar at the bottom."
  },
  {
   "address": 30400,
   "type": "line",
   "text": "the knife flying right ($DB) and left ($DC), and two longer ones nothing uses ($DD, $DE)."
  },
  {
   "address": 30656,
   "type": "line",
   "text": "an empty sprite image (pointer $DF), for the slots not in use."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "2,048 bytes after the images that nothing reads, the power-on pattern as in the battle file."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "fort_after, continued: bytes $7C00-$7FFF of the block at $7800."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "the fort, called from the map's $0C8F with the attacker in $0396: sets the machine up ($813B) and the map's sound player ($F128), clears the screen ($863B), sets the length of the fort and the number of guards by the defender's level ($89B7), colours the rows ($88F3), draws the first 22 columns of tiles ($88A8) and shows them ($882F), colours the guards' row ($9E86), draws the attacker's knives ($961B) and the guards' heads ($9642), seeds the random numbers from $A2 and the raster line, clears the sprite list ($8AC9, $8612, $85D7) and starts the raster interrupts ($8A8B)."
  },
  {
   "address": 32828,
   "type": "line",
   "text": "the fort's main loop: the keys ($827B, kept in $830F), H to pause; then the two fighters' floors ($9339, $935F), the attacker's orders ($8FF1) and the defender's ($9AED), the fighters' pictures ($8CA0), the knives ($99E5, $9A63), a guard coming on ($9D02) or leaving ($99C4), the barrel ($9968, $96B2, $9949), the flag ($8B10), the dog ($9832, $973D, $92EF, $992D), the clock ($8945) and the progress ($8A26); until the attacker reaches the end of the fort ($8114)."
  },
  {
   "address": 32838,
   "type": "line",
   "text": "H pauses: the pause flag on ($813A), which stops the interrupts' work and the scroll, sound 17, then the keys waited for: H let go, any key pressed, let go; the key cleared ($830F = $FF)."
  },
  {
   "address": 32944,
   "type": "line",
   "text": "the attacker has reached the end: sound 0, the end countdown at 8, then for good: the result ($0397 = 1, the attacker won), the attacker standing, the flag ($8B10, $8B9C), the boot running ($899D), until the countdown ends ($91C7)."
  },
  {
   "address": 32982,
   "type": "line",
   "text": "frames to the flag's next frame (the first of the 13 timers $8934 counts down)."
  },
  {
   "address": 32983,
   "type": "line",
   "text": "frames to the flag's next step down or up."
  },
  {
   "address": 32984,
   "type": "line",
   "text": "frames to the next chance of a dog."
  },
  {
   "address": 32985,
   "type": "line",
   "text": "frames to the clock's next pixel, or its next ringing frame; also the boot's."
  },
  {
   "address": 32986,
   "type": "line",
   "text": "the attacker's frames to its pose's next step."
  },
  {
   "address": 32987,
   "type": "line",
   "text": "the guard's."
  },
  {
   "address": 32988,
   "type": "line",
   "text": "frames to each side's knife's next step; the guard's is $80DD."
  },
  {
   "address": 32990,
   "type": "line",
   "text": "frames to the dog's next step."
  },
  {
   "address": 32991,
   "type": "line",
   "text": "frames to the explosion's next picture."
  },
  {
   "address": 32992,
   "type": "line",
   "text": "frames to the computer's next chance of sending a guard."
  },
  {
   "address": 32993,
   "type": "line",
   "text": "the computer attacker's frames before its next blow."
  },
  {
   "address": 32994,
   "type": "line",
   "text": "frames to the end countdown's next step."
  },
  {
   "address": 32995,
   "type": "line",
   "text": "the flag's picture, 0 or 1."
  },
  {
   "address": 32996,
   "type": "line",
   "text": "1 while the flag is near enough to show."
  },
  {
   "address": 32997,
   "type": "line",
   "text": "the flag's height."
  },
  {
   "address": 32998,
   "type": "line",
   "text": "the flag's colour: the defender's, then the attacker's."
  },
  {
   "address": 32999,
   "type": "line",
   "text": "the flag after the win: 0 coming down, 1 going up, 2 done."
  },
  {
   "address": 33000,
   "type": "line",
   "text": "the characters a fighter can stand on ($2D $09 $06 $43 $44 $39 $5D $12 $13), ending in $FF."
  },
  {
   "address": 33010,
   "type": "line",
   "text": "the characters a jump lands on ($2D $09 $12 $13), ending in $FF."
  },
  {
   "address": 33015,
   "type": "line",
   "text": "the characters of a wall ($33 $32 $82 $2F), ending in $FF."
  },
  {
   "address": 33020,
   "type": "line",
   "text": "each side's uniform: light blue for the Union, grey for the Confederacy."
  },
  {
   "address": 33022,
   "type": "line",
   "text": "the scroll's step in pixels, 3; 0 once the end is reached."
  },
  {
   "address": 33023,
   "type": "line",
   "text": "the flag's offset across the view, being worked out."
  },
  {
   "address": 33024,
   "type": "line",
   "text": "the high bit of the flag's x."
  },
  {
   "address": 33025,
   "type": "line",
   "text": "the boot's picture, 0 to 3 (pointer $D7 + frame)."
  },
  {
   "address": 33026,
   "type": "line",
   "text": "the clock's picture, 0 to 2 (pointer $D4 + frame)."
  },
  {
   "address": 33027,
   "type": "line",
   "text": "the boot's x, low byte: the attacker's progress along the bar."
  },
  {
   "address": 33028,
   "type": "line",
   "text": "the boot's x, high bit."
  },
  {
   "address": 33029,
   "type": "line",
   "text": "the clock's x, low byte, from $24: the time used."
  },
  {
   "address": 33030,
   "type": "line",
   "text": "the clock's x, high bit."
  },
  {
   "address": 33031,
   "type": "line",
   "text": "1 once the time is up."
  },
  {
   "address": 33032,
   "type": "line",
   "text": "set when a column of tiles is drawn, for the progress bar."
  },
  {
   "address": 33033,
   "type": "line",
   "text": "$FF or 1 while the attacker sidles to a ladder, 0 when there."
  },
  {
   "address": 33034,
   "type": "line",
   "text": "the ladder character it sidles to."
  },
  {
   "address": 33035,
   "type": "line",
   "text": "a byte between $810A and $810C that nothing uses."
  },
  {
   "address": 33036,
   "type": "line",
   "text": "the ladder's offset in the rows ($10)."
  },
  {
   "address": 33037,
   "type": "line",
   "text": "a byte nothing uses."
  },
  {
   "address": 33038,
   "type": "line",
   "text": "1 when the attacker has just climbed onto the walkway, so up does not start a jump at once."
  },
  {
   "address": 33039,
   "type": "line",
   "text": "the map pointer the fort started at, low byte: the attacker cannot go back past it."
  },
  {
   "address": 33040,
   "type": "line",
   "text": "the start's map pointer, high byte."
  },
  {
   "address": 33041,
   "type": "line",
   "text": "the tiles of fort for each step of the boot along the bar: 6, 9 or 12 by level."
  },
  {
   "address": 33042,
   "type": "line",
   "text": "the tiles left, divided down to the boot's place."
  },
  {
   "address": 33043,
   "type": "line",
   "text": "progress_left, continued: its high byte."
  },
  {
   "address": 33044,
   "type": "line",
   "text": "1 once the attacker reaches the end."
  },
  {
   "address": 33045,
   "type": "line",
   "text": "the attacker's knives left, 4 to start."
  },
  {
   "address": 33046,
   "type": "line",
   "text": "the guards' knives, 10, which only a person's guard uses up."
  },
  {
   "address": 33047,
   "type": "line",
   "text": "1 while the attacker's knife flies."
  },
  {
   "address": 33048,
   "type": "line",
   "text": "knife_on, continued: the guard's."
  },
  {
   "address": 33049,
   "type": "line",
   "text": "the attacker's knife's x, low byte; the guard's at $811A."
  },
  {
   "address": 33051,
   "type": "line",
   "text": "the knives' x, high bytes."
  },
  {
   "address": 33053,
   "type": "line",
   "text": "the knives' y."
  },
  {
   "address": 33055,
   "type": "line",
   "text": "the knives' directions."
  },
  {
   "address": 33057,
   "type": "line",
   "text": "1, the attacker always on the field (read with Y for the guard's $8122)."
  },
  {
   "address": 33058,
   "type": "line",
   "text": "1 while a guard is on."
  },
  {
   "address": 33059,
   "type": "line",
   "text": "1 while the dog runs."
  },
  {
   "address": 33060,
   "type": "line",
   "text": "the dog's x, low byte."
  },
  {
   "address": 33061,
   "type": "line",
   "text": "the dog's x, high byte."
  },
  {
   "address": 33062,
   "type": "line",
   "text": "the dog's frame, 0 to 2."
  },
  {
   "address": 33063,
   "type": "line",
   "text": "the dog's y, on the ground."
  },
  {
   "address": 33064,
   "type": "line",
   "text": "the dog's way: 1 right, $FF left."
  },
  {
   "address": 33065,
   "type": "line",
   "text": "the scroll steps this frame, for moving the guard with them."
  },
  {
   "address": 33066,
   "type": "line",
   "text": "1 while the barrel rolls."
  },
  {
   "address": 33067,
   "type": "line",
   "text": "the barrel's x, low byte."
  },
  {
   "address": 33068,
   "type": "line",
   "text": "the barrel's x, high byte."
  },
  {
   "address": 33069,
   "type": "line",
   "text": "its y, on the ground."
  },
  {
   "address": 33070,
   "type": "line",
   "text": "0 rolling, 1 to 9 the explosion."
  },
  {
   "address": 33071,
   "type": "line",
   "text": "the tiles the view has moved since the last barrel."
  },
  {
   "address": 33072,
   "type": "line",
   "text": "1 or $FF when the view has moved a tile right or left."
  },
  {
   "address": 33073,
   "type": "line",
   "text": "1 would stop the guard's floor checks; only the code nothing calls ($93B4) sets it."
  },
  {
   "address": 33074,
   "type": "line",
   "text": "1 after a wall knocked the attacker back."
  },
  {
   "address": 33075,
   "type": "line",
   "text": "the same for the guard."
  },
  {
   "address": 33076,
   "type": "line",
   "text": "the floor the attacker jumped from."
  },
  {
   "address": 33077,
   "type": "line",
   "text": "the guards still to come."
  },
  {
   "address": 33078,
   "type": "line",
   "text": "the dog's chance by the defender's level: 15, 20 and 30 in 256."
  },
  {
   "address": 33081,
   "type": "line",
   "text": "the end's steps of 100 frames: 5, or 8 when the attacker wins."
  },
  {
   "address": 33082,
   "type": "line",
   "text": "1 while H has paused the fort."
  },
  {
   "address": 33083,
   "type": "line",
   "text": "the fort's machine: RAM with I/O ($35), the CIA interrupts and timers off, video bank 1, black border and background, sprites off, screen at $4800 and characters at $4000 ($D018 = $20), multicolour text with 38 columns ($D016 = $10) for the scroll, the raster interrupt off, the 16 sprite slots in order and at 0, sprite multicolour 7, and NMI and reset pointing at the rti at $81BB."
  },
  {
   "address": 33211,
   "type": "line",
   "text": "the rti that NMI and reset point at in the fort."
  },
  {
   "address": 33212,
   "type": "line",
   "text": "the keys of the one person playing, when one side is the computer and the menu chose the keyboard ($0388): Z left, X right, P up, L down, space fire, into $82B3-$82B5; the two pla then end the stick reading that called it."
  },
  {
   "address": 33305,
   "type": "line",
   "text": "the attacker's stick: the Union's joystick in port 2; the Confederacy's in port 1, unless one person plays, who always uses port 2; with the keyboard chosen, the keys ($81BC)."
  },
  {
   "address": 33334,
   "type": "line",
   "text": "the defender's stick, by the same rule: the Union in port 2, the Confederacy in port 1, one person in port 2."
  },
  {
   "address": 33371,
   "type": "line",
   "text": "the stick's bits into $82B3 (x: $FF left, 1 right), $82B4 (y: $FF up, 1 down) and $82B5 (fire: 0 pressed, 1 not)."
  },
  {
   "address": 33403,
   "type": "line",
   "text": "the keyboard, row by row ($82B7), the PETSCII code of the key down from that row's table ($82BF, $82C7), $FF for none."
  },
  {
   "address": 33459,
   "type": "line",
   "text": "the stick across: $FF left, 1 right."
  },
  {
   "address": 33460,
   "type": "line",
   "text": "up and down: $FF up, 1 down."
  },
  {
   "address": 33461,
   "type": "line",
   "text": "0 while fire is pressed; and a byte after it nothing uses."
  },
  {
   "address": 33463,
   "type": "line",
   "text": "the keyboard rows the scan drives, row 7 first; also the column patterns."
  },
  {
   "address": 33471,
   "type": "line",
   "text": "each row's key codes' address, low bytes."
  },
  {
   "address": 33479,
   "type": "line",
   "text": "each row's key codes' address, high bytes."
  },
  {
   "address": 33487,
   "type": "line",
   "text": "the PETSCII code of each key, eight to a row, as the battle's $8991."
  },
  {
   "address": 33536,
   "type": "line",
   "text": "fkey_codes, continued: the last rows."
  },
  {
   "address": 33551,
   "type": "line",
   "text": "the key code found this pass, $FF none."
  },
  {
   "address": 33552,
   "type": "line",
   "text": "the raster interrupt at line $C8, below the fort: the next one at line $D8 ($833D); lets interrupts in again, copies the sprite list into the live tables ($8612) and sorts it ($85D7), and unless paused scrolls the fort ($8926)."
  },
  {
   "address": 33597,
   "type": "line",
   "text": "the raster interrupt at line $D8: the bottom bar's two sprites, the boot ($D7 + $8101) at $8103/$8104 and the clock ($D4 + $8102) at $8105/$8106, white, at y $E0; the scroll's fine position back to 0; the next interrupt at line 0 ($83A8)."
  },
  {
   "address": 33704,
   "type": "line",
   "text": "the raster interrupt at line 0, the frame's work: sprite multicolours 7 and 0, all sprites on, multicolour 2 dark grey ($D023 = 11) for the top rows; unless paused (and unless the last frame's work is still running, $353F): the sprite list rebuilt ($8AC9) with the dog ($9887), the barrel ($98B9) and the guard ($98EB) moved with the scroll, the defender walking ($9CD2), the fighters ($8C15), the knives ($967B), the dog ($97CB), the barrel ($979F) and the flag ($8B39); then the timers ($8934) and the sound ($F12E); the first eight sprites of the sorted list ($8602) on the eight hardware sprites, and the next interrupt at line $44 ($844C)."
  },
  {
   "address": 33844,
   "type": "line",
   "text": "the slot fort_irq_top is on, put back in Y: the operand of the ldy at $8433, written at $8403."
  },
  {
   "address": 33868,
   "type": "line",
   "text": "the raster interrupt at line $44, the top of the fort: the scroll's fine position ($88B5) into $D016, multicolour 2 to brown (9); the next interrupt 21 lines below sprite 0's top ($8485), or the bottom one ($8510) when that is past line $C0."
  },
  {
   "address": 33925,
   "type": "line",
   "text": "the raster interrupts down the fort: each puts the next slots of the sorted list (from 8 on, $8494) on the hardware sprites they reuse once the sprite's last image is done, until the 16th slot or line $C0; then the bottom interrupt ($8310 at line $C8)."
  },
  {
   "address": 33940,
   "type": "line",
   "text": "the sorted slot fort_mux starts from: the operand of the ldy at $8493, written at $84EF, $850A, $8521."
  },
  {
   "address": 33997,
   "type": "line",
   "text": "the slot fort_mux is on, put back in Y: the operand of the ldy at $84CC, written at $8498."
  },
  {
   "address": 34035,
   "type": "line",
   "text": "A kept by fort_mux: the operand of the lda at $84F2, written at $8485."
  },
  {
   "address": 34037,
   "type": "line",
   "text": "X kept by fort_mux: the operand of the ldx at $84F4, written at $8488."
  },
  {
   "address": 34039,
   "type": "line",
   "text": "Y kept by fort_mux: the operand of the ldy at $84F6, written at $848B."
  },
  {
   "address": 34064,
   "type": "line",
   "text": "the next interrupt the bottom one ($8310 at line $C8), and the list from slot 8 again."
  },
  {
   "address": 34087,
   "type": "line",
   "text": "the masks clearing each sprite's bit of $D010."
  },
  {
   "address": 34095,
   "type": "line",
   "text": "the bits setting it."
  },
  {
   "address": 34103,
   "type": "line",
   "text": "the 16 slots' y as the interrupts read them."
  },
  {
   "address": 34119,
   "type": "line",
   "text": "their x, low bytes."
  },
  {
   "address": 34135,
   "type": "line",
   "text": "their x's high bit."
  },
  {
   "address": 34151,
   "type": "line",
   "text": "their image pointers."
  },
  {
   "address": 34167,
   "type": "line",
   "text": "their colours."
  },
  {
   "address": 34183,
   "type": "line",
   "text": "the sprite list the game writes: y, copied into flive_y each frame ($8612)."
  },
  {
   "address": 34184,
   "type": "line",
   "text": "flist_y, continued: from slot 1."
  },
  {
   "address": 34199,
   "type": "line",
   "text": "x, low bytes."
  },
  {
   "address": 34200,
   "type": "line",
   "text": "flist_x, continued: from slot 1."
  },
  {
   "address": 34215,
   "type": "line",
   "text": "x, high bit."
  },
  {
   "address": 34216,
   "type": "line",
   "text": "flist_xhi, continued: from slot 1."
  },
  {
   "address": 34231,
   "type": "line",
   "text": "image pointers."
  },
  {
   "address": 34232,
   "type": "line",
   "text": "flist_ptr, continued: from slot 1."
  },
  {
   "address": 34247,
   "type": "line",
   "text": "colours."
  },
  {
   "address": 34248,
   "type": "line",
   "text": "flist_col, continued: from slot 1."
  },
  {
   "address": 34263,
   "type": "line",
   "text": "sorts the 16 slots' order ($8602) by the live y ($8537), top first."
  },
  {
   "address": 34305,
   "type": "line",
   "text": "the rts, which the sort also reads as the byte before $8602."
  },
  {
   "address": 34306,
   "type": "line",
   "text": "the 16 slots in order of y, top first."
  },
  {
   "address": 34322,
   "type": "line",
   "text": "unless the frame's work is running ($353F): the 16 slots of the sprite list ($8587-$85D6) into the live tables ($8537-$8586)."
  },
  {
   "address": 34363,
   "type": "line",
   "text": "the screen at $4800 and colour RAM cleared to 0."
  },
  {
   "address": 34394,
   "type": "line",
   "text": "the fort scrolls one step to the right (the attacker walks right): the fine position ($88B5) goes down by the speed ($80FE); past 0 the view moves a character across the buffer ($88B6, $882F), and after two the buffer itself moves left two characters, the map pointer ($04/$05) one tile on, and the new column of tiles is drawn at the right ($870D with A = 21). The barrel's count is told ($8130 = 1) and $8129 counts the steps."
  },
  {
   "address": 34573,
   "type": "line",
   "text": "the column of tiles A of the view: nine tiles down from the map ($04/$05 + A, a row every 400 bytes), each two characters by two ($2318 + 4 x tile, placed by $88B7) into the buffer at $2000 (44 characters by 18 rows); $8108 set for the progress bar."
  },
  {
   "address": 34609,
   "type": "line",
   "text": "the low byte of the map address draw_tile_column reads: the low byte of the address of the lda at $8730, written at $871E, $8767."
  },
  {
   "address": 34610,
   "type": "line",
   "text": "the high byte of the map address draw_tile_column reads: the high byte of the address of the lda at $8730, written at $8725, $876F."
  },
  {
   "address": 34635,
   "type": "line",
   "text": "the low byte of the tile's four bytes draw_tile_column copies: the low byte of the address of the lda at $874A, written at $873B."
  },
  {
   "address": 34636,
   "type": "line",
   "text": "the high byte of the tile's four bytes draw_tile_column copies: the high byte of the address of the lda at $874A, written at $8742."
  },
  {
   "address": 34638,
   "type": "line",
   "text": "the low byte of the buffer address draw_tile_column writes: the low byte of the address of the sta at $874D, written at $8712, $8759."
  },
  {
   "address": 34639,
   "type": "line",
   "text": "the high byte of the buffer address draw_tile_column writes: the high byte of the address of the sta at $874D, written at $8717, $875E."
  },
  {
   "address": 34679,
   "type": "line",
   "text": "the same to the left: the fine position up by the speed, the view and the buffer moved the other way, the map pointer one tile back and the new column drawn at the left (A = 0); the barrel's count told ($8130 = $FF)."
  },
  {
   "address": 34863,
   "type": "line",
   "text": "the 40 columns of the view from the buffer (from column $88B6) onto screen rows 3 to 20."
  },
  {
   "address": 34984,
   "type": "line",
   "text": "the 22 columns of tiles of the first view ($870D, 21 down to 0)."
  },
  {
   "address": 34997,
   "type": "line",
   "text": "the scroll's fine position, 0 to 7, for $D016."
  },
  {
   "address": 34998,
   "type": "line",
   "text": "the buffer column the view starts at, 1 or 2."
  },
  {
   "address": 34999,
   "type": "line",
   "text": "where a tile's four characters go in the buffer: 0, 1, 44, 45."
  },
  {
   "address": 35003,
   "type": "line",
   "text": "the 25 screen rows' offsets, row x 40, as words."
  },
  {
   "address": 35004,
   "type": "line",
   "text": "row_offsets, continued: from row 0's high byte."
  },
  {
   "address": 35059,
   "type": "line",
   "text": "colour RAM, a colour for each row 0 to 20 ($3528); multicolour 1 orange ($D022 = 8)."
  },
  {
   "address": 35077,
   "type": "line",
   "text": "the low byte of the colour RAM row fort_colours fills: the low byte of the address of the sta at $8904, written at $88F7, $8910."
  },
  {
   "address": 35078,
   "type": "line",
   "text": "the high byte of the colour RAM row fort_colours fills: the high byte of the address of the sta at $8904, written at $88FC, $8918."
  },
  {
   "address": 35110,
   "type": "line",
   "text": "while the attacker moves ($8BF1), one scroll step that way ($865A right, $8777 left)."
  },
  {
   "address": 35124,
   "type": "line",
   "text": "once a frame: counts each of the 13 timers at $80D6-$80E2 down to 0."
  },
  {
   "address": 35141,
   "type": "line",
   "text": "the time: every 14 frames the clock sprite moves one pixel right ($8105/$8106) from x $24; once it reaches x $132, after 3,780 frames (about 76 seconds) the time is up ($8107): the attacker has lost ($0397 = 0), sound 26; after that the clock rings, its three pictures in turn every 5 frames ($8102)."
  },
  {
   "address": 35229,
   "type": "line",
   "text": "the boot sprite's four pictures in turn every 5 frames ($8101), while the attacker has won."
  },
  {
   "address": 35255,
   "type": "line",
   "text": "the fort's length and guards by the defender's level ($0380 of the other side): level 0 starts the map pointer at $27E0 (column 200) with 8 guards, level 1 at $2768 (column 80) with 10, level 2 at $271C (column 4) with 12; the progress step ($8111: 6, 9, 12) and the start kept ($810F, the furthest left the attacker can go); the uniforms' colours ($80FC: light blue for the Union, grey for the Confederacy) for the attacker ($8BE5), the defender ($8BE6) and the flag ($80E6); tile $17 put into the map at row 3, column 339 ($2D1B)."
  },
  {
   "address": 35366,
   "type": "line",
   "text": "after new tiles ($8108): the boot sprite at x $12C less eight times the tiles left to the end ($2893 less the map pointer) over the progress step, so it runs from left to right as the attacker gets on; past the end the scroll stops ($80FE = 0) and the attacker has won ($8114)."
  },
  {
   "address": 35467,
   "type": "line",
   "text": "the raster interrupt on, at $8310 for line $F9; all sprites on and multicolour, none stretched."
  },
  {
   "address": 35529,
   "type": "line",
   "text": "the sprite list empty: its count ($353D) 0 and all 16 slots out of sight (y $E8, pointer $DF, a blank image)."
  },
  {
   "address": 35550,
   "type": "line",
   "text": "the next random number in A, from the five bytes at $8B0B-$8B0F, as the battle's $9073."
  },
  {
   "address": 35594,
   "type": "line",
   "text": "the random sum being made."
  },
  {
   "address": 35595,
   "type": "line",
   "text": "the five bytes the random numbers come from; they start as the text \"random\", as in the battle."
  },
  {
   "address": 35596,
   "type": "line",
   "text": "frnd_seed, continued: the second byte."
  },
  {
   "address": 35597,
   "type": "line",
   "text": "frnd_seed, continued: the third byte."
  },
  {
   "address": 35598,
   "type": "line",
   "text": "frnd_seed, continued: the fourth byte, seeded from the raster line ($D012)."
  },
  {
   "address": 35599,
   "type": "line",
   "text": "frnd_seed, continued: the fifth, seeded from $D011."
  },
  {
   "address": 35600,
   "type": "line",
   "text": "every 8 frames the flag's picture flips ($80E3); the flag shows ($80E4) once the view starts at tile column 372 ($288C) or later, near the fort's end."
  },
  {
   "address": 35641,
   "type": "line",
   "text": "the flag in the sprite list ($C3 + its frame, the defender's colour until it changes), over tile column 395 of the map ($28A3), while that is in view."
  },
  {
   "address": 35740,
   "type": "line",
   "text": "once the attacker has won, every 2 frames: the flag comes down to y $AA, takes the attacker's colour, and goes up again to y $5A."
  },
  {
   "address": 35803,
   "type": "line",
   "text": "each fighter's frame or step in its pose: the attacker's here, the guard's at $8BDC."
  },
  {
   "address": 35804,
   "type": "line",
   "text": "fighter_frame, continued: the guard's."
  },
  {
   "address": 35805,
   "type": "line",
   "text": "each fighter's state: 0 standing, 1 walking, 2 jumping or ducking, 3 striking, 4 throwing, 5 climbing, 6 dropping, 7 beaten, 8 down, 9 knocked over."
  },
  {
   "address": 35806,
   "type": "line",
   "text": "fighter_state, continued: the guard's."
  },
  {
   "address": 35807,
   "type": "line",
   "text": "each fighter's upper sprite's pointer."
  },
  {
   "address": 35808,
   "type": "line",
   "text": "fighter_top, continued: the guard's."
  },
  {
   "address": 35809,
   "type": "line",
   "text": "each fighter's lower sprite's pointer."
  },
  {
   "address": 35810,
   "type": "line",
   "text": "fighter_bottom, continued: the guard's."
  },
  {
   "address": 35811,
   "type": "line",
   "text": "each fighter's y."
  },
  {
   "address": 35812,
   "type": "line",
   "text": "fighter_y, continued: the guard's."
  },
  {
   "address": 35813,
   "type": "line",
   "text": "each fighter's uniform colour."
  },
  {
   "address": 35814,
   "type": "line",
   "text": "fighter_colour, continued: the guard's."
  },
  {
   "address": 35815,
   "type": "line",
   "text": "each fighter's x: the attacker's stays $64."
  },
  {
   "address": 35816,
   "type": "line",
   "text": "fighter_x, continued: the guard's."
  },
  {
   "address": 35817,
   "type": "line",
   "text": "the high bytes."
  },
  {
   "address": 35818,
   "type": "line",
   "text": "fighter_x_hi, continued: the guard's."
  },
  {
   "address": 35819,
   "type": "line",
   "text": "the upper sprite's y offset in this pose."
  },
  {
   "address": 35820,
   "type": "line",
   "text": "fighter_dy, continued: the guard's."
  },
  {
   "address": 35821,
   "type": "line",
   "text": "the lower sprite's x offset."
  },
  {
   "address": 35822,
   "type": "line",
   "text": "fighter_dx2, continued: the guard's."
  },
  {
   "address": 35823,
   "type": "line",
   "text": "the lower sprite's y offset, 21 when the two stand one above the other."
  },
  {
   "address": 35824,
   "type": "line",
   "text": "fighter_dy2, continued: the guard's."
  },
  {
   "address": 35825,
   "type": "line",
   "text": "each fighter's movement: 1 right, $FF left, 0 still; the attacker's moves the scroll."
  },
  {
   "address": 35826,
   "type": "line",
   "text": "fighter_moving, continued: the guard's."
  },
  {
   "address": 35827,
   "type": "line",
   "text": "each fighter's facing: 1 right, $FF left."
  },
  {
   "address": 35828,
   "type": "line",
   "text": "fighter_facing, continued: the guard's."
  },
  {
   "address": 35829,
   "type": "line",
   "text": "each fighter's floor, 21 less its row: 0 the ground, 11 the walkway."
  },
  {
   "address": 35830,
   "type": "line",
   "text": "fighter_floor, continued: the guard's."
  },
  {
   "address": 35831,
   "type": "line",
   "text": "the attacker's climb: 1 up, $FF down, 0 holding; the guard's byte after it is written and not read."
  },
  {
   "address": 35833,
   "type": "line",
   "text": "the jump's steps in y, from 4 up to 4 down, ending in $80."
  },
  {
   "address": 35858,
   "type": "line",
   "text": "each fighter's step along the arc."
  },
  {
   "address": 35859,
   "type": "line",
   "text": "arc_step, continued: the guard's."
  },
  {
   "address": 35860,
   "type": "line",
   "text": "set when the attacker is on the ground or comes off the bottom of a ladder."
  },
  {
   "address": 35861,
   "type": "line",
   "text": "the two fighters into the sprite list, two sprites each one above the other (pointers $8BDF and $8BE1, offsets $8BEB, $8BED, $8BEF): the attacker at x $64, where the scroll keeps him, the defender at its own x ($8BE8) when one is on ($8122)."
  },
  {
   "address": 36000,
   "type": "line",
   "text": "each fighter's pictures by its state ($8BDD), through the handlers at $8CC1/$8CCB; the defender's only when one is on."
  },
  {
   "address": 36026,
   "type": "line",
   "text": "the low byte of the pose handler fighter_pictures calls: the low byte of the address of the jsr at $8CB9, written at $8CB0."
  },
  {
   "address": 36027,
   "type": "line",
   "text": "the high byte of the pose handler fighter_pictures calls: the high byte of the address of the jsr at $8CB9, written at $8CB6."
  },
  {
   "address": 36032,
   "type": "line",
   "text": "the fighter whose pose is being set, 0 or 1."
  },
  {
   "address": 36033,
   "type": "line",
   "text": "the pose handlers for states 0 to 9, low bytes."
  },
  {
   "address": 36043,
   "type": "line",
   "text": "their high bytes."
  },
  {
   "address": 36053,
   "type": "line",
   "text": "state 0, standing: pictures $58 and $59, or $5A and $5B facing left ($8BF3)."
  },
  {
   "address": 36089,
   "type": "line",
   "text": "A, a picture of the Union's set, moved to the Confederacy's (60 on, $3C) when the fighter ($8CC0) is the Confederacy's."
  },
  {
   "address": 36109,
   "type": "line",
   "text": "state 1, walking: six frames ($8BDB) every 4 frames, pictures $40 + frame above $46 + frame, 12 on facing left."
  },
  {
   "address": 36173,
   "type": "line",
   "text": "state 2, a jump in steps ($8BDB): crouch (picture $64) for 5 frames, then in the air (picture $42) moving by the arc ($8BF9, a step each frame) until its end ($80, sound 13), then crouch again for 5 frames and stand. Ducking is the same state from the second crouch."
  },
  {
   "address": 36371,
   "type": "line",
   "text": "states 3 and 4, a sabre stroke or a throw: two frames ($8BDB) of 9 frames each, pictures $5C, $5E (4 on facing left), then stand, the timer at 5."
  },
  {
   "address": 36445,
   "type": "line",
   "text": "state 5, the attacker climbing: every 6 frames 8 lines up or down ($8BF7) and the next of two pictures ($6C, $6E)."
  },
  {
   "address": 36524,
   "type": "line",
   "text": "state 6, dropping off a ledge: picture $70 with the lower sprite beside the upper one, 4 lines down each frame."
  },
  {
   "address": 36603,
   "type": "line",
   "text": "state 7, the attacker when the time is up: three pictures in turn every 6 frames ($74-$76), the two sprites side by side."
  },
  {
   "address": 36684,
   "type": "line",
   "text": "state 8, lying on the ground: picture $68, the two sprites side by side."
  },
  {
   "address": 36734,
   "type": "line",
   "text": "state 9, knocked over: picture $70, thrown back along the jump's arc ($8BF9) and then lying (state 8) for 50 frames."
  },
  {
   "address": 36849,
   "type": "line",
   "text": "the attacker's orders by its state: a person's through $900E/$9018, the computer's through $9DA5 ($9D93)."
  },
  {
   "address": 36876,
   "type": "line",
   "text": "the low byte of the person's attacker's handler attacker_orders jumps to: the low byte of the address of the jmp at $900B, written at $9002."
  },
  {
   "address": 36877,
   "type": "line",
   "text": "the high byte of the person's attacker's handler attacker_orders jumps to: the high byte of the address of the jmp at $900B, written at $9008."
  },
  {
   "address": 36878,
   "type": "line",
   "text": "a person's attacker's handlers for states 0 to 9, low bytes."
  },
  {
   "address": 36888,
   "type": "line",
   "text": "a person's attacker's handlers, high bytes."
  },
  {
   "address": 36898,
   "type": "line",
   "text": "a person's attacker standing (once its timer is out): fire: a stroke at a guard in reach ($957F), otherwise a knife, if any are left and none is flying ($95D3); left or right: walk (state 1), not back past the start ($9A39); then the stick up or down ($9073)."
  },
  {
   "address": 36979,
   "type": "line",
   "text": "whether it falls ($948A) or the time is up ($9A51); up: climb a ladder ($93BA) or jump (state 2, from this floor, $8134), unless it has just come off a ladder at the top ($810E); down: climb down a ladder ($9439) or duck ($90B6)."
  },
  {
   "address": 37046,
   "type": "line",
   "text": "the attacker crouches (state 2 at its second crouch, 25 frames) and stands its y on a character line."
  },
  {
   "address": 37077,
   "type": "line",
   "text": "a person's attacker walking: the stick still that way walks on, stopping at a wall ($9241, $927A) and the start ($9A39); otherwise it stands; then the stick up or down."
  },
  {
   "address": 37130,
   "type": "line",
   "text": "a person's attacker on a ladder: sidles to the ladder's column ($8109); the frame it is reached the climb starts ($9121), and from then each pass steps the fine scroll toward 0 ($9127) and reads the stick in the same pass: up climbs ($940B), down climbs down ($9426), the stick still holds."
  },
  {
   "address": 37201,
   "type": "line",
   "text": "dropping: whether there is still nothing below ($948A); on a floor, the landing crouch (25 frames), sound 13."
  },
  {
   "address": 37240,
   "type": "line",
   "text": "in the air: a wall stops the move ($9241, $927A); in the arc's middle steps (10 to 21) a floor under the feet ($94B9) lands it: it stands, on a character line, sound 13."
  },
  {
   "address": 37299,
   "type": "line",
   "text": "lying: once its timer is out it stands, and the computer's guard waits two passes before it strikes ($9C24)."
  },
  {
   "address": 37318,
   "type": "line",
   "text": "the rts for the states that take no orders."
  },
  {
   "address": 37319,
   "type": "line",
   "text": "every 100 frames the end countdown ($8139) goes down; at 3 the music fades ($F134); at 0 the fort ends: the raster interrupt off, the screen blanked, and the two pla go back to the map."
  },
  {
   "address": 37368,
   "type": "line",
   "text": "the stroke at its timer's second-last frame: against a guard standing (state below 6) within 30 pixels on the same floor, a random number below $14 knocks it down: sound 6, the guard's state 9."
  },
  {
   "address": 37441,
   "type": "line",
   "text": "a wall in the way to the right: the character at column 5 of each of four rows from the attacker's head ($10) checked against the walls ($80F7); one knocks the attacker back (state 9, moving left), sound 19, $8132 set for the computer, and the two pla end the caller's pass."
  },
  {
   "address": 37458,
   "type": "line",
   "text": "the character under test, compared with each wall character: the operand of the cmp at $9251, written at $9245."
  },
  {
   "address": 37498,
   "type": "line",
   "text": "the same to the left, at column 0."
  },
  {
   "address": 37515,
   "type": "line",
   "text": "the character under test, compared with each wall character: the operand of the cmp at $928A, written at $927E."
  },
  {
   "address": 37550,
   "type": "line",
   "text": "the guard walking left: a wall in the cell beside it on any of its rows ($20 + $26, a row every 40) knocks it back (state 9, moving right, $8133), sound 19."
  },
  {
   "address": 37567,
   "type": "line",
   "text": "the character under test, compared with each wall character: the operand of the cmp at $92BE, written at $92B2."
  },
  {
   "address": 37615,
   "type": "line",
   "text": "every 150 frames, with a random number below the defender's level's chance ($8136: 15, 20 or 30 in 256), the dog runs on: from the right going left, or from the left going right, at random."
  },
  {
   "address": 37689,
   "type": "line",
   "text": "the attacker's floor ($8BF5: 21 less its y / 8) and the screen address of its rows ($10/$11), for the floor and wall checks."
  },
  {
   "address": 37707,
   "type": "line",
   "text": "the attacker's row, y / 8, subtracted to give its floor: the operand of the sbc at $934A, written at $933F."
  },
  {
   "address": 37727,
   "type": "line",
   "text": "the same for the guard ($8BF6, $20/$21), the column from its x, kept from 3 to 37."
  },
  {
   "address": 37745,
   "type": "line",
   "text": "the guard's row, y / 8, subtracted to give its floor: the operand of the sbc at $9370, written at $9365."
  },
  {
   "address": 37812,
   "type": "line",
   "text": "code nothing calls: it would set $8131, which stops the guard's floor checks."
  },
  {
   "address": 37818,
   "type": "line",
   "text": "a ladder's foot (character $10) in the six cells of the row below the attacker's head ($10 + $28 to $2D): the climb starts (state 5, $8BF7 = 1), first sidling until the ladder is at $10 + $2B; the two pla end the caller's pass."
  },
  {
   "address": 37899,
   "type": "line",
   "text": "a step up the ladder ($8E5D does it); at floor 11, the walkway, the attacker stands there ($810E stops it starting down again at once)."
  },
  {
   "address": 37926,
   "type": "line",
   "text": "a step down; at floor 0, the ground, it stands ($8C14)."
  },
  {
   "address": 37945,
   "type": "line",
   "text": "a ladder's top (character $12) in the six cells at the attacker's feet ($10 + $78 to $7D): the climb down starts (state 5, $8BF7 = $FF)."
  },
  {
   "address": 38026,
   "type": "line",
   "text": "above the ground, a floor character under the attacker's feet ($80E8) keeps it up; with none it drops (state 6) and the two pla end the caller's pass. On the ground $8C14 is set."
  },
  {
   "address": 38046,
   "type": "line",
   "text": "the character under the attacker's feet, compared with each floor character: the operand of the cmp at $949D, written at $9493."
  },
  {
   "address": 38073,
   "type": "line",
   "text": "in the air above the ground: a landing character ($80F2) under its feet lets the jump land; otherwise the two pla keep it flying."
  },
  {
   "address": 38093,
   "type": "line",
   "text": "the character under the attacker's feet, compared with each landing character: the operand of the cmp at $94CC, written at $94C2."
  },
  {
   "address": 38103,
   "type": "line",
   "text": "the same for the guard ($8BF6, $20): it drops (state 6) with nothing under it."
  },
  {
   "address": 38128,
   "type": "line",
   "text": "the character under the guard's feet, compared with each floor character: the operand of the cmp at $94EF, written at $94E5."
  },
  {
   "address": 38149,
   "type": "line",
   "text": "the guard walking: no floor character just ahead of its feet ($20 + $9D) makes it jump (state 2)."
  },
  {
   "address": 38174,
   "type": "line",
   "text": "the character ahead of the guard's feet, compared with each floor character: the operand of the cmp at $951D, written at $9513."
  },
  {
   "address": 38200,
   "type": "line",
   "text": "the computer's attacker above the ground: no floor character ahead of its feet ($10 + $7D) makes it jump (state 2, straight up)."
  },
  {
   "address": 38215,
   "type": "line",
   "text": "the character ahead of the attacker's feet, compared with each floor character: the operand of the cmp at $9546, written at $953C."
  },
  {
   "address": 38241,
   "type": "line",
   "text": "the guard in the air lands on a landing character."
  },
  {
   "address": 38261,
   "type": "line",
   "text": "the character under the guard's feet, compared with each landing character: the operand of the cmp at $9574, written at $956A."
  },
  {
   "address": 38271,
   "type": "line",
   "text": "fighter Y on fire, with a guard on and the two on the same floor: with the guard up to 30 pixels to the right of the attacker, a random number below 5 makes the fighter step in (state 1); otherwise sound 30 and the stroke (state 3, timer 5), and the two pla end the caller's pass; with the guard to the left, the two pla end the pass and nothing happens."
  },
  {
   "address": 38305,
   "type": "line",
   "text": "the guard's distance from the attacker, for the cmp at $95A2: the operand of the lda at $95A0, written at $9593."
  },
  {
   "address": 38355,
   "type": "line",
   "text": "fighter Y throws a knife: sound 20, state 4, one knife fewer ($8115), and the knife flies from its x, 16 lines below its top, the way it faces; the attacker's knives redrawn ($961B)."
  },
  {
   "address": 38427,
   "type": "line",
   "text": "the attacker's knives left ($8115) at the top left, a knife (characters $FE, $FF) in each of columns 1 to 4."
  },
  {
   "address": 38466,
   "type": "line",
   "text": "the guards left ($8135) at the top right, a head of the defender's uniform (characters $F6 + side x 4) every two columns from 37 down."
  },
  {
   "address": 38523,
   "type": "line",
   "text": "the flying knives into the sprite list: pointer $DB going right, $DC left, white."
  },
  {
   "address": 38578,
   "type": "line",
   "text": "the rolling barrel against the fighters on the ground: within 24 pixels it knocks one over backwards (state 9), sound 15, and blows up ($812E counting 1 to 9 every 3 frames), then is gone."
  },
  {
   "address": 38621,
   "type": "line",
   "text": "the barrel's distance from the fighter, low byte, for the cmp at $96DE: the operand of the lda at $96DC, written at $96CF."
  },
  {
   "address": 38717,
   "type": "line",
   "text": "the dog against the fighters on the ground, standing or walking: within 24 pixels it knocks one over (state 9), sound 7."
  },
  {
   "address": 38762,
   "type": "line",
   "text": "the dog's distance from the fighter, low byte, for the cmp at $976B: the operand of the lda at $9769, written at $975C."
  },
  {
   "address": 38815,
   "type": "line",
   "text": "the barrel in the sprite list: picture $B8, then the explosion's ($B9-$C1), red."
  },
  {
   "address": 38859,
   "type": "line",
   "text": "the dog in the sprite list, two sprites 24 pixels apart, dark grey: $C8-$CA in front of $CB-$CD going right, $CE-$D0 in front of $D1-$D3 going left, by its frame."
  },
  {
   "address": 38962,
   "type": "line",
   "text": "every 5 frames the dog runs 10 pixels its way, the next of its three frames; one time in 25 it barks (sound 29)."
  },
  {
   "address": 39047,
   "type": "line",
   "text": "while the attacker moves the dog moves the other way by the scroll's speed, so it keeps its place in the fort."
  },
  {
   "address": 39097,
   "type": "line",
   "text": "the same for the barrel."
  },
  {
   "address": 39147,
   "type": "line",
   "text": "the same for the guard, once for each scroll step this frame ($8129)."
  },
  {
   "address": 39213,
   "type": "line",
   "text": "the dog off the screen (x past $150, or below 0) is gone."
  },
  {
   "address": 39241,
   "type": "line",
   "text": "the barrel off the screen is gone."
  },
  {
   "address": 39272,
   "type": "line",
   "text": "every 60 tiles the view moves to the right ($812F) a barrel rolls in from the right edge (x $148); going back to the left, at the count's 19th tile one comes in from the left edge (x 8)."
  },
  {
   "address": 39364,
   "type": "line",
   "text": "the guard off the screen to the left, or past x $15A on the right, is gone."
  },
  {
   "address": 39397,
   "type": "line",
   "text": "every 2 frames each flying knife goes 8 pixels its way; off the screen it is gone."
  },
  {
   "address": 39481,
   "type": "line",
   "text": "the attacker cannot go back past the fort's start ($810F/$8110): it stands, and the two pla end the caller's pass."
  },
  {
   "address": 39505,
   "type": "line",
   "text": "once the time is up the attacker takes state 7 and its orders end."
  },
  {
   "address": 39523,
   "type": "line",
   "text": "each flying knife against the other side's fighter, standing, walking, striking, throwing or in a jump before its last crouch, so a duck lets a knife pass: from the fighter's top to 40 lines below it and about 16 to 24 pixels across, it knocks the fighter over (state 9, backwards), sound 28, and is gone."
  },
  {
   "address": 39592,
   "type": "line",
   "text": "the knife's distance from the fighter, low byte, for the cmp at $9AA9: the operand of the lda at $9AA7, written at $9A9A."
  },
  {
   "address": 39661,
   "type": "line",
   "text": "the defender's orders by its state, through $9B05/$9B0F, while a guard is on."
  },
  {
   "address": 39682,
   "type": "line",
   "text": "the low byte of the guard's handler defender_orders jumps to: the low byte of the address of the jmp at $9B01, written at $9AF8."
  },
  {
   "address": 39683,
   "type": "line",
   "text": "the high byte of the guard's handler defender_orders jumps to: the high byte of the address of the jmp at $9B01, written at $9AFE."
  },
  {
   "address": 39685,
   "type": "line",
   "text": "the guard's handlers for its states, low bytes."
  },
  {
   "address": 39695,
   "type": "line",
   "text": "the guard's handlers, high bytes."
  },
  {
   "address": 39705,
   "type": "line",
   "text": "state 1: a ledge ahead ($9505) or a wall ($92AE) first; then as standing."
  },
  {
   "address": 39718,
   "type": "line",
   "text": "states 0 and 1, once its timer is out: whether it drops ($94D7); at x $7F or more it walks left toward the attacker, fighting if it can ($9BAA); left of x $64 it walks on left; in between: if the attacker jumps from the guard's own floor ($8134) the guard knocks him over (sound 6, state 9); it stands and fights when the attacker is on its floor, or climbing, dropping or down; otherwise it walks on left."
  },
  {
   "address": 39850,
   "type": "line",
   "text": "a computer guard, the attacker not down and on its floor, the guard to his right, with a random number below $50: with a random number below $64, no knife of its own flying and the attacker 40 pixels or more away it throws ($95D3), and its knife count ($8116) is not checked, so it never runs out; otherwise, after its delay ($9C24), it strikes ($957F). A person's guard: fire strikes, or throws while it has knives ($8116)."
  },
  {
   "address": 39914,
   "type": "line",
   "text": "the guard's distance from the attacker, for the cmp at $9BEB: the operand of the lda at $9BE9, written at $9BD2."
  },
  {
   "address": 39972,
   "type": "line",
   "text": "passes the guard waits before it strikes."
  },
  {
   "address": 39973,
   "type": "line",
   "text": "state 6, dropping: whether there is still nothing below ($94D7); then the landing crouch (20 frames)."
  },
  {
   "address": 40007,
   "type": "line",
   "text": "state 8, lying: once its timer is out it stands, or walks on right after hitting a wall ($8133)."
  },
  {
   "address": 40035,
   "type": "line",
   "text": "the rts for the guard's states that take no orders."
  },
  {
   "address": 40036,
   "type": "line",
   "text": "state 2: in the arc's middle steps it lands on a landing character ($9561), sound 13."
  },
  {
   "address": 40081,
   "type": "line",
   "text": "state 3, at its timer's second-last frame: against the attacker standing within 30 pixels, a random number below $1E knocks him over (sound 6, state 9, thrown away)."
  },
  {
   "address": 40146,
   "type": "line",
   "text": "each frame the walking guard goes 3 pixels its way ($8BF2)."
  },
  {
   "address": 40194,
   "type": "line",
   "text": "with no guard on, the attacker not beaten and the map pointer before $287A: a guard comes on from the right (x $150), walking left, while guards are left ($8135, one fewer, the heads redrawn): for a person's defender when it pushes up (to the walkway, y $52) or down (to the ground, y $AA); for the computer's every 50 frames with a random number below $C8, onto the attacker's floor."
  },
  {
   "address": 40339,
   "type": "line",
   "text": "the computer's attacker, by its state through $9DA5/$9DAF."
  },
  {
   "address": 40355,
   "type": "line",
   "text": "the low byte of the computer attacker's handler computer_attacker jumps to: the low byte of the address of the jmp at $9DA2, written at $9D99."
  },
  {
   "address": 40356,
   "type": "line",
   "text": "the high byte of the computer attacker's handler computer_attacker jumps to: the high byte of the address of the jmp at $9DA2, written at $9D9F."
  },
  {
   "address": 40357,
   "type": "line",
   "text": "the computer attacker's handlers, low bytes."
  },
  {
   "address": 40367,
   "type": "line",
   "text": "the computer attacker's handlers, high bytes."
  },
  {
   "address": 40377,
   "type": "line",
   "text": "climbing: sidles to the ladder as a person's does ($910A), then climbs up ($940B), with a random delay before its next blow."
  },
  {
   "address": 40438,
   "type": "line",
   "text": "standing, once its timer is out: walks right, or left after a wall knocked it back ($8132); then as walking from $9E3E."
  },
  {
   "address": 40482,
   "type": "line",
   "text": "walking: whether it drops; after a wall knocked it back it looks for a ladder up ($93BA); otherwise a wall ahead ($9241) and, above the ground, a ledge ($9538); then every few frames ($80E1, a random delay up to 15): a stroke at a guard in reach ($957F), or a knife at one ahead on its floor when it has knives and none is flying."
  },
  {
   "address": 40582,
   "type": "line",
   "text": "colour RAM for the top two rows' columns 8 to 39 in the defender's uniform, for the guards' heads."
  },
  {
   "address": 40605,
   "type": "line",
   "text": "sound A on the map's player ($F12B), with $9EB1 counted up so the interrupt does not play sound meanwhile; X and Y kept."
  },
  {
   "address": 40618,
   "type": "line",
   "text": "X kept by fort_sound: the operand of the ldx at $9EA9, written at $9EA0."
  },
  {
   "address": 40620,
   "type": "line",
   "text": "Y kept by fort_sound: the operand of the ldy at $9EAB, written at $9EA3."
  },
  {
   "address": 40625,
   "type": "line",
   "text": "counted up while $9E9D starts a sound, so the interrupt does not play it meanwhile."
  },
  {
   "address": 40626,
   "type": "line",
   "text": "334 bytes nothing calls: an earlier build of the battle's code, the same as the battle's $9EC8-$A015 in all but 8 bytes (addresses one build apart), left in memory when the file was saved."
  }
 ]
}