{
 "schema": 1,
 "platform": "c64",
 "game": "north-and-south",
 "part": "map",
 "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"
   ],
   [
    25592,
    25599,
    "runtime: the map's sprite pointers, written by the multiplexer ($1182, $11E7) and $1ACE"
   ],
   [
    47312,
    48911,
    "runtime: the buffer save_window ($331A) keeps a panel's window in while a picture covers it"
   ],
   [
    59130,
    61209,
    "runtime: the stores of the map's bytes under the 27 army places ($E6FA) and flag places ($ED12), filled from the screen at the game's start ($23DC, $23E7)"
   ],
   [
    0,
    3071,
    "The loader and the script"
   ],
   [
    50432,
    57343,
    "The loader and the script"
   ],
   [
    65530,
    65535,
    "The loader and the script"
   ],
   [
    50432,
    53246,
    "The battle"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ],
  "elsewhere": [
   [
    0,
    3071,
    "The loader and the script"
   ],
   [
    50432,
    57343,
    "The loader and the script"
   ],
   [
    65530,
    65535,
    "The loader and the script"
   ],
   [
    50432,
    53246,
    "The battle"
   ]
  ]
 },
 "blocks": [
  {
   "start": 3072,
   "end": 3372,
   "type": "Code"
  },
  {
   "start": 3373,
   "end": 3470,
   "type": "Undefined"
  },
  {
   "start": 3471,
   "end": 3473,
   "type": "Byte"
  },
  {
   "start": 3474,
   "end": 3870,
   "type": "Undefined"
  },
  {
   "start": 3871,
   "end": 3914,
   "type": "Code"
  },
  {
   "start": 3915,
   "end": 3920,
   "type": "Undefined"
  },
  {
   "start": 3921,
   "end": 4200,
   "type": "Code"
  },
  {
   "start": 4201,
   "end": 4293,
   "type": "Byte"
  },
  {
   "start": 4294,
   "end": 4744,
   "type": "Code"
  },
  {
   "start": 4745,
   "end": 5115,
   "type": "Undefined"
  },
  {
   "start": 5116,
   "end": 5158,
   "type": "Code"
  },
  {
   "start": 5159,
   "end": 5190,
   "type": "Undefined"
  },
  {
   "start": 5191,
   "end": 6970,
   "type": "Code"
  },
  {
   "start": 6971,
   "end": 6972,
   "type": "Undefined"
  },
  {
   "start": 6973,
   "end": 7464,
   "type": "Code"
  },
  {
   "start": 7465,
   "end": 7472,
   "type": "Undefined"
  },
  {
   "start": 7473,
   "end": 16286,
   "type": "Code"
  },
  {
   "start": 16287,
   "end": 16290,
   "type": "Undefined"
  },
  {
   "start": 16291,
   "end": 16310,
   "type": "Code"
  },
  {
   "start": 16311,
   "end": 25591,
   "type": "Byte"
  },
  {
   "start": 25592,
   "end": 25599,
   "type": "Undefined"
  },
  {
   "start": 25600,
   "end": 47311,
   "type": "Byte"
  },
  {
   "start": 47312,
   "end": 48911,
   "type": "Undefined"
  },
  {
   "start": 48912,
   "end": 50137,
   "type": "Byte"
  },
  {
   "start": 50138,
   "end": 50138,
   "type": "Undefined"
  },
  {
   "start": 50139,
   "end": 50431,
   "type": "Byte"
  },
  {
   "start": 57344,
   "end": 59129,
   "type": "Byte"
  },
  {
   "start": 59130,
   "end": 61209,
   "type": "Undefined"
  },
  {
   "start": 61210,
   "end": 61735,
   "type": "Byte"
  },
  {
   "start": 61736,
   "end": 61747,
   "type": "Code"
  },
  {
   "start": 61748,
   "end": 61888,
   "type": "Undefined"
  },
  {
   "start": 61889,
   "end": 63609,
   "type": "Code"
  },
  {
   "start": 63610,
   "end": 65529,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 3072,
   "name": "map_main",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3138,
   "name": "j_0C42",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 3186,
   "name": "b_0C72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3204,
   "name": "b_0C84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3210,
   "name": "fort_sequence",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3224,
   "name": "train_sequence",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3238,
   "name": "battle_sequence",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3249,
   "name": "reload_map",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3258,
   "name": "screen_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3279,
   "name": "game_won",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3285,
   "name": "b_0CD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3299,
   "name": "map_exit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 3317,
   "name": "a_0CF5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3320,
   "name": "map_restore",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3346,
   "name": "b_0D12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3373,
   "name": "month",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3374,
   "name": "flash_phase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3375,
   "name": "choose_list",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3376,
   "name": "choose_list_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3377,
   "name": "flash_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3378,
   "name": "flash_find",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3379,
   "name": "choosing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3380,
   "name": "flashing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3381,
   "name": "swap_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3382,
   "name": "indians_attack",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3383,
   "name": "indians_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3384,
   "name": "indians_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3385,
   "name": "indians_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3386,
   "name": "indians_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3387,
   "name": "indians_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3388,
   "name": "indians_go",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3389,
   "name": "indians_delay",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3390,
   "name": "indians_waiting_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3391,
   "name": "indians_rider",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3392,
   "name": "smoke_signals_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3393,
   "name": "cursor_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3394,
   "name": "cursor_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3395,
   "name": "cursor_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3396,
   "name": "input_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3397,
   "name": "cursor_point",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3398,
   "name": "cursor_target",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3399,
   "name": "gliding",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3400,
   "name": "direction",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3401,
   "name": "glide_every",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3402,
   "name": "glide_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3403,
   "name": "glide_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3404,
   "name": "cursor_hi_work",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3405,
   "name": "flag_wave_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3406,
   "name": "flag_wave_wait_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3407,
   "name": "flag_wave_wait_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3408,
   "name": "flag_wave_frame_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3409,
   "name": "flag_wave_frame_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3410,
   "name": "intercept_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3411,
   "name": "intercept_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3412,
   "name": "intercept_x2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3413,
   "name": "intercept_y2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3414,
   "name": "intercept_x1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3415,
   "name": "intercept_y1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3416,
   "name": "intercept_frame2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3417,
   "name": "intercept_frame1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3418,
   "name": "intercept_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3419,
   "name": "intercept_anim_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3420,
   "name": "anim_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3421,
   "name": "anim_picture",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3422,
   "name": "cloud_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3423,
   "name": "cloud_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3424,
   "name": "cloud_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3425,
   "name": "cloud_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3426,
   "name": "cloud_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3427,
   "name": "cloud_territory",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3428,
   "name": "point_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3429,
   "name": "line_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3430,
   "name": "point_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3431,
   "name": "line_to_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3432,
   "name": "line_to_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3433,
   "name": "line_to_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3434,
   "name": "ship_started",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3435,
   "name": "ship_sails",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3436,
   "name": "ship_wave_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3437,
   "name": "ship_wave_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3438,
   "name": "ship_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3439,
   "name": "ship_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3440,
   "name": "ship_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3441,
   "name": "ship_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3442,
   "name": "reinforcements_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3443,
   "name": "ship_half",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3444,
   "name": "smoke_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3445,
   "name": "smoke_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3446,
   "name": "smoke_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3447,
   "name": "smoke_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3448,
   "name": "smoke_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3449,
   "name": "smoke_frame_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3450,
   "name": "smoke_drift_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3451,
   "name": "smoke_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3452,
   "name": "smoke_build_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3453,
   "name": "smoke_build_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3454,
   "name": "smoke_build_to",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3457,
   "name": "smoke_build_from",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3460,
   "name": "anim_frames",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3461,
   "name": "intercept_anim_picture",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3462,
   "name": "battle_panel_side",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3463,
   "name": "battle_scroll_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3464,
   "name": "battle_scroll_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3465,
   "name": "scenery_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3466,
   "name": "scenery_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3467,
   "name": "frame_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3468,
   "name": "list_length",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3469,
   "name": "bomb_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3470,
   "name": "bomb_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3471,
   "name": "bomb_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3474,
   "name": "bomb_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3475,
   "name": "bomb_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3477,
   "name": "mexican_passes",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3478,
   "name": "burst_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3479,
   "name": "burst_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3480,
   "name": "burst_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3481,
   "name": "burst_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3482,
   "name": "train_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3483,
   "name": "train_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3484,
   "name": "train_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3485,
   "name": "train_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3486,
   "name": "train_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3487,
   "name": "train_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3488,
   "name": "train_moving",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3489,
   "name": "train_point",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3490,
   "name": "rail_first",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3491,
   "name": "rail_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3493,
   "name": "rail_from",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3495,
   "name": "rail_to",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3497,
   "name": "train_ran",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3499,
   "name": "territory_owner",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3500,
   "name": "a_0DAC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3504,
   "name": "a_0DB0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3505,
   "name": "a_0DB1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3506,
   "name": "a_0DB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3507,
   "name": "a_0DB3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3510,
   "name": "a_0DB6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3511,
   "name": "a_0DB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3512,
   "name": "a_0DB8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3514,
   "name": "a_0DBA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3515,
   "name": "a_0DBB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3517,
   "name": "a_0DBD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3518,
   "name": "a_0DBE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3519,
   "name": "a_0DBF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3520,
   "name": "a_0DC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3521,
   "name": "a_0DC1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3522,
   "name": "a_0DC2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3523,
   "name": "a_0DC3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3524,
   "name": "a_0DC4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3525,
   "name": "side_to_play",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3526,
   "name": "owner_drawn",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3552,
   "name": "army_side",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3555,
   "name": "a_0DE3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3556,
   "name": "a_0DE4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3558,
   "name": "a_0DE6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3560,
   "name": "a_0DE8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3562,
   "name": "a_0DEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3563,
   "name": "a_0DEB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3564,
   "name": "a_0DEC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3565,
   "name": "a_0DED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3566,
   "name": "a_0DEE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3568,
   "name": "a_0DF0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3569,
   "name": "a_0DF1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3570,
   "name": "a_0DF2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3571,
   "name": "a_0DF3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3573,
   "name": "a_0DF5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3575,
   "name": "a_0DF7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3578,
   "name": "army_drawn",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3604,
   "name": "army_cavalry",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3607,
   "name": "a_0E17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3608,
   "name": "a_0E18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3610,
   "name": "a_0E1A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3612,
   "name": "a_0E1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3614,
   "name": "a_0E1E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3615,
   "name": "a_0E1F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3616,
   "name": "a_0E20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3617,
   "name": "a_0E21",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3618,
   "name": "a_0E22",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3620,
   "name": "a_0E24",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3621,
   "name": "a_0E25",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3622,
   "name": "a_0E26",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3623,
   "name": "a_0E27",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3625,
   "name": "a_0E29",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3627,
   "name": "a_0E2B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3630,
   "name": "army_infantry",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3633,
   "name": "a_0E31",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3634,
   "name": "a_0E32",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3636,
   "name": "a_0E34",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3638,
   "name": "a_0E36",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3640,
   "name": "a_0E38",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3641,
   "name": "a_0E39",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3642,
   "name": "a_0E3A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3643,
   "name": "a_0E3B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3644,
   "name": "a_0E3C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3646,
   "name": "a_0E3E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3647,
   "name": "a_0E3F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3648,
   "name": "a_0E40",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3649,
   "name": "a_0E41",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3651,
   "name": "a_0E43",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3653,
   "name": "a_0E45",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3656,
   "name": "army_cannon",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3659,
   "name": "a_0E4B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3660,
   "name": "a_0E4C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3662,
   "name": "a_0E4E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3664,
   "name": "a_0E50",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3666,
   "name": "a_0E52",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3667,
   "name": "a_0E53",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3668,
   "name": "a_0E54",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3669,
   "name": "a_0E55",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3670,
   "name": "a_0E56",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3672,
   "name": "a_0E58",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3673,
   "name": "a_0E59",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3674,
   "name": "a_0E5A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3675,
   "name": "a_0E5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3677,
   "name": "a_0E5D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3679,
   "name": "a_0E5F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 3682,
   "name": "march_from",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3683,
   "name": "march_to",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3684,
   "name": "march_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3685,
   "name": "march_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3686,
   "name": "march_x_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3687,
   "name": "march_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3688,
   "name": "panel_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3689,
   "name": "frame_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3690,
   "name": "may_move",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3691,
   "name": "f_0E6B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3716,
   "name": "move_from",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3717,
   "name": "move_to",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3718,
   "name": "figure_side",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3719,
   "name": "may_enter",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3745,
   "name": "fort_anim_phase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3746,
   "name": "fort_anim_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3748,
   "name": "battle_over",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3749,
   "name": "ally_territory",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3750,
   "name": "join_infantry",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3751,
   "name": "join_cavalry",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3752,
   "name": "join_cannon",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3753,
   "name": "figure_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3755,
   "name": "indians_passes_8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3756,
   "name": "indians_passes_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3757,
   "name": "indians_target",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3758,
   "name": "indians_place_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3760,
   "name": "indians_place_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3762,
   "name": "ride_away_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3763,
   "name": "indians_targets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3765,
   "name": "gold_side",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3766,
   "name": "bag_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3767,
   "name": "bag_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3768,
   "name": "bag_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3769,
   "name": "bag_stage",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3770,
   "name": "bag_fall_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3771,
   "name": "banks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3773,
   "name": "bank_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3774,
   "name": "new_army_from",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3775,
   "name": "new_army_territory",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3776,
   "name": "map_drawing",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3777,
   "name": "ai_score",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3803,
   "name": "ai_sent",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3829,
   "name": "ai_dist",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3856,
   "name": "ai_plan_now",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3857,
   "name": "ai_army",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3858,
   "name": "steps_infantry",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3859,
   "name": "steps_cavalry",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3860,
   "name": "steps_cannon",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3861,
   "name": "ai_work",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3862,
   "name": "ai_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3863,
   "name": "ai_ring",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3864,
   "name": "ai_best_score",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3865,
   "name": "ai_back",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3866,
   "name": "drawing_changes",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3867,
   "name": "after_smoke_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3868,
   "name": "after_smoke_frame",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3869,
   "name": "after_smoke_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3870,
   "name": "intercept_point",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3871,
   "name": "map_rnd",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3915,
   "name": "map_rnd_seeds",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3916,
   "name": "rnd_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3917,
   "name": "rnd_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3918,
   "name": "rnd_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3919,
   "name": "rnd_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3920,
   "name": "rnd_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 3921,
   "name": "check_win",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 3923,
   "name": "b_0F53",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3925,
   "name": "b_0F55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3941,
   "name": "b_0F65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 3947,
   "name": "map_video",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4042,
   "name": "b_0FCA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4090,
   "name": "read_joy2_map",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4103,
   "name": "read_joy1_map",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4113,
   "name": "joy_decode_map",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 4121,
   "name": "b_1019",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4125,
   "name": "b_101D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4129,
   "name": "b_1021",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4133,
   "name": "b_1025",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4145,
   "name": "read_key_map",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 4157,
   "name": "b_103D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4184,
   "name": "b_1058",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4192,
   "name": "b_1060",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4198,
   "name": "b_1066",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4201,
   "name": "map_joy_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4202,
   "name": "map_joy_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4203,
   "name": "map_joy_fire",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4205,
   "name": "map_key_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4213,
   "name": "map_key_row_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4221,
   "name": "map_key_row_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4293,
   "name": "map_key",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4294,
   "name": "map_irq_frame",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4344,
   "name": "b_10F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4387,
   "name": "b_1123",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4405,
   "name": "b_1135",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4450,
   "name": "b_1162",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4473,
   "name": "b_1179",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4482,
   "name": "mux_first",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4493,
   "name": "b_118D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4514,
   "name": "b_11A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4545,
   "name": "a_11C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4567,
   "name": "b_11D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4577,
   "name": "j_11E1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4583,
   "name": "mux_next",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4598,
   "name": "a_11F6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4599,
   "name": "b_11F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4624,
   "name": "b_1210",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4655,
   "name": "a_122F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4686,
   "name": "b_124E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4692,
   "name": "j_1254",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4693,
   "name": "a_1255",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4695,
   "name": "a_1257",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4697,
   "name": "a_1259",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4699,
   "name": "b_125B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 4722,
   "name": "j_1272",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 4745,
   "name": "mux_hw",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4780,
   "name": "mux_bit_off",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4781,
   "name": "f_12AD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4788,
   "name": "mux_bit_on",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4789,
   "name": "f_12B5",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4796,
   "name": "mux_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4828,
   "name": "mux_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4860,
   "name": "mux_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4892,
   "name": "mux_ptr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4924,
   "name": "mux_colour",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4956,
   "name": "list_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4957,
   "name": "f_135D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4988,
   "name": "list_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4989,
   "name": "f_137D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5020,
   "name": "list_x_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5021,
   "name": "f_139D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5052,
   "name": "list_ptr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5053,
   "name": "f_13BD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5084,
   "name": "list_colour",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5085,
   "name": "f_13DD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5116,
   "name": "mux_sort",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5118,
   "name": "b_13FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5153,
   "name": "b_1421",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5158,
   "name": "f_1426",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 5159,
   "name": "mux_order",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5191,
   "name": "draw_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5199,
   "name": "b_144F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5303,
   "name": "b_14B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5304,
   "name": "a_14B8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5305,
   "name": "a_14B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5307,
   "name": "a_14BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5308,
   "name": "a_14BC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5359,
   "name": "b_14EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5363,
   "name": "b_14F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5364,
   "name": "a_14F4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5365,
   "name": "a_14F5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5367,
   "name": "a_14F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5368,
   "name": "a_14F8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5370,
   "name": "a_14FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5371,
   "name": "a_14FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5373,
   "name": "a_14FD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5374,
   "name": "a_14FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5447,
   "name": "storm_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5452,
   "name": "b_154C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5495,
   "name": "r_1577",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5496,
   "name": "storm_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5530,
   "name": "j_159A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5571,
   "name": "r_15C3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5572,
   "name": "b_15C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5591,
   "name": "storm_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5618,
   "name": "b_15F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5633,
   "name": "r_1601",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5634,
   "name": "storm_move",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5673,
   "name": "r_1629",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5674,
   "name": "storm_step_place",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5693,
   "name": "storm_next",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5710,
   "name": "b_164E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5712,
   "name": "j_1650",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5713,
   "name": "a_1651",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5714,
   "name": "a_1652",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5730,
   "name": "b_1662",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5766,
   "name": "move_army_figure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5898,
   "name": "b_170A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5904,
   "name": "march_step_place",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5923,
   "name": "march_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5941,
   "name": "b_1735",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5969,
   "name": "a_1751",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 5977,
   "name": "b_1759",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5979,
   "name": "j_175B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 5985,
   "name": "r_1761",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5986,
   "name": "list_to_mux",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5993,
   "name": "b_1769",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6026,
   "name": "r_178A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6027,
   "name": "mexican",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6048,
   "name": "b_17A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6053,
   "name": "r_17A5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6054,
   "name": "b_17A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6072,
   "name": "b_17B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6077,
   "name": "b_17BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6082,
   "name": "b_17C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6133,
   "name": "b_17F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6166,
   "name": "panel_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6191,
   "name": "b_182F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6196,
   "name": "b_1834",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6213,
   "name": "b_1845",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6229,
   "name": "b_1855",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6231,
   "name": "j_1857",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6235,
   "name": "a_185B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6256,
   "name": "bomb_burst",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6284,
   "name": "smoke_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6305,
   "name": "burst_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6335,
   "name": "b_18BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6348,
   "name": "r_18CC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6349,
   "name": "burst_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6385,
   "name": "r_18F1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6386,
   "name": "smoke_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6453,
   "name": "r_1935",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6454,
   "name": "intercept_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6503,
   "name": "intercept_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6546,
   "name": "b_1992",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6613,
   "name": "r_19D5",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6614,
   "name": "intercept_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6636,
   "name": "b_19EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6676,
   "name": "b_1A14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6694,
   "name": "b_1A26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6722,
   "name": "r_1A42",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6723,
   "name": "b_1A43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6743,
   "name": "flag_wave",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6772,
   "name": "b_1A74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6823,
   "name": "b_1AA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6826,
   "name": "b_1AAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6861,
   "name": "r_1ACD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6862,
   "name": "cursor_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6891,
   "name": "b_1AEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6913,
   "name": "territory_blink",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6943,
   "name": "j_1B1F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 6944,
   "name": "a_1B20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6945,
   "name": "a_1B21",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 6956,
   "name": "b_1B2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6967,
   "name": "b_1B37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6970,
   "name": "r_1B3A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6971,
   "name": "blink_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6972,
   "name": "blink_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 6973,
   "name": "map_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7003,
   "name": "map_colour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7005,
   "name": "b_1B5D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7033,
   "name": "map_irq_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7051,
   "name": "b_1B8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7097,
   "name": "b_1BB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7099,
   "name": "j_1BBB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7114,
   "name": "list_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7116,
   "name": "b_1BCC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7135,
   "name": "train_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7151,
   "name": "b_1BEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7183,
   "name": "r_1C0F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7184,
   "name": "train_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7215,
   "name": "r_1C2F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7216,
   "name": "map_timers",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7224,
   "name": "b_1C38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7232,
   "name": "b_1C40",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7240,
   "name": "b_1C48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7248,
   "name": "b_1C50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7256,
   "name": "b_1C58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7264,
   "name": "b_1C60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7272,
   "name": "b_1C68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7280,
   "name": "b_1C70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7288,
   "name": "r_1C78",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7289,
   "name": "bomb_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7331,
   "name": "r_1CA3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7332,
   "name": "train_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7371,
   "name": "line_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7407,
   "name": "b_1CEF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7412,
   "name": "j_1CF4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7420,
   "name": "b_1CFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7443,
   "name": "b_1D13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7461,
   "name": "b_1D25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7465,
   "name": "line_dx",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7466,
   "name": "line_dy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7467,
   "name": "line_x_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7468,
   "name": "line_y_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7469,
   "name": "line_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7470,
   "name": "line_x_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7471,
   "name": "line_y_done",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7472,
   "name": "line_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 7473,
   "name": "train_ride",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7548,
   "name": "line_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7573,
   "name": "b_1D95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7587,
   "name": "b_1DA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7588,
   "name": "a_1DA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7592,
   "name": "b_1DA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7613,
   "name": "b_1DBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7616,
   "name": "b_1DC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7630,
   "name": "b_1DCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7631,
   "name": "a_1DCF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7635,
   "name": "b_1DD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7656,
   "name": "line_step_call",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7657,
   "name": "a_1DE9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7658,
   "name": "a_1DEA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7659,
   "name": "line_step_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7673,
   "name": "r_1DF9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7674,
   "name": "line_step_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7688,
   "name": "r_1E08",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7689,
   "name": "line_x",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7719,
   "name": "j_1E27",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7725,
   "name": "a_1E2D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7734,
   "name": "r_1E36",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7735,
   "name": "b_1E37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7758,
   "name": "line_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7781,
   "name": "r_1E65",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7782,
   "name": "wait_2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7787,
   "name": "b_1E6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7793,
   "name": "train_step_place",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7812,
   "name": "draw_flag",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7829,
   "name": "b_1E95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7840,
   "name": "j_1EA0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 7842,
   "name": "b_1EA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7887,
   "name": "b_1ECF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 7898,
   "name": "flag_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7915,
   "name": "a_1EEB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 7930,
   "name": "panel_fort",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7941,
   "name": "panel_intercept",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7957,
   "name": "panel_fort_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7965,
   "name": "panel_intercept_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7975,
   "name": "intercept_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 7980,
   "name": "b_1F2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8002,
   "name": "b_1F42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8032,
   "name": "panel_bank",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8043,
   "name": "panel_bank_save",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8054,
   "name": "battle_panel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8098,
   "name": "j_1FA2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8125,
   "name": "b_1FBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8182,
   "name": "b_1FF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8210,
   "name": "b_2012",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8215,
   "name": "b_2017",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8290,
   "name": "panel_scroll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8337,
   "name": "b_2091",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8339,
   "name": "b_2093",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8340,
   "name": "a_2094",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8341,
   "name": "a_2095",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8343,
   "name": "a_2097",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8344,
   "name": "a_2098",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8352,
   "name": "b_20A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8426,
   "name": "a_20EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8428,
   "name": "a_20EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8430,
   "name": "a_20EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8432,
   "name": "panel_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8444,
   "name": "b_20FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8446,
   "name": "b_20FE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8447,
   "name": "a_20FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8448,
   "name": "a_2100",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8450,
   "name": "a_2102",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8451,
   "name": "a_2103",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8539,
   "name": "b_215B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8540,
   "name": "a_215C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8541,
   "name": "a_215D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8543,
   "name": "a_215F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8544,
   "name": "a_2160",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8546,
   "name": "a_2162",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8547,
   "name": "a_2163",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8549,
   "name": "a_2165",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8550,
   "name": "a_2166",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8585,
   "name": "wait_frames",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8588,
   "name": "b_218C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8594,
   "name": "smoke_sprite",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8598,
   "name": "b_2196",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8635,
   "name": "smoke_drift",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8640,
   "name": "b_21C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8662,
   "name": "b_21D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8673,
   "name": "smoke_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8693,
   "name": "b_21F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8701,
   "name": "r_21FD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8702,
   "name": "cannon_smoke_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8745,
   "name": "r_2229",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8746,
   "name": "smoke_build",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8756,
   "name": "b_2234",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8761,
   "name": "b_2239",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8779,
   "name": "j_224B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 8798,
   "name": "b_225E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8808,
   "name": "b_2268",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8812,
   "name": "b_226C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8826,
   "name": "reinforcements",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8870,
   "name": "b_22A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8875,
   "name": "b_22AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8896,
   "name": "r_22C0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8897,
   "name": "ship_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8921,
   "name": "ship_in",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8926,
   "name": "b_22DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8947,
   "name": "b_22F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8959,
   "name": "ship_wave",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8977,
   "name": "r_2311",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8978,
   "name": "ship_sails_down",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8983,
   "name": "b_2317",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9002,
   "name": "ship_sails_up",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9007,
   "name": "b_232F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9021,
   "name": "ship_out",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9026,
   "name": "b_2342",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9049,
   "name": "ship_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9118,
   "name": "r_239E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9119,
   "name": "save_flag_bg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9178,
   "name": "a_23DA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9180,
   "name": "save_flags_bg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9182,
   "name": "b_23DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9191,
   "name": "save_armies_bg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9193,
   "name": "b_23E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9202,
   "name": "save_army_bg",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9261,
   "name": "a_242D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9263,
   "name": "army_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9280,
   "name": "a_2440",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 9295,
   "name": "row_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9313,
   "name": "b_2461",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9342,
   "name": "r_247E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9343,
   "name": "column_address",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 9361,
   "name": "b_2491",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9378,
   "name": "map_input",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9392,
   "name": "b_24B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9413,
   "name": "b_24C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9419,
   "name": "b_24CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9425,
   "name": "b_24D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9436,
   "name": "r_24DC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9437,
   "name": "map_keys",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9474,
   "name": "b_2502",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9480,
   "name": "b_2508",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9486,
   "name": "b_250E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9492,
   "name": "b_2514",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9498,
   "name": "b_251A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9504,
   "name": "j_2520",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9516,
   "name": "b_252C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9521,
   "name": "b_2531",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9533,
   "name": "b_253D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9538,
   "name": "r_2542",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9539,
   "name": "j_2543",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9548,
   "name": "cursor_aim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9554,
   "name": "b_2552",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9569,
   "name": "b_2561",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9572,
   "name": "b_2564",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9575,
   "name": "b_2567",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9578,
   "name": "j_256A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9581,
   "name": "j_256D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9605,
   "name": "r_2585",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9606,
   "name": "j_2586",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9630,
   "name": "r_259E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9631,
   "name": "j_259F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9655,
   "name": "r_25B7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9656,
   "name": "j_25B8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9680,
   "name": "r_25D0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9681,
   "name": "cursor_glide",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9687,
   "name": "b_25D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9698,
   "name": "b_25E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9753,
   "name": "b_2619",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9778,
   "name": "j_2632",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9807,
   "name": "b_264F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9828,
   "name": "j_2664",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9847,
   "name": "r_2677",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9848,
   "name": "indians",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9873,
   "name": "b_2691",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9878,
   "name": "j_2696",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9895,
   "name": "b_26A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9901,
   "name": "b_26AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9909,
   "name": "b_26B5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9914,
   "name": "j_26BA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 9948,
   "name": "b_26DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 9965,
   "name": "r_26ED",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9966,
   "name": "indians_reset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9989,
   "name": "r_2705",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 9990,
   "name": "indians_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10037,
   "name": "r_2735",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10038,
   "name": "b_2736",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10076,
   "name": "b_275C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10112,
   "name": "indians_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10122,
   "name": "b_278A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10130,
   "name": "r_2792",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 10131,
   "name": "b_2793",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10158,
   "name": "b_27AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10175,
   "name": "smoke_signals",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10180,
   "name": "j_27C4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10185,
   "name": "b_27C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10210,
   "name": "b_27E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10221,
   "name": "indian_rises",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10226,
   "name": "b_27F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10251,
   "name": "choose_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10266,
   "name": "j_281A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10277,
   "name": "b_2825",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10290,
   "name": "b_2832",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10301,
   "name": "b_283D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10310,
   "name": "flash_list",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10323,
   "name": "b_2853",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10330,
   "name": "j_285A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 10331,
   "name": "a_285B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10332,
   "name": "a_285C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 10344,
   "name": "b_2868",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10373,
   "name": "b_2885",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10408,
   "name": "swap_grey",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10424,
   "name": "b_28B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10426,
   "name": "b_28BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10445,
   "name": "b_28CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10447,
   "name": "b_28CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10451,
   "name": "year_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10467,
   "name": "b_28E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10470,
   "name": "b_28E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10473,
   "name": "b_28E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 10476,
   "name": "setup_1861",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10559,
   "name": "setup_1862",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10688,
   "name": "setup_1863",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10836,
   "name": "setup_1864",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 10982,
   "name": "conf_turn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11013,
   "name": "r_2B05",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11014,
   "name": "union_turn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11045,
   "name": "r_2B25",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11046,
   "name": "player_move",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11062,
   "name": "b_2B36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11078,
   "name": "b_2B46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11110,
   "name": "j_2B66",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11111,
   "name": "a_2B67",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11112,
   "name": "a_2B68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11124,
   "name": "b_2B74",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11128,
   "name": "b_2B78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11157,
   "name": "b_2B95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11171,
   "name": "resolve_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11180,
   "name": "b_2BAC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11188,
   "name": "take_empty",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11240,
   "name": "move_done",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11242,
   "name": "j_2BEA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11256,
   "name": "b_2BF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11272,
   "name": "j_2C08",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11286,
   "name": "b_2C16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11289,
   "name": "r_2C19",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11290,
   "name": "take_owned",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11295,
   "name": "b_2C1F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11320,
   "name": "j_2C38",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11358,
   "name": "b_2C5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11381,
   "name": "take_town",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11420,
   "name": "b_2C9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11471,
   "name": "join_armies",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11479,
   "name": "b_2CD7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11572,
   "name": "j_2D34",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11586,
   "name": "b_2D42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11597,
   "name": "b_2D4D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11600,
   "name": "b_2D50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11611,
   "name": "too_big",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11646,
   "name": "b_2D7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11660,
   "name": "b_2D8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11674,
   "name": "b_2D9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11678,
   "name": "j_2D9E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11679,
   "name": "j_2D9F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11680,
   "name": "a_2DA0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11682,
   "name": "a_2DA2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11684,
   "name": "a_2DA4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11686,
   "name": "battle_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 11707,
   "name": "fort_attack",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11762,
   "name": "b_2DF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11787,
   "name": "b_2E0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11797,
   "name": "b_2E15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11804,
   "name": "b_2E1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11806,
   "name": "j_2E1E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11808,
   "name": "list_armies",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11815,
   "name": "b_2E27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11830,
   "name": "b_2E36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11831,
   "name": "a_2E37",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11832,
   "name": "b_2E38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11836,
   "name": "list_clear_moves",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11840,
   "name": "b_2E40",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11847,
   "name": "in_list",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11861,
   "name": "j_2E55",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11862,
   "name": "a_2E56",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11863,
   "name": "a_2E57",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 11875,
   "name": "b_2E63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11877,
   "name": "r_2E65",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 11878,
   "name": "fort_anim",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11883,
   "name": "b_2E6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11888,
   "name": "b_2E70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11923,
   "name": "wait_25",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11928,
   "name": "b_2E98",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11934,
   "name": "army_lost",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11939,
   "name": "j_2EA3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 11955,
   "name": "b_2EB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 11967,
   "name": "battle_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12016,
   "name": "j_2EF0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12017,
   "name": "a_2EF1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12018,
   "name": "a_2EF2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12034,
   "name": "b_2F02",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12039,
   "name": "b_2F07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12040,
   "name": "j_2F08",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12041,
   "name": "a_2F09",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12119,
   "name": "j_2F57",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12140,
   "name": "b_2F6C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12143,
   "name": "r_2F6F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12144,
   "name": "b_2F70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12151,
   "name": "j_2F77",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12165,
   "name": "b_2F85",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12182,
   "name": "b_2F96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12196,
   "name": "b_2FA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12210,
   "name": "b_2FB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12211,
   "name": "a_2FB3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12274,
   "name": "j_2FF2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12288,
   "name": "b_3000",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12299,
   "name": "j_300B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12300,
   "name": "a_300C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 12305,
   "name": "battle",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12357,
   "name": "b_3045",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12365,
   "name": "j_304D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12376,
   "name": "b_3058",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12387,
   "name": "b_3063",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12390,
   "name": "b_3066",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12480,
   "name": "j_30C0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12590,
   "name": "b_312E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12595,
   "name": "b_3133",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12598,
   "name": "b_3136",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12670,
   "name": "j_317E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12752,
   "name": "b_31D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12757,
   "name": "b_31D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12760,
   "name": "b_31D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12763,
   "name": "j_31DB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12828,
   "name": "auto_battle",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12833,
   "name": "j_3221",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 12860,
   "name": "b_323C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12869,
   "name": "b_3245",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12881,
   "name": "battle_round",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12901,
   "name": "b_3265",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12920,
   "name": "b_3278",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12939,
   "name": "b_328B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12957,
   "name": "b_329D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 12975,
   "name": "r_32AF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 12976,
   "name": "hit_chance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12995,
   "name": "b_32C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13001,
   "name": "b_32C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13007,
   "name": "surround",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13009,
   "name": "b_32D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13049,
   "name": "j_32F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13050,
   "name": "a_32FA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13051,
   "name": "a_32FB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13067,
   "name": "b_330B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13076,
   "name": "b_3314",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13077,
   "name": "a_3315",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13078,
   "name": "b_3316",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13082,
   "name": "save_window",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13099,
   "name": "save_bytes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13163,
   "name": "b_336B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13167,
   "name": "b_336F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13219,
   "name": "b_33A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13223,
   "name": "b_33A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13273,
   "name": "b_33D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13277,
   "name": "b_33DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13320,
   "name": "a_3408",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13322,
   "name": "a_340A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13324,
   "name": "panel_restore",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13327,
   "name": "a_340F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13331,
   "name": "reinforce",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13348,
   "name": "b_3424",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13362,
   "name": "j_3432",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13388,
   "name": "a_344C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13390,
   "name": "a_344E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 13391,
   "name": "j_344F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13405,
   "name": "b_345D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13433,
   "name": "b_3479",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13448,
   "name": "b_3488",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13463,
   "name": "b_3497",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13467,
   "name": "army_hit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13477,
   "name": "b_34A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13490,
   "name": "b_34B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13503,
   "name": "b_34BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13547,
   "name": "r_34EB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13548,
   "name": "indian_ride_in",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13576,
   "name": "j_3508",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13584,
   "name": "b_3510",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13638,
   "name": "r_3546",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 13639,
   "name": "indian_to_army",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13666,
   "name": "indian_ride_away",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13671,
   "name": "j_3567",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13679,
   "name": "b_356F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13734,
   "name": "b_35A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13763,
   "name": "supply",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13780,
   "name": "b_35D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13798,
   "name": "j_35E6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13834,
   "name": "b_360A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13852,
   "name": "b_361C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13862,
   "name": "b_3626",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 13877,
   "name": "j_3635",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 13948,
   "name": "supply_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13981,
   "name": "supply_again",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 14007,
   "name": "b_36B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14025,
   "name": "b_36C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14033,
   "name": "b_36D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14038,
   "name": "r_36D6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14039,
   "name": "intercept_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14054,
   "name": "b_36E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14063,
   "name": "b_36EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14099,
   "name": "b_3713",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14122,
   "name": "b_372A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14132,
   "name": "b_3734",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14139,
   "name": "b_373B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14150,
   "name": "j_3746",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14159,
   "name": "bag_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14181,
   "name": "b_3765",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14183,
   "name": "j_3767",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14197,
   "name": "bag_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14238,
   "name": "b_379E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14254,
   "name": "b_37AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14256,
   "name": "j_37B0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14262,
   "name": "r_37B6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14263,
   "name": "b_37B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14270,
   "name": "b_37BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14285,
   "name": "b_37CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14292,
   "name": "b_37D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14304,
   "name": "j_37E0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14343,
   "name": "b_3807",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14345,
   "name": "j_3809",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14358,
   "name": "bag_fall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14384,
   "name": "r_3830",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14385,
   "name": "bag_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14410,
   "name": "b_384A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14428,
   "name": "r_385C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14429,
   "name": "bags_show",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14448,
   "name": "b_3870",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14449,
   "name": "b_3871",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14485,
   "name": "r_3895",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14486,
   "name": "count_gold",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14490,
   "name": "b_389A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14500,
   "name": "b_38A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14506,
   "name": "b_38AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14512,
   "name": "j_38B0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14521,
   "name": "b_38B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14549,
   "name": "new_army",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14572,
   "name": "j_38EC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14591,
   "name": "b_38FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14596,
   "name": "b_3904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14600,
   "name": "b_3908",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14603,
   "name": "b_390B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14606,
   "name": "b_390E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14619,
   "name": "b_391B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14631,
   "name": "b_3927",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14645,
   "name": "j_3935",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14659,
   "name": "b_3943",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14665,
   "name": "b_3949",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14676,
   "name": "b_3954",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14699,
   "name": "b_396B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14728,
   "name": "b_3988",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14767,
   "name": "j_39AF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14771,
   "name": "draw_month",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14800,
   "name": "b_39D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14804,
   "name": "a_39D4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14805,
   "name": "a_39D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14815,
   "name": "b_39DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14818,
   "name": "j_39E2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 14827,
   "name": "b_39EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14831,
   "name": "a_39EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14832,
   "name": "a_39F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14855,
   "name": "a_3A07",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 14862,
   "name": "army_counts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14929,
   "name": "b_3A51",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14932,
   "name": "r_3A54",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 14933,
   "name": "b_3A55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14953,
   "name": "b_3A69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14966,
   "name": "b_3A76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 14972,
   "name": "draw_counts",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15021,
   "name": "draw_number",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15035,
   "name": "b_3ABB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15045,
   "name": "j_3AC5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15093,
   "name": "draw_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15094,
   "name": "b_3AF6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15098,
   "name": "a_3AFA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15099,
   "name": "a_3AFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15104,
   "name": "a_3B00",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15105,
   "name": "a_3B01",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15117,
   "name": "draw_year",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15152,
   "name": "draw_band_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15161,
   "name": "b_3B39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15165,
   "name": "a_3B3D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15166,
   "name": "a_3B3E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 15189,
   "name": "find_rail",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15191,
   "name": "j_3B57",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15205,
   "name": "b_3B65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15217,
   "name": "b_3B71",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15221,
   "name": "b_3B75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15223,
   "name": "b_3B77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15226,
   "name": "b_3B7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15241,
   "name": "b_3B89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15255,
   "name": "draw_changes",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15265,
   "name": "b_3BA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15282,
   "name": "b_3BB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15291,
   "name": "b_3BBB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15308,
   "name": "b_3BCC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15317,
   "name": "b_3BD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15323,
   "name": "r_3BDB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15324,
   "name": "b_3BDC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15335,
   "name": "draw_army",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15352,
   "name": "b_3BF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15363,
   "name": "j_3C03",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15365,
   "name": "b_3C05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15367,
   "name": "b_3C07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15405,
   "name": "b_3C2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15435,
   "name": "b_3C4B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15456,
   "name": "ai_turn",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15462,
   "name": "ai_move",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 15509,
   "name": "b_3C95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15512,
   "name": "ai_plan",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15523,
   "name": "b_3CA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15540,
   "name": "b_3CB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15555,
   "name": "b_3CC3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15561,
   "name": "b_3CC9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15566,
   "name": "b_3CCE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15570,
   "name": "b_3CD2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15581,
   "name": "b_3CDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15582,
   "name": "b_3CDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15596,
   "name": "b_3CEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15602,
   "name": "ai_base",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15604,
   "name": "b_3CF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15614,
   "name": "ai_moved_clear",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15616,
   "name": "b_3D00",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15625,
   "name": "ai_plan_scores",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15639,
   "name": "b_3D17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15659,
   "name": "j_3D2B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15676,
   "name": "r_3D3C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15677,
   "name": "b_3D3D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15679,
   "name": "j_3D3F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15695,
   "name": "b_3D4F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15713,
   "name": "b_3D61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15717,
   "name": "b_3D65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15719,
   "name": "b_3D67",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15746,
   "name": "b_3D82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15755,
   "name": "b_3D8B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15767,
   "name": "b_3D97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15771,
   "name": "army_steps",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15791,
   "name": "j_3DAF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 15801,
   "name": "b_3DB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15814,
   "name": "b_3DC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15827,
   "name": "b_3DD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15843,
   "name": "r_3DE3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 15844,
   "name": "ai_occupied",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15846,
   "name": "b_3DE6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15871,
   "name": "b_3DFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15889,
   "name": "b_3E11",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15916,
   "name": "b_3E2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15919,
   "name": "b_3E2F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15923,
   "name": "ai_distance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15927,
   "name": "b_3E37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15956,
   "name": "b_3E54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15981,
   "name": "b_3E6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 15989,
   "name": "b_3E75",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16007,
   "name": "b_3E87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16011,
   "name": "distance_ring",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16016,
   "name": "b_3E90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16044,
   "name": "j_3EAC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 16045,
   "name": "a_3EAD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16046,
   "name": "a_3EAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16064,
   "name": "b_3EC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16068,
   "name": "b_3EC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16069,
   "name": "a_3EC5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16074,
   "name": "ai_noise",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16087,
   "name": "b_3ED7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16099,
   "name": "r_3EE3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16100,
   "name": "noise",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16107,
   "name": "b_3EEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16123,
   "name": "b_3EFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16144,
   "name": "b_3F10",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16151,
   "name": "r_3F17",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 16152,
   "name": "ai_best",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16162,
   "name": "b_3F22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16176,
   "name": "b_3F30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16180,
   "name": "ai_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16195,
   "name": "b_3F43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16218,
   "name": "j_3F5A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 16219,
   "name": "a_3F5B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16220,
   "name": "a_3F5C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16234,
   "name": "b_3F6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16238,
   "name": "b_3F6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16253,
   "name": "ai_new_army",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 16258,
   "name": "j_3F82",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 16278,
   "name": "b_3F96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16282,
   "name": "b_3F9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16283,
   "name": "a_3F9B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16288,
   "name": "count_side",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16289,
   "name": "count_hold",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16290,
   "name": "count_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16291,
   "name": "play_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16304,
   "name": "a_3FB0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16306,
   "name": "a_3FB2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 16311,
   "name": "sound_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16312,
   "name": "map_fill_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "map_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "map_bitmap_4400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18432,
   "name": "map_bitmap_4800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "map_bitmap_4c00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "map_bitmap_5000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "map_bitmap_5400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "map_bitmap_5800",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23552,
   "name": "map_bitmap_5c00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24384,
   "name": "map_bitmap_after",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "map_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25576,
   "name": "map_screen_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25592,
   "name": "f_63F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 25593,
   "name": "f_63F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 25600,
   "name": "map_sprites_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25856,
   "name": "smoke_source",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 25984,
   "name": "smoke_built",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26048,
   "name": "map_sprites_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27072,
   "name": "map_sprites_2_69c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28096,
   "name": "map_sprites_2_6dc0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29120,
   "name": "map_sprites_2_71c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30144,
   "name": "map_sprites_2_75c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31168,
   "name": "map_sprites_2_79c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32192,
   "name": "map_sprites_2_7dc0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "map_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33024,
   "name": "map_colours_8100",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33280,
   "name": "map_colours_8200",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33536,
   "name": "map_colours_8300",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33768,
   "name": "flag_pictures",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33808,
   "name": "army_pictures",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33928,
   "name": "pic00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34952,
   "name": "pic00_8888",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35008,
   "name": "pic01_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35608,
   "name": "pic05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36632,
   "name": "pic05_8f18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37208,
   "name": "pic06_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37748,
   "name": "pic09_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38772,
   "name": "pic09_10_9774",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39796,
   "name": "pic09_10_9b74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40268,
   "name": "pic11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "pic11_a000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41168,
   "name": "scene_union",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42068,
   "name": "scene_common",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42968,
   "name": "pic12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43868,
   "name": "scene_conf",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44768,
   "name": "pic13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45792,
   "name": "pic13_b2e0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45888,
   "name": "pic14_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46912,
   "name": "pic14_15_b740",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47008,
   "name": "month_font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47224,
   "name": "year_font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48912,
   "name": "scene_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48913,
   "name": "scene_pointers_bf11",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48916,
   "name": "scene_pointers_bf14",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48917,
   "name": "scene_pointers_bf15",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48920,
   "name": "scene_pointers_bf18",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48921,
   "name": "scene_pointers_bf19",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48923,
   "name": "scene_pointers_bf1b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48924,
   "name": "bag_places",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48929,
   "name": "bag_places_bf21",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48936,
   "name": "ai_base_scores",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48962,
   "name": "ai_target_list",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48988,
   "name": "ai_targets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48989,
   "name": "ai_targets_bf5d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49016,
   "name": "army_cells",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49022,
   "name": "month_names",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49023,
   "name": "month_names_bf7f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "month_names_c000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49154,
   "name": "cursor_points",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49181,
   "name": "cursor_points_c01d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49208,
   "name": "cursor_points_c038",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49235,
   "name": "cursor_grid",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49236,
   "name": "cursor_grid_c054",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49237,
   "name": "cursor_grid_c055",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49238,
   "name": "cursor_grid_c056",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49343,
   "name": "bomb_path",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49376,
   "name": "bomb_path_c0e0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49410,
   "name": "bomb_path_c102",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49444,
   "name": "railway",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49459,
   "name": "railway_c133",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49474,
   "name": "towns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49499,
   "name": "rail_points",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49514,
   "name": "rail_points_c16a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49529,
   "name": "rail_points_c179",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49544,
   "name": "neighbours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49545,
   "name": "neighbours_c189",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49723,
   "name": "flag_places",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49750,
   "name": "flag_places_c256",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49777,
   "name": "army_places",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49804,
   "name": "army_places_c28c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49831,
   "name": "bg_stores",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49832,
   "name": "bg_stores_c2a8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49883,
   "name": "bg_stores_c2db",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49884,
   "name": "bg_stores_c2dc",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49935,
   "name": "picture_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49936,
   "name": "picture_table_c310",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49975,
   "name": "picture_table_c337",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49976,
   "name": "picture_table_c338",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50007,
   "name": "picture_table_c357",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50008,
   "name": "picture_table_c358",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50015,
   "name": "picture_table_c35f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50016,
   "name": "picture_table_c360",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50047,
   "name": "picture_table_c37f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50048,
   "name": "picture_table_c380",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50055,
   "name": "picture_table_c387",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50056,
   "name": "picture_table_c388",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50057,
   "name": "picture_table_c389",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50058,
   "name": "picture_sizes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50074,
   "name": "picture_sizes_c39a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50080,
   "name": "picture_sizes_c3a0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50096,
   "name": "picture_sizes_c3b0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50102,
   "name": "windows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50103,
   "name": "windows_c3b7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50118,
   "name": "windows_c3c6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50119,
   "name": "windows_c3c7",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50120,
   "name": "windows_c3c8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50121,
   "name": "windows_c3c9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 50136,
   "name": "windows_c3d8",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50137,
   "name": "windows_c3d9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50138,
   "name": "picture_busy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50139,
   "name": "map_fill",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "territory_map",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58184,
   "name": "pic17_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58604,
   "name": "count_font",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58612,
   "name": "count_font_e4f4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58780,
   "name": "pic19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61210,
   "name": "map_fill_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61736,
   "name": "mapsfx_init",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61739,
   "name": "mapsfx_start",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61742,
   "name": "mapsfx_play",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 61745,
   "name": "mapsfx_stop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61748,
   "name": "mapsfx_fade",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61749,
   "name": "mapsfx_gate",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61752,
   "name": "mapsfx_transpose",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61755,
   "name": "mapsfx_on",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61758,
   "name": "mapsfx_tick_now",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61761,
   "name": "mapsfx_swing",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61764,
   "name": "mapsfx_tick",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61767,
   "name": "mapsfx_sid",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61770,
   "name": "mapsfx_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61773,
   "name": "mapsfx_length",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61776,
   "name": "mapsfx_repeat",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61779,
   "name": "mapsfx_offset",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61782,
   "name": "mapsfx_speed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61785,
   "name": "mapsfx_instr_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61788,
   "name": "mapsfx_vibrato",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61791,
   "name": "mapsfx_pulse_prog",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61794,
   "name": "mapsfx_effects",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61797,
   "name": "mapsfx_release",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61800,
   "name": "mapsfx_instr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61803,
   "name": "mapsfx_note",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61806,
   "name": "mapsfx_glide_wait",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61809,
   "name": "mapsfx_glide_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61812,
   "name": "mapsfx_glide",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61815,
   "name": "mapsfx_glide_to",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61818,
   "name": "mapsfx_vib_delay",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61821,
   "name": "mapsfx_vib_on",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61824,
   "name": "mapsfx_vib_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61827,
   "name": "mapsfx_vib_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61830,
   "name": "mapsfx_vib_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61833,
   "name": "mapsfx_vib_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61836,
   "name": "mapsfx_sound",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61839,
   "name": "mapsfx_freq_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61842,
   "name": "mapsfx_freq_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61845,
   "name": "mapsfx_pw_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61848,
   "name": "mapsfx_pw_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61851,
   "name": "mapsfx_wave",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61854,
   "name": "mapsfx_ad",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61857,
   "name": "mapsfx_sr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61860,
   "name": "mapsfx_pulse_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61863,
   "name": "mapsfx_pulse_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61866,
   "name": "mapsfx_pulse_dir",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61869,
   "name": "mapsfx_pulse_rate",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61872,
   "name": "mapsfx_filter_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61875,
   "name": "mapsfx_filter_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61878,
   "name": "mapsfx_filter_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61879,
   "name": "mapsfx_wave_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61882,
   "name": "mapsfx_note_pos",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61885,
   "name": "mapsfx_drum_time",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 61888,
   "name": "mapsfx_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61889,
   "name": "mapsfx_reset",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 61904,
   "name": "b_F1D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61915,
   "name": "b_F1DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61923,
   "name": "b_F1E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61946,
   "name": "mapsfx_begin",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 61978,
   "name": "b_F21A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 61983,
   "name": "a_F21F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62022,
   "name": "b_F246",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62035,
   "name": "b_F253",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62067,
   "name": "b_F273",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62075,
   "name": "b_F27B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62077,
   "name": "b_F27D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62105,
   "name": "b_F299",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62110,
   "name": "r_F29E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 62111,
   "name": "mapsfx_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 62113,
   "name": "b_F2A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62130,
   "name": "b_F2B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62134,
   "name": "mapsfx_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 62139,
   "name": "a_F2BB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62141,
   "name": "a_F2BD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62146,
   "name": "a_F2C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62152,
   "name": "b_F2C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62219,
   "name": "b_F30B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62221,
   "name": "b_F30D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62257,
   "name": "b_F331",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62260,
   "name": "j_F334",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 62268,
   "name": "b_F33C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62291,
   "name": "b_F353",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62296,
   "name": "b_F358",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62306,
   "name": "b_F362",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62310,
   "name": "b_F366",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62314,
   "name": "mapsfx_silence",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 62316,
   "name": "b_F36C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62333,
   "name": "mapsfx_voice_off",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62348,
   "name": "mapsfx_next",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 62376,
   "name": "b_F3A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62399,
   "name": "b_F3BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62404,
   "name": "b_F3C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62413,
   "name": "b_F3CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62453,
   "name": "b_F3F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62459,
   "name": "b_F3FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62486,
   "name": "b_F416",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62501,
   "name": "b_F425",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62513,
   "name": "b_F431",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62525,
   "name": "b_F43D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62540,
   "name": "j_F44C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 62580,
   "name": "b_F474",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62611,
   "name": "b_F493",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62634,
   "name": "b_F4AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62654,
   "name": "b_F4BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62665,
   "name": "j_F4C9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 62710,
   "name": "b_F4F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62712,
   "name": "b_F4F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62733,
   "name": "b_F50D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62739,
   "name": "b_F513",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62764,
   "name": "b_F52C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62770,
   "name": "j_F532",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 62779,
   "name": "mapsfx_effects_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 62786,
   "name": "b_F542",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62825,
   "name": "b_F569",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62856,
   "name": "b_F588",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62862,
   "name": "b_F58E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62916,
   "name": "b_F5C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62924,
   "name": "b_F5CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 62927,
   "name": "mapsfx_glide_run",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 62947,
   "name": "j_F5E3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 62956,
   "name": "b_F5EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63000,
   "name": "b_F618",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63035,
   "name": "b_F63B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63047,
   "name": "b_F647",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63050,
   "name": "mapsfx_vibrato_run",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 63117,
   "name": "j_F68D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 63129,
   "name": "b_F699",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63132,
   "name": "b_F69C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63153,
   "name": "b_F6B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63179,
   "name": "b_F6CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63198,
   "name": "mapsfx_pulse_run",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 63208,
   "name": "b_F6E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63224,
   "name": "b_F6F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63260,
   "name": "b_F71C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63296,
   "name": "b_F740",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63310,
   "name": "b_F74E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63334,
   "name": "a_F766",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63343,
   "name": "b_F76F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63362,
   "name": "a_F782",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63368,
   "name": "mapsfx_filter_run",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 63409,
   "name": "b_F7B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63431,
   "name": "b_F7C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63445,
   "name": "b_F7D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63455,
   "name": "mapsfx_programs",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 63463,
   "name": "b_F7E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63498,
   "name": "b_F80A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63506,
   "name": "b_F812",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63507,
   "name": "a_F813",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63537,
   "name": "b_F831",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63546,
   "name": "a_F83A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63553,
   "name": "b_F841",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63557,
   "name": "b_F845",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63561,
   "name": "mapsfx_drum_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 63586,
   "name": "b_F862",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 63595,
   "name": "r_F86B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 63596,
   "name": "mapsfx_set_freq",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 63609,
   "name": "f_F879",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 63610,
   "name": "mapsfx_freqs",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63705,
   "name": "mapsfx_freqs_f8d9",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63706,
   "name": "mapsfx_freqs_f8da",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63802,
   "name": "mapsfx_sounds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63833,
   "name": "mapsfx_sounds_f959",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63864,
   "name": "mapsfx_patterns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63915,
   "name": "mapsfx_patterns_f9ab",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63965,
   "name": "mapsfx_prog_tables",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63976,
   "name": "mapsfx_prog_tables_f9e8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63987,
   "name": "mapsfx_prog_tables_f9f3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63992,
   "name": "mapsfx_prog_tables_f9f8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 63998,
   "name": "mapsfx_prog_tables_f9fe",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64005,
   "name": "mapsfx_prog_tables_fa05",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64012,
   "name": "mapsfx_prog_tables_fa0c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64019,
   "name": "mapsfx_prog_tables_fa13",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64026,
   "name": "mapsfx_prog_data",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64236,
   "name": "mapsfx_instruments",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64237,
   "name": "mapsfx_instruments_faed",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64238,
   "name": "mapsfx_instruments_faee",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64239,
   "name": "mapsfx_instruments_faef",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64240,
   "name": "mapsfx_instruments_faf0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64241,
   "name": "mapsfx_instruments_faf1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64242,
   "name": "mapsfx_instruments_faf2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64243,
   "name": "mapsfx_instruments_faf3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64491,
   "name": "mapsfx_drums",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64497,
   "name": "mapsfx_drums_fbf1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 64503,
   "name": "mapsfx_sound_data",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65527,
   "name": "mapsfx_sound_data_fff7",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 3072,
   "type": "line",
   "text": "the strategic game, called by the script at $0844 once the map's three files are loaded. Saves the stack pointer in the operand at $0CF5, clears the game's turn count ($0399, $039A), sets the machine up ($0F6B), seeds the random numbers from the jiffy clock, the raster line and $D011, clears the sprite list ($1BCA, $1762, $13FC), shows the map ($1B3D), draws every territory's flag and army ($23DC, $23E7), places the start year's armies ($28D3), draws the flags of the owners ($3B97), places the storm ($1547) and the Indians ($26EE) and starts the raster interrupts ($1B79). Then for ever, one month a pass: the month and year on the band ($39B3, $3B0D), the Union's turn ($2B06), the supply phase ($35C3), the storm's move ($1602), the Indians ($2678), the Confederacy's turn ($2AE6), its supply phase and the storm again, the Mexican ($178B) and the European reinforcements ($227A); the month ($0D2D) goes on, January to December and the year ($0389) with it, and the turn count. The game leaves through $0CCF or $0CE3, never by returning."
  },
  {
   "address": 3210,
   "type": "line",
   "text": "the fort: interrupts and screen off ($0CBA), loads file 5 (S1, tape 2 side 2) and calls it at $8000; then reloads M2 ($0CB1)."
  },
  {
   "address": 3224,
   "type": "line",
   "text": "the train: loads file 6 (S2) and calls it at $8000, then reloads M2."
  },
  {
   "address": 3238,
   "type": "line",
   "text": "the battle: loads file 8 (BS, tape 2 side 1) and calls it at $8000, then reloads M2."
  },
  {
   "address": 3249,
   "type": "line",
   "text": "after an arcade sequence: loads file 3 (M2, tape 1 side 2) again over what the sequence overwrote."
  },
  {
   "address": 3258,
   "type": "line",
   "text": "interrupts off, the raster interrupt off and acknowledged, the screen blanked."
  },
  {
   "address": 3279,
   "type": "line",
   "text": "the end of a war one side has won ($0F51 found no army of the other side; $0398 holds the winner): waits 2 x 65,536 loops, clears $039B so that the script loads the ending, and goes on to $0CE3."
  },
  {
   "address": 3299,
   "type": "line",
   "text": "the way out of the strategic game: sound 17, the raster interrupt off, the stack pointer set back to what it was at $0C00 (the operand of the ldx # at $0CF4) and rts to the script. Reached from $0CCF, and from $116F when the computer plays both sides and $10C5 says RUN/STOP was pressed, with $039B = 1 so that no ending loads."
  },
  {
   "address": 3317,
   "type": "line",
   "text": "the operand of the ldx # at $0CF4: the stack pointer at the strategic game's start, written at $0C02; the code from here returns to the script."
  },
  {
   "address": 3320,
   "type": "line",
   "text": "after an arcade sequence and the reload of M2: the machine, the sprite list and the map set up again as at $0C00, the drawn flags and armies forgotten ($0DFA, $0DC6 set to $FF) so that $3B97 draws them all again, the raster interrupts back on, the month and year, and the cursor's place ($1E84 with 26)."
  },
  {
   "address": 3373,
   "type": "line",
   "text": "the month, 0 (January) to 11, stepped by the main loop; at December's end the year ($0389) goes on."
  },
  {
   "address": 3374,
   "type": "line",
   "text": "flipped by each flash of a list ($2846): 1 while its territories are grey."
  },
  {
   "address": 3375,
   "type": "line",
   "text": "the low byte of the list choose_place flashes and in_list searches: $0E6A (the armies) or $0E87 (the territories to enter)."
  },
  {
   "address": 3376,
   "type": "line",
   "text": "the high byte of that list."
  },
  {
   "address": 3377,
   "type": "line",
   "text": "frames to the list's next flash, 20."
  },
  {
   "address": 3378,
   "type": "line",
   "text": "the territory flash_list looks for in its list."
  },
  {
   "address": 3379,
   "type": "line",
   "text": "1 while choose_place waits for a choice."
  },
  {
   "address": 3380,
   "type": "line",
   "text": "1 while flash_list is recolouring the map."
  },
  {
   "address": 3381,
   "type": "line",
   "text": "swap_grey's high nibble while it works on the low one."
  },
  {
   "address": 3382,
   "type": "line",
   "text": "1 once the Indians' attack is on its way."
  },
  {
   "address": 3383,
   "type": "line",
   "text": "the Indians' figure's frame: the smoke's, then the rider's."
  },
  {
   "address": 3384,
   "type": "line",
   "text": "the Indians' figure's x, low byte."
  },
  {
   "address": 3385,
   "type": "line",
   "text": "the Indians' figure's y."
  },
  {
   "address": 3386,
   "type": "line",
   "text": "the Indians' figure's x, ninth bit."
  },
  {
   "address": 3387,
   "type": "line",
   "text": "frames to the Indians' next step, 10 (6 for the rider)."
  },
  {
   "address": 3388,
   "type": "line",
   "text": "set when the attack's delay is over; the rider then sets out."
  },
  {
   "address": 3389,
   "type": "line",
   "text": "steps of ten frames before the rider sets out, 10 to 25."
  },
  {
   "address": 3390,
   "type": "line",
   "text": "the frame of the figure at x 60, y 50 while the attack waits, 0 to 4."
  },
  {
   "address": 3391,
   "type": "line",
   "text": "1 while the rider rides."
  },
  {
   "address": 3392,
   "type": "line",
   "text": "smoke signals left to send, from 10."
  },
  {
   "address": 3393,
   "type": "line",
   "text": "the map cursor's x, low byte, six less than the sprite's (work/cur.py sets it to move the cursor)."
  },
  {
   "address": 3394,
   "type": "line",
   "text": "the cursor's x, high byte."
  },
  {
   "address": 3395,
   "type": "line",
   "text": "the cursor's y, six less than the sprite's."
  },
  {
   "address": 3396,
   "type": "line",
   "text": "frames to the next look at the stick or keys, 12."
  },
  {
   "address": 3397,
   "type": "line",
   "text": "the point of the grid the cursor is on (0 to 26)."
  },
  {
   "address": 3398,
   "type": "line",
   "text": "the point the cursor glides to, and after a choice the one chosen."
  },
  {
   "address": 3399,
   "type": "line",
   "text": "1 while the cursor glides."
  },
  {
   "address": 3400,
   "type": "line",
   "text": "the direction asked this time: 1 left, 2 right, 3 up, 4 down, 0 none."
  },
  {
   "address": 3401,
   "type": "line",
   "text": "counts frames so that the cursor glides every second one."
  },
  {
   "address": 3402,
   "type": "line",
   "text": "half the cursor's distance to its target in x."
  },
  {
   "address": 3403,
   "type": "line",
   "text": "half the cursor's distance in y."
  },
  {
   "address": 3404,
   "type": "line",
   "text": "the cursor's x high byte while cursor_sprite adds 6."
  },
  {
   "address": 3405,
   "type": "line",
   "text": "1 while the waving flag shows, during panel_anim."
  },
  {
   "address": 3406,
   "type": "line",
   "text": "frames to the flag's first figure's next frame, 10."
  },
  {
   "address": 3407,
   "type": "line",
   "text": "frames to the second figure's next frame, 7."
  },
  {
   "address": 3408,
   "type": "line",
   "text": "the first figure's frame, 0 to 3."
  },
  {
   "address": 3409,
   "type": "line",
   "text": "the second figure's frame, 0 to 4."
  },
  {
   "address": 3410,
   "type": "line",
   "text": "frames to the interception figures' next step, 6."
  },
  {
   "address": 3411,
   "type": "line",
   "text": "1 while the interception's figures show."
  },
  {
   "address": 3412,
   "type": "line",
   "text": "the second figure's x."
  },
  {
   "address": 3413,
   "type": "line",
   "text": "the second figure's y."
  },
  {
   "address": 3414,
   "type": "line",
   "text": "the first figure's x."
  },
  {
   "address": 3415,
   "type": "line",
   "text": "the first figure's y."
  },
  {
   "address": 3416,
   "type": "line",
   "text": "the second figure's frame, 0 to 2."
  },
  {
   "address": 3417,
   "type": "line",
   "text": "the first figure's frame, 0 to 2."
  },
  {
   "address": 3418,
   "type": "line",
   "text": "the figures' steps left on their way, 20 at the start."
  },
  {
   "address": 3419,
   "type": "line",
   "text": "the interception animation's steps left, 50."
  },
  {
   "address": 3420,
   "type": "line",
   "text": "frames to panel_anim's next step, 4."
  },
  {
   "address": 3421,
   "type": "line",
   "text": "panel_anim's picture, 0 to 2 (pictures 13 to 15)."
  },
  {
   "address": 3422,
   "type": "line",
   "text": "the storm cloud's x, low byte."
  },
  {
   "address": 3423,
   "type": "line",
   "text": "the cloud's x, ninth bit."
  },
  {
   "address": 3424,
   "type": "line",
   "text": "the cloud's y."
  },
  {
   "address": 3425,
   "type": "line",
   "text": "the cloud's frame, 0 to 2, or 3 for the lightning."
  },
  {
   "address": 3426,
   "type": "line",
   "text": "frames to the cloud's next frame, 7."
  },
  {
   "address": 3427,
   "type": "line",
   "text": "the territory under the cloud, whose army may not move."
  },
  {
   "address": 3428,
   "type": "line",
   "text": "the moving point's x, low byte: where line_move's figure is, from its start."
  },
  {
   "address": 3429,
   "type": "line",
   "text": "the moving point's x, high byte."
  },
  {
   "address": 3430,
   "type": "line",
   "text": "the moving point's y."
  },
  {
   "address": 3431,
   "type": "line",
   "text": "the end of the line, x low byte."
  },
  {
   "address": 3432,
   "type": "line",
   "text": "the end of the line, x high byte."
  },
  {
   "address": 3433,
   "type": "line",
   "text": "the end of the line, y."
  },
  {
   "address": 3434,
   "type": "line",
   "text": "set when the ship sets out ($22C1); nothing reads it."
  },
  {
   "address": 3435,
   "type": "line",
   "text": "the ship's sails, frame 0 (up) to 3 (lowered)."
  },
  {
   "address": 3436,
   "type": "line",
   "text": "the ship's second frame, flipped every six frames."
  },
  {
   "address": 3437,
   "type": "line",
   "text": "frames to the ship's next wave, 6."
  },
  {
   "address": 3438,
   "type": "line",
   "text": "frames to the ship's next step."
  },
  {
   "address": 3439,
   "type": "line",
   "text": "the ship's x, low byte (its ninth bit set)."
  },
  {
   "address": 3440,
   "type": "line",
   "text": "the ship's y."
  },
  {
   "address": 3441,
   "type": "line",
   "text": "1 while the ship shows."
  },
  {
   "address": 3442,
   "type": "line",
   "text": "passes of the main loop to the next ship, 4."
  },
  {
   "address": 3443,
   "type": "line",
   "text": "flipped each step of the ship's way in, so that it moves left every other step."
  },
  {
   "address": 3444,
   "type": "line",
   "text": "1 while the cannon's smoke shows."
  },
  {
   "address": 3445,
   "type": "line",
   "text": "the smoke's x, low byte."
  },
  {
   "address": 3446,
   "type": "line",
   "text": "the smoke's y."
  },
  {
   "address": 3447,
   "type": "line",
   "text": "the smoke's x, high byte."
  },
  {
   "address": 3448,
   "type": "line",
   "text": "the smoke's frame, 0 or 1."
  },
  {
   "address": 3449,
   "type": "line",
   "text": "frames to the smoke's next frame, 4."
  },
  {
   "address": 3450,
   "type": "line",
   "text": "steps of the smoke's drift left, 7."
  },
  {
   "address": 3451,
   "type": "line",
   "text": "frames to the smoke's next step."
  },
  {
   "address": 3452,
   "type": "line",
   "text": "steps of smoke_build left, 3."
  },
  {
   "address": 3453,
   "type": "line",
   "text": "smoke_build's step, 0 to 2."
  },
  {
   "address": 3454,
   "type": "line",
   "text": "where smoke_build starts its rows in the new frame, one for each step ($3C, $3D, $3E)."
  },
  {
   "address": 3457,
   "type": "line",
   "text": "where it starts them in the source frame ($3E, $3D, $3C)."
  },
  {
   "address": 3460,
   "type": "line",
   "text": "frames to the next step of the fort's or the interception's animation (10 or 5)."
  },
  {
   "address": 3461,
   "type": "line",
   "text": "the interception animation's picture, 0 to 2 (pictures 6 to 8)."
  },
  {
   "address": 3462,
   "type": "line",
   "text": "the side whose battle picture and scenery the panel shows."
  },
  {
   "address": 3463,
   "type": "line",
   "text": "the battle picture's steps of scrolling left, 30."
  },
  {
   "address": 3464,
   "type": "line",
   "text": "the scenery's column being drawn, 0 to 9."
  },
  {
   "address": 3465,
   "type": "line",
   "text": "the low byte of the scenery's next column."
  },
  {
   "address": 3466,
   "type": "line",
   "text": "the high byte of the scenery's next column."
  },
  {
   "address": 3467,
   "type": "line",
   "text": "frames left of a wait (wait_frames, wait_25)."
  },
  {
   "address": 3468,
   "type": "line",
   "text": "how many entries of the frame's sprite list are used; the figures add theirs at this place."
  },
  {
   "address": 3469,
   "type": "line",
   "text": "the bomb's x."
  },
  {
   "address": 3470,
   "type": "line",
   "text": "the bomb's y."
  },
  {
   "address": 3471,
   "type": "line",
   "text": "the bomb's step along its path, 0 to 32."
  },
  {
   "address": 3474,
   "type": "line",
   "text": "the bomb's frame, from $C0BF."
  },
  {
   "address": 3475,
   "type": "line",
   "text": "frames to the bomb's next step, also the burst's half-step."
  },
  {
   "address": 3477,
   "type": "line",
   "text": "passes of the main loop an army has stood in territory 19, to 2."
  },
  {
   "address": 3478,
   "type": "line",
   "text": "the explosion's x."
  },
  {
   "address": 3479,
   "type": "line",
   "text": "the explosion's y."
  },
  {
   "address": 3480,
   "type": "line",
   "text": "1 while the explosion shows."
  },
  {
   "address": 3481,
   "type": "line",
   "text": "frames left of the explosion, 18."
  },
  {
   "address": 3482,
   "type": "line",
   "text": "1 while the supply train shows."
  },
  {
   "address": 3483,
   "type": "line",
   "text": "the supply train's x, low byte."
  },
  {
   "address": 3484,
   "type": "line",
   "text": "the train's x, ninth bit."
  },
  {
   "address": 3485,
   "type": "line",
   "text": "the train's y."
  },
  {
   "address": 3486,
   "type": "line",
   "text": "the train's frame, 0 to 3, while it moves."
  },
  {
   "address": 3487,
   "type": "line",
   "text": "frames to the train's next frame, 6."
  },
  {
   "address": 3488,
   "type": "line",
   "text": "1 while the train moves."
  },
  {
   "address": 3489,
   "type": "line",
   "text": "the rail point the train is at."
  },
  {
   "address": 3490,
   "type": "line",
   "text": "the first town's place in the railway's list, found by find_rail."
  },
  {
   "address": 3491,
   "type": "line",
   "text": "for each side, the way its train went last: flipped each time, so the train goes back and forth."
  },
  {
   "address": 3493,
   "type": "line",
   "text": "for each side, the place of its railway's first town."
  },
  {
   "address": 3495,
   "type": "line",
   "text": "for each side, the place of its railway's other town."
  },
  {
   "address": 3497,
   "type": "line",
   "text": "for each side, 1 when its train ran this time."
  },
  {
   "address": 3499,
   "type": "line",
   "text": "each of the 26 territories' owner: 0 the Union, 1 the Confederacy, $FF nobody; a territory where an army stands has $FF here and the army's side in $0DE0. Set by the year's set-up and by every move."
  },
  {
   "address": 3500,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 1, a byte the code names directly."
  },
  {
   "address": 3504,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 5, a byte the code names directly."
  },
  {
   "address": 3505,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 6, a byte the code names directly."
  },
  {
   "address": 3506,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 7, a byte the code names directly."
  },
  {
   "address": 3507,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 8, a byte the code names directly."
  },
  {
   "address": 3510,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 11, a byte the code names directly."
  },
  {
   "address": 3511,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 12, a byte the code names directly."
  },
  {
   "address": 3512,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 13, a byte the code names directly."
  },
  {
   "address": 3514,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 15, a byte the code names directly."
  },
  {
   "address": 3515,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 16, a byte the code names directly."
  },
  {
   "address": 3517,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 18, a byte the code names directly."
  },
  {
   "address": 3518,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 19, a byte the code names directly."
  },
  {
   "address": 3519,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 20, a byte the code names directly."
  },
  {
   "address": 3520,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 21, a byte the code names directly."
  },
  {
   "address": 3521,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 22, a byte the code names directly."
  },
  {
   "address": 3522,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 23, a byte the code names directly."
  },
  {
   "address": 3523,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 24, a byte the code names directly."
  },
  {
   "address": 3524,
   "type": "line",
   "text": "territory_owner, continued: the owner of territory 25, a byte the code names directly."
  },
  {
   "address": 3525,
   "type": "line",
   "text": "the side whose turn it is: 0 the Union, 1 the Confederacy."
  },
  {
   "address": 3526,
   "type": "line",
   "text": "the owner each territory's flag place shows, compared with $0DAB by draw_changes to redraw only what changed."
  },
  {
   "address": 3552,
   "type": "line",
   "text": "the side of the army in each of the 26 territories: 0 the Union, 1 the Confederacy, $FF none."
  },
  {
   "address": 3555,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 3, a byte the code names directly."
  },
  {
   "address": 3556,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 4, a byte the code names directly."
  },
  {
   "address": 3558,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 6, a byte the code names directly."
  },
  {
   "address": 3560,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 8, a byte the code names directly."
  },
  {
   "address": 3562,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 10, a byte the code names directly."
  },
  {
   "address": 3563,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 11, a byte the code names directly."
  },
  {
   "address": 3564,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 12, a byte the code names directly."
  },
  {
   "address": 3565,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 13, a byte the code names directly."
  },
  {
   "address": 3566,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 14, a byte the code names directly."
  },
  {
   "address": 3568,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 16, a byte the code names directly."
  },
  {
   "address": 3569,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 17, a byte the code names directly."
  },
  {
   "address": 3570,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 18, a byte the code names directly."
  },
  {
   "address": 3571,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 19, a byte the code names directly."
  },
  {
   "address": 3573,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 21, a byte the code names directly."
  },
  {
   "address": 3575,
   "type": "line",
   "text": "army_side, continued: the side of the army in territory 23, a byte the code names directly."
  },
  {
   "address": 3578,
   "type": "line",
   "text": "the army each territory's army place shows, compared with $0DE0 by draw_changes."
  },
  {
   "address": 3604,
   "type": "line",
   "text": "the cavalry of the army in each territory, up to 9."
  },
  {
   "address": 3607,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 3, a byte the code names directly."
  },
  {
   "address": 3608,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 4, a byte the code names directly."
  },
  {
   "address": 3610,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 6, a byte the code names directly."
  },
  {
   "address": 3612,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 8, a byte the code names directly."
  },
  {
   "address": 3614,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 10, a byte the code names directly."
  },
  {
   "address": 3615,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 11, a byte the code names directly."
  },
  {
   "address": 3616,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 12, a byte the code names directly."
  },
  {
   "address": 3617,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 13, a byte the code names directly."
  },
  {
   "address": 3618,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 14, a byte the code names directly."
  },
  {
   "address": 3620,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 16, a byte the code names directly."
  },
  {
   "address": 3621,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 17, a byte the code names directly."
  },
  {
   "address": 3622,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 18, a byte the code names directly."
  },
  {
   "address": 3623,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 19, a byte the code names directly."
  },
  {
   "address": 3625,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 21, a byte the code names directly."
  },
  {
   "address": 3627,
   "type": "line",
   "text": "army_cavalry, continued: the cavalry of the army in territory 23, a byte the code names directly."
  },
  {
   "address": 3630,
   "type": "line",
   "text": "the infantry of the army in each territory, up to 18."
  },
  {
   "address": 3633,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 3, a byte the code names directly."
  },
  {
   "address": 3634,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 4, a byte the code names directly."
  },
  {
   "address": 3636,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 6, a byte the code names directly."
  },
  {
   "address": 3638,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 8, a byte the code names directly."
  },
  {
   "address": 3640,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 10, a byte the code names directly."
  },
  {
   "address": 3641,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 11, a byte the code names directly."
  },
  {
   "address": 3642,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 12, a byte the code names directly."
  },
  {
   "address": 3643,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 13, a byte the code names directly."
  },
  {
   "address": 3644,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 14, a byte the code names directly."
  },
  {
   "address": 3646,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 16, a byte the code names directly."
  },
  {
   "address": 3647,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 17, a byte the code names directly."
  },
  {
   "address": 3648,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 18, a byte the code names directly."
  },
  {
   "address": 3649,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 19, a byte the code names directly."
  },
  {
   "address": 3651,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 21, a byte the code names directly."
  },
  {
   "address": 3653,
   "type": "line",
   "text": "army_infantry, continued: the infantry of the army in territory 23, a byte the code names directly."
  },
  {
   "address": 3656,
   "type": "line",
   "text": "the cannon of the army in each territory, up to 3."
  },
  {
   "address": 3659,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 3, a byte the code names directly."
  },
  {
   "address": 3660,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 4, a byte the code names directly."
  },
  {
   "address": 3662,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 6, a byte the code names directly."
  },
  {
   "address": 3664,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 8, a byte the code names directly."
  },
  {
   "address": 3666,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 10, a byte the code names directly."
  },
  {
   "address": 3667,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 11, a byte the code names directly."
  },
  {
   "address": 3668,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 12, a byte the code names directly."
  },
  {
   "address": 3669,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 13, a byte the code names directly."
  },
  {
   "address": 3670,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 14, a byte the code names directly."
  },
  {
   "address": 3672,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 16, a byte the code names directly."
  },
  {
   "address": 3673,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 17, a byte the code names directly."
  },
  {
   "address": 3674,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 18, a byte the code names directly."
  },
  {
   "address": 3675,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 19, a byte the code names directly."
  },
  {
   "address": 3677,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 21, a byte the code names directly."
  },
  {
   "address": 3679,
   "type": "line",
   "text": "army_cannon, continued: the cannon of the army in territory 23, a byte the code names directly."
  },
  {
   "address": 3682,
   "type": "line",
   "text": "the territory a march (or the cloud's or an army's move) starts from."
  },
  {
   "address": 3683,
   "type": "line",
   "text": "the territory it goes to."
  },
  {
   "address": 3684,
   "type": "line",
   "text": "1 while the marching army's figure shows."
  },
  {
   "address": 3685,
   "type": "line",
   "text": "the marching figure's x, low byte."
  },
  {
   "address": 3686,
   "type": "line",
   "text": "its x, high byte."
  },
  {
   "address": 3687,
   "type": "line",
   "text": "its y."
  },
  {
   "address": 3688,
   "type": "line",
   "text": "1 while an animation in the panel runs; the frame then adds none of the moving figures."
  },
  {
   "address": 3689,
   "type": "line",
   "text": "1 while the frame interrupt's work runs, so that it does not start twice."
  },
  {
   "address": 3690,
   "type": "line",
   "text": "the list of the side's armies that may still move this turn, their territories, ending in $FF."
  },
  {
   "address": 3691,
   "type": "line",
   "text": "may_move, continued: place 1 of the list of armies that may still move, a byte the code names directly."
  },
  {
   "address": 3716,
   "type": "line",
   "text": "the territory of the army moving."
  },
  {
   "address": 3717,
   "type": "line",
   "text": "the territory it moves into."
  },
  {
   "address": 3718,
   "type": "line",
   "text": "the side of the army figure being shown or marched."
  },
  {
   "address": 3719,
   "type": "line",
   "text": "the list of the territories the chosen army may enter, ending in $FF."
  },
  {
   "address": 3745,
   "type": "line",
   "text": "the fort animation's picture, flipped each step."
  },
  {
   "address": 3746,
   "type": "line",
   "text": "the fort animation's steps left, 35."
  },
  {
   "address": 3748,
   "type": "line",
   "text": "set when a side of a strategic battle has no units left."
  },
  {
   "address": 3749,
   "type": "line",
   "text": "the territory of an ally battle_setup looks at."
  },
  {
   "address": 3750,
   "type": "line",
   "text": "the infantry of two armies joining."
  },
  {
   "address": 3751,
   "type": "line",
   "text": "their cavalry."
  },
  {
   "address": 3752,
   "type": "line",
   "text": "their cannon."
  },
  {
   "address": 3753,
   "type": "line",
   "text": "the marching or dying army's frame, 0 to 2."
  },
  {
   "address": 3755,
   "type": "line",
   "text": "passes an army has stood in territory 8, to 2."
  },
  {
   "address": 3756,
   "type": "line",
   "text": "passes an army has stood in territory 3, to 2."
  },
  {
   "address": 3757,
   "type": "line",
   "text": "which of the two the Indians attack: 0 for territory 3, 1 for 8."
  },
  {
   "address": 3758,
   "type": "line",
   "text": "the x of the Indians' two targets' places, which indian_to_army turns into the rider's x by adding $F0 with the ninth bit set ($7C, $68)."
  },
  {
   "address": 3760,
   "type": "line",
   "text": "their y, which indian_to_army turns into the rider's y by adding $78 ($4A, $6E)."
  },
  {
   "address": 3762,
   "type": "line",
   "text": "the rider's steps back, 10."
  },
  {
   "address": 3763,
   "type": "line",
   "text": "the territories the Indians attack: 3 and 8."
  },
  {
   "address": 3765,
   "type": "line",
   "text": "the side whose bank and bags show: the train's side, or the interceptor's."
  },
  {
   "address": 3766,
   "type": "line",
   "text": "1 while the bag of gold shows."
  },
  {
   "address": 3767,
   "type": "line",
   "text": "the bag's x."
  },
  {
   "address": 3768,
   "type": "line",
   "text": "the bag's y."
  },
  {
   "address": 3769,
   "type": "line",
   "text": "0 while the bag comes, 1 while it falls, 2 when it lands."
  },
  {
   "address": 3770,
   "type": "line",
   "text": "frames of the bag's fall before it lands, 6."
  },
  {
   "address": 3771,
   "type": "line",
   "text": "each side's bags of gold, five of which make a new army."
  },
  {
   "address": 3773,
   "type": "line",
   "text": "1 while the bank's bags show."
  },
  {
   "address": 3774,
   "type": "line",
   "text": "new_army's place in the railway's list where a run of the side's territories starts."
  },
  {
   "address": 3775,
   "type": "line",
   "text": "the rail territory new_army looks at."
  },
  {
   "address": 3776,
   "type": "line",
   "text": "1 while the frame interrupt adds this frame's figures to the list, so that list_to_mux does not copy a list half built and the work does not start twice."
  },
  {
   "address": 3777,
   "type": "line",
   "text": "the computer's score for each territory, for the army it is moving."
  },
  {
   "address": 3803,
   "type": "line",
   "text": "0 for each territory the computer has sent an army to this turn, $FF for the others."
  },
  {
   "address": 3829,
   "type": "line",
   "text": "each territory's distance from the computer's army, 0 to 3, $FF beyond."
  },
  {
   "address": 3856,
   "type": "line",
   "text": "the computer's plan for the turn, 0 to 4."
  },
  {
   "address": 3857,
   "type": "line",
   "text": "the territory of the computer's army being moved."
  },
  {
   "address": 3858,
   "type": "line",
   "text": "army_steps' infantry as it counts."
  },
  {
   "address": 3859,
   "type": "line",
   "text": "army_steps' cavalry."
  },
  {
   "address": 3860,
   "type": "line",
   "text": "army_steps' cannon."
  },
  {
   "address": 3861,
   "type": "line",
   "text": "a byte of the scores' arithmetic."
  },
  {
   "address": 3862,
   "type": "line",
   "text": "a count in the scores' arithmetic."
  },
  {
   "address": 3863,
   "type": "line",
   "text": "the distance distance_ring spreads from; the noise's size in noise."
  },
  {
   "address": 3864,
   "type": "line",
   "text": "the best score found ($3F18), 0 for none."
  },
  {
   "address": 3865,
   "type": "line",
   "text": "the distance ai_step looks for as it walks back."
  },
  {
   "address": 3866,
   "type": "line",
   "text": "1 while draw_changes runs."
  },
  {
   "address": 3867,
   "type": "line",
   "text": "1 while the smoke after a burst shows."
  },
  {
   "address": 3868,
   "type": "line",
   "text": "its frame, 0 to 4."
  },
  {
   "address": 3869,
   "type": "line",
   "text": "frames to its next frame, 5."
  },
  {
   "address": 3870,
   "type": "line",
   "text": "intercept_check's rail point, kept across its calls."
  },
  {
   "address": 3871,
   "type": "line",
   "text": "a random number in A, as the title's $82BC: 1 + $0F4C + $0F4F (sec, then adc), then + $0F50 with the carry out of that first sum, pushed into the shift register $0F4B-$0F50. Seeded at $0C10."
  },
  {
   "address": 3915,
   "type": "line",
   "text": "the generator's six bytes, its new value at $0F4B and the five before it."
  },
  {
   "address": 3916,
   "type": "line",
   "text": "the random generator's second byte, seeded from $A2."
  },
  {
   "address": 3917,
   "type": "line",
   "text": "the generator's third byte."
  },
  {
   "address": 3918,
   "type": "line",
   "text": "the generator's fourth byte."
  },
  {
   "address": 3919,
   "type": "line",
   "text": "the generator's fifth byte, seeded from the raster line."
  },
  {
   "address": 3920,
   "type": "line",
   "text": "the generator's sixth byte, seeded from $D011."
  },
  {
   "address": 3921,
   "type": "line",
   "text": "looks for an army of side 1, then of side 0, in $0DE0: when a side has none, the other ($0398) has won and the game ends ($0CCF)."
  },
  {
   "address": 3947,
   "type": "line",
   "text": "the map's machine: all RAM but I/O, the CIAs quiet, video bank 1, black border and background, sprites off, a multicolour bitmap at $4000 with its screen at $6000 ($D018 = $80, $D011 = $2B until $1B3D turns it on, $D016 = $18); the multiplexer's sort order reset (0 to 31 in $1427) and its x positions cleared; the sprites' shared colours 10 and 0; the NMI and reset vectors on an rti ($0FF9); the sound driver's init ($F128)."
  },
  {
   "address": 4089,
   "type": "line",
   "text": "rti: the map's NMI handler."
  },
  {
   "address": 4090,
   "type": "line",
   "text": "reads joystick 2 ($DC00) into $1069-$106B."
  },
  {
   "address": 4103,
   "type": "line",
   "text": "reads joystick 1 ($DC01, port B an input) into $1069-$106B: the Confederacy's stick when two people play."
  },
  {
   "address": 4113,
   "type": "line",
   "text": "turns a joystick byte into $1069 (left -1, right +1), $106A (up -1, down +1) and $106B (0 while fire is held)."
  },
  {
   "address": 4145,
   "type": "line",
   "text": "the key pressed, as the title's read_key, through its own tables ($106D, $1075, $107D): its code, or $FF for none."
  },
  {
   "address": 4201,
   "type": "line",
   "text": "the stick's left or right this frame, -1, 0 or +1, from the joystick ($1011) or the keys Z and X ($24DD)."
  },
  {
   "address": 4202,
   "type": "line",
   "text": "the stick's up or down, -1, 0 or +1, from the joystick or the keys P and L."
  },
  {
   "address": 4203,
   "type": "line",
   "text": "0 while fire (or space, $24DD) is held, 1 otherwise."
  },
  {
   "address": 4205,
   "type": "line",
   "text": "the keyboard's eight row selects and column bytes."
  },
  {
   "address": 4213,
   "type": "line",
   "text": "the low bytes of each row's key codes, from $1085."
  },
  {
   "address": 4221,
   "type": "line",
   "text": "the high bytes of the rows' pointers; from $1085 the 64 key codes, as in the title's table."
  },
  {
   "address": 4293,
   "type": "line",
   "text": "the key read this frame ($1031): P, L, Z, X and space move and click, $02 is the code of the Commodore key, which ends the computer's game when it plays both sides ($1162)."
  },
  {
   "address": 4294,
   "type": "line",
   "text": "the raster interrupt at line 224, the frame's work: arms line 0 for the multiplexer ($1182), copies this frame's sprite list into the multiplexer's and sorts it ($1762, $13FC), and with interrupts back on (a busy flag $0E69 keeps it from running twice) the cursor ($1ACE), the sound ($F12E, unless a sound is being started, $3FB7), the timers ($1C30) and, unless the map is being drawn ($0EC0), the frame's figures into the list: the bomb, the Indians, the ship, the marching army, the explosion, the supply train, the smoke ($1C79 to $18F2, skipped while $0E68 says an animation in the panel runs), then the ship's sail, the interception's figures, the flag, the fort's figures and the reinforcements' figures ($21FE to $3775); then the animations' steps, the keyboard ($1031 into $10C5) and the stick or keys of the side to play ($24A2), the cursor's move ($254C, $25D1), the flags ($3B97) and the army counts under the cursor ($3A0E). The Commodore key in a game the computer plays alone ends it ($0CE3)."
  },
  {
   "address": 4482,
   "type": "line",
   "text": "the multiplexer's interrupt at line 0: puts the first seven virtual sprites in the sorted order ($1427) on hardware sprites 1 to 7 (pointer, colour, x with its ninth bit, y), then arms the line just below sprite 1 for $11E7, or line 224 for the frame interrupt when that is past line 214."
  },
  {
   "address": 4545,
   "type": "line",
   "text": "the operand of the ldy # at $11C0: mux_first's count of the seven sprites."
  },
  {
   "address": 4583,
   "type": "line",
   "text": "the multiplexer's interrupt down the screen: for each next virtual sprite in the sorted order, whose hardware sprite ($1289: 1 to 7 round) has been drawn by now, moves it to the virtual sprite's place; it stops at the first one whose hardware sprite is still being drawn and arms the line below it, and after the 32nd, or past line 214, arms line 224 for $10C6. The position in the order is kept in the operand at $11F6."
  },
  {
   "address": 4598,
   "type": "line",
   "text": "the operand of the ldy # at $11F5, the multiplexer's place in the sorted order: 7 at the frame's start, stored at $1251 as it goes."
  },
  {
   "address": 4655,
   "type": "line",
   "text": "the operand of the ldy # at $122E: mux_next's place in the order while it moves a sprite."
  },
  {
   "address": 4693,
   "type": "line",
   "text": "the operand of the lda # at $1254, A saved by mux_next ($11E7) for the rti; the next two operands keep X and Y."
  },
  {
   "address": 4695,
   "type": "line",
   "text": "the operand of the ldx # at $1256: X saved by mux_next."
  },
  {
   "address": 4697,
   "type": "line",
   "text": "the operand of the ldy # at $1258: Y saved by mux_next."
  },
  {
   "address": 4745,
   "type": "line",
   "text": "the hardware sprite each virtual sprite in the sorted order goes on: 1 to 7 and round, 32 entries."
  },
  {
   "address": 4780,
   "type": "line",
   "text": "the mask that clears each hardware sprite's ninth x bit in $D010, by sprite (from sprite 0 at $12AC)."
  },
  {
   "address": 4781,
   "type": "line",
   "text": "mux_bit_off, continued: the masks from sprite 1, which mux_first reads by its count from 0."
  },
  {
   "address": 4788,
   "type": "line",
   "text": "the bit that sets each hardware sprite's ninth x bit in $D010, by sprite."
  },
  {
   "address": 4789,
   "type": "line",
   "text": "mux_bit_on, continued: the bits from sprite 1."
  },
  {
   "address": 4796,
   "type": "line",
   "text": "the 32 virtual sprites' y positions, copied from the frame's list ($135C) by $1762."
  },
  {
   "address": 4828,
   "type": "line",
   "text": "the 32 virtual sprites' x positions, low byte."
  },
  {
   "address": 4860,
   "type": "line",
   "text": "the 32 virtual sprites' x positions, the ninth bit."
  },
  {
   "address": 4892,
   "type": "line",
   "text": "the 32 virtual sprites' pointers."
  },
  {
   "address": 4924,
   "type": "line",
   "text": "the 32 virtual sprites' colours."
  },
  {
   "address": 4956,
   "type": "line",
   "text": "the frame's sprite list, built by the figures' routines each frame: the y of each of its 32 entries; $E8 (off the bottom) for an unused one ($1BCA)."
  },
  {
   "address": 4957,
   "type": "line",
   "text": "list_y, continued: the second sprite of a figure of two, which its routines write at X + 1."
  },
  {
   "address": 4988,
   "type": "line",
   "text": "the list's x positions, low byte."
  },
  {
   "address": 4989,
   "type": "line",
   "text": "list_x, continued: the second sprite's x."
  },
  {
   "address": 5020,
   "type": "line",
   "text": "the list's x positions, the ninth bit."
  },
  {
   "address": 5021,
   "type": "line",
   "text": "list_x_hi, continued: the second sprite's ninth bit."
  },
  {
   "address": 5052,
   "type": "line",
   "text": "the list's sprite pointers ($9A, a blank frame, for an unused one)."
  },
  {
   "address": 5053,
   "type": "line",
   "text": "list_ptr, continued: the second sprite's pointer."
  },
  {
   "address": 5084,
   "type": "line",
   "text": "the list's colours."
  },
  {
   "address": 5085,
   "type": "line",
   "text": "list_colour, continued: the second sprite's colour."
  },
  {
   "address": 5116,
   "type": "line",
   "text": "sorts the 32 entries' order ($1427) by y, an insertion sort that swaps each one down past those below it."
  },
  {
   "address": 5158,
   "type": "line",
   "text": "the rts of mux_sort, which is also the base of its reads of the entry before ($1426,x with X from 1)."
  },
  {
   "address": 5159,
   "type": "line",
   "text": "the order of the 32 virtual sprites by y, top first."
  },
  {
   "address": 5191,
   "type": "line",
   "text": "draws picture X of the table at $C38A-$C3C9 into window A (the panel at the map's bottom left and the like): the picture's width ($C38A) and height ($C3A0) in cells, its bitmap, screen and colour bytes ($C30F, $C337, $C35F) and the window's place ($C3B6, $C3C8) into its copy loops' operands; a busy flag at $C3DA keeps two from running at once."
  },
  {
   "address": 5304,
   "type": "line",
   "text": "the low byte of draw_picture's bitmap source: the low byte of the address of the lda at $14B7, written at $1464, $14C9."
  },
  {
   "address": 5305,
   "type": "line",
   "text": "the high byte of draw_picture's bitmap source: the high byte of the address of the lda at $14B7, written at $146A, $14D1."
  },
  {
   "address": 5307,
   "type": "line",
   "text": "the low byte of draw_picture's bitmap store: the low byte of the address of the sta at $14BA, written at $148B, $14DA."
  },
  {
   "address": 5308,
   "type": "line",
   "text": "the high byte of draw_picture's bitmap store: the high byte of the address of the sta at $14BA, written at $1491, $14E2."
  },
  {
   "address": 5364,
   "type": "line",
   "text": "the low byte of draw_picture's screen source: the low byte of the address of the lda at $14F3, written at $1470, $1509."
  },
  {
   "address": 5365,
   "type": "line",
   "text": "the high byte of draw_picture's screen source: the high byte of the address of the lda at $14F3, written at $1476, $1511."
  },
  {
   "address": 5367,
   "type": "line",
   "text": "the low byte of draw_picture's screen store: the low byte of the address of the sta at $14F6, written at $1497, $152C."
  },
  {
   "address": 5368,
   "type": "line",
   "text": "the high byte of draw_picture's screen store: the high byte of the address of the sta at $14F6, written at $14A0, $1537."
  },
  {
   "address": 5370,
   "type": "line",
   "text": "the low byte of draw_picture's colour source: the low byte of the address of the lda at $14F9, written at $147C, $151B."
  },
  {
   "address": 5371,
   "type": "line",
   "text": "the high byte of draw_picture's colour source: the high byte of the address of the lda at $14F9, written at $1482, $1523."
  },
  {
   "address": 5373,
   "type": "line",
   "text": "the low byte of draw_picture's colour store: the low byte of the address of the sta at $14FC, written at $149A, $152F."
  },
  {
   "address": 5374,
   "type": "line",
   "text": "the high byte of draw_picture's colour store: the high byte of the address of the sta at $14FC, written at $14A6, $153D."
  },
  {
   "address": 5447,
   "type": "line",
   "text": "with the storm on ($0385), puts the cloud on a random territory of the first 25 ($0D63) at the territory's place ($C271, $C28C)."
  },
  {
   "address": 5496,
   "type": "line",
   "text": "with the storm on, adds the cloud to the frame's list, two sprites side by side, its frame ($0D61) from $BA; frame 3, the lightning, from $C0."
  },
  {
   "address": 5591,
   "type": "line",
   "text": "every seventh frame steps the cloud's frame round 0 to 2, and one time in sixteen shows the lightning (3)."
  },
  {
   "address": 5634,
   "type": "line",
   "text": "with the storm on, moves the cloud to a neighbouring territory chosen at random ($163D) along a line ($1D7C, $162A at each step)."
  },
  {
   "address": 5674,
   "type": "line",
   "text": "the step routine of the cloud's move: the line's point ($0D64-$0D66) becomes the cloud's place ($0D5E-$0D60)."
  },
  {
   "address": 5693,
   "type": "line",
   "text": "picks the cloud's next territory from the neighbours of the one it is over ($C188's list), each passed with a chance of 15 in 16, and works out its place."
  },
  {
   "address": 5713,
   "type": "line",
   "text": "the low byte of the cloud's territory's neighbour list: the low byte of the address of the lda at $1650, written at $1645."
  },
  {
   "address": 5714,
   "type": "line",
   "text": "the high byte of the cloud's territory's neighbour list: the high byte of the address of the lda at $1650, written at $164B."
  },
  {
   "address": 5766,
   "type": "line",
   "text": "shows an army marching from territory $0E62 to $0E63: both places from $C271/$C28C, then the figure moved along the line ($1D7C, $1710 at each step) with sound 24, unless the two are the same."
  },
  {
   "address": 5904,
   "type": "line",
   "text": "the step routine of a march: the line's point becomes the marching figure's place ($0E65-$0E67)."
  },
  {
   "address": 5923,
   "type": "line",
   "text": "while an army marches ($0E64), adds its figure to the frame's list: the side's soldier ($97, or $9B for the Confederacy, plus the frame $0EA9), in colour 6 or 11."
  },
  {
   "address": 5969,
   "type": "line",
   "text": "the marching army's side: 0 shows it in the Union's colour 6, otherwise 11: the operand of the lda at $1750, written at $172E."
  },
  {
   "address": 5986,
   "type": "line",
   "text": "unless the map is being drawn ($0EC0), copies the frame's sprite list ($135C-$13FB) into the multiplexer's ($12BC-$133B)."
  },
  {
   "address": 6027,
   "type": "line",
   "text": "with the Indians on ($0384), and while an army of either side stands in territory 19 ($0DF3; the manual's Mexican bombs Texas): every second pass of the main loop a bomb is thrown there: sound 26, a pause, and the bomb's flight along the 32 steps of $C0E0/$C102 (frames from $C0BF), its burst at the 17th ($1870); the army loses 6 infantry, 3 cavalry and a cannon ($349B)."
  },
  {
   "address": 6166,
   "type": "line",
   "text": "an animation in the bottom-left panel ($1447): picture 13 in window 1 and the waving flag on ($0D4D), then pictures 13 to 15 in turn for 60 steps of four frames (13 in window 1, 14 and 15 in window 6), and the panel's normal picture back ($340C). Played at the start of a supply phase ($35EB)."
  },
  {
   "address": 6235,
   "type": "line",
   "text": "the panel animation's steps left, 60 at the start: the operand of the ldx at $185A, written at $182C, $185D."
  },
  {
   "address": 6256,
   "type": "line",
   "text": "the Mexican's bomb bursts: sound 18 and the explosion's figure ($0D96-$0D99) for 18 frames."
  },
  {
   "address": 6284,
   "type": "line",
   "text": "the smoke after the burst: sound 8 and five frames of it ($0F1B-$0F1D)."
  },
  {
   "address": 6305,
   "type": "line",
   "text": "moves the explosion's figure four pixels right and half a pixel up a frame, for 18 frames, then the smoke ($188C)."
  },
  {
   "address": 6349,
   "type": "line",
   "text": "adds the explosion's figure to the frame's list (pointer $B9)."
  },
  {
   "address": 6386,
   "type": "line",
   "text": "adds the smoke's figure (pointers $F8 to $FC, one a five frames) to the list until it has gone."
  },
  {
   "address": 6454,
   "type": "line",
   "text": "sound 17 and sound 3, and two figures for an interception of a train ($36F2): one at x 150, y 104 ($0D56, $0D57, frame $0D59) and one of two sprites at x 150, y 106 ($0D54, $0D55, frame $0D58), with their timers ($0D52, $0D5A)."
  },
  {
   "address": 6503,
   "type": "line",
   "text": "while the interception's figures show ($0D53), adds them to the list: the first (pointer $EB + its frame, colour 15, or 6 when $0DC5 is set) and the second, two sprites one above the other (pointers $E5 + its frame and three on, colour 8)."
  },
  {
   "address": 6614,
   "type": "line",
   "text": "every sixth frame steps the figures' frames and moves them along, left and down."
  },
  {
   "address": 6743,
   "type": "line",
   "text": "while $0D4D is set (during $1816), adds two figures to the list: pointer $EF + a frame stepped every 10 frames at x 84, y 83 in colour 7, and pointer $F3 + a frame stepped every 7 at x 107, y 107 in colour 1."
  },
  {
   "address": 6862,
   "type": "line",
   "text": "puts the cursor, sprite 0 (pointer $E4, white), at $0D41-$0D43 plus 6."
  },
  {
   "address": 6913,
   "type": "line",
   "text": "while a list of territories flashes ($1B3B), shows the next one in turn ($1B1F reads it, $1686 marks it)."
  },
  {
   "address": 6944,
   "type": "line",
   "text": "the low byte of the list territory_blink shows: the low byte of the address of the lda at $1B1F, written at $1B09."
  },
  {
   "address": 6945,
   "type": "line",
   "text": "the high byte of the list territory_blink shows: the high byte of the address of the lda at $1B1F, written at $1B0F."
  },
  {
   "address": 6971,
   "type": "line",
   "text": "1 while a list of territories flashes for a move ($3988)."
  },
  {
   "address": 6972,
   "type": "line",
   "text": "the position in the flashing list."
  },
  {
   "address": 6973,
   "type": "line",
   "text": "sprites off, the screen blanked, the map's colours copied ($1B5B), the screen on."
  },
  {
   "address": 7003,
   "type": "line",
   "text": "copies the map's colour RAM, 1,024 bytes from $8000."
  },
  {
   "address": 7033,
   "type": "line",
   "text": "the raster interrupt for the frame handler at line $F9 ($10C6), interrupts on; all eight sprites on and multicolour, but sprite 0 (the cursor) off when the computer plays both sides."
  },
  {
   "address": 7114,
   "type": "line",
   "text": "empties the frame's sprite list: every entry off the screen (y $E8) with the blank frame $9A; the list's length $0D8C to 0."
  },
  {
   "address": 7135,
   "type": "line",
   "text": "while the supply train runs ($0D9A), adds it to the list (pointer $90 + its frame $0D9E while it moves) at $0D9B-$0D9D."
  },
  {
   "address": 7184,
   "type": "line",
   "text": "every sixth frame steps the supply train's frame round 0 to 3 while it moves ($0DA0)."
  },
  {
   "address": 7216,
   "type": "line",
   "text": "once a frame, counts each of the map's timers down to 0: $0D9F, $1D30, $0D84, $0D8B, $0D6D, $0D6E, $0D93, $0D5C and $0D31."
  },
  {
   "address": 7289,
   "type": "line",
   "text": "with the Indians on (so the Mexican too), adds the bomb to the list at $0D8D/$0D8E, pointer $A6 + its frame $0D92."
  },
  {
   "address": 7332,
   "type": "line",
   "text": "puts the supply train at point X of the railway's points ($C15B, $C16A and $C179: x, its ninth bit and y) and shows it ($0D9A = 1)."
  },
  {
   "address": 7371,
   "type": "line",
   "text": "the line from $0D64-$0D66 to $0D67-$0D69: its lengths in x and y ($1D29, $1D2A) and their directions ($1D2B, $1D2C)."
  },
  {
   "address": 7465,
   "type": "line",
   "text": "the line's length in x."
  },
  {
   "address": 7466,
   "type": "line",
   "text": "the line's length in y."
  },
  {
   "address": 7467,
   "type": "line",
   "text": "the line's direction in x, +1 or -1."
  },
  {
   "address": 7468,
   "type": "line",
   "text": "its direction in y."
  },
  {
   "address": 7469,
   "type": "line",
   "text": "steps to the next step along the shorter direction."
  },
  {
   "address": 7470,
   "type": "line",
   "text": "1 once x has arrived."
  },
  {
   "address": 7471,
   "type": "line",
   "text": "1 once y has arrived."
  },
  {
   "address": 7472,
   "type": "line",
   "text": "frames left of wait_2."
  },
  {
   "address": 7473,
   "type": "line",
   "text": "moves the supply train from its place to rail point X along a line ($1D7C, with $1E71 at each step)."
  },
  {
   "address": 7548,
   "type": "line",
   "text": "moves a figure from $0D64-$0D66 to $0D67-$0D69 a pixel at a time along a straight line, the longer direction every step and the other in proportion, waiting two frames a step ($1E66) and calling the step routine set in the jmp at $1DE8 at each."
  },
  {
   "address": 7588,
   "type": "line",
   "text": "how many steps along x the line takes for each step along y: the operand of the lda at $1DA3, written at $1D84, $1D95, $1DA0."
  },
  {
   "address": 7631,
   "type": "line",
   "text": "how many steps along y the line takes for each step along x: the operand of the lda at $1DCE, written at $1D87, $1DC0, $1DCB."
  },
  {
   "address": 7656,
   "type": "line",
   "text": "jmp to the step routine of the move under way, its address written at $1DE9/$1DEA by whoever starts the move."
  },
  {
   "address": 7657,
   "type": "line",
   "text": "the low byte of the step routine line_move calls: the low byte of the address of the jmp at $1DE8, written at $161E, $16F0, $1D63."
  },
  {
   "address": 7658,
   "type": "line",
   "text": "the high byte of the step routine line_move calls: the high byte of the address of the jmp at $1DE8, written at $1623, $16F5, $1D68."
  },
  {
   "address": 7659,
   "type": "line",
   "text": "on the longer x, a step in y every $1DA4 steps."
  },
  {
   "address": 7674,
   "type": "line",
   "text": "on the longer y, a step in x every $1DCF steps."
  },
  {
   "address": 7689,
   "type": "line",
   "text": "a pixel along x, and the end marked when x arrives ($1D2E)."
  },
  {
   "address": 7725,
   "type": "line",
   "text": "the moving point's new x, low byte, compared with the line's end ($0D67) to see whether x has arrived: the operand of the lda at $1E2C, written at $1E1C, $1E40."
  },
  {
   "address": 7758,
   "type": "line",
   "text": "a pixel along y, and the end marked when y arrives ($1D2F)."
  },
  {
   "address": 7782,
   "type": "line",
   "text": "waits two frames ($1D30)."
  },
  {
   "address": 7793,
   "type": "line",
   "text": "the step routine of the supply train's move: the line's point becomes the train's place ($0D9B-$0D9D)."
  },
  {
   "address": 7812,
   "type": "line",
   "text": "draws territory X's flag place: the flag of its owner ($0DAB: the Union's from $83E8, the Confederacy's 20 bytes on), two cells of bitmap with their screen and colour bytes, or, with no owner, the map's own bytes kept for the place ($1A/$1B, from $C2A7); territory 26 is the flag on the month band, the side to play."
  },
  {
   "address": 7898,
   "type": "line",
   "text": "for territory X: $1A/$1B the store of the map's bytes under its flag ($C2A7), and the flag place's addresses in the bitmap ($1E/$1F), the screen ($20/$21) and colour RAM ($22/$23), from its row ($C256) and column ($C23B)."
  },
  {
   "address": 7915,
   "type": "line",
   "text": "X kept by flag_place: the operand of the ldx at $1EEA, written at $1EDA."
  },
  {
   "address": 7930,
   "type": "line",
   "text": "saves window 0's bytes ($331A) and draws picture 0 in it ($1447)."
  },
  {
   "address": 7941,
   "type": "line",
   "text": "with the panel busy ($0E68), saves window 1 and draws picture 5 there."
  },
  {
   "address": 7957,
   "type": "line",
   "text": "draws picture A + 1 in window 2."
  },
  {
   "address": 7965,
   "type": "line",
   "text": "draws picture A + 6 in window 3."
  },
  {
   "address": 7975,
   "type": "line",
   "text": "50 steps of five frames, pictures 6 to 8 in window 3 in turn; then sound 17, the interception's figures off ($0D53) and the panel back ($340C)."
  },
  {
   "address": 8032,
   "type": "line",
   "text": "draws picture X + 9 in window 4."
  },
  {
   "address": 8043,
   "type": "line",
   "text": "saves window 4 at picture X + 9's size."
  },
  {
   "address": 8054,
   "type": "line",
   "text": "before a battle, with the panel busy: saves window 5 and draws side A's battle picture (11 + A) in it, waits 50 frames, sound 1, then the cannon's smoke ($2192, $222A, $21BB) and 30 steps of the picture scrolling a cell left a step ($2062), the new column drawn from the scenery ($20F0) for ten columns at a time; then side A's own scene for ten columns ($BF10, $BF14, $BF18), the smoke away, 50 frames, and the panel back ($340C)."
  },
  {
   "address": 8290,
   "type": "line",
   "text": "moves 9 rows of 72 bitmap bytes at $4838 eight bytes (a cell) left, and the screen and colour cells below them, keeping A, X and Y."
  },
  {
   "address": 8340,
   "type": "line",
   "text": "the low byte of panel_scroll's bitmap load: the low byte of the address of the lda at $2093, written at $2073, $20CA."
  },
  {
   "address": 8341,
   "type": "line",
   "text": "the high byte of panel_scroll's bitmap load: the high byte of the address of the lda at $2093, written at $207D, $20D2."
  },
  {
   "address": 8343,
   "type": "line",
   "text": "the low byte of panel_scroll's bitmap store: the low byte of the address of the sta at $2096, written at $206D, $20DB."
  },
  {
   "address": 8344,
   "type": "line",
   "text": "the high byte of panel_scroll's bitmap store: the high byte of the address of the sta at $2096, written at $2078, $20E3."
  },
  {
   "address": 8426,
   "type": "line",
   "text": "A kept by panel_scroll: the operand of the lda at $20E9, written at $2062."
  },
  {
   "address": 8428,
   "type": "line",
   "text": "X kept by panel_scroll: the operand of the ldx at $20EB, written at $2065."
  },
  {
   "address": 8430,
   "type": "line",
   "text": "Y kept by panel_scroll: the operand of the ldy at $20ED, written at $2068."
  },
  {
   "address": 8432,
   "type": "line",
   "text": "draws the next column of the scrolling picture: 9 rows of 8 bitmap bytes from ($20FF) into $4880 and onwards, and its screen and colour bytes from the tables in $215C/$2162."
  },
  {
   "address": 8447,
   "type": "line",
   "text": "the low byte of the scenery column's bitmap source: the low byte of the address of the lda at $20FE, written at $1FB0, $2006, $210D, $2135."
  },
  {
   "address": 8448,
   "type": "line",
   "text": "the high byte of the scenery column's bitmap source: the high byte of the address of the lda at $20FE, written at $1FBA, $200F, $2115, $2140."
  },
  {
   "address": 8450,
   "type": "line",
   "text": "the low byte of panel_column's bitmap store: the low byte of the address of the sta at $2101, written at $20F2, $211E."
  },
  {
   "address": 8451,
   "type": "line",
   "text": "the high byte of panel_column's bitmap store: the high byte of the address of the sta at $2101, written at $20F7, $2126."
  },
  {
   "address": 8540,
   "type": "line",
   "text": "the low byte of panel_column's screen source: the low byte of the address of the lda at $215B, written at $1FC9, $2029."
  },
  {
   "address": 8541,
   "type": "line",
   "text": "the high byte of panel_column's screen source: the high byte of the address of the lda at $215B, written at $1FCE, $202F."
  },
  {
   "address": 8543,
   "type": "line",
   "text": "the low byte of panel_column's screen store: the low byte of the address of the sta at $215E, written at $2145, $2172."
  },
  {
   "address": 8544,
   "type": "line",
   "text": "the high byte of panel_column's screen store: the high byte of the address of the sta at $215E, written at $214D, $217D."
  },
  {
   "address": 8546,
   "type": "line",
   "text": "the low byte of panel_column's colour source: the low byte of the address of the lda at $2161, written at $1FD3, $2035."
  },
  {
   "address": 8547,
   "type": "line",
   "text": "the high byte of panel_column's colour source: the high byte of the address of the lda at $2161, written at $1FD8, $203B."
  },
  {
   "address": 8549,
   "type": "line",
   "text": "the low byte of panel_column's colour store: the low byte of the address of the sta at $2164, written at $2148, $2175."
  },
  {
   "address": 8550,
   "type": "line",
   "text": "the high byte of panel_column's colour store: the high byte of the address of the sta at $2164, written at $2153, $2182."
  },
  {
   "address": 8585,
   "type": "line",
   "text": "waits A frames ($0D8B)."
  },
  {
   "address": 8594,
   "type": "line",
   "text": "clears the sprite at $6580 (pointer $96) and starts the smoke's figure at x 208, y 96 ($0D74-$0D79)."
  },
  {
   "address": 8635,
   "type": "line",
   "text": "moves the smoke seven times four pixels right, a frame each."
  },
  {
   "address": 8673,
   "type": "line",
   "text": "every fourth frame flips the smoke's frame, and counts $0D7B down."
  },
  {
   "address": 8702,
   "type": "line",
   "text": "while the smoke shows ($0D74), adds it to the list (pointer $94 + its frame)."
  },
  {
   "address": 8746,
   "type": "line",
   "text": "builds the smoke's sprite at $6580 from the sprite at $6500 in three steps of two frames, rows copied three bytes at a time from the offsets $0D7E/$0D81."
  },
  {
   "address": 8826,
   "type": "line",
   "text": "with the European reinforcements on ($0386), every fourth pass of the main loop ($0D72): sound 22, the ship sails in ($22C1, $22D9) and lowers its sails ($2312), sound 17; if territory 18 (South Virginia in the manual) has an army or an owner, it gets 6 infantry, 3 cavalry and a cannon ($3413); the ship hoists its sails ($232A), sound 22, sails away ($233D) and sound 17."
  },
  {
   "address": 8897,
   "type": "line",
   "text": "the ship at x 88, y 180, sails up."
  },
  {
   "address": 8921,
   "type": "line",
   "text": "moves the ship up and left a pixel at a time, four frames a step, to y 133."
  },
  {
   "address": 8959,
   "type": "line",
   "text": "every sixth frame flips the ship's second frame ($0D6C)."
  },
  {
   "address": 8978,
   "type": "line",
   "text": "steps the ship's sail frame ($0D6B) up to 3, 16 frames a step."
  },
  {
   "address": 9002,
   "type": "line",
   "text": "steps the ship's sail frame back to 0, 16 frames a step."
  },
  {
   "address": 9021,
   "type": "line",
   "text": "moves the ship right and up, four frames a step, to y 100."
  },
  {
   "address": 9049,
   "type": "line",
   "text": "while the ship sails ($0D71), adds its two sprites to the list (pointers $D5 + its sail frame and $D3 + its wave), x $0D6F with the ninth bit set, y $0D70."
  },
  {
   "address": 9119,
   "type": "line",
   "text": "saves the map's bytes under territory A's flag place into its store ($C2A7), at picture 20's size ($332B)."
  },
  {
   "address": 9167,
   "type": "line",
   "text": "stores A (8, the window); the $14 just loaded into X goes unused, so save_window takes picture 8."
  },
  {
   "address": 9178,
   "type": "line",
   "text": "the territory save_flag_bg works on: the operand of the lda at $23D9, written at $239F."
  },
  {
   "address": 9180,
   "type": "line",
   "text": "saves the bytes under all 26 territories' flag places ($239F)."
  },
  {
   "address": 9191,
   "type": "line",
   "text": "saves the bytes under all 26 territories' army places ($23F2)."
  },
  {
   "address": 9202,
   "type": "line",
   "text": "saves the map's bytes under territory A's army place into its store ($C2DB), at picture 21's size."
  },
  {
   "address": 9250,
   "type": "line",
   "text": "stores A (8, the window); the $15 just loaded into X goes unused, so save_window takes picture 8."
  },
  {
   "address": 9261,
   "type": "line",
   "text": "the territory save_army_bg works on: the operand of the lda at $242C, written at $23F2."
  },
  {
   "address": 9263,
   "type": "line",
   "text": "for territory X: $1A/$1B the store of the map's bytes under its army ($C2DB), and its army place's addresses in the bitmap, the screen and colour RAM, from its row ($C28C) and column ($C271)."
  },
  {
   "address": 9280,
   "type": "line",
   "text": "X kept by army_place: the operand of the ldx at $243F, written at $242F."
  },
  {
   "address": 9295,
   "type": "line",
   "text": "the bitmap ($1E/$1F) and screen ($20/$21) addresses of row Y: $4000 + 320 Y and $6000 + 40 Y."
  },
  {
   "address": 9343,
   "type": "line",
   "text": "adds column A to them: A to the screen and colour ($20-$23), 8 A to the bitmap."
  },
  {
   "address": 9378,
   "type": "line",
   "text": "every twelfth frame ($0D44), the direction the player to move asks for, into $0D48 (1 left, 2 right, 3 up, 4 down, 0 none): nothing when the computer plays both sides; when one person plays, the keys P L Z X ($24DD) or joystick 2 as the menu set ($0388); when two play, joystick 2 for the Union and joystick 1 for the Confederacy ($0DC5)."
  },
  {
   "address": 9437,
   "type": "line",
   "text": "the keys as a joystick: P up, L down, Z left, X right, space fire ($10C5 into $1069-$106B)."
  },
  {
   "address": 9548,
   "type": "line",
   "text": "in the direction asked ($0D48), the neighbouring point of the cursor's point ($0D45) on the grid at $C053 (four bytes a point: left, right, up, down; $FF for none) becomes its target ($0D46), and the glide starts ($0D47)."
  },
  {
   "address": 9681,
   "type": "line",
   "text": "every second frame moves the cursor half its distance to the target point's place ($C002/$C038, $C01D); arrived, the point becomes the cursor's ($0D45) and the glide stops."
  },
  {
   "address": 9848,
   "type": "line",
   "text": "with the Indians on: an army that stays in territory 3 or territory 8 for two passes of the main loop ($0EAC, $0EAB) is attacked: the smoke signals ($27BF), the Indian's figure rises ($27ED) and, after a random 10 to 25 steps of ten frames ($0D3D), rides down on the army ($34EC, $3547, $3562), which loses 6 infantry, 3 cavalry and a cannon; then the figure goes back ($26EE)."
  },
  {
   "address": 9966,
   "type": "line",
   "text": "with the Indians on, the smoke figure back at its place (x 36, y 110) and frame 0."
  },
  {
   "address": 9990,
   "type": "line",
   "text": "with the Indians on, adds their figure to the list: the smoke ($C2 + its frame, yellow) before an attack; once one is on its way ($0D36), a figure at x 60, y 50 ($CE + its frame, white) until the rider sets out ($0D3F), and then the rider ($9E + its frame) at $0D38-$0D3A."
  },
  {
   "address": 10112,
   "type": "line",
   "text": "the Indians' timers: the smoke's frame stepped every 10 frames round 0 to 4 while attacking, and the count $0D3D that starts the attack."
  },
  {
   "address": 10175,
   "type": "line",
   "text": "ten smoke signals: the smoke's frame between 1 and 2, sound 13 with each, ten frames apart."
  },
  {
   "address": 10221,
   "type": "line",
   "text": "moves the figure up two pixels a step, ten frames a step, through frames 2 to 11."
  },
  {
   "address": 10251,
   "type": "line",
   "text": "the player's choice on the map: flashes the territories of the list $0D2F/$0D30 (every 20 frames, $2846; or the flashing army, $1B01) until fire is pressed and released ($106B), and returns with the cursor's point in $0D46."
  },
  {
   "address": 10310,
   "type": "line",
   "text": "the territories of the list turn grey and back: every cell of the map whose territory (from the table at $E000, a byte a cell) is in the list has the yellow and light grey of its screen and colour bytes swapped ($28A8)."
  },
  {
   "address": 10331,
   "type": "line",
   "text": "the low byte of the list flash_list flashes: the low byte of the address of the lda at $285A, written at $2811."
  },
  {
   "address": 10332,
   "type": "line",
   "text": "the high byte of the list flash_list flashes: the high byte of the address of the lda at $285A, written at $2817."
  },
  {
   "address": 10408,
   "type": "line",
   "text": "swaps colour 7 (yellow) and 15 (light grey) in each nibble of A."
  },
  {
   "address": 10451,
   "type": "line",
   "text": "the start year's armies and owners, by the year chosen ($0389): $28EC for 1861, $293F for 1862, $29C0 for 1863 and $2A54 for 1864. Each writes the territories' owners ($0DAB), the armies' sides ($0DE0) and their infantry, cavalry and cannon ($0E2E, $0E14, $0E48)."
  },
  {
   "address": 10476,
   "type": "line",
   "text": "1861: the Union owns territories 5, 7 and 11 and has armies in 6 and 12; the Confederacy owns 22, 24 and 25 and has armies in 21 and 23; every army 6 infantry, 3 cavalry and a cannon."
  },
  {
   "address": 10559,
   "type": "line",
   "text": "1862: the Union owns 1, 5, 7, 11 and 12 and has armies in 4, 10 and 13, each of 6 infantry, 3 cavalry and a cannon; the Confederacy owns 15 and 19 to 23 and 25 and has armies in 8 (9, 3 and 1), 16 and 17 (9 infantry, 5 cavalry and 2 cannon each)."
  },
  {
   "address": 10688,
   "type": "line",
   "text": "1863: the Union owns 5, 6, 7, 12 and 13 and has armies in 3, 4, 11 and 14; the Confederacy owns 20 to 25 and has armies in 16, 17, 18 and 19; every army 6 infantry, 3 cavalry and a cannon but the Confederacy's in 17, with 9 infantry."
  },
  {
   "address": 10836,
   "type": "line",
   "text": "1864: the Union owns 1, 5, 6, 7, 8, 11, 12 and 13 and has armies in 3, 4, 10 and 14, each of 6, 3 and 1; the Confederacy owns 16, 20, 22, 24 and 25 and has armies in 19 and 21 (9 infantry, 5 cavalry and 2 cannon each) and 23 (6, 3 and 1)."
  },
  {
   "address": 10982,
   "type": "line",
   "text": "the Confederacy's turn ($0DC5 = 1): the list of its armies that may move ($2E20), its flag on the month band ($1E84 with 26), then the computer's moves ($3C60) or the player's ($2B26)."
  },
  {
   "address": 11014,
   "type": "line",
   "text": "the Union's turn ($0DC5 = 0), as conf_turn."
  },
  {
   "address": 11046,
   "type": "line",
   "text": "a move by a person: the armies that may move flash; choosing the month band (point 26) ends the turn with sound 24; then the territories the chosen army may enter flash (its neighbours, $C188, without one of its own side's armies too big to join, $2D5B) and the move is made ($2BA3), or another army chosen."
  },
  {
   "address": 11111,
   "type": "line",
   "text": "the low byte of the chosen army's neighbour list: the low byte of the address of the lda at $2B66, written at $2B59."
  },
  {
   "address": 11112,
   "type": "line",
   "text": "the high byte of the chosen army's neighbour list: the high byte of the address of the lda at $2B66, written at $2B5F."
  },
  {
   "address": 11171,
   "type": "line",
   "text": "the army from $0E84 enters territory $0E85. With an army there: of its own side, the two join if together they stay within 18 infantry, 9 cavalry and 3 cannon ($2CCF), else nothing; of the other side, a battle ($2DA6). With no army: a territory of the side's own, or of nobody's, is taken ($2C1A, $2BB4); an enemy's is taken too, unless it is a town (3, 8, 12, 19 or 23), whose fort must be won ($2DBB), the army going back if it fails. The army leaves its own territory to its side ($0DAB). Then the army is taken off the list of those that may move, the surrounded territories change sides ($32CF), and the next move follows."
  },
  {
   "address": 11188,
   "type": "line",
   "text": "the move into a territory of nobody's: the army marches ($1686) and the old territory becomes its side's."
  },
  {
   "address": 11240,
   "type": "line",
   "text": "takes the army that moved off the list of those that may move ($0E6A); when any are left, the next move, by the computer ($3C66) or the player ($2B26)."
  },
  {
   "address": 11290,
   "type": "line",
   "text": "the move into a territory with an owner and no army: the side's own, or an enemy's that is not a town, is taken."
  },
  {
   "address": 11381,
   "type": "line",
   "text": "the move into an enemy town: the army marches in, the fort is fought ($2DBB): won, the town is the side's; lost, the army goes back where it came from and the town stays the enemy's."
  },
  {
   "address": 11471,
   "type": "line",
   "text": "the move onto an army of the same side: the two join when each total stays within 18 infantry, 9 cavalry and 3 cannon; otherwise the computer tries again and a person's move does nothing."
  },
  {
   "address": 11611,
   "type": "line",
   "text": "carry set when the army at $0E62 would make one of the three totals too big with an army of its side in territory A."
  },
  {
   "address": 11680,
   "type": "line",
   "text": "X kept by too_big: the operand of the ldx at $2D9F, written at $2D5B."
  },
  {
   "address": 11682,
   "type": "line",
   "text": "Y kept by too_big: the operand of the ldy at $2DA1, written at $2D5E."
  },
  {
   "address": 11684,
   "type": "line",
   "text": "A kept by too_big: the operand of the lda at $2DA3, written at $2D61."
  },
  {
   "address": 11686,
   "type": "line",
   "text": "a move onto an enemy army: the battle's sides ($2EBF), the battle picture in the panel ($1F76), and the battle itself ($3011)."
  },
  {
   "address": 11707,
   "type": "line",
   "text": "a town's fort: the panel's animation ($1EFA, sound 16, $2E66); in arcade mode the fort sequence with $0396 the attacker ($0C8A), whose result comes back in $0397; in strategic mode, chance against the defender's difficulty ($0380 of the other side): won with a random number from $7F up against a corporal (half the time), from $55 against a sergeant, from $3F against a captain. Carry clear when the attacker has won."
  },
  {
   "address": 11808,
   "type": "line",
   "text": "makes the list of side A's armies that may move ($0E6A), all of them but the one under the storm cloud ($0D63)."
  },
  {
   "address": 11831,
   "type": "line",
   "text": "the side list_armies looks for, put back in A after each army it lists: the operand of the lda at $2E36, written at $2E20."
  },
  {
   "address": 11836,
   "type": "line",
   "text": "empties the list $0E6A."
  },
  {
   "address": 11847,
   "type": "line",
   "text": "Z set when the cursor's point ($0D46) is in the list $0D2F/$0D30 points at."
  },
  {
   "address": 11862,
   "type": "line",
   "text": "the low byte of the list in_list searches: the low byte of the address of the lda at $2E55, written at $2E4A."
  },
  {
   "address": 11863,
   "type": "line",
   "text": "the high byte of the list in_list searches: the high byte of the address of the lda at $2E55, written at $2E50."
  },
  {
   "address": 11878,
   "type": "line",
   "text": "35 steps of ten frames, the fort's two pictures for the defender's side in window 2 in turn."
  },
  {
   "address": 11923,
   "type": "line",
   "text": "waits 25 frames."
  },
  {
   "address": 11934,
   "type": "line",
   "text": "an army wiped out: sound 19, its figure's three frames 25 frames apart ($0EA9), and a check for the end of the war ($0F51)."
  },
  {
   "address": 11967,
   "type": "line",
   "text": "the battle's sides: the defender's units ($038A, $038C, $038E by side), a territory of the defender's next to the battle to fall back to (its place of $0390, through the ldy # at $2F08 whose operand is the defender's side; $FF for none), the attacker's units and its own territory ($0390 by side), the attacker marching in ($1686); then each of the attacker's other armies next to the battle that may still move joins the attack, if the totals stay within 18, 9 and 3, and leaves its territory to its side."
  },
  {
   "address": 12017,
   "type": "line",
   "text": "the low byte of the battle territory's neighbour list: the low byte of the address of the lda at $2EF0, written at $2EE5."
  },
  {
   "address": 12018,
   "type": "line",
   "text": "the high byte of the battle territory's neighbour list: the high byte of the address of the lda at $2EF0, written at $2EEB."
  },
  {
   "address": 12041,
   "type": "line",
   "text": "the defender's side, also read as a byte by the cmp at $2EF9, so that the defender's retreat goes in its own place of $0390: the operand of the ldy at $2F08, written at $2EC7."
  },
  {
   "address": 12211,
   "type": "line",
   "text": "how many of the three totals an ally's army would make too big; the attack takes the ally only when it is 0: the operand of the lda at $2FB2, written at $2F72, $2F93, $2FA1, $2FAF."
  },
  {
   "address": 12300,
   "type": "line",
   "text": "battle_setup's place in the neighbour list, as it looks for allies: the operand of the ldy at $300B, written at $2F57."
  },
  {
   "address": 12305,
   "type": "line",
   "text": "the battle: in arcade mode the battle sequence ($0CA6), its result in $0392-$0395 (who fell back, who was wiped out) and the units left in $038A-$038F; in strategic mode decided at random ($321C). The winner holds the territory; a side that fell back goes to its territory ($0390), and one wiped out is lost ($2E9E); when the attacker wins at a town, the fort follows ($2DBB)."
  },
  {
   "address": 12828,
   "type": "line",
   "text": "the strategic battle: rounds of the attacker then the defender ($3251) until one side has no units left ($0EA4, $0394 set for it) or falls back."
  },
  {
   "address": 12881,
   "type": "line",
   "text": "side A's units under fire: each of its infantry, cavalry and cannon, if it has any, loses one with a chance set by the other side's difficulty ($32B0); a side with nothing left is marked ($0EA4); one with fewer than three units falls back with a random number from $C8 up (56 times in 256, about one in five, $0392) and the battle ends (the two pla leave $321C at once)."
  },
  {
   "address": 12976,
   "type": "line",
   "text": "carry set (a unit lost) with a random number from $3F up (three times in four) when the other side is a corporal, from $55 when a sergeant, from $7F (half the time) when a captain."
  },
  {
   "address": 13007,
   "type": "line",
   "text": "every territory with no army, an enemy owner and no town ($C142), all of whose neighbours have armies of the side to play, becomes the side's."
  },
  {
   "address": 13050,
   "type": "line",
   "text": "the low byte of the neighbour list surround checks: the low byte of the address of the lda at $32F9, written at $32EB."
  },
  {
   "address": 13051,
   "type": "line",
   "text": "the high byte of the neighbour list surround checks: the high byte of the address of the lda at $32F9, written at $32F1."
  },
  {
   "address": 13077,
   "type": "line",
   "text": "the territory surround looks at: the operand of the ldx at $3314, written at $32F4."
  },
  {
   "address": 13082,
   "type": "line",
   "text": "saves the bytes of window A (its place, $C3B6/$C3C8) at picture X's size into the buffer at $B8D0, as picture 16, which $340C draws back."
  },
  {
   "address": 13099,
   "type": "line",
   "text": "copies the bitmap, screen and colour bytes of a picture's size from the window's place to ($2E), and notes where the screen and colour bytes start ($C357, $C37F)."
  },
  {
   "address": 13320,
   "type": "line",
   "text": "the window save_window saves, given back in A: the operand of the lda at $3407, written at $23CA, $241D, $331A."
  },
  {
   "address": 13322,
   "type": "line",
   "text": "the picture whose size save_window uses, given back in X: the operand of the ldx at $3409, written at $23CF, $2422, $3320."
  },
  {
   "address": 13324,
   "type": "line",
   "text": "draws picture 16 (what save_window kept) back into the window save_window saved (the operand at $340F)."
  },
  {
   "address": 13327,
   "type": "line",
   "text": "the window panel_restore draws picture 16 back into: the one save_window kept: the operand of the lda at $340E, written at $331D."
  },
  {
   "address": 13331,
   "type": "line",
   "text": "territory X's army, or a new one for its owner, gets 6 infantry, 3 cavalry and a cannon, up to 18, 9 and 3: sound 27 and the figure two times 25 frames."
  },
  {
   "address": 13388,
   "type": "line",
   "text": "X kept by reinforce: the operand of the ldx at $344B, written at $3440."
  },
  {
   "address": 13390,
   "type": "line",
   "text": "Y kept by reinforce: the operand of the ldy at $344D, written at $3443."
  },
  {
   "address": 13467,
   "type": "line",
   "text": "territory X's army loses 6 infantry, 3 cavalry and a cannon (not below 0); with nothing left the territory becomes its side's and the army is lost ($2E9E)."
  },
  {
   "address": 13548,
   "type": "line",
   "text": "the Indian's figure rides in from x 10, y 10, four pixels right and two down a step, to y 200, its frame stepped round 0 to 7."
  },
  {
   "address": 13639,
   "type": "line",
   "text": "puts the Indian's figure at the place of the territory attacked ($0EAE, $0EB0 by $0EAD)."
  },
  {
   "address": 13666,
   "type": "line",
   "text": "ten steps back up and left, then sounds 17 and 29, and the army's loss ($349B on $0EB3: territory 3 or 8)."
  },
  {
   "address": 13763,
   "type": "line",
   "text": "the supply phase of the side to play: a railway between two of its towns through its own territories ($3B55) carries the gold. With one, a train rides it ($35E6): the panel's animation ($1816), sound 23, the train from one town to the other along the rail points ($1CA4, $1D31; the direction changes each time, $0DA3), checked for an interception at each ($36D7); at the end sounds 17 and 12, the bank in the panel ($1F6B, $1F60), the bags of gold ($374F, $3816, $3896) and a new army if there are five ($38D5). Without one, a train that ran last time runs again while both ends are still the side's ($369D)."
  },
  {
   "address": 13948,
   "type": "line",
   "text": "the bank's picture off, the panel back ($340C)."
  },
  {
   "address": 13981,
   "type": "line",
   "text": "no railway this time: when the side's train ran last time ($0DA9) and both its towns are free of the enemy, it runs again."
  },
  {
   "address": 14039,
   "type": "line",
   "text": "at rail point X of the train's way: when the territory belongs to the enemy (or has its army), the train is intercepted: the panel's pictures and figures ($1F05, $1936, $1F27), and in arcade mode the train sequence with the interceptor as $0396 ($0C98); in strategic mode chance against the train's side's difficulty, as for a fort. An interception won takes the gold to the interceptor's bank ($3635); lost, the train goes on with sound 23."
  },
  {
   "address": 14159,
   "type": "line",
   "text": "the bag of gold's figure at x 46 (or 85 one time in eight, with sound 4), y 92."
  },
  {
   "address": 14197,
   "type": "line",
   "text": "while the bag shows ($0EB6), adds it to the list: one sprite, then two one above the other as it falls and lands (pointers from $DA, five on for the Confederacy; colour 6 or 12)."
  },
  {
   "address": 14358,
   "type": "line",
   "text": "the bag placed at x 85 (one time in eight, bag_start $3767; cmp #$46 tells it from the one at x 46) falls ($0EB9 = 1) for six frames; the one at x 46 does not. Nothing moves the bag across."
  },
  {
   "address": 14385,
   "type": "line",
   "text": "moves the falling bag down three pixels a frame until y 230."
  },
  {
   "address": 14429,
   "type": "line",
   "text": "while the bank shows ($0EBD), adds the side's bags of gold to the list, up to six, at $BF1B/$BF21 (pointer $D9, yellow)."
  },
  {
   "address": 14486,
   "type": "line",
   "text": "one bag for every five territories the side owns or occupies, and one more: each added to its bank ($0EBB) with sound 11."
  },
  {
   "address": 14549,
   "type": "line",
   "text": "when the side's bank has five bags: the rail territories of its own railway with no army flash ($C124, $C133), the player chooses one (or the computer the best, $3F7D), the five bags go, and a new army of 6 infantry, 3 cavalry and a cannon stands there ($3413)."
  },
  {
   "address": 14771,
   "type": "line",
   "text": "the month's name on the band, nine characters from $BF7E's pointer for the month ($0D2D), drawn into the bitmap at $5C38 from the font at $B7A0."
  },
  {
   "address": 14804,
   "type": "line",
   "text": "the low byte of the month's name: the low byte of the address of the lda at $39D3, written at $39BB."
  },
  {
   "address": 14805,
   "type": "line",
   "text": "the high byte of the month's name: the high byte of the address of the lda at $39D3, written at $39C1."
  },
  {
   "address": 14831,
   "type": "line",
   "text": "the low byte of draw_month's bitmap store: the low byte of the address of the sta at $39EE, written at $39C6, $39FB."
  },
  {
   "address": 14832,
   "type": "line",
   "text": "the high byte of draw_month's bitmap store: the high byte of the address of the sta at $39EE, written at $39CB, $3A03."
  },
  {
   "address": 14855,
   "type": "line",
   "text": "draw_month's place in the name, 0 to 8: the operand of the ldy at $3A06, written at $39D0."
  },
  {
   "address": 14862,
   "type": "line",
   "text": "when a person plays, every 50 frames: with the cursor on an army, its side's flag (picture 17 + side) and its numbers of infantry, cavalry and cannon ($3A7C) in the panel; otherwise the empty panel (picture 19)."
  },
  {
   "address": 14972,
   "type": "line",
   "text": "the army's three numbers under the cursor, each two digits drawn into the bitmap from $5808 ($3AAD)."
  },
  {
   "address": 15021,
   "type": "line",
   "text": "the number in A, below 10 or 10 and over, as two digits from the font at $E4EC."
  },
  {
   "address": 15093,
   "type": "line",
   "text": "copies a digit's eight bitmap bytes (two sets, $E4EC and $E4F4) into the bitmap."
  },
  {
   "address": 15098,
   "type": "line",
   "text": "the low byte of draw_digit's first bitmap store: the low byte of the address of the sta at $3AF9, written at $3A8D, $3AD8."
  },
  {
   "address": 15099,
   "type": "line",
   "text": "the high byte of draw_digit's first bitmap store: the high byte of the address of the sta at $3AF9, written at $3A98, $3AE0."
  },
  {
   "address": 15104,
   "type": "line",
   "text": "the low byte of draw_digit's second bitmap store: the low byte of the address of the sta at $3AFF, written at $3A93, $3AE9."
  },
  {
   "address": 15105,
   "type": "line",
   "text": "the high byte of draw_digit's second bitmap store: the high byte of the address of the sta at $3AFF, written at $3A9D, $3AF1."
  },
  {
   "address": 15117,
   "type": "line",
   "text": "the year on the band: 1, 8, 6 and the year chosen plus one ($0389), drawn from the font at $B878 into $5C88."
  },
  {
   "address": 15152,
   "type": "line",
   "text": "copies digit A's eight bitmap bytes from $B878 into the band."
  },
  {
   "address": 15165,
   "type": "line",
   "text": "the low byte of draw_band_digit's bitmap store: the low byte of the address of the sta at $3B3C, written at $3B0F, $3B49."
  },
  {
   "address": 15166,
   "type": "line",
   "text": "the high byte of draw_band_digit's bitmap store: the high byte of the address of the sta at $3B3C, written at $3B14, $3B51."
  },
  {
   "address": 15189,
   "type": "line",
   "text": "looks along the railway's list of territories ($C124) for two of the side's towns ($C133 = 1) with only its own territories between them: carry clear with the first's place in the list in $0DA2 and the second's in X; carry set when there is none."
  },
  {
   "address": 15255,
   "type": "line",
   "text": "for each territory whose army ($0DE0) or owner ($0DAB) has changed since it was drawn ($0DFA, $0DC6), draws its army ($3BE7) or its flag ($1E84); a busy flag ($0F1A) keeps the interrupt and the main loop from doing it at once."
  },
  {
   "address": 15335,
   "type": "line",
   "text": "draws territory X's army place: the Union's soldier from $8410 or the Confederacy's 60 bytes on (three rows of two cells of bitmap, with their screen and colour bytes through $BF78), or the map's own bytes back when it has no army."
  },
  {
   "address": 15456,
   "type": "line",
   "text": "the computer's turn: its plan for the turn ($3C98), the territories it has sent armies to forgotten ($3CFE), then its moves."
  },
  {
   "address": 15462,
   "type": "line",
   "text": "the computer's move with its first army that may still move ($0E6A): a score for every territory ($3CF2 to $3ECA), the best chosen ($3F18), and a step towards it ($3F34) made as a person's move would be ($2BA3); with no score above 0 the army stays."
  },
  {
   "address": 15512,
   "type": "line",
   "text": "the computer's plan ($0F10): 0 when it has no railway; 1 when the other side's train ran last time; 2 when the reinforcements are on and South Virginia (territory 18) is not its own; otherwise 3 when it has at least as many armies as the other side, else 4."
  },
  {
   "address": 15602,
   "type": "line",
   "text": "every territory's score from the table at $BF28."
  },
  {
   "address": 15614,
   "type": "line",
   "text": "marks no territory as one an army was sent to ($0EDB)."
  },
  {
   "address": 15625,
   "type": "line",
   "text": "the plan's changes: plan 0 multiplies by four the scores of the territories listed for the army's territory ($BF42, $BF5C); plan 1 triples those of the rail territories the enemy holds; plan 3 multiplies those of the enemy's armies by 4 less their steps ($3D9B): by 4 an army one loss wipes out, by 3 one that survives one loss, by 2 the largest an army can be (18, 9 and 3). A count that started at 0 (an army bigger than that) would leave the score as it was: the loop would add it 256 more times, 257 times the score, the same byte."
  },
  {
   "address": 15771,
   "type": "line",
   "text": "X is how many times territory Y's army can lose 6 infantry, 3 cavalry and a cannon before nothing is left."
  },
  {
   "address": 15844,
   "type": "line",
   "text": "an empty territory not the side's gains 5; one with an army of the side's keeps its score unless an army was sent there this turn ($0EDB), then 0; one with an enemy army loses twice its steps plus 2, not below 0 (not with plan 3)."
  },
  {
   "address": 15923,
   "type": "line",
   "text": "the distance of every territory from the army's ($0EF5), up to three steps through the neighbours ($3E8B); then a score kept whole at one step, at three quarters at two, halved at three, and 0 farther or at the army's own."
  },
  {
   "address": 16011,
   "type": "line",
   "text": "gives distance A + 1 to the unmarked neighbours of the territories at distance A."
  },
  {
   "address": 16045,
   "type": "line",
   "text": "the low byte of the neighbour list distance_ring reads: the low byte of the address of the lda at $3EAC, written at $3EA1."
  },
  {
   "address": 16046,
   "type": "line",
   "text": "the high byte of the neighbour list distance_ring reads: the high byte of the address of the lda at $3EAC, written at $3EA7."
  },
  {
   "address": 16069,
   "type": "line",
   "text": "the territory distance_ring looks at: the operand of the ldy at $3EC4, written at $3E90."
  },
  {
   "address": 16074,
   "type": "line",
   "text": "unless the computer's side plays at difficulty 2, every score of 4 or more moves up or down at random ($3EE4)."
  },
  {
   "address": 16100,
   "type": "line",
   "text": "A, a score, moved at random by up to half of a number below it at difficulty 1, an eighth at difficulty 0."
  },
  {
   "address": 16152,
   "type": "line",
   "text": "the territory with the highest score ($0E85) and the score ($0F18)."
  },
  {
   "address": 16180,
   "type": "line",
   "text": "marks the target ($0EDB) and walks back from it through the distances to the neighbour at distance 1, the army's next territory ($0E85)."
  },
  {
   "address": 16219,
   "type": "line",
   "text": "the low byte of the neighbour list ai_step walks back through: the low byte of the address of the lda at $3F5A, written at $3F4F."
  },
  {
   "address": 16220,
   "type": "line",
   "text": "the high byte of the neighbour list ai_step walks back through: the high byte of the address of the lda at $3F5A, written at $3F55."
  },
  {
   "address": 16253,
   "type": "line",
   "text": "the computer's place for a new army: the flashing territory with the highest base score ($BF28), reinforced there ($3413)."
  },
  {
   "address": 16283,
   "type": "line",
   "text": "the territory ai_new_army chose for the new army: the operand of the ldx at $3F9A, written at $3F93."
  },
  {
   "address": 16288,
   "type": "line",
   "text": "the side whose flag the panel shows for the army under the cursor ($3A3D), $FF for none."
  },
  {
   "address": 16289,
   "type": "line",
   "text": "nothing writes it; while it is 0, army_counts runs."
  },
  {
   "address": 16290,
   "type": "line",
   "text": "frames to army_counts' next look, 50."
  },
  {
   "address": 16291,
   "type": "line",
   "text": "sound A from the map's driver ($F12B), with a busy flag ($3FB7) that keeps the interrupt from playing a frame meanwhile; X and Y kept."
  },
  {
   "address": 16304,
   "type": "line",
   "text": "Y kept by play_sound: the operand of the ldy at $3FAF, written at $3FA6."
  },
  {
   "address": 16306,
   "type": "line",
   "text": "X kept by play_sound: the operand of the ldx at $3FB1, written at $3FA9."
  },
  {
   "address": 16311,
   "type": "line",
   "text": "1 while play_sound starts a sound."
  },
  {
   "address": 16312,
   "type": "line",
   "text": "72 bytes of $BD after the map's last routine that nothing reads: filler."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "the strategic map's multicolour bitmap, 8,000 bytes in video bank 1: the United States in yellow on a blue sea with the states' borders and rivers, the West's desert panel at the left, the month band at the bottom right; the flags and armies are drawn over it ($1E84, $3BE7) and the panels in its windows ($1447)."
  },
  {
   "address": 17408,
   "type": "line",
   "text": "map_bitmap, continued: bytes $4400-$47FF of the block at $4000."
  },
  {
   "address": 18432,
   "type": "line",
   "text": "map_bitmap, continued: bytes $4800-$4BFF of the block at $4000."
  },
  {
   "address": 19456,
   "type": "line",
   "text": "map_bitmap, continued: bytes $4C00-$4FFF of the block at $4000."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "map_bitmap, continued: bytes $5000-$53FF of the block at $4000."
  },
  {
   "address": 21504,
   "type": "line",
   "text": "map_bitmap, continued: bytes $5400-$57FF of the block at $4000."
  },
  {
   "address": 22528,
   "type": "line",
   "text": "map_bitmap, continued: bytes $5800-$5BFF of the block at $4000."
  },
  {
   "address": 23552,
   "type": "line",
   "text": "map_bitmap, continued: bytes $5C00-$5F3F of the block at $4000."
  },
  {
   "address": 24384,
   "type": "line",
   "text": "192 bytes after the bitmap that nothing reads."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "the map's screen, two colours for each cell of the bitmap (high nibble the %01 pixels, low nibble the %10); the flags, armies and panels rewrite their cells, and a territory's flashing swaps its yellow and light grey ($2846)."
  },
  {
   "address": 25576,
   "type": "line",
   "text": "16 bytes between the screen and the sprite pointers that the video chip does not show."
  },
  {
   "address": 25600,
   "type": "line",
   "text": "the supply train's four sprite frames, pointers $90 to $93."
  },
  {
   "address": 25856,
   "type": "line",
   "text": "the cannon smoke's two frames, pointers $94 and $95; $222A builds the frame at $6580 from the one at $6500."
  },
  {
   "address": 25984,
   "type": "line",
   "text": "sprite pointer $96's frame, which $2192 clears and $222A builds from $6500 at run time."
  },
  {
   "address": 26048,
   "type": "line",
   "text": "the map's other sprite frames, pointers $97 to $FC: the marching soldiers ($97-$9D), the Indians' rider ($9E-$A5), the bomb ($A6-$B6), the explosion ($B9), the cloud and its lightning ($BA-$C1), the Indians' smoke ($C2-$CD) and their figure ($CE-$D2), the ship ($D3-$D8), the bags of gold ($D9-$E3), the cursor ($E4), the interception's figures ($E5-$EC), the waving flag's two figures ($EF-$F7) and the smoke after a burst ($F8-$FC); the rest unused."
  },
  {
   "address": 27072,
   "type": "line",
   "text": "map_sprites_2, continued: bytes $69C0-$6DBF of the block at $65C0."
  },
  {
   "address": 28096,
   "type": "line",
   "text": "map_sprites_2, continued: bytes $6DC0-$71BF of the block at $65C0."
  },
  {
   "address": 29120,
   "type": "line",
   "text": "map_sprites_2, continued: bytes $71C0-$75BF of the block at $65C0."
  },
  {
   "address": 30144,
   "type": "line",
   "text": "map_sprites_2, continued: bytes $75C0-$79BF of the block at $65C0."
  },
  {
   "address": 31168,
   "type": "line",
   "text": "map_sprites_2, continued: bytes $79C0-$7DBF of the block at $65C0."
  },
  {
   "address": 32192,
   "type": "line",
   "text": "map_sprites_2, continued: bytes $7DC0-$7FFF of the block at $65C0."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "the map's colour RAM, 1,000 bytes ($1B5B copies 1,024 from here): the colour of the %11 pixels of each cell."
  },
  {
   "address": 33024,
   "type": "line",
   "text": "map_colours, continued: bytes $8100-$81FF of the block at $8000."
  },
  {
   "address": 33280,
   "type": "line",
   "text": "map_colours, continued: bytes $8200-$82FF of the block at $8000."
  },
  {
   "address": 33536,
   "type": "line",
   "text": "map_colours, continued: bytes $8300-$83E7 of the block at $8000."
  },
  {
   "address": 33768,
   "type": "line",
   "text": "the two flags drawn on a territory's flag place, 20 bytes each: two cells of bitmap (16 bytes), their screen bytes and their colour bytes: the Union's at $83E8, the Confederacy's at $83FC."
  },
  {
   "address": 33808,
   "type": "line",
   "text": "the two soldiers drawn on a territory's army place, 60 bytes each: three rows of two cells of bitmap (48 bytes), six screen bytes and six colour bytes: the Union's at $8410, the Confederacy's at $844C."
  },
  {
   "address": 33928,
   "type": "line",
   "text": "picture 0 of the map's panels, 12 cells by 9 rows: 864 bytes of bitmap ($8488), 108 of screen ($87E8) and 108 of colour ($8854); window 0, before a fort ($1EFA)."
  },
  {
   "address": 34952,
   "type": "line",
   "text": "pic00, continued: bytes $8888-$88BF of the block at $8488."
  },
  {
   "address": 35008,
   "type": "line",
   "text": "pictures 1 to 4, each 5 cells by 3 rows (120 bytes of bitmap, 15 of screen and 15 of colour, from $88C0, $8956, $89EC and $8A82): the fort's animation in window 2 ($2E66), two for each side."
  },
  {
   "address": 35608,
   "type": "line",
   "text": "picture 5, 16 cells by 10 rows (1,280 bytes of bitmap from $8B18, 160 of screen from $9018, 160 of colour from $90B8): the interception, in window 1 ($1F05)."
  },
  {
   "address": 36632,
   "type": "line",
   "text": "pic05, continued: bytes $8F18-$9157 of the block at $8B18."
  },
  {
   "address": 37208,
   "type": "line",
   "text": "pictures 6 to 8, each 9 cells by 2 rows (from $9158, $920C and $92C0): the interception's animation in window 3 ($1F27)."
  },
  {
   "address": 37748,
   "type": "line",
   "text": "pictures 9 and 10, 14 cells by 9 rows (from $9374 and $9860): the bank in window 4, drawn one after the other at the end of the train's ride ($365A, $366A)."
  },
  {
   "address": 38772,
   "type": "line",
   "text": "pic09_10, continued: bytes $9774-$9B73 of the block at $9374."
  },
  {
   "address": 39796,
   "type": "line",
   "text": "pic09_10, continued: bytes $9B74-$9D4B of the block at $9374."
  },
  {
   "address": 40268,
   "type": "line",
   "text": "picture 11, 10 cells by 9 rows (bitmap $9D4C, screen $A01C, colour $A076): the Union's battle picture, in window 5 ($1F76)."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "pic11, continued past the memory map's edge at $A000: the rest of the Union's battle picture, to $A0CF."
  },
  {
   "address": 41168,
   "type": "line",
   "text": "the Union's scenery for the battle picture's scroll: 720 bytes of bitmap ($A0D0), 90 of screen ($A3A0) and 90 of colour ($A3FA), ten columns of nine rows ($BF10-$BF1B)."
  },
  {
   "address": 42068,
   "type": "line",
   "text": "the scenery both sides' battle pictures scroll through first: 720 bytes of bitmap ($A454), 90 of screen ($A724), 90 of colour ($A77E)."
  },
  {
   "address": 42968,
   "type": "line",
   "text": "picture 12, 10 cells by 9 rows (bitmap $A7D8, screen $AAA8, colour $AB02): the Confederacy's battle picture."
  },
  {
   "address": 43868,
   "type": "line",
   "text": "the Confederacy's scenery for the scroll: bitmap $AB5C, screen $AE2C, colour $AE86."
  },
  {
   "address": 44768,
   "type": "line",
   "text": "picture 13, 14 cells by 8 rows (bitmap $AEE0, screen $B260, colour $B2D0): the first of the supply phase's pictures, in window 1 ($1816)."
  },
  {
   "address": 45792,
   "type": "line",
   "text": "pic13, continued: bytes $B2E0-$B33F of the block at $AEE0."
  },
  {
   "address": 45888,
   "type": "line",
   "text": "pictures 14 and 15, 7 cells by 8 rows (from $B340 and $B570): the supply phase's other two, in window 6 in turn."
  },
  {
   "address": 46912,
   "type": "line",
   "text": "pic14_15, continued: bytes $B740-$B79F of the block at $B340."
  },
  {
   "address": 47008,
   "type": "line",
   "text": "the month band's letters, 27 characters of eight bitmap bytes: space, then A to Z at $B7A8 onwards (a character's code less $40, times 8)."
  },
  {
   "address": 47224,
   "type": "line",
   "text": "the month band's digits, eight bitmap bytes each from 0 at $B878, and eight bytes more."
  },
  {
   "address": 48912,
   "type": "line",
   "text": "the battle scroll's scenery for each side: bitmap ($BF10, $A0D0 and $AB5C), screen ($BF14, $A3A0 and $AE2C) and colour ($BF18, $A3FA and $AE86)."
  },
  {
   "address": 48913,
   "type": "line",
   "text": "scene_pointers, continued: bytes $BF11-$BF13 of the block at $BF10."
  },
  {
   "address": 48916,
   "type": "line",
   "text": "scene_pointers, continued: bytes $BF14-$BF14 of the block at $BF10."
  },
  {
   "address": 48917,
   "type": "line",
   "text": "scene_pointers, continued: bytes $BF15-$BF17 of the block at $BF10."
  },
  {
   "address": 48920,
   "type": "line",
   "text": "scene_pointers, continued: bytes $BF18-$BF18 of the block at $BF10."
  },
  {
   "address": 48921,
   "type": "line",
   "text": "scene_pointers, continued: bytes $BF19-$BF1A of the block at $BF10."
  },
  {
   "address": 48923,
   "type": "line",
   "text": "scene_pointers, continued: bytes $BF1B-$BF1B of the block at $BF10."
  },
  {
   "address": 48924,
   "type": "line",
   "text": "the six bags of gold in the bank: x at $BF1C (76, 90, 104 twice) and y at $BF22 (88 for the first three, 108 for the others)."
  },
  {
   "address": 48929,
   "type": "line",
   "text": "bag_places, continued: bytes $BF21-$BF27 of the block at $BF1C."
  },
  {
   "address": 48936,
   "type": "line",
   "text": "the computer's base score for each of the 26 territories, 0 to 5: 4 for the five towns, 5 for South Virginia (18), mostly 3 for the railway's other territories, 0 to 2 elsewhere."
  },
  {
   "address": 48962,
   "type": "line",
   "text": "for each territory, which of the four lists of territories plan 0 favours ($BF5C)."
  },
  {
   "address": 48988,
   "type": "line",
   "text": "four pointers to the lists of territories plan 0 multiplies by four ($BF64, $BF6A, $BF6E, $BF72), and the lists, each ending in $FF."
  },
  {
   "address": 48989,
   "type": "line",
   "text": "ai_targets, continued: bytes $BF5D-$BF77 of the block at $BF5C."
  },
  {
   "address": 49016,
   "type": "line",
   "text": "the offsets of an army's six cells on the screen: 0, 1, 40, 41, 80 and 81."
  },
  {
   "address": 49022,
   "type": "line",
   "text": "twelve pointers to the months' names and the names, nine characters each in ASCII: JANUARY to DECEMBER."
  },
  {
   "address": 49023,
   "type": "line",
   "text": "month_names, continued: bytes $BF7F-$C001 of the block at $BF7E."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "month_names, continued past the memory map's edge at $C000: the end of DECEMBER."
  },
  {
   "address": 49154,
   "type": "line",
   "text": "the cursor's 27 points, one for each territory and one for the month band (26): x low ($C002), y ($C01D) and the ninth bit of x ($C038)."
  },
  {
   "address": 49181,
   "type": "line",
   "text": "cursor_points, continued: bytes $C01D-$C037 of the block at $C002."
  },
  {
   "address": 49208,
   "type": "line",
   "text": "cursor_points, continued: bytes $C038-$C052 of the block at $C002."
  },
  {
   "address": 49235,
   "type": "line",
   "text": "for each of the 27 points, the point the cursor moves to left, right, up and down ($FF for none), four bytes a point."
  },
  {
   "address": 49236,
   "type": "line",
   "text": "cursor_grid, continued: bytes $C054-$C054 of the block at $C053."
  },
  {
   "address": 49237,
   "type": "line",
   "text": "cursor_grid, continued: bytes $C055-$C055 of the block at $C053."
  },
  {
   "address": 49238,
   "type": "line",
   "text": "cursor_grid, continued: bytes $C056-$C0BE of the block at $C053."
  },
  {
   "address": 49343,
   "type": "line",
   "text": "the bomb's flight: its frame for each of its 33 steps ($C0BF, up to 16 and back), and its moves in x ($C0E0) and y ($C102), 34 steps each."
  },
  {
   "address": 49376,
   "type": "line",
   "text": "bomb_path, continued: bytes $C0E0-$C101 of the block at $C0BF."
  },
  {
   "address": 49410,
   "type": "line",
   "text": "bomb_path, continued: bytes $C102-$C123 of the block at $C0BF."
  },
  {
   "address": 49444,
   "type": "line",
   "text": "the railway: its 13 territories in order between two $FF ($C124: 12, 11, 5, 4, 3, 9, 8, 15, 19 to 23), and for each a 1 when it is a town ($C133)."
  },
  {
   "address": 49459,
   "type": "line",
   "text": "railway, continued: bytes $C133-$C141 of the block at $C124."
  },
  {
   "address": 49474,
   "type": "line",
   "text": "1 for each territory with a town and a fort: 3, 8, 12, 19 and 23."
  },
  {
   "address": 49499,
   "type": "line",
   "text": "the supply train's places along the railway, one for each of its territories: x ($C15B), its ninth bit ($C16A) and y ($C179)."
  },
  {
   "address": 49514,
   "type": "line",
   "text": "rail_points, continued: bytes $C16A-$C178 of the block at $C15B."
  },
  {
   "address": 49529,
   "type": "line",
   "text": "rail_points, continued: bytes $C179-$C187 of the block at $C15B."
  },
  {
   "address": 49544,
   "type": "line",
   "text": "for each of the 27 points, a pointer to the list of its neighbouring territories ($C188), and the lists, each ending in $FF."
  },
  {
   "address": 49545,
   "type": "line",
   "text": "neighbours, continued: bytes $C189-$C23A of the block at $C188."
  },
  {
   "address": 49723,
   "type": "line",
   "text": "each territory's flag place on the screen: column ($C23B) and row ($C256)."
  },
  {
   "address": 49750,
   "type": "line",
   "text": "flag_places, continued: bytes $C256-$C270 of the block at $C23B."
  },
  {
   "address": 49777,
   "type": "line",
   "text": "each territory's army place: column ($C271) and row ($C28C)."
  },
  {
   "address": 49804,
   "type": "line",
   "text": "army_places, continued: bytes $C28C-$C2A6 of the block at $C271."
  },
  {
   "address": 49831,
   "type": "line",
   "text": "pointers to the stores of the map's bytes under each flag place (from $ED12, 20 bytes apart) and each army place (from $E6FA, 60 bytes apart), filled at the game's start ($23DC, $23E7)."
  },
  {
   "address": 49832,
   "type": "line",
   "text": "bg_stores, continued: bytes $C2A8-$C2DA of the block at $C2A7."
  },
  {
   "address": 49883,
   "type": "line",
   "text": "bg_stores, continued: bytes $C2DB-$C2DB of the block at $C2A7."
  },
  {
   "address": 49884,
   "type": "line",
   "text": "bg_stores, continued: bytes $C2DC-$C30E of the block at $C2A7."
  },
  {
   "address": 49935,
   "type": "line",
   "text": "for each of the 22 pictures, pointers to its bitmap ($C30F), screen ($C337) and colour ($C35F) bytes; picture 16 is the window kept by save_window at $B8D0; and three bytes of work for draw_picture ($C387-$C389)."
  },
  {
   "address": 49936,
   "type": "line",
   "text": "picture_table, continued: bytes $C310-$C336 of the block at $C30F."
  },
  {
   "address": 49975,
   "type": "line",
   "text": "picture_table, continued: bytes $C337-$C337 of the block at $C30F."
  },
  {
   "address": 49976,
   "type": "line",
   "text": "picture_table, continued: bytes $C338-$C356 of the block at $C30F."
  },
  {
   "address": 50007,
   "type": "line",
   "text": "picture_table, continued: bytes $C357-$C357 of the block at $C30F."
  },
  {
   "address": 50008,
   "type": "line",
   "text": "picture_table, continued: bytes $C358-$C35E of the block at $C30F."
  },
  {
   "address": 50015,
   "type": "line",
   "text": "picture_table, continued: bytes $C35F-$C35F of the block at $C30F."
  },
  {
   "address": 50016,
   "type": "line",
   "text": "picture_table, continued: bytes $C360-$C37E of the block at $C30F."
  },
  {
   "address": 50047,
   "type": "line",
   "text": "picture_table, continued: bytes $C37F-$C37F of the block at $C30F."
  },
  {
   "address": 50048,
   "type": "line",
   "text": "picture_table, continued: bytes $C380-$C386 of the block at $C30F."
  },
  {
   "address": 50055,
   "type": "line",
   "text": "picture_table, continued: bytes $C387-$C387 of the block at $C30F."
  },
  {
   "address": 50056,
   "type": "line",
   "text": "picture_table, continued: bytes $C388-$C388 of the block at $C30F."
  },
  {
   "address": 50057,
   "type": "line",
   "text": "picture_table, continued: bytes $C389-$C389 of the block at $C30F."
  },
  {
   "address": 50058,
   "type": "line",
   "text": "each picture's width ($C38A) and height ($C3A0) in cells: 20 and 21 are the sizes of a flag place and an army place, for saving the map's bytes under them."
  },
  {
   "address": 50074,
   "type": "line",
   "text": "picture_sizes, continued: bytes $C39A-$C39F of the block at $C38A."
  },
  {
   "address": 50080,
   "type": "line",
   "text": "picture_sizes, continued: bytes $C3A0-$C3AF of the block at $C38A."
  },
  {
   "address": 50096,
   "type": "line",
   "text": "picture_sizes, continued: bytes $C3B0-$C3B5 of the block at $C38A."
  },
  {
   "address": 50102,
   "type": "line",
   "text": "each window's place in the bitmap ($C3B6) and the screen ($C3C8): 0 the panel at the bottom left, 1 to 7 its parts and the army's counts' panel; 8 is set at run time to the place being saved."
  },
  {
   "address": 50103,
   "type": "line",
   "text": "windows, continued: bytes $C3B7-$C3C5 of the block at $C3B6."
  },
  {
   "address": 50118,
   "type": "line",
   "text": "windows, continued: bytes $C3C6-$C3C6 of the block at $C3B6."
  },
  {
   "address": 50119,
   "type": "line",
   "text": "windows, continued: bytes $C3C7-$C3C7 of the block at $C3B6."
  },
  {
   "address": 50120,
   "type": "line",
   "text": "windows, continued: bytes $C3C8-$C3C8 of the block at $C3B6."
  },
  {
   "address": 50121,
   "type": "line",
   "text": "windows, continued: bytes $C3C9-$C3D7 of the block at $C3B6."
  },
  {
   "address": 50136,
   "type": "line",
   "text": "windows, continued: bytes $C3D8-$C3D8 of the block at $C3B6."
  },
  {
   "address": 50137,
   "type": "line",
   "text": "windows, continued: bytes $C3D9-$C3D9 of the block at $C3B6."
  },
  {
   "address": 50138,
   "type": "line",
   "text": "1 while draw_picture or save_bytes runs."
  },
  {
   "address": 50139,
   "type": "line",
   "text": "293 bytes of $BD after the last table that nothing reads: filler."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "the territory under each cell of the screen's first 21 rows, a byte a cell ($FF for the sea and the panels): the map of which cells flash for a territory ($2846)."
  },
  {
   "address": 58184,
   "type": "line",
   "text": "pictures 17 and 18, 5 cells by 7 rows, sharing one bitmap ($E348): the Union's and the Confederacy's flag in the army's counts' panel, with their own screen ($E460, $E4A6) and colour ($E483, $E4C9) bytes."
  },
  {
   "address": 58604,
   "type": "line",
   "text": "the digits of the army's counts, two cells of eight bitmap bytes each."
  },
  {
   "address": 58612,
   "type": "line",
   "text": "count_font, continued: bytes $E4F4-$E59B of the block at $E4EC."
  },
  {
   "address": 58780,
   "type": "line",
   "text": "picture 19, the empty counts' panel (bitmap $E59C, screen $E6B4, colour $E6D7)."
  },
  {
   "address": 61210,
   "type": "line",
   "text": "526 bytes of $BD after the stores that nothing reads."
  },
  {
   "address": 61736,
   "type": "line",
   "text": "the map's sound driver, by its entry vectors: $F128 resets it (jmp $F1C1), $F12B starts sound A (jmp $F1FA), $F12E plays a frame (jmp $F2B6), $F131 stops sound A (jmp $F29F). The map starts sounds through play_sound ($3FA3) and plays a frame from its frame interrupt ($10F5). Its 31 sounds are short tunes and effects, on one to three voices, with a glide between two notes besides the menu driver's effects."
  },
  {
   "address": 61739,
   "type": "line",
   "text": "the entry for starting sound A: jmp $F1FA."
  },
  {
   "address": 61742,
   "type": "line",
   "text": "the frame entry: jmp $F2B6."
  },
  {
   "address": 61745,
   "type": "line",
   "text": "the entry for stopping sound A: jmp $F29F; nothing in the map calls it."
  },
  {
   "address": 61748,
   "type": "line",
   "text": "frames between steps of a fade-out: cleared by the reset and by the start of every sound, and set by nothing else in the map, so the map's sounds never fade."
  },
  {
   "address": 61749,
   "type": "line",
   "text": "each voice's gate mask: $FF while its note sounds, $FE to release it."
  },
  {
   "address": 61752,
   "type": "line",
   "text": "each voice's transpose, from its order list's bytes $80 and up."
  },
  {
   "address": 61755,
   "type": "line",
   "text": "1 while the voice plays a sound."
  },
  {
   "address": 61758,
   "type": "line",
   "text": "$FF on the frame a voice's tick ends."
  },
  {
   "address": 61761,
   "type": "line",
   "text": "the voice's swing: flipped each tick when its speed has bit 7 set, making every other tick a frame longer."
  },
  {
   "address": 61764,
   "type": "line",
   "text": "frames left of the voice's tick."
  },
  {
   "address": 61767,
   "type": "line",
   "text": "each voice's offset of its registers in the SID: 0, 7, 14."
  },
  {
   "address": 61770,
   "type": "line",
   "text": "ticks left of the voice's note."
  },
  {
   "address": 61773,
   "type": "line",
   "text": "the voice's note length in ticks."
  },
  {
   "address": 61776,
   "type": "line",
   "text": "how the voice goes on at a pattern's end: bit 7 for a sound of one pattern a voice (bit 6 loops it), otherwise a count of repeats from the order list's bytes $60 to $6F."
  },
  {
   "address": 61779,
   "type": "line",
   "text": "the sound header's third byte for the voice, added to its notes with the transpose."
  },
  {
   "address": 61782,
   "type": "line",
   "text": "the voice's frames per tick, from the header; bit 7 the swing."
  },
  {
   "address": 61785,
   "type": "line",
   "text": "the instrument's fifth byte: the low nibble chooses a filter program ($F9DD), bit 3 keeps the pulse width, the high nibble the release point."
  },
  {
   "address": 61788,
   "type": "line",
   "text": "the instrument's vibrato, depth and speed."
  },
  {
   "address": 61791,
   "type": "line",
   "text": "the instrument's pulse program (low nibble) and vibrato delay (high)."
  },
  {
   "address": 61794,
   "type": "line",
   "text": "the instrument's effects: bit 7 a waveform and a note program, bit 6 unused here, the low nibble without bit 7 a drum start ($FBEB)."
  },
  {
   "address": 61797,
   "type": "line",
   "text": "the tick of the note at which the gate is released."
  },
  {
   "address": 61800,
   "type": "line",
   "text": "the voice's instrument times 8, an index into $FAEC."
  },
  {
   "address": 61803,
   "type": "line",
   "text": "the note the voice plays."
  },
  {
   "address": 61806,
   "type": "line",
   "text": "ticks into the note before a glide starts."
  },
  {
   "address": 61809,
   "type": "line",
   "text": "the glide's direction, the sign of the distance from its note to its target."
  },
  {
   "address": 61812,
   "type": "line",
   "text": "the glide's speed: from the pattern command $FD, cleared when the target is reached."
  },
  {
   "address": 61815,
   "type": "line",
   "text": "the note a glide goes to."
  },
  {
   "address": 61818,
   "type": "line",
   "text": "ticks before the vibrato starts."
  },
  {
   "address": 61821,
   "type": "line",
   "text": "1 once the vibrato has started."
  },
  {
   "address": 61824,
   "type": "line",
   "text": "frames to the vibrato's next change of direction."
  },
  {
   "address": 61827,
   "type": "line",
   "text": "the vibrato's direction, 0 up, 1 down."
  },
  {
   "address": 61830,
   "type": "line",
   "text": "the vibrato's step, low byte."
  },
  {
   "address": 61833,
   "type": "line",
   "text": "the vibrato's step, high byte."
  },
  {
   "address": 61836,
   "type": "line",
   "text": "which sound the voice plays."
  },
  {
   "address": 61839,
   "type": "line",
   "text": "the frequency's low byte for the SID."
  },
  {
   "address": 61842,
   "type": "line",
   "text": "the frequency's high byte for the SID."
  },
  {
   "address": 61845,
   "type": "line",
   "text": "the pulse width's low byte for the SID."
  },
  {
   "address": 61848,
   "type": "line",
   "text": "the pulse width's high nibble for the SID."
  },
  {
   "address": 61851,
   "type": "line",
   "text": "the waveform and gate byte for the SID's control register."
  },
  {
   "address": 61854,
   "type": "line",
   "text": "the attack and decay for the SID."
  },
  {
   "address": 61857,
   "type": "line",
   "text": "the sustain and release for the SID."
  },
  {
   "address": 61860,
   "type": "line",
   "text": "the position in the pulse program."
  },
  {
   "address": 61863,
   "type": "line",
   "text": "frames left of the pulse program's step."
  },
  {
   "address": 61866,
   "type": "line",
   "text": "the pulse sweep's direction."
  },
  {
   "address": 61869,
   "type": "line",
   "text": "how much the pulse width moves a frame."
  },
  {
   "address": 61872,
   "type": "line",
   "text": "the position in the filter program."
  },
  {
   "address": 61875,
   "type": "line",
   "text": "frames left of the filter program's step."
  },
  {
   "address": 61878,
   "type": "line",
   "text": "how much the filter cutoff moves a frame."
  },
  {
   "address": 61879,
   "type": "line",
   "text": "the position in the waveform program."
  },
  {
   "address": 61882,
   "type": "line",
   "text": "the position in the note program."
  },
  {
   "address": 61885,
   "type": "line",
   "text": "frames left of a drum start's first waveform."
  },
  {
   "address": 61888,
   "type": "line",
   "text": "the header's first byte while a sound starts, shifted a bit at a time: the voices it uses, bit 4 an order list a voice."
  },
  {
   "address": 61889,
   "type": "line",
   "text": "sets the test bit of each voice, clears the SID, the filter mode (the operand at $F2BB), the voices' state ($F134-$F146) and $F2-$101, turns the driver on ($FE) with the volume 15 (the operand at $F2BD) and the filter's resonance 15 on voice 1 ($D417 = $F1)."
  },
  {
   "address": 61946,
   "type": "line",
   "text": "starts sound A: its header through $F93A/$F959; each voice it names takes the sound, its loop flag, speed and third byte, and either its pattern (one a voice) or the start of its order list, released, to start on the next frame."
  },
  {
   "address": 61983,
   "type": "line",
   "text": "the operand of the lda # whose value goes into each voice's $F18C: the sound being started, written at $F1FA; the loop from here sets the voice's state from the header."
  },
  {
   "address": 62111,
   "type": "line",
   "text": "releases every voice that plays sound A and stops it at its pattern's end."
  },
  {
   "address": 62134,
   "type": "line",
   "text": "one frame of the map's sounds, while the driver is on ($FE): the volume and filter mode (the operands at $F2BB and $F2BD) to $D418, the cutoff (the operand at $F2C2) to $D416, each voice's shadow registers to the SID; a fade-out step every $F134 frames ($F36A ends it in silence); then for each voice playing, its tick with the swing, the release of its gate, the next pattern byte when its note's time is up ($F38C), and its effects ($F53B)."
  },
  {
   "address": 62139,
   "type": "line",
   "text": "the operand of the lda # of the volume byte: the filter mode, written by the filter program ($F7A1)."
  },
  {
   "address": 62141,
   "type": "line",
   "text": "the operand of the ora # of the volume byte: 15 at the reset, counted down by a fade-out."
  },
  {
   "address": 62146,
   "type": "line",
   "text": "the operand of the lda # for $D416, the filter cutoff: set by the filter program's start ($F7A7) and moved by its steps ($F7DC); the code from here writes each voice's registers."
  },
  {
   "address": 62314,
   "type": "line",
   "text": "the fade-out's end: every voice's frequency to 0 and the driver off."
  },
  {
   "address": 62333,
   "type": "line",
   "text": "silences voice X and marks it ended."
  },
  {
   "address": 62348,
   "type": "line",
   "text": "reads the voice's pattern ($F2,x through $F978/$F9AB). At its end ($FF) a one-pattern sound loops or ends; an order list repeats the pattern while $F150 counts or takes its next byte ($FE ends the voice, $FF and a position loops, $80 and up the transpose, $60-$6F the repeats, anything else the next pattern). In the pattern: $FD and three bytes a glide (its speed, and the notes from and to), $E0-$FF a rest of that length, $C0-$DF an instrument, $80-$BF the note length, below that a note. A new note takes its instrument's waveform, envelope, pulse and effects ($FAEC)."
  },
  {
   "address": 62779,
   "type": "line",
   "text": "one frame of a voice's effects: on a new note the glide's set-up, a drum start ($FBEB) and the vibrato's set-up; then the glide ($F5CF) or the vibrato ($F64A), the pulse program ($F6DE), the filter program ($F788), the waveform and note programs ($F7DF) and the end of a drum start ($F849)."
  },
  {
   "address": 62927,
   "type": "line",
   "text": "once the glide's wait is over, moves the frequency towards the target note's by a step of 7 doubled for each step of the glide's speed above 1, and ends the glide on the note."
  },
  {
   "address": 63050,
   "type": "line",
   "text": "after its delay, sweeps the frequency up and down by a step derived from the next semitone."
  },
  {
   "address": 63198,
   "type": "line",
   "text": "the pulse program ($F9F3): a start width, then steps that sweep it between two limits."
  },
  {
   "address": 63334,
   "type": "line",
   "text": "the operand of the cmp # with the pulse sweep's top limit for the pulse width's high byte, written at $F70D; the code from here turns the upward sweep."
  },
  {
   "address": 63362,
   "type": "line",
   "text": "the operand of the cmp # with the pulse sweep's bottom limit, written at $F707; the code from here turns the downward sweep and goes on to the filter program."
  },
  {
   "address": 63368,
   "type": "line",
   "text": "the filter program ($F9DD): its first step sets the filter mode and cutoff, then each step moves the cutoff for a number of frames; $FE ends it."
  },
  {
   "address": 63455,
   "type": "line",
   "text": "the waveform program ($F9FE) and the note program ($FA0C) of the voice's instrument, each a list with $FF and a position to loop and $FE to hold."
  },
  {
   "address": 63507,
   "type": "line",
   "text": "the operand of the ldy # that picks the note program, written at $F7E9; the code from here reads the voice's note program."
  },
  {
   "address": 63546,
   "type": "line",
   "text": "the operand of the lda # with the note program's step, written at $F831; the code from here adds it to the note or takes it as a note of its own."
  },
  {
   "address": 63561,
   "type": "line",
   "text": "the end of a drum start: the waveform back to the instrument's."
  },
  {
   "address": 63596,
   "type": "line",
   "text": "the frequency of note A from the tables at $F87A (low) and $F8DA (high)."
  },
  {
   "address": 63609,
   "type": "line",
   "text": "the rts of mapsfx_set_freq, also read as the frequency's low byte of the note before note 0 by the vibrato ($F676)."
  },
  {
   "address": 63610,
   "type": "line",
   "text": "the SID frequencies of the 96 notes: low bytes at $F87A, high at $F8DA."
  },
  {
   "address": 63705,
   "type": "line",
   "text": "mapsfx_freqs, continued: bytes $F8D9-$F8D9 of the block at $F87A."
  },
  {
   "address": 63706,
   "type": "line",
   "text": "mapsfx_freqs, continued: bytes $F8DA-$F939 of the block at $F87A."
  },
  {
   "address": 63802,
   "type": "line",
   "text": "the 31 sounds' headers' addresses: low bytes at $F93A, high at $F959."
  },
  {
   "address": 63833,
   "type": "line",
   "text": "mapsfx_sounds, continued: bytes $F959-$F977 of the block at $F93A."
  },
  {
   "address": 63864,
   "type": "line",
   "text": "the 51 patterns' addresses: low bytes at $F978, high at $F9AB."
  },
  {
   "address": 63915,
   "type": "line",
   "text": "mapsfx_patterns, continued: bytes $F9AB-$F9DC of the block at $F978."
  },
  {
   "address": 63965,
   "type": "line",
   "text": "the filter programs' addresses ($F9DD, $F9E8), the pulse programs' ($F9F3, $F9F8), the waveform programs' ($F9FE, $FA05) and the note programs' ($FA0C, $FA13)."
  },
  {
   "address": 63976,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $F9E8-$F9F2 of the block at $F9DD."
  },
  {
   "address": 63987,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $F9F3-$F9F7 of the block at $F9DD."
  },
  {
   "address": 63992,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $F9F8-$F9FD of the block at $F9DD."
  },
  {
   "address": 63998,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $F9FE-$FA04 of the block at $F9DD."
  },
  {
   "address": 64005,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $FA05-$FA0B of the block at $F9DD."
  },
  {
   "address": 64012,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $FA0C-$FA12 of the block at $F9DD."
  },
  {
   "address": 64019,
   "type": "line",
   "text": "mapsfx_prog_tables, continued: bytes $FA13-$FA19 of the block at $F9DD."
  },
  {
   "address": 64026,
   "type": "line",
   "text": "the waveform, note, pulse and filter programs, lists of bytes with $FF and a position to loop and $FE to end; $FD in a pulse program sets a new width."
  },
  {
   "address": 64236,
   "type": "line",
   "text": "the instruments, eight bytes each: pulse width, waveform, attack and decay, sustain and release, flags (filter program and release point), vibrato, pulse program and vibrato delay, effects."
  },
  {
   "address": 64237,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAED-$FAED of the block at $FAEC."
  },
  {
   "address": 64238,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAEE-$FAEE of the block at $FAEC."
  },
  {
   "address": 64239,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAEF-$FAEF of the block at $FAEC."
  },
  {
   "address": 64240,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAF0-$FAF0 of the block at $FAEC."
  },
  {
   "address": 64241,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAF1-$FAF1 of the block at $FAEC."
  },
  {
   "address": 64242,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAF2-$FAF2 of the block at $FAEC."
  },
  {
   "address": 64243,
   "type": "line",
   "text": "mapsfx_instruments, continued: bytes $FAF3-$FBEA of the block at $FAEC."
  },
  {
   "address": 64491,
   "type": "line",
   "text": "the drum starts: lengths ($FBEB) and first waveforms ($FBF1)."
  },
  {
   "address": 64497,
   "type": "line",
   "text": "mapsfx_drums, continued: bytes $FBF1-$FBF6 of the block at $FBEB."
  },
  {
   "address": 64503,
   "type": "line",
   "text": "the 31 sounds' headers, order lists and patterns: notes below $80, lengths $80-$BF, instruments $C0-$DF, rests $E0-$FF, glides $FD, each pattern ending in $FF."
  },
  {
   "address": 65527,
   "type": "line",
   "text": "mapsfx_sound_data, continued: bytes $FFF7-$FFF9 of the block at $FBF7."
  }
 ]
}